import com.itmill.toolkit.ui.GridLayout;\r
import com.itmill.toolkit.ui.Label;\r
import com.itmill.toolkit.ui.Layout;\r
+import com.itmill.toolkit.ui.NativeSelect;\r
import com.itmill.toolkit.ui.OrderedLayout;\r
import com.itmill.toolkit.ui.Panel;\r
import com.itmill.toolkit.ui.TextField;\r
import com.itmill.toolkit.ui.Window;\r
+import com.itmill.toolkit.ui.Layout.AlignmentHandler;\r
\r
public class Ticket1710 extends com.itmill.toolkit.Application {\r
\r
testedLayout = layout;\r
internalLayout.addComponent(controls);\r
internalLayout.addComponent(testedLayout);\r
+ internalLayout.setMargin(true);\r
+ internalLayout.setSpacing(true);\r
+ internalLayout.setComponentAlignment(testedLayout,\r
+ OrderedLayout.ALIGNMENT_HORIZONTAL_CENTER,\r
+ OrderedLayout.ALIGNMENT_VERTICAL_CENTER);\r
\r
controls.setWidth(100, OrderedLayout.UNITS_PERCENTAGE);\r
controls.setStyleName("controls");\r
controls.addComponent(marginRight);\r
controls.addComponent(marginTop);\r
controls.addComponent(marginBottom);\r
- controls.addComponent(spacing);\r
- for (Iterator i = controls.getComponentIterator(); i.hasNext();) {\r
- ((AbstractComponent) i.next()).setImmediate(true);\r
+ if (testedLayout instanceof Layout.SpacingHandler) {\r
+ controls.addComponent(spacing);\r
}\r
\r
Property.ValueChangeListener marginSpacingListener = new Property.ValueChangeListener() {\r
spacing.addListener(marginSpacingListener);\r
updateMarginsAndSpacing();\r
\r
+ addAlignmentControls();\r
+\r
testedLayout.setStyleName("tested-layout");\r
setStyleName("layout-testing-panel");\r
+\r
+ for (Iterator i = controls.getComponentIterator(); i.hasNext();) {\r
+ ((AbstractComponent) i.next()).setImmediate(true);\r
+ }\r
+ }\r
+\r
+ private void addAlignmentControls() {\r
+ if (!(testedLayout instanceof Layout.AlignmentHandler)) {\r
+ return;\r
+ }\r
+ final Layout.AlignmentHandler ah = (AlignmentHandler) testedLayout;\r
+\r
+ final NativeSelect vAlign = new NativeSelect();\r
+ final NativeSelect hAlign = new NativeSelect();\r
+ controls.addComponent(new Label("alignment"));\r
+ controls.addComponent(hAlign);\r
+ controls.addComponent(vAlign);\r
+\r
+ vAlign.addItem(new Integer(Layout.AlignmentHandler.ALIGNMENT_TOP));\r
+ vAlign.setItemCaption(new Integer(\r
+ Layout.AlignmentHandler.ALIGNMENT_TOP), "top");\r
+ vAlign.addItem(new Integer(\r
+ Layout.AlignmentHandler.ALIGNMENT_VERTICAL_CENTER));\r
+ vAlign.setItemCaption(new Integer(\r
+ Layout.AlignmentHandler.ALIGNMENT_VERTICAL_CENTER),\r
+ "center");\r
+ vAlign\r
+ .addItem(new Integer(\r
+ Layout.AlignmentHandler.ALIGNMENT_BOTTOM));\r
+ vAlign.setItemCaption(new Integer(\r
+ Layout.AlignmentHandler.ALIGNMENT_BOTTOM), "bottom");\r
+\r
+ hAlign.addItem(new Integer(Layout.AlignmentHandler.ALIGNMENT_LEFT));\r
+ hAlign.setItemCaption(new Integer(\r
+ Layout.AlignmentHandler.ALIGNMENT_LEFT), "left");\r
+ hAlign.addItem(new Integer(\r
+ Layout.AlignmentHandler.ALIGNMENT_HORIZONTAL_CENTER));\r
+ hAlign.setItemCaption(new Integer(\r
+ Layout.AlignmentHandler.ALIGNMENT_HORIZONTAL_CENTER),\r
+ "center");\r
+ hAlign\r
+ .addItem(new Integer(\r
+ Layout.AlignmentHandler.ALIGNMENT_RIGHT));\r
+ hAlign.setItemCaption(new Integer(\r
+ Layout.AlignmentHandler.ALIGNMENT_RIGHT), "right");\r
+\r
+ Property.ValueChangeListener alignmentChangeListener = new Property.ValueChangeListener() {\r
+ public void valueChange(ValueChangeEvent event) {\r
+ updateAlignments(((Integer) hAlign.getValue()).intValue(),\r
+ ((Integer) vAlign.getValue()).intValue());\r
+ }\r
+\r
+ };\r
+\r
+ hAlign\r
+ .setValue(new Integer(\r
+ Layout.AlignmentHandler.ALIGNMENT_LEFT));\r
+ vAlign.addListener(alignmentChangeListener);\r
+ hAlign.addListener(alignmentChangeListener);\r
+ vAlign.setValue(new Integer(Layout.AlignmentHandler.ALIGNMENT_TOP));\r
+\r
+ }\r
+\r
+ private void updateAlignments(int h, int v) {\r
+ for (Iterator i = testedLayout.getComponentIterator(); i.hasNext();) {\r
+ ((Layout.AlignmentHandler) testedLayout).setComponentAlignment(\r
+ (Component) i.next(), h, v);\r
+ }\r
}\r
\r
private void updateMarginsAndSpacing() {\r
.booleanValue(), ((Boolean) marginBottom.getValue())\r
.booleanValue(), ((Boolean) marginLeft.getValue())\r
.booleanValue());\r
- if (testedLayout instanceof OrderedLayout) {\r
- ((OrderedLayout) testedLayout).setSpacing(((Boolean) spacing\r
- .getValue()).booleanValue());\r
- } else if (testedLayout instanceof GridLayout) {\r
- ((GridLayout) testedLayout).setSpacing(((Boolean) spacing\r
- .getValue()).booleanValue());\r
+ if (testedLayout instanceof Layout.SpacingHandler) {\r
+ ((Layout.SpacingHandler) testedLayout)\r
+ .setSpacing(((Boolean) spacing.getValue())\r
+ .booleanValue());\r
}\r
}\r
\r