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);
     }
 
   }