package com.limegroup.gnutella.gui.search; import java.awt.event.ActionListener; import javax.swing.JMenu; import javax.swing.JMenuItem; import com.limegroup.gnutella.gui.tables.ColumnSelectionMenu; import com.limegroup.gnutella.gui.tables.DataLineModel; import com.limegroup.gnutella.gui.tables.LimeJTable; import com.limegroup.gnutella.gui.xml.XMLUtils; final class SearchColumnSelectionMenu extends ColumnSelectionMenu { public SearchColumnSelectionMenu(LimeJTable table) { super(table); } /** * Overriden to add columns from the same schema to a submenu. */ protected void addTableColumnChoices(ActionListener listener, DataLineModel model, LimeJTable table) { String currentSchema = ""; JMenu currentSchemaMenu = null; for( int i = 0; i < model.getColumnCount(); i++) { JMenuItem item = createColumnMenuItem(listener, model, table, i); String schema = schemaOf(item); if(schema != null) { if(!schema.equals(currentSchema)) { currentSchema = schema; currentSchemaMenu = new JMenu(currentSchema); _menu.add(currentSchemaMenu); } currentSchemaMenu.add(item); } else { _menu.add( item ); } } } /** * Gets the name of the schema of a JMenuItem. */ private String schemaOf(JMenuItem item) { String field = (String)item.getClientProperty(COLUMN_ID); return XMLUtils.getTitleForSchemaFromField(field); } }