1 19 20 package org.netbeans.modules.xml.wsdl.ui.api.property; 21 22 import java.util.ArrayList ; 23 import java.util.HashMap ; 24 import java.util.Map ; 25 26 import javax.swing.ComboBoxModel ; 27 import javax.swing.DefaultComboBoxModel ; 28 import javax.swing.JList ; 29 30 import org.openide.explorer.propertysheet.PropertyEnv; 31 32 36 public class PartsSelectorPanel extends javax.swing.JPanel { 37 38 41 private static final long serialVersionUID = 8696139559577226547L; 42 private int[] selectedIndices; 43 44 45 public PartsSelectorPanel(String [] parts, String [] selectedPartNames, PropertyEnv env) { 46 mEnv = env; 47 mEnv.setState(PropertyEnv.STATE_INVALID); 48 mParts = parts; 49 if (selectedPartNames != null && selectedPartNames.length == 1 && selectedPartNames[0].trim().length() == 0) { 50 selectedIndices = null; 51 } else { 52 selectedIndices = new int[selectedPartNames.length]; 53 Map <String , Integer > map = new HashMap <String , Integer >(); 54 int j = 0; 55 for (String part : parts) { 56 map.put(part, new Integer (j++)); 57 } 58 59 for (int i = 0; i < selectedPartNames.length; i++) { 60 String partName = selectedPartNames[i]; 61 if (map.containsKey(partName)) { 62 selectedIndices[i] = map.get(partName).intValue(); 63 } else { 64 selectedIndices[i] = -1; 65 } 66 } 67 } 68 initComponents(); 69 70 } 71 72 77 private void initComponents() { 79 jScrollPane1 = new javax.swing.JScrollPane (); 80 jList1 = new javax.swing.JList (); 81 82 ComboBoxModel model = new DefaultComboBoxModel (mParts); 83 jList1.setModel(model); 84 if (selectedIndices != null) 85 jList1.setSelectedIndices(selectedIndices); 86 jList1.setToolTipText(org.openide.util.NbBundle.getMessage(PartsSelectorPanel.class, "PartsSelectorPanel.jList1.toolTipText")); jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener () { 88 public void valueChanged(javax.swing.event.ListSelectionEvent evt) { 89 jList1ValueChanged(evt); 90 } 91 }); 92 93 jScrollPane1.setViewportView(jList1); 94 jList1.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(PartsSelectorPanel.class, "PartsSelectorPanel.jList1.AccessibleContext.accessibleName")); jList1.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(PartsSelectorPanel.class, "PartsSelectorPanel.jList1.AccessibleContext.accessibleDescription")); 97 org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); 98 this.setLayout(layout); 99 layout.setHorizontalGroup( 100 layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 101 .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 222, Short.MAX_VALUE) 102 ); 103 layout.setVerticalGroup( 104 layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 105 .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 220, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) 106 ); 107 } 109 private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) { enableOK(); 111 JList list = (JList ) evt.getSource(); 112 if (!list.getValueIsAdjusting()) { 113 Object [] sv = list.getSelectedValues(); 114 if (sv != null && sv.length > 0) { 115 116 } 117 } 118 } 120 private void enableOK() { 121 if (!okEnabled) { 122 mEnv.setState(PropertyEnv.STATE_VALID); 123 okEnabled = true; 124 } 125 126 } 127 128 @Override 129 public void removeNotify() { 130 if (mEnv.getState().equals(PropertyEnv.STATE_VALID)) { 131 Object [] selectedValues = jList1.getSelectedValues(); 132 StringBuffer strBuf = new StringBuffer (); 133 for (Object selectedValue : selectedValues) { 134 strBuf.append((String ) selectedValue).append(" "); 135 } 136 this.firePropertyChange(PartsSelectorPropertyEditor.PROP_NAME, null, strBuf.toString().trim()); 137 } 138 super.removeNotify(); 139 } 140 141 private boolean okEnabled = false; 142 private PropertyEnv mEnv; 143 private String [] mParts; 144 private javax.swing.JList jList1; 146 private javax.swing.JScrollPane jScrollPane1; 147 149 150 } 151 | Popular Tags |