예제 #1
0
  @Override
  public Component getOptionsPanel() {
    JPanel panel = new JPanel(new GridLayout(0, 1, 4, 4));
    final JCheckBox hideOriginalTableHeader = new JCheckBox("Hide the original table header");
    hideOriginalTableHeader.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent e) {
            JTableHeader header = _table.getTableHeader();
            if (header instanceof NestedTableHeader) {
              ((NestedTableHeader) header)
                  .setOriginalTableHeaderVisible(!hideOriginalTableHeader.isSelected());
            }
          }
        });
    panel.add(hideOriginalTableHeader);

    final JCheckBox autoStartCellEditing = new JCheckBox("Auto-start editing when TAB or ENTER");
    autoStartCellEditing.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent e) {
            _table.setAutoStartCellEditing(autoStartCellEditing.isSelected());
          }
        });
    autoStartCellEditing.setSelected(_table.isAutoStartCellEditing());
    panel.add(autoStartCellEditing);

    final JCheckBox autoSelectTextWhenStartsEditing =
        new JCheckBox("Auto-select the cell text when editing");
    autoSelectTextWhenStartsEditing.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent e) {
            _table.setAutoSelectTextWhenStartsEditing(autoSelectTextWhenStartsEditing.isSelected());
          }
        });
    autoSelectTextWhenStartsEditing.setSelected(_table.isAutoSelectTextWhenStartsEditing());
    panel.add(autoSelectTextWhenStartsEditing);

    final JCheckBox enable = new JCheckBox("Enable Table");
    enable.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent e) {
            _table.setEnabled(enable.isSelected());
          }
        });
    enable.setSelected(_table.isEnabled());
    panel.add(enable);

    JCheckBox columnAutoResizable = new JCheckBox("Column Auto Resizable");
    columnAutoResizable.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent e) {
            boolean selected = e.getStateChange() == ItemEvent.SELECTED;
            _table.setColumnAutoResizable(selected);
            _table.setAutoResizeMode(
                selected ? JTable.AUTO_RESIZE_OFF : JTable.AUTO_RESIZE_ALL_COLUMNS);
          }
        });
    columnAutoResizable.setSelected(_table.isColumnAutoResizable());
    panel.add(columnAutoResizable);

    JComboBox autoCompletionModeComboBox =
        new JComboBox(
            new Object[] {
              "Disabled", "Cells in the same column", "Cells in the same row", "All cells"
            });
    autoCompletionModeComboBox.setSelectedIndex(_table.getEditorAutoCompletionMode());
    autoCompletionModeComboBox.addItemListener(
        new ItemListener() {
          public void itemStateChanged(ItemEvent e) {
            if (e.getStateChange() == ItemEvent.SELECTED) {
              _table.setEditorAutoCompletionMode(((JComboBox) e.getSource()).getSelectedIndex());
            }
          }
        });
    panel.add(
        JideSwingUtilities.createLabeledComponent(
            new JLabel("AutoCompletion Mode: "),
            autoCompletionModeComboBox,
            BorderLayout.BEFORE_LINE_BEGINS));

    return panel;
  }