18 package org.turro.dossier.zul.viewer;
20 import java.util.ArrayList;
21 import java.util.Arrays;
22 import java.util.List;
23 import org.turro.dossier.db.DossierPU;
24 import org.turro.dossier.entity.Dossier;
25 import org.turro.dossier.entity.Issue;
26 import org.turro.elephant.db.WhereClause;
27 import org.turro.i18n.I_;
28 import org.turro.jpa.Dao;
29 import org.turro.zkoss.grid.PagingGrid;
30 import org.turro.zkoss.label.LabelExtended;
31 import org.zkoss.lang.Strings;
32 import org.zkoss.zul.Column;
33 import org.zkoss.zul.Columns;
34 import org.zkoss.zul.Row;
35 import org.zkoss.zul.Rows;
44 private Columns columns;
45 private String issueColumns;
51 this.issueColumns = issueColumns;
62 private void addColumns(List<String> cols) {
63 if(columns !=
null) removeChild(columns);
65 columns =
new Columns();
66 columns.setVisible(
false);
69 for(String col : cols) {
70 if(
"description".equals(col)) {
71 Column column =
new Column(
"");
72 columns.appendChild(column);
73 }
else if(
"status".equals(col)) {
74 Column column =
new Column(
"");
75 column.setWidth(
"130px");
76 columns.appendChild(column);
77 }
else if(
"modification".equals(col)) {
78 Column column =
new Column(
"");
79 column.setWidth(
"100px");
80 columns.appendChild(column);
81 }
else if(
"date".equals(col)) {
82 Column column =
new Column(
"");
83 column.setWidth(
"100px");
84 columns.appendChild(column);
89 private void addRows(List<Issue> issues) {
93 List<String> cols = issueColumns ==
null ?
new ArrayList<String>() :
94 Arrays.asList(issueColumns.split(
"\\s*\\,\\s*"));
97 cols.add(
"description");
99 cols.add(
"modification");
104 if(rows !=
null) removeChild(rows);
109 for(
final Issue issue : issues) {
111 for(String col : cols) {
112 if(
"description".equals(col)) {
113 LabelExtended lext =
new LabelExtended();
114 lext.setMultiline(
true);
115 lext.setValue(Strings.isEmpty(issue.getDescription()) ?
116 I_.get(
"No description!") : issue.getDescription());
117 row.appendChild(lext);
118 }
else if(
"status".equals(col)) {
119 LabelExtended lext =
new LabelExtended();
120 lext.setResourceValue(issue.getStatus().toString());
121 row.appendChild(lext);
122 }
else if(
"modification".equals(col)) {
123 LabelExtended lext =
new LabelExtended();
124 lext.setDate(issue.getModification());
125 row.appendChild(lext);
126 }
else if(
"date".equals(col)) {
127 LabelExtended lext =
new LabelExtended();
128 lext.setDate(issue.getIssueDate());
129 row.appendChild(lext);
133 rows.appendChild(row);
139 private List<Issue> createListFromDossier(Dossier dossier) {
140 Dao dao =
new DossierPU();
141 WhereClause wc =
new WhereClause();
142 wc.addClause(
"select issue from Issue as issue");
143 wc.addClause(
"where issue.dossier = :dossier");
144 wc.addClause(
"and issue.publishable = TRUE");
145 wc.addClause(
"order by issue.issueDate");
146 wc.addNamedValue(
"dossier", dossier);
147 return dao.getResultList(wc);
void setDossier(Dossier dossier)
void setIssueList(List< Issue > issues)
void setIssueColumns(String issueColumns)
void setRowCount(int rows)