1 19 20 package org.netbeans.core.execution.beaninfo.editors; 21 22 import java.beans.PropertyChangeEvent ; 23 import java.beans.PropertyChangeListener ; 24 import java.io.File ; 25 26 import javax.swing.JFileChooser ; 27 28 import org.openide.execution.NbProcessDescriptor; 29 import org.openide.explorer.propertysheet.PropertyEnv; 30 import org.openide.util.HelpCtx; 31 import org.openide.util.NbBundle; 32 33 37 public class NbProcessDescriptorCustomEditor extends javax.swing.JPanel 38 implements PropertyChangeListener { 39 private NbProcessDescriptorEditor editor; 40 41 private static int DEFAULT_WIDTH = 530; 42 private static int DEFAULT_HEIGHT = 400; 43 44 static final long serialVersionUID =-2766277953540349247L; 45 48 public NbProcessDescriptorCustomEditor (NbProcessDescriptorEditor editor, PropertyEnv env) { 49 this.editor = editor; 50 initComponents (); 51 52 if ( editor.pd != null ) { 53 processField.setText (editor.pd.getProcessName ()); 54 argumentsArea.setText (editor.pd.getArguments ()); 55 hintArea.setText (editor.pd.getInfo ()); 56 } 57 58 59 processField.getAccessibleContext().setAccessibleDescription(getString("ACSD_NbProcessDescriptorCustomEditor.processLabel")); 60 argumentsArea.getAccessibleContext().setAccessibleDescription(getString("ACSD_NbProcessDescriptorCustomEditor.argumentsLabel")); 61 hintArea.getAccessibleContext().setAccessibleDescription(getString("ACSD_NbProcessDescriptorCustomEditor.argumentKeyLabel")); 62 jButton1.getAccessibleContext().setAccessibleDescription(getString("ACSD_NbProcessDescriptorCustomEditor.jButton1")); 63 64 getAccessibleContext().setAccessibleDescription(getString("ACSD_CustomNbProcessDescriptorEditor")); 65 66 HelpCtx.setHelpIDString (this, NbProcessDescriptorCustomEditor.class.getName ()); 67 68 env.setState(PropertyEnv.STATE_NEEDS_VALIDATION); 69 env.addPropertyChangeListener(this); 70 } 71 72 public java.awt.Dimension getPreferredSize() { 73 java.awt.Dimension inh = super.getPreferredSize (); 74 return new java.awt.Dimension (DEFAULT_WIDTH, Math.max (inh.height, DEFAULT_HEIGHT)); 75 } 76 77 82 private Object getPropertyValue () throws IllegalStateException { 83 if ( editor.pd == null ) 84 return new NbProcessDescriptor (processField.getText (), argumentsArea.getText () ); 85 return new NbProcessDescriptor (processField.getText (), argumentsArea.getText (), editor.pd.getInfo ()); 86 } 87 88 public void propertyChange(PropertyChangeEvent evt) { 89 if (PropertyEnv.PROP_STATE.equals(evt.getPropertyName()) && evt.getNewValue() == PropertyEnv.STATE_VALID) { 90 editor.setValue(getPropertyValue()); 91 } 92 } 93 94 99 private void initComponents() { 101 java.awt.GridBagConstraints gridBagConstraints; 102 103 processLabel = new javax.swing.JLabel (); 104 processField = new javax.swing.JTextField (); 105 jButton1 = new javax.swing.JButton (); 106 argumentsLabel = new javax.swing.JLabel (); 107 argumentsScrollPane = new javax.swing.JScrollPane (); 108 argumentsArea = new javax.swing.JTextArea (); 109 jPanel1 = new javax.swing.JPanel (); 110 argumentKeyLabel = new javax.swing.JLabel (); 111 jScrollPane1 = new javax.swing.JScrollPane (); 112 hintArea = new javax.swing.JTextArea (); 113 114 setBorder(javax.swing.BorderFactory.createEmptyBorder(12, 12, 0, 11)); 115 setLayout(new java.awt.GridBagLayout ()); 116 117 processLabel.setLabelFor(processField); 118 org.openide.awt.Mnemonics.setLocalizedText(processLabel, getString("CTL_NbProcessDescriptorCustomEditor.processLabel.text")); gridBagConstraints = new java.awt.GridBagConstraints (); 120 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 121 gridBagConstraints.insets = new java.awt.Insets (0, 0, 5, 12); 122 add(processLabel, gridBagConstraints); 123 gridBagConstraints = new java.awt.GridBagConstraints (); 124 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.RELATIVE; 125 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 126 gridBagConstraints.weightx = 3.0; 127 gridBagConstraints.insets = new java.awt.Insets (0, 0, 5, 5); 128 add(processField, gridBagConstraints); 129 130 org.openide.awt.Mnemonics.setLocalizedText(jButton1, getString("CTL_NbProcessDescriptorCustomEditor.jButton1.text")); jButton1.addActionListener(new java.awt.event.ActionListener () { 132 public void actionPerformed(java.awt.event.ActionEvent evt) { 133 jButton1ActionPerformed(evt); 134 } 135 }); 136 gridBagConstraints = new java.awt.GridBagConstraints (); 137 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 138 gridBagConstraints.insets = new java.awt.Insets (0, 0, 5, 0); 139 add(jButton1, gridBagConstraints); 140 141 argumentsLabel.setLabelFor(argumentsArea); 142 org.openide.awt.Mnemonics.setLocalizedText(argumentsLabel, org.openide.util.NbBundle.getMessage(NbProcessDescriptorCustomEditor.class, "CTL_NbProcessDescriptorCustomEditor.argumentsLabel.text")); gridBagConstraints = new java.awt.GridBagConstraints (); 144 gridBagConstraints.gridx = 0; 145 gridBagConstraints.gridy = 1; 146 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 147 gridBagConstraints.insets = new java.awt.Insets (0, 0, 11, 12); 148 add(argumentsLabel, gridBagConstraints); 149 150 argumentsScrollPane.setMinimumSize(new java.awt.Dimension (22, 35)); 151 argumentsScrollPane.setViewportView(argumentsArea); 152 153 gridBagConstraints = new java.awt.GridBagConstraints (); 154 gridBagConstraints.gridx = 1; 155 gridBagConstraints.gridy = 1; 156 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 157 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 158 gridBagConstraints.weightx = 1.0; 159 gridBagConstraints.weighty = 1.0; 160 gridBagConstraints.insets = new java.awt.Insets (0, 0, 11, 0); 161 add(argumentsScrollPane, gridBagConstraints); 162 163 jPanel1.setLayout(new java.awt.BorderLayout (0, 2)); 164 165 argumentKeyLabel.setLabelFor(hintArea); 166 org.openide.awt.Mnemonics.setLocalizedText(argumentKeyLabel, getString("CTL_NbProcessDescriptorCustomEditor.argumentKeyLabel.text")); jPanel1.add(argumentKeyLabel, java.awt.BorderLayout.NORTH); 168 169 hintArea.setLineWrap(true); 170 hintArea.setEditable(false); 171 hintArea.setBackground((java.awt.Color ) javax.swing.UIManager.getDefaults ().get ("Label.background")); 172 jScrollPane1.setViewportView(hintArea); 173 174 jPanel1.add(jScrollPane1, java.awt.BorderLayout.CENTER); 175 176 gridBagConstraints = new java.awt.GridBagConstraints (); 177 gridBagConstraints.gridwidth = 3; 178 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 179 gridBagConstraints.weightx = 7.0; 180 gridBagConstraints.weighty = 7.0; 181 add(jPanel1, gridBagConstraints); 182 } 184 private void jButton1ActionPerformed (java.awt.event.ActionEvent evt) { JFileChooser chooser = org.netbeans.beaninfo.editors.FileEditor.createHackedFileChooser(); 187 chooser.setMultiSelectionEnabled (false); 188 File init = new File (processField.getText()); if (init.isFile()) { 190 chooser.setCurrentDirectory(init.getParentFile()); 191 chooser.setSelectedFile(init); 192 } 193 int retVal = chooser.showOpenDialog (this); 194 if (retVal == JFileChooser.APPROVE_OPTION) { 195 String absolute_name = chooser.getSelectedFile ().getAbsolutePath (); 196 processField.setText (absolute_name); 198 } 199 } 201 202 203 204 private javax.swing.JLabel argumentKeyLabel; 206 private javax.swing.JTextArea argumentsArea; 207 private javax.swing.JLabel argumentsLabel; 208 private javax.swing.JScrollPane argumentsScrollPane; 209 private javax.swing.JTextArea hintArea; 210 private javax.swing.JButton jButton1; 211 private javax.swing.JPanel jPanel1; 212 private javax.swing.JScrollPane jScrollPane1; 213 private javax.swing.JTextField processField; 214 private javax.swing.JLabel processLabel; 215 217 private static final String getString(String s) { 218 return NbBundle.getMessage(NbProcessDescriptorCustomEditor.class, s); 219 } 220 221 } 222 | Popular Tags |