|
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-2003 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.vcs.advanced; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import org.openide.filesystems.*; import java.awt.event.*; import javax.swing.event.*; import org.netbeans.modules.vcs.advanced.variables.VariableIO; import org.netbeans.modules.vcs.advanced.variables.VariableIOCompat; import org.netbeans.modules.vcscore.util.VcsUtilities; /** * The Save As dialog, that works on FileObjects. It is used to save configuration files. * @author Martin Entlicher */ public class ConfigSaveAsDialog extends javax.swing.JDialog { private FileObject dir; private String selectedFile; private HashMap configLabels = new HashMap(); static final long serialVersionUID =-4678964678643578543L; /** Creates new form ConfigSaveAsDialog */ public ConfigSaveAsDialog(java.awt.Frame parent, boolean modal, FileObject dir) { super (parent, modal); this.dir = dir; setTitle(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ConfigSaveAsDialog.title")); initComponents (); getRootPane().setDefaultButton(saveButton); fileNameLabel.setDisplayedMnemonic (org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString ("ConfigSaveAsDialog.fileNameLabel.mnemonic").charAt (0)); configLabelLabel.setDisplayedMnemonic (org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString ("ConfigSaveAsDialog.configLabelLabel.mnemonic").charAt (0)); saveButton.setMnemonic(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ConfigSaveAsDialog.saveButton.text_Mnemonic").charAt(0)); // NOI18N cancelButton.setMnemonic(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ConfigSaveAsDialog.cancelButton.text_Mnemonic").charAt(0)); // NOI18N fillFileList(); this.setSize(340, 265); initAccessibility(); EnableSaveListener saveListener = new EnableSaveListener(); this.configLabelTextField.addActionListener(saveListener); this.fileNameTextField.addActionListener(saveListener); this.configLabelTextField.addFocusListener(saveListener); this.fileNameTextField.addFocusListener(saveListener); this.configLabelTextField.addKeyListener(saveListener); this.fileNameTextField.addKeyListener(saveListener); checkToEnableSave(); } private void checkToEnableSave() { if (configLabelTextField.getText().length() == 0 || fileNameTextField.getText().length() == 0) { saveButton.setEnabled(false); } else { saveButton.setEnabled(true); } } private void initAccessibility() { getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ACS_ConfigSaveAsDialogA11yName")); // NOI18N getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ACS_ConfigSaveAsDialogA11yDesc")); // NOI18N fileList.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ACS_ConfigSaveAsDialog.fileListA11yName")); // NOI18N fileList.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ACS_ConfigSaveAsDialog.fileListA11yDesc")); // NOI18N fileNameLabel.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ACS_ConfigSaveAsDialog.fileNameLabel.textA11yDesc")); // NOI18N fileNameTextField.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ACS_ConfigSaveAsDialog.fileNameTextField.textA11yName")); // NOI18N configLabelLabel.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ACS_ConfigSaveAsDialog.configLabelLabel.textA11yDesc")); // NOI18N configLabelTextField.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ACS_ConfigSaveAsDialog.configLabelTextField.textA11yName")); // NOI18N } /** 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 FormEditor. */ private void initComponents() {//GEN-BEGIN:initComponents java.awt.GridBagConstraints gridBagConstraints; listPanel = new javax.swing.JPanel(); fileScrollPane = new javax.swing.JScrollPane(); fileList = new javax.swing.JList(); jPanel2 = new javax.swing.JPanel(); fileNameLabel = new javax.swing.JLabel(); fileNameTextField = new javax.swing.JTextField(); configLabelLabel = new javax.swing.JLabel(); configLabelTextField = new javax.swing.JTextField(); jPanel1 = new javax.swing.JPanel(); saveButton = new javax.swing.JButton(); cancelButton = new javax.swing.JButton(); getContentPane().setLayout(new java.awt.GridBagLayout()); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { closeDialog(evt); } }); listPanel.setLayout(new java.awt.GridBagLayout()); fileList.setToolTipText(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ACS_ConfigSaveAsDialog.fileListA11yDesc")); fileList.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fileListMouseClicked(evt); } }); fileScrollPane.setViewportView(fileList); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; listPanel.add(fileScrollPane, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(12, 12, 0, 11); getContentPane().add(listPanel, gridBagConstraints); jPanel2.setLayout(new java.awt.GridBagLayout()); fileNameLabel.setText(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ConfigSaveAsDialog.fileNameLabel.text")); fileNameLabel.setLabelFor(fileNameTextField); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 12); jPanel2.add(fileNameLabel, gridBagConstraints); fileNameTextField.setColumns(10); fileNameTextField.setToolTipText(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ACS_ConfigSaveAsDialog.fileNameTextField.textA11yDesc")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; jPanel2.add(fileNameTextField, gridBagConstraints); configLabelLabel.setText(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ConfigSaveAsDialog.configLabelLabel.text")); configLabelLabel.setLabelFor(configLabelTextField); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 0, 0, 12); jPanel2.add(configLabelLabel, gridBagConstraints); configLabelTextField.setToolTipText(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ACS_ConfigSaveAsDialog.configLabelTextField.textA11yDesc")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(6, 0, 0, 0); jPanel2.add(configLabelTextField, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(12, 12, 17, 11); getContentPane().add(jPanel2, gridBagConstraints); jPanel1.setLayout(new java.awt.GridLayout(1, 0, 5, 0)); saveButton.setText(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ConfigSaveAsDialog.saveButton.text")); saveButton.setToolTipText(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ACS_ConfigSaveAsDialog.saveButton.textA11yDesc")); saveButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveButtonActionPerformed(evt); } }); jPanel1.add(saveButton); cancelButton.setText(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ConfigSaveAsDialog.cancelButton.text")); cancelButton.setToolTipText(org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("ACS_ConfigSaveAsDialog.cancelButton.textA11yDesc")); cancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cancelButtonActionPerformed(evt); } }); jPanel1.add(cancelButton); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 12, 11, 11); getContentPane().add(jPanel1, gridBagConstraints); }//GEN-END:initComponents private void fileListMouseClicked (java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fileListMouseClicked // Add your handling code here: selectedFile = (String) fileList.getSelectedValue(); fileNameTextField.setText(selectedFile); //fileNameTextField.repaint(); String label = (String) configLabels.get(selectedFile); if (label != null) configLabelTextField.setText(label); checkToEnableSave(); }//GEN-LAST:event_fileListMouseClicked private void saveButtonActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed // Add your handling code here: selectedFile = fileNameTextField.getText(); closeDialog(null); }//GEN-LAST:event_saveButtonActionPerformed private void cancelButtonActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed // Add your handling code here: selectedFile = null; closeDialog(null); }//GEN-LAST:event_cancelButtonActionPerformed /** Closes the dialog */ private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog setVisible (false); dispose (); }//GEN-LAST:event_closeDialog private void fillFileList() { javax.swing.DefaultListModel model = new javax.swing.DefaultListModel(); ArrayList configList = VariableIO.readConfigurations(dir); String[] configNames = (String[]) configList.toArray(new String[0]); Arrays.sort(configNames); for (int i = 0; i < configNames.length; i++) { String config = configNames[i]; String configName; String configExt; int extIndex = config.lastIndexOf('.'); if (extIndex < 0) { configName = config; configExt = ""; } else { configName = config.substring(0, extIndex); configExt = config.substring(extIndex + 1); } model.addElement(configName); String label = null; if (configExt.equalsIgnoreCase(VariableIO.CONFIG_FILE_EXT)) { String[] labelAndOS = VariableIO.getConfigurationLabelAndOS(dir, config); if (labelAndOS != null) { String[] resourceBundles = null; if (labelAndOS.length > 3) { resourceBundles = new String[labelAndOS.length - 3]; System.arraycopy(labelAndOS, 3, resourceBundles, 0, resourceBundles.length); } label = VcsUtilities.getBundleString(resourceBundles, labelAndOS[0]); } else { label = org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("CTL_No_label_configured"); } } else if (configExt.equalsIgnoreCase(VariableIOCompat.CONFIG_FILE_EXT)) { label = VariableIOCompat.readPredefinedProperties(dir, config). getProperty("label", org.openide.util.NbBundle.getBundle(ConfigSaveAsDialog.class).getString("CTL_No_label_configured")); } configLabels.put(configName, label); } fileList.setModel(model); } public String getSelectedFile() { return selectedFile; } public String getSelectedConfigLabel() { return configLabelTextField.getText(); } /* * @param args the command line arguments public static void main (String args[]) { new ConfigSaveAsDialog (new javax.swing.JFrame (), true).show (); } */ // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JList fileList; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane fileScrollPane; private javax.swing.JTextField fileNameTextField; private javax.swing.JTextField configLabelTextField; private javax.swing.JButton saveButton; private javax.swing.JLabel fileNameLabel; private javax.swing.JButton cancelButton; private javax.swing.JPanel listPanel; private javax.swing.JLabel configLabelLabel; // End of variables declaration//GEN-END:variables private class EnableSaveListener extends FocusAdapter implements ActionListener, KeyListener { public void actionPerformed(java.awt.event.ActionEvent actionEvent) { checkToEnableSave(); } public void focusLost(java.awt.event.FocusEvent evt) { checkToEnableSave(); } public void keyPressed(java.awt.event.KeyEvent keyEvent) { checkToEnableSave(); } public void keyReleased(java.awt.event.KeyEvent keyEvent) { checkToEnableSave(); } public void keyTyped(java.awt.event.KeyEvent keyEvent) { checkToEnableSave(); } } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 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.