KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > j2ee > websphere6 > dd > loaders > DDChangesPanel


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 package org.netbeans.modules.j2ee.websphere6.dd.loaders;
20
21 import java.awt.Component JavaDoc;
22 import java.util.List JavaDoc;
23 import java.util.Iterator JavaDoc;
24
25 import javax.swing.*;
26 import javax.swing.border.EmptyBorder JavaDoc;
27 import javax.swing.event.ListSelectionListener JavaDoc;
28 import javax.swing.event.ListSelectionEvent JavaDoc;
29
30 import org.openide.util.NbBundle;
31 import org.openide.filesystems.FileStateInvalidException;
32
33 /** Panel that contains list of changes for deployment descriptor
34  * to accomodate recent servlet modification.
35  *
36  * @author Radim Kubacki
37  */

38 public class DDChangesPanel extends JPanel {
39     
40     private JPanel changesPanel;
41     private JScrollPane jScrollPane1;
42     /* pkg private */ JList changesList;
43     
44     /* pkg private */ DefaultListModel listModel;
45     
46     /** Initializes the Form */
47     public DDChangesPanel(String JavaDoc caption, final JButton processButton) {
48         setLayout(new java.awt.BorderLayout JavaDoc(0, 12));
49         setBorder(new EmptyBorder JavaDoc(12, 12, 11, 0));
50         
51         JTextArea text = new JTextArea();
52         text.setEnabled(false);
53         text.setEditable(false);
54         text.setDisabledTextColor(UIManager.getColor("Label.foreground")); // NOI18N
55
text.setBackground(UIManager.getColor("Label.background")); // NOI18N
56
text.setLineWrap(true);
57         text.setWrapStyleWord(true);
58         text.setText(caption);
59         add(text, "North"); // NOI18N
60

61         changesPanel = new JPanel();
62         changesPanel.setLayout(new java.awt.BorderLayout JavaDoc(5, 5));
63         
64         JLabel changesLabel = new JLabel();
65         changesLabel.setText(NbBundle.getMessage(DDChangesPanel.class, "LAB_ChangesList"));
66         changesLabel.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(DDChangesPanel.class, "ACS_ChangesListA11yDesc")); // NOI18N
67
changesPanel.add(changesLabel, "North"); // NOI18N
68

69         jScrollPane1 = new JScrollPane();
70         
71         listModel = new DefaultListModel();
72         
73         changesList = new JList(listModel);
74         changesList.setToolTipText(NbBundle.getMessage(DDChangesPanel.class, "HINT_ChangesList"));
75         changesList.setCellRenderer(new ChangesListCellRenderer());
76         changesList.addListSelectionListener(new ListSelectionListener JavaDoc() {
77             public void valueChanged(ListSelectionEvent JavaDoc e) {
78                 processButton.setEnabled(!changesList.isSelectionEmpty());
79             }
80         });
81         changesLabel.setLabelFor(changesList);
82         changesLabel.setDisplayedMnemonic(NbBundle.getMessage(DDChangesPanel.class, "LAB_ChangesList_Mnemonic").charAt(0));
83         getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(DDChangesPanel.class, "ACS_ChangesListA11yPanelDesc"));
84         
85         jScrollPane1.setViewportView(changesList);
86         
87         changesPanel.add(jScrollPane1, "Center"); // NOI18N
88

89         add(changesPanel, "Center"); // NOI18N
90
}
91     
92     public java.awt.Dimension JavaDoc getPreferredSize() {
93         return new java.awt.Dimension JavaDoc(600, 400);
94     }
95     
96     public synchronized void setChanges(List JavaDoc changes) {
97         listModel.clear();
98         if (changes != null) {
99             Iterator JavaDoc it = changes.iterator();
100             while (it.hasNext())
101                 listModel.addElement(it.next());
102         }
103     }
104     
105     public DefaultListModel getListModel() {
106         return listModel;
107     }
108     
109     public JList getChangesList() {
110         return changesList;
111     }
112     
113     static class ChangesListCellRenderer extends DefaultListCellRenderer {
114         
115         public Component JavaDoc getListCellRendererComponent(JList list, Object JavaDoc value,
116                 int index, boolean isSelected,
117                 boolean cellHasFocus) {
118             Component JavaDoc comp = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
119             try {
120                 if ((comp instanceof JLabel) && (value instanceof DDChangeEvent)) {
121                     DDChangeEvent evt = (DDChangeEvent)value;
122                     String JavaDoc label = ""; // NOI18N
123
String JavaDoc clz = evt.getNewValue();
124                     if (evt.getType() == DDChangeEvent.WEB_ADDED) {
125                         label = NbBundle.getMessage(DDChangesPanel.class, "LAB_addServletElement", clz);
126                     }
127                     else if (evt.getType() == DDChangeEvent.WEB_MOVED) {
128                         String JavaDoc fsname;
129                         try {
130                             fsname = evt.getOldDD().getPrimaryFile().getFileSystem().getDisplayName();
131                         } catch (FileStateInvalidException e) {
132                             fsname = ""; // NOI18N
133
}
134                         label = NbBundle.getMessage(DDChangesPanel.class, "LAB_moveServletElement", clz, fsname);
135                     }
136                     
137                     ((JLabel)comp).setText(label);
138                 }
139             } catch (Exception JavaDoc e) {
140                 e.printStackTrace();
141             }
142             return comp;
143         }
144     }
145 }
146
Popular Tags