JBoss Tools SVN: r6573 - trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template.
by jbosstools-commits@lists.jboss.org
Author: sdzmitrovich
Date: 2008-02-26 03:21:34 -0500 (Tue, 26 Feb 2008)
New Revision: 6573
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/EditableTemplateAdapter.java
Log:
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/EditableTemplateAdapter.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/EditableTemplateAdapter.java 2008-02-26 08:19:09 UTC (rev 6572)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/EditableTemplateAdapter.java 2008-02-26 08:21:34 UTC (rev 6573)
@@ -208,7 +208,7 @@
}
/**
- * Default implementation of a handling of a pressing the "page up" event -
+ * Default handling of a pressing the "page up" event -
* always return false.
*
* Override this method for a handling of a pressing the "page up" event
@@ -310,9 +310,9 @@
}
/**
- * Default implementation of a handling of a pressing the "backspace" event
+ * Default handling of a pressing the "backspace" event
*
- * Override this method for a handling of a pressing the "backspace" event
+ * Override this method to handle the "backspace" event
*
* @param pageContext -
* context of vpe
17 years, 7 months
JBoss Tools SVN: r6572 - trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template.
by jbosstools-commits@lists.jboss.org
Author: sdzmitrovich
Date: 2008-02-26 03:19:09 -0500 (Tue, 26 Feb 2008)
New Revision: 6572
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/EditableTemplateAdapter.java
Log:
was added new attributes editing mechanism
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/EditableTemplateAdapter.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/EditableTemplateAdapter.java 2008-02-26 08:01:17 UTC (rev 6571)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/EditableTemplateAdapter.java 2008-02-26 08:19:09 UTC (rev 6572)
@@ -147,9 +147,6 @@
// get visual node which is focused
nsIDOMNode visualNode = selection.getFocusNode();
- System.out.print("\n name:" + visualNode.getLocalName() + "\t value:"
- + visualNode.getNodeValue());
-
VpeElementMapping elementMapping = getElmentMapping(pageContext,
visualNode);
17 years, 7 months
JBoss Tools SVN: r6571 - in trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template: util and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: sdzmitrovich
Date: 2008-02-26 03:01:17 -0500 (Tue, 26 Feb 2008)
New Revision: 6571
Added:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/NodeProxyUtil.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/AttributeProxy.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/ElementProxy.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeProxy.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/TextProxy.java
Removed:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/NodeAdapterUtil.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/AttributeAdapter.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/ElementAdapter.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeAdapter.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/TextAdapter.java
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputLabelTemplate.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputTextTemplate.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1718
Modified: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputLabelTemplate.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputLabelTemplate.java 2008-02-26 07:39:40 UTC (rev 6570)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputLabelTemplate.java 2008-02-26 08:01:17 UTC (rev 6571)
@@ -14,7 +14,7 @@
import java.util.List;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.jboss.tools.jsf.vpe.jsf.template.util.NodeAdapterUtil;
+import org.jboss.tools.jsf.vpe.jsf.template.util.NodeProxyUtil;
import org.jboss.tools.vpe.editor.bundle.BundleMap;
import org.jboss.tools.vpe.editor.context.VpePageContext;
import org.jboss.tools.vpe.editor.mapping.VpeNodeMapping;
@@ -97,7 +97,7 @@
VpeChildrenInfo spanInfo = new VpeChildrenInfo(span);
- NodeList list = NodeAdapterUtil.reparseAttributeValue(attr);
+ NodeList list = NodeProxyUtil.reparseAttributeValue(attr);
for (int i = 0; i < list.getLength(); i++) {
Modified: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputTextTemplate.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputTextTemplate.java 2008-02-26 07:39:40 UTC (rev 6570)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputTextTemplate.java 2008-02-26 08:01:17 UTC (rev 6571)
@@ -14,7 +14,7 @@
import java.util.List;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.jboss.tools.jsf.vpe.jsf.template.util.NodeAdapterUtil;
+import org.jboss.tools.jsf.vpe.jsf.template.util.NodeProxyUtil;
import org.jboss.tools.vpe.editor.bundle.BundleMap;
import org.jboss.tools.vpe.editor.context.VpePageContext;
import org.jboss.tools.vpe.editor.mapping.VpeNodeMapping;
@@ -97,7 +97,7 @@
VpeChildrenInfo spanInfo = new VpeChildrenInfo(span);
- NodeList list = NodeAdapterUtil.reparseAttributeValue(attr);
+ NodeList list = NodeProxyUtil.reparseAttributeValue(attr);
for (int i = 0; i < list.getLength(); i++) {
Deleted: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/NodeAdapterUtil.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/NodeAdapterUtil.java 2008-02-26 07:39:40 UTC (rev 6570)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/NodeAdapterUtil.java 2008-02-26 08:01:17 UTC (rev 6571)
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 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
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.jsf.vpe.jsf.template.util;
-
-import org.eclipse.jst.jsp.core.internal.domdocument.DOMModelForJSP;
-import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
-import org.eclipse.wst.sse.core.internal.document.StructuredDocumentFactory;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.jboss.tools.jsf.vpe.jsf.template.util.model.ElementAdapter;
-import org.jboss.tools.jsf.vpe.jsf.template.util.model.NodeAdapter;
-import org.jboss.tools.jsf.vpe.jsf.template.util.model.NodeListImpl;
-import org.jboss.tools.jsf.vpe.jsf.template.util.model.TextAdapter;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class NodeAdapterUtil {
-
- static public NodeList reparseAttributeValue(Attr attr) {
-
- IStructuredDocument newStructuredDocument = StructuredDocumentFactory
- .getNewStructuredDocumentInstance(new JSPSourceParser());
-
- newStructuredDocument.set(attr.getValue());
-
- IDOMModel modelForJSP = new DOMModelForJSP();
- modelForJSP.setStructuredDocument(newStructuredDocument);
-
- IDOMDocument document = modelForJSP.getDocument();
-
- NodeList list = document.getChildNodes();
-
- NodeList adaptersList = getNodeAdapterList(list, ((IDOMAttr) attr)
- .getValueRegionStartOffset());
-
- return adaptersList;
-
- }
-
- static public NodeAdapter getNodeAdapter(Node node, int basicOffset) {
- if (node == null)
- return null;
-
- if (node instanceof IDOMText)
- return new TextAdapter((IDOMText) node, basicOffset);
- else if (node instanceof IDOMElement)
- return new ElementAdapter((IDOMElement) node, basicOffset);
- else
- return new NodeAdapter(node, basicOffset);
- }
-
- static public NodeList getNodeAdapterList(NodeList nodeList, int basicOffset) {
-
- NodeListImpl newNodeList = new NodeListImpl();
-
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node node = nodeList.item(i);
-
- newNodeList.appendNode(getNodeAdapter(node, basicOffset));
-
- }
-
- return newNodeList;
-
- }
-
-}
Copied: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/NodeProxyUtil.java (from rev 6570, trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/NodeAdapterUtil.java)
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/NodeProxyUtil.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/NodeProxyUtil.java 2008-02-26 08:01:17 UTC (rev 6571)
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template.util;
+
+import org.eclipse.jst.jsp.core.internal.domdocument.DOMModelForJSP;
+import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
+import org.eclipse.wst.sse.core.internal.document.StructuredDocumentFactory;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
+import org.jboss.tools.jsf.vpe.jsf.template.util.model.ElementProxy;
+import org.jboss.tools.jsf.vpe.jsf.template.util.model.NodeProxy;
+import org.jboss.tools.jsf.vpe.jsf.template.util.model.NodeListImpl;
+import org.jboss.tools.jsf.vpe.jsf.template.util.model.TextProxy;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class NodeProxyUtil {
+
+ static public NodeList reparseAttributeValue(Attr attr) {
+
+ IStructuredDocument newStructuredDocument = StructuredDocumentFactory
+ .getNewStructuredDocumentInstance(new JSPSourceParser());
+
+ newStructuredDocument.set(attr.getValue());
+
+ IDOMModel modelForJSP = new DOMModelForJSP();
+ modelForJSP.setStructuredDocument(newStructuredDocument);
+
+ IDOMDocument document = modelForJSP.getDocument();
+
+ NodeList list = document.getChildNodes();
+
+ NodeList adaptersList = getNodeAdapterList(list, ((IDOMAttr) attr)
+ .getValueRegionStartOffset());
+
+ return adaptersList;
+
+ }
+
+ static public NodeProxy getNodeAdapter(Node node, int basicOffset) {
+ if (node == null)
+ return null;
+
+ if (node instanceof IDOMText)
+ return new TextProxy((IDOMText) node, basicOffset);
+ else if (node instanceof IDOMElement)
+ return new ElementProxy((IDOMElement) node, basicOffset);
+ else
+ return new NodeProxy(node, basicOffset);
+ }
+
+ static public NodeList getNodeAdapterList(NodeList nodeList, int basicOffset) {
+
+ NodeListImpl newNodeList = new NodeListImpl();
+
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node node = nodeList.item(i);
+
+ newNodeList.appendNode(getNodeAdapter(node, basicOffset));
+
+ }
+
+ return newNodeList;
+
+ }
+
+}
Deleted: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/AttributeAdapter.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/AttributeAdapter.java 2008-02-26 07:39:40 UTC (rev 6570)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/AttributeAdapter.java 2008-02-26 08:01:17 UTC (rev 6571)
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 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
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.jsf.vpe.jsf.template.util.model;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.w3c.dom.Attr;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Element;
-import org.w3c.dom.TypeInfo;
-
-public class AttributeAdapter extends NodeAdapter implements IDOMAttr {
-
- public AttributeAdapter(IDOMAttr basicAttr, int basicOffset) {
- super(basicAttr, basicOffset);
- }
-
- public ITextRegion getEqualRegion() {
-
- return ((IDOMAttr) basicNode).getEqualRegion();
- }
-
- public int getNameRegionEndOffset() {
- return ((IDOMAttr) basicNode).getNameRegionEndOffset() + basicOffset;
- }
-
- public int getNameRegionStartOffset() {
- return ((IDOMAttr) basicNode).getNameRegionStartOffset() + basicOffset;
- }
-
- public String getNameRegionText() {
- return ((IDOMAttr) basicNode).getNameRegionText();
- }
-
- public int getNameRegionTextEndOffset() {
- return ((IDOMAttr) basicNode).getNameRegionTextEndOffset()
- + basicOffset;
- }
-
- public int getValueRegionStartOffset() {
- return ((IDOMAttr) basicNode).getValueRegionStartOffset() + basicOffset;
- }
-
- public String getValueRegionText() {
- return ((IDOMAttr) basicNode).getValueRegionText();
- }
-
- public boolean hasNameOnly() {
- return ((IDOMAttr) basicNode).hasNameOnly();
- }
-
- public boolean hasNestedValue() {
- return ((IDOMAttr) basicNode).hasNestedValue();
- }
-
- public boolean isGlobalAttr() {
- return ((IDOMAttr) basicNode).isGlobalAttr();
- }
-
- public boolean isXMLAttr() {
- return ((IDOMAttr) basicNode).isXMLAttr();
- }
-
- public String getName() {
- return ((IDOMAttr) basicNode).getName();
- }
-
- public Element getOwnerElement() {
- return ((IDOMAttr) basicNode).getOwnerElement();
- }
-
- public TypeInfo getSchemaTypeInfo() {
- return ((IDOMAttr) basicNode).getSchemaTypeInfo();
- }
-
- public boolean getSpecified() {
- return ((IDOMAttr) basicNode).getSpecified();
- }
-
- public String getValue() {
- return ((IDOMAttr) basicNode).getValue();
- }
-
- public void setValue(String value) throws DOMException {
- ((IDOMAttr) basicNode).setValue(value);
-
- }
-
-}
Copied: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/AttributeProxy.java (from rev 6570, trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/AttributeAdapter.java)
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/AttributeProxy.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/AttributeProxy.java 2008-02-26 08:01:17 UTC (rev 6571)
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template.util.model;
+
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Element;
+import org.w3c.dom.TypeInfo;
+
+public class AttributeProxy extends NodeProxy implements IDOMAttr {
+
+ public AttributeProxy(IDOMAttr basicAttr, int basicOffset) {
+ super(basicAttr, basicOffset);
+ }
+
+ public ITextRegion getEqualRegion() {
+
+ return ((IDOMAttr) basicNode).getEqualRegion();
+ }
+
+ public int getNameRegionEndOffset() {
+ return ((IDOMAttr) basicNode).getNameRegionEndOffset() + basicOffset;
+ }
+
+ public int getNameRegionStartOffset() {
+ return ((IDOMAttr) basicNode).getNameRegionStartOffset() + basicOffset;
+ }
+
+ public String getNameRegionText() {
+ return ((IDOMAttr) basicNode).getNameRegionText();
+ }
+
+ public int getNameRegionTextEndOffset() {
+ return ((IDOMAttr) basicNode).getNameRegionTextEndOffset()
+ + basicOffset;
+ }
+
+ public int getValueRegionStartOffset() {
+ return ((IDOMAttr) basicNode).getValueRegionStartOffset() + basicOffset;
+ }
+
+ public String getValueRegionText() {
+ return ((IDOMAttr) basicNode).getValueRegionText();
+ }
+
+ public boolean hasNameOnly() {
+ return ((IDOMAttr) basicNode).hasNameOnly();
+ }
+
+ public boolean hasNestedValue() {
+ return ((IDOMAttr) basicNode).hasNestedValue();
+ }
+
+ public boolean isGlobalAttr() {
+ return ((IDOMAttr) basicNode).isGlobalAttr();
+ }
+
+ public boolean isXMLAttr() {
+ return ((IDOMAttr) basicNode).isXMLAttr();
+ }
+
+ public String getName() {
+ return ((IDOMAttr) basicNode).getName();
+ }
+
+ public Element getOwnerElement() {
+ return ((IDOMAttr) basicNode).getOwnerElement();
+ }
+
+ public TypeInfo getSchemaTypeInfo() {
+ return ((IDOMAttr) basicNode).getSchemaTypeInfo();
+ }
+
+ public boolean getSpecified() {
+ return ((IDOMAttr) basicNode).getSpecified();
+ }
+
+ public String getValue() {
+ return ((IDOMAttr) basicNode).getValue();
+ }
+
+ public void setValue(String value) throws DOMException {
+ ((IDOMAttr) basicNode).setValue(value);
+
+ }
+
+}
Deleted: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/ElementAdapter.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/ElementAdapter.java 2008-02-26 07:39:40 UTC (rev 6570)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/ElementAdapter.java 2008-02-26 08:01:17 UTC (rev 6571)
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 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
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.jsf.vpe.jsf.template.util.model;
-
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.w3c.dom.Attr;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.TypeInfo;
-
-public class ElementAdapter extends NodeAdapter implements IDOMElement {
-
- public ElementAdapter(IDOMElement basicElement, int basicOffset) {
- super(basicElement, basicOffset);
- }
-
- public int getEndStartOffset() {
- return ((IDOMElement) basicNode).getEndStartOffset() + basicOffset;
- }
-
- public int getStartEndOffset() {
- return ((IDOMElement) basicNode).getStartEndOffset() + basicOffset;
- }
-
- public boolean hasEndTag() {
- return ((IDOMElement) basicNode).hasEndTag();
- }
-
- public boolean hasStartTag() {
- return ((IDOMElement) basicNode).hasStartTag();
- }
-
- public boolean isCommentTag() {
- return ((IDOMElement) basicNode).isCommentTag();
- }
-
- public boolean isEmptyTag() {
- return ((IDOMElement) basicNode).isEmptyTag();
- }
-
- public boolean isEndTag() {
- return ((IDOMElement) basicNode).isEndTag();
- }
-
- public boolean isGlobalTag() {
- return ((IDOMElement) basicNode).isGlobalTag();
- }
-
- public boolean isImplicitTag() {
- return ((IDOMElement) basicNode).isImplicitTag();
- }
-
- public boolean isJSPTag() {
- return ((IDOMElement) basicNode).isJSPTag();
- }
-
- public boolean isStartTagClosed() {
- return ((IDOMElement) basicNode).isStartTagClosed();
- }
-
- public boolean isXMLTag() {
- return ((IDOMElement) basicNode).isXMLTag();
- }
-
- public void notifyEndTagChanged() {
- ((IDOMElement) basicNode).notifyEndTagChanged();
-
- }
-
- public void notifyStartTagChanged() {
- ((IDOMElement) basicNode).notifyStartTagChanged();
-
- }
-
- public void setCommentTag(boolean isCommentTag) {
- ((IDOMElement) basicNode).setCommentTag(isCommentTag);
-
- }
-
- public void setEmptyTag(boolean isEmptyTag) {
- ((IDOMElement) basicNode).setEmptyTag(isEmptyTag);
-
- }
-
- public void setIdAttribute(String name, boolean isId) {
- ((IDOMElement) basicNode).setIdAttribute(name, isId);
-
- }
-
- public void setIdAttributeNS(String namespaceURI, String localName,
- boolean isId) {
- ((IDOMElement) basicNode).setIdAttributeNS(namespaceURI, localName,
- isId);
-
- }
-
- public void setIdAttributeNode(Attr idAttr, boolean isId)
- throws DOMException {
- ((IDOMElement) basicNode).setIdAttributeNode(idAttr, isId);
-
- }
-
- public void setJSPTag(boolean isJSPTag) {
- ((IDOMElement) basicNode).setJSPTag(isJSPTag);
-
- }
-
- public String getAttribute(String name) {
-
- return ((IDOMElement) basicNode).getAttribute(name);
- }
-
- public String getAttributeNS(String namespaceURI, String localName)
- throws DOMException {
- return ((IDOMElement) basicNode)
- .getAttributeNS(namespaceURI, localName);
- }
-
- public Attr getAttributeNode(String name) {
- return new AttributeAdapter((IDOMAttr) ((IDOMElement) basicNode)
- .getAttributeNode(name), basicOffset);
- }
-
- public Attr getAttributeNodeNS(String namespaceURI, String localName)
- throws DOMException {
- return new AttributeAdapter((IDOMAttr) ((IDOMElement) basicNode)
- .getAttributeNodeNS(namespaceURI, localName), basicOffset);
- }
-
- public NodeList getElementsByTagName(String name) {
- return createNodeAdapterList(((IDOMElement) basicNode)
- .getElementsByTagName(name));
- }
-
- public NodeList getElementsByTagNameNS(String namespaceURI, String localName)
- throws DOMException {
- return createNodeAdapterList(((IDOMElement) basicNode)
- .getElementsByTagNameNS(namespaceURI, localName));
- }
-
- public TypeInfo getSchemaTypeInfo() {
- return ((IDOMElement) basicNode).getSchemaTypeInfo();
- }
-
- public String getTagName() {
- return ((IDOMElement) basicNode).getTagName();
- }
-
- public boolean hasAttribute(String name) {
- return ((IDOMElement) basicNode).hasAttribute(name);
- }
-
- public boolean hasAttributeNS(String namespaceURI, String localName)
- throws DOMException {
- return ((IDOMElement) basicNode)
- .hasAttributeNS(namespaceURI, localName);
- }
-
- public void removeAttribute(String name) throws DOMException {
- ((IDOMElement) basicNode).removeAttribute(name);
- }
-
- public void removeAttributeNS(String namespaceURI, String localName)
- throws DOMException {
-
- ((IDOMElement) basicNode).removeAttributeNS(namespaceURI, localName);
- }
-
- public Attr removeAttributeNode(Attr oldAttr) throws DOMException {
- return new AttributeAdapter((IDOMAttr) ((IDOMElement) basicNode)
- .removeAttributeNode(oldAttr), basicOffset);
- }
-
- public void setAttribute(String name, String value) throws DOMException {
- //((IDOMElement) basicNode).setAttribute(name, value);
-
- }
-
- public void setAttributeNS(String namespaceURI, String qualifiedName,
- String value) throws DOMException {
- // ((IDOMElement) basicNode).setAttributeNS(namespaceURI, qualifiedName,
- // value);
-
- }
-
- public Attr setAttributeNode(Attr newAttr) throws DOMException {
- return new AttributeAdapter((IDOMAttr) ((IDOMElement) basicNode)
- .setAttributeNode(newAttr), basicOffset);
- }
-
- public Attr setAttributeNodeNS(Attr newAttr) throws DOMException {
- return new AttributeAdapter((IDOMAttr) ((IDOMElement) basicNode)
- .setAttributeNodeNS(newAttr), basicOffset);
- }
-
-}
Copied: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/ElementProxy.java (from rev 6570, trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/ElementAdapter.java)
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/ElementProxy.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/ElementProxy.java 2008-02-26 08:01:17 UTC (rev 6571)
@@ -0,0 +1,205 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template.util.model;
+
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.TypeInfo;
+
+public class ElementProxy extends NodeProxy implements IDOMElement {
+
+ public ElementProxy(IDOMElement basicElement, int basicOffset) {
+ super(basicElement, basicOffset);
+ }
+
+ public int getEndStartOffset() {
+ return ((IDOMElement) basicNode).getEndStartOffset() + basicOffset;
+ }
+
+ public int getStartEndOffset() {
+ return ((IDOMElement) basicNode).getStartEndOffset() + basicOffset;
+ }
+
+ public boolean hasEndTag() {
+ return ((IDOMElement) basicNode).hasEndTag();
+ }
+
+ public boolean hasStartTag() {
+ return ((IDOMElement) basicNode).hasStartTag();
+ }
+
+ public boolean isCommentTag() {
+ return ((IDOMElement) basicNode).isCommentTag();
+ }
+
+ public boolean isEmptyTag() {
+ return ((IDOMElement) basicNode).isEmptyTag();
+ }
+
+ public boolean isEndTag() {
+ return ((IDOMElement) basicNode).isEndTag();
+ }
+
+ public boolean isGlobalTag() {
+ return ((IDOMElement) basicNode).isGlobalTag();
+ }
+
+ public boolean isImplicitTag() {
+ return ((IDOMElement) basicNode).isImplicitTag();
+ }
+
+ public boolean isJSPTag() {
+ return ((IDOMElement) basicNode).isJSPTag();
+ }
+
+ public boolean isStartTagClosed() {
+ return ((IDOMElement) basicNode).isStartTagClosed();
+ }
+
+ public boolean isXMLTag() {
+ return ((IDOMElement) basicNode).isXMLTag();
+ }
+
+ public void notifyEndTagChanged() {
+ ((IDOMElement) basicNode).notifyEndTagChanged();
+
+ }
+
+ public void notifyStartTagChanged() {
+ ((IDOMElement) basicNode).notifyStartTagChanged();
+
+ }
+
+ public void setCommentTag(boolean isCommentTag) {
+ ((IDOMElement) basicNode).setCommentTag(isCommentTag);
+
+ }
+
+ public void setEmptyTag(boolean isEmptyTag) {
+ ((IDOMElement) basicNode).setEmptyTag(isEmptyTag);
+
+ }
+
+ public void setIdAttribute(String name, boolean isId) {
+ ((IDOMElement) basicNode).setIdAttribute(name, isId);
+
+ }
+
+ public void setIdAttributeNS(String namespaceURI, String localName,
+ boolean isId) {
+ ((IDOMElement) basicNode).setIdAttributeNS(namespaceURI, localName,
+ isId);
+
+ }
+
+ public void setIdAttributeNode(Attr idAttr, boolean isId)
+ throws DOMException {
+ ((IDOMElement) basicNode).setIdAttributeNode(idAttr, isId);
+
+ }
+
+ public void setJSPTag(boolean isJSPTag) {
+ ((IDOMElement) basicNode).setJSPTag(isJSPTag);
+
+ }
+
+ public String getAttribute(String name) {
+
+ return ((IDOMElement) basicNode).getAttribute(name);
+ }
+
+ public String getAttributeNS(String namespaceURI, String localName)
+ throws DOMException {
+ return ((IDOMElement) basicNode)
+ .getAttributeNS(namespaceURI, localName);
+ }
+
+ public Attr getAttributeNode(String name) {
+ return new AttributeProxy((IDOMAttr) ((IDOMElement) basicNode)
+ .getAttributeNode(name), basicOffset);
+ }
+
+ public Attr getAttributeNodeNS(String namespaceURI, String localName)
+ throws DOMException {
+ return new AttributeProxy((IDOMAttr) ((IDOMElement) basicNode)
+ .getAttributeNodeNS(namespaceURI, localName), basicOffset);
+ }
+
+ public NodeList getElementsByTagName(String name) {
+ return createNodeAdapterList(((IDOMElement) basicNode)
+ .getElementsByTagName(name));
+ }
+
+ public NodeList getElementsByTagNameNS(String namespaceURI, String localName)
+ throws DOMException {
+ return createNodeAdapterList(((IDOMElement) basicNode)
+ .getElementsByTagNameNS(namespaceURI, localName));
+ }
+
+ public TypeInfo getSchemaTypeInfo() {
+ return ((IDOMElement) basicNode).getSchemaTypeInfo();
+ }
+
+ public String getTagName() {
+ return ((IDOMElement) basicNode).getTagName();
+ }
+
+ public boolean hasAttribute(String name) {
+ return ((IDOMElement) basicNode).hasAttribute(name);
+ }
+
+ public boolean hasAttributeNS(String namespaceURI, String localName)
+ throws DOMException {
+ return ((IDOMElement) basicNode)
+ .hasAttributeNS(namespaceURI, localName);
+ }
+
+ public void removeAttribute(String name) throws DOMException {
+ ((IDOMElement) basicNode).removeAttribute(name);
+ }
+
+ public void removeAttributeNS(String namespaceURI, String localName)
+ throws DOMException {
+
+ ((IDOMElement) basicNode).removeAttributeNS(namespaceURI, localName);
+ }
+
+ public Attr removeAttributeNode(Attr oldAttr) throws DOMException {
+ return new AttributeProxy((IDOMAttr) ((IDOMElement) basicNode)
+ .removeAttributeNode(oldAttr), basicOffset);
+ }
+
+ public void setAttribute(String name, String value) throws DOMException {
+ //((IDOMElement) basicNode).setAttribute(name, value);
+
+ }
+
+ public void setAttributeNS(String namespaceURI, String qualifiedName,
+ String value) throws DOMException {
+ // ((IDOMElement) basicNode).setAttributeNS(namespaceURI, qualifiedName,
+ // value);
+
+ }
+
+ public Attr setAttributeNode(Attr newAttr) throws DOMException {
+ return new AttributeProxy((IDOMAttr) ((IDOMElement) basicNode)
+ .setAttributeNode(newAttr), basicOffset);
+ }
+
+ public Attr setAttributeNodeNS(Attr newAttr) throws DOMException {
+ return new AttributeProxy((IDOMAttr) ((IDOMElement) basicNode)
+ .setAttributeNodeNS(newAttr), basicOffset);
+ }
+
+}
Deleted: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeAdapter.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeAdapter.java 2008-02-26 07:39:40 UTC (rev 6570)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeAdapter.java 2008-02-26 08:01:17 UTC (rev 6571)
@@ -1,373 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 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
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.jsf.vpe.jsf.template.util.model;
-
-import java.util.Collection;
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.document.InvalidCharacterException;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.TypeInfo;
-import org.w3c.dom.UserDataHandler;
-
-public class NodeAdapter implements IDOMNode {
-
- protected Node basicNode;
-
- protected Node parentNode;
-
- protected int basicOffset;
-
- public NodeAdapter(Node basicNode, int basicOffset) {
-
- this.basicNode = basicNode;
- this.basicOffset = basicOffset;
-
- }
-
- // implementation of Node interface methods
- public Node appendChild(Node newChild) throws DOMException {
- return basicNode.appendChild(newChild);
- }
-
- public Node cloneNode(boolean deep) {
- return basicNode.cloneNode(deep);
- }
-
- public short compareDocumentPosition(Node other) throws DOMException {
- return basicNode.compareDocumentPosition(other);
- }
-
- public NamedNodeMap getAttributes() {
-
- NamedNodeMap basicAttributes = basicNode.getAttributes();
- NamedNodeMap newAttributes = new NamedNodeMapImpl();
-
- for (int i = 0; i < basicAttributes.getLength(); i++) {
-
- IDOMAttr attr = (IDOMAttr) basicAttributes.item(0);
-
- newAttributes.setNamedItem(new AttributeAdapter(attr, basicOffset));
-
- }
-
- return newAttributes;
- }
-
- public String getBaseURI() {
- return basicNode.getBaseURI();
- }
-
- public NodeList getChildNodes() {
-
- return createNodeAdapterList(basicNode.getChildNodes());
-
- }
-
- public Object getFeature(String feature, String version) {
- return basicNode.getFeature(feature, version);
- }
-
- public Node getFirstChild() {
-
- return getNodeAdapter(basicNode.getFirstChild());
-
- }
-
- public Node getLastChild() {
-
- return getNodeAdapter(basicNode.getLastChild());
-
- }
-
- public String getLocalName() {
- return basicNode.getLocalName();
- }
-
- public String getNamespaceURI() {
- return basicNode.getNamespaceURI();
- }
-
- public Node getNextSibling() {
-
- return getNodeAdapter(basicNode.getNextSibling());
-
- }
-
- public String getNodeName() {
- return basicNode.getNodeName();
- }
-
- public short getNodeType() {
- return basicNode.getNodeType();
- }
-
- public String getNodeValue() throws DOMException {
- return basicNode.getNodeValue();
- }
-
- public Document getOwnerDocument() {
- return basicNode.getOwnerDocument();
- }
-
- public Node getParentNode() {
- return basicNode.getParentNode();
- }
-
- public String getPrefix() {
- return basicNode.getPrefix();
- }
-
- public Node getPreviousSibling() {
- return getNodeAdapter(basicNode.getPreviousSibling());
- }
-
- public String getTextContent() throws DOMException {
- return basicNode.getTextContent();
- }
-
- public Object getUserData(String key) {
- return basicNode.getUserData(key);
- }
-
- public boolean hasAttributes() {
- return basicNode.hasAttributes();
- }
-
- public boolean hasChildNodes() {
- return basicNode.hasChildNodes();
- }
-
- public Node insertBefore(Node newChild, Node refChild) throws DOMException {
- return insertBefore(newChild, refChild);
- }
-
- public boolean isDefaultNamespace(String namespaceURI) {
- return false;
- }
-
- public boolean isEqualNode(Node arg) {
- return basicNode.isEqualNode(arg);
- }
-
- public boolean isSameNode(Node other) {
- return basicNode.isSameNode(other);
- }
-
- public boolean isSupported(String feature, String version) {
- return basicNode.isSupported(feature, version);
- }
-
- public String lookupNamespaceURI(String prefix) {
- return basicNode.lookupNamespaceURI(prefix);
- }
-
- public String lookupPrefix(String namespaceURI) {
- return basicNode.lookupPrefix(namespaceURI);
- }
-
- public void normalize() {
-
- basicNode.normalize();
- }
-
- public Node removeChild(Node oldChild) throws DOMException {
- return basicNode.removeChild(oldChild);
- }
-
- public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
- return basicNode.replaceChild(newChild, oldChild);
- }
-
- public void setNodeValue(String nodeValue) throws DOMException {
- basicNode.setNodeValue(nodeValue);
- }
-
- public void setPrefix(String prefix) throws DOMException {
- basicNode.setPrefix(prefix);
- }
-
- public void setTextContent(String textContent) throws DOMException {
- basicNode.setTextContent(textContent);
- }
-
- public Object setUserData(String key, Object data, UserDataHandler handler) {
- return basicNode.setUserData(key, data, handler);
- }
-
- // implementation of IDOMNode interface methods
-
- public IStructuredDocumentRegion getEndStructuredDocumentRegion() {
- return ((IDOMNode) basicNode).getEndStructuredDocumentRegion();
- }
-
- public IStructuredDocumentRegion getFirstStructuredDocumentRegion() {
- return ((IDOMNode) basicNode).getFirstStructuredDocumentRegion();
- }
-
- public IStructuredDocumentRegion getLastStructuredDocumentRegion() {
- return ((IDOMNode) basicNode).getLastStructuredDocumentRegion();
- }
-
- public IDOMModel getModel() {
- return ((IDOMNode) basicNode).getModel();
- }
-
- public ITextRegion getNameRegion() {
- return ((IDOMNode) basicNode).getNameRegion();
- }
-
- public String getSource() {
- return ((IDOMNode) basicNode).getSource();
- }
-
- public IStructuredDocumentRegion getStartStructuredDocumentRegion() {
- return ((IDOMNode) basicNode).getStartStructuredDocumentRegion();
- }
-
- public IStructuredDocument getStructuredDocument() {
- return getStructuredDocument();
- }
-
- public ITextRegion getValueRegion() {
- return ((IDOMNode) basicNode).getValueRegion();
- }
-
- public String getValueSource() {
- return ((IDOMNode) basicNode).getValueSource();
- }
-
- public boolean isChildEditable() {
- return ((IDOMNode) basicNode).isChildEditable();
- }
-
- public boolean isClosed() {
- return ((IDOMNode) basicNode).isClosed();
- }
-
- public boolean isContainer() {
- return ((IDOMNode) basicNode).isContainer();
- }
-
- public boolean isDataEditable() {
- return ((IDOMNode) basicNode).isDataEditable();
- }
-
- public boolean isId() {
- return ((IDOMNode) basicNode).isId();
- }
-
- public void setChildEditable(boolean editable) {
- ((IDOMNode) basicNode).setChildEditable(editable);
- }
-
- public void setDataEditable(boolean editable) {
- ((IDOMNode) basicNode).setDataEditable(editable);
- }
-
- public void setEditable(boolean editable, boolean deep) {
- ((IDOMNode) basicNode).setEditable(editable, deep);
-
- }
-
- public void setSource(String source) throws InvalidCharacterException {
-
- ((IDOMNode) basicNode).setSource(source);
- }
-
- public void setValueSource(String source) {
- ((IDOMNode) basicNode).setValueSource(source);
-
- }
-
- public boolean contains(int testPosition) {
- return ((IDOMNode) basicNode).contains(testPosition);
- }
-
- public int getEndOffset() {
- return ((IDOMNode) basicNode).getEndOffset() + basicOffset;
- }
-
- public int getLength() {
- return ((IDOMNode) basicNode).getLength();
- }
-
- public int getStartOffset() {
- return ((IDOMNode) basicNode).getStartOffset()+ basicOffset;
- }
-
- public void addAdapter(INodeAdapter adapter) {
- ((IDOMNode) basicNode).addAdapter(adapter);
- }
-
- public INodeAdapter getAdapterFor(Object type) {
- return ((IDOMNode) basicNode).getAdapterFor(type);
- }
-
- public Collection getAdapters() {
- return ((IDOMNode) basicNode).getAdapters();
- }
-
- public INodeAdapter getExistingAdapter(Object type) {
- return ((IDOMNode) basicNode).getExistingAdapter(type);
- }
-
- public void notify(int eventType, Object changedFeature, Object oldValue,
- Object newValue, int pos) {
- ((IDOMNode) basicNode).notify();
-
- }
-
- public void removeAdapter(INodeAdapter adapter) {
- ((IDOMNode) basicNode).removeAdapter(adapter);
- }
-
- protected NodeAdapter getNodeAdapter(Node node) {
- if (node == null)
- return null;
-
- if (node instanceof IDOMText)
- return new TextAdapter((IDOMText) node, basicOffset);
- else if (node instanceof IDOMElement)
- return new ElementAdapter((IDOMElement) node, basicOffset);
- else
- return new NodeAdapter(node, basicOffset);
- }
-
- protected NodeList createNodeAdapterList(NodeList nodeList) {
-
- NodeListImpl newNodeList = new NodeListImpl();
-
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node node = nodeList.item(i);
-
- newNodeList.appendNode(getNodeAdapter(node));
-
- }
-
- return newNodeList;
-
- }
-
-}
Copied: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeProxy.java (from rev 6570, trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeAdapter.java)
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeProxy.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeProxy.java 2008-02-26 08:01:17 UTC (rev 6571)
@@ -0,0 +1,373 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template.util.model;
+
+import java.util.Collection;
+
+import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.xml.core.internal.document.InvalidCharacterException;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.TypeInfo;
+import org.w3c.dom.UserDataHandler;
+
+public class NodeProxy implements IDOMNode {
+
+ protected Node basicNode;
+
+ protected Node parentNode;
+
+ protected int basicOffset;
+
+ public NodeProxy(Node basicNode, int basicOffset) {
+
+ this.basicNode = basicNode;
+ this.basicOffset = basicOffset;
+
+ }
+
+ // implementation of Node interface methods
+ public Node appendChild(Node newChild) throws DOMException {
+ return basicNode.appendChild(newChild);
+ }
+
+ public Node cloneNode(boolean deep) {
+ return basicNode.cloneNode(deep);
+ }
+
+ public short compareDocumentPosition(Node other) throws DOMException {
+ return basicNode.compareDocumentPosition(other);
+ }
+
+ public NamedNodeMap getAttributes() {
+
+ NamedNodeMap basicAttributes = basicNode.getAttributes();
+ NamedNodeMap newAttributes = new NamedNodeMapImpl();
+
+ for (int i = 0; i < basicAttributes.getLength(); i++) {
+
+ IDOMAttr attr = (IDOMAttr) basicAttributes.item(0);
+
+ newAttributes.setNamedItem(new AttributeProxy(attr, basicOffset));
+
+ }
+
+ return newAttributes;
+ }
+
+ public String getBaseURI() {
+ return basicNode.getBaseURI();
+ }
+
+ public NodeList getChildNodes() {
+
+ return createNodeAdapterList(basicNode.getChildNodes());
+
+ }
+
+ public Object getFeature(String feature, String version) {
+ return basicNode.getFeature(feature, version);
+ }
+
+ public Node getFirstChild() {
+
+ return getNodeAdapter(basicNode.getFirstChild());
+
+ }
+
+ public Node getLastChild() {
+
+ return getNodeAdapter(basicNode.getLastChild());
+
+ }
+
+ public String getLocalName() {
+ return basicNode.getLocalName();
+ }
+
+ public String getNamespaceURI() {
+ return basicNode.getNamespaceURI();
+ }
+
+ public Node getNextSibling() {
+
+ return getNodeAdapter(basicNode.getNextSibling());
+
+ }
+
+ public String getNodeName() {
+ return basicNode.getNodeName();
+ }
+
+ public short getNodeType() {
+ return basicNode.getNodeType();
+ }
+
+ public String getNodeValue() throws DOMException {
+ return basicNode.getNodeValue();
+ }
+
+ public Document getOwnerDocument() {
+ return basicNode.getOwnerDocument();
+ }
+
+ public Node getParentNode() {
+ return basicNode.getParentNode();
+ }
+
+ public String getPrefix() {
+ return basicNode.getPrefix();
+ }
+
+ public Node getPreviousSibling() {
+ return getNodeAdapter(basicNode.getPreviousSibling());
+ }
+
+ public String getTextContent() throws DOMException {
+ return basicNode.getTextContent();
+ }
+
+ public Object getUserData(String key) {
+ return basicNode.getUserData(key);
+ }
+
+ public boolean hasAttributes() {
+ return basicNode.hasAttributes();
+ }
+
+ public boolean hasChildNodes() {
+ return basicNode.hasChildNodes();
+ }
+
+ public Node insertBefore(Node newChild, Node refChild) throws DOMException {
+ return insertBefore(newChild, refChild);
+ }
+
+ public boolean isDefaultNamespace(String namespaceURI) {
+ return false;
+ }
+
+ public boolean isEqualNode(Node arg) {
+ return basicNode.isEqualNode(arg);
+ }
+
+ public boolean isSameNode(Node other) {
+ return basicNode.isSameNode(other);
+ }
+
+ public boolean isSupported(String feature, String version) {
+ return basicNode.isSupported(feature, version);
+ }
+
+ public String lookupNamespaceURI(String prefix) {
+ return basicNode.lookupNamespaceURI(prefix);
+ }
+
+ public String lookupPrefix(String namespaceURI) {
+ return basicNode.lookupPrefix(namespaceURI);
+ }
+
+ public void normalize() {
+
+ basicNode.normalize();
+ }
+
+ public Node removeChild(Node oldChild) throws DOMException {
+ return basicNode.removeChild(oldChild);
+ }
+
+ public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
+ return basicNode.replaceChild(newChild, oldChild);
+ }
+
+ public void setNodeValue(String nodeValue) throws DOMException {
+ basicNode.setNodeValue(nodeValue);
+ }
+
+ public void setPrefix(String prefix) throws DOMException {
+ basicNode.setPrefix(prefix);
+ }
+
+ public void setTextContent(String textContent) throws DOMException {
+ basicNode.setTextContent(textContent);
+ }
+
+ public Object setUserData(String key, Object data, UserDataHandler handler) {
+ return basicNode.setUserData(key, data, handler);
+ }
+
+ // implementation of IDOMNode interface methods
+
+ public IStructuredDocumentRegion getEndStructuredDocumentRegion() {
+ return ((IDOMNode) basicNode).getEndStructuredDocumentRegion();
+ }
+
+ public IStructuredDocumentRegion getFirstStructuredDocumentRegion() {
+ return ((IDOMNode) basicNode).getFirstStructuredDocumentRegion();
+ }
+
+ public IStructuredDocumentRegion getLastStructuredDocumentRegion() {
+ return ((IDOMNode) basicNode).getLastStructuredDocumentRegion();
+ }
+
+ public IDOMModel getModel() {
+ return ((IDOMNode) basicNode).getModel();
+ }
+
+ public ITextRegion getNameRegion() {
+ return ((IDOMNode) basicNode).getNameRegion();
+ }
+
+ public String getSource() {
+ return ((IDOMNode) basicNode).getSource();
+ }
+
+ public IStructuredDocumentRegion getStartStructuredDocumentRegion() {
+ return ((IDOMNode) basicNode).getStartStructuredDocumentRegion();
+ }
+
+ public IStructuredDocument getStructuredDocument() {
+ return getStructuredDocument();
+ }
+
+ public ITextRegion getValueRegion() {
+ return ((IDOMNode) basicNode).getValueRegion();
+ }
+
+ public String getValueSource() {
+ return ((IDOMNode) basicNode).getValueSource();
+ }
+
+ public boolean isChildEditable() {
+ return ((IDOMNode) basicNode).isChildEditable();
+ }
+
+ public boolean isClosed() {
+ return ((IDOMNode) basicNode).isClosed();
+ }
+
+ public boolean isContainer() {
+ return ((IDOMNode) basicNode).isContainer();
+ }
+
+ public boolean isDataEditable() {
+ return ((IDOMNode) basicNode).isDataEditable();
+ }
+
+ public boolean isId() {
+ return ((IDOMNode) basicNode).isId();
+ }
+
+ public void setChildEditable(boolean editable) {
+ ((IDOMNode) basicNode).setChildEditable(editable);
+ }
+
+ public void setDataEditable(boolean editable) {
+ ((IDOMNode) basicNode).setDataEditable(editable);
+ }
+
+ public void setEditable(boolean editable, boolean deep) {
+ ((IDOMNode) basicNode).setEditable(editable, deep);
+
+ }
+
+ public void setSource(String source) throws InvalidCharacterException {
+
+ ((IDOMNode) basicNode).setSource(source);
+ }
+
+ public void setValueSource(String source) {
+ ((IDOMNode) basicNode).setValueSource(source);
+
+ }
+
+ public boolean contains(int testPosition) {
+ return ((IDOMNode) basicNode).contains(testPosition);
+ }
+
+ public int getEndOffset() {
+ return ((IDOMNode) basicNode).getEndOffset() + basicOffset;
+ }
+
+ public int getLength() {
+ return ((IDOMNode) basicNode).getLength();
+ }
+
+ public int getStartOffset() {
+ return ((IDOMNode) basicNode).getStartOffset()+ basicOffset;
+ }
+
+ public void addAdapter(INodeAdapter adapter) {
+ ((IDOMNode) basicNode).addAdapter(adapter);
+ }
+
+ public INodeAdapter getAdapterFor(Object type) {
+ return ((IDOMNode) basicNode).getAdapterFor(type);
+ }
+
+ public Collection getAdapters() {
+ return ((IDOMNode) basicNode).getAdapters();
+ }
+
+ public INodeAdapter getExistingAdapter(Object type) {
+ return ((IDOMNode) basicNode).getExistingAdapter(type);
+ }
+
+ public void notify(int eventType, Object changedFeature, Object oldValue,
+ Object newValue, int pos) {
+ ((IDOMNode) basicNode).notify();
+
+ }
+
+ public void removeAdapter(INodeAdapter adapter) {
+ ((IDOMNode) basicNode).removeAdapter(adapter);
+ }
+
+ protected NodeProxy getNodeAdapter(Node node) {
+ if (node == null)
+ return null;
+
+ if (node instanceof IDOMText)
+ return new TextProxy((IDOMText) node, basicOffset);
+ else if (node instanceof IDOMElement)
+ return new ElementProxy((IDOMElement) node, basicOffset);
+ else
+ return new NodeProxy(node, basicOffset);
+ }
+
+ protected NodeList createNodeAdapterList(NodeList nodeList) {
+
+ NodeListImpl newNodeList = new NodeListImpl();
+
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node node = nodeList.item(i);
+
+ newNodeList.appendNode(getNodeAdapter(node));
+
+ }
+
+ return newNodeList;
+
+ }
+
+}
Deleted: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/TextAdapter.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/TextAdapter.java 2008-02-26 07:39:40 UTC (rev 6570)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/TextAdapter.java 2008-02-26 08:01:17 UTC (rev 6571)
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 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
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.jsf.vpe.jsf.template.util.model;
-
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Text;
-
-public class TextAdapter extends NodeAdapter implements IDOMText {
-
- public TextAdapter(IDOMText basicText, int basicOffset) {
- super(basicText, basicOffset);
- // TODO Auto-generated constructor stub
- }
-
- public void appendText(Text text) {
- ((IDOMText) basicNode).appendText(text);
-
- }
-
- public String getWholeText() {
- return ((IDOMText) basicNode).getWholeText();
- }
-
- public boolean isElementContentWhitespace() {
- return ((IDOMText) basicNode).isElementContentWhitespace();
- }
-
- public boolean isInvalid() {
- return ((IDOMText) basicNode).isInvalid();
- }
-
- public Text replaceWholeText(String content) throws DOMException {
- return ((IDOMText) basicNode).replaceWholeText(content);
- }
-
- public Text splitText(int offset) throws DOMException {
- return ((IDOMText) basicNode).splitText(offset);
- }
-
- public void appendData(String arg) throws DOMException {
- ((IDOMText) basicNode).appendData(arg);
-
- }
-
- public void deleteData(int offset, int count) throws DOMException {
- ((IDOMText) basicNode).deleteData(offset, count);
-
- }
-
- public String getData() throws DOMException {
- return ((IDOMText) basicNode).getData();
- }
-
- public void insertData(int offset, String arg) throws DOMException {
- ((IDOMText) basicNode).insertData(offset, arg);
-
- }
-
- public void replaceData(int offset, int count, String arg)
- throws DOMException {
- ((IDOMText)basicNode).replaceData(offset, count, arg);
-
- }
-
- public void setData(String data) throws DOMException {
- ((IDOMText)basicNode).setData(data);
-
- }
-
- public String substringData(int offset, int count) throws DOMException {
- return ((IDOMText) basicNode).substringData(offset, count);
- }
-
-}
Copied: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/TextProxy.java (from rev 6570, trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/TextAdapter.java)
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/TextProxy.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/TextProxy.java 2008-02-26 08:01:17 UTC (rev 6571)
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template.util.model;
+
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Text;
+
+public class TextProxy extends NodeProxy implements IDOMText {
+
+ public TextProxy(IDOMText basicText, int basicOffset) {
+ super(basicText, basicOffset);
+ // TODO Auto-generated constructor stub
+ }
+
+ public void appendText(Text text) {
+ ((IDOMText) basicNode).appendText(text);
+
+ }
+
+ public String getWholeText() {
+ return ((IDOMText) basicNode).getWholeText();
+ }
+
+ public boolean isElementContentWhitespace() {
+ return ((IDOMText) basicNode).isElementContentWhitespace();
+ }
+
+ public boolean isInvalid() {
+ return ((IDOMText) basicNode).isInvalid();
+ }
+
+ public Text replaceWholeText(String content) throws DOMException {
+ return ((IDOMText) basicNode).replaceWholeText(content);
+ }
+
+ public Text splitText(int offset) throws DOMException {
+ return ((IDOMText) basicNode).splitText(offset);
+ }
+
+ public void appendData(String arg) throws DOMException {
+ ((IDOMText) basicNode).appendData(arg);
+
+ }
+
+ public void deleteData(int offset, int count) throws DOMException {
+ ((IDOMText) basicNode).deleteData(offset, count);
+
+ }
+
+ public String getData() throws DOMException {
+ return ((IDOMText) basicNode).getData();
+ }
+
+ public void insertData(int offset, String arg) throws DOMException {
+ ((IDOMText) basicNode).insertData(offset, arg);
+
+ }
+
+ public void replaceData(int offset, int count, String arg)
+ throws DOMException {
+ ((IDOMText)basicNode).replaceData(offset, count, arg);
+
+ }
+
+ public void setData(String data) throws DOMException {
+ ((IDOMText)basicNode).setData(data);
+
+ }
+
+ public String substringData(int offset, int count) throws DOMException {
+ return ((IDOMText) basicNode).substringData(offset, count);
+ }
+
+}
17 years, 7 months
JBoss Tools SVN: r6570 - in trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf: src/org/jboss/tools/jsf/vpe/jsf/template/util and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: sdzmitrovich
Date: 2008-02-26 02:39:40 -0500 (Tue, 26 Feb 2008)
New Revision: 6570
Added:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/NodeAdapterUtil.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/AttributeAdapter.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/ElementAdapter.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NamedNodeMapImpl.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeAdapter.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeListImpl.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/TextAdapter.java
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/templates/vpe-templates-jsf.xml
Log:
http://jira.jboss.com/jira/browse/JBIDE-1718
Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/NodeAdapterUtil.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/NodeAdapterUtil.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/NodeAdapterUtil.java 2008-02-26 07:39:40 UTC (rev 6570)
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template.util;
+
+import org.eclipse.jst.jsp.core.internal.domdocument.DOMModelForJSP;
+import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
+import org.eclipse.wst.sse.core.internal.document.StructuredDocumentFactory;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
+import org.jboss.tools.jsf.vpe.jsf.template.util.model.ElementAdapter;
+import org.jboss.tools.jsf.vpe.jsf.template.util.model.NodeAdapter;
+import org.jboss.tools.jsf.vpe.jsf.template.util.model.NodeListImpl;
+import org.jboss.tools.jsf.vpe.jsf.template.util.model.TextAdapter;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class NodeAdapterUtil {
+
+ static public NodeList reparseAttributeValue(Attr attr) {
+
+ IStructuredDocument newStructuredDocument = StructuredDocumentFactory
+ .getNewStructuredDocumentInstance(new JSPSourceParser());
+
+ newStructuredDocument.set(attr.getValue());
+
+ IDOMModel modelForJSP = new DOMModelForJSP();
+ modelForJSP.setStructuredDocument(newStructuredDocument);
+
+ IDOMDocument document = modelForJSP.getDocument();
+
+ NodeList list = document.getChildNodes();
+
+ NodeList adaptersList = getNodeAdapterList(list, ((IDOMAttr) attr)
+ .getValueRegionStartOffset());
+
+ return adaptersList;
+
+ }
+
+ static public NodeAdapter getNodeAdapter(Node node, int basicOffset) {
+ if (node == null)
+ return null;
+
+ if (node instanceof IDOMText)
+ return new TextAdapter((IDOMText) node, basicOffset);
+ else if (node instanceof IDOMElement)
+ return new ElementAdapter((IDOMElement) node, basicOffset);
+ else
+ return new NodeAdapter(node, basicOffset);
+ }
+
+ static public NodeList getNodeAdapterList(NodeList nodeList, int basicOffset) {
+
+ NodeListImpl newNodeList = new NodeListImpl();
+
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node node = nodeList.item(i);
+
+ newNodeList.appendNode(getNodeAdapter(node, basicOffset));
+
+ }
+
+ return newNodeList;
+
+ }
+
+}
Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/AttributeAdapter.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/AttributeAdapter.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/AttributeAdapter.java 2008-02-26 07:39:40 UTC (rev 6570)
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template.util.model;
+
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Element;
+import org.w3c.dom.TypeInfo;
+
+public class AttributeAdapter extends NodeAdapter implements IDOMAttr {
+
+ public AttributeAdapter(IDOMAttr basicAttr, int basicOffset) {
+ super(basicAttr, basicOffset);
+ }
+
+ public ITextRegion getEqualRegion() {
+
+ return ((IDOMAttr) basicNode).getEqualRegion();
+ }
+
+ public int getNameRegionEndOffset() {
+ return ((IDOMAttr) basicNode).getNameRegionEndOffset() + basicOffset;
+ }
+
+ public int getNameRegionStartOffset() {
+ return ((IDOMAttr) basicNode).getNameRegionStartOffset() + basicOffset;
+ }
+
+ public String getNameRegionText() {
+ return ((IDOMAttr) basicNode).getNameRegionText();
+ }
+
+ public int getNameRegionTextEndOffset() {
+ return ((IDOMAttr) basicNode).getNameRegionTextEndOffset()
+ + basicOffset;
+ }
+
+ public int getValueRegionStartOffset() {
+ return ((IDOMAttr) basicNode).getValueRegionStartOffset() + basicOffset;
+ }
+
+ public String getValueRegionText() {
+ return ((IDOMAttr) basicNode).getValueRegionText();
+ }
+
+ public boolean hasNameOnly() {
+ return ((IDOMAttr) basicNode).hasNameOnly();
+ }
+
+ public boolean hasNestedValue() {
+ return ((IDOMAttr) basicNode).hasNestedValue();
+ }
+
+ public boolean isGlobalAttr() {
+ return ((IDOMAttr) basicNode).isGlobalAttr();
+ }
+
+ public boolean isXMLAttr() {
+ return ((IDOMAttr) basicNode).isXMLAttr();
+ }
+
+ public String getName() {
+ return ((IDOMAttr) basicNode).getName();
+ }
+
+ public Element getOwnerElement() {
+ return ((IDOMAttr) basicNode).getOwnerElement();
+ }
+
+ public TypeInfo getSchemaTypeInfo() {
+ return ((IDOMAttr) basicNode).getSchemaTypeInfo();
+ }
+
+ public boolean getSpecified() {
+ return ((IDOMAttr) basicNode).getSpecified();
+ }
+
+ public String getValue() {
+ return ((IDOMAttr) basicNode).getValue();
+ }
+
+ public void setValue(String value) throws DOMException {
+ ((IDOMAttr) basicNode).setValue(value);
+
+ }
+
+}
Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/ElementAdapter.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/ElementAdapter.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/ElementAdapter.java 2008-02-26 07:39:40 UTC (rev 6570)
@@ -0,0 +1,205 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template.util.model;
+
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.TypeInfo;
+
+public class ElementAdapter extends NodeAdapter implements IDOMElement {
+
+ public ElementAdapter(IDOMElement basicElement, int basicOffset) {
+ super(basicElement, basicOffset);
+ }
+
+ public int getEndStartOffset() {
+ return ((IDOMElement) basicNode).getEndStartOffset() + basicOffset;
+ }
+
+ public int getStartEndOffset() {
+ return ((IDOMElement) basicNode).getStartEndOffset() + basicOffset;
+ }
+
+ public boolean hasEndTag() {
+ return ((IDOMElement) basicNode).hasEndTag();
+ }
+
+ public boolean hasStartTag() {
+ return ((IDOMElement) basicNode).hasStartTag();
+ }
+
+ public boolean isCommentTag() {
+ return ((IDOMElement) basicNode).isCommentTag();
+ }
+
+ public boolean isEmptyTag() {
+ return ((IDOMElement) basicNode).isEmptyTag();
+ }
+
+ public boolean isEndTag() {
+ return ((IDOMElement) basicNode).isEndTag();
+ }
+
+ public boolean isGlobalTag() {
+ return ((IDOMElement) basicNode).isGlobalTag();
+ }
+
+ public boolean isImplicitTag() {
+ return ((IDOMElement) basicNode).isImplicitTag();
+ }
+
+ public boolean isJSPTag() {
+ return ((IDOMElement) basicNode).isJSPTag();
+ }
+
+ public boolean isStartTagClosed() {
+ return ((IDOMElement) basicNode).isStartTagClosed();
+ }
+
+ public boolean isXMLTag() {
+ return ((IDOMElement) basicNode).isXMLTag();
+ }
+
+ public void notifyEndTagChanged() {
+ ((IDOMElement) basicNode).notifyEndTagChanged();
+
+ }
+
+ public void notifyStartTagChanged() {
+ ((IDOMElement) basicNode).notifyStartTagChanged();
+
+ }
+
+ public void setCommentTag(boolean isCommentTag) {
+ ((IDOMElement) basicNode).setCommentTag(isCommentTag);
+
+ }
+
+ public void setEmptyTag(boolean isEmptyTag) {
+ ((IDOMElement) basicNode).setEmptyTag(isEmptyTag);
+
+ }
+
+ public void setIdAttribute(String name, boolean isId) {
+ ((IDOMElement) basicNode).setIdAttribute(name, isId);
+
+ }
+
+ public void setIdAttributeNS(String namespaceURI, String localName,
+ boolean isId) {
+ ((IDOMElement) basicNode).setIdAttributeNS(namespaceURI, localName,
+ isId);
+
+ }
+
+ public void setIdAttributeNode(Attr idAttr, boolean isId)
+ throws DOMException {
+ ((IDOMElement) basicNode).setIdAttributeNode(idAttr, isId);
+
+ }
+
+ public void setJSPTag(boolean isJSPTag) {
+ ((IDOMElement) basicNode).setJSPTag(isJSPTag);
+
+ }
+
+ public String getAttribute(String name) {
+
+ return ((IDOMElement) basicNode).getAttribute(name);
+ }
+
+ public String getAttributeNS(String namespaceURI, String localName)
+ throws DOMException {
+ return ((IDOMElement) basicNode)
+ .getAttributeNS(namespaceURI, localName);
+ }
+
+ public Attr getAttributeNode(String name) {
+ return new AttributeAdapter((IDOMAttr) ((IDOMElement) basicNode)
+ .getAttributeNode(name), basicOffset);
+ }
+
+ public Attr getAttributeNodeNS(String namespaceURI, String localName)
+ throws DOMException {
+ return new AttributeAdapter((IDOMAttr) ((IDOMElement) basicNode)
+ .getAttributeNodeNS(namespaceURI, localName), basicOffset);
+ }
+
+ public NodeList getElementsByTagName(String name) {
+ return createNodeAdapterList(((IDOMElement) basicNode)
+ .getElementsByTagName(name));
+ }
+
+ public NodeList getElementsByTagNameNS(String namespaceURI, String localName)
+ throws DOMException {
+ return createNodeAdapterList(((IDOMElement) basicNode)
+ .getElementsByTagNameNS(namespaceURI, localName));
+ }
+
+ public TypeInfo getSchemaTypeInfo() {
+ return ((IDOMElement) basicNode).getSchemaTypeInfo();
+ }
+
+ public String getTagName() {
+ return ((IDOMElement) basicNode).getTagName();
+ }
+
+ public boolean hasAttribute(String name) {
+ return ((IDOMElement) basicNode).hasAttribute(name);
+ }
+
+ public boolean hasAttributeNS(String namespaceURI, String localName)
+ throws DOMException {
+ return ((IDOMElement) basicNode)
+ .hasAttributeNS(namespaceURI, localName);
+ }
+
+ public void removeAttribute(String name) throws DOMException {
+ ((IDOMElement) basicNode).removeAttribute(name);
+ }
+
+ public void removeAttributeNS(String namespaceURI, String localName)
+ throws DOMException {
+
+ ((IDOMElement) basicNode).removeAttributeNS(namespaceURI, localName);
+ }
+
+ public Attr removeAttributeNode(Attr oldAttr) throws DOMException {
+ return new AttributeAdapter((IDOMAttr) ((IDOMElement) basicNode)
+ .removeAttributeNode(oldAttr), basicOffset);
+ }
+
+ public void setAttribute(String name, String value) throws DOMException {
+ //((IDOMElement) basicNode).setAttribute(name, value);
+
+ }
+
+ public void setAttributeNS(String namespaceURI, String qualifiedName,
+ String value) throws DOMException {
+ // ((IDOMElement) basicNode).setAttributeNS(namespaceURI, qualifiedName,
+ // value);
+
+ }
+
+ public Attr setAttributeNode(Attr newAttr) throws DOMException {
+ return new AttributeAdapter((IDOMAttr) ((IDOMElement) basicNode)
+ .setAttributeNode(newAttr), basicOffset);
+ }
+
+ public Attr setAttributeNodeNS(Attr newAttr) throws DOMException {
+ return new AttributeAdapter((IDOMAttr) ((IDOMElement) basicNode)
+ .setAttributeNodeNS(newAttr), basicOffset);
+ }
+
+}
Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NamedNodeMapImpl.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NamedNodeMapImpl.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NamedNodeMapImpl.java 2008-02-26 07:39:40 UTC (rev 6570)
@@ -0,0 +1,166 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template.util.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.wst.xml.core.internal.document.AttrImpl;
+import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class NamedNodeMapImpl implements NamedNodeMap, NodeList {
+
+ private List<Node> nodes = null;
+
+ public NamedNodeMapImpl() {
+ nodes = new ArrayList<Node>();
+ }
+
+ public int getLength() {
+ if (nodes == null)
+ return 0;
+ return nodes.size();
+ }
+
+ public Node getNamedItem(String name) {
+ if (name == null)
+ return null;
+ if (nodes == null)
+ return null;
+
+ int length = nodes.size();
+ for (int i = 0; i < length; i++) {
+ Node node = nodes.get(i);
+ if (node == null)
+ continue;
+ if (name.equalsIgnoreCase(node.getLocalName()))
+ return node;
+ }
+
+ return null;
+ }
+
+ public Node getNamedItemNS(String uri, String name) {
+ if (name == null)
+ return null;
+ if (nodes == null)
+ return null;
+
+ int length = nodes.size();
+ for (int i = 0; i < length; i++) {
+ Node node = nodes.get(i);
+ if (node == null)
+ continue;
+ String localName = node.getLocalName();
+ if (localName == null || !localName.equalsIgnoreCase(name))
+ continue;
+ String nodeURI = node.getNamespaceURI();
+ if (nodeURI == null) {
+ if (nodeURI != null)
+ continue;
+ } else {
+ if (nodeURI == null || !nodeURI.equals(nodeURI))
+ continue;
+ }
+
+ return node;
+ }
+
+ return null;
+ }
+
+ public Node item(int index) {
+ if (nodes == null)
+ return null;
+ return nodes.get(index);
+ }
+
+ public Node removeNamedItem(String name) throws DOMException {
+
+ if (name == null)
+ return null;
+ if (nodes == null)
+ return null;
+
+ int length = nodes.size();
+ for (int i = 0; i < length; i++) {
+ Node node = nodes.get(i);
+ if (node == null)
+ continue;
+ if (!name.equalsIgnoreCase(node.getLocalName()))
+ continue;
+
+ nodes.remove(i);
+
+ return node;
+ }
+
+ return null;
+ }
+
+ public Node removeNamedItemNS(String uri, String name) throws DOMException {
+ if (name == null)
+ return null;
+ if (nodes == null)
+ return null;
+
+ int length = nodes.size();
+ for (int i = 0; i < length; i++) {
+ Node node = nodes.get(i);
+ if (node == null)
+ continue;
+ String localName = node.getLocalName();
+ if (localName == null || !localName.equals(name))
+ continue;
+ String nodeURI = node.getNamespaceURI();
+ if (uri == null) {
+ if (nodeURI != null)
+ continue;
+ } else {
+ if (nodeURI == null || !nodeURI.equals(uri))
+ continue;
+ }
+
+ nodes.remove(i);
+
+ return node;
+ }
+
+ return null;
+ }
+
+ public Node setNamedItem(Node node) throws DOMException {
+ if (node == null)
+ return null;
+
+ Node oldNode = removeNamedItem(node.getLocalName());
+
+ nodes.add(node);
+
+ return oldNode;
+ }
+
+ public Node setNamedItemNS(Node node) throws DOMException {
+ if (node == null)
+ return null;
+
+ String name = node.getLocalName();
+ String uri = node.getNamespaceURI();
+ Node oldNode = removeNamedItemNS(uri, name);
+ nodes.add(node);
+ return oldNode;
+ }
+}
Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeAdapter.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeAdapter.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeAdapter.java 2008-02-26 07:39:40 UTC (rev 6570)
@@ -0,0 +1,373 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template.util.model;
+
+import java.util.Collection;
+
+import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.xml.core.internal.document.InvalidCharacterException;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.TypeInfo;
+import org.w3c.dom.UserDataHandler;
+
+public class NodeAdapter implements IDOMNode {
+
+ protected Node basicNode;
+
+ protected Node parentNode;
+
+ protected int basicOffset;
+
+ public NodeAdapter(Node basicNode, int basicOffset) {
+
+ this.basicNode = basicNode;
+ this.basicOffset = basicOffset;
+
+ }
+
+ // implementation of Node interface methods
+ public Node appendChild(Node newChild) throws DOMException {
+ return basicNode.appendChild(newChild);
+ }
+
+ public Node cloneNode(boolean deep) {
+ return basicNode.cloneNode(deep);
+ }
+
+ public short compareDocumentPosition(Node other) throws DOMException {
+ return basicNode.compareDocumentPosition(other);
+ }
+
+ public NamedNodeMap getAttributes() {
+
+ NamedNodeMap basicAttributes = basicNode.getAttributes();
+ NamedNodeMap newAttributes = new NamedNodeMapImpl();
+
+ for (int i = 0; i < basicAttributes.getLength(); i++) {
+
+ IDOMAttr attr = (IDOMAttr) basicAttributes.item(0);
+
+ newAttributes.setNamedItem(new AttributeAdapter(attr, basicOffset));
+
+ }
+
+ return newAttributes;
+ }
+
+ public String getBaseURI() {
+ return basicNode.getBaseURI();
+ }
+
+ public NodeList getChildNodes() {
+
+ return createNodeAdapterList(basicNode.getChildNodes());
+
+ }
+
+ public Object getFeature(String feature, String version) {
+ return basicNode.getFeature(feature, version);
+ }
+
+ public Node getFirstChild() {
+
+ return getNodeAdapter(basicNode.getFirstChild());
+
+ }
+
+ public Node getLastChild() {
+
+ return getNodeAdapter(basicNode.getLastChild());
+
+ }
+
+ public String getLocalName() {
+ return basicNode.getLocalName();
+ }
+
+ public String getNamespaceURI() {
+ return basicNode.getNamespaceURI();
+ }
+
+ public Node getNextSibling() {
+
+ return getNodeAdapter(basicNode.getNextSibling());
+
+ }
+
+ public String getNodeName() {
+ return basicNode.getNodeName();
+ }
+
+ public short getNodeType() {
+ return basicNode.getNodeType();
+ }
+
+ public String getNodeValue() throws DOMException {
+ return basicNode.getNodeValue();
+ }
+
+ public Document getOwnerDocument() {
+ return basicNode.getOwnerDocument();
+ }
+
+ public Node getParentNode() {
+ return basicNode.getParentNode();
+ }
+
+ public String getPrefix() {
+ return basicNode.getPrefix();
+ }
+
+ public Node getPreviousSibling() {
+ return getNodeAdapter(basicNode.getPreviousSibling());
+ }
+
+ public String getTextContent() throws DOMException {
+ return basicNode.getTextContent();
+ }
+
+ public Object getUserData(String key) {
+ return basicNode.getUserData(key);
+ }
+
+ public boolean hasAttributes() {
+ return basicNode.hasAttributes();
+ }
+
+ public boolean hasChildNodes() {
+ return basicNode.hasChildNodes();
+ }
+
+ public Node insertBefore(Node newChild, Node refChild) throws DOMException {
+ return insertBefore(newChild, refChild);
+ }
+
+ public boolean isDefaultNamespace(String namespaceURI) {
+ return false;
+ }
+
+ public boolean isEqualNode(Node arg) {
+ return basicNode.isEqualNode(arg);
+ }
+
+ public boolean isSameNode(Node other) {
+ return basicNode.isSameNode(other);
+ }
+
+ public boolean isSupported(String feature, String version) {
+ return basicNode.isSupported(feature, version);
+ }
+
+ public String lookupNamespaceURI(String prefix) {
+ return basicNode.lookupNamespaceURI(prefix);
+ }
+
+ public String lookupPrefix(String namespaceURI) {
+ return basicNode.lookupPrefix(namespaceURI);
+ }
+
+ public void normalize() {
+
+ basicNode.normalize();
+ }
+
+ public Node removeChild(Node oldChild) throws DOMException {
+ return basicNode.removeChild(oldChild);
+ }
+
+ public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
+ return basicNode.replaceChild(newChild, oldChild);
+ }
+
+ public void setNodeValue(String nodeValue) throws DOMException {
+ basicNode.setNodeValue(nodeValue);
+ }
+
+ public void setPrefix(String prefix) throws DOMException {
+ basicNode.setPrefix(prefix);
+ }
+
+ public void setTextContent(String textContent) throws DOMException {
+ basicNode.setTextContent(textContent);
+ }
+
+ public Object setUserData(String key, Object data, UserDataHandler handler) {
+ return basicNode.setUserData(key, data, handler);
+ }
+
+ // implementation of IDOMNode interface methods
+
+ public IStructuredDocumentRegion getEndStructuredDocumentRegion() {
+ return ((IDOMNode) basicNode).getEndStructuredDocumentRegion();
+ }
+
+ public IStructuredDocumentRegion getFirstStructuredDocumentRegion() {
+ return ((IDOMNode) basicNode).getFirstStructuredDocumentRegion();
+ }
+
+ public IStructuredDocumentRegion getLastStructuredDocumentRegion() {
+ return ((IDOMNode) basicNode).getLastStructuredDocumentRegion();
+ }
+
+ public IDOMModel getModel() {
+ return ((IDOMNode) basicNode).getModel();
+ }
+
+ public ITextRegion getNameRegion() {
+ return ((IDOMNode) basicNode).getNameRegion();
+ }
+
+ public String getSource() {
+ return ((IDOMNode) basicNode).getSource();
+ }
+
+ public IStructuredDocumentRegion getStartStructuredDocumentRegion() {
+ return ((IDOMNode) basicNode).getStartStructuredDocumentRegion();
+ }
+
+ public IStructuredDocument getStructuredDocument() {
+ return getStructuredDocument();
+ }
+
+ public ITextRegion getValueRegion() {
+ return ((IDOMNode) basicNode).getValueRegion();
+ }
+
+ public String getValueSource() {
+ return ((IDOMNode) basicNode).getValueSource();
+ }
+
+ public boolean isChildEditable() {
+ return ((IDOMNode) basicNode).isChildEditable();
+ }
+
+ public boolean isClosed() {
+ return ((IDOMNode) basicNode).isClosed();
+ }
+
+ public boolean isContainer() {
+ return ((IDOMNode) basicNode).isContainer();
+ }
+
+ public boolean isDataEditable() {
+ return ((IDOMNode) basicNode).isDataEditable();
+ }
+
+ public boolean isId() {
+ return ((IDOMNode) basicNode).isId();
+ }
+
+ public void setChildEditable(boolean editable) {
+ ((IDOMNode) basicNode).setChildEditable(editable);
+ }
+
+ public void setDataEditable(boolean editable) {
+ ((IDOMNode) basicNode).setDataEditable(editable);
+ }
+
+ public void setEditable(boolean editable, boolean deep) {
+ ((IDOMNode) basicNode).setEditable(editable, deep);
+
+ }
+
+ public void setSource(String source) throws InvalidCharacterException {
+
+ ((IDOMNode) basicNode).setSource(source);
+ }
+
+ public void setValueSource(String source) {
+ ((IDOMNode) basicNode).setValueSource(source);
+
+ }
+
+ public boolean contains(int testPosition) {
+ return ((IDOMNode) basicNode).contains(testPosition);
+ }
+
+ public int getEndOffset() {
+ return ((IDOMNode) basicNode).getEndOffset() + basicOffset;
+ }
+
+ public int getLength() {
+ return ((IDOMNode) basicNode).getLength();
+ }
+
+ public int getStartOffset() {
+ return ((IDOMNode) basicNode).getStartOffset()+ basicOffset;
+ }
+
+ public void addAdapter(INodeAdapter adapter) {
+ ((IDOMNode) basicNode).addAdapter(adapter);
+ }
+
+ public INodeAdapter getAdapterFor(Object type) {
+ return ((IDOMNode) basicNode).getAdapterFor(type);
+ }
+
+ public Collection getAdapters() {
+ return ((IDOMNode) basicNode).getAdapters();
+ }
+
+ public INodeAdapter getExistingAdapter(Object type) {
+ return ((IDOMNode) basicNode).getExistingAdapter(type);
+ }
+
+ public void notify(int eventType, Object changedFeature, Object oldValue,
+ Object newValue, int pos) {
+ ((IDOMNode) basicNode).notify();
+
+ }
+
+ public void removeAdapter(INodeAdapter adapter) {
+ ((IDOMNode) basicNode).removeAdapter(adapter);
+ }
+
+ protected NodeAdapter getNodeAdapter(Node node) {
+ if (node == null)
+ return null;
+
+ if (node instanceof IDOMText)
+ return new TextAdapter((IDOMText) node, basicOffset);
+ else if (node instanceof IDOMElement)
+ return new ElementAdapter((IDOMElement) node, basicOffset);
+ else
+ return new NodeAdapter(node, basicOffset);
+ }
+
+ protected NodeList createNodeAdapterList(NodeList nodeList) {
+
+ NodeListImpl newNodeList = new NodeListImpl();
+
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node node = nodeList.item(i);
+
+ newNodeList.appendNode(getNodeAdapter(node));
+
+ }
+
+ return newNodeList;
+
+ }
+
+}
Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeListImpl.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeListImpl.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/NodeListImpl.java 2008-02-26 07:39:40 UTC (rev 6570)
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template.util.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class NodeListImpl implements NodeList {
+
+ private List<Node> nodes;
+
+ public NodeListImpl() {
+ nodes = new ArrayList<Node>();
+ }
+
+ public int getLength() {
+ return nodes.size();
+ }
+
+ public Node item(int index) {
+ return nodes.get(index);
+ }
+
+ public Node appendNode(Node node) {
+
+ if (node == null)
+ return null;
+
+ nodes.add(node);
+ return node;
+ }
+
+}
Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/TextAdapter.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/TextAdapter.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/util/model/TextAdapter.java 2008-02-26 07:39:40 UTC (rev 6570)
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template.util.model;
+
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Text;
+
+public class TextAdapter extends NodeAdapter implements IDOMText {
+
+ public TextAdapter(IDOMText basicText, int basicOffset) {
+ super(basicText, basicOffset);
+ // TODO Auto-generated constructor stub
+ }
+
+ public void appendText(Text text) {
+ ((IDOMText) basicNode).appendText(text);
+
+ }
+
+ public String getWholeText() {
+ return ((IDOMText) basicNode).getWholeText();
+ }
+
+ public boolean isElementContentWhitespace() {
+ return ((IDOMText) basicNode).isElementContentWhitespace();
+ }
+
+ public boolean isInvalid() {
+ return ((IDOMText) basicNode).isInvalid();
+ }
+
+ public Text replaceWholeText(String content) throws DOMException {
+ return ((IDOMText) basicNode).replaceWholeText(content);
+ }
+
+ public Text splitText(int offset) throws DOMException {
+ return ((IDOMText) basicNode).splitText(offset);
+ }
+
+ public void appendData(String arg) throws DOMException {
+ ((IDOMText) basicNode).appendData(arg);
+
+ }
+
+ public void deleteData(int offset, int count) throws DOMException {
+ ((IDOMText) basicNode).deleteData(offset, count);
+
+ }
+
+ public String getData() throws DOMException {
+ return ((IDOMText) basicNode).getData();
+ }
+
+ public void insertData(int offset, String arg) throws DOMException {
+ ((IDOMText) basicNode).insertData(offset, arg);
+
+ }
+
+ public void replaceData(int offset, int count, String arg)
+ throws DOMException {
+ ((IDOMText)basicNode).replaceData(offset, count, arg);
+
+ }
+
+ public void setData(String data) throws DOMException {
+ ((IDOMText)basicNode).setData(data);
+
+ }
+
+ public String substringData(int offset, int count) throws DOMException {
+ return ((IDOMText) basicNode).substringData(offset, count);
+ }
+
+}
Modified: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/templates/vpe-templates-jsf.xml
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/templates/vpe-templates-jsf.xml 2008-02-26 07:38:46 UTC (rev 6569)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/templates/vpe-templates-jsf.xml 2008-02-26 07:39:40 UTC (rev 6570)
@@ -166,134 +166,136 @@
</vpe:template>
</vpe:tag>
-<!-- Проблема с указанием в качестве value HTML-тега (25 of 4) -->
- <vpe:tag name="h:outputText" case-sensitive="yes">
- <vpe:if test="attrpresent('value')">
- <vpe:template children="no" modify="yes">
- <span class="{@styleClass}" style="{@style}" title="{tagstring()}">
- <vpe:value expr="{jsfvalue(@value)}"/>
- </span>
- <vpe:dnd>
- <vpe:drag start-enable="yes"/>
- <vpe:drop container="yes">
- <vpe:container-child tag-name="converter" />
- <vpe:container-child tag-name="convertNumber" />
- <vpe:container-child tag-name="convertDateTime" />
- <vpe:container-child tag-name="validator" />
- <vpe:container-child tag-name="validateDoubleRange" />
- <vpe:container-child tag-name="validateLongRange" />
- <vpe:container-child tag-name="validateLength" />
- </vpe:drop>
- </vpe:dnd>
- <vpe:textFormating>
- <vpe:format type="UnderlineFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="BoldFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="ItalicFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="FontNameFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="FontSizeFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="BackgroundColorFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="ForegroundColorFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- </vpe:textFormating>
- </vpe:template>
- </vpe:if>
- <vpe:if test="attrpresent('binding')">
- <vpe:template children="no" modify="yes">
- <span class="{@styleClass}" style="{@style}" title="{tagstring()}">
- <vpe:value expr="{jsfvalue(@binding)}"/>
- </span>
- <vpe:dnd>
- <vpe:drag start-enable="yes"/>
- <vpe:drop container="yes">
- <vpe:container-child tag-name="converter" />
- <vpe:container-child tag-name="convertNumber" />
- <vpe:container-child tag-name="convertDateTime" />
- <vpe:container-child tag-name="validator" />
- <vpe:container-child tag-name="validateDoubleRange" />
- <vpe:container-child tag-name="validateLongRange" />
- <vpe:container-child tag-name="validateLength" />
- </vpe:drop>
- </vpe:dnd>
- <vpe:textFormating>
- <vpe:format type="BlockFormat"
- handler="org.jboss.tools.vpe.editor.toolbar.format.handler.BlockFormatHandler" />
- <vpe:format type="UnderlineFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="BoldFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="ItalicFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="FontNameFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="FontSizeFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="BackgroundColorFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="ForegroundColorFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- </vpe:textFormating>
- </vpe:template>
- </vpe:if>
- <vpe:template children="yes" modify="yes">
- <span class="{@styleClass}" style="{@style}" title="{tagstring()}"/>
- <vpe:dnd>
- <vpe:drag start-enable="yes"/>
- <vpe:drop container="yes">
- <vpe:container-child tag-name="converter" />
- <vpe:container-child tag-name="convertNumber" />
- <vpe:container-child tag-name="convertDateTime" />
- <vpe:container-child tag-name="validator" />
- <vpe:container-child tag-name="validateDoubleRange" />
- <vpe:container-child tag-name="validateLongRange" />
- <vpe:container-child tag-name="validateLength" />
- </vpe:drop>
- </vpe:dnd>
- <vpe:textFormating>
- <vpe:format type="BlockFormat"
- handler="org.jboss.tools.vpe.editor.toolbar.format.handler.BlockFormatHandler" />
- <vpe:format type="UnderlineFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="BoldFormat" handler="org.jboss.tools.vpe.editor.toolbar.format.handler.BoldFormatHandler" />
- <vpe:format type="ItalicFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="FontNameFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="FontSizeFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="BackgroundColorFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="ForegroundColorFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- </vpe:textFormating>
- </vpe:template>
+ <vpe:tag name="h:outputText" case-sensitive="yes">
+ <vpe:template children="yes" modify="no"
+ class="org.jboss.tools.jsf.vpe.jsf.template.JsfOutputTextTemplate">
+ </vpe:template>
+ <!-- <vpe:if test="attrpresent('value')">
+ <vpe:template children="no" modify="yes">
+ <span class="{@styleClass}" style="{@style}" title="{tagstring()}">
+ <vpe:value expr="{jsfvalue(@value)}"/>
+ </span>
+ <vpe:dnd>
+ <vpe:drag start-enable="yes"/>
+ <vpe:drop container="yes">
+ <vpe:container-child tag-name="converter" />
+ <vpe:container-child tag-name="convertNumber" />
+ <vpe:container-child tag-name="convertDateTime" />
+ <vpe:container-child tag-name="validator" />
+ <vpe:container-child tag-name="validateDoubleRange" />
+ <vpe:container-child tag-name="validateLongRange" />
+ <vpe:container-child tag-name="validateLength" />
+ </vpe:drop>
+ </vpe:dnd>
+ <vpe:textFormating>
+ <vpe:format type="UnderlineFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="BoldFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="ItalicFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="FontNameFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="FontSizeFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="BackgroundColorFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="ForegroundColorFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ </vpe:textFormating>
+ </vpe:template>
+ </vpe:if>
+ <vpe:if test="attrpresent('binding')">
+ <vpe:template children="no" modify="yes">
+ <span class="{@styleClass}" style="{@style}" title="{tagstring()}">
+ <vpe:value expr="{jsfvalue(@binding)}"/>
+ </span>
+ <vpe:dnd>
+ <vpe:drag start-enable="yes"/>
+ <vpe:drop container="yes">
+ <vpe:container-child tag-name="converter" />
+ <vpe:container-child tag-name="convertNumber" />
+ <vpe:container-child tag-name="convertDateTime" />
+ <vpe:container-child tag-name="validator" />
+ <vpe:container-child tag-name="validateDoubleRange" />
+ <vpe:container-child tag-name="validateLongRange" />
+ <vpe:container-child tag-name="validateLength" />
+ </vpe:drop>
+ </vpe:dnd>
+ <vpe:textFormating>
+ <vpe:format type="BlockFormat"
+ handler="org.jboss.tools.vpe.editor.toolbar.format.handler.BlockFormatHandler" />
+ <vpe:format type="UnderlineFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="BoldFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="ItalicFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="FontNameFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="FontSizeFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="BackgroundColorFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="ForegroundColorFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ </vpe:textFormating>
+ </vpe:template>
+ </vpe:if>
+ <vpe:template children="yes" modify="yes">
+ <span class="{@styleClass}" style="{@style}" title="{tagstring()}"/>
+ <vpe:dnd>
+ <vpe:drag start-enable="yes"/>
+ <vpe:drop container="yes">
+ <vpe:container-child tag-name="converter" />
+ <vpe:container-child tag-name="convertNumber" />
+ <vpe:container-child tag-name="convertDateTime" />
+ <vpe:container-child tag-name="validator" />
+ <vpe:container-child tag-name="validateDoubleRange" />
+ <vpe:container-child tag-name="validateLongRange" />
+ <vpe:container-child tag-name="validateLength" />
+ </vpe:drop>
+ </vpe:dnd>
+ <vpe:textFormating>
+ <vpe:format type="BlockFormat"
+ handler="org.jboss.tools.vpe.editor.toolbar.format.handler.BlockFormatHandler" />
+ <vpe:format type="UnderlineFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="BoldFormat" handler="org.jboss.tools.vpe.editor.toolbar.format.handler.BoldFormatHandler" />
+ <vpe:format type="ItalicFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="FontNameFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="FontSizeFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="BackgroundColorFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ <vpe:format type="ForegroundColorFormat">
+ <vpe:formatAttribute type="style"/>
+ </vpe:format>
+ </vpe:textFormating>
+ </vpe:template>
+ -->
</vpe:tag>
-
<!-- Проблема с подстановкой значений вложенных параметров (26 of 4) -->
<vpe:tag name="h:outputFormat" case-sensitive="yes">
<vpe:template children="no" modify="yes">
@@ -496,34 +498,67 @@
</vpe:tag>
<vpe:tag name="h:outputLink" case-sensitive="yes">
- <vpe:template children="yes" modify="yes">
- <a href="javascript:return false;" class="{@styleClass}" style="{@style}"/>
- <vpe:textFormating>
- <vpe:format type="UnderlineFormat" setDefault="true">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="BoldFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="ItalicFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="FontNameFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="FontSizeFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="BackgroundColorFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- <vpe:format type="ForegroundColorFormat">
- <vpe:formatAttribute type="style"/>
- </vpe:format>
- </vpe:textFormating>
- </vpe:template>
- </vpe:tag>
-
+ <vpe:if test="(@disabled='true')">
+ <vpe:template children="yes" modify="yes">
+ <span class="{@styleClass}"
+ style="{@style}" dir="{@dir}">
+ </span>
+ <vpe:textFormating>
+ <vpe:format type="UnderlineFormat"
+ setDefault="true">
+ <vpe:formatAttribute type="style" />
+ </vpe:format>
+ <vpe:format type="BoldFormat">
+ <vpe:formatAttribute type="style" />
+ </vpe:format>
+ <vpe:format type="ItalicFormat">
+ <vpe:formatAttribute type="style" />
+ </vpe:format>
+ <vpe:format type="FontNameFormat">
+ <vpe:formatAttribute type="style" />
+ </vpe:format>
+ <vpe:format type="FontSizeFormat">
+ <vpe:formatAttribute type="style" />
+ </vpe:format>
+ <vpe:format type="BackgroundColorFormat">
+ <vpe:formatAttribute type="style" />
+ </vpe:format>
+ <vpe:format type="ForegroundColorFormat">
+ <vpe:formatAttribute type="style" />
+ </vpe:format>
+ </vpe:textFormating>
+ </vpe:template>
+ </vpe:if>
+ <vpe:template children="yes" modify="yes">
+ <a href="javascript:return false;" class="{@styleClass}"
+ style="{@style}" />
+ <vpe:textFormating>
+ <vpe:format type="UnderlineFormat" setDefault="true">
+ <vpe:formatAttribute type="style" />
+ </vpe:format>
+ <vpe:format type="BoldFormat">
+ <vpe:formatAttribute type="style" />
+ </vpe:format>
+ <vpe:format type="ItalicFormat">
+ <vpe:formatAttribute type="style" />
+ </vpe:format>
+ <vpe:format type="FontNameFormat">
+ <vpe:formatAttribute type="style" />
+ </vpe:format>
+ <vpe:format type="FontSizeFormat">
+ <vpe:formatAttribute type="style" />
+ </vpe:format>
+ <vpe:format type="BackgroundColorFormat">
+ <vpe:formatAttribute type="style" />
+ </vpe:format>
+ <vpe:format type="ForegroundColorFormat">
+ <vpe:formatAttribute type="style" />
+ </vpe:format>
+ </vpe:textFormating>
+ </vpe:template>
+
+ </vpe:tag>
+
<vpe:tag name="h:outputLabel" case-sensitive="yes">
<vpe:template children="yes" modify="yes">
<label style="{@style}" class="{@styleClass}" title="{tagstring()}" for="{@for}">
17 years, 7 months
JBoss Tools SVN: r6569 - trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template.
by jbosstools-commits@lists.jboss.org
Author: sdzmitrovich
Date: 2008-02-26 02:38:46 -0500 (Tue, 26 Feb 2008)
New Revision: 6569
Added:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractJsfTemplate.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputLabelTemplate.java
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputTextTemplate.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1718
Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractJsfTemplate.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractJsfTemplate.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/AbstractJsfTemplate.java 2008-02-26 07:38:46 UTC (rev 6569)
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.tools.vpe.editor.template.EditableTemplateAdapter;
+import org.jboss.tools.vpe.editor.util.HTML;
+import org.mozilla.interfaces.nsIDOMElement;
+import org.w3c.dom.Element;
+
+/**
+ * general class for jsf templates
+ *
+ * @author Sergey Dzmitrovich
+ *
+ */
+public abstract class AbstractJsfTemplate extends EditableTemplateAdapter {
+
+ // general jsf attributes
+ static private Map<String, String> attributes = new HashMap<String, String>();
+
+ static {
+ attributes.put("style", HTML.ATTR_STYLE);
+ attributes.put("styleClass", HTML.ATTR_CLASS);
+ }
+
+ /**
+ * copy general
+ *
+ * @param visualElement
+ * @param sourceElement
+ */
+ protected void copyGeneralJsfAttributes(nsIDOMElement visualElement,
+ Element sourceElement) {
+
+ Set<String> jsfAttributes = attributes.keySet();
+
+ for (String key : jsfAttributes) {
+ if (sourceElement.hasAttribute(key))
+ visualElement.setAttribute(attributes.get(key), sourceElement
+ .getAttribute(key));
+ }
+
+ }
+
+}
Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputLabelTemplate.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputLabelTemplate.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputLabelTemplate.java 2008-02-26 07:38:46 UTC (rev 6569)
@@ -0,0 +1,149 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.jboss.tools.jsf.vpe.jsf.template.util.NodeAdapterUtil;
+import org.jboss.tools.vpe.editor.bundle.BundleMap;
+import org.jboss.tools.vpe.editor.context.VpePageContext;
+import org.jboss.tools.vpe.editor.mapping.VpeNodeMapping;
+import org.jboss.tools.vpe.editor.template.VpeChildrenInfo;
+import org.jboss.tools.vpe.editor.template.VpeCreationData;
+import org.jboss.tools.vpe.editor.util.HTML;
+import org.mozilla.interfaces.nsIDOMDocument;
+import org.mozilla.interfaces.nsIDOMElement;
+import org.mozilla.interfaces.nsIDOMText;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * @author Sergey Dzmitrovich
+ *
+ * template for <h:outputText .../> jsf tag
+ *
+ */
+public class JsfOutputLabelTemplate extends AbstractJsfTemplate {
+
+ /**
+ * name of "value" attribute
+ */
+ private static final String VALUE_ATTR_NAME = "value";
+
+ /**
+ * name of "binding" attribute
+ */
+ private static final String BINDING_ATTR_NAME = "binding";
+
+ /**
+ * name of "escape" attribute
+ */
+ private static final String ESCAPE_ATTR_NAME = "escape";
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.tools.vpe.editor.template.VpeTemplate#create(org.jboss.tools.vpe.editor.context.VpePageContext,
+ * org.w3c.dom.Node, org.mozilla.interfaces.nsIDOMDocument)
+ */
+ public VpeCreationData create(VpePageContext pageContext, Node sourceNode,
+ nsIDOMDocument visualDocument) {
+
+ Element element = (Element) sourceNode;
+
+ List<VpeNodeMapping> attributesMapping = new ArrayList<VpeNodeMapping>();
+
+ // create span element
+ nsIDOMElement span = visualDocument.createElement(HTML.TAG_SPAN);
+
+ VpeCreationData creationData = new VpeCreationData(span);
+
+ copyGeneralJsfAttributes(span, element);
+
+ Attr attr = getOutputAttributeNode(element);
+
+ if (attr != null) {
+
+ if ("true".equalsIgnoreCase(element.getAttribute(ESCAPE_ATTR_NAME))) {
+
+ String value = attr.getNodeValue();
+
+ String bundleValue = getBundleValue(pageContext, attr);
+
+ nsIDOMText text;
+ if (!value.equals(bundleValue)) {
+
+ text = visualDocument.createTextNode(bundleValue);
+
+ } else {
+
+ text = visualDocument.createTextNode(value);
+ attributesMapping.add(new VpeNodeMapping(attr, text));
+ }
+ span.appendChild(text);
+ } else {
+
+ VpeChildrenInfo spanInfo = new VpeChildrenInfo(span);
+
+ NodeList list = NodeAdapterUtil.reparseAttributeValue(attr);
+
+ for (int i = 0; i < list.getLength(); i++) {
+
+ Node child = list.item(i);
+
+ spanInfo.addSourceChild(child);
+ }
+
+ creationData.addChildrenInfo(spanInfo);
+
+ }
+
+ }
+
+ creationData.setData(attributesMapping);
+
+ return creationData;
+
+ }
+
+ @Override
+ public boolean isRecreateAtAttrChange(VpePageContext pageContext,
+ Element sourceElement, nsIDOMDocument visualDocument,
+ nsIDOMElement visualNode, Object data, String name, String value) {
+
+ return true;
+ }
+
+ private Attr getOutputAttributeNode(Element element) {
+
+ if (element.hasAttribute(VALUE_ATTR_NAME))
+ return element.getAttributeNode(VALUE_ATTR_NAME);
+ else if (element.hasAttribute(BINDING_ATTR_NAME))
+ return element.getAttributeNode(BINDING_ATTR_NAME);
+
+ return null;
+
+ }
+
+ private String getBundleValue(VpePageContext pageContext, Attr attr) {
+
+ BundleMap bundle = pageContext.getBundle();
+
+ return bundle.getBundleValue(attr.getNodeValue(), ((IDOMAttr) attr)
+ .getValueRegionStartOffset());
+
+ }
+
+}
Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputTextTemplate.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputTextTemplate.java (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/src/org/jboss/tools/jsf/vpe/jsf/template/JsfOutputTextTemplate.java 2008-02-26 07:38:46 UTC (rev 6569)
@@ -0,0 +1,149 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jsf.vpe.jsf.template;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.jboss.tools.jsf.vpe.jsf.template.util.NodeAdapterUtil;
+import org.jboss.tools.vpe.editor.bundle.BundleMap;
+import org.jboss.tools.vpe.editor.context.VpePageContext;
+import org.jboss.tools.vpe.editor.mapping.VpeNodeMapping;
+import org.jboss.tools.vpe.editor.template.VpeChildrenInfo;
+import org.jboss.tools.vpe.editor.template.VpeCreationData;
+import org.jboss.tools.vpe.editor.util.HTML;
+import org.mozilla.interfaces.nsIDOMDocument;
+import org.mozilla.interfaces.nsIDOMElement;
+import org.mozilla.interfaces.nsIDOMText;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * @author Sergey Dzmitrovich
+ *
+ * template for <h:outputText .../> jsf tag
+ *
+ */
+public class JsfOutputTextTemplate extends AbstractJsfTemplate {
+
+ /**
+ * name of "value" attribute
+ */
+ private static final String VALUE_ATTR_NAME = "value";
+
+ /**
+ * name of "binding" attribute
+ */
+ private static final String BINDING_ATTR_NAME = "binding";
+
+ /**
+ * name of "escape" attribute
+ */
+ private static final String ESCAPE_ATTR_NAME = "escape";
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.tools.vpe.editor.template.VpeTemplate#create(org.jboss.tools.vpe.editor.context.VpePageContext,
+ * org.w3c.dom.Node, org.mozilla.interfaces.nsIDOMDocument)
+ */
+ public VpeCreationData create(VpePageContext pageContext, Node sourceNode,
+ nsIDOMDocument visualDocument) {
+
+ Element element = (Element) sourceNode;
+
+ List<VpeNodeMapping> attributesMapping = new ArrayList<VpeNodeMapping>();
+
+ // create span element
+ nsIDOMElement span = visualDocument.createElement(HTML.TAG_SPAN);
+
+ VpeCreationData creationData = new VpeCreationData(span);
+
+ copyGeneralJsfAttributes(span, element);
+
+ Attr attr = getOutputAttributeNode(element);
+
+ if (attr != null) {
+
+ if (!element.hasAttribute(ESCAPE_ATTR_NAME) || "true".equalsIgnoreCase(element.getAttribute(ESCAPE_ATTR_NAME))) {
+
+ String value = attr.getNodeValue();
+
+ String bundleValue = getBundleValue(pageContext, attr);
+
+ nsIDOMText text;
+ if (!value.equals(bundleValue)) {
+
+ text = visualDocument.createTextNode(bundleValue);
+
+ } else {
+
+ text = visualDocument.createTextNode(value);
+ attributesMapping.add(new VpeNodeMapping(attr, text));
+ }
+ span.appendChild(text);
+ } else {
+
+ VpeChildrenInfo spanInfo = new VpeChildrenInfo(span);
+
+ NodeList list = NodeAdapterUtil.reparseAttributeValue(attr);
+
+ for (int i = 0; i < list.getLength(); i++) {
+
+ Node child = list.item(i);
+
+ spanInfo.addSourceChild(child);
+ }
+
+ creationData.addChildrenInfo(spanInfo);
+
+ }
+
+ }
+
+ creationData.setData(attributesMapping);
+
+ return creationData;
+
+ }
+
+ @Override
+ public boolean isRecreateAtAttrChange(VpePageContext pageContext,
+ Element sourceElement, nsIDOMDocument visualDocument,
+ nsIDOMElement visualNode, Object data, String name, String value) {
+
+ return true;
+ }
+
+ private Attr getOutputAttributeNode(Element element) {
+
+ if (element.hasAttribute(VALUE_ATTR_NAME))
+ return element.getAttributeNode(VALUE_ATTR_NAME);
+ else if (element.hasAttribute(BINDING_ATTR_NAME))
+ return element.getAttributeNode(BINDING_ATTR_NAME);
+
+ return null;
+
+ }
+
+ private String getBundleValue(VpePageContext pageContext, Attr attr) {
+
+ BundleMap bundle = pageContext.getBundle();
+
+ return bundle.getBundleValue(attr.getNodeValue(), ((IDOMAttr) attr)
+ .getValueRegionStartOffset());
+
+ }
+
+}
17 years, 7 months
JBoss Tools SVN: r6568 - in trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor: template and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: sdzmitrovich
Date: 2008-02-26 02:37:32 -0500 (Tue, 26 Feb 2008)
New Revision: 6568
Added:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/EditableTemplateAdapter.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateKeyEventHandler.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateNodesManager.java
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeSourceDomBuilder.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualKeyHandler.java
Log:
was added new attributes editing mechanism
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2008-02-26 02:51:01 UTC (rev 6567)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2008-02-26 07:37:32 UTC (rev 6568)
@@ -10,7 +10,7 @@
******************************************************************************/
package org.jboss.tools.vpe.editor;
-import java.util.Iterator;
+import java.util.Iterator;
import java.util.List;
import java.util.Properties;
@@ -26,9 +26,9 @@
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.bindings.Binding;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.KeyStroke;
+import org.eclipse.jface.bindings.Binding;
+import org.eclipse.jface.bindings.keys.KeySequence;
+import org.eclipse.jface.bindings.keys.KeyStroke;
import org.eclipse.jface.text.ITextSelection;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.jface.viewers.ISelection;
@@ -58,12 +58,12 @@
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.fieldassist.ContentAssistCommandAdapter;
-import org.eclipse.ui.internal.keys.WorkbenchKeyboard;
-import org.eclipse.ui.keys.IBindingService;
+import org.eclipse.ui.fieldassist.ContentAssistCommandAdapter;
+import org.eclipse.ui.internal.keys.WorkbenchKeyboard;
+import org.eclipse.ui.keys.IBindingService;
import org.eclipse.ui.progress.UIJob;
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
import org.eclipse.wst.sse.core.internal.model.ModelLifecycleEvent;
@@ -83,6 +83,7 @@
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.event.XModelTreeEvent;
import org.jboss.tools.common.model.event.XModelTreeListener;
@@ -102,7 +103,6 @@
import org.jboss.tools.common.model.util.ModelFeatureFactory;
import org.jboss.tools.common.model.util.XModelTreeListenerSWTSync;
import org.jboss.tools.jst.jsp.editor.IJSPTextEditor;
-import org.jboss.tools.jst.jsp.editor.IVisualContext;
import org.jboss.tools.jst.jsp.editor.IVisualController;
import org.jboss.tools.jst.jsp.preferences.VpePreference;
import org.jboss.tools.jst.web.tld.TLDToPaletteHelper;
@@ -133,6 +133,7 @@
import org.jboss.tools.vpe.editor.template.VpeTemplate;
import org.jboss.tools.vpe.editor.template.VpeTemplateListener;
import org.jboss.tools.vpe.editor.template.VpeTemplateManager;
+import org.jboss.tools.vpe.editor.template.VpeTemplateNodesManager;
import org.jboss.tools.vpe.editor.toolbar.format.FormatControllerManager;
import org.jboss.tools.vpe.editor.util.HTML;
import org.jboss.tools.vpe.editor.util.TextUtil;
@@ -174,7 +175,7 @@
VpeDomMapping domMapping;
private VpeTemplateManager templateManager;
private VpeSourceDomBuilder sourceBuilder;
- public VpeVisualDomBuilder visualBuilder;
+ private VpeVisualDomBuilder visualBuilder;
private VpeSelectionBuilder selectionBuilder;
private VpeVisualKeyHandler visualKeyHandler;
private ActiveEditorSwitcher switcher = new ActiveEditorSwitcher();
@@ -1379,20 +1380,45 @@
private Node getSourceNodeAt(int offset) {
if (sourceEditor != null && getModel() != null) {
IndexedRegion node = getModel().getIndexedRegion(offset);
- if (node instanceof IDOMElement) {
- IDOMElement element = (IDOMElement)node;
- if (offset < element.getEndStartOffset()) {
- NamedNodeMap attrs = element.getAttributes();
- if (attrs != null) {
- for (int i = 0; i < attrs.getLength(); i++) {
- if (attrs.item(i) instanceof AttrImpl) {
- AttrImpl attr = (AttrImpl)attrs.item(i);
- if (getSourceAttributeOffset(attr, offset) != -1) {
- VpeElementMapping elementMapping = domMapping.getNearElementMapping(attr.getOwnerElement());
- if (elementMapping != null) {
- String[] atributeNames = elementMapping.getTemplate().getOutputAtributeNames();
- if (atributeNames != null && atributeNames.length > 0 && attr.getName().equalsIgnoreCase(atributeNames[0])) {
- return attr;
+ if (node instanceof IDOMNode) {
+
+ VpeElementMapping elementMapping = domMapping
+ .getNearElementMapping((IDOMNode) node);
+
+ if (elementMapping != null) {
+
+ // if template implements VpeTemplateNodesManager interface
+ if (elementMapping.getTemplate() instanceof VpeTemplateNodesManager) {
+ Node focusedAttr = ((VpeTemplateNodesManager) elementMapping
+ .getTemplate()).getFocusedNode((IDOMNode) node,
+ offset, elementMapping.getData());
+ if (node != null)
+ return focusedAttr;
+ }
+ if (node instanceof IDOMElement) {
+ IDOMElement element = (IDOMElement) node;
+
+ if (offset < element.getEndStartOffset()) {
+ NamedNodeMap attrs = element.getAttributes();
+ if (attrs != null) {
+ for (int i = 0; i < attrs.getLength(); i++) {
+ if (attrs.item(i) instanceof AttrImpl) {
+ AttrImpl attr = (AttrImpl) attrs
+ .item(i);
+ if (getSourceAttributeOffset(attr,
+ offset) != -1) {
+
+ String[] atributeNames = elementMapping
+ .getTemplate()
+ .getOutputAtributeNames();
+ if (atributeNames != null
+ && atributeNames.length > 0
+ && attr
+ .getName()
+ .equalsIgnoreCase(
+ atributeNames[0])) {
+ return attr;
+ }
}
}
}
@@ -1400,7 +1426,7 @@
}
}
}
- }
+ }
if (node == null) {
node = getModel().getIndexedRegion(offset - 1);
}
@@ -1409,7 +1435,7 @@
}
}
return null;
- }
+ }
private int getSourceNodeOffset(Node node, int pos, boolean endFlag) {
if (node == null) return 0;
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeSourceDomBuilder.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeSourceDomBuilder.java 2008-02-26 02:51:01 UTC (rev 6567)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeSourceDomBuilder.java 2008-02-26 07:37:32 UTC (rev 6568)
@@ -17,7 +17,6 @@
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.TextSelection;
import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jst.jsp.core.internal.domdocument.TextImplForJSP;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.graphics.Point;
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
@@ -38,6 +37,7 @@
import org.jboss.tools.vpe.editor.selection.VpeSelectionHelper;
import org.jboss.tools.vpe.editor.template.VpeTemplate;
import org.jboss.tools.vpe.editor.template.VpeTemplateManager;
+import org.jboss.tools.vpe.editor.template.VpeTemplateNodesManager;
import org.jboss.tools.vpe.editor.util.TextUtil;
import org.mozilla.interfaces.nsIDOMElement;
import org.mozilla.interfaces.nsIDOMNode;
@@ -55,7 +55,7 @@
IDOMModel model;
private Document sourceDocument;
private VpePageContext pageContext;
- private StructuredTextEditor sourceEditor;
+ private StructuredTextEditor sourceEditor;
public VpeSourceDomBuilder(VpeDomMapping domMapping, INodeAdapter sorceAdapter, VpeTemplateManager templateManager, StructuredTextEditor sourceEditor, VpePageContext pageContext) {
super(domMapping, sorceAdapter, templateManager);
@@ -253,10 +253,20 @@
boolean openBundleEditors(nsIDOMNode visualNode) {
Node sourceNode = domMapping.getNearSourceNode(visualNode);
if (sourceNode != null && sourceNode.getNodeType() == Node.ELEMENT_NODE) {
- VpeElementMapping elementMapping = (VpeElementMapping)domMapping.getNodeMapping(sourceNode);
+ VpeElementMapping elementMapping = (VpeElementMapping) domMapping
+ .getNodeMapping(sourceNode);
if (elementMapping != null) {
+
VpeTemplate template = elementMapping.getTemplate();
- template.openBundleEditors(pageContext, (Element)sourceNode, elementMapping.getData());
+
+ // if template implements VpeTemplateNodesManager interface
+ if (template instanceof VpeTemplateNodesManager) {
+ return ((VpeTemplateNodesManager) template).openBundle(
+ pageContext, visualNode, elementMapping.getData());
+ } else {
+ template.openBundleEditors(pageContext,
+ (Element) sourceNode, elementMapping.getData());
+ }
}
}
return false;
@@ -310,10 +320,34 @@
Node sourceParent = domMapping.getNearSourceNode(visualText);
if (sourceParent != null) {
if (sourceParent.getNodeType() == Node.ELEMENT_NODE) {
- VpeElementMapping elementMapping = (VpeElementMapping)domMapping.getNodeMapping(sourceParent);
+
+ VpeElementMapping elementMapping = (VpeElementMapping) domMapping
+ .getNodeMapping(sourceParent);
+
if (elementMapping != null) {
+
VpeTemplate template = elementMapping.getTemplate();
- template.setSourceAttributeSelection(pageContext, (Element)sourceParent, offset, length, elementMapping.getData());
+
+ // if template implements VpeTemplateAttributesManager
+ // functions
+ if (template instanceof VpeTemplateNodesManager) {
+ // get attribute
+ Node node = ((VpeTemplateNodesManager) template)
+ .getSourceNode(pageContext,
+ visualText, elementMapping.getData());
+ // set selection
+ if (node != null)
+ ((VpeTemplateNodesManager) template)
+ .setSourceNodeSelection(pageContext,
+ node, offset, length);
+ else
+ setSelection(sourceParent, offset, length);
+ } else {
+
+ template.setSourceAttributeSelection(pageContext,
+ (Element) sourceParent, offset, length,
+ elementMapping.getData());
+ }
}
} else if (sourceParent.getNodeType() == Node.COMMENT_NODE) {
// VpeVisualElementInfo info = domMapping.getVisualElementInfo(sourceParent);
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java 2008-02-26 02:51:01 UTC (rev 6567)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java 2008-02-26 07:37:32 UTC (rev 6568)
@@ -29,6 +29,7 @@
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.text.IDocument;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.ui.IEditorInput;
@@ -38,6 +39,7 @@
import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
import org.eclipse.wst.xml.core.internal.document.ElementImpl;
import org.eclipse.wst.xml.core.internal.document.NodeImpl;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.jboss.tools.common.model.XModel;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.project.IModelNature;
@@ -62,6 +64,7 @@
import org.jboss.tools.vpe.editor.template.VpeTagDescription;
import org.jboss.tools.vpe.editor.template.VpeTemplate;
import org.jboss.tools.vpe.editor.template.VpeTemplateManager;
+import org.jboss.tools.vpe.editor.template.VpeTemplateNodesManager;
import org.jboss.tools.vpe.editor.template.VpeToggableTemplate;
import org.jboss.tools.vpe.editor.template.dnd.VpeDnd;
import org.jboss.tools.vpe.editor.util.HTML;
@@ -86,7 +89,6 @@
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-import org.eclipse.jface.text.IDocument;
public class VpeVisualDomBuilder extends VpeDomBuilder {
/** REGEX_EL */
@@ -1540,35 +1542,54 @@
}
public boolean isTextEditable(nsIDOMNode visualNode) {
- if (visualNode != null) {
- nsIDOMNode parent = visualNode.getParentNode();
- if (parent != null
- && parent.getNodeType() == nsIDOMNode.ELEMENT_NODE) {
- nsIDOMElement element = (nsIDOMElement) parent
- .queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID);
- nsIDOMAttr style = element.getAttributeNode("style");
- if (style != null) {
- String styleValue = style.getNodeValue();
- String[] items = styleValue.split(";");
- for (int i = 0; i < items.length; i++) {
- String[] item = items[i].split(":");
- if ("-moz-user-modify".equals(item[0].trim())
- && "read-only".equals(item[1].trim())) {
- return false;
+
+
+ // get VpeNodeMapping
+ VpeNodeMapping nodeMapping = domMapping
+ .getNearNodeMapping(visualNode);
+
+ // if it is element mapping
+ if (nodeMapping instanceof VpeElementMapping) {
+ // get template
+ VpeTemplate template = ((VpeElementMapping) nodeMapping)
+ .getTemplate();
+ // if template implements VpeTemplateAttributesManager
+ if (template instanceof VpeTemplateNodesManager)
+ return ((VpeTemplateNodesManager) template).isNodeEditable(
+ pageContext, visualNode,
+ ((VpeElementMapping) nodeMapping).getData());
+
+ }
+
+ if (visualNode != null) {
+ nsIDOMNode parent = visualNode.getParentNode();
+ if (parent != null
+ && parent.getNodeType() == nsIDOMNode.ELEMENT_NODE) {
+ nsIDOMElement element = (nsIDOMElement) parent
+ .queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID);
+ nsIDOMAttr style = element.getAttributeNode("style");
+ if (style != null) {
+ String styleValue = style.getNodeValue();
+ String[] items = styleValue.split(";");
+ for (int i = 0; i < items.length; i++) {
+ String[] item = items[i].split(":");
+ if ("-moz-user-modify".equals(item[0].trim())
+ && "read-only".equals(item[1].trim())) {
+ return false;
+ }
+ }
+ }
+ nsIDOMAttr classAttr = element.getAttributeNode("class");
+ if (classAttr != null) {
+ String classValue = classAttr.getNodeValue().trim();
+ if ("__any__tag__caption".equals(classValue)) {
+ return false;
+ }
+ }
}
- }
}
- nsIDOMAttr classAttr = element.getAttributeNode("class");
- if (classAttr != null) {
- String classValue = classAttr.getNodeValue().trim();
- if ("__any__tag__caption".equals(classValue)) {
- return false;
- }
- }
- }
+ return true;
}
- return true;
- }
VpeVisualInnerDropInfo getInnerDropInfo(Node sourceDropContainer,
int sourceDropOffset) {
@@ -1628,7 +1649,7 @@
protected void setTooltip(Element sourceElement, nsIDOMElement visualElement) {
if (visualElement != null && sourceElement != null
- && !((ElementImpl) sourceElement).isJSPTag()) {
+ && !((IDOMElement) sourceElement).isJSPTag()) {
if (HTML.TAG_HTML.equalsIgnoreCase(sourceElement.getNodeName()))
return;
String titleValue = getTooltip(sourceElement);
@@ -1897,6 +1918,13 @@
VpeElementMapping elementMapping = domMapping
.getNearElementMapping(sourceElement);
if (elementMapping != null) {
+
+ if (elementMapping.getTemplate() instanceof VpeTemplateNodesManager) {
+ return (nsIDOMText) ((VpeTemplateNodesManager) elementMapping
+ .getTemplate()).getVisualNode(pageContext, attr,
+ elementMapping.getData());
+ }
+
return elementMapping.getTemplate().getOutputTextNode(pageContext,
sourceElement, elementMapping.getData());
}
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualKeyHandler.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualKeyHandler.java 2008-02-26 02:51:01 UTC (rev 6567)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualKeyHandler.java 2008-02-26 07:37:32 UTC (rev 6568)
@@ -44,15 +44,14 @@
import org.jboss.tools.vpe.editor.selection.VpeSourceSelectionBuilder;
import org.jboss.tools.vpe.editor.template.VpeHtmlTemplate;
import org.jboss.tools.vpe.editor.template.VpeTemplate;
+import org.jboss.tools.vpe.editor.template.VpeTemplateKeyEventHandler;
import org.jboss.tools.vpe.editor.util.FlatIterator;
import org.jboss.tools.vpe.editor.util.HTML;
import org.jboss.tools.vpe.editor.util.TextUtil;
-import org.jboss.tools.vpe.editor.util.VpeDebugUtil;
import org.jboss.tools.vpe.xulrunner.editor.XulRunnerVpeUtils;
import org.mozilla.interfaces.nsIDOMElement;
import org.mozilla.interfaces.nsIDOMKeyEvent;
import org.mozilla.interfaces.nsIDOMNode;
-import org.mozilla.interfaces.nsISelection;
import org.mozilla.xpcom.XPCOMException;
import org.w3c.dom.Attr;
import org.w3c.dom.Comment;
@@ -168,10 +167,21 @@
long keyCode = keyEvent.getKeyCode();
boolean shiftKey = keyEvent.getShiftKey();
+ // get template of selected element
+ VpeTemplate template = getCurrentSelectionTemplate();
+
+ // if template сan handle keyEvent than pass control to him. And if
+ // template handled event return true
+ if ((template instanceof VpeTemplateKeyEventHandler)
+ && ((VpeTemplateKeyEventHandler) template).handleKeyPress(
+ pageContext, keyEvent)) {
+ return true;
+ }
+
if (keyCode == VK_ENTER) {
return split();
} else if (keyCode == VK_LEFT && !shiftKey) {
- return moveLeft();
+ return moveLeft();
} else if (keyCode == VK_UP && !shiftKey) {
return moveUp();
} else if (keyCode == VK_RIGHT && !shiftKey) {
@@ -1814,4 +1824,20 @@
return pageContext.getEditPart().getController().getXulRunnerEditor().getLastSelectedElement();
}
+
+
+ /**
+ * get {@link VpeTemplate} from selection
+ *
+ * @return
+ */
+ private VpeTemplate getCurrentSelectionTemplate() {
+ VpeElementMapping elementMapping = domMapping
+ .getNearElementMapping(getSelectedNode());
+
+ if (elementMapping != null)
+ return elementMapping.getTemplate();
+
+ return null;
+ }
}
\ No newline at end of file
Added: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/EditableTemplateAdapter.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/EditableTemplateAdapter.java (rev 0)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/EditableTemplateAdapter.java 2008-02-26 07:37:32 UTC (rev 6568)
@@ -0,0 +1,763 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.vpe.editor.template;
+
+import java.util.List;
+
+import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.jboss.tools.vpe.editor.context.VpePageContext;
+import org.jboss.tools.vpe.editor.mapping.VpeElementMapping;
+import org.jboss.tools.vpe.editor.mapping.VpeNodeMapping;
+import org.jboss.tools.vpe.editor.util.TextUtil;
+import org.mozilla.interfaces.nsIDOMKeyEvent;
+import org.mozilla.interfaces.nsIDOMNode;
+import org.mozilla.interfaces.nsIDOMText;
+import org.mozilla.interfaces.nsISelection;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * Abstract class to handle keyEvent.
+ *
+ * Default implementation of {@link VpeTemplateKeyEventHandler}. In result of
+ * work handleKeyPress() call one from handle* methods.
+ *
+ * You must override some handle* methods if you want change work of your
+ * handler *
+ *
+ * Default implementation of {@link VpeTemplateNodesManager}.
+ *
+ * @author Sergey Dzmitrovich
+ *
+ */
+public abstract class EditableTemplateAdapter extends VpeAbstractTemplate
+ implements VpeTemplateKeyEventHandler, VpeTemplateNodesManager {
+
+ /**
+ * name of "view" tag
+ */
+ private static final String VIEW_TAGNAME = "view";
+
+ /**
+ * name of "locale" attribute
+ */
+ private static final String LOCALE_ATTRNAME = "locale";
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.tools.vpe.editor.template.VpeTemplateKeyEventHandler#handleKeyPress(org.jboss.tools.vpe.editor.context.VpePageContext,
+ * org.mozilla.interfaces.nsIDOMKeyEvent)
+ */
+ public boolean handleKeyPress(VpePageContext pageContext,
+ nsIDOMKeyEvent keyEvent) {
+
+ long keyCode = keyEvent.getKeyCode();
+
+ if (keyCode == nsIDOMKeyEvent.DOM_VK_ENTER) {
+ return handleEnter(pageContext, keyEvent);
+
+ } else if ((keyCode == nsIDOMKeyEvent.DOM_VK_LEFT)
+ && (!keyEvent.getShiftKey())) {
+ return handleLeft(pageContext, keyEvent);
+
+ } else if ((keyCode == nsIDOMKeyEvent.DOM_VK_UP)
+ && (!keyEvent.getShiftKey())) {
+ return handleUp(pageContext, keyEvent);
+
+ } else if ((keyCode == nsIDOMKeyEvent.DOM_VK_RIGHT)
+ && (!keyEvent.getShiftKey())) {
+ return handleRight(pageContext, keyEvent);
+
+ } else if ((keyCode == nsIDOMKeyEvent.DOM_VK_DOWN)
+ && (!keyEvent.getShiftKey())) {
+ return handleDown(pageContext, keyEvent);
+
+ } else if ((keyCode == nsIDOMKeyEvent.DOM_VK_HOME)
+ && (!keyEvent.getShiftKey())) {
+ return handleHome(pageContext, keyEvent);
+
+ } else if ((keyCode == nsIDOMKeyEvent.DOM_VK_END)
+ && (!keyEvent.getShiftKey())) {
+ return handleEnd(pageContext, keyEvent);
+
+ } else if ((keyCode == nsIDOMKeyEvent.DOM_VK_BACK_SPACE)
+ && (!keyEvent.getShiftKey())) {
+ return handleLeftDelete(pageContext, keyEvent);
+
+ } else if ((keyCode == nsIDOMKeyEvent.DOM_VK_DELETE)
+ && (!keyEvent.getShiftKey())) {
+ return handleRightDelete(pageContext, keyEvent);
+
+ } else if ((keyCode == nsIDOMKeyEvent.DOM_VK_PAGE_UP)
+ && (!keyEvent.getShiftKey())) {
+ return handlePageUp(pageContext, keyEvent);
+
+ } else if (keyEvent.getCharCode() != 0) {
+ return handleCharacter(pageContext, keyEvent);
+
+ } else if ((keyEvent.getKeyCode() == nsIDOMKeyEvent.DOM_VK_INSERT)
+ && keyEvent.getShiftKey()) {
+ return handleInsert(pageContext, keyEvent);
+ }
+
+ return false;
+ }
+
+ /**
+ * Default handling of a pressing the "insert" event - always return false.
+ *
+ * @param pageContext -
+ * context of vpe
+ * @param keyEvent -
+ * event
+ * @return whether handled event
+ */
+ protected boolean handleInsert(VpePageContext pageContext,
+ nsIDOMKeyEvent keyEvent) {
+ return false;
+ }
+
+ /**
+ * Default handling of a pressing a character event
+ *
+ *
+ * @param pageContext -
+ * context of vpe
+ * @param keyEvent -
+ * event
+ * @return whether handled event
+ */
+ protected boolean handleCharacter(VpePageContext pageContext,
+ nsIDOMKeyEvent keyEvent) {
+
+ // get selection
+ nsISelection selection = pageContext.getEditPart().getController()
+ .getXulRunnerEditor().getSelection();
+
+ // get visual node which is focused
+ nsIDOMNode visualNode = selection.getFocusNode();
+
+ System.out.print("\n name:" + visualNode.getLocalName() + "\t value:"
+ + visualNode.getNodeValue());
+
+ VpeElementMapping elementMapping = getElmentMapping(pageContext,
+ visualNode);
+
+ if (elementMapping == null || elementMapping.getData() == null) {
+ return false;
+ }
+
+ Object data = elementMapping.getData();
+
+ // if node editable
+ if (isNodeEditable(pageContext, visualNode, data)) {
+
+ // get source node
+ Node node = getSourceNode(pageContext, visualNode, data);
+
+ if (node == null)
+ return false;
+
+ // get focus and anchor offsets
+ int focusOffset = selection.getFocusOffset();
+ int anchorOffset = selection.getAnchorOffset();
+
+ // initialization offset and length selected string
+ int startOffset = 0;
+ int length = 0;
+
+ // set start offset and length selected string
+ if (focusOffset < anchorOffset) {
+ startOffset = focusOffset;
+ length = anchorOffset - focusOffset;
+ } else {
+ startOffset = anchorOffset;
+ length = focusOffset - anchorOffset;
+ }
+
+ // get inserted string
+ long charCode = keyEvent.getCharCode();
+ char[] s = new char[1];
+ s[0] = (char) charCode;
+ String str = new String(s);
+ if (TextUtil.containsKey(s[0])) {
+ str = TextUtil.getValue(s[0]);
+ }
+
+ // get value
+ String oldValue = node.getNodeValue();
+
+ // create new value
+ String newValue = oldValue.substring(0, startOffset) + str
+ + oldValue.substring(startOffset + length);
+
+ node.setNodeValue(newValue);
+
+ // set selection
+ setSourceNodeSelection(pageContext, node, startOffset + 1, 0);
+
+ }
+ return true;
+ }
+
+ /**
+ * Default implementation of a handling of a pressing the "page up" event -
+ * always return false.
+ *
+ * Override this method for a handling of a pressing the "page up" event
+ *
+ * @param pageContext -
+ * context of vpe
+ * @param keyEvent -
+ * event
+ * @return whether handled event
+ */
+ protected boolean handlePageUp(VpePageContext pageContext,
+ nsIDOMKeyEvent keyEvent) {
+ return false;
+ }
+
+ /**
+ * Default implementation of a handling of a pressing the "delete" event
+ *
+ * Override this method for a handling of a pressing the "delete" event
+ *
+ * @param pageContext -
+ * context of vpe
+ * @param keyEvent -
+ * event
+ * @return whether handled event
+ */
+ protected boolean handleRightDelete(VpePageContext pageContext,
+ nsIDOMKeyEvent keyEvent) {
+ // get selection
+ nsISelection selection = pageContext.getEditPart().getController()
+ .getXulRunnerEditor().getSelection();
+
+ // get visual node which is focused
+ nsIDOMNode visualNode = selection.getFocusNode();
+
+ VpeElementMapping elementMapping = getElmentMapping(pageContext,
+ visualNode);
+
+ if (elementMapping == null || elementMapping.getData() == null) {
+ return false;
+ }
+
+ Object data = elementMapping.getData();
+
+ // if node editable
+ if (isNodeEditable(pageContext, visualNode, data)) {
+
+ // get source node
+ Node node = getSourceNode(pageContext, visualNode, data);
+
+ if (node == null)
+ return false;
+
+ // get focus and anchor offsets
+ int focusOffset = selection.getFocusOffset();
+ int anchorOffset = selection.getAnchorOffset();
+
+ // initialization offset and length selected string
+ int startOffset = 0;
+ int length = 0;
+
+ // set start offset and length selected string
+ // if text was not selected then will be deleted next character
+ if (focusOffset == anchorOffset) {
+
+ // if offset is end of text will do nothing
+ if (focusOffset == node.getNodeValue().length()) {
+ return true;
+ }
+
+ startOffset = focusOffset;
+ length = 1;
+ }
+ // if some text was selected
+ else if (focusOffset < anchorOffset) {
+ startOffset = focusOffset;
+ length = anchorOffset - focusOffset;
+ } else {
+ startOffset = anchorOffset;
+ length = focusOffset - anchorOffset;
+ }
+
+ // get old value
+ String oldValue = node.getNodeValue();
+
+ // create new value
+ String newValue = oldValue.substring(0, startOffset)
+ + oldValue.substring(startOffset + length);
+
+ // set new value
+ node.setNodeValue(newValue);
+
+ // set new selection
+ setSourceNodeSelection(pageContext, node, startOffset, 0);
+
+ }
+
+ return true;
+ }
+
+ /**
+ * Default implementation of a handling of a pressing the "backspace" event
+ *
+ * Override this method for a handling of a pressing the "backspace" event
+ *
+ * @param pageContext -
+ * context of vpe
+ * @param keyEvent -
+ * event
+ * @return whether handled event
+ */
+ protected boolean handleLeftDelete(VpePageContext pageContext,
+ nsIDOMKeyEvent keyEvent) {
+
+ // get selection
+ nsISelection selection = pageContext.getEditPart().getController()
+ .getXulRunnerEditor().getSelection();
+
+ // get visual node which is focused
+ nsIDOMNode visualNode = selection.getFocusNode();
+
+ // if node editable
+ VpeElementMapping elementMapping = getElmentMapping(pageContext,
+ visualNode);
+
+ if (elementMapping == null || elementMapping.getData() == null) {
+ return false;
+ }
+
+ Object data = elementMapping.getData();
+
+ // if node editable
+ if (isNodeEditable(pageContext, visualNode, data)) {
+
+ // get source node
+ Node node = getSourceNode(pageContext, visualNode, data);
+
+ if (node == null)
+ return false;
+
+ // get focus and anchor offsets
+ int focusOffset = selection.getFocusOffset();
+ int anchorOffset = selection.getAnchorOffset();
+
+ // initialization offset and length selected string
+ int startOffset = 0;
+ int length = 0;
+
+ // set start offset and length selected string
+ // if text was not selected then will be deleted previous character
+ if (focusOffset == anchorOffset) {
+ // if offset is start of text then will do nothing
+ if (focusOffset == 0)
+ return true;
+ // set start offset to previous character
+ startOffset = focusOffset - 1;
+ length = 1;
+ }
+ // if some text was selected
+ else if (focusOffset < anchorOffset) {
+ startOffset = focusOffset;
+ length = anchorOffset - focusOffset;
+ } else {
+ startOffset = anchorOffset;
+ length = focusOffset - anchorOffset;
+ }
+
+ // get old value
+ String oldValue = node.getNodeValue();
+
+ // create new value
+ String newValue = oldValue.substring(0, startOffset)
+ + oldValue.substring(startOffset + length);
+
+ // set new value
+ node.setNodeValue(newValue);
+
+ // set new selection
+ setSourceNodeSelection(pageContext, node, startOffset, 0);
+
+ }
+
+ return true;
+ }
+
+ /**
+ * Default handling of a pressing the "end" event - always return false.
+ *
+ * Override this method to handle of a pressing the "end" event
+ *
+ * @param pageContext -
+ * context of vpe
+ * @param keyEvent -
+ * event
+ * @return whether handled event
+ */
+ protected boolean handleEnd(VpePageContext pageContext,
+ nsIDOMKeyEvent keyEvent) {
+ return false;
+ }
+
+ /**
+ * Default handling of a pressing the "home" event - always return false.
+ *
+ * Override this method to handle of a pressing the "home" event
+ *
+ * @param pageContext -
+ * context of vpe
+ * @param keyEvent -
+ * event
+ * @return whether handled event
+ */
+ protected boolean handleHome(VpePageContext pageContext,
+ nsIDOMKeyEvent keyEvent) {
+ return false;
+ }
+
+ /**
+ * Default handling of a pressing the "down" event - always return false.
+ *
+ * Override this method to handle of a pressing the "down" event
+ *
+ * @param pageContext -
+ * context of vpe
+ * @param keyEvent -
+ * event
+ * @return whether handled event
+ */
+ protected boolean handleDown(VpePageContext pageContext,
+ nsIDOMKeyEvent keyEvent) {
+ return false;
+ }
+
+ /**
+ * Default handling of a pressing the "right" event - always return false.
+ *
+ * Override this method to handle of a pressing the "right" event
+ *
+ * @param pageContext -
+ * context of vpe
+ * @param keyEvent -
+ * event
+ * @return whether handled event
+ */
+ protected boolean handleRight(VpePageContext pageContext,
+ nsIDOMKeyEvent keyEvent) {
+
+ // get selection
+ nsISelection selection = pageContext.getEditPart().getController()
+ .getXulRunnerEditor().getSelection();
+
+ // get visual node which is focused
+ nsIDOMNode visualNode = selection.getFocusNode();
+
+ VpeElementMapping elementMapping = getElmentMapping(pageContext,
+ visualNode);
+
+ if (elementMapping == null || elementMapping.getData() == null) {
+ return false;
+ }
+
+ Object data = elementMapping.getData();
+
+ // if node editable
+ if (isNodeEditable(pageContext, visualNode, data)) {
+
+ // get source node
+ Node node = getSourceNode(pageContext, visualNode, data);
+
+ if (node == null)
+ return false;
+
+ // get focus and anchor offsets
+ int focusOffset = selection.getFocusOffset();
+
+ if (focusOffset != node.getNodeValue().length()) {
+ setSourceNodeSelection(pageContext, node, focusOffset + 1, 0);
+ }
+ }
+ return true;
+
+ }
+
+ /**
+ * Default handling of a pressing the "up" event - always return false.
+ *
+ * Override this method to handle of a pressing the "up" event
+ *
+ * @param pageContext -
+ * context of vpe
+ * @param keyEvent -
+ * event
+ * @return whether handled event
+ */
+ protected boolean handleUp(VpePageContext pageContext,
+ nsIDOMKeyEvent keyEvent) {
+ return false;
+ }
+
+ /**
+ * Default handling of a pressing the "left" event - always return false.
+ *
+ * Override this method to handle of a pressing the "left" event
+ *
+ * @param pageContext -
+ * context of vpe
+ * @param keyEvent -
+ * event
+ * @return whether handled event
+ */
+ protected boolean handleLeft(VpePageContext pageContext,
+ nsIDOMKeyEvent keyEvent) {
+
+ // get selection
+ nsISelection selection = pageContext.getEditPart().getController()
+ .getXulRunnerEditor().getSelection();
+
+ // get visual node which is focused
+ nsIDOMNode visualNode = selection.getFocusNode();
+
+ VpeElementMapping elementMapping = getElmentMapping(pageContext,
+ visualNode);
+
+ if (elementMapping == null || elementMapping.getData() == null) {
+ return false;
+ }
+
+ Object data = elementMapping.getData();
+
+ // if node editable
+ if (isNodeEditable(pageContext, visualNode, data)) {
+
+ // get source node
+ Node node = getSourceNode(pageContext, visualNode, data);
+
+ if (node == null)
+ return false;
+
+ // get focus and anchor offsets
+ int focusOffset = selection.getFocusOffset();
+
+ if (focusOffset != 0) {
+ setSourceNodeSelection(pageContext, node, focusOffset - 1, 0);
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Default handling of a pressing the "enter" event - always return false.
+ *
+ * Override to handling of a pressing the "enter" event
+ *
+ * @param pageContext -
+ * context of vpe
+ * @param keyEvent -
+ * event
+ * @return whether handled event
+ */
+ protected boolean handleEnter(VpePageContext pageContext,
+ nsIDOMKeyEvent keyEvent) {
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.tools.vpe.editor.template.VpeTemplateNodesManager#getSourceNode(org.jboss.tools.vpe.editor.context.VpePageContext,
+ * org.mozilla.interfaces.nsIDOMNode)
+ */public Node getSourceNode(VpePageContext pageContext,
+ nsIDOMNode visualNode, Object data) {
+
+ if ((data != null) && (data instanceof List)) {
+
+ List<VpeNodeMapping> attributesMapping = (List<VpeNodeMapping>) data;
+
+ for (VpeNodeMapping mapping : attributesMapping) {
+
+ if (mapping.getVisualNode().equals(visualNode))
+ return mapping.getSourceNode();
+
+ }
+
+ }
+ return null;
+ }
+
+ public nsIDOMNode getVisualNode(VpePageContext pageContext, Node node,
+ Object data) {
+ if ((data != null) && (data instanceof List)) {
+
+ List<VpeNodeMapping> attributesMapping = (List<VpeNodeMapping>) data;
+ for (VpeNodeMapping mapping : attributesMapping) {
+ if (mapping.getSourceNode().equals(node))
+ return (nsIDOMText) mapping.getVisualNode();
+ }
+ }
+ return null;
+ }
+
+ public boolean isNodeEditable(VpePageContext pageContext,
+ nsIDOMNode visualNode, Object data) {
+
+ if ((data != null) && (data instanceof List)) {
+
+ List<VpeNodeMapping> attributesMapping = (List<VpeNodeMapping>) data;
+
+ for (VpeNodeMapping mapping : attributesMapping) {
+
+ if (mapping.getVisualNode().equals(visualNode))
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.tools.vpe.editor.template.VpeTemplateNodesManager#setSourceNodeSelection(org.jboss.tools.vpe.editor.context.VpePageContext,
+ * org.w3c.dom.Node, int, int)
+ */
+ public void setSourceNodeSelection(VpePageContext pageContext, Node node,
+ int offset, int length) {
+
+ int start = getStartOffsetNode(node) + 1;
+
+ pageContext.getSourceBuilder().getStructuredTextViewer()
+ .setSelectedRange(start + offset, length);
+ pageContext.getSourceBuilder().getStructuredTextViewer().revealRange(
+ start + offset, length);
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.tools.vpe.editor.template.VpeTemplateNodesManager#getFocusedNode(org.w3c.dom.Node,
+ * int)
+ */
+ public Node getFocusedNode(Node sourceNode, int offset, Object data) {
+
+ if ((data != null) && (data instanceof List)) {
+
+ List<VpeNodeMapping> attributesMapping = (List<VpeNodeMapping>) data;
+
+ for (VpeNodeMapping mapping : attributesMapping) {
+
+ if ((offset > getStartOffsetNode(mapping.getSourceNode()))
+ && (offset < getEndOffsetNode(mapping.getSourceNode())))
+ return mapping.getSourceNode();
+ }
+ }
+
+ return sourceNode;
+ }
+
+ /**
+ * get start offset of node
+ *
+ * @param node
+ * @return
+ */
+ private int getStartOffsetNode(Node node) {
+
+ if (node instanceof IDOMAttr) {
+ return ((IDOMAttr) node).getValueRegionStartOffset();
+ } else if (node instanceof IndexedRegion) {
+ return ((IndexedRegion) node).getStartOffset();
+ }
+ return 0;
+ }
+
+ /**
+ * get end offset of node
+ *
+ * @param node
+ * @return
+ */
+ private int getEndOffsetNode(Node node) {
+
+ if (node instanceof IndexedRegion) {
+ return ((IndexedRegion) node).getEndOffset();
+ }
+ return 0;
+ }
+
+ public boolean openBundle(VpePageContext pageContext,
+ nsIDOMNode visualNode, Object data) {
+
+ Node node = getSourceNode(pageContext, visualNode, data);
+
+ // so as nsIDOMMouseEvent doesn't give simple selected nsIDOMText as
+ // target, but nsiSelection can give simple "text"
+ // TODO may be, there is a better way to get selected simple nsIDOMText
+ if (node == null) {
+
+ // get selection
+ nsISelection selection = pageContext.getEditPart().getController()
+ .getXulRunnerEditor().getSelection();
+
+ // get visual node which is focused
+ nsIDOMNode tempNode = selection.getFocusNode();
+
+ node = getSourceNode(pageContext, tempNode, data);
+
+ }
+
+ if (node == null)
+ return false;
+
+ return pageContext.getBundle().openBundle(node.getNodeValue(),
+ getPageLocale(pageContext, node));
+
+ }
+
+ /**
+ *
+ * @param pageContext
+ * @param sourceElement
+ * @return
+ */
+ private String getPageLocale(VpePageContext pageContext, Node sourceNode) {
+
+ while (sourceNode != null) {
+
+ if (VIEW_TAGNAME.equals(sourceNode.getLocalName())) {
+ break;
+ }
+ sourceNode = sourceNode.getParentNode();
+ }
+
+ if ((sourceNode == null) || !(sourceNode instanceof Element)
+ || !(((Element) sourceNode).hasAttribute(LOCALE_ATTRNAME)))
+ return null;
+
+ String locale = ((Element) sourceNode).getAttribute(LOCALE_ATTRNAME);
+
+ return locale;
+
+ }
+
+ private VpeElementMapping getElmentMapping(VpePageContext pageContext,
+ nsIDOMNode node) {
+
+ return pageContext.getDomMapping().getNearElementMapping(node);
+
+ }
+}
Added: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateKeyEventHandler.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateKeyEventHandler.java (rev 0)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateKeyEventHandler.java 2008-02-26 07:37:32 UTC (rev 6568)
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.vpe.editor.template;
+
+import org.jboss.tools.vpe.editor.context.VpePageContext;
+import org.mozilla.interfaces.nsIDOMKeyEvent;
+
+/**
+ * interface for handling of keyEvent by himself template
+ *
+ * @author Sergey Dzmitrovich
+ *
+ */
+public interface VpeTemplateKeyEventHandler {
+
+ /**
+ * handle keyEvent
+ *
+ * @param pageContext
+ * @param keyEvent -
+ * happens when element of current template is selected and
+ * is pressed key
+ * @return
+ */
+ boolean handleKeyPress(VpePageContext pageContext, nsIDOMKeyEvent keyEvent);
+
+}
Added: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateNodesManager.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateNodesManager.java (rev 0)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateNodesManager.java 2008-02-26 07:37:32 UTC (rev 6568)
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.vpe.editor.template;
+
+import org.jboss.tools.vpe.editor.context.VpePageContext;
+import org.mozilla.interfaces.nsIDOMNode;
+import org.w3c.dom.Node;
+
+/**
+ * Interface for editing of attributes of a template
+ *
+ * @author Sergey Dzmitrovich
+ *
+ */
+public interface VpeTemplateNodesManager {
+
+ /**
+ * @param pageContext -
+ * context of vpe
+ * @param visualNode -
+ * selected visual node
+ *
+ * @return true if selected attribute is editable
+ */
+ public boolean isNodeEditable(VpePageContext pageContext,
+ nsIDOMNode visualNode, Object data);
+
+ /**
+ * set attribute in sourceEditor
+ *
+ * @param pageContext -
+ * context of vpe
+ * @param attr -
+ * attribute
+ * @param focusOffset -
+ * focus offset
+ * @param length -
+ * length of selection
+ *
+ */
+ public void setSourceNodeSelection(VpePageContext pageContext, Node node,
+ int focusOffset, int length);
+
+ /**
+ * get visual element of attribute from source element
+ *
+ * @param pageContext
+ * @param attr
+ * @param data
+ * @return
+ */
+ public nsIDOMNode getVisualNode(VpePageContext pageContext, Node node,
+ Object data);
+
+ /**
+ * get source element of attribute from visual element
+ *
+ * @param pageContext
+ * @param visualNode
+ * @param data
+ * @return
+ */
+ public Node getSourceNode(VpePageContext pageContext,
+ nsIDOMNode visualNode, Object data);
+
+ /**
+ * get sourceNode by offset
+ *
+ * @param sourceNode
+ * @param offset
+ * @return
+ */
+ public Node getFocusedNode(Node sourceNode, int offset, Object data);
+
+ /**
+ * open bundle
+ *
+ * @param pageContext
+ * @param visualNod
+ * @return
+ */
+ boolean openBundle(VpePageContext pageContext, nsIDOMNode visualNode, Object data);
+}
17 years, 7 months
JBoss Tools SVN: r6567 - in trunk/core: plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb and 5 other directories.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-02-25 21:51:01 -0500 (Mon, 25 Feb 2008)
New Revision: 6567
Added:
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/AbsoluteSchemaFailure.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/AttributeSchemaFailure.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectAction.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectFileset.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectFolder.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectPackage.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectProperties.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetDir.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetExcludes.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetFlattened.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetInWorkspace.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetIncludes.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFolderName.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageDir.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageExploded.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageID.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageInWorkspace.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageName.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageType.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPropertiesName.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPropertiesValue.xml
trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/xb/ValidationTest.java
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb/XMLBinding.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/xml/packages.xsd
trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/ArchivesTestSuite.java
trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/xb/MarshallUnmarshallTest.java
Log:
Unit Tests for xml validation
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java 2008-02-25 22:59:09 UTC (rev 6566)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java 2008-02-26 02:51:01 UTC (rev 6567)
@@ -23,6 +23,7 @@
import java.io.FileInputStream;
import java.io.FileNotFoundException;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -228,6 +229,7 @@
ArchivesCore.getInstance().preRegisterProject(project);
ArchiveModelNode root;
+ Exception e = null;
IPath packagesFile = project.append(PROJECT_PACKAGES_FILE);
if (packagesFile.toFile().exists()) {
XbPackages packages = null;
@@ -235,15 +237,18 @@
FileInputStream is = new FileInputStream(packagesFile.toFile());
packages = XMLBinding.unmarshal(is, monitor);
monitor.worked(1);
- } catch (FileNotFoundException e) {
+ } catch (FileNotFoundException f) {
+ e = f;
} catch( XbException xbe) {
+ e = xbe;
}
if (packages == null) {
// Empty / non-working XML file loaded
- ArchivesCore.getInstance().getLogger().log(IArchivesLogger.MSG_ERR, "Could not unmarshall packages file", null);
+ ArchivesCore.getInstance().getLogger().log(IArchivesLogger.MSG_ERR, "Could not unmarshall packages file", e);
return;
}
+
root = new ArchiveModelNode(project, packages, this);
ArchiveModelNode oldRoot = archivesRoot.get(project);
xbPackages.put(project, packages);
@@ -321,22 +326,25 @@
IPath packagesFile = project.append(ArchivesModel.PROJECT_PACKAGES_FILE);
XbPackages packs = getXbPackages(project);
-
- XMLBinding.marshallToFile(packs, packagesFile, monitor);
+ try {
+ XMLBinding.marshallToFile(packs, packagesFile, monitor);
+ } catch( IOException ioe ) {
+ ArchivesCore.getInstance().getLogger().log(IArchivesLogger.MSG_ERR, "Could not marshall packages file", ioe);
+ return;
+ } catch( XbException xbe ) {
+ ArchivesCore.getInstance().getLogger().log(IArchivesLogger.MSG_ERR, "Could not marshall packages file", xbe);
+ return;
+ }
// get deltas
- try {
- ArchiveModelNode root = (ArchiveModelNode)getRoot(project);
- IArchiveNodeDelta delta = root.getDelta();
-
- // clear deltas
- root.clearDeltas();
-
- // fire delta events
- EventManager.fireDelta(delta);
- } catch( Exception e ) {
- e.printStackTrace();
- }
+ ArchiveModelNode root = (ArchiveModelNode)getRoot(project);
+ IArchiveNodeDelta delta = root.getDelta();
+
+ // clear deltas
+ root.clearDeltas();
+
+ // fire delta events
+ EventManager.fireDelta(delta);
}
public void attach(IArchiveNode parent, IArchiveNode child, IProgressMonitor monitor) {
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb/XMLBinding.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb/XMLBinding.java 2008-02-25 22:59:09 UTC (rev 6566)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb/XMLBinding.java 2008-02-26 02:51:01 UTC (rev 6567)
@@ -52,7 +52,7 @@
* This class is responsible for binding some xml file to it's proper
* objects. In short, it marshalls and unmarshalls the data.
* @author Marshall
- *
+ * @author Rob Stryker
*/
public class XMLBinding {
@@ -74,7 +74,6 @@
try {
InputStream stream = schema.openStream();
binding = XsdBinder.bind(stream, "UTF-8", null);
-
stream.close();
initialized = true;
} catch (IOException e) {
@@ -111,7 +110,7 @@
try {
Unmarshaller unmarshaller = UnmarshallerFactory.newInstance().newUnmarshaller();
monitor.worked(1);
-
+ binding.setStrictSchema(true);
Object xmlObject = unmarshaller.unmarshal(in, binding);
monitor.worked(1);
@@ -138,17 +137,20 @@
return null;
}
- public static void marshallToFile(XbPackages element, IPath filePath, IProgressMonitor monitor) {
+ public static void marshallToFile(XbPackages element, IPath filePath, IProgressMonitor monitor) throws XbException, IOException {
OutputStreamWriter writer = null;
try {
writer = new OutputStreamWriter(new FileOutputStream(filePath.toFile()));
XMLBinding.marshall(element, writer, monitor);
- } catch( Exception e ) {
+ } catch( XbException xbe ) {
+ throw xbe;
+ } catch( IOException ioe ) {
+ throw ioe;
}
finally {
try {
- if( writer != null ) writer.close();
- } catch( IOException ioe) {}
+ if( writer != null ) writer.close();
+ } catch( IOException ioe) {throw ioe;}
}
}
@@ -218,5 +220,8 @@
public Exception getException() {
return parent;
}
+ public String getMessage() {
+ return parent.getCause() == null ? null : parent.getCause().getMessage();
+ }
}
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/xml/packages.xsd
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/xml/packages.xsd 2008-02-25 22:59:09 UTC (rev 6566)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/xml/packages.xsd 2008-02-26 02:51:01 UTC (rev 6567)
@@ -59,7 +59,7 @@
type="properties-type" />
</xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="optional" />
+ <xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="type" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:appinfo>
@@ -67,16 +67,15 @@
</xsd:appinfo>
</xsd:annotation>
</xsd:attribute>
- <xsd:attribute name="todir" type="xsd:string" use="optional">
+ <xsd:attribute name="todir" type="xsd:string" use="required">
<xsd:annotation>
<xsd:appinfo>
<jbxb:property name="toDir" />
</xsd:appinfo>
</xsd:annotation>
</xsd:attribute>
- <xsd:attribute default="false" name="exploded"
- type="xsd:boolean" use="optional" />
- <xsd:attribute name="inWorkspace" type="xsd:boolean" use="optional" default="true"></xsd:attribute>
+ <xsd:attribute name="exploded" type="xsd:boolean" use="optional" default="false"/>
+ <xsd:attribute name="inWorkspace" type="xsd:boolean" use="optional" default="true"/>
<xsd:attribute name="id" type="xsd:string" use="optional" />
</xsd:complexType>
@@ -118,7 +117,10 @@
<xsd:element maxOccurs="1" minOccurs="0" name="properties" type="properties-type"/>
</xsd:sequence>
+ <!-- Pre / post build -->
<xsd:attribute name="time" type="xsd:string" use="required"/>
+
+ <!-- Action key / path. (example: ant) format TBD -->
<xsd:attribute name="type" type="xsd:string" use="required"/>
</xsd:complexType>
@@ -128,7 +130,7 @@
<xsd:appinfo>
<jbxb:class impl="org.jboss.ide.eclipse.archives.core.model.internal.xb.XbFolder"/>
<jbxb:addMethod name="addChild"/>
- </xsd:appinfo>
+ </xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/AbsoluteSchemaFailure.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/AbsoluteSchemaFailure.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/AbsoluteSchemaFailure.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Should Fail to validate -->
+
+<packages>
+ <properties>
+ <property33>
+ </property33>
+ </properties>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/AttributeSchemaFailure.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/AttributeSchemaFailure.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/AttributeSchemaFailure.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Should Fail to validate -->
+
+<packages>
+ <properties>
+ <property brokenAttribute="yes"/>
+ </properties>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectAction.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectAction.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectAction.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packages>
+ <package name="TestProject.jar" type="jar" todir="/some/external/path" exploded="false" inWorkspace="false" id="someId">
+ <buildAction time="preBuild" type="ant">
+ <properties>
+ <property name="name" value="value"/>
+ </properties>
+ </buildAction>
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectFileset.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectFileset.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectFileset.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packages>
+ <package name="TestProject.jar" type="jar" todir="/some/external/path" exploded="false" inWorkspace="false" id="someId">
+ <fileset dir="/some/global/path" includes="**/*.xml" inWorkspace="false" excludes="" flattened="false">
+ <properties></properties>
+ </fileset>
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectFolder.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectFolder.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectFolder.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Should Fail to validate -->
+
+<packages>
+ <package name="TestProject.jar" type="jar" todir="/some/external/path" exploded="false" inWorkspace="false" id="someId">
+ <folder name="folder">
+ <properties></properties>
+ </folder>
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectPackage.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectPackage.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectPackage.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Should Fail to validate -->
+
+<packages>
+ <package name="TestProject.jar" type="jar" todir="/some/external/path" exploded="false" inWorkspace="false" id="someId">
+ <folder>
+ <properties></properties>
+ </folder>
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectProperties.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectProperties.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/CorrectProperties.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Should Fail to validate -->
+
+<packages>
+ <properties>
+ <property name="name1" value="value1"/>
+ </properties>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetDir.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetDir.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetDir.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packages>
+ <package name="TestProject.jar" type="jar" todir="/some/external/path" exploded="false" inWorkspace="false" id="someId">
+ <fileset dir="/some/global/path" includes="**/*.xml" inWorkspace="false" excludes="" flattened="false">
+ <properties></properties>
+ </fileset>
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetExcludes.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetExcludes.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetExcludes.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packages>
+ <package name="TestProject.jar" type="jar" todir="/some/external/path" exploded="false" inWorkspace="false" id="someId">
+ <fileset dir="/some/global/path" includes="**/*.xml" inWorkspace="false" flattened="false">
+ <properties></properties>
+ </fileset>
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetFlattened.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetFlattened.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetFlattened.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packages>
+ <package name="TestProject.jar" type="jar" todir="/some/external/path" exploded="false" inWorkspace="false" id="someId">
+ <fileset dir="/some/global/path" includes="**/*.xml" inWorkspace="false" excludes="">
+ <properties></properties>
+ </fileset>
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetInWorkspace.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetInWorkspace.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetInWorkspace.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packages>
+ <package name="TestProject.jar" type="jar" todir="/some/external/path" exploded="false" inWorkspace="false" id="someId">
+ <fileset dir="/some/global/path" includes="**/*.xml" excludes="" flattened="false">
+ <properties></properties>
+ </fileset>
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetIncludes.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetIncludes.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFilesetIncludes.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packages>
+ <package name="TestProject.jar" type="jar" todir="/some/external/path" exploded="false" inWorkspace="false" id="someId">
+ <fileset dir="/some/global/path" inWorkspace="false" excludes="" flattened="false">
+ <properties></properties>
+ </fileset>
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFolderName.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFolderName.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingFolderName.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Should Fail to validate -->
+
+<packages>
+ <package name="TestProject.jar" type="jar" todir="/some/external/path" exploded="false" inWorkspace="false" id="someId">
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageDir.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageDir.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageDir.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Should Fail to validate -->
+
+<packages>
+ <package name="TestProject.jar" type="jar" exploded="false" inWorkspace="false" id="someId">
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageExploded.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageExploded.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageExploded.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Should Fail to validate -->
+
+<packages>
+ <package name="TestProject.jar" type="jar" todir="/some/external/path" inWorkspace="false" id="someId">
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageID.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageID.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageID.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Should Fail to validate -->
+
+<packages>
+ <package name="TestProject.jar" type="jar" todir="/some/external/path" exploded="false" inWorkspace="false">
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageInWorkspace.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageInWorkspace.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageInWorkspace.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Should Fail to validate -->
+
+<packages>
+ <package name="TestProject.jar" type="jar" todir="/some/external/path" exploded="false" id="someId">
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageName.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageName.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageName.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Should Fail to validate -->
+
+<packages>
+ <package type="jar" todir="/some/external/path" exploded="false" inWorkspace="false" id="someId">
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageType.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageType.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPackageType.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Should Fail to validate -->
+
+<packages>
+ <package name="TestProject.jar" todir="/some/external/path" exploded="false" inWorkspace="false" id="someId">
+ </package>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPropertiesName.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPropertiesName.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPropertiesName.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Should Fail to validate -->
+
+<packages>
+ <properties>
+ <property value="value1"/>
+ </properties>
+</packages>
\ No newline at end of file
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPropertiesValue.xml
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPropertiesValue.xml (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/inputs/archiveDescriptors/validation/MissingPropertiesValue.xml 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Should Fail to validate -->
+
+<packages>
+ <properties>
+ <property name="name1"/>
+ </properties>
+</packages>
\ No newline at end of file
Modified: trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/ArchivesTestSuite.java
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/ArchivesTestSuite.java 2008-02-25 22:59:09 UTC (rev 6566)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/ArchivesTestSuite.java 2008-02-26 02:51:01 UTC (rev 6567)
@@ -2,6 +2,7 @@
import org.jboss.ide.eclipse.archives.test.util.TruezipUtilTest;
import org.jboss.ide.eclipse.archives.test.xb.MarshallUnmarshallTest;
+import org.jboss.ide.eclipse.archives.test.xb.ValidationTest;
import junit.framework.Test;
import junit.framework.TestSuite;
@@ -9,9 +10,9 @@
public class ArchivesTestSuite extends TestSuite {
public static Test suite() {
TestSuite suite = new TestSuite("Archives Tests");
-
+ suite.addTestSuite(MarshallUnmarshallTest.class);
+ suite.addTestSuite(ValidationTest.class);
suite.addTestSuite(TruezipUtilTest.class);
- suite.addTestSuite(MarshallUnmarshallTest.class);
suite.addTestSuite(ModelUtilTest.class);
return suite;
Modified: trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/xb/MarshallUnmarshallTest.java
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/xb/MarshallUnmarshallTest.java 2008-02-25 22:59:09 UTC (rev 6566)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/xb/MarshallUnmarshallTest.java 2008-02-26 02:51:01 UTC (rev 6567)
@@ -43,25 +43,21 @@
}
public void testUnmarshall() {
- // unmarshall from file
FileInputStream fis = null;
try {
+ // unmarshall from file
fis = new FileInputStream(archiveDescriptors.append("descriptor1.xml").toFile());
- } catch( Exception e ) {
- fail(e.getMessage());
- }
- XbPackages packs = XMLBinding.unmarshal(fis, new NullProgressMonitor());
- assertDescriptor1Accurate(packs);
-
- // unmarshall from string
- try {
+ XbPackages packs = XMLBinding.unmarshal(fis, new NullProgressMonitor());
+ assertDescriptor1Accurate(packs);
+
+ // unmarshall from string
String content = fileAsString(archiveDescriptors.append("descriptor1.xml").toFile());
packs = XMLBinding.unmarshal(content, new NullProgressMonitor());
assertDescriptor1Accurate(packs);
+
} catch( Exception e ) {
fail(e.getMessage());
}
-
}
public String fileAsString(File f) throws Exception {
@@ -75,58 +71,57 @@
public void testMarshall() {
IPath tmpFolder = bundlePath.append("tmp");
- XbPackages packs = new XbPackages();
- XbPackage pack1 = new XbPackage();
- pack1.setName("TestProject.jar");
- pack1.setPackageType("jar");
- pack1.setToDir("/some/external/path");
- pack1.setExploded(false);
- pack1.setInWorkspace(false);
- packs.addChild(pack1);
+ XbPackages packs = new XbPackages();
+ XbPackage pack1 = new XbPackage();
+ pack1.setName("TestProject.jar");
+ pack1.setPackageType("jar");
+ pack1.setToDir("/some/external/path");
+ pack1.setExploded(false);
+ pack1.setInWorkspace(false);
+ packs.addChild(pack1);
- XbPackage pack2 = new XbPackage();
- pack2.setName("TestProject2.jar");
- pack2.setPackageType("jar");
- pack2.setToDir("/SomeProject");
- pack2.setExploded(true);
- pack2.setInWorkspace(true);
- packs.addChild(pack2);
+ XbPackage pack2 = new XbPackage();
+ pack2.setName("TestProject2.jar");
+ pack2.setPackageType("jar");
+ pack2.setToDir("/SomeProject");
+ pack2.setExploded(true);
+ pack2.setInWorkspace(true);
+ packs.addChild(pack2);
- XbFolder folder1 = new XbFolder();
- folder1.setName("folder");
- pack1.addChild(folder1);
-
- XbFolder folder2 = new XbFolder();
- folder2.setName("folder2");
- pack1.addChild(folder2);
-
- XbFolder inner1 = new XbFolder();
- inner1.setName("inner1");
- folder2.addChild(inner1);
-
- XbFileSet fs = new XbFileSet();
- fs.setDir("/some/global/path");
- fs.setIncludes("**/*.xml");
- fs.setInWorkspace(false);
- inner1.addChild(fs);
-
- assertDescriptor1Accurate(packs);
+ XbFolder folder1 = new XbFolder();
+ folder1.setName("folder");
+ pack1.addChild(folder1);
+
+ XbFolder folder2 = new XbFolder();
+ folder2.setName("folder2");
+ pack1.addChild(folder2);
+
+ XbFolder inner1 = new XbFolder();
+ inner1.setName("inner1");
+ folder2.addChild(inner1);
+
+ XbFileSet fs = new XbFileSet();
+ fs.setDir("/some/global/path");
+ fs.setIncludes("**/*.xml");
+ fs.setInWorkspace(false);
+ inner1.addChild(fs);
+
+ assertDescriptor1Accurate(packs);
+ try {
String packsAsString = XMLBinding.serializePackages(packs, new NullProgressMonitor());
XbPackages packsFromString = XMLBinding.unmarshal(packsAsString, new NullProgressMonitor());
assertDescriptor1Accurate(packsFromString);
- try {
- OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(tmpFolder.append("marshallTest.xml").toFile()));
- XMLBinding.marshall(packs, writer, new NullProgressMonitor());
- writer.close();
-
- XbPackages packsFromFile = XMLBinding.unmarshal(new FileInputStream(tmpFolder.append("marshallTest.xml").toFile()), new NullProgressMonitor());
- assertDescriptor1Accurate(packsFromFile);
- } catch(Exception e) {
- fail(e.getMessage());
- }
-
+ OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(tmpFolder.append("marshallTest.xml").toFile()));
+ XMLBinding.marshall(packs, writer, new NullProgressMonitor());
+ writer.close();
+
+ XbPackages packsFromFile = XMLBinding.unmarshal(new FileInputStream(tmpFolder.append("marshallTest.xml").toFile()), new NullProgressMonitor());
+ assertDescriptor1Accurate(packsFromFile);
+ } catch(Exception e) {
+ fail(e.getMessage());
+ }
}
void assertDescriptor1Accurate(XbPackages packs) {
Added: trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/xb/ValidationTest.java
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/xb/ValidationTest.java (rev 0)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/xb/ValidationTest.java 2008-02-26 02:51:01 UTC (rev 6567)
@@ -0,0 +1,225 @@
+/**
+ * JBoss, a Division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+* This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ide.eclipse.archives.test.xb;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbFileSet;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackage;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackages;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
+import org.jboss.ide.eclipse.archives.test.ArchivesTest;
+import org.jboss.ide.eclipse.archives.test.util.FileIOUtil;
+import org.osgi.framework.Bundle;
+
+/**
+ * Tests whether the xml files can be validated
+ *
+ * @author rob.stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ValidationTest extends TestCase {
+ private Bundle bundle;
+ private IPath bundlePath;
+ private IPath archiveDescriptors;
+ protected void setUp() {
+ if( bundlePath == null ) {
+ try {
+ bundle = ArchivesTest.getDefault().getBundle();
+ URL bundleURL = FileLocator.toFileURL(bundle.getEntry(""));
+ bundlePath = new Path(bundleURL.getFile());
+ archiveDescriptors = bundlePath.append("inputs").append("archiveDescriptors").append("validation");
+ } catch( IOException ioe) {
+ fail("Failed to set up " + getClass().getName());
+ }
+ }
+ }
+
+ public void tearDown() {
+ FileIOUtil.clearFolder(bundlePath.append("tmp").toFile().listFiles());
+ }
+
+ /*
+ * The tests
+ */
+
+ public void testAbsoluteSchemaFailure() {
+ parse("AbsoluteSchemaFailure.xml", false, "Broken schema successfully parsed.");
+ }
+
+ public void testAttributeSchemaFailure() {
+ parse("AttributeSchemaFailure.xml", false, "Schema with random attribute successfully parsed.");
+ }
+
+
+ public void testCorrectPackage() {
+ parse("CorrectPackage.xml", true, shouldParse("CorrectPackage.xml"));
+ }
+
+ public void testPackageMissingPackageName() {
+ parse("MissingPackageName.xml", false, failedMissingRequiredAtt("name"));
+ }
+
+ public void testPackageMissingDirectory() {
+ parse("MissingPackageDir.xml", false, failedMissingRequiredAtt("todir"));
+ }
+
+ public void testPackageMissingType() {
+ parse("MissingPackageType.xml", true, failedFalsePositiveRequiredAtt("type"));
+ }
+
+ public void testPackageMissingExploded() {
+ XbPackages packs = parse("MissingPackageExploded.xml", true, failedFalsePositiveRequiredAtt("exploded"));
+ XbPackage pack = (XbPackage)packs.getAllChildren().get(0);
+ assertFalse(pack.isExploded());
+ }
+
+ public void testPackageMissingInWorkspace() {
+ XbPackages packs = parse("MissingPackageInWorkspace.xml", true, failedFalsePositiveRequiredAtt("inWorkspace"));
+ XbPackage pack = (XbPackage)packs.getAllChildren().get(0);
+ assertTrue(pack.isInWorkspace());
+ }
+
+ public void testPackageMissingId() {
+ XbPackages packs = parse("MissingPackageID.xml", true, failedMissingRequiredAtt("id"));
+ XbPackage pack = (XbPackage)packs.getAllChildren().get(0);
+ assertNull(pack.getId());
+ }
+
+ public void testCorrectFolder() {
+ parse("CorrectFolder.xml", true, shouldParse("CorrectFolder.xml"));
+ }
+
+ public void testFolderMissingName() {
+ parse("MissingFolderName.xml", false, failedMissingRequiredAtt("name"));
+ }
+
+ public void testCorrectProperties() {
+ parse("CorrectProperties.xml", true, shouldParse("CorrectProperties.xml"));
+ }
+
+ public void testPropertiesMissingKey() {
+ parse("MissingPropertiesName.xml", false, failedMissingRequiredAtt("name"));
+ }
+
+ public void testPropertiesMissingValue() {
+ parse("MissingPropertiesValue.xml", false, failedMissingRequiredAtt("value"));
+ }
+
+
+ public void testCorrectFileset() {
+ parse("CorrectFileset.xml", true, shouldParse("CorrectFileset.xml"));
+ }
+
+ public void testFilesetMissingDir() {
+ parse("MissingFilesetDir.xml", false, failedMissingRequiredAtt("todir"));
+ }
+
+ public void testFilesetMissingIncludes() {
+ parse("MissingFilesetIncludes.xml", false, failedMissingRequiredAtt("includes"));
+ }
+
+ public void testFilesetMissingExcludes() {
+ XbPackages packs = parse("MissingFilesetExcludes.xml", true, failedFalsePositiveRequiredAtt("excludes"));
+ // no default
+ }
+
+ public void testFilesetMissingInWorkspace() {
+ XbPackages packs = parse("MissingFilesetInWorkspace.xml", true, failedFalsePositiveRequiredAtt("inWorkspace"));
+ // no default
+ XbPackage pack = (XbPackage)packs.getAllChildren().get(0);
+ List l = pack.getChildren(XbFileSet.class);
+ assertNotNull(l);
+ assertEquals(1, l.size());
+ XbFileSet fs = (XbFileSet)l.get(0);
+ assertTrue(fs.isInWorkspace());
+ }
+
+ public void testFilesetMissingFlattened() {
+ XbPackages packs = parse("MissingFilesetFlattened.xml", true, failedFalsePositiveRequiredAtt("flattened"));
+ // no default
+ XbPackage pack = (XbPackage)packs.getAllChildren().get(0);
+ List l = pack.getChildren(XbFileSet.class);
+ assertNotNull(l);
+ assertEquals(1, l.size());
+ XbFileSet fs = (XbFileSet)l.get(0);
+ assertFalse(fs.isFlattened());
+ }
+
+
+ public void testCorrectAction() {
+ parse("CorrectAction.xml", true, shouldParse("CorrectAction.xml"));
+ }
+
+ public void testActionMissingTime() {
+ parse("MissingActionTime.xml", false, failedMissingRequiredAtt("time"));
+ }
+
+ public void testActionMissingType() {
+ parse("MissingActionType.xml", false, failedMissingRequiredAtt("type"));
+ }
+
+
+ /*
+ * Utility
+ */
+
+ protected XbPackages parse(String file, boolean shouldSucceed, String failMsg) {
+ FileInputStream fis = null;
+ XbPackages packs = null;
+ try {
+ fis = new FileInputStream(archiveDescriptors.append(file).toFile());
+ packs = XMLBinding.unmarshal(fis, new NullProgressMonitor());
+ } catch( IOException ioe ) {
+ fail(ioe.getMessage());
+ } catch( XbException e ) {
+ if( shouldSucceed )
+ fail(failMsg + " - " + e.getMessage());
+ return packs;
+ }
+ if( !shouldSucceed )
+ fail(failMsg);
+ return packs;
+ }
+
+ protected String failedMissingRequiredAtt(String att) {
+ return "File parsed while missing a required attribute: " + att;
+ }
+
+ protected String failedFalsePositiveRequiredAtt(String attribute) {
+ return "File failed to parse even though \"" + attribute + "\" is not required";
+ }
+
+ protected String shouldParse(String file) {
+ return file + " should parse correctly.";
+ }
+}
17 years, 7 months
JBoss Tools SVN: r6566 - in trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model: internal/xb and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-02-25 17:59:09 -0500 (Mon, 25 Feb 2008)
New Revision: 6566
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb/XMLBinding.java
Log:
API should throw exceptions when parsing has failed.
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java 2008-02-25 22:16:15 UTC (rev 6565)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java 2008-02-25 22:59:09 UTC (rev 6566)
@@ -45,6 +45,7 @@
import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackage;
import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackageNode;
import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackages;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
/**
* The root model which keeps track of registered projects
@@ -228,29 +229,29 @@
ArchiveModelNode root;
IPath packagesFile = project.append(PROJECT_PACKAGES_FILE);
- if (packagesFile.toFile().exists())
- {
+ if (packagesFile.toFile().exists()) {
+ XbPackages packages = null;
try {
FileInputStream is = new FileInputStream(packagesFile.toFile());
- XbPackages packages = XMLBinding.unmarshal(is, monitor);
+ packages = XMLBinding.unmarshal(is, monitor);
monitor.worked(1);
-
- if (packages == null) {
- // Empty / non-working XML file loaded
- ArchivesCore.getInstance().getLogger().log(IStatus.WARNING, "Could not unmarshall packages file", null);
- return;
- }
- root = new ArchiveModelNode(project, packages, this);
- ArchiveModelNode oldRoot = archivesRoot.get(project);
- xbPackages.put(project, packages);
- archivesRoot.put(project, root);
- createPackageNodeImpl(project, packages, null);
- root.clearDeltas();
- fireRegisterProjectEvent(oldRoot, root);
- monitor.worked(1);
} catch (FileNotFoundException e) {
- ArchivesCore.getInstance().getLogger().log(IStatus.WARNING, e.getMessage(), e);
+ } catch( XbException xbe) {
}
+
+ if (packages == null) {
+ // Empty / non-working XML file loaded
+ ArchivesCore.getInstance().getLogger().log(IArchivesLogger.MSG_ERR, "Could not unmarshall packages file", null);
+ return;
+ }
+ root = new ArchiveModelNode(project, packages, this);
+ ArchiveModelNode oldRoot = archivesRoot.get(project);
+ xbPackages.put(project, packages);
+ archivesRoot.put(project, root);
+ createPackageNodeImpl(project, packages, null);
+ root.clearDeltas();
+ fireRegisterProjectEvent(oldRoot, root);
+ monitor.worked(1);
} else {
// file not found, just create some default xbpackages and insert them
XbPackages packages = new XbPackages();
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb/XMLBinding.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb/XMLBinding.java 2008-02-25 22:16:15 UTC (rev 6565)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb/XMLBinding.java 2008-02-25 22:59:09 UTC (rev 6566)
@@ -36,9 +36,9 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
import org.jboss.ide.eclipse.archives.core.ArchivesCore;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
+import org.jboss.ide.eclipse.archives.core.model.IArchivesLogger;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveImpl;
import org.jboss.xb.binding.JBossXBException;
import org.jboss.xb.binding.Unmarshaller;
@@ -78,32 +78,36 @@
stream.close();
initialized = true;
} catch (IOException e) {
- ArchivesCore.getInstance().getLogger().log(IStatus.WARNING, e.getMessage(), e);
+ ArchivesCore.getInstance().getLogger().log(IArchivesLogger.MSG_ERR, e.getMessage(), e);
}
}
- private static void binderSandbox (Runnable runnable)
- {
+ private static void binderSandbox (XbRunnable runnable) throws XbException {
ClassLoader original = Thread.currentThread().getContextClassLoader();
ClassLoader myCL = XMLBinding.class.getClassLoader();
Thread.currentThread().setContextClassLoader(myCL);
- runnable.run();
+ XbException e = null;
+ try {
+ runnable.run();
+ } catch( XbException ex ) {
+ e = ex;
+ }
Thread.currentThread().setContextClassLoader(original);
+ if( e != null )
+ throw e;
}
- private static XbPackages element = null;
-
- public static XbPackages unmarshal( String input, IProgressMonitor monitor ) {
+ public static XbPackages unmarshal( String input, IProgressMonitor monitor ) throws XbException {
return unmarshal(new ByteArrayInputStream(input.getBytes()), monitor);
}
- public static XbPackages unmarshal (final InputStream in, final IProgressMonitor monitor)
- {
+ public static XbPackages unmarshal (final InputStream in,
+ final IProgressMonitor monitor) throws XbException {
if( !initialized) init();
- element = null;
-
- binderSandbox(new Runnable() {
- public void run () {
+ final XbPackages[] element = new XbPackages[1];
+ element[0] = null;
+ XbRunnable runnable = new XbRunnable() {
+ public void run () throws XbException {
try {
Unmarshaller unmarshaller = UnmarshallerFactory.newInstance().newUnmarshaller();
monitor.worked(1);
@@ -111,19 +115,20 @@
Object xmlObject = unmarshaller.unmarshal(in, binding);
monitor.worked(1);
- element = (XbPackages) xmlObject;
+ element[0] = (XbPackages) xmlObject;
monitor.worked(1);
} catch (JBossXBException e) {
- ArchivesCore.getInstance().getLogger().log(IStatus.WARNING, e.getMessage(), e);
+ throw new XbException(e);
}
}
- });
+ };
- return element;
+ binderSandbox(runnable);
+ return element[0];
}
- public static String marshall(IArchive topLevelArchive, IProgressMonitor monitor ) {
+ public static String marshall(IArchive topLevelArchive, IProgressMonitor monitor ) throws XbException {
if( topLevelArchive.isTopLevel() && topLevelArchive instanceof ArchiveImpl ) {
XbPackages packs = (XbPackages)((ArchiveImpl)topLevelArchive).getNodeDelegate().getParent();
StringWriter sw = new StringWriter();
@@ -147,45 +152,71 @@
}
}
- public static void marshall (final XbPackages element, final Writer writer, final IProgressMonitor monitor)
- {
+ public static void marshall (final XbPackages element, final Writer writer,
+ final IProgressMonitor monitor) throws XbException {
if( !initialized) init();
- binderSandbox(new Runnable() {
- public void run () {
+ binderSandbox(new XbRunnable() {
+ public void run () throws XbException {
+ Exception f = null;
+ InputStream stream = null;
try {
- InputStream stream = schema.openStream();
+ stream = schema.openStream();
monitor.worked(1);
XercesXsMarshaller marshaller = new XercesXsMarshaller();
marshaller.marshal(new InputStreamReader(stream), new XbPackagesObjectProvider(), element, writer);
monitor.worked(1);
- stream.close();
} catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ f = e;
} catch (SAXException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ f = e;
} catch (ParserConfigurationException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (Exception e )
- {
- e.printStackTrace();
+ f = e;
+ } catch (Exception e ) {
+ f = e;
+ } finally {
+ if( stream != null ) {
+ try {
+ stream.close();
+ } catch(IOException ioe) {}
+ }
}
+ if( f != null ) {
+ throw new XbException(f);
+ }
}
});
}
- public static String serializePackages(XbPackages packages, IProgressMonitor monitor) {
+ public static String serializePackages(XbPackages packages, IProgressMonitor monitor) throws XbException {
+ OutputStreamWriter writer = null;
try {
ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
- OutputStreamWriter writer = new OutputStreamWriter(bytesOut);
+ writer = new OutputStreamWriter(bytesOut);
XMLBinding.marshall(packages, writer, monitor);
- writer.close();
return new String(bytesOut.toByteArray());
} catch( Exception e ) {
+ throw new XbException(e);
+ } finally {
+ if( writer != null )
+ try {
+ writer.close();
+ } catch( IOException ioe) {}
}
- return null;
}
+
+
+ public static interface XbRunnable {
+ public void run() throws XbException;
+ }
+
+ public static class XbException extends Exception {
+ private Exception parent;
+ public XbException(Exception e) {
+ parent = e;
+ }
+ public Exception getException() {
+ return parent;
+ }
+ }
}
17 years, 7 months
JBoss Tools SVN: r6565 - trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/model/other/internal.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-02-25 17:16:15 -0500 (Mon, 25 Feb 2008)
New Revision: 6565
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/model/other/internal/ArchivesWorkspaceLogger.java
Log:
logger added
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/model/other/internal/ArchivesWorkspaceLogger.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/model/other/internal/ArchivesWorkspaceLogger.java 2008-02-25 22:11:31 UTC (rev 6564)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/model/other/internal/ArchivesWorkspaceLogger.java 2008-02-25 22:16:15 UTC (rev 6565)
@@ -35,8 +35,20 @@
static ILog log = Platform.getLog(Platform.getBundle(PLUGIN_ID));
- public void log(int severety, String message,Throwable ise) {
- IStatus status = new Status(severety, PLUGIN_ID, message, ise);
+ public void log(int severity, String message,Throwable t) {
+ IStatus status = new Status(convert(severity), PLUGIN_ID, message, t);
log.log(status);
}
+
+ private int convert(int severity) {
+ switch( severity ) {
+ case IArchivesLogger.MSG_ERR: return IStatus.ERROR;
+ case IArchivesLogger.MSG_INFO: return IStatus.INFO;
+ case IArchivesLogger.MSG_WARN: return IStatus.WARNING;
+ case IArchivesLogger.MSG_DEBUG:
+ case IArchivesLogger.MSG_VERBOSE:
+ default:
+ return IStatus.OK;
+ }
+ }
}
17 years, 7 months
JBoss Tools SVN: r6564 - trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/model/other/internal.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-02-25 17:11:31 -0500 (Mon, 25 Feb 2008)
New Revision: 6564
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/model/other/internal/ArchivesWorkspaceLogger.java
Log:
logger added
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/model/other/internal/ArchivesWorkspaceLogger.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/model/other/internal/ArchivesWorkspaceLogger.java 2008-02-25 22:10:52 UTC (rev 6563)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/model/other/internal/ArchivesWorkspaceLogger.java 2008-02-25 22:11:31 UTC (rev 6564)
@@ -14,6 +14,7 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
+import org.jboss.ide.eclipse.archives.core.ArchivesCore;
import org.jboss.ide.eclipse.archives.core.model.IArchivesLogger;
/**
@@ -30,7 +31,7 @@
*
* @see ArchiveCorePlugin.PLUGIN_ID
*/
- public static final String PLUGIN_ID = "org.jboss.ide.eclipse.archives.core";
+ public static final String PLUGIN_ID = ArchivesCore.PLUGIN_ID;
static ILog log = Platform.getLog(Platform.getBundle(PLUGIN_ID));
17 years, 7 months