01: package org.osbl.orga.gui;
02:
03: import org.osbl.client.wings.form.*;
04: import org.osbl.client.wings.shell.Client;
05: import org.osbl.persistence.*;
06: import org.osbl.orga.model.Member;
07: import org.osbl.identity.model.Identity;
08: import org.osbl.identity.gui.SimpleQueryCommandTableModel;
09: import org.osbl.ServiceProvider;
10: import org.conform.BeanMeta;
11: import org.conform.VariationBeanMetaProvider;
12: import org.conform.hibernate.HibernateEnvironment;
13: import org.conform.format.CollectionSizeFormat;
14: import org.conform.modifier.InlineModifier;
15:
16: import java.io.Serializable;
17:
18: public class MemberList extends GenericObjectList {
19: Persistence persistence;
20:
21: protected BeanMeta createBeanMeta() {
22: return new VariationBeanMetaProvider(Client.getInstance()
23: .getBeanMetaProvider()).addModifier(
24: new InlineModifier() {
25: protected void configure() {
26: property("identity").setWritable(false);
27: property("identity").setFormat(
28: Client.getInstance()
29: .getBeanMetaProvider()
30: .getBeanMeta(Identity.class)
31: .getFormat());
32: property("relationships").setWritable(false);
33: property("relationships").setFormat(
34: new CollectionSizeFormat());
35: }
36: }).getBeanMeta(Member.class);
37: }
38:
39: protected ObjectTableModel createModel(BeanMeta beanMeta) {
40: SimpleQueryCommand<Member> listCommand = (SimpleQueryCommand<Member>) getPersistence()
41: .createCommand("list");
42: listCommand.setType(Member.class);
43: listCommand.addFetch("relationships", Fetch.JOIN);
44: SimpleQueryCommandTableModel tableModel = new SimpleQueryCommandTableModel(
45: listCommand, beanMeta, "identity", "relationships");
46: tableModel.setSortableColumns("identity");
47: tableModel.setFilterableColumns("identity");
48: return tableModel;
49: }
50:
51: public Object getRow(int index) {
52: LoadCommand<Member> command = (LoadCommand<Member>) getPersistence()
53: .createCommand("load");
54: command.setType(Member.class);
55: command.setId((Serializable) ((ObjectTableModel) getModel())
56: .getRowId(index));
57: try {
58: HibernateEnvironment.getInstance().beginTransaction();
59: return command.execute();
60: } finally {
61: HibernateEnvironment.getInstance().endTransaction();
62: }
63: }
64:
65: public Persistence getPersistence() {
66: if (persistence == null)
67: persistence = (Persistence) ServiceProvider.getInstance()
68: .getService("OrgaPersistence");
69: return persistence;
70: }
71:
72: public void setContext(ObjectContext context) {
73: super .setContext(context);
74: SimpleQueryCommandTableModel model = (SimpleQueryCommandTableModel) getModel();
75: model.removeFilter("organisation", Operator.EQUAL);
76: model.addFilter("organisation", Operator.EQUAL, context
77: .getObject("organisation"));
78: refresh();
79: }
80: }
|