    001    //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/branches/2.4_testing/src/org/deegree/portal/context/JSPFrontend.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
    040    /**
    041     * this class encapsulates the description of the front end of a GUI setting up on a web map
    042     * context. this is a deegree specific form of description. beside the general elements inherited
    043     * from AbstractFrontend three additional elements are offered:
    044     * <ul>
    045     * <li>commonJS: a list of javascript files containing objects and methods to be used by more than
    046     * one module of the GUI
    047     * <li>buttons: a javascript file containing a associative array (Map) for the used buttons
    048     * <li>style: css-style file
    049     * </ul>
    050     *
    051     * @version $Revision: 18195 $
    052     * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
    053     */
    054    public class JSPFrontend extends AbstractFrontend {
    055        private ArrayList<String> commonJS = new ArrayList<String>();
    056
    057        private String buttons = null;
    058
    059        private String style = null;
    060
    061        private String header = null;
    062
    063        private String footer = null;
    064
    065        /**
    066         * Creates a new Frontend object.
    067         *
    068         * @param controller
    069         *            name of the controlle JSP file
    070         * @param style
    071         *            name of the css style file
    072         * @param buttons
    073         *            name of the js-file containing a llist (Map) of the used buttons (images)
    074         * @param commonJS
    075         *            list of js-files with common used object and methods
    076         * @param west
    077         *            gui description for west area
    078         * @param east
    079         *            gui description for east area
    080         * @param south
    081         *            gui description for south area
    082         * @param north
    083         *            gui description for north area
    084         * @param center
    085         *            gui description for central area
    086         * @param header
    087         *            JSP header page/file
    088         * @param footer
    089         *            JSP footer page/file
    090         */
    091        public JSPFrontend( String controller, GUIArea west, GUIArea east, GUIArea south, GUIArea north, GUIArea center,
    092                            String style, String buttons, String[] commonJS, String header, String footer ) {
    093            super( controller, west, east, south, north, center );
    094            setStyle( style );
    095            setButtons( buttons );
    096            setCommonJS( commonJS );
    097            setHeader( header );
    098            setFooter( footer );
    099        }
    100
    101        /**
    102         * returns the name of the css style file to be used by the gui
    103         *
    104         * @return the name of the css style file to be used by the gui
    105         */
    106        public String getStyle() {
    107            return style;
    108        }
    109
    110        /**
    111         * returns the name of a javascript file containing a associative array (Map) for the used
    112         * buttons (images). If this is <tt>null</tt> HTML standard buttons shall be used in the gui
    113         *
    114         * @return name of a javascript file containing a associative array for the used buttons
    115         */
    116        public String getButtons() {
    117            return buttons;
    118        }
    119
    120        /**
    121         * returns a list of javascript files containing objects and methods to be used by more than one
    122         * module of the GUI
    123         *
    124         * @return list of javascript files common for all modules
    125         */
    126        public String[] getCommonJS() {
    127            return commonJS.toArray( new String[commonJS.size()] );
    128        }
    129
    130        /**
    131         * sets the name of the css style file to be used by the gui
    132         *
    133         * @param style
    134         */
    135        public void setStyle( String style ) {
    136            this.style = style;
    137        }
    138
    139        /**
    140         * sets the name of a javascript file containing a associative array (Map) for the used buttons
    141         * (images). If this is <tt>null</tt> HTML standard buttons shall be used in the gui
    142         *
    143         * @param buttons
    144         */
    145        public void setButtons( String buttons ) {
    146            this.buttons = buttons;
    147        }
    148
    149        /**
    150         * sets a list of javascript files containing objects and methods to be used by more than one
    151         * module of the GUI
    152         *
    153         * @param commonJS
    154         */
    155        public void setCommonJS( String[] commonJS ) {
    156            if ( commonJS != null ) {
    157                for ( int i = 0; i < commonJS.length; i++ ) {
    158                    this.commonJS.add( commonJS[i] );
    159                }
    160            }
    161        }
    162
    163        /**
    164         * adds the name of a javascript file containing objects and methods to be used by more than one
    165         * module of the GUI
    166         *
    167         * @param commonJS
    168         */
    169        public void addCommonJS( String commonJS ) {
    170            this.commonJS.add( commonJS );
    171        }
    172
    173        /**
    174         * removes the name of a javascript file containing objects and methods to be used by more than
    175         * one module of the GUI
    176         *
    177         * @param commonJS
    178         */
    179        public void removeCommonJS( String commonJS ) {
    180            this.commonJS.remove( commonJS );
    181        }
    182
    183        /**
    184         * returns the name of the header JSP page/file. If the returned value is null, no header shall
    185         * be used
    186         *
    187         * @return name of the header JSP page/file
    188         */
    189        public String getHeader() {
    190            return header;
    191        }
    192
    193        /**
    194         * sets the name of the header JSP page/file
    195         *
    196         * @param header
    197         */
    198        public void setHeader( String header ) {
    199            this.header = header;
    200        }
    201
    202        /**
    203         * returns the name of the footer JSP page/file. If the returned value is null, no footer shall
    204         * be used
    205         *
    206         * @return name of the footer JSP page/file
    207         */
    208        public String getFooter() {
    209            return footer;
    210        }
    211
    212        /**
    213         * sets the name of the footer JSP page/file
    214         *
    215         * @param footer
    216         */
    217        public void setFooter( String footer ) {
    218            this.footer = footer;
    219        }
    220
    221    }