Author: mareshkau
Date: 2008-02-07 12:37:29 -0500 (Thu, 07 Feb 2008)
New Revision: 6183
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/VpeVisualDomBuilder.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/context/VpePageContext.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeHtmlTemplate.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateManager.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/XmlUtil.java
Log:
http://jira.jboss.org/jira/browse/JBIDE-788
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-07
17:20:30 UTC (rev 6182)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2008-02-07
17:37:29 UTC (rev 6183)
@@ -472,14 +472,11 @@
}
break;
}
+ //TODO Max Areshkau JBIDE-1457
if (visualBuilder.rebuildFlag) {
// pageContext.fireTaglibsChanged();
}
- //TODO Max Areshkau JBIDE-788
-// else if (pageContext.isTaglibChanged()) {
-// visualRefreshImpl();
-//// pageContext.fireTaglibsChanged();
-// }
+
switcher.stopActiveEditor();
}
@@ -995,20 +992,19 @@
VpeElementMapping elementMapping =
(VpeElementMapping)domMapping.getNodeMapping(node);
if (elementMapping != null && elementMapping.getTemplate() != null &&
elementMapping.getTemplate().getType() == VpeHtmlTemplate.TYPE_ANY) {
final VpeTemplate selectedTemplate = elementMapping.getTemplate();
- //TODO Max Areshkau JBIDE-788 Fix That
-// manager.add(new VpeAction("Template", node) { //$NON-NLS-1$
-// public void run() {
-// boolean isCorrectNS = pageContext.isCorrectNS(actionNode);
-// VpeAnyData data = null;
-// if (isCorrectNS) {
-// data = selectedTemplate.getAnyData();
-// data.setUri(pageContext.getSourceTaglibUri(actionNode));
-// data.setName(actionNode.getNodeName());
-// }
-// data = editAnyData(sourceEditor, isCorrectNS, data);
-// if (data != null && data.isChanged())
templateManager.setAnyTemplate(data);
-// }
-// });
+ manager.add(new VpeAction("Template", node) { //$NON-NLS-1$
+ public void run() {
+ boolean isCorrectNS = pageContext.isCorrectNS(actionNode);
+ VpeAnyData data = null;
+ if (isCorrectNS) {
+ data = selectedTemplate.getAnyData();
+ data.setUri(pageContext.getSourceTaglibUri(actionNode));
+ data.setName(actionNode.getNodeName());
+ }
+ data = editAnyData(sourceEditor, isCorrectNS, data);
+ if (data != null && data.isChanged())
templateManager.setAnyTemplate(data);
+ }
+ });
manager.add(new Separator());
}
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-07
17:20:30 UTC (rev 6182)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java 2008-02-07
17:37:29 UTC (rev 6183)
@@ -113,6 +113,7 @@
private VpeDnD dnd;
private nsIDOMNode headNode;
private List includeStack;
+ //TODO Max Areshkau JBIDE-1457
boolean rebuildFlag = false;
/** faceletFile */
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/context/VpePageContext.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/context/VpePageContext.java 2008-02-07
17:20:30 UTC (rev 6182)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/context/VpePageContext.java 2008-02-07
17:37:29 UTC (rev 6183)
@@ -16,10 +16,14 @@
import java.util.Set;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.text.IDocument;
+import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
+import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
+import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TaglibTracker;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.ide.IDE;
+import org.eclipse.wst.xml.core.internal.document.ElementImpl;
import org.jboss.tools.common.kb.KbConnectorFactory;
import org.jboss.tools.common.kb.KbConnectorType;
import org.jboss.tools.common.kb.wtp.WtpKbConnector;
@@ -41,6 +45,7 @@
import org.jboss.tools.vpe.editor.mapping.VpeDomMapping;
import org.jboss.tools.vpe.editor.template.VpeTemplateManager;
import org.jboss.tools.vpe.editor.util.FileUtil;
+import org.jboss.tools.vpe.editor.util.XmlUtil;
import org.mozilla.interfaces.nsIDOMNode;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -139,34 +144,57 @@
}
}
-// public boolean isCorrectNS(Node sourceNode) {
-// String sourcePrefix = sourceNode.getPrefix();
-// if (sourcePrefix == null || ((ElementImpl)sourceNode).isJSPTag()) {
-// return true;
-// }
-// for (int i = 0; i < taglibs.size(); i++) {
-// TaglibData taglib = (TaglibData)taglibs.get(i);
-// if (sourcePrefix.equals(taglib.getPrefix())) {
-// return true;
-// }
-// }
-// return false;
-// }
+ /**
+ * Checks for URI for source node was registred on page
+ * @param sourceNode
+ * @return true - if uri was registred
+ * false- if uri doesn't was registered
+ */
+ public boolean isCorrectNS(Node sourceNode) {
+ String sourcePrefix = sourceNode.getPrefix();
+
+ if (sourcePrefix == null || ((ElementImpl)sourceNode).isJSPTag()) {
+ return true;
+ }
+ List<TaglibData> taglibs =
XmlUtil.getTaglibsForNode(sourceNode,this.getSourceBuilder().getStructuredTextViewer().getDocument());
+
+ TaglibData sourceNodeTaglib = XmlUtil.getTaglibForPrefix(sourcePrefix, taglibs);
+
+ if(sourceNodeTaglib!=null) {
+
+ return true;
+ }
+ return false;
+ }
+ /**
+ * Returns
+ * @param sourceNode
+ * @return
+ */
-// public String getSourceTaglibUri(Node sourceNode) {
-// String sourcePrefix = sourceNode.getPrefix();
-// if (sourcePrefix == null || ((ElementImpl)sourceNode).isJSPTag()) {
-// return null;
-// }
-// for (int i = 0; i < taglibs.size(); i++) {
-// TaglibData taglib = (TaglibData)taglibs.get(i);
-// if (sourcePrefix.equals(taglib.getPrefix())) {
-// return taglib.getUri();
-// }
-// }
-// return null;
-// }
+ public String getSourceTaglibUri(Node sourceNode) {
+
+ String sourcePrefix = sourceNode.getPrefix();
+ if (sourcePrefix == null || ((ElementImpl) sourceNode).isJSPTag()) {
+ return null;
+ }
+ List<TaglibData> taglibs = XmlUtil.getTaglibsForNode(sourceNode,
+ this.getSourceBuilder()
+ .getStructuredTextViewer().getDocument());
+
+ TaglibData sourceNodeTaglib = XmlUtil.getTaglibForPrefix(sourcePrefix,
+ taglibs);
+
+ if (sourceNodeTaglib == null) {
+
+ return null;
+ }
+ String sourceNodeUri = sourceNodeTaglib.getUri();
+
+ return sourceNodeUri;
+ }
+
public VpeEditorPart getEditPart() {
return editPart;
}
@@ -315,9 +343,9 @@
}
- public List<TaglibData> getTagLibs() {
- // TODO Auto-generated method stub
- return null;
+ public List<TaglibData> getTagLibs(Node sourceNode) {
+
+ return XmlUtil.getTaglibsForNode(sourceNode,
this.getSourceBuilder().getStructuredTextViewer().getDocument());
}
public void removeTaglibListener(VpeTaglibListener listener) {
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeHtmlTemplate.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeHtmlTemplate.java 2008-02-07
17:20:30 UTC (rev 6182)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeHtmlTemplate.java 2008-02-07
17:37:29 UTC (rev 6183)
@@ -311,14 +311,14 @@
private String getPageLocale(VpePageContext pageContext, IDOMElement sourceElement) {
IStructuredModel model = null;
try {
- //TODO JBIDE-788 Max Areshkau Fix That
-// List<TaglibData> taglibs = pageContext.getTagLibs();
+
+ List<TaglibData> taglibs = pageContext.getTagLibs(sourceElement);
// Find F tracker
TaglibData fTD = null;
-// for (int i = 0; i < taglibs.size(); i++) {
-// TaglibData td = (TaglibData)taglibs.get(i);
-// if ("http://java.sun.com/jsf/core".equals(td.getUri())) fTD = td;
-// }
+ for (int i = 0; i < taglibs.size(); i++) {
+ TaglibData td = (TaglibData)taglibs.get(i);
+ if ("http://java.sun.com/jsf/core".equals(td.getUri())) fTD = td;
+ }
if (fTD == null || fTD.getPrefix() == null || fTD.getPrefix().length() == 0) return
null;
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateManager.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateManager.java 2008-02-07
17:20:30 UTC (rev 6182)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateManager.java 2008-02-07
17:37:29 UTC (rev 6183)
@@ -236,26 +236,7 @@
return sourceNode.getNodeName();
}
- TLDCMDocumentManager tldcmDocumentManager=
TaglibController.getTLDCMDocumentManager(pageContext.getSourceBuilder().getStructuredTextViewer().getDocument());
-
- //we are editing jsp page added by Max Areshkau JBIDE-788
- if(tldcmDocumentManager!=null) {
- List<TaglibTracker> taglibs_JSP = tldcmDocumentManager.getTaglibTrackers();
- for (TaglibTracker taglibTracker : taglibs_JSP) {
- if(sourcePrefix.equals(taglibTracker.getPrefix())) {
- String sourceNodeUri = taglibTracker.getURI();
- String templatePrefix = getTemplateTaglibPrefix(sourceNodeUri);
- if(templatePrefix != null) {
- return templatePrefix+":"+sourceNode.getLocalName();
- } else {
- return null;
- }
- }
- }
- }
-
-
- List<TaglibData> taglibs = XmlUtil.processNode(sourceNode);
+ List<TaglibData> taglibs =
XmlUtil.getTaglibsForNode(sourceNode,pageContext.getSourceBuilder().getStructuredTextViewer().getDocument());
TaglibData sourceNodeTaglib = XmlUtil.getTaglibForPrefix(sourcePrefix, taglibs);
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/XmlUtil.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/XmlUtil.java 2008-02-07
17:20:30 UTC (rev 6182)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/XmlUtil.java 2008-02-07
17:37:29 UTC (rev 6183)
@@ -13,10 +13,13 @@
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
-
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
-
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
+import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
+import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TaglibTracker;
+import org.eclipse.wst.xml.core.internal.document.ElementImpl;
import org.jboss.tools.jst.web.tld.TaglibData;
import org.jboss.tools.vpe.VpePlugin;
import org.w3c.dom.Attr;
@@ -66,11 +69,11 @@
/**
* Returns List of taglibs which are available for current node.
- *
+ * should be used only for xml documents
* @param node
* @return
*/
- public static List<TaglibData> processNode(Node node) {
+ private static List<TaglibData> getTaglibsForNode(Node node) {
List<TaglibData> taglibs = new ArrayList<TaglibData>();
@@ -85,7 +88,7 @@
if (null != attribList) {
for (int i = 0; i < attribList.getLength(); i++) {
Node tmp = attribList.item(i);
- processAttribute(taglibs,(Attr)tmp, false);
+ processAttribute(taglibs,(Attr)tmp);
}
}
currentNode = currentNode.getParentNode();
@@ -94,13 +97,41 @@
return taglibs;
}
+
/**
+ * Calculates list of taglibs for current node adn document
+ * we use document only if we works with jsp pages
+ * otherwise we works with node
+ * @param source
+ * @param document
+ * @return collection of taglibs
+ */
+ public static List<TaglibData> getTaglibsForNode(Node source,IDocument document)
{
+
+ List<TaglibData> taglibData = new ArrayList<TaglibData>();
+
+ TLDCMDocumentManager tldcmDocumentManager=
TaglibController.getTLDCMDocumentManager(document);
+ if(tldcmDocumentManager!=null) {
+ List<TaglibTracker> taglibs_JSP = tldcmDocumentManager.getTaglibTrackers();
+ for (TaglibTracker taglibTracker : taglibs_JSP) {
+ addTaglib(taglibData, taglibTracker.getURI(), taglibTracker.getPrefix(), true);
+ }
+ }
+
+ if(taglibData.size()==0) {
+
+ taglibData = getTaglibsForNode(source);
+ }
+
+ return taglibData;
+ }
+ /**
* Processes taglib attribute
* @param taglibs
* @param attr
* @param bScopePrefix
*/
- private static void processAttribute(List<TaglibData> taglibs, Attr attr, boolean
bScopePrefix) {
+ private static void processAttribute(List<TaglibData> taglibs, Attr attr) {
String startStr = "xmlns:";
String name = attr.getName();
@@ -108,7 +139,7 @@
return;
}
name = name.substring(startStr.length());
- addTaglib(taglibs , attr.getValue(), name, true, bScopePrefix);
+ addTaglib(taglibs , attr.getValue(), name, true);
return;
}
@@ -120,11 +151,11 @@
* @param ns
* @param bScopePrefix
*/
- private static void addTaglib(List<TaglibData> taglibs, String newUri, String
newPrefix, boolean ns, boolean bScopePrefix) {
+ private static void addTaglib(List<TaglibData> taglibs, String newUri, String
newPrefix, boolean ns) {
boolean bHasSame = false;
for (int i = 0; i < taglibs.size(); i++) {
TaglibData taglib = (TaglibData)taglibs.get(i);
- if (bScopePrefix && newPrefix.equals(taglib.getPrefix())) {
+ if (newPrefix.equals(taglib.getPrefix())) {
return;
}
if (newUri.equals(taglib.getUri()) && newPrefix.equals(taglib.getPrefix())
&& ns == taglib.isNs()) {
@@ -150,8 +181,7 @@
if(data.getPrefix()!=null && data.getPrefix().equalsIgnoreCase(prefix)) {
return data;
}
- }
-
+ }
return null;
- }
+ }
}