public StructureFunctionCellEditor() {
    eventListenerList = new EventListenerList();
    this.dataAttributeContext = new DefaultDataAttributeContext();

    final EllipsisButton ellipsisButton = new EllipsisButton("...");
    ellipsisButton.addActionListener(new ExtendedEditorAction());

    expressionEditor = new SmartComboBox<ExpressionMetaData>();
    expressionEditor.setEditable(false);
    expressionEditor.setEditor(
        new ValuePassThroughCellEditor(expressionEditor, new ExpressionListCellRenderer()));
    expressionEditor.setRenderer(new ExpressionListCellRenderer());
    expressionEditor
        .getInputMap()
        .put(
            UtilMessages.getInstance()
                .getKeyStroke("PropertyCellEditorWithEllipsis.PopupEditor.Accelerator"),
            POPUP_EDITOR);
    expressionEditor.getActionMap().put(POPUP_EDITOR, new ExtendedEditorAction());
    expressionEditor.setBorder(BorderFactory.createEmptyBorder());

    carrierPanel = new JPanel(new BorderLayout());
    carrierPanel.add(expressionEditor, BorderLayout.CENTER);
    carrierPanel.add(ellipsisButton, BorderLayout.EAST);
  }
 public ArrayTableModel() {
   editable = true;
   data = new ArrayList<Object>();
   type = Object.class;
   extraFields = new String[0];
   columnTitle = UtilMessages.getInstance().getString("ArrayTableModel.Value");
 }