1 19 20 package org.netbeans.modules.scripting.php.dbginterface.ui; 21 22 import java.awt.event.ItemEvent ; 23 import javax.swing.JPanel ; 24 import org.netbeans.modules.scripting.php.dbginterface.api.VariableNode; 25 import org.netbeans.modules.scripting.php.dbginterface.VariablesModelFilter; 26 import org.openide.DialogDescriptor; 27 import org.openide.DialogDisplayer; 28 29 33 public class VariablesFilter extends JPanel { 34 35 private boolean [] filters; 37 private boolean initializing; 38 39 40 public VariablesFilter(boolean [] currentFilters) { 41 filters = currentFilters; 42 initializing = false; 43 44 initComponents(); 45 initUserComponents(); 46 initState(); 47 } 48 49 public boolean [] getFilters() { 50 return filters; 51 } 52 53 58 private void initComponents() { 60 labelFieldsToDisplay = new javax.swing.JLabel (); 61 checkScriptField = new javax.swing.JCheckBox (); 62 checkJavaField = new javax.swing.JCheckBox (); 63 checkUndefinedField = new javax.swing.JCheckBox (); 64 checkScriptAdapter = new javax.swing.JCheckBox (); 65 checkFunctions = new javax.swing.JCheckBox (); 66 67 labelFieldsToDisplay.setText("Select the fields to show:"); 68 69 checkScriptField.setText("Script Field"); 70 checkScriptField.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 71 checkScriptField.setMargin(new java.awt.Insets (0, 0, 0, 0)); 72 checkScriptField.addItemListener(new java.awt.event.ItemListener () { 73 public void itemStateChanged(java.awt.event.ItemEvent evt) { 74 checkScriptFieldItemStateChanged(evt); 75 } 76 }); 77 78 checkJavaField.setText("Java Field"); 79 checkJavaField.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 80 checkJavaField.setMargin(new java.awt.Insets (0, 0, 0, 0)); 81 checkJavaField.addItemListener(new java.awt.event.ItemListener () { 82 public void itemStateChanged(java.awt.event.ItemEvent evt) { 83 checkJavaFieldItemStateChanged(evt); 84 } 85 }); 86 87 checkUndefinedField.setText("Undefined Field"); 88 checkUndefinedField.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 89 checkUndefinedField.setMargin(new java.awt.Insets (0, 0, 0, 0)); 90 checkUndefinedField.addItemListener(new java.awt.event.ItemListener () { 91 public void itemStateChanged(java.awt.event.ItemEvent evt) { 92 checkUndefinedFieldItemStateChanged(evt); 93 } 94 }); 95 96 checkScriptAdapter.setText("Script Adapter"); 97 checkScriptAdapter.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 98 checkScriptAdapter.setMargin(new java.awt.Insets (0, 0, 0, 0)); 99 checkScriptAdapter.addItemListener(new java.awt.event.ItemListener () { 100 public void itemStateChanged(java.awt.event.ItemEvent evt) { 101 checkScriptAdapterItemStateChanged(evt); 102 } 103 }); 104 105 checkFunctions.setText("Functions"); 106 checkFunctions.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 107 checkFunctions.setMargin(new java.awt.Insets (0, 0, 0, 0)); 108 checkFunctions.addItemListener(new java.awt.event.ItemListener () { 109 public void itemStateChanged(java.awt.event.ItemEvent evt) { 110 checkFunctionsItemStateChanged(evt); 111 } 112 }); 113 114 org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); 115 this.setLayout(layout); 116 layout.setHorizontalGroup( 117 layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 118 .add(layout.createSequentialGroup() 119 .addContainerGap() 120 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 121 .add(layout.createSequentialGroup() 122 .add(12, 12, 12) 123 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 124 .add(checkJavaField) 125 .add(checkScriptField) 126 .add(checkUndefinedField) 127 .add(checkScriptAdapter) 128 .add(checkFunctions))) 129 .add(labelFieldsToDisplay)) 130 .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 131 ); 132 layout.setVerticalGroup( 133 layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 134 .add(layout.createSequentialGroup() 135 .addContainerGap() 136 .add(labelFieldsToDisplay) 137 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 138 .add(checkScriptField) 139 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 140 .add(checkJavaField) 141 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 142 .add(checkUndefinedField) 143 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 144 .add(checkScriptAdapter) 145 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 146 .add(checkFunctions) 147 .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 148 ); 149 } 151 private void checkFunctionsItemStateChanged(java.awt.event.ItemEvent evt) { setFilter(evt, VariableNode.TYPE_FUNCTION); 153 } 155 private void checkScriptAdapterItemStateChanged(java.awt.event.ItemEvent evt) { setFilter(evt, VariableNode.TYPE_SCRIPT_ADAPTER); 157 } 159 private void checkUndefinedFieldItemStateChanged(java.awt.event.ItemEvent evt) { setFilter(evt, VariableNode.TYPE_UNDEFINED_FIELD); 161 } 163 private void checkJavaFieldItemStateChanged(java.awt.event.ItemEvent evt) { setFilter(evt, VariableNode.TYPE_JAVA_FIELD); 165 } 167 private void checkScriptFieldItemStateChanged(java.awt.event.ItemEvent evt) { setFilter(evt, VariableNode.TYPE_SCRIPT_FIELD); 169 } 171 172 private javax.swing.JCheckBox checkFunctions; 174 private javax.swing.JCheckBox checkJavaField; 175 private javax.swing.JCheckBox checkScriptAdapter; 176 private javax.swing.JCheckBox checkScriptField; 177 private javax.swing.JCheckBox checkUndefinedField; 178 private javax.swing.JLabel labelFieldsToDisplay; 179 181 private void initUserComponents() { 182 } 189 190 private void initState() { 191 try { 192 initializing = true; 193 checkFunctions.setSelected(filters[VariableNode.TYPE_FUNCTION]); 194 checkJavaField.setSelected(filters[VariableNode.TYPE_JAVA_FIELD]); 195 checkScriptAdapter.setSelected(filters[VariableNode.TYPE_SCRIPT_ADAPTER]); 196 checkScriptField.setSelected(filters[VariableNode.TYPE_SCRIPT_FIELD]); 197 checkUndefinedField.setSelected(filters[VariableNode.TYPE_UNDEFINED_FIELD]); 198 } finally { 199 initializing = false; 200 } 201 } 202 203 private void setFilter(ItemEvent e, int type) { 204 if(!initializing) { 205 filters[type] = interpretCheckboxState(e); 206 } 207 } 208 209 private boolean interpretCheckboxState(ItemEvent e) { 210 boolean state = false; 211 212 if(e.getStateChange() == ItemEvent.SELECTED) { 213 state = true; 214 } else if(e.getStateChange() == ItemEvent.DESELECTED) { 215 state = false; 216 } 217 218 return state; 219 } 220 221 public static void showDialog() { 222 VariablesFilter filterPanel = new VariablesFilter(VariablesModelFilter.getFilterSettings()); 223 DialogDescriptor desc = new DialogDescriptor(filterPanel, "Local Variable Filters"); 224 DialogDisplayer.getDefault().createDialog(desc).setVisible(true); 225 if (desc.getValue().equals(DialogDescriptor.OK_OPTION)) { 226 VariablesModelFilter.setFilters(filterPanel.getFilters()); 227 } 228 } 229 230 } 231 | Popular Tags |