package com.framsticks.gui.view; import com.framsticks.gui.ListPanel; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; /** * Menu item allows to adding and removing column from table in group template. */ @SuppressWarnings("serial") public class ColumnMenuItem extends JCheckBoxMenuItem { /** * Name of column. */ private final String columnName; /** * Column getId. */ private final String columnId; /** * Column index. */ private final int index; /** * Constructor sets name of column, column getId, index and reference to group template panel. * * @param columnName Name of column. * @param columnId Column getId. * @param index Index of column. * @param columnManager Reference to panel instantiate ListPanel. */ //@SuppressWarnings("static-access") public ColumnMenuItem(String columnName, String columnId, int index, final ListPanel columnManager) { super(columnName); this.columnName = columnName; this.columnId = columnId; this.index = index; this.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { columnManager.addColumn(ColumnMenuItem.this.columnName, ColumnMenuItem.this.columnId, ColumnMenuItem.this.index); } else { columnManager.removeColumn(ColumnMenuItem.this.columnId); } } }); this.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { columnManager.refreshTable(); } }); } @Override public String toString() { return columnName; } }