KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > debugger > jpda > ui > breakpoints > FieldBreakpointPanel


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.debugger.jpda.ui.breakpoints;
21
22 import javax.swing.JPanel JavaDoc;
23 import javax.swing.JOptionPane JavaDoc;
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 /**
32  * @author Jan Jancura
33  */

34 // <RAVE>
35
// Implement HelpCtx.Provider interface to provide help ids for help system
36
// public class FieldBreakpointPanel extends JPanel implements Controller {
37
// ====
38
public class FieldBreakpointPanel extends JPanel JavaDoc implements Controller, org.openide.util.HelpCtx.Provider {
39 // </RAVE>
40

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     /** Creates new form LineBreakpointPanel */
61     public FieldBreakpointPanel () {
62         this (creteBreakpoint ());
63         createBreakpoint = true;
64     }
65     
66     /** Creates new form LineBreakpointPanel */
67     public FieldBreakpointPanel (FieldBreakpoint b) {
68         breakpoint = b;
69         initComponents ();
70         
71         String JavaDoc 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         // <RAVE>
96
// The help IDs for the AddBreakpointPanel panels have to be different from the
97
// values returned by getHelpCtx() because they provide different help
98
// in the 'Add Breakpoint' dialog and when invoked in the 'Breakpoints' view
99
putClientProperty("HelpID_AddBreakpointPanel", "debug.add.breakpoint.java.field"); // NOI18N
100
// </RAVE>
101
}
102     
103     // <RAVE>
104
// Implement getHelpCtx() with the correct helpID
105
public org.openide.util.HelpCtx getHelpCtx() {
106         return new org.openide.util.HelpCtx("NetbeansDebuggerBreakpointFieldJPDA"); // NOI18N
107
}
108     // </RAVE>
109

110     /** This method is called from within the constructor to
111      * initialize the form.
112      * WARNING: Do NOT modify this code. The content of this method is
113      * always regenerated by the Form Editor.
114      */

115     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
116
private void initComponents() {
117         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
118
119         pSettings = new javax.swing.JPanel JavaDoc();
120         jLabel2 = new javax.swing.JLabel JavaDoc();
121         jLabel3 = new javax.swing.JLabel JavaDoc();
122         jLabel5 = new javax.swing.JLabel JavaDoc();
123         tfCondition = new javax.swing.JTextField JavaDoc();
124         tfPackageName = new javax.swing.JTextField JavaDoc();
125         tfClassName = new javax.swing.JTextField JavaDoc();
126         jLabel1 = new javax.swing.JLabel JavaDoc();
127         tfFieldName = new javax.swing.JTextField JavaDoc();
128         jLabel4 = new javax.swing.JLabel JavaDoc();
129         cbBreakpointType = new javax.swing.JComboBox JavaDoc();
130         pActions = new javax.swing.JPanel JavaDoc();
131         jPanel1 = new javax.swing.JPanel JavaDoc();
132
133         setLayout(new java.awt.GridBagLayout JavaDoc());
134
135         pSettings.setLayout(new java.awt.GridBagLayout JavaDoc());
136
137         java.util.ResourceBundle JavaDoc bundle = java.util.ResourceBundle.getBundle("org/netbeans/modules/debugger/jpda/ui/breakpoints/Bundle"); // NOI18N
138
pSettings.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("L_Field_Breakpoint_BorderTitle"))); // NOI18N
139
jLabel2.setLabelFor(tfPackageName);
140         org.openide.awt.Mnemonics.setLocalizedText(jLabel2, bundle.getString("L_Field_Breakpoint_Package_Name")); // NOI18N
141
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(3, 3, 3, 3);
147         pSettings.add(jLabel2, gridBagConstraints);
148         jLabel2.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_L_Field_Breakpoint_Package_Name")); // NOI18N
149

150         jLabel3.setLabelFor(tfClassName);
151         org.openide.awt.Mnemonics.setLocalizedText(jLabel3, bundle.getString("L_Field_Breakpoint_Class_Name")); // NOI18N
152
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(3, 3, 3, 3);
158         pSettings.add(jLabel3, gridBagConstraints);
159         jLabel3.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_L_Field_Breakpoint_Class_Name")); // NOI18N
160

161         jLabel5.setLabelFor(tfCondition);
162         org.openide.awt.Mnemonics.setLocalizedText(jLabel5, bundle.getString("L_Field_Breakpoint_Condition")); // NOI18N
163
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(3, 3, 3, 3);
169         pSettings.add(jLabel5, gridBagConstraints);
170         jLabel5.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_L_Field_Breakpoint_Condition")); // NOI18N
171

172         tfCondition.setToolTipText(bundle.getString("TTT_TF_Field_Breakpoint_Condition")); // NOI18N
173
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
174         gridBagConstraints.gridx = 1;
175         gridBagConstraints.gridy = 4;
176         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
177         gridBagConstraints.insets = new java.awt.Insets JavaDoc(3, 3, 3, 3);
178         pSettings.add(tfCondition, gridBagConstraints);
179         tfCondition.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_TF_Field_Breakpoint_Condition")); // NOI18N
180

181         tfPackageName.setToolTipText(bundle.getString("TTT_TF_Field_Breakpoint_Package_Name")); // NOI18N
182
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(3, 3, 3, 3);
188         pSettings.add(tfPackageName, gridBagConstraints);
189         tfPackageName.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_TF_Field_Breakpoint_Package_Name")); // NOI18N
190

191         tfClassName.setToolTipText(bundle.getString("TTT_TF_Field_Breakpoint_Class_Name")); // NOI18N
192
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(3, 3, 3, 3);
198         pSettings.add(tfClassName, gridBagConstraints);
199         tfClassName.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_TF_Field_Breakpoint_Class_Name")); // NOI18N
200

201         jLabel1.setLabelFor(tfFieldName);
202         org.openide.awt.Mnemonics.setLocalizedText(jLabel1, bundle.getString("L_Field_Breakpoint_Field_Name")); // NOI18N
203
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(3, 3, 3, 3);
209         pSettings.add(jLabel1, gridBagConstraints);
210         jLabel1.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_L_Field_Breakpoint_Field_Name")); // NOI18N
211

212         tfFieldName.setToolTipText(bundle.getString("TTT_TF_Field_Breakpoint_Field_Name")); // NOI18N
213
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(3, 3, 3, 3);
219         pSettings.add(tfFieldName, gridBagConstraints);
220         tfFieldName.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_TF_Field_Breakpoint_Field_Name")); // NOI18N
221

222         jLabel4.setLabelFor(cbBreakpointType);
223         org.openide.awt.Mnemonics.setLocalizedText(jLabel4, bundle.getString("L_Field_Breakpoint_Type")); // NOI18N
224
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(3, 3, 3, 3);
230         pSettings.add(jLabel4, gridBagConstraints);
231         jLabel4.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_L_Field_Breakpoint_Type")); // NOI18N
232

233         cbBreakpointType.setToolTipText(bundle.getString("TTT_CB_Field_Breakpoint_Type")); // NOI18N
234
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
235         gridBagConstraints.gridx = 1;
236         gridBagConstraints.gridy = 3;
237         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
238         gridBagConstraints.insets = new java.awt.Insets JavaDoc(3, 3, 3, 3);
239         pSettings.add(cbBreakpointType, gridBagConstraints);
240         cbBreakpointType.getAccessibleContext().setAccessibleDescription(bundle.getString("ACSD_CB_Field_Breakpoint_Type")); // NOI18N
241

242         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc());
249
250         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
251         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
252         gridBagConstraints.weightx = 1.0;
253         add(pActions, gridBagConstraints);
254
255         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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     }// </editor-fold>//GEN-END:initComponents
264

265     
266     // Controller implementation ...............................................
267

268     /**
269      * Called when "Ok" button is pressed.
270      *
271      * @return whether customizer can be closed
272      */

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 JavaDoc className = ((String JavaDoc) 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     /**
303      * Called when "Cancel" button is pressed.
304      *
305      * @return whether customizer can be closed
306      */

307     public boolean cancel () {
308         return true;
309     }
310     
311     /**
312      * Return <code>true</code> whether value of this customizer
313      * is valid (and OK button can be enabled).
314      *
315      * @return <code>true</code> whether value of this customizer
316      * is valid
317      */

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     // Variables declaration - do not modify//GEN-BEGIN:variables
331
private javax.swing.JComboBox JavaDoc cbBreakpointType;
332     private javax.swing.JLabel JavaDoc jLabel1;
333     private javax.swing.JLabel JavaDoc jLabel2;
334     private javax.swing.JLabel JavaDoc jLabel3;
335     private javax.swing.JLabel JavaDoc jLabel4;
336     private javax.swing.JLabel JavaDoc jLabel5;
337     private javax.swing.JPanel JavaDoc jPanel1;
338     private javax.swing.JPanel JavaDoc pActions;
339     private javax.swing.JPanel JavaDoc pSettings;
340     private javax.swing.JTextField JavaDoc tfClassName;
341     private javax.swing.JTextField JavaDoc tfCondition;
342     private javax.swing.JTextField JavaDoc tfFieldName;
343     private javax.swing.JTextField JavaDoc tfPackageName;
344     // End of variables declaration//GEN-END:variables
345

346 }
347
Popular Tags