this.rootband = rootband;
}
public void run()
{
final ReportDocumentContext context = dragContext.getRenderContext();
if (rootband)
{
final int result = JOptionPane.showOptionDialog(dragContext.getRepresentationContainer(),
Messages.getString("CrosstabReportElementDragHandler.BandedOrInlineSubreportQuestion"),
Messages.getString("CrosstabReportElementDragHandler.InsertSubreport"),
JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null,
new String[]{Messages.getString("CrosstabReportElementDragHandler.Inline"),
Messages.getString("CrosstabReportElementDragHandler.Banded"),
Messages.getString("CrosstabReportElementDragHandler.Cancel")},
Messages.getString("CrosstabReportElementDragHandler.Inline"));
if (result == JOptionPane.CLOSED_OPTION || result == 2)
{
return;
}
if (result == 0)
{
final UndoManager undo = context.getUndo();
undo.addChange(Messages.getString("CrosstabReportElementDragHandler.UndoEntry"),
new ElementEditUndoEntry(parent.getObjectID(), parent.getElementCount(), null, subReport));
parent.addElement(subReport);
}
else
{
final AbstractRootLevelBand arb = (AbstractRootLevelBand) parent;
final UndoManager undo = context.getUndo();
undo.addChange(Messages.getString("CrosstabReportElementDragHandler.UndoEntry"),
new BandedSubreportEditUndoEntry(parent.getObjectID(), arb.getSubReportCount(), null, subReport));
arb.addSubReport(subReport);
}
}
else
{
final UndoManager undo = context.getUndo();
undo.addChange(Messages.getString("CrosstabReportElementDragHandler.UndoEntry"),
new ElementEditUndoEntry(parent.getObjectID(), parent.getElementCount(), null, subReport));
parent.addElement(subReport);
}