    001    //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/branches/2.4_testing/src/org/deegree/portal/context/GUIArea.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 java.util.ArrayList;
    039    import java.util.HashMap;
    040    import java.util.List;
    041
    042    /**
    043     * this interface describes the content of an area of a GUI. a GUI area contains zero ... n modules
    044     * described by the <tt>Module</tt> interface. A GUI area may be can be switched to be invisible.
    045     * indicated by the hidden attribute.
    046     *
    047     * @version $Revision: 18195 $
    048     * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
    049     */
    050    public class GUIArea {
    051
    052        /**
    053         * A constant defining a 'west' direction.
    054         */
    055        public static final int WEST = 0;
    056
    057        /**
    058         * A constant defining a 'EAST' direction.
    059         */
    060        public static final int EAST = 1;
    061
    062        /**
    063         * A constant defining a 'SOUTH' direction.
    064         */
    065        public static final int SOUTH = 2;
    066
    067        /**
    068         * A constant defining a 'NORTH' direction.
    069         */
    070        public static final int NORTH = 3;
    071
    072        /**
    073         * A constant defining a 'CENTER' direction.
    074         */
    075        public static final int CENTER = 4;
    076
    077        private HashMap<String, Module> modules = new HashMap<String, Module>();
    078
    079        private boolean hidden = false;
    080
    081        private int area = 0;
    082
    083        private int width;
    084
    085        private int height;
    086
    087        private int left;
    088
    089        private int top;
    090
    091        private int right;
    092
    093        private int bottom;
    094
    095        private boolean overlay;
    096
    097        private boolean header;
    098
    099        private boolean closable;
    100
    101        private List<Module> list = new ArrayList<Module>();
    102
    103        /**
    104         * Creates a new GUIArea instance
    105         *
    106         * @param area
    107         * @param hidden
    108         * @param width
    109         * @param height
    110         * @param left
    111         * @param top
    112         * @param right
    113         * @param bottom
    114         * @param overlay
    115         * @param header
    116         * @param closable
    117         * @param modules
    118         */
    119        public GUIArea( int area, boolean hidden, int width, int height, int left, int top, int right, int bottom,
    120                        boolean overlay, boolean header, boolean closable, Module[] modules ) {
    121            setArea( area );
    122            setHidden( hidden );
    123            setWidth( width );
    124            setHeight( height );
    125            setLeft( left );
    126            setTop( top );
    127            setRight( right );
    128            setBottom( bottom );
    129            setOverlay( overlay );
    130            setHeader( header );
    131            setClosable( closable );
    132            setModules( modules );
    133        }
    134
    135        /**
    136         * returns area (north, west, east ...) assigned to an instance
    137         *
    138         * @return area
    139         */
    140        public int getArea() {
    141            return area;
    142        }
    143
    144        /**
    145         * sets the name of a module
    146         *
    147         * @param area
    148         */
    149        public void setArea( int area ) {
    150            this.area = area;
    151        }
    152
    153        /**
    154         * returns true if the GUIArea is hidden.
    155         *
    156         * @return true if area is hidden
    157         */
    158        public boolean isHidden() {
    159            return hidden;
    160        }
    161
    162        /**
    163         * sets the GUIArea to be hidden or visible.
    164         *
    165         * @param hidden
    166         */
    167        public void setHidden( boolean hidden ) {
    168            this.hidden = hidden;
    169        }
    170
    171        /**
    172         * @return the bottom
    173         */
    174        public int getBottom() {
    175            return bottom;
    176        }
    177
    178        /**
    179         * @param bottom
    180         *            the bottom to set
    181         */
    182        public void setBottom( int bottom ) {
    183            this.bottom = bottom;
    184        }
    185
    186        /**
    187         * @return the left
    188         */
    189        public int getLeft() {
    190            return left;
    191        }
    192
    193        /**
    194         * @param left
    195         *            the left to set
    196         */
    197        public void setLeft( int left ) {
    198            this.left = left;
    199        }
    200
    201        /**
    202         * @return the right
    203         */
    204        public int getRight() {
    205            return right;
    206        }
    207
    208        /**
    209         * @param right
    210         *            the right to set
    211         */
    212        public void setRight( int right ) {
    213            this.right = right;
    214        }
    215
    216        /**
    217         * @return the top
    218         */
    219        public int getTop() {
    220            return top;
    221        }
    222
    223        /**
    224         * @param top
    225         *            the top to set
    226         */
    227        public void setTop( int top ) {
    228            this.top = top;
    229        }
    230
    231        /**
    232         * @return the overlay
    233         */
    234        public boolean isOverlay() {
    235            return overlay;
    236        }
    237
    238        /**
    239         * @param overlay
    240         *            the overlay to set
    241         */
    242        public void setOverlay( boolean overlay ) {
    243            this.overlay = overlay;
    244        }
    245
    246        /**
    247         * @return the closable
    248         */
    249        public boolean isClosable() {
    250            return closable;
    251        }
    252
    253        /**
    254         * @param closable
    255         *            the closable to set
    256         */
    257        public void setClosable( boolean closable ) {
    258            this.closable = closable;
    259        }
    260
    261        /**
    262         * @return the header
    263         */
    264        public boolean hasHeader() {
    265            return header;
    266        }
    267
    268        /**
    269         * @param header
    270         *            the header to set
    271         */
    272        public void setHeader( boolean header ) {
    273            this.header = header;
    274        }
    275
    276        /**
    277         * @return the height
    278         */
    279        public int getHeight() {
    280            return height;
    281        }
    282
    283        /**
    284         * @param height
    285         *            the height to set
    286         */
    287        public void setHeight( int height ) {
    288            this.height = height;
    289        }
    290
    291        /**
    292         * @return the width
    293         */
    294        public int getWidth() {
    295            return width;
    296        }
    297
    298        /**
    299         * @param width
    300         *            the width to set
    301         */
    302        public void setWidth( int width ) {
    303            this.width = width;
    304        }
    305
    306        /**
    307         * returns a module identified by its name
    308         *
    309         * @param name
    310         *
    311         * @return named module
    312         */
    313        public Module getModule( String name ) {
    314            return modules.get( name );
    315        }
    316
    317        /**
    318         * returns all modules of a GUIArea
    319         *
    320         * @return all modules
    321         */
    322        public Module[] getModules() {
    323            Module[] cl = new Module[list.size()];
    324            return list.toArray( cl );
    325
    326        }
    327
    328        /**
    329         * sets the modules of a GUIArea
    330         *
    331         * @param modules
    332         */
    333        public void setModules( Module[] modules ) {
    334            this.modules.clear();
    335            this.list.clear();
    336
    337            if ( modules != null ) {
    338                for ( int i = 0; i < modules.length; i++ ) {
    339                    this.modules.put( modules[i].getName(), modules[i] );
    340                    list.add( modules[i] );
    341                }
    342            }
    343        }
    344
    345        /**
    346         * adds a module to a GUIArea
    347         *
    348         * @param module
    349         */
    350        public void addModul( Module module ) {
    351            modules.put( module.getName(), module );
    352            list.add( module );
    353        }
    354
    355        /**
    356         * reomes a module identified by its name from the GUIArea
    357         *
    358         * @param name
    359         *
    360         * @return removed module
    361         */
    362        public Module removeModule( String name ) {
    363            Module module = modules.remove( name );
    364            list.remove( module );
    365            return module;
    366        }
    367
    368    }