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