001 //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/branches/2.2_testing/src/org/deegree/portal/context/AbstractFrontend.java $ 002 /*---------------- FILE HEADER ------------------------------------------ 003 004 This file is part of deegree. 005 Copyright (C) 2001-2008 by: 006 EXSE, Department of Geography, University of Bonn 007 http://www.giub.uni-bonn.de/deegree/ 008 lat/lon GmbH 009 http://www.lat-lon.de 010 011 This library is free software; you can redistribute it and/or 012 modify it under the terms of the GNU Lesser General Public 013 License as published by the Free Software Foundation; either 014 version 2.1 of the License, or (at your option) any later version. 015 016 This library is distributed in the hope that it will be useful, 017 but WITHOUT ANY WARRANTY; without even the implied warranty of 018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 019 Lesser General Public License for more details. 020 021 You should have received a copy of the GNU Lesser General Public 022 License along with this library; if not, write to the Free Software 023 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 024 025 Contact: 026 027 Andreas Poth 028 lat/lon GmbH 029 Aennchenstr. 19 030 53115 Bonn 031 Germany 032 E-Mail: poth@lat-lon.de 033 034 Prof. Dr. Klaus Greve 035 Department of Geography 036 University of Bonn 037 Meckenheimer Allee 166 038 53115 Bonn 039 Germany 040 E-Mail: greve@giub.uni-bonn.de 041 042 043 ---------------------------------------------------------------------------*/ 044 package org.deegree.portal.context; 045 046 import java.util.ArrayList; 047 import java.util.List; 048 049 /** 050 * this class encapsulates the description of the front end of a GUI setting up on a web map 051 * context. this is a deegree specific form of description. beside some 052 * 053 * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a> 054 * @author last edited by: $Author: apoth $ 055 * 056 * @version $Revision: 9346 $, $Date: 2007-12-27 17:39:07 +0100 (Do, 27 Dez 2007) $ 057 */ 058 public abstract class AbstractFrontend implements Frontend { 059 060 private GUIArea center = null; 061 062 private GUIArea east = null; 063 064 private GUIArea north = null; 065 066 private GUIArea south = null; 067 068 private GUIArea west = null; 069 070 private String controller = null; 071 072 /** 073 * Creates a new Frontend object. 074 * 075 * @param controller 076 * @param west 077 * @param east 078 * @param south 079 * @param north 080 * @param center 081 */ 082 public AbstractFrontend( String controller, GUIArea west, GUIArea east, GUIArea south, GUIArea north, GUIArea center ) { 083 setController( controller ); 084 setWest( west ); 085 setEast( east ); 086 setSouth( south ); 087 setNorth( north ); 088 setCenter( center ); 089 } 090 091 /** 092 * @return the name of the central controller of the front end. depending on the implementation 093 * this may be the name of a HTML/JSP-page, a java class or something else. 094 */ 095 public String getController() { 096 return controller; 097 } 098 099 /** 100 * @return the description of the west GUI area 101 */ 102 public GUIArea getWest() { 103 return west; 104 } 105 106 /** 107 * @return the description of the east GUI area 108 */ 109 public GUIArea getEast() { 110 return east; 111 } 112 113 /** 114 * @return the description of the south GUI area 115 */ 116 public GUIArea getSouth() { 117 return south; 118 } 119 120 /** 121 * @return the description of the north GUI area 122 */ 123 public GUIArea getNorth() { 124 return north; 125 } 126 127 /** 128 * @return the description of the central GUI area 129 */ 130 public GUIArea getCenter() { 131 return center; 132 } 133 134 /** 135 * sets the name of the central controller of the front end. depending on the implementation 136 * this may be the name of a HTML/JSP-page a java class or something else. 137 * 138 * @param controller 139 */ 140 public void setController( String controller ) { 141 this.controller = controller; 142 } 143 144 /** 145 * sets the description of the west GUI area 146 * 147 * @param west 148 */ 149 public void setWest( GUIArea west ) { 150 this.west = west; 151 } 152 153 /** 154 * sets the description of the east GUI area 155 * 156 * @param east 157 */ 158 public void setEast( GUIArea east ) { 159 this.east = east; 160 } 161 162 /** 163 * sets the description of the south GUI area 164 * 165 * @param south 166 */ 167 public void setSouth( GUIArea south ) { 168 this.south = south; 169 } 170 171 /** 172 * sets the description of the north GUI area 173 * 174 * @param north 175 */ 176 public void setNorth( GUIArea north ) { 177 this.north = north; 178 } 179 180 /** 181 * sets the description of the central GUI area 182 * 183 * @param center 184 */ 185 public void setCenter( GUIArea center ) { 186 this.center = center; 187 } 188 189 /** 190 * Returns the Modules of the given name (search order is north-east-south-west-center). 191 * 192 * @param moduleName 193 * the name of the Module to extract from this Frontend. 194 * @return an array of Modules of the given name. The array length may be 0, if no module of the 195 * given name is found. 196 */ 197 public Module[] getModulesByName( String moduleName ) { 198 199 List<Module> moduleList = new ArrayList<Module>( 5 ); 200 201 if ( getNorth() != null && getNorth().getModule( moduleName ) != null ) { 202 moduleList.add( getNorth().getModule( moduleName ) ); 203 } 204 if ( getEast() != null && getEast().getModule( moduleName ) != null ) { 205 moduleList.add( getEast().getModule( moduleName ) ); 206 } 207 if ( getSouth() != null && getSouth().getModule( moduleName ) != null ) { 208 moduleList.add( getSouth().getModule( moduleName ) ); 209 } 210 if ( getWest() != null && getWest().getModule( moduleName ) != null ) { 211 moduleList.add( getWest().getModule( moduleName ) ); 212 } 213 if ( getCenter() != null && getCenter().getModule( moduleName ) != null ) { 214 moduleList.add( getCenter().getModule( moduleName ) ); 215 } 216 return moduleList.toArray( new Module[moduleList.size()] ); 217 } 218 219 }