Add navigation buttons to related list tables.
[online-glom:gwt-glom.git] / src / main / java / org / glom / web / client / ui / DetailsViewImpl.java
1 /*
2  * Copyright (C) 2011 Openismus GmbH
3  *
4  * This file is part of GWT-Glom.
5  *
6  * GWT-Glom is free software: you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License as published by the
8  * Free Software Foundation, either version 3 of the License, or (at your
9  * option) any later version.
10  *
11  * GWT-Glom is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
14  * for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with GWT-Glom.  If not, see <http://www.gnu.org/licenses/>.
18  */
19
20 package org.glom.web.client.ui;
21
22 import java.util.ArrayList;
23
24 import org.glom.web.client.ui.details.DetailsCell;
25 import org.glom.web.client.ui.details.Group;
26 import org.glom.web.client.ui.details.Portal;
27 import org.glom.web.shared.layout.LayoutGroup;
28
29 import com.google.gwt.user.client.ui.Composite;
30 import com.google.gwt.user.client.ui.FlowPanel;
31
32 /**
33  * @author Ben Konrath <ben@bagu.org>
34  * 
35  */
36 public class DetailsViewImpl extends Composite implements DetailsView {
37
38         @SuppressWarnings("unused")
39         private Presenter presenter;
40         private final FlowPanel mainPanel = new FlowPanel();
41         private final ArrayList<DetailsCell> cells = new ArrayList<DetailsCell>();
42         private final ArrayList<Portal> portals = new ArrayList<Portal>();
43
44         public DetailsViewImpl() {
45                 initWidget(mainPanel);
46         }
47
48         /*
49          * (non-Javadoc)
50          * 
51          * @see org.glom.web.client.ui.DetailsView#setPresenter(org.glom.web.client.ui.DetailsView.Presenter)
52          */
53         @Override
54         public void setPresenter(Presenter presenter) {
55                 this.presenter = presenter;
56         }
57
58         /*
59          * (non-Javadoc)
60          * 
61          * @see org.glom.web.client.ui.DetailsView#addGroup(org.glom.web.shared.layout.LayoutGroup)
62          */
63         @Override
64         public void addGroup(LayoutGroup layoutGroup) {
65                 Group group = new Group(layoutGroup, false, false);
66                 cells.addAll(group.getCells());
67                 portals.addAll(group.getPortals());
68                 mainPanel.add(group);
69         }
70
71         /*
72          * (non-Javadoc)
73          * 
74          * @see org.glom.web.client.ui.DetailsView#clear()
75          */
76         @Override
77         public void clear() {
78                 mainPanel.clear();
79                 cells.clear();
80                 portals.clear();
81         }
82
83         /*
84          * (non-Javadoc)
85          * 
86          * @see org.glom.web.client.ui.DetailsView#getCells()
87          */
88         @Override
89         public ArrayList<DetailsCell> getCells() {
90                 return cells;
91         }
92
93         /*
94          * (non-Javadoc)
95          * 
96          * @see org.glom.web.client.ui.DetailsView#getPortals()
97          */
98         @Override
99         public ArrayList<Portal> getPortals() {
100                 return portals;
101         }
102
103 }