blob: 0b690128e2908991757ffe9d0dfef6ea26c63ba9 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.netbeans.modules.apisupport.project.ui.wizard.options;
import java.awt.Component;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.JTextComponent;
import org.netbeans.api.project.ProjectUtils;
import org.netbeans.modules.apisupport.project.api.UIUtil;
import org.netbeans.modules.apisupport.project.ui.wizard.common.BasicWizardIterator;
import org.netbeans.modules.apisupport.project.ui.wizard.common.WizardUtils;
import org.netbeans.modules.apisupport.project.ui.wizard.options.NewOptionsIterator.DataModel;
import org.openide.WizardDescriptor;
import org.openide.util.HelpCtx;
import org.openide.util.NbBundle;
/**
* @author Radek Matous
*/
final class OptionsPanel extends BasicWizardIterator.Panel {
private final DataModel data;
private DocumentListener updateListener;
/** Creates new NameAndLocationPanel */
public OptionsPanel(final WizardDescriptor setting, final DataModel data) {
super(setting);
this.data = data;
initComponents();
initAccessibility();
if (data.getPackageName() != null) {
packageName.setSelectedItem(data.getPackageName());
}
putClientProperty("NewFileWizard_Title", getMessage("LBL_OptionsWizardTitle"));
}
private void addListeners() {
if (updateListener == null) {
updateListener = new UIUtil.DocumentAdapter() {
public void insertUpdate(DocumentEvent e) {
updateData();
}
};
txtPrefix.getDocument().addDocumentListener(updateListener);
Component editorComp = packageName.getEditor().getEditorComponent();
if (editorComp instanceof JTextComponent) {
((JTextComponent) editorComp).getDocument().addDocumentListener(updateListener);
}
}
}
private void removeListeners() {
if (updateListener != null) {
txtPrefix.getDocument().removeDocumentListener(updateListener);
Component editorComp = packageName.getEditor().getEditorComponent();
if (editorComp instanceof JTextComponent) {
((JTextComponent) editorComp).getDocument().removeDocumentListener(updateListener);
}
updateListener = null;
}
}
protected void storeToDataModel() {
removeListeners();
updateData();
}
protected void readFromDataModel() {
addListeners();
txtPrefix.setText(data.getClassNamePrefix());
}
public void removeNotify() {
super.removeNotify();
removeListeners();
}
public void addNotify() {
super.addNotify();
addListeners();
updateData();
}
private void updateData() {
int errCode = data.setPackageAndPrefix(
packageName.getEditor().getItem().toString(),txtPrefix.getText());
String msg = data.getMessage(errCode);
if (DataModel.isErrorCode(errCode)) {
setError(msg);
return;
} else if (DataModel.isWarningCode(errCode)) {
setWarning(msg);
// generate CMF
} else if (DataModel.isInfoCode(errCode)) {
setInfo(msg, false);
return;
}
data.getCreatedModifiedFiles();
createdFilesValue.setText(WizardUtils.generateTextAreaContent(
data.getCreatedModifiedFiles().getCreatedPaths()));
modifiedFilesValue.setText(WizardUtils.generateTextAreaContent(
data.getCreatedModifiedFiles().getModifiedPaths()));
//#68294 check if the paths for newly created files are valid or not..
String[] invalid = data.getCreatedModifiedFiles().getInvalidPaths();
if (DataModel.isErrorCode(errCode)) {
setError(data.getMessage(errCode));//NOI18N
} else if (invalid.length > 0) {
setError(NbBundle.getMessage(OptionsPanel.class, "ERR_ToBeCreateFileExists", invalid[0]));//NOI18N
} else if (DataModel.isSuccessCode(errCode)) {
markValid();
}
}
protected String getPanelName() {
return getMessage("LBL_OptionsPanel1_Title");
}
protected HelpCtx getHelp() {
return new HelpCtx(OptionsPanel.class);
}
private static String getMessage(String key) {
return NbBundle.getMessage(OptionsPanel.class, key);
}
private void initAccessibility() {
this.getAccessibleContext().setAccessibleDescription(getMessage("ACS_OptionsPanel"));
projectNameValue.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_ProjectName"));
packageName.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_PackageName"));
createdFilesValue.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_CreatedFilesValue"));
modifiedFilesValue.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_ModifiedFilesValue"));
txtPrefix.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL__ClassNamePrefix"));
}
/** 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.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
projectName = new javax.swing.JLabel();
projectNameValue = new JTextField(ProjectUtils.getInformation(this.data.getProject()).getDisplayName());
createdFiles = new javax.swing.JLabel();
modifiedFiles = new javax.swing.JLabel();
createdFilesValueS = new javax.swing.JScrollPane();
createdFilesValue = new javax.swing.JTextArea();
modifiedFilesValueS = new javax.swing.JScrollPane();
modifiedFilesValue = new javax.swing.JTextArea();
packageName = WizardUtils.createPackageComboBox(data.getSourceRootGroup());
packageNameTxt = new javax.swing.JLabel();
lblPrefix = new javax.swing.JLabel();
txtPrefix = new javax.swing.JTextField();
setLayout(new java.awt.GridBagLayout());
projectName.setLabelFor(projectNameValue);
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/netbeans/modules/apisupport/project/ui/wizard/options/Bundle"); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(projectName, bundle.getString("LBL_ProjectName")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.insets = new java.awt.Insets(1, 0, 6, 12);
add(projectName, gridBagConstraints);
projectName.getAccessibleContext().setAccessibleDescription(getMessage("OptionsPanel.projectName.AccessibleContext.accessibleDescription")); // NOI18N
projectNameValue.setEditable(false);
projectNameValue.setFocusable(false);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 6, 0);
add(projectNameValue, gridBagConstraints);
projectNameValue.getAccessibleContext().setAccessibleName(getMessage("OptionsPanel.projectNameValue.AccessibleContext.accessibleName")); // NOI18N
projectNameValue.getAccessibleContext().setAccessibleDescription(getMessage("OptionsPanel.projectNameValue.AccessibleContext.accessibleDescription")); // NOI18N
createdFiles.setLabelFor(createdFilesValue);
org.openide.awt.Mnemonics.setLocalizedText(createdFiles, bundle.getString("LBL_CreatedFiles")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(18, 0, 6, 12);
add(createdFiles, gridBagConstraints);
createdFiles.getAccessibleContext().setAccessibleDescription(getMessage("OptionsPanel.createdFiles.AccessibleContext.accessibleDescription")); // NOI18N
modifiedFiles.setLabelFor(modifiedFilesValue);
org.openide.awt.Mnemonics.setLocalizedText(modifiedFiles, bundle.getString("LBL_ModifiedFiles")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 12);
add(modifiedFiles, gridBagConstraints);
modifiedFiles.getAccessibleContext().setAccessibleDescription(getMessage("OptionsPanel.modifiedFiles.AccessibleContext.accessibleDescription")); // NOI18N
createdFilesValueS.setBorder(null);
createdFilesValue.setBackground(javax.swing.UIManager.getDefaults().getColor("Label.background"));
createdFilesValue.setColumns(20);
createdFilesValue.setEditable(false);
createdFilesValue.setRows(5);
createdFilesValue.setBorder(null);
createdFilesValueS.setViewportView(createdFilesValue);
createdFilesValue.getAccessibleContext().setAccessibleName(getMessage("OptionsPanel.createdFilesValue.AccessibleContext.accessibleName")); // NOI18N
createdFilesValue.getAccessibleContext().setAccessibleDescription(getMessage("OptionsPanel.createdFilesValue.AccessibleContext.accessibleDescription")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 0.5;
gridBagConstraints.insets = new java.awt.Insets(18, 0, 6, 0);
add(createdFilesValueS, gridBagConstraints);
createdFilesValueS.getAccessibleContext().setAccessibleName(getMessage("OptionsPanel.createdFilesValueS.AccessibleContext.accessibleName")); // NOI18N
createdFilesValueS.getAccessibleContext().setAccessibleDescription(getMessage("OptionsPanel.createdFilesValueS.AccessibleContext.accessibleDescription")); // NOI18N
modifiedFilesValueS.setBorder(null);
modifiedFilesValue.setBackground(javax.swing.UIManager.getDefaults().getColor("Label.background"));
modifiedFilesValue.setColumns(20);
modifiedFilesValue.setEditable(false);
modifiedFilesValue.setRows(5);
modifiedFilesValue.setToolTipText("modifiedFilesValue");
modifiedFilesValue.setBorder(null);
modifiedFilesValueS.setViewportView(modifiedFilesValue);
modifiedFilesValue.getAccessibleContext().setAccessibleName(getMessage("OptionsPanel.modifiedFilesValue.AccessibleContext.accessibleName")); // NOI18N
modifiedFilesValue.getAccessibleContext().setAccessibleDescription(getMessage("OptionsPanel.modifiedFilesValue.AccessibleContext.accessibleDescription")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 0.5;
add(modifiedFilesValueS, gridBagConstraints);
modifiedFilesValueS.getAccessibleContext().setAccessibleName(getMessage("OptionsPanel.modifiedFilesValueS.AccessibleContext.accessibleName")); // NOI18N
modifiedFilesValueS.getAccessibleContext().setAccessibleDescription(getMessage("OptionsPanel.modifiedFilesValueS.AccessibleContext.accessibleDescription")); // NOI18N
packageName.setEditable(true);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
add(packageName, gridBagConstraints);
packageName.getAccessibleContext().setAccessibleDescription(getMessage("OptionsPanel.packageName.AccessibleContext.accessibleDescription")); // NOI18N
packageNameTxt.setLabelFor(packageName);
org.openide.awt.Mnemonics.setLocalizedText(packageNameTxt, org.openide.util.NbBundle.getMessage(OptionsPanel.class, "LBL_PackageName")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 12);
add(packageNameTxt, gridBagConstraints);
packageNameTxt.getAccessibleContext().setAccessibleDescription(getMessage("OptionsPanel.packageNameTxt.AccessibleContext.accessibleDescription")); // NOI18N
lblPrefix.setLabelFor(txtPrefix);
org.openide.awt.Mnemonics.setLocalizedText(lblPrefix, org.openide.util.NbBundle.getMessage(OptionsPanel.class, "LBL_Prefix")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.insets = new java.awt.Insets(12, 0, 6, 12);
add(lblPrefix, gridBagConstraints);
lblPrefix.getAccessibleContext().setAccessibleDescription(getMessage("OptionsPanel.lblPrefix.AccessibleContext.accessibleDescription")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(12, 0, 6, 0);
add(txtPrefix, gridBagConstraints);
txtPrefix.getAccessibleContext().setAccessibleName(getMessage("OptionsPanel.txtPrefix.AccessibleContext.accessibleName")); // NOI18N
txtPrefix.getAccessibleContext().setAccessibleDescription(getMessage("OptionsPanel.txtPrefix.AccessibleContext.accessibleDescription")); // NOI18N
getAccessibleContext().setAccessibleName(getMessage("OptionsPanel.AccessibleContext.accessibleName")); // NOI18N
getAccessibleContext().setAccessibleDescription(getMessage("OptionsPanel.AccessibleContext.accessibleDescription")); // NOI18N
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel createdFiles;
private javax.swing.JTextArea createdFilesValue;
private javax.swing.JScrollPane createdFilesValueS;
private javax.swing.JLabel lblPrefix;
private javax.swing.JLabel modifiedFiles;
private javax.swing.JTextArea modifiedFilesValue;
private javax.swing.JScrollPane modifiedFilesValueS;
private javax.swing.JComboBox packageName;
private javax.swing.JLabel packageNameTxt;
private javax.swing.JLabel projectName;
private javax.swing.JTextField projectNameValue;
private javax.swing.JTextField txtPrefix;
// End of variables declaration//GEN-END:variables
}