aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/itmill/toolkit/ui/AbstractLayout.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/itmill/toolkit/ui/AbstractLayout.java')
-rw-r--r--src/com/itmill/toolkit/ui/AbstractLayout.java204
1 files changed, 204 insertions, 0 deletions
diff --git a/src/com/itmill/toolkit/ui/AbstractLayout.java b/src/com/itmill/toolkit/ui/AbstractLayout.java
new file mode 100644
index 0000000000..88ea27174c
--- /dev/null
+++ b/src/com/itmill/toolkit/ui/AbstractLayout.java
@@ -0,0 +1,204 @@
+package com.itmill.toolkit.ui;
+
+import com.itmill.toolkit.terminal.PaintException;
+import com.itmill.toolkit.terminal.PaintTarget;
+
+/**
+ * An abstract class that defines default implementation for the {@link Layout}
+ * interface.
+ *
+ * @author IT Mill Ltd.
+ * @version
+ * @VERSION@
+ * @since 5.0
+ */
+public abstract class AbstractLayout extends AbstractComponentContainer
+ implements Layout {
+
+ /**
+ * Layout edge margins, clockwise from top: top, right, bottom, left. Each
+ * is set to true, if the client-side implementation should leave extra
+ * space at that edge.
+ */
+ private 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)
+ *
+ * @see com.itmill.toolkit.ui.AbstractComponent#getTag()
+ */
+ public abstract String getTag();
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.ui.Layout#setMargin(boolean)
+ */
+ public void setMargin(boolean enabled) {
+ margins = new boolean[] { enabled, enabled, enabled, enabled };
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.itmill.toolkit.ui.Layout#setMargin(boolean, boolean, boolean,
+ * boolean)
+ */
+ public void setMargin(boolean topEnabled, boolean rightEnabled,
+ boolean bottomEnabled, boolean leftEnabled) {
+ 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)
+ *
+ * @see com.itmill.toolkit.ui.AbstractComponent#paintContent(com.itmill.toolkit.terminal.PaintTarget)
+ */
+ public void paintContent(PaintTarget target) throws PaintException {
+ super.paintContent(target);
+
+ // Add margin info. Defaults to false.
+ if (margins == null)
+ setMargin(false);
+ target.addAttribute("marginTop", margins[0]);
+ target.addAttribute("marginRight", margins[1]);
+ target.addAttribute("marginBottom", margins[2]);
+ target.addAttribute("marginLeft", margins[3]);
+
+ // Add size info
+ if (getHeight() > -1)
+ target.addAttribute("height", getHeight()
+ + UNIT_SYMBOLS[getHeightUnits()]);
+ if (getWidth() > -1)
+ target.addAttribute("height", getWidth()
+ + UNIT_SYMBOLS[getWidthUnits()]);
+ }
+
+}