BrightSide Workbench Full Report + Source Code
ContractDefinitionTree.java
Go to the documentation of this file.
1 /*
2  * Turró i Cutiller Foundation. License notice.
3  * Copyright (C) 2011 Lluis Turró Cutiller <http://www.turro.org/>
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU Affero General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU Affero General Public License for more details.
14  *
15  * You should have received a copy of the GNU Affero General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 package org.turro.financials.contract;
19 
20 import java.util.ArrayList;
21 import java.util.Iterator;
22 import org.turro.financials.contract.logic.ContractDefinitionWrapper;
23 import org.turro.financials.entity.ContractDefinition;
24 import org.turro.zkoss.tree.GenericTree;
25 import org.zkoss.zk.ui.event.Event;
26 import org.zkoss.zk.ui.event.EventListener;
27 import org.zkoss.zk.ui.event.Events;
28 import org.zkoss.zul.Treechildren;
29 import org.zkoss.zul.Treeitem;
30 
35 public class ContractDefinitionTree extends GenericTree<ContractDefinition> {
36 
37  private Treechildren children;
38  private ArrayList<ContractDefinition> ctcDefs;
39 
41  ctcDefs = new ArrayList(ContractDefinitionWrapper.getContractDefinitions());
42  addChildrenSpace();
43  addEventListener(Events.ON_SELECT, new EventListener() {
44  @Override
45  public void onEvent(Event event) {
46  Treeitem ti = getSelectedItem();
47  if(!ti.isEmpty()) {
48  ti.setOpen(true);
49  event.stopPropagation();
50  }
51  }
52  });
53  }
54 
55  @Override
56  protected void populateList() {
57  Treeitem n1, n2;
58  n1 = new Treeitem("Proveïdor (suministres, mercaderies, serveis, inversions, municipi)");
59  n1.setOpen(false);
60  children.appendChild(n1);
61  addChildTo(n1, 55);
62  addChildTo(n1, 48);
63  //n2 = addChildTo(n1, "De suministres (aigua, llum, telefonía, material, etc.)");
64  //addChildTo(n2, 14);
65  //addChildTo(n2, 13);
66  //addChildTo(n2, 12);
67  //addChildTo(n2, 42);
68  //addChildTo(n2, 49);
69  //addChildTo(n2, 15);
70  //addChildTo(n2, 16);
71  //addChildTo(n2, 21);
72  //addChildTo(n2, 20);
73  //addChildTo(n2, 27);
74  //addChildTo(n2, 18);
75  //addChildTo(n2, 52);
76  //n2 = addChildTo(n1, "De mercaderies (productes en general per posar-los a la venda)");
77  //addChildTo(n2, 48);
78  //n2 = addChildTo(n1, "De serveis (Advocats, notaris, dissenyadors, arquitectes, assesors, arrendadors, mutues, etc.)");
79  //addChildTo(n2, 22);
80  //addChildTo(n2, 17);
81  //addChildTo(n2, 41);
82  //addChildTo(n2, 34);
83  //addChildTo(n2, 31);
84  //addChildTo(n2, 24);
85  //addChildTo(n2, 19);
86  //addChildTo(n2, 51);
87  //n2 = addChildTo(n1, "De inversions");
88  //addChildTo(n2, 25);
89  n1 = new Treeitem("Client (Clients en general)");
90  n1.setOpen(false);
91  children.appendChild(n1);
92  addChildTo(n1, 56);
93  //addChildTo(n1, 40);
94  //addChildTo(n1, 6);
95  //addChildTo(n1, 7);
96  addChildTo(n1, 23);
97  addChildTo(n1, 47);
98  n1 = new Treeitem("Banc (Comptes corrents, tarjetes de crèdit, estalvi, etc.)");
99  n1.setOpen(false);
100  children.appendChild(n1);
101  addChildTo(n1, 1);
102  addChildTo(n1, 2);
103  addChildTo(n1, 44);
104  addChildTo(n1, 45);
105  addChildTo(n1, 46);
106  addChildTo(n1, 50);
107  n1 = new Treeitem("Prestecs (Prestecs a llarc plaç, leasings)");
108  n1.setOpen(false);
109  children.appendChild(n1);
110  addChildTo(n1, 35);
111  addChildTo(n1, 43);
112  addChildTo(n1, 53);
113  n1 = new Treeitem("Gestoria (Gestors, administradors de finques");
114  n1.setOpen(false);
115  children.appendChild(n1);
116  addChildTo(n1, 36);
117  n1 = new Treeitem("Impostos (de la Seguretat Social i Hisenda");
118  n1.setOpen(false);
119  children.appendChild(n1);
120  addChildTo(n1, 33);
121  addChildTo(n1, 37);
122  //addChildTo(n1, 29);
123  addChildTo(n1, 54);
124  n1 = new Treeitem("Empresa (Socis, treballadors, magatzems, caixa fort, etc.)");
125  n1.setOpen(false);
126  children.appendChild(n1);
127  addChildTo(n1, 30);
128  addChildTo(n1, 32);
129  addChildTo(n1, 3);
130  n2 = addChildTo(n1, "Laboral (Treballadors)");
131  addChildTo(n2, 26);
132  //addChildTo(n2, 28);
133  n2 = addChildTo(n1, "Dipòsits (Dipòsits d'explotació, oficina, botigues, magatzems, etc.)");
134  addChildTo(n2, 5);
135  addChildTo(n2, 4);
136  if(!ctcDefs.isEmpty()) {
137  n1 = new Treeitem("No classificats");
138  n1.setOpen(false);
139  children.appendChild(n1);
140  addAllChildTo(n1);
141  }
142  }
143 
144  private void addChildrenSpace() {
145  children = new Treechildren();
146  appendChild(children);
147  }
148 
149  private Treeitem addChildTo(Treeitem item, String label) {
150  Treeitem ti = new Treeitem(label);
151  ti.setOpen(false);
152  addTreeitem(item, ti);
153  return ti;
154  }
155 
156  private void addChildTo(Treeitem item, long id) {
157  ContractDefinition cd = useCtcDef(id);
158  if(cd != null) {
159  Treeitem ti = new Treeitem(cd.getName());
160  ti.setOpen(false);
161  ti.setValue(cd);
162  addTreeitem(item, ti);
163  }
164  }
165 
166  private void addAllChildTo(Treeitem item) {
167  for(ContractDefinition cd : ctcDefs) {
168  Treeitem ti = new Treeitem(cd.getName());
169  ti.setOpen(false);
170  ti.setValue(cd);
171  addTreeitem(item, ti);
172  }
173  ctcDefs = null;
174  }
175 
176  private ContractDefinition useCtcDef(long id) {
177  Iterator<ContractDefinition> it = ctcDefs.iterator();
178  ContractDefinition cd = null;
179  while(it.hasNext()) {
180  cd = it.next();
181  if(cd.getId() == id) {
182  it.remove();
183  break;
184  }
185  }
186  return cd;
187  }
188 
189 }
void addTreeitem(Treeitem parent, Treeitem child)