else
{
dialog = new ExpressionChooserDialog();
}
final Expression expression = dialog.performSelect();
if (expression == null)
{
return;
}
final AbstractReportDefinition definition = activeContext.getReportDefinition();
// try generate a unique expression name
String possibleName = expression.getClass().getSimpleName() + nameCounter++;
while (definition.getExpressions().get(possibleName) != null)
{
possibleName = expression.getClass().getSimpleName() + nameCounter++;
}
expression.setName(possibleName);
final int position = definition.getExpressions().size();
activeContext.getUndo().addChange(ActionMessages.getString("AddExpressionsAction.Text"),
new ExpressionAddedUndoEntry(position, expression));
definition.addExpression(expression);
}