You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2007/08/14 15:17:12 UTC
svn commit: r565736 - in /myfaces/tobago/trunk/theme/scarborough/src/main:
java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/
resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/script/
Author: lofwyr
Date: Tue Aug 14 06:17:07 2007
New Revision: 565736
URL: http://svn.apache.org/viewvc?view=rev&rev=565736
Log:
TOBAGO-467: Support for partial rendering for the (old) tree
Modified:
myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeOldNodeRenderer.java
myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeOldRenderer.java
myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/script/tree.js
Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeOldNodeRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeOldNodeRenderer.java?view=diff&rev=565736&r1=565735&r2=565736
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeOldNodeRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeOldNodeRenderer.java Tue Aug 14 06:17:07 2007
@@ -17,30 +17,30 @@
* limitations under the License.
*/
-import org.apache.myfaces.tobago.renderkit.LayoutableRendererBase;
-import org.apache.myfaces.tobago.renderkit.html.HtmlStyleMap;
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.tobago.TobagoConstants;
+import static org.apache.myfaces.tobago.TobagoConstants.ATTR_STYLE;
import org.apache.myfaces.tobago.component.ComponentUtil;
-import org.apache.myfaces.tobago.component.UITreeOldNode;
import org.apache.myfaces.tobago.component.UITreeOld;
+import org.apache.myfaces.tobago.component.UITreeOldNode;
import org.apache.myfaces.tobago.model.TreeState;
-import org.apache.myfaces.tobago.TobagoConstants;
-import static org.apache.myfaces.tobago.TobagoConstants.ATTR_STYLE;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.myfaces.tobago.renderkit.LayoutableRendererBase;
+import org.apache.myfaces.tobago.renderkit.html.HtmlStyleMap;
-import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
-import javax.faces.component.UIComponent;
import javax.faces.component.NamingContainer;
import javax.faces.component.UICommand;
-import javax.faces.component.UIParameter;
+import javax.faces.component.UIComponent;
import javax.faces.component.UIForm;
+import javax.faces.component.UIParameter;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
import javax.faces.event.ActionEvent;
import javax.swing.tree.DefaultMutableTreeNode;
-import java.util.Map;
import java.io.IOException;
+import java.util.Map;
@Deprecated
public class TreeOldNodeRenderer extends LayoutableRendererBase {
@@ -284,12 +284,15 @@
writer.writeText(",treeResourcesHelp", null);
writer.writeText(",", null);
- // action (not implemented)
+ // action (obsolete)
writer.writeText("null", null);
writer.writeText(",", null);
- // onclick (not implemented)
- writer.writeText("null", null);
+ // onclick (treeNodeCommand)
+ String treeNodeCommandClientId = root.getClientId(facesContext);
+ String treeNodeCommandJsClientId = TreeOldRenderer.createJavascriptVariable(treeNodeCommandClientId);
+
+ writer.writeText(treeNodeCommandJsClientId + "_treeNodeCommand", null);
writer.writeText(",", null);
// parent
Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeOldRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeOldRenderer.java?view=diff&rev=565736&r1=565735&r2=565736
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeOldRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeOldRenderer.java Tue Aug 14 06:17:07 2007
@@ -26,12 +26,14 @@
import org.apache.myfaces.tobago.model.TreeState;
import org.apache.myfaces.tobago.renderkit.LayoutableRendererBase;
import org.apache.myfaces.tobago.renderkit.RenderUtil;
+import org.apache.myfaces.tobago.renderkit.html.CommandRendererHelper;
import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
import org.apache.myfaces.tobago.renderkit.html.HtmlConstants;
import org.apache.myfaces.tobago.renderkit.html.HtmlRendererUtil;
import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
import javax.faces.component.NamingContainer;
+import javax.faces.component.UICommand;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
@@ -171,7 +173,7 @@
writer.endElement(HtmlConstants.TABLE);
// writer.endElement(HtmlConstants.DIV);
- String[] scriptTexts = createJavascript(facesContext, clientId, root);
+ String[] scriptTexts = createJavascript(facesContext, clientId, tree, root);
String[] scripts = {"script/tree.js"};
List<String> scriptFiles = ComponentUtil.findPage(tree).getScriptFiles();
@@ -194,7 +196,7 @@
}
private String[] createJavascript(FacesContext facesContext, String clientId,
- UITreeOldNode root)
+ UITreeOld tree, UITreeOldNode root)
throws IOException {
StringBuilder sb = new StringBuilder();
@@ -220,6 +222,8 @@
sb.append(" }\n");
sb.append(" };\n \n");
+ sb.append(getTreeNodeCommandVar(facesContext, tree));
+
sb.append(getNodesAsJavascript(facesContext, root));
sb.append(" var treeDiv = document.getElementById('");
@@ -241,6 +245,29 @@
strings[i] = tokenizer.nextToken();
}
return strings;
+ }
+
+ private String getTreeNodeCommandVar(FacesContext facesContext, UITreeOld tree) {
+ String clientId = tree.getClientId(facesContext);
+ String jsClientId = TreeOldRenderer.createJavascriptVariable(clientId);
+
+ String treeNodeCommandVar = " var " + jsClientId + "_treeNodeCommand = ";
+ UICommand treeNodeCommand = (UICommand) tree.getFacet(UITreeOld.FACET_TREE_NODE_COMMAND);
+ if (treeNodeCommand != null) {
+ CommandRendererHelper helper = new CommandRendererHelper(facesContext,
+ treeNodeCommand);
+ if (helper.getOnclick() != null) {
+ String onclick = helper.getOnclick();
+ String treeNodeCommandClientId = treeNodeCommand.getClientId(facesContext);
+ onclick = onclick.replaceAll("'" + treeNodeCommandClientId + "'", "this.id");
+ treeNodeCommandVar += "\"" + onclick + "\";\n";
+ } else {
+ treeNodeCommandVar += "null;\n";
+ }
+ } else {
+ treeNodeCommandVar += "null;\n";
+ }
+ return treeNodeCommandVar;
}
protected String getNodesAsJavascript(FacesContext facesContext, UITreeOldNode root) throws IOException {
Modified: myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/script/tree.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/script/tree.js?view=diff&rev=565736&r1=565735&r2=565736
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/script/tree.js (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/script/tree.js Tue Aug 14 06:17:07 2007
@@ -547,7 +547,7 @@
eval(this.onclick);
} else {
if (this.mutable) {
- // nothing to do, storeMarker is already don in onFocus()
+ // nothing to do, storeMarker is already done in onFocus()
// storeMarker(Tobago.element(this.id), this.treeHiddenId);
} else if (this.selectable) {
toggleSelect(Tobago.element(this.id),
@@ -555,7 +555,8 @@
this.treeResources.getImage("unchecked.gif"),
this.treeResources.getImage("checked.gif"));
} else {
- Tobago.submitAction(this.id);
+ // nothing to do, onclick has already done it
+// Tobago.submitAction(this.id);
}
}