AbstractBeanJobBuilder<?, ?, ?> jobBuilder, JComponent parent, boolean allowExpressionBasedColumns) {
_propertyDescriptor = propertyDescriptor;
_beanJobBuilder = jobBuilder;
_parent = parent;
final DCPanel panel = new DCPanel();
panel.setLayout(new VerticalLayout());
if (allowExpressionBasedColumns) {
final JButton expressionColumnButton = WidgetFactory.createSmallButton(EXPRESSION_COLUMN_ICON_PATH);
expressionColumnButton.setToolTipText("Create expression/value based column");
expressionColumnButton.addActionListener(new AddExpressionBasedColumnActionListener(this));
expressionColumnButton.addMouseListener(buttonMouseListener);
panel.add(expressionColumnButton);
}
if (_propertyDescriptor.isArray()) {
final JButton reorderColumnsButton = WidgetFactory.createSmallButton(REORDER_COLUMN_ICON_PATH);
reorderColumnsButton.setToolTipText("Reorder columns");
reorderColumnsButton.addMouseListener(buttonMouseListener);
reorderColumnsButton.addActionListener(new ReorderColumnsActionListener(_propertyDescriptor, _beanJobBuilder));
panel.add(reorderColumnsButton);
}
_popup = new JPopupMenu();
// the invoker is not being set because it causes an unwanted Frame