Author: yradtsevich
Date: 2010-08-05 03:53:03 -0400 (Thu, 05 Aug 2010)
New Revision: 23932
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.spring/src/org/jboss/tools/vpe/spring/template/SpringUrlTemplate.java
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/jsp/url.jsp
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/jsp/url.jsp.xml
Removed:
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/src/org/jboss/tools/vpe/spring/test/SpringComponentTest.java
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.spring/src/org/jboss/tools/vpe/spring/template/util/Spring.java
trunk/vpe/plugins/org.jboss.tools.vpe.spring/templates/vpe-templates-spring.xml
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/jsp/form.jsp.xml
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/springapp-servlet.xml
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/src/org/jboss/tools/vpe/spring/test/SpringAllTests.java
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/src/org/jboss/tools/vpe/spring/test/SpringComponentContentTest.java
Log:
https://jira.jboss.org/browse/JBIDE-6711 :
Spring templates for VPE
- spring:url - template is updated, JUnit is created
- spring:form - JUnit is updated
- SpringComponentTest is removed
Added:
trunk/vpe/plugins/org.jboss.tools.vpe.spring/src/org/jboss/tools/vpe/spring/template/SpringUrlTemplate.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.spring/src/org/jboss/tools/vpe/spring/template/SpringUrlTemplate.java
(rev 0)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.spring/src/org/jboss/tools/vpe/spring/template/SpringUrlTemplate.java 2010-08-05
07:53:03 UTC (rev 23932)
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc. Distributed under license by
+ * Red Hat, Inc. All rights reserved. This program is made available
+ * under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ *
http://www.eclipse.org/legal/epl-v10.html Contributor: Red Hat,
+ * Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.vpe.spring.template;
+
+import org.jboss.tools.vpe.editor.context.VpePageContext;
+import org.jboss.tools.vpe.editor.template.VpeAbstractTemplate;
+import org.jboss.tools.vpe.editor.template.VpeCreationData;
+import org.jboss.tools.vpe.editor.template.VpeTemplateManager;
+import org.jboss.tools.vpe.editor.util.VisualDomUtil;
+import org.jboss.tools.vpe.spring.template.util.Spring;
+import org.mozilla.interfaces.nsIDOMDocument;
+import org.mozilla.interfaces.nsIDOMElement;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * Template class for spring:url and nested spring:param tags.
+ *
+ * @author Yahor Radtsevich (yradtsevich)
+ */
+public class SpringUrlTemplate extends VpeAbstractTemplate {
+
+ /* (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 sourceElement = (Element) sourceNode;
+ nsIDOMElement urlContainer = VisualDomUtil.createBorderlessContainer(visualDocument);
+ if (sourceElement.hasAttribute(Spring.ATTR_VALUE) &&
+ !sourceElement.hasAttribute(Spring.ATTR_VAR)) {
+ String valueAttribute = sourceElement.getAttribute(Spring.ATTR_VALUE);
+ StringBuilder url = new StringBuilder(valueAttribute);
+
+ boolean hasParams = valueAttribute.contains("?"); //$NON-NLS-1$
+ NodeList childNodes = sourceElement.getChildNodes();
+ for (int i = 0; i < childNodes.getLength(); i++) {
+ Node childNode = childNodes.item(i);
+ String childTemplateName = VpeTemplateManager.getInstance()
+ .getTemplateName(pageContext, childNode);
+ if (Spring.TAG_SPRING_PARAM.equals(childTemplateName)) {
+ url.append(hasParams ? '&' : '?');
+ hasParams = true;
+ appendParam(url, (Element) childNode);
+ }
+ }
+ urlContainer.appendChild(visualDocument.createTextNode(url.toString()));
+ }
+ return new VpeCreationData(urlContainer);
+ }
+
+ /**
+ * @param paramElement
+ */
+ private void appendParam(StringBuilder url, Element paramElement) {
+ if (paramElement.hasAttribute(Spring.ATTR_NAME)) {
+ url.append(paramElement.getAttribute(Spring.ATTR_NAME));
+ if (paramElement.hasAttribute(Spring.ATTR_VALUE)) {
+ url.append('=').append(paramElement.getAttribute(Spring.ATTR_VALUE));
+ }
+ }
+ }
+}
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.spring/src/org/jboss/tools/vpe/spring/template/util/Spring.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.spring/src/org/jboss/tools/vpe/spring/template/util/Spring.java 2010-08-05
07:38:56 UTC (rev 23931)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.spring/src/org/jboss/tools/vpe/spring/template/util/Spring.java 2010-08-05
07:53:03 UTC (rev 23932)
@@ -24,7 +24,12 @@
public static final String ATTR_ITEM_LABEL = "itemLabel"; //$NON-NLS-1$
public static final String ATTR_PATH = "path"; //$NON-NLS-1$
public static final String ATTR_MULTIPLE = "multiple"; //$NON-NLS-1$
+ public static final String ATTR_NAME = "name"; //$NON-NLS-1$
+ public static final String ATTR_VALUE = "value"; //$NON-NLS-1$
+ public static final String ATTR_VAR = "var"; //$NON-NLS-1$
public static final String VALUE_TRUE = "true"; //$NON-NLS-1$
public static final String VALUE_FALSE = "false"; //$NON-NLS-1$
+
+ public static final String TAG_SPRING_PARAM = "spring:param"; //$NON-NLS-1$
}
Modified: trunk/vpe/plugins/org.jboss.tools.vpe.spring/templates/vpe-templates-spring.xml
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.spring/templates/vpe-templates-spring.xml 2010-08-05
07:38:56 UTC (rev 23931)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.spring/templates/vpe-templates-spring.xml 2010-08-05
07:53:03 UTC (rev 23932)
@@ -470,13 +470,8 @@
</vpe:tag>
<vpe:tag name="spring:url" case-sensitive="yes">
- <vpe:if test="attrpresent('var')">
- <vpe:template children="no" modify="yes" />
- </vpe:if>
- <vpe:template children="no" modify="yes">
- <span class="vpe-text">
- <vpe:value expr="{@value}" />
- </span>
+ <vpe:template children="no" modify="yes"
+ class="org.jboss.tools.vpe.spring.template.SpringUrlTemplate">
</vpe:template>
</vpe:tag>
Modified:
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/jsp/form.jsp.xml
===================================================================
---
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/jsp/form.jsp.xml 2010-08-05
07:38:56 UTC (rev 23931)
+++
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/jsp/form.jsp.xml 2010-08-05
07:53:03 UTC (rev 23932)
@@ -10,8 +10,7 @@
<FORM CLASS="yellow-text" ID="form2"
STYLE="background-color: black;">
<SPAN CLASS="vpe-text">
- This is a form:form with style and class attributes. Yellow text on black
- background.
+ This is a form:form with style and class attributes. Yellow text on black
background.
</SPAN>
</FORM>
</test>
Added:
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/jsp/url.jsp
===================================================================
---
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/jsp/url.jsp
(rev 0)
+++
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/jsp/url.jsp 2010-08-05
07:53:03 UTC (rev 23932)
@@ -0,0 +1,21 @@
+<%@ taglib prefix="security"
uri="http://www.springframework.org/security/tags" %>
+<%@ taglib prefix="spring"
uri="http://www.springframework.org/tags" %>
+<%@ taglib prefix="form"
uri="http://www.springframework.org/tags/form" %>
+<html>
+<body>
+ <div id="url1">
+ <spring:url
value="http://community.jboss.org/en/jbosstools?view=discussions&quo...
+ </div>
+ <div id="url2">
+ <spring:url
value="http://community.jboss.org/en/jbosstools">
+ <spring:param name="view" value="discussions" />
+ <spring:param name="emptyParam2"/>
+ </spring:url>
+ </div>
+ <div id="url3">
+ <spring:url
value="http://community.jboss.org/en/jbosstools?view=discussions&quo...
+ <spring:param name="emptyParam2"/>
+ </spring:url>
+ </div>
+</body>
+</html>
\ No newline at end of file
Added:
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/jsp/url.jsp.xml
===================================================================
---
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/jsp/url.jsp.xml
(rev 0)
+++
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/jsp/url.jsp.xml 2010-08-05
07:53:03 UTC (rev 23932)
@@ -0,0 +1,23 @@
+<tests>
+ <test id="url1">
+ <DIV ID="url1">
+ <SPAN CLASS="vpe-text">
+
http://community.jboss.org/en/jbosstools?view=discussions
+ </SPAN>
+ </DIV>
+ </test>
+ <test id="url2">
+ <DIV ID="url2">
+ <SPAN CLASS="vpe-text">
+
http://community.jboss.org/en/jbosstools?view=discussions&emptyPa...
+ </SPAN>
+ </DIV>
+ </test>
+ <test id="url3">
+ <DIV ID="url3">
+ <SPAN CLASS="vpe-text">
+
http://community.jboss.org/en/jbosstools?view=discussions&emptyPa...
+ </SPAN>
+ </DIV>
+ </test>
+</tests>
Modified:
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/springapp-servlet.xml
===================================================================
---
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/springapp-servlet.xml 2010-08-05
07:38:56 UTC (rev 23931)
+++
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/resources/SpringTest/src/main/webapp/WEB-INF/springapp-servlet.xml 2010-08-05
07:53:03 UTC (rev 23932)
@@ -29,6 +29,7 @@
</bean>
<bean name="/select.htm"
class="org.jboss.tools.vpe.spring.test.springtest.FormController"/>
<bean name="/escapeBody.htm"
class="org.jboss.tools.vpe.spring.test.springtest.FormController"/>
+ <bean name="/url.htm"
class="org.jboss.tools.vpe.spring.test.springtest.FormController"/>
<bean id="userValidator"
class="org.jboss.tools.vpe.spring.test.springtest.validator.UserValidator"/>
<bean id="beanValidator"
class="org.jboss.tools.vpe.spring.test.springtest.validator.BeanValidator"/>
Modified:
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/src/org/jboss/tools/vpe/spring/test/SpringAllTests.java
===================================================================
---
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/src/org/jboss/tools/vpe/spring/test/SpringAllTests.java 2010-08-05
07:38:56 UTC (rev 23931)
+++
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/src/org/jboss/tools/vpe/spring/test/SpringAllTests.java 2010-08-05
07:53:03 UTC (rev 23932)
@@ -32,7 +32,6 @@
public static Test suite() {
TestSuite suite = new TestSuite("Tests for Vpe Spring components");
//$NON-NLS-1$
// $JUnit-BEGIN$
- suite.addTestSuite(SpringComponentTest.class);
suite.addTestSuite(SpringComponentContentTest.class);
//cleanUpTests();
// $JUnit-END$
Modified:
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/src/org/jboss/tools/vpe/spring/test/SpringComponentContentTest.java
===================================================================
---
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/src/org/jboss/tools/vpe/spring/test/SpringComponentContentTest.java 2010-08-05
07:38:56 UTC (rev 23931)
+++
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/src/org/jboss/tools/vpe/spring/test/SpringComponentContentTest.java 2010-08-05
07:53:03 UTC (rev 23932)
@@ -105,10 +105,18 @@
performContentTestByFullPath("src/main/webapp/WEB-INF/jsp/escapeBody.jsp");
//$NON-NLS-1$
}
+ public void testForm() throws Throwable {
+ performContentTestByFullPath("src/main/webapp/WEB-INF/jsp/form.jsp");
//$NON-NLS-1$
+ }
+
public void testEval() throws Throwable {
performContentTestByFullPath("src/main/webapp/WEB-INF/jsp/eval.jsp");
//$NON-NLS-1$
}
-
+
+ public void testUrl() throws Throwable {
+ performContentTestByFullPath("src/main/webapp/WEB-INF/jsp/url.jsp");
//$NON-NLS-1$
+ }
+
@Override
protected String getTestProjectName() {
return SpringAllTests.IMPORT_PROJECT_NAME;
Deleted:
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/src/org/jboss/tools/vpe/spring/test/SpringComponentTest.java
===================================================================
---
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/src/org/jboss/tools/vpe/spring/test/SpringComponentTest.java 2010-08-05
07:38:56 UTC (rev 23931)
+++
trunk/vpe/tests/org.jboss.tools.vpe.spring.test/src/org/jboss/tools/vpe/spring/test/SpringComponentTest.java 2010-08-05
07:53:03 UTC (rev 23932)
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at
http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.vpe.spring.test;
-
-import org.eclipse.core.resources.IFile;
-import org.jboss.tools.vpe.ui.test.TestUtil;
-import org.jboss.tools.vpe.ui.test.VpeTest;
-
-/**
- * Class for testing form spring components
- *
- * @author Yahor Radtsevich (yradtsevich)
- *
- */
-public class SpringComponentTest extends VpeTest {
-
- public SpringComponentTest(String name) {
- super(name);
- }
-
- /*
- * Spring Form test cases
- */
- public void testCheckbox() throws Throwable {
- performTestForVpeComponent((IFile)TestUtil.getResource(
- "src/main/webapp/WEB-INF/jsp/checkbox.jsp",
SpringAllTests.IMPORT_PROJECT_NAME)); //$NON-NLS-1$
- }
-
- public void testCheckboxes() throws Throwable {
- performTestForVpeComponent((IFile)TestUtil.getResource(
- "src/main/webapp/WEB-INF/jsp/checkboxes.jsp",
SpringAllTests.IMPORT_PROJECT_NAME)); //$NON-NLS-1$
- }
-
- public void testRadiobutton() throws Throwable {
- performTestForVpeComponent((IFile)TestUtil.getResource(
- "src/main/webapp/WEB-INF/jsp/radiobutton.jsp",
SpringAllTests.IMPORT_PROJECT_NAME)); //$NON-NLS-1$
- }
-
- public void testRadiobuttons() throws Throwable {
- performTestForVpeComponent((IFile)TestUtil.getResource(
- "src/main/webapp/WEB-INF/jsp/radiobuttons.jsp",
SpringAllTests.IMPORT_PROJECT_NAME)); //$NON-NLS-1$
- }
-
- public void testForm() throws Throwable {
- performTestForVpeComponent((IFile)TestUtil.getResource(
- "src/main/webapp/WEB-INF/jsp/form.jsp",
SpringAllTests.IMPORT_PROJECT_NAME)); //$NON-NLS-1$
- }
-
- public void testErrors() throws Throwable {
- performTestForVpeComponent((IFile)TestUtil.getResource(
- "src/main/webapp/WEB-INF/jsp/errors.jsp",
SpringAllTests.IMPORT_PROJECT_NAME)); //$NON-NLS-1$
- }
-}