You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@click.apache.org by sa...@apache.org on 2010/06/23 17:10:17 UTC
svn commit: r957241 - in /click/trunk/examples/click-bench: build.xml
jmeter/benchmark.jmx lib/clickclick-core-0.3.jar
src/benchmark/click/repeater/
src/benchmark/click/repeater/CustomerList.java web/click/repeater/
web/click/repeater/customer-list.htm
Author: sabob
Date: Wed Jun 23 15:10:16 2010
New Revision: 957241
URL: http://svn.apache.org/viewvc?rev=957241&view=rev
Log:
included a repeater test
Added:
click/trunk/examples/click-bench/lib/clickclick-core-0.3.jar (with props)
click/trunk/examples/click-bench/src/benchmark/click/repeater/
click/trunk/examples/click-bench/src/benchmark/click/repeater/CustomerList.java
click/trunk/examples/click-bench/web/click/repeater/
click/trunk/examples/click-bench/web/click/repeater/customer-list.htm
Modified:
click/trunk/examples/click-bench/build.xml
click/trunk/examples/click-bench/jmeter/benchmark.jmx
Modified: click/trunk/examples/click-bench/build.xml
URL: http://svn.apache.org/viewvc/click/trunk/examples/click-bench/build.xml?rev=957241&r1=957240&r2=957241&view=diff
==============================================================================
--- click/trunk/examples/click-bench/build.xml (original)
+++ click/trunk/examples/click-bench/build.xml Wed Jun 23 15:10:16 2010
@@ -21,7 +21,7 @@
<project name="click-bench" default="compile" basedir=".">
<description>Builds, tests, and runs the project click-bench.</description>
- <property name="click.version" value="2.0.1-RC1-incubator"/>
+ <property name="click.version" value="2.3.0-M1"/>
<property name="name" value="click-bench"/>
<property name="build.dir" value="build"/>
<property name="build.web.dir" value="${build.dir}/web"/>
Modified: click/trunk/examples/click-bench/jmeter/benchmark.jmx
URL: http://svn.apache.org/viewvc/click/trunk/examples/click-bench/jmeter/benchmark.jmx?rev=957241&r1=957240&r2=957241&view=diff
==============================================================================
--- click/trunk/examples/click-bench/jmeter/benchmark.jmx (original)
+++ click/trunk/examples/click-bench/jmeter/benchmark.jmx Wed Jun 23 15:10:16 2010
@@ -31,7 +31,9 @@
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">localhost</stringProp>
- <stringProp name="HTTPSampler.port">8080</stringProp>
+ <stringProp name="HTTPSampler.port">9999</stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol">http</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
@@ -55,6 +57,8 @@
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/click-bench/wicket-session</stringProp>
@@ -66,7 +70,7 @@
<stringProp name="HTTPSampler.FILE_NAME"></stringProp>
<stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
<stringProp name="HTTPSampler.mimetype"></stringProp>
- <stringProp name="HTTPSampler.monitor">false</stringProp>
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
@@ -85,6 +89,8 @@
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/click-bench/wicket-session/?wicket:bookmarkablePage=wicket-5%3Abenchmark.wicket.AddCustomer</stringProp>
@@ -96,7 +102,7 @@
<stringProp name="HTTPSampler.FILE_NAME"></stringProp>
<stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
<stringProp name="HTTPSampler.mimetype"></stringProp>
- <stringProp name="HTTPSampler.monitor">false</stringProp>
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
@@ -106,7 +112,7 @@
<hashTree>
<LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">true</boolProp>
- <stringProp name="LoopController.loops">400</stringProp>
+ <stringProp name="LoopController.loops">100</stringProp>
</LoopController>
<hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="HTTP Request" enabled="true">
@@ -115,6 +121,8 @@
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/click-bench/click/pages/customer-list.htm</stringProp>
@@ -126,7 +134,7 @@
<stringProp name="HTTPSampler.FILE_NAME"></stringProp>
<stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
<stringProp name="HTTPSampler.mimetype"></stringProp>
- <stringProp name="HTTPSampler.monitor">false</stringProp>
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
@@ -145,6 +153,8 @@
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/click-bench/click/container/customer-list.htm</stringProp>
@@ -156,7 +166,39 @@
<stringProp name="HTTPSampler.FILE_NAME"></stringProp>
<stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
<stringProp name="HTTPSampler.mimetype"></stringProp>
- <stringProp name="HTTPSampler.monitor">false</stringProp>
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ </HTTPSampler>
+ <hashTree/>
+ </hashTree>
+ </hashTree>
+ <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="CLICK Container Repeater" enabled="false"/>
+ <hashTree>
+ <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">true</boolProp>
+ <stringProp name="LoopController.loops">400</stringProp>
+ </LoopController>
+ <hashTree>
+ <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="HTTP Request" enabled="true">
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments"/>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain"></stringProp>
+ <stringProp name="HTTPSampler.port"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ <stringProp name="HTTPSampler.protocol"></stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/click-bench/click/repeater/customer-list.htm</stringProp>
+ <stringProp name="HTTPSampler.method">GET</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.FILE_NAME"></stringProp>
+ <stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
+ <stringProp name="HTTPSampler.mimetype"></stringProp>
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
@@ -175,6 +217,8 @@
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/click-bench/click/pages/add-customer.htm</stringProp>
@@ -186,7 +230,7 @@
<stringProp name="HTTPSampler.FILE_NAME"></stringProp>
<stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
<stringProp name="HTTPSampler.mimetype"></stringProp>
- <stringProp name="HTTPSampler.monitor">false</stringProp>
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
@@ -205,6 +249,8 @@
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/click-bench/click/velocity/velocity-customer-list.htm</stringProp>
@@ -216,7 +262,7 @@
<stringProp name="HTTPSampler.FILE_NAME"></stringProp>
<stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
<stringProp name="HTTPSampler.mimetype"></stringProp>
- <stringProp name="HTTPSampler.monitor">false</stringProp>
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
@@ -235,6 +281,8 @@
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/click-bench/click/jsp/jsp-customer-list.htm</stringProp>
@@ -246,7 +294,7 @@
<stringProp name="HTTPSampler.FILE_NAME"></stringProp>
<stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
<stringProp name="HTTPSampler.mimetype"></stringProp>
- <stringProp name="HTTPSampler.monitor">false</stringProp>
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
@@ -265,6 +313,8 @@
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/click-bench/jsp/direct-jsp.jsp</stringProp>
@@ -276,7 +326,7 @@
<stringProp name="HTTPSampler.FILE_NAME"></stringProp>
<stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
<stringProp name="HTTPSampler.mimetype"></stringProp>
- <stringProp name="HTTPSampler.monitor">false</stringProp>
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
@@ -286,7 +336,7 @@
<hashTree>
<LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">true</boolProp>
- <stringProp name="LoopController.loops">400</stringProp>
+ <stringProp name="LoopController.loops">100</stringProp>
</LoopController>
<hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="HTTP Request" enabled="true">
@@ -295,6 +345,8 @@
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/click-bench/customer-list.do</stringProp>
@@ -306,7 +358,7 @@
<stringProp name="HTTPSampler.FILE_NAME"></stringProp>
<stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
<stringProp name="HTTPSampler.mimetype"></stringProp>
- <stringProp name="HTTPSampler.monitor">false</stringProp>
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
@@ -316,7 +368,7 @@
<hashTree>
<LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">true</boolProp>
- <stringProp name="LoopController.loops">400</stringProp>
+ <stringProp name="LoopController.loops">100</stringProp>
</LoopController>
<hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="HTTP Request" enabled="true">
@@ -325,6 +377,8 @@
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/click-bench/tapestry/customerlist</stringProp>
@@ -336,7 +390,7 @@
<stringProp name="HTTPSampler.FILE_NAME"></stringProp>
<stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
<stringProp name="HTTPSampler.mimetype"></stringProp>
- <stringProp name="HTTPSampler.monitor">false</stringProp>
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
@@ -346,7 +400,7 @@
<hashTree>
<LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">true</boolProp>
- <stringProp name="LoopController.loops">400</stringProp>
+ <stringProp name="LoopController.loops">100</stringProp>
</LoopController>
<hashTree>
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="HTTP Request" enabled="true">
@@ -355,6 +409,8 @@
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/click-bench/CustomerList.action</stringProp>
@@ -366,12 +422,44 @@
<stringProp name="HTTPSampler.FILE_NAME"></stringProp>
<stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
<stringProp name="HTTPSampler.mimetype"></stringProp>
- <stringProp name="HTTPSampler.monitor">false</stringProp>
+ <boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>
</hashTree>
</hashTree>
+ <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>true</xml>
+ <fieldNames>false</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ </value>
+ </objProp>
+ <stringProp name="filename"></stringProp>
+ </ResultCollector>
+ <hashTree/>
</hashTree>
</hashTree>
</hashTree>
Added: click/trunk/examples/click-bench/lib/clickclick-core-0.3.jar
URL: http://svn.apache.org/viewvc/click/trunk/examples/click-bench/lib/clickclick-core-0.3.jar?rev=957241&view=auto
==============================================================================
Binary file - no diff available.
Propchange: click/trunk/examples/click-bench/lib/clickclick-core-0.3.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: click/trunk/examples/click-bench/src/benchmark/click/repeater/CustomerList.java
URL: http://svn.apache.org/viewvc/click/trunk/examples/click-bench/src/benchmark/click/repeater/CustomerList.java?rev=957241&view=auto
==============================================================================
--- click/trunk/examples/click-bench/src/benchmark/click/repeater/CustomerList.java (added)
+++ click/trunk/examples/click-bench/src/benchmark/click/repeater/CustomerList.java Wed Jun 23 15:10:16 2010
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package benchmark.click.repeater;
+
+import benchmark.click.pages.EditCustomer;
+import org.apache.click.Page;
+
+import benchmark.dao.CustomerDao;
+import benchmark.dao.Customer;
+import java.text.SimpleDateFormat;
+import java.util.List;
+import net.sf.clickclick.control.html.table.Cell;
+import net.sf.clickclick.control.html.table.HtmlTable;
+import net.sf.clickclick.control.html.table.Row;
+import net.sf.clickclick.control.html.table.TableBody;
+import net.sf.clickclick.control.html.table.TableHeader;
+import net.sf.clickclick.control.repeater.Repeater;
+import net.sf.clickclick.control.repeater.RepeaterRow;
+import org.apache.click.ActionListener;
+import org.apache.click.Control;
+import org.apache.click.control.AbstractContainer;
+import org.apache.click.control.ActionLink;
+import org.apache.click.control.Container;
+import org.apache.click.dataprovider.DataProvider;
+import org.apache.click.util.HtmlStringBuffer;
+
+// 427 l
+// 399 dp with index remove index
+// 470 l
+// 440 dp with index remove index
+//
+public class CustomerList extends Page {
+
+ private HtmlTable table;
+
+ private ActionLink editLink = new ActionLink("Edit", this, "onEditClick");
+
+ private ActionLink deleteLink = new ActionLink("Delete", this, "onDeleteClick");
+
+ private final SimpleDateFormat FORMAT = new SimpleDateFormat("MMMM d, yyyy");
+
+ public CustomerList() {
+ table = new HtmlTable("table");
+ table.addStyleClass("decorated");
+
+ addControl(table);
+ addControl(editLink);
+ addControl(deleteLink);
+
+ editLink.setActionListener(new ActionListener() {
+
+ public boolean onAction(Control source) {
+ Integer id = editLink.getValueInteger();
+ Customer customer = CustomerDao.getInstance().findById(id);
+ EditCustomer editPage = getContext().createPage(EditCustomer.class);
+ editPage.setCustomer(customer);
+ setForward(editPage);
+ return true;
+ }
+ });
+
+ deleteLink.setActionListener(new ActionListener() {
+
+ public boolean onAction(Control source) {
+ Integer id = deleteLink.getValueInteger();
+ Customer customer = CustomerDao.getInstance().findById(id);
+ CustomerDao.getInstance().delete(customer);
+ setRedirect(CustomerList.class);
+ return false;
+ }
+ });
+
+ TableHeader header = new TableHeader();
+ header.setColumns("First Name", "Last Name", "State", "Birth Date", "Options");
+ table.add(header);
+
+ TableBody body = new TableBody();
+ table.add(body);
+
+ Repeater repeater = new Repeater() {
+ public void buildRow(final Object item, final RepeaterRow row, final int index) {
+ final Customer customer = (Customer) item;
+
+ Row tableRow = new Row();
+ tableRow.add(customer.getFirstName(),
+ customer.getLastName(),
+ customer.getState(),
+ FORMAT.format(customer.getBirthDate()));
+
+ Cell actions = new Cell();
+
+ final AbstractContainer editLinkWrapper = new AbstractContainer("Edit") {
+
+ @Override
+ public void render(HtmlStringBuffer buffer) {
+ editLink.setValueObject(customer.getId());
+ editLink.render(buffer);
+ }
+ };
+
+ final Container deleteLinkWrapper = new AbstractContainer("Delete") {
+
+ @Override
+ public void render(HtmlStringBuffer buffer) {
+ deleteLink.setValueObject(customer.getId());
+ deleteLink.render(buffer);
+ }
+ };
+
+ actions.add(editLinkWrapper);
+ actions.setText(" | ");
+ actions.add(deleteLinkWrapper);
+ tableRow.add(actions);
+
+ row.add(tableRow);
+ }
+ };
+
+ repeater.setDataProvider(new DataProvider() {
+ public List<Customer> getData() {
+ return CustomerDao.getInstance().findAll();
+ }
+ });
+
+ /*
+ List<Customer> customers = CustomerDao.getInstance().findAll();
+ repeater.setItems(customers);*/
+
+ body.add(repeater);
+ }
+}
Added: click/trunk/examples/click-bench/web/click/repeater/customer-list.htm
URL: http://svn.apache.org/viewvc/click/trunk/examples/click-bench/web/click/repeater/customer-list.htm?rev=957241&view=auto
==============================================================================
--- click/trunk/examples/click-bench/web/click/repeater/customer-list.htm (added)
+++ click/trunk/examples/click-bench/web/click/repeater/customer-list.htm Wed Jun 23 15:10:16 2010
@@ -0,0 +1,10 @@
+<html>
+ <head>
+ <title>Customer List</title>
+ <link rel="stylesheet" type="text/css" href="$context/styles/default.css"/>
+ </head>
+ <body>
+ <h1>Customer List</h1>
+ $table
+ </body>
+</html>
\ No newline at end of file