Author: akazakov
Date: 2008-04-08 15:07:31 -0400 (Tue, 08 Apr 2008)
New Revision: 7434
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/SeamUIMessages.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/messages.properties
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamBaseWizardPage.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamEntityWizardPage1.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamGenerateEnitiesWizardPage.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamWizardUtils.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1950 Added seam project setting validation into
New Action/Form/Entity/Conversation/Generate Entities Wizards.
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/SeamUIMessages.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/SeamUIMessages.java 2008-04-08
18:38:38 UTC (rev 7433)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/SeamUIMessages.java 2008-04-08
19:07:31 UTC (rev 7434)
@@ -409,6 +409,8 @@
public static String VALIDATOR_FACTORY_PROJECT_ALREADY_EXISTS;
+ public static String VALIDATOR_INVALID_SETTINGS;
+
public static String SEAM_TARGET_SERVER;
public static String RUNTIME_DELETE_CONFIRM_TITLE;
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/messages.properties
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/messages.properties 2008-04-08
18:38:38 UTC (rev 7433)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/messages.properties 2008-04-08
19:07:31 UTC (rev 7434)
@@ -161,6 +161,7 @@
VALIDATOR_FACTORY_EJB_PROJECT=EJB project '
VALIDATOR_FACTORY_PROJECT_ALREADY_EXISTS=' already exists. Please select other name
for new Seam project.
VALIDATOR_FACTORY_SEAM_RT_NOT_CONFIGURED=Seam Runtime is not configured for selected Seam
Web Project
+VALIDATOR_INVALID_SETTINGS=Selected seam project has some invalid settings. Please press
"Settings..." and correct them.
SEAM_PROJECT_WIZARD_PAGE1_FILE_CONTAINER_MUST_BE_SPECIFIED=File container must be
specified
SEAM_RUNTIME_LIST_FIELD_EDITOR_RUNTIME_NAME_IS_NOT_CORRECT=Runtime name is not correct
SEAM_GENERATE_ENTITIES_WIZARD_CAN_NOT_GENERATE_SEAM_ENTITIES=Can't generate seam
entities
@@ -204,7 +205,6 @@
OPEN_SEAM_COMPONENT_ACTION_MESSAGE=Enter seam component name prefix or pattern (? = any
character, * = any string):
OPEN_SEAM_COMPONENT_DIALOG_LOADING=Seam components loading
OPEN_SEAM_COMPONENT_DIALOG_NAME=OpenSeamComponentDialog
-OPEN_SEAM_COMPONENT_DIALOG_WAIT=Wait for Build...
FIND_DECLARATIONS_ACTION_ACTION_NAME=Find Seam Declarations
FIND_DECLARATIONS_ACTION_DESCRIPTION=Find Seam Declarations
FIND_DECLARATIONS_ACTION_TOOL_TIP=Find Seam Declarations
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamBaseWizardPage.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamBaseWizardPage.java 2008-04-08
18:38:38 UTC (rev 7433)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamBaseWizardPage.java 2008-04-08
19:07:31 UTC (rev 7434)
@@ -33,6 +33,7 @@
import org.eclipse.swt.widgets.Composite;
import org.jboss.tools.seam.core.SeamCorePlugin;
import org.jboss.tools.seam.internal.core.project.facet.ISeamFacetDataModelProperties;
+import org.jboss.tools.seam.internal.core.validation.SeamProjectPropertyValidator;
import org.jboss.tools.seam.ui.SeamUIMessages;
import org.jboss.tools.seam.ui.internal.project.facet.IValidator;
import org.jboss.tools.seam.ui.internal.project.facet.ValidatorFactory;
@@ -47,6 +48,7 @@
public abstract class SeamBaseWizardPage extends WizardPage implements IAdaptable,
PropertyChangeListener {
protected final IStructuredSelection initialSelection;
+ protected IProject rootSeamProject;
/**
*
@@ -72,7 +74,8 @@
protected void createEditors() {
addEditors(SeamWizardFactory.createBaseFormFieldEditors(SeamWizardUtils.getRootSeamProjectName(initialSelection)));
- String selectedProject = SeamWizardUtils.getRootSeamProjectName(initialSelection);
+ rootSeamProject = SeamWizardUtils.getRootSeamProject(initialSelection);
+ String selectedProject = (rootSeamProject == null) ? "" :
rootSeamProject.getName();
String packageName = getDefaultPackageName(selectedProject);
addEditor(SeamWizardFactory.createSeamJavaPackageSelectionFieldEditor(packageName));
setSeamProjectNameData(selectedProject);
@@ -290,6 +293,17 @@
setPageComplete(true);
}
+ protected boolean isProjectSettingsOk() {
+ if(rootSeamProject!=null) {
+ IEclipsePreferences prefs = SeamCorePlugin.getSeamPreferences(rootSeamProject);
+ return
SeamProjectPropertyValidator.isFolderPathValid(prefs.get(ISeamFacetDataModelProperties.SESSION_BEAN_SOURCE_FOLDER,
""), false) &&
+ SeamProjectPropertyValidator.isFolderPathValid(prefs.get(ISeamFacetDataModelProperties.WEB_CONTENTS_FOLDER,
""), false) &&
+ ("false".equals(prefs.get(ISeamFacetDataModelProperties.TEST_CREATING,
"false").trim()) ||
(SeamProjectPropertyValidator.isFolderPathValid(prefs.get(ISeamFacetDataModelProperties.TEST_SOURCE_FOLDER,
""), false) &&
SeamProjectPropertyValidator.isProjectNameValid(prefs.get(ISeamFacetDataModelProperties.SEAM_TEST_PROJECT,
""), false))) &&
+ (ISeamFacetDataModelProperties.DEPLOY_AS_WAR.equals(prefs.get(ISeamFacetDataModelProperties.JBOSS_AS_DEPLOY_AS,
ISeamFacetDataModelProperties.DEPLOY_AS_WAR).trim()) ||
SeamProjectPropertyValidator.isProjectNameValid(prefs.get(ISeamFacetDataModelProperties.SEAM_EJB_PROJECT,
""), false));
+ }
+ return true;
+ }
+
/**
* @param project
*/
@@ -309,8 +323,12 @@
Map errors = ValidatorFactory.SEAM_PROJECT_NAME_VALIDATOR.validate(
editorRegistry.get(IParameter.SEAM_PROJECT_NAME).getValue(), null);
- if(errors.size()>0) {
- setErrorMessage(errors.get(IValidator.DEFAULT_ERROR).toString());
+ if(errors.size()>0 || !isProjectSettingsOk()) {
+ Object errorMessage = errors.get(IValidator.DEFAULT_ERROR);
+ if(errorMessage==null) {
+ errorMessage = SeamUIMessages.VALIDATOR_INVALID_SETTINGS;
+ }
+ setErrorMessage(errorMessage.toString());
setPageComplete(false);
IFieldEditor beanEditor = getEditor(IParameter.SEAM_BEAN_NAME);
if(beanEditor!=null) {
@@ -321,8 +339,6 @@
packageEditor.setEnabled(false);
}
return false;
- } else {
-
}
return true;
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamEntityWizardPage1.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamEntityWizardPage1.java 2008-04-08
18:38:38 UTC (rev 7433)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamEntityWizardPage1.java 2008-04-08
19:07:31 UTC (rev 7434)
@@ -19,7 +19,9 @@
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.widgets.Composite;
+import org.jboss.tools.seam.core.SeamCorePlugin;
import org.jboss.tools.seam.internal.core.project.facet.ISeamFacetDataModelProperties;
+import org.jboss.tools.seam.internal.core.validation.SeamProjectPropertyValidator;
import org.jboss.tools.seam.ui.SeamUIMessages;
import org.jboss.tools.seam.ui.internal.project.facet.IValidator;
import org.jboss.tools.seam.ui.internal.project.facet.ValidatorFactory;
@@ -45,10 +47,11 @@
*/
@Override
protected void createEditors() {
- addEditor(SeamWizardFactory.createSeamProjectSelectionFieldEditor(SeamWizardUtils.getRootSeamProjectName(initialSelection)));
+ rootSeamProject = SeamWizardUtils.getRootSeamProject(initialSelection);
+ String selectedProject = (rootSeamProject == null) ? "" :
rootSeamProject.getName();
+ addEditor(SeamWizardFactory.createSeamProjectSelectionFieldEditor(selectedProject));
addEditor(SeamWizardFactory.createSeamEntityClasNameFieldEditor());
- String selectedProject = SeamWizardUtils.getRootSeamProjectName(initialSelection);
String packageName = getDefaultPackageName(selectedProject);
addEditor(SeamWizardFactory.createSeamJavaPackageSelectionFieldEditor(packageName));
@@ -99,7 +102,24 @@
return seamFacetPrefs.get(ISeamFacetDataModelProperties.ENTITY_BEAN_PACKAGE_NAME,
"");
}
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.seam.ui.wizard.SeamBaseWizardPage#isProjectSettingsOk()
+ */
@Override
+ protected boolean isProjectSettingsOk() {
+ if(rootSeamProject!=null) {
+ IEclipsePreferences prefs = SeamCorePlugin.getSeamPreferences(rootSeamProject);
+ return
SeamProjectPropertyValidator.isFolderPathValid(prefs.get(ISeamFacetDataModelProperties.ENTITY_BEAN_SOURCE_FOLDER,
""), false) &&
+ SeamProjectPropertyValidator.isFolderPathValid(prefs.get(ISeamFacetDataModelProperties.SESSION_BEAN_SOURCE_FOLDER,
""), false) &&
+ SeamProjectPropertyValidator.isFolderPathValid(prefs.get(ISeamFacetDataModelProperties.WEB_CONTENTS_FOLDER,
""), false) &&
+ ("false".equals(prefs.get(ISeamFacetDataModelProperties.TEST_CREATING,
"false").trim()) ||
(SeamProjectPropertyValidator.isFolderPathValid(prefs.get(ISeamFacetDataModelProperties.TEST_SOURCE_FOLDER,
""), false) &&
SeamProjectPropertyValidator.isProjectNameValid(prefs.get(ISeamFacetDataModelProperties.SEAM_TEST_PROJECT,
""), false))) &&
+ (ISeamFacetDataModelProperties.DEPLOY_AS_WAR.equals(prefs.get(ISeamFacetDataModelProperties.JBOSS_AS_DEPLOY_AS,
ISeamFacetDataModelProperties.DEPLOY_AS_WAR).trim()) ||
SeamProjectPropertyValidator.isProjectNameValid(prefs.get(ISeamFacetDataModelProperties.SEAM_EJB_PROJECT,
""), false));
+ }
+ return true;
+ }
+
+ @Override
protected void doValidate(PropertyChangeEvent event) {
if(!isValidProjectSelected()) return;
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamGenerateEnitiesWizardPage.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamGenerateEnitiesWizardPage.java 2008-04-08
18:38:38 UTC (rev 7433)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamGenerateEnitiesWizardPage.java 2008-04-08
19:07:31 UTC (rev 7434)
@@ -19,6 +19,7 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
@@ -30,7 +31,10 @@
import org.hibernate.console.KnownConfigurations;
import org.hibernate.eclipse.console.utils.ProjectUtils;
import org.hibernate.eclipse.launch.HibernateLaunchConstants;
+import org.jboss.tools.seam.core.SeamCorePlugin;
import org.jboss.tools.seam.core.SeamProjectsSet;
+import org.jboss.tools.seam.internal.core.project.facet.ISeamFacetDataModelProperties;
+import org.jboss.tools.seam.internal.core.validation.SeamProjectPropertyValidator;
import org.jboss.tools.seam.ui.SeamUIMessages;
import org.jboss.tools.seam.ui.internal.project.facet.IValidator;
import org.jboss.tools.seam.ui.internal.project.facet.ValidatorFactory;
@@ -45,6 +49,7 @@
private IFieldEditor projectEditor;
private IFieldEditor configEditor;
private RadioField radios;
+ IProject rootSeamProject;
public SeamGenerateEnitiesWizardPage() {
super("seam.generate.entities.page",
SeamUIMessages.GENERATE_SEAM_ENTITIES_WIZARD_TITLE, null); //$NON-NLS-1$
@@ -56,7 +61,8 @@
*/
public void createControl(Composite parent) {
setPageComplete(true);
- String projectName = SeamWizardUtils.getCurrentSelectedRootSeamProjectName();
+ rootSeamProject = SeamWizardUtils.getCurrentSelectedRootSeamProject();
+ String projectName = rootSeamProject==null?"":rootSeamProject.getName();
projectEditor = SeamWizardFactory.createSeamProjectSelectionFieldEditor(projectName);
projectEditor.addPropertyChangeListener(this);
if(projectName!=null && projectName.length()>0) {
@@ -106,6 +112,7 @@
radios.addPropertyChangeListener(this);
setControl(top);
+ validate();
}
private static String getConsoleConfigurationName(String seamWebProjectName) {
@@ -164,12 +171,45 @@
validate();
}
- private void validate() {
- Map<String, String> errors =
ValidatorFactory.SEAM_PROJECT_NAME_VALIDATOR.validate(projectEditor.getValue(), null);
+ protected boolean isProjectSettingsOk() {
+ if(rootSeamProject!=null) {
+ if(!isValidRuntimeConfigured(rootSeamProject)) {
+ return false;
+ }
+ IEclipsePreferences prefs = SeamCorePlugin.getSeamPreferences(rootSeamProject);
+ return
SeamProjectPropertyValidator.isFolderPathValid(prefs.get(ISeamFacetDataModelProperties.ENTITY_BEAN_SOURCE_FOLDER,
""), false) &&
+ SeamProjectPropertyValidator.isFolderPathValid(prefs.get(ISeamFacetDataModelProperties.SESSION_BEAN_SOURCE_FOLDER,
""), false) &&
+ SeamProjectPropertyValidator.isFolderPathValid(prefs.get(ISeamFacetDataModelProperties.WEB_CONTENTS_FOLDER,
""), false) &&
+ (ISeamFacetDataModelProperties.DEPLOY_AS_WAR.equals(prefs.get(ISeamFacetDataModelProperties.JBOSS_AS_DEPLOY_AS,
ISeamFacetDataModelProperties.DEPLOY_AS_WAR).trim()) ||
SeamProjectPropertyValidator.isProjectNameValid(prefs.get(ISeamFacetDataModelProperties.SEAM_EJB_PROJECT,
""), false));
+ }
+ return true;
+ }
+ /**
+ * @param project
+ */
+ protected boolean isValidRuntimeConfigured(IProject project) {
+ Map errors;
+ String seamRt =
SeamCorePlugin.getSeamPreferences(project).get(ISeamFacetDataModelProperties.SEAM_RUNTIME_NAME,"");
//$NON-NLS-1$
+ errors = ValidatorFactory.SEAM_RUNTIME_VALIDATOR.validate(seamRt, null);
if(errors.size()>0) {
setErrorMessage(errors.get(IValidator.DEFAULT_ERROR).toString());
setPageComplete(false);
+ return false;
+ }
+ return true;
+ }
+
+ private void validate() {
+ Map<String, String> errors =
ValidatorFactory.SEAM_PROJECT_NAME_VALIDATOR.validate(projectEditor.getValue(), null);
+
+ if(errors.size()>0 || !isProjectSettingsOk()) {
+ Object errorMessage = errors.get(IValidator.DEFAULT_ERROR);
+ if(errorMessage==null) {
+ errorMessage = SeamUIMessages.VALIDATOR_INVALID_SETTINGS;
+ }
+ setErrorMessage(errorMessage.toString());
+ setPageComplete(false);
return;
}
String config = (String)configEditor.getValue();
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamWizardUtils.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamWizardUtils.java 2008-04-08
18:38:38 UTC (rev 7433)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamWizardUtils.java 2008-04-08
19:07:31 UTC (rev 7434)
@@ -15,8 +15,6 @@
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.internal.ui.viewsupport.IViewPartInputProvider;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IEditorInput;
@@ -24,12 +22,10 @@
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.jboss.tools.seam.core.ISeamProject;
import org.jboss.tools.seam.core.SeamCorePlugin;
-import org.jboss.tools.seam.core.project.facet.SeamProjectPreferences;
import org.jboss.tools.seam.internal.core.project.facet.ISeamFacetDataModelProperties;
/**
@@ -50,6 +46,21 @@
return getRootSeamProjectName(sel);
}
+ /**
+ *
+ * @return
+ */
+ public static IProject getCurrentSelectedRootSeamProject() {
+ ISelection sel = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
+ .getSelectionService().getSelection();
+ return getRootSeamProject(sel);
+ }
+
+ /**
+ *
+ * @param project
+ * @return
+ */
public static IProject getRootSeamProject(IProject project) {
if (project != null) {
ISeamProject seamProject = SeamCorePlugin.getSeamProject(project, false);
@@ -78,7 +89,6 @@
}
/**
- *
* @param sel
* @return root seam project name based on the passed selection;
* name of project if selection contains a project which is not a seam project -
@@ -86,16 +96,31 @@
* empty string if selection contains no project
*/
public static String getRootSeamProjectName(ISelection sel) {
+ IProject project = getRootSeamProject(sel);
+ return project == null ? "" : project.getName();
+ }
+
+ /**
+ * @param sel
+ * @return project if selection contains a project which is not a seam project -
+ * in this case it is up to wizard to show what is the problem with the
selection;
+ * null if selection contains no project
+ */
+ public static IProject getRootSeamProject(ISelection sel) {
IProject initial = getInitialProject(sel);
IProject project = getRootSeamProject(initial);
if(project == null) {
project = initial;
}
- return project == null ? "" : project.getName();
+ return project == null ? null : project;
}
+ /**
+ *
+ * @param simpleSelection
+ * @return
+ */
public static IProject getInitialProject(ISelection simpleSelection) {
-
IProject project = null;
if (simpleSelection != null && !simpleSelection.isEmpty()
&& simpleSelection instanceof IStructuredSelection) {
@@ -109,7 +134,7 @@
return resource.getProject();
}
}
-
+
if(project==null) {
IEditorPart activeEditor = getActivePage().getActiveEditor();
if(activeEditor!=null) {
@@ -122,16 +147,15 @@
}
return project;
}
-
+
private static IWorkbenchPage getActivePage() {
IWorkbenchWindow window= getWorkbench().getActiveWorkbenchWindow();
if (window == null)
return null;
return getWorkbench().getActiveWorkbenchWindow().getActivePage();
}
-
+
private static IWorkbench getWorkbench() {
return PlatformUI.getWorkbench();
}
-
-}
+}
\ No newline at end of file