1 19 20 package org.netbeans.modules.debugger.jpda.ui.breakpoints; 21 22 import javax.swing.JPanel ; 23 import javax.swing.JOptionPane ; 24 import org.netbeans.api.debugger.DebuggerManager; 25 26 import org.netbeans.api.debugger.jpda.FieldBreakpoint; 27 import org.netbeans.modules.debugger.jpda.ui.EditorContextBridge; 28 import org.netbeans.spi.debugger.ui.Controller; 29 import org.openide.util.NbBundle; 30 31 34 public class FieldBreakpointPanel extends JPanel implements Controller, org.openide.util.HelpCtx.Provider { 39 41 private ActionsPanel actionsPanel; 42 private FieldBreakpoint breakpoint; 43 private boolean createBreakpoint = false; 44 45 46 private static FieldBreakpoint creteBreakpoint () { 47 FieldBreakpoint mb = FieldBreakpoint.create ( 48 EditorContextBridge.getCurrentClassName (), 49 EditorContextBridge.getCurrentFieldName (), 50 FieldBreakpoint.TYPE_ACCESS 51 ); 52 mb.setPrintText ( 53 NbBundle.getBundle (FieldBreakpointPanel.class).getString 54 ("CTL_Field_Breakpoint_Print_Text") 55 ); 56 return mb; 57 } 58 59 60 61 public FieldBreakpointPanel () { 62 this (creteBreakpoint ()); 63 createBreakpoint = true; 64 } 65 66 67 public FieldBreakpointPanel (FieldBreakpoint b) { 68 breakpoint = b; 69 initComponents (); 70 71 String className = b.getClassName (); 72 int i = className.lastIndexOf ('.'); 73 if (i < 0) { 74 tfPackageName.setText (""); 75 tfClassName.setText (className); 76 } else { 77 tfPackageName.setText (className.substring (0, i)); 78 tfClassName.setText (className.substring (i + 1, className.length ())); 79 } 80 tfFieldName.setText (b.getFieldName()); 81 cbBreakpointType.addItem (java.util.ResourceBundle.getBundle("org/netbeans/modules/debugger/jpda/ui/breakpoints/Bundle").getString("LBL_Field_Breakpoint_Type_Access")); 82 cbBreakpointType.addItem (java.util.ResourceBundle.getBundle("org/netbeans/modules/debugger/jpda/ui/breakpoints/Bundle").getString("LBL_Field_Breakpoint_Type_Modification")); 83 switch (b.getBreakpointType ()) { 84 case FieldBreakpoint.TYPE_ACCESS: 85 cbBreakpointType.setSelectedIndex (0); 86 break; 87 case FieldBreakpoint.TYPE_MODIFICATION: 88 cbBreakpointType.setSelectedIndex (1); 89 break; 90 } 91 tfCondition.setText (b.getCondition ()); 92 93 actionsPanel = new ActionsPanel (b); 94 pActions.add (actionsPanel, "Center"); 95 putClientProperty("HelpID_AddBreakpointPanel", "debug.add.breakpoint.java.field"); } 102 103 public org.openide.util.HelpCtx getHelpCtx() { 106 return new org.openide.util.HelpCtx("NetbeansDebuggerBreakpointFieldJPDA"); } 108 110 115 private void initComponents() { 117 java.awt.GridBagConstraints gridBagConstraints; 118 119 pSettings = new javax.swing.JPanel (); 120 jLabel2 = new javax.swing.JLabel (); 121 jLabel3 = new javax.swing.JLabel (); 122 jLabel5 = new javax.swing.JLabel (); 123 tfCondition = new javax.swing.JTextField (); 124 tfPackageName = new javax.swing.JTextField (); 125 tfClassName = new javax.swing.JTextField (); 126 jLabel1 = new javax.swing.JLabel (); 127 tfFieldName = new javax.swing.JTextField (); 128 jLabel4 = new javax.swing.JLabel (); 129 cbBreakpointType = new javax.swing.JComboBox (); 130 pActions = new javax.swing.JPanel (); 131 jPanel1 = new javax.swing.JPanel (); 132 133 setLayout(new java.awt.GridBagLayout ()); 134 135 pSettings.setLayout(new java.awt.GridBagLayout ()); 136 137 java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/netbeans/modules/debugger/jpda/ui/breakpoints/Bundle"); pSettings.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("L_Field_Breakpoint_BorderTitle"))); jLabel2.setLabelFor(tfPackageName); 140 org.openide.awt.Mnemonics.setLocalizedText(jLabel2, bundle.getString("L_Field_Breakpoint_Package_Name")); gridBagConstraints = new java.awt.GridBagConstraints (); 142 gridBagConstraints.gridx = 0; 143 gridBagConstraints.gridy = 0; 144 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 145 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 146 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 147 pSettings.add(jLabel2, gridBagConstraints); 148 jLabel2.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_L_Field_Breakpoint_Package_Name")); 150 jLabel3.setLabelFor(tfClassName); 151 org.openide.awt.Mnemonics.setLocalizedText(jLabel3, bundle.getString("L_Field_Breakpoint_Class_Name")); gridBagConstraints = new java.awt.GridBagConstraints (); 153 gridBagConstraints.gridx = 0; 154 gridBagConstraints.gridy = 1; 155 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 156 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 157 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 158 pSettings.add(jLabel3, gridBagConstraints); 159 jLabel3.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_L_Field_Breakpoint_Class_Name")); 161 jLabel5.setLabelFor(tfCondition); 162 org.openide.awt.Mnemonics.setLocalizedText(jLabel5, bundle.getString("L_Field_Breakpoint_Condition")); gridBagConstraints = new java.awt.GridBagConstraints (); 164 gridBagConstraints.gridx = 0; 165 gridBagConstraints.gridy = 4; 166 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 167 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 168 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 169 pSettings.add(jLabel5, gridBagConstraints); 170 jLabel5.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_L_Field_Breakpoint_Condition")); 172 tfCondition.setToolTipText(bundle.getString("TTT_TF_Field_Breakpoint_Condition")); gridBagConstraints = new java.awt.GridBagConstraints (); 174 gridBagConstraints.gridx = 1; 175 gridBagConstraints.gridy = 4; 176 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 177 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 178 pSettings.add(tfCondition, gridBagConstraints); 179 tfCondition.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_TF_Field_Breakpoint_Condition")); 181 tfPackageName.setToolTipText(bundle.getString("TTT_TF_Field_Breakpoint_Package_Name")); gridBagConstraints = new java.awt.GridBagConstraints (); 183 gridBagConstraints.gridx = 1; 184 gridBagConstraints.gridy = 0; 185 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 186 gridBagConstraints.weightx = 1.0; 187 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 188 pSettings.add(tfPackageName, gridBagConstraints); 189 tfPackageName.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_TF_Field_Breakpoint_Package_Name")); 191 tfClassName.setToolTipText(bundle.getString("TTT_TF_Field_Breakpoint_Class_Name")); gridBagConstraints = new java.awt.GridBagConstraints (); 193 gridBagConstraints.gridx = 1; 194 gridBagConstraints.gridy = 1; 195 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 196 gridBagConstraints.weightx = 1.0; 197 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 198 pSettings.add(tfClassName, gridBagConstraints); 199 tfClassName.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_TF_Field_Breakpoint_Class_Name")); 201 jLabel1.setLabelFor(tfFieldName); 202 org.openide.awt.Mnemonics.setLocalizedText(jLabel1, bundle.getString("L_Field_Breakpoint_Field_Name")); gridBagConstraints = new java.awt.GridBagConstraints (); 204 gridBagConstraints.gridx = 0; 205 gridBagConstraints.gridy = 2; 206 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 207 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 208 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 209 pSettings.add(jLabel1, gridBagConstraints); 210 jLabel1.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_L_Field_Breakpoint_Field_Name")); 212 tfFieldName.setToolTipText(bundle.getString("TTT_TF_Field_Breakpoint_Field_Name")); gridBagConstraints = new java.awt.GridBagConstraints (); 214 gridBagConstraints.gridx = 1; 215 gridBagConstraints.gridy = 2; 216 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 217 gridBagConstraints.weightx = 1.0; 218 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 219 pSettings.add(tfFieldName, gridBagConstraints); 220 tfFieldName.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_TF_Field_Breakpoint_Field_Name")); 222 jLabel4.setLabelFor(cbBreakpointType); 223 org.openide.awt.Mnemonics.setLocalizedText(jLabel4, bundle.getString("L_Field_Breakpoint_Type")); gridBagConstraints = new java.awt.GridBagConstraints (); 225 gridBagConstraints.gridx = 0; 226 gridBagConstraints.gridy = 3; 227 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 228 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 229 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 230 pSettings.add(jLabel4, gridBagConstraints); 231 jLabel4.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_L_Field_Breakpoint_Type")); 233 cbBreakpointType.setToolTipText(bundle.getString("TTT_CB_Field_Breakpoint_Type")); gridBagConstraints = new java.awt.GridBagConstraints (); 235 gridBagConstraints.gridx = 1; 236 gridBagConstraints.gridy = 3; 237 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 238 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 239 pSettings.add(cbBreakpointType, gridBagConstraints); 240 cbBreakpointType.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_CB_Field_Breakpoint_Type")); 242 gridBagConstraints = new java.awt.GridBagConstraints (); 243 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 244 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 245 gridBagConstraints.weightx = 1.0; 246 add(pSettings, gridBagConstraints); 247 248 pActions.setLayout(new java.awt.BorderLayout ()); 249 250 gridBagConstraints = new java.awt.GridBagConstraints (); 251 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 252 gridBagConstraints.weightx = 1.0; 253 add(pActions, gridBagConstraints); 254 255 gridBagConstraints = new java.awt.GridBagConstraints (); 256 gridBagConstraints.gridx = 0; 257 gridBagConstraints.gridy = 2; 258 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 259 gridBagConstraints.weightx = 1.0; 260 gridBagConstraints.weighty = 1.0; 261 add(jPanel1, gridBagConstraints); 262 263 } 265 266 268 273 public boolean ok () { 274 if (! isFilled()) { 275 JOptionPane.showMessageDialog(this, 276 java.util.ResourceBundle.getBundle("org/netbeans/modules/debugger/jpda/ui/breakpoints/Bundle") 277 .getString("MSG_No_Class_or_Field_Name_Spec")); 278 return false; 279 } 280 actionsPanel.ok (); 281 String className = ((String ) tfPackageName.getText ()).trim (); 282 if (className.length () > 0) 283 className += '.'; 284 className += tfClassName.getText ().trim (); 285 breakpoint.setClassName (className); 286 breakpoint.setFieldName (tfFieldName.getText ().trim ()); 287 switch (cbBreakpointType.getSelectedIndex ()) { 288 case 0: 289 breakpoint.setBreakpointType (FieldBreakpoint.TYPE_ACCESS); 290 break; 291 case 1: 292 breakpoint.setBreakpointType (FieldBreakpoint.TYPE_MODIFICATION); 293 break; 294 } 295 breakpoint.setCondition (tfCondition.getText ()); 296 297 if (createBreakpoint) 298 DebuggerManager.getDebuggerManager ().addBreakpoint (breakpoint); 299 return true; 300 } 301 302 307 public boolean cancel () { 308 return true; 309 } 310 311 318 public boolean isValid () { 319 return true; 320 } 321 322 boolean isFilled () { 323 if (tfClassName.getText().trim ().length() > 0 && 324 tfFieldName.getText().trim ().length() > 0) 325 return true; 326 return false; 327 } 328 329 330 private javax.swing.JComboBox cbBreakpointType; 332 private javax.swing.JLabel jLabel1; 333 private javax.swing.JLabel jLabel2; 334 private javax.swing.JLabel jLabel3; 335 private javax.swing.JLabel jLabel4; 336 private javax.swing.JLabel jLabel5; 337 private javax.swing.JPanel jPanel1; 338 private javax.swing.JPanel pActions; 339 private javax.swing.JPanel pSettings; 340 private javax.swing.JTextField tfClassName; 341 private javax.swing.JTextField tfCondition; 342 private javax.swing.JTextField tfFieldName; 343 private javax.swing.JTextField tfPackageName; 344 346 } 347 | Popular Tags |