From 54e91c229fb7b346f7d42056e320f837eb25bb28 Mon Sep 17 00:00:00 2001
From: Jouni Koivuviita
Date: Mon, 15 Oct 2007 14:02:54 +0000
Subject: [PATCH] -ISplitPanel classname convention changes. -IWindow themed,
changes to size calculations and HTML structure. -New Util function, isIE6.
-Small style fixes to common.css, select.css and progressindicator.css
-IFilterSelect styles changed a bit, now works more reliably with wider
widths. -ISplitPanel styles redone. -Windowing test now only for inline
window testing, new test for native windowing test ->
TestForNativeWindowing.java
svn changeset:2515/svn branch:trunk
---
.../toolkit/terminal/gwt/client/Util.java | 17 ++
.../terminal/gwt/client/ui/ISplitPanel.java | 15 +-
.../terminal/gwt/client/ui/IWindow.java | 91 +++++----
.../gwt/public/default/common/common.css | 2 +-
.../progressindicator/progressindicator.css | 2 +
.../public/default/select/filterselect.css | 12 +-
.../gwt/public/default/select/select.css | 1 +
.../public/default/splitpanel/splitpanel.css | 48 ++++-
.../public/default/window/img/bg-color.png | Bin 0 -> 135 bytes
.../public/default/window/img/bottom-left.png | Bin 0 -> 1011 bytes
.../default/window/img/bottom-right.png | Bin 0 -> 1626 bytes
.../gwt/public/default/window/img/close.png | Bin 0 -> 393 bytes
.../gwt/public/default/window/img/left-bg.png | Bin 0 -> 150 bytes
.../gwt/public/default/window/img/resize.png | Bin 0 -> 267 bytes
.../public/default/window/img/right-bg.png | Bin 0 -> 150 bytes
.../public/default/window/img/top-left.png | Bin 0 -> 626 bytes
.../public/default/window/img/top-right.png | Bin 0 -> 1048 bytes
.../gwt/public/default/window/window.css | 136 +++++++++++---
.../toolkit/tests/TestForNativeWindowing.java | 123 +++++++++++++
.../itmill/toolkit/tests/TestForUpload.java | 1 +
.../toolkit/tests/TestForWindowing.java | 172 ++++++------------
21 files changed, 429 insertions(+), 191 deletions(-)
create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/default/window/img/bg-color.png
create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/default/window/img/bottom-left.png
create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/default/window/img/bottom-right.png
create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/default/window/img/close.png
create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/default/window/img/left-bg.png
create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/default/window/img/resize.png
create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/default/window/img/right-bg.png
create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/default/window/img/top-left.png
create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/default/window/img/top-right.png
create mode 100644 src/com/itmill/toolkit/tests/TestForNativeWindowing.java
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/Util.java b/src/com/itmill/toolkit/terminal/gwt/client/Util.java
index 3c38d957ae..4e36273b10 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/Util.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/Util.java
@@ -31,6 +31,23 @@ public class Util {
}
return false;
}-*/;
+
+ /**
+ * Detects if current browser is IE6.
+ *
+ * @return true if IE6
+ */
+ public static native boolean isIE6() /*-{
+ var browser=$wnd.navigator.appName;
+ if (browser=="Microsoft Internet Explorer") {
+ var ua = navigator.userAgent;
+ var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
+ if (re.exec(ua) != null)
+ rv = parseFloat(RegExp.$1);
+ if(rv == 6) return true;
+ }
+ return false;
+ }-*/;
/**
* Nulls oncontextmenu function on given element. We need to manually clear
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ISplitPanel.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ISplitPanel.java
index c0bd2bc03b..d22c2515f7 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ISplitPanel.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ISplitPanel.java
@@ -16,17 +16,23 @@ public class ISplitPanel extends ComplexPanel implements Paintable,
public static final String CLASSNAME = "i-splitpanel";
public static final int ORIENTATION_HORIZONTAL = 0;
+
public static final int ORIENTATION_VERTICAL = 1;
private static final int MIN_SIZE = 30;
private int orientation = ORIENTATION_HORIZONTAL;
+
private Widget firstChild;
+
private Widget secondChild;
private Element wrapper = DOM.createDiv();
+
private Element firstContainer = DOM.createDiv();
+
private Element secondContainer = DOM.createDiv();
+
private Element splitter = DOM.createDiv();
private boolean resizing;
@@ -77,7 +83,6 @@ public class ISplitPanel extends ComplexPanel implements Paintable,
DOM.setStyleAttribute(splitter, "position", "absolute");
DOM.setStyleAttribute(secondContainer, "position", "absolute");
- DOM.setElementProperty(splitter, "className", "splitter");
DOM.setStyleAttribute(firstContainer, "overflow", "hidden");
DOM.setStyleAttribute(secondContainer, "overflow", "hidden");
@@ -90,10 +95,14 @@ public class ISplitPanel extends ComplexPanel implements Paintable,
DOM.setStyleAttribute(splitter, "height", "100%");
DOM.setStyleAttribute(firstContainer, "height", "100%");
DOM.setStyleAttribute(secondContainer, "height", "100%");
+ DOM.setElementProperty(splitter, "className", CLASSNAME
+ + "-hsplitter");
} else {
DOM.setStyleAttribute(splitter, "width", "100%");
DOM.setStyleAttribute(firstContainer, "width", "100%");
DOM.setStyleAttribute(secondContainer, "width", "100%");
+ DOM.setElementProperty(splitter, "className", CLASSNAME
+ + "-vsplitter");
}
}
@@ -258,7 +267,9 @@ public class ISplitPanel extends ComplexPanel implements Paintable,
}
public void onMouseDown(Event event) {
- if (DOM.compare(DOM.eventGetTarget(event), splitter)) {
+ Element trg = DOM.eventGetTarget(event);
+ if (DOM.compare(trg, splitter)
+ || DOM.compare(trg, DOM.getChild(splitter, 0))) {
resizing = true;
DOM.setCapture(getElement());
origX = DOM.getElementPropertyInt(splitter, "offsetLeft");
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IWindow.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IWindow.java
index e7680093e6..5de66ebf45 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IWindow.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IWindow.java
@@ -23,15 +23,19 @@ import com.itmill.toolkit.terminal.gwt.client.UIDL;
*/
public class IWindow extends PopupPanel implements Paintable, ScrollListener {
+ private static final int DEFAULT_HEIGHT = 300;
+
+ private static final int DEFAULT_WIDTH = 400;
+
private static Vector windowOrder = new Vector();
public static final String CLASSNAME = "i-window";
/** pixels used by inner borders and paddings horizontally */
- protected static final int BORDER_WIDTH_HORIZONTAL = 0;
+ protected static final int BORDER_WIDTH_HORIZONTAL = 41;
/** pixels used by headers, footers, inner borders and paddings vertically */
- protected static final int BORDER_WIDTH_VERTICAL = 22;
+ protected static final int BORDER_WIDTH_VERTICAL = 58;
private static final int STACKING_OFFSET_PIXELS = 15;
@@ -142,19 +146,24 @@ public class IWindow extends PopupPanel implements Paintable, ScrollListener {
DOM.sinkEvents(closeBox, Event.ONCLICK);
DOM.sinkEvents(contents, Event.ONCLICK);
- Element wrapper = getElement();
+ Element wrapper = DOM.createDiv();
+ DOM.setElementProperty(wrapper, "className", CLASSNAME + "-wrap");
+ Element wrapper2 = DOM.createDiv();
+ DOM.setElementProperty(wrapper2, "className", CLASSNAME + "-wrap2");
DOM.sinkEvents(wrapper, Event.ONKEYDOWN);
- DOM.appendChild(wrapper, closeBox);
- DOM.appendChild(wrapper, header);
- DOM.appendChild(wrapper, contents);
- DOM.appendChild(wrapper, footer);
+ DOM.appendChild(wrapper2, closeBox);
+ DOM.appendChild(wrapper2, header);
+ DOM.appendChild(wrapper2, contents);
+ DOM.appendChild(wrapper2, footer);
+ DOM.appendChild(wrapper, wrapper2);
+ DOM.appendChild(getElement(), wrapper);
setWidget(contentPanel);
// set default size
- setWidth(400 + "px");
- setHeight(300 + "px");
+ setWidth(DEFAULT_WIDTH + "px");
+ setHeight(DEFAULT_HEIGHT + "px");
}
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
@@ -167,38 +176,38 @@ public class IWindow extends PopupPanel implements Paintable, ScrollListener {
if (uidl.hasAttribute("invisible")) {
this.hide();
return;
- } else {
+ }
- // Initialize the width from UIDL
- if (uidl.hasVariable("width")) {
- String width = uidl.getStringVariable("width");
- setWidth(width);
- }
- if (uidl.hasVariable("height")) {
- String height = uidl.getStringVariable("height");
- setHeight(height);
- }
+ // Initialize the width from UIDL
+ if (uidl.hasVariable("width")) {
+ String width = uidl.getStringVariable("width");
+ setWidth(width);
+ }
+ if (uidl.hasVariable("height")) {
+ String height = uidl.getStringVariable("height");
+ setHeight(height);
+ }
- contentPanel.setScrollPosition(uidl.getIntVariable("scrolltop"));
- contentPanel.setHorizontalScrollPosition(uidl
- .getIntVariable("scrollleft"));
-
- // Initialize the position form UIDL
- try {
- int positionx = uidl.getIntVariable("positionx");
- int positiony = uidl.getIntVariable("positiony");
- if (positionx >= 0 && positiony >= 0) {
- setPopupPosition(positionx, positiony);
- }
- } catch (IllegalArgumentException e) {
- // Silently ignored as positionx and positiony are not required
- // parameters
- }
+ contentPanel.setScrollPosition(uidl.getIntVariable("scrolltop"));
+ contentPanel.setHorizontalScrollPosition(uidl
+ .getIntVariable("scrollleft"));
- if (!isAttached()) {
- show();
+ // Initialize the position form UIDL
+ try {
+ int positionx = uidl.getIntVariable("positionx");
+ int positiony = uidl.getIntVariable("positiony");
+ if (positionx >= 0 && positiony >= 0) {
+ setPopupPosition(positionx, positiony);
}
+ } catch (IllegalArgumentException e) {
+ // Silently ignored as positionx and positiony are not required
+ // parameters
}
+
+ if (!isAttached()) {
+ show();
+ }
+
UIDL childUidl = uidl.getChildUIDL(0);
Paintable lo = (Paintable) client.getWidget(childUidl);
if (layout != null) {
@@ -284,8 +293,9 @@ public class IWindow extends PopupPanel implements Paintable, ScrollListener {
resizing = true;
startX = DOM.eventGetScreenX(event);
startY = DOM.eventGetScreenY(event);
- origW = getOffsetWidth();
- origH = getOffsetHeight();
+ origW = DOM.getIntStyleAttribute(getElement(), "width")
+ - BORDER_WIDTH_HORIZONTAL;
+ origH = getWidget().getOffsetHeight();
DOM.addEventPreview(this);
break;
case Event.ONMOUSEUP:
@@ -321,8 +331,9 @@ public class IWindow extends PopupPanel implements Paintable, ScrollListener {
}
public void setWidth(String width) {
- super.setWidth(width);
- DOM.setStyleAttribute(header, "width", width);
+ DOM.setStyleAttribute(getElement(), "width", (Integer.parseInt(width
+ .substring(0, width.length() - 2)) + BORDER_WIDTH_HORIZONTAL)
+ + "px");
}
private void onHeaderEvent(Event event) {
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/default/common/common.css b/src/com/itmill/toolkit/terminal/gwt/public/default/common/common.css
index 52a5baa2f4..6fd42a534b 100644
--- a/src/com/itmill/toolkit/terminal/gwt/public/default/common/common.css
+++ b/src/com/itmill/toolkit/terminal/gwt/public/default/common/common.css
@@ -31,7 +31,7 @@ select {
*/
.i-orderedlayout {
- margin: 15px 18px;
+ padding: 15px 18px;
}
/**
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/default/progressindicator/progressindicator.css b/src/com/itmill/toolkit/terminal/gwt/public/default/progressindicator/progressindicator.css
index edc7d0dd3e..fd3e6f160b 100644
--- a/src/com/itmill/toolkit/terminal/gwt/public/default/progressindicator/progressindicator.css
+++ b/src/com/itmill/toolkit/terminal/gwt/public/default/progressindicator/progressindicator.css
@@ -2,9 +2,11 @@
background: #dfe2e4 url(img/base.gif);
height: 9px;
border: 1px solid #b6bbbc;
+ overflow: hidden; /* for IE6 */
}
.i-progressindicator div {
background: #f7f9f9 url(img/progress.png);
height: 9px;
+ overflow: hidden; /* for IE6 */
}
\ No newline at end of file
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/default/select/filterselect.css b/src/com/itmill/toolkit/terminal/gwt/public/default/select/filterselect.css
index 52cecb1a18..f0f4038012 100644
--- a/src/com/itmill/toolkit/terminal/gwt/public/default/select/filterselect.css
+++ b/src/com/itmill/toolkit/terminal/gwt/public/default/select/filterselect.css
@@ -6,12 +6,12 @@
}
.i-filterselect-input {
+ width: 99%;
border: none;
background: transparent;
- width: 97%;
height: 20px;
- margin: 3px 0 0 4px;
- padding: 0;
+ margin: 0;
+ padding: 3px 0 0 4px;
font-size: 13px;
}
@@ -115,18 +115,18 @@
}
* html .i-filterselect-input {
- margin-top: 2px;
+ margin-top: -1px;
}
*+html .i-filterselect-input {
- margin-top: 1px;
+ margin-top: -1px;
}
* html .i-filterselect-button {
position: static;
- display: inline;
margin-top: -24px;
}
*+html .i-filterselect-button {
position: static;
+ margin-top: -24px;
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/default/select/select.css b/src/com/itmill/toolkit/terminal/gwt/public/default/select/select.css
index 6d8dac8f34..9ea1c263fa 100644
--- a/src/com/itmill/toolkit/terminal/gwt/public/default/select/select.css
+++ b/src/com/itmill/toolkit/terminal/gwt/public/default/select/select.css
@@ -12,6 +12,7 @@
.i-select-optiongroup .i-select-option {
display: block;
+ white-space: nowrap;
}
.i-select-select {
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/default/splitpanel/splitpanel.css b/src/com/itmill/toolkit/terminal/gwt/public/default/splitpanel/splitpanel.css
index 8453872de0..bb7c087269 100644
--- a/src/com/itmill/toolkit/terminal/gwt/public/default/splitpanel/splitpanel.css
+++ b/src/com/itmill/toolkit/terminal/gwt/public/default/splitpanel/splitpanel.css
@@ -1,19 +1,49 @@
-.i-splitpanel-horizontal .splitter,
-.i-splitpanel-vertical .i-splitpanel-horizontal .splitter {
- width: 8px;
+.i-splitpanel-horizontal .i-splitpanel-hsplitter {
+ width: 6px;
+ font-size: 1px; /* for IE6 */
+}
+
+.i-splitpanel-horizontal .i-splitpanel-hsplitter div {
+ width: 6px;
+ font-size: 1px; /* for IE6 */
+ position: absolute;
+ top: 0;
+ bottom: 0;
background: #ccd2d0 url(img/bg_hor.png);
border: 1px solid #b6bbbc;
- border-top:0;
- border-bottom:0;
cursor: e-resize;
+ margin: 0 -1px;
}
-.i-splitpanel-vertical .splitter {
- height: 8px;
+.i-splitpanel-vertical .i-splitpanel-vsplitter {
+ height: 6px;
+ font-size: 1px; /* for IE6 */
+}
+
+.i-splitpanel-vertical .i-splitpanel-vsplitter div {
+ height: 6px;
+ font-size: 1px; /* for IE6 */
background: #ccd2d0 url(img/bg_ver.png);
border: 1px solid #b6bbbc;
- border-left:0;
- border-right:0;
cursor: n-resize;
+ margin: -1px 0;
+}
+
+
+
+
+
+/* IE specific styles */
+
+* html .i-splitpanel-horizontal .i-splitpanel-hsplitter div {
+ height: 99%;
+}
+
+* html .i-splitpanel-vertical .i-splitpanel-vsplitter {
+ height: 8px;
+}
+
+* html .i-splitpanel-vertical .i-splitpanel-vsplitter div {
+ margin: 0;
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/default/window/img/bg-color.png b/src/com/itmill/toolkit/terminal/gwt/public/default/window/img/bg-color.png
new file mode 100644
index 0000000000000000000000000000000000000000..08cdb43bce8b711800ba1d66411c2b503acc9c63
GIT binary patch
literal 135
zcmeAS@N?(olHy`uVBq!ia0vp^5ra@ocD)4hB}-f*
zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrLlMdAc};RNPA1Q}OtkFPjvT8k-dJ
etY`*-1ctM>n3JYi{b2$sV(@hJb6Mw<&;$Umr6nN%
literal 0
HcmV?d00001
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/default/window/img/bottom-left.png b/src/com/itmill/toolkit/terminal/gwt/public/default/window/img/bottom-left.png
new file mode 100644
index 0000000000000000000000000000000000000000..14808c98eac0d281278445109b23b6c0a7b4a684
GIT binary patch
literal 1011
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
literal 0
HcmV?d00001
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/default/window/img/left-bg.png b/src/com/itmill/toolkit/terminal/gwt/public/default/window/img/left-bg.png
new file mode 100644
index 0000000000000000000000000000000000000000..e9fd861993e2a7d3a9fbe9e50def8a8bb1d53d44
GIT binary patch
literal 150
zcmeAS@N?(olHy`uVBq!ia0vp^B0$W@!3HGnP3ltxQY`6?zK#qG>ra@ocD)4hB}-f*
zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrH1%X?VIghE&{2y0fkNe4Vhe@?G)#
vd;9+W|8LK1_~7a1^sIG!-y)teF!3;WF6I4aet!L0pdJQKS3j3^P6C#5QQ<|d}62BjvZR2H60wE-%c>*?YcQgJKk&;S4S%xf8inPnMb
zbrKJ%y_h`7z2|XH!;hEKEGN&qd`R7Z+u?z#ZWH&-recRb{kNt~NM+QV)^J6V*--fk
z6QjblCCgMnN_4I;2`4>nmhdi!EMV)nFDNbKBNDNI_sFX$5lwlF=3?9q)9$HR8#6H)
z3)C|{ntdVUi)2T?b7tC#8=eaPoO@Jz7PCHCp}KgQ01E>n8^f2iYGK=^a!&?2l)=;0
K&t;ucLK6V?8C%H!
literal 0
HcmV?d00001
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/default/window/img/right-bg.png b/src/com/itmill/toolkit/terminal/gwt/public/default/window/img/right-bg.png
new file mode 100644
index 0000000000000000000000000000000000000000..35d39c772f02e11d9d639f524b770841fb7c2c77
GIT binary patch
literal 150
zcmeAS@N?(olHy`uVBq!ia0vp^B0$W@!3HGnP3ltxQY`6?zK#qG>ra@ocD)4hB}-f*
zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrH1%X?VIghE&{2`oqt{6LH`jGrQyw
u)unlc0*n%pl9DPeEv@J0SeHvG9ANk^$n|c`F%}J=9tKZWKbLh*2~7a+)+!YM
literal 0
HcmV?d00001
diff --git a/src/com/itmill/toolkit/terminal/gwt/public/default/window/img/top-left.png b/src/com/itmill/toolkit/terminal/gwt/public/default/window/img/top-left.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a46a98d4d3417378b2b9a2a9b0432fa327dca91
GIT binary patch
literal 626
zcmV-&0*(ENP)Pf&H8E?NYtShrFaeUXZ{;2FAUr91%QHGmeU
zB)(sWdj`oU2pR13mqy2y?QhO)j_IN(D5CA*?yVh<$5d0Do}Fo6hOh=?A!-Q$!~(Nh
zLRgmVOQMJcLEte6HH3A+yysR|4<$(wZXrC60m_o+H}m;C2%`u!0Dfc`=4;Qk^_He-
zG)*&Ep65P5-093)d>7S#b-)|~=csF%2J!0BolL-~qUsy;1n@1G5qS6RMZ4V&<2ZKz
zT)9s0&ou@^u_LW
zEeJQ6dVbKf<(S2r@5jevlabT!8_z+@03Sd>pAB9AAj`7SG~`9m$
zt<7uC_v0iEAK+b~z)Ksv+=r9Wy0~(e3Omm;HVi^JOB1fF{u@P>
zMRHN5qpsk6+MCVR7^+Zh!=O|}zH6x=84hupHVQkAA|VPx+32+KE61T=Hr(se0hu;a
zzkUmmaJ|{Jxwo@JLE7#Y3i4^eDAS?gQ3_+HE;I}RWpjPw0kEw8P?RLxBzf@DD#QL@
z=i}UGy2d9{f@Yia)^<({$eF14$dCK&u~2hX@uQ`&9C@tU^}NgK+VofomoE7Fl$nQl
z?UW{wu4TD7mwjfP`JH0*cy7id&iv&=zx(WHFK&qH0~(&{lRInd?2V%}&hQzBUrUdEoy
z;w#?2x#IQo)76Y$ucsz`e77OJ?Qh2=CWsybuUBW&vM&a)0=kcseV}3QT=vHJv)qGHuzQTjjOMHd@;@Z)f|hmH!rfgyQeRHc^>GZo#JnW7cfH|
zGHu)Ht-lU?rM|w}%+5bADsJBdzvcG&Q%}$TbG?eu3Tk!o>ywk?@(ZMEl_q)s)zsCh
z&Huk4L@)l=_N`1MP&LQyxuw1?TzoZ4U(RxqK-)w2rA0s2KEKX!0UD?`#M$PT*b7+J
zeR)x1vZo-m)U@W?UItl+?uOdr50>9ou3Y)@=gyto7e9R3{GR0n)ZjPT(biXAJ^cA|
zXNXqm%TupjeO&$-ZtJ(HVY~0X{QCRvPUm*6iysbM{`p|{{JMAA{7}t{Rd^0xYwUC}
zp6i+4{;=`f>39513TEcf8h7@TzP_He`RBpk&(E)IeSW_>JQWuEnpdNAcYdv~uFS8s
zz2D6meKY1=pa6?=yu$nM|D&vIO{eCX&CYkfyR~4#DrhJk&^Vd8xjMJ-VZobkbFF`V
zWtSFSSyE*^)9Y%R?c%F1OVrfWF9&}2xw7vQKP6MyY$lMitXO=X+^NOe8pvKywTiG=cv@zUtcyLorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
"
+ + "Lorem ipsum dolor sit amet.
",
+ Label.CONTENT_XHTML));
+
+ }
+ }));
+
+ main.addComponent(new Button(
+ "Open a currently uncreated application level window",
+ new Button.ClickListener() {
+ public void buttonClick(ClickEvent event) {
+ try {
+ main
+ .open(
+ new com.itmill.toolkit.terminal.ExternalResource(
+ new URL(
+ getURL(),
+ "mainwin-"
+ + System
+ .currentTimeMillis()
+ + "/")),
+ null);
+ } catch (MalformedURLException e) {
+ }
+ }
+ }));
+
+ main.addComponent(new Button(
+ "Commit (saves window state: size, place, scrollpos)"));
+ }
+
+ public Window getWindow(String name) {
+
+ Window w = super.getWindow(name);
+ if (w != null)
+ return w;
+
+ if (name != null && name.startsWith("mainwin-")) {
+ String postfix = name.substring("mainwin-".length());
+ final Window ww = new Window("Window: " + postfix);
+ ww.setName(name);
+ ww.addComponent(new Label(
+ "This is a application-level window opened with name: "
+ + name));
+ ww.addComponent(new Button("Click me", new Button.ClickListener() {
+ int state = 0;
+
+ public void buttonClick(ClickEvent event) {
+ ww.addComponent(new Label("Button clicked " + (++state)
+ + " times"));
+ }
+ }));
+ addWindow(ww);
+ return ww;
+ }
+
+ return null;
+ }
+
+}
diff --git a/src/com/itmill/toolkit/tests/TestForUpload.java b/src/com/itmill/toolkit/tests/TestForUpload.java
index b3e818ea22..2370930213 100644
--- a/src/com/itmill/toolkit/tests/TestForUpload.java
+++ b/src/com/itmill/toolkit/tests/TestForUpload.java
@@ -88,6 +88,7 @@ public class TestForUpload extends CustomComponent implements
main.addComponent(c);
uploadBufferSelector = new Select("Receiver type");
+ uploadBufferSelector.setColumns(6);
uploadBufferSelector.setImmediate(true);
uploadBufferSelector.addItem("memory");
uploadBufferSelector.setValue("memory");
diff --git a/src/com/itmill/toolkit/tests/TestForWindowing.java b/src/com/itmill/toolkit/tests/TestForWindowing.java
index 0712b4e1db..2239dad873 100644
--- a/src/com/itmill/toolkit/tests/TestForWindowing.java
+++ b/src/com/itmill/toolkit/tests/TestForWindowing.java
@@ -1,123 +1,71 @@
package com.itmill.toolkit.tests;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import com.itmill.toolkit.Application;
+import com.itmill.toolkit.data.Property.ValueChangeEvent;
+import com.itmill.toolkit.data.Property.ValueChangeListener;
import com.itmill.toolkit.ui.Button;
+import com.itmill.toolkit.ui.CustomComponent;
import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.OptionGroup;
+import com.itmill.toolkit.ui.OrderedLayout;
+import com.itmill.toolkit.ui.Select;
import com.itmill.toolkit.ui.Window;
import com.itmill.toolkit.ui.Button.ClickEvent;
-
-public class TestForWindowing extends Application {
-
- Window main = new Window("Windowing test");
-
- public void init() {
-
- setMainWindow(main);
-
- main.addComponent(new Button("Add new subwindow",
- new Button.ClickListener() {
- public void buttonClick(ClickEvent event) {
- final Window w = new Window("sw "
- + System.currentTimeMillis());
- main.addWindow(w);
- w.setPositionX(100);
- w.setPositionY(100);
- w.setWidth(200);
- w.setHeight(200);
-
- w.setWidth(100);
- w.setHeight(400);
-
- Button closebutton = new Button("Close "
- + w.getCaption(), new Button.ClickListener() {
- public void buttonClick(ClickEvent event) {
- main.removeWindow(w);
- }
-
- });
- w.addComponent(closebutton);
-
- w.addComponent(new Label(
- "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
"
- + "Lorem ipsum dolor sit amet.
",
- Label.CONTENT_XHTML));
-
- }
- }));
-
- main.addComponent(new Button(
- "Open a currently uncreated application level window",
- new Button.ClickListener() {
- public void buttonClick(ClickEvent event) {
- try {
- main
- .open(
- new com.itmill.toolkit.terminal.ExternalResource(
- new URL(
- getURL(),
- "mainwin-"
- + System
- .currentTimeMillis()
- + "/")),
- null);
- } catch (MalformedURLException e) {
- }
+import com.itmill.toolkit.ui.Button.ClickListener;
+
+public class TestForWindowing extends CustomComponent {
+
+ private Select s2;
+
+ public TestForWindowing() {
+
+ OrderedLayout main = new OrderedLayout();
+
+ main.addComponent(new Label("Click the button to create a new inline window."));
+
+ Button create = new Button("Create a new window", new ClickListener() {
+
+ public void buttonClick(ClickEvent event) {
+ Window w = new Window("Testing Window");
+
+ Select s1 = new OptionGroup();
+ s1.setCaption("1. Select output format");
+ s1.addItem("Excel sheet");
+ s1.addItem("CSV plain text");
+ s1.setValue("Excel sheet");
+
+ s2 = new Select();
+ s2.addItem("Separate by comma (,)");
+ s2.addItem("Separate by colon (:)");
+ s2.addItem("Separate by semicolon (;)");
+ s2.setColumns(14);
+ s2.setEnabled(false);
+
+ s1.addListener(new ValueChangeListener() {
+
+ public void valueChange(ValueChangeEvent event) {
+ String v = (String) event.getProperty().getValue();
+ if(v.equals("CSV plain text"))
+ s2.setEnabled(true);
+ else
+ s2.setEnabled(false);
}
- }));
-
- main.addComponent(new Button(
- "Commit (saves window state: size, place, scrollpos)"));
+
+ });
+
+ w.addComponent(s1);
+ w.addComponent(s2);
+
+ getApplication().getMainWindow().addWindow(w);
+
+ }
+
+ });
+
+ main.addComponent(create);
+
+ setCompositionRoot(main);
+
}
- public Window getWindow(String name) {
-
- Window w = super.getWindow(name);
- if (w != null)
- return w;
-
- if (name != null && name.startsWith("mainwin-")) {
- String postfix = name.substring("mainwin-".length());
- final Window ww = new Window("Window: " + postfix);
- ww.setName(name);
- ww.addComponent(new Label(
- "This is a application-level window opened with name: "
- + name));
- ww.addComponent(new Button("Click me", new Button.ClickListener() {
- int state = 0;
-
- public void buttonClick(ClickEvent event) {
- ww.addComponent(new Label("Button clicked " + (++state)
- + " times"));
- }
- }));
- addWindow(ww);
- return ww;
- }
-
- return null;
- }
}
--
2.39.5