BrightSide Workbench Full Report + Source Code
PortalColumn.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.zul.portal;
19 
20 import org.jdom.Element;
21 import org.zkoss.zk.ui.ext.AfterCompose;
22 import org.zkoss.zkmax.zul.Portalchildren;
23 
28 public class PortalColumn extends Portalchildren implements Comparable, AfterCompose {
29 
30  private Integer order;
31  private PortalContentSet contents = new PortalContentSet();
32 
33  public void load(Element root) {
34  order = Integer.valueOf(root.getAttributeValue("order", "0"));
35  setWidth(root.getAttributeValue("width", "100%"));
36  setStyle(root.getAttributeValue("style", "padding:5px"));
37  setVflex("true");
38  contents.load(root);
39  for(PortalContent pc : contents) {
40  appendChild(pc);
41  }
42  }
43 
44  public void save(Element root) {
45  root.setAttribute("order", getPosition(order) + "");
46  root.setAttribute("width", getWidth());
47  root.setAttribute("style", getStyle());
48  contents.save(root, this);
49  }
50 
51  @Override
52  public int compareTo(Object o) {
53  if(o != null && o instanceof PortalColumn) {
54  return order.compareTo(((PortalColumn) o).order);
55  }
56  return -1;
57  }
58 
59  private int getPosition(int order) {
60  if(getParent() == null) {
61  return order;
62  }
63  int pos = getParent().getChildren().indexOf(this);
64  if(pos > -1) {
65  return pos;
66  }
67  return order;
68  }
69 
70  @Override
71  public void afterCompose() {
72  for(PortalContent content : contents) {
73  content.afterCompose();
74  }
75  }
76 
77 }
void save(Element root, PortalColumn column)