Mercurial > hg > STI-GWT
diff src/econnect/wp3_3/client/widgets/map/MapControl.java @ 3:cf06b77a8bbd
Committed branch of the e4D repos sti-gwt branch 16384.
git-svn-id: http://dev.dariah.eu/svn/repos/eu.dariah.de/ap1/sti-gwt-dariah-geobrowser@36 f2b5be40-def6-11e0-8a09-b3c1cc336c6b
author | StefanFunk <StefanFunk@f2b5be40-def6-11e0-8a09-b3c1cc336c6b> |
---|---|
date | Tue, 17 Jul 2012 13:34:40 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/econnect/wp3_3/client/widgets/map/MapControl.java Tue Jul 17 13:34:40 2012 +0000 @@ -0,0 +1,103 @@ +package econnect.wp3_3.client.widgets.map; + +import com.google.gwt.user.client.ui.Image; +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; + +import econnect.wp3_3.client.core.StiConstants; + +/** + * Implementation of the MapControl element +*/ +public class MapControl { + + /** + * The corresponding map object + */ + private Map map; + + /** + * The url of the corresponding image of this control, if it is activated + */ + private String activeImageURL; + + /** + * The url of the corresponding image of this control, if it is deactivated + */ + private String deactiveImageURL; + + /** + * The id of this control + */ + private String id; + + /** + * The button object of a control + */ + private Image button; + + /** + * Constructor for the map control element + * + * @param map object The corresponding map object + * @param activeImageURL The url of the corresponding image of this control, if it is activated + * @param deactiveImageURL The url of the corresponding image of this control, if it is activated + * @param id The id of this control + * @param title The title text for the button element + */ + public MapControl( final Map map, String activeImageURL, String deactiveImageURL, final String id, String title ){ + + this.map = map; + this.activeImageURL = activeImageURL; + this.deactiveImageURL = deactiveImageURL; + this.id = id; + + final StiConstants textConstants = (StiConstants) GWT.create(StiConstants.class); + final MapControl control = this; + this.button = new Image( this.deactiveImageURL ); + this.button.setTitle(title); + this.button.addClickHandler(new ClickHandler() { + public void onClick(ClickEvent event) { + if( map.getActiveControl() != control ){ + if( id == "add" ){ + if( map.core.isMaximumReached() && !map.core.individualSet() ){ + map.core.alert(textConstants.maxDatasources()); + return; + } + } + map.getActiveControl().deactivate(); + activate(); + } + } + }); + + } + + /** + * deactivates this map control + */ + public void deactivate(){ + this.button.setUrl(this.deactiveImageURL); + this.map.getJsMap().deactivate(this.id); + } + + /** + * activates this map control + */ + public void activate(){ + this.button.setUrl(this.activeImageURL); + this.map.getJsMap().activate(this.id); + this.map.setActiveControl(this); + } + + /** + * Getter for the button-image of this control + * + * @return the actual image element + */ + public Image getButton(){ + return this.button; + } + +}