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/10/17 20:58:32 UTC

svn commit: r1185325 - in /myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main: java/org/apache/myfaces/tobago/example/demo/TobagoDemoController.java webapp/content/02/00/ webapp/content/02/00/sheet-master-detail.xhtml

Author: lofwyr
Date: Mon Oct 17 18:58:31 2011
New Revision: 1185325

URL: http://svn.apache.org/viewvc?rev=1185325&view=rev
Log:
master-detail example with <tc:columnEvent>

Added:
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/02/00/
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/02/00/sheet-master-detail.xhtml
      - copied, changed from r1185036, myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/02/sheet.xhtml
Modified:
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/TobagoDemoController.java

Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/TobagoDemoController.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/TobagoDemoController.java?rev=1185325&r1=1185324&r2=1185325&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/TobagoDemoController.java (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/TobagoDemoController.java Mon Oct 17 18:58:31 2011
@@ -35,6 +35,7 @@ import org.slf4j.LoggerFactory;
 import javax.faces.application.FacesMessage;
 import javax.faces.component.UIColumn;
 import javax.faces.component.UIComponent;
+import javax.faces.component.UIData;
 import javax.faces.context.ExternalContext;
 import javax.faces.context.FacesContext;
 import javax.faces.event.ActionEvent;
@@ -72,6 +73,8 @@ public class TobagoDemoController {
 
   private String solarArrayColumnLayout;
 
+  private SolarObject currentSolarObject;
+
   private DefaultMutableTreeNode tree;
 
   private boolean showJunctions;
@@ -354,6 +357,14 @@ public class TobagoDemoController {
   }
 
 
+  public void selectLuminary(ActionEvent actionEvent) {
+    LOG.info("actionEvent=" + actionEvent);
+//    final List<Integer> selectedRows = sheetState.getSelectedRows();
+    final UIData data = ComponentUtils.findAncestor(actionEvent.getComponent(), UIData.class);
+    currentSolarObject = (SolarObject) data.getRowData();
+    LOG.info("Selected: " + currentSolarObject.getName());
+  }
+
   public void setSolarList(List<SolarObject> solarList) {
     this.solarList = solarList;
   }
@@ -557,4 +568,7 @@ public class TobagoDemoController {
 
   }
 
+  public SolarObject getCurrentSolarObject() {
+    return currentSolarObject;
+  }
 }

Copied: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/02/00/sheet-master-detail.xhtml (from r1185036, myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/02/sheet.xhtml)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/02/00/sheet-master-detail.xhtml?p2=myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/02/00/sheet-master-detail.xhtml&p1=myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/02/sheet.xhtml&r1=1185036&r2=1185325&rev=1185325&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/02/sheet.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/02/00/sheet-master-detail.xhtml Mon Oct 17 18:58:31 2011
@@ -23,162 +23,33 @@
                 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="#{overviewBundle.sheet}"/>
+  <ui:param name="title" value="Sheet as Master-Details example"/>
 
-  <f:facet name="toolBar">
-    <tc:toolBar>
-      <tc:toolBarCommand
-          label="#{overviewBundle.sheet_resetLabel}" tip="#{overviewBundle.sheet_resetTip}"
-          actionListener="#{overviewController.resetColumnWidths}" />
-      <tc:toolBarCommand label="#" tip="#{overviewBundle.sheet_configTip}" renderedPartially="sheetConfigPopup" >
-        <f:facet name="popup">
-          <tc:popup width="300px" height="275px" id="sheetConfigPopup">
-            <tc:box label="#{overviewBundle.sheet_configTitle}">
-              <f:facet name="layout">
-                <tc:gridLayout rows="fixed;fixed;fixed;fixed;fixed;fixed;fixed;fixed;fixed;1*;fixed"/>
-              </f:facet>
-              <tx:selectOneChoice label="showHeader"
-                                  value="#{overviewController.sheetConfig.sheetShowHeader}"
-                                  tip="TODO: show Header Text">
-                <f:selectItem itemValue="#{true}" itemLabel="True"/>
-                <f:selectItem itemValue="#{false}" itemLabel="False"/>
-              </tx:selectOneChoice>
-              <tx:selectBooleanCheckbox
-                  label="showPagingAlways" value="#{overviewController.sheetConfig.showPagingAlways}"/>
-              <tx:in label="first"
-                     value="#{overviewController.sheetConfig.sheetFirst}"
-                     tip="TODO: paging Start Text">
-                <f:validateLongRange minimum="0"/>
-              </tx:in>
-              <tx:in label="rows"
-                     value="#{overviewController.sheetConfig.sheetRows}"
-                     tip="TODO: paging Lenght Text">
-                <f:validateLongRange minimum="0"/>
-              </tx:in>
-
-              <tx:selectOneChoice label="showRowRange"
-                                  value="#{overviewController.sheetConfig.sheetRowPagingPosition}"
-                                  tip="TODO: paging DirectLinkCount Text">
-                <f:selectItems value="#{overviewController.sheetConfig.sheetPagingPositionItems}"/>
-              </tx:selectOneChoice>
-
-              <tx:selectOneChoice label="showPageRange"
-                                  value="#{overviewController.sheetConfig.sheetPagePagingPosition}"
-                                  tip="TODO: paging DirectLinkCount Text">
-                <f:selectItems value="#{overviewController.sheetConfig.sheetPagingPositionItems}"/>
-              </tx:selectOneChoice>
-
-              <tx:selectOneChoice label="showDirectLinks"
-                                  value="#{overviewController.sheetConfig.sheetDirectPagingPosition}"
-                                  tip="TODO: paging DirectLinkCount Text">
-                <f:selectItems value="#{overviewController.sheetConfig.sheetPagingPositionItems}"/>
-              </tx:selectOneChoice>
-
-              <tx:selectOneChoice label="directLinkCount"
-                                  value="#{overviewController.sheetConfig.sheetDirectLinkCount}"
-                                  tip="TODO: paging DirectLinkCount Text">
-                <f:selectItems value="#{overviewController.sheetConfig.sheetDirectLinkCountItems}"/>
-              </tx:selectOneChoice>
-
-              <tx:selectOneChoice label="selectable"
-                                  value="#{overviewController.sheetConfig.selectable}"
-                                  tip="TODO: selectable Text">
-                <f:selectItems value="#{overviewController.sheetConfig.sheetSelectableItems}"/>
-              </tx:selectOneChoice>
-
-              <tc:cell/>
-
-              <tc:panel>
-                <f:facet name="layout">
-                  <tc:gridLayout columns="*;auto;auto"/>
-                </f:facet>
-                <tc:cell/>
-                <tc:button label="Cancel">
-                  <tc:attribute name="popupClose" value="immediate"/>
-                </tc:button>
-                <tc:button label="Ok">
-                  <tc:attribute name="popupClose" value="afterSubmit"/>
-                  <tc:attribute name="renderedPartially" value=":page:content"/>
-                </tc:button>
-              </tc:panel>
-            </tc:box>
-          </tc:popup>
-        </f:facet>
-      </tc:toolBarCommand>
-    </tc:toolBar>
-  </f:facet>
-
-  <tc:panel>
+  <tc:panel id="panel">
     <f:facet name="layout">
-      <tc:gridLayout rows="1*;auto;3*"/>
+      <tc:gridLayout rows="1*;3*" columns="*;*"/>
     </f:facet>
 
-    <tc:out escape="false" value="#{overviewBundle.sheet_text}"/>
-
-    <tc:panel>
-      <f:facet name="layout">
-        <tc:gridLayout columns="*;auto;auto"/>
-      </f:facet>
-      <tc:cell/>
-      <tc:button label="#{overviewBundle.sheet_resetLabel}" tip="#{overviewBundle.sheet_resetTip}"
-                 actionListener="#{overviewController.resetColumnWidths}" />
-      <tc:button label="Sheet Configuration" renderedPartially="sheetConfigPopup">
-        <tc:popupReference for="sheetConfigPopup"/>
-      </tc:button>
-    </tc:panel>
+    <tc:out escape="false" value="Klick on a row and ">
+      <tc:gridLayoutConstraint columnSpan="2"/>
+    </tc:out>
 
     <tc:sheet value="#{demo.solarList}" id="sheet"
-              columns="3*;1*;3*;3*;3*;3*" var="luminary"
-              state="#{demo.sheetState}"
-              showHeader="#{overviewController.sheetConfig.sheetShowHeader}"
-              showPagingAlways="#{overviewController.sheetConfig.showPagingAlways}"
-              showRowRange="#{overviewController.sheetConfig.sheetRowPagingPosition}"
-              showPageRange="#{overviewController.sheetConfig.sheetPagePagingPosition}"
-              showDirectLinks="#{overviewController.sheetConfig.sheetDirectPagingPosition}"
-              first="#{overviewController.sheetConfig.sheetFirst}"
-              rows="#{overviewController.sheetConfig.sheetRows}"
-              directLinkCount="#{overviewController.sheetConfig.sheetDirectLinkCount}"
-              stateChangeListener="#{demo.stateChangeListener}"
-              sortActionListener="#{overviewController.sheetSorter}"
-              selectable="#{overviewController.sheetConfig.selectable}">
-<!--
-      <f:facet name="reload">
-        <tc:reload frequency="2000" />
-      </f:facet>
--->
-      <tc:column label="#{overviewBundle.solarArrayName}" id="name" sortable="true" markup="#{luminary.markup}">
+              columns="*" var="luminary"
+              state="#{demo.sheetState}">
+      <tc:column label="#{overviewBundle.solarArrayName}" id="name">
         <tc:out value="#{luminary.name}" id="t_name"/>
       </tc:column>
-      <tc:column label="#{overviewBundle.solarArrayNumber}" id="number" sortable="false" resizable="false"
-                 tip="#{overviewBundle.solarArrayNumberTip}" align="center">
-        <tc:out value="#{luminary.number}" id="t_number"/>
-      </tc:column>
-      <tc:column label="#{overviewBundle.solarArrayOrbit}" sortable="true" id="orbit">
-        <f:facet name="dropDownMenu">
-          <tc:menu>
-            <tc:menuCommand onclick="alert('Not implemented yet, only in Tobago 1.0.x')">
-            </tc:menuCommand>
-          </tc:menu>
-        </f:facet>
-        <tc:panel>
-          <f:facet name="click">
-            <tc:command actionListener="#{demo.selectOrbit}" >
-              <f:param value="#{luminary}" name="luminary"/>
-              <tc:attribute name="renderedPartially" value="sheet"/>
-            </tc:command>
-          </f:facet>
-          <tc:out value="#{luminary.orbit}" id="t_orbit"/>
-        </tc:panel>
-      </tc:column>
-      <tc:column label="#{overviewBundle.solarArrayPopulation}" sortable="true" id="population">
-        <tc:in value="#{luminary.population}" id="t_population"/>
-      </tc:column>
-      <tc:column label="#{overviewBundle.solarArrayDistance}" sortable="true" align="right" id="distance">
-        <tc:out value="#{luminary.distance}" id="t_distance"/>
-      </tc:column>
-      <tc:column label="#{overviewBundle.solarArrayPeriod}" sortable="true" align="right" id="period">
-        <tc:out value="#{luminary.period}" id="t_period"/>
-      </tc:column>
+      <tc:columnEvent event="click">
+						<tc:command actionListener="#{demo.selectLuminary}">
+							<tc:attribute name="renderedPartially" value=":page:detail" />
+						</tc:command>
+					</tc:columnEvent>
     </tc:sheet>
+
+    <tc:panel id="detail">
+      <tx:in label="Name" value="#{demo.currentSolarObject.name}"/>
+    </tc:panel>
+
   </tc:panel>
 </ui:composition>