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 2009/04/16 10:14:23 UTC
svn commit: r765504 [2/2] - in /myfaces/tobago/trunk:
core/src/main/java/org/apache/myfaces/tobago/component/
core/src/main/java/org/apache/myfaces/tobago/model/
core/src/main/java/org/apache/myfaces/tobago/taglib/component/
core/src/main/java/org/apac...
Modified: myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-normal.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-normal.xhtml?rev=765504&r1=765503&r2=765504&view=diff
==============================================================================
--- myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-normal.xhtml (original)
+++ myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-normal.xhtml Thu Apr 16 08:14:22 2009
@@ -17,18 +17,19 @@
* limitations under the License.
-->
-<ui:composition template="/WEB-INF/tags/layout/overview.xhtml"
+<ui:composition template="/WEB-INF/tags/layout/plain.xhtml"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:tc="http://myfaces.apache.org/tobago/component"
xmlns:tx="http://myfaces.apache.org/tobago/extension"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
- <ui:param name="title" value="Tree - General"/>
- <tc:box label="Tree - General">
+ <ui:param name="title" value="Tree - General (Event)"/>
+ <tc:box label="Tree - General (Event)">
<f:facet name="layout">
- <tc:gridLayout margin="10px"/>
+ <tc:gridLayout margin="10px" rows="fixed;*"/>
</f:facet>
+ <tc:out value="A tree with a mixed model of static and dynamic nodes. It uses the tree event mechanism." />
<tc:tree id="tree"
showIcons="true"
showJunctions="true"
Copied: myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-state.xhtml (from r722373, myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-normal.xhtml)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-state.xhtml?p2=myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-state.xhtml&p1=myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-normal.xhtml&r1=722373&r2=765504&rev=765504&view=diff
==============================================================================
--- myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-normal.xhtml (original)
+++ myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-state.xhtml Thu Apr 16 08:14:22 2009
@@ -17,35 +17,35 @@
* limitations under the License.
-->
-<ui:composition template="/WEB-INF/tags/layout/overview.xhtml"
+<ui:composition template="/WEB-INF/tags/layout/plain.xhtml"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:tc="http://myfaces.apache.org/tobago/component"
xmlns:tx="http://myfaces.apache.org/tobago/extension"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
- <ui:param name="title" value="Tree - General"/>
- <tc:box label="Tree - General">
+ <ui:param name="title" value="Tree - General (State)"/>
+ <tc:box label="Tree - General (State)">
<f:facet name="layout">
- <tc:gridLayout margin="10px"/>
+ <tc:gridLayout margin="10px" rows="fixed;*"/>
</f:facet>
+ <tc:out value="A tree with a mixed model of static and dynamic nodes. It uses the tree state mechanism." />
<tc:tree id="tree"
showIcons="true"
showJunctions="true"
showRootJunction="true"
- showRoot="true">
+ showRoot="true"
+ state="#{demo.treeState}">
<tc:treeNode label="Root" id="root" expanded="true">
<tc:treeData value="#{treeController.tree}" var="node" id="data">
<tc:treeNode label="#{node.userObject.name}"
id="template"
- expanded="#{node.userObject.expanded}"
markup="#{node.userObject.markup}"
tip="#{node.userObject.tip}"
action="#{node.userObject.action}"
disabled="#{node.userObject.disabled}"
value="#{node}"
- image="image/feather.png"
- treeExpansionListener="#{node.userObject.expansionListener}"/>
+ image="image/feather.png"/>
</tc:treeData>
<tc:treeNode label="2 Action 1" action="#{treeController.action1}" id="action1">
<f:facet name="addendum">
Propchange: myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-state.xhtml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-state.xhtml
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: myfaces/tobago/trunk/example/demo/src/main/webapp/reference/tree/tree-state.xhtml
------------------------------------------------------------------------------
svn:mergeinfo =
Modified: myfaces/tobago/trunk/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/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRenderer.java?rev=765504&r1=765503&r2=765504&view=diff
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/TreeNodeRenderer.java Thu Apr 16 08:14:22 2009
@@ -17,11 +17,6 @@
* limitations under the License.
*/
-/*
- * Created 07.02.2003 16:00:00.
- * $Id$
- */
-
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -33,14 +28,11 @@
import org.apache.myfaces.tobago.component.UITreeNode;
import org.apache.myfaces.tobago.context.ResourceManagerUtil;
import org.apache.myfaces.tobago.context.ResourceUtils;
-import org.apache.myfaces.tobago.model.MixedTreeModel;
+import org.apache.myfaces.tobago.event.TreeExpansionEvent;
+import org.apache.myfaces.tobago.model.TreeState;
import org.apache.myfaces.tobago.renderkit.CommandRendererBase;
import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
import org.apache.myfaces.tobago.renderkit.html.HtmlConstants;
-import static org.apache.myfaces.tobago.renderkit.html.HtmlConstants.A;
-import static org.apache.myfaces.tobago.renderkit.html.HtmlConstants.DIV;
-import static org.apache.myfaces.tobago.renderkit.html.HtmlConstants.IMG;
-import static org.apache.myfaces.tobago.renderkit.html.HtmlConstants.SPAN;
import org.apache.myfaces.tobago.renderkit.html.HtmlStyleMap;
import org.apache.myfaces.tobago.renderkit.html.StyleClasses;
import org.apache.myfaces.tobago.renderkit.html.util.CommandRendererHelper;
@@ -52,7 +44,6 @@
import javax.faces.component.NamingContainer;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
-import javax.swing.tree.DefaultMutableTreeNode;
import java.io.IOException;
import java.util.List;
import java.util.Map;
@@ -71,14 +62,15 @@
@Override
public void decode(FacesContext facesContext, UIComponent component) {
- super.decode(facesContext, component);
+ UITreeNode node = (UITreeNode) component;
- if (ComponentUtil.isOutputOnly(component)) {
+ super.decode(facesContext, node);
+
+ if (ComponentUtil.isOutputOnly(node)) {
return;
}
- AbstractUITreeNode node = (AbstractUITreeNode) component;
- AbstractUITree tree = node.findTree();
+ UITree tree = (UITree)node.findTree();
String treeId = tree.getClientId(facesContext);
String nodeStateId = node.nodeStateId(facesContext);
Map requestParameterMap = facesContext.getExternalContext().getRequestParameterMap();
@@ -86,7 +78,7 @@
// expand state
boolean expanded = Boolean.parseBoolean((String) requestParameterMap.get(id + "-expanded"));
- node.setExpanded(expanded);
+ setExpanded(node, tree, expanded);
// select
String searchString;
@@ -113,32 +105,22 @@
public void encodeBegin(FacesContext facesContext, UIComponent component) throws IOException {
UITreeNode node = (UITreeNode) component;
- UITree root = (UITree) node.findTree();
- MixedTreeModel mixedModel = root.getModel();
-
- mixedModel.onEncodeBegin();
-
- TobagoResponseWriter writer = HtmlRendererUtil.getTobagoResponseWriter(facesContext);
-
- String treeId = root.getClientId(facesContext);
-
- DefaultMutableTreeNode modelNode = (DefaultMutableTreeNode) node.getValue();
-
- boolean folder = mixedModel.isFolder();
+ UITree tree = (UITree) node.findTree();
+ String treeId = tree.getClientId(facesContext);
+ boolean folder = node.isFolder();
boolean marked = node.isMarked();
String id = node.getClientId(facesContext);
- boolean expanded = node.isExpanded();
- boolean menuMode = root.getMode().equals("menu");
-
- boolean showIcons = root.isShowIcons();
- boolean showJunctions = root.isShowJunctions();
- boolean showRootJunction = root.isShowRootJunction();
- boolean showRoot = root.isShowRoot();
- int depth = mixedModel.getDepth();
- boolean isRoot = mixedModel.isRoot();
- boolean hasNextSibling = mixedModel.hasCurrentNodeNextSibling();
- List<Boolean> junctions = mixedModel.getJunctions();
+ int depth = node.getDepth();
+ boolean hasNextSibling = node.isHasNextSibling();
+ List<Boolean> junctions = node.getJunctions();
+
+ boolean expanded = isExpanded(tree, node);
+ boolean menuMode = tree.getMode().equals("menu");
+ boolean showIcons = tree.isShowIcons();
+ boolean showJunctions = tree.isShowJunctions();
+ boolean showRootJunction = tree.isShowRootJunction();
+ boolean showRoot = tree.isShowRoot();
if (!showRoot && junctions.size() > 0) {
junctions.remove(0);
@@ -175,9 +157,10 @@
}
CommandRendererHelper helper = new CommandRendererHelper(facesContext, node);
+ TobagoResponseWriter writer = HtmlRendererUtil.getTobagoResponseWriter(facesContext);
- if (showRoot || !isRoot) {
- writer.startElement(DIV, null);
+ if (showRoot || depth != 0) {
+ writer.startElement(HtmlConstants.DIV, null);
// div id
writer.writeIdAttribute(id);
@@ -188,7 +171,7 @@
// div class (css)
StyleClasses styleClasses = StyleClasses.ensureStyleClasses(node);
styleClasses.updateClassAttributeAndMarkup(node, "treeNode");
- if ("menu".equals(root.getMode())) {
+ if ("menu".equals(tree.getMode())) {
styleClasses.addClass("treeNode", "menu");
if (marked) {
styleClasses.addClass("treeNode", "marker");
@@ -199,7 +182,7 @@
// div style (width)
Integer width = null;
- HtmlStyleMap style = (HtmlStyleMap) root.getAttributes().get(Attributes.STYLE);
+ HtmlStyleMap style = (HtmlStyleMap) tree.getAttributes().get(Attributes.STYLE);
if (style != null) {
width = style.getInt("width");
}
@@ -233,24 +216,15 @@
RenderUtil.encode(facesContext, facet);
}
- writer.endElement(DIV);
+ writer.endElement(HtmlConstants.DIV);
}
if (folder) {
String contentStyle = "display: " + (expanded ? "block" : "none") + ";";
- writer.startElement(DIV, null);
+ writer.startElement(HtmlConstants.DIV, null);
writer.writeIdAttribute(id + "-cont");
writer.writeStyleAttribute(contentStyle);
}
- if (LOG.isDebugEnabled()) {
- String label = node.getLabel();
- int level = modelNode.getLevel();
- StringBuilder builder = new StringBuilder();
- for (int i = 0; i < level; i++) {
- builder.append(" ");
- }
- LOG.debug(builder + "<div name=" + label + ">");
- }
}
private void encodeExpandedHidden(TobagoResponseWriter writer, AbstractUITreeNode node, String clientId,
@@ -276,13 +250,13 @@
onclick += ";" + objOnclick;
}
String src = expanded ? menuOpen : menuClose;
- writer.startElement(IMG, null);
+ writer.startElement(HtmlConstants.IMG, null);
writer.writeClassAttribute("tobago-tree-menu-icon");
writer.writeIdAttribute(id + "-menuIcon");
writer.writeAttribute("src", src, true);
writer.writeAttribute("onclick", onclick, true);
writer.writeAttribute("alt", "", false);
- writer.endElement(IMG);
+ writer.endElement(HtmlConstants.IMG);
}
private void encodeIndent(
@@ -293,14 +267,14 @@
String perpendicular = ResourceManagerUtil.getImageWithPath(facesContext, "image/I.gif");
for (Boolean junction : junctions) {
- writer.startElement(IMG, null);
+ writer.startElement(HtmlConstants.IMG, null);
writer.writeClassAttribute("tree-junction");
if (junction && !menuMode) {
writer.writeAttribute("src", perpendicular, true);
} else {
writer.writeAttribute("src", blank, true);
}
- writer.endElement(IMG);
+ writer.endElement(HtmlConstants.IMG);
}
}
@@ -312,19 +286,19 @@
if (!(!showJunctions
|| !showRootJunction && depth == 0
|| !showRootJunction && !showRoot && depth == 1)) {
- writer.startElement(IMG, null);
+ writer.startElement(HtmlConstants.IMG, null);
writer.writeClassAttribute("tree-junction");
writer.writeIdAttribute(id + "-junction");
String gif = folder && expanded
? (depth == 0
- ? "Rminus.gif"
- : (hasNextSibling ? "Tminus.gif" : "Lminus.gif"))
+ ? "Rminus.gif"
+ : (hasNextSibling ? "Tminus.gif" : "Lminus.gif"))
: ((depth == 0)
- ? "Rplus.gif"
- : (hasNextSibling)
- ? (folder ? "Tplus.gif" : "T.gif")
- : (folder ? "Lplus.gif" : "L.gif")
+ ? "Rplus.gif"
+ : (hasNextSibling)
+ ? (folder ? "Tplus.gif" : "T.gif")
+ : (folder ? "Lplus.gif" : "L.gif")
);
String src = ResourceManagerUtil.getImageWithPath(facesContext, "image/" + gif);
@@ -337,7 +311,7 @@
// str += '<img class="tree-junction" id="' + this.id
// + '-junction" src="' + this.treeResources.getImage("blank.gif")
// + '" alt="">';
- writer.endElement(IMG);
+ writer.endElement(HtmlConstants.IMG);
}
}
@@ -347,7 +321,7 @@
throws IOException {
if (showIcons) {
- writer.startElement(IMG, null);
+ writer.startElement(HtmlConstants.IMG, null);
writer.writeClassAttribute("tree-icon");
writer.writeIdAttribute(id + "-icon");
@@ -356,7 +330,7 @@
writer.writeAttribute("onclick", createOnclickForToggle(treeId, openSource, closedSource), true);
}
writer.writeAttribute("alt", "", false);
- writer.endElement(IMG);
+ writer.endElement(HtmlConstants.IMG);
}
}
@@ -388,9 +362,9 @@
throws IOException {
if (helper.isDisabled()) {
- writer.startElement(SPAN, null);
+ writer.startElement(HtmlConstants.SPAN, null);
} else {
- writer.startElement(A, null);
+ writer.startElement(HtmlConstants.A, null);
writer.writeAttribute(HtmlAttributes.HREF, helper.getHref(), true);
writer.writeAttribute(HtmlAttributes.ONCLICK, helper.getOnclick(), true); // xxx is escaping required?
writer.writeAttribute(
@@ -413,9 +387,9 @@
}
writer.writeText(label);
if (helper.isDisabled()) {
- writer.endElement(SPAN);
+ writer.endElement(HtmlConstants.SPAN);
} else {
- writer.endElement(A);
+ writer.endElement(HtmlConstants.A);
}
}
@@ -423,31 +397,42 @@
public void encodeEnd(FacesContext facesContext, UIComponent component) throws IOException {
UITreeNode node = (UITreeNode) component;
- UITree root = (UITree) node.findTree();
- MixedTreeModel mixedModel = root.getModel();
- boolean folder = mixedModel.isFolder();
-
- mixedModel.onEncodeEnd();
-
+ boolean folder = node.isFolder();
String id = node.getClientId(facesContext);
TobagoResponseWriter writer = HtmlRendererUtil.getTobagoResponseWriter(facesContext);
if (folder) {
- writer.endElement(DIV);
+ writer.endElement(HtmlConstants.DIV);
writer.writeComment("\nend of " + id + "-cont ");
}
+ }
- if (LOG.isDebugEnabled()) {
- String label = node.getLabel();
- int level = mixedModel.getDepth();
- StringBuilder builder = new StringBuilder();
- for (int i = 0; i < level; i++) {
- builder.append(" ");
+ private boolean isExpanded(UITree tree, UITreeNode node) {
+ TreeState state = (TreeState) tree.getState();
+ if (state != null) {
+ return state.getExpanded().contains(node.getPath());
+ } else if (node.isExpanded() != null) {
+ return node.isExpanded();
+ } else {
+ return false;
+ }
+ }
+
+ private void setExpanded(UITreeNode node, UITree tree, boolean expanded) {
+ boolean oldExpanded = isExpanded(tree, node);
+ if (tree.getState() != null) {
+ if (expanded) {
+ ((TreeState) tree.getState()).getExpanded().add(node.getPath());
+ } else {
+ ((TreeState) tree.getState()).getExpanded().remove(node.getPath());
}
- LOG.debug(builder + "</div> <!-- " + label + " -->");
+ } else {
+ node.setExpanded(expanded);
+ }
+ if (oldExpanded != expanded) {
+ node.queueEvent(new TreeExpansionEvent(node, node.isExpanded(), expanded));
}
}
-
}
Modified: myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/mozilla/style/style.css
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/mozilla/style/style.css?rev=765504&r1=765503&r2=765504&view=diff
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/mozilla/style/style.css (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/mozilla/style/style.css Thu Apr 16 08:14:22 2009
@@ -31,15 +31,6 @@
/* Tree -------------------------------------------------------------------- */
-div.tobago-treeOld-default {
- height: 100%;
-}
-
-table.tobago-treeOld-default {
-/* this fixes scroolbar bug in mozilla >= 1.6 */
- margin: 1px;
-}
-
/* toolBar -------------------------------------------------------------------- */
.tobago-toolBar-button-menu-background-image {
Modified: myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/style.css
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/style.css?rev=765504&r1=765503&r2=765504&view=diff
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/style.css (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/style.css Thu Apr 16 08:14:22 2009
@@ -110,15 +110,6 @@
/* Tree old -------------------------------------------------------------------- */
-.tobago-treeOld-default {
- overflow: auto;
- padding: 0px;
- margin: 0px;
- font: icon;
- color: black;
- white-space: nowrap;
-}
-
.tree-folder-label, .tree-item-label, .tree-folder-label:active,
.tree-item-label:active, .tree-folder-label:hover, .tree-item-label:hover {
margin-left: 3px;
Copied: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeExpansionListener.java (from r713180, myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionStateChangeListener.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeExpansionListener.java?p2=myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeExpansionListener.java&p1=myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionStateChangeListener.java&r1=713180&r2=765504&rev=765504&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionStateChangeListener.java (original)
+++ myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeExpansionListener.java Thu Apr 16 08:14:22 2009
@@ -17,29 +17,29 @@
* limitations under the License.
*/
-import javax.el.MethodExpression;
import javax.el.ELContext;
-import javax.faces.event.AbortProcessingException;
-import javax.faces.context.FacesContext;
+import javax.el.MethodExpression;
import javax.faces.component.StateHolder;
+import javax.faces.context.FacesContext;
+import javax.faces.event.AbortProcessingException;
-public class MethodExpressionStateChangeListener implements SheetStateChangeListener, StateHolder {
+public class MethodExpressionTreeExpansionListener implements TreeExpansionListener, StateHolder {
private MethodExpression methodExpression;
private boolean isTransient = false;
- public MethodExpressionStateChangeListener() {
+ public MethodExpressionTreeExpansionListener() {
}
- public MethodExpressionStateChangeListener(MethodExpression methodExpression) {
+ public MethodExpressionTreeExpansionListener(MethodExpression methodExpression) {
this.methodExpression = methodExpression;
}
- public void processSheetStateChange(SheetStateChangeEvent actionEvent) throws AbortProcessingException {
+ public void treeExpanded(TreeExpansionEvent event) {
try {
- Object[] params = new Object[]{actionEvent};
+ Object[] params = new Object[]{event};
methodExpression.invoke(elContext(), params);
} catch (Exception e) {
throw new AbortProcessingException(e);
@@ -66,4 +66,4 @@
return isTransient;
}
-}
+}
\ No newline at end of file
Propchange: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeExpansionListener.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeExpansionListener.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/MethodExpressionTreeExpansionListener.java
------------------------------------------------------------------------------
svn:mergeinfo =
Copied: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionEvent.java (from r713180, myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TabChangeEvent.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionEvent.java?p2=myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionEvent.java&p1=myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TabChangeEvent.java&r1=713180&r2=765504&rev=765504&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TabChangeEvent.java (original)
+++ myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionEvent.java Thu Apr 16 08:14:22 2009
@@ -18,69 +18,53 @@
*/
import javax.faces.component.UIComponent;
-import javax.faces.event.ActionEvent;
+import javax.faces.event.FacesEvent;
import javax.faces.event.FacesListener;
-/*
- * User: weber
- * Date: 13.12.2004
- * Time: 16:25:03
- */
-public class TabChangeEvent extends ActionEvent {
+public class TreeExpansionEvent extends FacesEvent {
private static final long serialVersionUID = 422186716954088729L;
- private Integer oldTabIndex;
- private Integer newTabIndex;
-
- public TabChangeEvent(UIComponent uiComponent, Integer oldTabIndex, Integer newTabIndex) {
- super(uiComponent);
- this.oldTabIndex = oldTabIndex;
- this.newTabIndex = newTabIndex;
- }
+ private boolean oldExpanded;
+ private boolean newExpanded;
- @Deprecated
- public TabChangeEvent(UIComponent uiComponent, Object oldState, Object newState) {
- super(uiComponent);
- setOldState(oldState);
- setNewState(newState);
+ public TreeExpansionEvent(UIComponent node, boolean oldExpanded, boolean newExpanded) {
+ super(node);
+ this.oldExpanded = oldExpanded;
+ this.newExpanded = newExpanded;
}
public boolean isAppropriateListener(FacesListener facesListener) {
- return facesListener instanceof TabChangeListener;
+ return facesListener instanceof TreeExpansionListener;
}
public void processListener(FacesListener facesListener) {
- if (facesListener instanceof TabChangeListener) {
- ((TabChangeListener) facesListener).processTabChange(this);
+ if (facesListener instanceof TreeExpansionListener) {
+ if (oldExpanded && !newExpanded) {
+ //todo ((TreeExpansionListener) facesListener).treeCollapsed(this);
+ ((TreeExpansionListener) facesListener).treeExpanded(this);
+ } else if (!oldExpanded && newExpanded) {
+ ((TreeExpansionListener) facesListener).treeExpanded(this);
+ } else {
+ // nothing to do
+ }
}
}
- public int getOldTabIndex() {
- return oldTabIndex;
- }
-
- public int getNewTabIndex() {
- return newTabIndex;
- }
-
- @Deprecated
- public Object getOldState() {
- return oldTabIndex;
- }
-
- @Deprecated
- public void setOldState(Object oldTabIndex) {
- this.oldTabIndex = oldTabIndex instanceof Integer ? (Integer) oldTabIndex : -1;
+ public boolean isOldExpanded() {
+ return oldExpanded;
}
- @Deprecated
- public Object getNewState() {
- return newTabIndex;
+ public boolean isNewExpanded() {
+ return newExpanded;
}
- @Deprecated
- public void setNewState(Object newTabIndex) {
- this.newTabIndex = newTabIndex instanceof Integer ? (Integer) newTabIndex : -1;
+ @Override
+ public String toString() {
+ return new StringBuilder()
+ .append(super.toString())
+ .append("expanded=")
+ .append(newExpanded)
+ .toString();
}
}
Propchange: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionEvent.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionEvent.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionEvent.java
------------------------------------------------------------------------------
svn:mergeinfo =
Added: 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/TreeExpansionListener.java?rev=765504&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionListener.java (added)
+++ myfaces/tobago/trunk/tobago-jsf-compat/src/main/java/org/apache/myfaces/tobago/event/TreeExpansionListener.java Thu Apr 16 08:14:22 2009
@@ -0,0 +1,6 @@
+package org.apache.myfaces.tobago.event;
+
+public interface TreeExpansionListener {
+
+ void treeExpanded(TreeExpansionEvent event);
+}
Modified: myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/generate/PropertyInfo.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/generate/PropertyInfo.java?rev=765504&r1=765503&r2=765504&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/generate/PropertyInfo.java (original)
+++ myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/java/org/apache/myfaces/tobago/apt/generate/PropertyInfo.java Thu Apr 16 08:14:22 2009
@@ -81,6 +81,10 @@
return type;
}
+ public String getInternalType() {
+ return "boolean".equals(type) ? Boolean.class.getName() : getType();
+ }
+
public boolean isWidthOrHeight() {
return "width".equals(name) || "height".equals(name);
}
Modified: myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/component1.1.stg
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/component1.1.stg?rev=765504&r1=765503&r2=765504&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/component1.1.stg (original)
+++ myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/component1.1.stg Thu Apr 16 08:14:22 2009
@@ -280,7 +280,7 @@
}
>>
-BooleanProperty(property) ::= <<
+booleanProperty(property) ::= <<
public boolean is<property.upperCamelCaseName>() {
if (<property.propertyName> != null) {
@@ -305,10 +305,39 @@
}
>>
+BooleanProperty(property) ::= <<
+
+public java.lang.Boolean is<property.upperCamelCaseName>() {
+ if (<property.propertyName> != null) {
+ return <property.propertyName>;
+ }
+ <getValueExpression(property)>
+ if (vb != null) {
+ Boolean bool = (Boolean) <getValue(property)>
+ if (bool != null) {
+ return bool;
+ }
+ }
+ <if(property.defaultCode)>
+ return <property.defaultCode>;
+ <else>
+ return null;
+ <endif>
+}
+
+public void set<property.upperCamelCaseName>(java.lang.Boolean <property.propertyName>) {
+ this.<property.propertyName> = <property.propertyName>;
+}
+>>
+
SeverityProperty(property) ::= <<
<NormalProperty(property)>
>>
+MeasureProperty(property) ::= <<
+<NormalProperty(property)>
+>>
+
OrderByProperty(property) ::= <<
<NormalProperty(property)>
>>
@@ -367,15 +396,7 @@
field() ::= <<
-private <it.type> <it.propertyName>;
->>
-
-restoreStateField() ::= <<
-<it.propertyName> = (<it.type>) values[<i>];
->>
-
-saveStateField() ::= <<
-values[<it.indexPlusOne>] = <it.propertyName>;
+private <it.internalType> <it.propertyName>;
>>
WizardSaveStateProperty() ::= <<
@@ -398,6 +419,10 @@
values[<it.indexPlusOne>] = <it.propertyName>;
>>
+booleanSaveStateProperty() ::= <<
+values[<it.indexPlusOne>] = <it.propertyName>;
+>>
+
BooleanSaveStateProperty() ::= <<
values[<it.indexPlusOne>] = <it.propertyName>;
>>
@@ -439,6 +464,10 @@
<it.propertyName> = (<it.type>) values[<it.indexPlusOne>];
>>
+booleanRestoreStateProperty() ::= <<
+<it.propertyName> = (<it.internalType>) values[<it.indexPlusOne>];
+>>
+
BooleanRestoreStateProperty() ::= <<
<it.propertyName> = (<it.type>) values[<it.indexPlusOne>];
>>
Modified: myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/component1.2.stg
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/component1.2.stg?rev=765504&r1=765503&r2=765504&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/component1.2.stg (original)
+++ myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/component1.2.stg Thu Apr 16 08:14:22 2009
@@ -183,7 +183,7 @@
}
>>
-BooleanProperty(property) ::= <<
+booleanProperty(property) ::= <<
public boolean is<property.upperCamelCaseName>() {
if (<property.propertyName> != null) {
@@ -212,6 +212,35 @@
}
>>
+BooleanProperty(property) ::= <<
+
+public java.lang.Boolean is<property.upperCamelCaseName>() {
+ if (<property.propertyName> != null) {
+ return <property.propertyName>;
+ }
+ <getValueExpression(property)>
+ if (ve != null) {
+ try {
+ Boolean bool = (Boolean) <getValue(property)>
+ if (bool != null) {
+ return bool;
+ }
+ } catch (javax.el.ELException e) {
+ throw new javax.faces.FacesException(e);
+ }
+ }
+ <if(property.defaultCode)>
+ return <property.defaultCode>;
+ <else>
+ return null;
+ <endif>
+}
+
+public void set<property.upperCamelCaseName>(java.lang.Boolean <property.propertyName>) {
+ this.<property.propertyName> = <property.propertyName>;
+}
+>>
+
SeverityProperty(property) ::= <<
<NormalProperty(property)>
>>
@@ -344,6 +373,10 @@
values[<it.indexPlusOne>] = <it.propertyName>;
>>
+booleanSaveStateProperty() ::= <<
+values[<it.indexPlusOne>] = <it.propertyName>;
+>>
+
BooleanSaveStateProperty() ::= <<
values[<it.indexPlusOne>] = <it.propertyName>;
>>
@@ -392,6 +425,10 @@
<it.propertyName> = (<it.type>) values[<it.indexPlusOne>];
>>
+booleanRestoreStateProperty() ::= <<
+<it.propertyName> = (<it.internalType>) values[<it.indexPlusOne>];
+>>
+
BooleanRestoreStateProperty() ::= <<
<it.propertyName> = (<it.type>) values[<it.indexPlusOne>];
>>
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=765504&r1=765503&r2=765504&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 Thu Apr 16 08:14:22 2009
@@ -154,6 +154,16 @@
}
>>
+boolean() ::= <<
+if (<it.propertyName> != null) {
+ if (isValueReference(<it.propertyName>)) {
+ <createValueBinding(it)>
+ } else {
+ component.set<it.upperCamelCaseName>(Boolean.parseBoolean(<it.propertyName>));
+ }
+}
+>>
+
Boolean() ::= <<
if (<it.propertyName> != null) {
if (isValueReference(<it.propertyName>)) {
@@ -179,6 +189,18 @@
}
>>
+/*
+Measure() ::= <<
+if (<it.propertyName> != null) {
+ if (isValueReference(<it.propertyName>)) {
+ <createValueBinding(it)>
+ } else {
+ component.set<it.upperCamelCaseName>(org.apache.myfaces.tobago.layout.Measure.parse(<it.propertyName>));
+ }
+}
+>>
+*/
+
OrderBy() ::= <<
if (<it.propertyName> != null) {
if (isValueReference(<it.propertyName>)) {
@@ -234,6 +256,13 @@
}
>>
+TreeExpansionListener() ::= <<
+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=765504&r1=765503&r2=765504&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 Thu Apr 16 08:14:22 2009
@@ -182,6 +182,16 @@
}
>>
+boolean() ::= <<
+if (<it.propertyName> != null) {
+ if (!<it.propertyName>.isLiteralText()) {
+ <createValueBinding(it)>
+ } else {
+ component.set<it.upperCamelCaseName>(Boolean.parseBoolean(<it.propertyName>.getExpressionString()));
+ }
+}
+>>
+
Boolean() ::= <<
if (<it.propertyName> != null) {
if (!<it.propertyName>.isLiteralText()) {
@@ -260,6 +270,12 @@
}
>>
+TreeExpansionListener() ::= <<
+if (<it.propertyName> != null) {
+ component.add<it.template>(new org.apache.myfaces.tobago.event.MethodExpressionTreeExpansionListener(<it.propertyName>));
+}
+>>
+
SuggestMethod() ::= <<
if (<it.propertyName> != null) {
component.set<it.template>Expression(<it.propertyName>);
Modified: myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/tagAbstract1.1.stg
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/tagAbstract1.1.stg?rev=765504&r1=765503&r2=765504&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/tagAbstract1.1.stg (original)
+++ myfaces/tobago/trunk/tobago-tool/tobago-tool-apt/src/main/resources/org/apache/myfaces/tobago/apt/tagAbstract1.1.stg Thu Apr 16 08:14:22 2009
@@ -158,6 +158,18 @@
}
>>
+/*
+Measure() ::= <<
+if (<it.propertyName> != null) {
+ if (isValueReference(<it.propertyName>)) {
+ <createValueBinding(it)>
+ } else {
+ component.set<it.upperCamelCaseName>(org.apache.myfaces.tobago.layout.Measure.parse(<it.propertyName>));
+ }
+}
+>>
+*/
+
OrderBy() ::= <<
if (<it.propertyName> != null) {
if (isValueReference(<it.propertyName>)) {