Author: scabanovich
Date: 2010-08-25 11:07:12 -0400 (Wed, 25 Aug 2010)
New Revision: 24432
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamPreferences.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamPreferenceInitializer.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamValidationMessages.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/messages.properties
Log:
https://jira.jboss.org/browse/JBIDE-6360
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamPreferences.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamPreferences.java 2010-08-25
14:53:53 UTC (rev 24431)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamPreferences.java 2010-08-25
15:07:12 UTC (rev 24432)
@@ -102,6 +102,10 @@
// If @In uses a unknown context variable name then mark it.
public static final String UNKNOWN_VARIABLE_NAME =
INSTANCE.createSeverityOption("unknownVariableName"); //$NON-NLS-1$
+ //pages.xml
+
+ public static final String UNRESOLVED_VIEW_ID =
INSTANCE.createSeverityOption("unresolvedViewID"); //$NON-NLS-1$
+
// Seam project settings
// Mark seam project if it has any invalid seam setting.
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamPreferenceInitializer.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamPreferenceInitializer.java 2010-08-25
14:53:53 UTC (rev 24431)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/SeamPreferenceInitializer.java 2010-08-25
15:07:12 UTC (rev 24432)
@@ -36,7 +36,9 @@
defaultPreferences.put(SeamPreferences.UNKNOWN_VARIABLE_NAME,
SeamPreferences.WARNING);
defaultPreferences.put(SeamPreferences.STATEFUL_COMPONENT_DOES_NOT_CONTENT_DESTROY,
SeamPreferences.WARNING);
defaultPreferences.put(SeamPreferences.INVALID_XML_VERSION, SeamPreferences.WARNING);
-
+
+ defaultPreferences.put(SeamPreferences.UNRESOLVED_VIEW_ID, SeamPreferences.WARNING);
+
//JBIDE-2958 temporary until JBIDE-2957 solved //TODO solve JBIDE-2957
defaultPreferences.put(SeamPreferences.UNKNOWN_COMPONENT_CLASS_NAME_GUESS,
SeamPreferences.WARNING);
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java 2010-08-25
14:53:53 UTC (rev 24431)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java 2010-08-25
15:07:12 UTC (rev 24432)
@@ -48,6 +48,7 @@
import org.jboss.tools.jst.web.kb.validation.IValidationContext;
import org.jboss.tools.jst.web.kb.validation.IValidator;
import org.jboss.tools.jst.web.kb.validation.ValidationUtil;
+import org.jboss.tools.jst.web.model.project.ext.store.XMLValueInfo;
import org.jboss.tools.seam.core.BijectedAttributeType;
import org.jboss.tools.seam.core.IBijectedAttribute;
import org.jboss.tools.seam.core.ISeamAnnotatedFactory;
@@ -251,6 +252,7 @@
for (IPath linkedResource : resources) {
validateComponent(linkedResource, checkedComponents, newResources);
validateFactory(linkedResource, markedDuplicateFactoryNames);
+ validatePageXML(filesToValidate[i]);
validateXMLVersion(filesToValidate[i++]);
}
@@ -959,4 +961,41 @@
}
return true;
}
-}
\ No newline at end of file
+
+ private void validatePageXML(IFile f) {
+ if(f.getName().equals("pages.xml")) {
+ XModelObject object = EclipseResourceUtil.createObjectForResource(f);
+ if(object == null) return;
+ if(object.getModelEntity().getName().startsWith("FileSeamPage")) {
+ validatePageRedirects(object, f);
+ }
+ }
+ }
+
+ private void validatePageRedirects(XModelObject o, IFile f) {
+ if(o.getModelEntity().getName().startsWith("SeamPageRedirect")) {
+ validatePageRedirect(o, f);
+ } else {
+ XModelObject[] cs = o.getChildren();
+ for (XModelObject c: cs) {
+ validatePageRedirects(c, f);
+ }
+ }
+ }
+
+ private void validatePageRedirect(XModelObject redirect, IFile f) {
+ String path = redirect.getAttributeValue("view id");
+ if(path == null || path.length() == 0 || path.indexOf('*') >= 0) return;
+ path = path.replace('\\', '/');
+ if(path.indexOf('?') >= 0) {
+ path = path.substring(0, path.indexOf('?'));
+ }
+ XModelObject target = redirect.getModel().getByPath(path);
+ if(target == null) {
+ XMLValueInfo i = new XMLValueInfo(redirect, "view id");
+ addError(NLS.bind(SeamValidationMessages.UNRESOLVED_VIEW_ID, path),
SeamPreferences.UNRESOLVED_VIEW_ID, i, f);
+ }
+
+ }
+
+}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamValidationMessages.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamValidationMessages.java 2010-08-25
14:53:53 UTC (rev 24431)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamValidationMessages.java 2010-08-25
15:07:12 UTC (rev 24432)
@@ -45,6 +45,8 @@
public static String UNKNOWN_VARIABLE_NAME;
+ public static String UNRESOLVED_VIEW_ID;
+
public static String INVALID_PARENT_PROJECT;
public static String INVALID_SEAM_RUNTIME;
public static String INVALID_WEBFOLDER;
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/messages.properties
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/messages.properties 2010-08-25
14:53:53 UTC (rev 24431)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/messages.properties 2010-08-25
15:07:12 UTC (rev 24432)
@@ -40,6 +40,8 @@
#Context variables
UNKNOWN_VARIABLE_NAME=Unknown context variable name: "{0}"
+#pages.xml
+UNRESOLVED_VIEW_ID=Cannot find target resource: "{0}"
#Invalid seam project settings
INVALID_PARENT_PROJECT=Main Seam project "{0}" specified for Seam project
"{1}" does not exist
INVALID_SEAM_RUNTIME=Seam Runtime "{0}" specified for Seam project
"{1}" does not exist