aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Koivuviita <jouni.koivuviita@itmill.com>2007-11-06 07:14:26 +0000
committerJouni Koivuviita <jouni.koivuviita@itmill.com>2007-11-06 07:14:26 +0000
commitf138893b54f154a49d23af9556c874f7eba16013 (patch)
tree2174dd23b89511e97663498856da4a2bc90b5e3e
parentbf4817c10409082c01bf59f20568d9e628c9d5ba (diff)
downloadvaadin-framework-f138893b54f154a49d23af9556c874f7eba16013.tar.gz
vaadin-framework-f138893b54f154a49d23af9556c874f7eba16013.zip
-Layouts no longer implement Sizeable (except SplitPanel and ExpandLayout). Sizeable implementation now copy-pasted to all implementing classes (Panel, Tabsheet, SplitPanel...).
-Changed ReservationApplication to conform to new setStyleName. Removed deprecated style constant usages also. Some margins enabled to layouts. -IOrderedLayout vertical reverted back to DIV implementation. -Margins added to demo layouts where needed. svn changeset:2714/svn branch:trunk
-rw-r--r--src/com/itmill/toolkit/demo/reservation/ReservationApplication.java7
-rw-r--r--src/com/itmill/toolkit/demo/reservation/ResourceSelectorPanel.java13
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java77
-rw-r--r--src/com/itmill/toolkit/tests/TestForBasicApplicationLayout.java2
-rw-r--r--src/com/itmill/toolkit/tests/featurebrowser/PropertyPanel.java2
-rw-r--r--src/com/itmill/toolkit/ui/AbstractComponentContainer.java8
-rw-r--r--src/com/itmill/toolkit/ui/AbstractLayout.java134
-rw-r--r--src/com/itmill/toolkit/ui/ExpandLayout.java129
-rw-r--r--src/com/itmill/toolkit/ui/GridLayout.java30
-rw-r--r--src/com/itmill/toolkit/ui/Layout.java2
-rw-r--r--src/com/itmill/toolkit/ui/OrderedLayout.java7
-rw-r--r--src/com/itmill/toolkit/ui/Panel.java146
-rw-r--r--src/com/itmill/toolkit/ui/SplitPanel.java140
-rw-r--r--src/com/itmill/toolkit/ui/TabSheet.java153
14 files changed, 614 insertions, 236 deletions
diff --git a/src/com/itmill/toolkit/demo/reservation/ReservationApplication.java b/src/com/itmill/toolkit/demo/reservation/ReservationApplication.java
index 273ff1cfca..0f3297461c 100644
--- a/src/com/itmill/toolkit/demo/reservation/ReservationApplication.java
+++ b/src/com/itmill/toolkit/demo/reservation/ReservationApplication.java
@@ -68,7 +68,6 @@ public class ReservationApplication extends Application {
setTheme("reservr");
TabSheet mainTabs = new TabSheet();
- mainTabs.addStyleName(TabSheet.STYLE_NO_PADDING);
mainWindow.addComponent(mainTabs);
OrderedLayout reservationTab = new OrderedLayout();
@@ -83,7 +82,8 @@ public class ReservationApplication extends Application {
Panel reservationPanel = new Panel("Reservation", new OrderedLayout(
OrderedLayout.ORIENTATION_HORIZONTAL));
- reservationPanel.setStyle("light");
+ reservationPanel.addStyleName(Panel.STYLE_LIGHT);
+ reservationPanel.getLayout().setMargin(true);
reservationTab.addComponent(reservationPanel);
OrderedLayout infoLayout = new OrderedLayout();
@@ -125,7 +125,7 @@ public class ReservationApplication extends Application {
Label arrowLabel = new Label("&raquo;");
arrowLabel.setContentMode(Label.CONTENT_XHTML);
- arrowLabel.setStyle("arrow");
+ arrowLabel.setStyleName("arrow");
reservationPanel.addComponent(arrowLabel);
Calendar to = Calendar.getInstance();
@@ -178,6 +178,7 @@ public class ReservationApplication extends Application {
Panel allLayout = new Panel(new OrderedLayout(
OrderedLayout.ORIENTATION_HORIZONTAL));
allLayout.addStyleName(Panel.STYLE_LIGHT);
+ allLayout.getLayout().setMargin(true);
allCalendar = new CalendarField();
initCalendarFieldPropertyIds(allCalendar);
allLayout.addComponent(allCalendar);
diff --git a/src/com/itmill/toolkit/demo/reservation/ResourceSelectorPanel.java b/src/com/itmill/toolkit/demo/reservation/ResourceSelectorPanel.java
index 69da622ef4..d28313cc62 100644
--- a/src/com/itmill/toolkit/demo/reservation/ResourceSelectorPanel.java
+++ b/src/com/itmill/toolkit/demo/reservation/ResourceSelectorPanel.java
@@ -22,7 +22,7 @@ public class ResourceSelectorPanel extends Panel implements
public ResourceSelectorPanel(String caption) {
super(caption, new OrderedLayout(OrderedLayout.ORIENTATION_HORIZONTAL));
- setStyle("light");
+ addStyleName(Panel.STYLE_LIGHT);
}
public void setResourceContainer(Container resources) {
@@ -41,7 +41,7 @@ public class ResourceSelectorPanel extends Panel implements
String description = (String) resource.getItemProperty(
SampleDB.Resource.PROPERTY_ID_DESCRIPTION).getValue();
Button rButton = new Button(name, this);
- rButton.setStyle("link");
+ rButton.setStyleName("link");
rButton.setDescription(description);
rButton.setData(resource);
Layout resourceLayout = (Layout) categoryLayouts.get(category);
@@ -49,12 +49,13 @@ public class ResourceSelectorPanel extends Panel implements
.get(category);
if (resourceLayout == null) {
resourceLayout = new OrderedLayout();
+ resourceLayout.setMargin(true);
this.addComponent(resourceLayout);
categoryLayouts.put(category, resourceLayout);
resourceList = new LinkedList();
categoryResources.put(category, resourceList);
Button cButton = new Button(category + " (any)", this);
- cButton.setStyle("important-link");
+ cButton.setStyleName("important-link");
cButton.setData(category);
resourceLayout.addComponent(cButton);
}
@@ -89,7 +90,7 @@ public class ResourceSelectorPanel extends Panel implements
.get(category);
setSelectedResources(resources);
}
- ((Button) source).setStyle("selected-link");
+ ((Button) source).setStyleName("selected-link");
}
}
@@ -100,9 +101,9 @@ public class ResourceSelectorPanel extends Panel implements
for (Iterator bit = lo.getComponentIterator(); bit.hasNext();) {
Button b = (Button) bit.next();
if (b.getData() instanceof Item) {
- b.setStyle("link");
+ b.setStyleName("link");
} else {
- b.setStyle("important-link");
+ b.setStyleName("important-link");
}
}
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java
index 59cf73d7de..fdf50c4d43 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java
@@ -33,8 +33,8 @@ public abstract class IOrderedLayout extends ComplexPanel implements Container {
public static final int ALIGNMENT_RIGHT = 2;
public static final int ALIGNMENT_TOP = 4;
public static final int ALIGNMENT_BOTTOM = 8;
- public static final int HORIZONTAL_ALIGNMENT_CENTER = 16;
- public static final int VERTICAL_ALIGNMENT_CENTER = 32;
+ public static final int ALIGNMENT_HORIZONTAL_CENTER = 16;
+ public static final int ALIGNMENT_VERTICAL_CENTER = 32;
int orientationMode = ORIENTATION_VERTICAL;
@@ -49,7 +49,7 @@ public abstract class IOrderedLayout extends ComplexPanel implements Container {
protected Element childContainer;
/*
- * Margin element that provides marginals.
+ * Element that provides margins.
*/
private Element margin;
@@ -60,18 +60,25 @@ public abstract class IOrderedLayout extends ComplexPanel implements Container {
}
protected void constructDOM() {
- margin = DOM.createDiv();
- Element table = DOM.createTable();
- Element tBody = DOM.createTBody();
- childContainer = orientationMode == ORIENTATION_HORIZONTAL ? DOM
- .createTR() : tBody;
- DOM.appendChild(table, tBody);
- if (orientationMode == ORIENTATION_HORIZONTAL)
+ switch (orientationMode) {
+ case ORIENTATION_HORIZONTAL:
+ Element table = DOM.createTable();
+ Element tBody = DOM.createTBody();
+ childContainer = DOM.createTR();
+ DOM.appendChild(table, tBody);
DOM.appendChild(tBody, childContainer);
- setElement(table);
- // prevent unwanted spacing
- DOM.setElementAttribute(table, "cellSpacing", "0");
- DOM.setElementAttribute(table, "cellPadding", "0");
+ setElement(table);
+ // prevent unwanted spacing
+ DOM.setElementAttribute(table, "cellSpacing", "0");
+ DOM.setElementAttribute(table, "cellPadding", "0");
+ margin = table;
+ break;
+ default:
+ childContainer = DOM.createDiv();
+ setElement(childContainer);
+ margin = childContainer;
+ break;
+ }
}
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
@@ -163,7 +170,7 @@ public abstract class IOrderedLayout extends ComplexPanel implements Container {
vAlign = "top";
else if ((alignment & ALIGNMENT_BOTTOM) == ALIGNMENT_BOTTOM)
vAlign = "bottom";
- else if ((alignment & VERTICAL_ALIGNMENT_CENTER) == VERTICAL_ALIGNMENT_CENTER)
+ else if ((alignment & ALIGNMENT_VERTICAL_CENTER) == ALIGNMENT_VERTICAL_CENTER)
vAlign = "middle";
// Horizontal alignment
String hAlign = "";
@@ -171,7 +178,7 @@ public abstract class IOrderedLayout extends ComplexPanel implements Container {
hAlign = "left";
else if ((alignment & ALIGNMENT_RIGHT) == ALIGNMENT_RIGHT)
hAlign = "right";
- else if ((alignment & HORIZONTAL_ALIGNMENT_CENTER) == HORIZONTAL_ALIGNMENT_CENTER)
+ else if ((alignment & ALIGNMENT_HORIZONTAL_CENTER) == ALIGNMENT_HORIZONTAL_CENTER)
hAlign = "center";
Element td = DOM.getParent(((Widget) it.next()).getElement());
@@ -182,23 +189,19 @@ public abstract class IOrderedLayout extends ComplexPanel implements Container {
// Modify layout marginals
String marginClasses = "";
if (uidl.hasAttribute("marginTop"))
- marginClasses = StyleConstants.LAYOUT_MARGIN_TOP;
+ marginClasses += " " + StyleConstants.LAYOUT_MARGIN_TOP;
if (uidl.hasAttribute("marginRight"))
- marginClasses = StyleConstants.LAYOUT_MARGIN_RIGHT;
+ marginClasses += " " + StyleConstants.LAYOUT_MARGIN_RIGHT;
if (uidl.hasAttribute("marginBottom"))
- marginClasses = StyleConstants.LAYOUT_MARGIN_BOTTOM;
+ marginClasses += " " + StyleConstants.LAYOUT_MARGIN_BOTTOM;
if (uidl.hasAttribute("marginLeft"))
- marginClasses = StyleConstants.LAYOUT_MARGIN_LEFT;
+ marginClasses += " " + StyleConstants.LAYOUT_MARGIN_LEFT;
- DOM.setElementProperty(margin, "className", marginClasses);
-
- // Adjust size
- if(uidl.hasAttribute("width"))
- setWidth(uidl.getStringAttribute("width"));
- else setWidth("100%");
- if(uidl.hasAttribute("height"))
- setHeight(uidl.getStringAttribute("height"));
- else setHeight("");
+ if(marginClasses.equals(""))
+ DOM.setElementProperty(margin, "className", CLASSNAME);
+ else
+ DOM.setElementProperty(margin, "className", CLASSNAME + marginClasses);
+
}
/**
@@ -268,11 +271,10 @@ public abstract class IOrderedLayout extends ComplexPanel implements Container {
} else {
Element container = createWidgetWrappper();
DOM.insertChild(childContainer, container, beforeIndex);
- insert(w, orientationMode == ORIENTATION_HORIZONTAL ? container
- : DOM.getFirstChild(container), beforeIndex, false);
+ insert(w, container, beforeIndex, false);
}
}
-
+
/**
* creates an Element which will contain child widget
*/
@@ -281,9 +283,7 @@ public abstract class IOrderedLayout extends ComplexPanel implements Container {
case ORIENTATION_HORIZONTAL:
return DOM.createTD();
default:
- Element tr = DOM.createTR();
- DOM.appendChild(tr, DOM.createTD());
- return tr;
+ return DOM.createDiv();
}
}
@@ -322,8 +322,7 @@ public abstract class IOrderedLayout extends ComplexPanel implements Container {
public void add(Widget w) {
Element wrapper = createWidgetWrappper();
DOM.appendChild(childContainer, wrapper);
- super.add(w, orientationMode == ORIENTATION_HORIZONTAL ? wrapper : DOM
- .getFirstChild(wrapper));
+ super.add(w, wrapper);
}
public boolean remove(int index) {
@@ -335,9 +334,7 @@ public abstract class IOrderedLayout extends ComplexPanel implements Container {
boolean removed = super.remove(w);
if (removed) {
if (!(w instanceof Caption)) {
- DOM.removeChild(childContainer,
- orientationMode == ORIENTATION_HORIZONTAL ? wrapper
- : DOM.getParent(wrapper));
+ DOM.removeChild(childContainer, wrapper);
}
return true;
}
diff --git a/src/com/itmill/toolkit/tests/TestForBasicApplicationLayout.java b/src/com/itmill/toolkit/tests/TestForBasicApplicationLayout.java
index f7a058cbd2..e7712ecaaa 100644
--- a/src/com/itmill/toolkit/tests/TestForBasicApplicationLayout.java
+++ b/src/com/itmill/toolkit/tests/TestForBasicApplicationLayout.java
@@ -56,10 +56,10 @@ public class TestForBasicApplicationLayout extends CustomComponent {
tab.setWidthUnits(Sizeable.UNITS_PERCENTAGE);
tab.setHeight(740);
tab.setHeightUnits(Sizeable.UNITS_PIXELS);
- tab.addStyleName(TabSheet.STYLE_NO_PADDING);
Panel report = new Panel("Monthly Program Runs", new ExpandLayout());
OrderedLayout controls = new OrderedLayout();
+ controls.setMargin(true);
controls.addComponent(new Label("Report tab"));
controls.addComponent(click);
controls.addComponent(click2);
diff --git a/src/com/itmill/toolkit/tests/featurebrowser/PropertyPanel.java b/src/com/itmill/toolkit/tests/featurebrowser/PropertyPanel.java
index ad8382a632..a16f42ce13 100644
--- a/src/com/itmill/toolkit/tests/featurebrowser/PropertyPanel.java
+++ b/src/com/itmill/toolkit/tests/featurebrowser/PropertyPanel.java
@@ -67,6 +67,7 @@ public class PropertyPanel extends Panel implements Button.ClickListener,
/** Contruct new property panel for configuring given object. */
public PropertyPanel(Object objectToConfigure) {
super();
+ getLayout().setMargin(false);
// Layout
setCaption("Properties");
@@ -84,6 +85,7 @@ public class PropertyPanel extends Panel implements Button.ClickListener,
// Control buttons
OrderedLayout buttons = new OrderedLayout(
OrderedLayout.ORIENTATION_HORIZONTAL);
+ buttons.setMargin(false, true, true, true);
buttons.addComponent(setButton);
buttons.addComponent(discardButton);
addComponent(buttons);
diff --git a/src/com/itmill/toolkit/ui/AbstractComponentContainer.java b/src/com/itmill/toolkit/ui/AbstractComponentContainer.java
index 659a810987..6c2e45d562 100644
--- a/src/com/itmill/toolkit/ui/AbstractComponentContainer.java
+++ b/src/com/itmill/toolkit/ui/AbstractComponentContainer.java
@@ -32,8 +32,6 @@ import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.LinkedList;
-import com.itmill.toolkit.terminal.Sizeable;
-
/**
* Extension to {@link AbstractComponent} that defines the default
* implementation for the methods in {@link ComponentContainer}. Basic UI
@@ -46,8 +44,8 @@ import com.itmill.toolkit.terminal.Sizeable;
* @since 3.0
*/
public abstract class AbstractComponentContainer extends AbstractComponent
- implements ComponentContainer, Sizeable {
-
+ implements ComponentContainer {
+
/**
* Constructs a new component container.
*/
@@ -207,5 +205,5 @@ public abstract class AbstractComponentContainer extends AbstractComponent
fireComponentDetachEvent(c);
}
}
-
+
}
diff --git a/src/com/itmill/toolkit/ui/AbstractLayout.java b/src/com/itmill/toolkit/ui/AbstractLayout.java
index 06d0d1899d..10dc8694ba 100644
--- a/src/com/itmill/toolkit/ui/AbstractLayout.java
+++ b/src/com/itmill/toolkit/ui/AbstractLayout.java
@@ -21,30 +21,6 @@ public abstract class AbstractLayout extends AbstractComponentContainer
* space at that edge.
*/
protected boolean[] margins;
-
- /**
- * Height of the layout. Set to -1 for undefined height.
- */
- private int height = -1;
-
- /**
- * Height unit.
- *
- * @see com.itmill.toolkit.terminal.Sizeable.UNIT_SYMBOLS;
- */
- private int heightUnit = UNITS_PIXELS;
-
- /**
- * Width of the layout. Set to -1 for undefined width.
- */
- private int width = -1;
-
- /**
- * Width unit.
- *
- * @see com.itmill.toolkit.terminal.Sizeable.UNIT_SYMBOLS;
- */
- private int widthUnit = UNITS_PIXELS;
/*
* (non-Javadoc)
@@ -73,108 +49,6 @@ public abstract class AbstractLayout extends AbstractComponentContainer
margins = new boolean[] { topEnabled, rightEnabled, bottomEnabled,
leftEnabled };
}
-
- /*
- * (non-Javadoc)
- *
- * @see com.itmill.toolkit.terminal.Sizeable#getHeight()
- */
- public int getHeight() {
- return height;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.itmill.toolkit.terminal.Sizeable#getHeightUnits()
- */
- public int getHeightUnits() {
- return heightUnit;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.itmill.toolkit.terminal.Sizeable#getWidth()
- */
- public int getWidth() {
- return width;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.itmill.toolkit.terminal.Sizeable#getWidthUnits()
- */
- public int getWidthUnits() {
- return widthUnit;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.itmill.toolkit.terminal.Sizeable#setHeight(int)
- */
- public void setHeight(int height) {
- this.height = height;
- requestRepaint();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.itmill.toolkit.terminal.Sizeable#setHeightUnits(int)
- */
- public void setHeightUnits(int units) {
- this.heightUnit = units;
- requestRepaint();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.itmill.toolkit.terminal.Sizeable#setSizeFull()
- */
- public void setSizeFull() {
- height = 100;
- width = 100;
- heightUnit = UNITS_PERCENTAGE;
- widthUnit = UNITS_PERCENTAGE;
- requestRepaint();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.itmill.toolkit.terminal.Sizeable#setSizeUndefined()
- */
- public void setSizeUndefined() {
- height = -1;
- width = -1;
- heightUnit = UNITS_PIXELS;
- widthUnit = UNITS_PIXELS;
- requestRepaint();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.itmill.toolkit.terminal.Sizeable#setWidth(int)
- */
- public void setWidth(int width) {
- this.width = width;
- requestRepaint();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.itmill.toolkit.terminal.Sizeable#setWidthUnits(int)
- */
- public void setWidthUnits(int units) {
- this.widthUnit = units;
- requestRepaint();
- }
/*
* (non-Javadoc)
@@ -194,14 +68,6 @@ public abstract class AbstractLayout extends AbstractComponentContainer
target.addAttribute("marginBottom", margins[2]);
if (margins[3])
target.addAttribute("marginLeft", margins[3]);
-
- // Add size info
- if (getHeight() > -1)
- target.addAttribute("height", getHeight()
- + UNIT_SYMBOLS[getHeightUnits()]);
- if (getWidth() > -1)
- target.addAttribute("width", getWidth()
- + UNIT_SYMBOLS[getWidthUnits()]);
}
}
diff --git a/src/com/itmill/toolkit/ui/ExpandLayout.java b/src/com/itmill/toolkit/ui/ExpandLayout.java
index 497035f8f8..c8bc8b23a0 100644
--- a/src/com/itmill/toolkit/ui/ExpandLayout.java
+++ b/src/com/itmill/toolkit/ui/ExpandLayout.java
@@ -25,6 +25,30 @@ public class ExpandLayout extends OrderedLayout implements Sizeable {
private Component expanded;
+ /**
+ * Height of the layout. Set to -1 for undefined height.
+ */
+ private int height = -1;
+
+ /**
+ * Height unit.
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable.UNIT_SYMBOLS;
+ */
+ private int heightUnit = UNITS_PIXELS;
+
+ /**
+ * Width of the layout. Set to -1 for undefined width.
+ */
+ private int width = -1;
+
+ /**
+ * Width unit.
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable.UNIT_SYMBOLS;
+ */
+ private int widthUnit = UNITS_PIXELS;
+
public ExpandLayout() {
setSizeFull();
}
@@ -48,6 +72,9 @@ public class ExpandLayout extends OrderedLayout implements Sizeable {
}
public void paintContent(PaintTarget target) throws PaintException {
+
+ //TODO should we add margins?
+
// Size
if (getHeight() >= 0)
target.addAttribute("height", "" + getHeight()
@@ -109,4 +136,106 @@ public class ExpandLayout extends OrderedLayout implements Sizeable {
expanded = newComponent;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getHeight()
+ */
+ public int getHeight() {
+ return height;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getHeightUnits()
+ */
+ public int getHeightUnits() {
+ return heightUnit;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getWidth()
+ */
+ public int getWidth() {
+ return width;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getWidthUnits()
+ */
+ public int getWidthUnits() {
+ return widthUnit;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setHeight(int)
+ */
+ public void setHeight(int height) {
+ this.height = height;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setHeightUnits(int)
+ */
+ public void setHeightUnits(int units) {
+ this.heightUnit = units;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setSizeFull()
+ */
+ public void setSizeFull() {
+ height = 100;
+ width = 100;
+ heightUnit = UNITS_PERCENTAGE;
+ widthUnit = UNITS_PERCENTAGE;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setSizeUndefined()
+ */
+ public void setSizeUndefined() {
+ height = -1;
+ width = -1;
+ heightUnit = UNITS_PIXELS;
+ widthUnit = UNITS_PIXELS;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setWidth(int)
+ */
+ public void setWidth(int width) {
+ this.width = width;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setWidthUnits(int)
+ */
+ public void setWidthUnits(int units) {
+ this.widthUnit = units;
+ requestRepaint();
+ }
+
}
diff --git a/src/com/itmill/toolkit/ui/GridLayout.java b/src/com/itmill/toolkit/ui/GridLayout.java
index f9ecdbe3b5..867e75b11a 100644
--- a/src/com/itmill/toolkit/ui/GridLayout.java
+++ b/src/com/itmill/toolkit/ui/GridLayout.java
@@ -101,33 +101,33 @@ public class GridLayout extends AbstractLayout {
/**
* Contained component should be aligned horizontally to the left.
*/
- private int ALIGNMENT_LEFT = 1;
+ public static final int ALIGNMENT_LEFT = 1;
/**
* Contained component should be aligned horizontally to the right.
*/
- private int ALIGNMENT_RIGHT = 2;
+ public static final int ALIGNMENT_RIGHT = 2;
/**
* Contained component should be aligned vertically to the top.
*/
- private int ALIGNMENT_TOP = 4;
+ public static final int ALIGNMENT_TOP = 4;
/**
* Contained component should be aligned vertically to the bottom.
*/
- private int ALIGNMENT_BOTTOM = 8;
+ public static final int ALIGNMENT_BOTTOM = 8;
/**
* Contained component should be horizontally aligned to center.
*/
- private int HORIZONTAL_ALIGNMENT_CENTER = 16;
-
+ public static final int HORIZONTAL_ALIGNMENT_CENTER = 16;
+
/**
* Contained component should be vertically aligned to center.
*/
- private int VERTICAL_ALIGNMENT_CENTER = 32;
-
+ public static final int VERTICAL_ALIGNMENT_CENTER = 32;
+
/**
* Is spacing between contained components enabled. Defaults to false.
*/
@@ -353,7 +353,7 @@ public class GridLayout extends AbstractLayout {
components.remove(component);
if (area != null)
areas.remove(area);
-
+
componentToAlignment.remove(component);
requestRepaint();
@@ -404,7 +404,7 @@ public class GridLayout extends AbstractLayout {
// TODO refactor attribute names in future release.
target.addAttribute("h", rows);
target.addAttribute("w", cols);
-
+
if (this.spacing)
target.addAttribute("spacing", this.spacing);
@@ -825,7 +825,7 @@ public class GridLayout extends AbstractLayout {
* </p>
*/
public void setWidth(int width) {
- super.setWidth(width);
+ // super.setWidth(width);
}
/**
@@ -839,7 +839,8 @@ public class GridLayout extends AbstractLayout {
* </p>
*/
public int getWidth() {
- return super.getWidth();
+ // return super.getWidth();
+ return -1;
}
/**
@@ -893,7 +894,7 @@ public class GridLayout extends AbstractLayout {
* </p>
*/
public void setHeight(int height) {
- super.setHeight(height);
+ // super.setHeight(height);
}
/**
@@ -907,7 +908,8 @@ public class GridLayout extends AbstractLayout {
* </p>
*/
public int getHeight() {
- return super.getHeight();
+ // return super.getHeight();
+ return -1;
}
/**
diff --git a/src/com/itmill/toolkit/ui/Layout.java b/src/com/itmill/toolkit/ui/Layout.java
index 53c4ed791d..245675f90b 100644
--- a/src/com/itmill/toolkit/ui/Layout.java
+++ b/src/com/itmill/toolkit/ui/Layout.java
@@ -42,7 +42,7 @@ import com.itmill.toolkit.terminal.Sizeable;
* @VERSION@
* @since 3.0
*/
-public interface Layout extends ComponentContainer, Sizeable {
+public interface Layout extends ComponentContainer {
/**
* Enable layout margins. Affects all four sides of the layout. This will
diff --git a/src/com/itmill/toolkit/ui/OrderedLayout.java b/src/com/itmill/toolkit/ui/OrderedLayout.java
index 0b7cc04a09..a19c501b50 100644
--- a/src/com/itmill/toolkit/ui/OrderedLayout.java
+++ b/src/com/itmill/toolkit/ui/OrderedLayout.java
@@ -66,6 +66,8 @@ public class OrderedLayout extends AbstractLayout {
*/
private LinkedList components = new LinkedList();
+ /* Child component alignments ************************************** */
+
/**
* Mapping from components to alignments (horizontal + vertical).
*/
@@ -94,12 +96,12 @@ public class OrderedLayout extends AbstractLayout {
/**
* Contained component should be horizontally aligned to center.
*/
- public static final int HORIZONTAL_ALIGNMENT_CENTER = 16;
+ public static final int ALIGNMENT_HORIZONTAL_CENTER = 16;
/**
* Contained component should be vertically aligned to center.
*/
- public static final int VERTICAL_ALIGNMENT_CENTER = 32;
+ public static final int ALIGNMENT_VERTICAL_CENTER = 32;
/**
* Orientation of the layout.
@@ -219,6 +221,7 @@ public class OrderedLayout extends AbstractLayout {
if (orientation == ORIENTATION_HORIZONTAL)
target.addAttribute("orientation", "horizontal");
+ // Add spacing attribute (omitted if false)
if (this.spacing)
target.addAttribute("spacing", this.spacing);
diff --git a/src/com/itmill/toolkit/ui/Panel.java b/src/com/itmill/toolkit/ui/Panel.java
index 151c968b38..9e8e686e64 100644
--- a/src/com/itmill/toolkit/ui/Panel.java
+++ b/src/com/itmill/toolkit/ui/Panel.java
@@ -39,6 +39,7 @@ import com.itmill.toolkit.terminal.KeyMapper;
import com.itmill.toolkit.terminal.PaintException;
import com.itmill.toolkit.terminal.PaintTarget;
import com.itmill.toolkit.terminal.Scrollable;
+import com.itmill.toolkit.terminal.Sizeable;
/**
* Panel - a simple single component container.
@@ -48,13 +49,37 @@ import com.itmill.toolkit.terminal.Scrollable;
* @VERSION@
* @since 3.0
*/
-public class Panel extends AbstractLayout implements Scrollable,
+public class Panel extends AbstractLayout implements Sizeable, Scrollable,
ComponentContainer.ComponentAttachListener,
ComponentContainer.ComponentDetachListener, Action.Container {
public static final String STYLE_LIGHT = "light";
public static final String STYLE_EMPHASIZE = "emphasize";
+
+ /**
+ * Height of the layout. Set to -1 for undefined height.
+ */
+ private int height = -1;
+
+ /**
+ * Height unit.
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable.UNIT_SYMBOLS;
+ */
+ private int heightUnit = UNITS_PIXELS;
+
+ /**
+ * Width of the layout. Set to -1 for undefined width.
+ */
+ private int width = -1;
+
+ /**
+ * Width unit.
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable.UNIT_SYMBOLS;
+ */
+ private int widthUnit = UNITS_PIXELS;
/**
* Layout of the panel.
@@ -86,7 +111,7 @@ public class Panel extends AbstractLayout implements Scrollable,
* Creates a new empty panel. Ordered layout is used.
*/
public Panel() {
- this(new OrderedLayout());
+ setLayout(null);
}
/**
@@ -185,20 +210,7 @@ public class Panel extends AbstractLayout implements Scrollable,
public void paintContent(PaintTarget target) throws PaintException {
layout.paint(target);
- // We need to add these attributes here (and not in super.paintContent),
- // because Panel needs to have size information as variables.
-
- // Add margin info
- if (margins == null)
- setMargin(false);
- if (margins[0])
- target.addAttribute("marginTop", margins[0]);
- if (margins[1])
- target.addAttribute("marginRight", margins[1]);
- if (margins[2])
- target.addAttribute("marginBottom", margins[2]);
- if (margins[3])
- target.addAttribute("marginLeft", margins[3]);
+ super.paintContent(target);
// Add size info as variables
if (getHeight() > -1)
@@ -479,5 +491,107 @@ public class Panel extends AbstractLayout implements Scrollable,
requestRepaint();
}
}
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getHeight()
+ */
+ public int getHeight() {
+ return height;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getHeightUnits()
+ */
+ public int getHeightUnits() {
+ return heightUnit;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getWidth()
+ */
+ public int getWidth() {
+ return width;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getWidthUnits()
+ */
+ public int getWidthUnits() {
+ return widthUnit;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setHeight(int)
+ */
+ public void setHeight(int height) {
+ this.height = height;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setHeightUnits(int)
+ */
+ public void setHeightUnits(int units) {
+ this.heightUnit = units;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setSizeFull()
+ */
+ public void setSizeFull() {
+ height = 100;
+ width = 100;
+ heightUnit = UNITS_PERCENTAGE;
+ widthUnit = UNITS_PERCENTAGE;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setSizeUndefined()
+ */
+ public void setSizeUndefined() {
+ height = -1;
+ width = -1;
+ heightUnit = UNITS_PIXELS;
+ widthUnit = UNITS_PIXELS;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setWidth(int)
+ */
+ public void setWidth(int width) {
+ this.width = width;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setWidthUnits(int)
+ */
+ public void setWidthUnits(int units) {
+ this.widthUnit = units;
+ requestRepaint();
+ }
}
diff --git a/src/com/itmill/toolkit/ui/SplitPanel.java b/src/com/itmill/toolkit/ui/SplitPanel.java
index cb9adc5eef..3ae1a90c73 100644
--- a/src/com/itmill/toolkit/ui/SplitPanel.java
+++ b/src/com/itmill/toolkit/ui/SplitPanel.java
@@ -45,7 +45,7 @@ import com.itmill.toolkit.terminal.Sizeable;
* @VERSION@
* @since 5.0
*/
-public class SplitPanel extends AbstractLayout {
+public class SplitPanel extends AbstractLayout implements Sizeable {
/* Predefined orientations ***************************************** */
@@ -73,6 +73,30 @@ public class SplitPanel extends AbstractLayout {
private int posUnit = UNITS_PERCENTAGE;
/**
+ * Height of the layout. Set to -1 for undefined height.
+ */
+ private int height = -1;
+
+ /**
+ * Height unit.
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable.UNIT_SYMBOLS;
+ */
+ private int heightUnit = UNITS_PIXELS;
+
+ /**
+ * Width of the layout. Set to -1 for undefined width.
+ */
+ private int width = -1;
+
+ /**
+ * Width unit.
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable.UNIT_SYMBOLS;
+ */
+ private int widthUnit = UNITS_PIXELS;
+
+ /**
* Creates a new split panel. The orientation of the panels is
* <code>ORIENTATION_VERTICAL</code>.
*/
@@ -210,13 +234,20 @@ public class SplitPanel extends AbstractLayout {
* if the paint operation failed.
*/
public void paintContent(PaintTarget target) throws PaintException {
-
super.paintContent(target);
String position = pos + UNIT_SYMBOLS[posUnit];
target.addAttribute("position", position);
+ // Add size info
+ if (getHeight() > -1)
+ target.addAttribute("height", getHeight()
+ + UNIT_SYMBOLS[getHeightUnits()]);
+ if (getWidth() > -1)
+ target.addAttribute("width", getWidth()
+ + UNIT_SYMBOLS[getWidthUnits()]);
+
if (firstComponent != null)
firstComponent.paint(target);
else
@@ -278,11 +309,114 @@ public class SplitPanel extends AbstractLayout {
*
* @param pos
* size of the first region
- * @param unit the unit (from {@link Sizeable}) in which the size is given.
+ * @param unit
+ * the unit (from {@link Sizeable}) in which the size is given.
*/
public void setSplitPosition(int pos, int unit) {
this.pos = pos;
this.posUnit = unit;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getHeight()
+ */
+ public int getHeight() {
+ return height;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getHeightUnits()
+ */
+ public int getHeightUnits() {
+ return heightUnit;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getWidth()
+ */
+ public int getWidth() {
+ return width;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getWidthUnits()
+ */
+ public int getWidthUnits() {
+ return widthUnit;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setHeight(int)
+ */
+ public void setHeight(int height) {
+ this.height = height;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setHeightUnits(int)
+ */
+ public void setHeightUnits(int units) {
+ this.heightUnit = units;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setSizeFull()
+ */
+ public void setSizeFull() {
+ height = 100;
+ width = 100;
+ heightUnit = UNITS_PERCENTAGE;
+ widthUnit = UNITS_PERCENTAGE;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setSizeUndefined()
+ */
+ public void setSizeUndefined() {
+ height = -1;
+ width = -1;
+ heightUnit = UNITS_PIXELS;
+ widthUnit = UNITS_PIXELS;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setWidth(int)
+ */
+ public void setWidth(int width) {
+ this.width = width;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setWidthUnits(int)
+ */
+ public void setWidthUnits(int units) {
+ this.widthUnit = units;
+ requestRepaint();
+ }
+
}
diff --git a/src/com/itmill/toolkit/ui/TabSheet.java b/src/com/itmill/toolkit/ui/TabSheet.java
index aacdfb43d6..494310aa57 100644
--- a/src/com/itmill/toolkit/ui/TabSheet.java
+++ b/src/com/itmill/toolkit/ui/TabSheet.java
@@ -30,11 +30,15 @@ package com.itmill.toolkit.ui;
import java.lang.reflect.Method;
import java.util.Hashtable;
-import java.util.LinkedList;
import java.util.Iterator;
+import java.util.LinkedList;
import java.util.Map;
-import com.itmill.toolkit.terminal.*;
+import com.itmill.toolkit.terminal.KeyMapper;
+import com.itmill.toolkit.terminal.PaintException;
+import com.itmill.toolkit.terminal.PaintTarget;
+import com.itmill.toolkit.terminal.Resource;
+import com.itmill.toolkit.terminal.Sizeable;
/**
* Tabsheet component.
@@ -44,14 +48,7 @@ import com.itmill.toolkit.terminal.*;
* @VERSION@
* @since 3.0
*/
-public class TabSheet extends AbstractLayout {
-
- /**
- * Use this stylename with {@link #addStyleName(String)} to remove padding
- * between TabSheet borders and content. The actual client-side
- * implementation will determine which stylenames it implements.
- */
- public static final String STYLE_NO_PADDING = "nopad";
+public class TabSheet extends AbstractLayout implements Sizeable {
/**
* Linked list of component tabs.
@@ -81,6 +78,30 @@ public class TabSheet extends AbstractLayout {
private boolean tabsHidden;
/**
+ * Height of the layout. Set to -1 for undefined height.
+ */
+ private int height = -1;
+
+ /**
+ * Height unit.
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable.UNIT_SYMBOLS;
+ */
+ private int heightUnit = UNITS_PIXELS;
+
+ /**
+ * Width of the layout. Set to -1 for undefined width.
+ */
+ private int width = -1;
+
+ /**
+ * Width unit.
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable.UNIT_SYMBOLS;
+ */
+ private int widthUnit = UNITS_PIXELS;
+
+ /**
* Constructs a new Tabsheet. Tabsheet is immediate by default.
*/
public TabSheet() {
@@ -199,7 +220,15 @@ public class TabSheet extends AbstractLayout {
*/
public void paintContent(PaintTarget target) throws PaintException {
super.paintContent(target);
-
+
+ // Add size info
+ if (getHeight() > -1)
+ target.addAttribute("height", getHeight()
+ + UNIT_SYMBOLS[getHeightUnits()]);
+ if (getWidth() > -1)
+ target.addAttribute("width", getWidth()
+ + UNIT_SYMBOLS[getWidthUnits()]);
+
if (areTabsHidden())
target.addAttribute("hidetabs", true);
@@ -492,4 +521,106 @@ public class TabSheet extends AbstractLayout {
fireEvent(new SelectedTabChangeEvent(this));
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getHeight()
+ */
+ public int getHeight() {
+ return height;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getHeightUnits()
+ */
+ public int getHeightUnits() {
+ return heightUnit;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getWidth()
+ */
+ public int getWidth() {
+ return width;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#getWidthUnits()
+ */
+ public int getWidthUnits() {
+ return widthUnit;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setHeight(int)
+ */
+ public void setHeight(int height) {
+ this.height = height;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setHeightUnits(int)
+ */
+ public void setHeightUnits(int units) {
+ this.heightUnit = units;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setSizeFull()
+ */
+ public void setSizeFull() {
+ height = 100;
+ width = 100;
+ heightUnit = UNITS_PERCENTAGE;
+ widthUnit = UNITS_PERCENTAGE;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setSizeUndefined()
+ */
+ public void setSizeUndefined() {
+ height = -1;
+ width = -1;
+ heightUnit = UNITS_PIXELS;
+ widthUnit = UNITS_PIXELS;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setWidth(int)
+ */
+ public void setWidth(int width) {
+ this.width = width;
+ requestRepaint();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.terminal.Sizeable#setWidthUnits(int)
+ */
+ public void setWidthUnits(int units) {
+ this.widthUnit = units;
+ requestRepaint();
+ }
+
}