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; /** * Stellt eine dic-tag location fuer mobile Clients dar. * @author wiese.daniel * <br>copyright (C) 2011, SWM Services GmbH * */ public class HtmlDivTagPlainGWTMobileLocation implements ILocation { private final String divTagName; /** * Default contsructor. * * @param divTagName * der name des Div-Tags */ public HtmlDivTagPlainGWTMobileLocation(String divTagName) { this.divTagName = divTagName; } /** * {@inheritDoc} * * @see de.swm.gwt.client.interfaces.ILocation#add(com.google.gwt.user.client.ui.Widget) */ public void add(Widget toAdd) { RootPanel.get(divTagName).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 = RootPanel.get(divTagName).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 = RootPanel.get(divTagName).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) { RootPanel.get(divTagName).remove(toRemove); } /** * {@inheritDoc} * * @see de.swm.gwt.client.interfaces.ILocation#render() */ public void render() { RootPanel.get(divTagName).setVisible(true); } /** * {@inheritDoc} * * @see de.swm.gwt.client.interfaces.ILocation#asWidget() */ @Override public Widget asWidget() { return RootPanel.get(divTagName); } /** * {@inheritDoc} * * @see de.swm.gwt.client.interfaces.ILocation#removeAll() */ @Override public void removeAll() { for (Widget toRemove : getItems()) { RootPanel.get(divTagName).remove(toRemove); } } /** * Erzeugt einen default pannel. * @return der dafault pannel */ public static VerticalPanel createPannel() { VerticalPanel contentPannel = new VerticalPanel(); return contentPannel; } @Override public void addToLastLocation(Widget toAdd) { add(toAdd); } }