1 19 20 package org.netbeans.modules.apisupport.project.ui.wizard.action; 21 22 import java.util.ArrayList ; 23 import java.util.Collection ; 24 import java.util.Collections ; 25 import java.util.HashMap ; 26 import java.util.Map ; 27 import java.util.StringTokenizer ; 28 import javax.swing.ComboBoxModel ; 29 import javax.swing.DefaultComboBoxModel ; 30 import org.netbeans.modules.apisupport.project.ui.wizard.BasicWizardIterator; 31 import org.openide.WizardDescriptor; 32 import org.openide.util.HelpCtx; 33 import org.openide.util.NbBundle; 34 35 40 final class ActionTypePanel extends BasicWizardIterator.Panel { 41 42 private static final Map <String , String > NAME_TO_FQCN; 43 44 static { 45 Map map = new HashMap (DataModel.PREDEFINED_COOKIE_CLASSES.length); 46 for (int i = 0; i < DataModel.PREDEFINED_COOKIE_CLASSES.length; i++) { 47 String fqcn = DataModel.PREDEFINED_COOKIE_CLASSES[i]; 48 String name = DataModel.parseClassName(fqcn); 49 map.put(name, fqcn); 50 } 51 NAME_TO_FQCN = Collections.unmodifiableMap(map); 52 } 53 54 private DataModel data; 55 56 public ActionTypePanel(final WizardDescriptor setting, final DataModel data) { 57 super(setting); 58 this.data = data; 59 initComponents(); 60 initAccesibility(); 61 putClientProperty("NewFileWizard_Title", getMessage("LBL_ActionWizardTitle")); 62 cookieClass.setModel(createCookieClassModel()); 63 } 64 65 protected String getPanelName() { 66 return getMessage("LBL_ActionType_Title"); 67 } 68 69 protected void storeToDataModel() { 70 data.setAlwaysEnabled(alwaysEnabled.isSelected()); 71 data.setCookieClasses(getCookieClasses()); 72 data.setMultiSelection(isMultiSelection()); 73 } 74 75 private String [] getCookieClasses() { 76 StringTokenizer classesST = new StringTokenizer ( 77 cookieClass.getEditor().getItem().toString(), ","); Collection classes = new ArrayList (); 79 while (classesST.hasMoreTokens()) { 80 String clazz = ((String ) classesST.nextToken()).trim(); 81 String fqcn = (String ) NAME_TO_FQCN.get(clazz); 82 classes.add(fqcn == null ? clazz : fqcn); 83 } 84 String [] s = new String [classes.size()]; 85 return (String []) classes.toArray(s); 86 } 87 88 protected void readFromDataModel() { 89 condionallyEnabledActionPerformed(null); 90 markValid(); 91 } 92 93 protected HelpCtx getHelp() { 94 return new HelpCtx(ActionTypePanel.class); 95 } 96 97 private boolean isMultiSelection() { 98 return modeMultiple.isSelected(); 99 } 100 101 private static String getMessage(String key) { 102 return NbBundle.getMessage(ActionTypePanel.class, key); 103 } 104 105 private static ComboBoxModel createCookieClassModel() { 106 DefaultComboBoxModel cookieClassModel = new DefaultComboBoxModel (); 107 Map map = new HashMap (DataModel.PREDEFINED_COOKIE_CLASSES.length); 108 for (int i = 0; i < DataModel.PREDEFINED_COOKIE_CLASSES.length; i++) { 109 String fqcn = DataModel.PREDEFINED_COOKIE_CLASSES[i]; 110 String name = DataModel.parseClassName(fqcn); 111 map.put(name, fqcn); 112 cookieClassModel.addElement(name); 113 } 114 return cookieClassModel; 115 } 116 117 122 private void initComponents() { 124 java.awt.GridBagConstraints gridBagConstraints; 125 126 whenEnabledGroup = new javax.swing.ButtonGroup (); 127 modeGroup = new javax.swing.ButtonGroup (); 128 alwaysEnabled = new javax.swing.JRadioButton (); 129 condionallyEnabled = new javax.swing.JRadioButton (); 130 cookieClassTxt = new javax.swing.JLabel (); 131 cookieClass = new javax.swing.JComboBox (); 132 filler = new javax.swing.JLabel (); 133 modeOne = new javax.swing.JRadioButton (); 134 modeMultiple = new javax.swing.JRadioButton (); 135 136 setLayout(new java.awt.GridBagLayout ()); 137 138 whenEnabledGroup.add(alwaysEnabled); 139 alwaysEnabled.setSelected(true); 140 org.openide.awt.Mnemonics.setLocalizedText(alwaysEnabled, org.openide.util.NbBundle.getMessage(ActionTypePanel.class, "CTL_AlwaysEnabled")); 141 alwaysEnabled.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 142 alwaysEnabled.setMargin(new java.awt.Insets (0, 0, 0, 0)); 143 alwaysEnabled.addActionListener(new java.awt.event.ActionListener () { 144 public void actionPerformed(java.awt.event.ActionEvent evt) { 145 condionallyEnabledActionPerformed(evt); 146 } 147 }); 148 149 gridBagConstraints = new java.awt.GridBagConstraints (); 150 gridBagConstraints.gridx = 0; 151 gridBagConstraints.gridy = 0; 152 gridBagConstraints.gridwidth = 2; 153 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 154 gridBagConstraints.insets = new java.awt.Insets (12, 0, 0, 0); 155 add(alwaysEnabled, gridBagConstraints); 156 157 whenEnabledGroup.add(condionallyEnabled); 158 org.openide.awt.Mnemonics.setLocalizedText(condionallyEnabled, org.openide.util.NbBundle.getMessage(ActionTypePanel.class, "CTL_ConditionallyEnabled")); 159 condionallyEnabled.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 160 condionallyEnabled.setMargin(new java.awt.Insets (0, 0, 0, 0)); 161 condionallyEnabled.addActionListener(new java.awt.event.ActionListener () { 162 public void actionPerformed(java.awt.event.ActionEvent evt) { 163 condionallyEnabledActionPerformed(evt); 164 } 165 }); 166 167 gridBagConstraints = new java.awt.GridBagConstraints (); 168 gridBagConstraints.gridx = 0; 169 gridBagConstraints.gridy = 1; 170 gridBagConstraints.gridwidth = 2; 171 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 172 gridBagConstraints.insets = new java.awt.Insets (24, 0, 0, 0); 173 add(condionallyEnabled, gridBagConstraints); 174 175 cookieClassTxt.setLabelFor(cookieClass); 176 org.openide.awt.Mnemonics.setLocalizedText(cookieClassTxt, org.openide.util.NbBundle.getMessage(ActionTypePanel.class, "LBL_CookieClass")); 177 gridBagConstraints = new java.awt.GridBagConstraints (); 178 gridBagConstraints.gridx = 0; 179 gridBagConstraints.gridy = 2; 180 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 181 gridBagConstraints.insets = new java.awt.Insets (6, 18, 6, 0); 182 add(cookieClassTxt, gridBagConstraints); 183 184 cookieClass.setEditable(true); 185 gridBagConstraints = new java.awt.GridBagConstraints (); 186 gridBagConstraints.gridx = 1; 187 gridBagConstraints.gridy = 2; 188 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 189 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 190 gridBagConstraints.weightx = 1.0; 191 gridBagConstraints.insets = new java.awt.Insets (6, 12, 6, 0); 192 add(cookieClass, gridBagConstraints); 193 194 gridBagConstraints = new java.awt.GridBagConstraints (); 195 gridBagConstraints.gridx = 0; 196 gridBagConstraints.gridy = 5; 197 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 198 gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER; 199 gridBagConstraints.weightx = 1.0; 200 gridBagConstraints.weighty = 1.0; 201 add(filler, gridBagConstraints); 202 203 modeGroup.add(modeOne); 204 modeOne.setSelected(true); 205 org.openide.awt.Mnemonics.setLocalizedText(modeOne, org.openide.util.NbBundle.getMessage(ActionTypePanel.class, "CTL_ModeOneNode")); 206 modeOne.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 207 modeOne.setMargin(new java.awt.Insets (0, 0, 0, 0)); 208 gridBagConstraints = new java.awt.GridBagConstraints (); 209 gridBagConstraints.gridx = 0; 210 gridBagConstraints.gridy = 3; 211 gridBagConstraints.gridwidth = 2; 212 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 213 gridBagConstraints.insets = new java.awt.Insets (0, 18, 6, 0); 214 add(modeOne, gridBagConstraints); 215 216 modeGroup.add(modeMultiple); 217 org.openide.awt.Mnemonics.setLocalizedText(modeMultiple, org.openide.util.NbBundle.getMessage(ActionTypePanel.class, "CTL_ModeMultipleNode")); 218 modeMultiple.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 219 modeMultiple.setMargin(new java.awt.Insets (0, 0, 0, 0)); 220 gridBagConstraints = new java.awt.GridBagConstraints (); 221 gridBagConstraints.gridx = 0; 222 gridBagConstraints.gridy = 4; 223 gridBagConstraints.gridwidth = 2; 224 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 225 gridBagConstraints.insets = new java.awt.Insets (0, 18, 0, 0); 226 add(modeMultiple, gridBagConstraints); 227 228 } 230 private void condionallyEnabledActionPerformed(java.awt.event.ActionEvent evt) { boolean enabled = condionallyEnabled.isSelected(); 232 cookieClass.setEnabled(enabled); 233 cookieClassTxt.setEnabled(enabled); 234 modeOne.setEnabled(enabled); 235 modeMultiple.setEnabled(enabled); 236 } 238 private javax.swing.JRadioButton alwaysEnabled; 240 private javax.swing.JRadioButton condionallyEnabled; 241 private javax.swing.JComboBox cookieClass; 242 private javax.swing.JLabel cookieClassTxt; 243 private javax.swing.JLabel filler; 244 private javax.swing.ButtonGroup modeGroup; 245 private javax.swing.JRadioButton modeMultiple; 246 private javax.swing.JRadioButton modeOne; 247 private javax.swing.ButtonGroup whenEnabledGroup; 248 250 private void initAccesibility() { 251 this.getAccessibleContext().setAccessibleDescription(getMessage("ACS_ActionTypePanel")); 252 alwaysEnabled.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_alwaysEnabled")); 253 condionallyEnabled.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_condionallyEnabled")); 254 cookieClass.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_cookieClass")); 255 modeMultiple.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_modeMultiple")); 256 modeOne.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_modeOne")); 257 } 258 259 } 260 261 | Popular Tags |