kune-commits
Threads by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
September 2011
- 2 participants
- 57 discussions
#104: Welcome like Tumblr, in the first visit
---------------------------+-------------------
Reporter: sam <samer@…> | Owner: vjrj
Type: enhancement | Status: new
Priority: critical | Milestone:
Component: Group space | Version:
Keywords: | Blocked By:
Blocking: |
---------------------------+-------------------
No one reads the first welcome document that explains Kune behaviour.
Thus, when a new user arrives, faces several issues:
1) cannot edit anything
2) cannot do much neither create new stuff. Even if he/she discovers how
to sign up, the user doesn't know yet how to edit anything.
3) doesn't realize that the top-left icons exist, so the experience is
very limited.
[Bastien tried it for 30 seconds and George for dont know how long, both
with similar results.]
Proposal: highlight the initial experience, such as Tumblr (or Flattr)
does. Guide users to sign-up, guide users to the personal space... give
for granted no one reads the welcoming doc and introduce Kune's first
visit with a practical basic interactive tutorial. Idea: start Kune in a
task list with the tasks that are left to do: "sign up", "visit personal
space", "create a poll gadget", etc.
I consider it maximum priority, as it can kick out many initial testers,
that don't manage in 30 seconds to understand its behaviour.
--
Ticket URL: <http://kune.ourproject.org/issues/ticket/104>
kune issues <http://kune.ourproject.org/issues/>
1
3
r1540 - in trunk: . img/icons src/main/java/cc/kune/core/client/sitebar/spaces src/main/java/cc/kune/core/client/sub src/main/java/cc/kune/core/public src/test/java/cc/kune/selenium src/test/java/cc/kune/selenium/chat src/test/java/cc/kune/selenium/general src/test/java/cc/kune/selenium/login src/test/java/cc/kune/selenium/tools
by Vicente J. Ruiz Jurado 28 Sep '11
by Vicente J. Ruiz Jurado 28 Sep '11
28 Sep '11
Author: vjrj_
Date: 2011-09-28 16:04:57 +0200 (Wed, 28 Sep 2011)
New Revision: 1540
Added:
trunk/img/icons/Black_Cursor.svg
trunk/img/icons/cursor-red.png
trunk/src/test/java/cc/kune/selenium/general/
trunk/src/test/java/cc/kune/selenium/general/EntityHeaderPageObject.java
trunk/src/test/java/cc/kune/selenium/general/SpacesPageObject.java
Removed:
trunk/src/test/java/cc/kune/selenium/login/EntityHeaderPageObject.java
Modified:
trunk/COPYRIGHT
trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.java
trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java
trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java
trunk/src/main/java/cc/kune/core/public/ws.css
trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java
trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
trunk/src/test/java/cc/kune/selenium/PageObject.java
trunk/src/test/java/cc/kune/selenium/SeleniumModule.java
trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java
trunk/src/test/java/cc/kune/selenium/chat/ChatPageObject.java
trunk/src/test/java/cc/kune/selenium/chat/ChatSeleniumTests.java
trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java
trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java
trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java
trunk/src/test/java/cc/kune/selenium/tools/SeleniumConstants.java
Log:
CLOSED - # 53: Add Selenium Framework testing
http://kune.ourproject.org/issues/ticket/53
Modified: trunk/COPYRIGHT
===================================================================
--- trunk/COPYRIGHT 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/COPYRIGHT 2011-09-28 14:04:57 UTC (rev 1540)
@@ -185,4 +185,8 @@
Creative Commons Attribution 3.0 Unported license
https://secure.wikimedia.org/wikipedia/commons/wiki/File:Acer_japonicum_Vit…
-
+#Cursor#
+https://secure.wikimedia.org/wikipedia/commons/wiki/File:Black_Cursor.svg
+Ort43v
+Creative Commons Attribution-Share Alike 3.0 Unported license
+http://creativecommons.org/licenses/by-sa/3.0/deed.en
Added: trunk/img/icons/Black_Cursor.svg
===================================================================
--- trunk/img/icons/Black_Cursor.svg (rev 0)
+++ trunk/img/icons/Black_Cursor.svg 2011-09-28 14:04:57 UTC (rev 1540)
@@ -0,0 +1,271 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.1"
+ width="20"
+ height="20"
+ id="svg2"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="Black_Cursor.svg">
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1078"
+ inkscape:window-height="897"
+ id="namedview35"
+ showgrid="false"
+ inkscape:showpageshadow="false"
+ showborder="false"
+ inkscape:zoom="1"
+ inkscape:cx="6.5104813"
+ inkscape:cy="10.563713"
+ inkscape:window-x="0"
+ inkscape:window-y="947"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2" />
+ <defs
+ id="defs4">
+ <clipPath
+ id="clipPath3058">
+ <path
+ d="m 17,550 181,0 0,266 -181,0 0,-266 z"
+ id="path3060" />
+ </clipPath>
+ <clipPath
+ id="clipPath3054">
+ <path
+ d="m 17,550 181,0 0,266 -181,0 0,-266 z"
+ id="path3056" />
+ </clipPath>
+ <clipPath
+ id="clipPath3048">
+ <path
+ d="m 0.1400146,0 594.8599954,0 0,841 -594.8599954,0 0,-841 z"
+ id="path3050" />
+ </clipPath>
+ <mask
+ id="mask3036">
+ <image
+ xlink:href="data:image/png;base64,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"
+ width="1"
+ height="1"
+ id="image3038" />
+ </mask>
+ <clipPath
+ id="clipPath3020">
+ <path
+ d="m 0.1400146,0 594.8599954,0 0,841 -594.8599954,0 0,-841 z"
+ id="path3022" />
+ </clipPath>
+ <mask
+ id="mask3036-4">
+ <image
+ xlink:href="data:image/png;base64,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"
+ width="1"
+ height="1"
+ id="image3038-4" />
+ </mask>
+ <clipPath
+ id="clipPath3048-6">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 0.1400146,0 594.8599954,0 0,841 -594.8599954,0 0,-841 z"
+ id="path3050-0" />
+ </clipPath>
+ <clipPath
+ id="clipPath3054-7">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 17,550 181,0 0,266 -181,0 0,-266 z"
+ id="path3056-4" />
+ </clipPath>
+ <clipPath
+ id="clipPath3058-3">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 17,550 181,0 0,266 -181,0 0,-266 z"
+ id="path3060-7" />
+ </clipPath>
+ </defs>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1032.3622)"
+ id="layer1"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/icons/cursor-red.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <g
+ transform="matrix(0.05527655,0,0,0.05527655,-22.484133,1026.5598)"
+ id="g3147">
+ <g
+ transform="matrix(1.25,0,0,-1.25,385.16156,1124.4318)"
+ id="g3014" />
+ <g
+ transform="matrix(1.25,0,0,-1.25,385.16156,1124.4318)"
+ id="g3028" />
+ <g
+ transform="matrix(1.25,0,0,-1.25,385.16156,1124.4318)"
+ id="g3030" />
+ <g
+ transform="matrix(1.25,0,0,-1.25,385.16156,1124.4318)"
+ id="g3032">
+ <g
+ transform="matrix(221,0,0,306,1,526)"
+ id="g3034">
+ <image
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAN0AAAEyCAYAAAB+odX5AAAABHNCSVQICAgIfAhkiAAAA2dJREFUeJzt0zEBACAMwLCBf8/gohwkCvp0zcwZILNfB8BvTAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcQu1KYDY6GxuR4AAAAASUVORK5CYII="
+ width="1"
+ height="1"
+ transform="matrix(1,0,0,-1,0,1)"
+ mask="url(#mask3036)"
+ id="image3040" />
+ </g>
+ </g>
+ <g
+ transform="matrix(1.25,0,0,-1.25,385.16156,1124.4318)"
+ id="g3042" />
+ <g
+ transform="matrix(1.25,0,0,-1.25,385.16156,1124.4318)"
+ clip-path="url(#clipPath3048)"
+ id="g3046">
+ <g
+ id="g3052" />
+ <g
+ id="g3062">
+ <g
+ clip-path="url(#clipPath3054)"
+ id="g3064">
+ <g
+ id="g3066" />
+ <g
+ id="g3068">
+ <g
+ clip-path="url(#clipPath3058)"
+ id="g3070">
+ <path
+ d="m 41.14001,791.145 0,-187.8 42.2,40.8 40.99999,-69.2 22.8,0 0.4,19 -36.2,68 c 0,0 16.8,0 26.4,0 11.2667,0 36.2,0 36.2,0 l -132.79999,129.2 z"
+ id="path3072"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ <g
+ transform="matrix(1,0,0,-1,0.1400146,841.945)"
+ id="g3074">
+ <path
+ d="M 41,50.79999 41,238.6 l 42.2,-40.8 41,69.2 22.8,0 0.4,-19 -36.2,-68 c 0,0 16.8,0 26.4,0 11.2667,0 36.2,0 36.2,0 L 41,50.79999 z"
+ id="path3076"
+ style="fill:none;stroke:#ffffff;stroke-width:12;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g
+ transform="matrix(1.25,0,0,-1.25,385.16156,1124.4318)"
+ id="g3078" />
+ </g>
+ </g>
+ <g
+ transform="matrix(0.72543777,1.3129128,-1.3129128,0.72543777,1407.0677,-758.30765)"
+ id="layer1-9"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/icons/cursor-red.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <g
+ transform="matrix(0.05527655,0,0,0.05527655,-22.484133,1026.5598)"
+ id="g3147-0">
+ <g
+ transform="matrix(1.25,0,0,-1.25,385.16156,1124.4318)"
+ id="g3014-0" />
+ <g
+ transform="matrix(1.25,0,0,-1.25,385.16156,1124.4318)"
+ id="g3028-2" />
+ <g
+ transform="matrix(1.25,0,0,-1.25,385.16156,1124.4318)"
+ id="g3030-2" />
+ <g
+ transform="matrix(1.25,0,0,-1.25,385.16156,1124.4318)"
+ id="g3032-6">
+ <g
+ transform="matrix(221,0,0,306,1,526)"
+ id="g3034-9">
+ <image
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAN0AAAEyCAYAAAB+odX5AAAABHNCSVQICAgIfAhkiAAAA2dJREFUeJzt0zEBACAMwLCBf8/gohwkCvp0zcwZILNfB8BvTAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcRMBzHTQcx0EDMdxEwHMdNBzHQQMx3ETAcx00HMdBAzHcQu1KYDY6GxuR4AAAAASUVORK5CYII="
+ width="1"
+ height="1"
+ transform="matrix(1,0,0,-1,0,1)"
+ mask="url(#mask3036-4)"
+ id="image3040-0" />
+ </g>
+ </g>
+ <g
+ transform="matrix(1.25,0,0,-1.25,385.16156,1124.4318)"
+ id="g3042-3" />
+ <g
+ transform="matrix(1.25,0,0,-1.25,385.16156,1124.4318)"
+ clip-path="url(#clipPath3048-6)"
+ id="g3046-5">
+ <g
+ id="g3052-5" />
+ <g
+ id="g3062-8">
+ <g
+ clip-path="url(#clipPath3054-7)"
+ id="g3064-7">
+ <g
+ id="g3066-1" />
+ <g
+ id="g3068-7">
+ <g
+ clip-path="url(#clipPath3058-3)"
+ id="g3070-0">
+ <path
+ d="m 41.14001,791.145 0,-187.8 42.2,40.8 40.99999,-69.2 22.8,0 0.4,19 -36.2,68 c 0,0 16.8,0 26.4,0 11.2667,0 36.2,0 36.2,0 l -132.79999,129.2 z"
+ id="path3072-6"
+ style="fill:#d40000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="matrix(1,0,0,-1,0.1400146,841.945)"
+ id="g3074-0">
+ <path
+ d="M 41,50.79999 41,238.6 l 42.2,-40.8 41,69.2 22.8,0 0.4,-19 -36.2,-68 c 0,0 16.8,0 26.4,0 11.2667,0 36.2,0 36.2,0 L 41,50.79999 z"
+ id="path3076-4"
+ style="fill:none;stroke:#ffffff;stroke-width:12;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g
+ transform="matrix(1.25,0,0,-1.25,385.16156,1124.4318)"
+ id="g3078-1" />
+ </g>
+ </g>
+</svg>
Added: trunk/img/icons/cursor-red.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/icons/cursor-red.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -72,6 +72,11 @@
userSpaceTooltip.setWidth(190);
groupSpaceTooltip.setWidth(170);
publicSpaceTooltip.setWidth(150);
+
+ homeButton.ensureDebugId(HOME_SPACE_ID);
+ userButton.ensureDebugId(USER_SPACE_ID);
+ groupButton.ensureDebugId(GROUP_SPACE_ID);
+ publicButton.ensureDebugId(PUBLIC_SPACE_ID);
}
@Override
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -56,6 +56,11 @@
public interface SpaceSelectorView extends View {
+ public static String GROUP_SPACE_ID = "k-space-group-id";
+ public static String HOME_SPACE_ID = "k-space-home-id";
+ public static String PUBLIC_SPACE_ID = "k-space-public-id";
+ public static String USER_SPACE_ID = "k-space-user-id";
+
HasClickHandlers getGroupBtn();
HasClickHandlers getHomeBtn();
Modified: trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -49,7 +49,7 @@
@Override
public void onClick(final ClickEvent event) {
if (showing) {
- final SlideRight slideAtEnd = new SlideRight(popup.getElement());
+ final SlideRight slideAtEnd = new SlideRight(widget.getElement());
slideAtEnd.invert();
slideAtEnd.setDuration(2);
slideAtEnd.play();
@@ -101,11 +101,11 @@
setSize(Window.getClientWidth(), Window.getClientHeight());
popup.sinkEvents(Event.MOUSEEVENTS);
popup.show();
- final Show showAtIni = new Show(popup.getElement());
- showAtIni.setDuration(3);
+ final Show showAtIni = new Show(widget.getElement());
+ showAtIni.setDuration(2);
showAtIni.play();
- final SlideRight slideAtIni = new SlideRight(popup.getElement());
- slideAtIni.setDuration(3);
+ final SlideRight slideAtIni = new SlideRight(widget.getElement());
+ slideAtIni.setDuration(2);
slideAtIni.play();
this.showing = true;
}
Modified: trunk/src/main/java/cc/kune/core/public/ws.css
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.css 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/main/java/cc/kune/core/public/ws.css 2011-09-28 14:04:57 UTC (rev 1540)
@@ -1,4 +1,4 @@
-CHARSET "UTF-8 "; body {
+GCHARSET "UTF-8 "; body {
background-color: transparent;
color: black;
font-family: 'Ubuntu', Arial;
@@ -944,7 +944,7 @@
border-color: #CCCCCC !important;
background: inherits !important;
kfilter: alpha(opacity =
- 60) !important;
+ 60) !important;
-moz-opacity: 0.60 !important;
-khtml-opacity: 0.60 !important;
opacity: 0.60 !important;
@@ -1230,7 +1230,7 @@
-moz-border-radius-bottomleft: 5px;
border-bottom-left-radius: 5px;
kfilter: alpha(opacity =
- 90);
+ 90);
-moz-opacity: 0.90;
-khtml-opacity: 0.90;
opacity: 0.90;
@@ -1527,3 +1527,8 @@
outline: #f90 solid 2px !important;
outline-offset: -2px !important;
}
+
+div.jGrowl div.jGrowl-notification div.header {
+ background-color: #000000 !important;
+ padding: 0 !important;
+}
\ No newline at end of file
Modified: trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -44,6 +44,7 @@
@Override
public void beforeChangeValueOf(final WebElement element, final WebDriver driver) {
+ SeleniumUtils.hightlight(element, driver);
}
@Override
Modified: trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -24,6 +24,7 @@
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.pagefactory.ElementLocatorFactory;
import org.testng.ITestContext;
@@ -36,7 +37,8 @@
import cc.kune.core.client.sub.SubtitlesWidget;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.selenium.chat.ChatPageObject;
-import cc.kune.selenium.login.EntityHeaderPageObject;
+import cc.kune.selenium.general.EntityHeaderPageObject;
+import cc.kune.selenium.general.SpacesPageObject;
import cc.kune.selenium.login.LoginPageObject;
import cc.kune.selenium.login.RegisterPageObject;
import cc.kune.selenium.tools.SeleniumConstants;
@@ -56,6 +58,7 @@
private final Injector injector;
protected LoginPageObject login;
protected RegisterPageObject register;
+ protected final SpacesPageObject spaces;
private final WebDriver webdriver;
public KuneSeleniumDefaults() {
@@ -66,11 +69,13 @@
login = injector.getInstance(LoginPageObject.class);
register = injector.getInstance(RegisterPageObject.class);
entityHeader = injector.getInstance(EntityHeaderPageObject.class);
+ spaces = injector.getInstance(SpacesPageObject.class);
chat = injector.getInstance(ChatPageObject.class);
final ElementLocatorFactory locator = injector.getInstance(ElementLocatorFactory.class);
PageFactory.initElements(locator, login);
PageFactory.initElements(locator, register);
PageFactory.initElements(locator, entityHeader);
+ PageFactory.initElements(locator, spaces);
PageFactory.initElements(locator, chat);
}
@@ -145,24 +150,39 @@
public void resize() {
final JavascriptExecutor js = (JavascriptExecutor) webdriver;
+ // Some others tested values:
// 1024,769
- js.executeScript("window.resizeTo(840,770); window.moveTo(0,0);");
+ // 840,770
+ // 806,707
+ js.executeScript("window.resizeTo(806,707); window.moveTo(0,0);");
}
- public void showSubtitle(final String title) {
- showSubtitle(title, "", "");
+ public void showMsg(final String msg) {
+ SeleniumUtils.showMsg(webdriver, "", msg);
}
- public void showSubtitle(final String title, final String description) {
- showSubtitle(title, description, "");
+ public void showMsg(final String title, final String msg) {
+ SeleniumUtils.showMsg(webdriver, title, msg);
}
- public void showSubtitle(final String title, final String description, final String token) {
+ public void showTitleSlide(final String title) {
+ showTitleSlide(title, "", "");
+ }
+
+ public void showTitleSlide(final String title, final String description) {
+ showTitleSlide(title, description, "");
+ }
+
+ public void showTitleSlide(final String title, final String description, final String token) {
gotoToken(TokenUtils.subtitle(title, description, token));
sleep(3000);
webdriver.findElement(By.id(SeleniumConstants.GWTDEV + SubtitlesWidget.SUBTITLE_MANAGER_ID)).click();
}
+ public void showTooltip(final WebElement element) {
+ SeleniumUtils.showTooltip(webdriver, element);
+ }
+
public void sleep(final int milliseconds) {
SeleniumUtils.sleep(milliseconds);
}
Modified: trunk/src/test/java/cc/kune/selenium/PageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/PageObject.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/test/java/cc/kune/selenium/PageObject.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -32,7 +32,6 @@
import org.openqa.selenium.WebDriver.Options;
import org.openqa.selenium.WebDriver.TargetLocator;
import org.openqa.selenium.WebElement;
-import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ByIdOrName;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.Wait;
@@ -120,12 +119,6 @@
return webdriver.manage();
}
- public void moveMouseTo(final WebElement element) {
- final Actions actions = new Actions(webdriver);
- actions.moveToElement(element);
- sleep(1000);
- }
-
public Navigation navigate() {
return webdriver.navigate();
}
@@ -134,6 +127,10 @@
webdriver.quit();
}
+ public void showTooltip(final WebElement element) {
+ SeleniumUtils.showTooltip(webdriver, element);
+ }
+
public void sleep(final int milliseconds) {
SeleniumUtils.sleep(milliseconds);
}
Modified: trunk/src/test/java/cc/kune/selenium/SeleniumModule.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/SeleniumModule.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/test/java/cc/kune/selenium/SeleniumModule.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -33,7 +33,8 @@
import org.openqa.selenium.support.pagefactory.ElementLocatorFactory;
import cc.kune.selenium.chat.ChatPageObject;
-import cc.kune.selenium.login.EntityHeaderPageObject;
+import cc.kune.selenium.general.EntityHeaderPageObject;
+import cc.kune.selenium.general.SpacesPageObject;
import cc.kune.selenium.login.LoginPageObject;
import cc.kune.selenium.login.RegisterPageObject;
import cc.kune.selenium.tools.SeleniumConstants;
@@ -59,6 +60,7 @@
bind(RegisterPageObject.class).in(Singleton.class);
bind(EntityHeaderPageObject.class).in(Singleton.class);
bind(ChatPageObject.class).in(Singleton.class);
+ bind(SpacesPageObject.class).in(Singleton.class);
}
@SuppressWarnings("unused")
Modified: trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -3,19 +3,42 @@
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
+import org.openqa.selenium.interactions.Actions;
import org.testng.Assert;
+import cc.kune.common.client.utils.TextUtils;
+
public class SeleniumUtils {
public static void hightlight(final WebElement element, final WebDriver webdriver) {
final JavascriptExecutor js = (JavascriptExecutor) webdriver;
final String script = "window.jQuery('#" + element.getAttribute("id") + "').addClass('k-outline');"
+ "setTimeout('window.jQuery(\"#" + element.getAttribute("id")
- + "\").removeClass(\"k-outline\")', 700);";
+ + "\").removeClass(\"k-outline\")', 1200);";
+ // Antes 700
// LOG.info("High: " + script);
js.executeScript(script);
}
+ public static void moveMouseTo(final WebDriver webdriver, final WebElement element) {
+ final Actions actions = new Actions(webdriver);
+ actions.moveToElement(element);
+ }
+
+ public static void showMsg(final WebDriver webdriver, final String header, final String msg) {
+ final JavascriptExecutor js = (JavascriptExecutor) webdriver;
+ final String opts = TextUtils.notEmpty(header) ? "header: '" + header + "'," : "";
+ // sticky: true,
+ final String script = "window.jQuery.jGrowl(\"" + msg + "\", { " + opts + " theme: 'k-jgrowl' } )";
+ js.executeScript(script);
+ }
+
+ public static void showTooltip(final WebDriver webdriver, final WebElement element) {
+ SeleniumUtils.moveMouseTo(webdriver, element);
+ SeleniumUtils.hightlight(element, webdriver);
+ sleep(2000);
+ }
+
public static void sleep(final int milliseconds) {
try {
Thread.sleep(milliseconds);
Modified: trunk/src/test/java/cc/kune/selenium/chat/ChatPageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/chat/ChatPageObject.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/test/java/cc/kune/selenium/chat/ChatPageObject.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -75,6 +75,10 @@
return findElement(new ByIdOrName(id));
}
+ public WebElement icon() {
+ return chatIcon;
+ }
+
public void openChat(final XmppURI uri) {
openChat.click();
jid.sendKeys(uri.toString());
Modified: trunk/src/test/java/cc/kune/selenium/chat/ChatSeleniumTests.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/chat/ChatSeleniumTests.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/test/java/cc/kune/selenium/chat/ChatSeleniumTests.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -31,10 +31,11 @@
public void basicChat() {
// 15 chars, the limit, so we don't use shortName
login();
- showSubtitle("Chat with your buddies", "compatible with gmail and similars");
+ showTitleSlide("Chat with your buddies", "compatible with gmail and similars");
chat.show();
final XmppURI jid = XmppURI.jid(ChatPageObject.DEF_TESTING_USER);
final String jids = jid.toString();
+ showMsg("We need to add buddies (contacts) before chat with them");
chat.openChat(jid);
// chat.getPage(jids).click();
chat.getTalkBox(jids).sendKeys("Helloo... ;)");
Copied: trunk/src/test/java/cc/kune/selenium/general/EntityHeaderPageObject.java (from rev 1538, trunk/src/test/java/cc/kune/selenium/login/EntityHeaderPageObject.java)
===================================================================
--- trunk/src/test/java/cc/kune/selenium/general/EntityHeaderPageObject.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/general/EntityHeaderPageObject.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -0,0 +1,42 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.selenium.general;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+
+import cc.kune.core.client.ws.entheader.EntityTextLogo;
+import cc.kune.selenium.PageObject;
+import cc.kune.selenium.tools.SeleniumConstants;
+
+public class EntityHeaderPageObject extends PageObject {
+
+ @FindBy(id = SeleniumConstants.GWTDEV + EntityTextLogo.LOGO_IMAGE)
+ protected WebElement logoImage;
+ @FindBy(id = SeleniumConstants.GWTDEV + EntityTextLogo.LOGO_NAME)
+ protected WebElement logoName;
+
+ public EntityHeaderPageObject() {
+ }
+
+ public void waitForEntityTitle(final String text) {
+ waitFor(logoName, text);
+ }
+}
Added: trunk/src/test/java/cc/kune/selenium/general/SpacesPageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/general/SpacesPageObject.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/general/SpacesPageObject.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -0,0 +1,59 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.selenium.general;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+
+import cc.kune.core.client.sitebar.spaces.SpaceSelectorPresenter.SpaceSelectorView;
+import cc.kune.selenium.PageObject;
+import cc.kune.selenium.tools.SeleniumConstants;
+
+public class SpacesPageObject extends PageObject {
+
+ @FindBy(id = SeleniumConstants.GWTDEV + SpaceSelectorView.GROUP_SPACE_ID)
+ protected WebElement groupSpaceBtn;
+ @FindBy(id = SeleniumConstants.GWTDEV + SpaceSelectorView.HOME_SPACE_ID)
+ protected WebElement homeSpaceBtn;
+ @FindBy(id = SeleniumConstants.GWTDEV + SpaceSelectorView.PUBLIC_SPACE_ID)
+ protected WebElement publicSpaceBtn;
+ @FindBy(id = SeleniumConstants.GWTDEV + SpaceSelectorView.USER_SPACE_ID)
+ protected WebElement userSpaceBtn;
+
+ public SpacesPageObject() {
+ }
+
+ public WebElement groupBtn() {
+ return groupSpaceBtn;
+ }
+
+ public WebElement homeBtn() {
+ return homeSpaceBtn;
+ }
+
+ public WebElement publicBtn() {
+ return publicSpaceBtn;
+ }
+
+ public WebElement userBtn() {
+ return userSpaceBtn;
+ }
+
+}
Deleted: trunk/src/test/java/cc/kune/selenium/login/EntityHeaderPageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/EntityHeaderPageObject.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/test/java/cc/kune/selenium/login/EntityHeaderPageObject.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -1,42 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.selenium.login;
-
-import org.openqa.selenium.WebElement;
-import org.openqa.selenium.support.FindBy;
-
-import cc.kune.core.client.ws.entheader.EntityTextLogo;
-import cc.kune.selenium.PageObject;
-import cc.kune.selenium.tools.SeleniumConstants;
-
-public class EntityHeaderPageObject extends PageObject {
-
- @FindBy(id = SeleniumConstants.GWTDEV + EntityTextLogo.LOGO_IMAGE)
- protected WebElement logoImage;
- @FindBy(id = SeleniumConstants.GWTDEV + EntityTextLogo.LOGO_NAME)
- protected WebElement logoName;
-
- public EntityHeaderPageObject() {
- }
-
- public void waitForEntityTitle(final String text) {
- waitFor(logoName, text);
- }
-}
Modified: trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -90,8 +90,7 @@
public void signIn(final String username, final String password, final boolean withReturn) {
assertIsDisconnected();
- // hightlight(signInLink);
- moveMouseTo(signInLink);
+ showTooltip(signInLink);
signInLink.click();
fillSigInInForm(username, password, withReturn);
}
Modified: trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -47,7 +47,7 @@
@Test(dataProvider = "correctlogin")
public void basicSignIn(final String user, final String passwd) {
login.assertIsDisconnected();
- showSubtitle("User sign in", "to get full access to this site");
+ showTitleSlide("User sign in", "to get full access to this site");
login.signIn(user, passwd);
login.assertIsConnectedAs(user);
login.logout();
Modified: trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -21,8 +21,12 @@
import org.testng.annotations.Test;
+import cc.kune.core.client.state.SiteTokens;
import cc.kune.selenium.KuneSeleniumTest;
+import cc.kune.selenium.tools.SeleniumConstants;
+import com.calclab.emite.core.client.xmpp.stanzas.XmppURI;
+
public class RegisterSeleniumTests extends KuneSeleniumTest {
@Test(dataProvider = "correctregister")
@@ -30,15 +34,36 @@
final String email) {
// 15 chars, the limit, so we don't use shortName
final String prefix = getTempString();
- showSubtitle("User registration", "to get full access to this site tools/contents");
+ showTitleSlide("User registration", "to get full access to this site tools/contents");
login.createOne();
register.fillRegisterForm(prefix, prefix + longName, passwd, prefix + email, false);
login.assertIsConnectedAs(prefix);
sleep(1000);
entityHeader.waitForEntityTitle(prefix + longName);
register.getWelcomeMsg().click();
+
+ // user space
+ showTitleSlide("User space (your Inbox)", "contents in which you participate");
+ showTooltip(spaces.userBtn());
+ spaces.userBtn().click();
+
+ // chat
+ showTitleSlide("Chat with your buddies", "compatible with gmail and similars", SiteTokens.WAVEINBOX);
+ showTooltip(chat.icon());
chat.show();
sleep(3000);
+
+ final XmppURI jid = XmppURI.jid(SeleniumConstants.USER_EMAIL);
+ final String jids = jid.toString();
+ showMsg("We need to add buddies (contacts) before chat with them");
+ chat.openChat(jid);
+
+ // chat.getPage(jids).click();
+ chat.getTalkBox(jids).sendKeys("Helloo... ;)");
+ chat.getSend(jids).click();
+ chat.getTalkBox(jids).sendKeys("I'm just testing");
+ chat.getSend(jids).click();
+
login.logout();
}
Modified: trunk/src/test/java/cc/kune/selenium/tools/SeleniumConstants.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/tools/SeleniumConstants.java 2011-09-27 21:01:37 UTC (rev 1539)
+++ trunk/src/test/java/cc/kune/selenium/tools/SeleniumConstants.java 2011-09-28 14:04:57 UTC (rev 1540)
@@ -23,7 +23,7 @@
public static final String FIREFOX_PROFILE_NAME = "selenium";
public static final String GWTDEV = "gwt-debug-";
public static final String INPUT = "-input";
- public static final int TIMEOUT = 15;
+ public static final int TIMEOUT = 20;
public static final String USER_EMAIL = "admin(a)example.org";
public static final String USER_LONGNAME = "Administrator";
public static final String USER_PASSWD = "easyeasy";
1
0
r1539 - in trunk/src: main/java/org test/java test/java/cc/kune/selenium test/java/cc/kune/selenium/login test/java/testsuites test/java/testsuites/ng
by Vicente J. Ruiz Jurado 27 Sep '11
by Vicente J. Ruiz Jurado 27 Sep '11
27 Sep '11
Author: vjrj_
Date: 2011-09-27 23:01:37 +0200 (Tue, 27 Sep 2011)
New Revision: 1539
Added:
trunk/src/test/java/testsuites/ng/
trunk/src/test/java/testsuites/ng/kune-selenium-testsuite.xml
Removed:
trunk/src/main/java/org/ourproject/
trunk/src/test/java/org/
Modified:
trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java
trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
trunk/src/test/java/cc/kune/selenium/SeleniumModule.java
trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java
trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java
Log:
CLOSED - # 53: Add Selenium Framework testing
http://kune.ourproject.org/issues/ticket/53
Modified: trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java 2011-09-27 19:40:16 UTC (rev 1538)
+++ trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java 2011-09-27 21:01:37 UTC (rev 1539)
@@ -1,15 +1,17 @@
package cc.kune.selenium;
import org.openqa.selenium.By;
+import org.openqa.selenium.OutputType;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
+import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.events.WebDriverEventListener;
public class CustomWebDriverEventListener implements WebDriverEventListener {
@Override
public void afterChangeValueOf(final WebElement element, final WebDriver driver) {
- sleep(400);
+ sleep(600);
}
@Override
@@ -72,6 +74,9 @@
@Override
public void onException(final Throwable throwable, final WebDriver driver) {
+ if (driver instanceof ChromeDriver) {
+ ((ChromeDriver) driver).getScreenshotAs(OutputType.FILE);
+ }
}
private void sleep(final int milliseconds) {
Modified: trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-09-27 19:40:16 UTC (rev 1538)
+++ trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-09-27 21:01:37 UTC (rev 1539)
@@ -45,8 +45,11 @@
import com.google.inject.Injector;
public class KuneSeleniumDefaults {
+
+ public static final Injector INJECTOR = Guice.createInjector(new SeleniumModule());
+
private static final Log LOG = LogFactory.getLog(KuneSeleniumDefaults.class);
- public static boolean mustCloseFinally = false;
+ public static boolean mustCloseFinally = true;
private final String baseUrl;
protected final ChatPageObject chat;
protected final EntityHeaderPageObject entityHeader;
@@ -58,7 +61,7 @@
public KuneSeleniumDefaults() {
// baseUrl = "http://kune.beta.iepala.es/ws/?locale=en#";
baseUrl = "http://127.0.0.1:8888/?locale=es&log_level=INFO&gwt.codesvr=127.0.0.1:9997#";
- injector = Guice.createInjector(new SeleniumModule());
+ injector = INJECTOR;
webdriver = injector.getInstance(WebDriver.class);
login = injector.getInstance(LoginPageObject.class);
register = injector.getInstance(RegisterPageObject.class);
@@ -71,17 +74,17 @@
PageFactory.initElements(locator, chat);
}
+ @BeforeMethod
+ public void beforeMethods(final ITestContext context) {
+ }
+
@BeforeSuite
- public void beforeClass() {
+ public void beforeSuite() {
resize();
LOG.info("Going home");
home();
}
- @BeforeMethod
- public void beforeMethods(final ITestContext context) {
- }
-
public void close() {
webdriver.close();
}
Modified: trunk/src/test/java/cc/kune/selenium/SeleniumModule.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/SeleniumModule.java 2011-09-27 19:40:16 UTC (rev 1538)
+++ trunk/src/test/java/cc/kune/selenium/SeleniumModule.java 2011-09-27 21:01:37 UTC (rev 1539)
@@ -42,9 +42,6 @@
public class SeleniumModule extends PageObjectModule {
- public SeleniumModule() {
- }
-
@Override
protected void configure() {
// final RemoteWebDriver driver = createChromeDriver();
Modified: trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java 2011-09-27 19:40:16 UTC (rev 1538)
+++ trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java 2011-09-27 21:01:37 UTC (rev 1539)
@@ -45,7 +45,7 @@
}
@Test(dataProvider = "correctlogin")
- public void signIn(final String user, final String passwd) {
+ public void basicSignIn(final String user, final String passwd) {
login.assertIsDisconnected();
showSubtitle("User sign in", "to get full access to this site");
login.signIn(user, passwd);
Modified: trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java 2011-09-27 19:40:16 UTC (rev 1538)
+++ trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java 2011-09-27 21:01:37 UTC (rev 1539)
@@ -26,7 +26,7 @@
public class RegisterSeleniumTests extends KuneSeleniumTest {
@Test(dataProvider = "correctregister")
- public void severalsSignInSingOut(final String shortName, final String longName, final String passwd,
+ public void basicRegister(final String shortName, final String longName, final String passwd,
final String email) {
// 15 chars, the limit, so we don't use shortName
final String prefix = getTempString();
@@ -39,31 +39,7 @@
register.getWelcomeMsg().click();
chat.show();
sleep(3000);
- // login.logout();
+ login.logout();
}
- // @Test(dataProvider = "correctlogin")
- // public void signIn(final String user, final String passwd) {
- // login.assertIsDisconnected();
- // login.signIn(user, passwd);
- // login.assertIsConnectedAs(user);
- // login.logout();
- // login.assertIsDisconnected();
- // }
- //
- // @Test
- // public void signInIncorrectPasswd() {
- // login.assertIsDisconnected();
- // login.signIn("nouser", "nopassword");
- // login.assertIsDisconnected();
- // }
- //
- // @Test(dataProvider = "correctlogin")
- // public void signInWithToken(final String user, final String passwd) {
- // login.assertIsDisconnected();
- // webdriver.gotoToken(SiteTokens.SIGNIN);
- // login.fillSigInInForm(user, passwd, true);
- // login.assertIsConnectedAs(user);
- // login.logout();
- // login.assertIsDisconnected();
- // }
+
}
Added: trunk/src/test/java/testsuites/ng/kune-selenium-testsuite.xml
===================================================================
--- trunk/src/test/java/testsuites/ng/kune-selenium-testsuite.xml (rev 0)
+++ trunk/src/test/java/testsuites/ng/kune-selenium-testsuite.xml 2011-09-27 21:01:37 UTC (rev 1539)
@@ -0,0 +1,23 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
+<suite name="VideoTestSuite" verbose="3">
+ <test name="login">
+ <classes>
+ <class name="cc.kune.selenium.login.LoginSeleniumTests">
+ <methods>
+ <include name="basicSignIn" />
+ </methods>
+ </class>
+ <class name="cc.kune.selenium.login.RegisterSeleniumTests">
+ <methods>
+ <include name="basicRegister" />
+ </methods>
+ </class>
+ <class name="cc.kune.selenium.chat.ChatSeleniumTests">
+ <methods>
+ <include name="basicChat" />
+ </methods>
+ </class>
+ </classes>
+ </test>
+</suite>
+
1
0
Author: vjrj_
Date: 2011-09-27 21:40:16 +0200 (Tue, 27 Sep 2011)
New Revision: 1538
Added:
trunk/src/test/java/cc/kune/selenium/chat/
trunk/src/test/java/cc/kune/selenium/chat/ChatPageObject.java
trunk/src/test/java/cc/kune/selenium/chat/ChatSeleniumTests.java
Removed:
trunk/src/main/java/org/ourproject/kune/platf/client/
trunk/src/test/java/cc/kune/tasks/
trunk/src/test/java/org/ourproject/kune/platf/client/
Modified:
trunk/src/main/java/cc/kune/chat/client/ChatClient.java
trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtIconLabelGui.java
trunk/src/main/java/cc/kune/common/client/ui/IconLabel.java
trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java
trunk/src/main/java/cc/kune/core/client/auth/Register.java
trunk/src/main/java/cc/kune/core/client/auth/RegisterPresenter.java
trunk/src/main/java/cc/kune/core/client/auth/SignInPanel.java
trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java
trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java
trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
trunk/src/test/java/cc/kune/selenium/PageObject.java
trunk/src/test/java/cc/kune/selenium/SeleniumModule.java
trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java
trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java
trunk/src/test/java/cc/kune/selenium/login/RegisterPageObject.java
trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java
Log:
NEW - # 53: Add Selenium Framework testing
http://kune.ourproject.org/issues/ticket/53
Modified: trunk/src/main/java/cc/kune/chat/client/ChatClient.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClient.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClient.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -23,40 +23,41 @@
import com.calclab.emite.xep.muc.client.Room;
public interface ChatClient {
+ public static final String CHAT_CLIENT_ICON_ID = "k-chat-icon-id";
- void addNewBuddie(String shortName);
+ void addNewBuddie(String shortName);
- void chat(String shortName);
+ void chat(String shortName);
- void chat(XmppURI jid);
+ void chat(XmppURI jid);
- void doLogin();
+ void doLogin();
- boolean isBuddie(String shortName);
+ boolean isBuddie(String shortName);
- boolean isBuddie(XmppURI jid);
+ boolean isBuddie(XmppURI jid);
- boolean isLoggedIn();
+ boolean isLoggedIn();
- Room joinRoom(String roomName, String userAlias);
+ Room joinRoom(String roomName, String userAlias);
- Room joinRoom(String roomName, String subject, String userAlias);
+ Room joinRoom(String roomName, String subject, String userAlias);
- void login(XmppURI uri, String passwd);
+ void login(XmppURI uri, String passwd);
- /**
- * @return true if loggin is needed
- */
- boolean loginIfNecessary();
+ /**
+ * @return true if loggin is needed
+ */
+ boolean loginIfNecessary();
- void logout();
+ void logout();
- XmppURI roomUriFrom(String shortName);
+ XmppURI roomUriFrom(String shortName);
- void setAvatar(String photoBinary);
+ void setAvatar(String photoBinary);
- void show();
+ void show();
- XmppURI uriFrom(String shortName);
+ XmppURI uriFrom(String shortName);
}
Modified: trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -123,7 +123,6 @@
}
- protected static final String CHAT_CLIENT_ICON_ID = "k-chat-icon-id";
private static final String CHAT_TITLE = "Chat ;)";
private final ChatClientAction action;
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtIconLabelGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtIconLabelGui.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtIconLabelGui.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -53,7 +53,7 @@
descriptor.putValue(ParentWidget.PARENT_UI, this);
final String id = descriptor.getId();
if (id != null) {
- iconLabel.ensureDebugId(id);
+ iconLabel.setId(id);
}
initWidget(iconLabel);
iconLabel.getFocus().addClickHandler(new ClickHandler() {
Modified: trunk/src/main/java/cc/kune/common/client/ui/IconLabel.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/IconLabel.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/main/java/cc/kune/common/client/ui/IconLabel.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -126,6 +126,10 @@
return flow.remove(w);
}
+ public void setId(final String id) {
+ self.ensureDebugId(id);
+ }
+
public void setLabelText(final String text) {
label.setText(text);
}
Modified: trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -19,6 +19,7 @@
*/
package cc.kune.common.client.ui.dialogs;
+import cc.kune.common.client.tooltip.Tooltip;
import cc.kune.common.client.ui.PopupTopPanel;
import cc.kune.common.client.utils.TextUtils;
@@ -252,6 +253,7 @@
}
public void showCentered() {
+ Tooltip.hideCurrent();
popup.showCentered();
}
Modified: trunk/src/main/java/cc/kune/core/client/auth/Register.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/Register.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/main/java/cc/kune/core/client/auth/Register.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -19,11 +19,12 @@
*/
package cc.kune.core.client.auth;
-
public interface Register {
- void doRegister();
+ String WELCOME_ID = "k-user-reg-welcome-msg-id";
- void hide();
+ void doRegister();
+ void hide();
+
}
Modified: trunk/src/main/java/cc/kune/core/client/auth/RegisterPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/RegisterPresenter.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/main/java/cc/kune/core/client/auth/RegisterPresenter.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -31,7 +31,6 @@
import cc.kune.core.client.errors.UserRegistrationException;
import cc.kune.core.client.events.NewUserRegisteredEvent;
import cc.kune.core.client.i18n.I18nUITranslationService;
-import cc.kune.core.client.notify.msgs.UserNotifyEvent;
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.rpcservices.UserServiceAsync;
import cc.kune.core.client.state.Session;
@@ -213,26 +212,22 @@
}
private void showWelcolmeDialog() {
- getEventBus().fireEvent(
- new UserNotifyEvent(
- NotifyLevel.info,
- i18n.t("Welcome"),
- i18n.t("Thanks for joining this site. "
- + "Now you can actively participate in this site. "
- + "You can also use your personal space to publish contents. "
- + "Note: your email is not verified, please follow the instructions you will receive by email."),
- true));
+ NotifyUser.info(
+ i18n.t("Welcome"),
+ i18n.t("Thanks for joining this site. "
+ + "Now you can actively participate in this site. "
+ + "You can also use your personal space to publish contents. "
+ + "Note: your email is not verified, please follow the instructions you will receive by email."),
+ Register.WELCOME_ID, true);
}
private void showWelcolmeDialogNoHomepage() {
- getEventBus().fireEvent(
- new UserNotifyEvent(
- NotifyLevel.info,
- i18n.t("Welcome"),
- i18n.t("Thanks for joining this site"
- + "Now you can actively participate in this site. "
- + "Note: your email is not verified, please follow the instructions you will receive by email."),
- true));
+ NotifyUser.info(
+ i18n.t("Welcome"),
+ i18n.t("Thanks for joining this site"
+ + "Now you can actively participate in this site. "
+ + "Note: your email is not verified, please follow the instructions you will receive by email."),
+ Register.WELCOME_ID, true);
}
};
userServiceProvider.get().createUser(user, wantHomepage, callback);
Modified: trunk/src/main/java/cc/kune/core/client/auth/SignInPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInPanel.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInPanel.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -20,7 +20,6 @@
package cc.kune.core.client.auth;
import cc.kune.common.client.notify.NotifyLevelImages;
-import cc.kune.common.client.tooltip.Tooltip;
import cc.kune.common.client.ui.MaskWidgetView;
import cc.kune.common.client.ui.dialogs.MessageToolbar;
import cc.kune.common.client.utils.OnAcceptCallback;
@@ -133,7 +132,6 @@
@Override
public void show() {
super.show();
- Tooltip.hideCurrent();
KuneUiUtils.focusOnField(getNickname());
}
Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -21,7 +21,6 @@
import cc.kune.common.client.notify.NotifyLevel;
import cc.kune.common.client.notify.NotifyLevelImages;
-import cc.kune.common.client.tooltip.Tooltip;
import cc.kune.common.client.ui.MaskWidgetView;
import cc.kune.common.client.ui.dialogs.BasicTopDialog;
import cc.kune.common.client.ui.dialogs.BasicTopDialog.Builder;
@@ -296,7 +295,6 @@
@Override
public void show() {
- Tooltip.hideCurrent();
dialog.showCentered();
}
Modified: trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -46,6 +46,7 @@
@Override
public void beforeClickOn(final WebElement element, final WebDriver driver) {
+ SeleniumUtils.hightlight(element, driver);
slow();
}
Modified: trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -35,6 +35,7 @@
import cc.kune.core.client.state.TokenUtils;
import cc.kune.core.client.sub.SubtitlesWidget;
import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.selenium.chat.ChatPageObject;
import cc.kune.selenium.login.EntityHeaderPageObject;
import cc.kune.selenium.login.LoginPageObject;
import cc.kune.selenium.login.RegisterPageObject;
@@ -47,6 +48,7 @@
private static final Log LOG = LogFactory.getLog(KuneSeleniumDefaults.class);
public static boolean mustCloseFinally = false;
private final String baseUrl;
+ protected final ChatPageObject chat;
protected final EntityHeaderPageObject entityHeader;
private final Injector injector;
protected LoginPageObject login;
@@ -61,10 +63,12 @@
login = injector.getInstance(LoginPageObject.class);
register = injector.getInstance(RegisterPageObject.class);
entityHeader = injector.getInstance(EntityHeaderPageObject.class);
+ chat = injector.getInstance(ChatPageObject.class);
final ElementLocatorFactory locator = injector.getInstance(ElementLocatorFactory.class);
PageFactory.initElements(locator, login);
PageFactory.initElements(locator, register);
PageFactory.initElements(locator, entityHeader);
+ PageFactory.initElements(locator, chat);
}
@BeforeSuite
Modified: trunk/src/test/java/cc/kune/selenium/PageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/PageObject.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/test/java/cc/kune/selenium/PageObject.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -25,7 +25,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.openqa.selenium.By;
-import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Keys;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
@@ -87,12 +86,14 @@
}
public void hightlight(final WebElement element) {
- final JavascriptExecutor js = (JavascriptExecutor) webdriver;
- final String script = "window.jQuery('#" + element.getAttribute("id") + "').addClass('k-outline');"
- + "setTimeout('window.jQuery(\"#" + element.getAttribute("id")
- + "\").removeClass(\"k-outline\")', 700);";
- // LOG.info("High: " + script);
- js.executeScript(script);
+ SeleniumUtils.hightlight(element, webdriver);
+ // final JavascriptExecutor js = (JavascriptExecutor) webdriver;
+ // final String script = "window.jQuery('#" + element.getAttribute("id") +
+ // "').addClass('k-outline');"
+ // + "setTimeout('window.jQuery(\"#" + element.getAttribute("id")
+ // + "\").removeClass(\"k-outline\")', 700);";
+ // // LOG.info("High: " + script);
+ // js.executeScript(script);
}
public boolean isElementPresent(final String id) {
Modified: trunk/src/test/java/cc/kune/selenium/SeleniumModule.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/SeleniumModule.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/test/java/cc/kune/selenium/SeleniumModule.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -32,6 +32,7 @@
import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
import org.openqa.selenium.support.pagefactory.ElementLocatorFactory;
+import cc.kune.selenium.chat.ChatPageObject;
import cc.kune.selenium.login.EntityHeaderPageObject;
import cc.kune.selenium.login.LoginPageObject;
import cc.kune.selenium.login.RegisterPageObject;
@@ -60,6 +61,7 @@
bind(LoginPageObject.class).in(Singleton.class);
bind(RegisterPageObject.class).in(Singleton.class);
bind(EntityHeaderPageObject.class).in(Singleton.class);
+ bind(ChatPageObject.class).in(Singleton.class);
}
@SuppressWarnings("unused")
Modified: trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -1,9 +1,21 @@
package cc.kune.selenium;
+import org.openqa.selenium.JavascriptExecutor;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
import org.testng.Assert;
public class SeleniumUtils {
+ public static void hightlight(final WebElement element, final WebDriver webdriver) {
+ final JavascriptExecutor js = (JavascriptExecutor) webdriver;
+ final String script = "window.jQuery('#" + element.getAttribute("id") + "').addClass('k-outline');"
+ + "setTimeout('window.jQuery(\"#" + element.getAttribute("id")
+ + "\").removeClass(\"k-outline\")', 700);";
+ // LOG.info("High: " + script);
+ js.executeScript(script);
+ }
+
public static void sleep(final int milliseconds) {
try {
Thread.sleep(milliseconds);
Added: trunk/src/test/java/cc/kune/selenium/chat/ChatPageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/chat/ChatPageObject.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/chat/ChatPageObject.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -0,0 +1,89 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.selenium.chat;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.ByIdOrName;
+import org.openqa.selenium.support.FindBy;
+
+import cc.kune.chat.client.ChatClient;
+import cc.kune.selenium.PageObject;
+import cc.kune.selenium.tools.SeleniumConstants;
+
+import com.calclab.emite.core.client.xmpp.stanzas.XmppURI;
+import com.calclab.hablar.core.client.Idify;
+
+public class ChatPageObject extends PageObject {
+
+ public static final String DEF_TESTING_USER = "some.testing.user(a)gmail.com";
+ @FindBy(id = SeleniumConstants.GWTDEV + "OpenChatWidget-addToRoster" + SeleniumConstants.INPUT)
+ private WebElement addToRoster;
+ @FindBy(id = SeleniumConstants.GWTDEV + ChatClient.CHAT_CLIENT_ICON_ID)
+ private WebElement chatIcon;
+ @FindBy(id = SeleniumConstants.GWTDEV + "OpenChatWidget-jabberId")
+ private WebElement jid;
+ @FindBy(id = SeleniumConstants.GWTDEV + "HablarOpenChat-openAction")
+ private WebElement openChat;
+ @FindBy(id = SeleniumConstants.GWTDEV + "OpenChatWidget-open")
+ private WebElement openChatBtn;
+
+ // Duplicate in Hablar (we need a common PageObject)
+ public WebElement getHeader(final String uri) {
+ final String pageId = Idify.uriId(uri);
+ final String headerId = "gwt-debug-HeaderWidget-Chat-" + pageId;
+ return findElement(new ByIdOrName(headerId));
+ }
+
+ public WebElement getList(final String uri) {
+ final String pageId = Idify.uriId(uri);
+ final String id = "gwt-debug-ChatWidget-list-Chat-" + pageId;
+ return findElement(new ByIdOrName(id));
+ }
+
+ public WebElement getPage(final String uri) {
+ final String pageId = Idify.uriId(uri);
+ final String headerId = "gwt-debug-ChatWidget-Chat-" + pageId;
+ return findElement(new ByIdOrName(headerId));
+ }
+
+ public WebElement getSend(final String uri) {
+ final String pageId = Idify.uriId(uri);
+ final String id = "gwt-debug-ChatWidget-send-Chat-" + pageId;
+ return findElement(new ByIdOrName(id));
+ }
+
+ public WebElement getTalkBox(final String uri) {
+ final String pageId = Idify.uriId(uri);
+ final String id = "gwt-debug-ChatWidget-talkBox-Chat-" + pageId;
+ return findElement(new ByIdOrName(id));
+ }
+
+ public void openChat(final XmppURI uri) {
+ openChat.click();
+ jid.sendKeys(uri.toString());
+ addToRoster.click();
+ openChatBtn.click();
+ }
+
+ public void show() {
+ chatIcon.click();
+ }
+
+}
Added: trunk/src/test/java/cc/kune/selenium/chat/ChatSeleniumTests.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/chat/ChatSeleniumTests.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/chat/ChatSeleniumTests.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -0,0 +1,46 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.selenium.chat;
+
+import org.testng.annotations.Test;
+
+import cc.kune.selenium.KuneSeleniumTest;
+
+import com.calclab.emite.core.client.xmpp.stanzas.XmppURI;
+
+public class ChatSeleniumTests extends KuneSeleniumTest {
+
+ @Test
+ public void basicChat() {
+ // 15 chars, the limit, so we don't use shortName
+ login();
+ showSubtitle("Chat with your buddies", "compatible with gmail and similars");
+ chat.show();
+ final XmppURI jid = XmppURI.jid(ChatPageObject.DEF_TESTING_USER);
+ final String jids = jid.toString();
+ chat.openChat(jid);
+ // chat.getPage(jids).click();
+ chat.getTalkBox(jids).sendKeys("Helloo... ;)");
+ chat.getSend(jids).click();
+ chat.getTalkBox(jids).sendKeys("I'm just testing");
+ chat.getSend(jids).click();
+ }
+
+}
Modified: trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -47,9 +47,9 @@
public void createOne() {
assertIsDisconnected();
- hightlight(signInLink);
+ // hightlight(signInLink);
signInLink.click();
- hightlight(createOneLink);
+ // hightlight(createOneLink);
createOneLink.click();
}
@@ -60,7 +60,7 @@
clearField(passwd);
hightlight(passwd);
passwd.sendKeys(password);
- hightlight(signInButton);
+ // hightlight(signInButton);
if (withReturn) {
passwd.sendKeys(Keys.RETURN);
} else {
@@ -90,7 +90,7 @@
public void signIn(final String username, final String password, final boolean withReturn) {
assertIsDisconnected();
- hightlight(signInLink);
+ // hightlight(signInLink);
moveMouseTo(signInLink);
signInLink.click();
fillSigInInForm(username, password, withReturn);
Modified: trunk/src/test/java/cc/kune/selenium/login/RegisterPageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/RegisterPageObject.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/test/java/cc/kune/selenium/login/RegisterPageObject.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -23,6 +23,7 @@
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
+import cc.kune.core.client.auth.Register;
import cc.kune.core.client.auth.RegisterForm;
import cc.kune.core.client.auth.RegisterPanel;
import cc.kune.selenium.tools.SeleniumConstants;
@@ -39,6 +40,8 @@
private WebElement registerButton;
@FindBy(id = RegisterForm.NICK_FIELD + SeleniumConstants.INPUT)
private WebElement shortName;
+ @FindBy(id = SeleniumConstants.GWTDEV + Register.WELCOME_ID)
+ private WebElement welcome;
public RegisterPageObject() {
// i18n = new I18nHelper(LoginMessages.class);
@@ -66,4 +69,8 @@
}
}
+ public WebElement getWelcomeMsg() {
+ return welcome;
+ }
+
}
Modified: trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java 2011-09-27 13:13:59 UTC (rev 1537)
+++ trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java 2011-09-27 19:40:16 UTC (rev 1538)
@@ -30,15 +30,17 @@
final String email) {
// 15 chars, the limit, so we don't use shortName
final String prefix = getTempString();
- showSubtitle("User registration", "to get full access to this site");
+ showSubtitle("User registration", "to get full access to this site tools/contents");
login.createOne();
register.fillRegisterForm(prefix, prefix + longName, passwd, prefix + email, false);
login.assertIsConnectedAs(prefix);
sleep(1000);
entityHeader.waitForEntityTitle(prefix + longName);
- login.logout();
+ register.getWelcomeMsg().click();
+ chat.show();
+ sleep(3000);
+ // login.logout();
}
-
// @Test(dataProvider = "correctlogin")
// public void signIn(final String user, final String passwd) {
// login.assertIsDisconnected();
1
0
Author: vjrj_
Date: 2011-09-27 15:13:59 +0200 (Tue, 27 Sep 2011)
New Revision: 1537
Added:
trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java
Removed:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/
trunk/src/main/java/org/ourproject/kune/workspace/
trunk/src/test/java/org/ourproject/kune/platf/client/ui/
trunk/src/test/java/org/ourproject/kune/workspace/
Modified:
trunk/INSTALL
trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java
trunk/src/main/java/cc/kune/core/client/auth/SignInPanel.java
trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java
trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java
trunk/src/main/java/cc/kune/core/public/ws.css
trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java
trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
trunk/src/test/java/cc/kune/selenium/PageObject.java
trunk/src/test/java/cc/kune/selenium/SeleniumModule.java
trunk/src/test/java/cc/kune/selenium/login/AbstractLoginObject.java
trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java
trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java
trunk/src/test/java/cc/kune/selenium/login/RegisterPageObject.java
trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java
Log:
NEW - # 53: Add Selenium Framework testing
http://kune.ourproject.org/issues/ticket/53
CLOSED - # 129: Add some simple mail lib utility in serverside
http://kune.ourproject.org/issues/ticket/129
Modified: trunk/INSTALL
===================================================================
--- trunk/INSTALL 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/INSTALL 2011-09-27 13:13:59 UTC (rev 1537)
@@ -84,6 +84,10 @@
Install and run a openfire jabber server (see Appendix A for proper configuration of openfire).
+===Configure your SMTP server===
+
+See Appendix C for more info.
+
===Wave in a Box===
Follow "Federation configuration" from:
Modified: trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java 2011-09-27 13:13:59 UTC (rev 1537)
@@ -56,6 +56,12 @@
private static final int WIDTH_NOT_DEFINED = -1;
+ public static void hideCurrent() {
+ if (current != null) {
+ current.hide();
+ }
+ }
+
public static Tooltip to(final Widget widget, final String text) {
final Tooltip tip = new Tooltip();
tip.to(widget);
@@ -90,6 +96,7 @@
private Widget ofWidget;
private final Label textLabel;
private final TooltipTimers timers;
+
@UiField
InlineLabel title;
Modified: trunk/src/main/java/cc/kune/core/client/auth/SignInPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInPanel.java 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInPanel.java 2011-09-27 13:13:59 UTC (rev 1537)
@@ -20,6 +20,7 @@
package cc.kune.core.client.auth;
import cc.kune.common.client.notify.NotifyLevelImages;
+import cc.kune.common.client.tooltip.Tooltip;
import cc.kune.common.client.ui.MaskWidgetView;
import cc.kune.common.client.ui.dialogs.MessageToolbar;
import cc.kune.common.client.utils.OnAcceptCallback;
@@ -132,6 +133,7 @@
@Override
public void show() {
super.show();
+ Tooltip.hideCurrent();
KuneUiUtils.focusOnField(getNickname());
}
Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java 2011-09-27 13:13:59 UTC (rev 1537)
@@ -21,6 +21,7 @@
import cc.kune.common.client.notify.NotifyLevel;
import cc.kune.common.client.notify.NotifyLevelImages;
+import cc.kune.common.client.tooltip.Tooltip;
import cc.kune.common.client.ui.MaskWidgetView;
import cc.kune.common.client.ui.dialogs.BasicTopDialog;
import cc.kune.common.client.ui.dialogs.BasicTopDialog.Builder;
@@ -295,6 +296,7 @@
@Override
public void show() {
+ Tooltip.hideCurrent();
dialog.showCentered();
}
Modified: trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java 2011-09-27 13:13:59 UTC (rev 1537)
@@ -2,6 +2,7 @@
import cc.kune.common.client.utils.Base64Utils;
import cc.kune.common.client.utils.SimpleCallback;
+import cc.kune.common.client.utils.TextUtils;
import cc.kune.core.client.state.StateManager;
import com.google.gwt.event.shared.EventBus;
@@ -44,12 +45,19 @@
public void show(final String token) {
final String[] params = token.split("\\|");
+ final int len = params.length;
getView().setTitleText(new String(Base64Utils.fromBase64(params[0])));
- getView().setDescription(new String(Base64Utils.fromBase64(params[1])));
+ if (len > 1) {
+ getView().setDescription(new String(Base64Utils.fromBase64(params[1])));
+ }
getView().show(new SimpleCallback() {
@Override
public void onCallback() {
- stateManager.gotoHistoryToken(params[2]);
+ if (len > 2 && TextUtils.notEmpty(params[2])) {
+ stateManager.gotoHistoryToken(params[2]);
+ } else {
+ stateManager.gotoHistoryToken("");
+ }
}
});
}
Modified: trunk/src/main/java/cc/kune/core/public/ws.css
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.css 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/src/main/java/cc/kune/core/public/ws.css 2011-09-27 13:13:59 UTC (rev 1537)
@@ -1,4 +1,4 @@
-CHARSET "UTF-8 "; body {
+CHARSET "UTF-8 "; body {
background-color: transparent;
color: black;
font-family: 'Ubuntu', Arial;
@@ -944,7 +944,7 @@
border-color: #CCCCCC !important;
background: inherits !important;
kfilter: alpha(opacity =
- 60) !important;
+ 60) !important;
-moz-opacity: 0.60 !important;
-khtml-opacity: 0.60 !important;
opacity: 0.60 !important;
@@ -1230,7 +1230,7 @@
-moz-border-radius-bottomleft: 5px;
border-bottom-left-radius: 5px;
kfilter: alpha(opacity =
- 90);
+ 90);
-moz-opacity: 0.90;
-khtml-opacity: 0.90;
opacity: 0.90;
@@ -1520,4 +1520,10 @@
-webkit-border-top-left-radius: 5px;
-moz-border-radius-topleft: 5px;
border-top-left-radius: 5px;
-}
\ No newline at end of file
+}
+
+.k-outline {
+ -moz-outline-radius: 5px;
+ outline: #f90 solid 2px !important;
+ outline-offset: -2px !important;
+}
Modified: trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java 2011-09-27 13:13:59 UTC (rev 1537)
@@ -4,13 +4,12 @@
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.events.WebDriverEventListener;
-import org.testng.Assert;
public class CustomWebDriverEventListener implements WebDriverEventListener {
@Override
public void afterChangeValueOf(final WebElement element, final WebDriver driver) {
- sleep(200);
+ sleep(400);
}
@Override
@@ -34,7 +33,7 @@
@Override
public void afterNavigateTo(final String url, final WebDriver driver) {
- slow();
+ sleep(500);
}
@Override
@@ -56,7 +55,6 @@
@Override
public void beforeNavigateBack(final WebDriver driver) {
- ;
}
@Override
@@ -75,15 +73,11 @@
public void onException(final Throwable throwable, final WebDriver driver) {
}
- public void sleep(final int milliseconds) {
- try {
- Thread.sleep(milliseconds);
- } catch (final InterruptedException e) {
- Assert.fail("Exception in sleep method", e);
- }
+ private void sleep(final int milliseconds) {
+ SeleniumUtils.sleep(milliseconds);
}
private void slow() {
- sleep(500);
+ sleep(1000);
}
}
\ No newline at end of file
Modified: trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-09-27 13:13:59 UTC (rev 1537)
@@ -26,15 +26,12 @@
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.pagefactory.ElementLocatorFactory;
-import org.testng.Assert;
import org.testng.ITestContext;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.DataProvider;
-import cc.kune.core.client.auth.AnonUsersManager;
-import cc.kune.core.client.state.SiteTokens;
import cc.kune.core.client.state.TokenUtils;
import cc.kune.core.client.sub.SubtitlesWidget;
import cc.kune.core.shared.domain.utils.StateToken;
@@ -48,7 +45,7 @@
public class KuneSeleniumDefaults {
private static final Log LOG = LogFactory.getLog(KuneSeleniumDefaults.class);
- public static boolean mustCloseFinally = true;
+ public static boolean mustCloseFinally = false;
private final String baseUrl;
protected final EntityHeaderPageObject entityHeader;
private final Injector injector;
@@ -57,9 +54,8 @@
private final WebDriver webdriver;
public KuneSeleniumDefaults() {
- baseUrl = "http://kune.beta.iepala.es/ws/?locale=en#";
- // baseUrl =
- // "http://127.0.0.1:8888/ws/?locale=es&log_level=INFO&gwt.codesvr=127.0.0.1:99…";
+ // baseUrl = "http://kune.beta.iepala.es/ws/?locale=en#";
+ baseUrl = "http://127.0.0.1:8888/?locale=es&log_level=INFO&gwt.codesvr=127.0.0.1:9997#";
injector = Guice.createInjector(new SeleniumModule());
webdriver = injector.getInstance(WebDriver.class);
login = injector.getInstance(LoginPageObject.class);
@@ -76,7 +72,6 @@
resize();
LOG.info("Going home");
home();
- webdriver.findElement(By.id(SeleniumConstants.GWTDEV + AnonUsersManager.ANON_MESSAGE_CLOSE_ICON)).click();
}
@BeforeMethod
@@ -134,6 +129,7 @@
public void home() {
assert baseUrl != null;
webdriver.get(baseUrl);
+ login.getAnonMsg().click();
}
public void open(final String url) {
@@ -146,17 +142,22 @@
js.executeScript("window.resizeTo(840,770); window.moveTo(0,0);");
}
+ public void showSubtitle(final String title) {
+ showSubtitle(title, "", "");
+ }
+
+ public void showSubtitle(final String title, final String description) {
+ showSubtitle(title, description, "");
+ }
+
public void showSubtitle(final String title, final String description, final String token) {
- gotoToken(TokenUtils.subtitle("User sign in", "", SiteTokens.SIGNIN));
+ gotoToken(TokenUtils.subtitle(title, description, token));
sleep(3000);
webdriver.findElement(By.id(SeleniumConstants.GWTDEV + SubtitlesWidget.SUBTITLE_MANAGER_ID)).click();
}
public void sleep(final int milliseconds) {
- try {
- Thread.sleep(milliseconds);
- } catch (final InterruptedException e) {
- Assert.fail("Exception in sleep method", e);
- }
+ SeleniumUtils.sleep(milliseconds);
}
+
}
Modified: trunk/src/test/java/cc/kune/selenium/PageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/PageObject.java 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/src/test/java/cc/kune/selenium/PageObject.java 2011-09-27 13:13:59 UTC (rev 1537)
@@ -25,6 +25,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.openqa.selenium.By;
+import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Keys;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
@@ -85,6 +86,15 @@
return webdriver.getWindowHandles();
}
+ public void hightlight(final WebElement element) {
+ final JavascriptExecutor js = (JavascriptExecutor) webdriver;
+ final String script = "window.jQuery('#" + element.getAttribute("id") + "').addClass('k-outline');"
+ + "setTimeout('window.jQuery(\"#" + element.getAttribute("id")
+ + "\").removeClass(\"k-outline\")', 700);";
+ // LOG.info("High: " + script);
+ js.executeScript(script);
+ }
+
public boolean isElementPresent(final String id) {
final Wait<WebDriver> wait = new WebDriverWait(webdriver, 5);
final WebElement element = wait.until(visibilityOfElementLocated(By.id(id)));
@@ -112,6 +122,7 @@
public void moveMouseTo(final WebElement element) {
final Actions actions = new Actions(webdriver);
actions.moveToElement(element);
+ sleep(1000);
}
public Navigation navigate() {
@@ -122,6 +133,10 @@
webdriver.quit();
}
+ public void sleep(final int milliseconds) {
+ SeleniumUtils.sleep(milliseconds);
+ }
+
public TargetLocator switchTo() {
return webdriver.switchTo();
}
Modified: trunk/src/test/java/cc/kune/selenium/SeleniumModule.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/SeleniumModule.java 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/src/test/java/cc/kune/selenium/SeleniumModule.java 2011-09-27 13:13:59 UTC (rev 1537)
@@ -46,9 +46,8 @@
@Override
protected void configure() {
-
- final RemoteWebDriver driver = createChromeDriver();
- // final WebDriver driver = creatFirefoxDriver();
+ // final RemoteWebDriver driver = createChromeDriver();
+ final WebDriver driver = creatFirefoxDriver();
final EventFiringWebDriver wrap = new EventFiringWebDriver(driver);
wrap.register(new CustomWebDriverEventListener());
@@ -81,9 +80,9 @@
private FirefoxDriver creatFirefoxDriver() {
// http://code.google.com/p/selenium/wiki/FirefoxDriver
+ System.setProperty("webdriver.firefox.useExisting", "true");
final ProfilesIni allProfiles = new ProfilesIni();
final FirefoxProfile profile = allProfiles.getProfile(SeleniumConstants.FIREFOX_PROFILE_NAME);
- // System.setProperty("webdriver.firefox.useExisting", "true");
// final FirefoxProfile profile = allProfiles.getProfile("76tp2vh0.ff5");
final FirefoxDriver driver = new FirefoxDriver(profile);
return driver;
Added: trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java (rev 0)
+++ trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java 2011-09-27 13:13:59 UTC (rev 1537)
@@ -0,0 +1,15 @@
+package cc.kune.selenium;
+
+import org.testng.Assert;
+
+public class SeleniumUtils {
+
+ public static void sleep(final int milliseconds) {
+ try {
+ Thread.sleep(milliseconds);
+ } catch (final InterruptedException e) {
+ Assert.fail("Exception in sleep method", e);
+ }
+ }
+
+}
Modified: trunk/src/test/java/cc/kune/selenium/login/AbstractLoginObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/AbstractLoginObject.java 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/src/test/java/cc/kune/selenium/login/AbstractLoginObject.java 2011-09-27 13:13:59 UTC (rev 1537)
@@ -30,6 +30,7 @@
}
public void logout() {
+ hightlight(signOutLink);
signOutLink.click();
assertIsDisconnected();
}
Modified: trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/src/test/java/cc/kune/selenium/login/LoginPageObject.java 2011-09-27 13:13:59 UTC (rev 1537)
@@ -23,12 +23,15 @@
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
+import cc.kune.core.client.auth.AnonUsersManager;
import cc.kune.core.client.auth.SignInForm;
import cc.kune.core.client.auth.SignInPanel;
import cc.kune.selenium.tools.SeleniumConstants;
public class LoginPageObject extends AbstractLoginObject {
+ @FindBy(id = SeleniumConstants.GWTDEV + AnonUsersManager.ANON_MESSAGE_CLOSE_ICON)
+ private WebElement anonWelcome;
@FindBy(id = SeleniumConstants.GWTDEV + SignInPanel.CREATE_ONE)
protected WebElement createOneLink;
@FindBy(id = SignInForm.PASSWORD_FIELD_ID + SeleniumConstants.INPUT)
@@ -42,11 +45,22 @@
// i18n = new I18nHelper(LoginMessages.class);
}
+ public void createOne() {
+ assertIsDisconnected();
+ hightlight(signInLink);
+ signInLink.click();
+ hightlight(createOneLink);
+ createOneLink.click();
+ }
+
public void fillSigInInForm(final String username, final String password, final boolean withReturn) {
clearField(user);
+ hightlight(user);
user.sendKeys(username);
clearField(passwd);
+ hightlight(passwd);
passwd.sendKeys(password);
+ hightlight(signInButton);
if (withReturn) {
passwd.sendKeys(Keys.RETURN);
} else {
@@ -54,6 +68,10 @@
}
}
+ public WebElement getAnonMsg() {
+ return anonWelcome;
+ }
+
public WebElement getHeader() {
return signInLink;
}
@@ -62,19 +80,24 @@
return getHeader();
}
+ public void high() {
+ hightlight(signInLink);
+ }
+
public void signIn(final String username, final String password) {
- signIn(username, password, true);
+ signIn(username, password, false);
}
public void signIn(final String username, final String password, final boolean withReturn) {
assertIsDisconnected();
+ hightlight(signInLink);
moveMouseTo(signInLink);
signInLink.click();
fillSigInInForm(username, password, withReturn);
}
public void signInDefUser() {
- signIn(SeleniumConstants.USER_SHORNAME, SeleniumConstants.USER_PASSWD, false);
+ signIn(SeleniumConstants.USER_SHORNAME, SeleniumConstants.USER_PASSWD, true);
}
}
Modified: trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java 2011-09-27 13:13:59 UTC (rev 1537)
@@ -21,11 +21,15 @@
import org.testng.annotations.Test;
-import cc.kune.core.client.state.SiteTokens;
import cc.kune.selenium.KuneSeleniumTest;
public class LoginSeleniumTests extends KuneSeleniumTest {
+ @Test
+ public void high() {
+ login.high();
+ }
+
@Test(dataProvider = "correctlogin")
public void severalsSignInSingOut(final String user, final String passwd) {
login.assertIsDisconnected();
@@ -43,6 +47,7 @@
@Test(dataProvider = "correctlogin")
public void signIn(final String user, final String passwd) {
login.assertIsDisconnected();
+ showSubtitle("User sign in", "to get full access to this site");
login.signIn(user, passwd);
login.assertIsConnectedAs(user);
login.logout();
@@ -59,7 +64,6 @@
@Test(dataProvider = "correctlogin")
public void signInWithToken(final String user, final String passwd) {
login.assertIsDisconnected();
- showSubtitle("User sign in", "", SiteTokens.SIGNIN);
login.fillSigInInForm(user, passwd, true);
login.assertIsConnectedAs(user);
login.logout();
Modified: trunk/src/test/java/cc/kune/selenium/login/RegisterPageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/RegisterPageObject.java 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/src/test/java/cc/kune/selenium/login/RegisterPageObject.java 2011-09-27 13:13:59 UTC (rev 1537)
@@ -47,13 +47,18 @@
public void fillRegisterForm(final String nick, final String name, final String pass, final String em,
final boolean withReturn) {
clearField(shortName);
+ hightlight(shortName);
shortName.sendKeys(nick);
clearField(longName);
+ hightlight(longName);
longName.sendKeys(name);
clearField(passwd);
+ hightlight(passwd);
passwd.sendKeys(pass);
clearField(email);
+ hightlight(email);
email.sendKeys(em);
+ hightlight(registerButton);
if (withReturn) {
email.sendKeys(Keys.RETURN);
} else {
Modified: trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java 2011-09-26 22:39:06 UTC (rev 1536)
+++ trunk/src/test/java/cc/kune/selenium/login/RegisterSeleniumTests.java 2011-09-27 13:13:59 UTC (rev 1537)
@@ -30,9 +30,8 @@
final String email) {
// 15 chars, the limit, so we don't use shortName
final String prefix = getTempString();
- login.assertIsDisconnected();
- login.signInLink.click();
- login.createOneLink.click();
+ showSubtitle("User registration", "to get full access to this site");
+ login.createOne();
register.fillRegisterForm(prefix, prefix + longName, passwd, prefix + email, false);
login.assertIsConnectedAs(prefix);
sleep(1000);
1
0
r1536 - in trunk: . src/main/java/cc/kune/core/server src/main/java/cc/kune/core/server/mail src/main/java/cc/kune/core/server/manager/impl src/main/java/cc/kune/core/server/properties src/main/resources
by Vicente J. Ruiz Jurado 26 Sep '11
by Vicente J. Ruiz Jurado 26 Sep '11
26 Sep '11
Author: vjrj_
Date: 2011-09-27 00:39:06 +0200 (Tue, 27 Sep 2011)
New Revision: 1536
Added:
trunk/src/main/java/cc/kune/core/server/mail/MailService.java
trunk/src/main/java/cc/kune/core/server/mail/MailServiceDefault.java
Removed:
trunk/src/main/java/cc/kune/core/server/mail/MailManager.java
trunk/src/main/java/cc/kune/core/server/mail/MailManagerDefault.java
Modified:
trunk/.classpath
trunk/INSTALL
trunk/pom.xml
trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java
trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
trunk/src/main/java/cc/kune/core/server/properties/KuneProperties.java
trunk/src/main/resources/kune.properties
Log:
NEW - # 128: Remove /ws/ prefix in kune URL
http://kune.ourproject.org/issues/ticket/128
CLOSED - # 129: Add some simple mail lib utility in serverside
http://kune.ourproject.org/issues/ticket/129
Modified: trunk/.classpath
===================================================================
--- trunk/.classpath 2011-09-26 20:24:14 UTC (rev 1535)
+++ trunk/.classpath 2011-09-26 22:39:06 UTC (rev 1536)
@@ -3,13 +3,14 @@
<classpathentry kind="src" path="src/main/java" including="**/*.java"/>
<classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
<classpathentry kind="output" path="target/kune-0.1.0-SNAPSHOT/WEB-INF/classes"/>
+ <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar" sourcepath="M2_REPO/javax/activation/activation/1.1/activation-1.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" sourcepath="M2_REPO/javax/inject/javax.inject/1/javax.inject-1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.1/jta-1.1.jar" sourcepath="M2_REPO/javax/transaction/jta/1.1/jta-1.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/mail/mail/1.4.4/mail-1.4.4.jar" sourcepath="M2_REPO/javax/mail/mail/1.4.4/mail-1.4.4-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar" sourcepath="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar" sourcepath="M2_REPO/javax/servlet/servlet-api/2.5/servlet-api-2.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar" sourcepath="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" sourcepath="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/appengine/appengine-api-1.0-sdk/1.3.1/appengine-api-1.0-sdk-1.3.1.jar"/>
<classpathentry kind="var" path="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/>
<classpathentry kind="var" path="M2_REPO/org/waveprotocol/box/0.3.2/box-0.3.2.jar"/>
<classpathentry kind="var" path="M2_REPO/org/waveprotocol/box-src/0.3.2/box-src-0.3.2.jar"/>
@@ -34,7 +35,6 @@
<classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/waveprotocol/communication-src/0.3.2/communication-src-0.3.2.jar"/>
<classpathentry kind="var" path="M2_REPO/org/waveprotocol/concurrencycontrol-src/0.3.2/concurrencycontrol-src-0.3.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/net/sourceforge/htmlunit/crawl_htmlunit/r5662-gae/crawl_htmlunit-r5662-gae.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sourceforge/cssparser/cssparser/0.9.5/cssparser-0.9.5.jar" sourcepath="M2_REPO/net/sourceforge/cssparser/cssparser/0.9.5/cssparser-0.9.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar" sourcepath="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sf/dozer/dozer/4.0/dozer-4.0.jar" sourcepath="M2_REPO/net/sf/dozer/dozer/4.0/dozer-4.0-sources.jar"/>
@@ -59,7 +59,6 @@
<classpathentry kind="var" path="M2_REPO/com/allen_sauer/gwt/voices/gwt-voices/gwt-voices/2.0.0/gwt-voices-2.0.0.jar"/>
<classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-all/0.5/gwtp-all-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-all/0.5/gwtp-all-0.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-clients-common/0.5/gwtp-clients-common-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-clients-common/0.5/gwtp-clients-common-0.5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-crawler/0.5/gwtp-crawler-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-crawler/0.5/gwtp-crawler-0.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-dispatch-client/0.5/gwtp-dispatch-client-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-dispatch-client/0.5/gwtp-dispatch-client-0.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-dispatch-server/0.5/gwtp-dispatch-server-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-dispatch-server/0.5/gwtp-dispatch-server-0.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-dispatch-shared/0.5/gwtp-dispatch-shared-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-dispatch-shared/0.5/gwtp-dispatch-shared-0.5-sources.jar"/>
Modified: trunk/INSTALL
===================================================================
--- trunk/INSTALL 2011-09-26 20:24:14 UTC (rev 1535)
+++ trunk/INSTALL 2011-09-26 22:39:06 UTC (rev 1536)
@@ -289,3 +289,16 @@
Allow from all
</Location>
</VirtualHost>
+
+==Appendix C: Configure your SMTP mail server==
+
+You should configure a SMTP server for use by Kune. See kune.site.smtp.* in kune.properties and check that your email system works propertly. For instance test something like:
+
+ echo "Bests," | mailx -s "Testing mail in kune instalation" PUT_HERE@YOUR_EMAIL # or something similar
+
+http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#ProtocolSMTP
+http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#JavaMailSending
+
+And:
+http://javamail.kenai.com/nonav/javadocs/com/sun/mail/smtp/package-summary.html
+for more specific configuration parameters that maybe you need with your smtp server.
\ No newline at end of file
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-09-26 20:24:14 UTC (rev 1535)
+++ trunk/pom.xml 2011-09-26 22:39:06 UTC (rev 1536)
@@ -235,6 +235,14 @@
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>com.gwtplatform</groupId>
+ <artifactId>gwtp-crawler-service</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.gwtplatform</groupId>
+ <artifactId>gwtp-crawler</artifactId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
@@ -638,6 +646,12 @@
<version>0.6.3-compat</version>
</dependency>
<!-- end gwtupload -->
+ <!-- others -->
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ <version>1.4.4</version>
+ </dependency>
</dependencies>
<!-- <dependency> -->
@@ -958,7 +972,8 @@
</modules>
<copyWebapp>true</copyWebapp>
<compileReport>false</compileReport>
- <localWorkers>1</localWorkers><!-- Using all workers can temporarily hang the mouse and isn't much faster -->
+ <localWorkers>1</localWorkers><!-- Using all workers can temporarily
+ hang the mouse and isn't much faster -->
<extraJvmArgs>-Xmx1024m</extraJvmArgs>
</configuration>
<executions>
Modified: trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2011-09-26 20:24:14 UTC (rev 1535)
+++ trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2011-09-26 22:39:06 UTC (rev 1536)
@@ -49,6 +49,8 @@
import cc.kune.core.server.content.CreationServiceDefault;
import cc.kune.core.server.content.XMLActionReader;
import cc.kune.core.server.i18n.I18nTranslationServiceDefault;
+import cc.kune.core.server.mail.MailService;
+import cc.kune.core.server.mail.MailServiceDefault;
import cc.kune.core.server.manager.ExtMediaDescripManager;
import cc.kune.core.server.manager.FileManager;
import cc.kune.core.server.manager.GroupManager;
@@ -158,6 +160,7 @@
bind(StateService.class).to(StateServiceDefault.class);
bind(I18nTranslationService.class).to(I18nTranslationServiceDefault.class);
bind(KuneWaveService.class).to(KuneWaveServiceDefault.class);
+ bind(MailService.class).to(MailServiceDefault.class);
bind(XMLActionReader.class);
}
Deleted: trunk/src/main/java/cc/kune/core/server/mail/MailManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/mail/MailManager.java 2011-09-26 20:24:14 UTC (rev 1535)
+++ trunk/src/main/java/cc/kune/core/server/mail/MailManager.java 2011-09-26 22:39:06 UTC (rev 1536)
@@ -1,35 +0,0 @@
-package cc.kune.core.server.mail;
-
-import cc.kune.core.server.mail.MailManagerDefault.FormatedString;
-
-public interface MailManager {
-
- /**
- * @param subject
- * the email subject
- * @param body
- * the body of the email in html format
- * @param from
- * the sender
- * @param to
- * the recipients
- * @return true if sender (also we can change this interface if it's more
- * useful to return other thing)
- */
- boolean sendHtml(FormatedString subject, FormatedString body, String from, String... to);
-
- /**
- * @param subject
- * the email subject
- * @param body
- * the body of the email in text format
- * @param from
- * the sender
- * @param to
- * the recipient
- * @return true if sender (also we can change this interface if it's more
- * useful to return other thing)
- */
- boolean sendPlain(FormatedString subject, FormatedString body, String from, String... to);
-
-}
Deleted: trunk/src/main/java/cc/kune/core/server/mail/MailManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/mail/MailManagerDefault.java 2011-09-26 20:24:14 UTC (rev 1535)
+++ trunk/src/main/java/cc/kune/core/server/mail/MailManagerDefault.java 2011-09-26 22:39:06 UTC (rev 1536)
@@ -1,34 +0,0 @@
-package cc.kune.core.server.mail;
-
-public class MailManagerDefault implements MailManager {
-
- public static class FormatedString {
-
- private final String string;
-
- public FormatedString(final String template, final Object... args) {
- string = String.format(template, args);
- }
-
- public String getString() {
- return string;
- }
- }
-
- public MailManagerDefault(final String mailServer, final String otherConfigurableMailServerParams) {
- }
-
- @Override
- public boolean sendHtml(final FormatedString subject, final FormatedString body, final String from,
- final String... to) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean sendPlain(final FormatedString subject, final FormatedString body, final String from,
- final String... to) {
- // TODO Auto-generated method stub
- return false;
- }
-}
Copied: trunk/src/main/java/cc/kune/core/server/mail/MailService.java (from rev 1534, trunk/src/main/java/cc/kune/core/server/mail/MailManager.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/server/mail/MailService.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/mail/MailService.java 2011-09-26 22:39:06 UTC (rev 1536)
@@ -0,0 +1,60 @@
+package cc.kune.core.server.mail;
+
+import cc.kune.core.server.mail.MailServiceDefault.FormatedString;
+
+public interface MailService {
+
+ /**
+ * Sends html email with default site "from"
+ *
+ * @param subject
+ * the email subject
+ * @param body
+ * the body of the email in html format
+ * @param to
+ * the recipient
+ */
+ void sendHtml(FormatedString subject, FormatedString body, String to);
+
+ /**
+ * Sends html email
+ *
+ * @param subject
+ * the email subject
+ * @param body
+ * the body of the email in html format
+ * @param from
+ * the sender
+ * @param tos
+ * the recipients
+ */
+ void sendHtml(FormatedString subject, FormatedString body, String from, String... tos);
+
+ /**
+ *
+ * Sends email with default site "from"
+ *
+ * @param subject
+ * the email subject
+ * @param body
+ * the body of the email in text format
+ * @param to
+ * the recipient
+ */
+ void sendPlain(FormatedString subject, FormatedString body, String to);
+
+ /**
+ * Sends plain email
+ *
+ * @param subject
+ * the email subject
+ * @param body
+ * the body of the email in text format
+ * @param from
+ * the sender
+ * @param tos
+ * the recipients
+ */
+ void sendPlain(FormatedString subject, FormatedString body, String from, String... tos);
+
+}
Copied: trunk/src/main/java/cc/kune/core/server/mail/MailServiceDefault.java (from rev 1534, trunk/src/main/java/cc/kune/core/server/mail/MailManagerDefault.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/server/mail/MailServiceDefault.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/mail/MailServiceDefault.java 2011-09-26 22:39:06 UTC (rev 1536)
@@ -0,0 +1,106 @@
+package cc.kune.core.server.mail;
+
+import java.util.Properties;
+
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.Transport;
+import javax.mail.internet.AddressException;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import cc.kune.core.client.errors.DefaultException;
+import cc.kune.core.server.properties.KuneProperties;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class MailServiceDefault implements MailService {
+
+ public static class FormatedString {
+
+ private final String string;
+
+ public FormatedString(final String template, final Object... args) {
+ string = String.format(template, args);
+ }
+
+ public String getString() {
+ return string;
+ }
+ }
+
+ Log log = LogFactory.getLog(MailServiceDefault.class);
+ private final Properties props;
+ private final String smtpDefaultFrom;
+ private final boolean smtpSkip;
+
+ @Inject
+ public MailServiceDefault(final KuneProperties kuneProperties) {
+ final String smtpServer = kuneProperties.get(KuneProperties.SITE_SMTP_HOST);
+ smtpDefaultFrom = kuneProperties.get(KuneProperties.SITE_SMTP_DEFAULT_FROM);
+ smtpSkip = kuneProperties.getBoolean(KuneProperties.SITE_SMTP_SKIP);
+ props = System.getProperties();
+ props.put("mail.smtp.host", smtpServer);
+ }
+
+ private void send(final FormatedString subject, final FormatedString body, final boolean isHtml,
+ final String from, final String... tos) {
+ if (smtpSkip) {
+ return;
+ }
+
+ // Get session
+ final Session session = Session.getDefaultInstance(props, null);
+
+ // Define message
+ final MimeMessage message = new MimeMessage(session);
+ try {
+ message.setFrom(new InternetAddress(from));
+ for (final String to : tos) {
+ message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
+ }
+ final String formatedSubject = subject.getString();
+ message.setSubject(formatedSubject);
+ final String formatedBody = body.getString();
+ if (isHtml) {
+ message.setContent(formatedBody, "text/html");
+ } else {
+ message.setText(formatedBody);
+ }
+ // Send message
+ Transport.send(message);
+ } catch (final AddressException e) {
+ } catch (final MessagingException e) {
+ log.error("Error sending the email", e);
+ throw new DefaultException("Error sending an email");
+ }
+ }
+
+ @Override
+ public void sendHtml(final FormatedString subject, final FormatedString body, final String to) {
+ send(subject, body, true, smtpDefaultFrom, to);
+ }
+
+ @Override
+ public void sendHtml(final FormatedString subject, final FormatedString body, final String from,
+ final String... tos) {
+ send(subject, body, true, from, tos);
+ }
+
+ @Override
+ public void sendPlain(final FormatedString subject, final FormatedString body, final String to) {
+ send(subject, body, false, smtpDefaultFrom, to);
+ }
+
+ @Override
+ public void sendPlain(final FormatedString subject, final FormatedString body, final String from,
+ final String... tos) {
+ send(subject, body, false, from, tos);
+ }
+}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2011-09-26 20:24:14 UTC (rev 1535)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2011-09-26 22:39:06 UTC (rev 1536)
@@ -44,6 +44,8 @@
import cc.kune.core.client.errors.GroupShortNameInUseException;
import cc.kune.core.client.errors.I18nNotFoundException;
import cc.kune.core.client.errors.UserRegistrationException;
+import cc.kune.core.server.mail.MailService;
+import cc.kune.core.server.mail.MailServiceDefault.FormatedString;
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.manager.I18nCountryManager;
import cc.kune.core.server.manager.I18nLanguageManager;
@@ -80,6 +82,7 @@
private final I18nTranslationService i18n;
private final KuneWaveService kuneWaveManager;
private final I18nLanguageManager languageManager;
+ private final MailService mailService;
private final ParticipantUtils participantUtils;
private final KuneBasicProperties properties;
private final UserFinder userFinder;
@@ -94,7 +97,7 @@
final I18nTranslationService i18n, final CustomUserRegistrationServlet waveUserRegister,
final AccountStore waveAccountStore, final KuneWaveService kuneWaveManager,
final ParticipantUtils participantUtils, final KuneBasicProperties properties,
- final GroupManager groupManager) {
+ final GroupManager groupManager, final MailService mailService) {
super(provider, User.class);
this.userFinder = finder;
this.languageManager = languageManager;
@@ -108,6 +111,7 @@
this.participantUtils = participantUtils;
this.properties = properties;
this.groupManager = groupManager;
+ this.mailService = mailService;
}
private void checkIfEmailAreInUse(final String email) {
@@ -174,6 +178,7 @@
// Is this necessary? try to remove (used when we were setting the def
// content
// contentManager.save(userGroup.getDefaultContent());
+ mailService.sendPlain(new FormatedString("Welcome", ""), new FormatedString("welcome"), email);
return user;
} catch (final RuntimeException e) {
try {
Modified: trunk/src/main/java/cc/kune/core/server/properties/KuneProperties.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/properties/KuneProperties.java 2011-09-26 20:24:14 UTC (rev 1535)
+++ trunk/src/main/java/cc/kune/core/server/properties/KuneProperties.java 2011-09-26 22:39:06 UTC (rev 1536)
@@ -49,6 +49,9 @@
String SITE_LOGO_URL = "kune.sitelogourl";
String SITE_NAME = "kune.default.site.name";
String SITE_SHORTNAME = "kune.default.site.shortName";
+ String SITE_SMTP_DEFAULT_FROM = "kune.site.smtp.defaultfrom";
+ String SITE_SMTP_HOST = "kune.site.smtp.host";
+ String SITE_SMTP_SKIP = "kune.site.smtp.skip";
String SITE_URL = "kune.siteurl";
String SITE_USER_AVAILABLE_TOOLS = "kune.tools.userSiteAvailableTools";
String SITE_USER_REGIST_ENABLED_TOOLS = "kune.tools.userRegisEnabledTools";
Modified: trunk/src/main/resources/kune.properties
===================================================================
--- trunk/src/main/resources/kune.properties 2011-09-26 20:24:14 UTC (rev 1535)
+++ trunk/src/main/resources/kune.properties 2011-09-26 22:39:06 UTC (rev 1536)
@@ -12,6 +12,12 @@
kune.default.site.shortName = site
kune.site.domain = localhost
+# Email
+kune.site.smtp.host = localhost
+kune.site.smtp.defaultfrom = noreply@localhost
+# If we should avoid the use of smtp (use only for avoid emails during development)
+kune.site.smtp.skip = true
+
### licenses
kune.default.license = by-sa-v3.0
1
0
Author: vjrj_
Date: 2011-09-26 22:24:14 +0200 (Mon, 26 Sep 2011)
New Revision: 1535
Added:
trunk/src/main/java/cc/kune/core/shared/FileConstants.java
trunk/src/main/webapp/static/
trunk/src/main/webapp/ws.html
Removed:
trunk/src/main/java/cc/kune/core/client/services/FileConstants.java
trunk/src/main/java/cc/kune/core/public/ws.html
trunk/src/main/java/cc/kune/wave/public/static/
trunk/src/main/java/org/ourproject/kune/gallery/
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/
trunk/src/main/java/org/ourproject/kune/workspace/client/
Modified:
trunk/script/kune client -no-server.launch
trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java
trunk/src/main/java/cc/kune/common/client/utils/TextUtils.java
trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants.properties
trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java
trunk/src/main/java/cc/kune/core/client/sitebar/AboutKuneDialog.ui.xml
trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
trunk/src/main/java/cc/kune/core/client/state/TokenUtils.java
trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java
trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java
trunk/src/main/java/cc/kune/core/client/ui/DefaultFormUtils.java
trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java
trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
trunk/src/main/java/cc/kune/core/server/manager/file/EntityBackgroundDownloadManager.java
trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java
trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoUploadManager.java
trunk/src/main/java/cc/kune/core/server/manager/file/FileDownloadManager.java
trunk/src/main/java/cc/kune/core/server/manager/file/FileGwtUploadAbstractServlet.java
trunk/src/main/java/cc/kune/core/server/manager/file/FileUploadManagerAbstract.java
trunk/src/main/java/cc/kune/core/server/manager/file/UserLogoDownloadManager.java
trunk/src/main/java/cc/kune/core/shared/SearcherConstants.java
trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslateRecomendPanel.java
trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPanel.java
trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityUploaderForm.java
trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptLogoPanel.java
trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptLogoPanel.java
trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePanel.java
trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePanel.java
trunk/src/main/java/cc/kune/msgs/client/UserMessage.ui.xml
trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java
trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java
trunk/src/main/resources/kune.properties
trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java
trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
trunk/src/test/java/cc/kune/selenium/SeleniumModule.java
trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java
Log:
NEW - # 128: Remove /ws/ prefix in kune URL
http://kune.ourproject.org/issues/ticket/128
NEW - # 81: Minor CSS issues in chrommium
http://kune.ourproject.org/issues/ticket/81
Modified: trunk/script/kune client -no-server.launch
===================================================================
--- trunk/script/kune client -no-server.launch 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/script/kune client -no-server.launch 2011-09-26 20:24:14 UTC (rev 1535)
@@ -7,7 +7,7 @@
<listAttribute key="com.google.gwt.eclipse.core.ENTRY_POINT_MODULES">
<listEntry value="cc.kune.Kune"/>
</listAttribute>
-<stringAttribute key="com.google.gwt.eclipse.core.URL" value="/ws/?locale=en&log_level=INFO"/>
+<stringAttribute key="com.google.gwt.eclipse.core.URL" value="/?locale=en&log_level=INFO"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/kune"/>
</listAttribute>
@@ -20,7 +20,7 @@
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="com.google.gwt.eclipse.core.moduleClasspathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.DevMode"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-war /home/vjrj/proyectos/dev/kune/trunk/target/kune-0.1.0-SNAPSHOT -startupUrl /ws/?locale=en&log_level=INFO -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort 9997 cc.kune.Kune"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-war /home/vjrj/proyectos/dev/kune/trunk/target/kune-0.1.0-SNAPSHOT -startupUrl /?locale=en&log_level=INFO -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort 9997 cc.kune.Kune"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="kune"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx512m"/>
</launchConfiguration>
Modified: trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -170,10 +170,6 @@
Tooltip.current.hide();
}
Tooltip.current = this;
- Tooltip.this.showAt(TooltipPositionCalculator.calculate(Window.getClientWidth(),
- Window.getClientHeight(), ofWidget.getAbsoluteLeft(), ofWidget.getAbsoluteTop(),
- ofWidget.getOffsetWidth(), ofWidget.getOffsetHeight(), Tooltip.this.getWidth(),
- Tooltip.this.getHeight()));
if (width != WIDTH_NOT_DEFINED) {
tooltip.getElement().getStyle().setWidth(width, Unit.PX);
} else if (tooltip.getOffsetWidth() > 430) {
@@ -181,9 +177,17 @@
} else {
tooltip.getElement().getStyle().clearWidth();
}
+ showAt();
}
}
+ private void showAt() {
+ Tooltip.this.showAt(TooltipPositionCalculator.calculate(Window.getClientWidth(),
+ Window.getClientHeight(), ofWidget.getAbsoluteLeft(), ofWidget.getAbsoluteTop(),
+ ofWidget.getOffsetWidth(), ofWidget.getOffsetHeight(), Tooltip.this.getWidth(),
+ Tooltip.this.getHeight()));
+ }
+
protected void showAt(final TooltipPosition position) {
this.setPopupPosition(position.getLeft(), position.getTop());
switch (position.getArrowPosition()) {
Modified: trunk/src/main/java/cc/kune/common/client/utils/TextUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/utils/TextUtils.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/common/client/utils/TextUtils.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -166,6 +166,7 @@
// text = text.replaceAll("\'", "'");
result = result.replaceAll("<", "<");
result = result.replaceAll(">", ">");
+ result = result.replaceAll("—", "—");
}
return result;
}
@@ -245,6 +246,7 @@
result = result.replaceAll("'", "\'");
result = result.replaceAll("<", "<");
result = result.replaceAll(">", ">");
+ result = result.replaceAll("—", "—");
return result;
}
Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -201,7 +201,6 @@
@Override
public void execute() {
stateManager.setRetrievedStateAndGo(state);
- NotifyUser.info("Test", true);
groupOptions.showTooltip();
}
});
Modified: trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants.properties
===================================================================
--- trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants.properties 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants.properties 2011-09-26 20:24:14 UTC (rev 1535)
@@ -201,7 +201,7 @@
selectACreativeCommonsLicenseRecommendedForCulturalWorks = Select a Creative Commons license (recommended for cultural works)
otherKindOfLicenses = Other kind of licenses
useTheGnuLicensesRecommendedForFreeSoftwareWorksAndOtherKindOfLicenses = Use the GNU licenses (recommended for free software works) and other kind of licenses
-withACreativeCommonsLicenseYouKeepYourCopyrightButAllowPeopleToCopyAndDistributeYourWorkProvidedThey = With a Creative Commons license, you keep your copyright but allow people to copy and distribute your work provided they give you credit � and only on the conditions you specify here. What do you want to do?
+withACreativeCommonsLicenseYouKeepYourCopyrightButAllowPeopleToCopyAndDistributeYourWorkProvidedThey = With a Creative Commons license, you keep your copyright but allow people to copy and distribute your work provided they give you credit — and only on the conditions you specify here. What do you want to do?
allowAnyUsesOfYourWorkIncludingCommercial = Allow any uses of your work, including commercial?
allowModificationsOfYourWork = Allow modifications of your work?
yes = Yes
@@ -211,7 +211,7 @@
theLicensorPermitsOthersToCopyDistributeDisplayAndPerformTheWorkAsWellAsMakeDerivativeWorksBasedOnIt = The licensor permits others to copy, distribute, display and perform the work, as well as make derivative works based on it
yesAsLongAsOtherShareAlike = Yes, as long as other share alike
theLicensorPermitsOthersToDistributeDerivativeWorksOnlyUnderTheSameLicenseOrOneCompatibleWithTheOneT = The licensor permits others to distribute derivative works only under the same license or one compatible with the one that governs the licensor's work
-theLicensorPermitsOthersToCopyDistributeDisplayAndPerformOnlyUnalteredCopiesOfTheWorkNotDerivativeWo = The licensor permits others to copy, distribute, display and perform only unaltered copies of the work � not derivative works based on it
+theLicensorPermitsOthersToCopyDistributeDisplayAndPerformOnlyUnalteredCopiesOfTheWorkNotDerivativeWo = The licensor permits others to copy, distribute, display and perform only unaltered copies of the work — not derivative works based on it
thisIsACopyleftLicense = This is a copyleft license.
thisIsNotACopyleftLicense = This is not a copyleft license.
thisIsAppropriateForFreeCulturalWorks = This is appropriate for free cultural works.
Deleted: trunk/src/main/java/cc/kune/core/client/services/FileConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/services/FileConstants.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/services/FileConstants.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -1,40 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- \*/
-package cc.kune.core.client.services;
-
-public final class FileConstants {
-
- public final static String DOWNLOAD = "download";
- public final static String FILENAME = "filename";
- public final static String GROUP_LOGO_FIELD = "k-glogov-ff";
- public final static String HASH = "hash";
- public final static String IMGSIZE = "imgsize";
- public final static int LOGO_DEF_HEIGHT = 60;
- public final static int LOGO_DEF_WIDTH = 468;
- public final static int LOGO_MIN_HEIGHT = 28;
- public final static int LOGO_MIN_WIDTH = 468;
- public final static String TOKEN = "token";
- public final static String TYPE_ID = "typeid";
- public final static String USER_LOGO_FIELD = "k-ulogov-ff";
- public final static String USERNAME = "username";
-
- private FileConstants() {
- }
-}
Modified: trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -22,25 +22,17 @@
import cc.kune.common.client.utils.Url;
import cc.kune.common.client.utils.UrlParam;
import cc.kune.core.client.state.Session;
+import cc.kune.core.shared.FileConstants;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.GroupDTO;
import cc.kune.core.shared.dto.UserSimpleDTO;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.inject.Inject;
public class FileDownloadUtils {
- public static final String AVATARDOWNLOADSERVLET = "servlets/UserLogoDownloadManager";
- private static final String BACKDOWNLOADSERVLET = "servlets/EntityBackgroundDownloadManager";
- private static final String DOWNLOADSERVLET = "servlets/FileDownloadManager";
- protected static final String GROUP_NO_AVATAR_IMAGE = "images/group-def-icon.png";
- private static final String LOGODOWNLOADSERVLET = "servlets/EntityLogoDownloadManager";
- protected static final String PERSON_NO_AVATAR_IMAGE = "images/unknown.jpg";
- public static final String WORLD_AVATAR_IMAGE = "images/world-90.gif";
-
private final ImageUtils imageUtils;
private final Session session;
@@ -51,7 +43,7 @@
}
private String calculateUrl(final StateToken token, final boolean download, final boolean useHash) {
- final Url url = new Url(GWT.getModuleBaseURL() + DOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN,
+ final Url url = new Url(FileConstants.DOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN,
token.toString()));
if (download) {
url.add(new UrlParam(FileConstants.DOWNLOAD, download));
@@ -71,18 +63,20 @@
}
public String getBackgroundImageUrl(final StateToken token) {
- return new Url(GWT.getModuleBaseURL() + BACKDOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN,
- token.toString())).toString();
+ return new Url(FileConstants.BACKDOWNLOADSERVLET,
+ new UrlParam(FileConstants.TOKEN, token.toString())).toString();
}
public String getBackgroundResizedUrl(final StateToken token, final ImageSize imageSize) {
- return new Url(GWT.getModuleBaseURL() + BACKDOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN,
- token.toString()), new UrlParam(FileConstants.IMGSIZE, imageSize.toString())).toString();
+ return new Url(FileConstants.BACKDOWNLOADSERVLET,
+ new UrlParam(FileConstants.TOKEN, token.toString()), new UrlParam(FileConstants.IMGSIZE,
+ imageSize.toString())).toString();
}
public String getGroupLogo(final GroupDTO group) {
return group.hasLogo() ? getLogoImageUrl(group.getStateToken())
- : group.isPersonal() ? PERSON_NO_AVATAR_IMAGE : GROUP_NO_AVATAR_IMAGE;
+ : group.isPersonal() ? FileConstants.PERSON_NO_AVATAR_IMAGE
+ : FileConstants.GROUP_NO_AVATAR_IMAGE;
}
public String getImageResizedUrl(final StateToken token, final ImageSize imageSize) {
@@ -106,8 +100,8 @@
}
public String getLogoImageUrl(final StateToken token) {
- return new Url(GWT.getModuleBaseURL() + LOGODOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN,
- token.toString())).toString();
+ return new Url(FileConstants.LOGODOWNLOADSERVLET,
+ new UrlParam(FileConstants.TOKEN, token.toString())).toString();
}
public String getUrl(final StateToken token) {
@@ -115,11 +109,10 @@
}
public String getUserAvatar(final String username) {
- return new Url(GWT.getModuleBaseURL() + AVATARDOWNLOADSERVLET, new UrlParam(FileConstants.USERNAME,
- username)).toString();
+ return new Url(FileConstants.AVATARDOWNLOADSERVLET, new UrlParam(FileConstants.USERNAME, username)).toString();
}
public String getUserAvatar(final UserSimpleDTO user) {
- return user.hasLogo() ? getLogoImageUrl(user.getStateToken()) : PERSON_NO_AVATAR_IMAGE;
+ return user.hasLogo() ? getLogoImageUrl(user.getStateToken()) : FileConstants.PERSON_NO_AVATAR_IMAGE;
}
}
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/AboutKuneDialog.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/AboutKuneDialog.ui.xml 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/AboutKuneDialog.ui.xml 2011-09-26 20:24:14 UTC (rev 1535)
@@ -16,7 +16,7 @@
</ui:style>
<g:FlowPanel styleName="{style.panel}" ui:field="flow">
- <g:Frame styleName="{style.frame}" url="about.html"
+ <g:Frame styleName="{style.frame}" url="ws/about.html"
ui:field="frame" />
</g:FlowPanel>
</ui:UiBinder>
Modified: trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -137,7 +137,7 @@
@Override
public void gotoHistoryToken(final String token) {
- Log.debug("StateManager: history goto-string-token :" + token);
+ Log.debug("StateManager: history goto-string-token: " + token);
history.newItem(token);
}
Modified: trunk/src/main/java/cc/kune/core/client/state/TokenUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/TokenUtils.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/state/TokenUtils.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -19,13 +19,30 @@
*/
package cc.kune.core.client.state;
+import cc.kune.common.client.utils.Base64Utils;
+
public class TokenUtils {
- public static String addRedirect(final String token, final String redirect) {
- return new StringBuffer().append(token).append("(").append(redirect).append(")").toString();
+ public static String addRedirect(final String token, final String redirect) {
+ return new StringBuffer().append(token).append("(").append(redirect).append(")").toString();
+ }
+
+ private static String compose(final String... params) {
+ final StringBuffer sb = new StringBuffer();
+ for (final String param : params) {
+ sb.append(param).append("|");
}
+ return sb.toString().replaceAll("\\|$", "");
+ }
- public static String preview(final String token) {
- return addRedirect(SiteTokens.PREVIEW, token);
- }
+ public static String preview(final String token) {
+ return addRedirect(SiteTokens.PREVIEW, token);
+ }
+
+ public static String subtitle(final String title, final String description, final String redirect) {
+ return addRedirect(
+ SiteTokens.SUBTITLES,
+ compose(Base64Utils.toBase64(title.getBytes()), Base64Utils.toBase64(description.getBytes()),
+ redirect));
+ }
}
Modified: trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -1,6 +1,7 @@
package cc.kune.core.client.sub;
import cc.kune.common.client.utils.Base64Utils;
+import cc.kune.common.client.utils.SimpleCallback;
import cc.kune.core.client.state.StateManager;
import com.google.gwt.event.shared.EventBus;
@@ -24,7 +25,7 @@
void setTitleText(String text);
- void show();
+ void show(final SimpleCallback atShowEnd);
}
private final StateManager stateManager;
@@ -45,7 +46,11 @@
final String[] params = token.split("\\|");
getView().setTitleText(new String(Base64Utils.fromBase64(params[0])));
getView().setDescription(new String(Base64Utils.fromBase64(params[1])));
- getView().show();
- stateManager.gotoHistoryToken(params[2]);
+ getView().show(new SimpleCallback() {
+ @Override
+ public void onCallback() {
+ stateManager.gotoHistoryToken(params[2]);
+ }
+ });
}
}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -5,6 +5,7 @@
import org.adamtacy.client.ui.effects.examples.Show;
import org.adamtacy.client.ui.effects.examples.SlideRight;
+import cc.kune.common.client.utils.SimpleCallback;
import cc.kune.core.client.sub.SubtitlesManager.SubtitlesView;
import com.google.gwt.core.client.GWT;
@@ -30,12 +31,14 @@
private static SubtitlesWidgetUiBinder uiBinder = GWT.create(SubtitlesWidgetUiBinder.class);
+ private SimpleCallback callback;
@UiField
InlineLabel description;
private final PopupPanel popup;
private boolean showing;
@UiField
InlineLabel title;
+
private final Widget widget;
public SubtitlesWidget() {
@@ -57,6 +60,7 @@
@Override
public void onEffectCompleted(final EffectCompletedEvent event) {
popup.hide();
+ callback.onCallback();
}
});
showing = false;
@@ -91,9 +95,11 @@
}
@Override
- public void show() {
+ public void show(final SimpleCallback callback) {
+ this.callback = callback;
popup.setWidget(widget);
setSize(Window.getClientWidth(), Window.getClientHeight());
+ popup.sinkEvents(Event.MOUSEEVENTS);
popup.show();
final Show showAtIni = new Show(popup.getElement());
showAtIni.setDuration(3);
@@ -101,7 +107,6 @@
final SlideRight slideAtIni = new SlideRight(popup.getElement());
slideAtIni.setDuration(3);
slideAtIni.play();
- popup.sinkEvents(Event.MOUSEEVENTS);
this.showing = true;
}
Modified: trunk/src/main/java/cc/kune/core/client/ui/DefaultFormUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ui/DefaultFormUtils.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/ui/DefaultFormUtils.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -44,8 +44,6 @@
if (radioTip != null && tooltip == null) {
tooltip = Tooltip.to(radio, radioTip);
tooltip.setWidth(300);
- tooltip.show();
- tooltip.hide();
}
}
});
Modified: trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -25,9 +25,9 @@
import cc.kune.common.client.actions.ui.bind.GuiProvider;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.core.client.resources.CoreResources;
-import cc.kune.core.client.services.FileConstants;
import cc.kune.core.client.services.FileDownloadUtils;
import cc.kune.core.client.ws.entheader.EntityHeaderPresenter.EntityHeaderView;
+import cc.kune.core.shared.FileConstants;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.GroupDTO;
import cc.kune.gspace.client.GSpaceArmor;
Deleted: trunk/src/main/java/cc/kune/core/public/ws.html
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.html 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/public/ws.html 2011-09-26 20:24:14 UTC (rev 1535)
@@ -1,261 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<meta http-equiv="content-type" content="text/html; charset=UTF-8">
-<title>Kune</title>
-<script type="text/javascript" language="javascript"
- src="/ws/ws.nocache.js"></script>
-<meta name="emite.httpBase" content="/http-bind/" />
-<meta name="emite.host" content="localhost" />
-<meta name="emite.searchHost" content="search.localhost" />
-<!--<meta name="emite.session" content="login" />-->
-<meta name="hablar.roomService" content="rooms.localhost" />
-<meta name="hablar.login" content="false" />
-<meta name="hablar.hasVCard" content="false" />
-<meta name="hablar.search" content="false" />
-<meta name="hablar.hasSound" content="false" />
-<meta name="hablar.hasCopyToClipboard" content="true" />
-<!--<meta name="hablar.hasLogger" content="true" />-->
-<meta name="hablar.hasSignals" content="false" />
-<meta name="hablar.roster" content="true" />
-<meta name="hablar.dockRoster" content="left" />
-<meta name="hablar.icons" content="alt" />
-<meta name="hablar.layout" content="tabs" />
-<meta name="hablar.inline" content="vertical_dock_div" />
-<meta name="hablar.width" content="550px" />
-<meta name="hablar.height" content="400px" />
-<link rel="shortcut icon" href="favicon.ico" />
-<link rel="stylesheet" type="text/css"
- href="http://yui.yahooapis.com/2.8.0r4/build/reset/reset-min.css">
-<!-- FIXME: make something local -->
-<script src="//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"></script>
-<script>
- WebFont.load({
- google : {
- families : [ 'Ubuntu' ]
- }
- });
-</script>
-<link
- href='http://fonts.googleapis.com/css?family=Ubuntu:regular,italic,bold,bolditalic'
- rel='stylesheet' type='text/css'>
-<!-- <link href='http://fonts.googleapis.com/css?family=Inconsolata'
- rel='stylesheet' type='text/css'> -->
-<link type="text/css" rel="stylesheet" href="gxt/css/gxt-all.css">
-<link type="text/css" rel="stylesheet" href="gxt/css/gxt-gray.css">
-<link type="text/css" rel="stylesheet"
- href="gxt-custom/css/gxt-op-common.css">
-<link type="text/css" rel="stylesheet" href="kune-hablar.css">
-<link type="text/css" rel="stylesheet" href="kune-chat.css">
-<link type="text/css" rel="stylesheet" href="kune-common.css">
-<link type="text/css" rel="stylesheet"
- href="fontface/ubuntufontface.css">
-<link type="text/css" rel="stylesheet" href="kune-message.css">
-<link type="text/css" rel="stylesheet" href="/others/splash/style/permalink.css">
-<link type="text/css" rel="stylesheet" href="/others/splash/style/stuff.css">
-<link type="text/css" rel="stylesheet" href="/others/splash/style/main.css">
-<link type="text/css" rel="stylesheet" href="ws.css">
-<script type="text/javascript" src="/others/splash/js/gadget.js"></script>
-<script type="text/javascript" src="/others/splash/js/rpc.js"></script>
-<script type="text/javascript" src="/others/splash/js/common_client.js"></script>
-<script type="text/javascript" src="/others/splash/js/permalink_client.js"></script>
-<script type="text/javascript" src="http://wave.google.com/gadgets/js/core:rpc.js?c=1"></script>
-
-<style type="text/css">
-
-body {
- background-color: white;
- color: black;
- font-family: 'Ubuntu', Arial;
- font-size: small;
- overflow: hidden;
-}
-
-#kuneloading {
- position: absolute;
- left: 2%;
- top: 2%;
- z-index: 20001;
- height: auto;
- border: solid 2px #ccc;
- -moz-border-radius: 10px;
- -webkit-border-radius: 10px;
- border-radius: 10px;
- background-color: white;
-}
-
-#kuneloading a {
- color: #225588;
-}
-
-#kuneloading .kuneloading-indicator {
- color: #444;
- font: bold 13px tahoma, arial, helvetica;
- padding: 3px 3px 8px;
- margin: 0;
- height: auto;
-}
-
-#kuneloading-msg {
- font: normal 10px arial, tahoma, sans-serif;
-}
-
-#k-home-prewrap {
- margin-top: -22px;
-}
-
-#k-home-wrapper {
- margin-left: auto;
- margin-right: auto;
- position: relative;
- width: 665px;
- min-width: 320px;
-}
-
-#k-home-ini {
- clear: both;
- font-size: 28px;
- color: #69312f;
- text-align: justify;
- padding: 27px 0;
- line-height: 1.3em;
-}
-
-#k-home-ini a {
- color: #803000;
- font-weight: bold;
-}
-
-#k-home-ini strong {
- font-weight: bold;
-}
-
-#k-home-stats {
- font-size: 22px;
- color: #c87137;
- font-weight: bold;
-}
-
-#k-home-table {
- display: table;
-}
-
-#k-home-header {
- display: table-row;
-}
-
-#k-home-logo {
- display: table-cell;
- margin: 50px 0 22px 0;
- float: right;
-}
-
-#k-home-summary {
- display: table-cell;
- font-size: 32px;
- color: #dd8a3d;
- font-weight: bold;
- white-space: nowrap;
- float: left;
-}
-
-#k-home-summary li {
- padding-left: 41px;
- background-repeat: no-repeat;
- background-position: 0 .2em;
- line-height: 45px;
-}
-
-#k-home-row {
- display: table-row;
-}
-
-#k-home-left {
- display: table-cell;
-}
-
-#k-home-right {
- display: table-cell;
-}
-
-.banner {
- margin: 30px;
-}
-</style>
-<!--[if IE 6]>
- <link type="text/css" rel="stylesheet" href="ie6.css">
-<![endif]-->
-</head>
-<body>
- <!-- Banner for wave errors -->
- <div class="banner" id="banner"></div>
- <!-- Autocomplete user/pass -->
- <form method="post" action="javascript:void(0)" style="display: none">
- <input type="text" id="address" name="address" value="" /> <input
- type="password" id="password" name="password" value="" /> <input
- type="submit" value="Login" id="login" /> <input type="submit"
- class="wiab le button" name="signIn" id="signIn" value="Sign in">
- </form>
- <!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
- <noscript>
- <div
- style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
- Your web browser must have JavaScript enabled in order for this
- application to display correctly.</div>
- </noscript>
- <iframe id="__gwt_historyFrame" style="width: 0; height: 0; border: 0"></iframe>
- <iframe src="" id="__download" style="width: 0; height: 0; border: 0"></iframe>
- <div id="kuneinitialcurtain"></div>
- <div id="kuneloading">
- <div class="kuneloading-indicator">
- <img src="images/kune-anim-g.gif" width="35" height="35"
- alt="kune-loading"
- style="margin-right: 3px; float: left; vertical-align: top;" />kune <br />
- <span id="kuneloading-msg">Starting...</span>
- </div>
- </div>
- <div id="k-home-prewrap">
- <div id="k-home-wrapper">
- <div id="k-home-table">
- <div id="k-home-header">
- <div id="k-home-logo">
- <img src="logo-big-home.png" alt="" />
- </div>
- <div id="k-home-summary">
- <ul>
- <li style="background-image: url(images/kune-intro-user.png);">Comunicate with others</li>
- <li style="background-image: url(images/kune-intro-group.png);">Work in collaboration</li>
- <li style="background-image: url(images/kune-intro-world.png);">And share with the world</li>
- </ul>
- </div>
- <!-- k-home-summary -->
- </div>
- <!-- div home-header -->
- <div id="k-home-row">
- <div id="k-home-left">
- <div id="k-home-ini">
- Welcome! This site is a Kune node. Kune, which means
- "together" in esperanto, it's a network of interconnected
- sites like this one, where you can <strong>communicate,
- share, collaborate with others and create your web
- spaces easily</strong>. <a href="#signin">Join!</a>
- </div>
- <!-- div home-ini -->
- <div id="k-home-stats" style="display: none;">Latests
- groups created</div>
- </div>
- <!-- div k-home-left -->
- <div id="k-home-right">
- <!-- div home-stats -->
- </div>
- <!-- div k-home-right -->
- </div>
- <!-- div k-home-row -->
- </div>
- <!-- div home-table -->
- </div>
- <!-- home-wrapper -->
- </div>
- <!-- home-prewrap -->
-</body>
-</html>
Modified: trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -73,13 +73,15 @@
public class KuneRackModule implements RackModule {
public static final Log LOG = LogFactory.getLog(KuneRackModule.class);
private final Module configModule;
+ private final String suffix;
public KuneRackModule() {
- this("development", null);
+ this("development", "/ws", null);
}
- public KuneRackModule(final String jpaUnit, final Scope sessionScope) {
+ public KuneRackModule(final String jpaUnit, final String suffix, final Scope sessionScope) {
+ this.suffix = suffix;
final SystemConfiguration sysConf = new SystemConfiguration();
final String kuneConfig = sysConf.getString("kune.server.config");
@@ -135,22 +137,24 @@
builder.at(".*").install(new GuiceFilter());
// NOTE: Commented this while testing Wave
- // builder.at("^/$").install(new RedirectFilter("/ws/"));
- builder.at("^/ws").install(new RedirectFilter("/ws/"));
+ // builder.at("^/$").install(new RedirectFilter(KUNE_PREFIX + "/"));
+ builder.at("^" + suffix + "").install(new RedirectFilter(suffix + "/"));
- builder.at("^/ws/$").install(new ListenerFilter(KuneApplicationListener.class),
- new ForwardFilter("/ws/ws.html"));
+ builder.at("^" + suffix + "/$").install(new ListenerFilter(KuneApplicationListener.class),
+ new ForwardFilter(suffix + "/ws.html"));
- builder.installGWTServices("^/ws/", SiteService.class, GroupService.class, ContentService.class,
- UserService.class, SocialNetworkService.class, I18nService.class, ListsService.class);
- builder.installRESTServices("^/ws/json/", TestJSONService.class, GroupJSONService.class,
+ builder.installGWTServices("^" + suffix + "/", SiteService.class, GroupService.class,
+ ContentService.class, UserService.class, SocialNetworkService.class, I18nService.class,
+ ListsService.class);
+ builder.installRESTServices("^" + suffix + "/json/", TestJSONService.class, GroupJSONService.class,
UserJSONService.class, I18nTranslationJSONService.class, ContentJSONService.class);
- builder.installServlet("^/ws/servlets/", FileUploadManager.class, FileDownloadManager.class,
- EntityLogoUploadManager.class, EntityLogoDownloadManager.class, FileGwtUploadServlet.class,
- EntityBackgroundDownloadManager.class, EntityBackgroundUploadManager.class,
- UserLogoDownloadManager.class);
+ builder.installServlet("^" + suffix + "/servlets/", FileUploadManager.class,
+ FileDownloadManager.class, EntityLogoUploadManager.class, EntityLogoDownloadManager.class,
+ FileGwtUploadServlet.class, EntityBackgroundDownloadManager.class,
+ EntityBackgroundUploadManager.class, UserLogoDownloadManager.class);
- builder.at("^/ws/(.*)$").install(new ForwardFilter("^/ws/(.*)$", "/ws/{0}"));
+ builder.at("^" + suffix + "/(.*)$").install(
+ new ForwardFilter("^" + suffix + "/(.*)$", suffix + "/{0}"));
}
private void installGuiceModules(final RackBuilder builder) {
Modified: trunk/src/main/java/cc/kune/core/server/manager/file/EntityBackgroundDownloadManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/EntityBackgroundDownloadManager.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/EntityBackgroundDownloadManager.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -33,10 +33,10 @@
import org.apache.commons.logging.LogFactory;
import cc.kune.core.client.errors.ContentNotFoundException;
-import cc.kune.core.client.services.FileConstants;
import cc.kune.core.client.services.ImageSize;
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.properties.KuneProperties;
+import cc.kune.core.shared.FileConstants;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.domain.Group;
Modified: trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -28,8 +28,8 @@
import javax.servlet.http.HttpServletResponse;
-import cc.kune.core.client.services.FileConstants;
import cc.kune.core.server.manager.GroupManager;
+import cc.kune.core.shared.FileConstants;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.domain.Group;
Modified: trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoUploadManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoUploadManager.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoUploadManager.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -29,12 +29,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import cc.kune.core.client.services.FileConstants;
import cc.kune.core.server.auth.ActionLevel;
import cc.kune.core.server.auth.Authenticated;
import cc.kune.core.server.auth.Authorizated;
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.properties.KuneProperties;
+import cc.kune.core.shared.FileConstants;
import cc.kune.core.shared.domain.AccessRol;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.i18n.I18nTranslationService;
Modified: trunk/src/main/java/cc/kune/core/server/manager/file/FileDownloadManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/FileDownloadManager.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/FileDownloadManager.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -33,7 +33,6 @@
import org.apache.commons.logging.LogFactory;
import cc.kune.core.client.errors.ContentNotFoundException;
-import cc.kune.core.client.services.FileConstants;
import cc.kune.core.client.services.ImageSize;
import cc.kune.core.server.auth.ActionLevel;
import cc.kune.core.server.auth.Authenticated;
@@ -41,6 +40,7 @@
import cc.kune.core.server.content.ContentManager;
import cc.kune.core.server.content.ContentUtils;
import cc.kune.core.server.properties.KuneProperties;
+import cc.kune.core.shared.FileConstants;
import cc.kune.core.shared.domain.AccessRol;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.domain.BasicMimeType;
Modified: trunk/src/main/java/cc/kune/core/server/manager/file/FileGwtUploadAbstractServlet.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/FileGwtUploadAbstractServlet.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/FileGwtUploadAbstractServlet.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -30,8 +30,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import cc.kune.core.client.services.FileConstants;
import cc.kune.core.server.properties.KuneProperties;
+import cc.kune.core.shared.FileConstants;
import cc.kune.core.shared.domain.utils.StateToken;
import com.google.inject.servlet.RequestScoped;
Modified: trunk/src/main/java/cc/kune/core/server/manager/file/FileUploadManagerAbstract.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/FileUploadManagerAbstract.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/FileUploadManagerAbstract.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -38,8 +38,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import cc.kune.core.client.services.FileConstants;
import cc.kune.core.server.properties.KuneProperties;
+import cc.kune.core.shared.FileConstants;
import cc.kune.core.shared.domain.utils.StateToken;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/core/server/manager/file/UserLogoDownloadManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/UserLogoDownloadManager.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/UserLogoDownloadManager.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -28,8 +28,8 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import cc.kune.core.client.services.FileConstants;
import cc.kune.core.server.manager.GroupManager;
+import cc.kune.core.shared.FileConstants;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.domain.Group;
Copied: trunk/src/main/java/cc/kune/core/shared/FileConstants.java (from rev 1531, trunk/src/main/java/cc/kune/core/client/services/FileConstants.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/FileConstants.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/shared/FileConstants.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -0,0 +1,49 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ \*/
+package cc.kune.core.shared;
+
+public final class FileConstants {
+
+ public final static String ASITE_PREFIX = "ws/";
+ public final static String AVATARDOWNLOADSERVLET = ASITE_PREFIX + "servlets/UserLogoDownloadManager";
+ public final static String BACKDOWNLOADSERVLET = ASITE_PREFIX
+ + "servlets/EntityBackgroundDownloadManager";
+ public final static String DOWNLOAD = "download";
+ public static final String DOWNLOADSERVLET = ASITE_PREFIX + "servlets/FileDownloadManager";
+ public final static String FILENAME = "filename";
+ public final static String GROUP_LOGO_FIELD = "k-glogov-ff";
+ public static final String GROUP_NO_AVATAR_IMAGE = ASITE_PREFIX + "images/group-def-icon.png";
+ public final static String HASH = "hash";
+ public final static String IMGSIZE = "imgsize";
+ public final static int LOGO_DEF_HEIGHT = 60;
+ public final static int LOGO_DEF_WIDTH = 468;
+ public final static int LOGO_MIN_HEIGHT = 28;
+ public final static int LOGO_MIN_WIDTH = 468;
+ public static final String LOGODOWNLOADSERVLET = ASITE_PREFIX + "servlets/EntityLogoDownloadManager";
+ public final static String PERSON_NO_AVATAR_IMAGE = ASITE_PREFIX + "images/unknown.jpg";
+ public final static String TOKEN = "token";
+ public final static String TYPE_ID = "typeid";
+ public final static String USER_LOGO_FIELD = "k-ulogov-ff";
+ public final static String USERNAME = "username";
+ public final static String WORLD_AVATAR_IMAGE = ASITE_PREFIX + "images/world-90.gif";
+
+ public FileConstants() {
+ }
+}
Modified: trunk/src/main/java/cc/kune/core/shared/SearcherConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/SearcherConstants.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/shared/SearcherConstants.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -21,21 +21,27 @@
public final class SearcherConstants {
- public final static String CONTENT_DATA_PROXY_URL = "/ws/json/ContentJSONService/search";
- public final static String CONTENT_TEMPLATE_TEXT_PREFIX = "<div class=\"search-item\"><span class=\"kune-IconHyperlink\"><img src=\"";
- public final static String CONTENT_TEMPLATE_TEXT_SUFFIX = "\" style=\"height: 16px; width: 16px;\" />{shortName}: {longName}</span></div>";
+ // public final static String CONTENT_DATA_PROXY_URL =
+ // "/ws/json/ContentJSONService/search";
+ // public final static String CONTENT_TEMPLATE_TEXT_PREFIX =
+ // "<div class=\"search-item\"><span class=\"kune-IconHyperlink\"><img src=\"";
+ // public final static String CONTENT_TEMPLATE_TEXT_SUFFIX =
+ // "\" style=\"height: 16px; width: 16px;\" />{shortName}: {longName}</span></div>";
public final static String GROUP_DATA_PROXY_URL = "/ws/json/GroupJSONService/search";
+ // public final static String I18N_JSON_SERVICE =
+ // "/ws/json/I18nTranslationJSONService/search";
public final static String GROUP_PARAM = "group";
- public final static String I18N_JSON_SERVICE = "/ws/json/I18nTranslationJSONService/search";
- public final static String I18N_JSON_SERVICE_TRANSLATED = "/ws/json/I18nTranslationJSONService/searchtranslated";
public final static String LIMIT_PARAM = "limit";
public final static String MIMETYPE_PARAM = "mimetype";
public final static String MIMETYPE2_PARAM = "mimetype2";
public final static String QUERY_PARAM = "query";
public final static String START_PARAM = "start";
- public final static String USER_DATA_PROXY_URL = "/ws/json/UserJSONService/search";
+ // public final static String I18N_JSON_SERVICE_TRANSLATED =
+ // "/ws/json/I18nTranslationJSONService/searchtranslated";
+ // public final static String USER_DATA_PROXY_URL =
+ // "/ws/json/UserJSONService/search";
public static final String WILDCARD = "*";
private SearcherConstants() {
Modified: trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslateRecomendPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslateRecomendPanel.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslateRecomendPanel.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -16,7 +16,7 @@
@Inject
public I18nTranslateRecomendPanel(final I18nTranslationService i18n) {
tabTitle = new Label(i18n.t("Recommendations"));
- recommFrame = new Frame("i18n-recom.html");
+ recommFrame = new Frame("ws/i18n-recom.html");
// recommFrame.setHeight("auto");
recommFrame.setStyleName("k-i18n-recommend");
initWidget(recommFrame);
Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPanel.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPanel.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -27,10 +27,11 @@
import cc.kune.common.client.utils.OnAcceptCallback;
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.resources.nav.NavResources;
-import cc.kune.core.client.services.FileConstants;
+import cc.kune.core.shared.FileConstants;
import cc.kune.core.shared.i18n.I18nTranslationService;
import cc.kune.gspace.client.options.EntityOptionsView;
+import com.google.gwt.core.client.GWT;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.ui.Composite;
@@ -38,10 +39,11 @@
public class EntityOptLogoPanel extends Composite implements EntityOptLogoView {
- public static final String ICON_UPLD_SERVLET = "servlets/EntityLogoUploadManager";
- private final EntityUploaderForm uploader;
+ public static final String ICON_UPLD_SERVLET = GWT.getModuleBaseURL()
+ + "servlets/EntityLogoUploadManager";
private final I18nTranslationService i18n;
private final IconLabel tabTitle;
+ private final EntityUploaderForm uploader;
public EntityOptLogoPanel(final EventBus eventBus, final I18nTranslationService i18n,
final String panelId, final String buttonId, final String inputId, final NavResources res) {
Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPresenter.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPresenter.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -86,7 +86,7 @@
}
public void onSubmitFailed(final String responseText) {
- NotifyUser.error(i18n.t("Error setting the logo", responseText));
+ NotifyUser.error(i18n.t("Error setting the logo"));
}
protected abstract void setState();
Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityUploaderForm.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityUploaderForm.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityUploaderForm.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -25,7 +25,7 @@
import gwtupload.client.IUploader.OnFinishUploaderHandler;
import gwtupload.client.IUploader.OnStartUploaderHandler;
import gwtupload.client.MultiUploader;
-import cc.kune.core.client.services.FileConstants;
+import cc.kune.core.shared.FileConstants;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.ui.Composite;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptLogoPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptLogoPanel.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptLogoPanel.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -20,7 +20,7 @@
package cc.kune.gspace.client.options.logo;
import cc.kune.core.client.resources.nav.NavResources;
-import cc.kune.core.client.services.FileConstants;
+import cc.kune.core.shared.FileConstants;
import cc.kune.core.shared.i18n.I18nTranslationService;
import com.google.gwt.event.shared.EventBus;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptLogoPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptLogoPanel.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptLogoPanel.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -20,7 +20,7 @@
package cc.kune.gspace.client.options.logo;
import cc.kune.core.client.resources.nav.NavResources;
-import cc.kune.core.client.services.FileConstants;
+import cc.kune.core.shared.FileConstants;
import cc.kune.core.shared.i18n.I18nTranslationService;
import com.google.gwt.event.shared.EventBus;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePanel.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePanel.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -34,6 +34,7 @@
import cc.kune.gspace.client.options.logo.EntityUploaderForm;
import cc.kune.gspace.client.themes.GSpaceThemeSelectorPanel;
+import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
@@ -47,7 +48,8 @@
public class EntityOptStylePanel extends FlowPanel implements EntityOptStyleView {
- public static final String ICON_UPLD_SERVLET = "servlets/EntityBackgroundUploadManager";
+ public static final String ICON_UPLD_SERVLET = GWT.getModuleBaseURL()
+ + "servlets/EntityBackgroundUploadManager";
private final Label backgroundLabel;
private final Image backImage;
private final String changeImage;
Modified: trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePanel.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePanel.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -26,6 +26,7 @@
import cc.kune.gspace.client.GSpaceArmor;
import cc.kune.gspace.client.ui.footer.license.EntityLicensePresenter.EntityLicenseView;
+import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Image;
@@ -81,7 +82,7 @@
public void showLicense(final String groupName, final LicenseDTO licenseDTO) {
final String licenseText = i18n.t("© [%s], under license: [%s]", groupName, licenseDTO.getLongName());
// KuneUiUtils.setQuickTip(licenseLabel, licenseText);
- licenseImage.setUrl(licenseDTO.getImageUrl());
+ licenseImage.setUrl(GWT.getModuleBaseURL() + licenseDTO.getImageUrl());
tooltip.setText(licenseText);
}
}
Modified: trunk/src/main/java/cc/kune/msgs/client/UserMessage.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/msgs/client/UserMessage.ui.xml 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/msgs/client/UserMessage.ui.xml 2011-09-26 20:24:14 UTC (rev 1535)
@@ -1,22 +1,36 @@
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">
+
+ <ui:style>
+ @if user.agent safari {
+ .k-msg-width {
+ width: 0px;
+ }
+ }
+
+ @elif user.agent gecko1_8 {
+ .k-msg-width {
+ width: auto;
+ }
+ }
+ </ui:style>
<ui:with field='img'
- type='cc.kune.msgs.client.resources.UserMessageImages' />
+ type='cc.kune.msgs.client.resources.UserMessageImages'/>
<g:HorizontalPanel verticalAlignment="ALIGN_MIDDLE"
- height="42px" addStyleNames="k-msg, k-3corners">
+ height="42px" addStyleNames="k-msg, k-3corners, {style.k-msg-width}">
<g:SimplePanel addStyleNames="k-msg-icon">
- <g:Image width="100%" ui:field="icon" height="100%" />
+ <g:Image width="100%" ui:field="icon" height="100%"/>
</g:SimplePanel>
<g:Cell width="100%">
<g:InlineHTML ui:field="label" width="100%"
- styleName="k-msg-label" />
+ styleName="k-msg-label"/>
</g:Cell>
<g:PushButton ui:field="close" styleName="k-msg-close"
width="22px">
- <g:upFace image='{img.remove}' />
- <g:downFace image='{img.removeOver}' />
- <g:upHoveringFace image='{img.removeGrey}' />
+ <g:upFace image='{img.remove}'/>
+ <g:downFace image='{img.removeOver}'/>
+ <g:upHoveringFace image='{img.removeGrey}'/>
</g:PushButton>
</g:HorizontalPanel>
</ui:UiBinder>
Modified: trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -26,12 +26,14 @@
import org.waveprotocol.wave.model.wave.ParticipantId;
import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.shared.FileConstants;
import com.google.inject.Inject;
/**
* The Class KuneWaveProfileManager is a workaround to show avatars in kune
- * while the Wave part is more mature (see in the future RemoteProfileManagerImpl)
+ * while the Wave part is more mature (see in the future
+ * RemoteProfileManagerImpl)
*
*/
public class KuneWaveProfileManager extends AbstractProfileManager<ProfileImpl> implements
@@ -51,14 +53,14 @@
}
final String address = profile.getAddress();
if (address.equals(localDomain) || address.equals("@")) {
- updateProfileAvatar(profile, FileDownloadUtils.WORLD_AVATAR_IMAGE);
+ updateProfileAvatar(profile, FileConstants.WORLD_AVATAR_IMAGE);
} else if (address.contains(Session.get().getDomain())) {
updateProfileAvatar(profile, downloadUtils.getUserAvatar(address.split("@")[0]));
}
}
@Override
- public ProfileImpl getProfile(ParticipantId participantId) {
+ public ProfileImpl getProfile(final ParticipantId participantId) {
ProfileImpl profile = profiles.get(participantId.getAddress());
if (profile == null) {
Modified: trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java
===================================================================
--- trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -26,8 +26,7 @@
import cc.kune.common.client.utils.Url;
import cc.kune.common.client.utils.UrlParam;
-import cc.kune.core.client.services.FileConstants;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.shared.FileConstants;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
@@ -151,10 +150,10 @@
private String getAvatarUrl(final String address) {
String avatar = "";
if (address.contains(domain)) {
- avatar = new Url("/ws/" + FileDownloadUtils.AVATARDOWNLOADSERVLET, new UrlParam(
- FileConstants.USERNAME, address.split("@")[0])).toString();
+ avatar = new Url(FileConstants.AVATARDOWNLOADSERVLET, new UrlParam(FileConstants.USERNAME,
+ address.split("@")[0])).toString();
} else {
- avatar = "/others/unknown.jpg";
+ avatar = FileConstants.PERSON_NO_AVATAR_IMAGE;
}
return avatar;
}
Modified: trunk/src/main/resources/kune.properties
===================================================================
--- trunk/src/main/resources/kune.properties 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/resources/kune.properties 2011-09-26 20:24:14 UTC (rev 1535)
@@ -4,7 +4,7 @@
kune.siteurl = http://localhost:8080
-kune.sitelogourl = images/kune-logo-16px.png
+kune.sitelogourl = ws/images/kune-logo-16px.png
# Every kune site have a group with this name:
Copied: trunk/src/main/webapp/static (from rev 1531, trunk/src/main/java/cc/kune/wave/public/static)
Added: trunk/src/main/webapp/ws.html
===================================================================
--- trunk/src/main/webapp/ws.html (rev 0)
+++ trunk/src/main/webapp/ws.html 2011-09-26 20:24:14 UTC (rev 1535)
@@ -0,0 +1,261 @@
+<!doctype html>
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
+<title>Kune</title>
+<script type="text/javascript" language="javascript"
+ src="ws/ws.nocache.js"></script>
+<meta name="emite.httpBase" content="/http-bind/" />
+<meta name="emite.host" content="localhost" />
+<meta name="emite.searchHost" content="search.localhost" />
+<!--<meta name="emite.session" content="login" />-->
+<meta name="hablar.roomService" content="rooms.localhost" />
+<meta name="hablar.login" content="false" />
+<meta name="hablar.hasVCard" content="false" />
+<meta name="hablar.search" content="false" />
+<meta name="hablar.hasSound" content="false" />
+<meta name="hablar.hasCopyToClipboard" content="true" />
+<!--<meta name="hablar.hasLogger" content="true" />-->
+<meta name="hablar.hasSignals" content="false" />
+<meta name="hablar.roster" content="true" />
+<meta name="hablar.dockRoster" content="left" />
+<meta name="hablar.icons" content="alt" />
+<meta name="hablar.layout" content="tabs" />
+<meta name="hablar.inline" content="vertical_dock_div" />
+<meta name="hablar.width" content="550px" />
+<meta name="hablar.height" content="400px" />
+<link rel="shortcut icon" href="ws/favicon.ico" />
+<link rel="stylesheet" type="text/css"
+ href="http://yui.yahooapis.com/2.8.0r4/build/reset/reset-min.css">
+<!-- FIXME: make something local -->
+<script src="//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"></script>
+<script>
+ WebFont.load({
+ google : {
+ families : [ 'Ubuntu' ]
+ }
+ });
+</script>
+<link
+ href='http://fonts.googleapis.com/css?family=Ubuntu:regular,italic,bold,bolditalic'
+ rel='stylesheet' type='text/css'>
+<!-- <link href='http://fonts.googleapis.com/css?family=Inconsolata'
+ rel='stylesheet' type='text/css'> -->
+<link type="text/css" rel="stylesheet" href="ws/gxt/css/gxt-all.css">
+<link type="text/css" rel="stylesheet" href="ws/gxt/css/gxt-gray.css">
+<link type="text/css" rel="stylesheet"
+ href="ws/gxt-custom/css/gxt-op-common.css">
+<link type="text/css" rel="stylesheet" href="ws/kune-hablar.css">
+<link type="text/css" rel="stylesheet" href="ws/kune-chat.css">
+<link type="text/css" rel="stylesheet" href="ws/kune-common.css">
+<link type="text/css" rel="stylesheet"
+ href="ws/fontface/ubuntufontface.css">
+<link type="text/css" rel="stylesheet" href="ws/kune-message.css">
+<link type="text/css" rel="stylesheet" href="others/splash/style/permalink.css">
+<link type="text/css" rel="stylesheet" href="others/splash/style/stuff.css">
+<link type="text/css" rel="stylesheet" href="others/splash/style/main.css">
+<link type="text/css" rel="stylesheet" href="ws/ws.css">
+<script type="text/javascript" src="others/splash/js/gadget.js"></script>
+<script type="text/javascript" src="others/splash/js/rpc.js"></script>
+<script type="text/javascript" src="others/splash/js/common_client.js"></script>
+<script type="text/javascript" src="others/splash/js/permalink_client.js"></script>
+<script type="text/javascript" src="http://wave.google.com/gadgets/js/core:rpc.js?c=1"></script>
+
+<style type="text/css">
+
+body {
+ background-color: white;
+ color: black;
+ font-family: 'Ubuntu', Arial;
+ font-size: small;
+ overflow: hidden;
+}
+
+#kuneloading {
+ position: absolute;
+ left: 2%;
+ top: 2%;
+ z-index: 20001;
+ height: auto;
+ border: solid 2px #ccc;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+ border-radius: 10px;
+ background-color: white;
+}
+
+#kuneloading a {
+ color: #225588;
+}
+
+#kuneloading .kuneloading-indicator {
+ color: #444;
+ font: bold 13px tahoma, arial, helvetica;
+ padding: 3px 3px 8px;
+ margin: 0;
+ height: auto;
+}
+
+#kuneloading-msg {
+ font: normal 10px arial, tahoma, sans-serif;
+}
+
+#k-home-prewrap {
+ margin-top: -22px;
+}
+
+#k-home-wrapper {
+ margin-left: auto;
+ margin-right: auto;
+ position: relative;
+ width: 665px;
+ min-width: 320px;
+}
+
+#k-home-ini {
+ clear: both;
+ font-size: 28px;
+ color: #69312f;
+ text-align: justify;
+ padding: 27px 0;
+ line-height: 1.3em;
+}
+
+#k-home-ini a {
+ color: #803000;
+ font-weight: bold;
+}
+
+#k-home-ini strong {
+ font-weight: bold;
+}
+
+#k-home-stats {
+ font-size: 22px;
+ color: #c87137;
+ font-weight: bold;
+}
+
+#k-home-table {
+ display: table;
+}
+
+#k-home-header {
+ display: table-row;
+}
+
+#k-home-logo {
+ display: table-cell;
+ margin: 50px 0 22px 0;
+ float: right;
+}
+
+#k-home-summary {
+ display: table-cell;
+ font-size: 32px;
+ color: #dd8a3d;
+ font-weight: bold;
+ white-space: nowrap;
+ float: left;
+}
+
+#k-home-summary li {
+ padding-left: 41px;
+ background-repeat: no-repeat;
+ background-position: 0 .2em;
+ line-height: 45px;
+}
+
+#k-home-row {
+ display: table-row;
+}
+
+#k-home-left {
+ display: table-cell;
+}
+
+#k-home-right {
+ display: table-cell;
+}
+
+.banner {
+ margin: 30px;
+}
+</style>
+<!--[if IE 6]>
+ <link type="text/css" rel="stylesheet" href="ie6.css">
+<![endif]-->
+</head>
+<body>
+ <!-- Banner for wave errors -->
+ <div class="banner" id="banner"></div>
+ <!-- Autocomplete user/pass -->
+ <form method="post" action="javascript:void(0)" style="display: none">
+ <input type="text" id="address" name="address" value="" /> <input
+ type="password" id="password" name="password" value="" /> <input
+ type="submit" value="Login" id="login" /> <input type="submit"
+ class="wiab le button" name="signIn" id="signIn" value="Sign in">
+ </form>
+ <!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
+ <noscript>
+ <div
+ style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
+ Your web browser must have JavaScript enabled in order for this
+ application to display correctly.</div>
+ </noscript>
+ <iframe id="__gwt_historyFrame" style="width: 0; height: 0; border: 0"></iframe>
+ <iframe src="" id="__download" style="width: 0; height: 0; border: 0"></iframe>
+ <div id="kuneinitialcurtain"></div>
+ <div id="kuneloading">
+ <div class="kuneloading-indicator">
+ <img src="ws/images/kune-anim-g.gif" width="35" height="35"
+ alt="kune-loading"
+ style="margin-right: 3px; float: left; vertical-align: top;" />kune <br />
+ <span id="kuneloading-msg">Starting...</span>
+ </div>
+ </div>
+ <div id="k-home-prewrap">
+ <div id="k-home-wrapper">
+ <div id="k-home-table">
+ <div id="k-home-header">
+ <div id="k-home-logo">
+ <img src="ws/logo-big-home.png" alt="" />
+ </div>
+ <div id="k-home-summary">
+ <ul>
+ <li style="background-image: url(ws/images/kune-intro-user.png);">Comunicate with others</li>
+ <li style="background-image: url(ws/images/kune-intro-group.png);">Work in collaboration</li>
+ <li style="background-image: url(ws/images/kune-intro-world.png);">And share with the world</li>
+ </ul>
+ </div>
+ <!-- k-home-summary -->
+ </div>
+ <!-- div home-header -->
+ <div id="k-home-row">
+ <div id="k-home-left">
+ <div id="k-home-ini">
+ Welcome! This site is a Kune node. Kune, which means
+ "together" in esperanto, it's a network of interconnected
+ sites like this one, where you can <strong>communicate,
+ share, collaborate with others and create your web
+ spaces easily</strong>. <a href="#signin">Join!</a>
+ </div>
+ <!-- div home-ini -->
+ <div id="k-home-stats" style="display: none;">Latests
+ groups created</div>
+ </div>
+ <!-- div k-home-left -->
+ <div id="k-home-right">
+ <!-- div home-stats -->
+ </div>
+ <!-- div k-home-right -->
+ </div>
+ <!-- div k-home-row -->
+ </div>
+ <!-- div home-table -->
+ </div>
+ <!-- home-wrapper -->
+ </div>
+ <!-- home-prewrap -->
+</body>
+</html>
Modified: trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -10,6 +10,7 @@
@Override
public void afterChangeValueOf(final WebElement element, final WebDriver driver) {
+ sleep(200);
}
@Override
Modified: trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -34,6 +34,9 @@
import org.testng.annotations.DataProvider;
import cc.kune.core.client.auth.AnonUsersManager;
+import cc.kune.core.client.state.SiteTokens;
+import cc.kune.core.client.state.TokenUtils;
+import cc.kune.core.client.sub.SubtitlesWidget;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.selenium.login.EntityHeaderPageObject;
import cc.kune.selenium.login.LoginPageObject;
@@ -54,8 +57,9 @@
private final WebDriver webdriver;
public KuneSeleniumDefaults() {
- // baseUrl = "http://kune.beta.iepala.es/ws/?locale=en#";
- baseUrl = "http://127.0.0.1:8888/ws/?locale=es&log_level=INFO&gwt.codesvr=127.0.0.1:99…";
+ baseUrl = "http://kune.beta.iepala.es/ws/?locale=en#";
+ // baseUrl =
+ // "http://127.0.0.1:8888/ws/?locale=es&log_level=INFO&gwt.codesvr=127.0.0.1:99…";
injector = Guice.createInjector(new SeleniumModule());
webdriver = injector.getInstance(WebDriver.class);
login = injector.getInstance(LoginPageObject.class);
@@ -142,6 +146,12 @@
js.executeScript("window.resizeTo(840,770); window.moveTo(0,0);");
}
+ public void showSubtitle(final String title, final String description, final String token) {
+ gotoToken(TokenUtils.subtitle("User sign in", "", SiteTokens.SIGNIN));
+ sleep(3000);
+ webdriver.findElement(By.id(SeleniumConstants.GWTDEV + SubtitlesWidget.SUBTITLE_MANAGER_ID)).click();
+ }
+
public void sleep(final int milliseconds) {
try {
Thread.sleep(milliseconds);
Modified: trunk/src/test/java/cc/kune/selenium/SeleniumModule.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/SeleniumModule.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/test/java/cc/kune/selenium/SeleniumModule.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -47,8 +47,8 @@
@Override
protected void configure() {
- // final RemoteWebDriver driver = createChromeDriver();
- final WebDriver driver = creatFirefoxDriver();
+ final RemoteWebDriver driver = createChromeDriver();
+ // final WebDriver driver = creatFirefoxDriver();
final EventFiringWebDriver wrap = new EventFiringWebDriver(driver);
wrap.register(new CustomWebDriverEventListener());
@@ -69,7 +69,11 @@
System.setProperty("webdriver.chrome.driver", "/usr/bin/chromedriver");
final DesiredCapabilities capabilities = DesiredCapabilities.chrome();
// http://peter.sh/experiments/chromium-command-line-switches/
- capabilities.setCapability("chrome.switches", Arrays.asList("--disable-translate"));
+ capabilities.setCapability("chrome.switches", Arrays.asList("--disable-translate"
+ // ,
+ // "--load-extension=/home/YOURUSER/.config/chromium/Default/Extensions/jpjpnpmbddbjkfaccnmhnkdgjideieim/1.0.9738_0/"
+ // (tests with the gwt extension)
+ ));
capabilities.setCapability("chrome.binary", "/usr/bin/chromium-browser");
final ChromeDriver driver = new ChromeDriver(capabilities);
return driver;
Modified: trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java 2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java 2011-09-26 20:24:14 UTC (rev 1535)
@@ -59,7 +59,7 @@
@Test(dataProvider = "correctlogin")
public void signInWithToken(final String user, final String passwd) {
login.assertIsDisconnected();
- gotoToken(SiteTokens.SIGNIN);
+ showSubtitle("User sign in", "", SiteTokens.SIGNIN);
login.fillSigInInForm(user, passwd, true);
login.assertIsConnectedAs(user);
login.logout();
1
0
26 Sep '11
Author: vjrj_
Date: 2011-09-26 18:00:47 +0200 (Mon, 26 Sep 2011)
New Revision: 1534
Modified:
kune-sandbox/src/cc/kune/sandbox/client/KuneSandboxEntryPoint.java
kune-sandbox/war/kune-common.css
kune-sandbox/war/ws.css
Log:
NEW - # 127: Generate some screencast while doing automate testing
http://kune.ourproject.org/issues/ticket/127
Modified: kune-sandbox/src/cc/kune/sandbox/client/KuneSandboxEntryPoint.java
===================================================================
--- kune-sandbox/src/cc/kune/sandbox/client/KuneSandboxEntryPoint.java 2011-09-26 12:45:04 UTC (rev 1533)
+++ kune-sandbox/src/cc/kune/sandbox/client/KuneSandboxEntryPoint.java 2011-09-26 16:00:47 UTC (rev 1534)
@@ -9,8 +9,8 @@
import cc.kune.common.client.ui.dialogs.PromptTopDialog;
import cc.kune.common.client.ui.dialogs.PromptTopDialog.Builder;
import cc.kune.common.client.utils.TextUtils;
+import cc.kune.core.client.sub.SubtitlesWidget;
import cc.kune.gspace.client.GSpaceArmorImpl;
-import cc.kune.gspace.client.i18n.I18nTranslatorForm;
import cc.kune.gspace.client.tool.selector.ToolSelectorItemPanel;
import cc.kune.gspace.client.tool.selector.ToolSelectorPanel;
import cc.kune.msgs.client.CloseCallback;
@@ -19,12 +19,8 @@
import cc.kune.msgs.client.UserMessagesPresenter;
import com.google.gwt.core.client.EntryPoint;
-import com.google.gwt.event.dom.client.BlurEvent;
-import com.google.gwt.event.dom.client.BlurHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.event.dom.client.KeyPressEvent;
-import com.google.gwt.event.dom.client.KeyPressHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
@@ -41,226 +37,235 @@
*/
public class KuneSandboxEntryPoint implements EntryPoint {
- private PopupBottomPanel pop;
+ private PopupBottomPanel pop;
- /**
- * This is the entry point method.
- */
- @Override
- public void onModuleLoad() {
- testUserMessages();
- // testDialogs();
- // testToolpanel();
- // toolSelector.addWidget(new Label("Test"));
- // testTooltips();
- // testBarButtons();
+ /**
+ * This is the entry point method.
+ */
+ @Override
+ public void onModuleLoad() {
+ testUserMessages();
+ // testDialogs();
+ // testToolpanel();
+ // toolSelector.addWidget(new Label("Test"));
+ // testTooltips();
+ // testBarButtons();
- // testPromptDialog();
+ // testPromptDialog();
- // testAvatarDecorators();
- //testI18nForm();
- }
+ // testAvatarDecorators();
- private void testI18nForm() {
- I18nTranslatorForm form = new I18nTranslatorForm();
- form.setInfo("Translate this ñalsk fañ añlkds añslkdjfa ajalda ", "Take care of puntuation as ñlkasjd", "test");
- form.getBlurTraslation().addBlurHandler(new BlurHandler() {
+ // testSubWidget();
+ }
- @Override
- public void onBlur(BlurEvent event) {
+ private void testSubWidget() {
+ // String title = new String("Some big title áéíóú!");
+ // String bTitle = Base64Utils.toBase64(title.getBytes());
+ // String descr = new String("Some big description áéíóú");
+ // String bDescr = Base64Utils.toBase64(descr.getBytes());
+ //
+ // final SubtitlesWidget sub = new SubtitlesWidget();
+ // sub.setTitleText(new String(Base64Utils.fromBase64(bTitle)));
+ // sub.setDescription(new String(Base64Utils.fromBase64(bDescr)));
+ // sub.setSize(Window.getClientWidth() + "px", Window.getClientHeight() +
+ // "px");
+ // Button btn = new Button("Click me");
+ // btn.addClickHandler(new ClickHandler() {
+ // @Override
+ // public void onClick(ClickEvent event) {
+ //
+ // sub.show();
+ // }
+ // });
+ // RootPanel.get().add(btn);
+ // RootPanel.get().add(sub);
+ }
- }
- });
- form.getKeysTraslation().addKeyPressHandler(new KeyPressHandler() {
+ private void testAvatarDecorators() {
+ // BasicThumb thumb = new
+ // BasicThumb("http://kune.beta.iepala.es/others/unknown.jpg", 50, "kk",
+ // 50, false, new ClickHandler() {
+ // @Override
+ // public void onClick(ClickEvent event) {
+ // }
+ // });
+ // CoreResources res = GWT.create(CoreResources.class);
+ // AvatarDecorator avatarDecorator = new AvatarDecorator(res, thumb);
+ // avatarDecorator.setBusy();
+ // RootPanel.get().add(avatarDecorator);
+ }
- @Override
- public void onKeyPress(KeyPressEvent event) {
+ private void testPromptDialog() {
+ Builder builder = new PromptTopDialog.Builder("kkj-kk", "Some ask text?", false, true);
+ builder.width("200px").height("200px").firstButtonTitle("Create").sndButtonTitle("Cancel");
+ builder.regex(TextUtils.UNIX_NAME).regexText(
+ "The name must contain only characters, numbers and dashes");
+ PromptTopDialog diag = builder.build();
+ diag.showCentered();
+ diag.focusOnTextBox();
+ diag.getFirstBtn().addClickHandler(new ClickHandler() {
- }
- });
- RootPanel.get().add(form);
- }
+ @Override
+ public void onClick(ClickEvent event) {
+ Window.alert("ok");
+ }
+ });
+ }
- private void testAvatarDecorators() {
- // BasicThumb thumb = new
- // BasicThumb("http://kune.beta.iepala.es/others/unknown.jpg", 50, "kk",
- // 50, false, new ClickHandler() {
- // @Override
- // public void onClick(ClickEvent event) {
- // }
- // });
- // CoreResources res = GWT.create(CoreResources.class);
- // AvatarDecorator avatarDecorator = new AvatarDecorator(res, thumb);
- // avatarDecorator.setBusy();
- // RootPanel.get().add(avatarDecorator);
- }
+ private void testBarButtons() {
+ Button btn1 = new Button("Btn 1");
+ Button btn2 = new Button("Btn 2");
+ Button btn3 = new Button("Btn 3");
+ btn1.addStyleName("k-button");
+ btn1.addStyleName("k-button-left");
+ btn2.addStyleName("k-button");
+ btn2.addStyleName("k-button-center");
+ btn3.addStyleName("k-button");
+ btn3.addStyleName("k-button-right");
+ btn1.addStyleName("kune-Margin-Large-t");
+ btn2.addStyleName("kune-Margin-Large-t");
+ btn3.addStyleName("kune-Margin-Large-t");
+ btn1.addStyleName("k-fl");
+ btn2.addStyleName("k-fl");
+ btn3.addStyleName("k-fl");
+ FlowPanel vp = new FlowPanel();
+ vp.add(btn1);
+ vp.add(btn2);
+ vp.add(btn3);
+ RootPanel.get().add(vp);
+ }
- private void testPromptDialog() {
- Builder builder = new PromptTopDialog.Builder("kkj-kk", "Some ask text?", false, true);
- builder.width("200px").height("200px").firstButtonTitle("Create").sndButtonTitle("Cancel");
- builder.regex(TextUtils.UNIX_NAME).regexText("The name must contain only characters, numbers and dashes");
- PromptTopDialog diag = builder.build();
- diag.showCentered();
- diag.focusOnTextBox();
- diag.getFirstBtn().addClickHandler(new ClickHandler() {
+ private void testTooltips() {
+ final AbsolutePanel panel = new AbsolutePanel();
+ final Button button = new Button("Btn 1");
+ final Button button2 = new Button("Btn 2");
+ final Button button3 = new Button("Btn 3");
+ final Button button4 = new Button("Btn 4");
+ int clientWidth = Window.getClientWidth();
+ int clientHeight = Window.getClientHeight();
+ panel.setSize(String.valueOf(clientWidth - 10) + "px", String.valueOf(clientHeight - 10) + "px");
+ panel.add(button, 5, 5);
+ panel.add(button2, clientWidth - 60, 5);
+ panel.add(button3, 5, clientHeight - 40);
+ panel.add(button4, clientWidth - 60, clientHeight - 40);
+ Tooltip.to(button, "Some tooltip");
+ Tooltip.to(button2, "Some tooltip");
+ Tooltip.to(button3, "Some tooltip");
+ Tooltip.to(button4, "Some tooltip");
+ // DOM.setElementProperty(button2.getElement(), "position", "relative");
+ RootPanel.get().add(panel);
+ }
- @Override
- public void onClick(ClickEvent event) {
- Window.alert("ok");
- }
- });
- }
+ private void testToolpanel() {
+ ToolSelectorPanel toolSelector = new ToolSelectorPanel(new GSpaceArmorImpl(null), null);
+ ToolSelectorItemPanel toolItem1 = new ToolSelectorItemPanel();
+ toolItem1.getLabel().setText("documents");
+ ToolSelectorItemPanel toolItem2 = new ToolSelectorItemPanel();
+ toolItem2.getLabel().setText("something very longgggggg");
+ ToolSelectorItemPanel toolItem3 = new ToolSelectorItemPanel();
+ toolItem3.getLabel().setText("media");
+ toolSelector.addItem(toolItem1);
+ toolSelector.addItem(toolItem2);
+ toolSelector.addItem(toolItem3);
+ toolItem1.setSelected(true);
+ toolItem2.setSelected(false);
+ toolItem3.setSelected(false);
+ toolSelector.asWidget().setWidth("200px");
+ RootPanel.get().add(toolSelector.asWidget());
+ }
- private void testBarButtons() {
- Button btn1 = new Button("Btn 1");
- Button btn2 = new Button("Btn 2");
- Button btn3 = new Button("Btn 3");
- btn1.addStyleName("k-button");
- btn1.addStyleName("k-button-left");
- btn2.addStyleName("k-button");
- btn2.addStyleName("k-button-center");
- btn3.addStyleName("k-button");
- btn3.addStyleName("k-button-right");
- btn1.addStyleName("kune-Margin-Large-t");
- btn2.addStyleName("kune-Margin-Large-t");
- btn3.addStyleName("kune-Margin-Large-t");
- btn1.addStyleName("k-fl");
- btn2.addStyleName("k-fl");
- btn3.addStyleName("k-fl");
- FlowPanel vp = new FlowPanel();
- vp.add(btn1);
- vp.add(btn2);
- vp.add(btn3);
- RootPanel.get().add(vp);
- }
+ private void postAdd(final PopupBottomPanel pop) {
+ pop.setCenterPosition();
+ }
- private void testTooltips() {
- final AbsolutePanel panel = new AbsolutePanel();
- final Button button = new Button("Btn 1");
- final Button button2 = new Button("Btn 2");
- final Button button3 = new Button("Btn 3");
- final Button button4 = new Button("Btn 4");
- int clientWidth = Window.getClientWidth();
- int clientHeight = Window.getClientHeight();
- panel.setSize(String.valueOf(clientWidth - 10) + "px", String.valueOf(clientHeight - 10) + "px");
- panel.add(button, 5, 5);
- panel.add(button2, clientWidth - 60, 5);
- panel.add(button3, 5, clientHeight - 40);
- panel.add(button4, clientWidth - 60, clientHeight - 40);
- Tooltip.to(button, "Some tooltip");
- Tooltip.to(button2, "Some tooltip");
- Tooltip.to(button3, "Some tooltip");
- Tooltip.to(button4, "Some tooltip");
- // DOM.setElementProperty(button2.getElement(), "position", "relative");
- RootPanel.get().add(panel);
- }
+ private void postAdd(final PopupTopPanel pop) {
+ pop.setCenterPosition();
+ }
- private void testToolpanel() {
- ToolSelectorPanel toolSelector = new ToolSelectorPanel(new GSpaceArmorImpl(null), null);
- ToolSelectorItemPanel toolItem1 = new ToolSelectorItemPanel();
- toolItem1.getLabel().setText("documents");
- ToolSelectorItemPanel toolItem2 = new ToolSelectorItemPanel();
- toolItem2.getLabel().setText("something very longgggggg");
- ToolSelectorItemPanel toolItem3 = new ToolSelectorItemPanel();
- toolItem3.getLabel().setText("media");
- toolSelector.addItem(toolItem1);
- toolSelector.addItem(toolItem2);
- toolSelector.addItem(toolItem3);
- toolItem1.setSelected(true);
- toolItem2.setSelected(false);
- toolItem3.setSelected(false);
- toolSelector.asWidget().setWidth("200px");
- RootPanel.get().add(toolSelector.asWidget());
- }
+ private void testDialogs() {
+ final PopupTopPanel pop2 = new PopupTopPanel(false, true);
+ pop2.setGlassEnabled(true);
+ final BasicDialog dialog = new BasicDialog();
+ pop2.add(dialog);
- private void postAdd(final PopupBottomPanel pop) {
- pop.setCenterPosition();
- }
+ dialog.getTitleText().setText("Title");
+ dialog.setFirstBtnText("Accept");
+ dialog.setSecondBtnText("Cancel");
+ dialog.setFirstBtnTabIndex(2);
+ dialog.setSecondBtnTabIndex(3);
+ final VerticalPanel sPanel = new VerticalPanel();
+ sPanel.add(new Label("lo que sea"));
+ final Button btn = new Button("lo que sea");
+ btn.setTabIndex(1);
+ btn.setFocus(true);
+ sPanel.add(btn);
+ sPanel.setSize("300px", "150px");
+ dialog.getInnerPanel().add((IsWidget) sPanel);
+ final Label label = new Label("Test label");
+ // final NotifyLevelImages levelImg =
+ // GWT.create(NotifyLevelImages.class);
+ // dialog.getBottomPanel().add(new MessagePanel(levelImg, "kk"));
+ final MaskWidget mask = new MaskWidget();
- private void postAdd(final PopupTopPanel pop) {
- pop.setCenterPosition();
- }
+ RootPanel.get().add(label);
+ pop2.showNear(label);
+ // final String zIndex = DOM.getStyleAttribute(pop2.getElement(),
+ // "zIndex");
+ DOM.setStyleAttribute(pop.getElement(), "zIndex", "10000");
+ mask.mask(pop2, "JAarrrrr!");
+ }
- private void testDialogs() {
- final PopupTopPanel pop2 = new PopupTopPanel(false, true);
- pop2.setGlassEnabled(true);
- final BasicDialog dialog = new BasicDialog();
- pop2.add(dialog);
+ private void testUserMessages() {
+ final UserMessagesPanel panel = new UserMessagesPanel();
+ UserMessage.setFadeMills(3000);
+ UserMessage.setCloseTitle("Close message");
+ panel.setWidth("422px");
+ final UserMessagesPresenter presenter = new UserMessagesPresenter();
+ presenter.init(panel);
- dialog.getTitleText().setText("Title");
- dialog.setFirstBtnText("Accept");
- dialog.setSecondBtnText("Cancel");
- dialog.setFirstBtnTabIndex(2);
- dialog.setSecondBtnTabIndex(3);
- final VerticalPanel sPanel = new VerticalPanel();
- sPanel.add(new Label("lo que sea"));
- final Button btn = new Button("lo que sea");
- btn.setTabIndex(1);
- btn.setFocus(true);
- sPanel.add(btn);
- sPanel.setSize("300px", "150px");
- dialog.getInnerPanel().add((IsWidget) sPanel);
- final Label label = new Label("Test label");
- // final NotifyLevelImages levelImg =
- // GWT.create(NotifyLevelImages.class);
- // dialog.getBottomPanel().add(new MessagePanel(levelImg, "kk"));
- final MaskWidget mask = new MaskWidget();
+ pop = new PopupBottomPanel();
+ final CloseCallback closeCalback = new CloseCallback() {
+ @Override
+ public void onClose() {
+ pop.setCenterPosition();
+ }
+ };
+ presenter.add(NotifyLevel.info, "Title", "Lorem ipsum dolor sit amet, consectetuer adipiscing elit",
+ "", false, closeCalback);
+ postAdd(pop);
+ presenter.add(NotifyLevel.error, "Title",
+ "Lorem ipsum dolor sit amet, consectetuer adipiscing elit", "", false, closeCalback);
+ pop.add(panel);
- RootPanel.get().add(label);
- pop2.showNear(label);
- // final String zIndex = DOM.getStyleAttribute(pop2.getElement(),
- // "zIndex");
- DOM.setStyleAttribute(pop.getElement(), "zIndex", "10000");
- mask.mask(pop2, "JAarrrrr!");
- }
+ postAdd(pop);
- private void testUserMessages() {
- final UserMessagesPanel panel = new UserMessagesPanel();
- UserMessage.setFadeMills(3000);
- UserMessage.setCloseTitle("Close message");
- panel.setWidth("422px");
- final UserMessagesPresenter presenter = new UserMessagesPresenter();
- presenter.init(panel);
-
- pop = new PopupBottomPanel();
- final CloseCallback closeCalback = new CloseCallback() {
- @Override
- public void onClose() {
- pop.setCenterPosition();
- }
- };
- presenter.add(NotifyLevel.info, "Title", "Lorem ipsum dolor sit amet, consectetuer adipiscing elit", "", false,
- closeCalback);
+ final Timer time = new Timer() {
+ @Override
+ public void run() {
+ presenter.add(
+ NotifyLevel.error,
+ "",
+ "Lorem <a href='/'>ipsum</a> dolor sit amet, consectetuer adipiscing elit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit",
+ "", true, closeCalback);
postAdd(pop);
- presenter.add(NotifyLevel.error, "Title", "Lorem ipsum dolor sit amet, consectetuer adipiscing elit", "",
- false, closeCalback);
- pop.add(panel);
-
+ }
+ };
+ final Timer time2 = new Timer() {
+ @Override
+ public void run() {
+ presenter.add(NotifyLevel.important, "", "Lorem ", "", false, closeCalback);
postAdd(pop);
+ presenter.add(NotifyLevel.important, "Title", "Lorem ", "", true, closeCalback);
+ presenter.add(NotifyLevel.important, "", "Lorem ", "", true, closeCalback);
+ presenter.add(NotifyLevel.important, "", "Lorem ", "", false, closeCalback);
+ presenter.add(NotifyLevel.important, "", "Lorem ", "", false, closeCalback);
+ presenter.add(NotifyLevel.important, "", "Lorem ", "", false, closeCalback);
+ postAdd(pop);
+ }
+ };
+ time.schedule(1000);
+ time2.schedule(5000);
+ pop.show();
- final Timer time = new Timer() {
- @Override
- public void run() {
- presenter.add(
- NotifyLevel.error,
- "",
- "Lorem <a href='/'>ipsum</a> dolor sit amet, consectetuer adipiscing elit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit",
- "", true, closeCalback);
- postAdd(pop);
- }
- };
- final Timer time2 = new Timer() {
- @Override
- public void run() {
- presenter.add(NotifyLevel.important, "", "Lorem ", "", false, closeCalback);
- postAdd(pop);
- presenter.add(NotifyLevel.important, "Title", "Lorem ", "", true, closeCalback);
- postAdd(pop);
- }
- };
- time.schedule(1000);
- time2.schedule(5000);
- pop.show();
-
- }
+ }
}
Modified: kune-sandbox/war/kune-common.css
===================================================================
--- kune-sandbox/war/kune-common.css 2011-09-26 12:45:04 UTC (rev 1533)
+++ kune-sandbox/war/kune-common.css 2011-09-26 16:00:47 UTC (rev 1534)
@@ -1,412 +1,709 @@
+/* Here the styles of cc.kune.commom (reused by other projects like gadgets and so on) */
.k-popup-top-centered {
-
+
}
.k-popup-bottom-centered { /* z-index:100000; */
-
+
}
.k-floatleft,.k-fl {
- float: left;
+ float: left;
}
.k-floatright,.k-fr {
- float: right;
+ float: right;
}
.k-pointer {
- cursor: pointer;
- cursor: hand;
+ cursor: pointer;
+ cursor: hand;
}
.k-opacity80 {
- kfilter: alpha(opacity = 80);
- -moz-opacity: 0.80;
- -khtml-opacity: 0.80;
- opacity: 0.80;
+ kfilter: alpha(opacity =
+ 80);
+ -moz-opacity: 0.80;
+ -khtml-opacity: 0.80;
+ opacity: 0.80;
}
.k-opacity90 {
- kfilter: alpha(opacity = 90);
- -moz-opacity: 0.90;
- -khtml-opacity: 0.90;
- opacity: 0.90;
+ kfilter: alpha(opacity =
+ 90);
+ -moz-opacity: 0.90;
+ -khtml-opacity: 0.90;
+ opacity: 0.90;
}
.k-opacity95 {
- kfilter: alpha(opacity = 95);
- -moz-opacity: 0.95;
- -khtml-opacity: 0.95;
- opacity: 0.95;
+ kfilter: alpha(opacity =
+ 95);
+ -moz-opacity: 0.95;
+ -khtml-opacity: 0.95;
+ opacity: 0.95;
}
.gwt-PopupPanelGlass {
- background-color: #f7ebe3 !important;
- kfilter: alpha(opacity = 68) !important;
- -moz-opacity: 0.68 !important;
- -khtml-opacity: 0.68 !important;
- opacity: 0.68 !important;
+ background-color: #f7ebe3 !important;
+ kfilter: alpha(opacity =
+ 68) !important;
+ -moz-opacity: 0.68 !important;
+ -khtml-opacity: 0.68 !important;
+ opacity: 0.68 !important;
}
+.k-box-3shadow {
+ -webkit-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.5);
+ -moz-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.5);
+ box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.5);
+}
+
.k-box-5shadow {
- -webkit-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
- -moz-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
- box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
+ -webkit-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
+ -moz-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
+ box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
}
.k-box-10shadow {
- -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
- -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
- box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
+ -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
+ -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
+ box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
}
.k-bottom-5corners {
- -webkit-border-bottom-right-radius: 5px;
- -moz-border-radius-bottomright: 5px;
- border-bottom-right-radius: 5px;
- -webkit-border-bottom-left-radius: 5px;
- -moz-border-radius-bottomleft: 5px;
- border-bottom-left-radius: 5px;
+ -webkit-border-bottom-right-radius: 5px;
+ -moz-border-radius-bottomright: 5px;
+ border-bottom-right-radius: 5px;
+ -webkit-border-bottom-left-radius: 5px;
+ -moz-border-radius-bottomleft: 5px;
+ border-bottom-left-radius: 5px;
}
.k-bottom-10corners {
- -webkit-border-bottom-right-radius: 10px;
- -moz-border-radius-bottomright: 10px;
- border-bottom-right-radius: 10px;
- -webkit-border-bottom-left-radius: 10px;
- -moz-border-radius-bottomleft: 10px;
- border-bottom-left-radius: 10px;
+ -webkit-border-bottom-right-radius: 10px;
+ -moz-border-radius-bottomright: 10px;
+ border-bottom-right-radius: 10px;
+ -webkit-border-bottom-left-radius: 10px;
+ -moz-border-radius-bottomleft: 10px;
+ border-bottom-left-radius: 10px;
}
.k-top-5corners {
- -webkit-border-top-right-radius: 5px;
- -moz-border-radius-topright: 5px;
- border-top-right-radius: 5px;
- -webkit-border-top-left-radius: 5px;
- -moz-border-radius-topleft: 5px;
- border-top-left-radius: 5px;
+ -webkit-border-top-right-radius: 5px;
+ -moz-border-radius-topright: 5px;
+ border-top-right-radius: 5px;
+ -webkit-border-top-left-radius: 5px;
+ -moz-border-radius-topleft: 5px;
+ border-top-left-radius: 5px;
}
.k-top-10corners {
- -webkit-border-top-right-radius: 10px;
- -moz-border-radius-topright: 10px;
- border-top-right-radius: 10px;
- -webkit-border-top-left-radius: 10px;
- -moz-border-radius-topleft: 10px;
- border-top-left-radius: 10px;
+ -webkit-border-top-right-radius: 10px;
+ -moz-border-radius-topright: 10px;
+ border-top-right-radius: 10px;
+ -webkit-border-top-left-radius: 10px;
+ -moz-border-radius-topleft: 10px;
+ border-top-left-radius: 10px;
}
.k-2corners {
- -moz-border-radius: 2px;
- -webkit-border-radius: 2px;
- border-radius: 2px;
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
}
.k-3corners {
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
}
.k-5corners {
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
}
.k-10corners {
- -moz-border-radius: 10px;
- -webkit-border-radius: 10px;
- border-radius: 10px;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+ border-radius: 10px;
}
.k-dialog-outerp {
- background-color: #552200;
- border-top: 4px solid #000;
- padding: 22px 4px 3px 4px;
+ background-color: #552200;
+ border-top: 4px solid #000;
+ /* padding: 22px 4px 3px 4px; */
}
.k-dialog-title {
- color: #552200;
- font-size: 20px;
- font-weight: bold;
- margin: 5px 0 0 12px;
+ margin: 5px;
}
+.k-dialog-title div {
+ color: #552200;
+ font-size: 20px;
+ font-weight: bold;
+ line-height: 0.7;
+ padding: 0 0 6px 5px;
+}
+
.k-dialog-innerp {
- background-color: #FFFFFF;
- border: solid 1px #F2F2F2;
- margin: 34px 16px 20px 16px;
+ background-color: #FFFFFF;
+ border: solid 1px #F2F2F2;
+ margin: 29px 8px 0;
+ padding: 8px 11px 13px;
}
.k-dialog-btn-area {
- padding:0 15px 15px 15px;
- margin-bottom:30px;
+ padding: 0 15px 15px 15px;
+ margin-bottom: 0 -5px 30px -5px;
}
-.k-dialog-btn-area div {
- margin: 10px
+.k-dialog-btn-area button {
+ margin: 10px 5px;
}
-.k-dialog-innerp table {
- margin: 5px;
+.k-dialog-btn-area div { /* margin: 10px */
+
}
.k-dialog-btn {
- text-shadow: 1px 1px 1px #FFFFFF;
- font-weight: bold;
+ text-shadow: 1px 1px 1px #FFFFFF;
+ font-weight: bold;
+ -moz-user-select: none;
+ -khtml-user-select: none;
}
+.k-dialog-close-btn {
+ background-color: #a05a2c !important;
+ color: #181817 !important;
+ border: 0 none !important;
+ position: relative;
+ top: -26px;
+ height: 17px !important;
+ left: 1px;
+}
+
.k-dialog-firstBtn {
- float: left;
+ float: left;
}
.k-dialog-secondBtn {
- float: right;
+ float: right;
}
.k-z100000 {
- z-index: 100000;
+ z-index: 100000;
}
.k-z10000 {
- z-index: 10000;
+ z-index: 10000;
}
.k-z1000 {
- z-index: 1000;
+ z-index: 1000;
}
.oc-user-msg {
- background-color: #FFCC00;
- padding: 3px;
+ background-color: #FFCC00;
+ padding: 3px;
}
.oc-user-msg-popup {
- padding: 0px;
- border: 0px;
+ padding: 0px;
+ border: 0px;
}
.oc-floatleft {
- float: left;
+ float: left;
}
.oc-floatright {
- float: right;
+ float: right;
}
+.oc-clean,.k-clear,.oc-clear,.k-clean {
+ clear: both;
+}
+
.x-toolbar {
- background: none !important;
- border-color: transparent !important;
+ background: none !important;
+ border-color: transparent !important;
}
.oc-testico {
- background-image: url(/common/img/ico.png) !important;
- -moz-background-clip: border;
- -moz-background-inline-policy: continuous;
- -moz-background-origin: padding;
- background-attachment: scroll;
- background-color: transparent;
- background-position: 0 0;
- background-repeat: no-repeat;
- height: 16px;
- widows: 16px;
+ background-image: url(images/ico.png) !important;
+ -moz-background-clip: border;
+ -moz-background-inline-policy: continuous;
+ -moz-background-origin: padding;
+ background-attachment: scroll;
+ background-color: transparent;
+ background-position: 0 0;
+ background-repeat: no-repeat;
+ height: 16px;
+ widows: 16px;
}
-.oc-ico-pad {
- padding-left: 20px;
- white-space: normal;
-}
-
.oc-tb-spacer {
- margin: 2px;
- width: 2px;
+ margin: 2px;
+ width: 2px;
}
.oc-tb-bottom-line {
- border-bottom-color: rgb(208, 208, 208);
- border-bottom-style: solid;
- border-bottom-width: 1px;
+ border-bottom-color: rgb(208, 208, 208);
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
}
.oc-blank-toolbar {
- background: #FFF none repeat scroll 0% 50%;
+ background: #FFF none repeat scroll 0% 50%;
}
.oc-tb-sep {
- padding-top: 4px;
- padding-left: 5px;
+ padding-top: 4px;
+ padding-left: 5px;
}
.oc-transp .x-panel-body {
- background: transparent;
+ background: transparent;
}
.oc-menu {
- cursor: default;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
- -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
- border: 1 px solid #BBBBBB;
+ cursor: default;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
+ -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
+ border: 1 px solid #BBBBBB;
+ font: 16px 'Ubuntu', arial;
+ /* font-weight: bold; */
+ -webkit-border-bottom-right-radius: 5px;
+ -moz-border-radius-bottomright: 5px;
+ border-bottom-right-radius: 5px;
+ -webkit-border-bottom-left-radius: 5px;
+ -moz-border-radius-bottomleft: 5px;
+ border-bottom-left-radius: 5px;
+ background-color: #280b0b;
}
+.gwt-PopupPanel .oc-menu {
+ border: 2px solid #552200;
+ background-color: #280b0b;
+}
+
+.oc-menu .gwt-MenuBar-vertical,.gwt-MenuBar-vertical {
+ background-color: #704f4f;
+ border: 2px solid #552200;
+ padding: 3px;
+ font: 16px 'Ubuntu', arial;
+ color: white;
+ -webkit-border-top-right-radius: 5px;
+ -moz-border-radius-topright: 5px;
+ border-top-right-radius: 5px;
+ -webkit-border-bottom-right-radius: 5px;
+ -moz-border-radius-bottomright: 5px;
+ border-bottom-right-radius: 5px;
+ -webkit-border-bottom-left-radius: 5px;
+ -moz-border-radius-bottomleft: 5px;
+ border-bottom-left-radius: 5px;
+ kfilter: alpha(opacity = 90);
+ -moz-opacity: 0.90;
+ -khtml-opacity: 0.90;
+ opacity: 0.90;
+}
+
+.gwt-MenuBar .gwt-MenuItem-selected {
+ background-color: #c87137 !important;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}
+
+.gwt-MenuBar .gwt-MenuItem {
+ padding: 4px 4px 3px !important;
+}
+
+.oc-noselect {
+ -moz-user-select: none;
+ -khtml-user-select: none;
+}
+
.oc-menu .gwt-MenuItem {
- cursor: default;
- -moz-user-select: none;
- -khtml-user-select: none;
+ cursor: pointer;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ /* background-color: #c87137; */
+ color: white;
}
.oc-button {
- padding: 2px;
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
- text-decoration: none;
- vertical-align: middle;
- background-color: #F2F2F2;
+ padding: 2px;
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+ text-decoration: none;
+ vertical-align: middle;
+ background-color: #F2F2F2;
+ white-space: nowrap;
+ margin-right: 3px;
}
.oc-button:hover {
- border: 2px orange solid;
- background: #f0f0f0;
- color: #855585;
+ border: 2px orange solid;
+ background: #f0f0f0;
+ color: #855585;
}
.oc-button:active {
- border-top-color: #ffffff;
- background: #ffffff;
+ border-top-color: #ffffff;
+ background: #ffffff;
}
#oc-mshortcut {
- position: absolute;
- right: 10px;
+ position: absolute;
+ right: 10px;
}
#oc-mshortcut-hidden {
- visibility: hidden;
+ visibility: hidden;
}
#oc-mshortcut a {
- text-decoration: none;
- color: black;
+ text-decoration: none;
+ color: black;
}
.oc-user-msg {
- background-color: #FFCC00;
- padding: 3px;
+ background-color: #FFCC00;
+ padding: 3px;
}
.oc-user-msg-popup {
- padding: 0px;
- border: 0px;
+ padding: 0px;
+ border: 0px;
}
.oc-floatleft {
- float: left;
+ float: left;
}
.oc-floatright {
- float: right;
+ float: right;
}
.x-toolbar {
- background: none !important;
- border-color: transparent !important;
+ background: none !important;
+ border-color: transparent !important;
}
.oc-testico {
- background-image: url(/common/img/ico.png) !important;
- -moz-background-clip: border;
- -moz-background-inline-policy: continuous;
- -moz-background-origin: padding;
- background-attachment: scroll;
- background-color: transparent;
- background-position: 0 0;
- background-repeat: no-repeat;
- height: 16px;
- widows: 16px;
+ background-image: url(images/ico.png) !important;
+ -moz-background-clip: border;
+ -moz-background-inline-policy: continuous;
+ -moz-background-origin: padding;
+ background-attachment: scroll;
+ background-color: transparent;
+ background-position: 0 0;
+ background-repeat: no-repeat;
+ height: 16px;
+ widows: 16px;
}
-.oc-ico-pad {
- padding-left: 20px;
- white-space: normal;
+.oc-ico-pad { /* padding-right: 20px; */
+ white-space: normal;
}
.oc-tb-spacer {
- margin: 2px;
- width: 2px;
+ margin: 2px;
+ width: 2px;
}
.oc-tb-bottom-line {
- border-bottom-color: rgb(208, 208, 208);
- border-bottom-style: solid;
- border-bottom-width: 1px;
+ border-bottom-color: rgb(208, 208, 208);
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
}
.oc-blank-toolbar {
- background: #FFF none repeat scroll 0% 50%;
+ background: #FFF none repeat scroll 0% 50%;
}
.oc-tb-sep {
- padding-top: 4px;
- padding-left: 5px;
+ padding-top: 4px;
+ padding-left: 5px;
}
.oc-transp .x-panel-body {
- background: transparent;
+ background: transparent;
}
-.oc-menu {
- cursor: default;
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
- -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
- border: 1 px solid #BBBBBB;
+#oc-mshortcut {
+ position: absolute;
+ right: 10px;
}
-.oc-menu .gwt-MenuItem {
- cursor: default;
- -moz-user-select: none;
- -khtml-user-select: none;
+#oc-mshortcut-hidden {
+ visibility: hidden;
}
-.oc-button {
- padding: 2px;
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
- text-decoration: none;
- vertical-align: middle;
- background-color: #F2F2F2;
+#oc-mshortcut a {
+ text-decoration: none;
+ color: black;
}
-.oc-button:hover {
- border: 2px orange solid;
- background: #f0f0f0;
- color: #855585;
+.k-no-backimage,.k-no-backimage td {
+ background-image: none !important;
}
-.oc-button:active {
- border-top-color: #ffffff;
- background: #ffffff;
+.k-nobackcolor {
+ background-color: transparent !important;
}
-#oc-mshortcut {
- position: absolute;
- right: 10px;
+.k-noborder {
+ border: 0px !important;
}
-#oc-mshortcut-hidden {
- visibility: hidden;
+.k-space-nowrap {
+ white-space: nowrap;
}
-#oc-mshortcut a {
- text-decoration: none;
- color: black;
+.k-iconlabel-text {
+ vertical-align: top;
+ padding-left: 3px;
+ padding-right: 3px;
+ /* float: left; */
}
-.k-no-backimage,.k-no-backimage td {
- background-image: none;
-}
\ No newline at end of file
+.k-menuimtem-title {
+ color: white;
+ font-size: 15px;
+ font-weight: bold;
+ padding: 2px 3px 2px 0;
+}
+
+.k-tb-sep {
+ border-left: 1px solid #B3B3B3;
+ height: 10px;
+ margin-top: 4px;
+}
+
+.k-iconlabel-left {
+ float: left;
+}
+
+.k-iconlabel-right { /* float: left; */ /* margin-left: 5px; */
+
+}
+
+.gwt-MenuBar-vertical .subMenuIcon-selected {
+ background: none repeat scroll 0 0 #808080;
+}
+
+.gwt-Button {
+ background: url("images/hborder.png") repeat-x scroll 0 -27px
+ transparent;
+}
+
+/* tooltips, adaptation of http://jonrohan.me/guide/css/creating-triangles-in-css/ */
+.k-tooltip {
+ background-color: #FEFFF1;
+ border: 2px solid #666666;
+ line-height: 1.3em;
+ padding: 5px;
+}
+
+.k-tooltip-arrow-border {
+ border-style: solid;
+ border-width: 7px;
+ height: 0;
+ width: 0;
+ position: absolute;
+}
+
+.k-tooltip-arrow-border-n {
+ border-color: transparent transparent #666666 transparent;
+}
+
+.k-tooltip-arrow-border-s {
+ border-color: #666666 transparent transparent transparent;
+}
+
+.k-tooltip-arrow {
+ border-style: solid;
+ border-width: 7px;
+ height: 0;
+ width: 0;
+ position: absolute;
+}
+
+.k-tooltip-arrow-n {
+ border-color: transparent transparent #FEFFF1 transparent;
+}
+
+.k-tooltip-arrow-s {
+ border-color: #FEFFF1 transparent transparent transparent;
+}
+
+/* IE6 */
+.k-tooltip-arrow {
+ _border-left-color: pink;
+ _border-bottom-color: pink;
+ _border-right-color: pink;
+ _filter: chroma(color = pink);
+}
+
+/* end tooltip */
+/* tabbar */
+.gwt-DecoratedTabBar {
+
+}
+
+.gwt-DecoratedTabBar .gwt-TabBarFirst {
+ width: 5px; /* first tab distance from the left */
+}
+
+.gwt-DecoratedTabBar .gwt-TabBarRest {
+
+}
+
+.gwt-DecoratedTabBar .gwt-TabBarItem {
+ border-collapse: collapse;
+ margin-left: 6px;
+}
+
+.gwt-DecoratedTabBar .tabTopCenter {
+ padding: 0px;
+ background: #e3e3e3;
+}
+
+.gwt-DecoratedTabBar .tabTopLeft,.gwt-DecoratedTabBar .tabTopRight {
+ padding: 0px;
+ zoom: 1;
+}
+
+.gwt-DecoratedTabBar .tabTopLeftInner,.gwt-DecoratedTabBar .tabTopRightInner
+ {
+ width: 6px;
+ height: 6px;
+}
+
+.gwt-DecoratedTabBar .tabTopLeft {
+ background: url(images/corner.png) no-repeat 0px -55px;
+ -background: url(images/corner_ie6.png) no-repeat 0px -55px;
+}
+
+.gwt-DecoratedTabBar .tabTopRight {
+ background: url(images/corner.png) no-repeat -6px -55px;
+ -background: url(images/corner_ie6.png) no-repeat -6px -55px;
+}
+
+* html .gwt-DecoratedTabBar .tabTopLeftInner,* html .gwt-DecoratedTabBar .tabTopRightInner
+ {
+ width: 6px;
+ height: 6px;
+ overflow: hidden;
+}
+
+.gwt-DecoratedTabBar .tabMiddleLeft,.gwt-DecoratedTabBar .tabMiddleRight
+ {
+ width: 6px;
+ padding: 0px;
+ background: #e3e3e3 url(images/hborder.png) repeat-x 0px -1463px;
+}
+
+.gwt-DecoratedTabBar .tabMiddleLeftInner,.gwt-DecoratedTabBar .tabMiddleRightInner
+ {
+ width: 1px;
+ height: 1px;
+}
+
+.gwt-DecoratedTabBar .tabMiddleCenter {
+ padding: 0px 4px 2px 4px;
+ cursor: pointer;
+ cursor: hand;
+ color: black;
+ font-weight: bold;
+ text-align: center;
+ background: #e3e3e3 url(images/hborder.png) repeat-x 0px -1463px;
+}
+
+.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopCenter {
+ background: #747474;
+}
+
+.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopLeft {
+ background-position: 0px -61px;
+}
+
+.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopRight {
+ background-position: -6px -61px;
+}
+
+.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleLeft,.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleRight
+ {
+ background: #bcbcbc url(images/hborder.png) repeat-x 0px -2511px;
+}
+
+.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleCenter {
+ cursor: default;
+ background: #bcbcbc url(images/hborder.png) repeat-x 0px -2511px;
+ color: white;
+}
+
+.gwt-DecoratedTabBar .gwt-TabBarItem-disabled .tabMiddleCenter {
+ cursor: default;
+ color: #999999;
+}
+
+/* End tabbar */
+.k-editableLabel {
+ font-weight: bold;
+ padding: 3px
+}
+
+.k-editableLabel-high {
+ font-weight: bold;
+ background-color: #FFFBC1;
+ color: black !important;
+}
+
+.k-editableLabel-high span {
+ background-color: #FFFBC1;
+ color: black !important;
+}
+
+.k-btn-min {
+ min-width: 19px !important;
+}
+
+.k-overflow-y-scroll {
+ overflow-y: scroll;
+}
+
+.k-overflow-y-auto {
+ overflow-y: auto;
+}
+
+.k-overflow-x-scroll {
+ overflow-x: scroll;
+}
+
+.k-tab-panel {
+ padding: 10px;
+ background-color: #F2F0F0;
+ border: 1px solid #D0D0D0;
+}
+
+.k-line-through {
+ text-decoration: line-through;
+ color: gray;
+}
+
+.gwt-TextArea {
+ border: 1px solid #BBBBBB;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}
Modified: kune-sandbox/war/ws.css
===================================================================
--- kune-sandbox/war/ws.css 2011-09-26 12:45:04 UTC (rev 1533)
+++ kune-sandbox/war/ws.css 2011-09-26 16:00:47 UTC (rev 1534)
@@ -1,5 +1,5 @@
-CHARSET "UTF-8 "; body {
- background-color: white;
+CHARSET "UTF-8 "; body {
+ background-color: transparent;
color: black;
font-family: 'Ubuntu', Arial;
font-size: small;
@@ -270,14 +270,16 @@
}
-.gwt-SplitLayoutPanel .gwt-SplitLayoutPanel-HDragger {
+.gwt-SplitLayoutPanel .gwt-SplitLayoutPanel-HDragger,.gwt-SplitLayoutPanel-HDragger
+ {
background-color: transparent;
background: url("images/spliter-top.png") no-repeat scroll center bottom
transparent;
cursor: col-resize;
}
-.gwt-SplitLayoutPanel .gwt-SplitLayoutPanel-VDragger {
+.gwt-SplitLayoutPanel .gwt-SplitLayoutPanel-VDragger,.gwt-SplitLayoutPanel-VDragger
+ {
background-color: white;
background: none;
cursor: row-resize;
@@ -319,8 +321,25 @@
padding: 0 1px 0 1px;
margin: 0 0 -2px;
outline: 0 none;
+ float: left;
}
+.k-space-sel-inbox-count {
+ border: none 5px #000000;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ background-color: #99BB00;
+ color: white;
+ font-size: 10px;
+ padding: 0 0.5em;
+ cursor: pointer;
+}
+
+.k-space-sel-inbox-count-blink {
+ background-color: #ff2a2a;
+}
+
.k-sitebar-logo {
margin-top: 2px;
}
@@ -450,10 +469,41 @@
margin-right: 20px;
}
+.kune-Margin-20-b {
+ margin-bottom: 20px;
+}
+
.kune-Margin-20-l {
margin-left: 20px;
}
+.kune-Margin-10-trbl {
+ margin: 10px;
+}
+
+.kune-Margin-10-lr {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+.kune-Margin-10-tl {
+ margin-top: 10px;
+ margin-left: 10px;
+}
+
+.kune-Margin-10-tb {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+.kune-Margin-10-t {
+ margin-top: 10px;
+}
+
+.kune-Margin-10-r {
+ margin-right: 10px;
+}
+
.kune-Margin-Large-trbl {
margin: 10px;
}
@@ -481,6 +531,10 @@
margin-right: 10px;
}
+.kune-Margin-Large-b {
+ margin-bottom: 10px;
+}
+
.kune-Margin-Large-l {
margin-left: 10px;
}
@@ -690,7 +744,8 @@
.k-error-tb {
background: #FFB380 none repeat scroll 0% 50%;
/* color: #250; */
- padding: 10px;
+ padding: 7px 10px;
+ margin: 16px -20px -10px -20px;
}
.k-error-tb img {
@@ -795,7 +850,8 @@
white-space: nowrap;
}
*/
-.k-sn-mainpanel .x-btn button,.k-sn-mainpanel button,button.k-button {
+.k-sn-mainpanel .x-btn button,.k-sn-mainpanel button,button.k-button,.gwt-FileUpload,button.gwt-Button
+ {
font: 13px 'Ubuntu', arial;
border: 2px solid #CCCCCC;
cursor: pointer;
@@ -816,7 +872,7 @@
height: 28px;
}
-.k-sn-mainpanel .x-btn button:hover,.k-sn-mainpanel button:hover,button.k-button:hover
+.k-sn-mainpanel .x-btn button:hover,.k-sn-mainpanel button:hover,button.k-button:hover,button.gwt-Button:hover
{
border: 2px orange solid;
outline: 0 none;
@@ -830,8 +886,7 @@
}
.k-sn-mainpanel .x-btn button:active,.k-sn-mainpanel button:active,button.k-button:active
- {
- border-top-color: #ffffff;
+ { /* border-top-color: #ffffff; */
background: #ffffff;
}
@@ -841,6 +896,8 @@
-webkit-border-radius: 0px !important;
-moz-border-radius: 0px !important;
border-radius: 0px !important;
+ margin-left: 0px !important;
+ margin-right: 0px !important;
}
.k-button-right {
@@ -851,6 +908,7 @@
-webkit-border-bottom-left-radius: 0px !important;
-moz-border-radius-bottomleft: 0px !important;
border-bottom-left-radius: 0px !important;
+ margin-left: 0px !important;
}
.k-button-left {
@@ -861,6 +919,7 @@
-webkit-border-bottom-right-radius: 0px !important;
-moz-border-radius-bottomright: 0px !important;
border-bottom-right-radius: 0px !important;
+ margin-right: 0px !important;
}
button.k-button-center:hover {
@@ -879,6 +938,18 @@
outline: 0 none;
}
+button[disabled]:active,button[disabled],input[type="reset"][disabled]:active,input[type="reset"][disabled],input[type="button"][disabled]:active,input[type="button"][disabled],select[disabled]>input[type="button"],select[disabled]>input[type="button"]:active,input[type="submit"][disabled]:active,input[type="submit"][disabled],.k-button-disabled,button.k-button-disabled
+ {
+ color: gray !important;
+ border-color: #CCCCCC !important;
+ background: inherits !important;
+ kfilter: alpha(opacity =
+ 60) !important;
+ -moz-opacity: 0.60 !important;
+ -khtml-opacity: 0.60 !important;
+ opacity: 0.60 !important;
+}
+
/* end buttons */
.k-sn-collabslabel {
@@ -894,18 +965,19 @@
.k-sn-novisible-label {
padding: 10px;
+ width: auto !important;
}
-.k-sn-adminspanel { /* background-color: #a05a2c; */
+.k-sn-1st-panel { /* background-color: #a05a2c; */
border-bottom: 2px solid #F7EBE3;
border-top: 2px solid #F7EBE3;
}
-.k-sn-collabspanel {
- background-color: #d38d5f;
+.k-sn-2nd-spanel {
+
}
-.k-sn-pendingspanel { /* background-color: #a05a2c; */
+.k-sn-3rd-panel {
}
@@ -1016,13 +1088,17 @@
.k-elogo-l-l {
font-size: 46px;
+ line-height: 1em;
}
.k-elogo-l-m {
- font-size: 167%;
+ /* Right now the limit of size is 50 chars see EntityHeaderPresenter */
+ font-size: 181%;
+ line-height: 1.2em;
}
.k-elogo-l-s {
+ /* Not used because the limit is 50 chars (see Group.java) */
font-size: 108%;
}
@@ -1082,7 +1158,7 @@
}
.k-tool-panel {
- background-color: #DEAA87;
+
}
.k-tool-item {
@@ -1092,7 +1168,7 @@
}
.k-tool-item-focus {
- background-color: #d38d5f;
+
}
.k-tool-item-nofocus {
@@ -1100,20 +1176,28 @@
}
.k-tool-item-selected {
- background-color: #C87137;
+
}
.k-tool-item-notselected {
- background-color: inherits;
+
}
.k-def-docbtn span {
font-size: 13px !important;
}
+.k-empty-folder-panel {
+ padding: 10px;
+ width: auto;
+ height: auto;
+}
+
.k-empty-msg {
- font-size: 16px;
+ font-size: 18px;
+ /* font-weight: bold; */
font-style: italic;
+ color: #A05A2C;
}
button.k-ent-header-btn {
@@ -1145,7 +1229,8 @@
-webkit-border-bottom-left-radius: 5px;
-moz-border-radius-bottomleft: 5px;
border-bottom-left-radius: 5px;
- kfilter: alpha(opacity = 90);
+ kfilter: alpha(opacity =
+ 90);
-moz-opacity: 0.90;
-khtml-opacity: 0.90;
opacity: 0.90;
@@ -1173,6 +1258,9 @@
padding-left: 1px;
color: #B3B3B3;
background: transparent;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
}
.k-sitebarsearch-img {
@@ -1297,4 +1385,139 @@
color: #999999;
}
-/* end Decorated tabbar */
\ No newline at end of file
+/* end Decorated tabbar */
+.k-waveHolder {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+}
+
+.GWTUpld,table.GWTUpld td {
+ font-family: inherits !important;
+ font-size: 14px !important;
+}
+
+.GWTUpld .DecoratedFileUpload .gwt-Button,.GWTUpld .DecoratedFileUpload .gwt-Anchor,.GWTUpld .DecoratedFileUpload .gwt-Label
+ {
+ font-size: 14px !important;
+ white-space: nowrap;
+}
+
+.x-form-check-wrap {
+ height: inherit;;
+ line-height: inherit;
+}
+
+.k-info-links {
+ text-decoration: underline;
+ color: gray;
+ cursor: pointer;
+}
+
+/*
+ * These attributes are required to make a paragraph look like a list-item
+ * across browsers. (copied from Editor.css)
+ */
+.simulated-li {
+ display: list-item;
+ list-style-type: disc;
+ list-style-position: outside;
+}
+
+.numbered {
+ list-style-type: decimal;
+}
+
+.bullet-type-0 {
+ list-style-type: disc;
+}
+
+.bullet-type-1 {
+ list-style-type: circle;
+}
+
+.bullet-type-2 {
+ list-style-type: square;
+}
+
+.k-drop-allowed {
+ border: solid 2px transparent;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+}
+
+button.k-drop-allowed-hover,.k-drop-allowed-hover {
+ border: dashed 2px #3a9fd6 !important;
+}
+
+.k-link-icon {
+ background-image: url(images/link.gif) !important;
+}
+
+.k-options-icon {
+ background-image: url(images/emblem-system.gif) !important;
+}
+
+.k-copyleft-icon {
+ background-image: url(images/copyleft.png) !important;
+}
+
+.k-picture-icon {
+ background-image: url(images/picture.png) !important;
+}
+
+.k-film-icon {
+ background-image: url(images/film.png) !important;
+}
+
+.k-specialchars-icon {
+ background-image: url(images/specialchars.png) !important;
+}
+
+.k-info-icon {
+ background-image: url(images/info.gif) !important;
+}
+
+.k-newgroup-icon {
+ background-image: url(images/kune-icon16.png) !important;
+}
+
+.k-colors-icon {
+ background-image: url(images/colors.gif) !important;
+}
+
+.k-i18n-recommend {
+ border: 1px solid gray;
+ background-color: #F2F2F2;
+}
+
+.k-tabs .gwt-TabLayoutPanelTab {
+ background-color: #d38d5f;
+ color: #552200;
+ height: 20px !important;
+ margin: 0 2px;
+ padding: 2px;
+ cursor: pointer;
+ font-weight: bold;
+}
+
+.k-tabs .gwt-TabLayoutPanelTab-selected {
+ background-color: #552200;
+ color: #FFF;
+}
+
+.k-tabpanel-aditionalpadding {
+ padding-bottom: 27px !important;
+}
+
+.k-tabs .gwt-TabLayoutPanel,.k-tabs .gwt-TabLayoutPanelTab {
+ -webkit-border-top-right-radius: 5px;
+ -moz-border-radius-topright: 5px;
+ border-top-right-radius: 5px;
+ -webkit-border-top-left-radius: 5px;
+ -moz-border-radius-topleft: 5px;
+ border-top-left-radius: 5px;
+}
\ No newline at end of file
1
0
Author: vjrj_
Date: 2011-09-26 14:45:04 +0200 (Mon, 26 Sep 2011)
New Revision: 1533
Added:
trunk/src/main/java/cc/kune/common/client/utils/Base64Utils.java
trunk/src/main/java/cc/kune/core/client/events/SndClickEvent.java
trunk/src/main/java/cc/kune/core/client/sub/
trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java
trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java
trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.ui.xml
Removed:
trunk/src/main/java/cc/kune/chat/client/snd/SndClickEvent.java
Modified:
trunk/.classpath
trunk/pom.xml
trunk/script/mvn-eclipse.sh
trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java
trunk/src/main/java/cc/kune/chat/client/snd/KuneSoundManager.java
trunk/src/main/java/cc/kune/client/KuneGinjector.java
trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
trunk/src/main/java/cc/kune/core/client/state/HistoryTokenCallback.java
trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java
trunk/src/main/java/cc/kune/core/client/state/SiteTokens.java
trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
trunk/src/main/java/cc/kune/wave/client/inboxcount/InboxCountPresenter.java
trunk/src/main/resources/kune.properties
trunk/src/test/java/cc/kune/core/client/state/StateManagerDefaultTest.java
Log:
NEW - # 127: Generate some screencast while doing automate testing
http://kune.ourproject.org/issues/ticket/127
Modified: trunk/.classpath
===================================================================
--- trunk/.classpath 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/.classpath 2011-09-26 12:45:04 UTC (rev 1533)
@@ -11,19 +11,19 @@
<classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" sourcepath="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/appengine/appengine-api-1.0-sdk/1.3.1/appengine-api-1.0-sdk-1.3.1.jar"/>
<classpathentry kind="var" path="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box/0.3.2-SNAPSHOT/box-0.3.2-SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box-src/0.3.2-SNAPSHOT/box-src-0.3.2-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box/0.3.2/box-0.3.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box-src/0.3.2/box-src-0.3.2.jar"/>
<classpathentry kind="var" path="M2_REPO/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar"/>
<classpathentry kind="var" path="M2_REPO/c3p0/c3p0/0.9.1/c3p0-0.9.1.jar" sourcepath="M2_REPO/c3p0/c3p0/0.9.1/c3p0-0.9.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar" sourcepath="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client/0.3.2-SNAPSHOT/client-0.3.2-SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common/0.3.2-SNAPSHOT/client-common-0.3.2-SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common-src/0.3.2-SNAPSHOT/client-common-src-0.3.2-SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-scheduler-src/0.3.2-SNAPSHOT/client-scheduler-src-0.3.2-SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-src/0.3.2-SNAPSHOT/client-src-0.3.2-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client/0.3.2/client-0.3.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common/0.3.2/client-common-0.3.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common-src/0.3.2/client-common-src-0.3.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-scheduler-src/0.3.2/client-scheduler-src-0.3.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-src/0.3.2/client-src-0.3.2.jar"/>
<classpathentry kind="var" path="M2_REPO/org/cobogw/gwt/cobogw/1.3.1/cobogw-1.3.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/common-src/0.3.2-SNAPSHOT/common-src-0.3.2-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/common-src/0.3.2/common-src-0.3.2.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar" sourcepath="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-cli/commons-cli/1.2/commons-cli-1.2.jar" sourcepath="M2_REPO/commons-cli/commons-cli/1.2/commons-cli-1.2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-codec/commons-codec/1.4/commons-codec-1.4.jar" sourcepath="M2_REPO/commons-codec/commons-codec/1.4/commons-codec-1.4-sources.jar"/>
@@ -32,8 +32,8 @@
<classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar" sourcepath="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.5/commons-lang-2.5.jar" sourcepath="M2_REPO/commons-lang/commons-lang/2.5/commons-lang-2.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/communication-src/0.3.2-SNAPSHOT/communication-src-0.3.2-SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/concurrencycontrol-src/0.3.2-SNAPSHOT/concurrencycontrol-src-0.3.2-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/communication-src/0.3.2/communication-src-0.3.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/concurrencycontrol-src/0.3.2/concurrencycontrol-src-0.3.2.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sourceforge/htmlunit/crawl_htmlunit/r5662-gae/crawl_htmlunit-r5662-gae.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sourceforge/cssparser/cssparser/0.9.5/cssparser-0.9.5.jar" sourcepath="M2_REPO/net/sourceforge/cssparser/cssparser/0.9.5/cssparser-0.9.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar" sourcepath="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1-sources.jar"/>
@@ -55,10 +55,8 @@
<classpathentry kind="var" path="M2_REPO/com/allen_sauer/gwt/log/gwt-log/gwt-log/3.0.1/gwt-log-3.0.1.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-servlet/2.1.1/gwt-servlet-2.1.1.jar" sourcepath="M2_REPO/com/google/gwt/gwt-servlet/2.1.1/gwt-servlet-2.1.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-user/2.1.1/gwt-user-2.1.1.jar" sourcepath="M2_REPO/com/google/gwt/gwt-user/2.1.1/gwt-user-2.1.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/gwt-util-src/0.3.2-SNAPSHOT/gwt-util-src-0.3.2-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/gwt-util-src/0.3.2/gwt-util-src-0.3.2.jar"/>
<classpathentry kind="var" path="M2_REPO/com/allen_sauer/gwt/voices/gwt-voices/gwt-voices/2.0.0/gwt-voices-2.0.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/gwtext/gwtext/2.0.5/gwtext-2.0.5.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/gwtextux/gwtextux/0.4.0.924/gwtextux-0.4.0.924.jar"/>
<classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-all/0.5/gwtp-all-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-all/0.5/gwtp-all-0.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-clients-common/0.5/gwtp-clients-common-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-clients-common/0.5/gwtp-clients-common-0.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-crawler/0.5/gwtp-crawler-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-crawler/0.5/gwtp-crawler-0.5-sources.jar"/>
@@ -113,16 +111,16 @@
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-profile/2.0/maven-profile-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-profile/2.0/maven-profile-2.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-project/2.0/maven-project-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-project/2.0/maven-project-2.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/media-src/0.3.2-SNAPSHOT/media-src-0.3.2-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/media-src/0.3.2/media-src-0.3.2.jar"/>
<classpathentry kind="var" path="M2_REPO/org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.jar" sourcepath="M2_REPO/org/mockito/mockito-core/1.8.5/mockito-core-1.8.5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/model-src/0.3.2-SNAPSHOT/model-src-0.3.2-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/model-src/0.3.2/model-src-0.3.2.jar"/>
<classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.16/mvel2-2.0.16.jar" sourcepath="M2_REPO/org/mvel/mvel2/2.0.16/mvel2-2.0.16-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/mysql/mysql-connector-java/5.1.13/mysql-connector-java-5.1.13.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sourceforge/nekohtml/nekohtml/1.9.15/nekohtml-1.9.15.jar" sourcepath="M2_REPO/net/sourceforge/nekohtml/nekohtml/1.9.15/nekohtml-1.9.15-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar" sourcepath="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/proto-msg/0.3.2-SNAPSHOT/proto-msg-0.3.2-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/proto-msg/0.3.2/proto-msg-0.3.2.jar"/>
<classpathentry kind="var" path="M2_REPO/org/w3c/css/sac/1.3/sac-1.3.jar" sourcepath="M2_REPO/org/w3c/css/sac/1.3/sac-1.3-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium-android-driver/2.6.0/selenium-android-driver-2.6.0.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium-android-driver/2.6.0/selenium-android-driver-2.6.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium-api/2.6.0/selenium-api-2.6.0.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium-api/2.6.0/selenium-api-2.6.0-sources.jar"/>
@@ -144,16 +142,14 @@
<classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/>
<classpathentry kind="var" path="M2_REPO/org/testng/testng/6.2.1/testng-6.2.1.jar" sourcepath="M2_REPO/org/testng/testng/6.2.1/testng-6.2.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/tigase/tigase-xmltools/3.3.5/tigase-xmltools-3.3.5.jar" sourcepath="M2_REPO/tigase/tigase-xmltools/3.3.5/tigase-xmltools-3.3.5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/util-src/0.3.2-SNAPSHOT/util-src-0.3.2-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/util-src/0.3.2/util-src-0.3.2.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.jar" sourcepath="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/waveinabox-server-0.3/0.3.2-SNAPSHOT/waveinabox-server-0.3-0.3.2-SNAPSHOT.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/waveinabox-server-0.3/0.3.2/waveinabox-server-0.3-0.3.2.jar"/>
<classpathentry kind="var" path="M2_REPO/xalan/xalan/2.7.1/xalan-2.7.1.jar" sourcepath="M2_REPO/xalan/xalan/2.7.1/xalan-2.7.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
<classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar" sourcepath="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/>
<classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar" sourcepath="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/xwiki/platform/xwiki-web-gwt-dom/2.3-rc-1/xwiki-web-gwt-dom-2.3-rc-1.jar" sourcepath="M2_REPO/org/xwiki/platform/xwiki-web-gwt-dom/2.3-rc-1/xwiki-web-gwt-dom-2.3-rc-1-sources.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-
<classpathentry kind="src" path=".apt_generated" including="**/*.java"/> <classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
-</classpath>
+</classpath>
\ No newline at end of file
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/pom.xml 2011-09-26 12:45:04 UTC (rev 1533)
@@ -115,30 +115,6 @@
<url>http://kune.ourproject.org/mavenrepo/</url>
</repository>
<repository>
- <id>xwiki-releases</id>
- <name>XWiki Maven2 Remote Repository for Releases</name>
- <url>http://maven.xwiki.org/releases</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- <repository>
- <id>xwiki</id>
- <name>XWiki Repository</name>
- <url>http://maven.xwiki.org/snapshots</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- <updatePolicy>daily</updatePolicy>
- <checksumPolicy>warn</checksumPolicy>
- </snapshots>
- </repository>
- <repository>
<id>tigase</id>
<name>Tigase Repository</name>
<url>http://maven.tigase.org</url>
@@ -271,16 +247,6 @@
<artifactId>gxt-uibinder</artifactId> <version>0.6</version> </dependency> -->
<!-- cc -->
<dependency>
- <groupId>com.gwtext</groupId>
- <artifactId>gwtext</artifactId>
- <version>2.0.5</version>
- </dependency>
- <dependency>
- <groupId>com.gwtextux</groupId>
- <artifactId>gwtextux</artifactId>
- <version>0.4.0.924</version>
- </dependency>
- <dependency>
<groupId>com.allen_sauer.gwt.log.gwt-log</groupId>
<artifactId>gwt-log</artifactId>
<version>3.0.1</version>
@@ -308,14 +274,6 @@
<artifactId>jmagick</artifactId>
<version>6.2.6-0</version>
</dependency>
- <dependency>
- <groupId>org.xwiki.platform</groupId>
- <artifactId>xwiki-web-gwt-dom</artifactId>
- <version>2.3-rc-1</version>
- <!-- <version>2.0-SNAPSHOT-g164</version> -->
- <!-- <version>2.0-SNAPSHOT</version> -->
- <!-- <version>2.0-SNAPSHOT-g20s</version> -->
- </dependency>
<!-- xmpp -->
<dependency>
<groupId>com.calclab.emite</groupId>
Modified: trunk/script/mvn-eclipse.sh
===================================================================
--- trunk/script/mvn-eclipse.sh 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/script/mvn-eclipse.sh 2011-09-26 12:45:04 UTC (rev 1533)
@@ -1,3 +1,4 @@
+#mvn eclipse:eclipse -Dgwt.compiler.skip=true -o
mvn eclipse:eclipse -Dgwt.compiler.skip=true
RESULT=$?
perl -p -i -e 's/<\/classpath>//g' .classpath
Modified: trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -20,7 +20,7 @@
package cc.kune.chat.client;
import cc.kune.chat.client.ChatClientDefault.ChatClientAction;
-import cc.kune.chat.client.snd.SndClickEvent;
+import cc.kune.core.client.events.SndClickEvent;
import com.calclab.hablar.core.client.mvp.HablarEventBus;
import com.calclab.hablar.signals.client.SignalPreferences;
Modified: trunk/src/main/java/cc/kune/chat/client/snd/KuneSoundManager.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/snd/KuneSoundManager.java 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/src/main/java/cc/kune/chat/client/snd/KuneSoundManager.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -19,6 +19,8 @@
*/
package cc.kune.chat.client.snd;
+import cc.kune.core.client.events.SndClickEvent;
+
import com.calclab.hablar.signals.sound.client.SoundManager;
import com.calclab.hablar.signals.sound.client.SoundSignalsConfig;
import com.google.gwt.event.shared.EventBus;
Deleted: trunk/src/main/java/cc/kune/chat/client/snd/SndClickEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/snd/SndClickEvent.java 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/src/main/java/cc/kune/chat/client/snd/SndClickEvent.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -1,74 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.chat.client.snd;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-
-public class SndClickEvent extends GwtEvent<SndClickEvent.SndClickHandler> {
-
- public interface HasSndClickHandlers extends HasHandlers {
- HandlerRegistration addSndClickHandler(SndClickHandler handler);
- }
-
- public interface SndClickHandler extends EventHandler {
- public void onClick(SndClickEvent event);
- }
-
- private static final Type<SndClickHandler> TYPE = new Type<SndClickHandler>();
-
- public static void fire(final HasHandlers source) {
- source.fireEvent(new SndClickEvent());
- }
-
- public static Type<SndClickHandler> getType() {
- return TYPE;
- }
-
- public SndClickEvent() {
- }
-
- @Override
- protected void dispatch(final SndClickHandler handler) {
- handler.onClick(this);
- }
-
- @Override
- public boolean equals(final Object obj) {
- return super.equals(obj);
- }
-
- @Override
- public Type<SndClickHandler> getAssociatedType() {
- return TYPE;
- }
-
- @Override
- public int hashCode() {
- return super.hashCode();
- }
-
- @Override
- public String toString() {
- return "SndClickEvent[" + "]";
- }
-}
Modified: trunk/src/main/java/cc/kune/client/KuneGinjector.java
===================================================================
--- trunk/src/main/java/cc/kune/client/KuneGinjector.java 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/src/main/java/cc/kune/client/KuneGinjector.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -49,13 +49,14 @@
import cc.kune.core.client.state.SiteTokenListeners;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.client.state.TokenMatcher;
+import cc.kune.core.client.sub.SubtitlesManager;
import cc.kune.core.client.ws.CorePresenter;
import cc.kune.core.client.ws.entheader.EntityHeaderPresenter;
import cc.kune.core.shared.i18n.I18nTranslationService;
import cc.kune.docs.client.DocsGinModule;
import cc.kune.docs.client.DocsGinjector;
+import cc.kune.events.client.EventsGinModule;
import cc.kune.events.client.EventsGinjector;
-import cc.kune.events.client.EventsGinModule;
import cc.kune.gspace.client.GSpaceGinModule;
import cc.kune.gspace.client.GSpaceGinjector;
import cc.kune.lists.client.ListsGinModule;
@@ -143,6 +144,8 @@
StateManager getStateManager();
+ AsyncProvider<SubtitlesManager> getSubtitlesPresenter();
+
TokenMatcher getTokenMatcher();
AsyncProvider<UserConfirmPresenter> getUserConfirmPresenter();
@@ -152,4 +155,5 @@
WaveParts getWaveParts();
XMLActionsParser getXmlActionsParser();
+
}
Added: trunk/src/main/java/cc/kune/common/client/utils/Base64Utils.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/utils/Base64Utils.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/utils/Base64Utils.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -0,0 +1,208 @@
+/*
+ * Copyright 2009 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package cc.kune.common.client.utils;
+
+/**
+ * A utility to decode and encode byte arrays as Strings, using only "safe"
+ * characters.
+ */
+public class Base64Utils {
+
+ /**
+ * An array mapping size but values to the characters that will be used to
+ * represent them. Note that this is not identical to the set of characters
+ * used by MIME-Base64.
+ */
+ private static final char[] base64Chars = new char[] {
+ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
+ 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b',
+ 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
+ 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3',
+ '4', '5', '6', '7', '8', '9', '$', '_'};
+
+ /**
+ * An array mapping legal base 64 characters [a-zA-Z0-9$_] to their associated
+ * 6-bit values. The source indices will be given by 7-bit ASCII characters,
+ * thus the array size needs to be 128 (actually 123 would suffice for the
+ * given set of characters in use).
+ */
+ private static final byte[] base64Values = new byte[128];
+
+ /**
+ * Initialize the base 64 encoder values.
+ */
+ static {
+ // Invert the mapping (i -> base64Chars[i])
+ for (int i = 0; i < base64Chars.length; i++) {
+ base64Values[base64Chars[i]] = (byte) i;
+ }
+ }
+
+ /**
+ * Decode a base64 string into a byte array.
+ *
+ * @param data the encoded data.
+ * @return a byte array.
+ * @see #fromBase64(String)
+ */
+ public static byte[] fromBase64(String data) {
+ if (data == null) {
+ return null;
+ }
+
+ int len = data.length();
+ assert (len % 4) == 0;
+
+ if (len == 0) {
+ return new byte[0];
+ }
+
+ char[] chars = new char[len];
+ data.getChars(0, len, chars, 0);
+
+ int olen = 3 * (len / 4);
+ if (chars[len - 2] == '=') {
+ --olen;
+ }
+ if (chars[len - 1] == '=') {
+ --olen;
+ }
+
+ byte[] bytes = new byte[olen];
+
+ int iidx = 0;
+ int oidx = 0;
+ while (iidx < len) {
+ int c0 = base64Values[chars[iidx++] & 0xff];
+ int c1 = base64Values[chars[iidx++] & 0xff];
+ int c2 = base64Values[chars[iidx++] & 0xff];
+ int c3 = base64Values[chars[iidx++] & 0xff];
+ int c24 = (c0 << 18) | (c1 << 12) | (c2 << 6) | c3;
+
+ bytes[oidx++] = (byte) (c24 >> 16);
+ if (oidx == olen) {
+ break;
+ }
+ bytes[oidx++] = (byte) (c24 >> 8);
+ if (oidx == olen) {
+ break;
+ }
+ bytes[oidx++] = (byte) c24;
+ }
+
+ return bytes;
+ }
+
+ /**
+ * Decode a base64 string into a long value.
+ */
+ public static long longFromBase64(String value) {
+ int pos = 0;
+ long longVal = base64Values[value.charAt(pos++)];
+ int len = value.length();
+ while (pos < len) {
+ longVal <<= 6;
+ longVal |= base64Values[value.charAt(pos++)];
+ }
+ return longVal;
+ }
+
+ /**
+ * Converts a byte array into a base 64 encoded string. Null is encoded as
+ * null, and an empty array is encoded as an empty string. Otherwise, the byte
+ * data is read 3 bytes at a time, with bytes off the end of the array padded
+ * with zeros. Each 24-bit chunk is encoded as 4 characters from the sequence
+ * [A-Za-z0-9$_]. If one of the source positions consists entirely of padding
+ * zeros, an '=' character is used instead.
+ *
+ * @param data a byte array, which may be null or empty
+ * @return a String
+ */
+ public static String toBase64(byte[] data) {
+ if (data == null) {
+ return null;
+ }
+
+ int len = data.length;
+ if (len == 0) {
+ return "";
+ }
+
+ int olen = 4 * ((len + 2) / 3);
+ char[] chars = new char[olen];
+
+ int iidx = 0;
+ int oidx = 0;
+ int charsLeft = len;
+ while (charsLeft > 0) {
+ int b0 = data[iidx++] & 0xff;
+ int b1 = (charsLeft > 1) ? data[iidx++] & 0xff : 0;
+ int b2 = (charsLeft > 2) ? data[iidx++] & 0xff : 0;
+ int b24 = (b0 << 16) | (b1 << 8) | b2;
+
+ int c0 = (b24 >> 18) & 0x3f;
+ int c1 = (b24 >> 12) & 0x3f;
+ int c2 = (b24 >> 6) & 0x3f;
+ int c3 = b24 & 0x3f;
+
+ chars[oidx++] = base64Chars[c0];
+ chars[oidx++] = base64Chars[c1];
+ chars[oidx++] = (charsLeft > 1) ? base64Chars[c2] : '=';
+ chars[oidx++] = (charsLeft > 2) ? base64Chars[c3] : '=';
+
+ charsLeft -= 3;
+ }
+
+ return new String(chars);
+ }
+
+ /**
+ * Return a string containing a base-64 encoded version of the given long
+ * value. Leading groups of all zero bits are omitted.
+ */
+ public static String toBase64(long value) {
+ // Convert to ints early to avoid need for long ops
+ int low = (int) (value & 0xffffffff);
+ int high = (int) (value >> 32);
+
+ StringBuilder sb = new StringBuilder();
+ boolean haveNonZero = base64Append(sb, (high >> 28) & 0xf, false);
+ haveNonZero = base64Append(sb, (high >> 22) & 0x3f, haveNonZero);
+ haveNonZero = base64Append(sb, (high >> 16) & 0x3f, haveNonZero);
+ haveNonZero = base64Append(sb, (high >> 10) & 0x3f, haveNonZero);
+ haveNonZero = base64Append(sb, (high >> 4) & 0x3f, haveNonZero);
+ int v = ((high & 0xf) << 2) | ((low >> 30) & 0x3);
+ haveNonZero = base64Append(sb, v, haveNonZero);
+ haveNonZero = base64Append(sb, (low >> 24) & 0x3f, haveNonZero);
+ haveNonZero = base64Append(sb, (low >> 18) & 0x3f, haveNonZero);
+ haveNonZero = base64Append(sb, (low >> 12) & 0x3f, haveNonZero);
+ base64Append(sb, (low >> 6) & 0x3f, haveNonZero);
+ base64Append(sb, low & 0x3f, true);
+
+ return sb.toString();
+ }
+
+ private static boolean base64Append(StringBuilder sb, int digit,
+ boolean haveNonZero) {
+ if (digit > 0) {
+ haveNonZero = true;
+ }
+ if (haveNonZero) {
+ sb.append(base64Chars[digit]);
+ }
+ return haveNonZero;
+ }
+}
Modified: trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -102,6 +102,8 @@
import cc.kune.core.client.state.StateManager;
import cc.kune.core.client.state.StateManagerDefault;
import cc.kune.core.client.state.TokenMatcher;
+import cc.kune.core.client.sub.SubtitlesManager;
+import cc.kune.core.client.sub.SubtitlesWidget;
import cc.kune.core.client.ws.CorePresenter;
import cc.kune.core.client.ws.CoreViewImpl;
import cc.kune.core.client.ws.entheader.EntityHeader;
@@ -175,6 +177,8 @@
RegisterPresenter.RegisterProxy.class);
bindPresenter(UserConfirmPresenter.class, UserConfirmPresenter.UserConfirmView.class,
UserConfirmPanel.class, UserConfirmPresenter.UserConfirmProxy.class);
+ bindPresenter(SubtitlesManager.class, SubtitlesManager.SubtitlesView.class,
+ SubtitlesWidget.class, SubtitlesManager.SubtitlesProxy.class);
bind(UserPassAutocompleteManager.class).to(UserPassAutocompleteManagerImpl.class).in(Singleton.class);
bind(SignIn.class).to(SignInPresenter.class).in(Singleton.class);
Copied: trunk/src/main/java/cc/kune/core/client/events/SndClickEvent.java (from rev 1531, trunk/src/main/java/cc/kune/chat/client/snd/SndClickEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/SndClickEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/events/SndClickEvent.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -0,0 +1,74 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public class SndClickEvent extends GwtEvent<SndClickEvent.SndClickHandler> {
+
+ public interface HasSndClickHandlers extends HasHandlers {
+ HandlerRegistration addSndClickHandler(SndClickHandler handler);
+ }
+
+ public interface SndClickHandler extends EventHandler {
+ public void onClick(SndClickEvent event);
+ }
+
+ private static final Type<SndClickHandler> TYPE = new Type<SndClickHandler>();
+
+ public static void fire(final HasHandlers source) {
+ source.fireEvent(new SndClickEvent());
+ }
+
+ public static Type<SndClickHandler> getType() {
+ return TYPE;
+ }
+
+ public SndClickEvent() {
+ }
+
+ @Override
+ protected void dispatch(final SndClickHandler handler) {
+ handler.onClick(this);
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ return super.equals(obj);
+ }
+
+ @Override
+ public Type<SndClickHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ public int hashCode() {
+ return super.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "SndClickEvent[" + "]";
+ }
+}
Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -86,7 +86,7 @@
this.groupOptions = groupOptions;
stateManager.addSiteToken(SiteTokens.NEWGROUP, new HistoryTokenCallback() {
@Override
- public void onHistoryToken() {
+ public void onHistoryToken(final String token) {
doNewGroup();
}
});
Modified: trunk/src/main/java/cc/kune/core/client/state/HistoryTokenCallback.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/HistoryTokenCallback.java 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/src/main/java/cc/kune/core/client/state/HistoryTokenCallback.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -21,6 +21,6 @@
public interface HistoryTokenCallback {
- void onHistoryToken();
+ void onHistoryToken(String token);
}
Modified: trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -27,6 +27,7 @@
import cc.kune.core.client.sitebar.AboutKuneDialog;
import cc.kune.core.client.sitebar.spaces.Space;
import cc.kune.core.client.sitebar.spaces.SpaceSelectEvent;
+import cc.kune.core.client.sub.SubtitlesManager;
import cc.kune.gspace.client.i18n.I18nTranslator;
import com.google.gwt.event.shared.EventBus;
@@ -40,56 +41,58 @@
private final Provider<NewGroup> newGroup;
private final Provider<Register> register;
private final Provider<SignIn> signIn;
+ private final Provider<SubtitlesManager> subProvider;
private final Provider<I18nTranslator> translator;
@Inject
public SiteTokenListeners(final Session session, final EventBus eventBus,
final Provider<SignIn> signIn, final Provider<Register> register,
final Provider<NewGroup> newGroup, final Provider<AboutKuneDialog> aboutKuneDialog,
- final Provider<I18nTranslator> translator) {
+ final Provider<I18nTranslator> translator, final Provider<SubtitlesManager> subProvider) {
this.eventBus = eventBus;
this.signIn = signIn;
this.register = register;
this.newGroup = newGroup;
this.aboutKuneDialog = aboutKuneDialog;
this.translator = translator;
+ this.subProvider = subProvider;
putValues();
}
private void putValues() {
put(SiteTokens.HOME, new HistoryTokenCallback() {
@Override
- public void onHistoryToken() {
+ public void onHistoryToken(final String token) {
SpaceSelectEvent.fire(eventBus, Space.homeSpace);
}
});
put(SiteTokens.WAVEINBOX, new HistoryTokenCallback() {
@Override
- public void onHistoryToken() {
+ public void onHistoryToken(final String token) {
SpaceSelectEvent.fire(eventBus, Space.userSpace);
}
});
put(SiteTokens.SIGNIN, new HistoryTokenCallback() {
@Override
- public void onHistoryToken() {
+ public void onHistoryToken(final String token) {
signIn.get().showSignInDialog();
}
});
put(SiteTokens.REGISTER, new HistoryTokenCallback() {
@Override
- public void onHistoryToken() {
+ public void onHistoryToken(final String token) {
register.get().doRegister();
}
});
put(SiteTokens.NEWGROUP, new HistoryTokenCallback() {
@Override
- public void onHistoryToken() {
+ public void onHistoryToken(final String token) {
newGroup.get().doNewGroup();
}
});
put(SiteTokens.ABOUTKUNE, new HistoryTokenCallback() {
@Override
- public void onHistoryToken() {
+ public void onHistoryToken(final String token) {
// FIXME, something to come back
aboutKuneDialog.get().showCentered();
}
@@ -97,9 +100,15 @@
put(SiteTokens.TRANSLATE, new HistoryTokenCallback() {
// FIXME, something to come back
@Override
- public void onHistoryToken() {
+ public void onHistoryToken(final String token) {
translator.get().show();
}
});
+ put(SiteTokens.SUBTITLES, new HistoryTokenCallback() {
+ @Override
+ public void onHistoryToken(final String token) {
+ subProvider.get().show(token);
+ }
+ });
}
}
Modified: trunk/src/main/java/cc/kune/core/client/state/SiteTokens.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/SiteTokens.java 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/src/main/java/cc/kune/core/client/state/SiteTokens.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -28,26 +28,28 @@
*
*/
public final class SiteTokens {
- public static final String ABOUTKUNE = "about";
- public final static String GROUP_HOME = "";
- public final static String HOME = "home";
- public final static String NEWGROUP = "newgroup";
- public static final String PREVIEW = "preview";
- public final static String REGISTER = "register";
- public final static String SIGNIN = "signin";
- public final static String TRANSLATE = "translate";
- public final static String WAVEINBOX = "inbox";
+ public static final String ABOUTKUNE = "about";
+ public final static String GROUP_HOME = "";
+ public final static String HOME = "home";
+ public final static String NEWGROUP = "newgroup";
+ public static final String PREVIEW = "preview";
+ public final static String REGISTER = "register";
+ public final static String SIGNIN = "signin";
+ public final static String SUBTITLES = "sub";
+ public final static String TRANSLATE = "translate";
+ public final static String WAVEINBOX = "inbox";
- @Inject
- public SiteTokens(final ReservedWordsRegistryDTO reserverdWords) {
- reserverdWords.add(ABOUTKUNE);
- reserverdWords.add(GROUP_HOME);
- reserverdWords.add(HOME);
- reserverdWords.add(NEWGROUP);
- reserverdWords.add(PREVIEW);
- reserverdWords.add(REGISTER);
- reserverdWords.add(SIGNIN);
- reserverdWords.add(TRANSLATE);
- reserverdWords.add(WAVEINBOX);
- }
+ @Inject
+ public SiteTokens(final ReservedWordsRegistryDTO reserverdWords) {
+ reserverdWords.add(ABOUTKUNE);
+ reserverdWords.add(GROUP_HOME);
+ reserverdWords.add(HOME);
+ reserverdWords.add(NEWGROUP);
+ reserverdWords.add(PREVIEW);
+ reserverdWords.add(REGISTER);
+ reserverdWords.add(SIGNIN);
+ reserverdWords.add(TRANSLATE);
+ reserverdWords.add(WAVEINBOX);
+ reserverdWords.add(SUBTITLES);
+ }
}
Modified: trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -266,8 +266,11 @@
SpaceConfEvent.fire(eventBus, Space.groupSpace, sndToken);
SpaceConfEvent.fire(eventBus, Space.publicSpace, TokenUtils.preview(sndToken));
onHistoryChanged(new StateToken(sndToken));
+ } else if (firstToken.equals(SiteTokens.SUBTITLES)) {
+ siteTokens.get(SiteTokens.SUBTITLES).onHistoryToken(
+ tokenMatcher.getRedirect(newHistoryToken).getRight());
} else if (firstToken.equals(SiteTokens.NEWGROUP)) {
- siteTokens.get(SiteTokens.NEWGROUP).onHistoryToken();
+ siteTokens.get(SiteTokens.NEWGROUP).onHistoryToken(newHistoryToken);
} else if (firstToken.equals(SiteTokens.SIGNIN)) {
if (session.isLogged()) {
// We are logged, then redirect:
@@ -275,7 +278,7 @@
processHistoryToken(sndToken);
} else {
// We have to loggin
- siteTokens.get(SiteTokens.SIGNIN).onHistoryToken();
+ siteTokens.get(SiteTokens.SIGNIN).onHistoryToken(newHistoryToken);
}
}
} else if (tokenMatcher.isWaveToken(newHistoryToken)) {
@@ -312,7 +315,7 @@
// SpaceSelectEvent.fire(eventBus, Space.groupSpace);
}
// Fire the listener of this #hash token
- tokenListener.onHistoryToken();
+ tokenListener.onHistoryToken(newHistoryToken);
}
} else {
resumedHistoryToken = newHistoryToken;
Added: trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -0,0 +1,51 @@
+package cc.kune.core.client.sub;
+
+import cc.kune.common.client.utils.Base64Utils;
+import cc.kune.core.client.state.StateManager;
+
+import com.google.gwt.event.shared.EventBus;
+import com.google.inject.Inject;
+import com.gwtplatform.mvp.client.Presenter;
+import com.gwtplatform.mvp.client.View;
+import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit;
+import com.gwtplatform.mvp.client.proxy.Proxy;
+import com.gwtplatform.mvp.client.proxy.RevealRootContentEvent;
+
+public class SubtitlesManager extends
+ Presenter<SubtitlesManager.SubtitlesView, SubtitlesManager.SubtitlesProxy> {
+
+ @ProxyCodeSplit
+ public interface SubtitlesProxy extends Proxy<SubtitlesManager> {
+ }
+
+ public interface SubtitlesView extends View {
+
+ void setDescription(String descr);
+
+ void setTitleText(String text);
+
+ void show();
+
+ }
+ private final StateManager stateManager;
+
+ @Inject
+ public SubtitlesManager(final EventBus eventBus, final SubtitlesView view, final SubtitlesProxy proxy,
+ final StateManager stateManager) {
+ super(eventBus, view, proxy);
+ this.stateManager = stateManager;
+ }
+
+ @Override
+ protected void revealInParent() {
+ RevealRootContentEvent.fire(this, this);
+ }
+
+ public void show(final String token) {
+ final String[] params = token.split("\\|");
+ getView().setTitleText(new String(Base64Utils.fromBase64(params[0])));
+ getView().setDescription(new String(Base64Utils.fromBase64(params[1])));
+ getView().show();
+ stateManager.gotoHistoryToken(params[2]);
+ }
+}
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -0,0 +1,108 @@
+package cc.kune.core.client.sub;
+
+import org.adamtacy.client.ui.effects.events.EffectCompletedEvent;
+import org.adamtacy.client.ui.effects.events.EffectCompletedHandler;
+import org.adamtacy.client.ui.effects.examples.Show;
+import org.adamtacy.client.ui.effects.examples.SlideRight;
+
+import cc.kune.core.client.sub.SubtitlesManager.SubtitlesView;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.logical.shared.ResizeEvent;
+import com.google.gwt.event.logical.shared.ResizeHandler;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.Event;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.InlineLabel;
+import com.google.gwt.user.client.ui.PopupPanel;
+import com.google.gwt.user.client.ui.Widget;
+import com.gwtplatform.mvp.client.ViewImpl;
+
+public class SubtitlesWidget extends ViewImpl implements SubtitlesView {
+
+ interface SubtitlesWidgetUiBinder extends UiBinder<Widget, SubtitlesWidget> {
+ }
+
+ public static final String SUBTITLE_MANAGER_ID = "k-subt-widget";
+
+ private static SubtitlesWidgetUiBinder uiBinder = GWT.create(SubtitlesWidgetUiBinder.class);
+
+ @UiField
+ InlineLabel description;
+ private final PopupPanel popup;
+ private boolean showing;
+ @UiField
+ InlineLabel title;
+ private final Widget widget;
+
+ public SubtitlesWidget() {
+ popup = new PopupPanel(false, false);
+ popup.ensureDebugId(SUBTITLE_MANAGER_ID);
+ widget = uiBinder.createAndBindUi(this);
+ popup.addDomHandler(new ClickHandler() {
+ @Override
+ public void onClick(final ClickEvent event) {
+ if (showing) {
+ final SlideRight slideAtEnd = new SlideRight(popup.getElement());
+ slideAtEnd.invert();
+ slideAtEnd.setDuration(2);
+ slideAtEnd.play();
+ // final Fade fadeAtEnd = new Fade(popup.getElement());
+ // fadeAtEnd.setDuration(2);
+ // fadeAtEnd.play();
+ slideAtEnd.addEffectCompletedHandler(new EffectCompletedHandler() {
+ @Override
+ public void onEffectCompleted(final EffectCompletedEvent event) {
+ popup.hide();
+ }
+ });
+ showing = false;
+ }
+ }
+ }, ClickEvent.getType());
+ Window.addResizeHandler(new ResizeHandler() {
+ @Override
+ public void onResize(final ResizeEvent event) {
+ setSize(event.getWidth(), event.getHeight());
+ }
+ });
+ }
+
+ @Override
+ public Widget asWidget() {
+ return popup;
+ }
+
+ @Override
+ public void setDescription(final String descr) {
+ description.setText(descr);
+ }
+
+ private void setSize(final int width, final int height) {
+ popup.setSize(width + "px", height + "px");
+ }
+
+ @Override
+ public void setTitleText(final String text) {
+ title.setText(text);
+ }
+
+ @Override
+ public void show() {
+ popup.setWidget(widget);
+ setSize(Window.getClientWidth(), Window.getClientHeight());
+ popup.show();
+ final Show showAtIni = new Show(popup.getElement());
+ showAtIni.setDuration(3);
+ showAtIni.play();
+ final SlideRight slideAtIni = new SlideRight(popup.getElement());
+ slideAtIni.setDuration(3);
+ slideAtIni.play();
+ popup.sinkEvents(Event.MOUSEEVENTS);
+ this.showing = true;
+ }
+
+}
Added: trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.ui.xml (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.ui.xml 2011-09-26 12:45:04 UTC (rev 1533)
@@ -0,0 +1,80 @@
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+ xmlns:g="urn:import:com.google.gwt.user.client.ui">
+ <ui:style>
+ .mask {
+
+ }
+
+ .k-subtitles-title {
+ font-size: 48px;
+ color: #FFF; /* #C87137; */
+ font-weight: bold;
+ float: left;
+ padding-left: 40px;
+ }
+
+ .k-subtitles-panel {
+ background: none repeat scroll 0 0 #69312F;
+ border-radius: 0px 5px 50px 0px;
+ display: table;
+ position: relative;
+ overflow: hidden;
+ }
+
+ .k-sutitles-child-panel {
+ top: 50%;
+ display: table-cell;
+ vertical-align: middle;
+ }
+
+ .k-sutitles-center-panel {
+ position: relative;
+ top: -50%;
+ }
+
+ .k-subtitles-description {
+ clear: both;
+ float: left;
+ font-size: 36px;
+ color: white;
+ padding-left: 40px;
+ }
+
+ /* http://stackoverflow.com/questions/637921/opacity-of-background-but-not-the… */
+ .k-subtitles-mask {
+ background-color: rgb(255, 255, 255);
+ -moz-opacity: 0.78 !important;
+ -khtml-opacity: 0.78 !important;
+ opacity: 0.78 !important;
+ }
+ </ui:style>
+
+
+ <g:LayoutPanel width="100%" height="100%" ui:field="mainPanel">
+ <g:layer left="0px" width="100.0pct" top="0px" height="100.0pct">
+ <g:SimplePanel styleName="{style.mask}" ui:field="frame"
+ width="100%" height="100%"/>
+ </g:layer>
+ <g:layer left="0px" width="100.0pct" top="0px" height="100.0pct">
+ <g:HTMLPanel ui:field="mask" styleName="{style.k-subtitles-mask}"
+ width="100%" height="100%"/>
+ </g:layer>
+ <g:layer left="0" width="90%" height="120px" bottom="80px">
+ <g:FlowPanel width="100%" height="120px" ui:field="messagePanel"
+ addStyleNames="{style.k-subtitles-panel}">
+ <g:FlowPanel styleName="{style.k-sutitles-child-panel}">
+ <g:FlowPanel styleName="{style.k-sutitles-center-panel}">
+ <g:SimplePanel addStyleNames="k-subtitles-icon">
+ <g:Image ui:field="icon"/>
+ </g:SimplePanel>
+ <g:InlineLabel ui:field="title"
+ addStyleNames="{style.k-subtitles-title}"/>
+ <g:InlineLabel ui:field="description"
+ addStyleNames="{style.k-subtitles-description}"/>
+ </g:FlowPanel>
+ </g:FlowPanel>
+ </g:FlowPanel>
+ </g:layer>
+ </g:LayoutPanel>
+</ui:UiBinder>
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/wave/client/inboxcount/InboxCountPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/inboxcount/InboxCountPresenter.java 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/src/main/java/cc/kune/wave/client/inboxcount/InboxCountPresenter.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -7,8 +7,8 @@
import org.waveprotocol.box.webclient.search.Search;
import org.waveprotocol.box.webclient.search.Search.Listener;
-import cc.kune.chat.client.snd.SndClickEvent;
import cc.kune.core.client.events.NewUserRegisteredEvent;
+import cc.kune.core.client.events.SndClickEvent;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.UserSignInOrSignOutEvent;
import cc.kune.core.client.state.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
Modified: trunk/src/main/resources/kune.properties
===================================================================
--- trunk/src/main/resources/kune.properties 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/src/main/resources/kune.properties 2011-09-26 12:45:04 UTC (rev 1533)
@@ -36,8 +36,8 @@
### Other params
-# Reserved words to avoid it's use in the client side for user and group names
-kune.server.names.reservedwords = root,adm,kune,fuck
+# Reserved words to avoid it's use in the client side for user and group names (see client tokens used in SiteTokens)
+kune.server.names.reservedwords = root,adm,kune,fuck,about,home,newgroup,preview,register,signin,translate,inbox,sub
# If defined create a copy of this wave as welcome to new users
# kune.site.welcomewave = w+rtackLTkDCA
Modified: trunk/src/test/java/cc/kune/core/client/state/StateManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/client/state/StateManagerDefaultTest.java 2011-09-24 18:53:50 UTC (rev 1532)
+++ trunk/src/test/java/cc/kune/core/client/state/StateManagerDefaultTest.java 2011-09-26 12:45:04 UTC (rev 1533)
@@ -43,248 +43,277 @@
public class StateManagerDefaultTest {
- private static final String HASH = "someUserHash";
- private BeforeActionListener beforeChangeListener1;
- private BeforeActionListener beforeChangeListener2;
- private ContentCache contentProvider;
- private EventBusTester eventBus;
- private GroupChangedHandler groupChangeHandler;
- private HistoryWrapper history;
- private Session session;
- private SiteTokenListeners siteTokens;
- private StateAbstractDTO state;
- private StateChangedHandler stateChangeHandler;
- private StateManagerDefault stateManager;
- private TokenMatcher tokenMatcher;
- private ToolChangedHandler toolChangeHandler;
+ private static final String HASH = "someUserHash";
+ private BeforeActionListener beforeChangeListener1;
+ private BeforeActionListener beforeChangeListener2;
+ private ContentCache contentProvider;
+ private EventBusTester eventBus;
+ private GroupChangedHandler groupChangeHandler;
+ private HistoryWrapper history;
+ private Session session;
+ private SiteTokenListeners siteTokens;
+ private StateAbstractDTO state;
+ private StateChangedHandler stateChangeHandler;
+ private StateManagerDefault stateManager;
+ private TokenMatcher tokenMatcher;
+ private ToolChangedHandler toolChangeHandler;
- @Before
- public void before() {
- contentProvider = Mockito.mock(ContentCache.class);
- session = Mockito.mock(Session.class);
- history = Mockito.mock(HistoryWrapper.class);
- tokenMatcher = Mockito.mock(TokenMatcher.class);
- siteTokens = Mockito.mock(SiteTokenListeners.class);
- eventBus = new EventBusTester();
- Mockito.when(session.getUserHash()).thenReturn(HASH);
- Mockito.doAnswer(new Answer<Object>() {
- @Override
- public Object answer(final InvocationOnMock invocation) throws Throwable {
- eventBus.addHandler(UserSignInEvent.getType(), (UserSignInHandler) invocation.getArguments()[1]);
- return null;
- }
- }).when(session).onUserSignIn(anyBoolean(), (UserSignInHandler) Mockito.anyObject());
- Mockito.doAnswer(new Answer<Object>() {
- @Override
- public Object answer(final InvocationOnMock invocation) throws Throwable {
- eventBus.addHandler(UserSignOutEvent.getType(), (UserSignOutHandler) invocation.getArguments()[1]);
- return null;
- }
- }).when(session).onUserSignOut(anyBoolean(), (UserSignOutHandler) Mockito.anyObject());
- Mockito.doAnswer(new Answer<Object>() {
- @Override
- public Object answer(final InvocationOnMock invocation) throws Throwable {
- eventBus.addHandler(AppStartEvent.getType(), (AppStartHandler) invocation.getArguments()[1]);
- return null;
- }
- }).when(session).onAppStart(anyBoolean(), (AppStartHandler) Mockito.anyObject());
- state = Mockito.mock(StateAbstractDTO.class);
- stateManager = new StateManagerDefault(contentProvider, session, history, tokenMatcher, eventBus, siteTokens);
- stateChangeHandler = Mockito.mock(StateChangedHandler.class);
- groupChangeHandler = Mockito.mock(GroupChangedHandler.class);
- toolChangeHandler = Mockito.mock(ToolChangedHandler.class);
- beforeChangeListener1 = Mockito.mock(BeforeActionListener.class);
- beforeChangeListener2 = Mockito.mock(BeforeActionListener.class);
- eventBus.addHandler(StateChangedEvent.getType(), stateChangeHandler);
- eventBus.addHandler(GroupChangedEvent.getType(), groupChangeHandler);
- eventBus.addHandler(ToolChangedEvent.getType(), toolChangeHandler);
- // new NotifyUser(null, null);
- }
+ @Before
+ public void before() {
+ contentProvider = Mockito.mock(ContentCache.class);
+ session = Mockito.mock(Session.class);
+ history = Mockito.mock(HistoryWrapper.class);
+ tokenMatcher = Mockito.mock(TokenMatcher.class);
+ siteTokens = Mockito.mock(SiteTokenListeners.class);
+ eventBus = new EventBusTester();
+ Mockito.when(session.getUserHash()).thenReturn(HASH);
+ Mockito.doAnswer(new Answer<Object>() {
+ @Override
+ public Object answer(final InvocationOnMock invocation) throws Throwable {
+ eventBus.addHandler(UserSignInEvent.getType(), (UserSignInHandler) invocation.getArguments()[1]);
+ return null;
+ }
+ }).when(session).onUserSignIn(anyBoolean(), (UserSignInHandler) Mockito.anyObject());
+ Mockito.doAnswer(new Answer<Object>() {
+ @Override
+ public Object answer(final InvocationOnMock invocation) throws Throwable {
+ eventBus.addHandler(UserSignOutEvent.getType(),
+ (UserSignOutHandler) invocation.getArguments()[1]);
+ return null;
+ }
+ }).when(session).onUserSignOut(anyBoolean(), (UserSignOutHandler) Mockito.anyObject());
+ Mockito.doAnswer(new Answer<Object>() {
+ @Override
+ public Object answer(final InvocationOnMock invocation) throws Throwable {
+ eventBus.addHandler(AppStartEvent.getType(), (AppStartHandler) invocation.getArguments()[1]);
+ return null;
+ }
+ }).when(session).onAppStart(anyBoolean(), (AppStartHandler) Mockito.anyObject());
+ state = Mockito.mock(StateAbstractDTO.class);
+ stateManager = new StateManagerDefault(contentProvider, session, history, tokenMatcher, eventBus,
+ siteTokens);
+ stateChangeHandler = Mockito.mock(StateChangedHandler.class);
+ groupChangeHandler = Mockito.mock(GroupChangedHandler.class);
+ toolChangeHandler = Mockito.mock(ToolChangedHandler.class);
+ beforeChangeListener1 = Mockito.mock(BeforeActionListener.class);
+ beforeChangeListener2 = Mockito.mock(BeforeActionListener.class);
+ eventBus.addHandler(StateChangedEvent.getType(), stateChangeHandler);
+ eventBus.addHandler(GroupChangedEvent.getType(), groupChangeHandler);
+ eventBus.addHandler(ToolChangedEvent.getType(), toolChangeHandler);
+ // new NotifyUser(null, null);
+ }
- @Test
- public void changeGroupWithNoTool() {
- changeState("group1", "group2");
- Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged((StateChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged((GroupChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged((GroupChangedEvent) Mockito.anyObject());
- }
+ @Test
+ public void changeGroupWithNoTool() {
+ changeState("group1", "group2");
+ Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
+ (StateChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged(
+ (GroupChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged(
+ (GroupChangedEvent) Mockito.anyObject());
+ }
- private void changeState(final String... tokens) {
- for (final String token : tokens) {
- Mockito.when(state.getStateToken()).thenReturn(new StateToken(token));
- stateManager.setState(state);
- }
+ private void changeState(final String... tokens) {
+ for (final String token : tokens) {
+ Mockito.when(state.getStateToken()).thenReturn(new StateToken(token));
+ stateManager.setState(state);
}
+ }
- @Test
- public void changeStateWithDifferentAndGroupsToolsMustFireListener() {
- changeState("group2.tool1", "group1.tool2");
- Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged((StateChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged((GroupChangedEvent) Mockito.anyObject());
- Mockito.verify(toolChangeHandler, Mockito.times(2)).onToolChanged((ToolChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(new GroupChangedEvent("", "group2"));
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(new GroupChangedEvent("group2", "group1"));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(new ToolChangedEvent("", "tool1"));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(new ToolChangedEvent("tool1", "tool2"));
- }
+ @Test
+ public void changeStateWithDifferentAndGroupsToolsMustFireListener() {
+ changeState("group2.tool1", "group1.tool2");
+ Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
+ (StateChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged(
+ (GroupChangedEvent) Mockito.anyObject());
+ Mockito.verify(toolChangeHandler, Mockito.times(2)).onToolChanged(
+ (ToolChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ new GroupChangedEvent("", "group2"));
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ new GroupChangedEvent("group2", "group1"));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(new ToolChangedEvent("", "tool1"));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
+ new ToolChangedEvent("tool1", "tool2"));
+ }
- @Test
- public void changeStateWithDifferentGroupsMustFireListener() {
- changeState("group1.tool1", "group2.tool1");
- // assertTrue(stateChangeListener.isCalled(2));
- // assertTrue(groupChangeListener.isCalledWithEquals("", "group1",
- // "group1", "group2"));
- // assertTrue(toolChangeListener.isCalledWithEquals("", "tool1"));
- Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged((StateChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged((GroupChangedEvent) Mockito.anyObject());
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged((ToolChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(new GroupChangedEvent("", "group1"));
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(new GroupChangedEvent("group1", "group2"));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(new ToolChangedEvent("", "tool1"));
+ @Test
+ public void changeStateWithDifferentGroupsMustFireListener() {
+ changeState("group1.tool1", "group2.tool1");
+ // assertTrue(stateChangeListener.isCalled(2));
+ // assertTrue(groupChangeListener.isCalledWithEquals("", "group1",
+ // "group1", "group2"));
+ // assertTrue(toolChangeListener.isCalledWithEquals("", "tool1"));
+ Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
+ (StateChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged(
+ (GroupChangedEvent) Mockito.anyObject());
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
+ (ToolChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ new GroupChangedEvent("", "group1"));
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ new GroupChangedEvent("group1", "group2"));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(new ToolChangedEvent("", "tool1"));
- }
+ }
- @Test
- public void changeStateWithDifferentToolsMustFireListener() {
- changeState("group1.tool1", "group1.tool2");
- Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged((StateChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged((GroupChangedEvent) Mockito.anyObject());
- Mockito.verify(toolChangeHandler, Mockito.times(2)).onToolChanged((ToolChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(new GroupChangedEvent("", "group1"));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(new ToolChangedEvent("", "tool1"));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(new ToolChangedEvent("tool1", "tool2"));
- }
+ @Test
+ public void changeStateWithDifferentToolsMustFireListener() {
+ changeState("group1.tool1", "group1.tool2");
+ Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
+ (StateChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ (GroupChangedEvent) Mockito.anyObject());
+ Mockito.verify(toolChangeHandler, Mockito.times(2)).onToolChanged(
+ (ToolChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ new GroupChangedEvent("", "group1"));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(new ToolChangedEvent("", "tool1"));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
+ new ToolChangedEvent("tool1", "tool2"));
+ }
- @Test
- public void changeToNoTool() {
- changeState("group1.tool1", "group1");
- Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged((StateChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged((GroupChangedEvent) Mockito.anyObject());
- Mockito.verify(toolChangeHandler, Mockito.times(2)).onToolChanged((ToolChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(new GroupChangedEvent("", "group1"));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(new ToolChangedEvent("", "tool1"));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(new ToolChangedEvent("tool1", ""));
- }
+ @Test
+ public void changeToNoTool() {
+ changeState("group1.tool1", "group1");
+ Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
+ (StateChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ (GroupChangedEvent) Mockito.anyObject());
+ Mockito.verify(toolChangeHandler, Mockito.times(2)).onToolChanged(
+ (ToolChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ new GroupChangedEvent("", "group1"));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(new ToolChangedEvent("", "tool1"));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(new ToolChangedEvent("tool1", ""));
+ }
- @Test
- public void changeToSameToken() {
- changeState("group1.tool1", "group1.tool1");
- Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged((StateChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged((GroupChangedEvent) Mockito.anyObject());
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged((ToolChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(new GroupChangedEvent("", "group1"));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(new ToolChangedEvent("", "tool1"));
- }
+ @Test
+ public void changeToSameToken() {
+ changeState("group1.tool1", "group1.tool1");
+ Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
+ (StateChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ (GroupChangedEvent) Mockito.anyObject());
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
+ (ToolChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ new GroupChangedEvent("", "group1"));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(new ToolChangedEvent("", "tool1"));
+ }
- private String confBeforeStateChangeListeners(final boolean value, final boolean value2) {
- stateManager.addBeforeStateChangeListener(beforeChangeListener1);
- stateManager.addBeforeStateChangeListener(beforeChangeListener2);
- final String newToken = "something";
- Mockito.when(beforeChangeListener1.beforeAction()).thenReturn(value);
- Mockito.when(beforeChangeListener2.beforeAction()).thenReturn(value2);
- return newToken;
- }
+ private String confBeforeStateChangeListeners(final boolean value, final boolean value2) {
+ stateManager.addBeforeStateChangeListener(beforeChangeListener1);
+ stateManager.addBeforeStateChangeListener(beforeChangeListener2);
+ final String newToken = "something";
+ Mockito.when(beforeChangeListener1.beforeAction()).thenReturn(value);
+ Mockito.when(beforeChangeListener2.beforeAction()).thenReturn(value2);
+ return newToken;
+ }
- @SuppressWarnings("unchecked")
- @Test
- public void getDefGroup() {
- stateManager.processHistoryToken("site.docs");
- verifyGetServerContent();
- }
+ @SuppressWarnings("unchecked")
+ @Test
+ public void getDefGroup() {
+ stateManager.processHistoryToken("site.docs");
+ verifyGetServerContent();
+ }
- public void getWaveToken() {
- stateManager.processHistoryToken("example.com/w+abcd/~/conv+root/b+45kg");
- }
+ public void getWaveToken() {
+ stateManager.processHistoryToken("example.com/w+abcd/~/conv+root/b+45kg");
+ }
- @SuppressWarnings("unchecked")
- @Test
- public void normalStartLoggedUser() {
- // When a user enter reload state, also if the application is starting
- // (and the user was logged)
- Mockito.when(history.getToken()).thenReturn("");
- stateManager.refreshCurrentState();
- verifyGetServerContent();
- }
+ @SuppressWarnings("unchecked")
+ @Test
+ public void normalStartLoggedUser() {
+ // When a user enter reload state, also if the application is starting
+ // (and the user was logged)
+ Mockito.when(history.getToken()).thenReturn("");
+ stateManager.refreshCurrentState();
+ verifyGetServerContent();
+ }
- @SuppressWarnings("unchecked")
- @Test
- public void oneBeforeStateChangeListenerAddAndRemove() {
- final String newToken = confBeforeStateChangeListeners(false, false);
- stateManager.processHistoryToken(newToken);
- removeBeforeStateChangeListener();
- stateManager.processHistoryToken(newToken);
- verifyGetServerContent();
- }
+ @SuppressWarnings("unchecked")
+ @Test
+ public void oneBeforeStateChangeListenerAddAndRemove() {
+ final String newToken = confBeforeStateChangeListeners(false, false);
+ stateManager.processHistoryToken(newToken);
+ removeBeforeStateChangeListener();
+ stateManager.processHistoryToken(newToken);
+ verifyGetServerContent();
+ }
- @Test
- public void oneBeforeStateChangeListenerFalseAndResume() {
- final String token = confBeforeStateChangeListeners(false, true);
- stateManager.processHistoryToken(token);
- Mockito.verify(history, Mockito.never()).newItem(token);
- removeBeforeStateChangeListener();
- stateManager.resumeTokenChange();
- Mockito.verify(history, Mockito.times(1)).newItem(token);
- }
+ @Test
+ public void oneBeforeStateChangeListenerFalseAndResume() {
+ final String token = confBeforeStateChangeListeners(false, true);
+ stateManager.processHistoryToken(token);
+ Mockito.verify(history, Mockito.never()).newItem(token);
+ removeBeforeStateChangeListener();
+ stateManager.resumeTokenChange();
+ Mockito.verify(history, Mockito.times(1)).newItem(token);
+ }
- @SuppressWarnings("unchecked")
- @Test
- public void oneBeforeStateChangeListenerReturnFalse() {
- stateManager.processHistoryToken(confBeforeStateChangeListeners(true, false));
- Mockito.verify(contentProvider, Mockito.never()).getContent(Mockito.anyString(),
- (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
- }
+ @SuppressWarnings("unchecked")
+ @Test
+ public void oneBeforeStateChangeListenerReturnFalse() {
+ stateManager.processHistoryToken(confBeforeStateChangeListeners(true, false));
+ Mockito.verify(contentProvider, Mockito.never()).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
+ }
- @SuppressWarnings("unchecked")
- @Test
- public void oneBeforeStateChangeListenerReturnFalseWithTwo() {
- stateManager.processHistoryToken(confBeforeStateChangeListeners(false, false));
- Mockito.verify(contentProvider, Mockito.never()).getContent(Mockito.anyString(),
- (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
- }
+ @SuppressWarnings("unchecked")
+ @Test
+ public void oneBeforeStateChangeListenerReturnFalseWithTwo() {
+ stateManager.processHistoryToken(confBeforeStateChangeListeners(false, false));
+ Mockito.verify(contentProvider, Mockito.never()).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
+ }
- @SuppressWarnings("unchecked")
- @Test
- public void oneBeforeStateChangeListenerReturnTrue() {
- stateManager.processHistoryToken(confBeforeStateChangeListeners(true, true));
- verifyGetServerContent();
- }
+ @SuppressWarnings("unchecked")
+ @Test
+ public void oneBeforeStateChangeListenerReturnTrue() {
+ stateManager.processHistoryToken(confBeforeStateChangeListeners(true, true));
+ verifyGetServerContent();
+ }
- private void removeBeforeStateChangeListener() {
- stateManager.removeBeforeStateChangeListener(beforeChangeListener1);
- stateManager.removeBeforeStateChangeListener(beforeChangeListener2);
- }
+ private void removeBeforeStateChangeListener() {
+ stateManager.removeBeforeStateChangeListener(beforeChangeListener1);
+ stateManager.removeBeforeStateChangeListener(beforeChangeListener2);
+ }
- @SuppressWarnings("unchecked")
- @Test
- public void siteTokenFirstLoadDefContentAndFireListener() {
- final HistoryTokenCallback listener = Mockito.mock(HistoryTokenCallback.class);
- final String token = SiteTokens.SIGNIN;
- stateManager.addSiteToken(token, listener);
- Mockito.when(siteTokens.get(SiteTokens.SIGNIN)).thenReturn(listener);
- stateManager.processHistoryToken(token);
- Mockito.verify(listener, Mockito.times(1)).onHistoryToken();
- verifyGetServerContent();
- }
+ @SuppressWarnings("unchecked")
+ @Test
+ public void siteTokenFirstLoadDefContentAndFireListener() {
+ final HistoryTokenCallback listener = Mockito.mock(HistoryTokenCallback.class);
+ final String token = SiteTokens.SIGNIN;
+ stateManager.addSiteToken(token, listener);
+ Mockito.when(siteTokens.get(SiteTokens.SIGNIN)).thenReturn(listener);
+ stateManager.processHistoryToken(token);
+ Mockito.verify(listener, Mockito.times(1)).onHistoryToken(Mockito.anyString());
+ verifyGetServerContent();
+ }
- @Test
- public void siteTokenTest() {
- final HistoryTokenCallback listener = Mockito.mock(HistoryTokenCallback.class);
- stateManager.addSiteToken(SiteTokens.SIGNIN, listener);
- Mockito.when(siteTokens.get(SiteTokens.SIGNIN)).thenReturn(listener);
- stateManager.processHistoryToken("signIn");
- Mockito.verify(listener, Mockito.times(1)).onHistoryToken();
- }
+ @Test
+ public void siteTokenTest() {
+ final HistoryTokenCallback listener = Mockito.mock(HistoryTokenCallback.class);
+ stateManager.addSiteToken(SiteTokens.SIGNIN, listener);
+ Mockito.when(siteTokens.get(SiteTokens.SIGNIN)).thenReturn(listener);
+ stateManager.processHistoryToken("signIn");
+ Mockito.verify(listener, Mockito.times(1)).onHistoryToken(Mockito.anyString());
+ }
- @Test
- public void startMustLoadContent() {
- final InitDataDTO initData = Mockito.mock(InitDataDTO.class);
- Mockito.when(history.getToken()).thenReturn("");
- eventBus.fireEvent(new AppStartEvent(initData));
- verifyGetServerContent();
- }
+ @Test
+ public void startMustLoadContent() {
+ final InitDataDTO initData = Mockito.mock(InitDataDTO.class);
+ Mockito.when(history.getToken()).thenReturn("");
+ eventBus.fireEvent(new AppStartEvent(initData));
+ verifyGetServerContent();
+ }
- private void verifyGetServerContent() {
- Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
- (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
- }
+ private void verifyGetServerContent() {
+ Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
+ }
}
1
0
Author: vjrj_
Date: 2011-09-24 20:53:50 +0200 (Sat, 24 Sep 2011)
New Revision: 1532
Added:
trunk/src/test/java/testsuites/FaultyTestSuite.java
Removed:
trunk/src/main/java/cc/kune/meets/
trunk/src/main/java/org/ourproject/kune/app/
trunk/src/main/java/org/ourproject/kune/gallery/client/
trunk/src/main/java/org/ourproject/kune/platf/client/actions/
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/edithtml/
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertspecialchar/
trunk/src/main/java/org/ourproject/kune/workspace/KuneWorkspace.gwt.xml
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/
trunk/src/main/java/org/ourproject/kune/workspace/public/
trunk/src/test/java/cc/kune/tasks/server/
trunk/src/test/java/org/FaultyTestSuite.java
trunk/src/test/java/org/ourproject/kune/gallery/
trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/
trunk/src/test/java/org/ourproject/kune/platf/client/ui/rte/
trunk/src/test/java/org/ourproject/kune/workspace/client/
Log:
And some clean-up of org.ourproject package
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/KuneWorkspace.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/KuneWorkspace.gwt.xml 2011-09-24 18:46:13 UTC (rev 1531)
+++ trunk/src/main/java/org/ourproject/kune/workspace/KuneWorkspace.gwt.xml 2011-09-24 18:53:50 UTC (rev 1532)
@@ -1,18 +0,0 @@
-<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.1.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.1.0/distro-source/core/…">
-<module>
- <inherits name="cc.kune.core.Core" />
- <inherits name='org.ourproject.kune.platf.KunePlatform' />
- <inherits name="org.ourproject.kune.chat.KuneChat" />
- <inherits name="com.google.gwt.core.Core" />
- <stylesheet src="js/ext/resources/css/ext-all.css" />
- <script src="js/ext/adapter/ext/ext-base.js" />
- <script src="js/ext/ext-all.js" />
- <inherits name="com.gwtext.GwtExt" />
- <inherits name="com.calclab.suco.Suco" />
-<!-- <inherits name="com.calclab.emiteuimodule.EmiteUIModule" />-->
- <inherits name="com.gwtextux.GwtExtUx" />
- <inherits name="com.gwtextux.UploadDialog" />
- <inherits name="com.gwtextux.ToastWindow" />
-<!-- <inherits name="com.google.gwt.wave.Wave" />-->
- <source path='client' excludes="**/*Test.java,**/*Tests.java,**/*MockProvider.java"/>
-</module>
\ No newline at end of file
Deleted: trunk/src/test/java/org/FaultyTestSuite.java
===================================================================
--- trunk/src/test/java/org/FaultyTestSuite.java 2011-09-24 18:46:13 UTC (rev 1531)
+++ trunk/src/test/java/org/FaultyTestSuite.java 2011-09-24 18:53:50 UTC (rev 1532)
@@ -1,34 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package org;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-/**
- * A Test Suite to test (only) some tests that fails
- *
- */
-(a)RunWith(Suite.class)
-@SuiteClasses({})
-public class FaultyTestSuite {
-
-}
Copied: trunk/src/test/java/testsuites/FaultyTestSuite.java (from rev 1528, trunk/src/test/java/org/FaultyTestSuite.java)
===================================================================
--- trunk/src/test/java/testsuites/FaultyTestSuite.java (rev 0)
+++ trunk/src/test/java/testsuites/FaultyTestSuite.java 2011-09-24 18:53:50 UTC (rev 1532)
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package testsuites;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * A Test Suite to test (only) some tests that fails
+ *
+ */
+(a)RunWith(Suite.class)
+@SuiteClasses({})
+public class FaultyTestSuite {
+
+}
1
0