From c4dbcb707ce15346c1c6e297eaa2e42bbe186d8c Mon Sep 17 00:00:00 2001 From: Jouni Koivuviita Date: Thu, 13 Dec 2007 10:11:49 +0000 Subject: [PATCH] Major layout API changes: Sizeable is now deprecated. Use HasSize-interface instead in combination with Size object (see ExpandLayout.java for example). OrderedLayout is no longer sizable. Table and Panel implement compatibility methods to proxy old size calls to the new Size object. svn changeset:3228/svn branch:trunk --- src/com/itmill/toolkit/demo/BrowserDemo.java | 2 +- src/com/itmill/toolkit/demo/LayoutDemo.java | 2 +- .../itmill/toolkit/demo/NativeWindowing.java | 8 +- src/com/itmill/toolkit/demo/Parameters.java | 6 +- .../itmill/toolkit/demo/TreeFilesystem.java | 2 +- .../toolkit/demo/TreeFilesystemContainer.java | 6 +- .../itmill/toolkit/demo/WindowedDemos.java | 8 +- .../EmbeddedBrowserExample.java | 2 +- .../demo/featurebrowser/FeatureBrowser.java | 16 +- .../demo/featurebrowser/TableExample.java | 4 +- .../demo/featurebrowser/TreeExample.java | 2 +- .../reservation/ReservationApplication.java | 6 +- src/com/itmill/toolkit/terminal/HasSize.java | 7 + src/com/itmill/toolkit/terminal/Size.java | 217 ++++++++++++++++++ src/com/itmill/toolkit/terminal/Sizeable.java | 1 + .../itmill/toolkit/tests/BasicRandomTest.java | 2 +- .../toolkit/tests/RandomLayoutStress.java | 4 +- src/com/itmill/toolkit/tests/TestBench.java | 5 +- .../tests/TestComponentsAndLayouts.java | 11 +- .../toolkit/tests/TestForAlignments.java | 4 +- ...cationLayoutThatUsesWholeBrosersSpace.java | 6 +- .../tests/TestForBasicApplicationLayout.java | 20 +- .../tests/TestForContainerFilterable.java | 8 +- .../toolkit/tests/TestForExpandLayout.java | 5 +- .../toolkit/tests/TestForNativeWindowing.java | 8 +- .../tests/TestForPreconfiguredComponents.java | 4 +- ...ablesInitialColumnWidthLogicRendering.java | 12 +- .../itmill/toolkit/tests/TestForTrees.java | 4 +- .../toolkit/tests/featurebrowser/Feature.java | 6 +- .../tests/featurebrowser/FeatureWindow.java | 4 +- .../tests/featurebrowser/PropertyPanel.java | 20 +- .../tests/magi/MagiTestApplication.java | 20 +- .../toolkit/tests/testbench/TestBench.java | 5 +- .../tests/testbench/TestForAlignments.java | 2 - .../TestForBasicApplicationLayout.java | 20 +- .../testbench/TestForContainerFilterable.java | 8 +- .../TestForPreconfiguredComponents.java | 4 +- .../toolkit/tests/testbench/TestForTrees.java | 4 +- src/com/itmill/toolkit/ui/AbstractLayout.java | 135 ----------- src/com/itmill/toolkit/ui/CustomLayout.java | 14 +- src/com/itmill/toolkit/ui/ExpandLayout.java | 22 +- src/com/itmill/toolkit/ui/GridLayout.java | 66 +++--- src/com/itmill/toolkit/ui/Layout.java | 3 +- src/com/itmill/toolkit/ui/Panel.java | 189 ++++++--------- src/com/itmill/toolkit/ui/SplitPanel.java | 29 ++- src/com/itmill/toolkit/ui/TabSheet.java | 143 +----------- src/com/itmill/toolkit/ui/Table.java | 171 ++++---------- 47 files changed, 526 insertions(+), 721 deletions(-) create mode 100644 src/com/itmill/toolkit/terminal/HasSize.java create mode 100644 src/com/itmill/toolkit/terminal/Size.java diff --git a/src/com/itmill/toolkit/demo/BrowserDemo.java b/src/com/itmill/toolkit/demo/BrowserDemo.java index 13d4bc5d0c..e4b70b2bee 100644 --- a/src/com/itmill/toolkit/demo/BrowserDemo.java +++ b/src/com/itmill/toolkit/demo/BrowserDemo.java @@ -37,7 +37,7 @@ public class BrowserDemo extends com.itmill.toolkit.Application implements // possible. final ExpandLayout exl = new ExpandLayout(); browser.setLayout(exl); - exl.setSizeFull(); + exl.getSize().setSizeFull(); // create the address combobox final Select select = new Select(); diff --git a/src/com/itmill/toolkit/demo/LayoutDemo.java b/src/com/itmill/toolkit/demo/LayoutDemo.java index a3a671dffe..0704a22dcd 100644 --- a/src/com/itmill/toolkit/demo/LayoutDemo.java +++ b/src/com/itmill/toolkit/demo/LayoutDemo.java @@ -127,7 +127,7 @@ public class LayoutDemo extends com.itmill.toolkit.Application { + " Panel contains an layout where the actual contained components are added, " + "this layout may be switched on the fly.", Label.CONTENT_XHTML)); - panel.setWidth(222); + panel.getSize().setWidth(222); return panel; } diff --git a/src/com/itmill/toolkit/demo/NativeWindowing.java b/src/com/itmill/toolkit/demo/NativeWindowing.java index 7dadd7c4bb..4d98203cdc 100644 --- a/src/com/itmill/toolkit/demo/NativeWindowing.java +++ b/src/com/itmill/toolkit/demo/NativeWindowing.java @@ -29,11 +29,11 @@ public class NativeWindowing extends Application { main.addWindow(w); w.setPositionX(100); w.setPositionY(100); - w.setWidth(200); - w.setHeight(200); + w.getSize().setWidth(200); + w.getSize().setHeight(200); - w.setWidth(100); - w.setHeight(400); + w.getSize().setWidth(100); + w.getSize().setHeight(400); final Button closebutton = new Button("Close " + w.getCaption(), new Button.ClickListener() { diff --git a/src/com/itmill/toolkit/demo/Parameters.java b/src/com/itmill/toolkit/demo/Parameters.java index 204860e44b..65e203c729 100644 --- a/src/com/itmill/toolkit/demo/Parameters.java +++ b/src/com/itmill/toolkit/demo/Parameters.java @@ -11,7 +11,6 @@ import java.util.Map; import com.itmill.toolkit.terminal.DownloadStream; import com.itmill.toolkit.terminal.ExternalResource; import com.itmill.toolkit.terminal.ParameterHandler; -import com.itmill.toolkit.terminal.Sizeable; import com.itmill.toolkit.terminal.URIHandler; import com.itmill.toolkit.ui.ExpandLayout; import com.itmill.toolkit.ui.Label; @@ -74,10 +73,7 @@ public class Parameters extends com.itmill.toolkit.Application implements params.addContainerProperty("Key", String.class, ""); params.addContainerProperty("Value", String.class, ""); final Panel panel2 = new Panel("Parameter Handler"); - params.setHeight(100); - params.setHeightUnits(Sizeable.UNITS_PERCENTAGE); - panel2.setHeight(100); - panel2.setHeightUnits(Sizeable.UNITS_PERCENTAGE); + params.getSize().setSizeFull(); panel2.setLayout(new ExpandLayout()); panel2.getLayout().setMargin(true); diff --git a/src/com/itmill/toolkit/demo/TreeFilesystem.java b/src/com/itmill/toolkit/demo/TreeFilesystem.java index 7fa1f3a1f4..79f7c3624d 100644 --- a/src/com/itmill/toolkit/demo/TreeFilesystem.java +++ b/src/com/itmill/toolkit/demo/TreeFilesystem.java @@ -42,7 +42,7 @@ public class TreeFilesystem extends com.itmill.toolkit.Application implements // configure file structure panel main.addComponent(explorerPanel); explorerPanel.addComponent(tree); - explorerPanel.setHeight(400); + explorerPanel.getSize().setHeight(400); // "this" handles tree's expand event tree.addListener(this); diff --git a/src/com/itmill/toolkit/demo/TreeFilesystemContainer.java b/src/com/itmill/toolkit/demo/TreeFilesystemContainer.java index 6ccc7522ec..2831804443 100644 --- a/src/com/itmill/toolkit/demo/TreeFilesystemContainer.java +++ b/src/com/itmill/toolkit/demo/TreeFilesystemContainer.java @@ -51,10 +51,10 @@ public class TreeFilesystemContainer extends com.itmill.toolkit.Application main.setMargin(true); main.setSpacing(true); - propertyPanel.setHeight(120); + propertyPanel.getSize().setHeight(120); main.addComponent(propertyPanel); - explorerPanel.setHeight(100); - explorerPanel.setHeightUnits(Sizeable.UNITS_PERCENTAGE); + explorerPanel.getSize().setHeight(100); + explorerPanel.getSize().setHeightUnits(Sizeable.UNITS_PERCENTAGE); main.addComponent(explorerPanel); main.expand(explorerPanel); diff --git a/src/com/itmill/toolkit/demo/WindowedDemos.java b/src/com/itmill/toolkit/demo/WindowedDemos.java index 6ec59bf629..f0102ac110 100644 --- a/src/com/itmill/toolkit/demo/WindowedDemos.java +++ b/src/com/itmill/toolkit/demo/WindowedDemos.java @@ -45,8 +45,8 @@ public class WindowedDemos extends com.itmill.toolkit.Application { // Create menu window. final Window menu = new Window("Select demo"); - menu.setWidth(200); - menu.setHeight(400); + menu.getSize().setWidth(200); + menu.getSize().setHeight(400); main.addWindow(menu); // add to layout // Create a menu button for each demo @@ -75,8 +75,8 @@ public class WindowedDemos extends com.itmill.toolkit.Application { Window w = (Window) windows.get(demoName); if (w == null) { w = new Window(demoName); - w.setWidth(520); - w.setHeight(500); + w.getSize().setWidth(520); + w.getSize().setHeight(500); w.setPositionX(202); windows.put(demoName, w); getMainWindow().addWindow(w); diff --git a/src/com/itmill/toolkit/demo/featurebrowser/EmbeddedBrowserExample.java b/src/com/itmill/toolkit/demo/featurebrowser/EmbeddedBrowserExample.java index 7391fc135e..d592be5b53 100644 --- a/src/com/itmill/toolkit/demo/featurebrowser/EmbeddedBrowserExample.java +++ b/src/com/itmill/toolkit/demo/featurebrowser/EmbeddedBrowserExample.java @@ -34,7 +34,7 @@ public class EmbeddedBrowserExample extends ExpandLayout implements } public EmbeddedBrowserExample(String[] urls) { - setSizeFull(); + getSize().setSizeFull(); // create the address combobox final Select select = new Select(); diff --git a/src/com/itmill/toolkit/demo/featurebrowser/FeatureBrowser.java b/src/com/itmill/toolkit/demo/featurebrowser/FeatureBrowser.java index 1088cd789d..0071b081b4 100644 --- a/src/com/itmill/toolkit/demo/featurebrowser/FeatureBrowser.java +++ b/src/com/itmill/toolkit/demo/featurebrowser/FeatureBrowser.java @@ -12,7 +12,7 @@ import com.itmill.toolkit.data.Property.ValueChangeEvent; import com.itmill.toolkit.data.util.HierarchicalContainer; import com.itmill.toolkit.data.util.IndexedContainer; import com.itmill.toolkit.terminal.ExternalResource; -import com.itmill.toolkit.terminal.Sizeable; +import com.itmill.toolkit.terminal.Size; import com.itmill.toolkit.terminal.ThemeResource; import com.itmill.toolkit.ui.AbstractSelect; import com.itmill.toolkit.ui.Button; @@ -110,7 +110,7 @@ public class FeatureBrowser extends com.itmill.toolkit.Application implements final SplitPanel split = new SplitPanel( SplitPanel.ORIENTATION_HORIZONTAL); - split.setSplitPosition(200, Sizeable.UNITS_PIXELS); + split.setSplitPosition(200, Size.UNITS_PIXELS); main.setLayout(split); final HashMap sectionIds = new HashMap(); @@ -153,11 +153,11 @@ public class FeatureBrowser extends com.itmill.toolkit.Application implements split.addComponent(tree); final SplitPanel split2 = new SplitPanel(); - split2.setSplitPosition(200, Sizeable.UNITS_PIXELS); + split2.setSplitPosition(200, Size.UNITS_PIXELS); split.addComponent(split2); table = new Table(); - table.setSizeFull(); + table.getSize().setSizeFull(); table.setColumnReorderingAllowed(true); table.setColumnCollapsingAllowed(true); table.setSelectable(true); @@ -193,11 +193,11 @@ public class FeatureBrowser extends com.itmill.toolkit.Application implements return; } Window w = new Window(caption); - w.setWidth(640); + w.getSize().setWidth(640); if (Layout.class.isAssignableFrom(component.getClass())) { w.setLayout((Layout) component); } else { - w.getLayout().setSizeFull(); + //w.getLayout().getSize().setSizeFull(); w.addComponent(component); } getMainWindow().addWindow(w); @@ -224,7 +224,7 @@ public class FeatureBrowser extends com.itmill.toolkit.Application implements if (Layout.class.isAssignableFrom(component.getClass())) { w.setLayout((Layout) component); } else { - w.getLayout().setSizeFull(); + //w.getLayout().getSize().setSizeFull(); w.addComponent(component); } addWindow(w); @@ -240,7 +240,7 @@ public class FeatureBrowser extends com.itmill.toolkit.Application implements OrderedLayout.ALIGNMENT_TOP); ts = new TabSheet(); - ts.setSizeFull(); + ts.getSize().setSizeFull(); ts.addTab(new Label(""), "Choose example", null); exp.addComponent(ts); exp.expand(ts); diff --git a/src/com/itmill/toolkit/demo/featurebrowser/TableExample.java b/src/com/itmill/toolkit/demo/featurebrowser/TableExample.java index 29c55f224d..e42d50bebb 100644 --- a/src/com/itmill/toolkit/demo/featurebrowser/TableExample.java +++ b/src/com/itmill/toolkit/demo/featurebrowser/TableExample.java @@ -57,7 +57,7 @@ public class TableExample extends CustomComponent implements Action.Handler, // "source" table with bells & whistlesenabled source = new Table("All creatures"); source.setPageLength(7); - source.setWidth(550); + source.getSize().setWidth(550); source.setColumnCollapsingAllowed(true); source.setColumnReorderingAllowed(true); source.setSelectable(true); @@ -92,7 +92,7 @@ public class TableExample extends CustomComponent implements Action.Handler, // "saved" table, minimalistic saved = new Table("Saved creatures"); saved.setPageLength(5); - saved.setWidth(550); + saved.getSize().setWidth(550); saved.setSelectable(false); saved.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_HIDDEN); saved.setRowHeaderMode(Table.ROW_HEADER_MODE_ID); diff --git a/src/com/itmill/toolkit/demo/featurebrowser/TreeExample.java b/src/com/itmill/toolkit/demo/featurebrowser/TreeExample.java index 694c839fb4..fb9f0a34ff 100644 --- a/src/com/itmill/toolkit/demo/featurebrowser/TreeExample.java +++ b/src/com/itmill/toolkit/demo/featurebrowser/TreeExample.java @@ -45,7 +45,7 @@ public class TreeExample extends CustomComponent implements Action.Handler, // Panel w/ Tree Panel p = new Panel("Select item"); p.setStyleName(Panel.STYLE_LIGHT); - p.setWidth(250); + p.getSize().setWidth(250); // Description p.addComponent(new Label(desc)); // Tree with a few items diff --git a/src/com/itmill/toolkit/demo/reservation/ReservationApplication.java b/src/com/itmill/toolkit/demo/reservation/ReservationApplication.java index db8b0c99bd..d53c7fd1d1 100644 --- a/src/com/itmill/toolkit/demo/reservation/ReservationApplication.java +++ b/src/com/itmill/toolkit/demo/reservation/ReservationApplication.java @@ -99,7 +99,7 @@ public class ReservationApplication extends Application { map = new GoogleMap(); // TODO support EM - // map.setWidthUnits(Sizeable.UNITS_EM); + // map.setWidthUnits(Size.UNITS_EM); map.setWidth(266); map.setHeight(210); map.setItemMarkerHtmlPropertyId(SampleDB.Resource.PROPERTY_ID_NAME); @@ -176,8 +176,8 @@ public class ReservationApplication extends Application { allLayout.setMargin(true); allTable = new Table(); - allTable.setHeight(300); - allTable.setWidth(700); + allTable.getSize().setHeight(300); + allTable.getSize().setWidth(700); allTable.setColumnCollapsingAllowed(true); allTable.setColumnReorderingAllowed(true); allLayout.addComponent(allTable); diff --git a/src/com/itmill/toolkit/terminal/HasSize.java b/src/com/itmill/toolkit/terminal/HasSize.java new file mode 100644 index 0000000000..d740924b04 --- /dev/null +++ b/src/com/itmill/toolkit/terminal/HasSize.java @@ -0,0 +1,7 @@ +package com.itmill.toolkit.terminal; + +public interface HasSize { + + public Size getSize(); + +} diff --git a/src/com/itmill/toolkit/terminal/Size.java b/src/com/itmill/toolkit/terminal/Size.java new file mode 100644 index 0000000000..c8af640f0a --- /dev/null +++ b/src/com/itmill/toolkit/terminal/Size.java @@ -0,0 +1,217 @@ +package com.itmill.toolkit.terminal; + +import com.itmill.toolkit.ui.Component; + +public class Size { + + private Component component; + private int width; + private int height; + private int widthUnit; + private int heightUnit; + + /** + * Unit code representing pixels. + */ + public static final int UNITS_PIXELS = 0; + + /** + * Unit code representing points (1/72nd of an inch). + */ + public static final int UNITS_POINTS = 1; + + /** + * Unit code representing picas (12 points). + */ + public static final int UNITS_PICAS = 2; + + /** + * Unit code representing the font-size of the relevant font. + */ + public static final int UNITS_EM = 3; + + /** + * Unit code representing the x-height of the relevant font. + */ + public static final int UNITS_EX = 4; + + /** + * Unit code representing millimeters. + */ + public static final int UNITS_MM = 5; + + /** + * Unit code representing centimeters. + */ + public static final int UNITS_CM = 6; + + /** + * Unit code representing inches. + */ + public static final int UNITS_INCH = 7; + + /** + * Unit code representing in percentage of the containing element defined by + * terminal. + */ + public static final int UNITS_PERCENTAGE = 8; + + /** + * Unit code representing in rows of text. This unit is only applicable to + * some components can it's meaning is specified by component + * implementation. + */ + public static final int UNITS_ROWS = 9; + + /** + * Textual representations of units symbols. Supported units and their + * symbols are: + * + * These can be used like Size.UNIT_SYMBOLS[UNITS_PIXELS]. + */ + public static final String[] UNIT_SYMBOLS = { "px", "pt", "pc", "em", "ex", + "mm", "cm", "in", "%", "rows" }; + + public Size(Component c) { + component = c; + width = -1; + height = -1; + widthUnit = UNITS_PIXELS; + heightUnit = UNITS_PIXELS; + } + + /* + * (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; + component.requestRepaint(); + } + + /* + * (non-Javadoc) + * + * @see com.itmill.toolkit.terminal.Sizeable#setHeightUnits(int) + */ + public void setHeightUnits(int unit) { + heightUnit = unit; + component.requestRepaint(); + } + + public void setHeight(int height, int unit) { + setHeight(height); + setHeightUnits(unit); + } + + /* + * (non-Javadoc) + * + * @see com.itmill.toolkit.terminal.Sizeable#setSizeFull() + */ + public void setSizeFull() { + height = 100; + width = 100; + heightUnit = UNITS_PERCENTAGE; + widthUnit = UNITS_PERCENTAGE; + component.requestRepaint(); + } + + /* + * (non-Javadoc) + * + * @see com.itmill.toolkit.terminal.Sizeable#setSizeUndefined() + */ + public void setSizeUndefined() { + height = -1; + width = -1; + heightUnit = UNITS_PIXELS; + widthUnit = UNITS_PIXELS; + component.requestRepaint(); + } + + /* + * (non-Javadoc) + * + * @see com.itmill.toolkit.terminal.Sizeable#setWidth(int) + */ + public void setWidth(int width) { + this.width = width; + component.requestRepaint(); + } + + /* + * (non-Javadoc) + * + * @see com.itmill.toolkit.terminal.Sizeable#setWidthUnits(int) + */ + public void setWidthUnits(int unit) { + widthUnit = unit; + component.requestRepaint(); + } + + public void setWidth(int width, int unit) { + setWidth(width); + setWidthUnits(unit); + } + + public void paint(PaintTarget target) throws PaintException { + if (getHeight() >= 0) { + target.addAttribute("height", "" + getHeight() + + UNIT_SYMBOLS[getHeightUnits()]); + } + if (getWidth() >= 0) { + target.addAttribute("width", "" + getWidth() + + UNIT_SYMBOLS[getWidthUnits()]); + } + } + +} \ No newline at end of file diff --git a/src/com/itmill/toolkit/terminal/Sizeable.java b/src/com/itmill/toolkit/terminal/Sizeable.java index 649be802f8..8e17e9f269 100644 --- a/src/com/itmill/toolkit/terminal/Sizeable.java +++ b/src/com/itmill/toolkit/terminal/Sizeable.java @@ -12,6 +12,7 @@ package com.itmill.toolkit.terminal; * @version * @VERSION@ * @since 3.0 + * @deprecated */ public interface Sizeable { diff --git a/src/com/itmill/toolkit/tests/BasicRandomTest.java b/src/com/itmill/toolkit/tests/BasicRandomTest.java index fe3811657e..acc9beab7d 100644 --- a/src/com/itmill/toolkit/tests/BasicRandomTest.java +++ b/src/com/itmill/toolkit/tests/BasicRandomTest.java @@ -127,7 +127,7 @@ public class BasicRandomTest extends com.itmill.toolkit.Application implements final OrderedLayout setupLayout = new OrderedLayout( OrderedLayout.ORIENTATION_HORIZONTAL); final Panel statusPanel = new Panel("Status"); - statusPanel.setWidth(200); + statusPanel.getSize().setWidth(200); setupLayout.addComponent(statusPanel); statusPanel.addComponent(statusLabel); setupLayout.addComponent(randomSeedValue); diff --git a/src/com/itmill/toolkit/tests/RandomLayoutStress.java b/src/com/itmill/toolkit/tests/RandomLayoutStress.java index 02a04f9860..6b66f39c5d 100644 --- a/src/com/itmill/toolkit/tests/RandomLayoutStress.java +++ b/src/com/itmill/toolkit/tests/RandomLayoutStress.java @@ -154,12 +154,12 @@ public class RandomLayoutStress extends com.itmill.toolkit.Application { + "extremities and may have a caption to clarify the nature of the contained components' purpose." + " Panel contains an layout where the actual contained components are added, " + "this layout may be switched on the fly.")); - ((Panel) result).setWidth(250); + ((Panel) result).getSize().setWidth(250); break; case 6: // Datefield result = new DateField(); - ((DateField) result).setStyle("calendar"); + ((DateField) result).setStyleName("calendar"); ((DateField) result).setValue(new java.util.Date()); result.setCaption("Calendar component " + caption); break; diff --git a/src/com/itmill/toolkit/tests/TestBench.java b/src/com/itmill/toolkit/tests/TestBench.java index 48787515dc..92575cda82 100644 --- a/src/com/itmill/toolkit/tests/TestBench.java +++ b/src/com/itmill/toolkit/tests/TestBench.java @@ -15,7 +15,7 @@ import java.util.List; import com.itmill.toolkit.Application; import com.itmill.toolkit.data.Property; import com.itmill.toolkit.data.util.HierarchicalContainer; -import com.itmill.toolkit.terminal.Sizeable; +import com.itmill.toolkit.terminal.Size; import com.itmill.toolkit.ui.Component; import com.itmill.toolkit.ui.CustomComponent; import com.itmill.toolkit.ui.ExpandLayout; @@ -112,8 +112,7 @@ public class TestBench extends com.itmill.toolkit.Application implements mainLayout.addComponent(menu); bodyLayout.addStyleName("light"); - bodyLayout.setHeight(100); - bodyLayout.setHeightUnits(Sizeable.UNITS_PERCENTAGE); + bodyLayout.getSize().setHeight(100, Size.UNITS_PERCENTAGE); bodyLayout.setLayout(new ExpandLayout()); mainLayout.addComponent(bodyLayout); diff --git a/src/com/itmill/toolkit/tests/TestComponentsAndLayouts.java b/src/com/itmill/toolkit/tests/TestComponentsAndLayouts.java index 8183216757..62beab9aee 100644 --- a/src/com/itmill/toolkit/tests/TestComponentsAndLayouts.java +++ b/src/com/itmill/toolkit/tests/TestComponentsAndLayouts.java @@ -17,7 +17,7 @@ import com.itmill.toolkit.event.Action; import com.itmill.toolkit.terminal.ClassResource; import com.itmill.toolkit.terminal.ErrorMessage; import com.itmill.toolkit.terminal.ExternalResource; -import com.itmill.toolkit.terminal.Sizeable; +import com.itmill.toolkit.terminal.Size; import com.itmill.toolkit.terminal.UserError; import com.itmill.toolkit.ui.AbstractComponent; import com.itmill.toolkit.ui.Button; @@ -141,8 +141,7 @@ public class TestComponentsAndLayouts extends Application implements Listener, "

Components inside ExpandLayout (height 250px)

", Label.CONTENT_XHTML)); final ExpandLayout el = new ExpandLayout(); - el.setHeight(250); - el.setHeightUnits(Sizeable.UNITS_PIXELS); + el.getSize().setHeight(250, Size.UNITS_PIXELS); populateLayout(el); target.addComponent(el); } @@ -164,8 +163,7 @@ public class TestComponentsAndLayouts extends Application implements Listener, "

Components inside vertical SplitPanel (splitpanel is under 250height ExpandLayout)

", Label.CONTENT_XHTML)); final ExpandLayout sp1l = new ExpandLayout(); - sp1l.setHeight(250); - sp1l.setHeightUnits(Sizeable.UNITS_PIXELS); + sp1l.getSize().setHeight(250, Size.UNITS_PIXELS); final SplitPanel sp1 = new SplitPanel( SplitPanel.ORIENTATION_VERTICAL); sp1l.addComponent(sp1); @@ -185,8 +183,7 @@ public class TestComponentsAndLayouts extends Application implements Listener, "

Components inside horizontal SplitPanel (splitpanel is under 250px height ExpandLayout)

", Label.CONTENT_XHTML)); final ExpandLayout sp2l = new ExpandLayout(); - sp2l.setHeight(250); - sp2l.setHeightUnits(Sizeable.UNITS_PIXELS); + sp2l.getSize().setHeight(250, Size.UNITS_PIXELS); final SplitPanel sp2 = new SplitPanel( SplitPanel.ORIENTATION_HORIZONTAL); sp2l.addComponent(sp2); diff --git a/src/com/itmill/toolkit/tests/TestForAlignments.java b/src/com/itmill/toolkit/tests/TestForAlignments.java index 42cd5b874a..0bf8f2dad0 100644 --- a/src/com/itmill/toolkit/tests/TestForAlignments.java +++ b/src/com/itmill/toolkit/tests/TestForAlignments.java @@ -30,7 +30,7 @@ public class TestForAlignments extends CustomComponent { vert.addComponent(b2); vert.addComponent(t1); vert.addComponent(d1); - vert.setWidth(500); + //vert.getSize().setWidth(500); vert.setComponentAlignment(b1, OrderedLayout.ALIGNMENT_RIGHT, OrderedLayout.ALIGNMENT_TOP); vert.setComponentAlignment(b2, OrderedLayout.ALIGNMENT_LEFT, @@ -46,7 +46,7 @@ public class TestForAlignments extends CustomComponent { hori.addComponent(b4); hori.addComponent(t2); hori.addComponent(d2); - hori.setHeight(200); + //hori.getSize().setHeight(200); hori.setComponentAlignment(b3, OrderedLayout.ALIGNMENT_LEFT, OrderedLayout.ALIGNMENT_BOTTOM); hori.setComponentAlignment(b4, OrderedLayout.ALIGNMENT_LEFT, diff --git a/src/com/itmill/toolkit/tests/TestForApplicationLayoutThatUsesWholeBrosersSpace.java b/src/com/itmill/toolkit/tests/TestForApplicationLayoutThatUsesWholeBrosersSpace.java index 74a1e0e9ee..5890cef052 100644 --- a/src/com/itmill/toolkit/tests/TestForApplicationLayoutThatUsesWholeBrosersSpace.java +++ b/src/com/itmill/toolkit/tests/TestForApplicationLayoutThatUsesWholeBrosersSpace.java @@ -5,7 +5,6 @@ package com.itmill.toolkit.tests; import com.itmill.toolkit.Application; -import com.itmill.toolkit.terminal.Sizeable; import com.itmill.toolkit.ui.ExpandLayout; import com.itmill.toolkit.ui.Label; import com.itmill.toolkit.ui.SplitPanel; @@ -40,10 +39,7 @@ public class TestForApplicationLayoutThatUsesWholeBrosersSpace extends final Table t = TestForTablesInitialColumnWidthLogicRendering .getTestTable(4, 100); - t.setWidth(100); - t.setWidthUnits(Sizeable.UNITS_PERCENTAGE); - t.setHeight(100); - t.setHeightUnits(Sizeable.UNITS_PERCENTAGE); + t.getSize().setSizeFull(); topRight.addComponent(t); topRight.expand(t); diff --git a/src/com/itmill/toolkit/tests/TestForBasicApplicationLayout.java b/src/com/itmill/toolkit/tests/TestForBasicApplicationLayout.java index 8b0f6b5ca2..b2f90d2212 100644 --- a/src/com/itmill/toolkit/tests/TestForBasicApplicationLayout.java +++ b/src/com/itmill/toolkit/tests/TestForBasicApplicationLayout.java @@ -6,7 +6,7 @@ package com.itmill.toolkit.tests; import java.util.Locale; -import com.itmill.toolkit.terminal.Sizeable; +import com.itmill.toolkit.terminal.Size; import com.itmill.toolkit.ui.Button; import com.itmill.toolkit.ui.CustomComponent; import com.itmill.toolkit.ui.DateField; @@ -31,7 +31,7 @@ public class TestForBasicApplicationLayout extends CustomComponent { click = new Button("Set height -1", new ClickListener() { public void buttonClick(ClickEvent event) { - tab.setHeight(-1); + tab.getSize().setHeight(-1); } }); @@ -39,23 +39,22 @@ public class TestForBasicApplicationLayout extends CustomComponent { click2 = new Button("Set height 100%", new ClickListener() { public void buttonClick(ClickEvent event) { - tab.setHeight(100); - tab.setHeightUnits(Sizeable.UNITS_PERCENTAGE); + tab.getSize().setHeight(100, Size.UNITS_PERCENTAGE); } }); final SplitPanel sp = new SplitPanel(SplitPanel.ORIENTATION_HORIZONTAL); - sp.setSplitPosition(290, Sizeable.UNITS_PIXELS); + sp.setSplitPosition(290, Size.UNITS_PIXELS); final SplitPanel sp2 = new SplitPanel(SplitPanel.ORIENTATION_VERTICAL); - sp2.setSplitPosition(255, Sizeable.UNITS_PIXELS); + sp2.setSplitPosition(255, Size.UNITS_PIXELS); final Panel p = new Panel("Accordion Panel"); - p.setSizeFull(); + p.getSize().setSizeFull(); tab = new TabSheet(); - tab.setSizeFull(); + tab.getSize().setSizeFull(); final Panel report = new Panel("Monthly Program Runs", new ExpandLayout()); @@ -71,8 +70,7 @@ public class TestForBasicApplicationLayout extends CustomComponent { report.addComponent(cal); ((ExpandLayout) report.getLayout()).expand(controls); report.addStyleName(Panel.STYLE_LIGHT); - report.setHeight(100); - report.setHeightUnits(Sizeable.UNITS_PERCENTAGE); + report.getSize().setHeight(100, Size.UNITS_PERCENTAGE); sp2.setFirstComponent(report); @@ -84,7 +82,7 @@ public class TestForBasicApplicationLayout extends CustomComponent { table.setColumnCollapsingAllowed(true); table.setColumnReorderingAllowed(true); table.setSortDisabled(false); - table.setSizeFull(); + table.getSize().setSizeFull(); table.addStyleName("table-inline"); sp2.setSecondComponent(table); diff --git a/src/com/itmill/toolkit/tests/TestForContainerFilterable.java b/src/com/itmill/toolkit/tests/TestForContainerFilterable.java index 165abe503b..844168f941 100644 --- a/src/com/itmill/toolkit/tests/TestForContainerFilterable.java +++ b/src/com/itmill/toolkit/tests/TestForContainerFilterable.java @@ -5,7 +5,7 @@ package com.itmill.toolkit.tests; import com.itmill.toolkit.data.util.IndexedContainer; -import com.itmill.toolkit.terminal.Sizeable; +import com.itmill.toolkit.terminal.Size; import com.itmill.toolkit.ui.Button; import com.itmill.toolkit.ui.CustomComponent; import com.itmill.toolkit.ui.Label; @@ -42,8 +42,7 @@ public class TestForContainerFilterable extends CustomComponent { // Init filtering view final Panel filterPanel = new Panel("Filter", new OrderedLayout( OrderedLayout.ORIENTATION_HORIZONTAL)); - filterPanel.setWidth(100); - filterPanel.setWidthUnits(Sizeable.UNITS_PERCENTAGE); + filterPanel.getSize().setWidth(100, Size.UNITS_PERCENTAGE); lo.addComponent(filterPanel); filterPanel.addComponent(fooFilter); filterPanel.addComponent(barFilter); @@ -57,8 +56,7 @@ public class TestForContainerFilterable extends CustomComponent { // Table lo.addComponent(t); t.setPageLength(12); - t.setWidth(100); - t.setWidthUnits(Sizeable.UNITS_PERCENTAGE); + t.getSize().setWidth(100, Size.UNITS_PERCENTAGE); t.setContainerDataSource(ic); // Handler diff --git a/src/com/itmill/toolkit/tests/TestForExpandLayout.java b/src/com/itmill/toolkit/tests/TestForExpandLayout.java index 7ce61ed535..c3bb09a4ae 100644 --- a/src/com/itmill/toolkit/tests/TestForExpandLayout.java +++ b/src/com/itmill/toolkit/tests/TestForExpandLayout.java @@ -4,7 +4,7 @@ package com.itmill.toolkit.tests; -import com.itmill.toolkit.terminal.Sizeable; +import com.itmill.toolkit.terminal.Size; import com.itmill.toolkit.ui.CustomComponent; import com.itmill.toolkit.ui.DateField; import com.itmill.toolkit.ui.ExpandLayout; @@ -36,8 +36,7 @@ public class TestForExpandLayout extends CustomComponent { el.addComponent(l); } if (i > 0) { - el.setHeight(1); - el.setHeightUnits(Sizeable.UNITS_EM); + el.getSize().setHeight(1, Size.UNITS_EM); } main.addComponent(el); } diff --git a/src/com/itmill/toolkit/tests/TestForNativeWindowing.java b/src/com/itmill/toolkit/tests/TestForNativeWindowing.java index 5e7216101b..dd872fc0da 100644 --- a/src/com/itmill/toolkit/tests/TestForNativeWindowing.java +++ b/src/com/itmill/toolkit/tests/TestForNativeWindowing.java @@ -29,11 +29,11 @@ public class TestForNativeWindowing extends Application { main.addWindow(w); w.setPositionX(100); w.setPositionY(100); - w.setWidth(200); - w.setHeight(200); + w.getSize().setWidth(200); + w.getSize().setHeight(200); - w.setWidth(100); - w.setHeight(400); + w.getSize().setWidth(100); + w.getSize().setHeight(400); final Button closebutton = new Button("Close " + w.getCaption(), new Button.ClickListener() { diff --git a/src/com/itmill/toolkit/tests/TestForPreconfiguredComponents.java b/src/com/itmill/toolkit/tests/TestForPreconfiguredComponents.java index 47c435ad82..0bff19a18b 100644 --- a/src/com/itmill/toolkit/tests/TestForPreconfiguredComponents.java +++ b/src/com/itmill/toolkit/tests/TestForPreconfiguredComponents.java @@ -154,8 +154,8 @@ public class TestForPreconfiguredComponents extends CustomComponent implements ol2.addComponent(commit); status.addComponent(ol2); - status.setHeight(300); - status.setWidth(400); + status.getSize().setHeight(300); + status.getSize().setWidth(400); ol.addComponent(status); diff --git a/src/com/itmill/toolkit/tests/TestForTablesInitialColumnWidthLogicRendering.java b/src/com/itmill/toolkit/tests/TestForTablesInitialColumnWidthLogicRendering.java index 1304ef9298..6abe000224 100644 --- a/src/com/itmill/toolkit/tests/TestForTablesInitialColumnWidthLogicRendering.java +++ b/src/com/itmill/toolkit/tests/TestForTablesInitialColumnWidthLogicRendering.java @@ -6,7 +6,7 @@ package com.itmill.toolkit.tests; import java.util.Vector; -import com.itmill.toolkit.terminal.Sizeable; +import com.itmill.toolkit.terminal.Size; import com.itmill.toolkit.ui.Button; import com.itmill.toolkit.ui.CustomComponent; import com.itmill.toolkit.ui.Label; @@ -57,20 +57,18 @@ public class TestForTablesInitialColumnWidthLogicRendering extends t = getTestTable(3, 40); t .setCaption("Table with some columns and wide explicit width. (Ought to widen columns to use all space)"); - t.setWidth(1000); + t.getSize().setWidth(1000); main.addComponent(t); t = getTestTable(12, 4); t.setCaption("Table with some rows and lot of columns, width == 100%"); - t.setWidth(100); - t.setWidthUnits(Sizeable.UNITS_PERCENTAGE); + t.getSize().setWidth(100, Size.UNITS_PERCENTAGE); main.addComponent(t); t = getTestTable(12, 100); t .setCaption("Table with lot of rows and lot of columns, width == 50%"); - t.setWidth(50); - t.setWidthUnits(Sizeable.UNITS_PERCENTAGE); + t.getSize().setWidth(50, Size.UNITS_PERCENTAGE); main.addComponent(t); t = getTestTable(5, 100); @@ -80,7 +78,7 @@ public class TestForTablesInitialColumnWidthLogicRendering extends t = getTestTable(4, 4); t.setCaption("Table with some rows and width = 200px"); - t.setWidth(200); + t.getSize().setWidth(200); main.addComponent(t); final Button b = new Button("refresh view", this, "createNewView"); diff --git a/src/com/itmill/toolkit/tests/TestForTrees.java b/src/com/itmill/toolkit/tests/TestForTrees.java index fd7624fce4..30658f8ffa 100644 --- a/src/com/itmill/toolkit/tests/TestForTrees.java +++ b/src/com/itmill/toolkit/tests/TestForTrees.java @@ -134,8 +134,8 @@ public class TestForTrees extends CustomComponent implements Handler { }); status.addComponent(clear); - status.setHeight(300); - status.setWidth(400); + status.getSize().setHeight(300); + status.getSize().setWidth(400); ol.addComponent(status); diff --git a/src/com/itmill/toolkit/tests/featurebrowser/Feature.java b/src/com/itmill/toolkit/tests/featurebrowser/Feature.java index 3bd9d8e44e..a6f62c6d1b 100644 --- a/src/com/itmill/toolkit/tests/featurebrowser/Feature.java +++ b/src/com/itmill/toolkit/tests/featurebrowser/Feature.java @@ -6,7 +6,6 @@ package com.itmill.toolkit.tests.featurebrowser; import com.itmill.toolkit.terminal.ClassResource; import com.itmill.toolkit.terminal.Resource; -import com.itmill.toolkit.terminal.Sizeable; import com.itmill.toolkit.ui.Component; import com.itmill.toolkit.ui.CustomComponent; import com.itmill.toolkit.ui.Embedded; @@ -79,10 +78,7 @@ public abstract class Feature extends CustomComponent { ts = new TabSheet(); - ts.setWidth(100); - ts.setWidthUnits(Sizeable.UNITS_PERCENTAGE); - ts.setHeight(100); - ts.setHeightUnits(Sizeable.UNITS_PERCENTAGE); + ts.getSize().setSizeFull(); // Description tab final String title = getTitle(); diff --git a/src/com/itmill/toolkit/tests/featurebrowser/FeatureWindow.java b/src/com/itmill/toolkit/tests/featurebrowser/FeatureWindow.java index 7e357e0e00..1aaacf329e 100644 --- a/src/com/itmill/toolkit/tests/featurebrowser/FeatureWindow.java +++ b/src/com/itmill/toolkit/tests/featurebrowser/FeatureWindow.java @@ -35,8 +35,8 @@ public class FeatureWindow extends Feature implements Window.CloseListener { demoWindow = new Window("Feature Test Window"); demoWindow.addListener(this); - demoWindow.setWidth(400); - demoWindow.setHeight(200); + demoWindow.getSize().setWidth(400); + demoWindow.getSize().setHeight(200); demoWindow.setTheme("default"); layoutUpper.addComponent(addButton); diff --git a/src/com/itmill/toolkit/tests/featurebrowser/PropertyPanel.java b/src/com/itmill/toolkit/tests/featurebrowser/PropertyPanel.java index 29fb7ab02f..1ce835b80d 100644 --- a/src/com/itmill/toolkit/tests/featurebrowser/PropertyPanel.java +++ b/src/com/itmill/toolkit/tests/featurebrowser/PropertyPanel.java @@ -28,6 +28,7 @@ import com.itmill.toolkit.ui.DateField; import com.itmill.toolkit.ui.Field; import com.itmill.toolkit.ui.Form; import com.itmill.toolkit.ui.GridLayout; +import com.itmill.toolkit.ui.OptionGroup; import com.itmill.toolkit.ui.OrderedLayout; import com.itmill.toolkit.ui.Panel; import com.itmill.toolkit.ui.Select; @@ -66,10 +67,7 @@ public class PropertyPanel extends Panel implements Button.ClickListener, setCaption("Properties"); addComponent(formsLayout); - setWidth(100); - setWidthUnits(Table.UNITS_PERCENTAGE); - setHeight(100); - setHeightUnits(Table.UNITS_PERCENTAGE); + getSize().setSizeFull(); // Target object this.objectToConfigure = objectToConfigure; @@ -105,10 +103,7 @@ public class PropertyPanel extends Panel implements Button.ClickListener, Table.ALIGN_LEFT, Table.ALIGN_CENTER, Table.ALIGN_CENTER }); allProperties.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_ID); allProperties.setPageLength(0); - allProperties.setWidth(100); - allProperties.setWidthUnits(Table.UNITS_PERCENTAGE); - allProperties.setHeight(100); - allProperties.setHeightUnits(Table.UNITS_PERCENTAGE); + allProperties.getSize().setSizeFull(); updatePropertyList(); } @@ -119,7 +114,7 @@ public class PropertyPanel extends Panel implements Button.ClickListener, // Create new panel containing the form final Panel p = new Panel(); p.setCaption(propertySetCaption); - p.setStyle("light"); + p.setStyleName(Panel.STYLE_LIGHT); p.addComponent(properties); formsLayout.addComponent(p); @@ -383,7 +378,7 @@ public class PropertyPanel extends Panel implements Button.ClickListener, d .setDescription("This is a DateField-component with text-style"); d.setResolution(DateField.RESOLUTION_MIN); - d.setStyle("text"); + d.setStyleName("text"); ((AbstractComponentContainer) objectToConfigure) .addComponent(d); } @@ -393,7 +388,7 @@ public class PropertyPanel extends Panel implements Button.ClickListener, final DateField c = new DateField("Calendar", new Date()); c .setDescription("DateField-component with calendar-style and day-resolution"); - c.setStyle("calendar"); + c.setStyleName("calendar"); c.setResolution(DateField.RESOLUTION_DAY); ((AbstractComponentContainer) objectToConfigure) .addComponent(c); @@ -401,13 +396,12 @@ public class PropertyPanel extends Panel implements Button.ClickListener, // Select option group style if (value.equals("Option group")) { - final Select s = new Select("Options"); + final OptionGroup s = new OptionGroup("Options"); s.setDescription("Select-component with optiongroup-style"); s.addItem("Linux"); s.addItem("Windows"); s.addItem("Solaris"); s.addItem("Symbian"); - s.setStyle("optiongroup"); ((AbstractComponentContainer) objectToConfigure) .addComponent(s); diff --git a/src/com/itmill/toolkit/tests/magi/MagiTestApplication.java b/src/com/itmill/toolkit/tests/magi/MagiTestApplication.java index fafd7ce63c..afec7b3f33 100644 --- a/src/com/itmill/toolkit/tests/magi/MagiTestApplication.java +++ b/src/com/itmill/toolkit/tests/magi/MagiTestApplication.java @@ -15,6 +15,7 @@ import com.itmill.toolkit.data.validator.StringLengthValidator; import com.itmill.toolkit.terminal.ClassResource; import com.itmill.toolkit.terminal.DownloadStream; import com.itmill.toolkit.terminal.ExternalResource; +import com.itmill.toolkit.terminal.Size; import com.itmill.toolkit.terminal.StreamResource; import com.itmill.toolkit.terminal.UserError; import com.itmill.toolkit.ui.AbstractSelect; @@ -366,7 +367,7 @@ public class MagiTestApplication extends com.itmill.toolkit.Application { void example_DateField(Window main, String param) { /* Create a DateField with the calendar style. */ final DateField date = new DateField("Here is a calendar field"); - date.setStyle("calendar"); + date.setStyleName("calendar"); /* Set the date and time to present. */ date.setValue(new java.util.Date()); @@ -491,7 +492,7 @@ public class MagiTestApplication extends com.itmill.toolkit.Application { grid.addComponent(new Button("3x1 button"), 1, 1, 3, 1); grid.addComponent(new Label("1x2 cell"), 1, 2, 1, 3); final DateField date = new DateField("A 2x2 date field"); - date.setStyle("calendar"); + date.setStyleName("calendar"); grid.addComponent(date, 2, 2, 3, 3); main.addComponent(grid); @@ -505,10 +506,8 @@ public class MagiTestApplication extends com.itmill.toolkit.Application { // OrderedLayout(OrderedLayout.ORIENTATION_VERTICAL); main.setLayout(layout); layout.addStyleName("example-alignment"); - layout.setWidth(400); - layout.setWidthUnits(GridLayout.UNITS_PIXELS); - layout.setHeight(400); - layout.setHeightUnits(GridLayout.UNITS_PIXELS); + layout.getSize().setWidth(400, Size.UNITS_PIXELS); + layout.getSize().setHeight(400, Size.UNITS_PIXELS); /* Define cells and their layouts to create. */ /* @@ -586,10 +585,7 @@ public class MagiTestApplication extends com.itmill.toolkit.Application { layout.expand(table); /* Set it to use all available area. */ - table.setHeight(100); - table.setHeightUnits(Table.UNITS_PERCENTAGE); - table.setWidth(100); - table.setWidthUnits(Table.UNITS_PERCENTAGE); + table.getSize().setSizeFull(); /* Add some component below the expanding one. */ final Button button2 = new Button("Ok"); @@ -667,8 +663,8 @@ public class MagiTestApplication extends com.itmill.toolkit.Application { mywindow.addComponent(okbutton); /* Set window size. */ - mywindow.setHeight(200); - mywindow.setWidth(400); + mywindow.getSize().setHeight(200); + mywindow.getSize().setWidth(400); /* Set window position. */ mywindow.setPositionX(200); diff --git a/src/com/itmill/toolkit/tests/testbench/TestBench.java b/src/com/itmill/toolkit/tests/testbench/TestBench.java index 486a5270b7..fc18e8efb8 100644 --- a/src/com/itmill/toolkit/tests/testbench/TestBench.java +++ b/src/com/itmill/toolkit/tests/testbench/TestBench.java @@ -15,7 +15,7 @@ import java.util.List; import com.itmill.toolkit.Application; import com.itmill.toolkit.data.Property; import com.itmill.toolkit.data.util.HierarchicalContainer; -import com.itmill.toolkit.terminal.Sizeable; +import com.itmill.toolkit.terminal.Size; import com.itmill.toolkit.ui.Component; import com.itmill.toolkit.ui.CustomComponent; import com.itmill.toolkit.ui.ExpandLayout; @@ -108,8 +108,7 @@ public class TestBench extends com.itmill.toolkit.Application implements mainLayout.addComponent(menu); bodyLayout.addStyleName("light"); - bodyLayout.setHeight(100); - bodyLayout.setHeightUnits(Sizeable.UNITS_PERCENTAGE); + bodyLayout.getSize().setHeight(100, Size.UNITS_PERCENTAGE); bodyLayout.setLayout(new ExpandLayout()); mainLayout.addComponent(bodyLayout); diff --git a/src/com/itmill/toolkit/tests/testbench/TestForAlignments.java b/src/com/itmill/toolkit/tests/testbench/TestForAlignments.java index 3cdde28e70..f7b75645e5 100644 --- a/src/com/itmill/toolkit/tests/testbench/TestForAlignments.java +++ b/src/com/itmill/toolkit/tests/testbench/TestForAlignments.java @@ -30,7 +30,6 @@ public class TestForAlignments extends CustomComponent { vert.addComponent(b2); vert.addComponent(t1); vert.addComponent(d1); - vert.setWidth(500); vert.setComponentAlignment(b1, OrderedLayout.ALIGNMENT_RIGHT, OrderedLayout.ALIGNMENT_TOP); vert.setComponentAlignment(b2, OrderedLayout.ALIGNMENT_LEFT, @@ -46,7 +45,6 @@ public class TestForAlignments extends CustomComponent { hori.addComponent(b4); hori.addComponent(t2); hori.addComponent(d2); - hori.setHeight(200); hori.setComponentAlignment(b3, OrderedLayout.ALIGNMENT_LEFT, OrderedLayout.ALIGNMENT_BOTTOM); hori.setComponentAlignment(b4, OrderedLayout.ALIGNMENT_LEFT, diff --git a/src/com/itmill/toolkit/tests/testbench/TestForBasicApplicationLayout.java b/src/com/itmill/toolkit/tests/testbench/TestForBasicApplicationLayout.java index 171a262dcc..cd41e345e9 100644 --- a/src/com/itmill/toolkit/tests/testbench/TestForBasicApplicationLayout.java +++ b/src/com/itmill/toolkit/tests/testbench/TestForBasicApplicationLayout.java @@ -9,7 +9,7 @@ import java.util.Locale; import com.itmill.toolkit.data.util.QueryContainer; import com.itmill.toolkit.demo.util.SampleDatabase; -import com.itmill.toolkit.terminal.Sizeable; +import com.itmill.toolkit.terminal.Size; import com.itmill.toolkit.ui.Button; import com.itmill.toolkit.ui.CustomComponent; import com.itmill.toolkit.ui.DateField; @@ -37,7 +37,7 @@ public class TestForBasicApplicationLayout extends CustomComponent { click = new Button("Set height -1", new ClickListener() { public void buttonClick(ClickEvent event) { - tab.setHeight(-1); + tab.getSize().setHeight(-1); } }); @@ -45,23 +45,22 @@ public class TestForBasicApplicationLayout extends CustomComponent { click2 = new Button("Set height 100%", new ClickListener() { public void buttonClick(ClickEvent event) { - tab.setHeight(100); - tab.setHeightUnits(Sizeable.UNITS_PERCENTAGE); + tab.getSize().setHeight(100, Size.UNITS_PERCENTAGE); } }); final SplitPanel sp = new SplitPanel(SplitPanel.ORIENTATION_HORIZONTAL); - sp.setSplitPosition(290, Sizeable.UNITS_PIXELS); + sp.setSplitPosition(290, Size.UNITS_PIXELS); final SplitPanel sp2 = new SplitPanel(SplitPanel.ORIENTATION_VERTICAL); - sp2.setSplitPosition(255, Sizeable.UNITS_PIXELS); + sp2.setSplitPosition(255, Size.UNITS_PIXELS); final Panel p = new Panel("Accordion Panel"); - p.setSizeFull(); + p.getSize().setSizeFull(); tab = new TabSheet(); - tab.setSizeFull(); + tab.getSize().setSizeFull(); final Panel report = new Panel("Monthly Program Runs", new ExpandLayout()); @@ -77,8 +76,7 @@ public class TestForBasicApplicationLayout extends CustomComponent { report.addComponent(cal); ((ExpandLayout) report.getLayout()).expand(controls); report.addStyleName(Panel.STYLE_LIGHT); - report.setHeight(100); - report.setHeightUnits(Sizeable.UNITS_PERCENTAGE); + report.getSize().setHeight(100, Size.UNITS_PERCENTAGE); sp2.setFirstComponent(report); @@ -102,7 +100,7 @@ public class TestForBasicApplicationLayout extends CustomComponent { table.setColumnCollapsingAllowed(true); table.setColumnReorderingAllowed(true); table.setSortDisabled(false); - table.setSizeFull(); + table.getSize().setSizeFull(); table.addStyleName("table-inline"); sp2.setSecondComponent(table); diff --git a/src/com/itmill/toolkit/tests/testbench/TestForContainerFilterable.java b/src/com/itmill/toolkit/tests/testbench/TestForContainerFilterable.java index 73b93dc20c..705d4881dc 100644 --- a/src/com/itmill/toolkit/tests/testbench/TestForContainerFilterable.java +++ b/src/com/itmill/toolkit/tests/testbench/TestForContainerFilterable.java @@ -5,7 +5,7 @@ package com.itmill.toolkit.tests.testbench; import com.itmill.toolkit.data.util.IndexedContainer; -import com.itmill.toolkit.terminal.Sizeable; +import com.itmill.toolkit.terminal.Size; import com.itmill.toolkit.ui.Button; import com.itmill.toolkit.ui.CustomComponent; import com.itmill.toolkit.ui.Label; @@ -42,8 +42,7 @@ public class TestForContainerFilterable extends CustomComponent { // Init filtering view final Panel filterPanel = new Panel("Filter", new OrderedLayout( OrderedLayout.ORIENTATION_HORIZONTAL)); - filterPanel.setWidth(100); - filterPanel.setWidthUnits(Sizeable.UNITS_PERCENTAGE); + filterPanel.getSize().setWidth(100, Size.UNITS_PERCENTAGE); lo.addComponent(filterPanel); filterPanel.addComponent(firstFilter); filterPanel.addComponent(secondFilter); @@ -57,8 +56,7 @@ public class TestForContainerFilterable extends CustomComponent { // Table lo.addComponent(t); t.setPageLength(12); - t.setWidth(100); - t.setWidthUnits(Sizeable.UNITS_PERCENTAGE); + t.getSize().setWidth(100, Size.UNITS_PERCENTAGE); t.setContainerDataSource(ic); // Handler diff --git a/src/com/itmill/toolkit/tests/testbench/TestForPreconfiguredComponents.java b/src/com/itmill/toolkit/tests/testbench/TestForPreconfiguredComponents.java index 7ab15d7360..144640460a 100644 --- a/src/com/itmill/toolkit/tests/testbench/TestForPreconfiguredComponents.java +++ b/src/com/itmill/toolkit/tests/testbench/TestForPreconfiguredComponents.java @@ -154,8 +154,8 @@ public class TestForPreconfiguredComponents extends CustomComponent implements ol2.addComponent(commit); status.addComponent(ol2); - status.setHeight(300); - status.setWidth(400); + status.getSize().setHeight(300); + status.getSize().setWidth(400); ol.addComponent(status); diff --git a/src/com/itmill/toolkit/tests/testbench/TestForTrees.java b/src/com/itmill/toolkit/tests/testbench/TestForTrees.java index 71884144db..1ea7ee2da8 100644 --- a/src/com/itmill/toolkit/tests/testbench/TestForTrees.java +++ b/src/com/itmill/toolkit/tests/testbench/TestForTrees.java @@ -134,8 +134,8 @@ public class TestForTrees extends CustomComponent implements Handler { }); status.addComponent(clear); - status.setHeight(300); - status.setWidth(400); + status.getSize().setHeight(300); + status.getSize().setWidth(400); ol.addComponent(status); diff --git a/src/com/itmill/toolkit/ui/AbstractLayout.java b/src/com/itmill/toolkit/ui/AbstractLayout.java index d66376052a..43349e929a 100644 --- a/src/com/itmill/toolkit/ui/AbstractLayout.java +++ b/src/com/itmill/toolkit/ui/AbstractLayout.java @@ -23,30 +23,6 @@ public abstract class AbstractLayout extends AbstractComponentContainer protected MarginInfo margins = new MarginInfo(false, false, false, false); - /** - * 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) * @@ -78,108 +54,6 @@ public abstract class AbstractLayout extends AbstractComponentContainer 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) { - 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) { - widthUnit = units; - requestRepaint(); - } - /* * (non-Javadoc) * @@ -190,15 +64,6 @@ public abstract class AbstractLayout extends AbstractComponentContainer // Add margin info. Defaults to false. target.addAttribute("margins", margins.getBitMask()); - // Size - if (getHeight() >= 0) { - target.addAttribute("height", "" + getHeight() - + Sizeable.UNIT_SYMBOLS[getHeightUnits()]); - } - if (getWidth() >= 0) { - target.addAttribute("width", "" + getWidth() - + Sizeable.UNIT_SYMBOLS[getWidthUnits()]); - } } } diff --git a/src/com/itmill/toolkit/ui/CustomLayout.java b/src/com/itmill/toolkit/ui/CustomLayout.java index 2b4ea0d481..4fff2c9e10 100644 --- a/src/com/itmill/toolkit/ui/CustomLayout.java +++ b/src/com/itmill/toolkit/ui/CustomLayout.java @@ -7,8 +7,10 @@ package com.itmill.toolkit.ui; import java.util.HashMap; import java.util.Iterator; +import com.itmill.toolkit.terminal.HasSize; import com.itmill.toolkit.terminal.PaintException; import com.itmill.toolkit.terminal.PaintTarget; +import com.itmill.toolkit.terminal.Size; /** *

@@ -37,7 +39,7 @@ import com.itmill.toolkit.terminal.PaintTarget; * @VERSION@ * @since 3.0 */ -public class CustomLayout extends AbstractLayout { +public class CustomLayout extends AbstractLayout implements HasSize { /** * Custom layout slots containing the components. @@ -46,11 +48,14 @@ public class CustomLayout extends AbstractLayout { private String templateName; + private Size size; + /** * Constructor for custom layout with given template name. */ public CustomLayout(String template) { templateName = template; + size = new Size(this); } /** @@ -152,6 +157,9 @@ public class CustomLayout extends AbstractLayout { public void paintContent(PaintTarget target) throws PaintException { super.paintContent(target); + // Size + size.paint(target); + target.addAttribute("template", templateName); // Adds all items in all the locations for (final Iterator i = slots.keySet().iterator(); i.hasNext();) { @@ -252,4 +260,8 @@ public class CustomLayout extends AbstractLayout { "CustomLayout does not support margins."); } + public Size getSize() { + return size; + } + } diff --git a/src/com/itmill/toolkit/ui/ExpandLayout.java b/src/com/itmill/toolkit/ui/ExpandLayout.java index dab5ee2cf1..100fac872c 100644 --- a/src/com/itmill/toolkit/ui/ExpandLayout.java +++ b/src/com/itmill/toolkit/ui/ExpandLayout.java @@ -6,9 +6,10 @@ package com.itmill.toolkit.ui; import java.util.Iterator; +import com.itmill.toolkit.terminal.HasSize; import com.itmill.toolkit.terminal.PaintException; import com.itmill.toolkit.terminal.PaintTarget; -import com.itmill.toolkit.terminal.Sizeable; +import com.itmill.toolkit.terminal.Size; /** * TODO finish documentation @@ -25,12 +26,14 @@ import com.itmill.toolkit.terminal.Sizeable; * other components don't use. Or just provide expanded container. * */ -public class ExpandLayout extends OrderedLayout { +public class ExpandLayout extends OrderedLayout implements HasSize { private Component expanded; + private Size size; public ExpandLayout() { - setSizeFull(); + size = new Size(this); + size.setSizeFull(); } public ExpandLayout(int orientation) { @@ -62,14 +65,7 @@ public class ExpandLayout extends OrderedLayout { } // Size - if (getHeight() >= 0) { - target.addAttribute("height", "" + getHeight() - + Sizeable.UNIT_SYMBOLS[getHeightUnits()]); - } - if (getWidth() >= 0) { - target.addAttribute("width", "" + getWidth() - + Sizeable.UNIT_SYMBOLS[getWidthUnits()]); - } + size.paint(target); // Adds the attributes: orientation // note that the default values (b/vertival) are omitted @@ -137,4 +133,8 @@ public class ExpandLayout extends OrderedLayout { } } + public Size getSize() { + return size; + } + } diff --git a/src/com/itmill/toolkit/ui/GridLayout.java b/src/com/itmill/toolkit/ui/GridLayout.java index e7f5293b23..990ba634e2 100644 --- a/src/com/itmill/toolkit/ui/GridLayout.java +++ b/src/com/itmill/toolkit/ui/GridLayout.java @@ -10,9 +10,10 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.Map; +import com.itmill.toolkit.terminal.HasSize; import com.itmill.toolkit.terminal.PaintException; import com.itmill.toolkit.terminal.PaintTarget; -import com.itmill.toolkit.terminal.Sizeable; +import com.itmill.toolkit.terminal.Size; import com.itmill.toolkit.terminal.gwt.client.ui.AlignmentInfo; /** @@ -35,7 +36,7 @@ import com.itmill.toolkit.terminal.gwt.client.ui.AlignmentInfo; * @VERSION@ * @since 3.0 */ -public class GridLayout extends AbstractLayout { +public class GridLayout extends AbstractLayout implements HasSize { /** * Initial grid columns. @@ -110,6 +111,11 @@ public class GridLayout extends AbstractLayout { */ private boolean spacing = false; + /** + * Sizing object. + */ + private Size size; + /** * Constructor for grid of given size (number of cells). Note that grid's * final size depends on the items that are added into the grid. Grid grows @@ -123,6 +129,7 @@ public class GridLayout extends AbstractLayout { public GridLayout(int columns, int rows) { setColumns(columns); setRows(rows); + size = new Size(this); } /** @@ -386,6 +393,9 @@ public class GridLayout extends AbstractLayout { super.paintContent(target); + // Size + size.paint(target); + // TODO refactor attribute names in future release. target.addAttribute("h", rows); target.addAttribute("w", cols); @@ -801,31 +811,17 @@ public class GridLayout extends AbstractLayout { } /** - * Sets the width of the layout. - *

- * NOTE: The behaviour of this methdod has changed in - * version 5.0. Now this method won't set the number of columns in the grid - * like it used to (use {@link #setColumns()} for that). Instead, it sets - * the actual visual width of the layout in pixels or in another unit - * specified in {@link Sizeable}.UNIT_SYMBOLS. - *

+ * @deprecated use setColumns instead. */ - public void setWidth(int width) { - super.setWidth(width); + public void setWidth(int columns) { + setColumns(columns); } /** - * Gets the width of the layout. - *

- * NOTE: The behaviour of this methdod has changed in - * version 5.0. Now this method won't return the number of columns in the - * grid like it used to (use {@link #getColumns()} for that). Instead, it - * returns the actual visual width of the layout in pixels or in another - * unit specified in {@link Sizeable}.UNIT_SYMBOLS. - *

+ * @deprecated use getColumns instead. */ public int getWidth() { - return super.getWidth(); + return getColumns(); } /** @@ -873,31 +869,17 @@ public class GridLayout extends AbstractLayout { } /** - * Set the height of the layout. - *

- * NOTE: The behaviour of this methdod has changed in - * version 5.0. Now this method won't set the number of rows in the grid - * like it used to (use {@link #setRows()} for that). Instead, it sets the - * actual visual height of the layout in pixels or in another unit specified - * in {@link Sizeable}.UNIT_SYMBOLS. - *

+ * @deprecated use setRows() instead. */ - public void setHeight(int height) { - super.setHeight(height); + public void setHeight(int rows) { + setRows(rows); } /** - * Gets the height of the layout. - *

- * NOTE: The behaviour of this methdod has changed in - * version 5.0. Now this method won't return the number of rows in the grid - * like it used to (use {@link #getRows()} for that). Instead, it returns - * the actual visual height of the layout in pixels or in another unit - * specified in {@link Sizeable}.UNIT_SYMBOLS. - *

+ * @deprecated use getRows() instead. */ public int getHeight() { - return super.getHeight(); + return getRows(); } /** @@ -1044,4 +1026,8 @@ public class GridLayout extends AbstractLayout { spacing = enabled; } + public Size getSize() { + return size; + } + } diff --git a/src/com/itmill/toolkit/ui/Layout.java b/src/com/itmill/toolkit/ui/Layout.java index cdc7c42730..55430113c7 100644 --- a/src/com/itmill/toolkit/ui/Layout.java +++ b/src/com/itmill/toolkit/ui/Layout.java @@ -4,7 +4,6 @@ package com.itmill.toolkit.ui; -import com.itmill.toolkit.terminal.Sizeable; /** * Extension to the {@link ComponentContainer} interface which adds the @@ -17,7 +16,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/Panel.java b/src/com/itmill/toolkit/ui/Panel.java index a2be804cd6..22f87ac220 100644 --- a/src/com/itmill/toolkit/ui/Panel.java +++ b/src/com/itmill/toolkit/ui/Panel.java @@ -11,11 +11,12 @@ import java.util.Map; import com.itmill.toolkit.event.Action; import com.itmill.toolkit.event.ShortcutAction; import com.itmill.toolkit.event.Action.Handler; +import com.itmill.toolkit.terminal.HasSize; 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; +import com.itmill.toolkit.terminal.Size; /** * Panel - a simple single component container. @@ -25,37 +26,15 @@ import com.itmill.toolkit.terminal.Sizeable; * @VERSION@ * @since 3.0 */ -public class Panel extends AbstractComponentContainer implements Sizeable, +public class Panel extends AbstractComponentContainer implements HasSize, 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; + + private Size size; /** * Layout of the panel. @@ -88,6 +67,7 @@ public class Panel extends AbstractComponentContainer implements Sizeable, */ public Panel() { setLayout(null); + size = new Size(this); } /** @@ -98,6 +78,7 @@ public class Panel extends AbstractComponentContainer implements Sizeable, */ public Panel(Layout layout) { setLayout(layout); + size = new Size(this); } /** @@ -121,6 +102,7 @@ public class Panel extends AbstractComponentContainer implements Sizeable, public Panel(String caption, Layout layout) { this(layout); setCaption(caption); + size = new Size(this); } /** @@ -187,13 +169,13 @@ public class Panel extends AbstractComponentContainer implements Sizeable, layout.paint(target); // Add size info as variables - if (getHeight() > -1) { - target.addVariable(this, "height", getHeight() - + UNIT_SYMBOLS[getHeightUnits()]); + if (size.getHeight() > -1) { + target.addVariable(this, "height", size.getHeight() + + Size.UNIT_SYMBOLS[size.getHeightUnits()]); } - if (getWidth() > -1) { - target.addVariable(this, "width", getWidth() - + UNIT_SYMBOLS[getWidthUnits()]); + if (size.getWidth() > -1) { + target.addVariable(this, "width", size.getWidth() + + Size.UNIT_SYMBOLS[size.getWidthUnits()]); } if (isScrollable()) { @@ -300,16 +282,16 @@ public class Panel extends AbstractComponentContainer implements Sizeable, // Get new size final Integer newWidth = (Integer) variables.get("width"); final Integer newHeight = (Integer) variables.get("height"); - if (newWidth != null && newWidth.intValue() != getWidth()) { - setWidth(newWidth.intValue()); - // ensure units as we are reading pixels - setWidthUnits(UNITS_PIXELS); + if (newWidth != null && newWidth.intValue() != size.getWidth()) { + size.setWidth(newWidth.intValue()); + // ensure units, as we are reading pixels + size.setWidthUnits(Size.UNITS_PIXELS); } - if (newHeight != null && newHeight.intValue() != getHeight()) { - setHeight(newHeight.intValue()); - // ensure units as we are reading pixels - setHeightUnits(UNITS_PIXELS); + if (newHeight != null && newHeight.intValue() != size.getHeight()) { + size.setHeight(newHeight.intValue()); + // ensure units, as we are reading pixels + size.setHeightUnits(Size.UNITS_PIXELS); } // Scrolling @@ -481,106 +463,67 @@ public class Panel extends AbstractComponentContainer implements Sizeable, } } - /* - * (non-Javadoc) - * - * @see com.itmill.toolkit.terminal.Sizeable#getHeight() - */ - public int getHeight() { - return height; + public Size getSize() { + return size; } - - /* - * (non-Javadoc) - * - * @see com.itmill.toolkit.terminal.Sizeable#getHeightUnits() - */ - public int getHeightUnits() { - return heightUnit; - } - - /* - * (non-Javadoc) - * - * @see com.itmill.toolkit.terminal.Sizeable#getWidth() + + + /* Compatibility methods */ + + /** + * @deprecated use Size object instead (getSize().setWidth()). */ - public int getWidth() { - return width; + public void setWidth(int width) { + size.setWidth(width); } - - /* - * (non-Javadoc) - * - * @see com.itmill.toolkit.terminal.Sizeable#getWidthUnits() + + /** + * @deprecated use Size object instead (getSize().setWidthUnits()). */ - public int getWidthUnits() { - return widthUnit; + public void setWidthUnits(int unit) { + size.setWidthUnits(unit); } - - /* - * (non-Javadoc) - * - * @see com.itmill.toolkit.terminal.Sizeable#setHeight(int) + + /** + * @deprecated use Size object instead (getSize().setHeight()). */ public void setHeight(int height) { - this.height = height; - requestRepaint(); + size.setHeight(height); } - - /* - * (non-Javadoc) - * - * @see com.itmill.toolkit.terminal.Sizeable#setHeightUnits(int) + + /** + * @deprecated use Size object instead (getSize().setHeightUnits()). */ - public void setHeightUnits(int units) { - heightUnit = units; - requestRepaint(); + public void setHeightUnits(int unit) { + size.setHeightUnits(unit); } - - /* - * (non-Javadoc) - * - * @see com.itmill.toolkit.terminal.Sizeable#setSizeFull() + + /** + * @deprecated use Size object instead (getSize().getWidth()). */ - public void setSizeFull() { - height = 100; - width = 100; - heightUnit = UNITS_PERCENTAGE; - widthUnit = UNITS_PERCENTAGE; - requestRepaint(); + public int getWidth() { + return size.getWidth(); } - - /* - * (non-Javadoc) - * - * @see com.itmill.toolkit.terminal.Sizeable#setSizeUndefined() + + /** + * @deprecated use Size object instead (getSize().getWidthUnits()). */ - public void setSizeUndefined() { - height = -1; - width = -1; - heightUnit = UNITS_PIXELS; - widthUnit = UNITS_PIXELS; - requestRepaint(); + public int getWidthUnits() { + return size.getWidthUnits(); } - - /* - * (non-Javadoc) - * - * @see com.itmill.toolkit.terminal.Sizeable#setWidth(int) + + /** + * @deprecated use Size object instead (getSize().getHeight()). */ - public void setWidth(int width) { - this.width = width; - requestRepaint(); + public int getHeight() { + return size.getHeight(); } - - /* - * (non-Javadoc) - * - * @see com.itmill.toolkit.terminal.Sizeable#setWidthUnits(int) + + /** + * @deprecated use Size object instead (getSize().getHeightUnits()). */ - public void setWidthUnits(int units) { - widthUnit = units; - requestRepaint(); + public int getHeightUnits() { + return size.getHeightUnits(); } } diff --git a/src/com/itmill/toolkit/ui/SplitPanel.java b/src/com/itmill/toolkit/ui/SplitPanel.java index c09b337b09..9f094f0153 100644 --- a/src/com/itmill/toolkit/ui/SplitPanel.java +++ b/src/com/itmill/toolkit/ui/SplitPanel.java @@ -6,9 +6,10 @@ package com.itmill.toolkit.ui; import java.util.Iterator; +import com.itmill.toolkit.terminal.HasSize; import com.itmill.toolkit.terminal.PaintException; import com.itmill.toolkit.terminal.PaintTarget; -import com.itmill.toolkit.terminal.Sizeable; +import com.itmill.toolkit.terminal.Size; /** * SplitPanel. @@ -21,7 +22,7 @@ import com.itmill.toolkit.terminal.Sizeable; * @VERSION@ * @since 5.0 */ -public class SplitPanel extends AbstractLayout { +public class SplitPanel extends AbstractLayout implements HasSize { /* Predefined orientations ***************************************** */ @@ -46,7 +47,9 @@ public class SplitPanel extends AbstractLayout { private int pos = 50; - private int posUnit = UNITS_PERCENTAGE; + private int posUnit = Size.UNITS_PERCENTAGE; + + private Size size; /** * Creates a new split panel. The orientation of the panels is @@ -54,7 +57,8 @@ public class SplitPanel extends AbstractLayout { */ public SplitPanel() { orientation = ORIENTATION_VERTICAL; - setSizeFull(); + size = new Size(this); + size.setSizeFull(); } /** @@ -65,8 +69,8 @@ public class SplitPanel extends AbstractLayout { * the Orientation of the layout. */ public SplitPanel(int orientation) { - this.orientation = orientation; - setSizeFull(); + this(); + setOrientation(orientation); } /** @@ -194,7 +198,9 @@ public class SplitPanel extends AbstractLayout { public void paintContent(PaintTarget target) throws PaintException { super.paintContent(target); - final String position = pos + UNIT_SYMBOLS[posUnit]; + size.paint(target); + + final String position = pos + Size.UNIT_SYMBOLS[posUnit]; target.addAttribute("position", position); @@ -254,7 +260,7 @@ public class SplitPanel extends AbstractLayout { * the new size of the first region in persentage */ public void setSplitPosition(int pos) { - setSplitPosition(pos, UNITS_PERCENTAGE); + setSplitPosition(pos, Size.UNITS_PERCENTAGE); } /** @@ -263,7 +269,7 @@ public class SplitPanel extends AbstractLayout { * @param pos * size of the first region * @param unit - * the unit (from {@link Sizeable}) in which the size is + * the unit (from {@link Size}) in which the size is * given. */ public void setSplitPosition(int pos, int unit) { @@ -271,4 +277,9 @@ public class SplitPanel extends AbstractLayout { posUnit = unit; } + public Size getSize() { + // TODO Auto-generated method stub + return null; + } + } diff --git a/src/com/itmill/toolkit/ui/TabSheet.java b/src/com/itmill/toolkit/ui/TabSheet.java index 87ec3cfc16..4780a8702d 100644 --- a/src/com/itmill/toolkit/ui/TabSheet.java +++ b/src/com/itmill/toolkit/ui/TabSheet.java @@ -10,11 +10,12 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.Map; +import com.itmill.toolkit.terminal.HasSize; 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; +import com.itmill.toolkit.terminal.Size; /** * Tabsheet component. @@ -24,7 +25,7 @@ import com.itmill.toolkit.terminal.Sizeable; * @VERSION@ * @since 3.0 */ -public class TabSheet extends AbstractComponentContainer implements Sizeable { +public class TabSheet extends AbstractComponentContainer implements HasSize { /** * Linked list of component tabs. @@ -53,29 +54,7 @@ public class TabSheet extends AbstractComponentContainer implements Sizeable { */ 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; + private Size size; /** * Constructs a new Tabsheet. Tabsheet is immediate by default. @@ -83,6 +62,7 @@ public class TabSheet extends AbstractComponentContainer implements Sizeable { public TabSheet() { super(); setImmediate(true); + size = new Size(this); } /** @@ -197,15 +177,8 @@ public class TabSheet extends AbstractComponentContainer implements Sizeable { */ public void paintContent(PaintTarget target) throws PaintException { - // Add size info - if (getHeight() > -1) { - target.addAttribute("height", getHeight() - + UNIT_SYMBOLS[getHeightUnits()]); - } - if (getWidth() > -1) { - target.addAttribute("width", getWidth() - + UNIT_SYMBOLS[getWidthUnits()]); - } + // Size + size.paint(target); if (areTabsHidden()) { target.addAttribute("hidetabs", true); @@ -509,106 +482,8 @@ public class TabSheet extends AbstractComponentContainer implements Sizeable { 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) { - 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) { - widthUnit = units; - requestRepaint(); + public Size getSize() { + return size; } } diff --git a/src/com/itmill/toolkit/ui/Table.java b/src/com/itmill/toolkit/ui/Table.java index 4be9b840e8..5dbadf6d9c 100644 --- a/src/com/itmill/toolkit/ui/Table.java +++ b/src/com/itmill/toolkit/ui/Table.java @@ -21,11 +21,12 @@ import com.itmill.toolkit.data.Property; import com.itmill.toolkit.data.util.ContainerOrderedWrapper; import com.itmill.toolkit.data.util.IndexedContainer; import com.itmill.toolkit.event.Action; +import com.itmill.toolkit.terminal.HasSize; 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; +import com.itmill.toolkit.terminal.Size; /** * TableComponent is used for representing data or components in @@ -37,7 +38,7 @@ import com.itmill.toolkit.terminal.Sizeable; * @since 3.0 */ public class Table extends AbstractSelect implements Action.Container, - Container.Ordered, Container.Sortable, Sizeable { + Container.Ordered, Container.Sortable, HasSize { private static final int CELL_KEY = 0; @@ -49,25 +50,7 @@ public class Table extends AbstractSelect implements Action.Container, private static final int CELL_FIRSTCOL = 4; - /** - * Width of the table or -1 if unspecified. - */ - private int width = -1; - - /** - * Height of the table or -1 if unspecified. - */ - private int height = -1; - - /** - * Width unit. - */ - private int widthUnit = Sizeable.UNITS_PIXELS; - - /** - * Height unit. - */ - private int heightUnit = Sizeable.UNITS_PIXELS; + private Size size; /** * Left column alignment. This is the default behaviour. @@ -308,6 +291,7 @@ public class Table extends AbstractSelect implements Action.Container, */ public Table() { setRowHeaderMode(ROW_HEADER_MODE_HIDDEN); + size = new Size(this); } /** @@ -1422,14 +1406,7 @@ public class Table extends AbstractSelect implements Action.Container, } // Size - if (getHeight() >= 0) { - target.addAttribute("height", "" + getHeight() - + Sizeable.UNIT_SYMBOLS[getHeightUnits()]); - } - if (getWidth() >= 0) { - target.addAttribute("width", "" + getWidth() - + Sizeable.UNIT_SYMBOLS[getWidthUnits()]); - } + size.paint(target); // Initialize temps final Object[] colids = getVisibleColumns(); @@ -2439,126 +2416,78 @@ public class Table extends AbstractSelect implements Action.Container, } /** - * Gets height property unit. + * Table does not support lazy options loading mode. Setting this true will + * throw UnsupportedOperationException. * - * @see com.itmill.toolkit.terminal.Sizeable#getHeightUnits() + * @see com.itmill.toolkit.ui.Select#setLazyLoading(boolean) */ - public int getHeightUnits() { - return heightUnit; + public void setLazyLoading(boolean useLazyLoading) { + if (useLazyLoading) { + throw new UnsupportedOperationException( + "Lazy options loading is not supported by Table."); + } } + public Size getSize() { + return size; + } + + /* Compatibility methods */ + /** - * Gets width property unit. - * - * @see com.itmill.toolkit.terminal.Sizeable#getWidthUnits() + * @deprecated use Size object instead (getSize().setWidth()). */ - public int getWidthUnits() { - return widthUnit; + public void setWidth(int width) { + size.setWidth(width); } - + /** - * Sets height units. - * - * @see com.itmill.toolkit.terminal.Sizeable#setHeightUnits(int) + * @deprecated use Size object instead (getSize().setWidthUnits()). */ - public void setHeightUnits(int units) { - heightUnit = units; + public void setWidthUnits(int unit) { + size.setWidthUnits(unit); } - + /** - * Sets width units. Table supports only Sizeable.UNITS_PIXELS and - * Sizeable.UNITS_PERCENTAGE. Setting to any other throws - * IllegalArgumentException. - * - * @see com.itmill.toolkit.terminal.Sizeable#setWidthUnits(int) + * @deprecated use Size object instead (getSize().setHeight()). */ - public void setWidthUnits(int units) { - if (units != Sizeable.UNITS_PIXELS - && units != Sizeable.UNITS_PERCENTAGE) { - throw new IllegalArgumentException(); - } - widthUnit = units; + public void setHeight(int height) { + size.setHeight(height); } - + /** - * Gets height. - * - * @return height value as a positive integer or negative value if not - * assigned. - * @see com.itmill.toolkit.terminal.Sizeable#getHeight() + * @deprecated use Size object instead (getSize().setHeightUnits()). */ - public int getHeight() { - return height; + public void setHeightUnits(int unit) { + size.setHeightUnits(unit); } - + /** - * Gets width. - * - * @return width value as positive integer or negative value if not - * assigned. - * @see com.itmill.toolkit.terminal.Sizeable#getWidth() + * @deprecated use Size object instead (getSize().getWidth()). */ public int getWidth() { - return width; + return size.getWidth(); } - + /** - * Sets height. Use negative value to let the client decide the height. - * - * @param height - * the height to set. + * @deprecated use Size object instead (getSize().getWidthUnits()). */ - public void setHeight(int height) { - this.height = height; - requestRepaint(); + public int getWidthUnits() { + return size.getWidthUnits(); } - + /** - * Sets width. Use negative value to allow the client decide the width. - * - * @param width - * the width to set. + * @deprecated use Size object instead (getSize().getHeight()). */ - public void setWidth(int width) { - this.width = width; - requestRepaint(); + public int getHeight() { + return size.getHeight(); } - + /** - * Table does not support lazy options loading mode. Setting this true will - * throw UnsupportedOperationException. - * - * @see com.itmill.toolkit.ui.Select#setLazyLoading(boolean) + * @deprecated use Size object instead (getSize().getHeightUnits()). */ - public void setLazyLoading(boolean useLazyLoading) { - if (useLazyLoading) { - throw new UnsupportedOperationException( - "Lazy options loading is not supported by Table."); - } - } - - /* - * (non-Javadoc) - * - * @see com.itmill.toolkit.terminal.Sizeable#setSizeFull() - */ - public void setSizeFull() { - setWidth(100); - setHeight(100); - setWidthUnits(UNITS_PERCENTAGE); - setHeightUnits(UNITS_PERCENTAGE); - } - - /* - * (non-Javadoc) - * - * @see com.itmill.toolkit.terminal.Sizeable#setSizeUndefined() - */ - public void setSizeUndefined() { - setWidth(-1); - setHeight(-1); - setWidthUnits(UNITS_PIXELS); - setHeightUnits(UNITS_PIXELS); + public int getHeightUnits() { + return size.getHeightUnits(); } } \ No newline at end of file -- 2.39.5