BrightSide Workbench Full Report + Source Code
LineTypeGrid.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.linetype;
19 
20 import org.turro.string.Strings;
21 import org.turro.financials.db.FinancialsPU;
22 import org.turro.financials.entity.LineType;
23 import org.turro.jpa.grid.JpaGrid;
24 import org.zkoss.zul.Detail;
25 import org.zkoss.zul.Row;
26 import org.zkoss.zul.Vbox;
27 
32 public class LineTypeGrid extends JpaGrid<LineType> {
33 
34  public LineTypeGrid() {
35  super(new FinancialsPU(),
36  "select lineType from LineType as lineType " +
37  "order by lineType.name", true);
38  }
39 
40  @Override
41  protected void initiateRow(Row row, LineType value) {
42  if(value == null) value = new LineType();
43  row.setValue(value);
44  addDetail(row);
45  }
46 
47  @Override
48  protected boolean isValid(LineType v) {
49  return !Strings.isBlank(v.getName());
50  }
51 
52  @Override
53  protected void rowChanged(Row row) {
54  LineTypeAccountGrid ltag = (LineTypeAccountGrid) row.getDetailChild().getFirstChild().getFirstChild();
55  LineType lt = (LineType) row.getValue();
56  lt.getLineTypeAccounts().clear();
57  lt.getLineTypeAccounts().addAll(ltag.getValues());
58  super.rowChanged(row);
59  }
60 
61  private void addDetail(Row row) {
62  row.getChildren().clear();
63  Detail detail = new Detail();
64  row.appendChild(detail);
65  Vbox vbox = new Vbox();
66  vbox.setWidth("100%");
67  vbox.setStyle("padding:5px");
68  detail.appendChild(vbox);
69  LineTypeAccountGrid ltag = new LineTypeAccountGrid((LineType) row.getValue());
70  ltag.setDependingRow(row);
71  ltag.setReadOnly(isReadOnly());
74  vbox.appendChild(ltag);
75  ltag.afterCompose();
76  }
77 
78 }
Set< LineTypeAccount > getLineTypeAccounts()
Definition: LineType.java:92
void initiateRow(Row row, LineType value)
void setDependingRow(Row dependingRow)
void setAllowDeletions(boolean allowDeletions)
void setAllowInsertions(boolean allowInsertions)
void setReadOnly(boolean readOnly)