|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun * Microsystems, Inc. All Rights Reserved. */ package org.openide.explorer.propertysheet.editors; import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionEvent; import org.openide.explorer.propertysheet.editors.EnhancedCustomPropertyEditor; import org.openide.util.HelpCtx; import org.openide.util.NbBundle; /** Custom editor for ErrorExpression property of external compilers. * * @author Jan Formanek */ final class ErrorExpressionPanel extends javax.swing.JPanel implements EnhancedCustomPropertyEditor { /** Reference to ErrorDescriptionPropertyEditor */ private ExternalCompiler.ErrorExpressionEditor editor; static final long serialVersionUID =-2763818133650482979L; /** Initializes the Form * @param ed an ErrorDescriptionPropertyEditor instance */ public ErrorExpressionPanel(ExternalCompiler.ErrorExpressionEditor ed) { editor = ed; // make a copy of the current value descriptions = (org.openide.compiler.ExternalCompiler.ErrorExpression)ed.getValue (); initComponents (); // localize components addButton.setText(getString("CTL_AddError")); addButton.setToolTipText(getString("CTL_AddError_tip")); removeButton.setText(getString("CTL_RemoveError")); removeButton.setToolTipText(getString("CTL_RemoveError_tip")); setButton.setText(getString("CTL_SetError")); setButton.setToolTipText(getString("CTL_SetError_tip")); presetNameLabel.setText(getString("CTL_Preset_label")); errorDescriptionLabel.setText(getString("CTL_Error_label")); filePositionLabel.setText(getString("CTL_File_label")); linePositionLabel.setText(getString("CTL_Line_label")); columnPositionLabel.setText(getString("CTL_Column_label")); descriptionPositionLabel.setText(getString("CTL_Description_label")); errorDescriptionsLabel.setText(getString("CTL_Descriptions")); addButton.setMnemonic(getString("CTL_AddError_Mnemonic").charAt(0)); removeButton.setMnemonic(getString("CTL_RemoveError_Mnemonic").charAt(0)); setButton.setMnemonic(getString("CTL_SetError_Mnemonic").charAt(0)); presetNameLabel.setDisplayedMnemonic(getString("CTL_Preset_label_Mnemonic").charAt(0)); errorDescriptionLabel.setDisplayedMnemonic(getString("CTL_Error_label_Mnemonic").charAt(0)); filePositionLabel.setDisplayedMnemonic(getString("CTL_File_label_Mnemonic").charAt(0)); linePositionLabel.setDisplayedMnemonic(getString("CTL_Line_label_Mnemonic").charAt(0)); columnPositionLabel.setDisplayedMnemonic(getString("CTL_Column_label_Mnemonic").charAt(0)); descriptionPositionLabel.setDisplayedMnemonic(getString("CTL_Description_label_Mnemonic").charAt(0)); errorDescriptionsLabel.setDisplayedMnemonic(getString("CTL_Descriptions_Mnemonic").charAt(0)); ListSelectionListener l = new ListSelectionListener() { public void valueChanged(ListSelectionEvent ev) { if (internalListChange) return; int sel = errorDescriptions.getSelectedIndex(); if (sel < 0) return; descriptions = editor.getExpressions ()[sel]; updateFields (); updateButtons (); } }; errorDescriptions.addListSelectionListener(l); updateList (); updateFields (); updateButtons (); HelpCtx.setHelpIDString (this, ErrorExpressionPanel.class.getName ()); presetNameField.getAccessibleContext().setAccessibleDescription(getString("ACSD_PresetField")); errorDescriptionField.getAccessibleContext().setAccessibleDescription(getString("ACSD_ErrorField")); filePositionField.getAccessibleContext().setAccessibleDescription(getString("ACSD_FileField")); linePositionField.getAccessibleContext().setAccessibleDescription(getString("ACSD_LineField")); columnPositionField.getAccessibleContext().setAccessibleDescription(getString("ACSD_ColumnField")); descriptionPositionField.getAccessibleContext().setAccessibleDescription(getString("ACSD_DescriptionField")); errorDescriptions.getAccessibleContext().setAccessibleDescription(getString("ACSD_DescriptionsList")); getAccessibleContext().setAccessibleDescription(getString("ACSD_ErrorExpressionPanel")); } /** * @return Returns the property value that is result of the CustomPropertyEditor. * @exception InvalidStateException when the custom property editor does not represent valid property value * (and thus it should not be set) */ public Object getPropertyValue () throws IllegalStateException { return descriptions; } private void updateList () { org.openide.compiler.ExternalCompiler.ErrorExpression[] exprs = editor.getExpressions (); org.openide.compiler.ExternalCompiler.ErrorExpression sel = descriptions; String[] strings = new String [exprs.length]; int selIndex = -1; for (int i = 0; i < exprs.length; i++) { strings[i] = exprs[i].getName (); if ( sel != null && exprs[i].getName ().equals (sel.getName ())) selIndex = i; } internalListChange = true; errorDescriptions.setListData(strings); internalListChange = false; if (selIndex != -1) errorDescriptions.setSelectedIndex (selIndex); } private void updateFields () { org.openide.compiler.ExternalCompiler.ErrorExpression current = descriptions; if ( current == null ) return; presetNameField.setText(current.getName ()); errorDescriptionField.setText(current.getErrorExpression()); filePositionField.setText(String.valueOf(current.getFilePos())); linePositionField.setText(String.valueOf(current.getLinePos())); columnPositionField.setText(String.valueOf(current.getColumnPos())); descriptionPositionField.setText(String.valueOf(current.getDescriptionPos())); } private void updateButtons () { boolean enabled = errorDescriptions.getSelectedIndex()!= -1; if (enabled) { enabled=!isReadOnly(descriptions); } removeButton.setEnabled (enabled); setButton.setEnabled (enabled); addButton.setEnabled (!"".equals (presetNameField.getText ())); // NOI18N } private boolean isReadOnly(org.openide.compiler.ExternalCompiler.ErrorExpression sel) { if (sel.equals(org.openide.compiler.ExternalCompiler.JAVAC)) return true; if (sel.equals(org.openide.compiler.ExternalCompiler.JVC)) return true; if (sel.equals(org.openide.compiler.ExternalCompiler.JIKES)) return true; return false; } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {//GEN-BEGIN:initComponents jPanel1 = new javax.swing.JPanel(); presetNameLabel = new javax.swing.JLabel(); errorDescriptionLabel = new javax.swing.JLabel(); filePositionLabel = new javax.swing.JLabel(); linePositionLabel = new javax.swing.JLabel(); columnPositionLabel = new javax.swing.JLabel(); descriptionPositionLabel = new javax.swing.JLabel(); errorDescriptionsLabel = new javax.swing.JLabel(); presetNameField = new javax.swing.JTextField(); errorDescriptionField = new javax.swing.JTextField(); filePositionField = new javax.swing.JTextField(); linePositionField = new javax.swing.JTextField(); columnPositionField = new javax.swing.JTextField(); descriptionPositionField = new javax.swing.JTextField(); presetsScroll = new javax.swing.JScrollPane(); errorDescriptions = new javax.swing.JList(); jPanel2 = new javax.swing.JPanel(); addButton = new javax.swing.JButton(); setButton = new javax.swing.JButton(); removeButton = new javax.swing.JButton(); setLayout(new java.awt.BorderLayout(11, 0)); setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(12, 12, 0, 11))); jPanel1.setLayout(new java.awt.GridBagLayout()); java.awt.GridBagConstraints gridBagConstraints2; presetNameLabel.setText("jLabel1"); presetNameLabel.setLabelFor(presetNameField); gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.insets = new java.awt.Insets(0, 0, 5, 12); gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; jPanel1.add(presetNameLabel, gridBagConstraints2); errorDescriptionLabel.setText("jLabel2"); errorDescriptionLabel.setLabelFor(errorDescriptionField); gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.gridx = 0; gridBagConstraints2.gridy = 1; gridBagConstraints2.insets = new java.awt.Insets(0, 0, 5, 12); gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; jPanel1.add(errorDescriptionLabel, gridBagConstraints2); filePositionLabel.setText("jLabel3"); filePositionLabel.setLabelFor(filePositionField); gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.gridx = 0; gridBagConstraints2.gridy = 2; gridBagConstraints2.insets = new java.awt.Insets(0, 0, 5, 12); gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; jPanel1.add(filePositionLabel, gridBagConstraints2); linePositionLabel.setText("jLabel4"); linePositionLabel.setLabelFor(linePositionField); gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.gridx = 0; gridBagConstraints2.gridy = 3; gridBagConstraints2.insets = new java.awt.Insets(0, 0, 5, 12); gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; jPanel1.add(linePositionLabel, gridBagConstraints2); columnPositionLabel.setText("jLabel5"); columnPositionLabel.setLabelFor(columnPositionField); gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.gridx = 0; gridBagConstraints2.gridy = 4; gridBagConstraints2.insets = new java.awt.Insets(0, 0, 5, 12); gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; jPanel1.add(columnPositionLabel, gridBagConstraints2); descriptionPositionLabel.setText("jLabel6"); descriptionPositionLabel.setLabelFor(descriptionPositionField); gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.gridx = 0; gridBagConstraints2.gridy = 5; gridBagConstraints2.insets = new java.awt.Insets(0, 0, 5, 12); gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; jPanel1.add(descriptionPositionLabel, gridBagConstraints2); errorDescriptionsLabel.setText("jLabel7"); errorDescriptionsLabel.setLabelFor(errorDescriptions); gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.gridx = 0; gridBagConstraints2.gridy = 6; gridBagConstraints2.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints2.insets = new java.awt.Insets(0, 0, 2, 0); gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; jPanel1.add(errorDescriptionsLabel, gridBagConstraints2); gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.gridx = 1; gridBagConstraints2.gridy = 0; gridBagConstraints2.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints2.insets = new java.awt.Insets(0, 0, 5, 0); jPanel1.add(presetNameField, gridBagConstraints2); gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.gridx = 1; gridBagConstraints2.gridy = 1; gridBagConstraints2.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints2.insets = new java.awt.Insets(0, 0, 5, 0); jPanel1.add(errorDescriptionField, gridBagConstraints2); filePositionField.setHorizontalAlignment(javax.swing.JTextField.RIGHT); gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.gridx = 1; gridBagConstraints2.gridy = 2; gridBagConstraints2.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints2.insets = new java.awt.Insets(0, 0, 5, 0); jPanel1.add(filePositionField, gridBagConstraints2); linePositionField.setHorizontalAlignment(javax.swing.JTextField.RIGHT); gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.gridx = 1; gridBagConstraints2.gridy = 3; gridBagConstraints2.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints2.insets = new java.awt.Insets(0, 0, 5, 0); jPanel1.add(linePositionField, gridBagConstraints2); columnPositionField.setHorizontalAlignment(javax.swing.JTextField.RIGHT); gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.gridx = 1; gridBagConstraints2.gridy = 4; gridBagConstraints2.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints2.insets = new java.awt.Insets(0, 0, 5, 0); jPanel1.add(columnPositionField, gridBagConstraints2); descriptionPositionField.setHorizontalAlignment(javax.swing.JTextField.RIGHT); gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.gridx = 1; gridBagConstraints2.gridy = 5; gridBagConstraints2.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints2.insets = new java.awt.Insets(0, 0, 5, 0); jPanel1.add(descriptionPositionField, gridBagConstraints2); presetsScroll.setPreferredSize(new java.awt.Dimension(300, 200)); errorDescriptions.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { errorDescriptionsMouseClicked(evt); } }); presetsScroll.setViewportView(errorDescriptions); gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.gridx = 0; gridBagConstraints2.gridy = 7; gridBagConstraints2.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints2.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints2.weightx = 1.0; gridBagConstraints2.weighty = 1.0; jPanel1.add(presetsScroll, gridBagConstraints2); add(jPanel1, java.awt.BorderLayout.CENTER); jPanel2.setLayout(new java.awt.GridBagLayout()); java.awt.GridBagConstraints gridBagConstraints3; addButton.setText("jButton1"); addButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { addButtonActionPerformed(evt); } }); gridBagConstraints3 = new java.awt.GridBagConstraints(); gridBagConstraints3.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints3.insets = new java.awt.Insets(0, 0, 5, 0); gridBagConstraints3.anchor = java.awt.GridBagConstraints.NORTH; jPanel2.add(addButton, gridBagConstraints3); setButton.setText("jButton2"); setButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { setButtonActionPerformed(evt); } }); gridBagConstraints3 = new java.awt.GridBagConstraints(); gridBagConstraints3.gridx = 0; gridBagConstraints3.gridy = 1; gridBagConstraints3.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints3.insets = new java.awt.Insets(0, 0, 5, 0); gridBagConstraints3.anchor = java.awt.GridBagConstraints.NORTH; jPanel2.add(setButton, gridBagConstraints3); removeButton.setText("jButton3"); removeButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { removeButtonActionPerformed(evt); } }); gridBagConstraints3 = new java.awt.GridBagConstraints(); gridBagConstraints3.gridx = 0; gridBagConstraints3.gridy = 2; gridBagConstraints3.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints3.anchor = java.awt.GridBagConstraints.NORTH; gridBagConstraints3.weighty = 1.0; jPanel2.add(removeButton, gridBagConstraints3); add(jPanel2, java.awt.BorderLayout.EAST); }//GEN-END:initComponents private void removeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_removeButtonActionPerformed synchronized (editor) { java.util.Collection exprs = editor.getExpressionsVector (); int pos = errorDescriptions.getSelectedIndex (); exprs.remove (descriptions); if (pos >= exprs.size ()) pos = exprs.size () - 1; if (pos >= 0) { descriptions = editor.getExpressions ()[pos]; } else descriptions = null; updateList (); } }//GEN-LAST:event_removeButtonActionPerformed private void setButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_setButtonActionPerformed if ("".equals (presetNameField.getText ())) // NOI18N return; org.openide.compiler.ExternalCompiler.ErrorExpression expr = descriptions; int fPos = 0; int lPos = 0; int cPos = 0; int dPos = 0; try { fPos = Integer.parseInt (filePositionField.getText ()); lPos = Integer.parseInt (linePositionField.getText ()); cPos = Integer.parseInt (columnPositionField.getText ()); dPos = Integer.parseInt (descriptionPositionField.getText ()); } catch (NumberFormatException ex) { // ignored return; // [PENDING - notify user] } expr.setName(presetNameField.getText()); expr.setErrorExpression(errorDescriptionField.getText()); expr.setFilePos(fPos); expr.setLinePos(lPos); expr.setColumnPos(cPos); expr.setDescriptionPos(dPos); updateList (); }//GEN-LAST:event_setButtonActionPerformed private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addButtonActionPerformed if ("".equals (presetNameField.getText ())) // NOI18N return; org.openide.compiler.ExternalCompiler.ErrorExpression[] exprsAr = editor.getExpressions (); for (int i = 0; i < exprsAr.length; i++) if (exprsAr[i].getName ().equals (presetNameField.getText ())) return; org.openide.compiler.ExternalCompiler.ErrorExpression expr = null; try { expr = new org.openide.compiler.ExternalCompiler.ErrorExpression ( presetNameField.getText (), errorDescriptionField.getText (), Integer.parseInt (filePositionField.getText ()), Integer.parseInt (linePositionField.getText ()), Integer.parseInt (columnPositionField.getText ()), Integer.parseInt (descriptionPositionField.getText ()) ); } catch (NumberFormatException ex) { // ignored return; // [PENDING - notify user] } synchronized (editor) { java.util.Collection exprs = editor.getExpressionsVector (); int pos = errorDescriptions.getSelectedIndex (); exprs.add (expr); descriptions = expr; updateList (); } }//GEN-LAST:event_addButtonActionPerformed private void errorDescriptionsMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_errorDescriptionsMouseClicked // Add your handling code here: // int index = errorDescriptions.locationToIndex(evt.getPoint()); // setSelected(index); }//GEN-LAST:event_errorDescriptionsMouseClicked // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPanel jPanel1; private javax.swing.JLabel presetNameLabel; private javax.swing.JLabel errorDescriptionLabel; private javax.swing.JLabel filePositionLabel; private javax.swing.JLabel linePositionLabel; private javax.swing.JLabel columnPositionLabel; private javax.swing.JLabel descriptionPositionLabel; private javax.swing.JLabel errorDescriptionsLabel; private javax.swing.JTextField presetNameField; private javax.swing.JTextField errorDescriptionField; private javax.swing.JTextField filePositionField; private javax.swing.JTextField linePositionField; private javax.swing.JTextField columnPositionField; private javax.swing.JTextField descriptionPositionField; private javax.swing.JScrollPane presetsScroll; private javax.swing.JList errorDescriptions; private javax.swing.JPanel jPanel2; private javax.swing.JButton addButton; private javax.swing.JButton setButton; private javax.swing.JButton removeButton; // End of variables declaration//GEN-END:variables private org.openide.compiler.ExternalCompiler.ErrorExpression descriptions; private boolean internalListChange = false; /** Getter for resource string. */ private static String getString (String res) { return NbBundle.getBundle (ErrorExpressionPanel.class).getString (res); } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.