final MasterReport reportElement = getActiveContext().getContextRoot();
final Component parent = getReportDesignerContext().getView().getParent();
final Window window = LibSwingUtil.getWindowAncestor(parent);
final PreviewDialog dialog;
if (window instanceof JDialog)
{
dialog = new PreviewDialog((JDialog) window);
}
else if (window instanceof JFrame)
{
dialog = new PreviewDialog((JFrame) window);
}
else
{
dialog = new PreviewDialog();
}
dialog.addWindowListener(new PreviewSizeMonitor(reportElement));
dialog.setReportJob(reportElement);
dialog.pack();
final Object attribute = reportElement.getAttribute
(ReportDesignerBoot.DESIGNER_NAMESPACE, "preview-dialog-bounds");//$NON-NLS-1$
if (attribute instanceof String)
{
final Rectangle rectangle = LibSwingUtil.parseRectangle(attribute.toString());
if (rectangle != null)
{
if (LibSwingUtil.safeRestoreWindow(dialog, rectangle))
{
dialog.setVisible(true);
return;
}
}
}
dialog.setSize(700, 700);
LibSwingUtil.centerDialogInParent(dialog);
dialog.setVisible(true);
}