001 //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/branches/2.4_testing/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: jmays $
047 *
048 * @version $Revision: 23790 $, $Date: 2010-04-23 14:22:04 +0200 (Fr, 23. Apr 2010) $
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 int width = 0;
066
067 private int 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 * @deprecated use other constructor with extra parameter for collapsed state
091 */
092 @Deprecated
093 public Module( String name, String title, String content, boolean hidden, String type, int left, int top,
094 int right, int bottom, int width, int height, boolean overlay, boolean header, boolean closable,
095 String scrolling, String[] moduleJSList, ModuleConfiguration moduleConfiguration,
096 ParameterList parameterList ) {
097 this( name, title, content, hidden, type, left, top, right, bottom, width, height, overlay, header, closable,
098 false, scrolling, moduleJSList, moduleConfiguration, parameterList );
099 }
100
101 /**
102 * Creates a new Module object.
103 *
104 * @param name
105 * name of the module
106 * @param title
107 * title of the module
108 * @param content
109 * the name of the page/class/file etc. containing the content of the module
110 * @param hidden
111 * indicates if the module is visible or not
112 * @param type
113 * @param left
114 * @param top
115 * @param right
116 * @param bottom
117 * @param width
118 * @param height
119 * @param overlay
120 * @param header
121 * @param closable
122 * @param collapsed
123 * the state of the module in table layout of ExtJS. default is false
124 * @param scrolling
125 * @param moduleJSList
126 * @param moduleConfiguration
127 * encapsulates the access to the modules configuration (may be <tt>null</tt>)
128 * @param parameterList
129 */
130 public Module( String name, String title, String content, boolean hidden, String type, int left, int top, int right,
131 int bottom, int width, int height, boolean overlay, boolean header, boolean closable, boolean collapsed,
132 String scrolling, String[] moduleJSList, ModuleConfiguration moduleConfiguration, ParameterList parameterList ) {
133 setName( name );
134 setTitle( title );
135 setContent( content );
136 setHidden( hidden );
137 setModuleConfiguration( moduleConfiguration );
138 setParameter( parameterList );
139 setType( type );
140 setWidth( width );
141 setHeight( height );
142 setLeft( left );
143 setTop( top );
144 setRight( right );
145 setHeader( header );
146 setClosable( closable );
147 setCollapsed( collapsed );
148 setOverlay( overlay );
149 setBottom( bottom );
150 setModuleJSList( moduleJSList );
151 setScrolling( scrolling );
152 }
153
154 /**
155 * returns the name of a module
156 *
157 * @return the name of a module
158 */
159 public String getName() {
160 return name;
161 }
162
163 /**
164 * sets the name of a module
165 *
166 * @param name
167 */
168 public void setName( String name ) {
169 this.name = name;
170 }
171
172 /**
173 * @return the title
174 */
175 public String getTitle() {
176 return title;
177 }
178
179 /**
180 * @param title
181 * the title to set; if <code>title</code> == <code>null</code> the modules name will be used as title
182 */
183 public void setTitle( String title ) {
184 if ( title == null ) {
185 this.title = name;
186 } else {
187 this.title = title;
188 }
189 }
190
191 /**
192 * returns the name of the page/class/file etc. containing the content of the module
193 *
194 * @return the name of the page/class/file etc. containing the content of the module
195 */
196 public String getContent() {
197 return content;
198 }
199
200 /**
201 * sets the name of the page/class/file etc. containing the content of the module
202 *
203 * @param content
204 */
205 public void setContent( String content ) {
206 this.content = content;
207 }
208
209 /**
210 * returns true if the module is hidden. this will always be the case for modules that just offers functions to the
211 * context. visible modules may offere the capability to be turned to visible or not.
212 *
213 * @return <code>true</code> if the module is hidden.
214 */
215 public boolean isHidden() {
216 return hidden;
217 }
218
219 /**
220 * sets the module to be hidden or visible. modules that only adds functions to a context will ignore this because
221 * they are always hidden
222 *
223 * @param hidden
224 */
225 public void setHidden( boolean hidden ) {
226 this.hidden = hidden;
227 }
228
229 /**
230 * returns the a specific confguration for a module. This may be <tt>null</tt> if the module doesn't need to be
231 * configured.
232 *
233 * @return the a specific confguration for a module. This may be <code>null</code>if the module doesn't need to be
234 * configured.
235 */
236 public ModuleConfiguration getModuleConfiguration() {
237 return moduleConfiguration;
238 }
239
240 /**
241 * sets the specific configuration for a module.
242 *
243 * @param configuration
244 */
245 public void setModuleConfiguration( ModuleConfiguration configuration ) {
246 this.moduleConfiguration = configuration;
247 }
248
249 /**
250 * returns a list of parameters that will be passed to a class/object etc. that represents a module
251 *
252 * @return parameters
253 */
254 public ParameterList getParameter() {
255 return parameterList;
256 }
257
258 /**
259 * sets a list of parameters that will be passed to a class/object etc. that represents a module
260 *
261 * @param parameterList
262 */
263 public void setParameter( ParameterList parameterList ) {
264 this.parameterList = parameterList;
265 }
266
267 /**
268 * adds a parameter to the list of parameters that will be passed to a class/object etc. that represents a module
269 *
270 * @param parameter
271 */
272 public void addParameter( Parameter parameter ) {
273 parameterList.addParameter( parameter );
274 }
275
276 /**
277 * removes a parameter to the list of parameters that will be passed to a class/object etc. that represents a module
278 *
279 * @param name
280 */
281 public void removeParameter( String name ) {
282 parameterList.removeParameter( name );
283 }
284
285 /**
286 * see also org.deegree.clients.context.Module#setType(java.lang.String)
287 *
288 * @param type
289 * to set
290 */
291 public void setType( String type ) {
292 if ( type != null ) {
293 this.type = type.toLowerCase();
294 }
295 }
296
297 /**
298 * see also org.deegree.clients.context.Module#getType()
299 *
300 * @return the type.
301 */
302 public String getType() {
303 return type;
304 }
305
306 /**
307 * returns the width of the module in the GUI. If '0' will be returned the GUI can set the with like it is best
308 *
309 * @return the width of the module in the GUI. If '0' will be returned the GUI can set the with like it is best
310 */
311 public int getWidth() {
312 return this.width;
313 }
314
315 /**
316 * sets the desired width of the module in the GUI. If '0' ist passed the GUI can set the with like it is best
317 *
318 * @param width
319 * desired width of the module
320 */
321 public void setWidth( int width ) {
322 this.width = width;
323 }
324
325 /**
326 * returns the height of the module in the GUI. If '0' will be returned the GUI can set the with like it is best
327 *
328 * @return the height of the module in the GUI. If '0' will be returned the GUI can set the with like it is best
329 */
330 public int getHeight() {
331 return this.height;
332 }
333
334 /**
335 * sets the desired height of the module in the GUI. If '0' ist passed the GUI can set the with like it is best
336 *
337 * @param height
338 * desired width of the module
339 */
340 public void setHeight( int height ) {
341 this.height = height;
342 }
343
344 /**
345 * @return the bottom
346 */
347 public int getBottom() {
348 return bottom;
349 }
350
351 /**
352 * @param bottom
353 * the bottom to set
354 */
355 public void setBottom( int bottom ) {
356 this.bottom = bottom;
357 }
358
359 /**
360 * @return the left
361 */
362 public int getLeft() {
363 return left;
364 }
365
366 /**
367 * @param left
368 * the left to set
369 */
370 public void setLeft( int left ) {
371 this.left = left;
372 }
373
374 /**
375 * @return the right
376 */
377 public int getRight() {
378 return right;
379 }
380
381 /**
382 * @param right
383 * the right to set
384 */
385 public void setRight( int right ) {
386 this.right = right;
387 }
388
389 /**
390 * @return the top
391 */
392 public int getTop() {
393 return top;
394 }
395
396 /**
397 * @param top
398 * the top to set
399 */
400 public void setTop( int top ) {
401 this.top = top;
402 }
403
404 /**
405 * @return the closable
406 */
407 public boolean isClosable() {
408 return closable;
409 }
410
411 /**
412 * @param closable
413 * the closable to set
414 */
415 public void setClosable( boolean closable ) {
416 this.closable = closable;
417 }
418
419 /**
420 * @return the header
421 */
422 public boolean hasHeader() {
423 return header;
424 }
425
426 /**
427 * @param header
428 * the header to set
429 */
430 public void setHeader( boolean header ) {
431 this.header = header;
432 }
433
434 /**
435 * @return the overlay
436 */
437 public boolean isOverlay() {
438 return overlay;
439 }
440
441 /**
442 * @param overlay
443 * the overlay to set
444 */
445 public void setOverlay( boolean overlay ) {
446 this.overlay = overlay;
447 }
448
449 /**
450 * @return moduleJSList
451 */
452 public String[] getModuleJSList() {
453 return moduleJSList;
454 }
455
456 /**
457 * @param list
458 */
459 public void setModuleJSList( String[] list ) {
460 this.moduleJSList = list;
461 }
462
463 /**
464 * return true is the module should has scrollbars in the GUI<br>
465 * possible values are
466 * <UL>
467 * <li>no
468 * <li>yes
469 * <li>auto
470 * </UL>
471 * default is auto
472 *
473 * @return <code>true</code> is the module should has scrollbars in the GUI possible values are
474 */
475 public String getScrolling() {
476 return scrolling;
477 }
478
479 /**
480 * @see #getScrolling()
481 * @param scrollable
482 */
483 public void setScrolling( String scrollable ) {
484 this.scrolling = scrollable;
485 }
486
487 /**
488 * @param collapsed
489 * default value is false
490 */
491 public void setCollapsed( boolean collapsed ) {
492 this.collapsed = collapsed;
493 }
494
495 /**
496 * @return collapsed
497 */
498 public boolean isCollapsed() {
499 return collapsed;
500 }
501 }