You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by do...@apache.org on 2004/12/09 17:34:34 UTC
svn commit: r111403 - in incubator/beehive/trunk/netui: src/tags-html/org/apache/beehive/netui/tags src/tags-html/org/apache/beehive/netui/tags/html test/webapps/drt/coreWeb/WEB-INF
Author: dolander
Date: Thu Dec 9 08:34:33 2004
New Revision: 111403
URL: http://svn.apache.org/viewcvs?view=rev&rev=111403
Log:
Add support for JavaScript namespaces to lookup the "real id" and "real name" based upon the tagId. THis is currently off by default in the DRT webapp.
Added:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/TagConfig.java
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlBaseTag.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlDataSourceTag.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/JavaScriptUtils.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptContainer.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/javaScript.properties
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/local-netui-config.xml
Added: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/TagConfig.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/TagConfig.java?view=auto&rev=111403
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/TagConfig.java Thu Dec 9 08:34:33 2004
@@ -0,0 +1,83 @@
+package org.apache.beehive.netui.tags;
+
+import org.apache.beehive.netui.util.config.ConfigUtil;
+import org.apache.beehive.netui.util.config.bean.JspTagConfig;
+
+
+/**
+ * This class implements a series of static method that will return configuration information. The
+ * information is buffered, and config properties values defined here. The document type configuration
+ * is not found in this class. It is found TagRenderBase {@link org.apache.beehive.netui.tags.rendering.TagRenderingBase}
+ * and the HTML tag {@link org.apache.beehive.netui.tags.html.Html}.
+ */
+final public class TagConfig
+{
+ /**
+ * This flag will turn on Legacy JavaScript support for id and name attributes. When this is set
+ * the default tag JavaScript will also be output.
+ */
+ public static final String LEGACY_JAVA_SCRIPT = "Legacy-JavaScript";
+
+ /**
+ * This flag will make Legacy JavaScript support the only type of JavaScript output for id and name
+ * attributes.
+ */
+ public static final String LEGACY_JAVA_SCRIPT_ONLY = "Legacy-JavaScript-Only";
+
+
+ private static final int JAVASCRIPT_DEFAULT = 1;
+ private static final int JAVASCRIPT_LEGACY_ONLY = 2;
+ private static final int JAVASCRIPT_INCLUDE_LEGACY = 3;
+
+ private static int javascriptMode = -1;
+
+
+ /**
+ * Return true if the legacy JavaScript support should be written to the output stream.
+ * @return
+ */
+ public static boolean isLegacyJavaScript()
+ {
+ if (javascriptMode == -1) {
+ setLegacyJavaScriptMode();
+ }
+ assert(javascriptMode != -1);
+ return (javascriptMode == JAVASCRIPT_INCLUDE_LEGACY || javascriptMode == JAVASCRIPT_LEGACY_ONLY);
+ }
+
+ /**
+ * Return true if the default JavaScript support should be written to the output stream.
+ * @return
+ */
+ public static boolean isDefaultJavaScript()
+ {
+ if (javascriptMode == -1) {
+ setLegacyJavaScriptMode();
+ }
+ assert(javascriptMode != -1);
+ return (javascriptMode == JAVASCRIPT_INCLUDE_LEGACY || javascriptMode == JAVASCRIPT_DEFAULT);
+ }
+
+ /**
+ * This will set the JavaScript support level for the id and name attributes.
+ */
+ private static void setLegacyJavaScriptMode() {
+ JspTagConfig tagConfig = ConfigUtil.getConfig().getJspTagConfig();
+ if (tagConfig != null) {
+ String s = tagConfig.getIdJavascript();
+ if (LEGACY_JAVA_SCRIPT.equals(s)) {
+ javascriptMode = JAVASCRIPT_INCLUDE_LEGACY;
+ }
+ else if (LEGACY_JAVA_SCRIPT_ONLY.equals(s)) {
+ javascriptMode = JAVASCRIPT_LEGACY_ONLY;
+ }
+ else {
+ javascriptMode = JAVASCRIPT_DEFAULT;
+ }
+ }
+ else {
+ javascriptMode = JAVASCRIPT_DEFAULT;
+ }
+ System.err.println("Javascript Mode:" + javascriptMode);
+ }
+}
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlBaseTag.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlBaseTag.java?view=diff&rev=111403&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlBaseTag.java&r1=111402&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlBaseTag.java&r2=111403
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlBaseTag.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlBaseTag.java Thu Dec 9 08:34:33 2004
@@ -499,32 +499,32 @@
// Legacy Java Script support -- This writes out a single table with both the id and names
// mixed. This is legacy support to match the pre beehive behavior.
String idScript = null;
- if (!ctrlState) {
- idScript = addTagIdMapping(id, state.id);
- }
- else {
- AbstractHtmlControlState cState = (AbstractHtmlControlState) state;
- if (cState.name != null)
- idScript = addTagIdMapping(id, cState.name);
- else
+ if (TagConfig.isLegacyJavaScript()) {
+ if (!ctrlState) {
idScript = addTagIdMapping(id, state.id);
+ }
+ else {
+ AbstractHtmlControlState cState = (AbstractHtmlControlState) state;
+ if (cState.name != null)
+ idScript = addTagIdMapping(id, cState.name);
+ else
+ idScript = addTagIdMapping(id, state.id);
+ }
}
//if (idScript != null)
// javaScript.setRef(idScript);
//}
// map the tagId to the real id
- /*
- if (ctrlState) {
- AbstractHtmlControlState cState = (AbstractHtmlControlState) state;
- idScript = addTagIdMappings(id, cState.id, cState.name);
- }
- else {
- idScript = addTagIdMapping(id, state.id);
- }
- */
-
- //System.out.println("Writting:" + id + " " + state.id);
+ if (TagConfig.isDefaultJavaScript()) {
+ if (ctrlState) {
+ AbstractHtmlControlState cState = (AbstractHtmlControlState) state;
+ idScript = addTagIdMappings(id, cState.id, cState.name);
+ }
+ else {
+ idScript = addTagIdMapping(id, state.id);
+ }
+ }
//String idScript = addTagIdMapping(id, state.id);
//return idScript;
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlDataSourceTag.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlDataSourceTag.java?view=diff&rev=111403&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlDataSourceTag.java&r1=111402&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlDataSourceTag.java&r2=111403
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlDataSourceTag.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlDataSourceTag.java Thu Dec 9 08:34:33 2004
@@ -142,35 +142,6 @@
String idScript = renderNameAndId(state, parentForm);
if (idScript != null)
javaScript.setRef(idScript);
-
- // if there is an id, we need to create the javascript and form
- // focus support for it.
- /*
- IHtmlIdWriter idWriter = getNearestIdWriter();
- if (idWriter != null) {
- String id = getTagId();
- if (id != null) {
-
- // form keeps track of this so that it can add this control to it's focus map
- // @todo: should this be moved outside of the idWriter? Seems like it should
- Form parentForm = getNearestForm();
- if (parentForm != null)
- parentForm.addTagID(state.id, state.name);
-
- // rewrite the id
- state.id = rewriteName(id);
-
- // map the tagId to the real id
- //String idScript = addTagIdMappings(id, state.id, state.name);
-
- // @todo: add this back under the compat javascript flag
- // add the state mapping
- String idScript = addTagIdMapping(state.id, state.name);
- if (idScript != null)
- javaScript.setRef(idScript);
- }
- }
- */
}
/**
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/JavaScriptUtils.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/JavaScriptUtils.java?view=diff&rev=111403&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/JavaScriptUtils.java&r1=111402&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/JavaScriptUtils.java&r2=111403
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/JavaScriptUtils.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/JavaScriptUtils.java Thu Dec 9 08:34:33 2004
@@ -18,6 +18,7 @@
package org.apache.beehive.netui.tags.html;
import org.apache.beehive.netui.tags.IScriptReporter;
+import org.apache.beehive.netui.tags.TagConfig;
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
import java.io.Serializable;
@@ -114,7 +115,6 @@
return;
}
- //StringBuilder sb = new StringBuilder(256);
writeScriptBlock(results, s);
return;
}
@@ -140,14 +140,38 @@
if (scriptReporter == null)
sb = new StringBuilder(256);
- String s = getString("getNetuiTagNameAdvanced", null);
- if (scriptReporter != null)
- scriptReporter.addScriptFunction(s);
- else {
- sb.append(s);
- sb.append("\n");
+ String s;
+ // if we are supporting legacy javascript then output the original javascript method
+ if (TagConfig.isLegacyJavaScript()) {
+ s = getString("getNetuiTagNameAdvanced", null);
+ if (scriptReporter != null)
+ scriptReporter.addScriptFunction(s);
+ else {
+ sb.append(s);
+ sb.append("\n");
+ }
+ }
+
+ // if we are supporting the default javascript then output the lookup methods for id and name
+ if (TagConfig.isDefaultJavaScript()) {
+ s = getString("lookupIdByTagId", null);
+ if (scriptReporter != null)
+ scriptReporter.addScriptFunction(s);
+ else {
+ sb.append(s);
+ sb.append("\n");
+ }
+
+ s = getString("lookupNameByTagId", null);
+ if (scriptReporter != null)
+ scriptReporter.addScriptFunction(s);
+ else {
+ sb.append(s);
+ sb.append("\n");
+ }
}
+ // output the scopeId lookup method.
s = getString("getScopeId", null);
if (scriptReporter != null)
scriptReporter.addScriptFunction(s);
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptContainer.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptContainer.java?view=diff&rev=111403&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptContainer.java&r1=111402&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptContainer.java&r2=111403
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptContainer.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ScriptContainer.java Thu Dec 9 08:34:33 2004
@@ -19,6 +19,7 @@
import org.apache.beehive.netui.tags.AbstractClassicTag;
import org.apache.beehive.netui.tags.IScriptReporter;
+import org.apache.beehive.netui.tags.TagConfig;
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
import org.apache.beehive.netui.tags.rendering.WriteRenderAppender;
@@ -406,22 +407,30 @@
// @todo: need to make the writeNetuiNameFunction deal with different functions
boolean writeFunctions = false;
- String val = processIdMap(_idMap, "idMappingEntry");
- if (val != null) {
- jsu.writeIdMap(this, "idMappingTable", val);
- writeFunctions = true;
- }
-
- val = processIdMap(_idToIdMap, "tagIdMappingEntry");
- if (val != null) {
- jsu.writeIdMap(this, "tagIdMappingTable", val);
- writeFunctions = true;
- }
-
- val = processIdMap(_idToNameMap, "tagIdNameMappingEntry");
- if (val != null) {
- jsu.writeIdMap(this, "tagIdNameMappingTable", val);
- writeFunctions = true;
+ String val;
+
+ // if we are writing out legacy JavaScript support output the idMap
+ if (TagConfig.isLegacyJavaScript()) {
+ val = processIdMap(_idMap, "idMappingEntry");
+ if (val != null) {
+ jsu.writeIdMap(this, "idMappingTable", val);
+ writeFunctions = true;
+ }
+ }
+
+ // if we are writing out default JavaScript support we create both the name and id map
+ if (TagConfig.isDefaultJavaScript()) {
+ val = processIdMap(_idToIdMap, "tagIdMappingEntry");
+ if (val != null) {
+ jsu.writeIdMap(this, "tagIdMappingTable", val);
+ writeFunctions = true;
+ }
+
+ val = processIdMap(_idToNameMap, "tagIdNameMappingEntry");
+ if (val != null) {
+ jsu.writeIdMap(this, "tagIdNameMappingTable", val);
+ writeFunctions = true;
+ }
}
if (writeFunctions) {
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/javaScript.properties
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/javaScript.properties?view=diff&rev=111403&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/javaScript.properties&r1=111402&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/javaScript.properties&r2=111403
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/javaScript.properties (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/javaScript.properties Thu Dec 9 08:34:33 2004
@@ -103,6 +103,30 @@
\ return netui_names[scopeId + "__" + id];\n\
}\n
+#method to do lookup in netui_tagIdMap
+lookupIdByTagId=\
+// lookup by tagId to "real id"\n\
+function lookupIdByTagId(id, tag)\n\
+{\n\
+\ var scopeId = getScopeId(tag);\n\
+\ if (scopeId == \"\")\n\
+\ return netui_tagIdMap[id];\n\
+\ else\n\
+\ return netui_tagIdMap[scopeId + "__" + id];\n\
+}\n
+
+#method to do lookup in netui_tagIdNameMap
+lookupNameByTagId=\
+// lookup by tagId to "real name"\n\
+function lookupNameByTagId(id, tag)\n\
+{\n\
+\ var scopeId = getScopeId(tag);\n\
+\ if (scopeId == \"\")\n\
+\ return netui_tagIdNameMap[id];\n\
+\ else\n\
+\ return netui_tagIdNameMap[scopeId + "__" + id];\n\
+}\n
+
# method to find the scope id
getScopeId=\
// This method will walk the hierarchy from the pass element looking for a scopeId.\n\
Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/local-netui-config.xml
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/local-netui-config.xml?view=diff&rev=111403&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/local-netui-config.xml&r1=111402&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/local-netui-config.xml&r2=111403
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/local-netui-config.xml (original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/local-netui-config.xml Thu Dec 9 08:34:33 2004
@@ -49,7 +49,7 @@
<jsp-tag-config>
<doctype>html4-loose</doctype>
- <id-transparency>Transparent Off</id-transparency>
+ <id-javascript>Legacy-JavaScript-Only</id-javascript>
</jsp-tag-config>
<iterator-factories>