package net.sf.minuteProject.console.panel; import static net.sf.minuteProject.console.utils.UIUtils.createLabel; import static net.sf.minuteProject.console.utils.UIUtils.createTextField; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.AbstractButton; import javax.swing.ButtonGroup; import javax.swing.JCheckBox; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JTextField; import net.sf.minuteProject.configuration.bean.GenerationCondition; import net.sf.minuteProject.console.face.FillBasicConfiguration; import net.sf.minuteProject.integration.bean.BasicIntegrationConfiguration; public class FilterPanel extends JPanel implements FillBasicConfiguration { private JTextField filterExcludeTf, filterIncludeTf; private FilterItemListener filterItemListener; private ButtonGroup group, entityFilterG; private JCheckBox tableCBButton, viewCBButton; public static final String filterExclude = "filterExclude"; public static final String filterInclude = "filterInclude"; public FilterPanel() { filterItemListener = new FilterItemListener(); } public void fill(BasicIntegrationConfiguration bic) { String command = group.getSelection().getActionCommand(); if (filterExclude.equals(command)) { bic.setFilterFile(filterExcludeTf.getText()); bic.setFilterFileType(GenerationCondition.FILTER_FILE_TYPE_EXCLUDE); } else { bic.setFilterFile(filterIncludeTf.getText()); bic.setFilterFileType(GenerationCondition.FILTER_FILE_TYPE_INCLUDE); } bic.setAreTablesIncluded(tableCBButton.isSelected()); bic.setAreViewsIncluded(viewCBButton.isSelected()); } public void fillPanel(JPanel panel) { panel.add(createLabel("entities"), "skip,wrap"); panel.add(createLabel("")); JRadioButton filterIncludeButton = new JRadioButton("includes all entities except those starting with "); filterIncludeButton.setActionCommand(filterInclude); filterIncludeButton.setSelected(true); filterIncludeButton.addItemListener(filterItemListener); panel.add(filterIncludeButton, "skip"); filterIncludeTf = createTextField("", 10); panel.add(filterIncludeTf, "span, growx, wrap"); panel.add(createLabel("")); JRadioButton filterExcludeButton = new JRadioButton("excludes all entities except those starting with "); filterExcludeButton.setActionCommand(filterExclude); filterExcludeButton.addItemListener(filterItemListener); panel.add(filterExcludeButton, "skip"); filterExcludeTf = createTextField("", 10); filterExcludeTf.setOpaque(true); filterExcludeTf.setEditable(false); panel.add(filterExcludeTf, "span, growx, wrap para"); group = new ButtonGroup(); group.add(filterIncludeButton); group.add(filterExcludeButton); panel.add(createLabel("entity type"), "skip,wrap"); tableCBButton = new JCheckBox("include tables"); tableCBButton.setSelected(true); viewCBButton = new JCheckBox("include views"); viewCBButton.setSelected(true); panel.add(createLabel("")); panel.add(tableCBButton, "skip, wrap"); panel.add(createLabel("")); panel.add(viewCBButton, "skip,wrap para"); // entityFilterG = new ButtonGroup(); // entityFilterG.add(tableCBButton); // entityFilterG.add(viewCBButton); } private class FilterItemListener implements ItemListener { public void itemStateChanged(ItemEvent itemEvent) { JRadioButton aButton = (JRadioButton) itemEvent.getSource(); int state = itemEvent.getStateChange(); if (state == ItemEvent.SELECTED) { activate(aButton); } } } private void activate(JRadioButton aButton) { if (aButton.getActionCommand() == filterExclude) { filterExcludeTf.setOpaque(false); filterExcludeTf.setEditable(true); filterIncludeTf.setOpaque(true); filterIncludeTf.setEditable(false); // filterIncludeTf.setText(""); } else { filterExcludeTf.setOpaque(true); filterExcludeTf.setEditable(false); filterIncludeTf.setOpaque(false); filterIncludeTf.setEditable(true); // filterExcludeTf.setText(""); } } }