Author: cmarcum
Date: Sat May 2 15:24:43 2015
New Revision: 1677323
URL: http://svn.apache.org/r1677323
Log:
#i126246#
added sdkOk property and getter/setter in UNOClientAppWizardIterator to keep
track of valid office and sdk locations.
added getter for UNOClientAppWizardIterator in UNOClientAppWizardPanel to be
used by UNOClientAppPanelVisual valid method.
added check of sdkOk in UNOClientAppPanelVisual valid method to disable next
button and display message.
added message to bundle to display instructions to cancel dialog if settings
were skipped and where to find settings in tools > options.
added same message in it_IT bundle.
Modified:
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/Bundle.properties
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/Bundle_it_IT.properties
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppPanelVisual.java
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppWizardIterator.java
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppWizardPanel.java
Modified:
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/Bundle.properties
URL:
http://svn.apache.org/viewvc/openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/Bundle.properties?rev=1677323&r1=1677322&r2=1677323&view=diff
==============================================================================
---
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/Bundle.properties
(original)
+++
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/Bundle.properties
Sat May 2 15:24:43 2015
@@ -13,6 +13,7 @@ LB_Error_ProjectFolder=Project Folder ca
LB_Error_ProjectFolderNotEmpty=Project Folder already exists and is not empty
LB_Error_ClassName=Class Name is not a valid class name
LB_Error_Package=Package is not a valid name.
+LBL_ErrorMessageOfficeSdk=Cancel and set OpenOffice and SDK locations in
<br/>Tools > Options > Miscellaneous > AOO API Plugin
LBL_ProjectName=Project &Name:
LBL_ClassName=&Class Name:
Modified:
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/Bundle_it_IT.properties
URL:
http://svn.apache.org/viewvc/openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/Bundle_it_IT.properties?rev=1677323&r1=1677322&r2=1677323&view=diff
==============================================================================
---
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/Bundle_it_IT.properties
(original)
+++
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/Bundle_it_IT.properties
Sat May 2 15:24:43 2015
@@ -11,7 +11,7 @@ Templates/Project/org-openoffice-extensi
TF_ProjectName_Tooltip=Nome del nuovo progetto creato (utilizzato anche come
nome della cartella di progetto)
TF_ClassName_Tooltip=Nome della classe, impostata come classe principale
TF_JavaPackage_Tooltip=Nome del package Java
-TF_Location_Tooltip=Percorso della directory in cui il progetto verr\u00E0
creato
+TF_Location_Tooltip=Percorso della directory in cui il progetto verr\u00e0
creato
TF_ProjectFolder_Tooltip=Cartella di destinazione finale del nuovo progetto
#LB_Error_ProjectName=Project Name is not a valid folder name.
@@ -20,12 +20,14 @@ TF_ProjectFolder_Tooltip=Cartella di des
#LB_Error_ProjectFolderNotEmpty=Project Folder already exists and is not empty
#LB_Error_ClassName=Class Name is not a valid class name
#LB_Error_Package=Package is not a valid name.
-LB_Error_ProjectName=Il nome del progetto non \u00E8 un nome di cartella
valido.
-LB_Error_ProjectPath=La cartella di progetto non \u00E8 un percorso valido.
-LB_Error_ProjectFolder=La cartella di progetto non pu\u00F2 essere creata.
-LB_Error_ProjectFolderNotEmpty=La cartella di progetto \u00E8 gi\u00E0
esistente e non \u00E8 vuota.
-LB_Error_ClassName=Il nome della classe non \u00E8 un nome di classe valido
-LB_Error_Package=Package non \u00E8 un nome valido.
+#LBL_ErrorMessageOfficeSdk=Cancel and set OpenOffice and SDK locations in
<br/>Tools > Options > Miscellaneous > AOO API Plugin
+LB_Error_ProjectName=Il nome del progetto non \u00e8 un nome di cartella
valido.
+LB_Error_ProjectPath=La cartella di progetto non \u00e8 un percorso valido.
+LB_Error_ProjectFolder=La cartella di progetto non pu\u00f2 essere creata.
+LB_Error_ProjectFolderNotEmpty=La cartella di progetto \u00e8 gi\u00e0
esistente e non \u00e8 vuota.
+LB_Error_ClassName=Il nome della classe non \u00e8 un nome di classe valido
+LB_Error_Package=Package non \u00e8 un nome valido.
+LBL_ErrorMessageOfficeSdk=Annullare e impostare i percorsi di OpenOffice e del
suo SDK in <br/>Tools > Options > Miscellaneous > AOO API Plugin
#LBL_ProjectName=Project &Name:
#LBL_ClassName=&Class Name:
@@ -44,4 +46,4 @@ LBL_BrowseButton=S&foglia
LBL_FileChooserTitle=Seleziona percorso del progetto
#BUTTON_Browse_Tooltip=Select a folder where the project will be created
-BUTTON_Browse_Tooltip=Selezionare una cartella in cui il progetto verr\u00E0
creato
+BUTTON_Browse_Tooltip=Selezionare una cartella in cui il progetto verr\u00e0
creato
Modified:
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppPanelVisual.java
URL:
http://svn.apache.org/viewvc/openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppPanelVisual.java?rev=1677323&r1=1677322&r2=1677323&view=diff
==============================================================================
---
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppPanelVisual.java
(original)
+++
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppPanelVisual.java
Sat May 2 15:24:43 2015
@@ -1,24 +1,23 @@
-/**************************************************************
- *
- * 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.
- *
- *************************************************************/
-
+/**
+ * ************************************************************
+ *
+ * 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.openoffice.extensions.projecttemplates.unoclientapplication;
import java.io.File;
@@ -39,14 +38,16 @@ import org.openoffice.extensions.config.
import org.openoffice.extensions.projecttemplates.actions.ProjectVersion;
public class UNOClientAppPanelVisual extends JPanel implements
DocumentListener {
-
+
public static final String PROP_PROJECT_NAME = "ProjectName"; // NOI18N
public static final String PROP_CLASS_NAME = "ClassName"; // NOI18N
- private boolean classNameModified = false;
+ private boolean classNameModified = false;
private UNOClientAppWizardPanel panel;
-
- /** Creates new form PanelProjectLocationVisual */
+
+ /**
+ * Creates new form PanelProjectLocationVisual
+ */
public UNOClientAppPanelVisual(UNOClientAppWizardPanel panel) {
initComponents();
this.panel = panel;
@@ -56,16 +57,15 @@ public class UNOClientAppPanelVisual ext
projectLocationTextField.getDocument().addDocumentListener(this);
projectPackageTextField.getDocument().addDocumentListener(this);
}
-
-
+
public String getProjectName() {
return this.projectNameTextField.getText();
}
-
- /** 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.
+
+ /**
+ * 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() {
@@ -168,14 +168,14 @@ public class UNOClientAppPanelVisual ext
.addGap(165, 165, 165))
);
}// </editor-fold>//GEN-END:initComponents
-
+
private void browseButtonActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_browseButtonActionPerformed
String command = evt.getActionCommand();
if ("BROWSE".equals(command)) { // NOI18N
JFileChooser chooser = new
JFileChooser(FileSystemView.getFileSystemView());
FileUtil.preventFileChooserSymlinkTraversal(chooser,
ConfigurationSettings.getDefaultFileChooserStartingDir());
chooser.setDialogTitle(
- NbBundle.getMessage(UNOClientAppPanelVisual.class,
"LBL_FileChooserTitle"));
+ NbBundle.getMessage(UNOClientAppPanelVisual.class,
"LBL_FileChooserTitle"));
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
String path = this.projectLocationTextField.getText();
if (path.length() > 0) {
@@ -191,10 +191,10 @@ public class UNOClientAppPanelVisual ext
}
panel.fireChangeEvent();
}
-
+
}//GEN-LAST:event_browseButtonActionPerformed
-
-
+
+
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton browseButton;
private javax.swing.JLabel createdFolderLabel;
@@ -208,15 +208,21 @@ public class UNOClientAppPanelVisual ext
private javax.swing.JLabel projectPackageLabel;
private javax.swing.JTextField projectPackageTextField;
// End of variables declaration//GEN-END:variables
-
+
public void addNotify() {
super.addNotify();
//same problem as in 31086, initial focus on Cancel button
projectNameTextField.requestFocus();
}
-
+
boolean valid(WizardDescriptor wizardDescriptor) {
-
+
+ if (!panel.getUNOClientAppWizardIterator().isSdkOk()) {
+ String message =
NbBundle.getMessage(UNOClientAppWizardIterator.class,
"LBL_ErrorMessageOfficeSdk");
+ wizardDescriptor.putProperty("WizardPanel_errorMessage", message);
// NOI18N
+ return false; // Office or SDK skipped during Configuration Panel
+ }
+
if (projectNameTextField.getText().length() == 0) {
String message =
NbBundle.getMessage(UNOClientAppWizardIterator.class, "LB_Error_ProjectName");
wizardDescriptor.putProperty("WizardPanel_errorMessage", message);
// NOI18N
@@ -229,7 +235,7 @@ public class UNOClientAppPanelVisual ext
return false;
}
final File destFolder = FileUtil.normalizeFile(new
File(createdFolderTextField.getText()).getAbsoluteFile());
-
+
File projLoc = destFolder;
while (projLoc != null && !projLoc.exists()) {
projLoc = projLoc.getParentFile();
@@ -239,13 +245,13 @@ public class UNOClientAppPanelVisual ext
wizardDescriptor.putProperty("WizardPanel_errorMessage", message);
// NOI18N
return false;
}
-
+
if (FileUtil.toFileObject(projLoc) == null) {
String message =
NbBundle.getMessage(UNOClientAppWizardIterator.class, "LB_Error_ProjectPath");
wizardDescriptor.putProperty("WizardPanel_errorMessage", message);
// NOI18N
return false;
}
-
+
File[] kids = destFolder.listFiles();
if (destFolder.exists() && kids != null && kids.length > 0) {
// Folder exists and is not empty
@@ -253,7 +259,7 @@ public class UNOClientAppPanelVisual ext
wizardDescriptor.putProperty("WizardPanel_errorMessage", message);
// NOI18N
return false;
}
-
+
String mainClass = projectClassNameTextField.getText().trim();
if (mainClass.length() == 0 ||
!mainClass.matches("[a-zA-Z_][a-zA-Z_$0-9]*")) { // NOI18N
String message =
NbBundle.getMessage(UNOClientAppWizardIterator.class, "LB_Error_ClassName");
@@ -269,22 +275,26 @@ public class UNOClientAppPanelVisual ext
wizardDescriptor.putProperty("WizardPanel_errorMessage", ""); // NOI18N
return true;
}
-
+
void store(WizardDescriptor d) {
String name = projectNameTextField.getText().trim();
String folder = createdFolderTextField.getText().trim();
ConfigurationSettings settings = ConfigurationSettings.getSettings();
-
- String user = System.getProperty ("user.name"); // NOI18N
+
+ String user = System.getProperty("user.name"); // NOI18N
if (user == null) {
- user = "SomeBody"; // NOI18N
+ user = "SomeBody"; // NOI18N
}
-
+
d.putProperty("UserName", settings.getUser()); // NOI18N
d.putProperty("BuildUnoVersion", ProjectVersion.getProjectVersion());
// NOI18N
d.putProperty("TimeStamp", ConfigurationSettings.getTimeStamp()); //
NOI18N
- d.putProperty("OfficeLibrary", settings.getLibraryName()); // NOI18N
+ try {
+ d.putProperty("OfficeLibrary", settings.getLibraryName()); //
NOI18N
+ } catch (java.lang.NullPointerException npe) {
+ System.err.println("Caught NullPointerException: " +
npe.getMessage());
+ }
d.putProperty("OfficePath",
Utilities.replaceString(settings.getValue(settings.KEY_OFFICE_INSTALLATION),
"\\", "/")); // NOI18N
d.putProperty("SdkPath",
Utilities.replaceString(settings.getValue(settings.KEY_SDK_INSTALLATION), "\\",
"/")); // NOI18N
d.putProperty("projdir", new File(folder)); // NOI18N
@@ -296,123 +306,133 @@ public class UNOClientAppPanelVisual ext
d.putProperty("UnoPackagePath",
Utilities.replaceString(projectPackageTextField.getText().trim(), ".", "/"));
// NOI18N
d.putProperty("UnoClientMain",
projectClassNameTextField.getText().trim()); // NOI18N
}
-
+
void read(WizardDescriptor settings) {
- File projectLocation = (File) settings.getProperty("ProjectDir"); //
NOI18N
+ File projectLocation = null;
+ try {
+ projectLocation = (File) settings.getProperty("ProjectDir"); //
NOI18N
+ } catch (java.lang.ClassCastException cce) {
+ System.out.println("Caught ClassCastException " + cce);
+ }
if (projectLocation == null || projectLocation.getParentFile() == null
|| !projectLocation.getParentFile().isDirectory()) {
projectLocation = ProjectChooser.getProjectsFolder();
} else {
projectLocation = projectLocation.getParentFile();
}
this.projectLocationTextField.setText(projectLocation.getAbsolutePath());
-
+
String projectName = (String)
settings.getProperty("ProjectDisplayName"); // NOI18N
- if(projectName == null) {
+ if (projectName == null) {
projectName = "OfficeUNOClientApp"; // NOI18N
String[] fileList = projectLocation.list(new FilenameFilter() {
public boolean accept(File dir, String name) {
- if (name.startsWith("OfficeUNOClientApp")) return true; //
NOI18N
+ if (name.startsWith("OfficeUNOClientApp")) {
+ return true; // NOI18N
+ }
return false;
}
});
boolean searchProjectName = true;
int length = projectName.length();
- for (int i=0; searchProjectName && i<fileList.length + 1; i++) {
+ for (int i = 0; searchProjectName && i < fileList.length + 1; i++)
{
switch (i) {
case 0: // keep project name
break;
case 1: // append 1
- projectName = new
StringBuffer(projectName).append(1).toString();
+ projectName = new
StringBuffer(projectName).append(1).toString();
break;
default: // remove number and append the next one
projectName = new
StringBuffer(projectName.substring(0, length)).append(i).toString();
}
// test if the name is already used
searchProjectName = false;
- for (int j=0; !searchProjectName && j<fileList.length; j++) {
+ for (int j = 0; !searchProjectName && j < fileList.length;
j++) {
// if the project name isn't found, searchProjectName
stays false and the name is kept
searchProjectName |= fileList[j].equals(projectName);
}
}
}
-
+
String mainClassName = (String) settings.getProperty("UnoClientMain");
// NOI18N
- if(mainClassName == null) {
+ if (mainClassName == null) {
mainClassName = projectName;
}
- String pkg = (String) settings.getProperty ("UnoPackage"); // NOI18N
+ String pkg = (String) settings.getProperty("UnoPackage"); // NOI18N
if (pkg == null) {
pkg = NbBundle.getMessage(ConfigurationSettings.class,
"default.package"); // NOI18N
- }
+ }
this.projectPackageTextField.setText(pkg);
this.projectNameTextField.setText(projectName);
this.projectNameTextField.selectAll();
this.projectClassNameTextField.setText(mainClassName);
this.projectPackageTextField.setText(pkg);
}
-
+
void validate(WizardDescriptor d) throws WizardValidationException {
// nothing to validate
}
-
+
// Implementation of DocumentListener
--------------------------------------
-
public void changedUpdate(DocumentEvent e) {
updateTexts(e);
if (this.projectNameTextField.getDocument() == e.getDocument()) {
-
firePropertyChange(PROP_PROJECT_NAME,null,this.projectNameTextField.getText());
+ firePropertyChange(PROP_PROJECT_NAME, null,
this.projectNameTextField.getText());
}
if (this.projectClassNameTextField.getDocument() == e.getDocument()) {
-
firePropertyChange(PROP_CLASS_NAME,null,this.projectClassNameTextField.getText());
+ firePropertyChange(PROP_CLASS_NAME, null,
this.projectClassNameTextField.getText());
}
}
-
+
public void insertUpdate(DocumentEvent e) {
updateTexts(e);
if (this.projectNameTextField.getDocument() == e.getDocument()) {
-
firePropertyChange(PROP_PROJECT_NAME,null,this.projectNameTextField.getText());
+ firePropertyChange(PROP_PROJECT_NAME, null,
this.projectNameTextField.getText());
}
if (this.projectClassNameTextField.getDocument() == e.getDocument()) {
-
firePropertyChange(PROP_CLASS_NAME,null,this.projectClassNameTextField.getText());
+ firePropertyChange(PROP_CLASS_NAME, null,
this.projectClassNameTextField.getText());
}
}
-
+
public void removeUpdate(DocumentEvent e) {
updateTexts(e);
if (this.projectNameTextField.getDocument() == e.getDocument()) {
-
firePropertyChange(PROP_PROJECT_NAME,null,this.projectNameTextField.getText());
+ firePropertyChange(PROP_PROJECT_NAME, null,
this.projectNameTextField.getText());
}
if (this.projectClassNameTextField.getDocument() == e.getDocument()) {
-
firePropertyChange(PROP_CLASS_NAME,null,this.projectClassNameTextField.getText());
+ firePropertyChange(PROP_CLASS_NAME, null,
this.projectClassNameTextField.getText());
}
-}
-
- /** Handles changes in the Project name and project directory, */
+ }
+
+ /**
+ * Handles changes in the Project name and project directory,
+ */
private void updateTexts(DocumentEvent e) {
-
+
Document doc = e.getDocument();
- if (doc == projectClassNameTextField.getDocument() &&
projectClassNameTextField.getText().length()>0) {
- if
(!projectNameTextField.getText().equals(projectClassNameTextField.getText()))
+ if (doc == projectClassNameTextField.getDocument() &&
projectClassNameTextField.getText().length() > 0) {
+ if
(!projectNameTextField.getText().equals(projectClassNameTextField.getText())) {
classNameModified = true;
+ }
}
-
+
if (doc == projectNameTextField.getDocument() || doc ==
projectLocationTextField.getDocument()) {
// Change in the project name
-
+
String projectName = projectNameTextField.getText();
String projectFolder = projectLocationTextField.getText();
-
- if (!classNameModified)
+
+ if (!classNameModified) {
projectClassNameTextField.setText(projectName);
-
+ }
+
//if (projectFolder.trim().length() == 0 ||
projectFolder.equals(oldName)) {
createdFolderTextField.setText(projectFolder + File.separatorChar
+ projectName);
//}
-
+
}
panel.fireChangeEvent(); // Notify that the panel changed
}
-
+
}
Modified:
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppWizardIterator.java
URL:
http://svn.apache.org/viewvc/openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppWizardIterator.java?rev=1677323&r1=1677322&r2=1677323&view=diff
==============================================================================
---
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppWizardIterator.java
(original)
+++
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppWizardIterator.java
Sat May 2 15:24:43 2015
@@ -1,24 +1,23 @@
-/**************************************************************
- *
- * 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.
- *
- *************************************************************/
-
+/**
+ * ************************************************************
+ *
+ * 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.openoffice.extensions.projecttemplates.unoclientapplication;
import java.awt.Component;
@@ -47,41 +46,44 @@ import org.openide.util.NbBundle;
import org.openoffice.extensions.config.ConfigurationValidator;
import org.openoffice.extensions.util.Substitutions;
-
public class UNOClientAppWizardIterator implements
WizardDescriptor.InstantiatingIterator {
-
+
private int index;
private WizardDescriptor.Panel[] panels;
private WizardDescriptor wiz;
-
- public UNOClientAppWizardIterator() {}
-
+
+ // to track status of valid office and sdk through ConfigurationValidator
+ // to disable next button in AddOnWizardPanel1Project if setting was
skipped
+ private boolean sdkOk = false;
+
+ public UNOClientAppWizardIterator() {
+ }
+
public static UNOClientAppWizardIterator createIterator() {
return new UNOClientAppWizardIterator();
}
-
+
private WizardDescriptor.Panel[] createPanels() {
- return new WizardDescriptor.Panel[] {
- new UNOClientAppWizardPanel(),
- };
+ return new WizardDescriptor.Panel[]{
+ new UNOClientAppWizardPanel(this),};
}
-
+
private String[] createSteps() {
- return new String[] {
+ return new String[]{
NbBundle.getMessage(UNOClientAppWizardIterator.class,
"LBL_CreateProjectStep")
};
}
-
+
public Set<FileObject> instantiate() throws IOException {
Set<FileObject> resultSet = new LinkedHashSet<FileObject>();
File dirF = FileUtil.normalizeFile((File)
wiz.getProperty("ProjectDir")); // NOI18N
dirF.mkdirs();
-
+
FileObject template = Templates.getTemplate(wiz);
FileObject dir = FileUtil.toFileObject(dirF);
-
+
unZipFile(wiz, template.getName(), template.getInputStream(), dir);
-
+
// Always open top dir as a project:
resultSet.add(dir);
// Look for nested projects to open as well:
@@ -92,17 +94,23 @@ public class UNOClientAppWizardIterator
resultSet.add(subfolder);
}
}
-
+
File parent = dirF.getParentFile();
if (parent != null && parent.exists()) {
ProjectChooser.setProjectsFolder(parent);
}
-
+
return resultSet;
}
-
+
public void initialize(WizardDescriptor wiz) {
- ConfigurationValidator.validateSettings();
+ // ConfigurationValidator.validateSettings();
+ if (ConfigurationValidator.validateSettings()) {
+ setSdkOk(true);
+ } else {
+ setSdkOk(false);
+ }
+ // continue so user may cancel
this.wiz = wiz;
index = 0;
panels = createPanels();
@@ -125,55 +133,66 @@ public class UNOClientAppWizardIterator
}
}
}
-
+
public void uninitialize(WizardDescriptor wiz) {
- this.wiz.putProperty("projdir",null); // NOI18N
- this.wiz.putProperty("name",null); // NOI18N
+ this.wiz.putProperty("projdir", null); // NOI18N
+ this.wiz.putProperty("name", null); // NOI18N
this.wiz = null;
panels = null;
}
-
+
public String name() {
return MessageFormat.format("{0} of {1}",
- new Object[] {new Integer(index + 1), new
Integer(panels.length)}); // NOI18N
+ new Object[]{new Integer(index + 1), new
Integer(panels.length)}); // NOI18N
}
-
+
public boolean hasNext() {
return index < panels.length - 1;
}
-
+
public boolean hasPrevious() {
- return index > 0;
+ return index > 0;
}
-
+
public void nextPanel() {
if (!hasNext()) {
throw new NoSuchElementException();
}
index++;
}
-
+
public void previousPanel() {
if (!hasPrevious()) {
throw new NoSuchElementException();
}
index--;
}
-
+
public WizardDescriptor.Panel current() {
return panels[index];
}
// If nothing unusual changes in the middle of the wizard, simply:
- public final void addChangeListener(ChangeListener l) {}
- public final void removeChangeListener(ChangeListener l) {}
-
+ public final void addChangeListener(ChangeListener l) {
+ }
+
+ public final void removeChangeListener(ChangeListener l) {
+ }
+
+ public boolean isSdkOk() {
+ return this.sdkOk;
+ }
+
+ public void setSdkOk(boolean sdkOk) {
+ this.sdkOk = sdkOk;
+ }
+
private static void unZipFile(WizardDescriptor wiz, String templateName,
InputStream source, FileObject projectRoot) throws IOException {
- String[] pathProperties = { "UnoPackagePath", "UnoClientMain"}; //
NOI18N
- String[] contentProperties = { "UnoPackage", "UnoClientMain",
"UnoClientProjectName", "TimeStamp",
- "UserName", "BuildUnoVersion",
"OfficePath", "SdkPath", "OfficeLibrary"}; // NOI18N
-
- Substitutions substitutions = new Substitutions (wiz, new
BufferedInputStream (
+ String[] pathProperties = {"UnoPackagePath", "UnoClientMain"}; //
NOI18N
+ String[] contentProperties = {"UnoPackage", "UnoClientMain",
"UnoClientProjectName", "TimeStamp",
+ "UserName", "BuildUnoVersion", "OfficePath", "SdkPath",
"OfficeLibrary"}; // NOI18N
+
+ Substitutions substitutions = new Substitutions(wiz, new
BufferedInputStream(
UNOClientAppWizardIterator.class.getResourceAsStream(templateName +
".properties")), pathProperties, contentProperties); // NOI18N
try {
ZipInputStream str = new ZipInputStream(source);
@@ -203,5 +222,5 @@ public class UNOClientAppWizardIterator
source.close();
}
}
-
+
}
Modified:
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppWizardPanel.java
URL:
http://svn.apache.org/viewvc/openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppWizardPanel.java?rev=1677323&r1=1677322&r2=1677323&view=diff
==============================================================================
---
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppWizardPanel.java
(original)
+++
openoffice/devtools/netbeansintegration/trunk/src/org/openoffice/extensions/projecttemplates/unoclientapplication/UNOClientAppWizardPanel.java
Sat May 2 15:24:43 2015
@@ -40,9 +40,11 @@ public class UNOClientAppWizardPanel imp
private WizardDescriptor wizardDescriptor;
private UNOClientAppPanelVisual component;
+ private UNOClientAppWizardIterator wizIt;
/** Creates a new instance of templateWizardPanel */
- public UNOClientAppWizardPanel() {
+ public UNOClientAppWizardPanel(UNOClientAppWizardIterator it) {
+ wizIt = it;
}
public Component getComponent() {
@@ -103,4 +105,8 @@ public class UNOClientAppWizardPanel imp
component.validate(wizardDescriptor);
}
+ public UNOClientAppWizardIterator getUNOClientAppWizardIterator() {
+ return wizIt;
+ }
+
}