From 4585aecfabe3ba603c8354611ebd84d90d695b53 Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Fri, 1 Feb 2008 11:29:59 +0000 Subject: [PATCH] some changes to support Sizeable svn changeset:3697/svn branch:trunk --- .../terminal/gwt/client/ui/ICheckBox.java | 21 ++++++++ .../terminal/gwt/client/ui/IListSelect.java | 10 ++++ .../terminal/gwt/client/ui/INativeSelect.java | 10 ++++ .../gwt/client/ui/ITwinColSelect.java | 50 +++++++++++++++---- 4 files changed, 81 insertions(+), 10 deletions(-) diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ICheckBox.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ICheckBox.java index d2edbd3a28..a4f5f8dafd 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ICheckBox.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ICheckBox.java @@ -31,6 +31,8 @@ public class ICheckBox extends com.google.gwt.user.client.ui.CheckBox implements private ErrorMessage errorMessage; + private boolean isBlockMode = false; + public ICheckBox() { setStyleName(CLASSNAME); addClickListener(new ClickListener() { @@ -116,6 +118,25 @@ public class ICheckBox extends com.google.gwt.user.client.ui.CheckBox implements break; } } + } + + public void setWidth(String width) { + setBlockMode(); + super.setWidth(width); + } + public void setHeight(String height) { + setBlockMode(); + super.setHeight(height); + } + + /** + * makes container element (span) to be block element to enable sizing. + */ + private void setBlockMode() { + if (!isBlockMode) { + DOM.setStyleAttribute(getElement(), "display", "block"); + isBlockMode = true; + } } } diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java index 18bd6e15a2..0f07921cfb 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java @@ -78,4 +78,14 @@ public class IListSelect extends IOptionGroupBase { } } + public void setHeight(String height) { + select.setHeight(height); + super.setHeight(height); + } + + public void setWidth(String width) { + select.setWidth(width); + super.setWidth(width); + } + } diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/INativeSelect.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/INativeSelect.java index d908109795..24ee76c503 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/INativeSelect.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/INativeSelect.java @@ -63,4 +63,14 @@ public class INativeSelect extends IOptionGroupBase { } } + public void setHeight(String height) { + select.setHeight(height); + super.setHeight(height); + } + + public void setWidth(String width) { + select.setWidth(width); + super.setWidth(width); + } + } diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITwinColSelect.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITwinColSelect.java index de4165719f..86e9981a17 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITwinColSelect.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITwinColSelect.java @@ -7,6 +7,7 @@ package com.itmill.toolkit.terminal.gwt.client.ui; import java.util.Iterator; import java.util.Vector; +import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.ListBox; @@ -19,7 +20,7 @@ public class ITwinColSelect extends IOptionGroupBase { private static final String CLASSNAME = "i-select-twincol"; private static final int VISIBLE_COUNT = 10; - + private static final int DEFAULT_COLUMN_COUNT = 10; private final ListBox options; @@ -30,6 +31,12 @@ public class ITwinColSelect extends IOptionGroupBase { private final IButton remove; + private FlowPanel buttons; + + private Panel panel; + + private boolean widthSet = false; + public ITwinColSelect() { super(CLASSNAME); options = new ListBox(); @@ -40,7 +47,7 @@ public class ITwinColSelect extends IOptionGroupBase { selections.setVisibleItemCount(VISIBLE_COUNT); options.setStyleName(CLASSNAME + "-options"); selections.setStyleName(CLASSNAME + "-selections"); - final Panel buttons = new FlowPanel(); + buttons = new FlowPanel(); buttons.setStyleName(CLASSNAME + "-buttons"); add = new IButton(); add.setText(">>"); @@ -48,15 +55,15 @@ public class ITwinColSelect extends IOptionGroupBase { remove = new IButton(); remove.setText("<<"); remove.addClickListener(this); - final Panel p = ((Panel) optionsContainer); - p.add(options); + panel = ((Panel) optionsContainer); + panel.add(options); buttons.add(add); final HTML br = new HTML(""); br.setStyleName(CLASSNAME + "-deco"); buttons.add(br); buttons.add(remove); - p.add(buttons); - p.add(selections); + panel.add(buttons); + panel.add(selections); } protected void buildOptions(UIDL uidl) { @@ -79,15 +86,14 @@ public class ITwinColSelect extends IOptionGroupBase { optionUidl.getStringAttribute("key")); } } - optionsContainer.setWidth(null); if (getColumns() > 0) { options.setWidth(getColumns() + "em"); selections.setWidth(getColumns() + "em"); - optionsContainer.setWidth((getColumns()*2 + 3) + "em"); - } else { + optionsContainer.setWidth((getColumns() * 2 + 3) + "em"); + } else if (!widthSet) { options.setWidth(DEFAULT_COLUMN_COUNT + "em"); selections.setWidth(DEFAULT_COLUMN_COUNT + "em"); - optionsContainer.setWidth((DEFAULT_COLUMN_COUNT*2 + 2) + "em"); + optionsContainer.setWidth((DEFAULT_COLUMN_COUNT * 2 + 2) + "em"); } if (getRows() > 0) { options.setVisibleItemCount(getRows()); @@ -182,4 +188,28 @@ public class ITwinColSelect extends IOptionGroupBase { } } + public void setHeight(String height) { + super.setHeight(height); + setFullHeightInternals(); + } + + private void setFullHeightInternals() { + options.setHeight("100%"); + selections.setHeight("100%"); + } + + public void setWidth(String width) { + super.setWidth(width); + if (!"".equals(width) && width != null) { + setRelativeInternalWidths(); + } + } + + private void setRelativeInternalWidths() { + DOM.setStyleAttribute(getElement(), "position", "relative"); + buttons.setWidth("16%"); + options.setWidth("42%"); + selections.setWidth("42%"); + widthSet = true; + } } -- 2.39.5