Author: dvinnichek
Date: 2010-09-13 09:26:51 -0400 (Mon, 13 Sep 2010)
New Revision: 24894
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.docbook/templates/vpe-templates-docbook.xml
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateManager.java
trunk/vpe/tests/org.jboss.tools.vpe.test/scheme/scheme.xsd
Log:
add ability to specify tag name in vpe-template by using of regexp
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 2010-09-13
13:16:30 UTC (rev 24893)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateManager.java 2010-09-13
13:26:51 UTC (rev 24894)
@@ -244,6 +244,9 @@
public static final String ATTR_LINK_HREF = "href"; //$NON-NLS-1$
public static final String ATTR_LINK_REL = "rel"; //$NON-NLS-1$
public static final String ATTR_LINK_EXT = "ext"; //$NON-NLS-1$
+
+ //added by Denis Vinnichek, for tags which are defined with regexp
+ static final String ATTR_TAG_MATCHING_MODE = "matching-mode"; //$NON-NLS-1$
private static VpeTemplateManager instance = null;
private static Object monitor = new Object();
@@ -257,8 +260,10 @@
private Map<String,VpeTemplateSet> ignoreSensitiveTags = new
HashMap<String,VpeTemplateSet>();
//added by Maksim Areshkau, docbook tags stored separately, because name duality
private Map<String,VpeTemplateSet> docbookTags = new
HashMap<String,VpeTemplateSet>();
+ //added by Denis Vinnichek, for tags which are defined with regexp
+ private Map<String,VpeTemplateSet> matchingTags = new
HashMap<String,VpeTemplateSet>();
- private static final String ATTR_DOCBOOK_NAME = "docbook";
+ private static final String ATTR_DOCBOOK_NAME = "docbook"; //$NON-NLS-1$
private VpeTemplate defTemplate;
private VpeTemplateListener[] templateListeners = new VpeTemplateListener[0];
@@ -362,6 +367,18 @@
if (set != null) {
return set.getTemplate(pageContext, sourceNode, dependencySet);
}
+ //added by Denis Vinnichek, for tags which are defined with regexp
+ if (matchingTags.entrySet() != null) {
+ for (Map.Entry<String,VpeTemplateSet> entry : matchingTags.entrySet()) {
+ if (name.matches(entry.getKey())) {
+ set = entry.getValue();
+ if (set != null) {
+ return set.getTemplate(pageContext, sourceNode, dependencySet);
+ }
+ }
+ }
+ }
+
return null;
}
@@ -495,18 +512,27 @@
}
private void setTagElement(Element tagElement,IConfigurationElement confElement) {
+
String name = tagElement.getAttribute(ATTR_TAG_NAME);
+
if (name.length() > 0) {
- boolean docbookTemplate =
ATTR_VALUE_YES.equalsIgnoreCase(tagElement.getAttribute(VpeTemplateManager.ATTR_DOCBOOK_NAME));
+
+ boolean docbookTemplate =
ATTR_VALUE_YES.equalsIgnoreCase(tagElement.getAttribute(ATTR_DOCBOOK_NAME));
boolean caseSensitive =
!ATTR_VALUE_NO.equals(tagElement.getAttribute(ATTR_TAG_CASE_SENSITIVE));
+ boolean matchingMode =
ATTR_VALUE_YES.equals(tagElement.getAttribute(ATTR_TAG_MATCHING_MODE));
Map<String,VpeTemplateSet> tags;
- if(docbookTemplate){
- tags = docbookTags;
- }else if (caseSensitive) {
- tags = caseSensitiveTags;
+
+ if (!matchingMode) {
+ if(docbookTemplate){
+ tags = docbookTags;
+ }else if (caseSensitive) {
+ tags = caseSensitiveTags;
+ } else {
+ name = name.toLowerCase();
+ tags = ignoreSensitiveTags;
+ }
} else {
- name = name.toLowerCase();
- tags = ignoreSensitiveTags;
+ tags = matchingTags;
}
VpeTemplateSet set = (VpeTemplateSet) tags.get(name);
@@ -886,6 +912,8 @@
if (templateFileList.isChanged()) {
caseSensitiveTags.clear();
ignoreSensitiveTags.clear();
+ matchingTags.clear();
+ docbookTags.clear();
defTemplate = null;
loadImpl();
fireTemplateReloaded();
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe.docbook/templates/vpe-templates-docbook.xml
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe.docbook/templates/vpe-templates-docbook.xml 2010-09-13
13:16:30 UTC (rev 24893)
+++
trunk/vpe/plugins/org.jboss.tools.vpe.docbook/templates/vpe-templates-docbook.xml 2010-09-13
13:26:51 UTC (rev 24894)
@@ -116,26 +116,11 @@
</vpe:template>
</vpe:tag>
- <vpe:tag name="sect1" case-sensitive="yes"
docbook="yes">
+ <vpe:tag name="sect[0-9]*" matching-mode="yes">
<vpe:template children="yes" modify="yes">
<div />
</vpe:template>
</vpe:tag>
- <vpe:tag name="sect2" case-sensitive="yes"
docbook="yes">
- <vpe:template children="yes" modify="yes">
- <div />
- </vpe:template>
- </vpe:tag>
- <vpe:tag name="sect3" case-sensitive="yes"
docbook="yes">
- <vpe:template children="yes" modify="yes">
- <div />
- </vpe:template>
- </vpe:tag>
- <vpe:tag name="sect4" case-sensitive="yes"
docbook="yes">
- <vpe:template children="yes" modify="yes">
- <div />
- </vpe:template>
- </vpe:tag>
<vpe:tag name="book" case-sensitive="yes"
docbook="yes">
<vpe:template children="yes" modify="yes">
<div/>
@@ -238,16 +223,11 @@
<div/>
</vpe:template>
</vpe:tag>
- <vpe:tag name="toclevel1" case-sensitive="yes"
docbook="yes">
+ <vpe:tag name="toclevel[0-9]*" matching-mode="yes">
<vpe:template children="yes" modify="yes">
<div/>
</vpe:template>
</vpe:tag>
- <vpe:tag name="toclevel2" case-sensitive="yes"
docbook="yes">
- <vpe:template children="yes" modify="yes">
- <div/>
- </vpe:template>
- </vpe:tag>
<vpe:tag name="tocback" case-sensitive="yes"
docbook="yes">
<vpe:if test="attrpresent('pagenum')">
<vpe:template children="no" modify="yes">
Modified: trunk/vpe/tests/org.jboss.tools.vpe.test/scheme/scheme.xsd
===================================================================
--- trunk/vpe/tests/org.jboss.tools.vpe.test/scheme/scheme.xsd 2010-09-13 13:16:30 UTC
(rev 24893)
+++ trunk/vpe/tests/org.jboss.tools.vpe.test/scheme/scheme.xsd 2010-09-13 13:26:51 UTC
(rev 24894)
@@ -39,6 +39,7 @@
<xsd:attribute name="name" use="required"
type="xsd:string"/>
<xsd:attribute name="docbook" use="optional"
type="vpe:VPE-BOOLEAN"/>
<xsd:attribute name="haveVisualPreview" use="optional"
type="vpe:VPE-BOOLEAN"/>
+ <xsd:attribute name="matching-mode" use="optional"
type="vpe:VPE-BOOLEAN"/>
</xsd:complexType>
<!-- -->
<xsd:complexType name="TEMPLATE">
Show replies by date