001: /**
002: * Copyright 2006 Webmedia Group Ltd.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: **/package org.araneaframework.example.main.web.list;
016:
017: import java.io.Serializable;
018: import java.util.ArrayList;
019: import java.util.List;
020: import org.apache.commons.logging.Log;
021: import org.apache.commons.logging.LogFactory;
022: import org.araneaframework.example.main.TemplateBaseWidget;
023: import org.araneaframework.example.main.business.model.GeneralMO;
024: import org.araneaframework.uilib.list.BeanListWidget;
025: import org.araneaframework.uilib.list.ListWidget;
026: import org.araneaframework.uilib.list.dataprovider.MemoryBasedListDataProvider;
027:
028: public class SimpleSubBeanListWidget extends TemplateBaseWidget {
029: private static final long serialVersionUID = 1L;
030:
031: protected static final Log log = LogFactory
032: .getLog(SimpleSubBeanListWidget.class);
033:
034: private ListWidget list;
035:
036: protected void init() throws Exception {
037: setViewSelector("list/subBeanList");
038:
039: initList();
040: }
041:
042: protected void initList() throws Exception {
043: list = new BeanListWidget(ContactMO.class);
044: addWidget("list", list);
045: list.setDataProvider(new DataProvider());
046: list.setOrderableByDefault(true);
047: list.addField("id", "#Id", false);
048: list.addField("name.firstname", "#First name").like();
049: list.addField("name.lastname", "#Last name").like();
050: list.addField("address.country", "#Country").like();
051: list.addField("address.city", "#City").like();
052: list.addField("dummy", null, false);
053: }
054:
055: private static class DataProvider extends
056: MemoryBasedListDataProvider {
057: private static final long serialVersionUID = 1L;
058:
059: protected DataProvider() {
060: super (ContactMO.class);
061: }
062:
063: public List loadData() throws Exception {
064: List contacts = new ArrayList(3);
065: contacts.add(contact("Alice", "", "Wonderland", ""));
066: contacts.add(contact("Chuck", "Norris", "USA", "Texas"));
067: contacts.add(contact("Gudmund", "Edmundsdottir", "Iceland",
068: ""));
069: return contacts;
070: }
071:
072: private long lastId = 0;
073:
074: private ContactMO contact(String firstname, String lastname,
075: String country, String city) {
076: ContactMO contact = new ContactMO();
077: contact.setId(new Long(++lastId));
078: contact.setName(name(firstname, lastname));
079: contact.setAddress(address(country, city));
080: return contact;
081: }
082:
083: private NameMO name(String firstname, String lastname) {
084: NameMO name = new NameMO();
085: name.setFirstname(firstname);
086: name.setLastname(lastname);
087: return name;
088: }
089:
090: private AddressMO address(String country, String city) {
091: AddressMO address = new AddressMO();
092: address.setCountry(country);
093: address.setCity(city);
094: return address;
095: }
096: }
097:
098: public static class ContactMO implements GeneralMO {
099: private static final long serialVersionUID = 1L;
100: private Long id;
101: private NameMO name;
102: private AddressMO address;
103:
104: public AddressMO getAddress() {
105: return address;
106: }
107:
108: public void setAddress(AddressMO address) {
109: this .address = address;
110: }
111:
112: public Long getId() {
113: return id;
114: }
115:
116: public void setId(Long id) {
117: this .id = id;
118: }
119:
120: public NameMO getName() {
121: return name;
122: }
123:
124: public void setName(NameMO name) {
125: this .name = name;
126: }
127:
128: }
129:
130: public static class NameMO implements Serializable {
131: private static final long serialVersionUID = 1L;
132: private String firstname;
133: private String lastname;
134:
135: public String getFirstname() {
136: return firstname;
137: }
138:
139: public void setFirstname(String firstname) {
140: this .firstname = firstname;
141: }
142:
143: public String getLastname() {
144: return lastname;
145: }
146:
147: public void setLastname(String lastname) {
148: this .lastname = lastname;
149: }
150: }
151:
152: public static class AddressMO implements Serializable {
153: private static final long serialVersionUID = 1L;
154: private String country;
155: private String city;
156:
157: public String getCity() {
158: return city;
159: }
160:
161: public void setCity(String city) {
162: this .city = city;
163: }
164:
165: public String getCountry() {
166: return country;
167: }
168:
169: public void setCountry(String country) {
170: this.country = country;
171: }
172: }
173: }
|