1 19 package org.netbeans.modules.j2ee.websphere6.dd.loaders; 20 21 import java.awt.Component ; 22 import java.util.List ; 23 import java.util.Iterator ; 24 25 import javax.swing.*; 26 import javax.swing.border.EmptyBorder ; 27 import javax.swing.event.ListSelectionListener ; 28 import javax.swing.event.ListSelectionEvent ; 29 30 import org.openide.util.NbBundle; 31 import org.openide.filesystems.FileStateInvalidException; 32 33 38 public class DDChangesPanel extends JPanel { 39 40 private JPanel changesPanel; 41 private JScrollPane jScrollPane1; 42 JList changesList; 43 44 DefaultListModel listModel; 45 46 47 public DDChangesPanel(String caption, final JButton processButton) { 48 setLayout(new java.awt.BorderLayout (0, 12)); 49 setBorder(new EmptyBorder (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")); text.setBackground(UIManager.getColor("Label.background")); text.setLineWrap(true); 57 text.setWrapStyleWord(true); 58 text.setText(caption); 59 add(text, "North"); 61 changesPanel = new JPanel(); 62 changesPanel.setLayout(new java.awt.BorderLayout (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")); changesPanel.add(changesLabel, "North"); 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 () { 77 public void valueChanged(ListSelectionEvent 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"); 89 add(changesPanel, "Center"); } 91 92 public java.awt.Dimension getPreferredSize() { 93 return new java.awt.Dimension (600, 400); 94 } 95 96 public synchronized void setChanges(List changes) { 97 listModel.clear(); 98 if (changes != null) { 99 Iterator 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 getListCellRendererComponent(JList list, Object value, 116 int index, boolean isSelected, 117 boolean cellHasFocus) { 118 Component 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 label = ""; String 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 fsname; 129 try { 130 fsname = evt.getOldDD().getPrimaryFile().getFileSystem().getDisplayName(); 131 } catch (FileStateInvalidException e) { 132 fsname = ""; } 134 label = NbBundle.getMessage(DDChangesPanel.class, "LAB_moveServletElement", clz, fsname); 135 } 136 137 ((JLabel)comp).setText(label); 138 } 139 } catch (Exception e) { 140 e.printStackTrace(); 141 } 142 return comp; 143 } 144 } 145 } 146 | Popular Tags |