package de.swm.gwt.client.location; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import de.swm.gwt.client.interfaces.ILocation; /** * Erzeugt eine Location (Position am Bildschirm) innerhalb eiens auf der HTML * Seite definierten Div-Tags. Fuer Plain GWT Formulare * * @author wiese.daniel * <br>copyright (C) 2010, SWM Services GmbH * */ public class HtmlDivTagPlainGWTLocation implements ILocation { private final VerticalPanel contentPannel; /** * Default contsructor. * * @param divTagName * der name des Div-Tags */ public HtmlDivTagPlainGWTLocation(String divTagName) { contentPannel = createPannel(); RootPanel.get(divTagName).add(contentPannel); } /** * {@inheritDoc} * * @see de.swm.gwt.client.interfaces.ILocation#add(com.google.gwt.user.client.ui.Widget) */ public void add(Widget toAdd) { contentPannel.add(toAdd); } /** * {@inheritDoc} */ @Override public void addToLastLocation(Widget toAdd) { add(toAdd); } /** * {@inheritDoc} * * @see de.swm.gwt.client.interfaces.ILocation#contains(com.google.gwt.user.client.ui.Widget) */ public boolean contains(Widget toCheck) { Iterator<Widget> iterator = contentPannel.iterator(); while (iterator.hasNext()) { if (toCheck.equals(iterator.next())) { return true; } } return false; } /** * {@inheritDoc} * * @see de.swm.gwt.client.interfaces.ILocation#getItems() */ public List<Widget> getItems() { List<Widget> result = new ArrayList<Widget>(); Iterator<Widget> iterator = contentPannel.iterator(); while (iterator.hasNext()) { result.add(iterator.next()); } return result; } /** * {@inheritDoc} * * @see de.swm.gwt.client.interfaces.ILocation#remove(com.google.gwt.user.client.ui.Widget) */ public void remove(Widget toRemove) { contentPannel.remove(toRemove); } /** * {@inheritDoc} * * @see de.swm.gwt.client.interfaces.ILocation#render() */ public void render() { contentPannel.setVisible(true); } /** * {@inheritDoc} * * @see de.swm.gwt.client.interfaces.ILocation#asWidget() */ @Override public Widget asWidget() { return contentPannel; } /** * {@inheritDoc} * * @see de.swm.gwt.client.interfaces.ILocation#removeAll() */ @Override public void removeAll() { for (Widget toRemove : getItems()) { this.contentPannel.remove(toRemove); } } /** * Erzeugt einen default pannel. * @return der dafault pannel */ public static VerticalPanel createPannel() { VerticalPanel contentPannel = new VerticalPanel(); return contentPannel; } }