]> source.dussan.org Git - archiva.git/blob
ac95f8bca004df16b7fb9232beec8e250d79d065
[archiva.git] /
1 package org.apache.archiva.redback.integration.eXc.views;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import java.util.Iterator;
23
24 import org.extremecomponents.table.bean.Export;
25 import org.extremecomponents.table.core.TableModel;
26 import org.extremecomponents.table.view.html.BuilderConstants;
27 import org.extremecomponents.table.view.html.BuilderUtils;
28 import org.extremecomponents.table.view.html.StatusBarBuilder;
29 import org.extremecomponents.table.view.html.ToolbarBuilder;
30 import org.extremecomponents.table.view.html.TwoColumnRowLayout;
31 import org.extremecomponents.util.HtmlBuilder;
32
33 /**
34  * SecurityToolbar
35  *
36  * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
37  * @version $Id$
38  */
39 public class SecurityToolbar
40     extends TwoColumnRowLayout
41 {
42     public SecurityToolbar( HtmlBuilder html, TableModel model )
43     {
44         super( html, model );
45     }
46
47     protected boolean showLayout( TableModel model )
48     {
49         boolean showStatusBar = BuilderUtils.showStatusBar( model );
50         boolean filterable = BuilderUtils.filterable( model );
51         boolean showExports = BuilderUtils.showExports( model );
52         boolean showPagination = BuilderUtils.showPagination( model );
53         boolean showTitle = BuilderUtils.showTitle( model );
54         if ( !showStatusBar && !filterable && !showExports && !showPagination && !showTitle )
55         {
56             return false;
57         }
58
59         return true;
60     }
61
62     protected void columnLeft( HtmlBuilder html, TableModel model )
63     {
64         boolean showStatusBar = BuilderUtils.showStatusBar( model );
65         if ( !showStatusBar )
66         {
67             return;
68         }
69
70         html.td( 4 ).styleClass( BuilderConstants.STATUS_BAR_CSS ).close();
71
72         new StatusBarBuilder( html, model ).statusMessage();
73
74         html.tdEnd();
75     }
76
77     @SuppressWarnings("unchecked")
78     protected void columnRight( HtmlBuilder html, TableModel model )
79     {
80         boolean filterable = BuilderUtils.filterable( model );
81         boolean showPagination = BuilderUtils.showPagination( model );
82         boolean showExports = BuilderUtils.showExports( model );
83
84         ToolbarBuilder toolbarBuilder = new ToolbarBuilder( html, model );
85
86         html.td( 4 ).styleClass( BuilderConstants.COMPACT_TOOLBAR_CSS ).align( "right" ).close();
87
88         html.table( 4 ).border( "0" ).cellPadding( "1" ).cellSpacing( "2" ).close();
89         html.tr( 5 ).close();
90
91         if ( showPagination )
92         {
93             html.td( 5 ).close();
94             html.append( "Navigation:" );
95             html.tdEnd();
96
97             html.td( 5 ).close();
98             toolbarBuilder.firstPageItemAsImage();
99             html.tdEnd();
100
101             html.td( 5 ).close();
102             toolbarBuilder.prevPageItemAsImage();
103             html.tdEnd();
104
105             html.td( 5 ).close();
106             toolbarBuilder.nextPageItemAsImage();
107             html.tdEnd();
108
109             html.td( 5 ).close();
110             toolbarBuilder.lastPageItemAsImage();
111             html.tdEnd();
112
113             html.td( 5 ).close();
114             toolbarBuilder.separator();
115             html.tdEnd();
116
117             html.td( 5 ).close();
118             html.append( "Display Rows:" );
119             html.tdEnd();
120
121             html.td( 5 ).close();
122             toolbarBuilder.rowsDisplayedDroplist();
123             html.tdEnd();
124
125             if ( showExports )
126             {
127                 html.td( 5 ).close();
128                 toolbarBuilder.separator();
129                 html.tdEnd();
130             }
131         }
132
133         if ( showExports )
134         {
135             Iterator iterator = model.getExportHandler().getExports().iterator();
136             for ( Iterator iter = iterator; iter.hasNext(); )
137             {
138                 html.td( 5 ).close();
139                 Export export = (Export) iter.next();
140                 toolbarBuilder.exportItemAsImage( export );
141                 html.tdEnd();
142             }
143         }
144         
145         if ( filterable )
146         {
147             if ( showExports || showPagination )
148             {
149                 html.td( 5 ).close();
150                 toolbarBuilder.separator();
151                 html.tdEnd();
152             }
153
154             html.td( 5 ).close();
155             toolbarBuilder.filterItemAsButton();
156             html.tdEnd();
157
158             html.td( 5 ).close();
159             toolbarBuilder.clearItemAsButton();
160             html.tdEnd();
161         }
162
163         html.trEnd( 5 );
164
165         html.tableEnd( 4 );
166
167         html.tdEnd();
168     }
169 }