Author: sdzmitrovich
Date: 2008-12-02 13:09:29 -0500 (Tue, 02 Dec 2008)
New Revision: 12218
Added:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/util/
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/util/Facelets.java
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/VpeCompositionTemplate.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/VpeDefineContainerTemplate.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/VpeInsertTemplate.java
Log:
JBIDE-3187
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/VpeCompositionTemplate.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/VpeCompositionTemplate.java 2008-12-02
18:07:49 UTC (rev 12217)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/VpeCompositionTemplate.java 2008-12-02
18:09:29 UTC (rev 12218)
@@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.tools.jsf.vpe.facelets.template;
+import org.jboss.tools.jsf.vpe.facelets.template.util.Facelets;
import org.jboss.tools.vpe.editor.VpeVisualDomBuilder;
import org.jboss.tools.vpe.editor.context.VpePageContext;
import org.jboss.tools.vpe.editor.template.VpeCreationData;
@@ -24,7 +25,7 @@
public VpeCreationData create(VpePageContext pageContext, Node sourceNode,
nsIDOMDocument visualDocument){
- Attr attr =
((Element)sourceNode).getAttributeNode(VpeDefineContainerTemplate.ATTR_TEMPLATE);
+ Attr attr = ((Element)sourceNode).getAttributeNode(Facelets.ATTR_TEMPLATE);
if (attr != null) {
return super.create(pageContext, sourceNode, visualDocument);
} else {
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/VpeDefineContainerTemplate.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/VpeDefineContainerTemplate.java 2008-12-02
18:07:49 UTC (rev 12217)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/VpeDefineContainerTemplate.java 2008-12-02
18:09:29 UTC (rev 12218)
@@ -18,11 +18,7 @@
import java.util.regex.Pattern;
import org.eclipse.core.resources.IFile;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
+import org.jboss.tools.jsf.vpe.facelets.template.util.Facelets;
import org.jboss.tools.vpe.editor.VpeIncludeInfo;
import org.jboss.tools.vpe.editor.VpeVisualDomBuilder;
import org.jboss.tools.vpe.editor.context.VpePageContext;
@@ -35,17 +31,17 @@
import org.jboss.tools.vpe.editor.template.VpeTemplateManager;
import org.jboss.tools.vpe.editor.util.FileUtil;
import org.jboss.tools.vpe.editor.util.HTML;
-import org.mozilla.interfaces.nsIDOMAttr;
import org.mozilla.interfaces.nsIDOMDocument;
import org.mozilla.interfaces.nsIDOMElement;
import org.mozilla.interfaces.nsIDOMNamedNodeMap;
import org.mozilla.interfaces.nsIDOMNode;
import org.mozilla.interfaces.nsIDOMNodeList;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
public abstract class VpeDefineContainerTemplate extends VpeAbstractTemplate {
- protected static final String ATTR_TEMPLATE = "template";
- protected static final String NAME = "name";
- protected static final String VALUE = "value";
int count = 0;
private static Set<Node> defineContainer = new HashSet<Node>();
@@ -58,7 +54,7 @@
public VpeCreationData create(VpePageContext pageContext, Node sourceNode,
nsIDOMDocument visualDocument) {
- String fileName = ((Element)sourceNode).getAttribute(ATTR_TEMPLATE);
+ String fileName = ((Element)sourceNode).getAttribute(Facelets.ATTR_TEMPLATE);
if (fileName != null && fileName.trim().length() > 0) {
IFile file = VpeCreatorUtil.getFile(fileName, pageContext);
if (file != null) {
@@ -226,9 +222,9 @@
int len = sourceChildren.getLength();
for (int i = 0; i < len; i++) {
Node sourceChild = sourceChildren.item(i);
- if (sourceChild.getNodeType() == Node.ELEMENT_NODE &&
"param".equals(sourceChild.getLocalName())) {
- String name = ((Element)sourceChild).getAttribute(NAME);
- String value = ((Element)sourceChild).getAttribute(VALUE);
+ if (sourceChild.getNodeType() == Node.ELEMENT_NODE &&
Facelets.TAG_PARAM.equals(sourceChild.getLocalName())) {
+ String name = ((Element)sourceChild).getAttribute(Facelets.ATTR_NAME);
+ String value = ((Element)sourceChild).getAttribute(Facelets.ATTR_VALUE);
paramsMap.put(name, value);
}
}
@@ -263,7 +259,7 @@
int len = sourceChildren.getLength();
for (int i = 0; i < len; i++) {
Node sourceChild = sourceChildren.item(i);
- if (sourceChild.getNodeType() == Node.ELEMENT_NODE &&
"define".equals(sourceChild.getLocalName())) {
+ if (sourceChild.getNodeType() == Node.ELEMENT_NODE &&
Facelets.TAG_DEFINE.equals(sourceChild.getLocalName())) {
if (template == null) {
VpeTemplateManager templateManager =
pageContext.getVisualBuilder().getTemplateManager();
template = templateManager.getTemplate(pageContext, (Element)sourceChild, null);
@@ -295,8 +291,19 @@
}
public static boolean isDefineContainer(Node sourceNode) {
- return defineContainer.contains(sourceNode);
+ //FIX
https://jira.jboss.org/jira/browse/JBIDE-3187 by sdzmitrovich
+ //TODO: it is necessary to refactor facelet templates
+// return defineContainer.contains(sourceNode);
+ while (sourceNode != null) {
+ if (defineContainer.contains(sourceNode))
+ return true;
+
+ sourceNode = sourceNode.getParentNode();
+ }
+
+ return false;
+
}
@Override
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/VpeInsertTemplate.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/VpeInsertTemplate.java 2008-12-02
18:07:49 UTC (rev 12217)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/VpeInsertTemplate.java 2008-12-02
18:09:29 UTC (rev 12218)
@@ -13,6 +13,7 @@
import java.util.ArrayList;
import java.util.List;
+import org.jboss.tools.jsf.vpe.facelets.template.util.Facelets;
import org.jboss.tools.vpe.editor.VpeIncludeInfo;
import org.jboss.tools.vpe.editor.VpeVisualDomBuilder;
import org.jboss.tools.vpe.editor.context.VpePageContext;
@@ -40,7 +41,7 @@
VpeVisualDomBuilder visualBuilder = pageContext.getVisualBuilder();
VpeIncludeInfo includeInfo = visualBuilder.getCurrentIncludeInfo();
if (includeInfo != null && includeInfo.getElement() != null) {
- String name = ((Element)sourceNode).getAttribute("name");
+ String name = ((Element)sourceNode).getAttribute(Facelets.ATTR_NAME);
if (name != null) {
name = name.trim();
if (name.length() <= 0) name = null;
@@ -82,15 +83,23 @@
}
private Element findDefineElement(Element defineContainer, String defineName) {
- Element defineElement = null;
+ Element defineElement = null;
NodeList children = defineContainer.getChildNodes();
- int len = children.getLength();
- for (int i = 0; i < len; i++) {
+ for (int i = 0; i < children.getLength(); i++) {
Node child = children.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE &&
- "define".equals(child.getLocalName()) &&
- defineName.equals(((Element)child).getAttribute("name"))) {
- defineElement = (Element)child;
+ if (child.getNodeType() == Node.ELEMENT_NODE) {
+ Element childElement = (Element) child;
+ if (Facelets.TAG_DEFINE.equals(childElement.getLocalName())
+ && defineName.equals(childElement
+ .getAttribute(Facelets.ATTR_NAME))) {
+ defineElement = childElement;
+
+ } else {
+ Element tempDefineElement = findDefineElement(childElement,
+ defineName);
+ if (tempDefineElement != null)
+ defineElement = tempDefineElement;
+ }
}
}
return defineElement;
@@ -104,7 +113,7 @@
Node child = children.item(i);
if ((child.getNodeType() == Node.ELEMENT_NODE||child.getNodeType() == Node.TEXT_NODE))
{
- if(child.getNodeType() ==
Node.ELEMENT_NODE&&!"define".equals(child.getLocalName())&&((Element)child).getAttribute("name")==null)
{
+ if(child.getNodeType() ==
Node.ELEMENT_NODE&&!Facelets.TAG_DEFINE.equals(child.getLocalName())&&((Element)child).getAttribute("name")==null)
{
result.add(child);
} else if(child.getNodeType() ==
Node.TEXT_NODE&&((Text)child).getNodeValue()!=null&&
Added:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/util/Facelets.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/util/Facelets.java
(rev 0)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.facelets/src/org/jboss/tools/jsf/vpe/facelets/template/util/Facelets.java 2008-12-02
18:09:29 UTC (rev 12218)
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jsf.vpe.facelets.template.util;
+
+/**
+ * @author Sergey Dzmitrovich
+ *
+ */
+public class Facelets {
+
+ public static final String TAG_DEFINE = "define"; //$NON-NLS-1$
+
+ public static final String TAG_PARAM = "param"; //$NON-NLS-1$
+
+ public static final String ATTR_NAME = "name"; //$NON-NLS-1$
+
+ public static final String ATTR_VALUE = "value"; //$NON-NLS-1$
+
+ public static final String ATTR_TEMPLATE = "template"; //$NON-NLS-1$
+
+}