1 19 20 25 26 package org.netbeans.modules.xml.wsdl.ui.view; 27 28 import java.awt.Dialog ; 29 import java.awt.event.ActionEvent ; 30 import java.awt.event.ActionListener ; 31 import java.awt.event.InputEvent ; 32 import java.awt.event.KeyEvent ; 33 import java.beans.PropertyChangeEvent ; 34 import java.beans.PropertyChangeListener ; 35 import java.util.Map ; 36 37 import javax.swing.AbstractAction ; 38 import javax.swing.JTable ; 39 import javax.swing.JTextField ; 40 import javax.swing.KeyStroke ; 41 42 import org.netbeans.api.project.Project; 43 import org.netbeans.modules.xml.schema.model.SchemaComponent; 44 import org.netbeans.modules.xml.wsdl.model.WSDLModel; 45 import org.openide.DialogDescriptor; 46 import org.openide.DialogDisplayer; 47 import org.openide.util.NbBundle; 48 49 53 public class ElementOrTypeChooserEditorPanel extends javax.swing.JPanel { 54 55 private final JTable mPartsTable; 56 private final Map <String , String > namespaceToPrefixMap; 57 private Project mProject; 58 private WSDLModel mModel; 59 61 public ElementOrTypeChooserEditorPanel(JTable partsTable, Map <String , String > namespaceToPrefixMap, Project project, WSDLModel model ) { 62 this.mPartsTable = partsTable; 63 this.namespaceToPrefixMap = namespaceToPrefixMap; 64 mProject = project; 65 mModel = model; 66 initComponents(); 67 initGUI(); 68 } 69 70 75 private void initComponents() { 77 java.awt.GridBagConstraints gridBagConstraints; 78 79 jTextField1 = new javax.swing.JTextField (); 80 jButton1 = new javax.swing.JButton (); 81 82 setLayout(new java.awt.GridBagLayout ()); 83 84 jTextField1.setEditable(false); 85 jTextField1.setFocusable(false); 86 jTextField1.setMargin(new java.awt.Insets (0, 0, 0, 0)); 87 gridBagConstraints = new java.awt.GridBagConstraints (); 88 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 89 gridBagConstraints.weightx = 1.0; 90 add(jTextField1, gridBagConstraints); 91 92 jButton1.setBackground(new java.awt.Color (255, 255, 255)); 93 jButton1.setText("..."); 94 jButton1.setFocusCycleRoot(true); 95 jButton1.setMargin(new java.awt.Insets (0, 14, 0, 14)); 96 jButton1.setMaximumSize(new java.awt.Dimension (16, 16)); 97 jButton1.setMinimumSize(new java.awt.Dimension (16, 16)); 98 jButton1.setPreferredSize(new java.awt.Dimension (16, 16)); 99 jButton1.setSelected(true); 100 jButton1.addActionListener(new java.awt.event.ActionListener () { 101 public void actionPerformed(java.awt.event.ActionEvent evt) { 102 jButton1ActionPerformed(evt); 103 } 104 }); 105 106 add(jButton1, new java.awt.GridBagConstraints ()); 107 108 } 110 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { openSchemaComponentChooser(); 112 } 114 public void openSchemaComponentChooser() { 115 int rowNo = mPartsTable.getSelectedRow(); 116 PartAndElementOrTypeTableModel tableModel = ((PartAndElementOrTypeTableModel) mPartsTable.getModel()); 117 ElementOrType eot = (ElementOrType) tableModel.getValueAt(rowNo, 1); 118 if (eot != null) { 119 SchemaComponent comp = eot.getElement(); 120 if (comp == null) { 121 comp = eot.getType(); 122 } 123 panel = new ElementOrTypeChooserPanel(mProject, namespaceToPrefixMap, mModel, comp); 124 } else { 125 panel = new ElementOrTypeChooserPanel(mProject, namespaceToPrefixMap, mModel); 126 } 127 final DialogDescriptor descriptor = new DialogDescriptor(panel , NbBundle.getMessage(ElementOrTypeChooserEditorPanel.class, "ElementOrTypeChooserEditorPanel.Dialog.title"), true, null); 128 final PropertyChangeListener pcl = new PropertyChangeListener () { 129 public void propertyChange(PropertyChangeEvent evt) { 130 if(evt.getSource()== panel && evt.getPropertyName(). 131 equals(ElementOrTypeChooserPanel.PROP_ACTION_APPLY)) { 132 descriptor.setValid(((Boolean ) evt.getNewValue()).booleanValue()); 133 } 134 } 135 }; 136 panel.addPropertyChangeListener(pcl); 137 ActionListener al = new ActionListener () { 139 public void actionPerformed(ActionEvent evt) { 140 if (evt.getSource().equals(DialogDescriptor.OK_OPTION) || 141 evt.getSource().equals(DialogDescriptor.CANCEL_OPTION) || 142 evt.getSource().equals(DialogDescriptor.CLOSED_OPTION)) { 143 panel.removePropertyChangeListener(pcl); 144 } 145 if (evt.getSource().equals(DialogDescriptor.OK_OPTION)) { 146 panel.apply(); 147 int rNo = mPartsTable.getSelectedRow(); 148 PartAndElementOrTypeTableModel tModel = ((PartAndElementOrTypeTableModel) mPartsTable.getModel()); 149 tModel.setValueAt(panel.getSelectedComponent(), rNo, 1); 150 mPartsTable.getColumnModel().getColumn(1).getCellEditor().stopCellEditing(); 151 mPartsTable.setEditingRow(rNo); 152 } 153 } 154 }; 155 descriptor.setButtonListener(al); 156 descriptor.setValid(false); 157 Dialog dialog = DialogDisplayer.getDefault().createDialog(descriptor); 158 dialog.setVisible(true); 159 dialog.toFront(); 160 } 161 162 public JTextField getJTextField() { 163 return this.jTextField1; 164 } 165 166 167 private void initGUI() { 168 SchemaChooserKeyAction action = new SchemaChooserKeyAction(); 169 this.mPartsTable.getActionMap().put("SCHEMA_CHOOSER", action); this.mPartsTable.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, InputEvent.CTRL_DOWN_MASK), "SCHEMA_CHOOSER"); 172 } 173 174 class SchemaChooserKeyAction extends AbstractAction { 175 public void actionPerformed(ActionEvent e) { 176 openSchemaComponentChooser(); 177 178 } 179 } 180 181 private javax.swing.JButton jButton1; 183 private javax.swing.JTextField jTextField1; 184 private ElementOrTypeChooserPanel panel; 186 } 187 | Popular Tags |