# HG changeset patch # Parent 9ec69aa098334c0f8a623303a13e83d200db6898 Issue #184213: provide proper API for setAsMain constant. diff --git a/ant.freeform/src/org/netbeans/modules/ant/freeform/ui/BasicProjectInfoPanel.java b/ant.freeform/src/org/netbeans/modules/ant/freeform/ui/BasicProjectInfoPanel.java --- a/ant.freeform/src/org/netbeans/modules/ant/freeform/ui/BasicProjectInfoPanel.java +++ b/ant.freeform/src/org/netbeans/modules/ant/freeform/ui/BasicProjectInfoPanel.java @@ -122,8 +122,8 @@ return getAsFile(projectFolder.getText()); } - public Boolean getMainProject() { - return Boolean.valueOf(mainProject.isSelected()); + public boolean getMainProject() { + return mainProject.isSelected(); } public String[] getError() { diff --git a/ant.freeform/src/org/netbeans/modules/ant/freeform/ui/BasicProjectInfoWizardPanel.java b/ant.freeform/src/org/netbeans/modules/ant/freeform/ui/BasicProjectInfoWizardPanel.java --- a/ant.freeform/src/org/netbeans/modules/ant/freeform/ui/BasicProjectInfoWizardPanel.java +++ b/ant.freeform/src/org/netbeans/modules/ant/freeform/ui/BasicProjectInfoWizardPanel.java @@ -45,6 +45,7 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.netbeans.modules.ant.freeform.spi.support.NewFreeformProjectSupport; +import org.netbeans.spi.project.ui.templates.support.Templates; import org.openide.WizardDescriptor; import org.openide.util.ChangeSupport; import org.openide.util.HelpCtx; @@ -106,7 +107,7 @@ wizardDescriptor.putProperty(NewFreeformProjectSupport.PROP_PROJECT_LOCATION, component.getProjectLocation()); wizardDescriptor.putProperty(NewFreeformProjectSupport.PROP_PROJECT_FOLDER, component.getProjectFolder()); wizardDescriptor.putProperty("NewProjectWizard_Title", null); // NOI18N - wizardDescriptor.putProperty("setAsMain", component.getMainProject()); // NOI18N + Templates.setDefinesMainProject(wizardDescriptor, component.getMainProject()); } public void stateChanged(ChangeEvent e) { diff --git a/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/UIUtil.java b/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/UIUtil.java --- a/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/UIUtil.java +++ b/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/UIUtil.java @@ -106,6 +106,7 @@ import org.netbeans.modules.apisupport.project.ui.wizard.NewNbModuleWizardIterator; import org.netbeans.spi.java.project.support.ui.PackageView; import org.netbeans.spi.project.ui.support.ProjectChooser; +import org.netbeans.spi.project.ui.templates.support.Templates; import org.openide.DialogDescriptor; import org.openide.DialogDisplayer; import org.openide.ErrorManager; @@ -704,7 +705,7 @@ try { project = (NbModuleProject) ProjectManager.getDefault().findProject(folder); OpenProjects.getDefault().open(new Project[] { project }, false); - if (wd.getProperty("setAsMain") == Boolean.TRUE) { // NOI18N + if (Templates.getDefinesMainProject(wd)) { OpenProjects.getDefault().setMainProject(project); } } catch (IOException e) { diff --git a/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/wizard/NewNbModuleWizardIterator.java b/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/wizard/NewNbModuleWizardIterator.java --- a/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/wizard/NewNbModuleWizardIterator.java +++ b/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/wizard/NewNbModuleWizardIterator.java @@ -62,6 +62,7 @@ import org.netbeans.modules.apisupport.project.ui.UIUtil; import org.netbeans.modules.apisupport.project.ui.customizer.SuiteUtils; import org.netbeans.spi.project.ui.support.ProjectChooser; +import org.netbeans.spi.project.ui.templates.support.Templates; import org.openide.WizardDescriptor; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; @@ -229,9 +230,8 @@ resultSet.add(createdProjectFolder); UIUtil.setProjectChooserDirParent(projectFolder); - - // XXX this constant should be defined somewhere! - settings.putProperty("setAsMain", Boolean.valueOf(data.isMainProject())); // NOI18N + + Templates.setDefinesMainProject(settings, data.isMainProject()); return resultSet; } diff --git a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/wizards/PanelOptionsVisual.java b/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/wizards/PanelOptionsVisual.java --- a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/wizards/PanelOptionsVisual.java +++ b/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/wizards/PanelOptionsVisual.java @@ -42,7 +42,6 @@ package org.netbeans.modules.java.j2seproject.ui.wizards; -import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyChangeEvent; @@ -55,6 +54,7 @@ import org.netbeans.api.queries.CollocationQuery; import org.netbeans.spi.java.project.support.ui.SharableLibrariesUtils; import org.netbeans.spi.project.support.ant.PropertyUtils; +import org.netbeans.spi.project.ui.templates.support.Templates; import org.openide.WizardDescriptor; import org.openide.WizardValidationException; import org.openide.filesystems.FileUtil; @@ -327,7 +327,7 @@ } void store( WizardDescriptor d ) { - d.putProperty( /*XXX Define somewhere */ "setAsMain", setAsMainCheckBox.isSelected() && setAsMainCheckBox.isVisible() ? Boolean.TRUE : Boolean.FALSE ); // NOI18N + Templates.setDefinesMainProject(d, setAsMainCheckBox.isSelected() && setAsMainCheckBox.isVisible()); d.putProperty( /*XXX Define somewhere */ "mainClass", createMainCheckBox.isSelected() && createMainCheckBox.isVisible() ? mainClassTextField.getText() : null ); // NOI18N d.putProperty( SHARED_LIBRARIES, cbSharable.isSelected() ? txtLibFolder.getText() : null ); // NOI18N } diff --git a/projectui/src/org/netbeans/modules/project/ui/actions/NewProject.java b/projectui/src/org/netbeans/modules/project/ui/actions/NewProject.java --- a/projectui/src/org/netbeans/modules/project/ui/actions/NewProject.java +++ b/projectui/src/org/netbeans/modules/project/ui/actions/NewProject.java @@ -58,6 +58,7 @@ import org.netbeans.modules.project.ui.ProjectUtilities; import org.netbeans.modules.project.ui.TemplatesPanel; import org.netbeans.spi.project.ui.support.CommonProjectActions; +import org.netbeans.spi.project.ui.templates.support.Templates; import org.openide.ErrorManager; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; @@ -144,13 +145,6 @@ } } - Object mainProperty = wizard.getProperty( /* XXX Define somewhere */ "setAsMain" ); // NOI18N - boolean setFirstMain = true; - if ( mainProperty instanceof Boolean ) { - setFirstMain = ((Boolean)mainProperty).booleanValue(); - } - final boolean setFirstMainFinal = setFirstMain; - //#69618: the non-project cache may contain a project folder listed in newObjects: ProjectManager.getDefault().clearNonProjectCache(); ProjectUtilities.WaitCursor.show(); @@ -203,7 +197,7 @@ Project lastProject = projectsToOpen.size() > 0 ? projectsToOpen.get(0) : null; Project mainProject = null; - if (setFirstMainFinal && lastProject != null) { + if (Templates.getDefinesMainProject(wizard) && lastProject != null) { mainProject = lastProject; } diff --git a/projectuiapi/src/org/netbeans/spi/project/ui/templates/support/Templates.java b/projectuiapi/src/org/netbeans/spi/project/ui/templates/support/Templates.java --- a/projectuiapi/src/org/netbeans/spi/project/ui/templates/support/Templates.java +++ b/projectuiapi/src/org/netbeans/spi/project/ui/templates/support/Templates.java @@ -44,6 +44,7 @@ import java.io.IOException; import org.netbeans.api.project.Project; import org.netbeans.api.project.SourceGroup; +import org.netbeans.api.project.ui.OpenProjects; import org.netbeans.modules.project.uiapi.ProjectChooserFactory; import org.netbeans.modules.project.uiapi.Utilities; import org.netbeans.spi.project.ui.support.CommonProjectActions; @@ -61,6 +62,8 @@ public class Templates { private Templates() {} + + private static final String SET_AS_MAIN = "setAsMain"; // NOI18N /** * Find the project selected for a custom template wizard iterator. @@ -199,6 +202,31 @@ wizardDescriptor.putProperty( ProjectChooserFactory.WIZARD_KEY_TARGET_NAME, targetName ); } } + + /** + * Checks whether a project wizard will set the main project. + * (The default is false.) + * @param wizardDescriptor a New Project wizard + * @return true if it will set a main project + * @since XXX + */ + public static boolean getDefinesMainProject(WizardDescriptor wizardDescriptor) { + return Boolean.TRUE.equals(wizardDescriptor.getProperty(SET_AS_MAIN)); + } + + /** + * Specify whether a project wizard will set the main project. + * If so, and it {@linkplain org.openide.WizardDescriptor.InstantiatingIterator#instantiate returns} + * at least one {@linkplain Project#getProjectDirectory project directory} to signal + * that a project will be created, the first such project will be + * {@linkplain OpenProjects#setMainProject set as the main project}. + * @param wizardDescriptor a New Project wizard + * @param definesMainProject true if it will set a main project + * @since XXX + */ + public static void setDefinesMainProject(WizardDescriptor wizardDescriptor, boolean definesMainProject) { + wizardDescriptor.putProperty(SET_AS_MAIN, definesMainProject); + } /** * @deprecated Use {@link #buildSimpleTargetChooser} instead.