derived.setFormula(formula);
expressionEditor.setSelectedItem(derived);
}
else if (selectedItem instanceof Expression)
{
final ExpressionPropertiesDialog dialog;
if (w instanceof Frame)
{
dialog = new ExpressionPropertiesDialog((Frame) w);
}
else if (w instanceof Dialog)
{
dialog = new ExpressionPropertiesDialog((Dialog) w);
}
else
{
dialog = new ExpressionPropertiesDialog();
}
final Expression expression = dialog.editExpression((Expression) selectedItem, reportDesignerContext);
if (expression != selectedItem)
{
expressionEditor.setSelectedItem(expression);
}
}
else if (selectedItem instanceof ExpressionMetaData)
{
try
{
final ExpressionMetaData emd = (ExpressionMetaData) selectedItem;
final Expression expression = (Expression) emd.getExpressionType().newInstance();
final ExpressionPropertiesDialog dialog;
if (w instanceof Frame)
{
dialog = new ExpressionPropertiesDialog((Frame) w);
}
else if (w instanceof Dialog)
{
dialog = new ExpressionPropertiesDialog((Dialog) w);
}
else
{
dialog = new ExpressionPropertiesDialog();
}
final Expression resultexpression = dialog.editExpression(expression, reportDesignerContext);
if (resultexpression != expression)
{
expressionEditor.setSelectedItem(resultexpression);
}
}
catch (Throwable e1)
{
UncaughtExceptionsModel.getInstance().addException(e1);
}
}
else
{
// assume that we want to edit a formula ..
final FormulaEditorDialog dialog = GUIUtils.createFormulaEditorDialog(getReportDesignerContext(), ExpressionEditorPane.this);
final String formula = dialog.editFormula(null, getFields());
if (formula == null)
{
// cancel pressed ... do nothing ...
return;
}