KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > tasklist > timerwin > UTChooserPanel


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.tasklist.timerwin;
21
22 import java.awt.Dialog JavaDoc;
23 import java.awt.Dimension JavaDoc;
24 import java.awt.Image JavaDoc;
25 import javax.swing.ImageIcon JavaDoc;
26 import javax.swing.border.EmptyBorder JavaDoc;
27 import javax.swing.tree.DefaultTreeCellRenderer JavaDoc;
28 import javax.swing.tree.TreePath JavaDoc;
29 import org.netbeans.modules.tasklist.usertasks.model.UserTask;
30 import org.netbeans.modules.tasklist.usertasks.model.UserTaskList;
31 import org.netbeans.modules.tasklist.usertasks.renderers.UserTaskIconProvider;
32 import org.openide.DialogDescriptor;
33 import org.openide.DialogDisplayer;
34 import org.openide.filesystems.FileUtil;
35 import org.openide.util.NbBundle;
36 import org.openide.util.Utilities;
37
38 /**
39  * Chooser for a user task.
40  *
41  * @author tl
42  */

43 public class UTChooserPanel extends javax.swing.JPanel JavaDoc {
44     /**
45      * Tree cell renderer for user tasks
46      */

47     private static class MyTreeCellRenderer extends DefaultTreeCellRenderer JavaDoc {
48         private ImageIcon JavaDoc icon = new ImageIcon JavaDoc();
49         
50         public java.awt.Component JavaDoc getTreeCellRendererComponent(
51             javax.swing.JTree JavaDoc tree, Object JavaDoc value, boolean sel, boolean expanded,
52             boolean leaf, int row, boolean hasFocus) {
53             
54             super.getTreeCellRendererComponent(
55                 tree, value, sel, expanded, leaf, row, hasFocus);
56             if (value instanceof UserTask) {
57                 UserTask ut = (UserTask) value;
58                 this.setText(ut.getSummary());
59                 this.setIcon(icon);
60
61                 icon.setImage(UserTaskIconProvider.getUserTaskImage(ut, false));
62             } else if (value instanceof UserTaskList) {
63                 UserTaskList utl = (UserTaskList) value;
64                 this.setText(FileUtil.getFileDisplayName(utl.getFile()));
65                 this.setIcon(icon);
66                 icon.setImage(UserTaskIconProvider.getUserTaskListImage());
67             }
68             
69             return this;
70         }
71     }
72     
73     /**
74      * Shows a dialog for choosing a task.
75      *
76      * @return choosed task or null if cancelled
77      */

78     public static UserTask choose() {
79         UTChooserPanel dp = new UTChooserPanel();
80         dp.setBorder(new EmptyBorder JavaDoc(11, 11, 12, 12));
81         DialogDescriptor dd = new DialogDescriptor(dp,
82             NbBundle.getMessage(
83                 UTChooserPanel.class, "ChooseTask")); // NOI18N
84
dp.dd = dd;
85         dd.setValid(false);
86         Dialog JavaDoc d = DialogDisplayer.getDefault().createDialog(dd);
87         d.setBounds(Utilities.findCenterBounds(new Dimension JavaDoc(400, 400)));
88         d.show();
89         if (dd.getValue() == DialogDescriptor.OK_OPTION) {
90             return dp.getSelectedUserTask();
91         } else {
92             return null;
93         }
94     }
95     
96     private DialogDescriptor dd;
97     
98     /**
99      * Creates new form UTChooserPanel
100      */

101     public UTChooserPanel() {
102         initComponents();
103         jTree.setCellRenderer(new MyTreeCellRenderer());
104         jTree.setModel(new AllUserTasksTreeModel());
105     }
106     
107     /**
108      * Returns selected user task or null.
109      *
110      * @return selected user task or null
111      */

112     public UserTask getSelectedUserTask() {
113         TreePath JavaDoc tp = jTree.getSelectionPath();
114         if (tp == null)
115             return null;
116         Object JavaDoc obj = tp.getLastPathComponent();
117         if (obj instanceof UserTask)
118             return (UserTask) obj;
119         else
120             return null;
121     }
122     
123     /**
124      * This method is called from within the constructor to
125      * initialize the form.
126      * WARNING: Do NOT modify this code. The content of this method is
127      * always regenerated by the Form Editor.
128      */

129     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
130
private void initComponents() {
131         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
132
133         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
134         jTree = new javax.swing.JTree JavaDoc();
135         jLabel1 = new javax.swing.JLabel JavaDoc();
136
137         setLayout(new java.awt.GridBagLayout JavaDoc());
138
139         jTree.setRootVisible(false);
140         jTree.setShowsRootHandles(true);
141         jTree.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener JavaDoc() {
142             public void valueChanged(javax.swing.event.TreeSelectionEvent JavaDoc evt) {
143                 jTreeValueChanged(evt);
144             }
145         });
146
147         jScrollPane1.setViewportView(jTree);
148
149         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
150         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
151         gridBagConstraints.weightx = 1.0;
152         gridBagConstraints.weighty = 1.0;
153         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 11, 0);
154         add(jScrollPane1, gridBagConstraints);
155
156         jLabel1.setText(" ");
157         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
158         gridBagConstraints.gridx = 0;
159         gridBagConstraints.gridy = 1;
160         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
161         add(jLabel1, gridBagConstraints);
162
163     }// </editor-fold>//GEN-END:initComponents
164

165     private void jTreeValueChanged(javax.swing.event.TreeSelectionEvent JavaDoc evt) {//GEN-FIRST:event_jTreeValueChanged
166
UserTask ut = getSelectedUserTask();
167         dd.setValid(ut != null && ut.isStartable() && !ut.isStarted());
168     }//GEN-LAST:event_jTreeValueChanged
169

170     
171     // Variables declaration - do not modify//GEN-BEGIN:variables
172
private javax.swing.JLabel JavaDoc jLabel1;
173     private javax.swing.JScrollPane JavaDoc jScrollPane1;
174     private javax.swing.JTree JavaDoc jTree;
175     // End of variables declaration//GEN-END:variables
176

177 }
178
Popular Tags