001 //$HeadURL: http://svn.wald.intevation.org/svn/deegree/base/trunk/src/org/deegree/portal/context/Module.java $
002 /*----------------------------------------------------------------------------
003 This file is part of deegree, http://deegree.org/
004 Copyright (C) 2001-2009 by:
005 Department of Geography, University of Bonn
006 and
007 lat/lon GmbH
008
009 This library is free software; you can redistribute it and/or modify it under
010 the terms of the GNU Lesser General Public License as published by the Free
011 Software Foundation; either version 2.1 of the License, or (at your option)
012 any later version.
013 This library is distributed in the hope that it will be useful, but WITHOUT
014 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
015 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
016 details.
017 You should have received a copy of the GNU Lesser General Public License
018 along with this library; if not, write to the Free Software Foundation, Inc.,
019 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
020
021 Contact information:
022
023 lat/lon GmbH
024 Aennchenstr. 19, 53177 Bonn
025 Germany
026 http://lat-lon.de/
027
028 Department of Geography, University of Bonn
029 Prof. Dr. Klaus Greve
030 Postfach 1147, 53001 Bonn
031 Germany
032 http://www.geographie.uni-bonn.de/deegree/
033
034 e-mail: info@deegree.org
035 ----------------------------------------------------------------------------*/
036 package org.deegree.portal.context;
037
038 import org.deegree.framework.util.Parameter;
039 import org.deegree.framework.util.ParameterList;
040
041 /**
042 * this class encapsulates the basic informations of a module that is part of an area of the GUI. Other classes may
043 * extent this class by adding special attributes for more specialazied GUIs.
044 *
045 * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
046 * @author last edited by: $Author: apoth $
047 *
048 * @version $Revision: 29966 $, $Date: 2011-03-09 15:19:04 +0100 (Wed, 09 Mar 2011) $
049 */
050 public class Module {
051 private ModuleConfiguration moduleConfiguration = null;
052
053 private String content = null;
054
055 private String name = null;
056
057 private String title = null;
058
059 private boolean hidden = false;
060
061 private ParameterList parameterList = null;
062
063 private String type = "content";
064
065 private String width = "0";
066
067 private String height = "0";
068
069 private int left = 0;
070
071 private int right = 0;
072
073 private int top = 0;
074
075 private int bottom = 0;
076
077 private boolean header;
078
079 private boolean closable;
080
081 private boolean overlay;
082
083 private boolean collapsed;
084
085 private String[] moduleJSList = new String[0];
086
087 private String scrolling = "auto";
088
089
090 /**
091 * Creates a new Module object.
092 *
093 * @param name
094 * name of the module
095 * @param title
096 * title of the module
097 * @param content
098 * the name of the page/class/file etc. containing the content of the module
099 * @param hidden
100 * indicates if the module is visible or not
101 * @param type
102 * @param left
103 * @param top
104 * @param right
105 * @param bottom
106 * @param width
107 * @param height
108 * @param overlay
109 * @param header
110 * @param closable
111 * @param collapsed
112 * the state of the module in table layout of ExtJS. default is false
113 * @param scrolling
114 * @param moduleJSList
115 * @param moduleConfiguration
116 * encapsulates the access to the modules configuration (may be <tt>null</tt>)
117 * @param parameterList
118 */
119 public Module( String name, String title, String content, boolean hidden, String type, int left, int top, int right,
120 int bottom, String width, String height, boolean overlay, boolean header, boolean closable, boolean collapsed,
121 String scrolling, String[] moduleJSList, ModuleConfiguration moduleConfiguration, ParameterList parameterList ) {
122 setName( name );
123 setTitle( title );
124 setContent( content );
125 setHidden( hidden );
126 setModuleConfiguration( moduleConfiguration );
127 setParameter( parameterList );
128 setType( type );
129 setWidth( width );
130 setHeight( height );
131 setLeft( left );
132 setTop( top );
133 setRight( right );
134 setHeader( header );
135 setClosable( closable );
136 setCollapsed( collapsed );
137 setOverlay( overlay );
138 setBottom( bottom );
139 setModuleJSList( moduleJSList );
140 setScrolling( scrolling );
141 }
142
143 /**
144 * returns the name of a module
145 *
146 * @return the name of a module
147 */
148 public String getName() {
149 return name;
150 }
151
152 /**
153 * sets the name of a module
154 *
155 * @param name
156 */
157 public void setName( String name ) {
158 this.name = name;
159 }
160
161 /**
162 * @return the title
163 */
164 public String getTitle() {
165 return title;
166 }
167
168 /**
169 * @param title
170 * the title to set; if <code>title</code> == <code>null</code> the modules name will be used as title
171 */
172 public void setTitle( String title ) {
173 if ( title == null ) {
174 this.title = name;
175 } else {
176 this.title = title;
177 }
178 }
179
180 /**
181 * returns the name of the page/class/file etc. containing the content of the module
182 *
183 * @return the name of the page/class/file etc. containing the content of the module
184 */
185 public String getContent() {
186 return content;
187 }
188
189 /**
190 * sets the name of the page/class/file etc. containing the content of the module
191 *
192 * @param content
193 */
194 public void setContent( String content ) {
195 this.content = content;
196 }
197
198 /**
199 * returns true if the module is hidden. this will always be the case for modules that just offers functions to the
200 * context. visible modules may offere the capability to be turned to visible or not.
201 *
202 * @return <code>true</code> if the module is hidden.
203 */
204 public boolean isHidden() {
205 return hidden;
206 }
207
208 /**
209 * sets the module to be hidden or visible. modules that only adds functions to a context will ignore this because
210 * they are always hidden
211 *
212 * @param hidden
213 */
214 public void setHidden( boolean hidden ) {
215 this.hidden = hidden;
216 }
217
218 /**
219 * returns the a specific confguration for a module. This may be <tt>null</tt> if the module doesn't need to be
220 * configured.
221 *
222 * @return the a specific confguration for a module. This may be <code>null</code>if the module doesn't need to be
223 * configured.
224 */
225 public ModuleConfiguration getModuleConfiguration() {
226 return moduleConfiguration;
227 }
228
229 /**
230 * sets the specific configuration for a module.
231 *
232 * @param configuration
233 */
234 public void setModuleConfiguration( ModuleConfiguration configuration ) {
235 this.moduleConfiguration = configuration;
236 }
237
238 /**
239 * returns a list of parameters that will be passed to a class/object etc. that represents a module
240 *
241 * @return parameters
242 */
243 public ParameterList getParameter() {
244 return parameterList;
245 }
246
247 /**
248 * sets a list of parameters that will be passed to a class/object etc. that represents a module
249 *
250 * @param parameterList
251 */
252 public void setParameter( ParameterList parameterList ) {
253 this.parameterList = parameterList;
254 }
255
256 /**
257 * adds a parameter to the list of parameters that will be passed to a class/object etc. that represents a module
258 *
259 * @param parameter
260 */
261 public void addParameter( Parameter parameter ) {
262 parameterList.addParameter( parameter );
263 }
264
265 /**
266 * removes a parameter to the list of parameters that will be passed to a class/object etc. that represents a module
267 *
268 * @param name
269 */
270 public void removeParameter( String name ) {
271 parameterList.removeParameter( name );
272 }
273
274 /**
275 * see also org.deegree.clients.context.Module#setType(java.lang.String)
276 *
277 * @param type
278 * to set
279 */
280 public void setType( String type ) {
281 if ( type != null ) {
282 this.type = type.toLowerCase();
283 }
284 }
285
286 /**
287 * see also org.deegree.clients.context.Module#getType()
288 *
289 * @return the type.
290 */
291 public String getType() {
292 return type;
293 }
294
295 /**
296 * returns the width of the module in the GUI. If '0' will be returned the GUI can set the with like it is best
297 *
298 * @return the width of the module in the GUI. If '0' will be returned the GUI can set the with like it is best
299 */
300 public String getWidth() {
301 return this.width;
302 }
303
304 /**
305 * sets the desired width of the module in the GUI. If '0' ist passed the GUI can set the with like it is best
306 *
307 * @param width
308 * desired width of the module
309 */
310 public void setWidth( String width ) {
311 this.width = width;
312 }
313
314 /**
315 * returns the height of the module in the GUI. If '0' will be returned the GUI can set the with like it is best
316 *
317 * @return the height of the module in the GUI. If '0' will be returned the GUI can set the with like it is best
318 */
319 public String getHeight() {
320 return this.height;
321 }
322
323 /**
324 * sets the desired height of the module in the GUI. If '0' ist passed the GUI can set the with like it is best
325 *
326 * @param height
327 * desired width of the module
328 */
329 public void setHeight( String height ) {
330 this.height = height;
331 }
332
333 /**
334 * @return the bottom
335 */
336 public int getBottom() {
337 return bottom;
338 }
339
340 /**
341 * @param bottom
342 * the bottom to set
343 */
344 public void setBottom( int bottom ) {
345 this.bottom = bottom;
346 }
347
348 /**
349 * @return the left
350 */
351 public int getLeft() {
352 return left;
353 }
354
355 /**
356 * @param left
357 * the left to set
358 */
359 public void setLeft( int left ) {
360 this.left = left;
361 }
362
363 /**
364 * @return the right
365 */
366 public int getRight() {
367 return right;
368 }
369
370 /**
371 * @param right
372 * the right to set
373 */
374 public void setRight( int right ) {
375 this.right = right;
376 }
377
378 /**
379 * @return the top
380 */
381 public int getTop() {
382 return top;
383 }
384
385 /**
386 * @param top
387 * the top to set
388 */
389 public void setTop( int top ) {
390 this.top = top;
391 }
392
393 /**
394 * @return the closable
395 */
396 public boolean isClosable() {
397 return closable;
398 }
399
400 /**
401 * @param closable
402 * the closable to set
403 */
404 public void setClosable( boolean closable ) {
405 this.closable = closable;
406 }
407
408 /**
409 * @return the header
410 */
411 public boolean hasHeader() {
412 return header;
413 }
414
415 /**
416 * @param header
417 * the header to set
418 */
419 public void setHeader( boolean header ) {
420 this.header = header;
421 }
422
423 /**
424 * @return the overlay
425 */
426 public boolean isOverlay() {
427 return overlay;
428 }
429
430 /**
431 * @param overlay
432 * the overlay to set
433 */
434 public void setOverlay( boolean overlay ) {
435 this.overlay = overlay;
436 }
437
438 /**
439 * @return moduleJSList
440 */
441 public String[] getModuleJSList() {
442 return moduleJSList;
443 }
444
445 /**
446 * @param list
447 */
448 public void setModuleJSList( String[] list ) {
449 this.moduleJSList = list;
450 }
451
452 /**
453 * return true is the module should has scrollbars in the GUI<br>
454 * possible values are
455 * <UL>
456 * <li>no
457 * <li>yes
458 * <li>auto
459 * </UL>
460 * default is auto
461 *
462 * @return <code>true</code> is the module should has scrollbars in the GUI possible values are
463 */
464 public String getScrolling() {
465 return scrolling;
466 }
467
468 /**
469 * @see #getScrolling()
470 * @param scrollable
471 */
472 public void setScrolling( String scrollable ) {
473 this.scrolling = scrollable;
474 }
475
476 /**
477 * @param collapsed
478 * default value is false
479 */
480 public void setCollapsed( boolean collapsed ) {
481 this.collapsed = collapsed;
482 }
483
484 /**
485 * @return collapsed
486 */
487 public boolean isCollapsed() {
488 return collapsed;
489 }
490 }