Author: dsakovich
Date: 2008-04-28 12:26:56 -0400 (Mon, 28 Apr 2008)
New Revision: 7848
Added:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeVisualLinkCreator.java
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/templates/vpe-templates-jsf.xml
trunk/vpe/plugins/org.jboss.tools.vpe.html/templates/vpe-templates-html.xml
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
Log:
http://jira.jboss.org/jira/browse/JBIDE-2119,http://jira.jboss.org/jira/b...
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-04-28
15:45:09 UTC (rev 7847)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/templates/vpe-templates-jsf.xml 2008-04-28
16:26:56 UTC (rev 7848)
@@ -227,11 +227,10 @@
<!-- Проблема с вложенным параметром (31 of 4) -->
<vpe:tag name="h:commandLink" case-sensitive="yes">
<vpe:template children="yes" modify="yes">
- <span class="{@styleClass}"
- style="color:blue;text-decoration:underline;{@style}"
- title="{tagstring()}">
- <vpe:value expr="{jsfvalue(@value)}" />
- </span>
+ <vpe:a class="{@styleClass}"
+ style="{@style}"
+ title="{tagstring()}"
+ value="{jsfvalue(@value)}"/>
<vpe:dnd>
<vpe:drag start-enable="yes" />
<vpe:drop container="yes">
@@ -277,8 +276,10 @@
</vpe:template>
</vpe:if>
<vpe:template children="yes" modify="yes">
- <a href="javascript:return false;" class="{@styleClass}"
- style="{@style}" dir="{@dir}" />
+ <vpe:a class="{@styleClass}"
+ style="{@style}"
+ title="{tagstring()}"
+ value="{jsfvalue(@value)}"/>
<vpe:textFormatting use-default-formats="yes">
<vpe:format type="UnderlineFormat" setDefault="true">
<vpe:formatAttribute type="style" />
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-04-28
15:45:09 UTC (rev 7847)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeHtmlTemplate.java 2008-04-28
16:26:56 UTC (rev 7848)
@@ -52,7 +52,8 @@
public static final int TYPE_PANELGRID = 14;
public static final int TYPE_FACET = 15;
public static final int TYPE_INCLUDE = 16;
- public static final int PANEL_LAYOUT = 17;
+ public static final int PANEL_LAYOUT = 17;
+ public static final int TYPE_A = 18;
static final String ATTR_STYLE = "style";
public static final String ATTR_STYLE_MODIFY_NAME = "-moz-user-modify";
@@ -85,6 +86,10 @@
} else if (VpeTemplateManager.TAG_DATATABLE.equals(name)) {
type = TYPE_DATATABLE;
creator = new VpeDataTableCreator(templateSection, dependencyMap, caseSensitive);
+ }
+ else if (VpeTemplateManager.TAG_A.equals(name)) {
+ type = TYPE_A;
+ creator = new VpeVisualLinkCreator(templateSection, dependencyMap, caseSensitive);
} else if (VpeTemplateManager.TAG_DATATABLE_COLUMN.equals(name)) {
type = TYPE_DATATABLE_COLUMN;
creator = new VpeDataTableColumnCreator(templateSection, dependencyMap,
caseSensitive);
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-04-28
15:45:09 UTC (rev 7847)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateManager.java 2008-04-28
16:26:56 UTC (rev 7848)
@@ -89,6 +89,7 @@
static final String TAG_TAGLIB = VPE_PREFIX + "taglib"; //$NON-NLS-1$
static final String TAG_LINK = VPE_PREFIX + "link"; //$NON-NLS-1$
static final String TAG_LOAD_BUNDLE = VPE_PREFIX + "load-bundle";
//$NON-NLS-1$
+ static final String TAG_A = VPE_PREFIX + "a"; //$NON-NLS-1$
static final String TAG_DATATABLE = VPE_PREFIX + "datatable"; //$NON-NLS-1$
static final String TAG_DATATABLE_COLUMN = VPE_PREFIX + "column";
//$NON-NLS-1$
static final String TAG_COMMENT = VPE_PREFIX + "comment"; //$NON-NLS-1$
Added:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeVisualLinkCreator.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeVisualLinkCreator.java
(rev 0)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeVisualLinkCreator.java 2008-04-28
16:26:56 UTC (rev 7848)
@@ -0,0 +1,139 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Exadel, Inc. and 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:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.vpe.editor.template;
+
+import java.util.Map;
+
+import org.jboss.tools.vpe.VpePlugin;
+import org.jboss.tools.vpe.editor.context.VpePageContext;
+import org.jboss.tools.vpe.editor.template.expression.VpeExpression;
+import org.jboss.tools.vpe.editor.template.expression.VpeExpressionBuilder;
+import org.jboss.tools.vpe.editor.template.expression.VpeExpressionBuilderException;
+import org.jboss.tools.vpe.editor.template.expression.VpeExpressionInfo;
+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.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ *
+ * @author Dzmitry Sakovich (dsakovich(a)exadel.com)
+ *
+ */
+public class VpeVisualLinkCreator extends VpeAbstractCreator {
+
+ private boolean caseSensitive;
+
+ private VpeExpression styleExpr;
+ private VpeExpression classExpr;
+ private VpeExpression valueExpr;
+
+ private String styleStr;
+ private String classStr;
+ private String valueStr;
+
+
+ // private Set dependencySet;
+
+ VpeVisualLinkCreator(Element gridElement, VpeDependencyMap dependencyMap,
+ boolean caseSensitive) {
+ this.caseSensitive = caseSensitive;
+ build(gridElement, dependencyMap);
+ }
+
+ private void build(Element element, VpeDependencyMap dependencyMap) {
+ Attr styleAttr =
element.getAttributeNode(VpeTemplateManager.ATTR_FORMAT_ATTRIBUTE_TYPE_STYLE_VALUE);
+ if (styleAttr != null) {
+ try {
+ styleStr = styleAttr.getValue();
+ VpeExpressionInfo info = VpeExpressionBuilder.buildCompletedExpression(styleStr,
caseSensitive);
+ styleExpr = info.getExpression();
+ dependencyMap.setCreator(this, info.getDependencySet());
+ } catch(VpeExpressionBuilderException e) {
+ VpePlugin.reportProblem(e);
+ }
+ }
+
+ Attr classAttr = element.getAttributeNode(VpeTemplateManager.ATTR_TEMPLATE_CLASS);
+ if (styleAttr != null) {
+ try {
+ classStr = classAttr.getValue();
+ VpeExpressionInfo info = VpeExpressionBuilder.buildCompletedExpression(classStr,
caseSensitive);
+ classExpr = info.getExpression();
+ dependencyMap.setCreator(this, info.getDependencySet());
+ } catch(VpeExpressionBuilderException e) {
+ VpePlugin.reportProblem(e);
+ }
+ }
+
+ Attr valueAttr = element.getAttributeNode(VpeTemplateManager.ATTR_ATTRIBUTE_VALUE);
+ if (valueAttr != null) {
+ try {
+ valueStr = valueAttr.getValue();
+ VpeExpressionInfo info = VpeExpressionBuilder.buildCompletedExpression(valueStr,
caseSensitive);
+ valueExpr = info.getExpression();
+ dependencyMap.setCreator(this, info.getDependencySet());
+ } catch(VpeExpressionBuilderException e) {
+ VpePlugin.reportProblem(e);
+ }
+ }
+
+ }
+
+ public VpeCreatorInfo create(VpePageContext pageContext, Node sourceNode,
+ nsIDOMDocument visualDocument, nsIDOMElement visualElement,
+ Map visualNodeMap) {
+
+
+ nsIDOMElement a = visualDocument
+ .createElement(HTML.TAG_A);
+
+ VpeCreatorInfo creatorInfo = new VpeCreatorInfo(a);
+
+ if (styleExpr != null) {
+ String style = styleExpr.exec(
+ pageContext, sourceNode)
+ .stringValue();
+ a.setAttribute(HTML.ATTR_STYLE, style);
+ }
+
+ if (classExpr != null) {
+ String classStyle = classExpr.exec(
+ pageContext, sourceNode)
+ .stringValue();
+ a.setAttribute(HTML.ATTR_CLASS, classStyle);
+ }
+
+ if (valueExpr != null) {
+ String value = valueExpr.exec(
+ pageContext, sourceNode)
+ .stringValue();
+ if (value != null && value.length() > 0) {
+ nsIDOMElement span = visualDocument.createElement(HTML.TAG_SPAN);
+ a.appendChild(span);
+ nsIDOMText text = visualDocument.createTextNode(value);
+ span.appendChild(text);
+ }
+ }
+
+ return creatorInfo;
+ }
+
+ public boolean isRecreateAtAttrChange(VpePageContext pageContext,
+ Element sourceElement, Document visualDocument, Node visualNde,
+ Object data, String name, String value) {
+ return true;
+ }
+}
Modified: trunk/vpe/plugins/org.jboss.tools.vpe.html/templates/vpe-templates-html.xml
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe.html/templates/vpe-templates-html.xml 2008-04-28
15:45:09 UTC (rev 7847)
+++ trunk/vpe/plugins/org.jboss.tools.vpe.html/templates/vpe-templates-html.xml 2008-04-28
16:26:56 UTC (rev 7848)
@@ -3,10 +3,7 @@
<vpe:templates>
<vpe:tag name="a" case-sensitive="no">
<vpe:template children="yes" modify="yes">
- <span class="{@class}" id="{@id}"
- style="color:blue;text-decoration:underline;{@style}"
- title="{tagstring()}">
- </span>
+ <vpe:a class="{@class}" style="{@style}"/>
<vpe:dnd>
<vpe:drag start-enable="yes" />
<vpe:drop container="yes">