Search in sources :

Example 1 with DataColumnSpecTableCellRenderer

use of org.knime.core.node.util.DataColumnSpecTableCellRenderer in project knime-core by knime.

the class RankNodeDialog method initRankTableBox.

private Box initRankTableBox() {
    Box columnTableBox = Box.createVerticalBox();
    columnTableBox.setBorder(new TitledBorder("Ranking Attributes"));
    m_rankTableModel = new DefaultTableModel(new String[] { "Attribute", "Order" }, 0);
    DefaultTableColumnModel columnModel = new DefaultTableColumnModel();
    m_rankJTable = new JTable(m_rankTableModel, columnModel);
    m_rankJTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    m_rankJTable.setCellSelectionEnabled(false);
    m_rankJTable.setColumnSelectionAllowed(false);
    m_rankJTable.getTableHeader().setReorderingAllowed(false);
    m_rankJTable.setRowSelectionAllowed(true);
    TableColumn colColumn = new TableColumn();
    colColumn.setHeaderValue("Column");
    colColumn.setCellRenderer(new DataColumnSpecTableCellRenderer());
    m_rankColEditorModel = new DefaultComboBoxModel<DataColumnSpec>();
    m_rankColEditor = new JComboBox<DataColumnSpec>(m_rankColEditorModel);
    m_rankColEditor.setRenderer(new DataColumnSpecListCellRenderer());
    m_rankColEditor.addItemListener(new ItemListener() {

        @Override
        public void itemStateChanged(final ItemEvent e) {
            // TODO Auto-generated method stub
            if (!m_availableEdited) {
                DataColumnSpec colSpec = (DataColumnSpec) e.getItem();
                int state = e.getStateChange();
                if (state == ItemEvent.SELECTED && m_rankJTable.isEditing()) {
                    m_availableCols.remove(colSpec);
                    removeItemGroupColEditor(colSpec);
                    // removeItemRankColEditor(colSpec);
                    m_rankCols.add(colSpec);
                } else if (state == ItemEvent.DESELECTED && m_rankJTable.isEditing()) {
                    m_rankCols.remove(colSpec);
                    if (!m_rankCols.contains(colSpec)) {
                        add2AvailableList(colSpec);
                        addItemGroupColEditor(colSpec);
                    }
                }
            }
        }
    });
    colColumn.setCellEditor(new DefaultCellEditor(m_rankColEditor));
    TableColumn orderColumn = new TableColumn(1);
    orderColumn.setHeaderValue("Order");
    // combo box for order column
    JComboBox<String> orderColumnEditor = new JComboBox<String>();
    orderColumnEditor.addItem("Ascending");
    orderColumnEditor.addItem("Descending");
    orderColumn.setCellEditor(new DefaultCellEditor(orderColumnEditor));
    columnModel.addColumn(colColumn);
    columnModel.addColumn(orderColumn);
    JScrollPane scrollPane = new JScrollPane(m_rankJTable);
    scrollPane.setPreferredSize(m_rankJTable.getPreferredSize());
    columnTableBox.add(scrollPane);
    columnTableBox.setSize(scrollPane.getSize());
    return columnTableBox;
}
Also used : JScrollPane(javax.swing.JScrollPane) DataColumnSpecListCellRenderer(org.knime.core.node.util.DataColumnSpecListCellRenderer) ItemEvent(java.awt.event.ItemEvent) DefaultTableColumnModel(javax.swing.table.DefaultTableColumnModel) JComboBox(javax.swing.JComboBox) DefaultTableModel(javax.swing.table.DefaultTableModel) JComboBox(javax.swing.JComboBox) Box(javax.swing.Box) JCheckBox(javax.swing.JCheckBox) SettingsModelString(org.knime.core.node.defaultnodesettings.SettingsModelString) TitledBorder(javax.swing.border.TitledBorder) TableColumn(javax.swing.table.TableColumn) DefaultCellEditor(javax.swing.DefaultCellEditor) DataColumnSpec(org.knime.core.data.DataColumnSpec) JTable(javax.swing.JTable) DataColumnSpecTableCellRenderer(org.knime.core.node.util.DataColumnSpecTableCellRenderer) ItemListener(java.awt.event.ItemListener)

Example 2 with DataColumnSpecTableCellRenderer

use of org.knime.core.node.util.DataColumnSpecTableCellRenderer in project knime-core by knime.

the class RankNodeDialog method initGroupTableBox.

private Box initGroupTableBox() {
    Box groupTableBox = Box.createVerticalBox();
    groupTableBox.setBorder(new TitledBorder("Grouping Attributes"));
    m_groupTableModel = new DefaultTableModel(new String[] { "Attribute" }, 0);
    m_groupJTable = new JTable(m_groupTableModel);
    m_groupJTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    TableColumn column = m_groupJTable.getColumn("Attribute");
    column.setCellRenderer(new DataColumnSpecTableCellRenderer());
    m_groupColEditorModel = new DefaultComboBoxModel<DataColumnSpec>();
    m_groupColEditor = new JComboBox<DataColumnSpec>(m_groupColEditorModel);
    m_groupColEditor.setRenderer(new DataColumnSpecListCellRenderer());
    m_groupColEditor.addItemListener(new ItemListener() {

        @Override
        public void itemStateChanged(final ItemEvent e) {
            if (!m_availableEdited) {
                DataColumnSpec colSpec = (DataColumnSpec) e.getItem();
                int state = e.getStateChange();
                if (state == ItemEvent.SELECTED && m_groupJTable.isEditing()) {
                    m_availableCols.remove(colSpec);
                    removeItemRankColEditor(colSpec);
                    m_groupCols.add(colSpec);
                } else if (state == ItemEvent.DESELECTED && m_groupJTable.isEditing()) {
                    m_groupCols.remove(colSpec);
                    if (!m_groupCols.contains(colSpec)) {
                        add2AvailableList(colSpec);
                        addItemRankColEditor(colSpec);
                    }
                }
            }
        }
    });
    column.setCellEditor(new DefaultCellEditor(m_groupColEditor));
    JScrollPane scrollPane = new JScrollPane(m_groupJTable);
    scrollPane.setMinimumSize(m_rankJTable.getPreferredSize());
    scrollPane.setPreferredSize(m_rankJTable.getPreferredSize());
    groupTableBox.add(new JScrollPane(scrollPane));
    return groupTableBox;
}
Also used : JScrollPane(javax.swing.JScrollPane) DataColumnSpecListCellRenderer(org.knime.core.node.util.DataColumnSpecListCellRenderer) ItemEvent(java.awt.event.ItemEvent) DefaultTableModel(javax.swing.table.DefaultTableModel) JComboBox(javax.swing.JComboBox) Box(javax.swing.Box) JCheckBox(javax.swing.JCheckBox) SettingsModelString(org.knime.core.node.defaultnodesettings.SettingsModelString) TitledBorder(javax.swing.border.TitledBorder) TableColumn(javax.swing.table.TableColumn) DefaultCellEditor(javax.swing.DefaultCellEditor) DataColumnSpec(org.knime.core.data.DataColumnSpec) JTable(javax.swing.JTable) DataColumnSpecTableCellRenderer(org.knime.core.node.util.DataColumnSpecTableCellRenderer) ItemListener(java.awt.event.ItemListener)

Aggregations

ItemEvent (java.awt.event.ItemEvent)2 ItemListener (java.awt.event.ItemListener)2 Box (javax.swing.Box)2 DefaultCellEditor (javax.swing.DefaultCellEditor)2 JCheckBox (javax.swing.JCheckBox)2 JComboBox (javax.swing.JComboBox)2 JScrollPane (javax.swing.JScrollPane)2 JTable (javax.swing.JTable)2 TitledBorder (javax.swing.border.TitledBorder)2 DefaultTableModel (javax.swing.table.DefaultTableModel)2 TableColumn (javax.swing.table.TableColumn)2 DataColumnSpec (org.knime.core.data.DataColumnSpec)2 SettingsModelString (org.knime.core.node.defaultnodesettings.SettingsModelString)2 DataColumnSpecListCellRenderer (org.knime.core.node.util.DataColumnSpecListCellRenderer)2 DataColumnSpecTableCellRenderer (org.knime.core.node.util.DataColumnSpecTableCellRenderer)2 DefaultTableColumnModel (javax.swing.table.DefaultTableColumnModel)1