diff options
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("<span/>");
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;
+ }
}
|