You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2009/01/01 20:21:46 UTC
svn commit: r730593 - in /myfaces/tobago/branches/tobago-1.0.x:
example/demo/src/main/java/org/apache/myfaces/tobago/example/demo/
example/demo/src/main/webapp/overview/
theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborou...
Author: weber
Date: Thu Jan 1 11:21:46 2009
New Revision: 730593
URL: http://svn.apache.org/viewvc?rev=730593&view=rev
Log:
Created: (TOBAGO-736) partial rendering did not work on tx:menuRadio
<https://issues.apache.org/jira/browse/TOBAGO-736>
first version, to show how this was meant
Modified:
myfaces/tobago/branches/tobago-1.0.x/example/demo/src/main/java/org/apache/myfaces/tobago/example/demo/TobagoDemoController.java
myfaces/tobago/branches/tobago-1.0.x/example/demo/src/main/webapp/overview/sheet.jsp
myfaces/tobago/branches/tobago-1.0.x/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java
Modified: myfaces/tobago/branches/tobago-1.0.x/example/demo/src/main/java/org/apache/myfaces/tobago/example/demo/TobagoDemoController.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.0.x/example/demo/src/main/java/org/apache/myfaces/tobago/example/demo/TobagoDemoController.java?rev=730593&r1=730592&r2=730593&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.0.x/example/demo/src/main/java/org/apache/myfaces/tobago/example/demo/TobagoDemoController.java (original)
+++ myfaces/tobago/branches/tobago-1.0.x/example/demo/src/main/java/org/apache/myfaces/tobago/example/demo/TobagoDemoController.java Thu Jan 1 11:21:46 2009
@@ -25,8 +25,10 @@
import org.apache.commons.logging.LogFactory;
import static org.apache.myfaces.tobago.TobagoConstants.ATTR_VALUE;
import static org.apache.myfaces.tobago.TobagoConstants.RENDERER_TYPE_IN;
+import static org.apache.myfaces.tobago.TobagoConstants.FACET_ITEMS;
import org.apache.myfaces.tobago.component.ComponentUtil;
import org.apache.myfaces.tobago.component.UIInput;
+import org.apache.myfaces.tobago.component.UISelectOne;
import org.apache.myfaces.tobago.context.ResourceManagerUtil;
import org.apache.myfaces.tobago.event.SheetStateChangeEvent;
import org.apache.myfaces.tobago.event.TabChangeListener;
@@ -43,6 +45,7 @@
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.faces.validator.ValidatorException;
+import javax.faces.event.ActionEvent;
import javax.servlet.http.HttpSession;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.MutableTreeNode;
@@ -343,7 +346,7 @@
if (value > 100) {
value = 0;
}
- return solarList;
+ return filteredList == null ? solarList : filteredList;
}
public void setSolarList(List<SolarObject> solarList) {
@@ -557,6 +560,63 @@
}
+ private List<SolarObject> filteredList;
+ private SelectItem[] orbitItems;
+ private static final String showAllOrbits = "Show all";
+
+ public void filterOrbit(ActionEvent event) {
+// FacesContext facesContext = FacesContext.getCurrentInstance();
+ UISelectOne selectOne = (UISelectOne) event.getComponent().getFacet(FACET_ITEMS);
+ if (filteredList == null) {
+ filteredList = new ArrayList<SolarObject>();
+ } else {
+ filteredList.clear();
+ }
+
+ String filter = (String) selectOne.getValue();
+ if (showAllOrbits.equals(filter)) {
+ filteredList.addAll(solarList);
+ } else {
+ for (SolarObject solarObject : solarList) {
+ if (solarObject.getOrbit().equalsIgnoreCase(filter)) {
+ filteredList.add(solarObject);
+ }
+ }
+ }
+
+ }
+
+ public SelectItem[] getOrbitItems() {
+ if (orbitItems == null) {
+ createOrbitItems();
+ }
+ return orbitItems;
+ }
+
+ private SelectItem[] createOrbitItems() {
+ orbitItems = new SelectItem[11];
+ orbitItems[0] = new org.apache.myfaces.tobago.model.SelectItem(showAllOrbits);
+ orbitItems[1] = new org.apache.myfaces.tobago.model.SelectItem("Sun");
+ orbitItems[2] = new org.apache.myfaces.tobago.model.SelectItem("Mercury");
+ orbitItems[3] = new org.apache.myfaces.tobago.model.SelectItem("Venus");
+ orbitItems[4] = new org.apache.myfaces.tobago.model.SelectItem("Earth");
+ orbitItems[5] = new org.apache.myfaces.tobago.model.SelectItem("Mars");
+ orbitItems[6] = new org.apache.myfaces.tobago.model.SelectItem("Jupiter");
+ orbitItems[7] = new org.apache.myfaces.tobago.model.SelectItem("Saturn");
+ orbitItems[8] = new org.apache.myfaces.tobago.model.SelectItem("Uranus");
+ orbitItems[9] = new org.apache.myfaces.tobago.model.SelectItem("Neptune");
+ orbitItems[10] = new org.apache.myfaces.tobago.model.SelectItem("Pluto");
+ return orbitItems;
+ }
+
+// public void setOrbitFilter(String orbitFilter) {
+// this.orbitFilter = orbitFilter;
+// }
+//
+// public String getOrbitFilter() {
+// return orbitFilter;
+// }
+
public static class Node {
private String name;
@@ -590,4 +650,5 @@
}
+
}
Modified: myfaces/tobago/branches/tobago-1.0.x/example/demo/src/main/webapp/overview/sheet.jsp
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.0.x/example/demo/src/main/webapp/overview/sheet.jsp?rev=730593&r1=730592&r2=730593&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.0.x/example/demo/src/main/webapp/overview/sheet.jsp (original)
+++ myfaces/tobago/branches/tobago-1.0.x/example/demo/src/main/webapp/overview/sheet.jsp Thu Jan 1 11:21:46 2009
@@ -134,6 +134,14 @@
<tc:out value="#{luminary.number}" id="t_number"/>
</tc:column>
<tc:column label="#{overviewBundle.solarArrayOrbit}" sortable="true" id="orbit">
+ <f:facet name="menupopup">
+ <tc:menu>
+ <tx:menuRadio actionListener="#{demo.filterOrbit}" >
+ <f:selectItems value="#{demo.orbitItems}" />
+ <tc:attribute name="renderedPartially" value=":page:sheet"/>
+ </tx:menuRadio>
+ </tc:menu>
+ </f:facet>
<tc:out value="#{luminary.orbit}" id="t_orbit"/>
</tc:column>
<tc:column label="#{overviewBundle.solarArrayPopulation}" sortable="true" id="population">
Modified: myfaces/tobago/branches/tobago-1.0.x/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.0.x/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java?rev=730593&r1=730592&r2=730593&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.0.x/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java (original)
+++ myfaces/tobago/branches/tobago-1.0.x/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/SheetRenderer.java Thu Jan 1 11:21:46 2009
@@ -102,6 +102,7 @@
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import static java.lang.Boolean.TRUE;
public class SheetRenderer extends LayoutableRendererBase implements SheetRendererWorkaround, AjaxRenderer {
@@ -907,7 +908,7 @@
menu.setId("selectorMenu");
column.getFacets().put(FACET_MENUPOPUP, menu);
menu.setRendererType(RENDERER_TYPE_MENUBAR);
- menu.getAttributes().put(ATTR_MENU_POPUP, Boolean.TRUE);
+ menu.getAttributes().put(ATTR_MENU_POPUP, TRUE);
menu.getAttributes().put(ATTR_MENU_POPUP_TYPE, "SheetSelector");
menu.getAttributes().put(ATTR_IMAGE, "image/sheetSelectorMenu.gif");
@@ -976,6 +977,40 @@
writer.writeAttribute(HtmlAttributes.ALT, "", false);
writer.endElement(HtmlConstants.IMG);
}
+
+ if (column.getFacet(FACET_MENUPOPUP) != null) {
+ renderFilter(facesContext, writer, column);
+ }
+ }
+
+ private void renderFilter(FacesContext facesContext, TobagoResponseWriter writer, UIComponent column) throws IOException {
+
+ UIComponent facet = column.getFacet(FACET_MENUPOPUP);
+
+ if (facet instanceof UIMenu) {
+
+ if (facet.getAttributes().get(ATTR_MENU_POPUP) != TRUE) {
+ facet.setRendererType(RENDERER_TYPE_MENUBAR);
+ facet.getAttributes().put(ATTR_MENU_POPUP, TRUE);
+ facet.getAttributes().put(ATTR_MENU_POPUP_TYPE, "SheetSelector");
+ }
+ if (StringUtils.isBlank((String) facet.getAttributes().get(ATTR_IMAGE))) {
+ facet.getAttributes().put(ATTR_IMAGE, "image/sheetSelectorMenu.gif");
+ }
+
+
+ writer.startElement(HtmlConstants.SPAN, null);
+ writer.writeIdAttribute(column.getClientId(facesContext));
+ writer.writeClassAttribute("tobago-sheet-selector-menu");
+ writer.endElement(HtmlConstants.SPAN);
+ RenderUtil.encode(facesContext, facet);
+
+ } else {
+ LOG.warn("Unknown filter component: " + facet);
+ }
+
+
+
}
private void writeDirectPagingLinks(
@@ -1081,7 +1116,7 @@
link.setRendered(true);
link.setId(command.getToken());
// link.getAttributes().put(ATTR_ACTION_STRING, command);
- link.getAttributes().put(ATTR_INLINE, Boolean.TRUE);
+ link.getAttributes().put(ATTR_INLINE, TRUE);
link.getAttributes().put(ATTR_DISABLED, disabled);
return link;
}