com.itmill.toolkit.ui
Class CustomLayout

java.lang.Object
  extended by com.itmill.toolkit.terminal.Identifiable
      extended by com.itmill.toolkit.ui.AbstractComponent
          extended by com.itmill.toolkit.ui.AbstractComponentContainer
              extended by com.itmill.toolkit.ui.CustomLayout
All Implemented Interfaces:
MethodEventSource, Paintable, VariableOwner, Component, ComponentContainer, Layout, EventListener

public class CustomLayout
extends AbstractComponentContainer
implements Layout

A container component with freely designed layout and style. The container consists of items with textually represented locations. Each item contains one sub-component. The adapter and theme are resposible for rendering the layout with given style by placing the items on the screen in defined locations.

The definition of locations is not fixed - the each style can define its locations in a way that is suitable for it. One typical example would be to create visual design for a website as a custom layout: the visual design could define locations for "menu", "body" and "title" for example. The layout would then be implemented as XLS-template with for given style.

The default theme handles the styles that are not defined by just drawing the subcomponents with flowlayout.

Since:
3.0
Version:
4.1.4
Author:
IT Mill Ltd.

Nested Class Summary
 
Nested classes/interfaces inherited from interface com.itmill.toolkit.ui.ComponentContainer
ComponentContainer.ComponentAttachEvent, ComponentContainer.ComponentAttachListener, ComponentContainer.ComponentDetachEvent, ComponentContainer.ComponentDetachListener
 
Nested classes/interfaces inherited from interface com.itmill.toolkit.ui.Component
Component.ErrorEvent, Component.ErrorListener, Component.Event, Component.Focusable, Component.Listener
 
Nested classes/interfaces inherited from interface com.itmill.toolkit.terminal.Paintable
Paintable.RepaintRequestEvent, Paintable.RepaintRequestListener
 
Constructor Summary
CustomLayout(String style)
          Constructor for custom layout with given style.
 
Method Summary
 void addComponent(Component c)
          Adds the component into this container.
 void addComponent(Component c, String location)
          Adds the component into this container to given location.
 Component getComponent(String location)
          Gets the child-component by its location.
 Iterator getComponentIterator()
          Gets the component container iterator for going trough all the components in the container.
 String getTag()
          Gets the component UIDL tag.
 void paintContent(PaintTarget target)
          Paints the content of this component.
 void removeComponent(Component c)
          Removes the component from this container.
 void removeComponent(String location)
          Removes the component from this container from given location.
 void replaceComponent(Component oldComponent, Component newComponent)
          Replaces the component in the container with another one without changing position.
 
Methods inherited from class com.itmill.toolkit.ui.AbstractComponentContainer
addListener, addListener, attach, detach, fireComponentAttachEvent, fireComponentDetachEvent, moveComponentsFrom, removeAllComponents, removeListener, removeListener
 
Methods inherited from class com.itmill.toolkit.ui.AbstractComponent
addListener, addListener, addListener, addListener, changeVariables, childRequestedRepaint, dependsOn, fireComponentErrorEvent, fireComponentEvent, fireEvent, getApplication, getCaption, getComponentError, getData, getDescription, getDirectDependencies, getErrorMessage, getIcon, getLocale, getParent, getStyle, getWindow, isEnabled, isImmediate, isReadOnly, isVisible, paint, removeDirectDependency, removeListener, removeListener, removeListener, removeListener, removeListener, requestRepaint, requestRepaintRequests, setCaption, setComponentError, setData, setDescription, setEnabled, setIcon, setImmediate, setLocale, setParent, setReadOnly, setStyle, setVisible
 
Methods inherited from class com.itmill.toolkit.terminal.Identifiable
getDebugId, getUIID, setDebugId, setUIID
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.itmill.toolkit.ui.ComponentContainer
addListener, addListener, moveComponentsFrom, removeAllComponents, removeListener, removeListener
 
Methods inherited from interface com.itmill.toolkit.ui.Component
addListener, attach, childRequestedRepaint, detach, getApplication, getCaption, getIcon, getLocale, getParent, getStyle, getWindow, isEnabled, isReadOnly, isVisible, removeListener, setEnabled, setParent, setReadOnly, setStyle, setVisible
 
Methods inherited from interface com.itmill.toolkit.terminal.Paintable
addListener, paint, removeListener, requestRepaint, requestRepaintRequests
 
Methods inherited from interface com.itmill.toolkit.terminal.VariableOwner
changeVariables, dependsOn, getDirectDependencies, isImmediate, removeDirectDependency
 

Constructor Detail

CustomLayout

public CustomLayout(String style)
Constructor for custom layout with given style.

Method Detail

getTag

public String getTag()
Gets the component UIDL tag.

Specified by:
getTag in class AbstractComponent
Returns:
the Component UIDL tag as string.

addComponent

public void addComponent(Component c,
                         String location)
Adds the component into this container to given location.

Parameters:
c - the component to be added.
location - the location of the component.

addComponent

public void addComponent(Component c)
Adds the component into this container. The component is added without specifying the location (empty string is then used as location). Only one component can be added to the default "" location and adding more components into that location overwrites the old components.

Specified by:
addComponent in interface ComponentContainer
Overrides:
addComponent in class AbstractComponentContainer
Parameters:
c - the component to be added.
See Also:
ComponentContainer.addComponent(Component)

removeComponent

public void removeComponent(Component c)
Removes the component from this container.

Specified by:
removeComponent in interface ComponentContainer
Overrides:
removeComponent in class AbstractComponentContainer
Parameters:
c - the component to be removed.
See Also:
ComponentContainer.removeComponent(Component)

removeComponent

public void removeComponent(String location)
Removes the component from this container from given location.

Parameters:
location - the Location identifier of the component.

getComponentIterator

public Iterator getComponentIterator()
Gets the component container iterator for going trough all the components in the container.

Specified by:
getComponentIterator in interface ComponentContainer
Returns:
the Iterator of the components inside the container.

getComponent

public Component getComponent(String location)
Gets the child-component by its location.

Parameters:
location - the name of the location where the requested component resides.
Returns:
the Component in the given location or null if not found.

paintContent

public void paintContent(PaintTarget target)
                  throws PaintException
Paints the content of this component.

Overrides:
paintContent in class AbstractComponent
Parameters:
target -
Throws:
PaintException - if the paint operation failed.

replaceComponent

public void replaceComponent(Component oldComponent,
                             Component newComponent)
Description copied from interface: ComponentContainer
Replaces the component in the container with another one without changing position.

This method replaces component with another one is such way that the new component overtakes the position of the old component. If the old component is not in the container, the new component is added to the container. If the both component are already in the container, their positions are swapped. Component attach and detach events should be taken care as with add and remove.

Specified by:
replaceComponent in interface ComponentContainer
Parameters:
oldComponent - the old component that will be replaced.
newComponent - the new component to be replaced.


Copyright © 2000-2008 IT Mill Ltd. All Rights Reserved.