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 2011/08/09 17:53:23 UTC
svn commit: r1155414 - in /myfaces/tobago/trunk:
tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/
tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/
tobago-example/tobago-example-demo/src/mai...
Author: lofwyr
Date: Tue Aug 9 15:53:22 2011
New Revision: 1155414
URL: http://svn.apache.org/viewvc?rev=1155414&view=rev
Log:
TOBAGO-377: Tree
- Getting "marked" running. This is useful e. g. to highlight the current node in the menu.
Added:
myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeMarkedListener.java
- copied, changed from r1155247, myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeExpansionListener.java
myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeMarkedEvent.java
- copied, changed from r1155247, myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionEvent.java
myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeMarkedListener.java
- copied, changed from r1155247, myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionListener.java
Modified:
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITree.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeNode.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Navigation.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/navigation.xhtml
myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeListboxNodeRenderer.java
myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeListboxRenderer.java
myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuNodeRenderer.java
myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRenderer.java
myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeRenderer.java
myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-tree.js
myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/tag1.1.stg
myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/tag1.2.stg
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITree.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITree.java?rev=1155414&r1=1155413&r2=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITree.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITree.java Tue Aug 9 15:53:22 2011
@@ -41,7 +41,7 @@ public abstract class AbstractUITree ext
public static final String SEP = "-";
public static final String SELECT_STATE = SEP + "selectState";
- public static final String MARKED = SEP + "marked";
+ public static final String MARKED = "marked";
private MixedTreeModel model;
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeNode.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeNode.java?rev=1155414&r1=1155413&r2=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeNode.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITreeNode.java Tue Aug 9 15:53:22 2011
@@ -24,6 +24,8 @@ import org.apache.myfaces.tobago.compone
import org.apache.myfaces.tobago.config.Configurable;
import org.apache.myfaces.tobago.event.TreeExpansionEvent;
import org.apache.myfaces.tobago.event.TreeExpansionListener;
+import org.apache.myfaces.tobago.event.TreeMarkedEvent;
+import org.apache.myfaces.tobago.event.TreeMarkedListener;
import org.apache.myfaces.tobago.model.MixedTreeModel;
import org.apache.myfaces.tobago.model.TreePath;
import org.apache.myfaces.tobago.util.ComponentUtils;
@@ -213,6 +215,22 @@ public abstract class AbstractUITreeNode
setExpanded(expanded);
}
}
+ if (event instanceof TreeMarkedEvent) {
+ FacesUtils.invokeMethodBinding(getFacesContext(), getTreeMarkedListener(), event);
+ boolean marked = ((TreeMarkedEvent) event).isNewMarked();
+
+ if (FacesUtils.hasValueBindingOrValueExpression(this, Attributes.MARKED)) {
+ try {
+ FacesUtils.setValueOfBindingOrExpression(getFacesContext(), marked, this, Attributes.MARKED);
+ } catch (Exception e) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Can't set marked.", e);
+ }
+ }
+ } else {
+ setMarked(marked);
+ }
+ }
}
public void restoreState(FacesContext context, Object componentState) {
@@ -286,6 +304,22 @@ public abstract class AbstractUITreeNode
removeFacesListener(listener);
}
+ public abstract MethodBinding getTreeMarkedListener();
+
+ public abstract void setTreeMarkedListener(MethodBinding treeMarkedListener);
+
+ public void addTreeMarkedListener(TreeMarkedListener listener) {
+ addFacesListener(listener);
+ }
+
+ public TreeMarkedListener[] getTreeMarkedListeners() {
+ return (TreeMarkedListener[]) getFacesListeners(TreeMarkedListener.class);
+ }
+
+ public void removeStateChangeListener(TreeMarkedListener listener) {
+ removeFacesListener(listener);
+ }
+
public abstract boolean isMarked();
public abstract void setMarked(boolean b);
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Navigation.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Navigation.java?rev=1155414&r1=1155413&r2=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Navigation.java (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Navigation.java Tue Aug 9 15:53:22 2011
@@ -209,6 +209,7 @@ public class Navigation implements Seria
private String title;
private String outcome;
private boolean expanded;
+ private boolean marked;
public Node(String path) {
@@ -298,6 +299,14 @@ public class Navigation implements Seria
this.expanded = expanded;
}
+ public boolean isMarked() {
+ return marked;
+ }
+
+ public void setMarked(boolean marked) {
+ this.marked = marked;
+ }
+
@Override
public String toString() {
return outcome;
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/navigation.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/navigation.xhtml?rev=1155414&r1=1155413&r2=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/navigation.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/navigation.xhtml Tue Aug 9 15:53:22 2011
@@ -20,22 +20,15 @@
<f:subview id="navigator"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:tc="http://myfaces.apache.org/tobago/component">
- <tc:panel>
- <f:facet name="layout">
- <tc:gridLayout rows="*"/>
- </f:facet>
-
<tc:treeMenu id="nav">
<tc:treeData value="#{navigation.tree}" var="node" id="data">
- <tc:treeNode expanded="#{node.expanded}">
- <!-- todo: markup="#{node.expanded ? 'marked' : 'other'}"-->
+ <tc:treeNode expanded="#{node.expanded}" marked="#{node.marked}" id="node">
<tc:treeCommand
+ id="cmd"
label="#{node.title}"
action="#{node.action}"
immediate="true"/>
</tc:treeNode>
</tc:treeData>
</tc:treeMenu>
-
- </tc:panel>
</f:subview>
Copied: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeMarkedListener.java (from r1155247, myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeExpansionListener.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeMarkedListener.java?p2=myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeMarkedListener.java&p1=myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeExpansionListener.java&r1=1155247&r2=1155414&rev=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeExpansionListener.java (original)
+++ myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeMarkedListener.java Tue Aug 9 15:53:22 2011
@@ -25,20 +25,20 @@ import javax.faces.component.StateHolder
import javax.faces.context.FacesContext;
-public class MethodExpressionTreeExpansionListener implements TreeExpansionListener, StateHolder {
+public class MethodExpressionTreeMarkedListener implements TreeMarkedListener, StateHolder {
private MethodExpression methodExpression;
private boolean isTransient = false;
- public MethodExpressionTreeExpansionListener() {
+ public MethodExpressionTreeMarkedListener() {
}
- public MethodExpressionTreeExpansionListener(MethodExpression methodExpression) {
+ public MethodExpressionTreeMarkedListener(MethodExpression methodExpression) {
this.methodExpression = methodExpression;
}
- public void treeExpanded(TreeExpansionEvent event) {
+ public void treeMarked(TreeMarkedEvent event) {
FacesUtilsEL.invokeMethodExpression(FacesContext.getCurrentInstance(), methodExpression, event);
}
Copied: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeMarkedEvent.java (from r1155247, myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionEvent.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeMarkedEvent.java?p2=myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeMarkedEvent.java&p1=myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionEvent.java&r1=1155247&r2=1155414&rev=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionEvent.java (original)
+++ myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeMarkedEvent.java Tue Aug 9 15:53:22 2011
@@ -21,50 +21,49 @@ import javax.faces.component.UIComponent
import javax.faces.event.FacesEvent;
import javax.faces.event.FacesListener;
-public class TreeExpansionEvent extends FacesEvent {
+public class TreeMarkedEvent extends FacesEvent {
private static final long serialVersionUID = 422186716954088729L;
- private boolean oldExpanded;
- private boolean newExpanded;
+ private boolean oldMarked;
+ private boolean newMarked;
- public TreeExpansionEvent(UIComponent node, boolean oldExpanded, boolean newExpanded) {
+ public TreeMarkedEvent(UIComponent node, boolean oldMarked, boolean newMarked) {
super(node);
- this.oldExpanded = oldExpanded;
- this.newExpanded = newExpanded;
+ this.oldMarked = oldMarked;
+ this.newMarked = newMarked;
}
public boolean isAppropriateListener(FacesListener facesListener) {
- return facesListener instanceof TreeExpansionListener;
+ return facesListener instanceof TreeMarkedListener;
}
public void processListener(FacesListener facesListener) {
- if (facesListener instanceof TreeExpansionListener) {
- if (oldExpanded && !newExpanded) {
- //todo ((TreeExpansionListener) facesListener).treeCollapsed(this);
- ((TreeExpansionListener) facesListener).treeExpanded(this);
- } else if (!oldExpanded && newExpanded) {
- ((TreeExpansionListener) facesListener).treeExpanded(this);
+ if (facesListener instanceof TreeMarkedListener) {
+ if (oldMarked && !newMarked) {
+ ((TreeMarkedListener) facesListener).treeMarked(this);
+ } else if (!oldMarked && newMarked) {
+ ((TreeMarkedListener) facesListener).treeMarked(this);
} else {
// nothing to do
}
}
}
- public boolean isOldExpanded() {
- return oldExpanded;
+ public boolean isOldMarked() {
+ return oldMarked;
}
- public boolean isNewExpanded() {
- return newExpanded;
+ public boolean isNewMarked() {
+ return newMarked;
}
@Override
public String toString() {
return new StringBuilder()
.append(super.toString())
- .append("expanded=")
- .append(newExpanded)
+ .append("marked=")
+ .append(newMarked)
.toString();
}
}
Copied: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeMarkedListener.java (from r1155247, myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionListener.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeMarkedListener.java?p2=myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeMarkedListener.java&p1=myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionListener.java&r1=1155247&r2=1155414&rev=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionListener.java (original)
+++ myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeMarkedListener.java Tue Aug 9 15:53:22 2011
@@ -19,7 +19,7 @@ package org.apache.myfaces.tobago.event;
import javax.faces.event.FacesListener;
-public interface TreeExpansionListener extends FacesListener {
+public interface TreeMarkedListener extends FacesListener {
- void treeExpanded(TreeExpansionEvent event);
+ void treeMarked(TreeMarkedEvent event);
}
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeListboxNodeRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeListboxNodeRenderer.java?rev=1155414&r1=1155413&r2=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeListboxNodeRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeListboxNodeRenderer.java Tue Aug 9 15:53:22 2011
@@ -23,6 +23,7 @@ import org.apache.myfaces.tobago.compone
import org.apache.myfaces.tobago.component.UITreeNode;
import org.apache.myfaces.tobago.context.Markup;
import org.apache.myfaces.tobago.event.TreeExpansionEvent;
+import org.apache.myfaces.tobago.event.TreeMarkedEvent;
import org.apache.myfaces.tobago.internal.component.AbstractUITree;
import org.apache.myfaces.tobago.internal.context.ResponseWriterDivider;
import org.apache.myfaces.tobago.layout.Display;
@@ -64,7 +65,6 @@ public class TreeListboxNodeRenderer ext
}
AbstractUITree tree = ComponentUtils.findAncestor(node, AbstractUITree.class);
- ;
String treeId = tree.getClientId(facesContext);
String nodeStateId = node.nodeStateId(facesContext);
Map requestParameterMap = facesContext.getExternalContext().getRequestParameterMap();
@@ -77,10 +77,9 @@ public class TreeListboxNodeRenderer ext
}
// select
- String searchString;
if (tree.getSelectableAsEnum() != TreeSelectable.OFF) { // selection
String selected = (String) requestParameterMap.get(treeId + AbstractUITree.SELECT_STATE);
- searchString = ";" + nodeStateId + ";";
+ String searchString = ";" + nodeStateId + ";";
if (StringUtils.contains(selected, searchString)) {
// TODO: add selection to Component
//state.addSelection((DefaultMutableTreeNode) node.getValue());
@@ -88,10 +87,13 @@ public class TreeListboxNodeRenderer ext
}
// marked
- String marked = (String) requestParameterMap.get(treeId + AbstractUITree.MARKED);
+ String marked = (String) requestParameterMap.get(treeId + ComponentUtils.SUB_SEPARATOR + AbstractUITree.MARKED);
if (marked != null) {
- searchString = treeId + NamingContainer.SEPARATOR_CHAR + nodeStateId;
- node.setMarked(marked.equals(searchString));
+ String searchString = treeId + NamingContainer.SEPARATOR_CHAR + nodeStateId;
+ boolean markedValue = marked.equals(searchString);
+ if (node.isMarked() != markedValue) {
+ new TreeMarkedEvent(node, node.isMarked(), markedValue).queue();
+ }
} else {
LOG.warn("This log message is help clarifying the occurrence of this else case.");
}
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeListboxRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeListboxRenderer.java?rev=1155414&r1=1155413&r2=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeListboxRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeListboxRenderer.java Tue Aug 9 15:53:22 2011
@@ -96,8 +96,8 @@ public class TreeListboxRenderer extends
writer.startElement(HtmlElements.INPUT, tree);
writer.writeAttribute(HtmlAttributes.TYPE, "hidden", false);
- writer.writeNameAttribute(clientId + AbstractUITree.MARKED);
- writer.writeIdAttribute(clientId + AbstractUITree.MARKED);
+ writer.writeNameAttribute(clientId + ComponentUtils.SUB_SEPARATOR + AbstractUITree.MARKED);
+ writer.writeIdAttribute(clientId + ComponentUtils.SUB_SEPARATOR + AbstractUITree.MARKED);
writer.writeAttribute(HtmlAttributes.VALUE, "", false);
writer.endElement(HtmlElements.INPUT);
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuNodeRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuNodeRenderer.java?rev=1155414&r1=1155413&r2=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuNodeRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeMenuNodeRenderer.java Tue Aug 9 15:53:22 2011
@@ -23,6 +23,7 @@ import org.apache.myfaces.tobago.context
import org.apache.myfaces.tobago.context.ResourceManagerUtils;
import org.apache.myfaces.tobago.context.UserAgent;
import org.apache.myfaces.tobago.event.TreeExpansionEvent;
+import org.apache.myfaces.tobago.event.TreeMarkedEvent;
import org.apache.myfaces.tobago.internal.component.AbstractUITree;
import org.apache.myfaces.tobago.layout.Display;
import org.apache.myfaces.tobago.renderkit.LayoutComponentRendererBase;
@@ -71,11 +72,14 @@ public class TreeMenuNodeRenderer extend
new TreeExpansionEvent(node, node.isExpanded(), expanded).queue();
}
- // marker
- String marked = requestParameterMap.get(treeId + AbstractUITree.MARKED);
+ // marked
+ String marked = (String) requestParameterMap.get(treeId + ComponentUtils.SUB_SEPARATOR + AbstractUITree.MARKED);
if (marked != null) {
String searchString = treeId + NamingContainer.SEPARATOR_CHAR + nodeStateId;
- node.setMarked(marked.equals(searchString));
+ boolean markedValue = marked.equals(searchString);
+ if (node.isMarked() != markedValue) {
+ new TreeMarkedEvent(node, node.isMarked(), markedValue).queue();
+ }
} else {
LOG.warn("This log message is help clarifying the occurrence of this else case.");
}
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRenderer.java?rev=1155414&r1=1155413&r2=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRenderer.java Tue Aug 9 15:53:22 2011
@@ -24,8 +24,8 @@ import org.apache.myfaces.tobago.compone
import org.apache.myfaces.tobago.context.Markup;
import org.apache.myfaces.tobago.context.ResourceUtils;
import org.apache.myfaces.tobago.event.TreeExpansionEvent;
+import org.apache.myfaces.tobago.event.TreeMarkedEvent;
import org.apache.myfaces.tobago.internal.component.AbstractUITree;
-import org.apache.myfaces.tobago.internal.component.AbstractUITreeNode;
import org.apache.myfaces.tobago.layout.Display;
import org.apache.myfaces.tobago.model.TreeSelectable;
import org.apache.myfaces.tobago.renderkit.LayoutComponentRendererBase;
@@ -93,10 +93,13 @@ public class TreeNodeRenderer extends La
}
// marked
- String marked = (String) requestParameterMap.get(treeId + AbstractUITree.MARKED);
+ String marked = (String) requestParameterMap.get(treeId + ComponentUtils.SUB_SEPARATOR + AbstractUITree.MARKED);
if (marked != null) {
searchString = treeId + NamingContainer.SEPARATOR_CHAR + nodeStateId;
- node.setMarked(marked.equals(searchString));
+ boolean markedValue = marked.equals(searchString);
+ if (node.isMarked() != markedValue) {
+ new TreeMarkedEvent(node, node.isMarked(), markedValue).queue();
+ }
} else {
LOG.warn("This log message is help clarifying the occurrence of this else case.");
}
@@ -124,7 +127,6 @@ public class TreeNodeRenderer extends La
AbstractUITree tree = ComponentUtils.findAncestor(node, AbstractUITree.class);
final boolean folder = node.isFolder();
- final boolean marked = node.isMarked();
final String id = node.getClientId(facesContext);
final int level = node.getLevel();
final boolean root = level == 0;
@@ -177,7 +179,7 @@ public class TreeNodeRenderer extends La
}
private void encodeExpandedHidden(
- TobagoResponseWriter writer, AbstractUITreeNode node, String clientId, boolean expanded) throws IOException {
+ TobagoResponseWriter writer, UITreeNode node, String clientId, boolean expanded) throws IOException {
writer.startElement(HtmlElements.INPUT, node);
writer.writeAttribute(HtmlAttributes.TYPE, "hidden", false);
writer.writeClassAttribute(Classes.create(node, "expanded", Markup.NULL));
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeRenderer.java?rev=1155414&r1=1155413&r2=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeRenderer.java Tue Aug 9 15:53:22 2011
@@ -85,8 +85,9 @@ public class TreeRenderer extends Layout
writer.startElement(HtmlElements.INPUT, tree);
writer.writeAttribute(HtmlAttributes.TYPE, "hidden", false);
- writer.writeNameAttribute(clientId + AbstractUITree.MARKED);
- writer.writeIdAttribute(clientId + AbstractUITree.MARKED);
+ writer.writeNameAttribute(clientId + ComponentUtils.SUB_SEPARATOR + AbstractUITree.MARKED);
+ writer.writeIdAttribute(clientId + ComponentUtils.SUB_SEPARATOR + AbstractUITree.MARKED);
+ writer.writeClassAttribute(Classes.create(tree, "marked"));
writer.writeAttribute(HtmlAttributes.VALUE, "", false);
writer.endElement(HtmlElements.INPUT);
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-tree.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-tree.js?rev=1155414&r1=1155413&r2=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-tree.js (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-tree.js Tue Aug 9 15:53:22 2011
@@ -47,32 +47,6 @@ Tobago.Tree.onDblClick = function(elemen
}
};
-Tobago.Tree.updateMarker = function(node, add) {
- node = Tobago.element(node);
- if (node) {
- node = node.firstChild;
- while (node) {
- if (node.className && node.className.indexOf("tobago-treeNode") > -1) {
- if (add) {
- Tobago.addCssClass(node, "tobago-treeNode-markup-marked");
- } else {
- Tobago.removeCssClass(node, "tobago-treeNode-markup-marked");
- }
- }
- node = node.nextSibling;
- }
- }
-};
-
-Tobago.Tree.storeMarker = function(node, treeHiddenId) {
- var markerHidden = document.getElementById(treeHiddenId + '-marked');
- if (markerHidden) {
- Tobago.Tree.updateMarker(markerHidden.value, false);
- markerHidden.value = node.id;
- }
- Tobago.Tree.updateMarker(node.id, true);
-};
-
function tobagoTreeNodeToggle(element) {
var node = jQuery(element).closest(".tobago-treeNode, .tobago-treeMenuNode");
var content = jQuery(Tobago.escapeClientId(node.attr("id") + Tobago.SUB_COMPONENT_SEP + "content"));
@@ -168,6 +142,28 @@ jQuery(document).ready(function () {
jQuery(this).toggleClass("tobago-treeMenuNode-markup-hover");
});
+ // marked for treeNode
+ jQuery(".tobago-treeNode").focus(function() {
+ var command = jQuery(this);
+ var node = command.parent(".tobago-treeNode");
+ var tree = node.closest(".tobago-tree");
+ var marked = tree.children(".tobago-tree-marked");
+ marked.attr("value", node.attr("id"));
+ tree.find(".tobago-treeNode").removeClass("tobago-treeNode-markup-marked");
+ node.addClass("tobago-treeNode-markup-marked");
+ });
+
+ // marked for treeMenuNode
+ jQuery(".tobago-treeMenuCommand").focus(function() {
+ var command = jQuery(this);
+ var node = command.parent(".tobago-treeMenuNode");
+ var tree = node.closest(".tobago-treeMenu");
+ var marked = tree.children(".tobago-treeMenu-marked");
+ marked.attr("value", node.attr("id"));
+ tree.find(".tobago-treeMenuNode").removeClass("tobago-treeMenuNode-markup-marked");
+ node.addClass("tobago-treeMenuNode-markup-marked");
+ });
+
/*
jQuery(".tobago-treeListbox > div > div > select > option:selected").change();
*/
Modified: myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/tag1.1.stg
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/tag1.1.stg?rev=1155414&r1=1155413&r2=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/tag1.1.stg (original)
+++ myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/tag1.1.stg Tue Aug 9 15:53:22 2011
@@ -284,6 +284,13 @@ if (<it.propertyName> != null && isValue
}
>>
+TreeMarkedListener() ::= <<
+if (<it.propertyName> != null && isValueReference(<it.propertyName>)) {
+ <createMethodBinding(it)>
+ component.set<it.template>(methodBinding);
+}
+>>
+
SuggestMethod() ::= <<
if (<it.propertyName> != null && isValueReference(<it.propertyName>)) {
<createMethodBinding(it)>
Modified: myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/tag1.2.stg
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/tag1.2.stg?rev=1155414&r1=1155413&r2=1155414&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/tag1.2.stg (original)
+++ myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/tag1.2.stg Tue Aug 9 15:53:22 2011
@@ -311,6 +311,12 @@ if (<it.propertyName> != null) {
}
>>
+TreeMarkedListener() ::= <<
+if (<it.propertyName> != null) {
+ component.add<it.template>(new org.apache.myfaces.tobago.event.MethodExpressionTreeMarkedListener(<it.propertyName>));
+}
+>>
+
SuggestMethod() ::= <<
if (<it.propertyName> != null) {
component.set<it.template>Expression(<it.propertyName>);