|
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-2004 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.java.examples; import java.io.File; import java.text.MessageFormat; import javax.swing.JFileChooser; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import org.netbeans.spi.project.ui.support.ProjectChooser; import org.openide.WizardDescriptor; import org.openide.util.NbBundle; public class PanelProjectLocationVisual extends SettingsPanel implements DocumentListener { private PanelConfigureProject panel; /** Creates new form PanelProjectLocationVisual */ public PanelProjectLocationVisual(PanelConfigureProject panel) { initComponents(); this.panel = panel; // Register listener on the textFields to make the automatic updates projectNameTextField.getDocument().addDocumentListener(this); projectLocationTextField.getDocument().addDocumentListener(this); } /** 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 java.awt.GridBagConstraints gridBagConstraints; projectNameLabel = new javax.swing.JLabel(); projectNameTextField = new javax.swing.JTextField(); projectLocationLabel = new javax.swing.JLabel(); projectLocationTextField = new javax.swing.JTextField(); Button = new javax.swing.JButton(); createdFolderLabel = new javax.swing.JLabel(); createdFolderTextField = new javax.swing.JTextField(); setLayout(new java.awt.GridBagLayout()); projectNameLabel.setDisplayedMnemonic(org.openide.util.NbBundle.getMessage(PanelProjectLocationVisual.class, "LBL_NWP1_ProjectName_LabelMnemonic").charAt(0)); projectNameLabel.setLabelFor(projectNameTextField); projectNameLabel.setText(org.openide.util.NbBundle.getMessage(PanelProjectLocationVisual.class, "LBL_NWP1_ProjectName_Label")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 12, 0); add(projectNameLabel, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(0, 12, 12, 0); add(projectNameTextField, gridBagConstraints); projectNameTextField.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(PanelProjectLocationVisual.class, "ACS_LBL_NWP1_ProjectName_A11YDesc")); projectLocationLabel.setDisplayedMnemonic(org.openide.util.NbBundle.getMessage(PanelProjectLocationVisual.class, "LBL_NWP1_ProjectLocation_LabelMnemonic").charAt(0)); projectLocationLabel.setLabelFor(projectLocationTextField); projectLocationLabel.setText(org.openide.util.NbBundle.getMessage(PanelProjectLocationVisual.class, "LBL_NWP1_ProjectLocation_Label")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0); add(projectLocationLabel, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(0, 12, 5, 0); add(projectLocationTextField, gridBagConstraints); projectLocationTextField.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(PanelProjectLocationVisual.class, "ACS_LBL_NPW1_ProjectLocation_A11YDesc")); Button.setText(org.openide.util.NbBundle.getMessage(PanelProjectLocationVisual.class, "LBL_NWP1_BrowseLocation_Button")); Button.setActionCommand("BROWSE"); Button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { browseLocationAction(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 1; gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.insets = new java.awt.Insets(0, 6, 5, 0); add(Button, gridBagConstraints); Button.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(PanelProjectLocationVisual.class, "ACS_LBL_NWP1_BrowseLocation_A11YDesc")); createdFolderLabel.setDisplayedMnemonic(org.openide.util.NbBundle.getMessage(PanelProjectLocationVisual.class, "LBL_NWP1_CreatedProjectFolder_LablelMnemonic").charAt(0)); createdFolderLabel.setLabelFor(createdFolderTextField); createdFolderLabel.setText(org.openide.util.NbBundle.getMessage(PanelProjectLocationVisual.class, "LBL_NWP1_CreatedProjectFolder_Lablel")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; add(createdFolderLabel, gridBagConstraints); createdFolderTextField.setEditable(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(0, 12, 0, 0); add(createdFolderTextField, gridBagConstraints); createdFolderTextField.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(PanelProjectLocationVisual.class, "ACS_LBL_NWP1_CreatedProjectFolder_A11YDesc")); }//GEN-END:initComponents private void browseLocationAction(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseLocationAction String command = evt.getActionCommand(); if ("BROWSE".equals(command)) { //NOI18N JFileChooser chooser = new JFileChooser(); chooser.setDialogTitle(NbBundle.getMessage(PanelProjectLocationVisual.class,"LBL_NWP1_SelectProjectLocation")); //NOI18N chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); String path = projectLocationTextField.getText(); if (path.length() > 0) { File f = new File(path); if (f.exists()) chooser.setSelectedFile(f); } if (JFileChooser.APPROVE_OPTION == chooser.showOpenDialog(this)) { File projectDir = chooser.getSelectedFile(); projectLocationTextField.setText(projectDir.getAbsolutePath()); } panel.fireChangeEvent(); } }//GEN-LAST:event_browseLocationAction public void addNotify() { super.addNotify(); //same problem as in 31086, initial focus on Cancel button projectLocationTextField.requestFocus(); } boolean valid(WizardDescriptor wizardDescriptor) { if (projectNameTextField.getText().length() == 0) { wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(PanelProjectLocationVisual.class,"MSG_IllegalProjectName")); //NOI18N return false; // Display name not specified } File destFolder = new File(createdFolderTextField.getText()); File[] children = destFolder.listFiles(); if (destFolder.exists() && children != null && children.length > 0) { // Folder exists and is not empty wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(PanelProjectLocationVisual.class,"MSG_ProjectFolderExists")); //NOI18N return false; } wizardDescriptor.putProperty("WizardPanel_errorMessage", ""); //NOI18N return true; } void store(WizardDescriptor d) { String name = projectNameTextField.getText().trim(); d.putProperty(WizardProperties.PROJECT_DIR, new File(createdFolderTextField.getText().trim())); d.putProperty(WizardProperties.NAME, name); File projectsDir = new File(this.projectLocationTextField.getText()); if (projectsDir.isDirectory()) { ProjectChooser.setProjectsFolder (projectsDir); } } void read (WizardDescriptor settings) { File projectLocation = (File) settings.getProperty(WizardProperties.PROJECT_DIR); if (projectLocation == null) projectLocation = ProjectChooser.getProjectsFolder(); else projectLocation = projectLocation.getParentFile(); projectLocationTextField.setText(projectLocation.getAbsolutePath()); String formater = null; String projectName = (String) settings.getProperty(WizardProperties.NAME); if (projectName == null) { formater = NbBundle.getMessage(PanelProjectLocationVisual.class, "LBL_NPW1_DefaultProjectName"); //NOI18N } else { formater = projectName + "{0}"; //NOI18N } if ((projectName == null) || (validFreeProjectName(projectLocation, projectName) == null)) { int baseCount = FoldersListSettings.getDefault().getNewProjectCount() + 1; while ((projectName = validFreeProjectName(projectLocation, formater, baseCount)) == null) baseCount++; // settings.putProperty(NewWebProjectWizardIterator.PROP_NAME_INDEX, new Integer(baseCount)); } projectNameTextField.setText(projectName); projectNameTextField.selectAll(); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton Button; private javax.swing.JLabel createdFolderLabel; private javax.swing.JTextField createdFolderTextField; private javax.swing.JLabel projectLocationLabel; private javax.swing.JTextField projectLocationTextField; private javax.swing.JLabel projectNameLabel; protected javax.swing.JTextField projectNameTextField; // End of variables declaration//GEN-END:variables private static JFileChooser createChooser() { JFileChooser chooser = new JFileChooser(); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setAcceptAllFileFilterUsed(false); return chooser; } private String validFreeProjectName(final File parentFolder, final String formater, final int index) { String name = MessageFormat.format(formater, new Object[] {new Integer (index)}); File file = new File(parentFolder, name); return file.exists() ? null : name; } private String validFreeProjectName(final File parentFolder, final String name) { File file = new File(parentFolder, name); return file.exists() ? null : name; } // Implementation of DocumentListener -------------------------------------- public void changedUpdate(DocumentEvent e) { updateTexts(e); } public void insertUpdate(DocumentEvent e) { updateTexts(e); } public void removeUpdate(DocumentEvent e) { updateTexts(e); } // End if implementation of DocumentListener ------------------------------- /** Handles changes in the project name and project directory */ private void updateTexts(DocumentEvent e) { createdFolderTextField.setText(getCreatedFolderPath()); panel.fireChangeEvent(); // Notify that the panel changed } private String getCreatedFolderPath() { StringBuffer folder = new StringBuffer(projectLocationTextField.getText().trim()); if (!projectLocationTextField.getText().endsWith(File.separator)) folder.append(File.separatorChar); folder.append(projectNameTextField.getText().trim()); return folder.toString(); } } //TODO implement check for project folder name and location |
... 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.