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
- 1587 discussions
Author: vjrj_
Date: 2011-02-24 03:37:26 +0100 (Thu, 24 Feb 2011)
New Revision: 1261
Added:
trunk/script/kune client -no-server.launch
trunk/src/main/java/cc/kune/common/client/resources/
trunk/src/main/java/cc/kune/common/client/resources/CommonIconCssResource.java
trunk/src/main/java/cc/kune/common/client/resources/CommonIconResources.java
trunk/src/main/java/cc/kune/common/client/resources/SubMenuResources.java
trunk/src/main/java/cc/kune/common/client/resources/arrow-right-white.gif
trunk/src/main/java/cc/kune/common/client/resources/checked.png
trunk/src/main/java/cc/kune/common/client/resources/radiochecked.png
trunk/src/main/java/cc/kune/common/client/resources/radiounchecked.png
trunk/src/main/java/cc/kune/common/client/resources/unchecked.png
trunk/src/main/java/cc/kune/core/client/resources/icons/checked.png
trunk/src/main/java/cc/kune/core/client/resources/icons/radiochecked.png
trunk/src/main/java/cc/kune/core/client/resources/icons/radiounchecked.png
trunk/src/main/java/cc/kune/core/client/resources/icons/unchecked.png
trunk/src/main/java/cc/kune/core/client/sn/actions/GroupMembersConfActions.java
trunk/src/main/java/cc/kune/core/client/sn/actions/MembersModerationAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/MembersModerationMenuItem.java
trunk/src/main/java/cc/kune/core/client/sn/actions/MembersVisibilityAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/MembersVisibilityMenuItem.java
Modified:
trunk/
trunk/img/webtemplate/web_template-2011.svg
trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
trunk/src/main/java/cc/kune/chat/client/ChatParts.java
trunk/src/main/java/cc/kune/chat/client/ChatSitebarActions.java
trunk/src/main/java/cc/kune/common/client/SampleEntryPoint.java
trunk/src/main/java/cc/kune/common/client/actions/AbstractExtendedAction.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtCheckItem.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtIconLabelGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSubMenuGui.java
trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java
trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java
trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java
trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/MenuRadioItemDescriptor.java
trunk/src/main/java/cc/kune/common/client/ui/IconLabel.java
trunk/src/main/java/cc/kune/common/client/ui/IconLabel.ui.xml
trunk/src/main/java/cc/kune/common/public/kune-common.css
trunk/src/main/java/cc/kune/core/client/CoreParts.java
trunk/src/main/java/cc/kune/core/client/logs/Log.java
trunk/src/main/java/cc/kune/core/client/resources/icons/IconResources.java
trunk/src/main/java/cc/kune/core/client/sn/GroupMembersPresenter.java
trunk/src/main/java/cc/kune/core/client/sn/actions/JoinGroupAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/UnJoinGroupAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupMembersActionsRegistry.java
trunk/src/main/java/cc/kune/core/client/state/AccessRightsClientManager.java
trunk/src/main/java/cc/kune/core/client/state/Session.java
trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java
trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java
trunk/src/main/java/cc/kune/core/client/state/StateManager.java
trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
trunk/src/main/java/cc/kune/core/client/ui/dialogs/BasicDialog.java
trunk/src/main/java/cc/kune/core/client/ui/footer/license/EntityLicensePresenter.java
trunk/src/main/java/cc/kune/core/public/ws.css
trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java
Log:
NEW - # 25: Social Net refactorization
http://kune.ourproject.org/issues/ticket/25
Property changes on: trunk
___________________________________________________________________
Name: svn:ignore
- pmd-eclipse.log
.pmd
www-test
screenlog.0
bin
client
public
target
target-local
Main-compile
bin
.settings
.gwt-cache
repository
derby.log
star-yellow-grey.png
run.sh
tomcat
gwt-out
synccss.sh
.externalToolBuilders
.wtpmodules
www
testRepository
kune-OLD-jcr
KuneApp.launch
KuneApp NOSERVER.launch
old_src
org.ourproject.kune.app.Kune
org.ourproject.kune.iml
org.ourproject.kune.ipr
org.ourproject.kune.iws
nbproject
hibernate.reveng.xml
.gwt-tmp
target-eclipse
.checkstyle
.classpath-bien
pom.xml.*
.gwt
.jdee_sources
.jdee_classpath
prj.el
.factorypath
.apt_generated
target.old
_accounts
+ pmd-eclipse.log
.pmd
www-test
screenlog.0
bin
client
public
target
target-local
Main-compile
bin
.settings
.gwt-cache
repository
derby.log
star-yellow-grey.png
run.sh
tomcat
gwt-out
synccss.sh
.externalToolBuilders
.wtpmodules
www
testRepository
kune-OLD-jcr
KuneApp.launch
KuneApp NOSERVER.launch
old_src
org.ourproject.kune.app.Kune
org.ourproject.kune.iml
org.ourproject.kune.ipr
org.ourproject.kune.iws
nbproject
hibernate.reveng.xml
.gwt-tmp
target-eclipse
.checkstyle
.classpath-bien
pom.xml.*
.gwt
.jdee_sources
.jdee_classpath
prj.el
.factorypath
.apt_generated
target.old
_accounts
_certificates
Modified: trunk/img/webtemplate/web_template-2011.svg
===================================================================
--- trunk/img/webtemplate/web_template-2011.svg 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/img/webtemplate/web_template-2011.svg 2011-02-24 02:37:26 UTC (rev 1261)
@@ -52,9 +52,9 @@
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
- inkscape:zoom="2.7077228"
- inkscape:cx="962.93133"
- inkscape:cy="392.7939"
+ inkscape:zoom="0.68229167"
+ inkscape:cx="512"
+ inkscape:cy="384"
inkscape:current-layer="layer1"
inkscape:document-units="px"
showgrid="false"
@@ -2640,11 +2640,12 @@
width="164.7063"
height="32.31588"
x="880.42413"
- y="328.24014" />
+ y="328.24014"
+ ry="4.4317684" />
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
- x="889.85516"
+ x="903.85516"
y="349.36758"
id="text24744-4"
sodipodi:linespacing="125%"
@@ -2653,7 +2654,7 @@
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
id="tspan24746-6"
- x="889.85516"
+ x="903.85516"
y="349.36758">menu item</tspan></text>
<text
inkscape:export-ydpi="90"
@@ -2661,14 +2662,181 @@
inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/web_template-2011.png"
sodipodi:linespacing="125%"
id="text6164"
- y="379.36758"
- x="889.85516"
+ y="381.36758"
+ x="904.85516"
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
xml:space="preserve"><tspan
- y="379.36758"
- x="889.85516"
+ y="381.36758"
+ x="904.85516"
id="tspan6166"
sodipodi:role="line">menu item</tspan></text>
+ <rect
+ ry="4.4317684"
+ y="360.24014"
+ x="880.42413"
+ height="32.31588"
+ width="164.7063"
+ id="rect3808"
+ style="opacity:0.84999999999999998;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#cf5c43;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <image
+ y="336.0275"
+ x="885.00128"
+ id="image4011"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAApVJREFU
+OI1lkk9oVFcUh7/3ZpLJjJNkYv2XKDFxjAGLWFypC1Ehiihu2k1pVxUsgcCsgpvgQkTBrMS94CJB
+KrgQBLNwI6IgKoIOMdFYVCyYBjJmMjPOu/ec08Wz8RkPHO7dnI/f+e4NzIxkTU5O5lV1VET2icha
+EcE51+Wc210qlZZZVUESMDEx8ZOq3uzp6env6OggDENUlZmZGebn52ve+12lu2dGAZeZshJAOjGc
+F5EbxWKxP4oipqenqdVqiAhmxkC6cfXI1NhdYANw4v+5FYCIDHd3d293zjE7O/vGe39YRP4REX69
+d3G4q74wDrwCNmWmbPk7gPd+Xy6XY25uDufciZGRkbcAzaPBceAScPXK0PjlfD5/e+H8eRsbGzu4
+GrA+DEOq1Sre+78Tnj4Av1/Ye/ZWsLzc7OzspF6vP/pG4rv7f9jDuUE+fsoiIpz88TEpc5h4zMft
+nHDt2R5UlY1tixzf/JjB00+DOIEZv/x8iICQIJUl4BhoAOk2wEAc4qucG6qBOgBeX3/w1YGJBwy/
+8BfpzDqCIA/aAtkCmEL9E7L0iqjxAfV1sv0jWNRMALwHNZCISvkJYbiGws79vL8zjukGeg8MUXlZ
+Jmos0t7XhZlgLkoCHJhh4igM7iBsXQeBIk3h+UKWXiIKxX4+1zKYr4PpCiAEMOcwExDH4otnVMqP
+IPToZ6XZaIJFVGamqcy+i9dVxZxLJHAupkpEYaCPVO4HCCO2/fYn25yHpY90FntoXWqJE6itBkSg
+ivqISrlMKtcObXlIt4J6WKrQWPwXV6vS3tuBofHaSYCZkNlyiuzWFEFrJn7CsAVUIGrQ3qgiromp
+xL68TwCiJm9ujsYuvMe8+9J+5UQk/lgi8V0FgP8Au3qlSuYS8nsAAAAASUVORK5CYII=
+"
+ height="16"
+ width="16" />
+ <image
+ width="16"
+ height="16"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAApVJREFU
+OI1lkk9oVFcUh7/3ZpLJjJNkYv2XKDFxjAGLWFypC1Ehiihu2k1pVxUsgcCsgpvgQkTBrMS94CJB
+KrgQBLNwI6IgKoIOMdFYVCyYBjJmMjPOu/ec08Wz8RkPHO7dnI/f+e4NzIxkTU5O5lV1VET2icha
+EcE51+Wc210qlZZZVUESMDEx8ZOq3uzp6env6OggDENUlZmZGebn52ve+12lu2dGAZeZshJAOjGc
+F5EbxWKxP4oipqenqdVqiAhmxkC6cfXI1NhdYANw4v+5FYCIDHd3d293zjE7O/vGe39YRP4REX69
+d3G4q74wDrwCNmWmbPk7gPd+Xy6XY25uDufciZGRkbcAzaPBceAScPXK0PjlfD5/e+H8eRsbGzu4
+GrA+DEOq1Sre+78Tnj4Av1/Ye/ZWsLzc7OzspF6vP/pG4rv7f9jDuUE+fsoiIpz88TEpc5h4zMft
+nHDt2R5UlY1tixzf/JjB00+DOIEZv/x8iICQIJUl4BhoAOk2wEAc4qucG6qBOgBeX3/w1YGJBwy/
+8BfpzDqCIA/aAtkCmEL9E7L0iqjxAfV1sv0jWNRMALwHNZCISvkJYbiGws79vL8zjukGeg8MUXlZ
+Jmos0t7XhZlgLkoCHJhh4igM7iBsXQeBIk3h+UKWXiIKxX4+1zKYr4PpCiAEMOcwExDH4otnVMqP
+IPToZ6XZaIJFVGamqcy+i9dVxZxLJHAupkpEYaCPVO4HCCO2/fYn25yHpY90FntoXWqJE6itBkSg
+ivqISrlMKtcObXlIt4J6WKrQWPwXV6vS3tuBofHaSYCZkNlyiuzWFEFrJn7CsAVUIGrQ3qgiromp
+xL68TwCiJm9ujsYuvMe8+9J+5UQk/lgi8V0FgP8Au3qlSuYS8nsAAAAASUVORK5CYII=
+"
+ id="image4014"
+ x="885.00128"
+ y="368.0275" />
+ <rect
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/group-def-icon.png"
+ ry="2.5"
+ y="367.31128"
+ x="1072.8741"
+ height="13.999999"
+ width="14"
+ id="rect2884"
+ style="fill:#ffe6d5;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#aad400;fill-opacity:1;fill-rule:evenodd;stroke:#5500d4;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1083.8248,369.93911 -5.2833,4.75296 -1.7106,-1.96914 -2.0934,2.14668 c 1.5118,1.34043 2.6383,2.29564 3.8932,3.58472 2.1101,-1.97782 4.2716,-3.54473 6.5614,-5.03458 -0.3489,-1.48877 -0.8009,-2.51535 -1.3673,-3.48064 z"
+ id="rect4453"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:export-filename="/home/vjrj/proyectos/movecommons/images/icongen/cat-selected.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <rect
+ style="fill:#ffe6d5;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect60658"
+ width="14"
+ height="13.999999"
+ x="1072.8741"
+ y="384.31128"
+ ry="6.9999995"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/group-def-icon.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ rx="6.9999995" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#aad400;fill-opacity:1;fill-rule:evenodd;stroke:#5500d4;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1066.7427,375.67338 -6.8467,6.15941 -2.2168,-2.55183 -2.7128,2.7819 c 1.9591,1.73709 3.419,2.97495 5.0452,4.64548 2.7345,-2.56308 5.5356,-4.59365 8.503,-6.52437 -0.4521,-1.92931 -1.0379,-3.25966 -1.7719,-4.51059 z"
+ id="rect4453-1"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:export-filename="/home/vjrj/proyectos/movecommons/images/icongen/cat-selected.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <rect
+ rx="3.7067122"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/group-def-icon.png"
+ ry="3.7067122"
+ y="387.60455"
+ x="1076.1675"
+ height="7.4134245"
+ width="7.4134245"
+ id="rect60678"
+ style="color:#000000;fill:#aad400;fill-opacity:1;fill-rule:evenodd;stroke:#5500d4;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <rect
+ style="fill:#ffe6d5;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect60699"
+ width="14"
+ height="13.999999"
+ x="1072.8741"
+ y="347.31128"
+ ry="2.5"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/group-def-icon.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <rect
+ style="fill:#ffe6d5;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect60716"
+ width="14"
+ height="13.999999"
+ x="1072.8741"
+ y="367.31128"
+ ry="2.5"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/group-def-icon.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/movecommons/images/icongen/cat-selected.png"
+ sodipodi:nodetypes="ccccccc"
+ id="path60718"
+ d="m 1083.8248,369.93911 -5.2833,4.75296 -1.7106,-1.96914 -2.0934,2.14668 c 1.5118,1.34043 2.6383,2.29564 3.8932,3.58472 2.1101,-1.97782 4.2716,-3.54473 6.5614,-5.03458 -0.3489,-1.48877 -0.8009,-2.51535 -1.3673,-3.48064 z"
+ style="color:#000000;fill:#aad400;fill-opacity:1;fill-rule:evenodd;stroke:#5500d4;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <rect
+ rx="6.9999995"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/group-def-icon.png"
+ ry="6.9999995"
+ y="384.31128"
+ x="1072.8741"
+ height="13.999999"
+ width="14"
+ id="rect60720"
+ style="fill:#ffe6d5;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <rect
+ style="color:#000000;fill:#aad400;fill-opacity:1;fill-rule:evenodd;stroke:#5500d4;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect60722"
+ width="7.4134245"
+ height="7.4134245"
+ x="1076.1675"
+ y="387.60455"
+ ry="3.7067122"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/group-def-icon.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ rx="3.7067122" />
+ <rect
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/group-def-icon.png"
+ ry="2.5"
+ y="347.31128"
+ x="1072.8741"
+ height="13.999999"
+ width="14"
+ id="rect60724"
+ style="fill:#ffe6d5;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<g
inkscape:groupmode="layer"
Added: trunk/script/kune client -no-server.launch
===================================================================
--- trunk/script/kune client -no-server.launch (rev 0)
+++ trunk/script/kune client -no-server.launch 2011-02-24 02:37:26 UTC (rev 1261)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="com.google.gdt.eclipse.suite.webapp">
+<booleanAttribute key="com.google.gdt.eclipse.core.RUN_SERVER" value="false"/>
+<stringAttribute key="com.google.gdt.eclipse.core.SERVER_PORT" value="8080"/>
+<stringAttribute key="com.google.gdt.eclipse.suiteMainTypeProcessor.PREVIOUSLY_SET_MAIN_TYPE_NAME" value="com.google.gwt.dev.DevMode"/>
+<booleanAttribute key="com.google.gdt.eclipse.suiteWarArgumentProcessor.IS_WAR_FROM_PROJECT_PROPERTIES" value="true"/>
+<stringAttribute key="com.google.gwt.eclipse.core.URL" value="/ws/?locale=en&log_level=INFO"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/kune"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+</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="-startupUrl /ws/?locale=en&log_level=INFO -noserver -war /home/vjrj/proyectos/dev/kune/trunk/target/kune-0.0.7 -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/chat/client/ChatClientDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -147,7 +147,7 @@
this.roomManager = Suco.get(RoomManager.class);
Suco.get(SessionReconnect.class);
- eventBus.addHandler(AppStartEvent.getType(), new AppStartEvent.AppStartHandler() {
+ session.onInitDataReceived(true, new AppStartEvent.AppStartHandler() {
@Override
public void onAppStart(final AppStartEvent event) {
chatOptions.domain = event.getInitData().getChatDomain();
@@ -253,6 +253,7 @@
dialog.setBodyStyleName("k-chat-window");
dialog.setScrollMode(Scroll.NONE);
dialog.setHideOnButtonClick(true);
+ dialog.setCollapsible(true);
// final Widget btn = (Widget)
// chatIcon.getValue(ParentWidget.PARENT_UI);
dialog.setPosition(118, 2);
Modified: trunk/src/main/java/cc/kune/chat/client/ChatParts.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatParts.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/chat/client/ChatParts.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -23,7 +23,7 @@
final IsPersonCondition isPersonCondition,
final Provider<StartChatWithMemberAction> startChatWithMemberAction,
final Provider<StartChatWithUserAction> startChatWithUserAction) {
- session.onInitDataReceived(new AppStartHandler() {
+ session.onInitDataReceived(true, new AppStartHandler() {
@Override
public void onAppStart(final AppStartEvent event) {
chatActionsProvider.get();
Modified: trunk/src/main/java/cc/kune/chat/client/ChatSitebarActions.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatSitebarActions.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/chat/client/ChatSitebarActions.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -4,7 +4,7 @@
import cc.kune.common.client.actions.AbstractAction;
import cc.kune.common.client.actions.AbstractExtendedAction;
import cc.kune.common.client.actions.ActionEvent;
-import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.common.client.actions.ui.descrip.MenuRadioItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuSeparatorDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuTitleItemDescriptor;
import cc.kune.core.client.sitebar.SiteUserOptions;
@@ -81,6 +81,7 @@
}
private static final String CHAT_STATUS = "k-chat-status-group";
+ private static final String GROUP_CHAT_STATUS = "k-group-chat-status";
private static final String NO_STATUS = null;
private final ChatClient chatClient;
private final I18nTranslationService i18n;
@@ -135,9 +136,10 @@
}
- private MenuItemDescriptor createChatStatusAction(final ImageResource icon, final String text,
+ private MenuRadioItemDescriptor createChatStatusAction(final ImageResource icon, final String text,
final AbstractAction action) {
- final MenuItemDescriptor item = new MenuItemDescriptor(SiteUserOptionsPresenter.LOGGED_USER_MENU, action);
+ final MenuRadioItemDescriptor item = new MenuRadioItemDescriptor(SiteUserOptionsPresenter.LOGGED_USER_MENU,
+ action, GROUP_CHAT_STATUS);
item.putValue(AbstractAction.NAME, text);
item.putValue(AbstractAction.SMALL_ICON, icon);
return item;
Modified: trunk/src/main/java/cc/kune/common/client/SampleEntryPoint.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/SampleEntryPoint.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/SampleEntryPoint.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -135,7 +135,7 @@
view.addActions(actions);
final IconLabel simpleIconLabel = new IconLabel("IconLabel (no action)");
- simpleIconLabel.setIcon("oc-testico");
+ simpleIconLabel.setLeftIcon("oc-testico");
simpleIconLabel.setTitle("tooltip");
final VerticalPanel panel = new VerticalPanel();
Modified: trunk/src/main/java/cc/kune/common/client/actions/AbstractExtendedAction.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/AbstractExtendedAction.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/actions/AbstractExtendedAction.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -19,10 +19,11 @@
*/
package cc.kune.common.client.actions;
+import com.google.gwt.resources.client.ImageResource;
public abstract class AbstractExtendedAction extends AbstractAction {
+ public static final String NO_ICON = null;
public static final String NO_TEXT = null;
- public static final String NO_ICON = null;
public AbstractExtendedAction() {
super();
@@ -42,4 +43,24 @@
super.putValue(Action.SHORT_DESCRIPTION, tooltip);
super.putValue(Action.SMALL_ICON, iconCls);
}
+
+ public AbstractExtendedAction withIcon(final ImageResource icon) {
+ super.putValue(Action.SHORT_DESCRIPTION, icon);
+ return this;
+ }
+
+ public AbstractExtendedAction withIconCls(final String icon) {
+ super.putValue(Action.SHORT_DESCRIPTION, icon);
+ return this;
+ }
+
+ public AbstractExtendedAction withText(final String text) {
+ super.putValue(Action.NAME, text);
+ return this;
+ }
+
+ public AbstractExtendedAction withToolTip(final String tooltip) {
+ super.putValue(Action.SHORT_DESCRIPTION, tooltip);
+ return this;
+ }
}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -59,6 +59,7 @@
@Override
protected void addStyle(final String style) {
iconLabel.addStyleName(style);
+ button.addStyleName(style);
layout();
}
@@ -112,13 +113,13 @@
@Override
public void setIconResource(final ImageResource icon) {
- iconLabel.setIconResource(icon);
+ iconLabel.setLeftIconResource(icon);
layout();
}
@Override
protected void setIconStyle(final String style) {
- iconLabel.setIcon(style);
+ iconLabel.setLeftIcon(style);
layout();
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuGui.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuGui.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -27,6 +27,7 @@
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
import cc.kune.common.client.actions.ui.descrip.Position;
+import cc.kune.common.client.resources.SubMenuResources;
import com.google.gwt.event.logical.shared.CloseEvent;
import com.google.gwt.event.logical.shared.CloseHandler;
@@ -74,7 +75,8 @@
@Override
public AbstractGuiItem create(final GuiActionDescrip descriptor) {
super.create(descriptor);
- menu = new MenuBar(true);
+ menu = new MenuBar(true, SubMenuResources.INSTANCE);
+ menu.setAutoOpen(true);
menu.setFocusOnHoverEnabled(true);
menu.setAnimationEnabled(true);
descriptor.addPropertyChangeListener(new PropertyChangeListener() {
@@ -112,7 +114,10 @@
}
public void hide() {
- popup.hide();
+ if (popup != null) {
+ // if menu (not submenu)
+ popup.hide();
+ }
}
@Override
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -33,6 +33,8 @@
import cc.kune.common.client.actions.ui.descrip.MenuRadioItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuTitleItemDescriptor;
import cc.kune.common.client.errors.UIException;
+import cc.kune.common.client.noti.NotifyUser;
+import cc.kune.common.client.resources.CommonIconResources;
import cc.kune.common.client.ui.IconLabel;
import com.google.gwt.resources.client.ImageResource;
@@ -45,24 +47,40 @@
private IconLabel iconLabel;
private GwtBaseMenuItem item;
+ private final CommonIconResources res = CommonIconResources.INSTANCE;
- public AbstractGwtMenuItemGui() {
+ private void confCheckListener(final MenuItemDescriptor descriptor, final GwtCheckItem checkItem) {
+ descriptor.addPropertyChangeListener(new PropertyChangeListener() {
+ @Override
+ public void propertyChange(final PropertyChangeEvent event) {
+ if (event.getPropertyName().equals(MenuCheckItemDescriptor.CHECKED)) {
+ final Boolean checked = (Boolean) event.getNewValue();
+ NotifyUser.info("Check checked: " + checked);
+ iconLabel.setRightIconResource(checked ? res.checked() : res.unChecked());
+ layout();
+ }
+ }
+ });
+ iconLabel.setRightIconResource(res.unChecked());
+ iconLabel.setWidth("100%");
}
- public AbstractGwtMenuItemGui(final MenuItemDescriptor descriptor) {
- super(descriptor);
-
- }
-
- private void confCheckListener(final MenuItemDescriptor descriptor, final GwtCheckItem checkItem) {
+ private void confRadioCheckListener(final MenuItemDescriptor descriptor, final GwtCheckItem checkItem,
+ final String group) {
descriptor.addPropertyChangeListener(new PropertyChangeListener() {
@Override
public void propertyChange(final PropertyChangeEvent event) {
+
if (event.getPropertyName().equals(MenuCheckItemDescriptor.CHECKED)) {
- checkItem.setChecked((Boolean) event.getNewValue());
+ final Boolean checked = (Boolean) event.getNewValue();
+ NotifyUser.info("Radio checked: " + checked);
+ iconLabel.setRightIconResource(checked ? res.radioChecked() : res.radioUnChecked());
+ layout();
}
}
});
+ iconLabel.setRightIconResource(res.radioUnChecked());
+ iconLabel.setWidth("100%");
}
@Override
@@ -71,8 +89,8 @@
iconLabel = new IconLabel("");
if (descriptor instanceof MenuRadioItemDescriptor) {
final GwtCheckItem checkItem = createCheckItem((MenuItemDescriptor) descriptor);
- checkItem.setGroup(((MenuRadioItemDescriptor) descriptor).getGroup());
- confCheckListener((MenuItemDescriptor) descriptor, checkItem);
+ confRadioCheckListener((MenuItemDescriptor) descriptor, checkItem,
+ ((MenuRadioItemDescriptor) descriptor).getGroup());
item = checkItem;
} else if (descriptor instanceof MenuCheckItemDescriptor) {
final GwtCheckItem checkItem = createCheckItem((MenuItemDescriptor) descriptor);
@@ -96,6 +114,16 @@
getParentMenu(descriptor).hide();
final AbstractAction action = descriptor.getAction();
if (action != null) {
+ if (descriptor instanceof MenuRadioItemDescriptor) {
+ final MenuRadioItemDescriptor checkItem = (MenuRadioItemDescriptor) descriptor;
+ if (!checkItem.isChecked()) {
+ checkItem.setChecked(true);
+ }
+ } else if (descriptor instanceof MenuCheckItemDescriptor) {
+ final MenuCheckItemDescriptor checkItem = (MenuCheckItemDescriptor) descriptor;
+ final boolean currentValue = checkItem.isChecked();
+ checkItem.setChecked(!currentValue);
+ }
descriptor.getAction().actionPerformed(
new ActionEvent(item, getTargetObjectOfAction(descriptor), Event.getCurrentEvent()));
}
@@ -106,7 +134,7 @@
final int position = descriptor.getPosition();
final AbstractGwtMenuGui menu = getParentMenu(descriptor);
if (menu == null) {
- throw new UIException("To add a menu item you need to add the menu before. Item: " + descriptor);
+ throw new UIException("Warning: To add a menu item you need to add the menu before. Item: " + descriptor);
}
if (position == GuiActionDescrip.NO_POSITION) {
menu.add(item);
@@ -150,13 +178,13 @@
@Override
public void setIconResource(final ImageResource icon) {
- iconLabel.setIconResource(icon);
+ iconLabel.setLeftIconResource(icon);
layout();
}
@Override
protected void setIconStyle(final String style) {
- iconLabel.setIcon(style);
+ iconLabel.setLeftIcon(style);
layout();
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtCheckItem.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtCheckItem.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtCheckItem.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -19,19 +19,18 @@
*/
package cc.kune.common.client.actions.gwtui;
-import cc.kune.common.client.errors.NotImplementedException;
public class GwtCheckItem extends GwtBaseMenuItem {
public void setChecked(final boolean newValue) {
- throw new NotImplementedException();
+ // throw new NotImplementedException();
}
/*
* Checkbox group
*/
public void setGroup(final String group) {
- throw new NotImplementedException();
+ // throw new NotImplementedException();
}
}
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-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtIconLabelGui.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -71,7 +71,7 @@
@Override
protected void setIconStyle(final String style) {
- iconLabel.setIcon(style);
+ iconLabel.setLeftIcon(style);
}
@Override
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuGui.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuGui.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -93,7 +93,7 @@
@Override
public void setIconResource(final ImageResource resource) {
if (notStandAlone) {
- iconLabel.setIconResource(resource);
+ iconLabel.setLeftIconResource(resource);
layout();
}
}
@@ -101,7 +101,7 @@
@Override
public void setIconStyle(final String style) {
if (notStandAlone) {
- iconLabel.setIcon(style);
+ iconLabel.setLeftIcon(style);
layout();
}
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSubMenuGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSubMenuGui.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSubMenuGui.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -34,6 +34,7 @@
@Override
public AbstractGuiItem create(final GuiActionDescrip descriptor) {
super.descriptor = descriptor;
+ super.create(descriptor);
item = new MenuItem("", menu);
iconLabel = new IconLabel("");
configureItemFromProperties();
@@ -44,7 +45,6 @@
} else {
parentMenu.insert(position, item);
}
- super.create(descriptor);
descriptor.putValue(ParentWidget.PARENT_UI, this);
return this;
}
@@ -60,7 +60,7 @@
@Override
public void setIconStyle(final String style) {
- iconLabel.setIcon(style);
+ iconLabel.setLeftIcon(style);
layout();
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -76,7 +76,7 @@
setIcon(descriptor.getValue(Action.SMALL_ICON));
setEnabled((Boolean) descriptor.getValue(AbstractAction.ENABLED));
setVisible((Boolean) descriptor.getValue(GuiActionDescrip.VISIBLE));
- setStyles((String) descriptor.getValue(GuiActionDescrip.STYLES));
+ setStyles((String) descriptor.getValue(Action.STYLES));
}
@Override
@@ -97,7 +97,7 @@
setToolTipText((String) newValue);
} else if (event.getPropertyName().equals(GuiActionDescrip.VISIBLE)) {
setVisible((Boolean) newValue);
- } else if (event.getPropertyName().equals(GuiActionDescrip.STYLES)) {
+ } else if (event.getPropertyName().equals(Action.STYLES)) {
setStyles((String) newValue);
}
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -204,7 +204,7 @@
@Override
public void setStyles(final String styles) {
- putValue(STYLES, styles);
+ putValue(Action.STYLES, styles);
}
@Override
@@ -224,4 +224,40 @@
return "[GuiActionDescrip: " + getClass().getName() + (name == null ? "" : " " + name)
+ (tooltip == null ? "" : " " + tooltip) + "]";
}
+
+ @Override
+ public GuiActionDescrip withIcon(final Object icon) {
+ super.putValue(Action.SMALL_ICON, icon);
+ return this;
+ }
+
+ @Override
+ public GuiActionDescrip withIconCls(final String icon) {
+ putValue(Action.SMALL_ICON, icon);
+ return this;
+ }
+
+ @Override
+ public GuiActionDescrip withParent(final GuiActionDescrip parent) {
+ setParent(parent);
+ return this;
+ }
+
+ @Override
+ public GuiActionDescrip withStyles(final String styles) {
+ setStyles(styles);
+ return this;
+ }
+
+ @Override
+ public GuiActionDescrip withText(final String text) {
+ putValue(Action.NAME, text);
+ return this;
+ }
+
+ @Override
+ public GuiActionDescrip withToolTip(final String tooltip) {
+ putValue(Action.SHORT_DESCRIPTION, tooltip);
+ return this;
+ }
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -11,11 +11,6 @@
public static final int NO_POSITION = -1;
/**
- * Coma separated, styles of the Gui item
- */
- public static final String STYLES = "stylesprop";
-
- /**
* {@link #TARGET} is used to associate a {@link #AbstractGuiActionDescrip}
* with an object like groups, group names, users, and so on, and used to
* execute actions against these targets
@@ -80,4 +75,16 @@
void setVisible(final boolean visible);
+ GuiActionDescrip withIcon(Object icon);
+
+ GuiActionDescrip withIconCls(String icon);
+
+ GuiActionDescrip withParent(GuiActionDescrip parent);
+
+ GuiActionDescrip withStyles(String styles);
+
+ GuiActionDescrip withText(String text);
+
+ GuiActionDescrip withToolTip(String tooltip);
+
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/MenuRadioItemDescriptor.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/MenuRadioItemDescriptor.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/MenuRadioItemDescriptor.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -23,6 +23,7 @@
public class MenuRadioItemDescriptor extends MenuCheckItemDescriptor {
+ public static final String CHECKED_ITEM = "-checkeditem";
private final String group;
public MenuRadioItemDescriptor(final MenuDescriptor parent, final AbstractAction action, final String group) {
@@ -38,4 +39,21 @@
public Class<?> getType() {
return MenuRadioItemDescriptor.class;
}
+
+ private String previousCheckedItemId() {
+ return group + CHECKED_ITEM;
+ }
+
+ @Override
+ public void setChecked(final boolean checked) {
+ if (checked) {
+ final MenuRadioItemDescriptor previous = (MenuRadioItemDescriptor) parent.getValue(previousCheckedItemId());
+ if (previous != null) {
+ previous.setChecked(false);
+ }
+ parent.putValue(previousCheckedItemId(), this);
+ }
+ super.setChecked(checked);
+ }
+
}
Added: trunk/src/main/java/cc/kune/common/client/resources/CommonIconCssResource.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/resources/CommonIconCssResource.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/resources/CommonIconCssResource.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -0,0 +1,25 @@
+/*
+ *
+ * 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.common.client.resources;
+
+import com.google.gwt.resources.client.CssResource;
+
+public interface CommonIconCssResource extends CssResource {
+}
Added: trunk/src/main/java/cc/kune/common/client/resources/CommonIconResources.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/resources/CommonIconResources.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/resources/CommonIconResources.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -0,0 +1,41 @@
+/*
+ *
+ * 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.common.client.resources;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.resources.client.ClientBundle;
+import com.google.gwt.resources.client.ImageResource;
+
+public interface CommonIconResources extends ClientBundle {
+
+ public static final CommonIconResources INSTANCE = GWT.create(CommonIconResources.class);
+
+ @Source("checked.png")
+ ImageResource checked();
+
+ @Source("radiochecked.png")
+ ImageResource radioChecked();
+
+ @Source("radiounchecked.png")
+ ImageResource radioUnChecked();
+
+ @Source("unchecked.png")
+ ImageResource unChecked();
+}
Added: trunk/src/main/java/cc/kune/common/client/resources/SubMenuResources.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/resources/SubMenuResources.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/resources/SubMenuResources.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -0,0 +1,13 @@
+package cc.kune.common.client.resources;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.resources.client.ImageResource;
+import com.google.gwt.user.client.ui.MenuBar.Resources;
+
+public interface SubMenuResources extends Resources {
+ public static final SubMenuResources INSTANCE = GWT.create(SubMenuResources.class);
+
+ @Override
+ @Source("arrow-right-white.gif")
+ ImageResource menuBarSubMenuIcon();
+}
Added: trunk/src/main/java/cc/kune/common/client/resources/arrow-right-white.gif
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/common/client/resources/arrow-right-white.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/common/client/resources/checked.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/common/client/resources/checked.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/common/client/resources/radiochecked.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/common/client/resources/radiochecked.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/common/client/resources/radiounchecked.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/common/client/resources/radiounchecked.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/common/client/resources/unchecked.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/common/client/resources/unchecked.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/cc/kune/common/client/ui/IconLabel.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/IconLabel.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/ui/IconLabel.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -46,8 +46,10 @@
@UiField
FlowPanel flow;
@UiField
- Image icon;
+ Image iconLeft;
@UiField
+ Image iconRight;
+ @UiField
InlineLabel label;
@UiField
FocusPanel self;
@@ -106,20 +108,34 @@
return flow.remove(w);
}
- public void setIcon(final String imgCss) {
- icon.setUrl("images/clear.gif");
- icon.setStyleName(imgCss);
- icon.addStyleName("oc-ico-pad");
+ public void setLabelText(final String text) {
+ label.setText(text);
}
- public void setIconResource(final ImageResource res) {
- icon.setResource(res);
+ public void setLeftIcon(final String imgCss) {
+ iconLeft.setUrl("images/clear.gif");
+ iconLeft.setStyleName(imgCss);
+ iconLeft.addStyleName("k-iconlabel-left");
+ iconLeft.addStyleName("oc-ico-pad");
}
- public void setLabelText(final String text) {
- label.setText(text);
+ public void setLeftIconResource(final ImageResource res) {
+ iconLeft.setResource(res);
+ iconRight.addStyleName("k-iconlabel-left");
}
+ public void setRightIcon(final String imgCss) {
+ iconRight.setUrl("images/clear.gif");
+ iconRight.setStyleName(imgCss);
+ iconRight.addStyleName("oc-ico-pad");
+ iconRight.addStyleName("k-iconlabel-right");
+ }
+
+ public void setRightIconResource(final ImageResource res) {
+ iconRight.setResource(res);
+ iconRight.addStyleName("k-iconlabel-right");
+ }
+
@Override
public void setText(final String text) {
label.setText(text);
Modified: trunk/src/main/java/cc/kune/common/client/ui/IconLabel.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/IconLabel.ui.xml 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/client/ui/IconLabel.ui.xml 2011-02-24 02:37:26 UTC (rev 1261)
@@ -2,24 +2,24 @@
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">
<ui:style>
- .label { /* padding-left: 4px; */
- text-decoration: none;
+ .label {
+ text-decoration: none;
}
.label a:link {
- text-decoration: none;
- color: gray;
+ text-decoration: none;
+ color: gray;
}
- .pad { /* padding-left: 5px; */
-
+ .pad {
+ white-space: nowrap;
}
</ui:style>
<g:FocusPanel ui:field="self">
- <g:FlowPanel styleName="{style.pad}"
- ui:field="flow">
- <g:Image ui:field="icon"/>
+ <g:FlowPanel styleName="{style.pad}" ui:field="flow">
+ <g:Image ui:field="iconLeft" />
<g:InlineLabel ui:field="label" styleName="{style.label}" />
+ <g:Image ui:field="iconRight" />
</g:FlowPanel>
</g:FocusPanel>
</ui:UiBinder>
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/common/public/kune-common.css
===================================================================
--- trunk/src/main/java/cc/kune/common/public/kune-common.css 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/common/public/kune-common.css 2011-02-24 02:37:26 UTC (rev 1261)
@@ -21,21 +21,21 @@
}
.k-opacity80 {
- kfilter: alpha(opacity = 80);
+ kfilter: alpha(opacity = 80);
-moz-opacity: 0.80;
-khtml-opacity: 0.80;
opacity: 0.80;
}
.k-opacity90 {
- kfilter: alpha(opacity = 90);
+ kfilter: alpha(opacity = 90);
-moz-opacity: 0.90;
-khtml-opacity: 0.90;
opacity: 0.90;
}
.k-opacity95 {
- kfilter: alpha(opacity = 95);
+ kfilter: alpha(opacity = 95);
-moz-opacity: 0.95;
-khtml-opacity: 0.95;
opacity: 0.95;
@@ -43,7 +43,7 @@
.gwt-PopupPanelGlass {
background-color: #f7ebe3 !important;
- kfilter: alpha(opacity = 68) !important;
+ kfilter: alpha(opacity = 68) !important;
-moz-opacity: 0.68 !important;
-khtml-opacity: 0.68 !important;
opacity: 0.68 !important;
@@ -263,7 +263,7 @@
background-color: #280b0b;
}
-.oc-menu .gwt-MenuBar-vertical {
+.oc-menu .gwt-MenuBar-vertical, .gwt-MenuBar-vertical {
background-color: #280b0b;
border: 2px solid #552200;
padding: 3px;
@@ -273,7 +273,7 @@
-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;
@@ -436,4 +436,17 @@
border-left: 1px solid #B3B3B3;
height: 10px;
margin-top: 4px;
+}
+
+.k-iconlabel-left {
+ float: left;
+}
+
+.k-iconlabel-right {
+ float: right;
+ /* margin-left: 5px; */
+}
+
+.gwt-MenuBar-vertical .subMenuIcon-selected {
+ background: none repeat scroll 0 0 #808080;
}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/core/client/CoreParts.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/CoreParts.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/CoreParts.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -4,6 +4,7 @@
import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
import cc.kune.core.client.sitebar.SiteUserOptionsPresenter;
import cc.kune.core.client.sn.GroupMembersPresenter;
+import cc.kune.core.client.sn.actions.GroupMembersConfActions;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.ui.footer.license.EntityLicensePresenter;
@@ -14,10 +15,12 @@
@Inject
public CoreParts(final Session session, final Provider<GroupMembersPresenter> grouMembersPresenter,
+ final Provider<GroupMembersConfActions> groupMembersConfActions,
final Provider<SiteUserOptionsPresenter> userOptions, final Provider<EntityLicensePresenter> licenseFooter) {
- session.onInitDataReceived(new AppStartHandler() {
+ session.onInitDataReceived(true, new AppStartHandler() {
@Override
public void onAppStart(final AppStartEvent event) {
+ groupMembersConfActions.get();
grouMembersPresenter.get();
userOptions.get();
licenseFooter.get();
Modified: trunk/src/main/java/cc/kune/core/client/logs/Log.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/logs/Log.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/logs/Log.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -24,19 +24,23 @@
public class Log {
public static void debug(final String message) {
- GWT.log(message);
+ GWT.log(prefix(message));
}
public static void debug(final String message, final Throwable caught) {
- GWT.log(message, caught);
+ GWT.log(prefix(message), caught);
}
public static void error(final String message) {
- debug(message);
+ debug(prefix(message));
}
public static void info(final String message) {
- GWT.log(message);
+ GWT.log(prefix(message));
}
+ private static String prefix(final String message) {
+ return new StringBuffer().append("-KUNE-----").append(message).toString();
+ }
+
}
Modified: trunk/src/main/java/cc/kune/core/client/resources/icons/IconResources.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/resources/icons/IconResources.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/resources/icons/IconResources.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -30,6 +30,9 @@
@Source("bug.png")
ImageResource bug();
+ @Source("checked.png")
+ ImageResource checked();
+
@Source("kicon.css")
IconCssResource css();
@@ -56,4 +59,13 @@
@Source("prefs.png")
ImageResource prefs();
+
+ @Source("radiochecked.png")
+ ImageResource radiochecked();
+
+ @Source("radiounchecked.png")
+ ImageResource radioUnChecked();
+
+ @Source("unchecked.png")
+ ImageResource unChecked();
}
Added: trunk/src/main/java/cc/kune/core/client/resources/icons/checked.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/core/client/resources/icons/checked.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/core/client/resources/icons/radiochecked.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/core/client/resources/icons/radiochecked.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/core/client/resources/icons/radiounchecked.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/core/client/resources/icons/radiounchecked.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/core/client/resources/icons/unchecked.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/core/client/resources/icons/unchecked.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/cc/kune/core/client/sn/GroupMembersPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/GroupMembersPresenter.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/sn/GroupMembersPresenter.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -5,8 +5,6 @@
import cc.kune.common.client.actions.ui.IsActionExtensible;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
import cc.kune.core.client.services.FileDownloadUtils;
import cc.kune.core.client.sn.actions.registry.AbstractSNMembersActionsRegistry;
import cc.kune.core.client.sn.actions.registry.GroupMembersActionsRegistry;
@@ -41,7 +39,6 @@
public interface GroupMembersView extends View {
int AVATARLABELMAXSIZE = 4;
- // int AVATARSIZE = 32;
int AVATARSIZE = 22;
String NOAVATAR = "";
@@ -79,11 +76,9 @@
private final GroupMembersActionsRegistry actionsRegistry;
private final SNAdminsMenuItemsRegistry adminsMenuItemsRegistry;
-
private final SNCollabsMenuItemsRegistry collabsMenuItemsRegistry;
private final Provider<FileDownloadUtils> downloadProvider;
private final SNPendingsMenuItemsRegistry pendingsMenuItemsRegistry;
- private final Session session;
@Inject
public GroupMembersPresenter(final EventBus eventBus, final GroupMembersView view, final GroupMembersProxy proxy,
@@ -93,13 +88,12 @@
final SNPendingsMenuItemsRegistry pendingsMenuItemsRegistry,
final GroupMembersActionsRegistry actionsRegistry) {
super(eventBus, view, proxy);
- this.session = session;
this.downloadProvider = downloadProvider;
this.adminsMenuItemsRegistry = adminsMenuItemsRegistry;
this.collabsMenuItemsRegistry = collabsMenuItemsRegistry;
this.pendingsMenuItemsRegistry = pendingsMenuItemsRegistry;
this.actionsRegistry = actionsRegistry;
- stateManager.onStateChanged(new StateChangedEvent.StateChangedHandler() {
+ stateManager.onStateChanged(true, new StateChangedEvent.StateChangedHandler() {
@Override
public void onStateChanged(final StateChangedEvent event) {
GroupMembersPresenter.this.onStateChanged(event.getState());
@@ -112,12 +106,6 @@
GroupMembersPresenter.this.onStateChanged(event.getState());
}
});
- session.onInitDataReceived(new AppStartHandler() {
- @Override
- public void onAppStart(final AppStartEvent event) {
- // FIXME
- }
- });
createActions();
}
Added: trunk/src/main/java/cc/kune/core/client/sn/actions/GroupMembersConfActions.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/GroupMembersConfActions.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/GroupMembersConfActions.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -0,0 +1,48 @@
+package cc.kune.core.client.sn.actions;
+
+import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
+import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
+import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor;
+import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.client.sn.actions.conditions.IsGroupCondition;
+import cc.kune.core.client.sn.actions.registry.GroupMembersActionsRegistry;
+import cc.kune.core.shared.domain.AdmissionType;
+import cc.kune.core.shared.domain.SocialNetworkVisibility;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class GroupMembersConfActions {
+
+ public static final SubMenuDescriptor MODERATION_SUBMENU = new SubMenuDescriptor();
+ public static final MenuDescriptor OPTIONS_MENU = new MenuDescriptor();
+ public static final SubMenuDescriptor VISIBILITY_SUBMENU = new SubMenuDescriptor();
+
+ @Inject
+ public GroupMembersConfActions(final I18nTranslationService i18n, final GroupMembersActionsRegistry registry,
+ final Provider<MembersVisibilityMenuItem> membersVisibility,
+ final Provider<MembersModerationMenuItem> membersModeration, final CoreResources res,
+ final JoinGroupAction joinGroupAction, final IsGroupCondition isGroupCondition,
+ final UnJoinGroupAction unJoinGroupAction) {
+ OPTIONS_MENU.withText(i18n.t("More")).withIcon(res.arrowDownSitebar()).withStyles("k-sn-options-menu");
+ registry.add(OPTIONS_MENU);
+ registry.add(VISIBILITY_SUBMENU.withText(i18n.t("Those who can view this member list")).withParent(OPTIONS_MENU));
+ registry.add(MODERATION_SUBMENU.withText(i18n.t("New members policy")).withParent(OPTIONS_MENU));
+ registry.add(membersVisibility.get().withVisibility(SocialNetworkVisibility.anyone).withParent(
+ VISIBILITY_SUBMENU).withText(i18n.t("anyone")));
+ registry.add(membersVisibility.get().withVisibility(SocialNetworkVisibility.onlymembers).withParent(
+ VISIBILITY_SUBMENU).withText(i18n.t("only members")));
+ registry.add(membersVisibility.get().withVisibility(SocialNetworkVisibility.onlyadmins).withParent(
+ VISIBILITY_SUBMENU).withText(i18n.t("only admins")));
+ registry.add(membersModeration.get().withModeration(AdmissionType.Moderated).withParent(MODERATION_SUBMENU).withText(
+ i18n.t("moderate request to join")));
+ registry.add(membersModeration.get().withModeration(AdmissionType.Open).withParent(MODERATION_SUBMENU).withText(
+ i18n.t("auto accept request to join")));
+ registry.add(membersModeration.get().withModeration(AdmissionType.Closed).withParent(MODERATION_SUBMENU).withText(
+ i18n.t("closed for new members")));
+
+ registry.add(new ButtonDescriptor(joinGroupAction).withStyles("k-no-backimage"));
+ registry.add(new ButtonDescriptor(unJoinGroupAction).withStyles("k-no-backimage"));
+ }
+}
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/JoinGroupAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/JoinGroupAction.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/JoinGroupAction.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -27,6 +27,7 @@
putValue(NAME, i18n.t("Participate"));
putValue(SHORT_DESCRIPTION, i18n.t("Request to participate in this group"));
putValue(Action.SMALL_ICON, res.addGreen());
+ putValue(Action.STYLES, "k-sn-join");
}
@Override
Added: trunk/src/main/java/cc/kune/core/client/sn/actions/MembersModerationAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/MembersModerationAction.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/MembersModerationAction.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -0,0 +1,45 @@
+package cc.kune.core.client.sn.actions;
+
+import cc.kune.common.client.actions.AbstractExtendedAction;
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.noti.NotifyUser;
+import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
+import cc.kune.core.client.rpcservices.GroupServiceAsync;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.shared.domain.AdmissionType;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class MembersModerationAction extends AbstractExtendedAction {
+
+ private AdmissionType admissionType;
+ private final Provider<GroupServiceAsync> groupServiceProvider;
+ private final I18nTranslationService i18n;
+ private final Session session;
+
+ @Inject
+ public MembersModerationAction(final Session session, final I18nTranslationService i18n,
+ final Provider<GroupServiceAsync> groupServiceProvider) {
+ this.session = session;
+ this.i18n = i18n;
+ this.groupServiceProvider = groupServiceProvider;
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ groupServiceProvider.get().setGroupNewMembersJoiningPolicy(session.getUserHash(),
+ session.getCurrentState().getGroup().getStateToken(), admissionType, new AsyncCallbackSimple<Void>() {
+ @Override
+ public void onSuccess(final Void result) {
+ NotifyUser.info(i18n.t("Members joining policy changed"));
+ }
+ });
+ }
+
+ public void setAdmissionType(final AdmissionType admissionType) {
+ this.admissionType = admissionType;
+ }
+
+}
Added: trunk/src/main/java/cc/kune/core/client/sn/actions/MembersModerationMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/MembersModerationMenuItem.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/MembersModerationMenuItem.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -0,0 +1,23 @@
+package cc.kune.core.client.sn.actions;
+
+import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
+import cc.kune.common.client.actions.ui.descrip.MenuRadioItemDescriptor;
+import cc.kune.core.shared.domain.AdmissionType;
+
+import com.google.inject.Inject;
+
+public class MembersModerationMenuItem extends MenuRadioItemDescriptor {
+
+ private static final String GROUP_MEMBERS_MODERATION = "k-sn-gmembers-vis";
+
+ @Inject
+ public MembersModerationMenuItem(final MenuDescriptor parent, final MembersModerationAction action) {
+ super(parent, action, GROUP_MEMBERS_MODERATION);
+ }
+
+ public MenuRadioItemDescriptor withModeration(final AdmissionType admissionType) {
+ ((MembersModerationAction) getAction()).setAdmissionType(admissionType);
+ return this;
+ }
+
+}
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/core/client/sn/actions/MembersVisibilityAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/MembersVisibilityAction.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/MembersVisibilityAction.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -0,0 +1,46 @@
+package cc.kune.core.client.sn.actions;
+
+import cc.kune.common.client.actions.AbstractExtendedAction;
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.noti.NotifyUser;
+import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
+import cc.kune.core.client.rpcservices.GroupServiceAsync;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.shared.domain.SocialNetworkVisibility;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class MembersVisibilityAction extends AbstractExtendedAction {
+
+ private final Provider<GroupServiceAsync> groupServiceProvider;
+ private final I18nTranslationService i18n;
+ private final Session session;
+ private SocialNetworkVisibility visibility;
+
+ @Inject
+ public MembersVisibilityAction(final Session session, final I18nTranslationService i18n,
+ final Provider<GroupServiceAsync> groupServiceProvider) {
+ this.session = session;
+ this.i18n = i18n;
+ this.groupServiceProvider = groupServiceProvider;
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ groupServiceProvider.get().setSocialNetworkVisibility(session.getUserHash(),
+ session.getCurrentState().getGroup().getStateToken(), visibility, new AsyncCallbackSimple<Void>() {
+ @Override
+ public void onSuccess(final Void result) {
+ NotifyUser.info(i18n.t("Members visibility changed"));
+ }
+ });
+ }
+
+ public void setVisibility(final SocialNetworkVisibility visibility) {
+ this.visibility = visibility;
+
+ }
+
+}
Added: trunk/src/main/java/cc/kune/core/client/sn/actions/MembersVisibilityMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/MembersVisibilityMenuItem.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/MembersVisibilityMenuItem.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -0,0 +1,23 @@
+package cc.kune.core.client.sn.actions;
+
+import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
+import cc.kune.common.client.actions.ui.descrip.MenuRadioItemDescriptor;
+import cc.kune.core.shared.domain.SocialNetworkVisibility;
+
+import com.google.inject.Inject;
+
+public class MembersVisibilityMenuItem extends MenuRadioItemDescriptor {
+
+ private static final String GROUP_MEMBERS_VISIBILITY = "k-sn-gmembers-vis";
+
+ @Inject
+ public MembersVisibilityMenuItem(final MenuDescriptor parent, final MembersVisibilityAction action) {
+ super(parent, action, GROUP_MEMBERS_VISIBILITY);
+ }
+
+ public MenuRadioItemDescriptor withVisibility(final SocialNetworkVisibility visibility) {
+ ((MembersVisibilityAction) getAction()).setVisibility(visibility);
+ return this;
+ }
+
+}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/UnJoinGroupAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/UnJoinGroupAction.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/UnJoinGroupAction.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -28,6 +28,7 @@
putValue(NAME, i18n.t("Leave this group"));
putValue(SHORT_DESCRIPTION, i18n.t("Do not participate anymore in this group"));
putValue(Action.SMALL_ICON, res.del());
+ putValue(Action.STYLES, "k-sn-join");
}
@Override
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupMembersActionsRegistry.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupMembersActionsRegistry.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupMembersActionsRegistry.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -1,22 +1,6 @@
package cc.kune.core.client.sn.actions.registry;
-import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
-import cc.kune.core.client.sn.actions.JoinGroupAction;
-import cc.kune.core.client.sn.actions.UnJoinGroupAction;
-import cc.kune.core.client.sn.actions.conditions.IsGroupCondition;
-import com.google.inject.Inject;
-
public class GroupMembersActionsRegistry extends AbstractSNActionsRegistry {
- @Inject
- public GroupMembersActionsRegistry(final JoinGroupAction joinGroupAction, final IsGroupCondition isGroupCondition,
- final UnJoinGroupAction unJoinGroupAction) {
- final ButtonDescriptor join = new ButtonDescriptor(joinGroupAction);
- final ButtonDescriptor unjoin = new ButtonDescriptor(unJoinGroupAction);
- // join.setStyles("k-no-backimage");
- // unjoin.setStyles("k-no-backimage");
- // join.add(isGroupCondition);
- add(join);
- add(unjoin);
- }
+
}
Modified: trunk/src/main/java/cc/kune/core/client/state/AccessRightsClientManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/AccessRightsClientManager.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/state/AccessRightsClientManager.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -33,7 +33,7 @@
public AccessRightsClientManager(final EventBus eventBus, final StateManager stateManager) {
this.eventBus = eventBus;
this.previousRights = null;
- stateManager.onStateChanged(new StateChangedHandler() {
+ stateManager.onStateChanged(true, new StateChangedHandler() {
@Override
public void onStateChanged(final StateChangedEvent event) {
Modified: trunk/src/main/java/cc/kune/core/client/state/Session.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/Session.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/state/Session.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -136,7 +136,7 @@
boolean isNotLogged();
- void onInitDataReceived(AppStartEvent.AppStartHandler handler);
+ void onInitDataReceived(boolean fireNow, AppStartEvent.AppStartHandler handler);
@Deprecated
void onInitDataReceived(Listener<InitDataDTO> listener);
Modified: trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -292,8 +292,11 @@
}
@Override
- public void onInitDataReceived(final AppStartHandler handler) {
+ public void onInitDataReceived(final boolean fireNow, final AppStartHandler handler) {
eventBus.addHandler(AppStartEvent.getType(), handler);
+ if (fireNow && initData != null) {
+ handler.onAppStart(new AppStartEvent(initData));
+ }
}
@Override
Modified: trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -40,8 +40,9 @@
private final Provider<StateManager> stateManager;
@Inject
- public SiteTokenListeners(final EventBus eventBus, final Provider<StateManager> stateManager,
- final Provider<SignIn> signIn, final Provider<Register> register, final Provider<NewGroup> newGroup,
+ public SiteTokenListeners(final Session session, final EventBus eventBus,
+ final Provider<StateManager> stateManager, final Provider<SignIn> signIn,
+ final Provider<Register> register, final Provider<NewGroup> newGroup,
final Provider<AboutKuneDialog> aboutKuneDialog) {
this.stateManager = stateManager;
this.signIn = signIn;
@@ -49,7 +50,7 @@
this.newGroup = newGroup;
this.aboutKuneDialog = aboutKuneDialog;
init();
- eventBus.addHandler(AppStartEvent.getType(), new AppStartHandler() {
+ session.onInitDataReceived(true, new AppStartHandler() {
@Override
public void onAppStart(final AppStartEvent event) {
}
Modified: trunk/src/main/java/cc/kune/core/client/state/StateManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateManager.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/state/StateManager.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -47,11 +47,16 @@
void onSocialNetworkChanged(SocialNetworkChangedEvent.SocialNetworkChangedHandler handler);
+ /**
+ * @param fireNow
+ * if true, fire handler with current state
+ * @param handler
+ */
+ void onStateChanged(boolean fireNow, StateChangedEvent.StateChangedHandler handler);
+
@Deprecated
void onStateChanged(Listener<StateAbstractDTO> listener);
- void onStateChanged(StateChangedEvent.StateChangedHandler handler);
-
@Deprecated
void onToolChanged(Listener2<String, String> listener);
Modified: trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -153,7 +153,7 @@
if (beforeStateChangeCollection.checkBeforeAction()) {
final HistoryTokenCallback tokenListener = siteTokens.get(historyToken != null ? historyToken.toLowerCase()
: historyToken);
- Log.debug("StateManager: history token changed (" + historyToken + ")");
+ Log.debug("StateManager: on history changed (" + historyToken + ")");
if (tokenListener == null) {
// Ok, normal token change
onHistoryChanged(new StateToken(historyToken));
@@ -182,13 +182,18 @@
}
@Override
- public void onStateChanged(final Listener<StateAbstractDTO> listener) {
- throw new NotImplementedException();
+ public void onStateChanged(final boolean fireNow, final StateChangedHandler handler) {
+ eventBus.addHandler(StateChangedEvent.getType(), handler);
+ if (fireNow) {
+ if (session.getCurrentState() != null) {
+ handler.onStateChanged(new StateChangedEvent(session.getCurrentState()));
+ }
+ }
}
@Override
- public void onStateChanged(final StateChangedHandler handler) {
- eventBus.addHandler(StateChangedEvent.getType(), handler);
+ public void onStateChanged(final Listener<StateAbstractDTO> listener) {
+ throw new NotImplementedException();
}
@Override
@@ -203,6 +208,7 @@
@Override
public void onValueChange(final ValueChangeEvent<String> event) {
+ Log.info("History event value changed: " + event.getValue());
onHistoryChanged(event.getValue());
}
Modified: trunk/src/main/java/cc/kune/core/client/ui/dialogs/BasicDialog.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ui/dialogs/BasicDialog.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/ui/dialogs/BasicDialog.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -142,7 +142,7 @@
public void setTitleIcon(final String icon) {
if (TextUtils.notEmpty(icon)) {
- title.setIcon(icon);
+ title.setLeftIcon(icon);
}
}
Modified: trunk/src/main/java/cc/kune/core/client/ui/footer/license/EntityLicensePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ui/footer/license/EntityLicensePresenter.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/client/ui/footer/license/EntityLicensePresenter.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -64,7 +64,7 @@
public EntityLicensePresenter(final EventBus eventBus, final EntityLicenseView view,
final EntityLicenseProxy proxy, final StateManager stateManager) {
super(eventBus, view, proxy);
- stateManager.onStateChanged(new StateChangedHandler() {
+ stateManager.onStateChanged(true, new StateChangedHandler() {
@Override
public void onStateChanged(final StateChangedEvent event) {
Modified: trunk/src/main/java/cc/kune/core/public/ws.css
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.css 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/core/public/ws.css 2011-02-24 02:37:26 UTC (rev 1261)
@@ -945,4 +945,16 @@
float: right;
margin: 10px 15px 0px 5px;
cursor: pointer;
-}
\ No newline at end of file
+}
+
+.k-sn-options-menu {
+ float: left;
+}
+
+.k-sn-options-menu button {
+ background-color: none;
+}
+
+.k-sn-join {
+ float:left;
+}
Modified: trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java 2011-02-22 02:22:10 UTC (rev 1260)
+++ trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java 2011-02-24 02:37:26 UTC (rev 1261)
@@ -21,8 +21,10 @@
import cc.kune.common.client.actions.ui.IsActionExtensible;
import cc.kune.core.client.init.AppStartEvent;
+import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateChangedEvent;
import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
+import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.ContentStatus;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.GroupListDTO;
@@ -61,15 +63,16 @@
private final StateTokenUtils stateTokenUtils;
@Inject
- public PSpacePresenter(final EventBus eventBus, final PSpaceView view, final PSpaceProxy proxy,
- final I18nTranslationService i18n, final StateTokenUtils stateTokenUtils) {
+ public PSpacePresenter(final Session session, final StateManager stateManager, final EventBus eventBus,
+ final PSpaceView view, final PSpaceProxy proxy, final I18nTranslationService i18n,
+ final StateTokenUtils stateTokenUtils) {
super(eventBus, view, proxy);
this.i18n = i18n;
this.stateTokenUtils = stateTokenUtils;
- eventBus.addHandler(AppStartEvent.getType(), new AppStartEvent.AppStartHandler() {
+ session.onInitDataReceived(true, new AppStartEvent.AppStartHandler() {
@Override
public void onAppStart(final AppStartEvent event) {
- eventBus.addHandler(StateChangedEvent.getType(), new StateChangedHandler() {
+ stateManager.onStateChanged(true, new StateChangedHandler() {
@Override
public void onStateChanged(final StateChangedEvent event) {
setState(event.getState());
1
0
r1260 - in trunk/src/main/java/cc/kune: chat/client client common/client/shortcuts core/client core/public
by Vicente J. Ruiz Jurado 22 Feb '11
by Vicente J. Ruiz Jurado 22 Feb '11
22 Feb '11
Author: vjrj_
Date: 2011-02-22 03:22:10 +0100 (Tue, 22 Feb 2011)
New Revision: 1260
Modified:
trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
trunk/src/main/java/cc/kune/client/KuneEntryPoint.java
trunk/src/main/java/cc/kune/common/client/shortcuts/DefaultGlobalShortcutRegister.java
trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
trunk/src/main/java/cc/kune/core/public/ws.css
Log:
Shortcuts fixed
Modified: trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-02-22 00:00:03 UTC (rev 1259)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-02-22 02:22:10 UTC (rev 1260)
@@ -30,7 +30,6 @@
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.actions.KeyStroke;
import cc.kune.common.client.actions.Shortcut;
-import cc.kune.common.client.actions.ui.ParentWidget;
import cc.kune.common.client.actions.ui.descrip.IconLabelDescriptor;
import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor;
import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor.Type;
@@ -54,6 +53,7 @@
import com.calclab.emite.core.client.xmpp.stanzas.XmppURI;
import com.calclab.emite.im.client.chat.ChatManager;
import com.calclab.emite.im.client.roster.XmppRoster;
+import com.calclab.emite.reconnect.client.SessionReconnect;
import com.calclab.emite.xep.avatar.client.AvatarManager;
import com.calclab.emite.xep.muc.client.Room;
import com.calclab.emite.xep.muc.client.RoomManager;
@@ -145,6 +145,7 @@
this.roster = Suco.get(XmppRoster.class);
this.chatManager = Suco.get(ChatManager.class);
this.roomManager = Suco.get(RoomManager.class);
+ Suco.get(SessionReconnect.class);
eventBus.addHandler(AppStartEvent.getType(), new AppStartEvent.AppStartHandler() {
@Override
@@ -222,9 +223,9 @@
chatIcon.setStyles("k-no-backimage, k-btn-sitebar, k-chat-icon");
chatIcon.putValue(Action.NAME, i18n.t(CHAT_TITLE));
chatIcon.putValue(Action.SHORT_DESCRIPTION, i18n.t("Show/hide the chat window"));
- final KeyStroke shortcut = Shortcut.getShortcut(false, true, true, false, Character.valueOf('C'));
+ final KeyStroke shortcut = Shortcut.getShortcut(false, true, false, false, Character.valueOf('C'));
shorcutRegister.put(shortcut, action);
- action.setShortcut(shortcut);
+ // action.setShortcut(shortcut);
chatIcon.setVisible(session.isLogged());
siteActions.getLeftToolbar().addAction(
new ToolbarSeparatorDescriptor(Type.spacer, SitebarActionsPresenter.LEFT_TOOLBAR));
@@ -252,8 +253,9 @@
dialog.setBodyStyleName("k-chat-window");
dialog.setScrollMode(Scroll.NONE);
dialog.setHideOnButtonClick(true);
- final Widget btn = (Widget) chatIcon.getValue(ParentWidget.PARENT_UI);
- dialog.setPosition(btn.getAbsoluteLeft(), btn.getAbsoluteTop());
+ // final Widget btn = (Widget)
+ // chatIcon.getValue(ParentWidget.PARENT_UI);
+ dialog.setPosition(118, 2);
dialog.setIcon(AbstractImagePrototype.create(chatResources.chat()));
// dialog.getItem(0).getFocusSupport().setIgnore(true);
initEmite();
@@ -416,6 +418,7 @@
}
private void showDialog(final boolean show) {
+ Log.info("Show dialog: " + show);
if (session.isLogged()) {
createDialogIfNeeded();
if (show) {
@@ -429,6 +432,7 @@
}
private void toggleShowDialog() {
+ Log.info("Toggle!");
showDialog(dialog == null ? true : !dialogVisible());
}
Modified: trunk/src/main/java/cc/kune/client/KuneEntryPoint.java
===================================================================
--- trunk/src/main/java/cc/kune/client/KuneEntryPoint.java 2011-02-22 00:00:03 UTC (rev 1259)
+++ trunk/src/main/java/cc/kune/client/KuneEntryPoint.java 2011-02-22 02:22:10 UTC (rev 1260)
@@ -63,6 +63,7 @@
*/
public void onModuleLoadCont() {
DelayedBindRegistry.bind(ginjector);
+ ginjector.getGlobalShortcutRegister().enable();
AsyncCallbackSimple.init(ginjector.getErrorHandler());
ginjector.getEventLogger();
NotifyUser.init(ginjector.getEventBus(), ginjector.getI18n());
@@ -71,7 +72,6 @@
ginjector.getSiteTokenListeners();
ginjector.getGwtGuiProvider();
ginjector.getUserNotifierPresenter();
- ginjector.getGlobalShortcutRegister();
ginjector.getSpinerPresenter();
ginjector.getGroupMembersPresenter();
ginjector.getSiteLogoPresenter();
Modified: trunk/src/main/java/cc/kune/common/client/shortcuts/DefaultGlobalShortcutRegister.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/shortcuts/DefaultGlobalShortcutRegister.java 2011-02-22 00:00:03 UTC (rev 1259)
+++ trunk/src/main/java/cc/kune/common/client/shortcuts/DefaultGlobalShortcutRegister.java 2011-02-22 02:22:10 UTC (rev 1260)
@@ -20,6 +20,7 @@
package cc.kune.common.client.shortcuts;
import cc.kune.common.client.actions.AbstractAction;
+import cc.kune.common.client.actions.Action;
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.actions.ChangeableObject;
import cc.kune.common.client.actions.InputMap;
@@ -49,7 +50,7 @@
final AbstractAction action = get(Shortcut.getShortcut(event.getCtrlKey(), event.getAltKey(),
event.getShiftKey(), event.getShiftKey(), (char) event.getKeyCode()));
if (action != null) {
- GWT.log("Not propagating event");
+ GWT.log("Not propagating event for action: " + action.getValue(Action.NAME));
nativeEvent.stopPropagation();
action.actionPerformed(new ActionEvent(nativeEvent.getCurrentEventTarget(), event));
nativeEventPrev.cancel();
@@ -57,7 +58,6 @@
}
}
};
- enableImpl();
}
@Override
Modified: trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-02-22 00:00:03 UTC (rev 1259)
+++ trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-02-22 02:22:10 UTC (rev 1260)
@@ -118,6 +118,7 @@
bind(ProxyFailureHandler.class).to(DefaultProxyFailureHandler.class).in(Singleton.class);
bind(I18nUITranslationService.class).in(Singleton.class);
bind(I18nTranslationService.class).to(I18nUITranslationService.class).in(Singleton.class);
+ bind(GlobalShortcutRegister.class).to(DefaultGlobalShortcutRegister.class).in(Singleton.class);
// Presenters
bindPresenter(CorePresenter.class, CorePresenter.CoreView.class, CoreViewImpl.class,
@@ -161,7 +162,7 @@
bind(GuiProvider.class).to(DefaultGuiProvider.class).in(Singleton.class);
bind(GxtGuiProvider.class).in(Singleton.class);
bind(GwtGuiProvider.class).in(Singleton.class);
- bind(GlobalShortcutRegister.class).to(DefaultGlobalShortcutRegister.class).in(Singleton.class);
+
bind(MaskWidgetView.class).to(MaskWidget.class).in(Singleton.class);
// Core App
Modified: trunk/src/main/java/cc/kune/core/public/ws.css
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.css 2011-02-22 00:00:03 UTC (rev 1259)
+++ trunk/src/main/java/cc/kune/core/public/ws.css 2011-02-22 02:22:10 UTC (rev 1260)
@@ -903,7 +903,7 @@
}
.k-sn-bottomPanel {
- padding: 0 10px;
+ padding: 8px 10px 0;
float: right;
}
1
0
Author: vjrj_
Date: 2011-02-22 01:00:03 +0100 (Tue, 22 Feb 2011)
New Revision: 1259
Modified:
trunk/pom.xml
trunk/src/main/resources/wave-server.properties
Log:
NEW - # 30: New running methods
http://kune.ourproject.org/issues/ticket/30
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-02-21 20:51:42 UTC (rev 1258)
+++ trunk/pom.xml 2011-02-22 00:00:03 UTC (rev 1259)
@@ -217,11 +217,8 @@
<!-- <version>2.1-SNAPSHOT-r1160</version> -->
<version>3.0-rc2</version>
</dependency>
- <!-- <dependency>
-<groupId>com.googlecode.gwt.inject</groupId>
-<artifactId>gin</artifactId>
-<version>gin-1.1-SNAPSHOT</version>
-</dependency>-->
+ <!-- <dependency> <groupId>com.googlecode.gwt.inject</groupId> <artifactId>gin</artifactId>
+ <version>gin-1.1-SNAPSHOT</version> </dependency> -->
<dependency>
<groupId>com.google.inject.extensions</groupId>
<artifactId>guice-servlet</artifactId>
@@ -247,7 +244,7 @@
<groupId>com.gwtplatform</groupId>
<artifactId>gwtp-all</artifactId>
<version>0.5</version>
-<!-- <version>0.6-SNAPSHOT</version>-->
+ <!-- <version>0.6-SNAPSHOT</version> -->
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
@@ -272,18 +269,9 @@
<artifactId>gwt-fx</artifactId>
<version>r464</version>
</dependency>
- <!--
- <dependency>
- <groupId>com.jhickman.web.gwt</groupId>
- <artifactId>gwt-customuibinder</artifactId>
- <version>0.1</version>
- </dependency>
-
- <dependency>
- <groupId>com.jhickman.web.gwt</groupId>
- <artifactId>gxt-uibinder</artifactId>
- <version>0.6</version>
- </dependency>-->
+ <!-- <dependency> <groupId>com.jhickman.web.gwt</groupId> <artifactId>gwt-customuibinder</artifactId>
+ <version>0.1</version> </dependency> <dependency> <groupId>com.jhickman.web.gwt</groupId>
+ <artifactId>gxt-uibinder</artifactId> <version>0.6</version> </dependency> -->
<!-- cc -->
<dependency>
<groupId>com.gwtext</groupId>
@@ -518,12 +506,6 @@
<scope>provided</scope>
</dependency>
<!-- testing dependencies -->
- <!-- <dependency> -->
- <!-- <groupId>org.mockito</groupId> -->
- <!-- <artifactId>mockito-all</artifactId> -->
- <!-- <scope>test</scope> -->
- <!-- <version>1.6</version> -->
- <!-- </dependency> -->
<dependency>
<groupId>org.jukito</groupId>
<artifactId>jukito</artifactId>
@@ -731,6 +713,46 @@
<build>
<plugins>
<plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.1.1</version>
+ <executions>
+ <execution>
+ <phase>exec</phase>
+ <goals>
+ <goal>java</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <mainClass>cc.kune.wave.server.WaveMain</mainClass>
+ <systemProperties>
+ <systemProperty>
+ <key>wave.server.config</key>
+ <value>src/main/resources/wave-server.properties</value>
+ </systemProperty>
+ <systemProperty>
+ <key>org.eclipse.jetty.util.resource.FileResource.checkAliases</key>
+ <!-- <key>org.mortbay.util.FileResource.checkAliases</key> -->
+ <value>False</value>
+ </systemProperty>
+ <systemProperty>
+ <key>java.security.auth.login.config</key>
+ <value>src/main/resources/jaas.config</value>
+ </systemProperty>
+ <systemProperty>
+ <key>DEBUG</key>
+ <value>true</value>
+ </systemProperty>
+ <systemProperty>
+ <key>org.eclipse.jetty.util.log.DEBUG</key>
+ <value>true</value>
+ </systemProperty>
+ </systemProperties>
+ <classpathScope>runtime</classpathScope>
+ </configuration>
+ </plugin>
+ <plugin>
<!-- =roo -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
Modified: trunk/src/main/resources/wave-server.properties
===================================================================
--- trunk/src/main/resources/wave-server.properties 2011-02-21 20:51:42 UTC (rev 1258)
+++ trunk/src/main/resources/wave-server.properties 2011-02-22 00:00:03 UTC (rev 1259)
@@ -1,7 +1,7 @@
# Core Configuration for the Wave in a Box server
#
-# Domain name of the wave server
+# Domain name of the wave server
wave_server_domain = localhost
# A comma separated list of address on which to listen for connections.
@@ -9,7 +9,7 @@
http_frontend_public_address = localhost:9898
http_frontend_addresses = ${http_frontend_public_address}
http_baseurl = /
-resource_base = ../kune-0.0.7/
+resource_base = target/kune-0.0.7/
### Server-specific variables
###
1
0
21 Feb '11
Author: vjrj_
Date: 2011-02-21 21:51:42 +0100 (Mon, 21 Feb 2011)
New Revision: 1258
Added:
trunk/src/main/java/cc/kune/chat/client/resources/chat-icons.css
trunk/src/main/java/cc/kune/chat/client/resources/e-icon-a.gif
trunk/src/main/java/cc/kune/chat/client/resources/e-icon.gif
trunk/src/main/java/cc/kune/chat/client/snd/
trunk/src/main/java/cc/kune/chat/client/snd/ClickEvent.java
trunk/src/main/java/cc/kune/chat/client/snd/KuneSoundManager.java
trunk/src/main/java/cc/kune/core/client/resources/icons/IconCssResource.java
Removed:
trunk/src/main/java/cc/kune/core/client/resources/icons/IconBorrarCssResource.java
trunk/src/main/java/cc/kune/core/client/resources/icons/e-icon-a.gif
trunk/src/main/java/cc/kune/core/client/resources/icons/e-icon.gif
Modified:
trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
trunk/src/main/java/cc/kune/chat/client/KuneHablarSignals.java
trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java
trunk/src/main/java/cc/kune/chat/client/resources/ChatResources.java
trunk/src/main/java/cc/kune/chat/public/kune-chat.css
trunk/src/main/java/cc/kune/chat/public/kune-hablar.css
trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtButtonGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtComplexToolbar.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtIconLabelGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuCheckItemGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuItemGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuTitleItemGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtPushButtonGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSubMenuGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtToolbarGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtToolbarSeparatorGui.java
trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtToolbarSeparatorGui.java
trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java
trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java
trunk/src/main/java/cc/kune/common/public/gxt-custom/css/gxt-op-common.css
trunk/src/main/java/cc/kune/core/client/logs/Log.java
trunk/src/main/java/cc/kune/core/client/resources/icons/IconResources.java
trunk/src/main/java/cc/kune/core/client/resources/icons/kicon.css
trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
trunk/src/main/java/cc/kune/core/public/ws.css
trunk/src/main/java/cc/kune/core/public/ws.html
trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java
Log:
Actions improved, hablar integration
Modified: trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -23,6 +23,8 @@
import cc.kune.chat.client.ShowChatDialogEvent.ShowChatDialogHandler;
import cc.kune.chat.client.ToggleShowChatDialogEvent.ToggleShowChatDialogHandler;
+import cc.kune.chat.client.resources.ChatResources;
+import cc.kune.chat.client.snd.KuneSoundManager;
import cc.kune.common.client.actions.AbstractExtendedAction;
import cc.kune.common.client.actions.Action;
import cc.kune.common.client.actions.ActionEvent;
@@ -34,13 +36,11 @@
import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor.Type;
import cc.kune.common.client.noti.NotifyUser;
import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
-import cc.kune.common.client.ui.PopupTopPanel;
import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.client.utils.WindowUtils;
import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.init.AppStopEvent;
import cc.kune.core.client.logs.Log;
-import cc.kune.core.client.resources.icons.IconResources;
import cc.kune.core.client.sitebar.SitebarActionsPresenter;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.UserSignInEvent;
@@ -50,7 +50,6 @@
import cc.kune.core.shared.dto.UserInfoDTO;
import cc.kune.core.shared.i18n.I18nTranslationService;
-import com.calclab.emite.browser.client.PageAssist;
import com.calclab.emite.core.client.xmpp.session.XmppSession;
import com.calclab.emite.core.client.xmpp.stanzas.XmppURI;
import com.calclab.emite.im.client.chat.ChatManager;
@@ -64,30 +63,32 @@
import com.calclab.hablar.console.client.HablarConsole;
import com.calclab.hablar.core.client.Hablar;
import com.calclab.hablar.core.client.HablarWidget;
+import com.calclab.hablar.core.client.ui.icon.Icons;
import com.calclab.hablar.html.client.HtmlConfig;
-import com.calclab.hablar.icons.alt.client.AltIcons;
-import com.calclab.hablar.icons.def.client.DefaultIcons;
-import com.calclab.hablar.icons.ie6gif.client.IE6GifIcons;
+import com.calclab.hablar.icons.alt.client.AltIconsBundle;
import com.calclab.hablar.login.client.HablarLogin;
import com.calclab.hablar.login.client.LoginConfig;
import com.calclab.suco.client.Suco;
+import com.extjs.gxt.ui.client.Style.Scroll;
+import com.extjs.gxt.ui.client.widget.Dialog;
+import com.google.gwt.core.client.GWT;
import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.resources.client.ImageResource;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
public class ChatClientDefault implements ChatClient {
- public static class ChatClientAction extends AbstractExtendedAction {
+ public class ChatClientAction extends AbstractExtendedAction {
private final EventBus eventBus;
- private final IconResources res;
+ private final ChatResources res;
- @Inject
- public ChatClientAction(final EventBus eventBus, final IconResources res) {
+ public ChatClientAction(final EventBus eventBus, final ChatResources res) {
super();
this.eventBus = eventBus;
this.res = res;
- res.css().ensureInjected();
putValue(Action.SMALL_ICON, res.chat());
}
@@ -98,42 +99,48 @@
}
public void setBlink(final boolean blink) {
- putValue(Action.SMALL_ICON, blink ? res.chatBlink() : res.chat());
+ final ImageResource icon = blink ? res.chatBlink() : res.chat();
+ putValue(Action.SMALL_ICON, icon);
+ dialog.setIcon(AbstractImagePrototype.create(icon));
}
}
protected static final String CHAT_CLIENT_ICON_ID = "k-chat-icon-id";
+ private static final String CHAT_TITLE = "Chat ;)";
+
private final ChatClientAction action;
protected IconLabelDescriptor chatIcon;
private final ChatManager chatManager;
private final ChatOptions chatOptions;
+ private final ChatResources chatResources;
+ private Dialog dialog;
+ private final EventBus eventBus;
private final I18nTranslationService i18n;
- private PopupTopPanel popup;
private final RoomManager roomManager;
private final XmppRoster roster;
private final Session session;
private final GlobalShortcutRegister shorcutRegister;
private final SitebarActionsPresenter siteActions;
+
private final XmppSession xmppSession;
@Inject
- public ChatClientDefault(final EventBus eventBus, final I18nTranslationService i18n, final ChatClientAction action,
+ public ChatClientDefault(final EventBus eventBus, final I18nTranslationService i18n,
final SitebarActionsPresenter siteActions, final Session session,
- final GlobalShortcutRegister shorcutRegister, final ChatOptions chatOptions) {
+ final GlobalShortcutRegister shorcutRegister, final ChatOptions chatOptions,
+ final ChatResources chatResources) {
- // , final XmppSession xmppSession,
- // final XmppRoster roster, final ChatManager chatManager, final
- // RoomManager roomManager,
- // final SessionReconnect sessionReconnect, final
- // Provider<AvatarManager> avatarManager) {
+ this.eventBus = eventBus;
this.i18n = i18n;
- this.action = action;
+ action = new ChatClientAction(eventBus, chatResources);
this.siteActions = siteActions;
this.session = session;
this.shorcutRegister = shorcutRegister;
this.chatOptions = chatOptions;
+ this.chatResources = chatResources;
+ chatResources.css().ensureInjected();
this.xmppSession = Suco.get(XmppSession.class);
this.roster = Suco.get(XmppRoster.class);
this.chatManager = Suco.get(ChatManager.class);
@@ -146,14 +153,6 @@
chatOptions.httpBase = event.getInitData().getChatHttpBase();
chatOptions.roomHost = event.getInitData().getChatRoomHost();
checkChatDomain(chatOptions.domain);
- // if (session.isLogged()) {
- // session.check(new AsyncCallbackSimple<Void>() {
- // @Override
- // public void onSuccess(final Void result) {
- // doLogin();
- // }
- // });
- // }
session.onUserSignIn(true, new UserSignInHandler() {
@Override
public void onUserSignIn(final UserSignInEvent event) {
@@ -221,7 +220,7 @@
chatIcon = new IconLabelDescriptor(action);
chatIcon.setId(CHAT_CLIENT_ICON_ID);
chatIcon.setStyles("k-no-backimage, k-btn-sitebar, k-chat-icon");
- chatIcon.putValue(Action.NAME, i18n.t("Chat ;)"));
+ chatIcon.putValue(Action.NAME, i18n.t(CHAT_TITLE));
chatIcon.putValue(Action.SHORT_DESCRIPTION, i18n.t("Show/hide the chat window"));
final KeyStroke shortcut = Shortcut.getShortcut(false, true, true, false, Character.valueOf('C'));
shorcutRegister.put(shortcut, action);
@@ -240,22 +239,29 @@
private void createDialog(final HablarWidget widget, final HtmlConfig htmlConfig) {
widget.addStyleName("k-chat-panel");
setSize(widget, htmlConfig);
- popup.add(widget);
+ dialog.add(widget);
}
private void createDialogIfNeeded() {
- if (popup == null) {
- popup = new PopupTopPanel();
- popup.setStyleName("k-popup-top-centered");
- popup.addStyleName("k-bottom-10corners");
- popup.addStyleName("k-box-10shadow");
- popup.addStyleName("k-chat-window");
+ if (dialog == null) {
+ dialog = new Dialog();
+ dialog.setHeading(i18n.t(CHAT_TITLE));
+ dialog.setClosable(true);
+ dialog.setResizable(true);
+ dialog.setButtons("");
+ dialog.setBodyStyleName("k-chat-window");
+ dialog.setScrollMode(Scroll.NONE);
+ dialog.setHideOnButtonClick(true);
+ final Widget btn = (Widget) chatIcon.getValue(ParentWidget.PARENT_UI);
+ dialog.setPosition(btn.getAbsoluteLeft(), btn.getAbsoluteTop());
+ dialog.setIcon(AbstractImagePrototype.create(chatResources.chat()));
+ // dialog.getItem(0).getFocusSupport().setIgnore(true);
initEmite();
}
}
private boolean dialogVisible() {
- return popup != null && popup.isShowing();
+ return dialog != null && dialog.isVisible();
}
@Override
@@ -278,21 +284,17 @@
}
private void initEmite() {
- final String icons = PageAssist.getMeta("hablar.icons");
- if ("alt".equals(icons)) {
- AltIcons.load();
- } else if ("ie6".equals(icons)) {
- IE6GifIcons.load();
- } else {
- DefaultIcons.load();
- }
+ loadIcons(chatResources);
final HablarConfig config = HablarConfig.getFromMeta();
final HtmlConfig htmlConfig = HtmlConfig.getFromMeta();
+ config.dockConfig.headerSize = 0;
+ config.dockConfig.rosterWidth = 150;
+ config.dockConfig.rosterDock = "right";
final HablarWidget widget = new HablarWidget(config.layout, config.tabHeaderSize);
final Hablar hablar = widget.getHablar();
HablarComplete.install(hablar, config);
- new KuneHablarSignals(xmppSession, hablar, action);
+ new KuneHablarSignals(eventBus, xmppSession, hablar, action);
if (htmlConfig.hasLogger) {
new HablarConsole(hablar);
}
@@ -300,6 +302,7 @@
if (htmlConfig.hasLogin) {
new HablarLogin(hablar, LoginConfig.getFromMeta());
}
+ new KuneSoundManager(eventBus, config.soundConfig);
createDialog(widget, htmlConfig);
}
@@ -341,6 +344,31 @@
}
}
+ public void loadIcons(final ChatResources others) {
+ final AltIconsBundle bundle = GWT.create(AltIconsBundle.class);
+ Icons.register(Icons.BUDDY_ADD, bundle.buddyAddIcon());
+ Icons.register(Icons.BUDDY, bundle.buddyIcon());
+ Icons.register(Icons.BUDDY_DND, others.busy());
+ Icons.register(Icons.BUDDY_OFF, others.offline());
+ Icons.register(Icons.BUDDY_ON, others.online());
+ Icons.register(Icons.BUDDY_WAIT, others.away());
+ Icons.register(Icons.ADD_CHAT, bundle.chatAddIcon());
+ Icons.register(Icons.CHAT, others.xa());
+ Icons.register(Icons.CLIPBOARD, bundle.clipboardIcon());
+ Icons.register(Icons.CLOSE, bundle.closeIcon());
+ Icons.register(Icons.CONSOLE, bundle.consoleIcon());
+ Icons.register(Icons.ADD_GROUP, bundle.groupAddIcon());
+ Icons.register(Icons.GROUP_CHAT, bundle.groupChatIcon());
+ Icons.register(Icons.GROUP_CHAT_ADD, bundle.groupChatAddIcon());
+ Icons.register(Icons.LOADING, bundle.loadingIcon());
+ Icons.register(Icons.MENU, bundle.menuIcon());
+ Icons.register(Icons.MISSING_ICON, bundle.missingIcon());
+ Icons.register(Icons.NOT_CONNECTED, others.offline());
+ Icons.register(Icons.CONNECTED, others.online());
+ Icons.register(Icons.ROSTER, bundle.rosterIcon());
+ Icons.register(Icons.SEARCH, bundle.searchIcon());
+ }
+
@Override
public void login(final XmppURI uri, final String passwd) {
xmppSession.login(uri, passwd);
@@ -358,7 +386,7 @@
@Override
public void logout() {
if (dialogVisible()) {
- popup.hide();
+ dialog.hide();
}
if (isLoggedIn()) {
xmppSession.logout();
@@ -371,11 +399,14 @@
}
private void setSize(final Widget widget, final HtmlConfig htmlConfig) {
+
if (htmlConfig.width != null) {
- widget.setWidth(htmlConfig.width);
+ widget.setWidth("98%");
+ dialog.setWidth(htmlConfig.width);
}
if (htmlConfig.height != null) {
- widget.setHeight(htmlConfig.height);
+ widget.setHeight("98%");
+ dialog.setHeight(htmlConfig.height);
}
}
@@ -388,15 +419,17 @@
if (session.isLogged()) {
createDialogIfNeeded();
if (show) {
- popup.showNear((Widget) chatIcon.getValue(ParentWidget.PARENT_UI));
+ dialog.show();
+ dialog.setZIndex(0);
+ dialog.getHeader().setZIndex(0);
} else {
- popup.hide();
+ dialog.hide();
}
}
}
private void toggleShowDialog() {
- showDialog(popup == null ? true : !popup.isShowing());
+ showDialog(dialog == null ? true : !dialogVisible());
}
private XmppURI uriFrom(final String shortName) {
Modified: trunk/src/main/java/cc/kune/chat/client/KuneHablarSignals.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/KuneHablarSignals.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/chat/client/KuneHablarSignals.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -37,6 +37,7 @@
import com.calclab.hablar.user.client.UserContainer;
import com.calclab.suco.client.Suco;
import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HasText;
@@ -71,8 +72,9 @@
// FIXME: move to gin
@SuppressWarnings("deprecation")
- public KuneHablarSignals(final XmppSession session, final Hablar hablar, final ChatClientAction action) {
- final HablarEventBus eventBus = hablar.getEventBus();
+ public KuneHablarSignals(final EventBus eventBus, final XmppSession session, final Hablar hablar,
+ final ChatClientAction action) {
+ final HablarEventBus hablarEventBus = hablar.getEventBus();
final PrivateStorageManager storageManager = Suco.get(PrivateStorageManager.class);
final HasText titleDisplay = new HasText() {
@@ -88,11 +90,12 @@
};
final SignalPreferences preferences = new SignalPreferences();
- final UnattendedPagesManager manager = new UnattendedPagesManager(eventBus, BrowserFocusHandler.getInstance());
- new BrowserFocusManager(eventBus, manager, BrowserFocusHandler.getInstance());
- new UnattendedPresenter(eventBus, preferences, manager, titleDisplay);
- new KuneUnattendedPresenter(eventBus, preferences, manager, action);
- final NotificationManager notificationManager = new NotificationManager(eventBus, preferences);
+ final UnattendedPagesManager manager = new UnattendedPagesManager(hablarEventBus,
+ BrowserFocusHandler.getInstance());
+ new BrowserFocusManager(hablarEventBus, manager, BrowserFocusHandler.getInstance());
+ new UnattendedPresenter(hablarEventBus, preferences, manager, titleDisplay);
+ new KuneUnattendedPresenter(eventBus, hablarEventBus, preferences, manager, action);
+ final NotificationManager notificationManager = new NotificationManager(hablarEventBus, preferences);
// notificationManager.addNotifier((BrowserPopupHablarNotifier)
// GWT.create(BrowserPopupHablarNotifier.class),
@@ -100,7 +103,7 @@
notificationManager.addNotifier((KuneChatNotifier) GWT.create(KuneChatNotifier.class), true);
final SignalsPreferencesPresenter preferencesPage = new SignalsPreferencesPresenter(session, storageManager,
- eventBus, preferences, new SignalsPreferencesWidget(), notificationManager);
+ hablarEventBus, preferences, new SignalsPreferencesWidget(), notificationManager);
hablar.addPage(preferencesPage, UserContainer.ROL);
}
Modified: trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -20,15 +20,14 @@
package cc.kune.chat.client;
import cc.kune.chat.client.ChatClientDefault.ChatClientAction;
-import cc.kune.common.client.noti.NotifyUser;
+import cc.kune.chat.client.snd.ClickEvent;
-import com.calclab.hablar.chat.client.ui.PairChatPresenter;
import com.calclab.hablar.core.client.mvp.HablarEventBus;
-import com.calclab.hablar.rooms.client.room.RoomPresenter;
import com.calclab.hablar.signals.client.SignalPreferences;
import com.calclab.hablar.signals.client.unattended.UnattendedChatsChangedEvent;
import com.calclab.hablar.signals.client.unattended.UnattendedChatsChangedHandler;
import com.calclab.hablar.signals.client.unattended.UnattendedPagesManager;
+import com.google.gwt.event.shared.EventBus;
/**
* Handles the presentation of unattended chats
@@ -36,8 +35,9 @@
public class KuneUnattendedPresenter {
private boolean active;
- public KuneUnattendedPresenter(final HablarEventBus hablarEventBus, final SignalPreferences preferences,
- final UnattendedPagesManager unattendedManager, final ChatClientAction action) {
+ public KuneUnattendedPresenter(final EventBus eventBus, final HablarEventBus hablarEventBus,
+ final SignalPreferences preferences, final UnattendedPagesManager unattendedManager,
+ final ChatClientAction action) {
active = false;
hablarEventBus.addHandler(UnattendedChatsChangedEvent.TYPE, new UnattendedChatsChangedHandler() {
@Override
@@ -45,10 +45,9 @@
final int unattendedChatsCount = unattendedManager.getSize();
if (unattendedChatsCount > 0 && active == false) {
active = true;
- NotifyUser.info("Num: " + unattendedChatsCount, true);
- if (isChatPage(event.getPage().getType())) {
- action.setBlink(true);
- }
+ ClickEvent.fire(eventBus);
+ action.setBlink(true);
+
} else if (unattendedChatsCount == 0 && active == true) {
action.setBlink(false);
active = false;
@@ -59,8 +58,4 @@
}
- private boolean isChatPage(final String pageType) {
- return pageType.equals(PairChatPresenter.TYPE) || pageType.equals(RoomPresenter.TYPE);
- }
-
}
Modified: trunk/src/main/java/cc/kune/chat/client/resources/ChatResources.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/resources/ChatResources.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/chat/client/resources/ChatResources.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -1,9 +1,12 @@
package cc.kune.chat.client.resources;
import com.google.gwt.resources.client.ClientBundle;
+import com.google.gwt.resources.client.CssResource;
import com.google.gwt.resources.client.ImageResource;
public interface ChatResources extends ClientBundle {
+ public interface ChatIconCssResource extends CssResource {
+ }
@Source("add.png")
ImageResource add();
@@ -17,15 +20,24 @@
@Source("cancel.png")
ImageResource cancel();
- @Source("chat.png")
+ @Source("e-icon.gif")
ImageResource chat();
+ @Source("e-icon-a.gif")
+ ImageResource chatBlink();
+
@Source("chat-new-message-small.png")
ImageResource chatNewMessageSmall();
+ @Source("chat.png")
+ ImageResource chatNormal();
+
@Source("chat-small.png")
ImageResource chatSmall();
+ @Source("chat-icons.css")
+ ChatIconCssResource css();
+
@Source("del.png")
ImageResource del();
Added: trunk/src/main/java/cc/kune/chat/client/resources/chat-icons.css
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/resources/chat-icons.css (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/resources/chat-icons.css 2011-02-21 20:51:42 UTC (rev 1258)
@@ -0,0 +1,10 @@
+@CHARSET "UTF-8";
+@external k-*;
+
+@sprite div .k-icon-chatBlink {
+ gwt-image: "chatBlink";
+}
+
+@sprite div .k-icon-chat {
+ gwt-image: "chat";
+}
\ No newline at end of file
Copied: trunk/src/main/java/cc/kune/chat/client/resources/e-icon-a.gif (from rev 1254, trunk/src/main/java/cc/kune/core/client/resources/icons/e-icon-a.gif)
===================================================================
(Binary files differ)
Copied: trunk/src/main/java/cc/kune/chat/client/resources/e-icon.gif (from rev 1254, trunk/src/main/java/cc/kune/core/client/resources/icons/e-icon.gif)
===================================================================
(Binary files differ)
Added: trunk/src/main/java/cc/kune/chat/client/snd/ClickEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/snd/ClickEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/snd/ClickEvent.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -0,0 +1,58 @@
+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 ClickEvent extends GwtEvent<ClickEvent.ClickHandler> {
+
+ public interface HasClickHandlers extends HasHandlers {
+ HandlerRegistration addClickHandler(ClickHandler handler);
+ }
+
+ public interface ClickHandler extends EventHandler {
+ public void onClick(ClickEvent event);
+ }
+
+ private static final Type<ClickHandler> TYPE = new Type<ClickHandler>();
+
+ public static void fire(HasHandlers source) {
+ source.fireEvent(new ClickEvent());
+ }
+
+ public static Type<ClickHandler> getType() {
+ return TYPE;
+ }
+
+
+ public ClickEvent() {
+ }
+
+ @Override
+ public Type<ClickHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(ClickHandler handler) {
+ handler.onClick(this);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return super.equals(obj);
+ }
+
+ @Override
+ public int hashCode() {
+ return super.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "ClickEvent["
+ + "]";
+ }
+}
Added: trunk/src/main/java/cc/kune/chat/client/snd/KuneSoundManager.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/snd/KuneSoundManager.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/snd/KuneSoundManager.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -0,0 +1,28 @@
+package cc.kune.chat.client.snd;
+
+import com.calclab.hablar.signals.sound.client.SoundManager;
+import com.calclab.hablar.signals.sound.client.SoundSignalsConfig;
+import com.google.gwt.event.shared.EventBus;
+
+public class KuneSoundManager {
+ private final SoundSignalsConfig soundConfig;
+ SoundManager soundManager;
+
+ public KuneSoundManager(final EventBus eventBus, final SoundSignalsConfig soundConfig) {
+ this.soundConfig = soundConfig;
+ eventBus.addHandler(ClickEvent.getType(), new ClickEvent.ClickHandler() {
+ @Override
+ public void onClick(final ClickEvent event) {
+ createSoundManagerIfNeeded();
+ soundManager.play();
+ }
+ });
+ }
+
+ private void createSoundManagerIfNeeded() {
+ if (soundManager == null) {
+ soundManager = new SoundManager(soundConfig);
+ }
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/chat/public/kune-chat.css
===================================================================
--- trunk/src/main/java/cc/kune/chat/public/kune-chat.css 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/chat/public/kune-chat.css 2011-02-21 20:51:42 UTC (rev 1258)
@@ -61,8 +61,9 @@
margin-top: 3px;
}
-.k-chat-window {
- background-color: #FFF;
+.k-chat-window { /* background-color: #FFF;
+ padding: 5px; */
+
}
.k-chat-panel {
@@ -74,7 +75,7 @@
}
.hablar-HablarWidget {
- background-color: #888;
+ background-color: #F2F2F2;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
@@ -95,9 +96,9 @@
}
.hablar-defaultBackground,.hablar-UserWidget,.hablar-defaultBordered {
- -moz-border-radius: 5px;
+ /* -moz-border-radius: 5px;
-webkit-border-radius: 5px;
- border-radius: 5px;
+ border-radius: 5px; */
}
.hablar-Header { /* -webkit-border-top-right-radius: 5px;*/
@@ -127,6 +128,10 @@
border-top-left-radius: 5px;
}
+.hablar-TabsHeaderWidget {
+ margin: -1px;
+}
+
.hablar-ChatWidget {
-webkit-border-bottom-right-radius: 5px;
-moz-border-radius-bottomright: 5px;
Modified: trunk/src/main/java/cc/kune/chat/public/kune-hablar.css
===================================================================
--- trunk/src/main/java/cc/kune/chat/public/kune-hablar.css 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/chat/public/kune-hablar.css 2011-02-21 20:51:42 UTC (rev 1258)
@@ -209,7 +209,7 @@
.chatMessage .metadata {
display: inline;
color: #808080;
- font-size: 90%;
+ font-size: 14px;
}
.chatMessage .body {
@@ -237,7 +237,7 @@
html {
font-family: Tahoma, sans-serif;
- font-size: 80%;
+ font-size: 12px;
}
body {
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -39,7 +39,7 @@
public abstract class AbstractGwtButtonGui extends AbstractChildGuiItem {
private ButtonBase button;
- private final boolean enableTongle;
+ protected boolean enableTongle;
private IconLabel iconLabel;
private boolean isChild;
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -144,10 +144,8 @@
@Override
protected void setEnabled(final boolean enabled) {
- item.setVisible(enabled);
item.setEnabled(enabled);
- iconLabel.setVisible(enabled);
- layout();
+ setVisible(enabled);
}
@Override
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtButtonGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtButtonGui.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtButtonGui.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -19,18 +19,7 @@
*/
package cc.kune.common.client.actions.gwtui;
-import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
public class GwtButtonGui extends AbstractGwtButtonGui {
- public GwtButtonGui() {
- }
-
- public GwtButtonGui(final ButtonDescriptor buttonDescriptor) {
- super(buttonDescriptor);
- }
-
- public GwtButtonGui(final ButtonDescriptor buttonDescriptor, final boolean enableTongle) {
- super(buttonDescriptor, enableTongle);
- }
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtComplexToolbar.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtComplexToolbar.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtComplexToolbar.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -51,17 +51,17 @@
toolbar.add((Widget) uiObject);
}
- public void addFill() {
+ public Widget addFill() {
currentFlow = FlowDir.right;
- toolbar.addFill();
+ return toolbar.addFill();
}
- public void addSeparator() {
- toolbar.addSeparator();
+ public Widget addSeparator() {
+ return toolbar.addSeparator();
}
- public void addSpacer() {
- toolbar.addSpacer();
+ public Widget addSpacer() {
+ return toolbar.addSpacer();
}
private String getFlow() {
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-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtIconLabelGui.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -26,7 +26,6 @@
import cc.kune.common.client.actions.ui.AbstractGuiItem;
import cc.kune.common.client.actions.ui.ParentWidget;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
-import cc.kune.common.client.actions.ui.descrip.IconLabelDescriptor;
import cc.kune.common.client.ui.IconLabel;
import com.google.gwt.event.dom.client.ClickEvent;
@@ -36,13 +35,6 @@
public class GwtIconLabelGui extends AbstractGuiItem {
private IconLabel iconLabel;
- public GwtIconLabelGui() {
- }
-
- public GwtIconLabelGui(final IconLabelDescriptor iconLabelDescriptor) {
- super(iconLabelDescriptor);
- }
-
@Override
protected void addStyle(final String style) {
iconLabel.addStyleName(style);
@@ -74,7 +66,7 @@
@Override
public void setEnabled(final boolean enabled) {
- // Not implemented
+ super.setVisible(enabled);
}
@Override
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuCheckItemGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuCheckItemGui.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuCheckItemGui.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -19,12 +19,7 @@
*/
package cc.kune.common.client.actions.gwtui;
-import cc.kune.common.client.actions.ui.descrip.MenuCheckItemDescriptor;
public class GwtMenuCheckItemGui extends AbstractGwtMenuItemGui {
- public GwtMenuCheckItemGui(final MenuCheckItemDescriptor descriptor) {
- super(descriptor);
- }
-
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuGui.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuGui.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -37,13 +37,6 @@
private IconLabel iconLabel;
private boolean notStandAlone;
- public GwtMenuGui() {
- }
-
- public GwtMenuGui(final MenuDescriptor descriptor) {
- super(descriptor);
- }
-
@Override
protected void addStyle(final String style) {
if (notStandAlone) {
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuItemGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuItemGui.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuItemGui.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -19,16 +19,7 @@
*/
package cc.kune.common.client.actions.gwtui;
-import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
public class GwtMenuItemGui extends AbstractGwtMenuItemGui {
- public GwtMenuItemGui() {
- super();
- }
-
- public GwtMenuItemGui(final MenuItemDescriptor descriptor) {
- super(descriptor);
- }
-
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuTitleItemGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuTitleItemGui.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuTitleItemGui.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -19,14 +19,6 @@
*/
package cc.kune.common.client.actions.gwtui;
-import cc.kune.common.client.actions.ui.descrip.MenuTitleItemDescriptor;
public class GwtMenuTitleItemGui extends AbstractGwtMenuItemGui {
- public GwtMenuTitleItemGui() {
- super();
- }
-
- public GwtMenuTitleItemGui(final MenuTitleItemDescriptor descriptor) {
- super(descriptor);
- }
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtPushButtonGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtPushButtonGui.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtPushButtonGui.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -21,14 +21,16 @@
import cc.kune.common.client.actions.PropertyChangeEvent;
import cc.kune.common.client.actions.PropertyChangeListener;
+import cc.kune.common.client.actions.ui.AbstractGuiItem;
+import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.client.actions.ui.descrip.PushButtonDescriptor;
public class GwtPushButtonGui extends GwtButtonGui {
- public GwtPushButtonGui() {
- }
-
- public GwtPushButtonGui(final PushButtonDescriptor btn) {
- super(btn, true);
+ @Override
+ public AbstractGuiItem create(final GuiActionDescrip descriptor) {
+ super.descriptor = descriptor;
+ super.enableTongle = true;
+ final PushButtonDescriptor btn = (PushButtonDescriptor) descriptor;
setPressed(btn.isPushed());
btn.addPropertyChangeListener(new PropertyChangeListener() {
@Override
@@ -38,6 +40,7 @@
}
}
});
+ return this;
}
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSubMenuGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSubMenuGui.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSubMenuGui.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -21,7 +21,6 @@
import cc.kune.common.client.actions.ui.AbstractGuiItem;
import cc.kune.common.client.actions.ui.ParentWidget;
-import cc.kune.common.client.actions.ui.descrip.AbstractGuiActionDescrip;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.client.ui.IconLabel;
@@ -32,13 +31,6 @@
private IconLabel iconLabel;
private MenuItem item;
- public GwtSubMenuGui() {
- }
-
- public GwtSubMenuGui(final AbstractGuiActionDescrip descriptor) {
- super(descriptor);
- }
-
@Override
public AbstractGuiItem create(final GuiActionDescrip descriptor) {
super.descriptor = descriptor;
@@ -86,5 +78,7 @@
@Override
public void setVisible(final boolean visible) {
item.setVisible(visible);
+ iconLabel.setVisible(visible);
+ layout();
}
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtToolbarGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtToolbarGui.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtToolbarGui.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -21,38 +21,30 @@
import cc.kune.common.client.actions.ui.AbstractGuiItem;
import cc.kune.common.client.actions.ui.ParentWidget;
-import cc.kune.common.client.actions.ui.descrip.AbstractGuiActionDescrip;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import com.google.gwt.user.client.ui.UIObject;
+import com.google.gwt.user.client.ui.Widget;
public class GwtToolbarGui extends AbstractGuiItem implements ParentWidget {
private GwtComplexToolbar toolbar;
- public GwtToolbarGui() {
- }
-
- public GwtToolbarGui(final AbstractGuiActionDescrip descriptor) {
- super(descriptor);
-
- }
-
@Override
public void add(final UIObject uiObject) {
toolbar.add(uiObject);
}
- public void addFill() {
- toolbar.addFill();
+ public Widget addFill() {
+ return toolbar.addFill();
}
- public void addSeparator() {
- toolbar.addSeparator();
+ public Widget addSeparator() {
+ return toolbar.addSeparator();
}
- public void addSpacer() {
- toolbar.addSpacer();
+ public Widget addSpacer() {
+ return toolbar.addSpacer();
}
@Override
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtToolbarSeparatorGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtToolbarSeparatorGui.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtToolbarSeparatorGui.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -26,10 +26,15 @@
import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor.Type;
import cc.kune.common.client.errors.UIException;
+import com.google.gwt.user.client.ui.Widget;
+
public class GwtToolbarSeparatorGui extends AbstractGuiItem {
+ private Widget widget;
+
@Override
public AbstractGuiItem create(final GuiActionDescrip descriptor) {
+ super.descriptor = descriptor;
final GwtToolbarGui toolbar = ((GwtToolbarGui) descriptor.getParent().getValue(ParentWidget.PARENT_UI));
if (toolbar == null) {
throw new UIException("To add a toolbar separator you need to add the toolbar before. Item: " + descriptor);
@@ -37,17 +42,18 @@
final Type type = ((ToolbarSeparatorDescriptor) descriptor).getSeparatorType();
switch (type) {
case fill:
- toolbar.addFill();
+ widget = toolbar.addFill();
break;
case spacer:
- toolbar.addSpacer();
+ widget = toolbar.addSpacer();
break;
case separator:
- toolbar.addSeparator();
+ widget = toolbar.addSeparator();
break;
default:
break;
}
+ configureItemFromProperties();
return toolbar;
}
@@ -68,6 +74,11 @@
}
@Override
+ public void setVisible(final boolean visible) {
+ widget.setVisible(visible);
+ }
+
+ @Override
public boolean shouldBeAdded() {
return false;
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtToolbarSeparatorGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtToolbarSeparatorGui.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtToolbarSeparatorGui.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -49,6 +49,7 @@
break;
}
super.create(descriptor);
+ configureItemFromProperties();
return toolbar;
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -148,6 +148,8 @@
protected abstract void setToolTipText(String text);
private void setVisible(final Boolean visible) {
+ // if you have problems with setVisible check if the GuiItem calls
+ // configureItemFromProperties on creation
setVisible(visible == null ? true : visible);
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -57,6 +57,8 @@
*/
public AbstractGuiActionDescrip(final AbstractAction action) {
this.action = action;
+ putValue(Action.ENABLED, Boolean.TRUE);
+ putValue(VISIBLE, Boolean.TRUE);
position = NO_POSITION;
parent = NO_PARENT;
addConditions = new ArrayList<GuiAddCondition>();
@@ -82,11 +84,6 @@
return id;
}
- @Override
- public Object getTarget() {
- return getValue(TARGET);
- }
-
/**
* Gets the location, a string used to group actions with locations (top
* bar, bottom bar, user bar...).
@@ -114,6 +111,11 @@
}
@Override
+ public Object getTarget() {
+ return getValue(TARGET);
+ }
+
+ @Override
public abstract Class<?> getType();
@Override
@@ -162,7 +164,7 @@
@Override
public void setEnabled(final boolean enabled) {
- super.putValue(Action.ENABLED, enabled);
+ putValue(Action.ENABLED, enabled);
}
@Override
@@ -170,11 +172,6 @@
this.id = id;
}
- @Override
- public void setTarget(final Object object) {
- putValue(TARGET, object);
- }
-
/**
* If we have several toolbars, we can group with the "location" string key
* actions that must be in the same location (ex: top bar, bottom bar, and
@@ -211,6 +208,11 @@
}
@Override
+ public void setTarget(final Object object) {
+ putValue(TARGET, object);
+ }
+
+ @Override
public void setVisible(final boolean visible) {
putValue(VISIBLE, visible);
}
Modified: trunk/src/main/java/cc/kune/common/public/gxt-custom/css/gxt-op-common.css
===================================================================
--- trunk/src/main/java/cc/kune/common/public/gxt-custom/css/gxt-op-common.css 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/common/public/gxt-custom/css/gxt-op-common.css 2011-02-21 20:51:42 UTC (rev 1258)
@@ -1647,50 +1647,52 @@
}
.x-window-proxy {
- background-color: #1f2833;
- border-color: #18181a;
+ /* background-color: #1f2833;
+ border-color: #18181a; */
}
.x-window-tl .x-window-header {
- color: #fff !important;
- font: bold 14px tahoma, arial, verdana, sans-serif;
+ font-size: 14px;
+ /* color: #fff !important;
+ font: bold 14px tahoma, arial, verdana, sans-serif; */
}
.x-window-tc {
- background-image: url(../images/window/top-bottom.png);
+/* background-image: url(../images/window/top-bottom.png);*/
}
.x-window-tl {
- background-image: url(../images/window/left-corners.png);
+/* background-image: url(../images/window/left-corners.png);*/
}
.x-window-tr {
- background-image: url(../images/window/right-corners.png);
+ /* background-image: url(../images/window/right-corners.png);*/
}
.x-window-bc {
- background-image: url(../images/window/top-bottom.png);
+ /* background-image: url(../images/window/top-bottom.png);*/
}
.x-window-bl {
- background-image: url(../images/window/left-corners.png);
+ /* background-image: url(../images/window/left-corners.png);*/
}
.x-window-br {
- background-image: url(../images/window/right-corners.png);
+ /* background-image: url(../images/window/right-corners.png);*/
}
.x-window-mc {
- border-color: #18181a;
- font: normal 14px 'Ubuntu', Arial background-color : #1f2833;
+ font-size: 16px;
+ /* border-color: #18181a;
+ font: normal 14px 'Ubuntu', Arial background-color : #1f2833; */
}
.x-window-ml {
- background-image: url(../images/window/left-right.png);
+ /* background-image: url(../images/window/left-right.png);*/
}
.x-window-mr {
- background-image: url(../images/window/left-right.png);
+ /* background-image: url(../images/window/left-right.png); */
}
.x-window-maximized .x-window-tc {
Modified: trunk/src/main/java/cc/kune/core/client/logs/Log.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/logs/Log.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/core/client/logs/Log.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -35,4 +35,8 @@
debug(message);
}
+ public static void info(final String message) {
+ GWT.log(message);
+ }
+
}
Deleted: trunk/src/main/java/cc/kune/core/client/resources/icons/IconBorrarCssResource.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/resources/icons/IconBorrarCssResource.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/core/client/resources/icons/IconBorrarCssResource.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -1,55 +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.resources.icons;
-
-import com.google.gwt.resources.client.CssResource;
-
-public interface IconBorrarCssResource extends CssResource {
- //
- // @ClassName("k-icon-addGreen")
- // String kIconAddGreen();
- //
- // @ClassName("k-icon-bug")
- // String kIconBug();
- //
- // @ClassName("k-icon-chat")
- // String kIconChat();
- //
- // @ClassName("k-icon-groupHome")
- // String kIconGroupHome();
- //
- // @ClassName("k-icon-info")
- // String kIconInfo();
- //
- // @ClassName("k-icon-kuneIcon16")
- // String kIconKuneIcon16();
- //
- // @ClassName("k-icon-language")
- // String kIconLanguage();
- //
- // @ClassName("k-icon-maximize")
- // String kIconMaaximize();
- //
- // @ClassName("k-icon-minimize")
- // String kIconMinimize();
- //
- // @ClassName("k-icon-prefs")
- // String kIconPrefs();
-}
Copied: trunk/src/main/java/cc/kune/core/client/resources/icons/IconCssResource.java (from rev 1254, trunk/src/main/java/cc/kune/core/client/resources/icons/IconBorrarCssResource.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/resources/icons/IconCssResource.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/resources/icons/IconCssResource.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -0,0 +1,25 @@
+/*
+ *
+ * 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.resources.icons;
+
+import com.google.gwt.resources.client.CssResource;
+
+public interface IconCssResource extends CssResource {
+}
Modified: trunk/src/main/java/cc/kune/core/client/resources/icons/IconResources.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/resources/icons/IconResources.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/core/client/resources/icons/IconResources.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -30,14 +30,8 @@
@Source("bug.png")
ImageResource bug();
- @Source("e-icon.gif")
- ImageResource chat();
-
- @Source("e-icon-a.gif")
- ImageResource chatBlink();
-
@Source("kicon.css")
- IconBorrarCssResource css();
+ IconCssResource css();
@Source("del-green.png")
ImageResource delGreen();
Deleted: trunk/src/main/java/cc/kune/core/client/resources/icons/e-icon-a.gif
===================================================================
(Binary files differ)
Deleted: trunk/src/main/java/cc/kune/core/client/resources/icons/e-icon.gif
===================================================================
(Binary files differ)
Modified: trunk/src/main/java/cc/kune/core/client/resources/icons/kicon.css
===================================================================
--- trunk/src/main/java/cc/kune/core/client/resources/icons/kicon.css 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/core/client/resources/icons/kicon.css 2011-02-21 20:51:42 UTC (rev 1258)
@@ -1,44 +1,36 @@
@external k-icon-info,k-icon-language,k-icon-kuneIcon16,k-icon-bug,k-icon-prefs,k-icon-groupHome,k-icon-addGreen,k-icon-maximize,k-icon-minimize,k-*;
@sprite div .k-icon-info {
- gwt-image: "info";
+ gwt-image: "info";
}
@sprite div .k-icon-language {
- gwt-image: "language";
+ gwt-image: "language";
}
@sprite div .k-icon-kuneIcon16 {
- gwt-image: "kuneIcon16";
+ gwt-image: "kuneIcon16";
}
@sprite div .k-icon-bug {
- gwt-image: "bug";
+ gwt-image: "bug";
}
@sprite div .k-icon-prefs {
- gwt-image: "prefs";
+ gwt-image: "prefs";
}
@sprite div .k-icon-groupHome {
- gwt-image: "groupHome";
+ gwt-image: "groupHome";
}
@sprite div .k-icon-addGreen {
- gwt-image: "addGreen";
+ gwt-image: "addGreen";
}
@sprite div .k-icon-maximize {
- gwt-image: "maximize";
+ gwt-image: "maximize";
}
-@sprite div .k-icon-chatBlink {
- gwt-image: "chatBlink";
-}
-
-@sprite div .k-icon-chat {
- gwt-image: "chat";
-}
-
@sprite div .k-icon-minimize {
- gwt-image: "minimize";
+ gwt-image: "minimize";
}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -28,12 +28,14 @@
import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor;
+import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor;
+import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor.Type;
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.resources.icons.IconResources;
import cc.kune.core.client.services.FileDownloadUtils;
import cc.kune.core.client.sn.actions.GotoGroupAction;
+import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.UserSignInEvent;
import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
import cc.kune.core.client.state.UserSignOutEvent;
@@ -54,6 +56,7 @@
private final I18nTranslationService i18n;
private final IconResources img;
private SubMenuDescriptor partiMenu;
+ private ToolbarSeparatorDescriptor separator;
private final Session session;
private final SitebarActionsPresenter siteOptions;
private final StateManager stateManager;
@@ -71,17 +74,19 @@
this.siteOptions = siteOptions;
this.gotoGroupAction = gotoGroupAction;
createActions();
+ separator.setVisible(false);
session.onUserSignIn(true, new UserSignInHandler() {
@Override
public void onUserSignIn(final UserSignInEvent event) {
SiteUserOptionsPresenter.this.onUserSignIn(event.getUserInfo());
+ separator.setVisible(true);
}
});
session.onUserSignOut(true, new UserSignOutHandler() {
@Override
public void onUserSignOut(final UserSignOutEvent event) {
LOGGED_USER_MENU.setVisible(false);
- LOGGED_USER_MENU.setEnabled(false);
+ separator.setVisible(false);
SiteUserOptionsPresenter.this.setLoggedUserName("");
}
});
@@ -110,9 +115,11 @@
private void createActions() {
LOGGED_USER_MENU.setId(LOGGED_USER_MENU_ID);
- LOGGED_USER_MENU.setStyles("k-no-backimage, k-btn-sitebar");
- siteOptions.getLeftToolbar().addAction(LOGGED_USER_MENU);
-
+ LOGGED_USER_MENU.setParent(SitebarActionsPresenter.RIGHT_TOOLBAR);
+ LOGGED_USER_MENU.setStyles("k-no-backimage, k-btn-sitebar, k-fl");
+ siteOptions.getRightToolbar().addAction(LOGGED_USER_MENU);
+ separator = new ToolbarSeparatorDescriptor(Type.separator, SitebarActionsPresenter.RIGHT_TOOLBAR);
+ siteOptions.getRightToolbar().addAction(separator);
partiMenu = new SubMenuDescriptor(i18n.t("Your groups"));
addActionImpl(partiMenu);
Modified: trunk/src/main/java/cc/kune/core/public/ws.css
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.css 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/core/public/ws.css 2011-02-21 20:51:42 UTC (rev 1258)
@@ -46,7 +46,7 @@
}
.gwt-MenuItem {
- font-size: 80%;
+ font-size: 14px;
margin: 1px;
cursor: default;
}
@@ -60,7 +60,7 @@
}
.gwt-Tree .gwt-TreeItem {
- font-size: 80%;
+ font-size: 14px;
cursor: default;
}
Modified: trunk/src/main/java/cc/kune/core/public/ws.html
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.html 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/core/public/ws.html 2011-02-21 20:51:42 UTC (rev 1258)
@@ -13,6 +13,7 @@
<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="false" />
<!--<meta name="hablar.hasLogger" content="true" />-->
<meta name="hablar.hasSignals" content="false" />
Modified: trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java 2011-02-21 04:32:11 UTC (rev 1257)
+++ trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java 2011-02-21 20:51:42 UTC (rev 1258)
@@ -20,6 +20,7 @@
package cc.kune.pspace.client;
import cc.kune.common.client.actions.ui.IsActionExtensible;
+import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.state.StateChangedEvent;
import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
import cc.kune.core.shared.domain.ContentStatus;
@@ -65,10 +66,15 @@
super(eventBus, view, proxy);
this.i18n = i18n;
this.stateTokenUtils = stateTokenUtils;
- eventBus.addHandler(StateChangedEvent.getType(), new StateChangedHandler() {
+ eventBus.addHandler(AppStartEvent.getType(), new AppStartEvent.AppStartHandler() {
@Override
- public void onStateChanged(final StateChangedEvent event) {
- setState(event.getState());
+ public void onAppStart(final AppStartEvent event) {
+ eventBus.addHandler(StateChangedEvent.getType(), new StateChangedHandler() {
+ @Override
+ public void onStateChanged(final StateChangedEvent event) {
+ setState(event.getState());
+ }
+ });
}
});
}
1
0
Author: vjrj_
Date: 2011-02-21 05:32:11 +0100 (Mon, 21 Feb 2011)
New Revision: 1257
Added:
trunk/src/main/java/cc/kune/chat/client/ChatParts.java
trunk/src/main/java/cc/kune/chat/client/ChatSitebarActions.java
trunk/src/main/java/cc/kune/chat/client/StartChatWithMemberAction.java
trunk/src/main/java/cc/kune/chat/client/StartChatWithUserAction.java
trunk/src/main/java/cc/kune/chat/client/resources/
trunk/src/main/java/cc/kune/chat/client/resources/ChatResources.java
trunk/src/main/java/cc/kune/chat/client/resources/add.png
trunk/src/main/java/cc/kune/chat/client/resources/away.png
trunk/src/main/java/cc/kune/chat/client/resources/busy.png
trunk/src/main/java/cc/kune/chat/client/resources/cancel.png
trunk/src/main/java/cc/kune/chat/client/resources/chat-new-message-small.png
trunk/src/main/java/cc/kune/chat/client/resources/chat-small.png
trunk/src/main/java/cc/kune/chat/client/resources/chat.png
trunk/src/main/java/cc/kune/chat/client/resources/del.png
trunk/src/main/java/cc/kune/chat/client/resources/group-chat.png
trunk/src/main/java/cc/kune/chat/client/resources/info-lamp.png
trunk/src/main/java/cc/kune/chat/client/resources/info.png
trunk/src/main/java/cc/kune/chat/client/resources/invisible.png
trunk/src/main/java/cc/kune/chat/client/resources/message.png
trunk/src/main/java/cc/kune/chat/client/resources/new-chat.png
trunk/src/main/java/cc/kune/chat/client/resources/new-email.png
trunk/src/main/java/cc/kune/chat/client/resources/new-message.png
trunk/src/main/java/cc/kune/chat/client/resources/not-authorized.png
trunk/src/main/java/cc/kune/chat/client/resources/offline.png
trunk/src/main/java/cc/kune/chat/client/resources/online.png
trunk/src/main/java/cc/kune/chat/client/resources/question.png
trunk/src/main/java/cc/kune/chat/client/resources/room-new-message-small.png
trunk/src/main/java/cc/kune/chat/client/resources/room-small.png
trunk/src/main/java/cc/kune/chat/client/resources/unavailable.png
trunk/src/main/java/cc/kune/chat/client/resources/user_add.png
trunk/src/main/java/cc/kune/chat/client/resources/xa.png
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuTitleItemGui.java
trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtMenuTitleItemGui.java
trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/MenuTitleItemDescriptor.java
trunk/src/main/java/cc/kune/core/client/resources/arrowdownsitebar.gif
trunk/src/main/java/cc/kune/core/public/images/clear.gif
trunk/src/main/java/cc/kune/core/public/images/clear.png
Removed:
trunk/src/main/java/cc/kune/core/client/sn/actions/StartChatWithMemberAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/StartChatWithUserAction.java
Modified:
trunk/.classpath
trunk/pom.xml
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/chat/client/ChatGinModule.java
trunk/src/main/java/cc/kune/chat/client/KuneHablarSignals.java
trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java
trunk/src/main/java/cc/kune/chat/public/kune-chat.css
trunk/src/main/java/cc/kune/chat/public/kune-hablar.css
trunk/src/main/java/cc/kune/client/KuneEntryPoint.java
trunk/src/main/java/cc/kune/client/KuneGinjector.java
trunk/src/main/java/cc/kune/common/KuneCommon.gwt.xml
trunk/src/main/java/cc/kune/common/client/actions/ActionEvent.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtComplexToolbar.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtGuiProvider.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtIconLabelGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuGui.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSubMenuGui.java
trunk/src/main/java/cc/kune/common/client/actions/gxtui/AbstractGxtButtonGui.java
trunk/src/main/java/cc/kune/common/client/actions/gxtui/AbstractGxtMenuItemGui.java
trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtGuiProvider.java
trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java
trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java
trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java
trunk/src/main/java/cc/kune/common/client/ui/AbstractFlowToolbar.java
trunk/src/main/java/cc/kune/common/client/ui/FlowToolbar.java
trunk/src/main/java/cc/kune/common/client/ui/IconLabel.java
trunk/src/main/java/cc/kune/common/client/ui/IconLabel.ui.xml
trunk/src/main/java/cc/kune/common/client/ui/KuneWindowUtils.java
trunk/src/main/java/cc/kune/common/public/kune-common.css
trunk/src/main/java/cc/kune/core/Core.gwt.xml
trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
trunk/src/main/java/cc/kune/core/client/resources/CoreResources.java
trunk/src/main/java/cc/kune/core/client/resources/icons/IconConstants.java
trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java
trunk/src/main/java/cc/kune/core/client/sn/GroupMembersPresenter.java
trunk/src/main/java/cc/kune/core/client/sn/actions/AcceptJoinGroupAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/ChangeToAdminAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/ChangeToCollabAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/DenyJoinGroupAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/GotoGroupAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/RemoveMemberAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsGroupCondition.java
trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsNotMeCondition.java
trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsPersonCondition.java
trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupMembersActionsRegistry.java
trunk/src/main/java/cc/kune/core/client/sn/actions/registry/SNAdminsMenuItemsRegistry.java
trunk/src/main/java/cc/kune/core/client/sn/actions/registry/SNCollabsMenuItemsRegistry.java
trunk/src/main/java/cc/kune/core/client/sn/actions/registry/SNPendingsMenuItemsRegistry.java
trunk/src/main/java/cc/kune/core/client/state/Session.java
trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java
trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
trunk/src/main/java/cc/kune/core/client/ui/footer/license/EntityLicensePanel.java
trunk/src/main/java/cc/kune/core/public/ws.css
trunk/src/main/java/cc/kune/core/public/ws.html
trunk/src/main/java/cc/kune/gspace/client/resources/wsArmor.css
trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.java
trunk/src/main/java/cc/kune/wave/KuneWave.gwt.xml
trunk/src/main/java/cc/kune/wave/client/WaveClientTester.java
Log:
Some fixes, SN changes and more emite integration
Modified: trunk/.classpath
===================================================================
--- trunk/.classpath 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/.classpath 2011-02-21 04:32:11 UTC (rev 1257)
@@ -36,7 +36,6 @@
<classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-assisted-inject/2.0/guice-assisted-inject-2.0.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-servlet/3.0-rc2/guice-servlet-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-servlet/3.0-rc2/guice-servlet-3.0-rc2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/jhickman/web/gwt/gwt-customuibinder/0.1/gwt-customuibinder-0.1.jar"/>
<classpathentry kind="var" path="M2_REPO/org/adamtacy/gwt-fx/r464/gwt-fx-r464.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-gin/1.0-r137/gwt-gin-1.0-r137.jar"/>
<classpathentry kind="var" path="M2_REPO/com/allen_sauer/gwt/log/gwt-log/gwt-log/3.0.1/gwt-log-3.0.1.jar"/>
@@ -55,9 +54,8 @@
<classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-processors/0.5/gwtp-processors-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-processors/0.5/gwtp-processors-0.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-tester/0.5/gwtp-tester-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-tester/0.5/gwtp-tester-0.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/extjs/gxt/2.2.1/gxt-2.2.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/jhickman/web/gwt/gxt-uibinder/0.6/gxt-uibinder-0.6.jar"/>
<classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.0.20070617/h2-1.0.20070617.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/calclab/emite/hablar/r1694/hablar-r1694.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/calclab/emite/hablar/r1697/hablar-r1697.jar"/>
<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar" sourcepath="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-c3p0/3.3.1.GA/hibernate-c3p0-3.3.1.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-c3p0/3.3.1.GA/hibernate-c3p0-3.3.1.GA-sources.jar"/>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/pom.xml 2011-02-21 04:32:11 UTC (rev 1257)
@@ -272,16 +272,18 @@
<artifactId>gwt-fx</artifactId>
<version>r464</version>
</dependency>
+ <!--
<dependency>
<groupId>com.jhickman.web.gwt</groupId>
<artifactId>gwt-customuibinder</artifactId>
<version>0.1</version>
</dependency>
+
<dependency>
<groupId>com.jhickman.web.gwt</groupId>
<artifactId>gxt-uibinder</artifactId>
<version>0.6</version>
- </dependency>
+ </dependency>-->
<!-- cc -->
<dependency>
<groupId>com.gwtext</groupId>
@@ -343,7 +345,7 @@
<dependency>
<groupId>com.calclab.emite</groupId>
<artifactId>hablar</artifactId>
- <version>r1694</version>
+ <version>r1697</version>
</dependency>
<dependency>
<groupId>org.jivesoftware.smack</groupId>
Modified: trunk/src/main/java/cc/kune/chat/client/ChatClient.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClient.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClient.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -29,6 +29,8 @@
void chat(XmppURI jid);
+ void doLogin();
+
boolean isBuddie(String shortName);
boolean isBuddie(XmppURI jid);
@@ -41,6 +43,11 @@
void login(XmppURI uri, String passwd);
+ /**
+ * @return true if loggin is needed
+ */
+ boolean loginIfNecessary();
+
void logout();
void setAvatar(String photoBinary);
Modified: trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -41,7 +41,6 @@
import cc.kune.core.client.init.AppStopEvent;
import cc.kune.core.client.logs.Log;
import cc.kune.core.client.resources.icons.IconResources;
-import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.sitebar.SitebarActionsPresenter;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.UserSignInEvent;
@@ -56,7 +55,6 @@
import com.calclab.emite.core.client.xmpp.stanzas.XmppURI;
import com.calclab.emite.im.client.chat.ChatManager;
import com.calclab.emite.im.client.roster.XmppRoster;
-import com.calclab.emite.reconnect.client.SessionReconnect;
import com.calclab.emite.xep.avatar.client.AvatarManager;
import com.calclab.emite.xep.muc.client.Room;
import com.calclab.emite.xep.muc.client.RoomManager;
@@ -90,7 +88,7 @@
this.eventBus = eventBus;
this.res = res;
res.css().ensureInjected();
- putValue(Action.SMALL_ICON, res.chatBlink());
+ putValue(Action.SMALL_ICON, res.chat());
}
@@ -124,17 +122,22 @@
public ChatClientDefault(final EventBus eventBus, final I18nTranslationService i18n, final ChatClientAction action,
final SitebarActionsPresenter siteActions, final Session session,
final GlobalShortcutRegister shorcutRegister, final ChatOptions chatOptions) {
+
+ // , final XmppSession xmppSession,
+ // final XmppRoster roster, final ChatManager chatManager, final
+ // RoomManager roomManager,
+ // final SessionReconnect sessionReconnect, final
+ // Provider<AvatarManager> avatarManager) {
this.i18n = i18n;
this.action = action;
this.siteActions = siteActions;
this.session = session;
this.shorcutRegister = shorcutRegister;
this.chatOptions = chatOptions;
- roster = Suco.get(XmppRoster.class);
- xmppSession = Suco.get(XmppSession.class);
- chatManager = Suco.get(ChatManager.class);
- roomManager = Suco.get(RoomManager.class);
- Suco.get(SessionReconnect.class);
+ this.xmppSession = Suco.get(XmppSession.class);
+ this.roster = Suco.get(XmppRoster.class);
+ this.chatManager = Suco.get(ChatManager.class);
+ this.roomManager = Suco.get(RoomManager.class);
eventBus.addHandler(AppStartEvent.getType(), new AppStartEvent.AppStartHandler() {
@Override
@@ -143,21 +146,21 @@
chatOptions.httpBase = event.getInitData().getChatHttpBase();
chatOptions.roomHost = event.getInitData().getChatRoomHost();
checkChatDomain(chatOptions.domain);
- if (session.isLogged()) {
- session.check(new AsyncCallbackSimple<Void>() {
- @Override
- public void onSuccess(final Void result) {
- doLogin(session.getCurrentUserInfo());
- }
- });
- }
- eventBus.addHandler(UserSignInEvent.getType(), new UserSignInHandler() {
+ // if (session.isLogged()) {
+ // session.check(new AsyncCallbackSimple<Void>() {
+ // @Override
+ // public void onSuccess(final Void result) {
+ // doLogin();
+ // }
+ // });
+ // }
+ session.onUserSignIn(true, new UserSignInHandler() {
@Override
public void onUserSignIn(final UserSignInEvent event) {
- doLogin(session.getCurrentUserInfo());
+ doLogin();
}
});
- eventBus.addHandler(UserSignOutEvent.getType(), new UserSignOutHandler() {
+ session.onUserSignOut(true, new UserSignOutHandler() {
@Override
public void onUserSignOut(final UserSignOutEvent event) {
createActionIfNeeded();
@@ -255,6 +258,12 @@
return popup != null && popup.isShowing();
}
+ @Override
+ public void doLogin() {
+ assert session.getCurrentUserInfo() != null;
+ doLogin(session.getCurrentUserInfo());
+ }
+
private void doLogin(final UserInfoDTO user) {
createActionIfNeeded();
createDialogIfNeeded();
@@ -282,9 +291,8 @@
final HtmlConfig htmlConfig = HtmlConfig.getFromMeta();
final HablarWidget widget = new HablarWidget(config.layout, config.tabHeaderSize);
final Hablar hablar = widget.getHablar();
-
HablarComplete.install(hablar, config);
- new KuneHablarSignals(hablar, action);
+ new KuneHablarSignals(xmppSession, hablar, action);
if (htmlConfig.hasLogger) {
new HablarConsole(hablar);
}
@@ -339,6 +347,15 @@
}
@Override
+ public boolean loginIfNecessary() {
+ if (!isLoggedIn()) {
+ doLogin();
+ return true;
+ }
+ return false;
+ }
+
+ @Override
public void logout() {
if (dialogVisible()) {
popup.hide();
Modified: trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -32,5 +32,7 @@
protected void configure() {
bind(ChatClient.class).to(ChatClientDefault.class).in(Singleton.class);
bind(ChatOptions.class).in(Singleton.class);
+ bind(ChatSitebarActions.class).in(Singleton.class);
+ bind(ChatParts.class).asEagerSingleton();
}
}
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/chat/client/ChatParts.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatParts.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/ChatParts.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -0,0 +1,54 @@
+package cc.kune.chat.client;
+
+import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.core.client.init.AppStartEvent;
+import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.sn.actions.conditions.IsNotMeCondition;
+import cc.kune.core.client.sn.actions.conditions.IsPersonCondition;
+import cc.kune.core.client.sn.actions.registry.SNAdminsMenuItemsRegistry;
+import cc.kune.core.client.sn.actions.registry.SNCollabsMenuItemsRegistry;
+import cc.kune.core.client.sn.actions.registry.SNPendingsMenuItemsRegistry;
+import cc.kune.core.client.state.Session;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class ChatParts {
+
+ @Inject
+ public ChatParts(final Session session, final Provider<ChatSitebarActions> chatActionsProvider,
+ final Provider<SNAdminsMenuItemsRegistry> snAdminsRegistry,
+ final Provider<SNCollabsMenuItemsRegistry> snCollabsItemsRegistry,
+ final Provider<SNPendingsMenuItemsRegistry> snPendingItemsRegistry, final IsNotMeCondition isNotMe,
+ final IsPersonCondition isPersonCondition,
+ final Provider<StartChatWithMemberAction> startChatWithMemberAction,
+ final Provider<StartChatWithUserAction> startChatWithUserAction) {
+ session.onInitDataReceived(new AppStartHandler() {
+ @Override
+ public void onAppStart(final AppStartEvent event) {
+ chatActionsProvider.get();
+ final Provider<MenuItemDescriptor> startChatWithMemberItem = new Provider<MenuItemDescriptor>() {
+ @Override
+ public MenuItemDescriptor get() {
+ final MenuItemDescriptor item = new MenuItemDescriptor(startChatWithMemberAction.get());
+ item.add(isNotMe);
+ item.add(isPersonCondition);
+ return item;
+ }
+ };
+ final Provider<MenuItemDescriptor> startChatWithUserItem = new Provider<MenuItemDescriptor>() {
+ @Override
+ public MenuItemDescriptor get() {
+ final MenuItemDescriptor item = new MenuItemDescriptor(startChatWithUserAction.get());
+ item.add(isNotMe);
+ item.add(isPersonCondition);
+ return item;
+ }
+ };
+ snAdminsRegistry.get().add(startChatWithMemberItem);
+ snCollabsItemsRegistry.get().add(startChatWithMemberItem);
+ snPendingItemsRegistry.get().add(startChatWithUserItem);
+ }
+ });
+ }
+}
Added: trunk/src/main/java/cc/kune/chat/client/ChatSitebarActions.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatSitebarActions.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/ChatSitebarActions.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -0,0 +1,149 @@
+package cc.kune.chat.client;
+
+import cc.kune.chat.client.resources.ChatResources;
+import cc.kune.common.client.actions.AbstractAction;
+import cc.kune.common.client.actions.AbstractExtendedAction;
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.common.client.actions.ui.descrip.MenuSeparatorDescriptor;
+import cc.kune.common.client.actions.ui.descrip.MenuTitleItemDescriptor;
+import cc.kune.core.client.sitebar.SiteUserOptions;
+import cc.kune.core.client.sitebar.SiteUserOptionsPresenter;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.UserSignInEvent;
+import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.calclab.emite.core.client.events.StateChangedEvent;
+import com.calclab.emite.core.client.events.StateChangedHandler;
+import com.calclab.emite.core.client.xmpp.session.XmppSession;
+import com.calclab.emite.core.client.xmpp.stanzas.Presence;
+import com.calclab.emite.core.client.xmpp.stanzas.Presence.Show;
+import com.calclab.emite.im.client.presence.PresenceManager;
+import com.calclab.emite.im.client.presence.events.OwnPresenceChangedEvent;
+import com.calclab.emite.im.client.presence.events.OwnPresenceChangedHandler;
+import com.calclab.suco.client.Suco;
+import com.google.gwt.resources.client.ImageResource;
+import com.google.inject.Inject;
+
+public class ChatSitebarActions {
+
+ public class ChangeOfflineStatusAction extends AbstractExtendedAction {
+ public ChangeOfflineStatusAction(final ImageResource icon) {
+ xmppSession.addSessionStateChangedHandler(true, new StateChangedHandler() {
+ @Override
+ public void onStateChanged(final StateChangedEvent event) {
+ if (!xmppSession.isReady()) {
+ SiteUserOptionsPresenter.LOGGED_USER_MENU.putValue(AbstractAction.SMALL_ICON, icon);
+ }
+ }
+ });
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ // presenceManager.changeOwnPresence(Presence.build(NO_STATUS,
+ // Show.xa));
+ xmppSession.logout();
+ }
+ }
+ public class ChangeOnlineStatusAction extends AbstractExtendedAction {
+ private final Presence thisPresence;
+
+ public ChangeOnlineStatusAction(final String statusText, final Show show, final ImageResource icon) {
+ thisPresence = Presence.build(statusText, show);
+ presenceManager.addOwnPresenceChangedHandler(new OwnPresenceChangedHandler() {
+
+ @Override
+ public void onOwnPresenceChanged(final OwnPresenceChangedEvent event) {
+ updateStatusIcon(icon, event.getCurrentPresence());
+ }
+
+ });
+ updateStatusIcon(icon, presenceManager.getOwnPresence());
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ if (!chatClient.loginIfNecessary()) {
+ presenceManager.changeOwnPresence(thisPresence);
+ }
+ nextPresence = thisPresence;
+ }
+
+ private void updateStatusIcon(final ImageResource icon, final Presence currentPresence) {
+ if (thisPresence.getShow().equals(currentPresence.getShow())
+ && ((currentPresence.getStatus() == null) || currentPresence.getStatus().equals(
+ thisPresence.getStatus()))) {
+ SiteUserOptionsPresenter.LOGGED_USER_MENU.putValue(AbstractAction.SMALL_ICON, icon);
+ }
+ }
+ }
+
+ private static final String CHAT_STATUS = "k-chat-status-group";
+ private static final String NO_STATUS = null;
+ private final ChatClient chatClient;
+ private final I18nTranslationService i18n;
+ private Presence nextPresence = Presence.build(NO_STATUS, Show.notSpecified);
+ private final PresenceManager presenceManager = Suco.get(PresenceManager.class);
+ private final ChatResources res;
+ private final Session session;
+ private final SiteUserOptions userOptions;
+ private final XmppSession xmppSession = Suco.get(XmppSession.class);
+
+ @Inject
+ public ChatSitebarActions(final Session session, final ChatClient chatClient, final SiteUserOptions userOptions,
+ final I18nTranslationService i18n, final ChatResources res) {
+ this.session = session;
+ this.chatClient = chatClient;
+ this.userOptions = userOptions;
+ this.i18n = i18n;
+ this.res = res;
+ createActions();
+ }
+
+ private void createActions() {
+ final MenuTitleItemDescriptor chatActionsTitle = new MenuTitleItemDescriptor(
+ SiteUserOptionsPresenter.LOGGED_USER_MENU, i18n.t("Set your chat status"));
+ userOptions.addAction(new MenuSeparatorDescriptor(SiteUserOptionsPresenter.LOGGED_USER_MENU));
+ userOptions.addAction(chatActionsTitle);
+ userOptions.addAction(createChatStatusAction(res.online(), i18n.t("Available"),
+ onlineAction(NO_STATUS, Show.notSpecified, res.online())));
+ userOptions.addAction(createChatStatusAction(res.xa(), i18n.t("Available for chat"),
+ onlineAction(NO_STATUS, Show.chat, res.xa())));
+ userOptions.addAction(createChatStatusAction(res.away(), i18n.t("Away"),
+ onlineAction(NO_STATUS, Show.away, res.away())));
+ userOptions.addAction(createChatStatusAction(res.busy(), i18n.t("Busy"),
+ onlineAction(NO_STATUS, Show.dnd, res.busy())));
+ userOptions.addAction(createChatStatusAction(res.offline(), i18n.t("Sign out of chat"),
+ new ChangeOfflineStatusAction(res.offline())));
+ xmppSession.addSessionStateChangedHandler(false, new StateChangedHandler() {
+
+ @Override
+ public void onStateChanged(final StateChangedEvent event) {
+ if (xmppSession.isReady()) {
+ presenceManager.changeOwnPresence(nextPresence);
+ }
+ }
+ });
+ session.onUserSignIn(false, new UserSignInHandler() {
+ @Override
+ public void onUserSignIn(final UserSignInEvent event) {
+ //
+ }
+ });
+
+ }
+
+ private MenuItemDescriptor createChatStatusAction(final ImageResource icon, final String text,
+ final AbstractAction action) {
+ final MenuItemDescriptor item = new MenuItemDescriptor(SiteUserOptionsPresenter.LOGGED_USER_MENU, action);
+ item.putValue(AbstractAction.NAME, text);
+ item.putValue(AbstractAction.SMALL_ICON, icon);
+ return item;
+ }
+
+ private AbstractExtendedAction onlineAction(final String statusText, final Show show, final ImageResource icon) {
+ return new ChangeOnlineStatusAction(statusText, show, icon);
+ }
+}
Modified: trunk/src/main/java/cc/kune/chat/client/KuneHablarSignals.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/KuneHablarSignals.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/chat/client/KuneHablarSignals.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -71,9 +71,8 @@
// FIXME: move to gin
@SuppressWarnings("deprecation")
- public KuneHablarSignals(final Hablar hablar, final ChatClientAction action) {
+ public KuneHablarSignals(final XmppSession session, final Hablar hablar, final ChatClientAction action) {
final HablarEventBus eventBus = hablar.getEventBus();
- final XmppSession session = Suco.get(XmppSession.class);
final PrivateStorageManager storageManager = Suco.get(PrivateStorageManager.class);
final HasText titleDisplay = new HasText() {
Modified: trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/chat/client/KuneUnattendedPresenter.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -20,8 +20,11 @@
package cc.kune.chat.client;
import cc.kune.chat.client.ChatClientDefault.ChatClientAction;
+import cc.kune.common.client.noti.NotifyUser;
+import com.calclab.hablar.chat.client.ui.PairChatPresenter;
import com.calclab.hablar.core.client.mvp.HablarEventBus;
+import com.calclab.hablar.rooms.client.room.RoomPresenter;
import com.calclab.hablar.signals.client.SignalPreferences;
import com.calclab.hablar.signals.client.unattended.UnattendedChatsChangedEvent;
import com.calclab.hablar.signals.client.unattended.UnattendedChatsChangedHandler;
@@ -42,7 +45,10 @@
final int unattendedChatsCount = unattendedManager.getSize();
if (unattendedChatsCount > 0 && active == false) {
active = true;
- action.setBlink(true);
+ NotifyUser.info("Num: " + unattendedChatsCount, true);
+ if (isChatPage(event.getPage().getType())) {
+ action.setBlink(true);
+ }
} else if (unattendedChatsCount == 0 && active == true) {
action.setBlink(false);
active = false;
@@ -50,5 +56,11 @@
}
});
+
}
+
+ private boolean isChatPage(final String pageType) {
+ return pageType.equals(PairChatPresenter.TYPE) || pageType.equals(RoomPresenter.TYPE);
+ }
+
}
Copied: trunk/src/main/java/cc/kune/chat/client/StartChatWithMemberAction.java (from rev 1254, trunk/src/main/java/cc/kune/core/client/sn/actions/StartChatWithMemberAction.java)
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/StartChatWithMemberAction.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/StartChatWithMemberAction.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -0,0 +1,38 @@
+package cc.kune.chat.client;
+
+import cc.kune.common.client.actions.AbstractExtendedAction;
+import cc.kune.common.client.actions.Action;
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.noti.NotifyUser;
+import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.shared.dto.GroupDTO;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.calclab.emite.core.client.xmpp.stanzas.XmppURI;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class StartChatWithMemberAction extends AbstractExtendedAction {
+ private final Provider<ChatClient> chatClient;
+ private final I18nTranslationService i18n;
+
+ @Inject
+ public StartChatWithMemberAction(final I18nTranslationService i18n, final CoreResources res,
+ final Provider<ChatClient> chatClient) {
+ this.i18n = i18n;
+ this.chatClient = chatClient;
+ putValue(NAME, i18n.t("Start a chat with this member"));
+ putValue(Action.SMALL_ICON, res.newChat());
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ chatClient.get().show();
+ if (chatClient.get().isLoggedIn()) {
+ chatClient.get().chat(XmppURI.jid(((GroupDTO) event.getTarget()).getShortName()));
+ } else {
+ NotifyUser.important(i18n.t("To start a chat you need to be 'online'"));
+ }
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/chat/client/StartChatWithUserAction.java (from rev 1254, trunk/src/main/java/cc/kune/core/client/sn/actions/StartChatWithUserAction.java)
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/StartChatWithUserAction.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/StartChatWithUserAction.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -0,0 +1,16 @@
+package cc.kune.chat.client;
+
+import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class StartChatWithUserAction extends StartChatWithMemberAction {
+ @Inject
+ public StartChatWithUserAction(final I18nTranslationService i18n, final CoreResources res,
+ final Provider<ChatClient> chatClient) {
+ super(i18n, res, chatClient);
+ putValue(NAME, i18n.t("Start a chat with this person"));
+ }
+}
Added: trunk/src/main/java/cc/kune/chat/client/resources/ChatResources.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/resources/ChatResources.java (rev 0)
+++ trunk/src/main/java/cc/kune/chat/client/resources/ChatResources.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -0,0 +1,82 @@
+package cc.kune.chat.client.resources;
+
+import com.google.gwt.resources.client.ClientBundle;
+import com.google.gwt.resources.client.ImageResource;
+
+public interface ChatResources extends ClientBundle {
+
+ @Source("add.png")
+ ImageResource add();
+
+ @Source("away.png")
+ ImageResource away();
+
+ @Source("busy.png")
+ ImageResource busy();
+
+ @Source("cancel.png")
+ ImageResource cancel();
+
+ @Source("chat.png")
+ ImageResource chat();
+
+ @Source("chat-new-message-small.png")
+ ImageResource chatNewMessageSmall();
+
+ @Source("chat-small.png")
+ ImageResource chatSmall();
+
+ @Source("del.png")
+ ImageResource del();
+
+ @Source("group-chat.png")
+ ImageResource groupChat();
+
+ @Source("info.png")
+ ImageResource info();
+
+ @Source("info-lamp.png")
+ ImageResource infoLamp();
+
+ @Source("invisible.png")
+ ImageResource invisible();
+
+ @Source("message.png")
+ ImageResource message();
+
+ @Source("new-chat.png")
+ ImageResource newChat();
+
+ @Source("new-email.png")
+ ImageResource newEmail();
+
+ @Source("new-message.png")
+ ImageResource newMessage();
+
+ @Source("not-authorized.png")
+ ImageResource notAuthorized();
+
+ @Source("offline.png")
+ ImageResource offline();
+
+ @Source("online.png")
+ ImageResource online();
+
+ @Source("question.png")
+ ImageResource question();
+
+ @Source("room-new-message-small.png")
+ ImageResource roomNewMessageSmall();
+
+ @Source("room-small.png")
+ ImageResource roomSmall();
+
+ @Source("unavailable.png")
+ ImageResource unavailable();
+
+ @Source("user_add.png")
+ ImageResource user_add();
+
+ @Source("xa.png")
+ ImageResource xa();
+}
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/chat/client/resources/add.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/add.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/away.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/away.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/busy.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/busy.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/cancel.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/cancel.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/chat-new-message-small.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/chat-new-message-small.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/chat-small.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/chat-small.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/chat.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/chat.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/del.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/del.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/group-chat.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/group-chat.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/info-lamp.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/info-lamp.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/info.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/info.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/invisible.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/invisible.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/message.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/message.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/new-chat.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/new-chat.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/new-email.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/new-email.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/new-message.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/new-message.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/not-authorized.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/not-authorized.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/offline.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/offline.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/online.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/online.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/question.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/question.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/room-new-message-small.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/room-new-message-small.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/room-small.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/room-small.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/unavailable.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/unavailable.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/user_add.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/user_add.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/chat/client/resources/xa.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/chat/client/resources/xa.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/cc/kune/chat/public/kune-chat.css
===================================================================
--- trunk/src/main/java/cc/kune/chat/public/kune-chat.css 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/chat/public/kune-chat.css 2011-02-21 04:32:11 UTC (rev 1257)
@@ -1,147 +1,144 @@
/* hablar: Examples.css */
-/* html {border: 0; padding: 0; height: 100%; width: 100%; overflow: hidden;} */
-
+ /* html {border: 0; padding: 0; height: 100%; width: 100%; overflow: hidden;} */
#center {
- position: absolute;
- left: 50%;
- top: 50%;
+ position: absolute;
+ left: 50%;
+ top: 50%;
}
#playground {
- position: absolute;
- width: 900px;
- height: 500px;
- left: -450px;
- top: -250px;
- background-color: #e9e9e9;
- border: 1px solid #bbbbbb;
- padding: 5px;
+ position: absolute;
+ width: 900px;
+ height: 500px;
+ left: -450px;
+ top: -250px;
+ background-color: #e9e9e9;
+ border: 1px solid #bbbbbb;
+ padding: 5px;
}
.hablar {
- padding: 1px;
- background-color: #bBBBBB;
+ padding: 1px;
+ background-color: #bBBBBB;
}
#vertical_div {
- position: absolute;
- left: -150px;
- width: 300px;
- top: 5%;
- height: 90%;
+ position: absolute;
+ left: -150px;
+ width: 300px;
+ top: 5%;
+ height: 90%;
}
#hablar_complete {
- position: fixed; overflow: hidden;
- left: 5px;
- top: 5px;
- right: 5px;
- bottom: 5px;
- background-color: #BBBBBB;
+ position: fixed;
+ overflow: hidden;
+ left: 5px;
+ top: 5px;
+ right: 5px;
+ bottom: 5px;
+ background-color: #BBBBBB;
}
#vertical_dock_div {
- position: absolute;
- left: -250px;
- width: 500px;
- top: 5%;
- height: 90%;
+ position: absolute;
+ left: -250px;
+ width: 500px;
+ top: 5%;
+ height: 90%;
}
#horizontal_div {
- position: absolute;
- left: -350px;
- width: 700px;
- top: 15%;
- height: 70%;
+ position: absolute;
+ left: -350px;
+ width: 700px;
+ top: 15%;
+ height: 70%;
}
/* End of hablar: Examples.css */
-
.k-chat-icon {
-
+ margin-top: 3px;
}
.k-chat-window {
- background-color: #FFF;
+ background-color: #FFF;
}
.k-chat-panel {
- margin: 5px;
- background-color: #FFF; /* !important;*/
- /* kfilter: alpha(opacity = 88) !important;*/
- /* -moz-opacity: 0.88 !important;*/
- /* -khtml-opacity: 0.88 !important;*/ /* opacity: 0.88 !important;*/
+ margin: 5px;
+ background-color: #FFF; /* !important;*/
+ /* kfilter: alpha(opacity = 88) !important;*/
+ /* -moz-opacity: 0.88 !important;*/
+ /* -khtml-opacity: 0.88 !important;*/ /* opacity: 0.88 !important;*/
}
.hablar-HablarWidget {
- background-color: #888;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- border-radius: 5px;
+ background-color: #888;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
}
.gwt-Button {
- text-shadow: 1px 1px 1px #FFFFFF;
- font-weight: bold;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- border-radius: 5px;
+ text-shadow: 1px 1px 1px #FFFFFF;
+ font-weight: bold;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
}
.gwt-TextBox,.gwt-TextArea {
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
}
.hablar-defaultBackground,.hablar-UserWidget,.hablar-defaultBordered {
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
}
-.hablar-Header {
-/* -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;*/
+.hablar-Header { /* -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;*/
+
}
.hablar-errorColor {
- line-height: 2.5em;
+ line-height: 2.5em;
}
.form h2 {
- font-size: 22px;
- font-weight: bold;
+ font-size: 22px;
+ font-weight: bold;
}
.gwt-TabLayoutPanel,.gwt-TabLayoutPanelTab,.hablar-TabsHeaderWidget {
- -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;
}
.hablar-ChatWidget {
- -webkit-border-bottom-right-radius: 5px;
- -moz-border-radius-bottomright: 5px;
- border-bottom-right-radius: 5px;
+ -webkit-border-bottom-right-radius: 5px;
+ -moz-border-radius-bottomright: 5px;
+ border-bottom-right-radius: 5px;
}
.ellipsis {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- -o-text-overflow: ellipsis;
- -ms-text-overflow: ellipsis;
- -moz-binding: url('/ws/ellipsis.xml#ellipsis');
- width: 100%
-}
-
-
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ -o-text-overflow: ellipsis;
+ -ms-text-overflow: ellipsis;
+ -moz-binding: url('/ws/ellipsis.xml#ellipsis');
+ width: 100%
+}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/chat/public/kune-hablar.css
===================================================================
--- trunk/src/main/java/cc/kune/chat/public/kune-hablar.css 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/chat/public/kune-hablar.css 2011-02-21 04:32:11 UTC (rev 1257)
@@ -1,602 +1,602 @@
/** Colors */
.hablar-clearBackground {
- background-color: white;
+ background-color: white;
}
.hablar-lightBackground {
- background-color: #e9e9e9;
+ background-color: #e9e9e9;
}
.hablar-highlightBackground {
- background-color: highlight;
+ background-color: highlight;
}
.hablar-defaultBackground {
- background-color: #bbbbbb;
+ background-color: #bbbbbb;
}
.hablar-darkBackground {
- background-color: #bbbbbb;
+ background-color: #bbbbbb;
}
.hablar-selectedBackground {
- background-color: highlight;
+ background-color: highlight;
}
.hablar-selectedBackground div.hablar-RosterItemWidget:hover {
- background-color: transparent;
+ background-color: transparent;
}
/** Text colors **/
.hablar-clearColor {
- color: black;
+ color: black;
}
.hablar-lightColor {
- color: #BBBBBB;
+ color: #BBBBBB;
}
.hablar-mediumColor {
- color: gray;
+ color: gray;
}
.hablar-darkColor {
- color: black;
+ color: black;
}
.hablar-errorColor {
- color: #c00;
+ color: #c00;
}
/** Non generalizable styles **/
div.hablar-ActionWidget:hover {
- background-color: #BBBBBB;
+ background-color: #BBBBBB;
}
div.hablar-GroupHeaderWidget:hover {
- background-color: #BBBBBB;
- color: black;
+ background-color: #BBBBBB;
+ color: black;
}
div.hablar-RosterItemWidget:hover {
- background-color: #E9E9E9;
+ background-color: #E9E9E9;
}
div.hablar-SearchResultItemWidget:hover {
- background-color: #e9e9e9;
+ background-color: #e9e9e9;
}
.hablar-ChatWidget .actions div.hablar-OccupantsWidget:hover {
- background-color: #BBBBBB;
- color: white;
+ background-color: #BBBBBB;
+ color: white;
}
.hablar-Logger a.gwt-Anchor:hover {
- color: white;
- background-color: #BBBBBB;
+ color: white;
+ background-color: #BBBBBB;
}
.hablar-HablarWidget .gwt-TabLayoutPanel .gwt-TabLayoutPanelTab {
- background-color: #AAAAAA;
- padding: 0px 1px;
- margin: 0 0px 0 0;
- border-left: 1px solid #bbbbbb;
- border-top: 1px solid #e9e9e9;
- border-right: 1px solid e9e9e9;
+ background-color: #AAAAAA;
+ padding: 0px 1px;
+ margin: 0 0px 0 0;
+ border-left: 1px solid #bbbbbb;
+ border-top: 1px solid #e9e9e9;
+ border-right: 1px solid e9e9e9;
}
.hablar-HablarWidget .gwt-TabLayoutPanel .gwt-TabLayoutPanelTab-selected
- {
- background-color: #e9e9e9;
- border-left: 1px solid white;
- border-top: 1px solid white;
- border-right: 1px solid white;
+ {
+ background-color: #e9e9e9;
+ border-left: 1px solid white;
+ border-top: 1px solid white;
+ border-right: 1px solid white;
}
/*
.gwt-SplitLayoutPanel .gwt-SplitLayoutPanel-HDragger {
- background-color: #bbbbbb;
+ background-color: #bbbbbb;
border-left: 1px solid gray;
border-right: 1px solid #e9e9e9;
}
*/
input[disabled] {
- background-color: #e9e9e9;
- color: black;
+ background-color: #e9e9e9;
+ color: black;
}
.hablar-Header.unattended {
- color: #cc0000;
- font-weight: bold;
+ color: #cc0000;
+ font-weight: bold;
}
.hablar-Header.unattended.blinkOn {
- color: #000000;
- background-color: highlight;
+ color: #000000;
+ background-color: highlight;
}
/** Classes for borders **/
.hablar-lightBordered {
- border: 3px solid #E9E9E9;
+ border: 3px solid #E9E9E9;
}
.hablar-partialLightBordered {
- border-top: 1px solid #E9E9E9;
- border-bottom: 1px solid #E9E9E9;
+ border-top: 1px solid #E9E9E9;
+ border-bottom: 1px solid #E9E9E9;
}
.hablar-bottomLightBordered {
- border-bottom: 1px solid #E9E9E9;
+ border-bottom: 1px solid #E9E9E9;
}
.hablar-defaultBordered {
- border-left: 1px solid #BBBBBB;
- /* This border affects scroll visibility */
- border-top: 1px solid #BBBBBB;
+ border-left: 1px solid #BBBBBB;
+ /* This border affects scroll visibility */
+ border-top: 1px solid #BBBBBB;
}
.hablar-topDefaultBordered {
- border-top: 1px solid #BBBBBB;
+ border-top: 1px solid #BBBBBB;
}
.hablar-bottomDefaultBordered {
- border-bottom: 1px solid #BBBBBB;
+ border-bottom: 1px solid #BBBBBB;
}
.hablar-partialDarkBordered {
- border-left: 1px solid #BBBBBB;
- border-top: 1px solid #BBBBBB;
+ border-left: 1px solid #BBBBBB;
+ border-top: 1px solid #BBBBBB;
}
.hablar-darkBordered {
- border: 1px solid #BBBBBB;
+ border: 1px solid #BBBBBB;
}
.hablar-bottomDarkBordered {
- border-bottom: 1px solid #BBBBBB;
+ border-bottom: 1px solid #BBBBBB;
}
.hablar-disabledBordered {
- border-left: 1px solid #8C8C8C;
- border-top: 1px solid #8C8C8C;
+ border-left: 1px solid #8C8C8C;
+ border-top: 1px solid #8C8C8C;
}
/** Accordion effects **/
.hablar-AccordionHeaderWidget.notFocused {
- border-top: 1px solid #E9E9E9;
- border-bottom: 1px solid #BBB;
+ border-top: 1px solid #E9E9E9;
+ border-bottom: 1px solid #BBB;
}
.hablar-AccordionHeaderWidget.focused {
- border-top: 1px solid white;
- border-bottom: 1px solid #BBB;
+ border-top: 1px solid white;
+ border-bottom: 1px solid #BBB;
}
/** Chat messages **/
.chatMessage .body.incoming {
-
+
}
.chatMessage .body.sent {
- color: #808080;
+ color: #808080;
}
.chatMessage .body.info {
- color: #808080;
- font-style: italic;
+ color: #808080;
+ font-style: italic;
}
.chatMessage .body.alert {
- color: #c00;
+ color: #c00;
}
.hablar-ChatWidget .chatMessage {
- display: block;
- width: 94%;
- overflow: hidden;
- padding: 2px 3% 2px 3%;
+ display: block;
+ width: 94%;
+ overflow: hidden;
+ padding: 2px 3% 2px 3%;
}
.hablar-ChatWidget .chatMessage.odd {
- background-color: #efefef;
+ background-color: #efefef;
}
.chatMessage .author {
- display: inline;
- font-weight: bold;
+ display: inline;
+ font-weight: bold;
}
.chatMessage .metadata {
- display: inline;
- color: #808080;
- font-size: 90%;
+ display: inline;
+ color: #808080;
+ font-size: 90%;
}
.chatMessage .body {
- display: inline;
+ display: inline;
}
.hablar-EmoticonImage {
- vertical-align: text-top;
+ vertical-align: text-top;
}
/** MUC room occupants **/
.gwt-PopupPanel.occupants {
- border-top: 1px solid #E9E9E9;
- border-left: 1px solid #BBBBBB;
- border-right: 1px solid #BBBBBB;
- border-bottom: 1px solid #BBBBBB;
- background-color: #e9e9e9;
- z-index: 10000;
+ border-top: 1px solid #E9E9E9;
+ border-left: 1px solid #BBBBBB;
+ border-right: 1px solid #BBBBBB;
+ border-bottom: 1px solid #BBBBBB;
+ background-color: #e9e9e9;
+ z-index: 10000;
}
/** IE6 ZINDEX BUG **/
.hablar-HablarWidget {
- z-index: 1;
+ /* z-index: 1; */
}
html {
- font-family: Tahoma, sans-serif;
- font-size: 80%;
+ font-family: Tahoma, sans-serif;
+ font-size: 80%;
}
body {
- height: 90%;
+ height: 90%;
}
/** HABLAR HEADER **/
.hablar-Header {
- width: 100%;
- overflow: hidden;
- cursor: pointer;
- padding: 3px 0;
+ width: 100%;
+ overflow: hidden;
+ cursor: pointer;
+ padding: 3px 0;
}
.hablar-Header .icon {
- float: left;
- margin-right: 3px;
- margin-left: 3px;
+ float: left;
+ margin-right: 3px;
+ margin-left: 3px;
}
.hablar-RosterGroupWidget .icon {
- float: left;
- margin-right: 3px;
+ float: left;
+ margin-right: 3px;
}
.hablar-Header .title {
- float: left;
+ float: left;
}
.hablar-AccordionHeaderWidget .icon {
- float: left;
- margin: 0 3px 0 3px;
+ float: left;
+ margin: 0 3px 0 3px;
}
.hablar-AccordionHeaderWidget .title {
- display: block;
- margin: 0 3px;
+ display: block;
+ margin: 0 3px;
}
.hablar-AccordionHeaderWidget .close {
- float: right;
- margin: 0px 3px 0 0;
+ float: right;
+ margin: 0px 3px 0 0;
}
.hablar-TabsHeaderWidget {
- padding: 0;
- margin: 0;
- background-color: transparent;
- border: none;
+ padding: 0;
+ margin: 0;
+ background-color: transparent;
+ border: none;
}
.hablar-TabsHeaderWidget .close {
- margin: 2px 3px;
+ margin: 2px 3px;
}
.hablar-AccordionHeader .close {
- margin: 2px 3px 0 0;
+ margin: 2px 3px 0 0;
}
.hablar-AccordionHeader .icon {
-
+
}
.hablar-AccordionHeader .title {
- display: block;
+ display: block;
}
.hablar-TabsHeaderWidget .title {
- display: inline;
- margin-right: 10px;
+ display: inline;
+ margin-right: 10px;
}
/** DOCKS **/
.hablar-DockContainer-top {
- background-color: transparent;
- z-index: 4000;
+ background-color: transparent;
+ z-index: 4000;
}
.hablar-Header.DockHeaderWidget-top {
- background-color: transparent;
- border: 1px transparent;
+ background-color: transparent;
+ border: 1px transparent;
}
.hablar-Header.DockHeaderWidget-left {
- cursor: default;
- -moz-user-select: none;
+ cursor: default;
+ -moz-user-select: none;
}
.DockHeaderWidget-left .icon {
- margin-left: 3px;
+ margin-left: 3px;
}
/** LIST ITEMS **/
.hablar-ListItem {
- display: block;
- width: 100%;
- overflow: hidden;
- padding: 5px 0px 0 0px;
+ display: block;
+ width: 100%;
+ overflow: hidden;
+ padding: 5px 0px 0 0px;
}
.clickable {
- cursor: pointer;
+ cursor: pointer;
}
/** USER **/
.hablar-UserWidget .container {
- padding: 0px 10px;
- z-index: 3000;
+ padding: 0px 10px;
+ z-index: 3000;
}
.hablar-UserWidget h2 {
- margin: 15px 0 5px 0;
+ margin: 15px 0 5px 0;
}
.hablar-UserWidget .actions {
- padding: 5px 0 0 10px;
+ padding: 5px 0 0 10px;
}
/** ROSTER **/
.hablar-RosterWidget .item {
- width: 100%;
- overflow: hidden;
+ width: 100%;
+ overflow: hidden;
}
.hablar-RosterWidget .actions {
- width: 100%;
- overflow: hidden;
+ width: 100%;
+ overflow: hidden;
}
.hablar-RosterWidget .actions .hablar-ActionWidget {
- float: left;
- margin-right: 1px;
+ float: left;
+ margin-right: 1px;
}
.hablar-GroupHeaderWidget {
- overflow: hidden;
- padding: 3px;
- cursor: pointer;
- border-bottom: 1px solid #BBBBBB;
- border-top: 1px solid white;
+ overflow: hidden;
+ padding: 3px;
+ cursor: pointer;
+ border-bottom: 1px solid #BBBBBB;
+ border-top: 1px solid white;
}
.hablar-GroupHeaderWidget .label {
- display: block;
- margin: 3px;
+ display: block;
+ margin: 3px;
}
.hablar-GroupHeaderWidget .menu {
- float: right;
- margin-right: 3px;
+ float: right;
+ margin-right: 3px;
}
.hablar-RosterItemWidget .user {
- float: left;
+ float: left;
}
.hablar-RosterItemWidget .icon {
- display: block;
- float: left;
- margin: 2px 5px 2px 2px;
+ display: block;
+ float: left;
+ margin: 2px 5px 2px 2px;
}
.hablar-RosterItemWidget .name {
- display: block;
- float: left;
- margin-right: 5px;
+ display: block;
+ float: left;
+ margin-right: 5px;
}
.hablar-RosterItemWidget .menu {
- float: right;
+ float: right;
}
.hablar-RosterGroupWidget .menu {
- float: right;
- cursor: pointer;
+ float: right;
+ cursor: pointer;
}
/** CHAT PAGE **/
.hablar-ChatWidget .actions div {
- float: right;
+ float: right;
}
/** SEARCH PAGE **/
.hablar-SearchWidget .searchBox {
- width: 75%;
- padding: 3px;
- margin-right: 1%;
+ width: 75%;
+ padding: 3px;
+ margin-right: 1%;
}
.hablar-SearchWidget .gwt-Button {
- width: 20%;
+ width: 20%;
}
/** ROOMS **/
.hablar-ChatWidget .actions .hablar-OccupantsWidget {
- display: block;
- float: left;
- padding: 2px 5px;
- margin-left: 5px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- cursor: pointer;
+ display: block;
+ float: left;
+ padding: 2px 5px;
+ margin-left: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ cursor: pointer;
}
.hablar-OccupantWidget {
- width: 100%;
- overflow: hidden;
- margin: 2px 5px;
- cursor: default;
+ width: 100%;
+ overflow: hidden;
+ margin: 2px 5px;
+ cursor: default;
}
.hablar-OccupantWidget .icon {
- display: block;
- float: left;
- margin-right: 5px;
+ display: block;
+ float: left;
+ margin-right: 5px;
}
.hablar-OccupantWidget .name {
- display: block;
- float: left;
+ display: block;
+ float: left;
}
/** ROOM INVITATION **/
.hablar-OpenRoomWidget .list {
- padding: 5px;
+ padding: 5px;
}
/** LOGGER **/
.hablar-Logger .gwt-Label {
- opacity: 0.5;
+ opacity: 0.5;
}
.hablar-Logger .gwt-Label.ready {
- opacity: 1;
+ opacity: 1;
}
.hablar-Logger .output {
- color: blue;
+ color: blue;
}
.hablar-Logger .input {
- color: #0c0;
+ color: #0c0;
}
/** OVERLAY **/
.hablar-Overlay {
- z-index: 7000;
- padding: 20px 10px 10px 10px;
+ z-index: 7000;
+ padding: 20px 10px 10px 10px;
}
/** FORMS **/
.form p {
- width: 100%;
- overflow: hidden;
- margin: 3px 0;
+ width: 100%;
+ overflow: hidden;
+ margin: 3px 0;
}
.form h2 {
- font-size: 200%;
+ font-size: 200%;
}
.form span.option {
- display: block;
- margin: 0 0 15px 30px;
+ display: block;
+ margin: 0 0 15px 30px;
}
.form p label {
- display: block;
- margin-top: 5px;
- margin-right: 10px;
- margin-right: 0.5em;
+ display: block;
+ margin-top: 5px;
+ margin-right: 10px;
+ margin-right: 0.5em;
}
.form p .gwt-Label {
- font-weight: bold;
+ font-weight: bold;
}
.form .actions {
- padding-left: 5px;
- margin-top: 15px;
- padding-top: 5px;
+ padding-left: 5px;
+ margin-top: 15px;
+ padding-top: 5px;
}
.form .gwt-TextBox,.form .gwt-PasswordTextBox {
- padding: 2px;
- width: 98%;
- border: 0;
+ padding: 2px;
+ width: 98%;
+ border: 0;
}
.form p .gwt-RadioButton,.form p .gwt-CheckBox {
- display: block;
- width: 100%;
- overflow: hidden;
+ display: block;
+ width: 100%;
+ overflow: hidden;
}
.form p .gwt-RadioButton input,.form p .gwt-CheckBox input {
- float: left;
- margin-right: 5px;
+ float: left;
+ margin-right: 5px;
}
.form p .gwt-RadioButton label,.form p .gwt-CheckBox label {
- float: left;
- margin: 0;
+ float: left;
+ margin: 0;
}
.hablar-PopupPanel {
- z-index: 5000;
- -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
- -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
+ z-index: 5000;
+ -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
+ -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
}
.hablar-PresenceWidget .controls {
- width: 100%;
- overflow: hidden;
+ width: 100%;
+ overflow: hidden;
}
.hablar-PresenceWidget .menu,.hablar-PresenceWidget .icon {
- float: left;
- margin-top: 4px;
+ float: left;
+ margin-top: 4px;
}
.loading {
- width: 100%;
- overflow: hidden;
+ width: 100%;
+ overflow: hidden;
}
.loading .icon {
- display: block;
- float: left;
- margin-right: 5px;
+ display: block;
+ float: left;
+ margin-right: 5px;
}
/** SEMANTIC CSS PLEASE! **/
.overflowhidden {
- overflow: hidden;
+ overflow: hidden;
}
/** ADD TO GROUP **/
.hablar-ManageGroupsWidget .list {
- padding: 5px;
+ padding: 5px;
}
/** COPY TO CLIPBOARD **/
.hablar-CopyToClipboardWidget .gwt-TextArea {
- width: 100%;
- height: 10em;
- margin-top: 3px;
+ width: 100%;
+ height: 10em;
+ margin-top: 3px;
}
.ellipsis {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- -o-text-overflow: ellipsis;
- -ms-text-overflow: ellipsis;
- -moz-binding: url('ellipsis.xml#ellipsis');
- width: 100%
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ -o-text-overflow: ellipsis;
+ -ms-text-overflow: ellipsis;
+ -moz-binding: url('ellipsis.xml#ellipsis');
+ width: 100%
}
.gwt-TextArea {
- border: 1px solid #bbbbbb;
+ border: 1px solid #bbbbbb;
}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/client/KuneEntryPoint.java
===================================================================
--- trunk/src/main/java/cc/kune/client/KuneEntryPoint.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/client/KuneEntryPoint.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -69,7 +69,7 @@
ginjector.getCorePresenter().get().forceReveal();
ginjector.getStateManager();
ginjector.getSiteTokenListeners();
- ginjector.getGxtGuiProvider();
+ ginjector.getGwtGuiProvider();
ginjector.getUserNotifierPresenter();
ginjector.getGlobalShortcutRegister();
ginjector.getSpinerPresenter();
Modified: trunk/src/main/java/cc/kune/client/KuneGinjector.java
===================================================================
--- trunk/src/main/java/cc/kune/client/KuneGinjector.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/client/KuneGinjector.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -21,6 +21,7 @@
import cc.kune.chat.client.ChatClient;
import cc.kune.chat.client.ChatGinModule;
+import cc.kune.chat.client.ChatParts;
import cc.kune.common.client.actions.gwtui.GwtGuiProvider;
import cc.kune.common.client.actions.gxtui.GxtGuiProvider;
import cc.kune.common.client.actions.ui.bind.GuiProvider;
@@ -65,6 +66,8 @@
ChatClient getChatClient();
+ ChatParts getChatParts();
+
AsyncProvider<CookiesManager> getCookiesManager();
CoreParts getCoreParts();
Modified: trunk/src/main/java/cc/kune/common/KuneCommon.gwt.xml
===================================================================
--- trunk/src/main/java/cc/kune/common/KuneCommon.gwt.xml 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/KuneCommon.gwt.xml 2011-02-21 04:32:11 UTC (rev 1257)
@@ -10,9 +10,11 @@
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> -->
<!-- Other module inherits -->
<!-- Specify the app entry point class. -->
-<!-- <entry-point class='cc.kune.msgs.client.KuneMessagesSampleEntryPoint' />-->
+ <!-- <entry-point class='cc.kune.msgs.client.KuneMessagesSampleEntryPoint'
+ /> -->
<!-- Specify the paths for translatable code -->
- <source path='client' />
+ <source path='client'
+ excludes="**/*Test.java,**/*Tests.java,**/*MockProvider.java" />
<public path="public" />
<inherits name='org.cobogw.gwt.user.User' />
<inherits name='com.google.gwt.inject.Inject' />
Modified: trunk/src/main/java/cc/kune/common/client/actions/ActionEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ActionEvent.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/ActionEvent.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -51,12 +51,19 @@
*/
public class ActionEvent {
+ public static final Object NO_TARGET = String.valueOf("No target");
private final Event event;
private final Object source;
+ private final Object target;
public ActionEvent(final Object source, final Event event) {
+ this(source, NO_TARGET, event);
+ }
+
+ public ActionEvent(final Object source, final Object target, final Event event) {
this.source = source;
this.event = event;
+ this.target = target;
}
public Event getEvent() {
@@ -66,4 +73,8 @@
public Object getSource() {
return source;
}
+
+ public Object getTarget() {
+ return target;
+ }
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtButtonGui.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -30,6 +30,7 @@
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ButtonBase;
@@ -56,6 +57,12 @@
}
@Override
+ protected void addStyle(final String style) {
+ iconLabel.addStyleName(style);
+ layout();
+ }
+
+ @Override
public AbstractGuiItem create(final GuiActionDescrip descriptor) {
super.descriptor = descriptor;
iconLabel = new IconLabel("");
@@ -64,7 +71,9 @@
} else {
button = new Button();
}
- button.setStylePrimaryName("oc-button");
+ button.addStyleName("oc-button");
+ button.addStyleName("k-btn");
+ button.addStyleName("k-5corners");
layout();
// button.setEnableToggle(enableTongle);
final String id = descriptor.getId();
@@ -83,7 +92,8 @@
button.addClickHandler(new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
- descriptor.fire(new ActionEvent(button, Event.as(event.getNativeEvent())));
+ descriptor.fire(new ActionEvent(button, getTargetObjectOfAction(descriptor),
+ Event.as(event.getNativeEvent())));
}
});
super.create(descriptor);
@@ -101,6 +111,12 @@
}
@Override
+ public void setIconResource(final ImageResource icon) {
+ iconLabel.setIconResource(icon);
+ layout();
+ }
+
+ @Override
protected void setIconStyle(final String style) {
iconLabel.setIcon(style);
layout();
@@ -134,16 +150,12 @@
@Override
public void setVisible(final boolean visible) {
- if (!isChild) {
- if (button.isAttached()) {
- super.setVisible(visible);
- }
- }
+ button.setVisible(visible);
}
@Override
- public boolean shouldBeAdded() { // NOPMD by vjrj on 18/01/11 0:48
- return true;
+ public boolean shouldBeAdded() {
+ return !descriptor.isChild();
}
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuGui.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuGui.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -75,6 +75,7 @@
public AbstractGuiItem create(final GuiActionDescrip descriptor) {
super.create(descriptor);
menu = new MenuBar(true);
+ menu.setFocusOnHoverEnabled(true);
menu.setAnimationEnabled(true);
descriptor.addPropertyChangeListener(new PropertyChangeListener() {
@Override
@@ -90,8 +91,7 @@
@Override
public void propertyChange(final PropertyChangeEvent event) {
if (event.getPropertyName().equals(MenuDescriptor.MENU_SHOW)) {
- final String id = (String) descriptor.getValue(MenuDescriptor.MENU_SHOW_NEAR_TO);
- show(id);
+ show(descriptor.getValue(MenuDescriptor.MENU_SHOW_NEAR_TO));
}
}
});
@@ -100,7 +100,7 @@
private PopupPanel createPopup() {
popup = new PopupPanel(true);
- popup.addStyleName("oc-menu");
+ popup.setStyleName("oc-menu");
popup.add(menu);
popup.addCloseHandler(new CloseHandler<PopupPanel>() {
@Override
@@ -111,6 +111,10 @@
return popup;
}
+ public void hide() {
+ popup.hide();
+ }
+
@Override
public void insert(final int position, final UIObject item) {
menu.insertItem((MenuItem) item, position);
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -31,9 +31,11 @@
import cc.kune.common.client.actions.ui.descrip.MenuCheckItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuRadioItemDescriptor;
+import cc.kune.common.client.actions.ui.descrip.MenuTitleItemDescriptor;
import cc.kune.common.client.errors.UIException;
import cc.kune.common.client.ui.IconLabel;
+import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
@@ -67,7 +69,6 @@
public AbstractGuiItem create(final GuiActionDescrip descriptor) {
super.descriptor = descriptor;
iconLabel = new IconLabel("");
- iconLabel.addTextStyleName("oc-ico-pad");
if (descriptor instanceof MenuRadioItemDescriptor) {
final GwtCheckItem checkItem = createCheckItem((MenuItemDescriptor) descriptor);
checkItem.setGroup(((MenuRadioItemDescriptor) descriptor).getGroup());
@@ -77,6 +78,9 @@
final GwtCheckItem checkItem = createCheckItem((MenuItemDescriptor) descriptor);
confCheckListener((MenuItemDescriptor) descriptor, checkItem);
item = checkItem;
+ } else if (descriptor instanceof MenuTitleItemDescriptor) {
+ item = new GwtBaseMenuItem("", true);
+ item.setStyleName("k-menuimtem-title");
} else {
item = new GwtBaseMenuItem("", true);
}
@@ -89,16 +93,18 @@
item.setCommand(new Command() {
@Override
public void execute() {
+ getParentMenu(descriptor).hide();
final AbstractAction action = descriptor.getAction();
if (action != null) {
- descriptor.getAction().actionPerformed(new ActionEvent(item, Event.getCurrentEvent()));
+ descriptor.getAction().actionPerformed(
+ new ActionEvent(item, getTargetObjectOfAction(descriptor), Event.getCurrentEvent()));
}
}
});
configureItemFromProperties();
final int position = descriptor.getPosition();
- final AbstractGwtMenuGui menu = ((AbstractGwtMenuGui) descriptor.getParent().getValue(ParentWidget.PARENT_UI));
+ final AbstractGwtMenuGui menu = getParentMenu(descriptor);
if (menu == null) {
throw new UIException("To add a menu item you need to add the menu before. Item: " + descriptor);
}
@@ -128,6 +134,10 @@
return item;
}
+ private AbstractGwtMenuGui getParentMenu(final GuiActionDescrip descriptor) {
+ return ((AbstractGwtMenuGui) descriptor.getParent().getValue(ParentWidget.PARENT_UI));
+ }
+
private void layout() {
item.setHTML(iconLabel.toString());
}
@@ -135,9 +145,18 @@
@Override
protected void setEnabled(final boolean enabled) {
item.setVisible(enabled);
+ item.setEnabled(enabled);
+ iconLabel.setVisible(enabled);
+ layout();
}
@Override
+ public void setIconResource(final ImageResource icon) {
+ iconLabel.setIconResource(icon);
+ layout();
+ }
+
+ @Override
protected void setIconStyle(final String style) {
iconLabel.setIcon(style);
layout();
@@ -167,6 +186,8 @@
@Override
public void setVisible(final boolean visible) {
item.setVisible(visible);
+ iconLabel.setVisible(visible);
+ layout();
}
@Override
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtComplexToolbar.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtComplexToolbar.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtComplexToolbar.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -47,6 +47,7 @@
}
public void add(final UIObject uiObject) {
+ uiObject.addStyleName(getFlow());
toolbar.add((Widget) uiObject);
}
@@ -79,6 +80,7 @@
}
public void insert(final UIObject uiObject, final int position) {
+ uiObject.addStyleName(getFlow());
toolbar.insert((Widget) uiObject, position);
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtGuiProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtGuiProvider.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtGuiProvider.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -27,6 +27,7 @@
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuRadioItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuSeparatorDescriptor;
+import cc.kune.common.client.actions.ui.descrip.MenuTitleItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.PushButtonDescriptor;
import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor;
import cc.kune.common.client.actions.ui.descrip.ToolbarDescriptor;
@@ -42,12 +43,14 @@
final Provider<GwtMenuGui> gwtMenuGui, final Provider<GwtMenuItemGui> gwtMenuItemGui,
final Provider<GwtMenuSeparatorGui> gwtMenuSeparatorGui, final Provider<GwtPushButtonGui> gwtPushButtonGui,
final Provider<GwtButtonGui> gwtButtonGui, final Provider<GwtIconLabelGui> gwtIconLabelGui,
- final Provider<GwtToolbarGui> gwtToolbarGui, final Provider<GwtToolbarSeparatorGui> gwtToolbarSeparatorGui) {
+ final Provider<GwtToolbarGui> gwtToolbarGui, final Provider<GwtToolbarSeparatorGui> gwtToolbarSeparatorGui,
+ final Provider<GwtMenuTitleItemGui> gwtMenuTitleItemGui) {
guiProvider.register(SubMenuDescriptor.class, gwtSubMenuGui);
guiProvider.register(MenuDescriptor.class, gwtMenuGui);
guiProvider.register(MenuRadioItemDescriptor.class, gwtMenuItemGui);
guiProvider.register(MenuCheckItemDescriptor.class, gwtMenuItemGui);
+ guiProvider.register(MenuTitleItemDescriptor.class, gwtMenuTitleItemGui);
guiProvider.register(MenuItemDescriptor.class, gwtMenuItemGui);
guiProvider.register(MenuSeparatorDescriptor.class, gwtMenuSeparatorGui);
guiProvider.register(PushButtonDescriptor.class, gwtPushButtonGui);
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-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtIconLabelGui.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -63,7 +63,8 @@
public void onClick(final ClickEvent event) {
final AbstractAction action = descriptor.getAction();
if (action != null) {
- action.actionPerformed(new ActionEvent(iconLabel, Event.as(event.getNativeEvent())));
+ action.actionPerformed(new ActionEvent(iconLabel, getTargetObjectOfAction(descriptor),
+ Event.as(event.getNativeEvent())));
}
}
});
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuGui.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuGui.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -27,6 +27,7 @@
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Label;
@@ -44,6 +45,14 @@
}
@Override
+ protected void addStyle(final String style) {
+ if (notStandAlone) {
+ iconLabel.addStyleName(style);
+ layout();
+ }
+ }
+
+ @Override
public AbstractGuiItem create(final GuiActionDescrip descriptor) {
super.descriptor = descriptor;
descriptor.putValue(ParentWidget.PARENT_UI, this);
@@ -89,6 +98,14 @@
}
@Override
+ public void setIconResource(final ImageResource resource) {
+ if (notStandAlone) {
+ iconLabel.setIconResource(resource);
+ layout();
+ }
+ }
+
+ @Override
public void setIconStyle(final String style) {
if (notStandAlone) {
iconLabel.setIcon(style);
Added: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuTitleItemGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuTitleItemGui.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtMenuTitleItemGui.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -0,0 +1,32 @@
+/*
+ *
+ * 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.common.client.actions.gwtui;
+
+import cc.kune.common.client.actions.ui.descrip.MenuTitleItemDescriptor;
+
+public class GwtMenuTitleItemGui extends AbstractGwtMenuItemGui {
+ public GwtMenuTitleItemGui() {
+ super();
+ }
+
+ public GwtMenuTitleItemGui(final MenuTitleItemDescriptor descriptor) {
+ super(descriptor);
+ }
+}
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSubMenuGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSubMenuGui.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSubMenuGui.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -44,7 +44,6 @@
super.descriptor = descriptor;
item = new MenuItem("", menu);
iconLabel = new IconLabel("");
- iconLabel.addTextStyleName("oc-ico-pad");
configureItemFromProperties();
final AbstractGwtMenuGui parentMenu = ((AbstractGwtMenuGui) descriptor.getParent().getValue(PARENT_UI));
final int position = descriptor.getPosition();
Modified: trunk/src/main/java/cc/kune/common/client/actions/gxtui/AbstractGxtButtonGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gxtui/AbstractGxtButtonGui.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/gxtui/AbstractGxtButtonGui.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -74,7 +74,7 @@
button.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(final ButtonEvent event) {
- descriptor.fire(new ActionEvent(button, Event.as(event.getEvent())));
+ descriptor.fire(new ActionEvent(button, getTargetObjectOfAction(descriptor), Event.as(event.getEvent())));
}
});
if (!descriptor.isChild()) {
Modified: trunk/src/main/java/cc/kune/common/client/actions/gxtui/AbstractGxtMenuItemGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gxtui/AbstractGxtMenuItemGui.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/gxtui/AbstractGxtMenuItemGui.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -92,17 +92,10 @@
public void componentSelected(final MenuEvent ce) {
final AbstractAction action = descriptor.getAction();
if (action != null) {
- action.actionPerformed(new ActionEvent(getItemObjectOfAction(descriptor), Event.getCurrentEvent()));
+ action.actionPerformed(new ActionEvent(item, getTargetObjectOfAction(descriptor),
+ Event.getCurrentEvent()));
}
}
-
- private Object getItemObjectOfAction(final GuiActionDescrip descriptor) {
- // If the action is associated with a item (like a Group, a
- // group shortname, a username, etc) we pass this item to
- // the action, if not we only pass the menuitem
- return descriptor.hasItem() ? descriptor.getItem()
- : descriptor.isChild() ? descriptor.getParent().getItem() : item;
- }
});
child = item;
super.create(descriptor);
Modified: trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtGuiProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtGuiProvider.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtGuiProvider.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -28,6 +28,7 @@
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuRadioItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuSeparatorDescriptor;
+import cc.kune.common.client.actions.ui.descrip.MenuTitleItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.PushButtonDescriptor;
import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor;
import cc.kune.common.client.actions.ui.descrip.ToolbarDescriptor;
@@ -43,12 +44,14 @@
final Provider<GxtMenuGui> gxtMenuGui, final Provider<GxtMenuItemGui> gxtMenuItemGui,
final Provider<GxtMenuSeparatorGui> gxtMenuSeparatorGui, final Provider<GxtPushButtonGui> gxtPushButtonGui,
final Provider<GxtButtonGui> gxtButtonGui, final Provider<GwtIconLabelGui> gwtIconLabelGui,
- final Provider<GxtToolbarGui> gxtToolbarGui, final Provider<GxtToolbarSeparatorGui> gxtToolbarSeparatorGui) {
+ final Provider<GxtToolbarGui> gxtToolbarGui, final Provider<GxtToolbarSeparatorGui> gxtToolbarSeparatorGui,
+ final Provider<GxtMenuTitleItemGui> gxtMenuTitleItemGui) {
guiProvider.register(SubMenuDescriptor.class, gxtSubMenuGui);
guiProvider.register(MenuDescriptor.class, gxtMenuGui);
guiProvider.register(MenuRadioItemDescriptor.class, gxtMenuItemGui);
guiProvider.register(MenuCheckItemDescriptor.class, gxtMenuItemGui);
+ guiProvider.register(MenuTitleItemDescriptor.class, gxtMenuTitleItemGui);
guiProvider.register(MenuItemDescriptor.class, gxtMenuItemGui);
guiProvider.register(MenuSeparatorDescriptor.class, gxtMenuSeparatorGui);
guiProvider.register(PushButtonDescriptor.class, gxtPushButtonGui);
Added: trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtMenuTitleItemGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtMenuTitleItemGui.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtMenuTitleItemGui.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -0,0 +1,95 @@
+/*
+ *
+ * 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.common.client.actions.gxtui;
+
+import cc.kune.common.client.actions.ui.AbstractChildGuiItem;
+import cc.kune.common.client.actions.ui.AbstractGuiItem;
+import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
+import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.common.client.utils.TextUtils;
+
+import com.extjs.gxt.ui.client.widget.menu.HeaderMenuItem;
+
+public class GxtMenuTitleItemGui extends AbstractChildGuiItem {
+
+ private HeaderMenuItem item;
+
+ public GxtMenuTitleItemGui() {
+ super();
+ }
+
+ public GxtMenuTitleItemGui(final MenuItemDescriptor descriptor) {
+ super(descriptor);
+
+ }
+
+ @Override
+ public AbstractGuiItem create(final GuiActionDescrip descriptor) {
+ super.descriptor = descriptor;
+ item = new HeaderMenuItem("");
+
+ final String id = descriptor.getId();
+ if (id != null) {
+ item.ensureDebugId(id);
+ }
+ child = item;
+ super.create(descriptor);
+ configureItemFromProperties();
+ return this;
+ }
+
+ public HeaderMenuItem getItem() {
+ return item;
+ }
+
+ @Override
+ protected void setEnabled(final boolean enabled) {
+ item.setVisible(enabled);
+ }
+
+ @Override
+ protected void setIconStyle(final String style) {
+ item.addStyleName(style);
+ }
+
+ @Override
+ protected void setText(final String text) {
+ if (text != null) {
+ item.setText(text);
+ }
+ }
+
+ @Override
+ protected void setToolTipText(final String tooltip) {
+ if (TextUtils.notEmpty(tooltip)) {
+ item.setToolTip(new GxtDefTooltip(tooltip));
+ }
+ }
+
+ @Override
+ public void setVisible(final boolean visible) {
+ item.setVisible(visible);
+ }
+
+ @Override
+ public boolean shouldBeAdded() { // NOPMD by vjrj on 18/01/11 0:48
+ return false;
+ }
+}
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -21,6 +21,7 @@
import cc.kune.common.client.actions.AbstractAction;
import cc.kune.common.client.actions.Action;
+import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.actions.PropertyChangeEvent;
import cc.kune.common.client.actions.PropertyChangeListener;
import cc.kune.common.client.actions.ui.bind.GuiBinding;
@@ -103,6 +104,14 @@
};
}
+ protected Object getTargetObjectOfAction(final GuiActionDescrip descriptor) {
+ // If the action is associated with a item (like a Group, a
+ // group shortname, a username, etc) we pass this item to
+ // the action, if not we only pass the menuitem
+ return descriptor.hasTarget() ? descriptor.getTarget()
+ : descriptor.isChild() ? descriptor.getParent().getTarget() : ActionEvent.NO_TARGET;
+ }
+
protected abstract void setEnabled(boolean enabled);
private void setEnabled(final Boolean enabled) {
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -83,8 +83,8 @@
}
@Override
- public Object getItem() {
- return getValue(ITEM);
+ public Object getTarget() {
+ return getValue(TARGET);
}
/**
@@ -130,8 +130,8 @@
}
@Override
- public boolean hasItem() {
- return getValue(ITEM) != null;
+ public boolean hasTarget() {
+ return getValue(TARGET) != null;
}
@Override
@@ -171,8 +171,8 @@
}
@Override
- public void setItem(final Object object) {
- putValue(ITEM, object);
+ public void setTarget(final Object object) {
+ putValue(TARGET, object);
}
/**
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -6,13 +6,6 @@
public interface GuiActionDescrip {
- /**
- * {@link #ITEM} is used to associate a {@link #AbstractGuiActionDescrip}
- * with an object like groups, group names, users, and so on, and used to
- * execute actions with this item as parameter
- */
- public static final String ITEM = "item";
-
public static final AbstractGuiActionDescrip NO_PARENT = new NoParentGuiActionDescriptor();
public static final int NO_POSITION = -1;
@@ -22,20 +15,25 @@
*/
public static final String STYLES = "stylesprop";
+ /**
+ * {@link #TARGET} is used to associate a {@link #AbstractGuiActionDescrip}
+ * with an object like groups, group names, users, and so on, and used to
+ * execute actions against these targets
+ */
+ public static final String TARGET = "target";
+
public static final String VISIBLE = "visibleprop";
+ void add(final GuiAddCondition addCondition);
+
void addPropertyChangeListener(final PropertyChangeListener listener);
- void add(final GuiAddCondition addCondition);
-
void fire(final ActionEvent event);
AbstractAction getAction();
String getId();
- Object getItem();
-
Object[] getKeys();
String getLocation();
@@ -46,11 +44,13 @@
PropertyChangeListener[] getPropertyChangeListeners();
+ Object getTarget();
+
Class<?> getType();
Object getValue(final String key);
- boolean hasItem();
+ boolean hasTarget();
boolean isChild();
@@ -68,8 +68,6 @@
void setId(final String id);
- void setItem(final Object object);
-
void setLocation(final String location);
void setParent(final GuiActionDescrip parent);
@@ -78,6 +76,8 @@
void setStyles(final String styles);
+ void setTarget(final Object object);
+
void setVisible(final boolean visible);
}
Added: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/MenuTitleItemDescriptor.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/MenuTitleItemDescriptor.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/MenuTitleItemDescriptor.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -0,0 +1,41 @@
+/*
+ *
+ * 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.common.client.actions.ui.descrip;
+
+import cc.kune.common.client.actions.AbstractAction;
+import cc.kune.common.client.actions.Action;
+
+public class MenuTitleItemDescriptor extends MenuItemDescriptor {
+
+ public MenuTitleItemDescriptor(final MenuDescriptor parent) {
+ super(AbstractAction.NO_ACTION);
+ setParent(parent);
+ }
+
+ public MenuTitleItemDescriptor(final MenuDescriptor parent, final String title) {
+ this(parent);
+ putValue(Action.NAME, title);
+ }
+
+ @Override
+ public Class<?> getType() {
+ return MenuTitleItemDescriptor.class;
+ }
+}
Modified: trunk/src/main/java/cc/kune/common/client/ui/AbstractFlowToolbar.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/AbstractFlowToolbar.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/ui/AbstractFlowToolbar.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -1,6 +1,6 @@
/*
*
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * 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
Modified: trunk/src/main/java/cc/kune/common/client/ui/FlowToolbar.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/FlowToolbar.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/ui/FlowToolbar.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -1,6 +1,6 @@
/*
*
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * 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
@@ -22,7 +22,6 @@
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HasVerticalAlignment.VerticalAlignmentConstant;
-import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.IndexedPanel.ForIsWidget;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Label;
@@ -31,14 +30,11 @@
public class FlowToolbar extends Composite implements AbstractToolbar, ForIsWidget {
private final FlowPanel childPanel;
- private final HorizontalPanel mainPanel;
public FlowToolbar() {
super();
- mainPanel = new HorizontalPanel();
childPanel = new FlowPanel();
- mainPanel.add(childPanel);
- initWidget(mainPanel);
+ initWidget(childPanel);
}
@Override
@@ -63,7 +59,7 @@
@Override
public Widget addSeparator() {
final Label emptyLabel = new Label("");
- emptyLabel.setStyleName("ytb-sep-FIXMEEE");
+ emptyLabel.setStyleName("k-tb-sep");
emptyLabel.addStyleName("oc-tb-sep");
emptyLabel.addStyleName("oc-floatleft");
this.add(emptyLabel);
@@ -139,7 +135,6 @@
@Override
public void setHeight(final String height) {
- mainPanel.setHeight(height);
childPanel.setHeight(height);
}
Modified: trunk/src/main/java/cc/kune/common/client/ui/IconLabel.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/IconLabel.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/ui/IconLabel.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -24,13 +24,15 @@
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.i18n.client.HasDirection.Direction;
+import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.FocusPanel;
import com.google.gwt.user.client.ui.HasDirectionalText;
import com.google.gwt.user.client.ui.HasWidgets;
-import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.Widget;
@@ -42,9 +44,9 @@
private static IconTitleUiBinder uiBinder = GWT.create(IconTitleUiBinder.class);
@UiField
- HorizontalPanel hp;
+ FlowPanel flow;
@UiField
- InlineLabel icon;
+ Image icon;
@UiField
InlineLabel label;
@UiField
@@ -57,16 +59,18 @@
public IconLabel(final String text) {
initWidget(uiBinder.createAndBindUi(this));
label.setText(text);
+ label.addStyleName("k-space-nowrap");
+ label.addStyleName("k-iconlabel-text");
}
@Override
public void add(final Widget w) {
- hp.add(w);
+ flow.add(w);
}
@Override
public void addStyleName(final String style) {
- hp.addStyleName(style);
+ flow.addStyleName(style);
}
public void addTextStyleName(final String style) {
@@ -75,7 +79,7 @@
@Override
public void clear() {
- hp.clear();
+ flow.clear();
}
public HasClickHandlers getFocus() {
@@ -94,19 +98,24 @@
@Override
public Iterator<Widget> iterator() {
- return hp.iterator();
+ return flow.iterator();
}
@Override
public boolean remove(final Widget w) {
- return hp.remove(w);
+ return flow.remove(w);
}
public void setIcon(final String imgCss) {
+ icon.setUrl("images/clear.gif");
icon.setStyleName(imgCss);
icon.addStyleName("oc-ico-pad");
}
+ public void setIconResource(final ImageResource res) {
+ icon.setResource(res);
+ }
+
public void setLabelText(final String text) {
label.setText(text);
}
Modified: trunk/src/main/java/cc/kune/common/client/ui/IconLabel.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/IconLabel.ui.xml 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/ui/IconLabel.ui.xml 2011-02-21 04:32:11 UTC (rev 1257)
@@ -16,10 +16,10 @@
}
</ui:style>
<g:FocusPanel ui:field="self">
- <g:HorizontalPanel styleName="{style.pad}"
- ui:field="hp">
- <g:InlineLabel ui:field="icon"/>
- <g:InlineLabel ui:field="label" styleName="{style.label}" />
- </g:HorizontalPanel>
+ <g:FlowPanel styleName="{style.pad}"
+ ui:field="flow">
+ <g:Image ui:field="icon"/>
+ <g:InlineLabel ui:field="label" styleName="{style.label}" />
+ </g:FlowPanel>
</g:FocusPanel>
</ui:UiBinder>
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/common/client/ui/KuneWindowUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/KuneWindowUtils.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/client/ui/KuneWindowUtils.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -1,6 +1,6 @@
/*
*
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * 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
Modified: trunk/src/main/java/cc/kune/common/public/kune-common.css
===================================================================
--- trunk/src/main/java/cc/kune/common/public/kune-common.css 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/common/public/kune-common.css 2011-02-21 04:32:11 UTC (rev 1257)
@@ -1,412 +1,439 @@
+/* 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-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 span {
- color: #552200;
- font-size: 20px;
- font-weight: bold;
- margin: 0 0 0 6px;
+ color: #552200;
+ font-size: 20px;
+ font-weight: bold;
+ margin: 0 0 0 6px;
}
.k-dialog-innerp {
- background-color: #FFFFFF;
- border: solid 1px #F2F2F2;
- margin: 34px 16px 20px 16px;
+ background-color: #FFFFFF;
+ border: solid 1px #F2F2F2;
+ margin: 34px 16px 20px 16px;
}
.k-dialog-btn-area {
- padding:0 15px 15px 15px;
- margin-bottom:30px;
+ padding: 0 15px 15px 15px;
+ margin-bottom: 30px;
}
.k-dialog-btn-area div {
- margin: 10px
+ margin: 10px
}
.k-dialog-innerp table {
- margin: 5px;
+ margin: 5px;
}
-.k-dialog-btn {
- text-shadow: 1px 1px 1px #FFFFFF;
- font-weight: bold;
+.k-dialog-btn,.k-btn {
+ text-shadow: 1px 1px 1px #FFFFFF;
+ font-weight: bold;
+ -moz-user-select: none;
+ -khtml-user-select: none;
}
.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;
}
.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(/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;
}
-.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 {
+ background-color: #280b0b;
+ border: 2px solid #552200;
+ padding: 3px;
+ -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-menu .gwt-MenuItem {
- cursor: default;
- -moz-user-select: none;
- -khtml-user-select: none;
+ cursor: default;
+ -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;
}
.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(/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;
}
-.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;
}
-.oc-button:active {
- border-top-color: #ffffff;
- background: #ffffff;
+.k-space-nowrap {
+ white-space: nowrap;
}
-#oc-mshortcut {
- position: absolute;
- right: 10px;
+.k-iconlabel-text {
+ vertical-align: top;
+ padding-left: 3px;
}
-#oc-mshortcut-hidden {
- visibility: hidden;
+.k-menuimtem-title {
+ color: white;
+ font-size: 15px;
+ font-style: italic;
+ padding: 2px 3px 2px 0;
}
-#oc-mshortcut a {
- text-decoration: none;
- color: black;
-}
-
-.k-no-backimage,.k-no-backimage td {
- background-image: none;
+.k-tb-sep {
+ border-left: 1px solid #B3B3B3;
+ height: 10px;
+ margin-top: 4px;
}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/core/Core.gwt.xml
===================================================================
--- trunk/src/main/java/cc/kune/core/Core.gwt.xml 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/Core.gwt.xml 2011-02-21 04:32:11 UTC (rev 1257)
@@ -2,7 +2,7 @@
<!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 rename-to="ws">
<!-- source / public / etc ==================================== -->
- <!-- excluding test sources for this module workaround for open issue 4454
+ <!-- excluding test sources for this module workaround for open issue 4454
see http://code.google.com/p/google-web-toolkit/issues/detail?id=4454 -->
<source path='client'
excludes="**/*Test.java,**/*Tests.java,**/*MockProvider.java" />
@@ -14,7 +14,7 @@
<inherits name="cc.kune.msgs.KuneMsgs" />
<inherits name="cc.kune.common.KuneCommon" />
<inherits name="com.extjs.gxt.ui.GXT" />
- <inherits name="com.jhickman.web.gwt.gxtuibinder.GxtUiBinder" />
+<!-- <inherits name="com.jhickman.web.gwt.gxtuibinder.GxtUiBinder" />-->
<inherits name="com.calclab.suco.Suco" />
<inherits name='com.gwtplatform.mvp.Mvp' />
<!-- Styles =================================================== -->
Modified: trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -185,6 +185,7 @@
bind(SNPendingsMenuItemsRegistry.class).in(Singleton.class);
bind(GroupMembersActionsRegistry.class).in(Singleton.class);
+ bind(SiteUserOptionsPresenter.class).in(Singleton.class);
bind(SiteUserOptions.class).to(SiteUserOptionsPresenter.class).in(Singleton.class);
bind(SitebarNewGroupLink.class).in(Singleton.class);
bind(SitebarSignInLink.class).in(Singleton.class);
Modified: trunk/src/main/java/cc/kune/core/client/resources/CoreResources.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/resources/CoreResources.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/resources/CoreResources.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -49,6 +49,9 @@
@Source("arrow-down-green.png")
ImageResource arrowDownGreen();
+ @Source("arrowdownsitebar.gif")
+ ImageResource arrowDownSitebar();
+
@Source("arrow-down-white.gif")
ImageResource arrowDownWhite();
Added: trunk/src/main/java/cc/kune/core/client/resources/arrowdownsitebar.gif
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/core/client/resources/arrowdownsitebar.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/cc/kune/core/client/resources/icons/IconConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/resources/icons/IconConstants.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/resources/icons/IconConstants.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -21,12 +21,15 @@
import com.google.gwt.resources.client.ImageResource;
+@Deprecated
public final class IconConstants {
+ @Deprecated
public static final String CSS_SUFFIX = "k-icon-";
- public static final String PATH_PREFIX = "images/";
+ private static final String PATH_PREFIX = "images/";
+ @Deprecated
public static String toPath(final ImageResource img) {
return PATH_PREFIX + img.getName() + ".png";
}
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -32,8 +32,8 @@
import cc.kune.core.client.resources.icons.IconResources;
import cc.kune.core.client.services.FileDownloadUtils;
import cc.kune.core.client.sn.actions.GotoGroupAction;
-import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
+import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.UserSignInEvent;
import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
import cc.kune.core.client.state.UserSignOutEvent;
@@ -47,12 +47,12 @@
public class SiteUserOptionsPresenter implements SiteUserOptions {
- public static final String LOGGED_USER_MENU = "kune-sump-lum";
+ public static final MenuDescriptor LOGGED_USER_MENU = new MenuDescriptor();
+ public static final String LOGGED_USER_MENU_ID = "kune-sump-lum";
private final Provider<FileDownloadUtils> downloadProvider;
private final GotoGroupAction gotoGroupAction;
private final I18nTranslationService i18n;
private final IconResources img;
- private MenuDescriptor menuDescriptor;
private SubMenuDescriptor partiMenu;
private final Session session;
private final SitebarActionsPresenter siteOptions;
@@ -71,21 +71,17 @@
this.siteOptions = siteOptions;
this.gotoGroupAction = gotoGroupAction;
createActions();
- if (session.isLogged()) {
- onUserSignIn(session.getCurrentUserInfo());
- }
- session.onUserSignIn(new UserSignInHandler() {
+ session.onUserSignIn(true, new UserSignInHandler() {
@Override
public void onUserSignIn(final UserSignInEvent event) {
SiteUserOptionsPresenter.this.onUserSignIn(event.getUserInfo());
}
});
- session.onUserSignOut(new UserSignOutHandler() {
-
+ session.onUserSignOut(true, new UserSignOutHandler() {
@Override
public void onUserSignOut(final UserSignOutEvent event) {
- menuDescriptor.setVisible(false);
- menuDescriptor.setEnabled(false);
+ LOGGED_USER_MENU.setVisible(false);
+ LOGGED_USER_MENU.setEnabled(false);
SiteUserOptionsPresenter.this.setLoggedUserName("");
}
});
@@ -97,7 +93,7 @@
}
private void addActionImpl(final GuiActionDescrip descriptor) {
- descriptor.setParent(menuDescriptor);
+ descriptor.setParent(LOGGED_USER_MENU);
siteOptions.getRightToolbar().addAction(descriptor);
}
@@ -105,7 +101,7 @@
final String logoImageUrl = group.hasLogo() ? downloadProvider.get().getLogoImageUrl(group.getStateToken())
: "images/group-def-icon.gif";
final MenuItemDescriptor participant = new MenuItemDescriptor(gotoGroupAction);
- participant.setItem(group);
+ participant.setTarget(group);
participant.putValue(Action.NAME, group.getLongName());
participant.putValue(Action.SMALL_ICON, logoImageUrl);
participant.setParent(partiMenu);
@@ -113,10 +109,9 @@
}
private void createActions() {
- menuDescriptor = new MenuDescriptor();
- menuDescriptor.setId(LOGGED_USER_MENU);
- menuDescriptor.setStyles("k-no-backimage, k-btn-sitebar");
- siteOptions.getRightToolbar().addAction(menuDescriptor);
+ LOGGED_USER_MENU.setId(LOGGED_USER_MENU_ID);
+ LOGGED_USER_MENU.setStyles("k-no-backimage, k-btn-sitebar");
+ siteOptions.getLeftToolbar().addAction(LOGGED_USER_MENU);
partiMenu = new SubMenuDescriptor(i18n.t("Your groups"));
addActionImpl(partiMenu);
@@ -139,8 +134,8 @@
}
private void onUserSignIn(final UserInfoDTO userInfoDTO) {
- menuDescriptor.setVisible(true);
- menuDescriptor.setEnabled(true);
+ LOGGED_USER_MENU.setVisible(true);
+ LOGGED_USER_MENU.setEnabled(true);
setLoggedUserName(userInfoDTO.getShortName());
partiMenu.clear();
final List<GroupDTO> groupsIsAdmin = userInfoDTO.getGroupsIsAdmin();
@@ -151,11 +146,11 @@
for (final GroupDTO group : groupsIsCollab) {
addPartipation(group);
}
- partiMenu.setVisible(!groupsIsAdmin.isEmpty() || !groupsIsCollab.isEmpty());
+ partiMenu.setEnabled((groupsIsAdmin.size() + groupsIsCollab.size()) > 0);
}
private void setLoggedUserName(final String shortName) {
- menuDescriptor.putValue(Action.NAME, shortName);
+ LOGGED_USER_MENU.putValue(Action.NAME, shortName);
}
}
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -29,6 +29,8 @@
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuSeparatorDescriptor;
import cc.kune.common.client.actions.ui.descrip.ToolbarDescriptor;
+import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor;
+import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor.Type;
import cc.kune.common.client.ui.KuneWindowUtils;
import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.resources.CoreResources;
@@ -108,14 +110,12 @@
public void onAppStart(final AppStartEvent event) {
final IsActionExtensible right = getView().getRightBar();
OPTIONS_MENU.putValue(Action.NAME, i18n.t("Options"));
- // OPTIONS_MENU.putValue(Action.SMALL_ICON, res.arrowDownBlack());
- // OPTIONS_MENU.setParent(RIGHT_TOOLBAR);
- OPTIONS_MENU.setStyles("k-no-backimage, k-btn-sitebar");
+ OPTIONS_MENU.putValue(Action.SMALL_ICON, res.arrowDownSitebar());
+ OPTIONS_MENU.setParent(RIGHT_TOOLBAR);
+ OPTIONS_MENU.setStyles("k-no-backimage, k-btn-sitebar, k-fl");
OPTIONS_MENU.putValue(AbstractGxtMenuGui.MENU_POSITION, AbstractGxtMenuGui.MenuPosition.bl);
- // final ToolbarSeparatorDescriptor separator = new
- // ToolbarSeparatorDescriptor(Type.separator, RIGHT_TOOLBAR);
- // final ToolbarSeparatorDescriptor separator2 = new
- // ToolbarSeparatorDescriptor(Type.separator, RIGHT_TOOLBAR);
+ final ToolbarSeparatorDescriptor separator = new ToolbarSeparatorDescriptor(Type.separator, RIGHT_TOOLBAR);
+ final ToolbarSeparatorDescriptor separator2 = new ToolbarSeparatorDescriptor(Type.separator, RIGHT_TOOLBAR);
final MenuSeparatorDescriptor menuSeparator = new MenuSeparatorDescriptor(OPTIONS_MENU);
final AbstractExtendedAction bugsAction = new AbstractExtendedAction() {
@@ -151,12 +151,12 @@
// aboutAction.setShortcut(shortcut);
// shortcutReg.put(shortcut, aboutAction);
- right.addAction(OPTIONS_MENU);
right.addAction(signInLink.get());
right.addAction(signOutLink.get());
- // right.addAction(separator2);
+ right.addAction(separator2);
right.addAction(newGroupLink.get());
- // right.addAction(separator);
+ right.addAction(separator);
+ right.addAction(OPTIONS_MENU);
right.addAction(reportBugs);
right.addAction(gotoKuneDevSite);
right.addAction(menuSeparator);
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -23,8 +23,8 @@
import cc.kune.common.client.actions.Action;
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
+import cc.kune.core.client.state.StateManager;
import cc.kune.core.client.state.SiteCommonTokens;
-import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.i18n.I18nTranslationService;
import com.google.inject.Inject;
@@ -52,7 +52,7 @@
@Inject
public SitebarNewGroupLink(final SitebarNewGroupAction action) {
super(action);
- setStyles("k-no-backimage, k-btn-sitebar");
- // setParent(SitebarActionsPresenter.RIGHT_TOOLBAR);
+ setStyles("k-no-backimage, k-btn-sitebar, k-fl");
+ setParent(SitebarActionsPresenter.RIGHT_TOOLBAR);
}
}
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -64,14 +64,15 @@
// setParent(SitebarActionsPresenter.RIGHT_TOOLBAR);
setId(SITE_SIGN_IN);
setVisible(!session.isLogged());
- setStyles("k-no-backimage, k-btn-sitebar");
- eventBus.addHandler(UserSignInEvent.getType(), new UserSignInHandler() {
+ setStyles("k-no-backimage, k-btn-sitebar, k-fl");
+ setParent(SitebarActionsPresenter.RIGHT_TOOLBAR);
+ session.onUserSignIn(true, new UserSignInHandler() {
@Override
public void onUserSignIn(final UserSignInEvent event) {
SitebarSignInLink.this.setVisible(false);
}
});
- eventBus.addHandler(UserSignOutEvent.getType(), new UserSignOutHandler() {
+ session.onUserSignOut(true, new UserSignOutHandler() {
@Override
public void onUserSignOut(final UserSignOutEvent event) {
SitebarSignInLink.this.setVisible(true);
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -116,16 +116,16 @@
final ErrorHandler errorHandler, final Session session) {
super(action);
setId(SITE_SIGN_OUT);
- // setParent(SitebarActionsPresenter.RIGHT_TOOLBAR);
+ setParent(SitebarActionsPresenter.RIGHT_TOOLBAR);
setVisible(session.isLogged());
- setStyles("k-no-backimage, k-btn-sitebar");
- eventBus.addHandler(UserSignInEvent.getType(), new UserSignInHandler() {
+ setStyles("k-no-backimage, k-btn-sitebar, k-fl");
+ session.onUserSignIn(true, new UserSignInHandler() {
@Override
public void onUserSignIn(final UserSignInEvent event) {
SitebarSignOutLink.this.setVisible(true);
}
});
- eventBus.addHandler(UserSignOutEvent.getType(), new UserSignOutHandler() {
+ session.onUserSignOut(true, new UserSignOutHandler() {
@Override
public void onUserSignOut(final UserSignOutEvent event) {
SitebarSignOutLink.this.setVisible(false);
Modified: trunk/src/main/java/cc/kune/core/client/sn/GroupMembersPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/GroupMembersPresenter.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/GroupMembersPresenter.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -130,7 +130,7 @@
final GuiActionDescCollection items = new GuiActionDescCollection();
for (final Provider<MenuItemDescriptor> provider : registry) {
final MenuItemDescriptor menuItem = provider.get();
- menuItem.setItem(group);
+ menuItem.setTarget(group);
items.add(menuItem);
}
return items;
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/AcceptJoinGroupAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/AcceptJoinGroupAction.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/AcceptJoinGroupAction.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -39,7 +39,7 @@
public void actionPerformed(final ActionEvent event) {
NotifyUser.showProgressProcessing();
snServiceProvider.get().acceptJoinGroup(session.getUserHash(), session.getCurrentState().getStateToken(),
- ((GroupDTO) event.getSource()).getShortName(), new AsyncCallbackSimple<SocialNetworkDataDTO>() {
+ ((GroupDTO) event.getTarget()).getShortName(), new AsyncCallbackSimple<SocialNetworkDataDTO>() {
@Override
public void onSuccess(final SocialNetworkDataDTO result) {
NotifyUser.hideProgress();
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/ChangeToAdminAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/ChangeToAdminAction.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/ChangeToAdminAction.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -38,7 +38,7 @@
public void actionPerformed(final ActionEvent event) {
NotifyUser.showProgressProcessing();
snServiceProvider.get().setCollabAsAdmin(session.getUserHash(), session.getCurrentState().getStateToken(),
- ((GroupDTO) event.getSource()).getShortName(), new AsyncCallbackSimple<SocialNetworkDataDTO>() {
+ ((GroupDTO) event.getTarget()).getShortName(), new AsyncCallbackSimple<SocialNetworkDataDTO>() {
@Override
public void onSuccess(final SocialNetworkDataDTO result) {
NotifyUser.hideProgress();
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/ChangeToCollabAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/ChangeToCollabAction.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/ChangeToCollabAction.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -38,7 +38,7 @@
public void actionPerformed(final ActionEvent event) {
NotifyUser.showProgressProcessing();
snServiceProvider.get().setAdminAsCollab(session.getUserHash(), session.getCurrentState().getStateToken(),
- ((GroupDTO) event.getSource()).getShortName(), new AsyncCallbackSimple<SocialNetworkDataDTO>() {
+ ((GroupDTO) event.getTarget()).getShortName(), new AsyncCallbackSimple<SocialNetworkDataDTO>() {
@Override
public void onSuccess(final SocialNetworkDataDTO result) {
NotifyUser.hideProgress();
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/DenyJoinGroupAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/DenyJoinGroupAction.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/DenyJoinGroupAction.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -38,7 +38,7 @@
public void actionPerformed(final ActionEvent event) {
NotifyUser.showProgressProcessing();
snServiceProvider.get().denyJoinGroup(session.getUserHash(), session.getCurrentState().getStateToken(),
- ((GroupDTO) event.getSource()).getShortName(), new AsyncCallbackSimple<SocialNetworkDataDTO>() {
+ ((GroupDTO) event.getTarget()).getShortName(), new AsyncCallbackSimple<SocialNetworkDataDTO>() {
@Override
public void onSuccess(final SocialNetworkDataDTO result) {
NotifyUser.hideProgress();
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/GotoGroupAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/GotoGroupAction.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/GotoGroupAction.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -23,7 +23,7 @@
@Override
public void actionPerformed(final ActionEvent event) {
- stateManager.gotoToken(((GroupDTO) event.getSource()).getStateToken());
+ stateManager.gotoToken(((GroupDTO) event.getTarget()).getStateToken());
}
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/RemoveMemberAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/RemoveMemberAction.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/RemoveMemberAction.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -38,7 +38,7 @@
public void actionPerformed(final ActionEvent event) {
NotifyUser.showProgressProcessing();
snServiceProvider.get().deleteMember(session.getUserHash(), session.getCurrentState().getStateToken(),
- ((GroupDTO) event.getSource()).getShortName(), new AsyncCallbackSimple<SocialNetworkDataDTO>() {
+ ((GroupDTO) event.getTarget()).getShortName(), new AsyncCallbackSimple<SocialNetworkDataDTO>() {
@Override
public void onSuccess(final SocialNetworkDataDTO result) {
NotifyUser.hideProgress();
Deleted: trunk/src/main/java/cc/kune/core/client/sn/actions/StartChatWithMemberAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/StartChatWithMemberAction.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/StartChatWithMemberAction.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -1,40 +0,0 @@
-package cc.kune.core.client.sn.actions;
-
-import cc.kune.chat.client.ChatClient;
-import cc.kune.common.client.actions.AbstractExtendedAction;
-import cc.kune.common.client.actions.Action;
-import cc.kune.common.client.actions.ActionEvent;
-import cc.kune.common.client.noti.NotifyUser;
-import cc.kune.core.client.resources.CoreResources;
-import cc.kune.core.shared.dto.GroupDTO;
-import cc.kune.core.shared.i18n.I18nTranslationService;
-
-import com.calclab.emite.core.client.xmpp.stanzas.XmppURI;
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-
-public class StartChatWithMemberAction extends AbstractExtendedAction {
- private final Provider<ChatClient> chatClient;
-
- private final I18nTranslationService i18n;
-
- @Inject
- public StartChatWithMemberAction(final I18nTranslationService i18n, final CoreResources res,
- final Provider<ChatClient> chatClient) {
- this.i18n = i18n;
- this.chatClient = chatClient;
- putValue(NAME, i18n.t("Start a chat with this member"));
- putValue(Action.SMALL_ICON, res.newChat());
- }
-
- @Override
- public void actionPerformed(final ActionEvent event) {
- chatClient.get().show();
- if (chatClient.get().isLoggedIn()) {
- chatClient.get().chat(XmppURI.jid(((GroupDTO) event.getSource()).getShortName()));
- } else {
- NotifyUser.important(i18n.t("To start a chat you need to be 'online'"));
- }
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/core/client/sn/actions/StartChatWithUserAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/StartChatWithUserAction.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/StartChatWithUserAction.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -1,17 +0,0 @@
-package cc.kune.core.client.sn.actions;
-
-import cc.kune.chat.client.ChatClient;
-import cc.kune.core.client.resources.CoreResources;
-import cc.kune.core.shared.i18n.I18nTranslationService;
-
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-
-public class StartChatWithUserAction extends StartChatWithMemberAction {
- @Inject
- public StartChatWithUserAction(final I18nTranslationService i18n, final CoreResources res,
- final Provider<ChatClient> chatClient) {
- super(i18n, res, chatClient);
- putValue(NAME, i18n.t("Start a chat with this person"));
- }
-}
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsGroupCondition.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsGroupCondition.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsGroupCondition.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -16,6 +16,6 @@
@Override
public boolean mustBeAdded(final GuiActionDescrip descr) {
- return (!((GroupDTO) descr.getItem()).isPersonal());
+ return (!((GroupDTO) descr.getTarget()).isPersonal());
}
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsNotMeCondition.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsNotMeCondition.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsNotMeCondition.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -21,6 +21,6 @@
@Override
public boolean mustBeAdded(final GuiActionDescrip descr) {
return (session.isLogged() && !session.getCurrentUser().getShortName().equals(
- ((GroupDTO) descr.getItem()).getShortName()));
+ ((GroupDTO) descr.getTarget()).getShortName()));
}
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsPersonCondition.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsPersonCondition.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsPersonCondition.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -16,6 +16,6 @@
@Override
public boolean mustBeAdded(final GuiActionDescrip descr) {
- return (((GroupDTO) descr.getItem()).isPersonal());
+ return (((GroupDTO) descr.getTarget()).isPersonal());
}
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupMembersActionsRegistry.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupMembersActionsRegistry.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupMembersActionsRegistry.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -3,16 +3,19 @@
import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
import cc.kune.core.client.sn.actions.JoinGroupAction;
import cc.kune.core.client.sn.actions.UnJoinGroupAction;
+import cc.kune.core.client.sn.actions.conditions.IsGroupCondition;
import com.google.inject.Inject;
public class GroupMembersActionsRegistry extends AbstractSNActionsRegistry {
@Inject
- public GroupMembersActionsRegistry(final JoinGroupAction joinGroupAction, final UnJoinGroupAction unJoinGroupAction) {
+ public GroupMembersActionsRegistry(final JoinGroupAction joinGroupAction, final IsGroupCondition isGroupCondition,
+ final UnJoinGroupAction unJoinGroupAction) {
final ButtonDescriptor join = new ButtonDescriptor(joinGroupAction);
final ButtonDescriptor unjoin = new ButtonDescriptor(unJoinGroupAction);
// join.setStyles("k-no-backimage");
// unjoin.setStyles("k-no-backimage");
+ // join.add(isGroupCondition);
add(join);
add(unjoin);
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/registry/SNAdminsMenuItemsRegistry.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/registry/SNAdminsMenuItemsRegistry.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/registry/SNAdminsMenuItemsRegistry.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -8,7 +8,6 @@
import cc.kune.core.client.sn.actions.GotoGroupAction;
import cc.kune.core.client.sn.actions.GotoMemberAction;
import cc.kune.core.client.sn.actions.RemoveMemberAction;
-import cc.kune.core.client.sn.actions.StartChatWithMemberAction;
import cc.kune.core.client.sn.actions.conditions.IsAdministrableCondition;
import cc.kune.core.client.sn.actions.conditions.IsGroupCondition;
import cc.kune.core.client.sn.actions.conditions.IsNotMeCondition;
@@ -26,13 +25,13 @@
final IsNotMeCondition isNotMe, final ChangeToCollabAction changeToCollabAction,
final ChangeToAdminAction changeToAdminAction, final RemoveMemberAction removeMemberAction,
final AcceptJoinGroupAction acceptJoinGroupAction, final DenyJoinGroupAction denyJoinGroupAction,
- final StartChatWithMemberAction startChatWithUserAction, final GotoGroupAction gotoGroupAction,
- final GotoMemberAction gotoMemberAction) {
+ final GotoGroupAction gotoGroupAction, final GotoMemberAction gotoMemberAction) {
add(new Provider<MenuItemDescriptor>() {
@Override
public MenuItemDescriptor get() {
final MenuItemDescriptor item = new MenuItemDescriptor(changeToCollabAction);
item.add(isAdministrableCondition);
+ item.add(isNotMe);
return item;
}
});
@@ -41,6 +40,7 @@
public MenuItemDescriptor get() {
final MenuItemDescriptor item = new MenuItemDescriptor(removeMemberAction);
item.add(isAdministrableCondition);
+ item.add(isNotMe);
return item;
}
});
@@ -60,15 +60,6 @@
return item;
}
});
- add(new Provider<MenuItemDescriptor>() {
- @Override
- public MenuItemDescriptor get() {
- final MenuItemDescriptor item = new MenuItemDescriptor(startChatWithUserAction);
- item.add(isNotMe);
- item.add(isPersonCondition);
- return item;
- }
- });
}
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/registry/SNCollabsMenuItemsRegistry.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/registry/SNCollabsMenuItemsRegistry.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/registry/SNCollabsMenuItemsRegistry.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -8,7 +8,6 @@
import cc.kune.core.client.sn.actions.GotoGroupAction;
import cc.kune.core.client.sn.actions.GotoMemberAction;
import cc.kune.core.client.sn.actions.RemoveMemberAction;
-import cc.kune.core.client.sn.actions.StartChatWithMemberAction;
import cc.kune.core.client.sn.actions.conditions.IsAdministrableCondition;
import cc.kune.core.client.sn.actions.conditions.IsGroupCondition;
import cc.kune.core.client.sn.actions.conditions.IsNotMeCondition;
@@ -26,8 +25,7 @@
final IsNotMeCondition isNotMe, final ChangeToCollabAction changeToCollabAction,
final ChangeToAdminAction changeToAdminAction, final RemoveMemberAction removeMemberAction,
final AcceptJoinGroupAction acceptJoinGroupAction, final DenyJoinGroupAction denyJoinGroupAction,
- final StartChatWithMemberAction startChatWithUserAction, final GotoGroupAction gotoGroupAction,
- final GotoMemberAction gotoMemberAction) {
+ final GotoGroupAction gotoGroupAction, final GotoMemberAction gotoMemberAction) {
add(new Provider<MenuItemDescriptor>() {
@Override
public MenuItemDescriptor get() {
@@ -60,15 +58,7 @@
return item;
}
});
- add(new Provider<MenuItemDescriptor>() {
- @Override
- public MenuItemDescriptor get() {
- final MenuItemDescriptor item = new MenuItemDescriptor(startChatWithUserAction);
- item.add(isNotMe);
- item.add(isPersonCondition);
- return item;
- }
- });
+
}
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/registry/SNPendingsMenuItemsRegistry.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/registry/SNPendingsMenuItemsRegistry.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/registry/SNPendingsMenuItemsRegistry.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -8,7 +8,6 @@
import cc.kune.core.client.sn.actions.GotoGroupAction;
import cc.kune.core.client.sn.actions.GotoPersonAction;
import cc.kune.core.client.sn.actions.RemoveMemberAction;
-import cc.kune.core.client.sn.actions.StartChatWithUserAction;
import cc.kune.core.client.sn.actions.conditions.IsAdministrableCondition;
import cc.kune.core.client.sn.actions.conditions.IsGroupCondition;
import cc.kune.core.client.sn.actions.conditions.IsPersonCondition;
@@ -24,8 +23,8 @@
final IsPersonCondition isPersonCondition, final IsGroupCondition isGroupCondition,
final ChangeToCollabAction changeToCollabAction, final ChangeToAdminAction changeToAdminAction,
final RemoveMemberAction removeMemberAction, final AcceptJoinGroupAction acceptJoinGroupAction,
- final DenyJoinGroupAction denyJoinGroupAction, final StartChatWithUserAction startChatWithUserAction,
- final GotoGroupAction gotoGroupAction, final GotoPersonAction gotoPersonAction) {
+ final DenyJoinGroupAction denyJoinGroupAction, final GotoGroupAction gotoGroupAction,
+ final GotoPersonAction gotoPersonAction) {
add(new Provider<MenuItemDescriptor>() {
@Override
public MenuItemDescriptor get() {
@@ -58,14 +57,6 @@
return item;
}
});
- add(new Provider<MenuItemDescriptor>() {
- @Override
- public MenuItemDescriptor get() {
- final MenuItemDescriptor item = new MenuItemDescriptor(startChatWithUserAction);
- item.add(isPersonCondition);
- return item;
- }
- });
}
}
Modified: trunk/src/main/java/cc/kune/core/client/state/Session.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/Session.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/state/Session.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -66,7 +66,7 @@
*/
int SESSION_DURATION = 1000 * 60 * 60 * 24 * 14;
- String USERHASH = "userHash";
+ String USERHASH = "k007userHash";
void check(AsyncCallbackSimple<Void> callback);
@@ -141,16 +141,28 @@
@Deprecated
void onInitDataReceived(Listener<InitDataDTO> listener);
+ /**
+ * @param fireNow
+ * if @true the handler is fired after added if the user is
+ * loggedin
+ * @param handler
+ */
+ void onUserSignIn(boolean fireNow, UserSignInEvent.UserSignInHandler handler);
+
@Deprecated
void onUserSignIn(Listener<UserInfoDTO> listener);
- void onUserSignIn(UserSignInEvent.UserSignInHandler handler);
+ /**
+ * @param fireNow
+ * if @true the handler is fired after added if the user is
+ * loggedin
+ * @param handler
+ */
+ void onUserSignOut(boolean fireNow, UserSignOutEvent.UserSignOutHandler handler);
@Deprecated
void onUserSignOut(Listener0 listener);
- void onUserSignOut(UserSignOutEvent.UserSignOutHandler handler);
-
void setCurrentLanguage(final I18nLanguageDTO currentLanguage);
void setCurrentState(final StateAbstractDTO currentState);
Modified: trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -302,13 +302,24 @@
}
@Override
+ public void onUserSignIn(final boolean fireNow, final UserSignInHandler handler) {
+ eventBus.addHandler(UserSignInEvent.getType(), handler);
+ if (fireNow && isLogged() && currentUserInfo != null) {
+ handler.onUserSignIn(new UserSignInEvent(currentUserInfo));
+ }
+ }
+
+ @Override
public void onUserSignIn(final Listener<UserInfoDTO> listener) {
throw new NotImplementedException();
}
@Override
- public void onUserSignIn(final UserSignInHandler handler) {
- eventBus.addHandler(UserSignInEvent.getType(), handler);
+ public void onUserSignOut(final boolean fireNow, final UserSignOutHandler handler) {
+ eventBus.addHandler(UserSignOutEvent.getType(), handler);
+ if (fireNow && isNotLogged()) {
+ handler.onUserSignOut(new UserSignOutEvent());
+ }
}
@Override
@@ -317,11 +328,6 @@
}
@Override
- public void onUserSignOut(final UserSignOutHandler handler) {
- eventBus.addHandler(UserSignOutEvent.getType(), handler);
- }
-
- @Override
public void setCurrentLanguage(final I18nLanguageDTO currentLanguage) {
this.currentLanguage = currentLanguage;
}
Modified: trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -68,7 +68,7 @@
this.resumedToken = null;
siteTokens = new HashMap<String, HistoryTokenCallback>();
beforeStateChangeCollection = new BeforeActionCollection();
- eventBus.addHandler(UserSignInEvent.getType(), new UserSignInEvent.UserSignInHandler() {
+ session.onUserSignIn(true, new UserSignInEvent.UserSignInHandler() {
@Override
public void onUserSignIn(final UserSignInEvent event) {
if (previousToken == null) {
@@ -79,7 +79,7 @@
}
}
});
- eventBus.addHandler(UserSignOutEvent.getType(), new UserSignOutEvent.UserSignOutHandler() {
+ session.onUserSignOut(true, new UserSignOutEvent.UserSignOutHandler() {
@Override
public void onUserSignOut(final UserSignOutEvent event) {
reload();
Modified: trunk/src/main/java/cc/kune/core/client/ui/footer/license/EntityLicensePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ui/footer/license/EntityLicensePanel.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/client/ui/footer/license/EntityLicensePanel.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -72,8 +72,11 @@
});
licenseImage.addStyleName("k-footer-license-img");
licenseLabel.addStyleName("k-footer-license-label");
+ licenseLabel.setVisible(false);
armor.getEntityFooter().add(licenseBar);
labelElement = licenseLabel.getElement();
+ labelElement.getStyle().setOpacity(0);
+ licenseLabel.setVisible(true);
}
@Override
@@ -92,9 +95,11 @@
}
private void fade() {
- final Fade fade = new Fade(labelElement);
- fade.setDuration(.5);
- fade.play();
+ if ("1".equals(labelElement.getStyle().getOpacity())) {
+ final Fade fade = new Fade(labelElement);
+ fade.setDuration(.5);
+ fade.play();
+ }
}
@Override
Added: trunk/src/main/java/cc/kune/core/public/images/clear.gif
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/core/public/images/clear.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/cc/kune/core/public/images/clear.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/cc/kune/core/public/images/clear.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/cc/kune/core/public/ws.css
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.css 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/public/ws.css 2011-02-21 04:32:11 UTC (rev 1257)
@@ -370,18 +370,29 @@
margin-top: 2px;
}
-.x-btn button {
- font: 18px/27px 'Ubuntu', arial;
+.x-btn button,button { /* font: 18px/27px 'Ubuntu', arial; */
+
}
-.k-btn-sitebar,.k-btn-sitebar button {
+.k-btn-sitebar span,.k-btn-sitebar button span,.k-sitebar button span {
+ text-decoration: underline;
+}
+
+.k-btn-sitebar,.k-btn-sitebar button,.k-sitebar button {
font: 13px 'Ubuntu', arial;
color: #B3B3B3;
cursor: pointer;
- text-decoration: underline;
white-space: nowrap;
+ background: none;
+ border: 0px;
+ padding: 0 3px 0 0 !important;
}
+.k-sitebar button:hover {
+ border: 0px;
+ background: none;
+}
+
.k-btn-sitebar button {
margin-top: -5px;
}
@@ -800,7 +811,7 @@
white-space: nowrap;
}
*/
-.k-sn-mainpanel .x-btn button {
+.k-sn-mainpanel .x-btn button,.k-sn-mainpanel button {
font: 13px 'Ubuntu', arial;
border: 2px solid #CCCCCC;
cursor: pointer;
@@ -815,6 +826,7 @@
vertical-align: middle;
line-height: 2em !important;
height: 26px !important;
+ font-weight: bold;
/*
font-size:small;
cursor: pointer;
@@ -822,13 +834,13 @@
padding-left: 25px !important; */
}
-.k-sn-mainpanel .x-btn button:hover {
+.k-sn-mainpanel .x-btn button:hover,.k-sn-mainpanel button:hover {
border: 2px orange solid;
background: #f0f0f0;
color: #855585;
}
-.k-sn-mainpanel .x-btn button:active {
+.k-sn-mainpanel .x-btn button:active,.k-sn-mainpanel button:active {
border-top-color: #ffffff;
background: #ffffff;
}
@@ -923,6 +935,7 @@
font-size: 16px;
color: #784421;
}
+
.k-footer-license-label-title {
margin-right: 5px;
color: #280b0b;
Modified: trunk/src/main/java/cc/kune/core/public/ws.html
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.html 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/core/public/ws.html 2011-02-21 04:32:11 UTC (rev 1257)
@@ -8,13 +8,13 @@
<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="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.hasCopyToClipboard" content="false" />
-<meta name="hablar.hasLogger" 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" />
@@ -22,7 +22,7 @@
<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="300px" />
+<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">
Modified: trunk/src/main/java/cc/kune/gspace/client/resources/wsArmor.css
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/resources/wsArmor.css 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/gspace/client/resources/wsArmor.css 2011-02-21 04:32:11 UTC (rev 1257)
@@ -145,8 +145,8 @@
.entityToolsNorth span {
color: #a05a2c;
- font-size: 20px;
- font-weight: bold;
+ /* font-size: 20px;
+ font-weight: bold; */
}
.entityToolsCenter {
Modified: trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -98,8 +98,8 @@
@Override
public void setContentGotoPublicUrl(final String publicUrl) {
- frame.setUrl("about:blank");
- // frame.setUrl(publicUrl);
+ // frame.setUrl("about:blank");
+ frame.setUrl(publicUrl);
}
}
Modified: trunk/src/main/java/cc/kune/wave/KuneWave.gwt.xml
===================================================================
--- trunk/src/main/java/cc/kune/wave/KuneWave.gwt.xml 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/wave/KuneWave.gwt.xml 2011-02-21 04:32:11 UTC (rev 1257)
@@ -7,8 +7,6 @@
<inherits name='com.google.gwt.user.User' />
<inherits name="com.google.gwt.event.EventBase" />
- <!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome' /> -->
-
<inherits name='com.glines.socketio.client.Client' />
<inherits name='com.google.gwt.json.JSON' />
<inherits name='com.google.gwt.websockets.WebSockets' />
Modified: trunk/src/main/java/cc/kune/wave/client/WaveClientTester.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveClientTester.java 2011-02-18 01:00:51 UTC (rev 1256)
+++ trunk/src/main/java/cc/kune/wave/client/WaveClientTester.java 2011-02-21 04:32:11 UTC (rev 1257)
@@ -25,17 +25,14 @@
@Inject
public WaveClientTester(final WsArmor wsarmor, final Session session) {
this.wsarmor = wsarmor;
- if (session.isLogged()) {
- doLogin(session.getCurrentUserInfo().getChatName(), session.getCurrentUserInfo().getChatPassword());
- }
- session.onUserSignIn(new UserSignInHandler() {
+ session.onUserSignIn(true, new UserSignInHandler() {
@Override
public void onUserSignIn(final UserSignInEvent event) {
doLogin(event.getUserInfo().getChatName(), event.getUserInfo().getChatPassword());
}
});
- session.onUserSignOut(new UserSignOutHandler() {
+ session.onUserSignOut(true, new UserSignOutHandler() {
@Override
public void onUserSignOut(final UserSignOutEvent event) {
// TODO Auto-generated method stub
1
0
r1256 - in tags: . 0.0.7 0.0.7/src/main/java/cc/kune/wave/server
by Vicente J. Ruiz Jurado 18 Feb '11
by Vicente J. Ruiz Jurado 18 Feb '11
18 Feb '11
Author: vjrj_
Date: 2011-02-18 02:00:51 +0100 (Fri, 18 Feb 2011)
New Revision: 1256
Added:
tags/0.0.7/
tags/0.0.7/.classpath
tags/0.0.7/.project
tags/0.0.7/pom.xml
tags/0.0.7/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java
Removed:
tags/0.0.7/.classpath
tags/0.0.7/.project
tags/0.0.7/pom.xml
tags/0.0.7/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java
Log:
0.0.7
Copied: tags/0.0.7 (from rev 1254, trunk)
Deleted: tags/0.0.7/.classpath
===================================================================
--- trunk/.classpath 2011-02-17 17:31:43 UTC (rev 1254)
+++ tags/0.0.7/.classpath 2011-02-18 01:00:51 UTC (rev 1256)
@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/>
- <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.0.7/WEB-INF/classes"/>
- <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/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/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/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-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/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"/>
- <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.2/commons-collections-3.2.jar" sourcepath="M2_REPO/commons-collections/commons-collections/3.2/commons-collections-3.2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-fileupload/commons-fileupload/1.1.1/commons-fileupload-1.1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.2/commons-io-1.2.jar" sourcepath="M2_REPO/commons-io/commons-io/1.2/commons-io-1.2-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/net/sourceforge/htmlunit/crawl_htmlunit/r5662-gae/crawl_htmlunit-r5662-gae.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"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar" sourcepath="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/calclab/emite/emite/r1694/emite-r1694.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/calclab/emite/emite-proxy/0.1/emite-proxy-0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/net/sf/ezmorph/ezmorph/1.0.3/ezmorph-1.0.3.jar" sourcepath="M2_REPO/net/sf/ezmorph/ezmorph/1.0.3/ezmorph-1.0.3-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/freemarker/freemarker/2.3.8/freemarker-2.3.8.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/googlecode/gwt/inject/gin/r137/gin-r137.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/guava/guava-gwt/r07/guava-gwt-r07.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/inject/guice/3.0-rc2/guice-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/guice/3.0-rc2/guice-3.0-rc2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-assisted-inject/2.0/guice-assisted-inject-2.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-servlet/3.0-rc2/guice-servlet-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-servlet/3.0-rc2/guice-servlet-3.0-rc2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/jhickman/web/gwt/gwt-customuibinder/0.1/gwt-customuibinder-0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/adamtacy/gwt-fx/r464/gwt-fx-r464.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-gin/1.0-r137/gwt-gin-1.0-r137.jar"/>
- <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.0/gwt-util-src-0.3.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/allen_sauer/gwt/voices/gwt-voices/gwt-voices/1.6.0/gwt-voices-1.6.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"/>
- <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"/>
- <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-mvp-client/0.5/gwtp-mvp-client-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-mvp-client/0.5/gwtp-mvp-client-0.5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-processors/0.5/gwtp-processors-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-processors/0.5/gwtp-processors-0.5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-tester/0.5/gwtp-tester-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-tester/0.5/gwtp-tester-0.5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/extjs/gxt/2.2.1/gxt-2.2.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/jhickman/web/gwt/gxt-uibinder/0.6/gxt-uibinder-0.6.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.0.20070617/h2-1.0.20070617.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/calclab/emite/hablar/r1694/hablar-r1694.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar" sourcepath="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-c3p0/3.3.1.GA/hibernate-c3p0-3.3.1.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-c3p0/3.3.1.GA/hibernate-c3p0-3.3.1.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.3.0.ga/hibernate-commons-annotations-3.3.0.ga.jar" sourcepath="M2_REPO/org/hibernate/hibernate-commons-annotations/3.3.0.ga/hibernate-commons-annotations-3.3.0.ga-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-core/3.3.1.GA/hibernate-core-3.3.1.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-core/3.3.1.GA/hibernate-core-3.3.1.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-search/3.1.0.GA/hibernate-search-3.1.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-search/3.1.0.GA/hibernate-search-3.1.0.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-tools/3.2.3.GA/hibernate-tools-3.2.3.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-validator/3.1.0.GA/hibernate-validator-3.1.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-validator/3.1.0.GA/hibernate-validator-3.1.0.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/jcl-over-slf4j/1.6.1/jcl-over-slf4j-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/jcl-over-slf4j/1.6.1/jcl-over-slf4j-1.6.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/codehaus/jettison/jettison/1.0-RC2/jettison-1.0-RC2.jar" sourcepath="M2_REPO/org/codehaus/jettison/jettison/1.0-RC2/jettison-1.0-RC2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/jmagick/jmagick/6.2.6-0/jmagick-6.2.6-0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jruby/jruby-complete/1.2.0/jruby-complete-1.2.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jruby/rack/jruby-rack/0.9.4/jruby-rack-0.9.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/net/sf/json-lib/json-lib/2.1/json-lib-2.1-jdk15.jar" sourcepath="M2_REPO/net/sf/json-lib/json-lib/2.1/json-lib-2.1-jdk15-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/net/sourceforge/findbugs/jsr-305/v0r47/jsr-305-v0r47.jar" sourcepath="M2_REPO/net/sourceforge/findbugs/jsr-305/v0r47/jsr-305-v0r47-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/jtidy/r8-20060801/jtidy-r8-20060801.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jukito/jukito/1.0/jukito-1.0.jar" sourcepath="M2_REPO/org/jukito/jukito/1.0/jukito-1.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/4.8.1/junit-4.8.1.jar" sourcepath="M2_REPO/junit/junit/4.8.1/junit-4.8.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/liquibase/liquibase-core/1.7.0/liquibase-core-1.7.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/liquibase/liquibase-plugin/1.7.0.0/liquibase-plugin-1.7.0.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.16/log4j-1.2.16.jar" sourcepath="M2_REPO/log4j/log4j/1.2.16/log4j-1.2.16-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" sourcepath="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.4.0/lucene-core-2.4.0.jar" sourcepath="M2_REPO/org/apache/lucene/lucene-core/2.4.0/lucene-core-2.4.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-model/2.0/maven-model-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-model/2.0/maven-model-2.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0-sources.jar"/>
- <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/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/mysql/mysql-connector-java/5.1.13/mysql-connector-java-5.1.13.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-gwt/0.3.1/proto-gwt-0.3.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jivesoftware/smack/smack/3.0.4/smack-3.0.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jivesoftware/smackx/smackx/3.0.4/smackx-3.0.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jivesoftware/smackx/debugger/smackx-debugger/3.0.4/smackx-debugger-3.0.4.jar"/>
- <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/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-custom/0.3.6/waveinabox-server-custom-0.3.6.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="target/generated-sources/apt" including="**/*.java"/> <classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
-</classpath>
\ No newline at end of file
Copied: tags/0.0.7/.classpath (from rev 1255, trunk/.classpath)
===================================================================
--- tags/0.0.7/.classpath (rev 0)
+++ tags/0.0.7/.classpath 2011-02-18 01:00:51 UTC (rev 1256)
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry including="**/*.java" kind="src" path="src/main/java"/>
+ <classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
+ <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/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/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/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-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/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"/>
+ <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.2/commons-collections-3.2.jar" sourcepath="M2_REPO/commons-collections/commons-collections/3.2/commons-collections-3.2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-fileupload/commons-fileupload/1.1.1/commons-fileupload-1.1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.2/commons-io-1.2.jar" sourcepath="M2_REPO/commons-io/commons-io/1.2/commons-io-1.2-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/net/sourceforge/htmlunit/crawl_htmlunit/r5662-gae/crawl_htmlunit-r5662-gae.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"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar" sourcepath="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/calclab/emite/emite/r1694/emite-r1694.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/calclab/emite/emite-proxy/0.1/emite-proxy-0.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/net/sf/ezmorph/ezmorph/1.0.3/ezmorph-1.0.3.jar" sourcepath="M2_REPO/net/sf/ezmorph/ezmorph/1.0.3/ezmorph-1.0.3-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/freemarker/freemarker/2.3.8/freemarker-2.3.8.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/guava/guava-gwt/r07/guava-gwt-r07.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/inject/guice/3.0-rc2/guice-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/guice/3.0-rc2/guice-3.0-rc2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-assisted-inject/2.0/guice-assisted-inject-2.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-servlet/3.0-rc2/guice-servlet-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-servlet/3.0-rc2/guice-servlet-3.0-rc2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/jhickman/web/gwt/gwt-customuibinder/0.1/gwt-customuibinder-0.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/adamtacy/gwt-fx/r464/gwt-fx-r464.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-gin/1.0-r137/gwt-gin-1.0-r137.jar"/>
+ <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-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.0/gwt-util-src-0.3.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/allen_sauer/gwt/voices/gwt-voices/gwt-voices/1.6.0/gwt-voices-1.6.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"/>
+ <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"/>
+ <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-mvp-client/0.5/gwtp-mvp-client-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-mvp-client/0.5/gwtp-mvp-client-0.5-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-processors/0.5/gwtp-processors-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-processors/0.5/gwtp-processors-0.5-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-tester/0.5/gwtp-tester-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-tester/0.5/gwtp-tester-0.5-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/extjs/gxt/2.2.1/gxt-2.2.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/jhickman/web/gwt/gxt-uibinder/0.6/gxt-uibinder-0.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.0.20070617/h2-1.0.20070617.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/calclab/emite/hablar/r1694/hablar-r1694.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar" sourcepath="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-c3p0/3.3.1.GA/hibernate-c3p0-3.3.1.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-c3p0/3.3.1.GA/hibernate-c3p0-3.3.1.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.3.0.ga/hibernate-commons-annotations-3.3.0.ga.jar" sourcepath="M2_REPO/org/hibernate/hibernate-commons-annotations/3.3.0.ga/hibernate-commons-annotations-3.3.0.ga-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-core/3.3.1.GA/hibernate-core-3.3.1.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-core/3.3.1.GA/hibernate-core-3.3.1.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-search/3.1.0.GA/hibernate-search-3.1.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-search/3.1.0.GA/hibernate-search-3.1.0.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-tools/3.2.3.GA/hibernate-tools-3.2.3.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-validator/3.1.0.GA/hibernate-validator-3.1.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-validator/3.1.0.GA/hibernate-validator-3.1.0.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/jcl-over-slf4j/1.6.1/jcl-over-slf4j-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/jcl-over-slf4j/1.6.1/jcl-over-slf4j-1.6.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/codehaus/jettison/jettison/1.0-RC2/jettison-1.0-RC2.jar" sourcepath="M2_REPO/org/codehaus/jettison/jettison/1.0-RC2/jettison-1.0-RC2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jmagick/jmagick/6.2.6-0/jmagick-6.2.6-0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jruby/jruby-complete/1.2.0/jruby-complete-1.2.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jruby/rack/jruby-rack/0.9.4/jruby-rack-0.9.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/net/sf/json-lib/json-lib/2.1/json-lib-2.1-jdk15.jar" sourcepath="M2_REPO/net/sf/json-lib/json-lib/2.1/json-lib-2.1-jdk15-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/net/sourceforge/findbugs/jsr-305/v0r47/jsr-305-v0r47.jar" sourcepath="M2_REPO/net/sourceforge/findbugs/jsr-305/v0r47/jsr-305-v0r47-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/jtidy/r8-20060801/jtidy-r8-20060801.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jukito/jukito/1.0/jukito-1.0.jar" sourcepath="M2_REPO/org/jukito/jukito/1.0/jukito-1.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.8.1/junit-4.8.1.jar" sourcepath="M2_REPO/junit/junit/4.8.1/junit-4.8.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/liquibase/liquibase-core/1.7.0/liquibase-core-1.7.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/liquibase/liquibase-plugin/1.7.0.0/liquibase-plugin-1.7.0.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.16/log4j-1.2.16.jar" sourcepath="M2_REPO/log4j/log4j/1.2.16/log4j-1.2.16-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" sourcepath="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.4.0/lucene-core-2.4.0.jar" sourcepath="M2_REPO/org/apache/lucene/lucene-core/2.4.0/lucene-core-2.4.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-model/2.0/maven-model-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-model/2.0/maven-model-2.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0-sources.jar"/>
+ <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/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/mysql/mysql-connector-java/5.1.13/mysql-connector-java-5.1.13.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-gwt/0.3.1/proto-gwt-0.3.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jivesoftware/smack/smack/3.0.4/smack-3.0.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jivesoftware/smackx/smackx/3.0.4/smackx-3.0.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jivesoftware/smackx/debugger/smackx-debugger/3.0.4/smackx-debugger-3.0.4.jar"/>
+ <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/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-custom/0.3.6/waveinabox-server-custom-0.3.6.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 including="**/*.java" kind="src" path="target/generated-sources/apt"/>
+ <classpathentry kind="lib" path="/home/vjrj/bin/eclipse64-hel-new/plugins/com.google.gwt.eclipse.sdkbundle.2.1.1_2.1.1.v201012170127/gwt-2.1.1/gwt-user.jar">
+ <attributes>
+ <attribute name="javadoc_location" value="file:/home/vjrj/bin/eclipse64-hel-new/plugins/com.google.gwt.eclipse.sdkbundle.2.1.1_2.1.1.v201012170127/gwt-2.1.1/doc/javadoc/"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="lib" path="/home/vjrj/bin/eclipse64-hel-new/plugins/com.google.gwt.eclipse.sdkbundle.2.1.1_2.1.1.v201012170127/gwt-2.1.1/gwt-dev.jar">
+ <attributes>
+ <attribute name="javadoc_location" value="file:/home/vjrj/bin/eclipse64-hel-new/plugins/com.google.gwt.eclipse.sdkbundle.2.1.1_2.1.1.v201012170127/gwt-2.1.1/doc/javadoc/"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="target/kune-0.0.7/WEB-INF/classes"/>
+</classpath>
Deleted: tags/0.0.7/.project
===================================================================
--- trunk/.project 2011-02-17 17:31:43 UTC (rev 1254)
+++ tags/0.0.7/.project 2011-02-18 01:00:51 UTC (rev 1256)
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>kune</name>
- <comment>kune free/open/libre collaboration platform. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/org.eclipse.wst.common.project.facet.core.builder (2).launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/org.eclipse.wst.validation.validationbuilder (3).launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/com.google.gwt.eclipse.core.gwtProjectValidator (2).launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/org.eclipse.wst.validation.validationbuilder (4).launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.validation.validationbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>edu.umd.cs.findbugs.plugin.eclipse.findbugsBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
- <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
- <nature>org.eclipse.ajdt.ui.ajnature</nature>
- <nature>com.google.gwt.eclipse.core.gwtNature</nature>
- <nature>edu.umd.cs.findbugs.plugin.eclipse.findbugsNature</nature>
- </natures>
-</projectDescription>
Copied: tags/0.0.7/.project (from rev 1255, trunk/.project)
===================================================================
--- tags/0.0.7/.project (rev 0)
+++ tags/0.0.7/.project 2011-02-18 01:00:51 UTC (rev 1256)
@@ -0,0 +1,74 @@
+<projectDescription>
+ <name>kune</name>
+ <comment>kune free/open/libre collaboration platform. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value><project>/.externalToolBuilders/org.eclipse.wst.common.project.facet.core.builder (2).launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value><project>/.externalToolBuilders/org.eclipse.wst.validation.validationbuilder (3).launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value><project>/.externalToolBuilders/com.google.gwt.eclipse.core.gwtProjectValidator (2).launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
+ </buildCommand>
+ <buildCommand>
+ <name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value><project>/.externalToolBuilders/org.eclipse.wst.validation.validationbuilder (4).launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>edu.umd.cs.findbugs.plugin.eclipse.findbugsBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ <nature>org.eclipse.ajdt.ui.ajnature</nature>
+ <nature>com.google.gwt.eclipse.core.gwtNature</nature>
+ <nature>edu.umd.cs.findbugs.plugin.eclipse.findbugsNature</nature>
+ </natures>
+</projectDescription>
\ No newline at end of file
Deleted: tags/0.0.7/pom.xml
===================================================================
--- trunk/pom.xml 2011-02-17 17:31:43 UTC (rev 1254)
+++ tags/0.0.7/pom.xml 2011-02-18 01:00:51 UTC (rev 1256)
@@ -1,1108 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>cc.kune</groupId>
- <artifactId>kune</artifactId>
- <packaging>jar</packaging>
- <version>0.0.7</version>
- <name>kune</name>
- <description> kune free/open/libre collaboration platform </description>
- <url>http://kune.ourproject.org</url>
- <properties>
- <!-- Available versions: http://repo1.maven.org/maven2/com/google/gwt/gwt-dev/ -->
- <gwt.version>2.1.1</gwt.version>
- <maven.compiler.source>1.6</maven.compiler.source>
- <maven.compiler.target>1.6</maven.compiler.target>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <slf4j.version>1.6.1</slf4j.version>
- <openjpa.version>2.0.1</openjpa.version>
- </properties>
- <repositories>
- <repository>
- <id>kune-maven</id>
- <url>http://kune.ourproject.org/mavenrepo/</url>
- </repository>
- <repository>
- <id>guice-maven</id>
- <name>guice maven</name>
- <url>http://guice-maven.googlecode.com/svn/trunk</url>
- </repository>
- <repository>
- <id>Codehaus Snapshots</id>
- <url>http://snapshots.repository.codehaus.org/</url>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- <releases>
- <enabled>false</enabled>
- </releases>
- </repository>
- <repository>
- <id>jboss-public-repository-group</id>
- <name>JBoss Public Maven Repository Group</name>
- <url>https://repository.jboss.org/nexus/content/groups/public-jboss/
- </url>
- <layout>default</layout>
- <releases>
- <enabled>true</enabled>
- <updatePolicy>never</updatePolicy>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- <updatePolicy>never</updatePolicy>
- </snapshots>
- </repository>
- <repository>
- <id>mvp4g.googlecode.releases</id>
- <name>Releases Repository for Mvp4g</name>
- <url>http://mvp4g.googlecode.com/svn/maven2/releases/</url>
- </repository>
- <repository>
- <id>ext-gxt</id>
- <name>ext-gxt at jahia</name>
- <url>http://maven.jahia.org/maven2/</url>
- </repository>
- <repository>
- <id>ext-gxt</id>
- <name>ext-gxt at jahia</name>
- <url>http://maven.jahia.org/maven2/</url>
- </repository>
- <repository>
- <id>cobogw</id>
- <name>Cobogw repository at googlecode</name>
- <url>http://cobogw.googlecode.com/svn/maven2</url>
- </repository>
- <repository>
- <id>gwt-repo</id>
- <url>http://google-web-toolkit.googlecode.com/svn/2.1.0/gwt/maven/</url>
- <name>Google Web Toolkit Repository</name>
- </repository>
- <repository>
- <id>gwt-maven-rewraps</id>
- <url>http://gwt-maven-rewraps.googlecode.com/hg/</url>
- </repository>
- <!-- cc -->
- <repository>
- <id>dyndns-repo</id>
- <url>http://maven.dyndns.org/2</url>
- </repository>
- <repository>
- <id>google-maven-snapshot-repository</id>
- <name>Google Maven Snapshot Repository</name>
- <url>https://oss.sonatype.org/content/repositories/google-snapshots/
- </url>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </repository>
- <repository>
- <id>openqa.org</id>
- <name>Openqa Release Repository</name>
- <url>http://archiva.openqa.org/repository/releases</url>
- <layout>default</layout>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- </releases>
- </repository>
- <repository>
- <id>openqa.org snapshots</id>
- <name>Openqa Snapshot Repository</name>
- <url>http://archiva.openqa.org/repository/snapshots</url>
- <layout>default</layout>
- <snapshots>
- <enabled>true</enabled>
- <updatePolicy>daily</updatePolicy>
- <checksumPolicy>ignore</checksumPolicy>
- </snapshots>
- <releases>
- <enabled>false</enabled>
- </releases>
- </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>
- </repositories>
- <pluginRepositories>
- <!-- cc -->
- <pluginRepository>
- <id>jboss-public-repository-group</id>
- <name>JBoss Public Maven Repository Group</name>
- <url>https://repository.jboss.org/nexus/content/groups/public-jboss/
- </url>
- <layout>default</layout>
- <releases>
- <enabled>true</enabled>
- <updatePolicy>never</updatePolicy>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- <updatePolicy>never</updatePolicy>
- </snapshots>
- </pluginRepository>
- <!-- cc -->
- <!-- <pluginRepository> <id>gwt-maven</id> <url>http://gwt-maven.googlecode.com/svn/trunk/mavenrepo</url>
- </pluginRepository> -->
- <pluginRepository>
- <id>Codehaus Snapshots</id>
- <url>http://snapshots.repository.codehaus.org/</url>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- <releases>
- <enabled>true</enabled> <!-- Workaround for MNG-2974, see note below -->
- </releases>
- </pluginRepository>
- <pluginRepository>
- <id>maven2-repository.dev.java.net</id>
- <name>Java.net Repository for Maven</name>
- <url>http://download.java.net/maven/2/</url>
- <layout>default</layout>
- </pluginRepository>
- <pluginRepository>
- <id>gwt-plugin-repo</id>
- <url>http://google-web-toolkit.googlecode.com/svn/2.1.0/gwt/maven/</url>
- <name>Google Web Toolkit Plugin Repository</name>
- </pluginRepository>
- <pluginRepository>
- <id>onejar-maven-plugin.googlecode.com</id>
- <url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
- </pluginRepository>
- </pluginRepositories>
- <dependencies>
- <dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-servlet</artifactId>
- <version>${gwt.version}</version>
- </dependency>
- <dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-user</artifactId>
- <version>${gwt.version}</version>
- <scope>provided</scope>
- </dependency>
- <!-- guice -->
- <dependency>
- <groupId>com.google.inject</groupId>
- <artifactId>guice</artifactId>
- <!-- <version>2.1-SNAPSHOT-r1160</version> -->
- <version>3.0-rc2</version>
- </dependency>
- <dependency>
- <groupId>com.googlecode.gwt.inject</groupId>
- <artifactId>gin</artifactId>
- <version>r137</version>
- </dependency>
- <dependency>
- <groupId>com.google.inject.extensions</groupId>
- <artifactId>guice-servlet</artifactId>
- <version>3.0-rc2</version>
- </dependency>
- <dependency>
- <groupId>com.google.inject.extensions</groupId>
- <artifactId>guice-persist</artifactId>
- <version>3.0-rc2</version>
- </dependency>
- <dependency>
- <groupId>com.extjs</groupId>
- <artifactId>gxt</artifactId>
- <version>2.2.1</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.cobogw.gwt</groupId>
- <artifactId>cobogw</artifactId>
- <version>1.3.1</version>
- </dependency>
- <dependency>
- <groupId>com.gwtplatform</groupId>
- <artifactId>gwtp-all</artifactId>
- <version>0.5</version>
- <exclusions>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.adamtacy</groupId>
- <artifactId>gwt-fx</artifactId>
- <version>r464</version>
- </dependency>
- <dependency>
- <groupId>com.jhickman.web.gwt</groupId>
- <artifactId>gwt-customuibinder</artifactId>
- <version>0.1</version>
- </dependency>
- <dependency>
- <groupId>com.jhickman.web.gwt</groupId>
- <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>
- </dependency>
- <dependency>
- <groupId>com.allen_sauer.gwt.voices.gwt-voices</groupId>
- <artifactId>gwt-voices</artifactId>
- <version>1.6.0</version>
- </dependency>
- <!-- utilities -->
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.14</version>
- </dependency>
- <dependency>
- <groupId>net.sf.dozer</groupId>
- <artifactId>dozer</artifactId>
- <version>4.0</version>
- </dependency>
- <!-- <dependency> <groupId>com.calclab</groupId> <artifactId>suco</artifactId>
- <version>0.6.5</version> </dependency> -->
- <dependency>
- <groupId>jmagick</groupId>
- <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>
- <artifactId>emite</artifactId>
- <version>r1694</version>
- </dependency>
- <dependency>
- <groupId>com.calclab.emite</groupId>
- <artifactId>emite-proxy</artifactId>
- <version>0.1</version>
- </dependency>
- <dependency>
- <groupId>com.calclab.emite</groupId>
- <artifactId>hablar</artifactId>
- <version>r1694</version>
- </dependency>
- <dependency>
- <groupId>org.jivesoftware.smack</groupId>
- <artifactId>smack</artifactId>
- <version>3.0.4</version>
- </dependency>
- <dependency>
- <groupId>org.jivesoftware.smackx</groupId>
- <artifactId>smackx</artifactId>
- <version>3.0.4</version>
- </dependency>
- <dependency>
- <groupId>org.jivesoftware.smackx.debugger</groupId>
- <artifactId>smackx-debugger</artifactId>
- <version>3.0.4</version>
- </dependency>
- <!-- mysql -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.13</version>
- </dependency>
- <!-- hibernate JPA -->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>3.3.1.GA</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-validator</artifactId>
- <version>3.1.0.GA</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-annotations</artifactId>
- <version>3.4.0.GA</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-commons-annotations</artifactId>
- <version>3.3.0.ga</version>
- <!-- http://stackoverflow.com/questions/882338/hibernate-preinsertevent-getsourc… -->
- <exclusions>
- <exclusion>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <!-- <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-ehcache</artifactId> -->
- <!-- <version>3.3.1.GA</version> </dependency> -->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-search</artifactId>
- <version>3.1.0.GA</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-entitymanager</artifactId>
- <version>3.4.0.GA</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-tools</artifactId>
- <version>3.2.3.GA</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-c3p0</artifactId>
- <version>3.3.1.GA</version>
- </dependency>
- <!-- <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId>
- <version>0.9.1.2</version> </dependency> -->
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <!-- wave use 2.5 -->
- <version>2.5</version>
- </dependency>
- <!-- <dependency> <groupId>com.wideplay</groupId> <artifactId>warp-persist</artifactId>
- <version>2.0-SNAPSHOT</version> </dependency> -->
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.16</version>
- <!-- =roo -->
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>${slf4j.version}</version>
- <!-- =roo -->
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>jcl-over-slf4j</artifactId>
- <version>${slf4j.version}</version>
- <!-- =roo -->
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>${slf4j.version}</version>
- <!-- =roo -->
- </dependency>
- <!-- REST: xml and json (stax) -->
- <dependency>
- <groupId>com.thoughtworks.xstream</groupId>
- <artifactId>xstream</artifactId>
- <version>1.2.2</version>
- </dependency>
- <dependency>
- <groupId>stax</groupId>
- <artifactId>stax-api</artifactId>
- <version>1.0.1</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jettison</groupId>
- <artifactId>jettison</artifactId>
- <version>1.0-RC2</version>
- </dependency>
- <dependency>
- <groupId>net.sf.json-lib</groupId>
- <artifactId>json-lib</artifactId>
- <version>2.1</version>
- <classifier>jdk15</classifier>
- </dependency>
- <dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <version>3.2</version>
- </dependency>
- <!-- File upload -->
- <dependency>
- <groupId>commons-beanutils</groupId>
- <artifactId>commons-beanutils</artifactId>
- <version>1.7.0</version>
- </dependency>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>1.2</version>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.1</version>
- </dependency>
- <dependency>
- <groupId>commons-fileupload</groupId>
- <artifactId>commons-fileupload</artifactId>
- <version>1.1.1</version>
- </dependency>
- <!-- db upgrades -->
- <dependency>
- <groupId>org.liquibase</groupId>
- <artifactId>liquibase-core</artifactId>
- <version>1.7.0</version>
- </dependency>
- <dependency>
- <groupId>org.liquibase</groupId>
- <artifactId>liquibase-plugin</artifactId>
- <version>1.7.0.0</version>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.5</version>
- <scope>provided</scope>
- </dependency>
- <!-- testing dependencies -->
- <!-- <dependency> -->
- <!-- <groupId>org.mockito</groupId> -->
- <!-- <artifactId>mockito-all</artifactId> -->
- <!-- <scope>test</scope> -->
- <!-- <version>1.6</version> -->
- <!-- </dependency> -->
- <dependency>
- <groupId>org.jukito</groupId>
- <artifactId>jukito</artifactId>
- <version>1.0</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- <version>1.0.20070617</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.1</version>
- <!-- =roo -->
- <scope>test</scope>
- </dependency>
- <!-- <dependency> -->
- <!-- <groupId>org.openqa.selenium.client-drivers</groupId> -->
- <!-- <artifactId>selenium-java-client-driver</artifactId> -->
- <!-- <version>1.0-beta-1</version> -->
- <!-- <scope>test</scope> -->
- <!-- </dependency> -->
- <!-- public side -->
- <dependency>
- <groupId>org.jruby.rack</groupId>
- <artifactId>jruby-rack</artifactId>
- <!-- <version>1.0.3</version> -->
- <version>0.9.4</version>
- </dependency>
- <!-- wave -->
- <dependency>
- <groupId>org.waveprotocol</groupId>
- <artifactId>waveinabox-server-custom</artifactId>
- <version>0.3.6</version>
- </dependency>
- <dependency>
- <groupId>org.waveprotocol</groupId>
- <artifactId>proto-gwt</artifactId>
- <version>0.3.1</version>
- </dependency>
- <dependency>
- <groupId>org.waveprotocol</groupId>
- <artifactId>gwt-util-src</artifactId>
- <version>0.3.0</version>
- </dependency>
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava-gwt</artifactId>
- <version>r07</version>
- </dependency>
- <!-- From here necessary as .java not included in waveinabox-serve.jar -->
- <!-- <dependency> -->
- <!-- <groupId>org.waveprotocol</groupId> -->
- <!-- <artifactId>box-src</artifactId> -->
- <!-- <version>0.3.0</version> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>org.waveprotocol</groupId> -->
- <!-- <artifactId>model-src</artifactId> -->
- <!-- <version>0.3.0</version> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>org.waveprotocol</groupId> -->
- <!-- <artifactId>client-src</artifactId> -->
- <!-- <version>0.3.0</version> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>org.waveprotocol</groupId> -->
- <!-- <artifactId>client-common-src</artifactId> -->
- <!-- <version>0.3.0</version> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>org.waveprotocol</groupId> -->
- <!-- <artifactId>common-src</artifactId> -->
- <!-- <version>0.3.0</version> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>org.waveprotocol</groupId> -->
- <!-- <artifactId>util-src</artifactId> -->
- <!-- <version>0.3.0</version> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>org.waveprotocol</groupId> -->
- <!-- <artifactId>concurrencycontrol-src</artifactId> -->
- <!-- <version>0.3.0</version> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>org.waveprotocol</groupId> -->
- <!-- <artifactId>client-scheduler-src</artifactId> -->
- <!-- <version>0.3.0</version> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>org.waveprotocol</groupId> -->
- <!-- <artifactId>media-src</artifactId> -->
- <!-- <version>0.3.0</version> -->
- <!-- </dependency> -->
- <!-- to here -->
- <dependency>
- <groupId>net.sourceforge.findbugs</groupId>
- <artifactId>jsr-305</artifactId>
- <version>v0r47</version>
- </dependency>
- <!-- end wave -->
- <dependency>
- <groupId>commons-cli</groupId>
- <artifactId>commons-cli</artifactId>
- <version>1.2</version>
- <type>jar</type>
- </dependency>
- <dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <version>1.4</version>
- <type>jar</type>
- </dependency>
- </dependencies>
- <!-- <dependency> -->
- <!-- <groupId>dom4j</groupId> -->
- <!-- <artifactId>dom4j</artifactId> -->
- <!-- <version>1.6.1</version> -->
- <!-- <type>jar</type> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>com.google.code.guice</groupId> -->
- <!-- <artifactId>guice-assistedinject</artifactId> -->
- <!-- <version>2.0</version> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>jline<!/groupId> -->
- <!-- <artifactId>jline</artifactId> -->
- <!-- <version>0.9.94</version> -->
- <!-- <type>jar</type> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>org.gnu.inet</groupId> -->
- <!-- <artifactId>libidn</artifactId> -->
- <!-- <version>1.15</version> -->
- <!-- <type>jar</type> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>com.google.protobuf</groupId> -->
- <!-- <artifactId>protobuf-java</artifactId> -->
- <!-- <version>2.3.0</version> -->
- <!-- <type>jar</type> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>xpp3</groupId> -->
- <!-- <artifactId>xpp3</artifactId> -->
- <!-- <version>1.1.4c</version> -->
- <!-- <type>jar</type> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>xpp3</groupId> -->
- <!-- <artifactId>xpp3_xpath</artifactId> -->
- <!-- <version>1.1.4c</version> -->
- <!-- <type>jar</type> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>aopalliance</groupId> -->
- <!-- <artifactId>aopalliance</artifactId> -->
- <!-- <version>1.0</version> -->
- <!-- <type>jar</type> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>org.wave-protocol</groupId> -->
- <!-- <artifactId>xmpp</artifactId> -->
- <!-- <version>1.0.0</version> -->
- <!-- </dependency> -->
- <!-- <dependency> -->
- <!-- <groupId>org.wave-protocol</groupId> -->
- <!-- <artifactId>whack</artifactId> -->
- <!-- <version>1.0.0</version> -->
- <!-- </dependency> -->
- <distributionManagement>
- <repository>
- <id>kune.ourproject.org</id>
- <url>scpexe://kune.ourproject.org/home/groups/kune/htdocs/mavenrepo/ </url>
- </repository>
- </distributionManagement>
- <issueManagement>
- <system>kune issues list at ourproject.org</system>
- <url>http://kune.ourproject.org/issues/</url>
- </issueManagement>
- <developers>
- <developer>
- <id>dani</id>
- <name>Daniel Gómez Blasco</name>
- <email>danigb(a)gmail.com</email>
- </developer>
- <developer>
- <name>Samer Hassan</name>
- <email>samer2004(a)gmail.com</email>
- </developer>
- <developer>
- <name>Vicente J. Ruiz Jurado</name>
- <email>vjrj(a)ourproject.org</email>
- </developer>
- </developers>
- <scm>
- <url>svn://scm.ourproject.org/svnroot/kune/trunk</url>
- </scm>
- <build>
- <plugins>
- <plugin>
- <!-- =roo -->
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.1-beta-1</version>
- <!-- <configuration> <webXml>target/web.xml</webXml> </configuration> -->
- </plugin>
- <plugin>
- <!-- =roo -->
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.1</version>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- <!-- Uncomment and run mvn with -X -e if we have same compile problems
- <compilerArgument>-verbose</compilerArgument> <fork>true</fork> <verbose>true</verbose> -->
- </configuration>
- </plugin>
- <plugin>
- <!-- =roo -->
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.4.2</version>
- <configuration>
- <encoding>UTF-8</encoding>
- </configuration>
- </plugin>
- <plugin>
- <!-- =roo + custom -->
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.5</version>
- <configuration>
- <excludes>
- <exclude>**/*_Roo_*</exclude>
- </excludes>
- <forkMode>pertest</forkMode>
- <!-- Skip the normal tests, we'll run them in the integration-test
- phase -->
- <skip>true</skip>
- </configuration>
- <executions>
- <execution>
- <phase>integration-test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <skip>false</skip>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <!-- =roo -->
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <configuration>
- <descriptorRefs>
- <descriptorRef>jar-with-dependencies</descriptorRef>
- </descriptorRefs>
- <dependencySets>
- <dependencySet>
- <scope>runtime</scope>
- <unpackOptions>
- <excludes>
- <exclude>**/gxt/**</exclude>
- <exclude>**/extjs/**</exclude>
- <exclude>**extjs**</exclude>
- <exclude>**gxt**</exclude>
- </excludes>
- </unpackOptions>
- </dependencySet>
- </dependencySets>
- </configuration>
- </plugin>
- <plugin>
- <!-- =roo sin spring executions -->
- <artifactId>maven-eclipse-plugin</artifactId>
- <version>2.8</version>
- <configuration>
- <downloadSources>true</downloadSources>
- <downloadJavadocs>false</downloadJavadocs>
- <wtpversion>2.0</wtpversion>
- <additionalBuildcommands>
- <buildCommand>
- <name>com.google.gwt.eclipse.core.gwtProjectValidator </name>
- </buildCommand>
- </additionalBuildcommands>
- <workspaceCodeStylesURL>http://kune.ourproject.org/kune.formatter.eclipse.preferences.xml</workspaceCodeStylesURL>
- <additionalProjectnatures>
- <!-- <projectnature>org.eclipse.ajdt.ui.ajnature</projectnature> -->
- <projectnature>com.google.gwt.eclipse.core.gwtNature </projectnature>
- </additionalProjectnatures>
- </configuration>
- </plugin>
- <plugin>
- <!-- =roo -->
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-deploy-plugin</artifactId>
- <version>2.5</version>
- </plugin>
- <plugin>
- <!-- =roo -->
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-idea-plugin</artifactId>
- <version>2.2</version>
- <configuration>
- <downloadSources>true</downloadSources>
- <dependenciesAsLibraries>true</dependenciesAsLibraries>
- </configuration>
- </plugin>
- <plugin>
- <!-- =roo -->
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>tomcat-maven-plugin</artifactId>
- <version>1.0</version>
- <configuration>
- <path>/</path>
- </configuration>
- </plugin>
- <plugin>
- <!-- =roo -->
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty-maven-plugin</artifactId>
- <version>7.1.2.v20100523</version>
- <!-- <version>7.2.1.v20101111</version> -->
- <configuration>
- <webAppConfig>
- <!-- <contextPath>/${project.name}</contextPath> -->
- <contextPath>/</contextPath>
- </webAppConfig>
- <webAppSourceDirectory>${project.build.directory}/${project.build.finalName}</webAppSourceDirectory>
- <!-- <reload>manual</reload> <scanIntervalSeconds>0</scanIntervalSeconds> -->
- </configuration>
- </plugin>
- <!-- pensar/probar: openjpa-maven-plugin -->
- <!-- gwtp & GenEvent need this plugin -->
- <!-- maybe test: http://mojo.codehaus.org/apt-maven-plugin/index.html -->
- <!-- instead of this: https://code.google.com/p/maven-annotation-plugin/ -->
- <!-- <plugin> <groupId>org.bsc.maven</groupId> <artifactId>maven-processor-plugin</artifactId>
- <version>1.3.7</version> <executions> <execution> <id>process</id> <goals>
- <goal>process</goal> </goals> <phase>generate-sources</phase> </execution>
- </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>apt-maven-plugin</artifactId>
- <version>1.0-alpha-4</version> <executions> <execution> <goals> <goal>process</goal>
- <goal>test-process</goal> </goals> </execution> </executions> </plugin> -->
- <!-- BETTER user: http://code.google.com/p/acris/wiki/AnnotationProcessing -->
- <plugin>
- <!-- =roo -->
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>gwt-maven-plugin</artifactId>
- <version>1.3.2.google</version>
- <configuration>
- <logLevel>INFO</logLevel>
- <style>OBF</style>
- <soyc>false</soyc>
- <gwtVersion>${gwt.version}</gwtVersion>
- <runTarget>/ws/ws.html?log_level=DEBUG</runTarget>
- <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp>
- <modules>
- <module>${project.groupId}.Kune</module>
- </modules>
- <copyWebapp>true</copyWebapp>
- </configuration>
- <executions>
- <execution>
- <id>gwtcompile</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>compile</goal>
- <!-- http://mojo.codehaus.org/gwt-maven-plugin/user-guide/library.html -->
- <!-- <goal>resources</goal> -->
- </goals>
- </execution>
- </executions>
- </plugin>
- <!-- <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>deb-maven-plugin</artifactId>
- <version>1.0-SNAPSHOT</version> <configuration> <description>kune free/open/libre
- collaboration platform</description> <maintainer>Kune Development Team <kune-devel(a)lists.ourproject.org></maintainer>
- <section>web</section> <priority>optional</priority> <architecture>all</architecture>
- </configuration> <executions> <execution> <goals> <goal>deb</goal> </goals>
- </execution> </executions> </plugin> -->
- <plugin>
- <groupId>org.liquibase</groupId>
- <artifactId>liquibase-plugin</artifactId>
- <version>1.7.0.0</version>
- <executions>
- <execution>
- <phase>process-resources</phase>
- <configuration>
- <changeLogFile>
- src/main/resources/db/liquibase_changelog.xml </changeLogFile>
- <driver>com.mysql.jdbc.Driver</driver>
- <url>jdbc:mysql://localhost/kune_dev</url>
- <username>kune</username>
- <password>db4kune</password>
- <verbose>true</verbose>
- </configuration>
- <!-- <configuration> <verbose>true</verbose> <propertiesFile>
- src/main/resources/db/liquibase.properties </propertiesFile> </configuration> -->
- <goals>
- <goal>update</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>2.2</version>
- <configuration>
- <archive>
- <manifest>
- <addClasspath>true</addClasspath>
- <mainClass>cc.kune.wave.server.WaveMain</mainClass>
- <!-- <classpathPrefix>~/.m2/repository/</classpathPrefix> -->
- <!-- <classpathLayoutType>repository</classpathLayoutType> -->
- <!-- NOTE: Deprecated in version 2.4. Use 'classpathLayoutType'
- instead. -->
- <classpathMavenRepositoryLayout>true</classpathMavenRepositoryLayout>
- <!-- <packageName>cc.kune.wave.server</packageName> -->
- </manifest>
- <manifestEntries>
- <mode>development</mode>
- <url>${pom.url}</url>
- </manifestEntries>
- </archive>
- </configuration>
- <executions>
- <!-- <execution> -->
- <!-- <id>core</id> -->
- <!-- <phase>package</phase> -->
- <!-- <goals> -->
- <!-- <goal>jar</goal> -->
- <!-- </goals> -->
- <!-- <configuration> -->
- <!-- <classifier>core</classifier> -->
- <!-- <includes> -->
- <!-- <include>**/KunePlatform.gwt.xml**</include> -->
- <!-- <include>**/i18n/I18nTranslationService.**</include> -->
- <!-- <include>**/i18n/I18nTranslationServiceMocked.** </include> -->
- <!-- <include>**/TextUtils.**</include> -->
- <!-- <include>**/IconLabelEditable.**</include> -->
- <!-- <include>**/QuickTipsHelper.**</include> -->
- <!-- <include>**/RichText.gwt.xml**</include> -->
- <!-- <include>**/BasicDialog.**</include> -->
- <!-- <include>**/HorizontalLine.**</include> -->
- <!-- <include>**/AbstractLabel.**</include> -->
- <!-- <include>**/IconLabel.**</include> -->
- <!-- <include> **/EditableIconLabel.**</include> -->
- <!-- <include> **/EditableClickListener.**</include> -->
- <!-- <include>**/KuneStringUtils.**</include> -->
- <!-- <include>**/IconHyperlink*.**</include> -->
- <!-- <include>**/LabelWrapper*.**</include> -->
- <!-- <include>**/KuneUiUtils.**</include> -->
- <!-- <include>**/View.**</include> -->
- <!-- <include>**/platf/**</include> <include>**/platf/client/extend/**</include> -->
- <!-- <include>**/platf/client/*java</include> <include>**/platf/client/app/**</include> -->
- <!-- <include>**/platf/client/dispatch/**</include> -->
- <!-- </includes> -->
- <!-- </configuration> -->
- <!-- </execution> -->
- <!-- <execution> -->
- <!-- <id>helloworldmodule</id> -->
- <!-- <phase>package</phase> -->
- <!-- <goals> -->
- <!-- <goal>jar</goal> -->
- <!-- </goals> -->
- <!-- <configuration> -->
- <!-- <classifier>helloworldmodule</classifier> -->
- <!-- <includes> -->
- <!-- <include>**/HelloWorld*</include> -->
- <!-- </includes> -->
- <!-- </configuration> -->
- <!-- </execution> -->
- </executions>
- </plugin>
- <plugin>
- <groupId>org.dstovall</groupId>
- <artifactId>onejar-maven-plugin</artifactId>
- <version>1.4.4</version>
- <executions>
- <execution>
- <configuration>
- <!-- Optional -->
- <!-- <onejarVersion>0.97</onejarVersion> -->
- <!-- Optional, use only if you need to include native libraries
- (dll's) -->
-<!-- <binlibs>-->
-<!-- <fileSet>-->
-<!-- <directory>${project.build.directory}/${project.build.finalName}</directory>-->
-<!-- <includes>-->
-<!-- <include>**</include>-->
-<!-- </includes>-->
-<!-- </fileSet>-->
-<!-- </binlibs>-->
- <!-- Optional, default is false -->
- <attachToBuild>true</attachToBuild>
- <!-- Optional, default is "onejar" -->
- <classifier>onejar</classifier>
- </configuration>
- <goals>
- <goal>one-jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
-
- <!-- <plugin> -->
- <!-- <groupId>org.codehaus.mojo</groupId> -->
- <!-- <artifactId>selenium-maven-plugin</artifactId> -->
- <!-- <configuration> -->
- <!-- <port>4441</port> -->
- <!-- </configuration> -->
- <!-- <executions> -->
- <!-- <execution> -->
- <!-- <phase>pre-integration-test</phase> -->
- <!-- <goals> -->
- <!-- <goal>start-server</goal> -->
- <!-- </goals> -->
- <!-- <configuration> -->
- <!-- <background>true</background> -->
- <!-- </configuration> -->
- <!-- </execution> -->
- <!-- </executions> -->
- <!-- </plugin> -->
- <!-- <plugin> <artifactId>maven-clean-plugin</artifactId> <version>2.2</version>
- <configuration> <filesets> <fileset> <directory>src/main/webapp/gwt/</directory>
- <includes> <include>**/org.ourproject.kune.app.Kune*</include> <followSymlinks>false</followSymlinks>
- </includes> </fileset> </filesets> </configuration> </plugin> -->
- </plugins>
- <!-- <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory> -->
- <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory>
- <!-- <outputDirectory>war/WEB-INF/classes</outputDirectory> -->
- <!-- <testOutputDirectory>war/WEB-INF/test-classes</testOutputDirectory> -->
- <!-- <resources> -->
- <!-- <resource> -->
- <!-- <directory>src/main/resources</directory> -->
- <!-- </resource> -->
- <!-- <resource> -->
- <!-- <directory>src/main/java</directory> -->
- <!-- </resource> -->
- <!-- </resources> -->
- <extensions>
- <extension>
- <groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-ssh-external</artifactId>
- <version>1.0-beta-2</version>
- </extension>
- </extensions>
- </build>
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jxr-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-pmd-plugin</artifactId>
- <version>2.4</version>
- <configuration>
- <linkXref>true</linkXref>
- <sourceEncoding>utf-8</sourceEncoding>
- <minimumTokens>100</minimumTokens>
- <targetJdk>1.5</targetJdk>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>cobertura-maven-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>jdepend-maven-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>findbugs-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </reporting>
-</project>
Copied: tags/0.0.7/pom.xml (from rev 1255, trunk/pom.xml)
===================================================================
--- tags/0.0.7/pom.xml (rev 0)
+++ tags/0.0.7/pom.xml 2011-02-18 01:00:51 UTC (rev 1256)
@@ -0,0 +1,1115 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>cc.kune</groupId>
+ <artifactId>kune</artifactId>
+ <packaging>jar</packaging>
+ <version>0.0.7</version>
+ <name>kune</name>
+ <description> kune free/open/libre collaboration platform </description>
+ <url>http://kune.ourproject.org</url>
+ <properties>
+ <!-- Available versions: http://repo1.maven.org/maven2/com/google/gwt/gwt-dev/ -->
+ <gwt.version>2.1.1</gwt.version>
+ <maven.compiler.source>1.6</maven.compiler.source>
+ <maven.compiler.target>1.6</maven.compiler.target>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <slf4j.version>1.6.1</slf4j.version>
+ <openjpa.version>2.0.1</openjpa.version>
+ </properties>
+ <repositories>
+ <repository>
+ <id>kune-maven</id>
+ <url>http://kune.ourproject.org/mavenrepo/</url>
+ </repository>
+ <repository>
+ <id>guice-maven</id>
+ <name>guice maven</name>
+ <url>http://guice-maven.googlecode.com/svn/trunk</url>
+ </repository>
+ <repository>
+ <id>Codehaus Snapshots</id>
+ <url>http://snapshots.repository.codehaus.org/</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ <repository>
+ <id>jboss-public-repository-group</id>
+ <name>JBoss Public Maven Repository Group</name>
+ <url>https://repository.jboss.org/nexus/content/groups/public-jboss/
+ </url>
+ <layout>default</layout>
+ <releases>
+ <enabled>true</enabled>
+ <updatePolicy>never</updatePolicy>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ <updatePolicy>never</updatePolicy>
+ </snapshots>
+ </repository>
+ <repository>
+ <id>mvp4g.googlecode.releases</id>
+ <name>Releases Repository for Mvp4g</name>
+ <url>http://mvp4g.googlecode.com/svn/maven2/releases/</url>
+ </repository>
+ <repository>
+ <id>ext-gxt</id>
+ <name>ext-gxt at jahia</name>
+ <url>http://maven.jahia.org/maven2/</url>
+ </repository>
+ <repository>
+ <id>ext-gxt</id>
+ <name>ext-gxt at jahia</name>
+ <url>http://maven.jahia.org/maven2/</url>
+ </repository>
+ <repository>
+ <id>cobogw</id>
+ <name>Cobogw repository at googlecode</name>
+ <url>http://cobogw.googlecode.com/svn/maven2</url>
+ </repository>
+ <repository>
+ <id>gwt-repo</id>
+ <url>http://google-web-toolkit.googlecode.com/svn/2.1.0/gwt/maven/</url>
+ <name>Google Web Toolkit Repository</name>
+ </repository>
+ <repository>
+ <id>gwt-maven-rewraps</id>
+ <url>http://gwt-maven-rewraps.googlecode.com/hg/</url>
+ </repository>
+ <!-- cc -->
+ <repository>
+ <id>dyndns-repo</id>
+ <url>http://maven.dyndns.org/2</url>
+ </repository>
+ <repository>
+ <id>google-maven-snapshot-repository</id>
+ <name>Google Maven Snapshot Repository</name>
+ <url>https://oss.sonatype.org/content/repositories/google-snapshots/
+ </url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
+ <repository>
+ <id>gwtplatform.snapshot.repo</id>
+ <name>Gwtplatform snapshot repository</name>
+ <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
+ <layout>default</layout>
+ </repository>
+ <repository>
+ <id>openqa.org</id>
+ <name>Openqa Release Repository</name>
+ <url>http://archiva.openqa.org/repository/releases</url>
+ <layout>default</layout>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </repository>
+ <repository>
+ <id>openqa.org snapshots</id>
+ <name>Openqa Snapshot Repository</name>
+ <url>http://archiva.openqa.org/repository/snapshots</url>
+ <layout>default</layout>
+ <snapshots>
+ <enabled>true</enabled>
+ <updatePolicy>daily</updatePolicy>
+ <checksumPolicy>ignore</checksumPolicy>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </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>
+ </repositories>
+ <pluginRepositories>
+ <!-- cc -->
+ <pluginRepository>
+ <id>jboss-public-repository-group</id>
+ <name>JBoss Public Maven Repository Group</name>
+ <url>https://repository.jboss.org/nexus/content/groups/public-jboss/
+ </url>
+ <layout>default</layout>
+ <releases>
+ <enabled>true</enabled>
+ <updatePolicy>never</updatePolicy>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ <updatePolicy>never</updatePolicy>
+ </snapshots>
+ </pluginRepository>
+ <!-- cc -->
+ <!-- <pluginRepository> <id>gwt-maven</id> <url>http://gwt-maven.googlecode.com/svn/trunk/mavenrepo</url>
+ </pluginRepository> -->
+ <pluginRepository>
+ <id>Codehaus Snapshots</id>
+ <url>http://snapshots.repository.codehaus.org/</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled> <!-- Workaround for MNG-2974, see note below -->
+ </releases>
+ </pluginRepository>
+ <pluginRepository>
+ <id>maven2-repository.dev.java.net</id>
+ <name>Java.net Repository for Maven</name>
+ <url>http://download.java.net/maven/2/</url>
+ <layout>default</layout>
+ </pluginRepository>
+ <pluginRepository>
+ <id>gwt-plugin-repo</id>
+ <url>http://google-web-toolkit.googlecode.com/svn/2.1.0/gwt/maven/</url>
+ <name>Google Web Toolkit Plugin Repository</name>
+ </pluginRepository>
+ <pluginRepository>
+ <id>onejar-maven-plugin.googlecode.com</id>
+ <url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
+ </pluginRepository>
+ </pluginRepositories>
+ <dependencies>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-servlet</artifactId>
+ <version>${gwt.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-user</artifactId>
+ <version>${gwt.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <!-- guice -->
+ <dependency>
+ <groupId>com.google.inject</groupId>
+ <artifactId>guice</artifactId>
+ <!-- <version>2.1-SNAPSHOT-r1160</version> -->
+ <version>3.0-rc2</version>
+ </dependency>
+ <!-- <dependency>
+<groupId>com.googlecode.gwt.inject</groupId>
+<artifactId>gin</artifactId>
+<version>gin-1.1-SNAPSHOT</version>
+</dependency>-->
+ <dependency>
+ <groupId>com.google.inject.extensions</groupId>
+ <artifactId>guice-servlet</artifactId>
+ <version>3.0-rc2</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.inject.extensions</groupId>
+ <artifactId>guice-persist</artifactId>
+ <version>3.0-rc2</version>
+ </dependency>
+ <dependency>
+ <groupId>com.extjs</groupId>
+ <artifactId>gxt</artifactId>
+ <version>2.2.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.cobogw.gwt</groupId>
+ <artifactId>cobogw</artifactId>
+ <version>1.3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>com.gwtplatform</groupId>
+ <artifactId>gwtp-all</artifactId>
+ <version>0.5</version>
+<!-- <version>0.6-SNAPSHOT</version>-->
+ <exclusions>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.adamtacy</groupId>
+ <artifactId>gwt-fx</artifactId>
+ <version>r464</version>
+ </dependency>
+ <dependency>
+ <groupId>com.jhickman.web.gwt</groupId>
+ <artifactId>gwt-customuibinder</artifactId>
+ <version>0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>com.jhickman.web.gwt</groupId>
+ <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>
+ </dependency>
+ <dependency>
+ <groupId>com.allen_sauer.gwt.voices.gwt-voices</groupId>
+ <artifactId>gwt-voices</artifactId>
+ <version>1.6.0</version>
+ </dependency>
+ <!-- utilities -->
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.dozer</groupId>
+ <artifactId>dozer</artifactId>
+ <version>4.0</version>
+ </dependency>
+ <!-- <dependency> <groupId>com.calclab</groupId> <artifactId>suco</artifactId>
+ <version>0.6.5</version> </dependency> -->
+ <dependency>
+ <groupId>jmagick</groupId>
+ <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>
+ <artifactId>emite</artifactId>
+ <version>r1694</version>
+ </dependency>
+ <dependency>
+ <groupId>com.calclab.emite</groupId>
+ <artifactId>emite-proxy</artifactId>
+ <version>0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>com.calclab.emite</groupId>
+ <artifactId>hablar</artifactId>
+ <version>r1694</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jivesoftware.smack</groupId>
+ <artifactId>smack</artifactId>
+ <version>3.0.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jivesoftware.smackx</groupId>
+ <artifactId>smackx</artifactId>
+ <version>3.0.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jivesoftware.smackx.debugger</groupId>
+ <artifactId>smackx-debugger</artifactId>
+ <version>3.0.4</version>
+ </dependency>
+ <!-- mysql -->
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>5.1.13</version>
+ </dependency>
+ <!-- hibernate JPA -->
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <version>3.3.1.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>3.1.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-annotations</artifactId>
+ <version>3.4.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-commons-annotations</artifactId>
+ <version>3.3.0.ga</version>
+ <!-- http://stackoverflow.com/questions/882338/hibernate-preinsertevent-getsourc… -->
+ <exclusions>
+ <exclusion>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-ehcache</artifactId> -->
+ <!-- <version>3.3.1.GA</version> </dependency> -->
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-search</artifactId>
+ <version>3.1.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <version>3.4.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-tools</artifactId>
+ <version>3.2.3.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-c3p0</artifactId>
+ <version>3.3.1.GA</version>
+ </dependency>
+ <!-- <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId>
+ <version>0.9.1.2</version> </dependency> -->
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <!-- wave use 2.5 -->
+ <version>2.5</version>
+ </dependency>
+ <!-- <dependency> <groupId>com.wideplay</groupId> <artifactId>warp-persist</artifactId>
+ <version>2.0-SNAPSHOT</version> </dependency> -->
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.16</version>
+ <!-- =roo -->
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${slf4j.version}</version>
+ <!-- =roo -->
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <version>${slf4j.version}</version>
+ <!-- =roo -->
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${slf4j.version}</version>
+ <!-- =roo -->
+ </dependency>
+ <!-- REST: xml and json (stax) -->
+ <dependency>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ <version>1.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ <version>1.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.jettison</groupId>
+ <artifactId>jettison</artifactId>
+ <version>1.0-RC2</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.json-lib</groupId>
+ <artifactId>json-lib</artifactId>
+ <version>2.1</version>
+ <classifier>jdk15</classifier>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2</version>
+ </dependency>
+ <!-- File upload -->
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ <version>1.7.0</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-fileupload</groupId>
+ <artifactId>commons-fileupload</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+ <!-- db upgrades -->
+ <dependency>
+ <groupId>org.liquibase</groupId>
+ <artifactId>liquibase-core</artifactId>
+ <version>1.7.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.liquibase</groupId>
+ <artifactId>liquibase-plugin</artifactId>
+ <version>1.7.0.0</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
+ </dependency>
+ <!-- testing dependencies -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.mockito</groupId> -->
+ <!-- <artifactId>mockito-all</artifactId> -->
+ <!-- <scope>test</scope> -->
+ <!-- <version>1.6</version> -->
+ <!-- </dependency> -->
+ <dependency>
+ <groupId>org.jukito</groupId>
+ <artifactId>jukito</artifactId>
+ <version>1.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <version>1.0.20070617</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.8.1</version>
+ <!-- =roo -->
+ <scope>test</scope>
+ </dependency>
+ <!-- <dependency> -->
+ <!-- <groupId>org.openqa.selenium.client-drivers</groupId> -->
+ <!-- <artifactId>selenium-java-client-driver</artifactId> -->
+ <!-- <version>1.0-beta-1</version> -->
+ <!-- <scope>test</scope> -->
+ <!-- </dependency> -->
+ <!-- public side -->
+ <dependency>
+ <groupId>org.jruby.rack</groupId>
+ <artifactId>jruby-rack</artifactId>
+ <!-- <version>1.0.3</version> -->
+ <version>0.9.4</version>
+ </dependency>
+ <!-- wave -->
+ <dependency>
+ <groupId>org.waveprotocol</groupId>
+ <artifactId>waveinabox-server-custom</artifactId>
+ <version>0.3.6</version>
+ </dependency>
+ <dependency>
+ <groupId>org.waveprotocol</groupId>
+ <artifactId>proto-gwt</artifactId>
+ <version>0.3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.waveprotocol</groupId>
+ <artifactId>gwt-util-src</artifactId>
+ <version>0.3.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava-gwt</artifactId>
+ <version>r07</version>
+ </dependency>
+ <!-- From here necessary as .java not included in waveinabox-serve.jar -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.waveprotocol</groupId> -->
+ <!-- <artifactId>box-src</artifactId> -->
+ <!-- <version>0.3.0</version> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.waveprotocol</groupId> -->
+ <!-- <artifactId>model-src</artifactId> -->
+ <!-- <version>0.3.0</version> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.waveprotocol</groupId> -->
+ <!-- <artifactId>client-src</artifactId> -->
+ <!-- <version>0.3.0</version> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.waveprotocol</groupId> -->
+ <!-- <artifactId>client-common-src</artifactId> -->
+ <!-- <version>0.3.0</version> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.waveprotocol</groupId> -->
+ <!-- <artifactId>common-src</artifactId> -->
+ <!-- <version>0.3.0</version> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.waveprotocol</groupId> -->
+ <!-- <artifactId>util-src</artifactId> -->
+ <!-- <version>0.3.0</version> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.waveprotocol</groupId> -->
+ <!-- <artifactId>concurrencycontrol-src</artifactId> -->
+ <!-- <version>0.3.0</version> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.waveprotocol</groupId> -->
+ <!-- <artifactId>client-scheduler-src</artifactId> -->
+ <!-- <version>0.3.0</version> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.waveprotocol</groupId> -->
+ <!-- <artifactId>media-src</artifactId> -->
+ <!-- <version>0.3.0</version> -->
+ <!-- </dependency> -->
+ <!-- to here -->
+ <dependency>
+ <groupId>net.sourceforge.findbugs</groupId>
+ <artifactId>jsr-305</artifactId>
+ <version>v0r47</version>
+ </dependency>
+ <!-- end wave -->
+ <dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ <version>1.2</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.4</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ <!-- <dependency> -->
+ <!-- <groupId>dom4j</groupId> -->
+ <!-- <artifactId>dom4j</artifactId> -->
+ <!-- <version>1.6.1</version> -->
+ <!-- <type>jar</type> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>com.google.code.guice</groupId> -->
+ <!-- <artifactId>guice-assistedinject</artifactId> -->
+ <!-- <version>2.0</version> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>jline<!/groupId> -->
+ <!-- <artifactId>jline</artifactId> -->
+ <!-- <version>0.9.94</version> -->
+ <!-- <type>jar</type> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.gnu.inet</groupId> -->
+ <!-- <artifactId>libidn</artifactId> -->
+ <!-- <version>1.15</version> -->
+ <!-- <type>jar</type> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>com.google.protobuf</groupId> -->
+ <!-- <artifactId>protobuf-java</artifactId> -->
+ <!-- <version>2.3.0</version> -->
+ <!-- <type>jar</type> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>xpp3</groupId> -->
+ <!-- <artifactId>xpp3</artifactId> -->
+ <!-- <version>1.1.4c</version> -->
+ <!-- <type>jar</type> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>xpp3</groupId> -->
+ <!-- <artifactId>xpp3_xpath</artifactId> -->
+ <!-- <version>1.1.4c</version> -->
+ <!-- <type>jar</type> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>aopalliance</groupId> -->
+ <!-- <artifactId>aopalliance</artifactId> -->
+ <!-- <version>1.0</version> -->
+ <!-- <type>jar</type> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.wave-protocol</groupId> -->
+ <!-- <artifactId>xmpp</artifactId> -->
+ <!-- <version>1.0.0</version> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.wave-protocol</groupId> -->
+ <!-- <artifactId>whack</artifactId> -->
+ <!-- <version>1.0.0</version> -->
+ <!-- </dependency> -->
+ <distributionManagement>
+ <repository>
+ <id>kune.ourproject.org</id>
+ <url>scpexe://kune.ourproject.org/home/groups/kune/htdocs/mavenrepo/ </url>
+ </repository>
+ </distributionManagement>
+ <issueManagement>
+ <system>kune issues list at ourproject.org</system>
+ <url>http://kune.ourproject.org/issues/</url>
+ </issueManagement>
+ <developers>
+ <developer>
+ <id>dani</id>
+ <name>Daniel Gómez Blasco</name>
+ <email>danigb(a)gmail.com</email>
+ </developer>
+ <developer>
+ <name>Samer Hassan</name>
+ <email>samer2004(a)gmail.com</email>
+ </developer>
+ <developer>
+ <name>Vicente J. Ruiz Jurado</name>
+ <email>vjrj(a)ourproject.org</email>
+ </developer>
+ </developers>
+ <scm>
+ <url>svn://scm.ourproject.org/svnroot/kune/trunk</url>
+ </scm>
+ <build>
+ <plugins>
+ <plugin>
+ <!-- =roo -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.1-beta-1</version>
+ <!-- <configuration> <webXml>target/web.xml</webXml> </configuration> -->
+ </plugin>
+ <plugin>
+ <!-- =roo -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.1</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ <!-- Uncomment and run mvn with -X -e if we have same compile problems
+ <compilerArgument>-verbose</compilerArgument> <fork>true</fork> <verbose>true</verbose> -->
+ </configuration>
+ </plugin>
+ <plugin>
+ <!-- =roo -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.4.2</version>
+ <configuration>
+ <encoding>UTF-8</encoding>
+ </configuration>
+ </plugin>
+ <plugin>
+ <!-- =roo + custom -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.5</version>
+ <configuration>
+ <excludes>
+ <exclude>**/*_Roo_*</exclude>
+ </excludes>
+ <forkMode>pertest</forkMode>
+ <!-- Skip the normal tests, we'll run them in the integration-test
+ phase -->
+ <skip>true</skip>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <skip>false</skip>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <!-- =roo -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <descriptorRefs>
+ <descriptorRef>jar-with-dependencies</descriptorRef>
+ </descriptorRefs>
+ <dependencySets>
+ <dependencySet>
+ <scope>runtime</scope>
+ <unpackOptions>
+ <excludes>
+ <exclude>**/gxt/**</exclude>
+ <exclude>**/extjs/**</exclude>
+ <exclude>**extjs**</exclude>
+ <exclude>**gxt**</exclude>
+ </excludes>
+ </unpackOptions>
+ </dependencySet>
+ </dependencySets>
+ </configuration>
+ </plugin>
+ <plugin>
+ <!-- =roo sin spring executions -->
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <version>2.8</version>
+ <configuration>
+ <downloadSources>true</downloadSources>
+ <downloadJavadocs>false</downloadJavadocs>
+ <wtpversion>2.0</wtpversion>
+ <additionalBuildcommands>
+ <buildCommand>
+ <name>com.google.gwt.eclipse.core.gwtProjectValidator </name>
+ </buildCommand>
+ </additionalBuildcommands>
+ <workspaceCodeStylesURL>http://kune.ourproject.org/kune.formatter.eclipse.preferences.xml</workspaceCodeStylesURL>
+ <additionalProjectnatures>
+ <!-- <projectnature>org.eclipse.ajdt.ui.ajnature</projectnature> -->
+ <projectnature>com.google.gwt.eclipse.core.gwtNature </projectnature>
+ </additionalProjectnatures>
+ </configuration>
+ </plugin>
+ <plugin>
+ <!-- =roo -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>2.5</version>
+ </plugin>
+ <plugin>
+ <!-- =roo -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-idea-plugin</artifactId>
+ <version>2.2</version>
+ <configuration>
+ <downloadSources>true</downloadSources>
+ <dependenciesAsLibraries>true</dependenciesAsLibraries>
+ </configuration>
+ </plugin>
+ <plugin>
+ <!-- =roo -->
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>tomcat-maven-plugin</artifactId>
+ <version>1.0</version>
+ <configuration>
+ <path>/</path>
+ </configuration>
+ </plugin>
+ <plugin>
+ <!-- =roo -->
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-maven-plugin</artifactId>
+ <version>7.1.2.v20100523</version>
+ <!-- <version>7.2.1.v20101111</version> -->
+ <configuration>
+ <webAppConfig>
+ <!-- <contextPath>/${project.name}</contextPath> -->
+ <contextPath>/</contextPath>
+ </webAppConfig>
+ <webAppSourceDirectory>${project.build.directory}/${project.build.finalName}</webAppSourceDirectory>
+ <!-- <reload>manual</reload> <scanIntervalSeconds>0</scanIntervalSeconds> -->
+ </configuration>
+ </plugin>
+ <!-- pensar/probar: openjpa-maven-plugin -->
+ <!-- gwtp & GenEvent need this plugin -->
+ <!-- maybe test: http://mojo.codehaus.org/apt-maven-plugin/index.html -->
+ <!-- instead of this: https://code.google.com/p/maven-annotation-plugin/ -->
+ <!-- <plugin> <groupId>org.bsc.maven</groupId> <artifactId>maven-processor-plugin</artifactId>
+ <version>1.3.7</version> <executions> <execution> <id>process</id> <goals>
+ <goal>process</goal> </goals> <phase>generate-sources</phase> </execution>
+ </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>apt-maven-plugin</artifactId>
+ <version>1.0-alpha-4</version> <executions> <execution> <goals> <goal>process</goal>
+ <goal>test-process</goal> </goals> </execution> </executions> </plugin> -->
+ <!-- BETTER user: http://code.google.com/p/acris/wiki/AnnotationProcessing -->
+ <plugin>
+ <!-- =roo -->
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>gwt-maven-plugin</artifactId>
+ <version>1.3.2.google</version>
+ <configuration>
+ <logLevel>INFO</logLevel>
+ <style>OBF</style>
+ <soyc>false</soyc>
+ <gwtVersion>${gwt.version}</gwtVersion>
+ <runTarget>/ws/ws.html?log_level=DEBUG</runTarget>
+ <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp>
+ <modules>
+ <module>${project.groupId}.Kune</module>
+ </modules>
+ <copyWebapp>true</copyWebapp>
+ </configuration>
+ <executions>
+ <execution>
+ <id>gwtcompile</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>compile</goal>
+ <!-- http://mojo.codehaus.org/gwt-maven-plugin/user-guide/library.html -->
+ <!-- <goal>resources</goal> -->
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>deb-maven-plugin</artifactId>
+ <version>1.0-SNAPSHOT</version> <configuration> <description>kune free/open/libre
+ collaboration platform</description> <maintainer>Kune Development Team <kune-devel(a)lists.ourproject.org></maintainer>
+ <section>web</section> <priority>optional</priority> <architecture>all</architecture>
+ </configuration> <executions> <execution> <goals> <goal>deb</goal> </goals>
+ </execution> </executions> </plugin> -->
+ <plugin>
+ <groupId>org.liquibase</groupId>
+ <artifactId>liquibase-plugin</artifactId>
+ <version>1.7.0.0</version>
+ <executions>
+ <execution>
+ <phase>process-resources</phase>
+ <configuration>
+ <changeLogFile>
+ src/main/resources/db/liquibase_changelog.xml </changeLogFile>
+ <driver>com.mysql.jdbc.Driver</driver>
+ <url>jdbc:mysql://localhost/kune_dev</url>
+ <username>kune</username>
+ <password>db4kune</password>
+ <verbose>true</verbose>
+ </configuration>
+ <!-- <configuration> <verbose>true</verbose> <propertiesFile>
+ src/main/resources/db/liquibase.properties </propertiesFile> </configuration> -->
+ <goals>
+ <goal>update</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.2</version>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ <mainClass>cc.kune.wave.server.WaveMain</mainClass>
+ <!-- <classpathPrefix>~/.m2/repository/</classpathPrefix> -->
+ <!-- <classpathLayoutType>repository</classpathLayoutType> -->
+ <!-- NOTE: Deprecated in version 2.4. Use 'classpathLayoutType'
+ instead. -->
+ <classpathMavenRepositoryLayout>true</classpathMavenRepositoryLayout>
+ <!-- <packageName>cc.kune.wave.server</packageName> -->
+ </manifest>
+ <manifestEntries>
+ <mode>development</mode>
+ <url>${pom.url}</url>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ <executions>
+ <!-- <execution> -->
+ <!-- <id>core</id> -->
+ <!-- <phase>package</phase> -->
+ <!-- <goals> -->
+ <!-- <goal>jar</goal> -->
+ <!-- </goals> -->
+ <!-- <configuration> -->
+ <!-- <classifier>core</classifier> -->
+ <!-- <includes> -->
+ <!-- <include>**/KunePlatform.gwt.xml**</include> -->
+ <!-- <include>**/i18n/I18nTranslationService.**</include> -->
+ <!-- <include>**/i18n/I18nTranslationServiceMocked.** </include> -->
+ <!-- <include>**/TextUtils.**</include> -->
+ <!-- <include>**/IconLabelEditable.**</include> -->
+ <!-- <include>**/QuickTipsHelper.**</include> -->
+ <!-- <include>**/RichText.gwt.xml**</include> -->
+ <!-- <include>**/BasicDialog.**</include> -->
+ <!-- <include>**/HorizontalLine.**</include> -->
+ <!-- <include>**/AbstractLabel.**</include> -->
+ <!-- <include>**/IconLabel.**</include> -->
+ <!-- <include> **/EditableIconLabel.**</include> -->
+ <!-- <include> **/EditableClickListener.**</include> -->
+ <!-- <include>**/KuneStringUtils.**</include> -->
+ <!-- <include>**/IconHyperlink*.**</include> -->
+ <!-- <include>**/LabelWrapper*.**</include> -->
+ <!-- <include>**/KuneUiUtils.**</include> -->
+ <!-- <include>**/View.**</include> -->
+ <!-- <include>**/platf/**</include> <include>**/platf/client/extend/**</include> -->
+ <!-- <include>**/platf/client/*java</include> <include>**/platf/client/app/**</include> -->
+ <!-- <include>**/platf/client/dispatch/**</include> -->
+ <!-- </includes> -->
+ <!-- </configuration> -->
+ <!-- </execution> -->
+ <!-- <execution> -->
+ <!-- <id>helloworldmodule</id> -->
+ <!-- <phase>package</phase> -->
+ <!-- <goals> -->
+ <!-- <goal>jar</goal> -->
+ <!-- </goals> -->
+ <!-- <configuration> -->
+ <!-- <classifier>helloworldmodule</classifier> -->
+ <!-- <includes> -->
+ <!-- <include>**/HelloWorld*</include> -->
+ <!-- </includes> -->
+ <!-- </configuration> -->
+ <!-- </execution> -->
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.dstovall</groupId>
+ <artifactId>onejar-maven-plugin</artifactId>
+ <version>1.4.4</version>
+ <executions>
+ <execution>
+ <configuration>
+ <!-- Optional -->
+ <!-- <onejarVersion>0.97</onejarVersion> -->
+ <!-- Optional, use only if you need to include native libraries
+ (dll's) -->
+ <!-- <binlibs> -->
+ <!-- <fileSet> -->
+ <!-- <directory>${project.build.directory}/${project.build.finalName}</directory> -->
+ <!-- <includes> -->
+ <!-- <include>**</include> -->
+ <!-- </includes> -->
+ <!-- </fileSet> -->
+ <!-- </binlibs> -->
+ <!-- Optional, default is false -->
+ <attachToBuild>true</attachToBuild>
+ <!-- Optional, default is "onejar" -->
+ <classifier>onejar</classifier>
+ </configuration>
+ <goals>
+ <goal>one-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+
+ <!-- <plugin> -->
+ <!-- <groupId>org.codehaus.mojo</groupId> -->
+ <!-- <artifactId>selenium-maven-plugin</artifactId> -->
+ <!-- <configuration> -->
+ <!-- <port>4441</port> -->
+ <!-- </configuration> -->
+ <!-- <executions> -->
+ <!-- <execution> -->
+ <!-- <phase>pre-integration-test</phase> -->
+ <!-- <goals> -->
+ <!-- <goal>start-server</goal> -->
+ <!-- </goals> -->
+ <!-- <configuration> -->
+ <!-- <background>true</background> -->
+ <!-- </configuration> -->
+ <!-- </execution> -->
+ <!-- </executions> -->
+ <!-- </plugin> -->
+ <!-- <plugin> <artifactId>maven-clean-plugin</artifactId> <version>2.2</version>
+ <configuration> <filesets> <fileset> <directory>src/main/webapp/gwt/</directory>
+ <includes> <include>**/org.ourproject.kune.app.Kune*</include> <followSymlinks>false</followSymlinks>
+ </includes> </fileset> </filesets> </configuration> </plugin> -->
+ </plugins>
+ <!-- <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory> -->
+ <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory>
+ <!-- <outputDirectory>war/WEB-INF/classes</outputDirectory> -->
+ <!-- <testOutputDirectory>war/WEB-INF/test-classes</testOutputDirectory> -->
+ <!-- <resources> -->
+ <!-- <resource> -->
+ <!-- <directory>src/main/resources</directory> -->
+ <!-- </resource> -->
+ <!-- <resource> -->
+ <!-- <directory>src/main/java</directory> -->
+ <!-- </resource> -->
+ <!-- </resources> -->
+ <extensions>
+ <extension>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-ssh-external</artifactId>
+ <version>1.0-beta-2</version>
+ </extension>
+ </extensions>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jxr-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <linkXref>true</linkXref>
+ <sourceEncoding>utf-8</sourceEncoding>
+ <minimumTokens>100</minimumTokens>
+ <targetJdk>1.5</targetJdk>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jdepend-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </reporting>
+</project>
Deleted: tags/0.0.7/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java 2011-02-17 17:31:43 UTC (rev 1254)
+++ tags/0.0.7/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java 2011-02-18 01:00:51 UTC (rev 1256)
@@ -1,557 +0,0 @@
-package cc.kune.wave.server;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.SocketAddress;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-import javax.servlet.Servlet;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-import org.eclipse.jetty.server.Connector;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.nio.SelectChannelConnector;
-import org.eclipse.jetty.servlet.DefaultServlet;
-import org.eclipse.jetty.servlet.FilterHolder;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.eclipse.jetty.websocket.WebSocket;
-import org.eclipse.jetty.websocket.WebSocketServlet;
-import org.jruby.rack.RackFilter;
-import org.jruby.rack.RackServletContextListener;
-import org.ourproject.kune.rack.RackServletFilter;
-import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolAuthenticate;
-import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolAuthenticationResult;
-import org.waveprotocol.box.server.CoreSettings;
-import org.waveprotocol.box.server.authentication.SessionManager;
-import org.waveprotocol.box.server.rpc.BaseUrlHelper;
-import org.waveprotocol.box.server.rpc.MessageExpectingChannel;
-import org.waveprotocol.box.server.rpc.ProtoCallback;
-import org.waveprotocol.box.server.rpc.Rpc;
-import org.waveprotocol.box.server.rpc.ServerRpcController;
-import org.waveprotocol.box.server.rpc.SocketIOServerChannel;
-import org.waveprotocol.box.server.rpc.WebSocketServerChannel;
-import org.waveprotocol.box.server.util.NetUtils;
-import org.waveprotocol.wave.model.util.Pair;
-import org.waveprotocol.wave.model.wave.ParticipantId;
-import org.waveprotocol.wave.util.logging.Log;
-
-import com.glines.socketio.server.SocketIOInbound;
-import com.glines.socketio.server.SocketIOServlet;
-import com.glines.socketio.server.transport.FlashSocketTransport;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import com.google.inject.Inject;
-import com.google.inject.Injector;
-import com.google.inject.name.Named;
-import com.google.inject.servlet.GuiceServletContextListener;
-import com.google.protobuf.Descriptors;
-import com.google.protobuf.Descriptors.MethodDescriptor;
-import com.google.protobuf.Message;
-import com.google.protobuf.RpcCallback;
-import com.google.protobuf.Service;
-import com.google.protobuf.UnknownFieldSet;
-
-import de.spieleck.servlets.ProxyServlet;
-
-/**
- * ServerRpcProvider can provide instances of type Service over an incoming
- * network socket and service incoming RPCs to these services and their methods.
- *
- *
- */
-public class CustomServerRpcProvider {
- abstract class Connection implements ProtoCallback {
- private final Map<Long, ServerRpcController> activeRpcs = new ConcurrentHashMap<Long, ServerRpcController>();
-
- // The logged in user.
- // Note: Due to this bug:
- // http://code.google.com/p/wave-protocol/issues/detail?id=119,
- // the field may be null on first connect and then set later using an
- // RPC.
- private ParticipantId loggedInUser;
-
- /**
- * @param loggedInUser
- * The currently logged in user, or null if no user is logged
- * in.
- */
- public Connection(final ParticipantId loggedInUser) {
- this.loggedInUser = loggedInUser;
- }
-
- private ParticipantId authenticate(final String token) {
- final HttpSession session = sessionManager.getSessionFromToken(token);
- final ParticipantId user = sessionManager.getLoggedInUser(session);
- return user;
- }
-
- protected void expectMessages(final MessageExpectingChannel channel) {
- synchronized (registeredServices) {
- for (final RegisteredServiceMethod serviceMethod : registeredServices.values()) {
- channel.expectMessage(serviceMethod.service.getRequestPrototype(serviceMethod.method));
- LOG.fine("Expecting: " + serviceMethod.method.getFullName());
- }
- }
- channel.expectMessage(Rpc.CancelRpc.getDefaultInstance());
- }
-
- @Override
- public void message(final long sequenceNo, final Message message) {
- if (message instanceof Rpc.CancelRpc) {
- final ServerRpcController controller = activeRpcs.get(sequenceNo);
- if (controller == null) {
- throw new IllegalStateException("Trying to cancel an RPC that is not active!");
- } else {
- LOG.info("Cancelling open RPC " + sequenceNo);
- controller.cancel();
- }
- } else if (message instanceof ProtocolAuthenticate) {
- // Workaround for bug:
- // http://codereview.waveprotocol.org/224001/
-
- // When we get this message, either the connection will not be
- // logged in
- // (loggedInUser == null) or the connection will have been
- // authenticated
- // via cookies
- // (in which case loggedInUser must match the authenticated
- // user, and
- // this message has no
- // effect).
-
- final ProtocolAuthenticate authMessage = (ProtocolAuthenticate) message;
- final ParticipantId authenticatedAs = authenticate(authMessage.getToken());
-
- Preconditions.checkArgument(authenticatedAs != null, "Auth token invalid");
- Preconditions.checkState(loggedInUser == null || loggedInUser.equals(authenticatedAs),
- "Session already authenticated as a different user");
-
- loggedInUser = authenticatedAs;
- LOG.info("Session authenticated as " + loggedInUser);
- sendMessage(sequenceNo, ProtocolAuthenticationResult.getDefaultInstance());
- } else if (registeredServices.containsKey(message.getDescriptorForType())) {
- if (activeRpcs.containsKey(sequenceNo)) {
- throw new IllegalStateException("Can't invoke a new RPC with a sequence number already in use.");
- } else {
- final RegisteredServiceMethod serviceMethod = registeredServices.get(message.getDescriptorForType());
-
- // Create the internal ServerRpcController used to invoke
- // the call.
- final ServerRpcController controller = new ServerRpcControllerImpl(message, serviceMethod.service,
- serviceMethod.method, loggedInUser, new RpcCallback<Message>() {
- @Override
- synchronized public void run(final Message message) {
- if (message instanceof Rpc.RpcFinished
- || !serviceMethod.method.getOptions().getExtension(Rpc.isStreamingRpc)) {
- // This RPC is over - remove it from the
- // map.
- final boolean failed = message instanceof Rpc.RpcFinished ? ((Rpc.RpcFinished) message).getFailed()
- : false;
- LOG.fine("RPC " + sequenceNo + " is now finished, failed = " + failed);
- if (failed) {
- LOG.info("error = " + ((Rpc.RpcFinished) message).getErrorText());
- }
- activeRpcs.remove(sequenceNo);
- }
- sendMessage(sequenceNo, message);
- }
- });
-
- // Kick off a new thread specific to this RPC.
- activeRpcs.put(sequenceNo, controller);
- threadPool.execute(controller);
- }
- } else {
- // Sent a message type we understand, but don't expect -
- // erronous case!
- throw new IllegalStateException("Got expected but unknown message (" + message + ") for sequence: "
- + sequenceNo);
- }
- }
-
- protected abstract void sendMessage(long sequenceNo, Message message);
-
- @Override
- public void unknown(final long sequenceNo, final String messageType, final String message) {
- throw new IllegalStateException("Got unknown message (type: " + messageType + ", " + message
- + ") for sequence: " + sequenceNo);
- }
-
- @Override
- public void unknown(final long sequenceNo, final String messageType, final UnknownFieldSet message) {
- throw new IllegalStateException("Got unknown message (type: " + messageType + ", " + message
- + ") for sequence: " + sequenceNo);
- }
- }
-
- /**
- * Internal, static container class for any specific registered service
- * method.
- */
- static class RegisteredServiceMethod {
- final MethodDescriptor method;
- final Service service;
-
- RegisteredServiceMethod(final Service service, final MethodDescriptor method) {
- this.service = service;
- this.method = method;
- }
- }
- class SocketIOConnection extends Connection {
- private final SocketIOServerChannel socketChannel;
-
- SocketIOConnection(final ParticipantId loggedInUser) {
- super(loggedInUser);
- socketChannel = new SocketIOServerChannel(this);
- LOG.info("New websocket connection set up for user " + loggedInUser);
- expectMessages(socketChannel);
- }
-
- public SocketIOServerChannel getWebSocketServerChannel() {
- return socketChannel;
- }
-
- @Override
- protected void sendMessage(final long sequenceNo, final Message message) {
- socketChannel.sendMessage(sequenceNo, message);
- }
- }
- public class WaveSocketIOServlet extends SocketIOServlet {
- @Override
- protected SocketIOInbound doSocketIOConnect(final HttpServletRequest request, final String[] protocols) {
- final ParticipantId loggedInUser = sessionManager.getLoggedInUser(request.getSession(false));
-
- final SocketIOConnection connection = new SocketIOConnection(loggedInUser);
- return connection.getWebSocketServerChannel();
- }
- }
- public class WaveWebSocketServlet extends WebSocketServlet {
- @Override
- protected WebSocket doWebSocketConnect(final HttpServletRequest request, final String protocol) {
- final ParticipantId loggedInUser = sessionManager.getLoggedInUser(request.getSession(false));
-
- final WebSocketConnection connection = new WebSocketConnection(loggedInUser);
- return connection.getWebSocketServerChannel();
- }
- }
- class WebSocketConnection extends Connection {
- private final WebSocketServerChannel socketChannel;
-
- WebSocketConnection(final ParticipantId loggedInUser) {
- super(loggedInUser);
- socketChannel = new WebSocketServerChannel(this);
- LOG.info("New websocket connection set up for user " + loggedInUser);
- expectMessages(socketChannel);
- }
-
- public WebSocketServerChannel getWebSocketServerChannel() {
- return socketChannel;
- }
-
- @Override
- protected void sendMessage(final long sequenceNo, final Message message) {
- socketChannel.sendMessage(sequenceNo, message);
- }
- }
- private static final Log LOG = Log.get(CustomServerRpcProvider.class);
-
- private static InetSocketAddress[] parseAddressList(final List<String> addressList) {
- if (addressList == null || addressList.size() == 0) {
- return new InetSocketAddress[0];
- } else {
- final Set<InetSocketAddress> addresses = Sets.newHashSet();
- for (final String str : addressList) {
- if (str.length() == 0) {
- LOG.warning("Encountered empty address in http addresses list.");
- } else {
- try {
- final InetSocketAddress address = NetUtils.parseHttpAddress(str);
- if (!addresses.contains(address)) {
- addresses.add(address);
- } else {
- LOG.warning("Ignoring duplicate address in http addresses list: Duplicate entry '" + str
- + "' resolved to " + address.getAddress().getHostAddress());
- }
- } catch (final IOException e) {
- LOG.severe("Unable to process address " + str, e);
- }
- }
- }
- return addresses.toArray(new InetSocketAddress[0]);
- }
- }
- private final String baseUrl;
-
- private final Integer flashsocketPolicyPort;
-
- private final InetSocketAddress[] httpAddresses;
-
- private Server httpServer = null;
-
- private final Set<Connection> incomingConnections = Sets.newHashSet();
-
- private final org.eclipse.jetty.server.SessionManager jettySessionManager;
-
- // Mapping from incoming protocol buffer type -> specific handler.
- private final Map<Descriptors.Descriptor, RegisteredServiceMethod> registeredServices = Maps.newHashMap();
-
- private final String resourceBase;
-
- /**
- * Set of servlets
- */
- List<Pair<String, ServletHolder>> servletRegistry = Lists.newArrayList();
-
- private final SessionManager sessionManager;
-
- private final ExecutorService threadPool;
-
- /**
- * Construct a new ServerRpcProvider, hosting on the specified WebSocket
- * addresses.
- *
- * Also accepts an ExecutorService for spawning managing threads.
- */
- public CustomServerRpcProvider(final InetSocketAddress[] httpAddresses, final Integer flashsocketPolicyPort,
- final String baseUrl, final String resourceBase, final ExecutorService threadPool,
- final SessionManager sessionManager, final org.eclipse.jetty.server.SessionManager jettySessionManager) {
- this.httpAddresses = httpAddresses;
- this.flashsocketPolicyPort = flashsocketPolicyPort;
- this.baseUrl = BaseUrlHelper.removeLastSlash(baseUrl);
- this.resourceBase = resourceBase;
- this.threadPool = threadPool;
- this.sessionManager = sessionManager;
- this.jettySessionManager = jettySessionManager;
- }
-
- /**
- * Constructs a new ServerRpcProvider with a default ExecutorService.
- */
- public CustomServerRpcProvider(final InetSocketAddress[] httpAddresses, final Integer flashsocketPolicyPort,
- final String baseUrl, final String resourceBase, final SessionManager sessionManager,
- final org.eclipse.jetty.server.SessionManager jettySessionManager) {
- this(httpAddresses, flashsocketPolicyPort, baseUrl, resourceBase, Executors.newCachedThreadPool(),
- sessionManager, jettySessionManager);
- }
-
- @Inject
- public CustomServerRpcProvider((a)Named(CoreSettings.HTTP_FRONTEND_ADDRESSES) final List<String> httpAddresses,
- @Named(CoreSettings.FLASHSOCKET_POLICY_PORT) final Integer flashsocketPolicyPort,
- @Named(CoreSettings.HTTP_BASE_URL) final String baseUrl,
- @Named(CoreSettings.RESOURCE_BASE) final String resourceBase, final SessionManager sessionManager,
- final org.eclipse.jetty.server.SessionManager jettySessionManager) {
- this(parseAddressList(httpAddresses), flashsocketPolicyPort, baseUrl, resourceBase, sessionManager,
- jettySessionManager);
- }
-
- /**
- * Add a servlet to the servlet registry. This servlet will be attached to
- * the specified URL pattern when the server is started up.
- *
- * @param urlPattern
- * URL pattern for paths. Eg, '/foo', '/foo/*'
- * @param servlet
- * The servlet object to bind to the specified paths
- * @return the {@link ServletHolder} that holds the servlet.
- */
- public ServletHolder addServlet(final String urlPattern, final Servlet servlet) {
- final ServletHolder servletHolder = new ServletHolder(servlet);
- servletRegistry.add(new Pair<String, ServletHolder>(urlPattern, servletHolder));
- return servletHolder;
- }
-
- /**
- * @return a list of {@link SelectChannelConnector} each bound to a
- * host:port pair form the list addresses.
- */
- private List<SelectChannelConnector> getSelectChannelConnectors(final InetSocketAddress[] httpAddresses) {
- final List<SelectChannelConnector> list = Lists.newArrayList();
- for (final InetSocketAddress address : httpAddresses) {
- final SelectChannelConnector connector = new SelectChannelConnector();
- connector.setHost(address.getAddress().getHostAddress());
- connector.setPort(address.getPort());
- list.add(connector);
- }
-
- return list;
- }
-
- /**
- * Returns the socket the WebSocket server is listening on.
- */
- public SocketAddress getWebSocketAddress() {
- if (httpServer == null) {
- return null;
- } else {
- final Connector c = httpServer.getConnectors()[0];
- return new InetSocketAddress(c.getHost(), c.getLocalPort());
- }
- }
-
- /**
- * Register all methods provided by the given service type.
- */
- public void registerService(final Service service) {
- synchronized (registeredServices) {
- for (final MethodDescriptor methodDescriptor : service.getDescriptorForType().getMethods()) {
- registeredServices.put(methodDescriptor.getInputType(), new RegisteredServiceMethod(service,
- methodDescriptor));
- }
- }
- }
-
- public void startWebSocketServer(final Injector injector) {
- httpServer = new Server();
-
- final List<SelectChannelConnector> connectors = getSelectChannelConnectors(httpAddresses);
- if (connectors.isEmpty()) {
- LOG.severe("No valid http end point address provided!");
- }
- for (final SelectChannelConnector connector : connectors) {
- httpServer.addConnector(connector);
- }
-
- // final WebAppContext webContext = new WebAppContext();
- final ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
- if (jettySessionManager != null) {
- context.getSessionHandler().setSessionManager(jettySessionManager);
- }
- context.setResourceBase(resourceBase);
- context.setContextPath(baseUrl);
-
- // webContext.setResourceBase(resourceBase);
- // webContext.setContextPath(baseUrl);
- // webContext.setWar(baseUrl);
-
- final ServletHolder httpbindHolder = new ServletHolder(ProxyServlet.class);
- httpbindHolder.setInitParameter("remotePath", "/http-bind/");
- httpbindHolder.setInitParameter("remotePort", "5280");
- context.addServlet(httpbindHolder, "/http-bind/");
-
- context.addEventListener(new ServletContextListener() {
-
- @Override
- public void contextDestroyed(final ServletContextEvent sce) {
- }
-
- @Override
- public void contextInitialized(final ServletContextEvent sce) {
- final ServletContext context = sce.getServletContext();
- context.setAttribute("jruby.standalone", "true");
- context.setAttribute("rails.root", "/WEB-INF/publicspace/");
- context.setAttribute("files.prefix", "/WEB-INF/publicspace/public");
- context.setAttribute("rails.env", "production");
- context.setAttribute("jruby.max.runtimes", "1");
- context.setAttribute("public.root", "/public/");
- }
- });
-
- context.addEventListener(new RackServletContextListener());
- // final FilterHolder rubyRack = new
- // FilterHolder(org.jruby.rack.rails.RailsServletContextListener.class);
- // rubyRack.setFilter(new RackFilter());
-
- // context.getInitParameter("rails.root");
-
- context.addFilter(RackFilter.class, "/public/*", 0);
-
- context.addEventListener(new GuiceServletContextListener() {
- @Override
- protected Injector getInjector() {
- return injector;
- }
- });
- context.setAttribute(RackServletFilter.INJECTOR_PARENT_ATTRIBUTE, injector);
- final FilterHolder filterHolder = new FilterHolder(RackServletFilter.class);
- filterHolder.setInitParameter("org.ourproject.kune.rack.RackModule",
- "org.ourproject.kune.app.server.KuneRackModule");
- context.addFilter(filterHolder, "/ws/*", 0);
-
- // context.addFilter(GuiceFilter.class, "/*", 0);
-
- // Servlet where the websocket connection is served from.
- final ServletHolder wsholder = new ServletHolder(new WaveWebSocketServlet());
- context.addServlet(wsholder, "/socket");
- // TODO(zamfi): fix to let messages span frames.
- wsholder.setInitParameter("bufferSize", "" + 1024 * 1024); // 1M buffer
-
- // Servlet where the websocket connection is served from.
- final ServletHolder sioholder = new ServletHolder(new WaveSocketIOServlet());
- context.addServlet(sioholder, "/socket.io/*");
- // TODO(zamfi): fix to let messages span frames.
- sioholder.setInitParameter("bufferSize", "" + 1024 * 1024); // 1M buffer
- // Set flash policy server parameters
- String flashPolicyServerHost = "localhost";
- final StringBuilder flashPolicyAllowedPorts = new StringBuilder();
- /*
- * Loop through addresses, collect list of ports, and determine if we
- * are to use "localhost" of the AnyHost wildcard.
- */
- for (final InetSocketAddress addr : httpAddresses) {
- if (flashPolicyAllowedPorts.length() > 0) {
- flashPolicyAllowedPorts.append(",");
- }
- flashPolicyAllowedPorts.append(addr.getPort());
- if (!addr.getAddress().isLoopbackAddress()) {
- // Until it's possible to pass a list of address, this is the
- // only valid alternative.
- flashPolicyServerHost = "0.0.0.0";
- }
- }
- sioholder.setInitParameter(FlashSocketTransport.FLASHPOLICY_SERVER_HOST_KEY, flashPolicyServerHost);
- sioholder.setInitParameter(FlashSocketTransport.FLASHPOLICY_SERVER_PORT_KEY, "" + flashsocketPolicyPort);
- // TODO: Change to use the public http address and all other bound
- // addresses.
- sioholder.setInitParameter(FlashSocketTransport.FLASHPOLICY_DOMAIN_KEY, "*");
- sioholder.setInitParameter(FlashSocketTransport.FLASHPOLICY_PORTS_KEY, flashPolicyAllowedPorts.toString());
-
- // Serve the static content and GWT web client with the default servlet
- // (acts like a standard file-based web server).
- final ServletHolder defaultServlet = new ServletHolder(new DefaultServlet());
- context.addServlet(defaultServlet, "/static/*");
- context.addServlet(defaultServlet, "/webclient/*");
- context.addServlet(defaultServlet, "/ws/*");
- context.addServlet(defaultServlet, "/images/*");
- context.addServlet(defaultServlet, "/javascripts/*");
- context.addServlet(defaultServlet, "/stylesheets/*");
- context.addServlet(defaultServlet, "/templates/*");
-
- for (final Pair<String, ServletHolder> servlet : servletRegistry) {
- context.addServlet(servlet.getSecond(), servlet.getFirst());
- }
-
- httpServer.setHandler(context);
-
- try {
- httpServer.start();
- } catch (final Exception e) { // yes, .start() throws "Exception"
- LOG.severe("Fatal error starting http server.", e);
- return;
- }
- LOG.fine("WebSocket server running. --------");
- }
-
- /**
- * Stops this server.
- */
- public void stopServer() throws IOException {
- try {
- httpServer.stop(); // yes, .stop() throws "Exception"
- } catch (final Exception e) {
- LOG.warning("Fatal error stopping http server.", e);
- }
- LOG.fine("server shutdown.");
- }
-}
Copied: tags/0.0.7/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java (from rev 1255, trunk/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java)
===================================================================
--- tags/0.0.7/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java (rev 0)
+++ tags/0.0.7/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java 2011-02-18 01:00:51 UTC (rev 1256)
@@ -0,0 +1,560 @@
+package cc.kune.wave.server;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import javax.servlet.Servlet;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.nio.SelectChannelConnector;
+import org.eclipse.jetty.servlet.DefaultServlet;
+import org.eclipse.jetty.servlet.FilterHolder;
+import org.eclipse.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.webapp.WebAppContext;
+import org.eclipse.jetty.websocket.WebSocket;
+import org.eclipse.jetty.websocket.WebSocketServlet;
+import org.jruby.rack.RackFilter;
+import org.jruby.rack.RackServletContextListener;
+import org.ourproject.kune.rack.RackServletFilter;
+import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolAuthenticate;
+import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolAuthenticationResult;
+import org.waveprotocol.box.server.CoreSettings;
+import org.waveprotocol.box.server.authentication.SessionManager;
+import org.waveprotocol.box.server.rpc.BaseUrlHelper;
+import org.waveprotocol.box.server.rpc.MessageExpectingChannel;
+import org.waveprotocol.box.server.rpc.ProtoCallback;
+import org.waveprotocol.box.server.rpc.Rpc;
+import org.waveprotocol.box.server.rpc.ServerRpcController;
+import org.waveprotocol.box.server.rpc.SocketIOServerChannel;
+import org.waveprotocol.box.server.rpc.WebSocketServerChannel;
+import org.waveprotocol.box.server.util.NetUtils;
+import org.waveprotocol.wave.model.util.Pair;
+import org.waveprotocol.wave.model.wave.ParticipantId;
+import org.waveprotocol.wave.util.logging.Log;
+
+import com.glines.socketio.server.SocketIOInbound;
+import com.glines.socketio.server.SocketIOServlet;
+import com.glines.socketio.server.transport.FlashSocketTransport;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+import com.google.inject.name.Named;
+import com.google.inject.servlet.GuiceServletContextListener;
+import com.google.protobuf.Descriptors;
+import com.google.protobuf.Descriptors.MethodDescriptor;
+import com.google.protobuf.Message;
+import com.google.protobuf.RpcCallback;
+import com.google.protobuf.Service;
+import com.google.protobuf.UnknownFieldSet;
+
+import de.spieleck.servlets.ProxyServlet;
+
+/**
+ * ServerRpcProvider can provide instances of type Service over an incoming
+ * network socket and service incoming RPCs to these services and their methods.
+ *
+ *
+ */
+public class CustomServerRpcProvider {
+ abstract class Connection implements ProtoCallback {
+ private final Map<Long, ServerRpcController> activeRpcs = new ConcurrentHashMap<Long, ServerRpcController>();
+
+ // The logged in user.
+ // Note: Due to this bug:
+ // http://code.google.com/p/wave-protocol/issues/detail?id=119,
+ // the field may be null on first connect and then set later using an
+ // RPC.
+ private ParticipantId loggedInUser;
+
+ /**
+ * @param loggedInUser
+ * The currently logged in user, or null if no user is logged
+ * in.
+ */
+ public Connection(final ParticipantId loggedInUser) {
+ this.loggedInUser = loggedInUser;
+ }
+
+ private ParticipantId authenticate(final String token) {
+ final HttpSession session = sessionManager.getSessionFromToken(token);
+ final ParticipantId user = sessionManager.getLoggedInUser(session);
+ return user;
+ }
+
+ protected void expectMessages(final MessageExpectingChannel channel) {
+ synchronized (registeredServices) {
+ for (final RegisteredServiceMethod serviceMethod : registeredServices.values()) {
+ channel.expectMessage(serviceMethod.service.getRequestPrototype(serviceMethod.method));
+ LOG.fine("Expecting: " + serviceMethod.method.getFullName());
+ }
+ }
+ channel.expectMessage(Rpc.CancelRpc.getDefaultInstance());
+ }
+
+ @Override
+ public void message(final long sequenceNo, final Message message) {
+ if (message instanceof Rpc.CancelRpc) {
+ final ServerRpcController controller = activeRpcs.get(sequenceNo);
+ if (controller == null) {
+ throw new IllegalStateException("Trying to cancel an RPC that is not active!");
+ } else {
+ LOG.info("Cancelling open RPC " + sequenceNo);
+ controller.cancel();
+ }
+ } else if (message instanceof ProtocolAuthenticate) {
+ // Workaround for bug:
+ // http://codereview.waveprotocol.org/224001/
+
+ // When we get this message, either the connection will not be
+ // logged in
+ // (loggedInUser == null) or the connection will have been
+ // authenticated
+ // via cookies
+ // (in which case loggedInUser must match the authenticated
+ // user, and
+ // this message has no
+ // effect).
+
+ final ProtocolAuthenticate authMessage = (ProtocolAuthenticate) message;
+ final ParticipantId authenticatedAs = authenticate(authMessage.getToken());
+
+ Preconditions.checkArgument(authenticatedAs != null, "Auth token invalid");
+ Preconditions.checkState(loggedInUser == null || loggedInUser.equals(authenticatedAs),
+ "Session already authenticated as a different user");
+
+ loggedInUser = authenticatedAs;
+ LOG.info("Session authenticated as " + loggedInUser);
+ sendMessage(sequenceNo, ProtocolAuthenticationResult.getDefaultInstance());
+ } else if (registeredServices.containsKey(message.getDescriptorForType())) {
+ if (activeRpcs.containsKey(sequenceNo)) {
+ throw new IllegalStateException("Can't invoke a new RPC with a sequence number already in use.");
+ } else {
+ final RegisteredServiceMethod serviceMethod = registeredServices.get(message.getDescriptorForType());
+
+ // Create the internal ServerRpcController used to invoke
+ // the call.
+ final ServerRpcController controller = new ServerRpcControllerImpl(message, serviceMethod.service,
+ serviceMethod.method, loggedInUser, new RpcCallback<Message>() {
+ @Override
+ synchronized public void run(final Message message) {
+ if (message instanceof Rpc.RpcFinished
+ || !serviceMethod.method.getOptions().getExtension(Rpc.isStreamingRpc)) {
+ // This RPC is over - remove it from the
+ // map.
+ final boolean failed = message instanceof Rpc.RpcFinished ? ((Rpc.RpcFinished) message).getFailed()
+ : false;
+ LOG.fine("RPC " + sequenceNo + " is now finished, failed = " + failed);
+ if (failed) {
+ LOG.info("error = " + ((Rpc.RpcFinished) message).getErrorText());
+ }
+ activeRpcs.remove(sequenceNo);
+ }
+ sendMessage(sequenceNo, message);
+ }
+ });
+
+ // Kick off a new thread specific to this RPC.
+ activeRpcs.put(sequenceNo, controller);
+ threadPool.execute(controller);
+ }
+ } else {
+ // Sent a message type we understand, but don't expect -
+ // erronous case!
+ throw new IllegalStateException("Got expected but unknown message (" + message + ") for sequence: "
+ + sequenceNo);
+ }
+ }
+
+ protected abstract void sendMessage(long sequenceNo, Message message);
+
+ @Override
+ public void unknown(final long sequenceNo, final String messageType, final String message) {
+ throw new IllegalStateException("Got unknown message (type: " + messageType + ", " + message
+ + ") for sequence: " + sequenceNo);
+ }
+
+ @Override
+ public void unknown(final long sequenceNo, final String messageType, final UnknownFieldSet message) {
+ throw new IllegalStateException("Got unknown message (type: " + messageType + ", " + message
+ + ") for sequence: " + sequenceNo);
+ }
+ }
+
+ /**
+ * Internal, static container class for any specific registered service
+ * method.
+ */
+ static class RegisteredServiceMethod {
+ final MethodDescriptor method;
+ final Service service;
+
+ RegisteredServiceMethod(final Service service, final MethodDescriptor method) {
+ this.service = service;
+ this.method = method;
+ }
+ }
+ class SocketIOConnection extends Connection {
+ private final SocketIOServerChannel socketChannel;
+
+ SocketIOConnection(final ParticipantId loggedInUser) {
+ super(loggedInUser);
+ socketChannel = new SocketIOServerChannel(this);
+ LOG.info("New websocket connection set up for user " + loggedInUser);
+ expectMessages(socketChannel);
+ }
+
+ public SocketIOServerChannel getWebSocketServerChannel() {
+ return socketChannel;
+ }
+
+ @Override
+ protected void sendMessage(final long sequenceNo, final Message message) {
+ socketChannel.sendMessage(sequenceNo, message);
+ }
+ }
+ public class WaveSocketIOServlet extends SocketIOServlet {
+ @Override
+ protected SocketIOInbound doSocketIOConnect(final HttpServletRequest request, final String[] protocols) {
+ final ParticipantId loggedInUser = sessionManager.getLoggedInUser(request.getSession(false));
+
+ final SocketIOConnection connection = new SocketIOConnection(loggedInUser);
+ return connection.getWebSocketServerChannel();
+ }
+ }
+ public class WaveWebSocketServlet extends WebSocketServlet {
+ @Override
+ protected WebSocket doWebSocketConnect(final HttpServletRequest request, final String protocol) {
+ final ParticipantId loggedInUser = sessionManager.getLoggedInUser(request.getSession(false));
+
+ final WebSocketConnection connection = new WebSocketConnection(loggedInUser);
+ return connection.getWebSocketServerChannel();
+ }
+ }
+ class WebSocketConnection extends Connection {
+ private final WebSocketServerChannel socketChannel;
+
+ WebSocketConnection(final ParticipantId loggedInUser) {
+ super(loggedInUser);
+ socketChannel = new WebSocketServerChannel(this);
+ LOG.info("New websocket connection set up for user " + loggedInUser);
+ expectMessages(socketChannel);
+ }
+
+ public WebSocketServerChannel getWebSocketServerChannel() {
+ return socketChannel;
+ }
+
+ @Override
+ protected void sendMessage(final long sequenceNo, final Message message) {
+ socketChannel.sendMessage(sequenceNo, message);
+ }
+ }
+ private static final Log LOG = Log.get(CustomServerRpcProvider.class);
+
+ private static InetSocketAddress[] parseAddressList(final List<String> addressList) {
+ if (addressList == null || addressList.size() == 0) {
+ return new InetSocketAddress[0];
+ } else {
+ final Set<InetSocketAddress> addresses = Sets.newHashSet();
+ for (final String str : addressList) {
+ if (str.length() == 0) {
+ LOG.warning("Encountered empty address in http addresses list.");
+ } else {
+ try {
+ final InetSocketAddress address = NetUtils.parseHttpAddress(str);
+ if (!addresses.contains(address)) {
+ addresses.add(address);
+ } else {
+ LOG.warning("Ignoring duplicate address in http addresses list: Duplicate entry '" + str
+ + "' resolved to " + address.getAddress().getHostAddress());
+ }
+ } catch (final IOException e) {
+ LOG.severe("Unable to process address " + str, e);
+ }
+ }
+ }
+ return addresses.toArray(new InetSocketAddress[0]);
+ }
+ }
+ private final String baseUrl;
+
+ private final Integer flashsocketPolicyPort;
+
+ private final InetSocketAddress[] httpAddresses;
+
+ private Server httpServer = null;
+
+ private final Set<Connection> incomingConnections = Sets.newHashSet();
+
+ private final org.eclipse.jetty.server.SessionManager jettySessionManager;
+
+ // Mapping from incoming protocol buffer type -> specific handler.
+ private final Map<Descriptors.Descriptor, RegisteredServiceMethod> registeredServices = Maps.newHashMap();
+
+ private final String resourceBase;
+
+ /**
+ * Set of servlets
+ */
+ List<Pair<String, ServletHolder>> servletRegistry = Lists.newArrayList();
+
+ private final SessionManager sessionManager;
+
+ private final ExecutorService threadPool;
+
+ /**
+ * Construct a new ServerRpcProvider, hosting on the specified WebSocket
+ * addresses.
+ *
+ * Also accepts an ExecutorService for spawning managing threads.
+ */
+ public CustomServerRpcProvider(final InetSocketAddress[] httpAddresses, final Integer flashsocketPolicyPort,
+ final String baseUrl, final String resourceBase, final ExecutorService threadPool,
+ final SessionManager sessionManager, final org.eclipse.jetty.server.SessionManager jettySessionManager) {
+ this.httpAddresses = httpAddresses;
+ this.flashsocketPolicyPort = flashsocketPolicyPort;
+ this.baseUrl = BaseUrlHelper.removeLastSlash(baseUrl);
+ this.resourceBase = resourceBase;
+ this.threadPool = threadPool;
+ this.sessionManager = sessionManager;
+ this.jettySessionManager = jettySessionManager;
+ }
+
+ /**
+ * Constructs a new ServerRpcProvider with a default ExecutorService.
+ */
+ public CustomServerRpcProvider(final InetSocketAddress[] httpAddresses, final Integer flashsocketPolicyPort,
+ final String baseUrl, final String resourceBase, final SessionManager sessionManager,
+ final org.eclipse.jetty.server.SessionManager jettySessionManager) {
+ this(httpAddresses, flashsocketPolicyPort, baseUrl, resourceBase, Executors.newCachedThreadPool(),
+ sessionManager, jettySessionManager);
+ }
+
+ @Inject
+ public CustomServerRpcProvider((a)Named(CoreSettings.HTTP_FRONTEND_ADDRESSES) final List<String> httpAddresses,
+ @Named(CoreSettings.FLASHSOCKET_POLICY_PORT) final Integer flashsocketPolicyPort,
+ @Named(CoreSettings.HTTP_BASE_URL) final String baseUrl,
+ @Named(CoreSettings.RESOURCE_BASE) final String resourceBase, final SessionManager sessionManager,
+ final org.eclipse.jetty.server.SessionManager jettySessionManager) {
+ this(parseAddressList(httpAddresses), flashsocketPolicyPort, baseUrl, resourceBase, sessionManager,
+ jettySessionManager);
+ }
+
+ /**
+ * Add a servlet to the servlet registry. This servlet will be attached to
+ * the specified URL pattern when the server is started up.
+ *
+ * @param urlPattern
+ * URL pattern for paths. Eg, '/foo', '/foo/*'
+ * @param servlet
+ * The servlet object to bind to the specified paths
+ * @return the {@link ServletHolder} that holds the servlet.
+ */
+ public ServletHolder addServlet(final String urlPattern, final Servlet servlet) {
+ final ServletHolder servletHolder = new ServletHolder(servlet);
+ servletRegistry.add(new Pair<String, ServletHolder>(urlPattern, servletHolder));
+ return servletHolder;
+ }
+
+ /**
+ * @return a list of {@link SelectChannelConnector} each bound to a
+ * host:port pair form the list addresses.
+ */
+ private List<SelectChannelConnector> getSelectChannelConnectors(final InetSocketAddress[] httpAddresses) {
+ final List<SelectChannelConnector> list = Lists.newArrayList();
+ for (final InetSocketAddress address : httpAddresses) {
+ final SelectChannelConnector connector = new SelectChannelConnector();
+ connector.setHost(address.getAddress().getHostAddress());
+ connector.setPort(address.getPort());
+ list.add(connector);
+ }
+
+ return list;
+ }
+
+ /**
+ * Returns the socket the WebSocket server is listening on.
+ */
+ public SocketAddress getWebSocketAddress() {
+ if (httpServer == null) {
+ return null;
+ } else {
+ final Connector c = httpServer.getConnectors()[0];
+ return new InetSocketAddress(c.getHost(), c.getLocalPort());
+ }
+ }
+
+ /**
+ * Register all methods provided by the given service type.
+ */
+ public void registerService(final Service service) {
+ synchronized (registeredServices) {
+ for (final MethodDescriptor methodDescriptor : service.getDescriptorForType().getMethods()) {
+ registeredServices.put(methodDescriptor.getInputType(), new RegisteredServiceMethod(service,
+ methodDescriptor));
+ }
+ }
+ }
+
+ public void startWebSocketServer(final Injector injector) {
+ httpServer = new Server();
+
+ final List<SelectChannelConnector> connectors = getSelectChannelConnectors(httpAddresses);
+ if (connectors.isEmpty()) {
+ LOG.severe("No valid http end point address provided!");
+ }
+ for (final SelectChannelConnector connector : connectors) {
+ httpServer.addConnector(connector);
+ }
+
+ final WebAppContext context = new WebAppContext();
+
+ // FIXME This was with previous ServletContextHandler: needed?
+ // final ServletContextHandler context = new
+ // ServletContextHandler(ServletContextHandler.SESSIONS);
+
+ if (jettySessionManager != null) {
+ context.getSessionHandler().setSessionManager(jettySessionManager);
+ }
+ context.setResourceBase(resourceBase);
+ context.setContextPath(baseUrl);
+ context.setWar(baseUrl);
+ context.setParentLoaderPriority(true);
+ context.setDescriptor("WEB-INF/web.xml");
+
+ final ServletHolder httpbindHolder = new ServletHolder(ProxyServlet.class);
+ httpbindHolder.setInitParameter("remotePath", "/http-bind/");
+ httpbindHolder.setInitParameter("remotePort", "5280");
+ context.addServlet(httpbindHolder, "/http-bind/");
+
+ context.addEventListener(new ServletContextListener() {
+
+ @Override
+ public void contextDestroyed(final ServletContextEvent sce) {
+ }
+
+ @Override
+ public void contextInitialized(final ServletContextEvent sce) {
+ final ServletContext context = sce.getServletContext();
+ context.setAttribute("jruby.standalone", "true");
+ context.setAttribute("rails.root", "/WEB-INF/publicspace/");
+ context.setAttribute("files.prefix", "/WEB-INF/publicspace/public");
+ context.setAttribute("rails.env", "production");
+ context.setAttribute("jruby.max.runtimes", "1");
+ context.setAttribute("public.root", "/public/");
+ }
+ });
+
+ context.addEventListener(new RackServletContextListener());
+ // final FilterHolder rubyRack = new
+ // FilterHolder(org.jruby.rack.rails.RailsServletContextListener.class);
+ // rubyRack.setFilter(new RackFilter());
+
+ // context.getInitParameter("rails.root");
+
+ context.addFilter(RackFilter.class, "/public/*", 0);
+
+ context.addEventListener(new GuiceServletContextListener() {
+ @Override
+ protected Injector getInjector() {
+ return injector;
+ }
+ });
+ context.setAttribute(RackServletFilter.INJECTOR_PARENT_ATTRIBUTE, injector);
+ final FilterHolder filterHolder = new FilterHolder(RackServletFilter.class);
+ filterHolder.setInitParameter("org.ourproject.kune.rack.RackModule",
+ "org.ourproject.kune.app.server.KuneRackModule");
+ context.addFilter(filterHolder, "/ws/*", 0);
+
+ // context.addFilter(GuiceFilter.class, "/*", 0);
+
+ // Servlet where the websocket connection is served from.
+ final ServletHolder wsholder = new ServletHolder(new WaveWebSocketServlet());
+ context.addServlet(wsholder, "/socket");
+ // TODO(zamfi): fix to let messages span frames.
+ wsholder.setInitParameter("bufferSize", "" + 1024 * 1024); // 1M buffer
+
+ // Servlet where the websocket connection is served from.
+ final ServletHolder sioholder = new ServletHolder(new WaveSocketIOServlet());
+ context.addServlet(sioholder, "/socket.io/*");
+ // TODO(zamfi): fix to let messages span frames.
+ sioholder.setInitParameter("bufferSize", "" + 1024 * 1024); // 1M buffer
+ // Set flash policy server parameters
+ String flashPolicyServerHost = "localhost";
+ final StringBuilder flashPolicyAllowedPorts = new StringBuilder();
+ /*
+ * Loop through addresses, collect list of ports, and determine if we
+ * are to use "localhost" of the AnyHost wildcard.
+ */
+ for (final InetSocketAddress addr : httpAddresses) {
+ if (flashPolicyAllowedPorts.length() > 0) {
+ flashPolicyAllowedPorts.append(",");
+ }
+ flashPolicyAllowedPorts.append(addr.getPort());
+ if (!addr.getAddress().isLoopbackAddress()) {
+ // Until it's possible to pass a list of address, this is the
+ // only valid alternative.
+ flashPolicyServerHost = "0.0.0.0";
+ }
+ }
+ sioholder.setInitParameter(FlashSocketTransport.FLASHPOLICY_SERVER_HOST_KEY, flashPolicyServerHost);
+ sioholder.setInitParameter(FlashSocketTransport.FLASHPOLICY_SERVER_PORT_KEY, "" + flashsocketPolicyPort);
+ // TODO: Change to use the public http address and all other bound
+ // addresses.
+ sioholder.setInitParameter(FlashSocketTransport.FLASHPOLICY_DOMAIN_KEY, "*");
+ sioholder.setInitParameter(FlashSocketTransport.FLASHPOLICY_PORTS_KEY, flashPolicyAllowedPorts.toString());
+
+ // Serve the static content and GWT web client with the default servlet
+ // (acts like a standard file-based web server).
+ final ServletHolder defaultServlet = new ServletHolder(new DefaultServlet());
+ context.addServlet(defaultServlet, "/static/*");
+ context.addServlet(defaultServlet, "/webclient/*");
+ context.addServlet(defaultServlet, "/ws/*");
+ context.addServlet(defaultServlet, "/images/*");
+ context.addServlet(defaultServlet, "/javascripts/*");
+ context.addServlet(defaultServlet, "/stylesheets/*");
+ context.addServlet(defaultServlet, "/templates/*");
+
+ for (final Pair<String, ServletHolder> servlet : servletRegistry) {
+ context.addServlet(servlet.getSecond(), servlet.getFirst());
+ }
+
+ httpServer.setHandler(context);
+
+ try {
+ httpServer.start();
+ } catch (final Exception e) { // yes, .start() throws "Exception"
+ LOG.severe("Fatal error starting http server.", e);
+ return;
+ }
+ LOG.fine("WebSocket server running. --------");
+ }
+
+ /**
+ * Stops this server.
+ */
+ public void stopServer() throws IOException {
+ try {
+ httpServer.stop(); // yes, .stop() throws "Exception"
+ } catch (final Exception e) {
+ LOG.warning("Fatal error stopping http server.", e);
+ }
+ LOG.fine("server shutdown.");
+ }
+}
1
0
18 Feb '11
Author: vjrj_
Date: 2011-02-18 01:52:37 +0100 (Fri, 18 Feb 2011)
New Revision: 1255
Modified:
trunk/.classpath
trunk/.project
trunk/pom.xml
trunk/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java
Log:
Minor changes towards gwt 2.2.0
Modified: trunk/.classpath
===================================================================
--- trunk/.classpath 2011-02-17 17:31:43 UTC (rev 1254)
+++ trunk/.classpath 2011-02-18 00:52:37 UTC (rev 1255)
@@ -1,116 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/>
- <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.0.7/WEB-INF/classes"/>
- <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/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/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/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-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/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"/>
- <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.2/commons-collections-3.2.jar" sourcepath="M2_REPO/commons-collections/commons-collections/3.2/commons-collections-3.2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-fileupload/commons-fileupload/1.1.1/commons-fileupload-1.1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.2/commons-io-1.2.jar" sourcepath="M2_REPO/commons-io/commons-io/1.2/commons-io-1.2-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/net/sourceforge/htmlunit/crawl_htmlunit/r5662-gae/crawl_htmlunit-r5662-gae.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"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar" sourcepath="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/calclab/emite/emite/r1694/emite-r1694.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/calclab/emite/emite-proxy/0.1/emite-proxy-0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/net/sf/ezmorph/ezmorph/1.0.3/ezmorph-1.0.3.jar" sourcepath="M2_REPO/net/sf/ezmorph/ezmorph/1.0.3/ezmorph-1.0.3-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/freemarker/freemarker/2.3.8/freemarker-2.3.8.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/googlecode/gwt/inject/gin/r137/gin-r137.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/guava/guava-gwt/r07/guava-gwt-r07.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/inject/guice/3.0-rc2/guice-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/guice/3.0-rc2/guice-3.0-rc2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-assisted-inject/2.0/guice-assisted-inject-2.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-servlet/3.0-rc2/guice-servlet-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-servlet/3.0-rc2/guice-servlet-3.0-rc2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/jhickman/web/gwt/gwt-customuibinder/0.1/gwt-customuibinder-0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/adamtacy/gwt-fx/r464/gwt-fx-r464.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-gin/1.0-r137/gwt-gin-1.0-r137.jar"/>
- <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.0/gwt-util-src-0.3.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/allen_sauer/gwt/voices/gwt-voices/gwt-voices/1.6.0/gwt-voices-1.6.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"/>
- <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"/>
- <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-mvp-client/0.5/gwtp-mvp-client-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-mvp-client/0.5/gwtp-mvp-client-0.5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-processors/0.5/gwtp-processors-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-processors/0.5/gwtp-processors-0.5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-tester/0.5/gwtp-tester-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-tester/0.5/gwtp-tester-0.5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/extjs/gxt/2.2.1/gxt-2.2.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/jhickman/web/gwt/gxt-uibinder/0.6/gxt-uibinder-0.6.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.0.20070617/h2-1.0.20070617.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/calclab/emite/hablar/r1694/hablar-r1694.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar" sourcepath="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-c3p0/3.3.1.GA/hibernate-c3p0-3.3.1.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-c3p0/3.3.1.GA/hibernate-c3p0-3.3.1.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.3.0.ga/hibernate-commons-annotations-3.3.0.ga.jar" sourcepath="M2_REPO/org/hibernate/hibernate-commons-annotations/3.3.0.ga/hibernate-commons-annotations-3.3.0.ga-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-core/3.3.1.GA/hibernate-core-3.3.1.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-core/3.3.1.GA/hibernate-core-3.3.1.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-search/3.1.0.GA/hibernate-search-3.1.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-search/3.1.0.GA/hibernate-search-3.1.0.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-tools/3.2.3.GA/hibernate-tools-3.2.3.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-validator/3.1.0.GA/hibernate-validator-3.1.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-validator/3.1.0.GA/hibernate-validator-3.1.0.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/jcl-over-slf4j/1.6.1/jcl-over-slf4j-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/jcl-over-slf4j/1.6.1/jcl-over-slf4j-1.6.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/codehaus/jettison/jettison/1.0-RC2/jettison-1.0-RC2.jar" sourcepath="M2_REPO/org/codehaus/jettison/jettison/1.0-RC2/jettison-1.0-RC2-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/jmagick/jmagick/6.2.6-0/jmagick-6.2.6-0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jruby/jruby-complete/1.2.0/jruby-complete-1.2.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jruby/rack/jruby-rack/0.9.4/jruby-rack-0.9.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/net/sf/json-lib/json-lib/2.1/json-lib-2.1-jdk15.jar" sourcepath="M2_REPO/net/sf/json-lib/json-lib/2.1/json-lib-2.1-jdk15-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/net/sourceforge/findbugs/jsr-305/v0r47/jsr-305-v0r47.jar" sourcepath="M2_REPO/net/sourceforge/findbugs/jsr-305/v0r47/jsr-305-v0r47-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/jtidy/r8-20060801/jtidy-r8-20060801.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jukito/jukito/1.0/jukito-1.0.jar" sourcepath="M2_REPO/org/jukito/jukito/1.0/jukito-1.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/4.8.1/junit-4.8.1.jar" sourcepath="M2_REPO/junit/junit/4.8.1/junit-4.8.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/liquibase/liquibase-core/1.7.0/liquibase-core-1.7.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/liquibase/liquibase-plugin/1.7.0.0/liquibase-plugin-1.7.0.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.16/log4j-1.2.16.jar" sourcepath="M2_REPO/log4j/log4j/1.2.16/log4j-1.2.16-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" sourcepath="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.4.0/lucene-core-2.4.0.jar" sourcepath="M2_REPO/org/apache/lucene/lucene-core/2.4.0/lucene-core-2.4.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-model/2.0/maven-model-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-model/2.0/maven-model-2.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0-sources.jar"/>
- <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/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/mysql/mysql-connector-java/5.1.13/mysql-connector-java-5.1.13.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-gwt/0.3.1/proto-gwt-0.3.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jivesoftware/smack/smack/3.0.4/smack-3.0.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jivesoftware/smackx/smackx/3.0.4/smackx-3.0.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jivesoftware/smackx/debugger/smackx-debugger/3.0.4/smackx-debugger-3.0.4.jar"/>
- <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/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-custom/0.3.6/waveinabox-server-custom-0.3.6.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="target/generated-sources/apt" including="**/*.java"/> <classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
-</classpath>
\ No newline at end of file
+ <classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry including="**/*.java" kind="src" path="src/main/java"/>
+ <classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
+ <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/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/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/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-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/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"/>
+ <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.2/commons-collections-3.2.jar" sourcepath="M2_REPO/commons-collections/commons-collections/3.2/commons-collections-3.2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-fileupload/commons-fileupload/1.1.1/commons-fileupload-1.1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.2/commons-io-1.2.jar" sourcepath="M2_REPO/commons-io/commons-io/1.2/commons-io-1.2-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/net/sourceforge/htmlunit/crawl_htmlunit/r5662-gae/crawl_htmlunit-r5662-gae.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"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar" sourcepath="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/calclab/emite/emite/r1694/emite-r1694.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/calclab/emite/emite-proxy/0.1/emite-proxy-0.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/net/sf/ezmorph/ezmorph/1.0.3/ezmorph-1.0.3.jar" sourcepath="M2_REPO/net/sf/ezmorph/ezmorph/1.0.3/ezmorph-1.0.3-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/freemarker/freemarker/2.3.8/freemarker-2.3.8.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/guava/guava-gwt/r07/guava-gwt-r07.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/inject/guice/3.0-rc2/guice-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/guice/3.0-rc2/guice-3.0-rc2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-assisted-inject/2.0/guice-assisted-inject-2.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-servlet/3.0-rc2/guice-servlet-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-servlet/3.0-rc2/guice-servlet-3.0-rc2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/jhickman/web/gwt/gwt-customuibinder/0.1/gwt-customuibinder-0.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/adamtacy/gwt-fx/r464/gwt-fx-r464.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-gin/1.0-r137/gwt-gin-1.0-r137.jar"/>
+ <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-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.0/gwt-util-src-0.3.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/allen_sauer/gwt/voices/gwt-voices/gwt-voices/1.6.0/gwt-voices-1.6.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"/>
+ <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"/>
+ <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-mvp-client/0.5/gwtp-mvp-client-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-mvp-client/0.5/gwtp-mvp-client-0.5-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-processors/0.5/gwtp-processors-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-processors/0.5/gwtp-processors-0.5-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-tester/0.5/gwtp-tester-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-tester/0.5/gwtp-tester-0.5-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/extjs/gxt/2.2.1/gxt-2.2.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/jhickman/web/gwt/gxt-uibinder/0.6/gxt-uibinder-0.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.0.20070617/h2-1.0.20070617.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/calclab/emite/hablar/r1694/hablar-r1694.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar" sourcepath="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-c3p0/3.3.1.GA/hibernate-c3p0-3.3.1.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-c3p0/3.3.1.GA/hibernate-c3p0-3.3.1.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.3.0.ga/hibernate-commons-annotations-3.3.0.ga.jar" sourcepath="M2_REPO/org/hibernate/hibernate-commons-annotations/3.3.0.ga/hibernate-commons-annotations-3.3.0.ga-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-core/3.3.1.GA/hibernate-core-3.3.1.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-core/3.3.1.GA/hibernate-core-3.3.1.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-search/3.1.0.GA/hibernate-search-3.1.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-search/3.1.0.GA/hibernate-search-3.1.0.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-tools/3.2.3.GA/hibernate-tools-3.2.3.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-validator/3.1.0.GA/hibernate-validator-3.1.0.GA.jar" sourcepath="M2_REPO/org/hibernate/hibernate-validator/3.1.0.GA/hibernate-validator-3.1.0.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/jcl-over-slf4j/1.6.1/jcl-over-slf4j-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/jcl-over-slf4j/1.6.1/jcl-over-slf4j-1.6.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/codehaus/jettison/jettison/1.0-RC2/jettison-1.0-RC2.jar" sourcepath="M2_REPO/org/codehaus/jettison/jettison/1.0-RC2/jettison-1.0-RC2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jmagick/jmagick/6.2.6-0/jmagick-6.2.6-0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jruby/jruby-complete/1.2.0/jruby-complete-1.2.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jruby/rack/jruby-rack/0.9.4/jruby-rack-0.9.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/net/sf/json-lib/json-lib/2.1/json-lib-2.1-jdk15.jar" sourcepath="M2_REPO/net/sf/json-lib/json-lib/2.1/json-lib-2.1-jdk15-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/net/sourceforge/findbugs/jsr-305/v0r47/jsr-305-v0r47.jar" sourcepath="M2_REPO/net/sourceforge/findbugs/jsr-305/v0r47/jsr-305-v0r47-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/jtidy/r8-20060801/jtidy-r8-20060801.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jukito/jukito/1.0/jukito-1.0.jar" sourcepath="M2_REPO/org/jukito/jukito/1.0/jukito-1.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.8.1/junit-4.8.1.jar" sourcepath="M2_REPO/junit/junit/4.8.1/junit-4.8.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/liquibase/liquibase-core/1.7.0/liquibase-core-1.7.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/liquibase/liquibase-plugin/1.7.0.0/liquibase-plugin-1.7.0.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.16/log4j-1.2.16.jar" sourcepath="M2_REPO/log4j/log4j/1.2.16/log4j-1.2.16-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" sourcepath="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.4.0/lucene-core-2.4.0.jar" sourcepath="M2_REPO/org/apache/lucene/lucene-core/2.4.0/lucene-core-2.4.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-model/2.0/maven-model-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-model/2.0/maven-model-2.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0-sources.jar"/>
+ <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/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/mysql/mysql-connector-java/5.1.13/mysql-connector-java-5.1.13.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-gwt/0.3.1/proto-gwt-0.3.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar" sourcepath="M2_REPO/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jivesoftware/smack/smack/3.0.4/smack-3.0.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jivesoftware/smackx/smackx/3.0.4/smackx-3.0.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jivesoftware/smackx/debugger/smackx-debugger/3.0.4/smackx-debugger-3.0.4.jar"/>
+ <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/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-custom/0.3.6/waveinabox-server-custom-0.3.6.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 including="**/*.java" kind="src" path="target/generated-sources/apt"/>
+ <classpathentry kind="lib" path="/home/vjrj/bin/eclipse64-hel-new/plugins/com.google.gwt.eclipse.sdkbundle.2.1.1_2.1.1.v201012170127/gwt-2.1.1/gwt-user.jar">
+ <attributes>
+ <attribute name="javadoc_location" value="file:/home/vjrj/bin/eclipse64-hel-new/plugins/com.google.gwt.eclipse.sdkbundle.2.1.1_2.1.1.v201012170127/gwt-2.1.1/doc/javadoc/"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="lib" path="/home/vjrj/bin/eclipse64-hel-new/plugins/com.google.gwt.eclipse.sdkbundle.2.1.1_2.1.1.v201012170127/gwt-2.1.1/gwt-dev.jar">
+ <attributes>
+ <attribute name="javadoc_location" value="file:/home/vjrj/bin/eclipse64-hel-new/plugins/com.google.gwt.eclipse.sdkbundle.2.1.1_2.1.1.v201012170127/gwt-2.1.1/doc/javadoc/"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="target/kune-0.0.7/WEB-INF/classes"/>
+</classpath>
Modified: trunk/.project
===================================================================
--- trunk/.project 2011-02-17 17:31:43 UTC (rev 1254)
+++ trunk/.project 2011-02-18 00:52:37 UTC (rev 1255)
@@ -1,88 +1,74 @@
-<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>kune</name>
- <comment>kune free/open/libre collaboration platform. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/org.eclipse.wst.common.project.facet.core.builder (2).launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/org.eclipse.wst.validation.validationbuilder (3).launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/com.google.gwt.eclipse.core.gwtProjectValidator (2).launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/org.eclipse.wst.validation.validationbuilder (4).launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.validation.validationbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>edu.umd.cs.findbugs.plugin.eclipse.findbugsBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
- <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
- <nature>org.eclipse.ajdt.ui.ajnature</nature>
- <nature>com.google.gwt.eclipse.core.gwtNature</nature>
- <nature>edu.umd.cs.findbugs.plugin.eclipse.findbugsNature</nature>
- </natures>
-</projectDescription>
+ <name>kune</name>
+ <comment>kune free/open/libre collaboration platform. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value><project>/.externalToolBuilders/org.eclipse.wst.common.project.facet.core.builder (2).launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value><project>/.externalToolBuilders/org.eclipse.wst.validation.validationbuilder (3).launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value><project>/.externalToolBuilders/com.google.gwt.eclipse.core.gwtProjectValidator (2).launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
+ </buildCommand>
+ <buildCommand>
+ <name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value><project>/.externalToolBuilders/org.eclipse.wst.validation.validationbuilder (4).launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ </buildCommand>
+ <buildCommand>
+ <name>edu.umd.cs.findbugs.plugin.eclipse.findbugsBuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ <nature>org.eclipse.ajdt.ui.ajnature</nature>
+ <nature>com.google.gwt.eclipse.core.gwtNature</nature>
+ <nature>edu.umd.cs.findbugs.plugin.eclipse.findbugsNature</nature>
+ </natures>
+</projectDescription>
\ No newline at end of file
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-02-17 17:31:43 UTC (rev 1254)
+++ trunk/pom.xml 2011-02-18 00:52:37 UTC (rev 1255)
@@ -96,6 +96,12 @@
</snapshots>
</repository>
<repository>
+ <id>gwtplatform.snapshot.repo</id>
+ <name>Gwtplatform snapshot repository</name>
+ <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
+ <layout>default</layout>
+ </repository>
+ <repository>
<id>openqa.org</id>
<name>Openqa Release Repository</name>
<url>http://archiva.openqa.org/repository/releases</url>
@@ -211,12 +217,12 @@
<!-- <version>2.1-SNAPSHOT-r1160</version> -->
<version>3.0-rc2</version>
</dependency>
+ <!-- <dependency>
+<groupId>com.googlecode.gwt.inject</groupId>
+<artifactId>gin</artifactId>
+<version>gin-1.1-SNAPSHOT</version>
+</dependency>-->
<dependency>
- <groupId>com.googlecode.gwt.inject</groupId>
- <artifactId>gin</artifactId>
- <version>r137</version>
- </dependency>
- <dependency>
<groupId>com.google.inject.extensions</groupId>
<artifactId>guice-servlet</artifactId>
<version>3.0-rc2</version>
@@ -241,6 +247,7 @@
<groupId>com.gwtplatform</groupId>
<artifactId>gwtp-all</artifactId>
<version>0.5</version>
+<!-- <version>0.6-SNAPSHOT</version>-->
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
@@ -1010,14 +1017,14 @@
<!-- <onejarVersion>0.97</onejarVersion> -->
<!-- Optional, use only if you need to include native libraries
(dll's) -->
-<!-- <binlibs>-->
-<!-- <fileSet>-->
-<!-- <directory>${project.build.directory}/${project.build.finalName}</directory>-->
-<!-- <includes>-->
-<!-- <include>**</include>-->
-<!-- </includes>-->
-<!-- </fileSet>-->
-<!-- </binlibs>-->
+ <!-- <binlibs> -->
+ <!-- <fileSet> -->
+ <!-- <directory>${project.build.directory}/${project.build.finalName}</directory> -->
+ <!-- <includes> -->
+ <!-- <include>**</include> -->
+ <!-- </includes> -->
+ <!-- </fileSet> -->
+ <!-- </binlibs> -->
<!-- Optional, default is false -->
<attachToBuild>true</attachToBuild>
<!-- Optional, default is "onejar" -->
Modified: trunk/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java 2011-02-17 17:31:43 UTC (rev 1254)
+++ trunk/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java 2011-02-18 00:52:37 UTC (rev 1255)
@@ -22,8 +22,8 @@
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.FilterHolder;
-import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.webapp.WebAppContext;
import org.eclipse.jetty.websocket.WebSocket;
import org.eclipse.jetty.websocket.WebSocketServlet;
import org.jruby.rack.RackFilter;
@@ -423,18 +423,21 @@
httpServer.addConnector(connector);
}
- // final WebAppContext webContext = new WebAppContext();
- final ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
+ final WebAppContext context = new WebAppContext();
+
+ // FIXME This was with previous ServletContextHandler: needed?
+ // final ServletContextHandler context = new
+ // ServletContextHandler(ServletContextHandler.SESSIONS);
+
if (jettySessionManager != null) {
context.getSessionHandler().setSessionManager(jettySessionManager);
}
context.setResourceBase(resourceBase);
context.setContextPath(baseUrl);
+ context.setWar(baseUrl);
+ context.setParentLoaderPriority(true);
+ context.setDescriptor("WEB-INF/web.xml");
- // webContext.setResourceBase(resourceBase);
- // webContext.setContextPath(baseUrl);
- // webContext.setWar(baseUrl);
-
final ServletHolder httpbindHolder = new ServletHolder(ProxyServlet.class);
httpbindHolder.setInitParameter("remotePath", "/http-bind/");
httpbindHolder.setInitParameter("remotePort", "5280");
1
0
Author: vjrj_
Date: 2011-02-14 01:14:58 +0100 (Mon, 14 Feb 2011)
New Revision: 1252
Added:
branches/wave-jetty-embed-guice/img/webtemplate/web_home_template-2011.svg
branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/public/logo-big-home.png
Modified:
branches/wave-jetty-embed-guice/.project
branches/wave-jetty-embed-guice/TODO
branches/wave-jetty-embed-guice/src/main/java/cc/kune/chat/client/ChatClientDefault.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/common/client/noti/NotifyUser.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/auth/SignInAbstractPresenter.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/auth/SignInPresenter.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/SessionDefault.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/UserSignInEvent.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/public/ws.html
branches/wave-jetty-embed-guice/src/main/java/cc/kune/gspace/client/WsArmor.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/gspace/client/WsArmorImpl.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/pspace/client/PSpacePanel.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/client/WaveClientTester.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java
branches/wave-jetty-embed-guice/src/main/webapp/WEB-INF/web.xml
Log:
Few wiab changes
Modified: branches/wave-jetty-embed-guice/.project
===================================================================
--- branches/wave-jetty-embed-guice/.project 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/.project 2011-02-14 00:14:58 UTC (rev 1252)
@@ -1,78 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>kune</name>
- <comment>kune free/open/libre collaboration platform. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
- <projects/>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/org.eclipse.wst.common.project.facet.core.builder (2).launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/org.eclipse.wst.validation.validationbuilder (3).launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/com.google.gwt.eclipse.core.gwtProjectValidator (2).launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
- </buildCommand>
- <buildCommand>
- <name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/org.eclipse.wst.validation.validationbuilder (4).launch</value>
- </dictionary>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.validation.validationbuilder</name>
- </buildCommand>
- <buildCommand>
- <name>net.sourceforge.pmd.eclipse.plugin.pmdBuilder</name>
- </buildCommand>
- <buildCommand>
- <name>edu.umd.cs.findbugs.plugin.eclipse.findbugsBuilder</name>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
- <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
- <nature>org.eclipse.ajdt.ui.ajnature</nature>
- <nature>com.google.gwt.eclipse.core.gwtNature</nature>
- <nature>net.sourceforge.pmd.eclipse.plugin.pmdNature</nature>
- <nature>edu.umd.cs.findbugs.plugin.eclipse.findbugsNature</nature>
- </natures>
-</projectDescription>
\ No newline at end of file
+ <name>kune</name>
+ <comment>kune free/open/libre collaboration platform. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value><project>/.externalToolBuilders/org.eclipse.wst.common.project.facet.core.builder (2).launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value><project>/.externalToolBuilders/org.eclipse.wst.validation.validationbuilder (3).launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value><project>/.externalToolBuilders/com.google.gwt.eclipse.core.gwtProjectValidator (2).launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value><project>/.externalToolBuilders/org.eclipse.wst.validation.validationbuilder (4).launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>edu.umd.cs.findbugs.plugin.eclipse.findbugsBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ <nature>org.eclipse.ajdt.ui.ajnature</nature>
+ <nature>com.google.gwt.eclipse.core.gwtNature</nature>
+ <nature>edu.umd.cs.findbugs.plugin.eclipse.findbugsNature</nature>
+ </natures>
+</projectDescription>
Modified: branches/wave-jetty-embed-guice/TODO
===================================================================
--- branches/wave-jetty-embed-guice/TODO 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/TODO 2011-02-14 00:14:58 UTC (rev 1252)
@@ -12,6 +12,7 @@
* SHORT-TERM (URGENT)
** >> Delete host/room conf in ws.html
+** >> kune.properties from cmd line
** HelloWord with samples of extensions: sitebar, sitebar options menu, siteuseroptions, sn, ...
** TODO Register of "reserved words" not permitted for groups/users names (in server and in client)
** TODO WIAB under proxies
Added: branches/wave-jetty-embed-guice/img/webtemplate/web_home_template-2011.svg
===================================================================
--- branches/wave-jetty-embed-guice/img/webtemplate/web_home_template-2011.svg (rev 0)
+++ branches/wave-jetty-embed-guice/img/webtemplate/web_home_template-2011.svg 2011-02-14 00:14:58 UTC (rev 1252)
@@ -0,0 +1,3125 @@
+<?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"
+ width="1024"
+ height="768"
+ id="svg3182"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="web_home_template-2011.svg"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/web_template-2011.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ style="display:inline">
+ <defs
+ id="defs3184" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="546.88652"
+ inkscape:cy="736.55101"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ showgrid="false"
+ inkscape:window-width="1280"
+ inkscape:window-height="974"
+ inkscape:window-x="0"
+ inkscape:window-y="21"
+ inkscape:window-maximized="1"
+ inkscape:snap-bbox="false"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-page="true"
+ inkscape:snap-object-midpoints="false"
+ inkscape:snap-global="true"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-nodes="false"
+ inkscape:snap-bbox-edge-midpoints="true"
+ borderlayer="false"
+ showborder="false"
+ inkscape:showpageshadow="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3446"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true"
+ dotted="true"
+ color="#58586d"
+ opacity="0.90980392"
+ empcolor="#b2b2b2"
+ empopacity="0" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata3187">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer6"
+ inkscape:label="background"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <rect
+ style="color:#000000;fill:#ececec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5254"
+ width="1508.2104"
+ height="880"
+ x="-228.21049"
+ y="-32"
+ rx="5"
+ ry="4.9999995"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/web_template-2011.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </g>
+ <g
+ id="layer1"
+ inkscape:label="normal"
+ inkscape:groupmode="layer"
+ style="display:inline">
+ <rect
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5037"
+ width="1013"
+ height="657.95032"
+ x="7"
+ y="112"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/web_template-2011.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <rect
+ style="color:#000000;fill:#ff9999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4635"
+ width="87.859406"
+ height="19.905512"
+ x="2.0708618"
+ y="111.27247"
+ rx="4"
+ ry="4" />
+ <g
+ style="opacity:0.5;display:inline"
+ id="g5064"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/web_template-2011.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ transform="translate(804.21116,-0.597721)">
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-logo-16px.png"
+ id="path5050"
+ d="m 206.0077,119.17481 c -0.23779,0 -0.46633,8.7e-4 -0.69567,0.0158 -0.0214,0.004 -0.0417,0.0118 -0.0632,0.0158 -0.21349,0.0399 -0.4241,0.0739 -0.6482,0.0791 -0.0311,0.004 -0.064,-0.005 -0.0949,0 -1.82915,0.27537 -3.37459,1.06959 -4.61662,2.38736 -1.45043,1.53186 -2.18178,3.36697 -2.18178,5.50197 0,2.15893 0.73135,4.00649 2.18178,5.53358 1.57013,1.64669 3.61017,2.46636 6.11859,2.46636 1.33077,0 2.61016,-0.33065 3.82604,-0.99601 1.21588,-0.64624 2.27312,-1.56093 3.1779,-2.71936 l -2.73518,-1.51778 c -1.17765,1.57013 -2.6245,2.35569 -4.34781,2.35569 -1.19676,0 -2.26981,-0.3882 -3.1937,-1.1541 -0.93824,-0.76596 -1.40711,-1.69889 -1.40711,-2.81422 l 12.5059,0 0,-0.63244 c 0,-2.70464 -0.91615,-4.8704 -2.73518,-6.49798 -1.53185,-1.35475 -3.22873,-2.02374 -5.09086,-2.02374 z m -58.15001,0.11067 0,6.0553 -2.1186,0 0,3.09885 2.1186,0 0,6.32407 3.22527,0 0,-6.32407 1.94464,0 3.96838,6.32407 3.82609,0 -5.32806,-8.03161 5.09091,-7.14623 -3.90514,0 -3.93676,5.75492 -1.66006,0 0,-6.0553 -3.22527,0 z m 39.573,0 c -0.55523,0.0991 -1.07256,0.26037 -1.5494,0.50596 -0.80423,0.43082 -1.43916,0.99904 -1.91307,1.7075 l 0,-1.91308 -3.24108,0 0,15.17784 3.24108,0 0,-8.5059 c 0,-1.21588 0.3431,-2.14881 1.02768,-2.81422 0.68934,-0.66536 1.5632,-0.99601 2.64032,-0.99607 1.13926,6e-5 2.02899,0.30575 2.65612,0.93283 0.62708,0.62713 0.93277,1.60993 0.93277,2.94069 l 0,8.44267 3.24113,0 0,-9.1541 c -5e-5,-1.86218 -0.56822,-3.40069 -1.70754,-4.61662 -0.85448,-0.91187 -1.84318,-1.4795 -2.97232,-1.7075 l -2.35569,0 z m -24.56913,0.30038 0,8.79053 c 0,2.0584 0.69395,3.72268 2.08698,4.99601 1.29249,1.19676 2.89338,1.80235 4.77467,1.80235 1.90046,0 3.49322,-0.60559 4.79053,-1.80235 1.39298,-1.27333 2.08693,-2.93761 2.08693,-4.99601 l 0,-8.79053 -3.24108,0 0,8.50591 c -6e-5,1.12015 -0.34316,2.03148 -1.02768,2.73517 -0.70851,0.72762 -1.56992,1.09092 -2.6087,1.09092 -1.0005,0 -1.86857,-0.36806 -2.57708,-1.09092 -0.70369,-0.72762 -1.04349,-1.63413 -1.04343,-2.73517 l 0,-8.50591 -3.24114,0 z m 42.73504,2.49803 c 1.05794,0 1.98172,0.2966 2.76679,0.8854 0.76114,0.60314 1.32167,1.48182 1.67593,2.64031 l -8.71148,0 c 0.25371,-1.11539 0.78014,-1.98162 1.5652,-2.60869 0.76114,-0.60797 1.66002,-0.91702 2.70356,-0.91702 z"
+ style="font-size:58.13353348px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#a56941;fill-opacity:1;stroke:none;font-family:Emblem" />
+ <g
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-logo-16px.png"
+ transform="matrix(0.1111494,0,0,0.111008,121.5678,22.515968)"
+ id="g5052">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path5054"
+ d="m 60.321717,411.99998 377.014613,0"
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23953247;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path5056"
+ d="m 252.61203,788.60332 0,-377.01178"
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffdb6b;stroke-width:109.23950958;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path5058"
+ d="m 252.86937,597.15755 377.0124,0"
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#69312f;stroke-width:109.23951721;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path5060"
+ d="m 437.45588,596.97447 0,-377.01491"
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#cc6633;stroke-width:109.23950195;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path5062"
+ d="m 372.87905,411.27704 64.93441,0"
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23947906;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ </g>
+ </g>
+ <g
+ style="display:inline"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/web_template-2011.png"
+ transform="matrix(1.0005291,0,0,1,-859.84649,-399.18897)"
+ id="g5355">
+ <g
+ style="opacity:0.5;display:inline"
+ id="g5357"
+ transform="translate(1196.4702,509.33669)"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-org-home-draft-0.5.png"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-ydpi="90.000000">
+ <rect
+ style="fill:#dd8a3d;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect5359"
+ width="15.999997"
+ height="15.999997"
+ x="405.52979"
+ y="8.8522816"
+ rx="3.7976301"
+ ry="3.7996395" />
+ <g
+ transform="matrix(1.635216,0,0,1.635216,-260.6467,-12.57016)"
+ id="g5361">
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.74860978;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.37500004;marker:none;visibility:visible;display:inline;overflow:visible"
+ d="m 409.34583,20.876719 3.87812,-3.835542"
+ id="path5363" />
+ <g
+ id="g5365">
+ <path
+ transform="matrix(0.102065,0,0,0.102065,387.7515,-17.05636)"
+ d="m 277.35793,332.62314 c 0,14.81376 -12.00893,26.82268 -26.82268,26.82268 -14.81376,0 -26.82268,-12.00892 -26.82268,-26.82268 0,-14.81376 12.00892,-26.82268 26.82268,-26.82268 14.81375,0 26.82268,12.00892 26.82268,26.82268 z"
+ sodipodi:ry="26.82268"
+ sodipodi:rx="26.82268"
+ sodipodi:cy="332.62314"
+ sodipodi:cx="250.53525"
+ id="path5367"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99973555pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.05245387,0,0,0.05245387,400.1808,-0.554549)"
+ d="m 277.35793,332.62314 c 0,14.81376 -12.00893,26.82268 -26.82268,26.82268 -14.81376,0 -26.82268,-12.00892 -26.82268,-26.82268 0,-14.81376 12.00892,-26.82268 26.82268,-26.82268 14.81375,0 26.82268,12.00892 26.82268,26.82268 z"
+ sodipodi:ry="26.82268"
+ sodipodi:rx="26.82268"
+ sodipodi:cy="332.62314"
+ sodipodi:cx="250.53525"
+ id="path5369"
+ style="fill:#dd8a3d;fill-opacity:1;fill-rule:evenodd;stroke:#dd8a3d;stroke-width:0.99973555pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ </g>
+ <rect
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffba7f;stroke-width:0.95032339pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ id="rect5371"
+ width="158.81178"
+ height="14.922246"
+ x="1622.4989"
+ y="518.67261"
+ rx="0.34581041"
+ ry="0.24117236"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-org-home-draft-0.5.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <text
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#b3b3b3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu"
+ id="text5373"
+ font-size="11"
+ x="1626.7657"
+ y="529.99762"
+ sodipodi:linespacing="125%"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-org-home-draft-0.5.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <tspan
+ sodipodi:role="line"
+ id="tspan5375"
+ x="1626.7657"
+ y="529.99762">Search</tspan>
+ </text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+ x="-324.67099"
+ y="280.7749"
+ id="text3019"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3021"
+ x="-324.67099"
+ y="280.7749">720x90</tspan></text>
+ <rect
+ y="18.5"
+ x="-651.5"
+ height="99.000008"
+ width="299"
+ id="rect3029"
+ style="color:#000000;fill:none;stroke:#b3b3b3;stroke-width:0.99999988;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text3033"
+ y="34.92186"
+ x="-408.26172"
+ style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="34.92186"
+ x="-408.26172"
+ id="tspan3035"
+ sodipodi:role="line">300x100</tspan></text>
+ <g
+ id="g3091"
+ transform="translate(-359.28223,-129.8584)">
+ <rect
+ style="color:#000000;fill:none;stroke:#b3b3b3;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3029-4"
+ width="49"
+ height="49"
+ x="12.053711"
+ y="39.436508" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text3073"
+ y="67.858398"
+ x="19.282227"
+ style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ id="tspan3081"
+ y="67.858398"
+ x="19.282227"
+ sodipodi:role="line">50x50</tspan></text>
+ </g>
+ <text
+ sodipodi:linespacing="125%"
+ id="text3073-8"
+ y="368.84732"
+ x="-806.35638"
+ style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="368.84732"
+ x="-806.35638"
+ sodipodi:role="line"
+ id="tspan3125">centrado vertical/horizontal, tamaño y color letra, editor ??? mmm igual...</tspan></text>
+ <g
+ id="g3877"
+ style="fill:#a05a2c"
+ transform="translate(-288,1795)">
+ <rect
+ rx="10"
+ ry="10"
+ y="118.5"
+ x="819.5"
+ height="51.955261"
+ width="195"
+ id="rect3045"
+ style="color:#000000;fill:#a05a2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <rect
+ style="color:#000000;fill:#a05a2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3871"
+ width="81.320587"
+ height="51.955261"
+ x="819.5"
+ y="118.5" />
+ <rect
+ y="135.73912"
+ x="933.07611"
+ height="34.716145"
+ width="81.320587"
+ id="rect3873"
+ style="color:#000000;fill:#a05a2c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ </g>
+ <g
+ id="g5389"
+ transform="translate(-751,-12)">
+ <path
+ transform="translate(0,-3)"
+ d="m 333,232 c 0,6.07513 -4.92487,11 -11,11 -6.07513,0 -11,-4.92487 -11,-11 0,-6.07513 4.92487,-11 11,-11 6.07513,0 11,4.92487 11,11 z"
+ sodipodi:ry="11"
+ sodipodi:rx="11"
+ sodipodi:cy="232"
+ sodipodi:cx="322"
+ id="path5365"
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <text
+ xml:space="preserve"
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#c8b7b7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
+ x="314.99805"
+ y="213.47852"
+ id="text5381"
+ sodipodi:linespacing="100%"><tspan
+ id="tspan5383"
+ sodipodi:role="line"
+ x="314.99805"
+ y="213.47852" /><tspan
+ id="tspan5385"
+ sodipodi:role="line"
+ x="314.99805"
+ y="237.47852">+</tspan></text>
+ </g>
+ <rect
+ ry="5"
+ rx="5"
+ y="-113.91792"
+ x="791.33704"
+ height="28"
+ width="193.76195"
+ id="rect5041"
+ style="color:#000000;fill:#f9f9f9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <image
+ width="16"
+ height="16"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAdpJREFU OI2lkk1I03EYxz97aYyx9J9lCWlYNjZaIE16uYTUZVDdgsJjt6B7lBEMIlAvmRV5VAovXTuFCRUD KRy71ETLpcPR2EsrRi/7b/9vh3+0lkqFz+nh+3s+Dw/f39chic2Uc1M04Aa4ccRx2OMzxr9VypF/ gbx+I1H9Ur54/aVeIYmhfmMuPjmiulmVUtNSblHKvpYWnkkLz+0+tyilplU3q4pPjmio35iTBJKI 9WHDdVOKhaXSinTntJR6Ks3P2H1pxX6rm6qbVcX6kKSGB073FsgkoSMEvjYoLEHoJARPQCFtax0h yCTt2XVNLKRhWxeUlsHobOjGbltr2wP5pSakeUF7DxTfw4698DHT0MursL0bisv2zJ+/AGDVTJyd vZB/B59zsCsIb56A0wU7A1ApQP4tdPVi1czmC7x+IzE7NYplWTBwF2TB2WHwbgWPz+6tOpwfw7LE 7NQoXr+RAHBI+pUDyYqcGRznYHSASvEDM/eukXw8gSxrwxw4fo/yw0vRB4HjpwJHwz1OJi4EcXtu 8zV7kzF9Xy9QTR48OudwZfOt0WOVFzDfnUbeAwxnVjcC1ywof2q52u6pte4PH7rF5fiVv4FrFhgu M7Kvhfv/A8NPEzdTPwCqtvHRDwWVwwAAAABJRU5ErkJggg== "
+ id="image5043"
+ x="972.55145"
+ y="-76.540894" />
+ <image
+ y="112.88816"
+ x="7.4508514"
+ id="image4632"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAV5JREFU OI2lk01OAkEQhb8axgGG30EiEEiMLoxuvK1X8ABewDsQdy4gBhNiJgg4IuhMl4vWAQSFxFp2+n2v XnW1mJsr5R/l/jyQSh3qbai1oVhFb6/3B0jnDDrnUArAcTZvOw4Ysx0grRM4uQTXQx/vkXAAk3CD IRkXTeJ1gJQC6FxAxoX+HfS6bB2MMeB5FvI+t00BELQg56PDPtrr/pmZJIaMi2TcJUArddteOPhb DKgaEAe83BIgfhmSD5huZt4aAyyE7yEakx7sVQcemGQlwssI1IBf3qkVL2fNkhWARCPbRdDc7Z7N W4CaJYDREH0dQ62JNI5/d/fLkC9Z8dczugA6myJPD2jrFI6OES8P09BGAyRXhKwPhbIVLmbpMqWb qOEASWI4bKGlGhSq0IgRk9i8SQzzCKIx+halXa39BX0eIvMIKVTtQL2sFc8msHiD2TTdwK0AwNJX HHbVJ0YdhWYwKlACAAAAAElFTkSuQmCC "
+ height="16"
+ width="16" />
+ <text
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/web_template-2011.png"
+ sodipodi:linespacing="125%"
+ id="text4717"
+ y="125.59216"
+ x="25.170853"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
+ xml:space="preserve"><tspan
+ y="125.59216"
+ x="25.170853"
+ id="tspan4719"
+ sodipodi:role="line"
+ style="font-size:16px;font-weight:bold;-inkscape-font-specification:Ubuntu Bold">Loading</tspan></text>
+ <rect
+ style="color:#000000;fill:#ff9999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4721"
+ width="87.663948"
+ height="3.7137473"
+ x="2.0788269"
+ y="111.25339" />
+ <g
+ transform="translate(804.21116,-270.59772)"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/kune-logo.png"
+ id="g8266"
+ style="opacity:0.5;display:inline">
+ <path
+ style="font-size:58.13353348px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#a56941;fill-opacity:1;stroke:none;font-family:Emblem"
+ d="m 206.0077,119.17481 c -0.23779,0 -0.46633,8.7e-4 -0.69567,0.0158 -0.0214,0.004 -0.0417,0.0118 -0.0632,0.0158 -0.21349,0.0399 -0.4241,0.0739 -0.6482,0.0791 -0.0311,0.004 -0.064,-0.005 -0.0949,0 -1.82915,0.27537 -3.37459,1.06959 -4.61662,2.38736 -1.45043,1.53186 -2.18178,3.36697 -2.18178,5.50197 0,2.15893 0.73135,4.00649 2.18178,5.53358 1.57013,1.64669 3.61017,2.46636 6.11859,2.46636 1.33077,0 2.61016,-0.33065 3.82604,-0.99601 1.21588,-0.64624 2.27312,-1.56093 3.1779,-2.71936 l -2.73518,-1.51778 c -1.17765,1.57013 -2.6245,2.35569 -4.34781,2.35569 -1.19676,0 -2.26981,-0.3882 -3.1937,-1.1541 -0.93824,-0.76596 -1.40711,-1.69889 -1.40711,-2.81422 l 12.5059,0 0,-0.63244 c 0,-2.70464 -0.91615,-4.8704 -2.73518,-6.49798 -1.53185,-1.35475 -3.22873,-2.02374 -5.09086,-2.02374 z m -58.15001,0.11067 0,6.0553 -2.1186,0 0,3.09885 2.1186,0 0,6.32407 3.22527,0 0,-6.32407 1.94464,0 3.96838,6.32407 3.82609,0 -5.32806,-8.03161 5.09091,-7.14623 -3.90514,0 -3.93676,5.75492 -1.66006,0 0,-6.0553 -3.22527,0 z m 39.573,0 c -0.55523,0.0991 -1.07256,0.26037 -1.5494,0.50596 -0.80423,0.43082 -1.43916,0.99904 -1.91307,1.7075 l 0,-1.91308 -3.24108,0 0,15.17784 3.24108,0 0,-8.5059 c 0,-1.21588 0.3431,-2.14881 1.02768,-2.81422 0.68934,-0.66536 1.5632,-0.99601 2.64032,-0.99607 1.13926,6e-5 2.02899,0.30575 2.65612,0.93283 0.62708,0.62713 0.93277,1.60993 0.93277,2.94069 l 0,8.44267 3.24113,0 0,-9.1541 c -5e-5,-1.86218 -0.56822,-3.40069 -1.70754,-4.61662 -0.85448,-0.91187 -1.84318,-1.4795 -2.97232,-1.7075 l -2.35569,0 z m -24.56913,0.30038 0,8.79053 c 0,2.0584 0.69395,3.72268 2.08698,4.99601 1.29249,1.19676 2.89338,1.80235 4.77467,1.80235 1.90046,0 3.49322,-0.60559 4.79053,-1.80235 1.39298,-1.27333 2.08693,-2.93761 2.08693,-4.99601 l 0,-8.79053 -3.24108,0 0,8.50591 c -6e-5,1.12015 -0.34316,2.03148 -1.02768,2.73517 -0.70851,0.72762 -1.56992,1.09092 -2.6087,1.09092 -1.0005,0 -1.86857,-0.36806 -2.57708,-1.09092 -0.70369,-0.72762 -1.04349,-1.63413 -1.04343,-2.73517 l 0,-8.50591 -3.24114,0 z m 42.73504,2.49803 c 1.05794,0 1.98172,0.2966 2.76679,0.8854 0.76114,0.60314 1.32167,1.48182 1.67593,2.64031 l -8.71148,0 c 0.25371,-1.11539 0.78014,-1.98162 1.5652,-2.60869 0.76114,-0.60797 1.66002,-0.91702 2.70356,-0.91702 z"
+ id="path8268"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-logo-16px.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g8270"
+ transform="matrix(0.1111494,0,0,0.111008,121.5678,22.515968)"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-logo-16px.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <path
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23953247;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block"
+ d="m 60.321717,411.99998 377.014613,0"
+ id="path8272"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffdb6b;stroke-width:109.23950958;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block"
+ d="m 252.61203,788.60332 0,-377.01178"
+ id="path8274"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#69312f;stroke-width:109.23951721;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block"
+ d="m 252.86937,597.15755 377.0124,0"
+ id="path8276"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#cc6633;stroke-width:109.23950195;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block"
+ d="m 437.45588,596.97447 0,-377.01491"
+ id="path8278"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23947906;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block"
+ d="m 372.87905,411.27704 64.93441,0"
+ id="path8280"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot3835"
+ style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:justify;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.85;color:#000000;fill:#2b1100;fill-opacity:1;fill-rule:nonzero;stroke:#cf5c43;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
+ transform="translate(-103,-19)"><flowRegion
+ id="flowRegion3837"><rect
+ id="rect3839"
+ width="666.18433"
+ height="187.65573"
+ x="286.03818"
+ y="329.61539"
+ style="text-align:justify;text-anchor:start" /></flowRegion><flowPara
+ style="font-size:28px;font-weight:bold;text-align:justify;text-anchor:start;-inkscape-font-specification:Ubuntu Bold"
+ id="flowPara5637"><flowSpan
+ id="flowSpan5644"
+ style="font-size:28px;font-weight:normal;text-align:justify;text-anchor:start;-inkscape-font-specification:Ubuntu">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 <flowSpan
+ style="font-weight:bold;-inkscape-font-specification:Ubuntu Bold"
+ id="flowSpan5635">communicate, share, collaborate with others and </flowSpan></flowSpan>create your web spaces easily. <flowSpan
+ style="fill:#803300"
+ id="flowSpan5641">Join!</flowSpan></flowPara></flowRoot> <g
+ transform="translate(527.82096,-660.09755)"
+ id="g2737"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/logo-big-home.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:export-ydpi="399.59854"
+ inkscape:export-xdpi="399.59854"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/kune-logo-1200.png"
+ id="path2689"
+ d="m 298.07933,890.09763 c -0.74303,0 -1.45723,0.003 -2.17391,0.0494 -0.0669,0.0136 -0.13033,0.0368 -0.19763,0.0494 -0.66715,0.12461 -1.32536,0.23087 -2.02569,0.24704 -0.097,0.0136 -0.19995,-0.0145 -0.29644,0 -5.71605,0.86055 -10.54554,3.34248 -14.42688,7.46047 -4.53271,4.78706 -6.81817,10.52182 -6.81818,17.19368 0,6.74672 2.28548,12.52044 6.81818,17.29249 4.90667,5.14604 11.2818,7.70749 19.12055,7.70751 4.15869,-2e-5 8.15681,-1.03328 11.95652,-3.11265 3.79965,-2.01951 7.10345,-4.87783 9.93083,-8.49802 l -8.54743,-4.74308 c -3.68005,4.90668 -8.20158,7.36166 -13.58695,7.36166 -3.73988,0 -7.0931,-1.21319 -9.98024,-3.60672 -2.93207,-2.39351 -4.39727,-5.30891 -4.39723,-8.79447 l 39.08102,0 0,-1.97629 c -4e-5,-8.45204 -2.86291,-15.22007 -8.54743,-20.30632 -4.78705,-4.23347 -10.0899,-6.32405 -15.90909,-6.32411 z m -181.71937,0.34585 0,18.92292 -6.62055,0 0,9.6838 6.62055,0 0,19.76285 10.07905,0 0,-19.76285 6.07708,0 12.40119,19.76285 11.95652,0 -16.6502,-25.09882 15.90909,-22.33202 -12.20356,0 -12.30237,17.98419 -5.18775,0 0,-18.92292 -10.07905,0 z m 123.66601,0 c -1.73503,0.30966 -3.35171,0.81366 -4.8419,1.58103 -2.5132,1.34638 -4.49729,3.12201 -5.97826,5.33597 l 0,-5.97827 -10.12846,0 0,47.43084 10.12846,0 0,-26.58103 c -1e-5,-3.79965 1.07224,-6.71507 3.21147,-8.79447 2.15413,-2.07932 4.88507,-3.11262 8.25098,-3.11265 3.56032,3e-5 6.34065,0.95537 8.3004,2.91502 1.95964,1.95972 2.91496,5.03102 2.91502,9.18973 l 0,26.3834 10.12846,0 0,-28.60672 c -5e-5,-5.8192 -1.77567,-10.62715 -5.33597,-14.42688 -2.67029,-2.84973 -5.76,-4.62351 -9.28854,-5.33597 l -7.36166,0 z m -76.77865,0.93873 0,27.47036 c -2e-5,6.43257 2.16853,11.63344 6.52173,15.61265 4.03904,3.73986 9.04189,5.63239 14.92095,5.63241 5.93886,-2e-5 10.91633,-1.89255 14.97036,-5.63241 4.35315,-3.97921 6.52169,-9.18008 6.52174,-15.61265 l 0,-27.47036 -10.12846,0 0,26.58103 c -5e-5,3.50052 -1.0723,6.34841 -3.21146,8.54743 -2.21404,2.27385 -4.906,3.40909 -8.15218,3.40909 -3.12654,2e-5 -5.83938,-1.15019 -8.05336,-3.40909 -2.19905,-2.27381 -3.2609,-5.10673 -3.26087,-8.54743 l 0,-26.58103 -10.12845,0 z m 133.54743,7.80633 c 3.306,5e-5 6.19285,0.92683 8.64624,2.7668 2.37851,1.88491 4.13014,4.63084 5.23716,8.25099 l -27.22332,0 c 0.79283,-3.48552 2.43792,-6.19246 4.8913,-8.15218 2.37853,-1.89981 5.18745,-2.86556 8.44862,-2.86561 z"
+ style="font-size:58.13353348px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#a56941;fill-opacity:1;stroke:none;font-family:Emblem" />
+ <g
+ inkscape:export-ydpi="399.59854"
+ inkscape:export-xdpi="399.59854"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/kune-logo-1200.png"
+ transform="matrix(0.347343,0,0,0.346901,34.203754,588.03773)"
+ id="g2691">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path2693"
+ d="m 60.321717,411.99998 377.014613,0"
+ style="fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23953247;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path2695"
+ d="m 252.61203,788.60332 0,-377.01178"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffdb6b;stroke-width:109.23950958;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path2697"
+ d="m 252.86937,597.15755 377.0124,0"
+ style="fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#69312f;stroke-width:109.23951721;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path2699"
+ d="m 437.45588,596.97447 0,-377.01491"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#cc6633;stroke-width:109.23950195;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path2701"
+ d="m 372.87905,411.27704 64.93441,0"
+ style="fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23947906;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ </g>
+ </g>
+ <rect
+ style="opacity:0.85;color:#000000;fill:#e3dbdb;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4652"
+ width="317"
+ height="189"
+ x="1473"
+ y="534" />
+ <flowRoot
+ transform="translate(-101,201)"
+ style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:justify;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.85;color:#000000;fill:#c87137;fill-opacity:1;fill-rule:nonzero;stroke:#cf5c43;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
+ id="flowRoot4636"
+ xml:space="preserve"><flowRegion
+ id="flowRegion4638"><rect
+ style="font-size:22px;text-align:justify;text-anchor:start;fill:#c87137;fill-opacity:1"
+ y="329.61539"
+ x="286.03818"
+ height="62.655731"
+ width="331.18436"
+ id="rect4640" /></flowRegion><flowPara
+ style="font-size:22px;font-weight:bold;text-align:start;text-anchor:start;fill:#c87137;fill-opacity:1;-inkscape-font-specification:Ubuntu Bold"
+ id="flowPara4642">Latests groups created</flowPara></flowRoot> <flowRoot
+ transform="translate(-100,388)"
+ style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:justify;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.85;color:#000000;fill:#8a5050;fill-opacity:1;fill-rule:nonzero;stroke:#cf5c43;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
+ id="flowRoot4644"
+ xml:space="preserve"><flowRegion
+ id="flowRegion4646"><rect
+ style="text-align:justify;text-anchor:start;color:#000000;fill:#8a5050;fill-opacity:1;fill-rule:nonzero;stroke:#cf5c43;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ y="329.61539"
+ x="286.03818"
+ height="187.65573"
+ width="666.18433"
+ id="rect4648" /></flowRegion><flowPara
+ style="font-size:20px;font-weight:bold;text-align:justify;text-anchor:start;color:#000000;fill:#8a5050;fill-opacity:1;fill-rule:nonzero;stroke:#cf5c43;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;-inkscape-font-specification:Ubuntu Bold"
+ id="flowPara4650">(©) cc-by-sa kune.beta.ieapala.es </flowPara></flowRoot> <flowRoot
+ transform="translate(-103,238)"
+ style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:justify;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.85;color:#000000;fill:#8a5050;fill-opacity:1;fill-rule:nonzero;stroke:#cf5c43;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
+ id="flowRoot4654"
+ xml:space="preserve"><flowRegion
+ id="flowRegion4656"><rect
+ style="font-size:18px;text-align:justify;text-anchor:start;fill:#8a5050;fill-opacity:1"
+ y="329.61539"
+ x="286.03818"
+ height="187.65573"
+ width="666.18433"
+ id="rect4658" /></flowRegion><flowPara
+ id="flowPara4662">11/Feb/2011 - Some project</flowPara><flowPara
+ id="flowPara4664">11/Feb/2011 - Other project</flowPara></flowRoot> <flowRoot
+ xml:space="preserve"
+ id="flowRoot5602"
+ style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:justify;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.85;color:#000000;fill:#c87137;fill-opacity:1;fill-rule:nonzero;stroke:#cf5c43;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
+ transform="translate(-98,306)"><flowRegion
+ id="flowRegion5604"><rect
+ id="rect5606"
+ width="331.18436"
+ height="62.655731"
+ x="286.03818"
+ y="329.61539"
+ style="font-size:22px;text-align:justify;text-anchor:start;fill:#c87137;fill-opacity:1" /></flowRegion><flowPara
+ id="flowPara5608"
+ style="font-size:22px;font-weight:bold;text-align:start;text-anchor:start;fill:#c87137;fill-opacity:1;-inkscape-font-specification:Ubuntu Bold">Other stats</flowPara></flowRoot> <g
+ style="display:inline"
+ transform="translate(354.82096,-1105.0975)"
+ id="g2737-4"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/logo-big-home.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <path
+ inkscape:connector-curvature="0"
+ inkscape:export-ydpi="399.59854"
+ inkscape:export-xdpi="399.59854"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/kune-logo-1200.png"
+ id="path2689-7"
+ d="m 298.07933,890.09763 c -0.74303,0 -1.45723,0.003 -2.17391,0.0494 -0.0669,0.0136 -0.13033,0.0368 -0.19763,0.0494 -0.66715,0.12461 -1.32536,0.23087 -2.02569,0.24704 -0.097,0.0136 -0.19995,-0.0145 -0.29644,0 -5.71605,0.86055 -10.54554,3.34248 -14.42688,7.46047 -4.53271,4.78706 -6.81817,10.52182 -6.81818,17.19368 0,6.74672 2.28548,12.52044 6.81818,17.29249 4.90667,5.14604 11.2818,7.70749 19.12055,7.70751 4.15869,-2e-5 8.15681,-1.03328 11.95652,-3.11265 3.79965,-2.01951 7.10345,-4.87783 9.93083,-8.49802 l -8.54743,-4.74308 c -3.68005,4.90668 -8.20158,7.36166 -13.58695,7.36166 -3.73988,0 -7.0931,-1.21319 -9.98024,-3.60672 -2.93207,-2.39351 -4.39727,-5.30891 -4.39723,-8.79447 l 39.08102,0 0,-1.97629 c -4e-5,-8.45204 -2.86291,-15.22007 -8.54743,-20.30632 -4.78705,-4.23347 -10.0899,-6.32405 -15.90909,-6.32411 z m -181.71937,0.34585 0,18.92292 -6.62055,0 0,9.6838 6.62055,0 0,19.76285 10.07905,0 0,-19.76285 6.07708,0 12.40119,19.76285 11.95652,0 -16.6502,-25.09882 15.90909,-22.33202 -12.20356,0 -12.30237,17.98419 -5.18775,0 0,-18.92292 -10.07905,0 z m 123.66601,0 c -1.73503,0.30966 -3.35171,0.81366 -4.8419,1.58103 -2.5132,1.34638 -4.49729,3.12201 -5.97826,5.33597 l 0,-5.97827 -10.12846,0 0,47.43084 10.12846,0 0,-26.58103 c -1e-5,-3.79965 1.07224,-6.71507 3.21147,-8.79447 2.15413,-2.07932 4.88507,-3.11262 8.25098,-3.11265 3.56032,3e-5 6.34065,0.95537 8.3004,2.91502 1.95964,1.95972 2.91496,5.03102 2.91502,9.18973 l 0,26.3834 10.12846,0 0,-28.60672 c -5e-5,-5.8192 -1.77567,-10.62715 -5.33597,-14.42688 -2.67029,-2.84973 -5.76,-4.62351 -9.28854,-5.33597 l -7.36166,0 z m -76.77865,0.93873 0,27.47036 c -2e-5,6.43257 2.16853,11.63344 6.52173,15.61265 4.03904,3.73986 9.04189,5.63239 14.92095,5.63241 5.93886,-2e-5 10.91633,-1.89255 14.97036,-5.63241 4.35315,-3.97921 6.52169,-9.18008 6.52174,-15.61265 l 0,-27.47036 -10.12846,0 0,26.58103 c -5e-5,3.50052 -1.0723,6.34841 -3.21146,8.54743 -2.21404,2.27385 -4.906,3.40909 -8.15218,3.40909 -3.12654,2e-5 -5.83938,-1.15019 -8.05336,-3.40909 -2.19905,-2.27381 -3.2609,-5.10673 -3.26087,-8.54743 l 0,-26.58103 -10.12845,0 z m 133.54743,7.80633 c 3.306,5e-5 6.19285,0.92683 8.64624,2.7668 2.37851,1.88491 4.13014,4.63084 5.23716,8.25099 l -27.22332,0 c 0.79283,-3.48552 2.43792,-6.19246 4.8913,-8.15218 2.37853,-1.89981 5.18745,-2.86556 8.44862,-2.86561 z"
+ style="font-size:58.13353348px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#a56941;fill-opacity:1;stroke:none;font-family:Emblem" />
+ <g
+ inkscape:export-ydpi="399.59854"
+ inkscape:export-xdpi="399.59854"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/kune-logo-1200.png"
+ transform="matrix(0.347343,0,0,0.346901,34.203754,588.03773)"
+ id="g2691-6">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path2693-7"
+ d="m 60.321717,411.99998 377.014613,0"
+ style="fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23953247;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path2695-8"
+ d="m 252.61203,788.60332 0,-377.01178"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffdb6b;stroke-width:109.23950958;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path2697-9"
+ d="m 252.86937,597.15755 377.0124,0"
+ style="fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#69312f;stroke-width:109.23951721;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path2699-7"
+ d="m 437.45588,596.97447 0,-377.01491"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#cc6633;stroke-width:109.23950195;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
+ id="path2701-4"
+ d="m 372.87905,411.27704 64.93441,0"
+ style="fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23947906;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block" />
+ </g>
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer7"
+ inkscape:label="chat" />
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="overlay"
+ style="display:none">
+ <rect
+ style="opacity:0.68399999;color:#000000;fill:#f7ebe3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3865"
+ width="1017"
+ height="654"
+ x="5"
+ y="111"
+ ry="0" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="dialogs"
+ style="display:none"
+ sodipodi:insensitive="true">
+ <rect
+ style="color:#000000;fill:#552200;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect24748"
+ width="646.41687"
+ height="245.19261"
+ x="190.29156"
+ y="113.49999"
+ rx="10"
+ ry="10" />
+ <rect
+ y="113.49999"
+ x="190.29156"
+ height="201.29102"
+ width="646.41687"
+ id="rect24750"
+ style="color:#000000;fill:#6c5353;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <rect
+ style="color:#000000;fill:#552200;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3894"
+ width="646.41687"
+ height="8.5292969"
+ x="190.29156"
+ y="111" />
+ <rect
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#999999;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3896"
+ width="320"
+ height="32"
+ x="221.5"
+ y="148.5"
+ rx="5"
+ ry="5" />
+ <rect
+ ry="5"
+ rx="5"
+ y="204"
+ x="221.5"
+ height="32"
+ width="193"
+ id="rect3899"
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#999999;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <rect
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#999999;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3901"
+ width="193"
+ height="32"
+ x="221.5"
+ y="259.5"
+ rx="5"
+ ry="5" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
+ x="221.40039"
+ y="143.76562"
+ id="text3903"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3905"
+ x="221.40039"
+ y="143.76562">name</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text3907"
+ y="199.76562"
+ x="271.49805"
+ style="font-size:20px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:end;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:end;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
+ xml:space="preserve"><tspan
+ y="199.76562"
+ x="271.49805"
+ id="tspan3909"
+ sodipodi:role="line">email</tspan></text>
+ <rect
+ style="color:#000000;fill:#f2f2f2;fill-opacity:1;fill-rule:nonzero;stroke:#666666;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3911"
+ width="103.29102"
+ height="26"
+ x="218.99998"
+ y="325"
+ rx="6.9999995"
+ ry="7" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
+ x="232.03516"
+ y="343.10547"
+ id="text3903-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3905-6"
+ x="232.03516"
+ y="343.10547">Continuar</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
+ x="219.83398"
+ y="254.76562"
+ id="text3958"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3960"
+ x="219.83398"
+ y="254.76562">language</tspan></text>
+ <rect
+ ry="5"
+ rx="4.9999995"
+ y="259.5"
+ x="391.5"
+ height="32"
+ width="23"
+ id="rect3962"
+ style="color:#000000;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:#999999;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text3964"
+ y="328.44327"
+ x="339.50107"
+ style="font-size:21.83877945px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
+ xml:space="preserve"
+ transform="scale(1.1657305,0.8578312)"><tspan
+ y="328.44327"
+ x="339.50107"
+ id="tspan3966"
+ sodipodi:role="line">v</tspan></text>
+ <rect
+ ry="7"
+ rx="6.9999995"
+ y="325"
+ x="705"
+ height="26"
+ width="103.29102"
+ id="rect3968"
+ style="color:#000000;fill:#f2f2f2;fill-opacity:1;fill-rule:nonzero;stroke:#666666;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text3970"
+ y="343.10547"
+ x="722.03516"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
+ xml:space="preserve"><tspan
+ y="343.10547"
+ x="722.03516"
+ id="tspan3972"
+ sodipodi:role="line">Cancelar</tspan></text>
+ <path
+ style="opacity:0.81000001;color:#000000;fill:#ac9393;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 795,144 211,-25"
+ id="path8441"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#6c5353;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:transform-center-x="-5.9580116"
+ inkscape:transform-center-y="-0.62993359"
+ d="m 862.37995,145.60404 -26.67151,29.29513 -1.53827,-47.36987 z"
+ id="path8447"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ </g>
+ <g
+ style="display:none"
+ inkscape:label="confirmation"
+ id="g8450"
+ inkscape:groupmode="layer">
+ <rect
+ ry="10"
+ rx="10"
+ y="113.49999"
+ x="277.29156"
+ height="205.09827"
+ width="476.85486"
+ id="rect8452"
+ style="opacity:0.85;color:#000000;fill:#552200;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <rect
+ style="opacity:0.85;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect8454"
+ width="444.9288"
+ height="120.59032"
+ x="293.62372"
+ y="149.06573"
+ rx="3"
+ ry="3" />
+ <rect
+ y="112.08939"
+ x="277.29156"
+ height="7.9567051"
+ width="476.85486"
+ id="rect8456"
+ style="color:#000000;fill:#552200;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#241c1c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
+ x="317.16895"
+ y="191.81694"
+ id="text8468"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan8470"
+ x="317.16895"
+ y="191.81694">Confirm please</tspan></text>
+ <rect
+ ry="7"
+ rx="6.9999995"
+ y="280"
+ x="509"
+ height="26"
+ width="103.29102"
+ id="rect8472"
+ style="color:#000000;fill:#f2f2f2;fill-opacity:1;fill-rule:nonzero;stroke:#666666;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text8474"
+ y="298.10547"
+ x="522.03516"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
+ xml:space="preserve"><tspan
+ y="298.10547"
+ x="522.03516"
+ id="tspan8476"
+ sodipodi:role="line">Continuar</tspan></text>
+ <rect
+ style="color:#000000;fill:#f2f2f2;fill-opacity:1;fill-rule:nonzero;stroke:#666666;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect8488"
+ width="103.29102"
+ height="26"
+ x="636"
+ y="280"
+ rx="6.9999995"
+ ry="7" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
+ x="653.03516"
+ y="298.10547"
+ id="text8490"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan8492"
+ x="653.03516"
+ y="298.10547">Cancelar</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ id="path8494"
+ d="m 795,144 211,-25"
+ style="opacity:0.81000001;color:#000000;fill:#ac9393;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text8498"
+ y="229.14001"
+ x="317.08438"
+ style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#552200;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
+ xml:space="preserve"><tspan
+ sodipodi:role="line"
+ id="tspan8502"
+ x="317.08438"
+ y="229.14001">Are you sure?</tspan></text>
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path8496"
+ d="m 819.54682,-91.528118 -26.67151,29.29513 -1.53827,-47.369872 z"
+ inkscape:transform-center-y="-0.62993359"
+ inkscape:transform-center-x="-5.9580116"
+ style="color:#000000;fill:#6c5353;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="notify"
+ style="display:none"
+ sodipodi:insensitive="true">
+ <g
+ style="display:inline"
+ id="g8344"
+ transform="translate(0,323)">
+ <g
+ transform="matrix(1,0,0,-0.84861,315.32544,35.16246)"
+ style="opacity:0.85;fill:#892c00;fill-opacity:1"
+ id="g4532">
+ <rect
+ style="color:#000000;fill:#892c00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4520"
+ width="322.0191"
+ height="182.65163"
+ x="4.9808998"
+ y="110.34837"
+ ry="5.8919883"
+ rx="5" />
+ <rect
+ style="color:#000000;fill:#892c00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4522"
+ width="71"
+ height="45"
+ x="5"
+ y="247.1942" />
+ <rect
+ y="247.5"
+ x="5"
+ height="45"
+ width="71"
+ id="rect4528"
+ style="color:#000000;fill:#892c00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <rect
+ style="color:#000000;fill:#892c00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4530"
+ width="71"
+ height="45"
+ x="256"
+ y="248.37251" />
+ </g>
+ <rect
+ rx="3"
+ ry="3"
+ y="-206.48027"
+ x="332.32544"
+ height="42"
+ width="294.9017"
+ id="rect4538"
+ style="opacity:0.79000005;color:#000000;fill:#fff0e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <use
+ height="768"
+ width="1024"
+ transform="translate(0,49)"
+ id="use4540"
+ xlink:href="#rect4538"
+ y="0"
+ x="0" />
+ <use
+ height="768"
+ width="1024"
+ transform="translate(0,49)"
+ id="use4542"
+ xlink:href="#use4540"
+ y="0"
+ x="0" />
+ <image
+ width="40"
+ height="40"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAWpJREFU OI3V07svw1EUB/Bv65FqtKrUY0A8QjQIaRCbgUZSoQkSiSYSj8mASEgHg8dfYDWRWjvUahAj0QRD k9+AySAsIvq7j985tqYJ9UgtTnJyh5v7Od/hHhszI5+y5/X6L4DCXBf3p7NTTLTGxGNNQ7HHXyW4 PYm4SamtsvrxflJq/asEnwKk1Iq7LtTuru2BFmo+FQ/3/hgwEpN+LdSyq9ID6yWB6q4FjyXk5k1s pOhbIBUP27WQUZ9/xgszifPDI5R60tCmHNWmHPsWsIQMOiu6Iq7yN5C4A5hgvV6gcXDNpoXYOd8b cOUErg6CxdqUu576btDbNZjSCEy0geQDHA4D1Z3T7VrI1ZyAJeSityUUcLqewPoZsBXgMm4AIJBp wNfaAEuopbPtDn82kPkH2hRRn38csN/D7vYBYPTNhTNzCkqa0TS8UWUcb28BmPoICOlI7k+kmRhM lNWcOUEEZq7JTmD7/8v0DkyzqBlaCormAAAAAElFTkSuQmCC "
+ id="image5750"
+ x="332.32544"
+ y="-207.48027" />
+ <flowRoot
+ transform="translate(319.49574,-354.48391)"
+ style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#280b0b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
+ id="flowRoot5765"
+ xml:space="preserve"><flowRegion
+ id="flowRegion5767"><rect
+ style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:100%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#280b0b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
+ y="156.35263"
+ x="51.618793"
+ height="32.526917"
+ width="272.94324"
+ id="rect5769" /></flowRegion><flowPara
+ id="flowPara5771">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</flowPara></flowRoot> <image
+ style="opacity:0.81000001;fill:#cccccc"
+ width="16"
+ height="16"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAsNJREFU OI1tk7tPk1EUwH/fow+0NRIjg48YGgOt4KOp4aWk2iBqYkLixmJw8T9w6cBgpHFwMHEwLsRBB/AB MbiYUDSasIjBxA4OKLXUFkppsR/C1373uw6UCupNbm5ykt/vnHtOjsK28zgc1tNv344IuMp/jgaT Ai5HobIVU/6Cnzb5fJcu3rjhVjQNACklCIG0LN49emR+mpt7I+BKFKyaoAo/9/t8vZHr192LU1OY +fyO7E6vl4bOTt6NjpqJZHJSQF8ULG04FHJkp6dfBI4e7Y0MDGzCa2tgWTsEQlVZT6cJRCL62sLC 4ZVS6fRAOPxM68pkXh5rauo5f+2aOxuPYzU0oMdikEwis9nNvx8/zt5796gkEhifP3MsHNaNVOrI t0QiqPWo6pP+mzf1zOvXlAsF1L4+1NZWlM5O+PoVdd8+9gwN4aqvR5GS0tQUvwoFWsJhfebjx4Cu KApISblQ2Cx1eBhcLly9vbgHB9EVBafHgxmPk797FxvYMAykECiA+s+spEQ8eICcmcG5axdOrxdr dpZcLIawbWzABmS1R/8KAK2lBXcohK7rOBwOdgeD1IVCyCosymXEwsIfgRSiBqutrXhv38bp9bIR j7M2MYHT48F3/z6ejg7MXA7jyxfkz58A6FLKTZthICyLuvZ2XFV4eWgI2zTRgP39/dSdPMnGw4eg adjVpNoFKbsrxeKhQHu7VkokKI2PU/n+naVbtyhnMpSXl8mNjbE+P0/yzh0UTcPn95NeWbG/ra7m lRg4NXh1orGxuy0YdKXicdaLxVqztl/F4aCxuZl0oSDep9NLNnRpkyAiMJIrFs+ahnEw0NamlxYX qZjmDlh1OGj0+5nP58X0jx8pGzqikKot01Yl/gMHus+cOuVShMC2LKRl1d5EMml9yGbnbDgbheUd 27hdIqDnf+NVYdaGc1FY3Yr9BsdNUva1UTzZAAAAAElFTkSuQmCC "
+ id="image8263"
+ x="618.4762"
+ y="-176.44423" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="browser"
+ sodipodi:insensitive="true"
+ style="display:inline">
+ <g
+ id="g5439">
+ <path
+ style="fill:#000000;stroke:none"
+ id="path11164"
+ d="m 1.9999,2.03929 0,4.96831 0.9937,0 L 6.9682,3.03295 1.9999,2.03929 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#7579ba;stroke:none"
+ id="path11166"
+ d="m 4.9809,3.03295 0,0.99366 57.6324,-0.99366 109.3027,0 340.8258,0 342.8131,0 109.3028,0 57.6323,0.99366 c -5.4154,-3.69749 -14.5174,-1.98732 -20.8669,-1.98732 l -48.6894,0 -185.8146,0 -519.6849,0 -162.9604,0 c -24.8566,0 -55.3276,-4.75943 -79.4929,0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#000000;stroke:none"
+ id="path11168"
+ d="m 1020.5027,2.03929 0,0.99366 3.9747,3.97465 0.9936,0 0,-4.96831 -4.9683,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a0d4a1;stroke:none"
+ id="path11170"
+ d="m 6.9682,3.03295 0,0.99366 1013.5345,0 -26.8288,-0.99366 -59.6197,0 -207.6752,0 -719.4108,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#8fcc8f;stroke:none"
+ id="path11172"
+ d="m 3.9872,4.02661 0,0.99367 1019.4965,0 -26.8289,-0.99367 -59.6196,0 -208.6689,0 -724.3791,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#7579ba;stroke:none"
+ id="path11174"
+ d="m 2.9936,5.02028 -0.9937,28.81617 0,52.66404 0,167.92869 0,537.57082 1023.4711,0 0,-537.57082 0,-167.92869 0,-52.66404 -0.9936,-28.81617 -0.9937,0 c 5.0081,26.97621 0.9937,58.0148 0.9937,85.45486 l 0,169.9161 0,530.61516 -1021.4838,0 0,-539.55811 0,-168.92243 0,-53.65772 0,-23.84786 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#7ac37b;stroke:none"
+ id="path11176"
+ d="m 3.9872,5.02028 0,0.99366 1019.4965,0 -26.8289,-0.99366 -59.6196,0 -208.6689,0 -724.3791,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#67ba68;stroke:none"
+ id="path11178"
+ d="m 2.9936,7.0076 0,0.99365 L 934.0542,7.0076 C 927.659,4.32398 918.1069,6.01394 911.2,6.01394 l -50.6767,0 -173.8908,0 -472.9827,0 -144.0809,0 C 49.393,6.01394 22.3021,1.30017 2.9936,7.0076 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#5f9860;stroke:none"
+ id="path11180"
+ d="m 934.0542,6.01394 0,0.99366 56.6387,1.73126 33.7845,-0.73761 c -5.7136,-4.32671 -17.8561,-1.98731 -24.8416,-1.98731 l -65.5816,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#48607f;stroke:none"
+ id="path11182"
+ d="m 10.9429,8.99491 2.9809,0.99366 c 0.064,2.97453 -0.054,4.31806 2.981,4.96831 l 0,-0.99366 0,-5.96197 -5.9619,0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#58b359;stroke:none"
+ id="path11184"
+ d="m 16.9048,7.0076 0.9937,2.98097 29.8098,-1.98732 55.6451,0 188.7956,0 640.9115,0 -24.8415,-0.99365 -53.6577,0 -187.802,0 -649.8545,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#48ac49;stroke:none"
+ id="path11186"
+ d="m 933.0605,7.0076 c -19.3088,5.70749 -46.399,0.99365 -66.5753,0.99365 l -144.0809,0 -472.9827,0 -170.9098,0 -42.7274,0 c -4.3826,0 -11.8388,-1.52154 -14.9049,1.98732 C 32.1147,7.31381 45.1362,8.99491 56.6513,8.99491 l 66.5753,0 213.6372,0 74.5246,0 c 7.9512,0 21.7462,-2.7556 27.8225,2.98099 6.8145,-4.91979 15.0122,-2.14386 22.8542,-2.98099 l 0,3.97465 0.9936,0 0,-3.97465 2.981,0 0,3.97465 0.9937,0 0,-3.97465 19.8732,0 -2.981,1.98733 0,0.99366 4.9683,1.98732 0,-4.96831 338.8385,0 80.4866,0 24.8415,-1.98731 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#77c177;stroke:none"
+ id="path11188"
+ d="m 934.0542,7.0076 c 3.2751,3.74837 22.5601,3.74848 25.8352,0 l -25.8352,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#95cf96;stroke:none"
+ id="path11190"
+ d="m 935.0478,7.0076 0,0.99365 23.8479,0 -23.8479,-0.99365 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#77c177;stroke:none"
+ id="path11192"
+ d="m 961.8767,7.0076 c 2.4146,4.19 24.7173,5.21682 25.8352,0 l -25.8352,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#94ce95;stroke:none"
+ id="path11194"
+ d="m 962.8704,7.0076 0,0.99365 23.8478,0 -23.8478,-0.99365 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#77c177;stroke:none"
+ id="path11196"
+ d="m 993.6739,7.0076 c 3.279,3.74837 22.5561,3.74848 25.8351,0 l -25.8351,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#94ce95;stroke:none"
+ id="path11198"
+ d="m 994.6675,7.0076 0,0.99365 23.8479,0 -23.8479,-0.99365 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0c720d;stroke:none"
+ id="path11200"
+ d="m 1019.509,7.0076 0,5.96196 -8.9429,0 0.9937,5.96197 -3.9747,-2.98098 -0.9936,0 -3.9747,2.98098 0.9937,-4.96831 -22.8542,0 0,4.96831 -11.924,0 0,-5.96197 -6.9556,0 0,-4.96831 -1.9873,0 0,4.96831 -6.9557,0 0,3.97465 -10.9302,0 0,-2.98099 -420.3187,0 0,1.98733 411.3757,0 0,4.9683 27.8225,-0.56738 63.5944,1.56105 0,-13.91127 -4.9684,-0.99365 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3aa63c;stroke:none"
+ id="path11202"
+ d="m 2.9936,8.00125 0,2.98099 6.9556,0.99366 1.9873,-2.98099 -8.9429,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3497d1;stroke:none"
+ id="path11204"
+ d="m 14.9175,8.00125 0,5.96197 2.981,-5.96197 -2.981,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#da6a15;stroke:none"
+ id="path11206"
+ d="m 9.9492,8.99491 0,8.94296 10.9303,0.99366 -0.9937,-2.98098 -4.9683,0.99366 0,-0.99366 1.9873,0 0,-0.99367 -2.981,-4.96831 -3.9746,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#eec030;stroke:none"
+ id="path11208"
+ d="m 18.8922,8.99491 0.9936,8.94296 0.9937,0 c 1.9069,-3.98032 2.5907,-7.10125 -1.9873,-8.94296 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#31a233;stroke:none"
+ id="path11210"
+ d="m 21.8731,8.99491 0,0.99366 41.7338,0.99367 87.4422,0 284.1871,0 0,-1.98733 -413.3631,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ebf6eb;stroke:none"
+ id="path11212"
+ d="m 435.2362,8.99491 0,7.9493 1.9873,0 0,-4.96831 0.9937,0 0.9937,2.98098 0.9936,0 0.9937,-2.98098 0.9937,0 0,4.96831 0.9936,0 0,-7.9493 -3.9746,2.98099 -0.9937,-2.98099 -2.981,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c2e0c2;stroke:none"
+ id="path11214"
+ d="m 443.1855,8.99491 0,7.9493 0.9937,0 -0.9937,-7.9493 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#31a233;stroke:none"
+ id="path11216"
+ d="m 444.1792,8.99491 0,3.97465 c 4.8302,-1.35621 6.578,-1.02914 7.9493,3.97465 l 0.9936,-4.96831 0,-0.99366 4.9683,1.98732 C 459.4001,7.14035 447.7991,8.99491 444.1792,8.99491 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#d8edd8;stroke:none"
+ id="path11218"
+ d="m 459.7469,9.32611 0.6618,0.33126 -0.6618,-0.33126 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0d800f;stroke:none"
+ id="path11220"
+ d="m 461.0714,8.99491 0,7.9493 -1.9873,0 0,-3.97465 -2.981,0.99366 1.9873,2.98099 c -5.0666,-0.17618 -9.4636,0.0848 -12.9176,-3.97465 l -0.9936,0 0,3.97465 -5.962,-4.96831 -0.9937,0 0,4.96831 -414.3567,0 0,0.99366 910.1937,0 0,-1.98732 -305.054,0 -83.4675,0 c -12.4119,0 -26.7216,2.86402 -37.7592,-2.98099 l 0,3.97465 -1.9873,0 0,-3.97465 -4.9683,2.98099 3.9747,-0.99367 c -3.463,2.26575 -5.6679,-0.24523 -8.943,-1.98732 l 0,3.97465 -2.981,-4.96831 -0.9936,0 0,4.96831 -1.9874,-2.98099 -6.9556,2.98099 0,-3.97465 -4.9683,0 0,3.97465 -6.9556,-0.99366 0.9936,-3.97465 -1.9873,4.96831 -1.9873,0 -0.9937,-7.9493 -0.9936,0 0,7.9493 -1.9874,0 -1.9873,-7.9493 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#d2ebd3;stroke:none"
+ id="path11222"
+ d="m 464.0524,8.99491 0,7.9493 0.9937,0 -0.9937,-7.9493 m 3.9746,0 0,7.9493 0.9937,0 -0.9937,-7.9493 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#31a233;stroke:none"
+ id="path11224"
+ d="m 469.0207,11.9759 12.9176,0.99366 0,-3.97465 c -4.076,0 -11.8842,-1.84109 -12.9176,2.98099 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#d8edd8;stroke:none"
+ id="path11226"
+ d="m 489.5567,9.32611 0.6618,0.33126 -0.6618,-0.33126 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#31a233;stroke:none"
+ id="path11228"
+ d="m 490.8813,8.99491 0.9936,4.96831 0.9937,0 0,-2.98098 11.9239,1.98732 0,-3.97465 -13.9112,0 m 15.8985,0.99366 0,1.98733 0,0.99366 53.6577,-1.98732 89.4296,0 283.1934,0 0,-1.98733 -289.1554,0 -91.4168,0 -45.7085,0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#1f9a21;stroke:none"
+ id="path11230"
+ d="m 933.0605,8.99491 c -5.5555,4.20915 -17.0631,1.98733 -23.8479,1.98733 l -59.6196,0 -230.5294,0 -73.531,0 c -6.9069,0 -21.0596,-2.8834 -24.8415,3.97464 l 48.6894,-0.99366 95.3915,0 295.1174,-0.99366 0,-2.98099 -26.8289,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#57b358;stroke:none"
+ id="path11232"
+ d="m 934.0542,8.99491 0,0.99366 25.8352,0 -25.8352,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#588858;stroke:none"
+ id="path11234"
+ d="m 961.8767,8.99491 0,0.99366 6.9556,0 0,8.94296 11.924,0 0,-9.93662 -0.9937,0 0,8.94296 -9.9366,0 0,-8.94296 -7.9493,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#1e9920;stroke:none"
+ id="path11236"
+ d="m 980.7563,9.98857 0,3.97465 22.8542,0 C 999.0694,7.66399 987.4943,9.84951 980.7563,9.98857 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#57b358;stroke:none"
+ id="path11238"
+ d="m 993.6739,8.99491 0,0.99366 25.8351,0 -25.8351,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#2071ab;stroke:none"
+ id="path11240"
+ d="m 17.8985,9.98857 -0.9937,4.96831 2.981,-4.96831 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#88c989;stroke:none"
+ id="path11242"
+ d="m 459.7469,10.31977 0.6618,0.33128 -0.6618,-0.33128 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#9cd29d;stroke:none"
+ id="path11244"
+ d="m 483.9256,9.98857 0,0.99367 2.981,0 -2.981,-0.99367 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#88c989;stroke:none"
+ id="path11246"
+ d="m 489.5567,10.31977 0.6618,0.33128 -0.6618,-0.33128 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#289e29;stroke:none"
+ id="path11248"
+ d="m 961.8767,9.98857 0,2.98099 6.9556,0 0,-2.98099 -6.9556,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#eaf5ea;stroke:none"
+ id="path11250"
+ d="m 969.826,9.98857 0,7.9493 9.9366,0 0,-7.9493 -9.9366,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#37a539;stroke:none"
+ id="path11252"
+ d="m 993.6739,9.98857 0,0.99367 12.9176,2.98098 0.9936,0 11.9239,-0.99366 0,-2.98099 -25.8351,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0f9111;stroke:none"
+ id="path11254"
+ d="m 2.9936,10.98224 0,10.93028 931.0606,0 0,-0.99367 -707.4868,0 -165.9415,0 c -12.988,0 -49.0337,6.66181 -51.6704,-9.93661 l -5.9619,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#90995f;stroke:none"
+ id="path11256"
+ d="m 19.8858,10.98224 0,2.98098 0.9937,0 -0.9937,-2.98098 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#1f9a21;stroke:none"
+ id="path11258"
+ d="m 22.8668,10.98224 0,1.98732 412.3694,0 0,-1.98732 -412.3694,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#cee4cf;stroke:none"
+ id="path11260"
+ d="m 460.0778,10.98224 0,5.96197 0.9936,0 -0.9936,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f4faf4;stroke:none"
+ id="path11262"
+ d="m 471.008,10.98224 0,0.99366 2.981,0 0,0.99366 -2.981,3.97465 4.9683,0 c -0.2981,-3.83991 -1.0821,-5.31437 -4.9683,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#cee4cf;stroke:none"
+ id="path11264"
+ d="m 489.8876,10.98224 0,5.96197 0.9937,0 -0.9937,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#bbe0bb;stroke:none"
+ id="path11266"
+ d="m 493.8622,10.98224 0.9937,1.98732 0.9937,0 0.9936,-1.98732 -2.981,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#6abb6b;stroke:none"
+ id="path11268"
+ d="m 496.8432,10.98224 -0.9936,0.99366 0.9936,2.98098 0.9937,0 0.9936,-3.97464 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#fcfefc;stroke:none"
+ id="path11270"
+ d="m 502.8052,16.94421 0,-0.99366 -2.981,-1.98733 3.9747,0 c -3.8604,-5.30036 -8.1501,1.78661 -0.9937,2.98099 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e7f1e7;stroke:none"
+ id="path11272"
+ d="m 516.7164,10.98224 0,5.96197 1.9874,-1.98733 2.981,1.98733 0,-5.96197 -4.9684,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3a8d3b;stroke:none"
+ id="path11274"
+ d="m 441.1982,11.9759 0,4.96831 0.9937,0 -0.9937,-4.96831 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#99d19a;stroke:none"
+ id="path11276"
+ d="m 457.0968,11.9759 0.9936,0.99366 -0.9936,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a4d1a5;stroke:none"
+ id="path11278"
+ d="m 471.3389,12.63838 0.3319,0.66236 -0.3319,-0.66236 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#5cb55d;stroke:none"
+ id="path11280"
+ d="m 472.6645,12.30709 0.6617,0.33129 -0.6617,-0.33129 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#73b074;stroke:none"
+ id="path11282"
+ d="m 475.9763,11.9759 0,4.96831 0.9937,0 -0.9937,-4.96831 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#96cf97;stroke:none"
+ id="path11284"
+ d="m 500.487,12.30709 0.6618,0.33129 -0.6618,-0.33129 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0e7810;stroke:none"
+ id="path11286"
+ d="m 515.7228,11.9759 0,3.97465 0.9936,0 -0.9936,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#578558;stroke:none"
+ id="path11288"
+ d="m 942.0035,11.9759 0,4.96831 10.9302,0 0,-4.96831 -10.9302,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e7f2e7;stroke:none"
+ id="path11290"
+ d="m 1002.6168,11.9759 0,5.96197 3.9747,-1.98732 0.9936,0 3.9747,1.98732 0,-5.96197 -3.9747,1.98732 -4.9683,-1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0d7b0e;stroke:none"
+ id="path11292"
+ d="m 22.8668,12.96956 0,0.99366 411.3758,0 0,1.98733 -411.3758,0 0,0.99366 412.3694,0 0,-3.97465 -412.3694,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#81b682;stroke:none"
+ id="path11294"
+ d="m 445.5037,13.63204 0.3319,0.66236 -0.3319,-0.66236 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#84b885;stroke:none"
+ id="path11296"
+ d="m 447.491,13.63204 0.3319,0.66236 -0.3319,-0.66236 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#217e22;stroke:none"
+ id="path11298"
+ d="m 448.1538,12.96956 0,1.98732 1.9873,0 0,-1.98732 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#92c893;stroke:none"
+ id="path11300"
+ d="m 483.9256,12.96956 0,0.99366 2.981,0 -2.981,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#81b682;stroke:none"
+ id="path11302"
+ d="m 509.098,13.63204 0.3319,0.66236 -0.3319,-0.66236 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#84b885;stroke:none"
+ id="path11304"
+ d="m 511.0854,13.63204 0.3319,0.66236 -0.3319,-0.66236 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#217f22;stroke:none"
+ id="path11306"
+ d="m 511.7481,12.96956 0,1.98732 1.9874,0 0,-1.98732 -1.9874,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e7f1e7;stroke:none"
+ id="path11308"
+ d="m 942.9971,12.96956 0,2.98099 8.943,0 0,-2.98099 -8.943,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#578558;stroke:none"
+ id="path11310"
+ d="m 970.8197,12.96956 0,3.97465 7.9492,0 0,-3.97465 -7.9492,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#827948;stroke:none"
+ id="path11312"
+ d="m 19.2233,14.6257 0.3313,0.66238 -0.3313,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0c760e;stroke:none"
+ id="path11314"
+ d="m 22.8668,13.96322 0,1.98733 411.3758,0 0,-1.98733 -411.3758,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#88ba88;stroke:none"
+ id="path11316"
+ d="m 438.2172,13.96322 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#7cb57e;stroke:none"
+ id="path11318"
+ d="m 470.3453,14.6257 0.3318,0.66238 -0.3318,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#97c498;stroke:none"
+ id="path11320"
+ d="m 472.3326,14.6257 0.3319,0.66238 -0.3319,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#378e39;stroke:none"
+ id="path11322"
+ d="m 473.3262,14.6257 0.3319,0.66238 -0.3319,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0c760e;stroke:none"
+ id="path11324"
+ d="m 971.8133,13.96322 0,1.98733 5.962,0 0,-1.98733 -5.962,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#578358;stroke:none"
+ id="path11326"
+ d="m 1003.9384,14.6257 0.3378,0.66238 -0.3378,-0.66238 m 5.9619,0 0.3379,0.66238 -0.3379,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#27203a;stroke:none"
+ id="path11328"
+ d="m 14.9175,15.95055 0,0.99366 3.9747,-1.98733 -3.9747,0.99367 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0e840f;stroke:none"
+ id="path11330"
+ d="m 21.8731,14.95688 -0.9936,3.97465 912.181,0 0,-0.99366 -680.658,0 -170.9097,0 -41.7338,0 c -6.0213,0 -13.2263,1.46704 -17.8859,-2.98099 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b2d3b2;stroke:none"
+ id="path11332"
+ d="m 448.8166,15.28808 0.6618,0.33128 -0.6618,-0.33128 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#60a561;stroke:none"
+ id="path11334"
+ d="m 455.1094,14.95688 0,0.99367 2.981,0 -2.981,-0.99367 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#80b881;stroke:none"
+ id="path11336"
+ d="m 501.8115,14.95688 1.9874,1.98733 0,-1.98733 -1.9874,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b2d4b2;stroke:none"
+ id="path11338"
+ d="m 512.4109,15.28808 0.6618,0.33128 -0.6618,-0.33128 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#7eb77f;stroke:none"
+ id="path11340"
+ d="m 518.7038,14.95688 0.9936,0.99367 -0.9936,-0.99367 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#82bb82;stroke:none"
+ id="path11342"
+ d="m 515.7228,15.95055 0.9936,0.99366 -0.9936,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#86bd87;stroke:none"
+ id="path11344"
+ d="m 517.7101,15.95055 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#76b477;stroke:none"
+ id="path11346"
+ d="m 521.6848,15.95055 0.9936,0.99366 -0.9936,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ab130d;stroke:none"
+ id="path11348"
+ d="m 10.9429,17.93787 0,0.99366 5.9619,0.99366 -5.9619,-1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#588858;stroke:none"
+ id="path11350"
+ d="m 1002.6168,17.93787 0,0.99366 2.981,0 -2.981,-0.99366 m 5.962,0 0,0.99366 2.981,0 -2.981,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0e8c10;stroke:none"
+ id="path11352"
+ d="m 16.9048,19.92519 0,0.99366 916.1557,0 -23.8479,-0.99366 -52.664,0 -183.8273,0 -443.173,0 -144.0808,0 -68.5627,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0e8810;stroke:none"
+ id="path11354"
+ d="m 20.8795,18.93153 0,0.99366 912.181,0 -23.8479,-0.99366 -53.6577,0 -186.8083,0 -647.8671,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#644323;stroke:none"
+ id="path11356"
+ d="m 12.9302,19.92519 0,0.99366 3.9746,0 -3.9746,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#289e29;stroke:none"
+ id="path11358"
+ d="m 934.0542,19.92519 0.9936,2.98099 -932.0542,0 0,0.99366 1021.4838,0 0,-1.98732 -90.4232,-1.98733 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#4fae50;stroke:none"
+ id="path11360"
+ d="m 935.0478,20.91885 0,0.99367 23.8479,0 -23.8479,-0.99367 m 27.8226,0 0,0.99367 23.8478,0 -23.8478,-0.99367 m 31.7971,0 0,0.99367 23.8479,0 -23.8479,-0.99367 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#179619;stroke:none"
+ id="path11362"
+ d="m 2.9936,21.91252 0,0.99366 932.0542,0 -24.8415,-0.99366 -54.6514,0 -190.7829,0 -661.7784,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#38a539;stroke:none"
+ id="path11364"
+ d="m 2.9936,23.89984 0,0.99365 1021.4838,0 -26.8289,-0.99365 -60.6133,0 -208.6689,0 -725.3727,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#48ac49;stroke:none"
+ id="path11366"
+ d="m 2.9936,24.89349 0,0.99366 1021.4838,0 -26.8289,-0.99366 -60.6133,0 -208.6689,0 -725.3727,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0e9210;stroke:none"
+ id="path11368"
+ d="m 2.9936,25.88715 0,765.11925 1021.4838,0 0,-765.11925 -1.9874,0 0,763.13195 -1017.5091,0 0,-763.13195 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11370"
+ d="m 4.9809,25.88715 0,56.63871 1017.5091,0 0,-56.63871 -1017.5091,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b2b2b2;stroke:none"
+ id="path11372"
+ d="m 1008.5788,28.86814 -0.9937,2.98098 -2.981,-0.99366 -0.9936,0.99366 0.9936,2.98099 -2.981,0.99366 0,1.98732 2.981,0.99367 -0.9936,2.98098 0.9936,0.99365 2.981,-0.99365 0.9937,2.98099 1.9873,0 0.9937,-2.98099 2.9809,0.99365 0.9937,-0.99365 -0.9937,-2.98098 2.981,-0.99367 0,-1.98732 -2.981,-0.99366 0.9937,-2.98099 -0.9937,-0.99366 -2.9809,0.99366 -0.9937,-2.98098 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11374"
+ d="m 1007.5851,31.84912 -2.981,2.98099 0,3.97465 2.981,2.98098 3.9747,0 2.9809,-2.98098 0,-3.97465 -2.9809,-2.98099 -3.9747,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0a0a0a;stroke:none"
+ id="path11376"
+ d="m 18.8922,32.84279 0,7.94929 0.9936,0 2.981,-3.97465 0,-0.99366 -2.981,-0.99366 2.981,-0.99366 -3.9746,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#818181;stroke:none"
+ id="path11378"
+ d="m 22.8668,32.84279 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#070707;stroke:none"
+ id="path11380"
+ d="m 24.8541,32.84279 0.9937,0.99366 -0.9937,-0.99366 m 2.981,0 0,7.94929 0.9937,0 -0.9937,-7.94929 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0a0a0a;stroke:none"
+ id="path11382"
+ d="m 57.6449,32.84279 0,7.94929 4.9684,0 0,-0.99366 -3.9747,0 0,-2.98099 3.9747,0 0,-0.99366 -3.9747,0 0,-1.98732 3.9747,0 -4.9684,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#303030;stroke:none"
+ id="path11384"
+ d="m 68.5752,32.84279 0,7.94929 0.9937,0 -0.9937,-7.94929 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#070707;stroke:none"
+ id="path11386"
+ d="m 71.5562,32.84279 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#7a7a7a;stroke:none"
+ id="path11388"
+ d="m 74.5372,32.84279 0.9936,0.99366 -0.9936,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3f3f3f;stroke:none"
+ id="path11390"
+ d="m 97.3914,32.84279 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#979797;stroke:none"
+ id="path11392"
+ d="m 98.3851,32.84279 0.9936,0.99366 -0.9936,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#545454;stroke:none"
+ id="path11394"
+ d="m 103.3534,32.84279 -0.9937,1.98732 1.9873,0 -0.9936,-1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#070707;stroke:none"
+ id="path11396"
+ d="m 105.3407,32.84279 0.9936,0.99366 -0.9936,-0.99366 m 38.7528,0 0,7.94929 0.9936,0 0,-3.97465 3.9747,0 0,3.97465 0.9936,0 0,-7.94929 -0.9936,0 0,2.98098 -4.9683,-2.98098 m 7.9493,0 0.9936,0.99366 -0.9936,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#7a7a7a;stroke:none"
+ id="path11398"
+ d="m 160.9857,32.84279 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0a0a0a;stroke:none"
+ id="path11400"
+ d="m 207.6878,32.84279 0,7.94929 3.9746,0 0,-0.99366 -2.9809,-2.98099 3.9746,0.99366 c -0.5733,-3.45238 -1.5163,-4.39546 -4.9683,-4.9683 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#727272;stroke:none"
+ id="path11402"
+ d="m 211.6624,32.84279 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0e0e0e;stroke:none"
+ id="path11404"
+ d="m 228.5547,32.84279 0,7.94929 0.9936,0 -0.9936,-7.94929 m 26.8288,0 0,7.94929 0.9937,0 -0.9937,-7.94929 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#343434;stroke:none"
+ id="path11406"
+ d="m 292.149,32.84279 0,0.99366 2.981,0 0,6.95563 0.9936,0 1.9874,-6.95563 -5.962,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#7b7b7b;stroke:none"
+ id="path11408"
+ d="m 298.111,32.84279 0.9936,0.99366 -0.9936,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#070707;stroke:none"
+ id="path11410"
+ d="m 314.0095,32.84279 0,7.94929 0.9937,0 -0.9937,-7.94929 m 28.8162,0 0,7.94929 0.9937,0 0,-3.97465 3.9746,0 0,3.97465 0.9937,0 0,-7.94929 -0.9937,0 0,2.98098 -4.9683,-2.98098 m 14.9049,0 0,7.94929 0.9937,0 -0.9937,-7.94929 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0a0a0a;stroke:none"
+ id="path11412"
+ d="m 74.5372,33.83645 c 0,3.34139 -0.7113,6.16438 2.981,6.95563 l 0,-0.99366 -2.981,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0e0e0e;stroke:none"
+ id="path11414"
+ d="m 98.7162,34.49893 0.3313,0.66236 -0.3313,-0.66236 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0a0a0a;stroke:none"
+ id="path11416"
+ d="m 160.9857,33.83645 c 0,3.34139 -0.7114,6.16438 2.981,6.95563 l 0,-0.99366 -2.981,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11418"
+ d="m 208.6815,33.83645 0,1.98732 2.9809,0 0,-1.98732 -2.9809,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#acacac;stroke:none"
+ id="path11420"
+ d="m 294.1363,33.83645 0,6.95563 0.9937,0 -0.9937,-6.95563 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#070707;stroke:none"
+ id="path11422"
+ d="m 24.8541,34.83011 0,5.96197 0.9937,0 -0.9937,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#292929;stroke:none"
+ id="path11424"
+ d="m 31.8097,34.83011 0,0.99366 2.981,0 -2.981,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#919191;stroke:none"
+ id="path11426"
+ d="m 64.6006,34.83011 0.9936,0.99366 -0.9936,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#5f5f5f;stroke:none"
+ id="path11428"
+ d="m 65.5942,34.83011 0,0.99366 2.981,0.99366 -2.981,-1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#070707;stroke:none"
+ id="path11430"
+ d="m 71.5562,34.83011 0,5.96197 0.9937,0 -0.9937,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#6d6d6d;stroke:none"
+ id="path11432"
+ d="m 73.5435,34.83011 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#494949;stroke:none"
+ id="path11434"
+ d="m 76.1933,35.16129 0.6624,0.3313 -0.6624,-0.3313 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#191919;stroke:none"
+ id="path11436"
+ d="m 102.6906,35.49259 0.3319,0.66236 -0.3319,-0.66236 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#070707;stroke:none"
+ id="path11438"
+ d="m 105.3407,34.83011 0,5.96197 0.9936,0 -0.9936,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#292929;stroke:none"
+ id="path11440"
+ d="m 109.3153,34.83011 0,0.99366 2.981,0 -2.981,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#707070;stroke:none"
+ id="path11442"
+ d="m 114.9464,35.16129 0.6618,0.3313 -0.6618,-0.3313 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#404040;stroke:none"
+ id="path11444"
+ d="m 117.2646,37.81109 -0.9936,0 0,-1.98732 -0.9937,0 2.981,3.97465 0.9936,-4.96831 -1.9873,2.98098 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#1d1d1d;stroke:none"
+ id="path11446"
+ d="m 121.5702,35.49259 0.3318,0.66236 -0.3318,-0.66236 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#070707;stroke:none"
+ id="path11448"
+ d="m 152.0428,34.83011 0,5.96197 0.9936,0 -0.9936,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#545454;stroke:none"
+ id="path11450"
+ d="m 157.0111,37.81109 1.9873,-1.98732 c -2.3788,-1.33597 -5.0885,0.24534 -1.9873,1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#6d6d6d;stroke:none"
+ id="path11452"
+ d="m 159.992,34.83011 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#494949;stroke:none"
+ id="path11454"
+ d="m 162.6421,35.16129 0.6618,0.3313 -0.6618,-0.3313 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#999999;stroke:none"
+ id="path11456"
+ d="m 164.9604,34.83011 0.9936,0.99366 -0.9936,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#575757;stroke:none"
+ id="path11458"
+ d="m 165.954,34.83011 0,0.99366 3.9747,0.99366 0,-0.99366 -3.9747,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0e0e0e;stroke:none"
+ id="path11460"
+ d="m 171.916,34.83011 0,5.96197 0.9937,0 -0.9937,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#444444;stroke:none"
+ id="path11462"
+ d="m 172.9097,34.83011 0,0.99366 2.9809,1.98732 c 0.945,-2.49062 -0.6478,-2.68864 -2.9809,-2.98098 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#343434;stroke:none"
+ id="path11464"
+ d="m 179.8653,34.83011 0.9936,0.99366 -0.9936,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#999999;stroke:none"
+ id="path11466"
+ d="m 214.6434,34.83011 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#575757;stroke:none"
+ id="path11468"
+ d="m 215.6371,34.83011 0,0.99366 3.9746,0.99366 0,-0.99366 -3.9746,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#999999;stroke:none"
+ id="path11470"
+ d="m 221.5991,34.83011 0.9936,0.99366 -0.9936,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#575757;stroke:none"
+ id="path11472"
+ d="m 222.5927,34.83011 0,0.99366 3.9747,0.99366 0,-0.99366 -3.9747,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#5c5c5c;stroke:none"
+ id="path11474"
+ d="m 231.5357,34.83011 c -1.0861,3.17047 -0.947,4.25834 1.9873,5.96197 l 0,-5.96197 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0e0e0e;stroke:none"
+ id="path11476"
+ d="m 234.5166,34.83011 0,5.96197 0.9937,0 -0.9937,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a4a4a4;stroke:none"
+ id="path11478"
+ d="m 235.8412,35.49259 0.3319,0.66236 -0.3319,-0.66236 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#2a2a2a;stroke:none"
+ id="path11480"
+ d="m 237.1667,35.16129 0.6618,0.3313 -0.6618,-0.3313 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#464646;stroke:none"
+ id="path11482"
+ d="m 239.485,34.83011 0,0.99366 2.9809,0.99366 -2.9809,-1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#686868;stroke:none"
+ id="path11484"
+ d="m 244.4533,34.83011 0,0.99366 3.9746,0.99366 0,3.97465 c 1.41,-3.71223 -0.312,-5.35107 -3.9746,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0e0e0e;stroke:none"
+ id="path11486"
+ d="m 251.4089,34.83011 0,5.96197 0.9936,0 -0.9936,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#444444;stroke:none"
+ id="path11488"
+ d="m 253.0653,35.16129 0.6618,0.3313 -0.6618,-0.3313 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#5c5c5c;stroke:none"
+ id="path11490"
+ d="m 258.3645,34.83011 c -1.0861,3.17047 -0.9469,4.25834 1.9873,5.96197 l 0,-5.96197 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#545454;stroke:none"
+ id="path11492"
+ d="m 263.3328,37.81109 1.9873,-1.98732 c -2.3788,-1.33597 -5.0885,0.24523 -1.9873,1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#999999;stroke:none"
+ id="path11494"
+ d="m 300.0983,34.83011 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#575757;stroke:none"
+ id="path11496"
+ d="m 301.092,34.83011 0,0.99366 3.9746,0.99366 0,-0.99366 -3.9746,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#999999;stroke:none"
+ id="path11498"
+ d="m 307.0539,34.83011 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#575757;stroke:none"
+ id="path11500"
+ d="m 308.0476,34.83011 0,0.99366 3.9746,0.99366 0,-0.99366 -3.9746,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#545454;stroke:none"
+ id="path11502"
+ d="m 318.9779,37.81109 1.9873,-1.98732 c -2.3788,-1.33597 -5.0886,0.24523 -1.9873,1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#292929;stroke:none"
+ id="path11504"
+ d="m 351.7687,34.83011 0,0.99366 2.981,0 -2.981,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#030303;stroke:none"
+ id="path11506"
+ d="m 360.7116,34.83011 0,7.94928 0.9937,0 -0.9937,-7.94928 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#4e4e4e;stroke:none"
+ id="path11508"
+ d="m 361.7053,34.83011 0,0.99366 2.981,0 -2.981,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#161616;stroke:none"
+ id="path11510"
+ d="m 30.8161,35.82377 0,3.97465 0.9936,0 -0.9936,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11512"
+ d="m 31.8097,35.82377 0,0.99366 2.981,0 -2.981,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3b3b3b;stroke:none"
+ id="path11514"
+ d="m 34.7907,35.82377 -2.981,0.99366 0,0.99366 2.981,-1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#515151;stroke:none"
+ id="path11516"
+ d="m 64.6006,35.82377 0,4.96831 3.9746,-1.98732 -2.981,0.99366 -0.9936,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11518"
+ d="m 65.5942,35.82377 0,3.97465 2.981,-0.99366 0,-1.98733 -0.9936,-0.99366 -1.9874,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#808080;stroke:none"
+ id="path11520"
+ d="m 98.3851,35.82377 0,1.98732 1.9873,-1.98732 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#161616;stroke:none"
+ id="path11522"
+ d="m 108.3217,35.82377 0,3.97465 0.9936,0 -0.9936,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11524"
+ d="m 109.3153,35.82377 0,0.99366 2.981,0 -2.981,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3b3b3b;stroke:none"
+ id="path11526"
+ d="m 112.2963,35.82377 -2.981,0.99366 0,0.99366 2.981,-1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#525252;stroke:none"
+ id="path11528"
+ d="m 164.9604,35.82377 0,4.96831 0.9936,0 -0.9936,-4.96831 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11530"
+ d="m 165.954,35.82377 0,3.97465 2.981,-0.99366 0,-1.98733 -0.9937,-0.99366 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#686868;stroke:none"
+ id="path11532"
+ d="m 177.878,38.80476 2.9809,-2.98099 -2.9809,2.98099 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#707070;stroke:none"
+ id="path11534"
+ d="m 214.6434,35.82377 -2.981,4.96831 2.981,0 0.9937,0 -0.9937,-4.96831 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11536"
+ d="m 215.6371,35.82377 0,3.97465 2.981,-0.99366 0,-1.98733 -0.9937,-0.99366 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#525252;stroke:none"
+ id="path11538"
+ d="m 221.5991,35.82377 0,4.96831 0.9936,0 -0.9936,-4.96831 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11540"
+ d="m 222.5927,35.82377 0,3.97465 2.981,-0.99366 0,-1.98733 -0.9937,-0.99366 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#afafaf;stroke:none"
+ id="path11542"
+ d="m 237.4976,35.82377 0,4.96831 0.9937,0 -0.9937,-4.96831 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#464646;stroke:none"
+ id="path11544"
+ d="m 238.4913,35.82377 0,4.96831 0.9937,0 -0.9937,-4.96831 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#7b7b7b;stroke:none"
+ id="path11546"
+ d="m 242.4659,35.82377 -0.9936,4.96831 2.981,-0.99366 -1.9874,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#525252;stroke:none"
+ id="path11548"
+ d="m 300.0983,35.82377 0,4.96831 0.9937,0 -0.9937,-4.96831 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11550"
+ d="m 301.092,35.82377 0,3.97465 2.9809,-0.99366 0,-1.98733 -0.9936,-0.99366 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#525252;stroke:none"
+ id="path11552"
+ d="m 307.0539,35.82377 0,4.96831 0.9937,0 -0.9937,-4.96831 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11554"
+ d="m 308.0476,35.82377 0,3.97465 2.981,-0.99366 0,-1.98733 -0.9937,-0.99366 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#161616;stroke:none"
+ id="path11556"
+ d="m 350.775,35.82377 0,3.97465 0.9937,0 -0.9937,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11558"
+ d="m 351.7687,35.82377 0,0.99366 2.981,0 -2.981,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3b3b3b;stroke:none"
+ id="path11560"
+ d="m 354.7497,35.82377 -2.981,0.99366 0,0.99366 2.981,-1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11562"
+ d="m 361.7053,35.82377 2.981,3.97465 0,-3.97465 -2.981,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#1d1d1d;stroke:none"
+ id="path11564"
+ d="m 364.6863,35.82377 0,3.97465 0.9936,0 -0.9936,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#999999;stroke:none"
+ id="path11566"
+ d="m 30.1536,37.4799 0.3313,0.66238 -0.3313,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#989898;stroke:none"
+ id="path11568"
+ d="m 63.9381,37.4799 0.3313,0.66238 -0.3313,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#2f2f2f;stroke:none"
+ id="path11570"
+ d="m 99.3787,36.81743 0.9937,3.97465 0.9936,0 0.9937,-2.98099 -2.981,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#707070;stroke:none"
+ id="path11572"
+ d="m 102.0288,37.14862 0.6618,0.33128 -0.6618,-0.33128 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#999999;stroke:none"
+ id="path11574"
+ d="m 107.6589,37.4799 0.3319,0.66238 -0.3319,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#686868;stroke:none"
+ id="path11576"
+ d="m 118.2583,36.81743 0,0.99366 3.9746,0.99367 -3.9746,-1.98733 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#989898;stroke:none"
+ id="path11578"
+ d="m 164.2976,37.4799 0.3319,0.66238 -0.3319,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#242424;stroke:none"
+ id="path11580"
+ d="m 168.935,36.81743 -2.981,2.98099 0,0.99366 2.981,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11582"
+ d="m 208.6815,36.81743 0,2.98099 2.9809,0 0,-2.98099 -2.9809,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#242424;stroke:none"
+ id="path11584"
+ d="m 218.6181,36.81743 -2.981,2.98099 0,0.99366 2.981,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#989898;stroke:none"
+ id="path11586"
+ d="m 220.9363,37.4799 0.3319,0.66238 -0.3319,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#242424;stroke:none"
+ id="path11588"
+ d="m 225.5737,36.81743 -2.981,2.98099 0,0.99366 2.981,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#484848;stroke:none"
+ id="path11590"
+ d="m 244.4533,36.81743 0,3.97465 3.9746,-1.98732 -2.981,0.99366 2.981,-1.98733 -3.9746,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#989898;stroke:none"
+ id="path11592"
+ d="m 299.4355,37.4799 0.3319,0.66238 -0.3319,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#242424;stroke:none"
+ id="path11594"
+ d="m 304.0729,36.81743 -2.9809,2.98099 0,0.99366 2.9809,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#989898;stroke:none"
+ id="path11596"
+ d="m 306.3911,37.4799 0.3319,0.66238 -0.3319,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#242424;stroke:none"
+ id="path11598"
+ d="m 311.0286,36.81743 -2.981,2.98099 0,0.99366 2.981,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#999999;stroke:none"
+ id="path11600"
+ d="m 350.1123,37.4799 0.3318,0.66238 -0.3318,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#1d1d1d;stroke:none"
+ id="path11602"
+ d="m 119.2519,37.81109 1.9874,2.98099 -1.9874,-2.98099 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#393939;stroke:none"
+ id="path11604"
+ d="m 157.0111,37.81109 1.9873,1.98733 0,-1.98733 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#474747;stroke:none"
+ id="path11606"
+ d="m 176.8843,37.81109 -0.9937,4.9683 c 2.2656,-1.63009 2.4842,-2.62107 0.9937,-4.9683 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11608"
+ d="m 245.4469,37.81109 0,1.98733 1.9873,0 0,-1.98733 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#393939;stroke:none"
+ id="path11610"
+ d="m 263.3328,37.81109 1.9873,1.98733 0,-1.98733 -1.9873,0 m 55.6451,0 1.9873,1.98733 0,-1.98733 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#000000;stroke:none"
+ id="path11612"
+ d="m 116.6018,39.46723 0.3319,0.66237 -0.3319,-0.66237 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#6b6b6b;stroke:none"
+ id="path11614"
+ d="m 362.0362,39.46723 0.3319,0.66237 -0.3319,-0.66237 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#262626;stroke:none"
+ id="path11616"
+ d="m 31.8097,39.79842 0,0.99366 3.9747,0 -3.9747,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#8b8b8b;stroke:none"
+ id="path11618"
+ d="m 101.366,39.79842 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#262626;stroke:none"
+ id="path11620"
+ d="m 109.3153,39.79842 0,0.99366 3.9747,0 -3.9747,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#2c2c2c;stroke:none"
+ id="path11622"
+ d="m 155.0237,39.79842 0,0.99366 2.981,0 -2.981,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#919191;stroke:none"
+ id="path11624"
+ d="m 158.0047,39.79842 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#2c2c2c;stroke:none"
+ id="path11626"
+ d="m 261.3455,39.79842 0,0.99366 2.981,0 -2.981,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#919191;stroke:none"
+ id="path11628"
+ d="m 264.3265,39.79842 0.9936,0.99366 -0.9936,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#2c2c2c;stroke:none"
+ id="path11630"
+ d="m 316.9905,39.79842 0,0.99366 2.981,0 -2.981,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#919191;stroke:none"
+ id="path11632"
+ d="m 319.9715,39.79842 0.9937,0.99366 -0.9937,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#262626;stroke:none"
+ id="path11634"
+ d="m 351.7687,39.79842 0,0.99366 3.9746,0 -3.9746,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#252525;stroke:none"
+ id="path11636"
+ d="m 363.3617,40.1296 0.6618,0.33129 -0.6618,-0.33129 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#000000;stroke:none"
+ id="path11638"
+ d="m 17.8985,41.78574 0,0.99365 5.962,0 -5.962,-0.99365 m 38.7528,0 0,0.99365 6.9556,0 -6.9556,-0.99365 m 40.7401,0 0,0.99365 6.9556,0 -6.9556,-0.99365 m 56.6387,0 0,0.99365 5.9619,0 -5.9619,-0.99365 m 52.664,0 0,0.99365 6.9557,0 -6.9557,-0.99365 m 85.4549,0 0,0.99365 6.9556,0 -6.9556,-0.99365 m 49.6831,0 0,0.99365 7.9493,0 -7.9493,-0.99365 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c0c0c0;stroke:none"
+ id="path11640"
+ d="m 151.0491,53.70967 0,0.99367 8.9429,0 -8.9429,-0.99367 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#96969d;stroke:none"
+ id="path11642"
+ d="m 212.6561,53.70967 0,21.86055 596.1968,0 0,-0.99366 -22.8543,0 0,-19.87322 22.8543,0 -16.8923,-0.99367 -34.7781,0 -122.2204,0 -422.306,0 m 606.1334,0 0,21.86055 193.7639,0 0,-0.99366 -22.8542,0 0,-19.87322 22.8542,0 -18.8795,-0.99367 -38.7528,0 -136.1316,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c7c7c7;stroke:none"
+ id="path11644"
+ d="m 119.2519,54.70334 -7.9492,12.91759 2.9809,-2.98099 10.9303,-3.97463 0,-0.99368 -5.962,-4.96829 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#979797;stroke:none"
+ id="path11646"
+ d="m 144.0935,70.60191 c 7.3203,-2.62625 9.6345,-5.09708 4.9683,-11.92393 l 14.9049,0 c -10.187,-12.23038 -19.8732,1.145 -19.8732,11.92393 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#fdf453;stroke:none"
+ id="path11648"
+ d="m 196.995,55.87178 c -3.9567,1.77448 -1.5054,8.39107 2.6074,6.60607 4.1902,-1.81861 1.5123,-8.45328 -2.6074,-6.60607 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#96969d;stroke:none"
+ id="path11650"
+ d="m 768.1127,54.70334 0,19.87322 -554.4629,0 0,-19.87322 554.4629,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f0f0f0;stroke:none"
+ id="path11652"
+ d="m 769.1064,54.70334 0,19.87322 15.8986,0 0,-19.87322 -15.8986,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11654"
+ d="m 819.7831,54.70334 0,19.87322 29.8099,0 0,-19.87322 -29.8099,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#96969d;stroke:none"
+ id="path11656"
+ d="m 988.7056,54.70334 0,19.87322 -138.119,0 0,-19.87322 138.119,0 m -178.8591,0.99366 0,17.8859 0.9937,0 -0.9937,-17.8859 m 203.7006,0 0,17.8859 0.9936,0 -0.9936,-17.8859 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#bbbeb7;stroke:none"
+ id="path11658"
+ d="m 200.7322,62.65262 -0.9937,0 0,10.93028 -15.8986,0 0,-15.89858 10.9303,0 c -9.7468,-4.08982 -17.3772,7.12475 -10.9025,15.299 2.1682,2.73794 13.6748,2.73794 15.843,0 1.9267,-2.43199 1.0215,-7.42185 1.0215,-10.3307 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#828282;stroke:none"
+ id="path11660"
+ d="m 216.6307,56.69066 0,14.90492 3.9747,0 0,-0.99367 -2.981,0 0,-12.91759 11.9239,0 -12.9175,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#bcd3df;stroke:none"
+ id="path11662"
+ d="m 1001.6231,66.62727 0,-0.99366 -3.9746,0 3.9746,-4.9683 0,-0.99368 -6.9556,3.97465 c 1.1427,-3.94045 2.9214,-5.33277 6.9556,-5.96196 -9.078,-3.66124 -10.4831,11.4908 0,8.94295 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e48b40;stroke:none"
+ id="path11664"
+ d="M 23.8605,57.68432 C 20.5938,60.99251 16.001,64.3648 19.8858,68.61459 L 23.8605,57.68432 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#d86c00;stroke:none"
+ id="path11666"
+ d="m 24.8541,57.68432 0,4.9683 8.943,2.98099 0.9936,0 0,-3.97464 -8.9429,0 -0.9937,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b9b9b9;stroke:none"
+ id="path11668"
+ d="m 73.5435,57.68432 0,3.97465 -8.9429,0 0,7.94928 8.9429,0 0,3.97465 c 9.3905,-4.39467 7.4618,-10.62373 0,-15.89858 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ececec;stroke:none"
+ id="path11670"
+ d="m 183.8399,57.68432 0,15.89858 15.8986,0 0,-9.93662 -14.9049,-2.98097 0,-1.98733 9.9366,0 -10.9303,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#d5deea;stroke:none"
+ id="path11672"
+ d="m 217.6244,57.68432 0,12.91759 2.981,0 0.9937,-5.96197 0.9936,0 0,7.9493 9.9366,-4.96831 0,-0.99366 -1.9873,-0.99366 c 3.8355,-2.88589 -5.173,-2.46666 -6.9556,-1.98733 l 0,-0.99366 5.9619,-0.99365 0,-3.97465 -11.9239,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#5e7ca6;stroke:none"
+ id="path11674"
+ d="m 229.5483,57.68432 0,3.97465 -5.9619,0.99365 0,0.99366 6.9556,-0.99366 -0.9937,-4.9683 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f6f6f6;stroke:none"
+ id="path11676"
+ d="m 149.0618,58.67798 c 2.5815,5.43841 2.5815,7.47919 0,12.9176 l 4.9683,-3.97465 1.9873,0 4.9683,3.97465 c -2.5815,-5.43831 -2.5815,-7.47919 0,-12.9176 l -11.9239,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#777777;stroke:none"
+ id="path11678"
+ d="m 160.9857,71.59558 -11.9239,0 1.9873,-3.97465 -5.962,2.98098 c 7.4704,10.26095 24.6597,4.93085 20.5509,-8.79191 -1.4,-4.67598 -6.5611,-1.30458 -7.5508,1.87991 -0.935,3.00671 1.3216,5.59669 2.8985,7.90567 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#fdb03d;stroke:none"
+ id="path11680"
+ d="m 184.8336,58.67798 0,0.99365 8.9429,0 -8.9429,-0.99365 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#fffaac;stroke:none"
+ id="path11682"
+ d="m 197.7512,58.67798 0,1.98733 1.9873,0 0,-1.98733 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#246740;stroke:none"
+ id="path11684"
+ d="m 793.9479,58.67798 0,11.92393 2.981,-0.99366 c -2.035,-3.66462 -2.035,-6.27179 0,-9.93662 l -2.981,-0.99365 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#fab46e;stroke:none"
+ id="path11686"
+ d="m 23.8605,59.67163 -4.9683,6.95564 0.9936,0.99366 13.9113,-2.98099 0,-1.98732 -9.9366,-2.98099 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#dd7613;stroke:none"
+ id="path11688"
+ d="m 184.8336,59.67163 0,0.99368 9.9366,0 -9.9366,-0.99368 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c7c7c7;stroke:none"
+ id="path11690"
+ d="m 219.6117,59.67163 0,0.99368 7.9493,0 -7.9493,-0.99368 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#191819;stroke:none"
+ id="path11692"
+ d="m 823.7578,59.67163 1.9873,4.96831 0.9937,0 -2.981,-4.96831 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b9bab9;stroke:none"
+ id="path11694"
+ d="m 825.7451,59.67163 0,2.98099 0.9937,0 -0.9937,-2.98099 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#191819;stroke:none"
+ id="path11696"
+ d="m 828.7261,59.67163 1.9873,4.96831 0.9937,0 -2.981,-4.96831 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c8c7c8;stroke:none"
+ id="path11698"
+ d="m 830.7134,59.67163 2.981,3.97465 -2.981,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#848384;stroke:none"
+ id="path11700"
+ d="m 832.7007,59.67163 0,2.98099 1.9874,-2.98099 -1.9874,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#7a7b7a;stroke:none"
+ id="path11702"
+ d="m 836.6754,59.67163 -2.981,8.94296 4.9683,-8.94296 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c7c7c7;stroke:none"
+ id="path11704"
+ d="m 165.954,60.66531 0,8.94294 0.9937,0 -0.9937,-8.94294 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#8ecaa2;stroke:none"
+ id="path11706"
+ d="m 794.9416,60.66531 0,7.94928 2.981,-0.99366 -0.9937,-2.98099 2.981,-0.99366 0,-0.99366 -4.9683,-1.98731 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#5c9a4d;stroke:none"
+ id="path11708"
+ d="m 796.9289,60.66531 0,0.99366 2.981,0.99365 0,0.99366 -2.981,0.99366 0,3.97465 7.9493,-2.98098 0,-1.98733 -7.9493,-2.98097 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e5e5e5;stroke:none"
+ id="path11710"
+ d="m 853.5676,60.66531 3.9747,7.94928 0.9936,-4.96831 0.9937,0 0,2.98099 0.9937,0 -2.981,-5.96196 0,3.97463 -1.9874,0 -1.9873,-3.97463 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c7c7c7;stroke:none"
+ id="path11712"
+ d="m 862.5106,60.66531 -1.9873,7.94928 0.9936,0 0.9937,-7.94928 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#dddddd;stroke:none"
+ id="path11714"
+ d="m 868.4725,60.66531 0,7.94928 0.9937,0 0.9937,-1.98732 2.9809,1.98732 0,-5.96197 -3.9746,1.98732 -0.9937,-3.97463 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#dadada;stroke:none"
+ id="path11716"
+ d="m 895.3014,60.66531 c -3.5702,3.66998 -5.9689,7.39362 0.9937,7.94928 l -0.9937,-7.94928 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c9c9c9;stroke:none"
+ id="path11718"
+ d="m 911.2,61.65897 -0.9937,0.99365 3.9747,5.96197 0,-0.99366 0,-4.96831 -2.981,-0.99365 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#d1d1d1;stroke:none"
+ id="path11720"
+ d="m 34.7907,62.65262 0,7.94929 c -3.6208,0 -8.045,-1.20918 -8.9429,2.98099 l -9.9366,-7.94929 9.9366,9.93661 0.9937,-3.97464 c 6.1909,-0.0219 10.9191,-1.84812 7.9492,-8.94296 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#adadad;stroke:none"
+ id="path11722"
+ d="m 111.3027,62.65262 c -3.7819,13.19731 14.3633,17.89832 16.8922,3.97465 -5.6589,0.44109 -10.5964,5.98472 -12.9176,-1.98733 l -0.9937,0 -2.9809,2.98099 0,-4.96831 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#949494;stroke:none"
+ id="path11724"
+ d="m 119.2519,62.65262 0,2.98099 1.9874,-0.99367 0,-0.99366 -1.9874,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#7b94b6;stroke:none"
+ id="path11726"
+ d="m 230.542,62.65262 1.9873,1.98732 0,-1.98732 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#636363;stroke:none"
+ id="path11728"
+ d="m 774.0747,62.65262 2.981,3.97465 0.9937,0 1.9873,-3.97465 -5.962,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c9c9c9;stroke:none"
+ id="path11730"
+ d="m 865.4915,62.65262 0,5.96197 0.9937,0 -0.9937,-5.96197 m 8.943,0 0,5.96197 0.9937,0 -0.9937,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c8c8c8;stroke:none"
+ id="path11732"
+ d="m 877.4155,62.65262 0,7.94929 0.9937,0 2.9809,-1.98732 0,-0.99366 c -1.722,-1.88169 -2.0787,-2.40268 0,-3.97465 l -3.9746,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c9c9c9;stroke:none"
+ id="path11734"
+ d="m 898.2824,62.65262 0,5.96197 0.9936,0 -0.9936,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#d8d8d8;stroke:none"
+ id="path11736"
+ d="m 901.2634,62.65262 0,0.99366 2.9809,0 0,0.99366 -2.9809,0 0,3.97465 4.9683,0 c -0.2981,-3.8398 -1.0821,-5.3144 -4.9683,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#dadada;stroke:none"
+ id="path11738"
+ d="m 916.4694,63.8165 c -2.7157,1.48185 -0.3915,5.60088 2.1045,3.72314 2.0261,-1.52427 0.327,-5.04958 -2.1045,-3.72314 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c8c8c8;stroke:none"
+ id="path11740"
+ d="m 922.1303,62.65262 0,7.94929 0.9936,0 2.981,-1.98732 0,-0.99366 c -1.722,-1.88169 -2.0787,-2.40268 0,-3.97465 l -3.9746,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c9c9c9;stroke:none"
+ id="path11742"
+ d="m 929.0859,62.65262 0,5.96197 0.9936,0 -0.9936,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#000000;stroke:none"
+ id="path11744"
+ d="m 46.7147,63.64628 1.9873,2.98099 0.9936,0 1.9874,-2.98099 -4.9683,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#7f7f7f;stroke:none"
+ id="path11746"
+ d="m 93.4167,63.64628 1.9874,2.98099 0.9936,0 1.9874,-2.98099 -4.9684,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#484748;stroke:none"
+ id="path11748"
+ d="m 826.7388,63.64628 2.9809,6.95563 -2.9809,-6.95563 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3c3a3c;stroke:none"
+ id="path11750"
+ d="m 831.7071,63.64628 c -0.796,3.27322 0.024,5.24723 2.981,6.95563 l -2.981,-6.95563 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#000000;stroke:none"
+ id="path11752"
+ d="m 841.6437,63.64628 1.9873,2.98099 0.9937,0 1.9873,-2.98099 -4.9683,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#cecece;stroke:none"
+ id="path11754"
+ d="m 881.3901,63.64628 0,3.97465 0.9937,0 -0.9937,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#d5d5d5;stroke:none"
+ id="path11756"
+ d="m 884.3711,63.64628 0,3.97465 0.9937,0 3.9746,-3.97465 -4.9683,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#dadada;stroke:none"
+ id="path11758"
+ d="m 893.3141,63.64628 0.9936,0 -1.9873,3.97465 0.9937,-3.97465 m 23.8478,0 0.9937,0 -1.9873,3.97465 0.9936,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#cecece;stroke:none"
+ id="path11760"
+ d="m 926.1049,63.64628 0,3.97465 0.9937,0 -0.9937,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#8894a0;stroke:none"
+ id="path11762"
+ d="m 1002.6168,63.64628 c -0.477,3.34885 2.2457,9.62024 5.962,5.96197 l -5.962,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f88700;stroke:none"
+ id="path11764"
+ d="m 19.8858,67.62093 5.962,5.96197 0,-3.97465 8.9429,0 C 33.4841,61.7784 25.0604,65.69214 19.8858,67.62093 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#5b7aa5;stroke:none"
+ id="path11766"
+ d="m 221.5991,64.63994 0.9936,7.9493 -0.9936,-7.9493 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c3c4c6;stroke:none"
+ id="path11768"
+ d="m 1003.6105,64.63994 3.9746,5.96197 0.9937,-0.99366 -4.9683,-4.96831 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c4c4c4;stroke:none"
+ id="path11770"
+ d="m 795.9353,69.60825 0,0.99366 6.9556,-2.98098 -6.9556,1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a9a8a9;stroke:none"
+ id="path11772"
+ d="m 829.7197,66.62727 0.9937,2.98098 -0.9937,-2.98098 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#bebebe;stroke:none"
+ id="path11774"
+ d="m 154.6929,67.95212 0.6617,0.33129 -0.6617,-0.33129 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a9a8a9;stroke:none"
+ id="path11776"
+ d="m 827.0697,68.28341 0.3318,0.66236 -0.3318,-0.66236 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b9bab9;stroke:none"
+ id="path11778"
+ d="m 832.038,68.28341 0.3318,0.66236 -0.3318,-0.66236 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#d0d0d0;stroke:none"
+ id="path11780"
+ d="m 885.3648,67.62093 0,0.99366 3.9746,0 -3.9746,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#959595;stroke:none"
+ id="path11782"
+ d="m 25.8478,69.60825 0,0.99366 8.9429,0 -8.9429,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#9dbee1;stroke:none"
+ id="path11784"
+ d="m 227.561,69.60825 -1.9873,0.99366 0,0.99367 1.9873,-1.98733 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#6c97c6;stroke:none"
+ id="path11786"
+ d="m 226.5674,71.59558 0,0.99366 3.9746,-1.98733 -3.9746,0.99367 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c8c7c8;stroke:none"
+ id="path11788"
+ d="m 828.3952,70.93311 0.6618,0.33127 -0.6618,-0.33127 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b9bab9;stroke:none"
+ id="path11790"
+ d="m 833.3635,70.93311 0.6618,0.33127 -0.6618,-0.33127 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#cbcbcb;stroke:none"
+ id="path11792"
+ d="m 4.9809,82.52586 0,0.99365 1017.5091,0 -26.8288,-0.99365 -59.6197,0 -208.6689,0 -722.3917,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#cdcdcd;stroke:none"
+ id="path11794"
+ d="m 4.9809,83.51951 0,4.96831 5.962,0 -0.9937,5.96197 8.943,0 0,-0.99366 -6.9557,0 0,-5.96198 c 4.3582,0 9.3259,-1.02645 11.924,2.98099 l 0.9936,0 8.943,-2.98099 0.9936,-0.99366 -0.9936,-1.98732 964.8451,0.99366 0,4.96831 3.9746,0 0,11.92393 0.9937,0 c 0,-11.94192 1.9674,-13.91125 13.9112,-13.91125 l -0.9936,14.90491 0.9936,0 0.9937,-12.91759 3.9746,0 0,-6.95563 -1017.5091,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#9b9b9b;stroke:none"
+ id="path11796"
+ d="m 33.7971,84.51317 0,0.99366 244.4406,0 -22.8542,-0.99366 -49.683,0 -171.9034,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#cfcfcf;stroke:none"
+ id="path11798"
+ d="m 278.2377,87.49415 0.9937,0 14.9049,-1.98732 34.7782,0 134.1442,0 518.6912,0 -0.9936,21.86055 0.9936,0 1.9873,-21.86055 c -13.5654,-4.95876 -35.1547,-0.99366 -49.683,-0.99366 l -112.2837,0 -380.5723,0 -124.2077,0 -28.8161,0 c -3.7461,0 -8.9967,-1.40683 -9.9367,2.98098 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11800"
+ d="m 34.7907,85.50683 0,0.99366 242.4534,0 0,0.99366 -2.981,0 -2.981,3.97465 0.9937,4.96831 5.9619,0 0,11.92393 c -46.398,-5.86359 -96.2907,-0.99366 -143.0872,-0.99366 -32.451,0 -69.4626,-4.92658 -101.3534,0.99366 l 0,-11.92393 6.9556,0 -2.981,-2.98098 0,-5.96198 -4.9683,0 0,20.86689 -27.8225,0 0,1.98733 1017.5091,0 0,-1.98733 -743.2586,0 -1.1715,-21.26097 -14.7271,-1.59324 -43.7211,0 -184.821,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#d1d1d1;stroke:none"
+ id="path11802"
+ d="m 279.2314,85.50683 0,0.99366 702.5185,0 -18.8795,-0.99366 -41.7338,0 -144.0809,0 -497.8243,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e2e2e2;stroke:none"
+ id="path11804"
+ d="m 981.7499,107.36738 40.7401,0 0,-16.89224 -3.9746,0 c 0,3.14891 0.8148,7.86205 -1.0235,10.61439 -2.345,3.52343 -11.4867,3.32171 -13.8516,-0.11506 -1.8482,-2.68686 -1.0235,-7.40308 -1.0235,-10.49933 l -3.9746,0 0,-4.96831 c -4.0691,0 -11.0684,-1.32822 -14.589,1.02129 -4.5966,3.06733 -2.3033,15.95144 -2.3033,20.83926 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a7a7a7;stroke:none"
+ id="path11806"
+ d="m 31.8097,86.50049 0,20.86689 -26.8288,0 0,0.99366 27.8225,0 -0.9937,-21.86055 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f8f8f8;stroke:none"
+ id="path11808"
+ d="m 33.7971,88.48782 3.9746,-0.99367 0,5.96198 2.981,0 0,-3.97465 146.0682,1.98732 87.4422,0 2.981,-3.97465 -17.8859,-0.99366 -37.7591,0 -131.1633,0 -41.7338,0 -14.9049,1.98733 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a7a7a7;stroke:none"
+ id="path11810"
+ d="m 279.2314,86.50049 0,21.86055 743.2586,0 0,-0.99366 -742.2649,0 -0.9937,-20.86689 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#d3d3d3;stroke:none"
+ id="path11812"
+ d="m 280.2251,86.50049 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a5a5a5;stroke:none"
+ id="path11814"
+ d="m 11.9365,87.49415 0,0.99367 11.924,0 -11.924,-0.99367 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#d5d5d5;stroke:none"
+ id="path11816"
+ d="m 280.2251,87.49415 0,0.99367 700.5312,0 -18.8796,-0.99367 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e5e5e5;stroke:none"
+ id="path11818"
+ d="m 4.9809,88.48782 0,18.87956 26.8288,0 0,-18.87956 -6.9556,0 1.9874,14.90491 -17.886,0 1.9874,-14.90491 -5.962,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f3f3f3;stroke:none"
+ id="path11820"
+ d="m 11.9365,93.45613 c 5.0522,-0.0174 9.0904,-0.36785 11.924,-4.96831 -5.1475,0 -10.8848,-1.25868 -11.924,4.96831 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#d8d8d8;stroke:none"
+ id="path11822"
+ d="m 280.2251,88.48782 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f04f00;stroke:none"
+ id="path11824"
+ d="m 1004.6041,88.48782 0,0.99366 10.9303,0 -10.9303,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f9a465;stroke:none"
+ id="path11826"
+ d="m 1004.6041,90.47514 0,4.96831 2.981,-0.99366 -0.9936,-2.98099 9.9366,1.98733 0.9936,-4.96831 -12.9176,1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#828282;stroke:none"
+ id="path11828"
+ d="m 40.7527,89.48148 0,14.90492 3.9746,0 0,-0.99367 -2.9809,0 0,-12.91759 11.9239,0 -12.9176,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#dadada;stroke:none"
+ id="path11830"
+ d="m 280.2251,89.48148 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f46600;stroke:none"
+ id="path11832"
+ d="m 1003.6105,89.48148 0,12.91759 c 11.745,0 13.9112,-0.87442 13.9112,-12.91759 l -0.9936,0 0,3.97465 -3.9747,0.99366 1.9873,3.97463 -7.9492,0 2.9809,-3.97463 -4.9683,0.99366 -0.9936,-5.96197 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#fccca9;stroke:none"
+ id="path11834"
+ d="m 1004.6041,89.48148 0,0.99366 8.943,0 -8.943,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#96a38a;stroke:none"
+ id="path11836"
+ d="m 19.8858,91.4688 0.9937,3.97465 3.9746,-0.99366 0,-3.97465 -4.9683,0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ebebeb;stroke:none"
+ id="path11838"
+ d="m 41.7464,90.47514 0,12.91759 2.9809,0 -0.9936,-5.96197 0,-0.99365 2.981,0 0,-0.99366 -2.981,0 0,-0.99366 9.9366,0 0,-3.97465 -11.9239,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#5e7ca6;stroke:none"
+ id="path11840"
+ d="m 53.6703,90.47514 0,3.97465 -5.962,0.99366 0,0.99366 8.943,0.99365 -2.981,-6.95562 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f04f00;stroke:none"
+ id="path11842"
+ d="m 258.3645,90.47514 0,0.99366 10.9303,0 -10.9303,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f9a465;stroke:none"
+ id="path11844"
+ d="m 258.3645,92.46246 0,4.9683 2.981,-0.99365 -0.9937,-2.98098 8.943,0.99366 1.9873,-3.97465 -12.9176,1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#dddddd;stroke:none"
+ id="path11846"
+ d="m 280.2251,90.47514 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#498f00;stroke:none"
+ id="path11848"
+ d="m 24.8541,91.4688 1.9874,5.96196 -1.9874,-5.96196 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f6f6f6;stroke:none"
+ id="path11850"
+ d="m 54.664,91.4688 c 1.9378,6.38537 5.9794,4.37767 9.9366,0.99366 l 0.5995,7.92166 11.3244,1.02129 27.8225,0 11.3238,-1.02129 0.6002,-7.92166 c 8.9747,7.67664 27.3376,3.97465 38.7527,3.97465 l 101.3535,0 0.9937,-4.96831 -202.7069,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f46600;stroke:none"
+ id="path11852"
+ d="m 257.3709,91.4688 0,12.9176 c 11.0216,0 13.9112,-0.30605 13.9112,-11.92394 l -4.9683,3.97465 0,0.99365 1.9873,2.98099 -7.9493,0 2.981,-3.97464 -4.9683,0.99365 -0.9936,-5.96196 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#fccca9;stroke:none"
+ id="path11854"
+ d="m 258.3645,91.4688 0,0.99366 8.943,0 -8.943,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#dfdfdf;stroke:none"
+ id="path11856"
+ d="m 280.2251,91.4688 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#6bae22;stroke:none"
+ id="path11858"
+ d="m 19.8858,92.46246 0,5.96196 5.962,0 -5.962,-5.96196 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c7c7c7;stroke:none"
+ id="path11860"
+ d="m 43.7337,92.46246 0,0.99367 7.9493,0 -7.9493,-0.99367 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3333ff;stroke:none"
+ id="path11862"
+ d="m 62.6133,92.46246 -1.9874,8.94295 0,0.99366 59.6197,0 0,-0.99366 -3.9746,-8.94295 -1.3137,7.92166 -11.6039,1.02129 -26.8289,0 -10.6136,-1.02129 -1.3103,-7.92166 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#4040fd;stroke:none"
+ id="path11864"
+ d="m 66.5879,92.46246 c 0.1035,8.73936 5.8584,8.73925 5.962,0 l -0.9937,0 0,5.96196 -2.981,0 0,-5.96196 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b5b5f8;stroke:none"
+ id="path11866"
+ d="m 70.5625,92.46246 0,5.96196 0.9937,0 -0.9937,-5.96196 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#7272fc;stroke:none"
+ id="path11868"
+ d="m 72.5499,92.46246 0,5.96196 0.9936,0 -0.9936,-5.96196 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#9999fa;stroke:none"
+ id="path11870"
+ d="m 84.1426,92.79365 0.6624,0.33128 -0.6624,-0.33128 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#6363fd;stroke:none"
+ id="path11872"
+ d="m 89.1109,92.79365 0.6624,0.33128 -0.6624,-0.33128 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#9999fa;stroke:none"
+ id="path11874"
+ d="m 93.0856,92.79365 0.6623,0.33128 -0.6623,-0.33128 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3333ff;stroke:none"
+ id="path11876"
+ d="m 97.3914,92.46246 0,7.94929 0.9937,0 -0.9937,-7.94929 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#5f5ff9;stroke:none"
+ id="path11878"
+ d="m 98.3851,92.46246 0,7.94929 0.9936,0 -0.9936,-7.94929 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3333ff;stroke:none"
+ id="path11880"
+ d="m 112.2963,92.46246 c -2.6083,2.85608 -5.011,5.32077 -0.9936,7.94929 l -1.9874,-3.97464 2.981,3.97464 0.9937,0 -0.9937,-7.94929 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#6363f9;stroke:none"
+ id="path11882"
+ d="m 113.29,92.46246 0,7.94929 0.9936,0 -0.9936,-7.94929 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#cacaca;stroke:none"
+ id="path11884"
+ d="m 256.3772,92.46246 0,11.92394 0.9937,0 -0.9937,-11.92394 m 14.9049,0 -0.9937,12.9176 0.9937,0 0,-12.9176 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e0e0e0;stroke:none"
+ id="path11886"
+ d="m 280.2251,92.46246 0,0.99367 700.5312,0 -18.8796,-0.99367 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#91ac72;stroke:none"
+ id="path11888"
+ d="m 18.8922,93.45613 0,3.97463 0.9936,0 -0.9936,-3.97463 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#fdfdfd;stroke:none"
+ id="path11890"
+ d="m 22.8668,93.45613 -0.9937,0.99366 0,0.99366 0.9937,0.99366 0.9937,0 0.9936,-0.99366 0,-0.99366 -1.9873,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3e3efe;stroke:none"
+ id="path11892"
+ d="m 82.4865,94.44979 4.9683,5.96196 0,-0.99365 0,-4.96831 -4.9683,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a7a7f9;stroke:none"
+ id="path11894"
+ d="m 89.1109,93.78731 0.6624,0.33128 -0.6624,-0.33128 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3e3efe;stroke:none"
+ id="path11896"
+ d="m 91.4294,94.44979 4.9683,5.96196 0,-0.99365 0,-4.96831 -4.9683,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e2e2e2;stroke:none"
+ id="path11898"
+ d="m 280.2251,93.45613 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#9d9d9d;stroke:none"
+ id="path11900"
+ d="m 8.9555,94.44979 0,8.94294 17.886,0 0,-5.96197 -0.9937,0 0,4.96831 -15.8986,0 -0.9937,-7.94928 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ededed;stroke:none"
+ id="path11902"
+ d="m 9.9492,94.44979 0,7.94928 15.8986,0 0,-2.98097 -6.9556,-4.96831 -8.943,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#cbd6e0;stroke:none"
+ id="path11904"
+ d="m 43.7337,94.44979 0,0.99366 2.981,0 0,0.99366 -2.981,0 0,0.99365 2.981,0 0,7.9493 4.9683,-1.98733 0,-0.99366 -3.9747,0 4.9683,-4.96831 3.9747,2.98099 0,-0.99365 -1.9873,-3.97465 -6.9557,0.99366 -3.9746,-1.98732 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#5252fd;stroke:none"
+ id="path11906"
+ d="m 75.5308,94.44979 0,5.96196 1.9874,0 0,-3.97464 1.9873,0 0,3.97464 1.9873,0 c -0.3379,-4.33704 -1.6249,-5.62412 -5.962,-5.96196 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3333ff;stroke:none"
+ id="path11908"
+ d="m 88.4484,94.44979 0,5.96196 0.9937,0 -0.9937,-5.96196 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#5f5ff9;stroke:none"
+ id="path11910"
+ d="m 89.4421,94.44979 0,5.96196 0.9937,0 -0.9937,-5.96196 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#8181f8;stroke:none"
+ id="path11912"
+ d="m 102.3597,94.44979 2.981,1.98732 0,-0.99366 -2.981,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#3333ff;stroke:none"
+ id="path11914"
+ d="m 103.3534,94.44979 0,0.99366 1.9873,0 0,0.99366 -3.9747,-0.99366 c 0.5048,3.03832 2.2129,6.0196 4.9683,2.98097 l -2.9809,0.99368 2.9809,-4.96831 -2.9809,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e3e3e3;stroke:none"
+ id="path11916"
+ d="m 280.2251,94.44979 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e4e4e4;stroke:none"
+ id="path11918"
+ d="m 280.2251,95.44345 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#000000;stroke:none"
+ id="path11920"
+ d="m 987.7119,95.44345 1.9873,2.98097 0.9937,0 1.9873,-2.98097 -4.9683,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ececec;stroke:none"
+ id="path11922"
+ d="m 33.7971,96.43711 0,11.92393 84.4612,-0.99366 156.0048,0 0,-0.99366 -218.6055,-0.99366 0.9937,-3.97465 -3.9747,-3.97465 -4.9683,4.96831 6.9557,2.98099 -5.962,-1.98733 -0.9937,0 -6.9556,0.99367 0,-7.94929 -6.9556,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#ebebeb;stroke:none"
+ id="path11924"
+ d="m 54.664,96.43711 1.9873,2.98099 -0.9937,5.96196 130.1696,0 c 30.9059,0 61.9359,-1.0503 92.4105,2.98098 l 0,-11.92393 -5.9619,0 -3.1281,8.34378 -15.8409,-2.24966 -30.7141,-0.13216 -161.9668,0 0,-0.99366 0.9937,-4.9683 -6.9556,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#8e8ef3;stroke:none"
+ id="path11926"
+ d="m 100.7036,97.09958 0.3312,0.66238 -0.3312,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#9494f2;stroke:none"
+ id="path11928"
+ d="m 109.6462,97.09958 0.3319,0.66238 -0.3319,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#c5c5ec;stroke:none"
+ id="path11930"
+ d="m 110.309,96.43711 0,2.98099 1.9873,-2.98099 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e8e8e8;stroke:none"
+ id="path11932"
+ d="m 119.2519,96.43711 -0.9936,4.9683 46.7021,0.99366 91.4168,0 0,-5.96196 -137.1253,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e6e6e6;stroke:none"
+ id="path11934"
+ d="m 280.2251,96.43711 0,0.99365 700.5312,0 -18.8796,-0.99365 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#fab481;stroke:none"
+ id="path11936"
+ d="m 1010.2382,96.76829 0.6558,0.33129 -0.6558,-0.33129 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#5b7aa5;stroke:none"
+ id="path11938"
+ d="m 45.721,97.43076 0.9937,7.9493 -0.9937,-7.9493 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e7e7e7;stroke:none"
+ id="path11940"
+ d="m 280.2251,97.43076 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f79044;stroke:none"
+ id="path11942"
+ d="m 1015.5344,97.43076 c -2.4146,3.72087 -6.578,3.53715 -9.9366,0.99366 l -0.9937,0 c 1.0036,4.69605 7.9593,2.98099 11.924,2.98099 l -0.9937,-3.97465 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#819d63;stroke:none"
+ id="path11944"
+ d="m 20.8795,98.42442 0,0.99368 3.9746,0 -3.9746,-0.99368 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#7878f6;stroke:none"
+ id="path11946"
+ d="m 111.6335,99.0869 0.3319,0.66238 -0.3319,-0.66238 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#fab481;stroke:none"
+ id="path11948"
+ d="m 263.9956,98.75562 0.6618,0.33128 -0.6618,-0.33128 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e8e8e8;stroke:none"
+ id="path11950"
+ d="m 280.2251,98.42442 0,0.99368 700.5312,0 -18.8796,-0.99368 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f79044;stroke:none"
+ id="path11952"
+ d="m 269.2948,99.4181 c -2.4126,3.72126 -6.579,3.53743 -9.9366,0.99365 l -0.9937,0 c 1.0066,4.69604 7.9543,2.98098 11.9239,2.98098 l -0.9936,-3.97463 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e9e9e9;stroke:none"
+ id="path11954"
+ d="m 280.2251,99.4181 0,0.99365 700.5312,0 -18.8796,-0.99365 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#eaeaea;stroke:none"
+ id="path11956"
+ d="m 280.2251,100.41175 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e9e9e9;stroke:none"
+ id="path11958"
+ d="m 280.2251,101.40541 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#9dbee1;stroke:none"
+ id="path11960"
+ d="m 51.683,102.39907 -1.9874,0.99366 0,0.99367 1.9874,-1.98733 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e7e7e7;stroke:none"
+ id="path11962"
+ d="m 280.2251,102.39907 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#909090;stroke:none"
+ id="path11964"
+ d="m 1004.6041,102.39907 0,0.99366 11.924,0 -11.924,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#6c97c6;stroke:none"
+ id="path11966"
+ d="m 50.6893,104.3864 0,0.99366 3.9747,-1.98733 -3.9747,0.99367 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e5e5e5;stroke:none"
+ id="path11968"
+ d="m 280.2251,103.39273 0,0.99367 700.5312,0 -18.8796,-0.99367 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#929292;stroke:none"
+ id="path11970"
+ d="m 258.3645,104.3864 0,0.99366 11.9239,0 -11.9239,-0.99366 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e2e2e2;stroke:none"
+ id="path11972"
+ d="m 280.2251,104.3864 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e0e0e0;stroke:none"
+ id="path11974"
+ d="m 280.2251,105.38006 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#dddddd;stroke:none"
+ id="path11976"
+ d="m 280.2251,106.37372 0,0.99366 700.5312,0 -18.8796,-0.99366 -41.7338,0 -143.0872,0 -496.8306,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a7a7a7;stroke:none"
+ id="path11978"
+ d="m 4.9809,110.34837 0,0.99366 1017.5091,0 -26.8288,-0.99366 -59.6197,0 -208.6689,0 -722.3917,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#868686;stroke:none"
+ id="path11980"
+ d="m 4.9809,789.0191 1015.5218,0 0,-0.9936 -769.0938,0 -192.7703,0 c -14.6514,0 -34.53,3.5562 -48.6311,-0.3161 -5.2877,-1.4517 -5.9314,-14.4726 -2.4397,-17.9643 2.8571,-2.8568 9.641,-1.5929 13.3117,-1.5929 l 37.7591,0 148.0555,0 592.2221,0 168.9225,0 37.7591,0 c 3.8554,0 11.3178,-1.3981 14.3087,1.5929 3.3785,3.3774 1.5899,12.8598 1.5899,17.2866 1.5103,-3.5941 2.8617,-16.1112 -0.5962,-18.8518 -2.4345,-1.9277 -7.4426,-1.0214 -10.3341,-1.0214 l -27.8225,0 -145.0746,0 -613.089,0 -164.9477,0 -39.7465,0 c -3.4537,0 -11.4585,-1.4685 -13.8836,1.5928 -3.1438,3.9697 -1.0213,15.3581 -1.0213,20.2678 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#bebebe;stroke:none"
+ id="path11982"
+ d="m 5.9746,787.0317 0.9936,0 0,-17.8859 1013.5345,0 -20.8669,-0.9936 -46.7021,0 -159.9794,0 -555.4567,0 -175.878,0 -40.7401,0 -13.8837,1.5929 -1.0212,17.2866 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#efefef;stroke:none"
+ id="path11984"
+ d="m 6.9682,769.1458 0,17.8859 1014.5282,0 0,-17.8859 -1014.5282,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f8f8f8;stroke:none"
+ id="path11986"
+ d="m 6.9682,787.0317 0,0.9938 1013.5345,0 -26.8288,-0.9938 -59.6197,0 -207.6752,0 -719.4108,0 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#b6b6b6;stroke:none"
+ id="path11988"
+ d="m 1020.5027,787.0317 0,1.9874 1.9873,0 0,-1.9874 -1.9873,0 z"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/chat/client/ChatClientDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-02-14 00:14:58 UTC (rev 1252)
@@ -154,7 +154,7 @@
eventBus.addHandler(UserSignInEvent.getType(), new UserSignInHandler() {
@Override
public void onUserSignIn(final UserSignInEvent event) {
- doLogin(event.getUserInfo());
+ doLogin(session.getCurrentUserInfo());
}
});
eventBus.addHandler(UserSignOutEvent.getType(), new UserSignOutHandler() {
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/common/client/noti/NotifyUser.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/common/client/noti/NotifyUser.java 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/common/client/noti/NotifyUser.java 2011-02-14 00:14:58 UTC (rev 1252)
@@ -66,6 +66,10 @@
eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.info, message));
}
+ public static void info(final String message, final boolean closeable) {
+ eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.info, message, closeable));
+ }
+
public static void init(final EventBus eventBus, final I18nTranslationService i18n) {
NotifyUser.eventBus = eventBus;
NotifyUser.i18n = i18n;
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/auth/SignInAbstractPresenter.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/auth/SignInAbstractPresenter.java 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/auth/SignInAbstractPresenter.java 2011-02-14 00:14:58 UTC (rev 1252)
@@ -79,8 +79,8 @@
final String userHash = userInfoDTO.getUserHash();
cookiesManager.setCookie(userHash);
getView().reset();
+ session.setUserHash(userHash);
session.setCurrentUserInfo(userInfoDTO);
- session.setUserHash(userHash);
final I18nLanguageDTO language = userInfoDTO.getLanguage();
i18n.changeCurrentLanguage(language.getCode());
session.setCurrentLanguage(language);
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/auth/SignInPresenter.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/auth/SignInPresenter.java 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/auth/SignInPresenter.java 2011-02-14 00:14:58 UTC (rev 1252)
@@ -178,7 +178,7 @@
public void onSuccess(final UserInfoDTO userInfoDTO) {
onSignIn(userInfoDTO);
stateManager.restorePreviousToken();
- // waveClientTester.doLogin(nickOrEmail, passwd);
+ waveClientTester.doLogin(nickOrEmail, passwd);
getView().hide();
getView().unMask();
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2011-02-14 00:14:58 UTC (rev 1252)
@@ -71,10 +71,9 @@
this.siteOptions = siteOptions;
this.gotoGroupAction = gotoGroupAction;
createActions();
- // if (session.isLogged()) {
- // onUserSignIn(session.getCurrentUserInfo()); // NOPMD by vjrj on
- // 11/02/11 3:37
- // }
+ if (session.isLogged()) {
+ onUserSignIn(session.getCurrentUserInfo());
+ }
session.onUserSignIn(new UserSignInHandler() {
@Override
public void onUserSignIn(final UserSignInEvent event) {
@@ -86,6 +85,7 @@
@Override
public void onUserSignOut(final UserSignOutEvent event) {
menuDescriptor.setVisible(false);
+ menuDescriptor.setEnabled(false);
SiteUserOptionsPresenter.this.setLoggedUserName("");
}
});
@@ -140,6 +140,7 @@
private void onUserSignIn(final UserInfoDTO userInfoDTO) {
menuDescriptor.setVisible(true);
+ menuDescriptor.setEnabled(true);
setLoggedUserName(userInfoDTO.getShortName());
partiMenu.clear();
final List<GroupDTO> groupsIsAdmin = userInfoDTO.getGroupsIsAdmin();
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/SessionDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/SessionDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/SessionDefault.java 2011-02-14 00:14:58 UTC (rev 1252)
@@ -335,7 +335,7 @@
public void setCurrentUserInfo(final UserInfoDTO currentUserInfo) {
this.currentUserInfo = currentUserInfo;
if (currentUserInfo != null) {
- eventBus.fireEvent(new UserSignInEvent(currentUserInfo));
+ eventBus.fireEvent(new UserSignInEvent(this.currentUserInfo));
} else {
eventBus.fireEvent(new UserSignOutEvent());
}
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/UserSignInEvent.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/UserSignInEvent.java 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/UserSignInEvent.java 2011-02-14 00:14:58 UTC (rev 1252)
@@ -23,7 +23,6 @@
import com.google.gwt.event.shared.GwtEvent;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.event.shared.HasHandlers;
-import com.gwtplatform.mvp.client.HasEventBus;
public class UserSignInEvent extends GwtEvent<UserSignInEvent.UserSignInHandler> {
@@ -37,10 +36,6 @@
private static final Type<UserSignInHandler> TYPE = new Type<UserSignInHandler>();
- public static void fire(final HasEventBus source, final cc.kune.core.shared.dto.UserInfoDTO userInfo) {
- source.fireEvent(new UserSignInEvent(userInfo));
- }
-
public static Type<UserSignInHandler> getType() {
return TYPE;
}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/public/logo-big-home.png
===================================================================
(Binary files differ)
Property changes on: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/public/logo-big-home.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/public/ws.html
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/public/ws.html 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/public/ws.html 2011-02-14 00:14:58 UTC (rev 1252)
@@ -4,7 +4,7 @@
<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>
+ 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" />
@@ -25,7 +25,7 @@
<meta name="hablar.height" content="300px" />
<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">
+ 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>
@@ -46,32 +46,73 @@
var __useSocketIO = true;
</script>
<link
- href='http://fonts.googleapis.com/css?family=Ubuntu:regular,italic,bold,bolditalic'
- rel='stylesheet' type='text/css'>
+ 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="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">
+ href="fontface/ubuntufontface.css">
<link type="text/css" rel="stylesheet" href="kune-message.css">
<link type="text/css" rel="stylesheet" href="ws.css">
<style type="text/css">
body {
- background-color: white;
- color: black;
- font-family: 'Ubuntu', Arial;
- font-size: small;
- margin: 5px;
- overflow: hidden;
+ background-color: white;
+ color: black;
+ font-family: 'Ubuntu', Arial;
+ font-size: small;
+ overflow: hidden;
+ }
+#k-home-prewrap {
+ margin-top: -22px;
}
+#k-home-wrapper {
+ margin-left: auto;
+ margin-right: auto;
+ position: relative;
+ width: 665px;
+ min-width: 320px;
+}
+
+#k-home-logo {
+float: right;
+margin-top: 50px;
+}
+
+#k-home-ini {
+clear: both;
+font-size: 28px;
+color: #69312f;
+text-align: justify;
+padding: 50px 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;
+}
+
.banner {
- margin: 30px;
+ margin: 30px;
}
</style>
<!--[if IE 6]>
@@ -84,14 +125,14 @@
<!-- 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>
+ 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">
+ 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>
@@ -104,7 +145,18 @@
<!-- style="margin-right: 3px; float: left; vertical-align: top;" />kune <br />-->
<!--<span id="kuneloading-msg">Starting...</span></div>-->
<!--</div>-->
-<div style="heigth: 20px"> </div>
-<div id="k-home-ini" title="test">Latest projects, bla, bla, bla</div>
+<div id="k-home-prewrap">
+<div id="k-home-wrapper">
+<div id="k-home-logo"><img src="logo-big-home.png" alt="" /></div>
+<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 id="k-home-stats">
+Latests groups created
+</div>
+</div>
+</div>
</body>
</html>
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/gspace/client/WsArmor.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/gspace/client/WsArmor.java 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/gspace/client/WsArmor.java 2011-02-14 00:14:58 UTC (rev 1252)
@@ -51,4 +51,6 @@
void selectUserSpace();
+ void setFrameUrlForTesting(String url);
+
}
\ No newline at end of file
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/gspace/client/WsArmorImpl.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/gspace/client/WsArmorImpl.java 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/gspace/client/WsArmorImpl.java 2011-02-14 00:14:58 UTC (rev 1252)
@@ -27,6 +27,7 @@
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.DockLayoutPanel;
import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.Frame;
import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.SimplePanel;
@@ -62,6 +63,8 @@
@UiField
VerticalPanel entityToolsSouth;
@UiField
+ Frame frame;
+ @UiField
SplitLayoutPanel groupSpace;
@UiField
SimplePanel homeSpace;
@@ -85,7 +88,7 @@
initWidget(uiBinder.createAndBindUi(this));
groupSpace.setWidgetMinSize(splitEast, 150);
tabs.setStyleName("k-spaces");
- homeSpace.add(RootPanel.get("k-home-ini"));
+ homeSpace.add(RootPanel.get("k-home-wrapper"));
publicSpace.add(pspace.getWidget());
// userSpace.add(new Label("User space"));
}
@@ -159,4 +162,10 @@
public void selectUserSpace() {
tabs.selectTab(userSpace);
}
+
+ @Override
+ @Deprecated
+ public void setFrameUrlForTesting(final String url) {
+ frame.setUrl(url);
+ }
}
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/pspace/client/PSpacePanel.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/pspace/client/PSpacePanel.java 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/pspace/client/PSpacePanel.java 2011-02-14 00:14:58 UTC (rev 1252)
@@ -98,7 +98,8 @@
@Override
public void setContentGotoPublicUrl(final String publicUrl) {
- frame.setUrl(publicUrl);
+ frame.setUrl("about:blank");
+ // frame.setUrl(publicUrl);
}
}
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/client/WaveClientTester.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/client/WaveClientTester.java 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/client/WaveClientTester.java 2011-02-14 00:14:58 UTC (rev 1252)
@@ -1,6 +1,14 @@
package cc.kune.wave.client;
import cc.kune.common.client.noti.NotifyUser;
+import cc.kune.common.client.utils.WindowUtils;
+import cc.kune.core.client.logs.Log;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.UserSignInEvent;
+import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
+import cc.kune.core.client.state.UserSignOutEvent;
+import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
+import cc.kune.gspace.client.WsArmor;
import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestBuilder;
@@ -8,14 +16,35 @@
import com.google.gwt.http.client.RequestException;
import com.google.gwt.http.client.Response;
import com.google.gwt.http.client.URL;
+import com.google.inject.Inject;
public class WaveClientTester {
- public WaveClientTester() {
+ private final WsArmor wsarmor;
+
+ @Inject
+ public WaveClientTester(final WsArmor wsarmor, final Session session) {
+ this.wsarmor = wsarmor;
+ if (session.isLogged()) {
+ doLogin(session.getCurrentUserInfo().getChatName(), session.getCurrentUserInfo().getChatPassword());
+ }
+ session.onUserSignIn(new UserSignInHandler() {
+ @Override
+ public void onUserSignIn(final UserSignInEvent event) {
+ doLogin(event.getUserInfo().getChatName(), event.getUserInfo().getChatPassword());
+ }
+ });
+
+ session.onUserSignOut(new UserSignOutHandler() {
+ @Override
+ public void onUserSignOut(final UserSignOutEvent event) {
+ // TODO Auto-generated method stub
+ }
+ });
}
public void doLogin(final String userWithoutDomain, final String passwd) {
- final RequestBuilder request = new RequestBuilder(RequestBuilder.POST, "/auth/signin/");
+ final RequestBuilder request = new RequestBuilder(RequestBuilder.POST, "/auth/signin");
final StringBuffer params = new StringBuffer();
params.append("address=");
params.append(URL.encodeQueryString(userWithoutDomain));
@@ -33,7 +62,10 @@
@Override
public void onResponseReceived(final Request request, final Response response) {
- NotifyUser.info(response.getText());
+ final String url = WindowUtils.getLocation().getHost() + "/";
+ Log.debug("Wave client url: " + url);
+ // wsarmor.setFrameUrlForTesting(url);
+ wsarmor.setFrameUrlForTesting("/wiiiabbb");
}
});
} catch (final RequestException e) {
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java 2011-02-14 00:14:58 UTC (rev 1252)
@@ -11,6 +11,9 @@
import java.util.concurrent.Executors;
import javax.servlet.Servlet;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
@@ -24,6 +27,7 @@
import org.eclipse.jetty.websocket.WebSocket;
import org.eclipse.jetty.websocket.WebSocketServlet;
import org.jruby.rack.RackFilter;
+import org.jruby.rack.RackServletContextListener;
import org.ourproject.kune.rack.RackServletFilter;
import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolAuthenticate;
import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolAuthenticationResult;
@@ -419,7 +423,7 @@
httpServer.addConnector(connector);
}
- // final WebAppContext context = new WebAppContext();
+ // final WebAppContext webContext = new WebAppContext();
final ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
if (jettySessionManager != null) {
context.getSessionHandler().setSessionManager(jettySessionManager);
@@ -427,61 +431,42 @@
context.setResourceBase(resourceBase);
context.setContextPath(baseUrl);
- // context.setWar(baseUrl);
+ // webContext.setResourceBase(resourceBase);
+ // webContext.setContextPath(baseUrl);
+ // webContext.setWar(baseUrl);
final ServletHolder httpbindHolder = new ServletHolder(ProxyServlet.class);
httpbindHolder.setInitParameter("remotePath", "/http-bind/");
httpbindHolder.setInitParameter("remotePort", "5280");
context.addServlet(httpbindHolder, "/http-bind/");
- final FilterHolder rubyRack = new FilterHolder(org.jruby.rack.rails.RailsServletContextListener.class);
- rubyRack.setFilter(new RackFilter());
- rubyRack.setInitParameter("jruby.standalone", "true");
- rubyRack.setInitParameter("rails.root", "/WEB-INF/publicspace/");
- rubyRack.setInitParameter("files.prefix", "/WEB-INF/publicspace/public");
- rubyRack.setInitParameter("rails.env", "production");
- rubyRack.setInitParameter("jruby.max.runtimes", "1");
- rubyRack.setInitParameter("public.root", "/public/");
- context.addFilter(rubyRack, "/public/*", 0);
+ context.addEventListener(new ServletContextListener() {
- // <context-param>
- // <param-name>jruby.standalone</param-name>
- // <param-value>true</param-value>
- // </context-param>
- // <context-param>
- // <param-name>rails.root</param-name>
- // <param-value>/WEB-INF/publicspace/
- // </param-value>
- // </context-param>
- // <context-param>
- // <param-name>files.prefix</param-name>
- // <param-value>/WEB-INF/publicspace/public
- // </param-value>
- // </context-param>
- // <context-param>
- // <param-name>rails.env</param-name>
- // <param-value>production</param-value>
- // </context-param>
- // <context-param>
- // <param-name>jruby.max.runtimes</param-name>
- // <param-value>1</param-value>
- // </context-param>
- // <context-param>
- // <param-name>public.root</param-name>
- // <param-value>/public/</param-value>
- // </context-param>
- // <filter>
- // <filter-name>RackFilter</filter-name>
- // <filter-class>org.jruby.rack.RackFilter</filter-class>
- // </filter>
- // <filter-mapping>
- // <filter-name>RackFilter</filter-name>
- // <url-pattern>/public/*</url-pattern>
- // </filter-mapping>
- // <listener>
- // <listener-class>org.jruby.rack.rails.RailsServletContextListener</listener-class>
- // </listener>
+ @Override
+ public void contextDestroyed(final ServletContextEvent sce) {
+ }
+ @Override
+ public void contextInitialized(final ServletContextEvent sce) {
+ final ServletContext context = sce.getServletContext();
+ context.setAttribute("jruby.standalone", "true");
+ context.setAttribute("rails.root", "/WEB-INF/publicspace/");
+ context.setAttribute("files.prefix", "/WEB-INF/publicspace/public");
+ context.setAttribute("rails.env", "production");
+ context.setAttribute("jruby.max.runtimes", "1");
+ context.setAttribute("public.root", "/public/");
+ }
+ });
+
+ context.addEventListener(new RackServletContextListener());
+ // final FilterHolder rubyRack = new
+ // FilterHolder(org.jruby.rack.rails.RailsServletContextListener.class);
+ // rubyRack.setFilter(new RackFilter());
+
+ // context.getInitParameter("rails.root");
+
+ context.addFilter(RackFilter.class, "/public/*", 0);
+
context.addEventListener(new GuiceServletContextListener() {
@Override
protected Injector getInjector() {
@@ -538,15 +523,15 @@
context.addServlet(defaultServlet, "/static/*");
context.addServlet(defaultServlet, "/webclient/*");
context.addServlet(defaultServlet, "/ws/*");
+ context.addServlet(defaultServlet, "/images/*");
+ context.addServlet(defaultServlet, "/javascripts/*");
+ context.addServlet(defaultServlet, "/stylesheets/*");
+ context.addServlet(defaultServlet, "/templates/*");
for (final Pair<String, ServletHolder> servlet : servletRegistry) {
context.addServlet(servlet.getSecond(), servlet.getFirst());
}
- // final ContextHandlerCollection contexts = new
- // ContextHandlerCollection();
- // contexts.setHandlers(new Handler[] { context, webContext });
-
httpServer.setHandler(context);
try {
Modified: branches/wave-jetty-embed-guice/src/main/webapp/WEB-INF/web.xml
===================================================================
--- branches/wave-jetty-embed-guice/src/main/webapp/WEB-INF/web.xml 2011-02-13 11:00:54 UTC (rev 1251)
+++ branches/wave-jetty-embed-guice/src/main/webapp/WEB-INF/web.xml 2011-02-14 00:14:58 UTC (rev 1252)
@@ -117,27 +117,27 @@
<!-- <servlet-name>HttpBind</servlet-name> -->
<!-- <url-pattern>/http-bind/</url-pattern> -->
<!-- </servlet-mapping> -->
- <servlet>
- <servlet-name>Proxy</servlet-name>
- <servlet-class>de.spieleck.servlets.ProxyServlet</servlet-class>
- <init-param>
- <param-name>remotePath</param-name>
- <param-value>/http-bind/</param-value>
- </init-param>
- <init-param>
- <param-name>remoteServer</param-name>
- <param-value>localhost</param-value>
- </init-param>
- <init-param>
- <param-name>remotePort</param-name>
- <param-value>5280</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>Proxy</servlet-name>
- <url-pattern>/http-bind/
- </url-pattern>
- </servlet-mapping>
+<!-- <servlet>-->
+<!-- <servlet-name>Proxy</servlet-name>-->
+<!-- <servlet-class>de.spieleck.servlets.ProxyServlet</servlet-class>-->
+<!-- <init-param>-->
+<!-- <param-name>remotePath</param-name>-->
+<!-- <param-value>/http-bind/</param-value>-->
+<!-- </init-param>-->
+<!-- <init-param>-->
+<!-- <param-name>remoteServer</param-name>-->
+<!-- <param-value>localhost</param-value>-->
+<!-- </init-param>-->
+<!-- <init-param>-->
+<!-- <param-name>remotePort</param-name>-->
+<!-- <param-value>5280</param-value>-->
+<!-- </init-param>-->
+<!-- </servlet>-->
+<!-- <servlet-mapping>-->
+<!-- <servlet-name>Proxy</servlet-name>-->
+<!-- <url-pattern>/http-bind/-->
+<!-- </url-pattern>-->
+<!-- </servlet-mapping>-->
<!-- Kune normal guice configuration ======================================================================== -->
<!-- <filter>-->
<!-- <filter-name>rack</filter-name>-->
1
0
Author: vjrj_
Date: 2011-02-13 12:00:54 +0100 (Sun, 13 Feb 2011)
New Revision: 1251
Added:
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContainerFinder.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContentFinder.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ExtMediaDescripFinder.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/GroupFinder.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nCountryFinder.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nLanguageFinder.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nTranslationFinder.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/LicenseFinder.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/RateFinder.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagFinder.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagUserContentFinder.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/UserFinder.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/JettyModule.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/FinderRegistry.java
branches/wave-jetty-embed-guice/src/test/java/cc/kune/domain/
branches/wave-jetty-embed-guice/src/test/java/cc/kune/domain/finders/
branches/wave-jetty-embed-guice/src/test/java/cc/kune/domain/finders/TagUserContentFinderTest.java
Modified:
branches/wave-jetty-embed-guice/.classpath
branches/wave-jetty-embed-guice/pom.xml
branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/errors/SessionExpiredEvent.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/AccessRightsChangedEvent.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/GroupChangedEvent.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/SocialNetworkChangedEvent.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/StateChangedEvent.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/ToolChangedEvent.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Container.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Content.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/ExtMediaDescrip.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Group.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nCountry.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nLanguage.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nTranslation.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/License.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Rate.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Tag.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/TagUserContent.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/User.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/WaveMain.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractSeparatorDescriptor.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/BaseAction.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/OldGuiActionDescrip.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/KunePersistenceService.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/LicenseManager.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManagerDefault.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/ExtMediaDescripManagerDefault.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nCountryManagerDefault.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nLanguageManagerDefault.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nTranslationManagerDefault.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/LicenseManagerDefault.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/RateManagerDefault.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/I18nRPC.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SiteRPC.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SocialNetworkRPC.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/UserRPC.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/RackServletFilter.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/filters/rest/TransactionalServiceExecutor.java
branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java
branches/wave-jetty-embed-guice/src/main/resources/META-INF/persistence.xml
branches/wave-jetty-embed-guice/src/main/webapp/WEB-INF/web.xml
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/kuneservice/GroupServiceTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestConstants.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestHelper.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/GroupFinderTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/LicenseFinderTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/RateFinderTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/UserFinderTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/LicenseManagerTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagManagerTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagUserContentTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/impl/AbstractSocialNetworkManagerTest.java
branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java
Log:
wiab and kune in the same port
Modified: branches/wave-jetty-embed-guice/.classpath
===================================================================
--- branches/wave-jetty-embed-guice/.classpath 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/.classpath 2011-02-13 11:00:54 UTC (rev 1251)
@@ -33,10 +33,10 @@
<classpathentry kind="var" path="M2_REPO/freemarker/freemarker/2.3.8/freemarker-2.3.8.jar"/>
<classpathentry kind="var" path="M2_REPO/com/googlecode/gwt/inject/gin/r137/gin-r137.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/guava/guava-gwt/r07/guava-gwt-r07.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/code/guice/guice/2.1-SNAPSHOT-r1160/guice-2.1-SNAPSHOT-r1160.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/inject/guice/2.0/guice-2.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/inject/guice/3.0-rc2/guice-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/guice/3.0-rc2/guice-3.0-rc2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-assisted-inject/2.0/guice-assisted-inject-2.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/code/guice/guice-servlet/2.0.1/guice-servlet-2.0.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-persist/3.0-rc2/guice-persist-3.0-rc2-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/inject/extensions/guice-servlet/3.0-rc2/guice-servlet-3.0-rc2.jar" sourcepath="M2_REPO/com/google/inject/extensions/guice-servlet/3.0-rc2/guice-servlet-3.0-rc2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/jhickman/web/gwt/gwt-customuibinder/0.1/gwt-customuibinder-0.1.jar"/>
<classpathentry kind="var" path="M2_REPO/org/adamtacy/gwt-fx/r464/gwt-fx-r464.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-gin/1.0-r137/gwt-gin-1.0-r137.jar"/>
@@ -105,7 +105,6 @@
<classpathentry kind="var" path="M2_REPO/org/jivesoftware/smackx/debugger/smackx-debugger/3.0.4/smackx-debugger-3.0.4.jar"/>
<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/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/com/wideplay/warp-persist/2.0-SNAPSHOT/warp-persist-2.0-SNAPSHOT.jar"/>
<classpathentry kind="var" path="M2_REPO/org/waveprotocol/waveinabox-server-custom/0.3.6/waveinabox-server-custom-0.3.6.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"/>
Modified: branches/wave-jetty-embed-guice/pom.xml
===================================================================
--- branches/wave-jetty-embed-guice/pom.xml 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/pom.xml 2011-02-13 11:00:54 UTC (rev 1251)
@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>cc.kune</groupId>
<artifactId>kune</artifactId>
- <packaging>war</packaging>
+ <packaging>jar</packaging>
<version>0.0.7</version>
<name>kune</name>
<description> kune free/open/libre collaboration platform </description>
@@ -187,6 +187,10 @@
<url>http://google-web-toolkit.googlecode.com/svn/2.1.0/gwt/maven/</url>
<name>Google Web Toolkit Plugin Repository</name>
</pluginRepository>
+ <pluginRepository>
+ <id>onejar-maven-plugin.googlecode.com</id>
+ <url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
+ </pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
@@ -202,9 +206,10 @@
</dependency>
<!-- guice -->
<dependency>
- <groupId>com.google.code.guice</groupId>
+ <groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
- <version>2.1-SNAPSHOT-r1160</version>
+ <!-- <version>2.1-SNAPSHOT-r1160</version> -->
+ <version>3.0-rc2</version>
</dependency>
<dependency>
<groupId>com.googlecode.gwt.inject</groupId>
@@ -212,45 +217,50 @@
<version>r137</version>
</dependency>
<dependency>
- <groupId>com.google.code.guice</groupId>
+ <groupId>com.google.inject.extensions</groupId>
<artifactId>guice-servlet</artifactId>
- <version>2.0.1</version>
+ <version>3.0-rc2</version>
</dependency>
<dependency>
+ <groupId>com.google.inject.extensions</groupId>
+ <artifactId>guice-persist</artifactId>
+ <version>3.0-rc2</version>
+ </dependency>
+ <dependency>
<groupId>com.extjs</groupId>
<artifactId>gxt</artifactId>
<version>2.2.1</version>
- <scope>compile</scope>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.cobogw.gwt</groupId>
<artifactId>cobogw</artifactId>
<version>1.3.1</version>
</dependency>
-<dependency>
- <groupId>com.gwtplatform</groupId>
- <artifactId>gwtp-all</artifactId>
- <version>0.5</version>
- <exclusions>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- </exclusion>
- </exclusions>
-</dependency>
<dependency>
+ <groupId>com.gwtplatform</groupId>
+ <artifactId>gwtp-all</artifactId>
+ <version>0.5</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
<groupId>org.adamtacy</groupId>
<artifactId>gwt-fx</artifactId>
<version>r464</version>
@@ -395,27 +405,21 @@
<version>3.2.3.GA</version>
</dependency>
<dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-c3p0</artifactId>
- <version>3.3.1.GA</version>
- </dependency>
- <!-- <dependency>
- <groupId>c3p0</groupId>
- <artifactId>c3p0</artifactId>
- <version>0.9.1.2</version>
- </dependency> -->
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-c3p0</artifactId>
+ <version>3.3.1.GA</version>
+ </dependency>
+ <!-- <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId>
+ <version>0.9.1.2</version> </dependency> -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<!-- wave use 2.5 -->
<version>2.5</version>
</dependency>
+ <!-- <dependency> <groupId>com.wideplay</groupId> <artifactId>warp-persist</artifactId>
+ <version>2.0-SNAPSHOT</version> </dependency> -->
<dependency>
- <groupId>com.wideplay</groupId>
- <artifactId>warp-persist</artifactId>
- <version>2.0-SNAPSHOT</version>
- </dependency>
- <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
@@ -775,11 +779,23 @@
<!-- =roo -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
- <version>2.2-beta-5</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
+ <dependencySets>
+ <dependencySet>
+ <scope>runtime</scope>
+ <unpackOptions>
+ <excludes>
+ <exclude>**/gxt/**</exclude>
+ <exclude>**/extjs/**</exclude>
+ <exclude>**extjs**</exclude>
+ <exclude>**gxt**</exclude>
+ </excludes>
+ </unpackOptions>
+ </dependencySet>
+ </dependencySets>
</configuration>
</plugin>
<plugin>
@@ -916,6 +932,24 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ <mainClass>cc.kune.wave.server.WaveMain</mainClass>
+ <!-- <classpathPrefix>~/.m2/repository/</classpathPrefix> -->
+ <!-- <classpathLayoutType>repository</classpathLayoutType> -->
+ <!-- NOTE: Deprecated in version 2.4. Use 'classpathLayoutType'
+ instead. -->
+ <classpathMavenRepositoryLayout>true</classpathMavenRepositoryLayout>
+ <!-- <packageName>cc.kune.wave.server</packageName> -->
+ </manifest>
+ <manifestEntries>
+ <mode>development</mode>
+ <url>${pom.url}</url>
+ </manifestEntries>
+ </archive>
+ </configuration>
<executions>
<!-- <execution> -->
<!-- <id>core</id> -->
@@ -950,21 +984,53 @@
<!-- </includes> -->
<!-- </configuration> -->
<!-- </execution> -->
+ <!-- <execution> -->
+ <!-- <id>helloworldmodule</id> -->
+ <!-- <phase>package</phase> -->
+ <!-- <goals> -->
+ <!-- <goal>jar</goal> -->
+ <!-- </goals> -->
+ <!-- <configuration> -->
+ <!-- <classifier>helloworldmodule</classifier> -->
+ <!-- <includes> -->
+ <!-- <include>**/HelloWorld*</include> -->
+ <!-- </includes> -->
+ <!-- </configuration> -->
+ <!-- </execution> -->
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.dstovall</groupId>
+ <artifactId>onejar-maven-plugin</artifactId>
+ <version>1.4.4</version>
+ <executions>
<execution>
- <id>helloworldmodule</id>
- <phase>package</phase>
+ <configuration>
+ <!-- Optional -->
+ <!-- <onejarVersion>0.97</onejarVersion> -->
+ <!-- Optional, use only if you need to include native libraries
+ (dll's) -->
+<!-- <binlibs>-->
+<!-- <fileSet>-->
+<!-- <directory>${project.build.directory}/${project.build.finalName}</directory>-->
+<!-- <includes>-->
+<!-- <include>**</include>-->
+<!-- </includes>-->
+<!-- </fileSet>-->
+<!-- </binlibs>-->
+ <!-- Optional, default is false -->
+ <attachToBuild>true</attachToBuild>
+ <!-- Optional, default is "onejar" -->
+ <classifier>onejar</classifier>
+ </configuration>
<goals>
- <goal>jar</goal>
+ <goal>one-jar</goal>
</goals>
- <configuration>
- <classifier>helloworldmodule</classifier>
- <includes>
- <include>**/HelloWorld*</include>
- </includes>
- </configuration>
</execution>
</executions>
</plugin>
+
+
<!-- <plugin> -->
<!-- <groupId>org.codehaus.mojo</groupId> -->
<!-- <artifactId>selenium-maven-plugin</artifactId> -->
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/errors/SessionExpiredEvent.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/errors/SessionExpiredEvent.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/errors/SessionExpiredEvent.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -22,7 +22,6 @@
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 SessionExpiredEvent extends GwtEvent<SessionExpiredEvent.SessionExpiredHandler> {
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -71,9 +71,10 @@
this.siteOptions = siteOptions;
this.gotoGroupAction = gotoGroupAction;
createActions();
- if (session.isLogged()) {
- onUserSignIn(session.getCurrentUserInfo()); // NOPMD by vjrj on 11/02/11 3:37
- }
+ // if (session.isLogged()) {
+ // onUserSignIn(session.getCurrentUserInfo()); // NOPMD by vjrj on
+ // 11/02/11 3:37
+ // }
session.onUserSignIn(new UserSignInHandler() {
@Override
public void onUserSignIn(final UserSignInEvent event) {
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/AccessRightsChangedEvent.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/AccessRightsChangedEvent.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/AccessRightsChangedEvent.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -3,7 +3,6 @@
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 AccessRightsChangedEvent extends GwtEvent<AccessRightsChangedEvent.AccessRightsChangedHandler> {
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/GroupChangedEvent.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/GroupChangedEvent.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/GroupChangedEvent.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -22,7 +22,6 @@
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 GroupChangedEvent extends GwtEvent<GroupChangedEvent.GroupChangedHandler> {
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/SocialNetworkChangedEvent.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/SocialNetworkChangedEvent.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/SocialNetworkChangedEvent.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -22,7 +22,6 @@
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 SocialNetworkChangedEvent extends GwtEvent<SocialNetworkChangedEvent.SocialNetworkChangedHandler> {
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/StateChangedEvent.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/StateChangedEvent.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/StateChangedEvent.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -22,7 +22,6 @@
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 StateChangedEvent extends GwtEvent<StateChangedEvent.StateChangedHandler> {
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/ToolChangedEvent.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/ToolChangedEvent.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/core/client/state/ToolChangedEvent.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -22,7 +22,6 @@
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 ToolChangedEvent extends GwtEvent<ToolChangedEvent.ToolChangedHandler> {
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Container.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Container.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Container.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -53,29 +53,46 @@
import cc.kune.domain.utils.HasId;
import cc.kune.domain.utils.HasStateToken;
-import com.google.inject.name.Named;
-import com.wideplay.warp.persist.dao.Finder;
-
@Entity
@Indexed
@Table(name = "containers")
public class Container implements HasId, HasStateToken {
+ @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
+ private List<Container> absolutePath;
+
+ @OneToOne(cascade = CascadeType.ALL)
+ private AccessLists accessLists;
+
+ @OrderBy("createdOn DESC")
+ @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
+ private Set<Container> childs;
+
+ @OneToMany(cascade = CascadeType.ALL)
+ private List<ContainerTranslation> containerTranslations;
+
+ @ContainedIn
+ @OrderBy("createdOn DESC")
+ @OneToMany(mappedBy = "container", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
+ private Set<Content> contents;
+
+ @Basic(optional = false)
+ private Long createdOn;
+
+ @Basic(optional = true)
+ private Date deletedOn;
+
@Id
@GeneratedValue
@DocumentId
Long id;
+ @ManyToOne
+ private I18nLanguage language;
+
@Column
@Field(index = Index.TOKENIZED, store = Store.NO)
private String name;
- private String toolName;
-
- private String typeId;
-
- @ManyToOne
- private I18nLanguage language;
-
@IndexedEmbedded(depth = 1, prefix = "owner_")
@OneToOne
private Group owner;
@@ -87,30 +104,10 @@
@JoinColumn
private Container parent;
- @OrderBy("createdOn DESC")
- @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
- private Set<Container> childs;
+ private String toolName;
- @ContainedIn
- @OrderBy("createdOn DESC")
- @OneToMany(mappedBy = "container", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
- private Set<Content> contents;
+ private String typeId;
- @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- private List<Container> absolutePath;
-
- @OneToMany(cascade = CascadeType.ALL)
- private List<ContainerTranslation> containerTranslations;
-
- @OneToOne(cascade = CascadeType.ALL)
- private AccessLists accessLists;
-
- @Basic(optional = false)
- private Long createdOn;
-
- @Basic(optional = true)
- private Date deletedOn;
-
public Container() {
this(null, null, null);
}
@@ -137,11 +134,6 @@
contents.add(descriptor);
}
- @Finder(query = "SELECT COUNT(*) FROM Container c WHERE c.parent = :container AND c.name LIKE :title")
- public Long findIfExistsTitle(@Named("container") final Container container, @Named("title") final String title) {
- return null;
- }
-
public List<Container> getAbsolutePath() {
return absolutePath;
}
@@ -175,6 +167,7 @@
return deletedOn;
}
+ @Override
public Long getId() {
return id;
}
@@ -199,6 +192,7 @@
return parent != null ? parent.getId() : null;
}
+ @Override
@Transient
public StateToken getStateToken() {
return new StateToken(getOwner().getShortName(), getToolName(), getId());
@@ -264,6 +258,7 @@
this.deletedOn = deletedOn;
}
+ @Override
public void setId(final Long id) {
this.id = id;
}
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Content.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Content.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Content.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -56,23 +56,17 @@
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.domain.utils.HasStateToken;
-import com.google.inject.name.Named;
-import com.wideplay.warp.persist.dao.Finder;
-import com.wideplay.warp.persist.dao.FirstResult;
-import com.wideplay.warp.persist.dao.MaxResults;
-
@Entity
@Table(name = "contents")
@Indexed
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Content implements HasStateToken {
- private static final String GROUP = "group";
- private static final String MIMETYPE = "mimetype";
+ public static final String GROUP = "group";
+ public static final String MIMETYPE = "mimetype";
public static final Content NO_CONTENT = new Content();
+ public static final String TITLE = "title";
- private static final String TITLE = "title";
-
@OneToOne(cascade = CascadeType.ALL)
private AccessLists accessLists;
@@ -170,36 +164,6 @@
}
}
- @Finder(query = "FROM Content WHERE lastRevision.title LIKE :title AND (mimeType.mimetype=:mimetype OR mimeType.mimetype=:mimetype2) AND container.owner.shortName=:group AND deletedOn=null ORDER BY lastRevision.title ASC")
- public List<Content> find2Mime(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title,
- @Named(MIMETYPE) final String mimetype, @Named("mimetype2") final String mimetype2,
- @FirstResult final int offset, @MaxResults final int limit) {
- return null;
- }
-
- @Finder(query = "SELECT count(id) FROM Content WHERE lastRevision.title LIKE :title AND (mimeType.mimetype=:mimetype OR mimeType.mimetype=:mimetype2) AND container.owner.shortName=:group AND deletedOn=null")
- public int find2MimeCount(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title,
- @Named(MIMETYPE) final String mimetype, @Named("mimetype2") final String mimetype2) {
- return 0;
- }
-
- @Finder(query = "select count(*) from Container ctx, Content ctn where ctn.container.id = ctx.id and ctx = :container and ctn.lastRevision.title LIKE :title")
- public Long findIfExistsTitle(@Named("container") final Container container, @Named(TITLE) final String title) {
- return null;
- }
-
- @Finder(query = "FROM Content WHERE lastRevision.title LIKE :title AND mimeType.mimetype=:mimetype AND container.owner.shortName=:group AND deletedOn=null ORDER BY lastRevision.title ASC")
- public List<Content> findMime(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title,
- @Named(MIMETYPE) final String mimetype, @FirstResult final int offset, @MaxResults final int limit) {
- return null;
- }
-
- @Finder(query = "SELECT count(id) FROM Content WHERE lastRevision.title LIKE :title AND mimeType.mimetype=:mimetype AND container.owner.shortName=:group AND deletedOn=null")
- public int findMimeCount(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title,
- @Named(MIMETYPE) final String mimetype) {
- return 0;
- }
-
@Transient
public AccessLists getAccessLists() {
return hasAccessList() ? accessLists : getContainer().getAccessLists();
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/ExtMediaDescrip.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/ExtMediaDescrip.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/ExtMediaDescrip.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -19,8 +19,6 @@
*/
package cc.kune.domain;
-import java.util.List;
-
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@@ -31,28 +29,26 @@
import cc.kune.domain.utils.HasId;
-import com.wideplay.warp.persist.dao.Finder;
-
@Entity
@Table(name = "ext_media_descriptors")
public class ExtMediaDescrip implements HasId {
+ @Column(nullable = false)
+ private String detectRegex;
+ @Column(nullable = false)
+ @Length(max = 1000)
+ private String embedTemplate;
+ private int height;
@Id
@GeneratedValue
private Long id;
@Column(nullable = false)
+ private String idRegex;
+ @Column(nullable = false)
private String name;
@Column(nullable = false)
private String siteurl;
- @Column(nullable = false)
- private String detectRegex;
- @Column(nullable = false)
- private String idRegex;
- @Column(nullable = false)
- @Length(max = 1000)
- private String embedTemplate;
private int width;
- private int height;
public ExtMediaDescrip() {
this(null, null, null, null, null, 0, 0);
@@ -69,11 +65,6 @@
height = defHeight;
}
- @Finder(query = "from ExtMediaDescrip")
- public List<ExtMediaDescrip> getAll() {
- return null;
- }
-
public String getDetectRegex() {
return detectRegex;
}
@@ -86,6 +77,7 @@
return height;
}
+ @Override
public Long getId() {
return id;
}
@@ -118,6 +110,7 @@
this.height = height;
}
+ @Override
public void setId(final Long id) {
this.id = id;
}
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Group.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Group.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Group.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -20,7 +20,6 @@
package cc.kune.domain;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import javax.persistence.Basic;
@@ -51,9 +50,6 @@
import cc.kune.core.shared.dto.GroupType;
import cc.kune.domain.utils.HasId;
-import com.google.inject.name.Named;
-import com.wideplay.warp.persist.dao.Finder;
-
@Entity
@Indexed
@Table(name = "groups")
@@ -159,26 +155,6 @@
return toolsConfig.get(toolName) != null;
}
- @Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id FROM g.socialNetwork.accessLists.admins.list adm WHERE adm.id = :groupid)")
- public List<Group> findAdminInGroups(@Named("groupid") final Long groupId) {
- return null;
- }
-
- @Finder(query = "FROM Group g WHERE g.shortName = :shortName")
- public Group findByShortName(@Named("shortName") final String shortName) {
- return null;
- }
-
- @Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id FROM g.socialNetwork.accessLists.editors.list AS ed WHERE ed.id = :groupid)")
- public List<Group> findCollabInGroups(@Named("groupid") final Long groupId) {
- return null;
- }
-
- @Finder(query = "SELECT t.root.toolName FROM ToolConfiguration t WHERE t.enabled=true AND t.root.owner.id = :groupid")
- public List<String> findEnabledTools(@Named("groupid") final Long groupId) {
- return null;
- }
-
@Transient
public AccessLists getAccessLists() {
return getSocialNetwork().getAccessLists();
@@ -188,11 +164,6 @@
return admissionType;
}
- @Finder(query = "FROM Group")
- public List<Group> getAll() {
- return null;
- }
-
public Long getCreatedOn() {
return createdOn;
}
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nCountry.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nCountry.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nCountry.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -19,8 +19,6 @@
*/
package cc.kune.domain;
-import java.util.List;
-
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@@ -31,9 +29,6 @@
import cc.kune.domain.utils.HasId;
-import com.google.inject.name.Named;
-import com.wideplay.warp.persist.dao.Finder;
-
/**
* GlobalizeCountries generated by hbm2java from original rails globalize schema
*
@@ -46,39 +41,39 @@
@Table(name = "globalize_countries")
public class I18nCountry implements HasId {
- @Id
- // Is not a @GeneratedValue similar to I18nLanguage (we have already ids)
- @DocumentId
- @Column(name = "id", unique = true, nullable = false)
- private Long id;
-
@Column(name = "code", length = 2)
private String code;
- @Column(name = "english_name")
- private String englishName;
+ @Column(name = "currency_code", length = 3)
+ private String currencyCode;
- @Column(name = "date_format")
- private String dateFormat;
+ @Column(name = "currency_decimal_sep", length = 2)
+ private String currencyDecimalSep;
@Column(name = "currency_format")
private String currencyFormat;
- @Column(name = "currency_code", length = 3)
- private String currencyCode;
+ @Column(name = "date_format")
+ private String dateFormat;
- @Column(name = "thousands_sep", length = 2)
- private String thousandsSep;
-
@Column(name = "decimal_sep", length = 2)
private String decimalSep;
- @Column(name = "currency_decimal_sep", length = 2)
- private String currencyDecimalSep;
+ @Column(name = "english_name")
+ private String englishName;
+ @Id
+ // Is not a @GeneratedValue similar to I18nLanguage (we have already ids)
+ @DocumentId
+ @Column(name = "id", unique = true, nullable = false)
+ private Long id;
+
@Column(name = "number_grouping_scheme")
private String numberGroupingScheme;
+ @Column(name = "thousands_sep", length = 2)
+ private String thousandsSep;
+
public I18nCountry() {
this(null, null, null, null, null, null, null, null, null, null);
}
@@ -98,16 +93,6 @@
this.numberGroupingScheme = numberGroupingScheme;
}
- @Finder(query = "FROM I18nCountry WHERE code = :country")
- public I18nCountry findByCode(@Named("country") final String country) {
- return null;
- }
-
- @Finder(query = "FROM I18nCountry ORDER BY english_name")
- public List<I18nCountry> getAll() {
- return null;
- }
-
public String getCode() {
return this.code;
}
@@ -136,6 +121,7 @@
return this.englishName;
}
+ @Override
public Long getId() {
return this.id;
}
@@ -176,6 +162,7 @@
this.englishName = englishName;
}
+ @Override
public void setId(final Long id) {
this.id = id;
}
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nLanguage.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nLanguage.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nLanguage.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -19,8 +19,6 @@
*/
package cc.kune.domain;
-import java.util.List;
-
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@@ -36,9 +34,6 @@
import cc.kune.domain.utils.HasId;
-import com.google.inject.name.Named;
-import com.wideplay.warp.persist.dao.Finder;
-
/**
* GlobalizeLanguages generated by hbm2java from original rails globalize schema
*
@@ -149,16 +144,6 @@
this.dateFormat = dateFormat;
}
- @Finder(query = "FROM I18nLanguage l WHERE code = :language")
- public I18nLanguage findByCode(@Named("language") final String language) {
- return null;
- }
-
- @Finder(query = "FROM I18nLanguage ORDER BY englishName")
- public List<I18nLanguage> getAll() {
- return null;
- }
-
public String getCode() {
return code;
}
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nTranslation.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nTranslation.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/I18nTranslation.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -19,8 +19,6 @@
*/
package cc.kune.domain;
-import java.util.List;
-
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@@ -28,8 +26,6 @@
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
import javax.persistence.Table;
import org.hibernate.search.annotations.DocumentId;
@@ -37,11 +33,6 @@
import cc.kune.domain.utils.HasId;
-import com.google.inject.name.Named;
-import com.wideplay.warp.persist.dao.Finder;
-import com.wideplay.warp.persist.dao.FirstResult;
-import com.wideplay.warp.persist.dao.MaxResults;
-
/**
* GlobalizeTranslations generated by hbm2java from original rails globalize
* schema
@@ -49,43 +40,26 @@
@Entity
@Indexed
@Table(name = "globalize_translations")
-@NamedQueries( {
- @NamedQuery(name = "untranslated", query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :language and text=null"),
- @NamedQuery(name = "translated", query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :language and text!=null"),
- @NamedQuery(name = "untranslatedcount", query = "SELECT COUNT(gt.id) FROM I18nTranslation gt WHERE gt.language = :language and text=null"),
- @NamedQuery(name = "translatedcount", query = "SELECT COUNT(gt.id) FROM I18nTranslation gt WHERE gt.language = :language and text!=null") })
public class I18nTranslation implements HasId {
public static final String DEF_NAMESPACE = "kune_core";
public static final Integer DEF_PLUR_INDEX = 1;
public static final String DEFAULT_LANG = "en";
+
public static final String UNTRANSLATED_VALUE = null;
- private static final String TRANSLATED_QUERY = "translated";
- private static final String UNTRANSLATED_QUERY = "untranslated";
- private static final String TRANSLATED_COUNT_QUERY = "translatedcount";
- private static final String UNTRANSLATED_COUNT_QUERY = "untranslatedcount";
+ @Column(name = "facet")
+ private String facet;
+
@Id
@GeneratedValue
@DocumentId
@Column(name = "id", unique = true, nullable = false)
private Long id;
- @Column(name = "gtype")
- private String type;
-
- @Column(name = "tr_key")
- private String trKey;
-
- @Column(name = "table_name")
- private String tableName;
-
@Column(name = "item_id")
private Integer itemId;
- @Column(name = "facet")
- private String facet;
-
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "language_id")
private I18nLanguage language;
@@ -93,161 +67,129 @@
@Column(name = "pluralization_index")
private Integer pluralizationIndex;
+ @Column(name = "table_name")
+ private String tableName;
+
@Column(name = "text")
private String text;
+ @Column(name = "tr_key")
+ private String trKey;
+
+ @Column(name = "gtype")
+ private String type;
+
public I18nTranslation() {
- this(null, null, null, null, null, null, null, null);
+ this(null, null, null, null, null, null, null, null);
}
public I18nTranslation(final String trKey, final I18nLanguage language, final String text) {
- this("", null, DEF_PLUR_INDEX, "", text, trKey, DEF_NAMESPACE, language);
+ this("", null, DEF_PLUR_INDEX, "", text, trKey, DEF_NAMESPACE, language);
}
public I18nTranslation(final String facet, final Integer itemId, final Integer pluralizationIndex,
- final String tableName, final String text, final String trKey, final String type,
- final I18nLanguage language) {
- this.type = type;
- this.trKey = trKey;
- this.tableName = tableName;
- this.itemId = itemId;
- this.facet = facet;
- this.language = language;
- this.pluralizationIndex = pluralizationIndex;
- this.text = text;
+ final String tableName, final String text, final String trKey, final String type,
+ final I18nLanguage language) {
+ this.type = type;
+ this.trKey = trKey;
+ this.tableName = tableName;
+ this.itemId = itemId;
+ this.facet = facet;
+ this.language = language;
+ this.pluralizationIndex = pluralizationIndex;
+ this.text = text;
}
public I18nTranslation cloneForNewLanguage() {
- final I18nTranslation clone = new I18nTranslation();
- clone.type = type;
- clone.trKey = trKey;
- clone.tableName = tableName;
- clone.itemId = itemId;
- clone.facet = facet;
- clone.language = null;
- clone.pluralizationIndex = pluralizationIndex;
- clone.text = null;
- return clone;
+ final I18nTranslation clone = new I18nTranslation();
+ clone.type = type;
+ clone.trKey = trKey;
+ clone.tableName = tableName;
+ clone.itemId = itemId;
+ clone.facet = facet;
+ clone.language = null;
+ clone.pluralizationIndex = pluralizationIndex;
+ clone.text = null;
+ return clone;
}
- @Finder(query = "SELECT gt FROM I18nTranslation gt JOIN gt.language gl WHERE gl.code = :language")
- public List<I18nTranslation> findByLanguage(@Named("language") final String language) {
- return null;
- }
-
public String getFacet() {
- return this.facet;
+ return this.facet;
}
+ @Override
public Long getId() {
- return this.id;
+ return this.id;
}
public Integer getItemId() {
- return this.itemId;
+ return this.itemId;
}
public I18nLanguage getLanguage() {
- return language;
+ return language;
}
- @Finder(query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :deflanguage AND gt.trKey NOT IN (SELECT gt.trKey FROM I18nTranslation gt WHERE gt.language = :language)")
- public List<I18nTranslation> getNonExistentFromDefault(@Named("deflanguage") final I18nLanguage deflanguage,
- @Named("language") final I18nLanguage language) {
- return null;
- }
-
public Integer getPluralizationIndex() {
- return this.pluralizationIndex;
+ return this.pluralizationIndex;
}
public String getTableName() {
- return this.tableName;
+ return this.tableName;
}
public String getText() {
- return this.text;
+ return this.text;
}
- @Finder(namedQuery = TRANSLATED_QUERY)
- public List<I18nTranslation> getTranslatedLexicon(@Named("language") final I18nLanguage language) {
- return null;
- }
-
- @Finder(namedQuery = TRANSLATED_QUERY)
- public List<I18nTranslation> getTranslatedLexicon(@Named("language") final I18nLanguage language,
- @FirstResult final int first, @MaxResults final int max) {
- return null;
- }
-
- @Finder(namedQuery = TRANSLATED_COUNT_QUERY)
- public Long getTranslatedLexiconCount(@Named("language") final I18nLanguage language) {
- return null;
- }
-
public String getTrKey() {
- return this.trKey;
+ return this.trKey;
}
public String getType() {
- return this.type;
+ return this.type;
}
- @Finder(namedQuery = UNTRANSLATED_QUERY)
- public List<I18nTranslation> getUnstranslatedLexicon(@Named("language") final I18nLanguage language) {
- return null;
- }
-
- @Finder(namedQuery = UNTRANSLATED_QUERY)
- public List<I18nTranslation> getUnstranslatedLexicon(@Named("language") final I18nLanguage language,
- @FirstResult final int first, @MaxResults final int max) {
- return null;
- }
-
- @Finder(namedQuery = UNTRANSLATED_COUNT_QUERY)
- public Long getUnstranslatedLexiconCount(@Named("language") final I18nLanguage language) {
- return null;
- }
-
public void setFacet(final String facet) {
- this.facet = facet;
+ this.facet = facet;
}
+ @Override
public void setId(final Long id) {
- this.id = id;
+ this.id = id;
}
public void setItemId(final Integer itemId) {
- this.itemId = itemId;
+ this.itemId = itemId;
}
public void setLanguage(final I18nLanguage language) {
- this.language = language;
+ this.language = language;
}
public void setPluralizationIndex(final Integer pluralizationIndex) {
- this.pluralizationIndex = pluralizationIndex;
+ this.pluralizationIndex = pluralizationIndex;
}
public void setTableName(final String tableName) {
- this.tableName = tableName;
+ this.tableName = tableName;
}
public void setText(final String text) {
- this.text = text;
+ this.text = text;
}
public void setTrKey(final String trKey) {
- this.trKey = trKey;
+ this.trKey = trKey;
}
public void setType(final String type) {
- this.type = type;
+ this.type = type;
}
@Override
public String toString() {
- return "I18nTranslation[" + trKey + " (" + language + ") " + text + "]";
+ return "I18nTranslation[" + trKey + " (" + language + ") " + text + "]";
}
}
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/License.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/License.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/License.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -19,8 +19,6 @@
*/
package cc.kune.domain;
-import java.util.List;
-
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@@ -29,32 +27,29 @@
import cc.kune.domain.utils.HasId;
-import com.google.inject.name.Named;
-import com.wideplay.warp.persist.dao.Finder;
-
@Entity
@Table(name = "licenses")
public class License implements HasId {
+ private String description;
+
@Id
@GeneratedValue
private Long id;
- @Column(unique = true)
- private String shortName;
-
- @Column(unique = true)
- private String longName;
-
- private String description;
-
@Column(nullable = false)
- private String url;
+ private String imageUrl;
+
private boolean isCC;
+
private boolean isCopyleft;
private boolean isDeprecated;
+ @Column(unique = true)
+ private String longName;
private String rdf;
+ @Column(unique = true)
+ private String shortName;
@Column(nullable = false)
- private String imageUrl;
+ private String url;
public License() {
this(null, null, null, null, false, false, false, null, null);
@@ -74,62 +69,35 @@
this.imageUrl = imageUrl;
}
- public Long getId() {
- return id;
- }
-
- public void setId(final Long id) {
- this.id = id;
- }
-
- public String getShortName() {
- return shortName;
- }
-
- public void setShortName(final String shortName) {
- this.shortName = shortName;
- }
-
- public String getLongName() {
- return longName;
- }
-
- public void setLongName(final String longName) {
- this.longName = longName;
- }
-
public String getDescription() {
return description;
}
- public void setDescription(final String description) {
- this.description = description;
+ @Override
+ public Long getId() {
+ return id;
}
public String getImageUrl() {
return imageUrl;
}
- public void setImageUrl(final String imageUrl) {
- this.imageUrl = imageUrl;
+ public String getLongName() {
+ return longName;
}
public String getRdf() {
return rdf;
}
- public void setRdf(final String rdf) {
- this.rdf = rdf;
+ public String getShortName() {
+ return shortName;
}
public String getUrl() {
return url;
}
- public void setUrl(final String url) {
- this.url = url;
- }
-
public boolean isCC() {
return isCC;
}
@@ -154,23 +122,32 @@
this.isDeprecated = isDeprecated;
}
- @Finder(query = "from License l where l.shortName = :shortName")
- public License findByShortName(@Named("shortName") final String shortName) {
- return null;
+ public void setDescription(final String description) {
+ this.description = description;
}
- @Finder(query = "from License")
- public List<License> getAll() {
- return null;
+ @Override
+ public void setId(final Long id) {
+ this.id = id;
}
- @Finder(query = "from License where isCC = true")
- public List<License> getCC() {
- return null;
+ public void setImageUrl(final String imageUrl) {
+ this.imageUrl = imageUrl;
}
- @Finder(query = "from License where isCC = false")
- public List<License> getNotCC() {
- return null;
+ public void setLongName(final String longName) {
+ this.longName = longName;
}
+
+ public void setRdf(final String rdf) {
+ this.rdf = rdf;
+ }
+
+ public void setShortName(final String shortName) {
+ this.shortName = shortName;
+ }
+
+ public void setUrl(final String url) {
+ this.url = url;
+ }
}
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Rate.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Rate.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Rate.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -29,28 +29,25 @@
import org.hibernate.validator.Range;
-import com.google.inject.name.Named;
-import com.wideplay.warp.persist.dao.Finder;
-
@Entity
@Table(name = "rates", uniqueConstraints = { @UniqueConstraint(columnNames = { "content_id", "rater_id" }) })
public class Rate {
+ @ManyToOne
+ Content content;
+
+ @Basic(optional = false)
+ private final Long createdOn;
+
@Id
@GeneratedValue
Long id;
@ManyToOne
- Content content;
-
- @ManyToOne
User rater;
@Range(min = 0, max = 5)
Double value;
- @Basic(optional = false)
- private final Long createdOn;
-
public Rate() {
this(null, null, null);
}
@@ -62,21 +59,6 @@
this.createdOn = System.currentTimeMillis();
}
- @Finder(query = "SELECT AVG(r.value) FROM Rate r WHERE r.content = :content")
- public Double calculateRate(@Named("content") final Content content) {
- return null;
- }
-
- @Finder(query = "SELECT count(*) FROM Rate r WHERE r.content = :content")
- public Long calculateRateNumberOfUsers(@Named("content") final Content content) {
- return null;
- }
-
- @Finder(query = "SELECT r FROM Rate r WHERE r.rater = :user AND r.content = :content")
- public Rate find(@Named("user") final User user, @Named("content") final Content content) {
- return null;
- }
-
public Content getContent() {
return content;
}
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Tag.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Tag.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/Tag.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -34,14 +34,14 @@
import cc.kune.domain.utils.HasId;
-import com.google.inject.name.Named;
-import com.wideplay.warp.persist.dao.Finder;
-
@Entity
@Indexed
@Table(name = "tags")
public class Tag implements HasId {
+ @Basic(optional = false)
+ private final Long createdOn;
+
@Id
@GeneratedValue
@DocumentId
@@ -51,9 +51,6 @@
@Column(unique = true)
private String name;
- @Basic(optional = false)
- private final Long createdOn;
-
public Tag() {
this(null);
}
@@ -63,15 +60,11 @@
this.createdOn = System.currentTimeMillis();
}
- @Finder(query = "FROM Tag g WHERE g.name = :name")
- public Tag findByTagName(@Named("name") final String tag) {
- return null;
- }
-
public Long getCreatedOn() {
return createdOn;
}
+ @Override
public Long getId() {
return id;
}
@@ -80,6 +73,7 @@
return name;
}
+ @Override
public void setId(final Long id) {
this.id = id;
}
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/TagUserContent.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/TagUserContent.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/TagUserContent.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -19,16 +19,12 @@
*/
package cc.kune.domain;
-import java.util.List;
-
import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
import javax.persistence.Table;
import org.hibernate.search.annotations.DocumentId;
@@ -38,24 +34,10 @@
import cc.kune.domain.utils.HasId;
-import com.google.inject.name.Named;
-import com.wideplay.warp.persist.dao.Finder;
-
-//See:
-//http://openjpa.apache.org/docs/latest/manual/manual.html#jpa_langref_resulttype
-@NamedQueries({
- @NamedQuery(name = "tagsgrouped", query = "SELECT NEW cc.kune.core.shared.domain.TagCount(t.name, COUNT(tuc.content.id)) "
- + "FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group "
- + "GROUP BY t.name ORDER BY t.name"),
- @NamedQuery(name = "tagsmaxgrouped", query = "SELECT Count(tuc.content.id) FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group GROUP BY t.name ORDER BY count(*) DESC LIMIT 0,1"),
- @NamedQuery(name = "tagsmingrouped", query = "SELECT Count(tuc.content.id) FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group GROUP BY t.name ORDER BY count(*) ASC LIMIT 0,1") })
@Entity
@Indexed
@Table(name = "tag_user_content")
public class TagUserContent implements HasId {
- public static final String TAGSGROUPED = "tagsgrouped";
- public static final String TAGSMAXGROUPED = "tagsmaxgrouped";
- public static final String TAGSMINGROUPED = "tagsmingrouped";
@IndexedEmbedded
@NotNull
@@ -91,16 +73,6 @@
this.createdOn = System.currentTimeMillis();
}
- @Finder(query = "FROM TagUserContent t WHERE t.user = :user AND t.content = :content")
- public List<TagUserContent> find(@Named("user") final User user, @Named("content") final Content content) {
- return null;
- }
-
- @Finder(query = "SELECT t.tag FROM TagUserContent t WHERE t.user = :user AND t.content = :content")
- public List<Tag> findTags(@Named("user") final User user, @Named("content") final Content content) {
- return null;
- }
-
public Content getContent() {
return content;
}
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/User.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/User.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/User.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -19,7 +19,6 @@
*/
package cc.kune.domain;
-import java.util.List;
import java.util.TimeZone;
import javax.persistence.Basic;
@@ -48,9 +47,6 @@
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.domain.utils.HasId;
-import com.google.inject.name.Named;
-import com.wideplay.warp.persist.dao.Finder;
-
@Entity
@Indexed
@Table(name = "kusers")
@@ -163,25 +159,10 @@
// this.properties = properties;
}
- @Finder(query = "from User")
- public List<User> getAll() {
- return null;
- }
-
public UserBuddiesVisibility getBuddiesVisibility() {
return buddiesVisibility;
}
- @Finder(query = "from User where email = :email")
- public User getByEmail(@Named("email") final String email) {
- return null;
- }
-
- @Finder(query = "from User where shortName = :shortName")
- public User getByShortName(@Named("shortName") final String shortName) {
- return null;
- }
-
public I18nCountry getCountry() {
return country;
}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContainerFinder.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContainerFinder.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContainerFinder.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -0,0 +1,30 @@
+/*
+ *
+ * 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.domain.finders;
+
+import cc.kune.domain.Container;
+
+import com.google.inject.name.Named;
+import com.google.inject.persist.finder.Finder;
+
+public interface ContainerFinder {
+ @Finder(query = "SELECT COUNT(*) FROM Container c WHERE c.parent = :container AND c.name LIKE :title")
+ public Long findIfExistsTitle(@Named("container") final Container container, @Named("title") final String title);
+}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContentFinder.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContentFinder.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ContentFinder.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -0,0 +1,57 @@
+/*
+ *
+ * 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.domain.finders;
+
+import static cc.kune.domain.Content.GROUP;
+import static cc.kune.domain.Content.MIMETYPE;
+import static cc.kune.domain.Content.TITLE;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cc.kune.domain.Container;
+import cc.kune.domain.Content;
+
+import com.google.inject.name.Named;
+import com.google.inject.persist.finder.Finder;
+import com.google.inject.persist.finder.FirstResult;
+import com.google.inject.persist.finder.MaxResults;
+
+public interface ContentFinder {
+ @Finder(query = "FROM Content WHERE lastRevision.title LIKE :title AND (mimeType.mimetype=:mimetype OR mimeType.mimetype=:mimetype2) AND container.owner.shortName=:group AND deletedOn=null ORDER BY lastRevision.title ASC", returnAs = ArrayList.class)
+ public List<Content> find2Mime(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title,
+ @Named(MIMETYPE) final String mimetype, @Named("mimetype2") final String mimetype2,
+ @FirstResult final int offset, @MaxResults final int limit);
+
+ @Finder(query = "SELECT count(id) FROM Content WHERE lastRevision.title LIKE :title AND (mimeType.mimetype=:mimetype OR mimeType.mimetype=:mimetype2) AND container.owner.shortName=:group AND deletedOn=null")
+ public int find2MimeCount(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title,
+ @Named(MIMETYPE) final String mimetype, @Named("mimetype2") final String mimetype2);
+
+ @Finder(query = "SELECT count(*) from Container ctx, Content ctn where ctn.container.id = ctx.id and ctx = :container and ctn.lastRevision.title LIKE :title")
+ public Long findIfExistsTitle(@Named("container") final Container container, @Named(TITLE) final String title);
+
+ @Finder(query = "FROM Content WHERE lastRevision.title LIKE :title AND mimeType.mimetype=:mimetype AND container.owner.shortName=:group AND deletedOn=null ORDER BY lastRevision.title ASC", returnAs = ArrayList.class)
+ public List<Content> findMime(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title,
+ @Named(MIMETYPE) final String mimetype, @FirstResult final int offset, @MaxResults final int limit);
+
+ @Finder(query = "SELECT count(id) FROM Content WHERE lastRevision.title LIKE :title AND mimeType.mimetype=:mimetype AND container.owner.shortName=:group AND deletedOn=null")
+ public int findMimeCount(@Named(GROUP) final String groupShortName, @Named(TITLE) final String title,
+ @Named(MIMETYPE) final String mimetype);
+}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ExtMediaDescripFinder.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ExtMediaDescripFinder.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/ExtMediaDescripFinder.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -0,0 +1,33 @@
+/*
+ *
+ * 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.domain.finders;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cc.kune.domain.ExtMediaDescrip;
+
+import com.google.inject.persist.finder.Finder;
+
+public interface ExtMediaDescripFinder {
+
+ @Finder(query = "from ExtMediaDescrip", returnAs = ArrayList.class)
+ public List<ExtMediaDescrip> getAll();
+}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/GroupFinder.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/GroupFinder.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/GroupFinder.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -0,0 +1,27 @@
+package cc.kune.domain.finders;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cc.kune.domain.Group;
+
+import com.google.inject.name.Named;
+import com.google.inject.persist.finder.Finder;
+
+public interface GroupFinder {
+
+ @Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id FROM g.socialNetwork.accessLists.admins.list adm WHERE adm.id = :groupid)", returnAs = ArrayList.class)
+ public List<Group> findAdminInGroups(@Named("groupid") final Long groupId);
+
+ @Finder(query = "FROM Group g WHERE g.shortName = :shortName")
+ public Group findByShortName(@Named("shortName") final String shortName);
+
+ @Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id FROM g.socialNetwork.accessLists.editors.list AS ed WHERE ed.id = :groupid)", returnAs = ArrayList.class)
+ public List<Group> findCollabInGroups(@Named("groupid") final Long groupId);
+
+ @Finder(query = "SELECT t.root.toolName FROM ToolConfiguration t WHERE t.enabled=true AND t.root.owner.id = :groupid", returnAs = ArrayList.class)
+ public List<String> findEnabledTools(@Named("groupid") final Long groupId);
+
+ @Finder(query = "FROM Group", returnAs = ArrayList.class)
+ public List<Group> getAll();
+}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nCountryFinder.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nCountryFinder.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nCountryFinder.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -0,0 +1,38 @@
+/*
+ *
+ * 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.domain.finders;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cc.kune.domain.I18nCountry;
+
+import com.google.inject.name.Named;
+import com.google.inject.persist.finder.Finder;
+
+public interface I18nCountryFinder {
+
+ @Finder(query = "FROM I18nCountry WHERE code = :country")
+ public I18nCountry findByCode(@Named("country") final String country);
+
+ @Finder(query = "FROM I18nCountry ORDER BY english_name", returnAs = ArrayList.class)
+ public List<I18nCountry> getAll();
+
+}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nLanguageFinder.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nLanguageFinder.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nLanguageFinder.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -0,0 +1,38 @@
+/*
+ *
+ * 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.domain.finders;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cc.kune.domain.I18nLanguage;
+
+import com.google.inject.name.Named;
+import com.google.inject.persist.finder.Finder;
+
+public interface I18nLanguageFinder {
+
+ @Finder(query = "FROM I18nLanguage l WHERE code = :language")
+ public I18nLanguage findByCode(@Named("language") final String language);
+
+ @Finder(query = "FROM I18nLanguage ORDER BY englishName", returnAs = ArrayList.class)
+ public List<I18nLanguage> getAll();
+
+}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nTranslationFinder.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nTranslationFinder.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/I18nTranslationFinder.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -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.domain.finders;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+
+import cc.kune.domain.I18nLanguage;
+import cc.kune.domain.I18nTranslation;
+
+import com.google.inject.name.Named;
+import com.google.inject.persist.finder.Finder;
+import com.google.inject.persist.finder.FirstResult;
+import com.google.inject.persist.finder.MaxResults;
+
+@NamedQueries({
+ @NamedQuery(name = "untranslated", query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :language and text=null"),
+ @NamedQuery(name = "translated", query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :language and text!=null"),
+ @NamedQuery(name = "untranslatedcount", query = "SELECT COUNT(gt.id) FROM I18nTranslation gt WHERE gt.language = :language and text=null"),
+ @NamedQuery(name = "translatedcount", query = "SELECT COUNT(gt.id) FROM I18nTranslation gt WHERE gt.language = :language and text!=null") })
+public interface I18nTranslationFinder {
+ String TRANSLATED_COUNT_QUERY = "translatedcount";
+ String TRANSLATED_QUERY = "translated";
+ String UNTRANSLATED_COUNT_QUERY = "untranslatedcount";
+ String UNTRANSLATED_QUERY = "untranslated";
+
+ @Finder(query = "SELECT gt FROM I18nTranslation gt JOIN gt.language gl WHERE gl.code = :language", returnAs = ArrayList.class)
+ public List<I18nTranslation> findByLanguage(@Named("language") final String language);
+
+ @Finder(query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :deflanguage AND gt.trKey NOT IN (SELECT gt.trKey FROM I18nTranslation gt WHERE gt.language = :language)", returnAs = ArrayList.class)
+ public List<I18nTranslation> getNonExistentFromDefault(@Named("deflanguage") final I18nLanguage deflanguage,
+ @Named("language") final I18nLanguage language);
+
+ @Finder(namedQuery = TRANSLATED_QUERY, returnAs = ArrayList.class)
+ public List<I18nTranslation> getTranslatedLexicon(@Named("language") final I18nLanguage language);
+
+ @Finder(namedQuery = TRANSLATED_QUERY, returnAs = ArrayList.class)
+ public List<I18nTranslation> getTranslatedLexicon(@Named("language") final I18nLanguage language,
+ @FirstResult final int first, @MaxResults final int max);
+
+ @Finder(namedQuery = TRANSLATED_COUNT_QUERY)
+ public Long getTranslatedLexiconCount(@Named("language") final I18nLanguage language);
+
+ @Finder(namedQuery = UNTRANSLATED_QUERY, returnAs = ArrayList.class)
+ public List<I18nTranslation> getUnstranslatedLexicon(@Named("language") final I18nLanguage language);
+
+ @Finder(namedQuery = UNTRANSLATED_QUERY, returnAs = ArrayList.class)
+ public List<I18nTranslation> getUnstranslatedLexicon(@Named("language") final I18nLanguage language,
+ @FirstResult final int first, @MaxResults final int max);
+
+ @Finder(namedQuery = UNTRANSLATED_COUNT_QUERY)
+ public Long getUnstranslatedLexiconCount(@Named("language") final I18nLanguage language);
+
+}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/LicenseFinder.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/LicenseFinder.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/LicenseFinder.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -0,0 +1,43 @@
+/*
+ *
+ * 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.domain.finders;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cc.kune.domain.License;
+
+import com.google.inject.name.Named;
+import com.google.inject.persist.finder.Finder;
+
+public interface LicenseFinder {
+
+ @Finder(query = "from License l where l.shortName = :shortName")
+ public License findByShortName(@Named("shortName") final String shortName);
+
+ @Finder(query = "from License", returnAs = ArrayList.class)
+ public List<License> getAll();
+
+ @Finder(query = "from License where isCC = true", returnAs = ArrayList.class)
+ public List<License> getCC();
+
+ @Finder(query = "from License where isCC = false", returnAs = ArrayList.class)
+ public List<License> getNotCC();
+}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/RateFinder.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/RateFinder.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/RateFinder.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -0,0 +1,40 @@
+/*
+ *
+ * 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.domain.finders;
+
+import cc.kune.domain.Content;
+import cc.kune.domain.Rate;
+import cc.kune.domain.User;
+
+import com.google.inject.name.Named;
+import com.google.inject.persist.finder.Finder;
+
+public interface RateFinder {
+
+ @Finder(query = "SELECT AVG(r.value) FROM Rate r WHERE r.content = :content")
+ public Double calculateRate(@Named("content") final Content content);
+
+ @Finder(query = "SELECT count(*) FROM Rate r WHERE r.content = :content")
+ public Long calculateRateNumberOfUsers(@Named("content") final Content content);
+
+ @Finder(query = "SELECT r FROM Rate r WHERE r.rater = :user AND r.content = :content")
+ public Rate find(@Named("user") final User user, @Named("content") final Content content);
+
+}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagFinder.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagFinder.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagFinder.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -0,0 +1,32 @@
+/*
+ *
+ * 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.domain.finders;
+
+import cc.kune.domain.Tag;
+
+import com.google.inject.name.Named;
+import com.google.inject.persist.finder.Finder;
+
+public interface TagFinder {
+
+ @Finder(query = "FROM Tag g WHERE g.name = :name")
+ public Tag findByTagName(@Named("name") final String tag);
+
+}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagUserContentFinder.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagUserContentFinder.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/TagUserContentFinder.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -0,0 +1,53 @@
+/*
+ *
+ * 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.domain.finders;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cc.kune.core.shared.domain.TagCount;
+import cc.kune.domain.Content;
+import cc.kune.domain.Group;
+import cc.kune.domain.Tag;
+import cc.kune.domain.TagUserContent;
+import cc.kune.domain.User;
+
+import com.google.inject.name.Named;
+import com.google.inject.persist.finder.Finder;
+
+public interface TagUserContentFinder {
+
+ @Finder(query = "FROM TagUserContent t WHERE t.user = :user AND t.content = :content", returnAs = ArrayList.class)
+ public List<TagUserContent> find(@Named("user") final User user, @Named("content") final Content content);
+
+ @Finder(query = "SELECT t.tag FROM TagUserContent t WHERE t.user = :user AND t.content = :content", returnAs = ArrayList.class)
+ public List<Tag> findTags(@Named("user") final User user, @Named("content") final Content content);
+
+ @Finder(query = "SELECT Count(tuc.content.id) FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group GROUP BY t.name ORDER BY count(*) ASC LIMIT 0,1")
+ public int getMaxGrouped(@Named("group") final Group group);
+
+ @Finder(query = "SELECT Count(tuc.content.id) FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group GROUP BY t.name ORDER BY count(*) DESC LIMIT 0,1")
+ public int getMinGrouped(@Named("group") final Group group);
+
+ @Finder(query = "SELECT NEW cc.kune.core.shared.domain.TagCount(t.name, COUNT(tuc.content.id)) "
+ + "FROM TagUserContent tuc JOIN tuc.tag t WHERE tuc.content.container.owner = :group "
+ + "GROUP BY t.name ORDER BY t.name", returnAs = ArrayList.class)
+ public List<TagCount> getTagsGroups(@Named("group") final Group group);
+}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/UserFinder.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/UserFinder.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/domain/finders/UserFinder.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -0,0 +1,41 @@
+/*
+ *
+ * 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.domain.finders;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cc.kune.domain.User;
+
+import com.google.inject.name.Named;
+import com.google.inject.persist.finder.Finder;
+
+public interface UserFinder {
+
+ @Finder(query = "from User", returnAs = ArrayList.class)
+ public List<User> getAll();
+
+ @Finder(query = "from User where email = :email")
+ public User getByEmail(@Named("email") final String email);
+
+ @Finder(query = "from User where shortName = :shortName")
+ public User getByShortName(@Named("shortName") final String shortName);
+
+}
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -23,6 +23,7 @@
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.websocket.WebSocket;
import org.eclipse.jetty.websocket.WebSocketServlet;
+import org.jruby.rack.RackFilter;
import org.ourproject.kune.rack.RackServletFilter;
import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolAuthenticate;
import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolAuthenticationResult;
@@ -50,7 +51,6 @@
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.name.Named;
-import com.google.inject.servlet.GuiceFilter;
import com.google.inject.servlet.GuiceServletContextListener;
import com.google.protobuf.Descriptors;
import com.google.protobuf.Descriptors.MethodDescriptor;
@@ -59,6 +59,8 @@
import com.google.protobuf.Service;
import com.google.protobuf.UnknownFieldSet;
+import de.spieleck.servlets.ProxyServlet;
+
/**
* ServerRpcProvider can provide instances of type Service over an incoming
* network socket and service incoming RPCs to these services and their methods.
@@ -417,12 +419,69 @@
httpServer.addConnector(connector);
}
+ // final WebAppContext context = new WebAppContext();
final ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
if (jettySessionManager != null) {
context.getSessionHandler().setSessionManager(jettySessionManager);
}
context.setResourceBase(resourceBase);
context.setContextPath(baseUrl);
+
+ // context.setWar(baseUrl);
+
+ final ServletHolder httpbindHolder = new ServletHolder(ProxyServlet.class);
+ httpbindHolder.setInitParameter("remotePath", "/http-bind/");
+ httpbindHolder.setInitParameter("remotePort", "5280");
+ context.addServlet(httpbindHolder, "/http-bind/");
+
+ final FilterHolder rubyRack = new FilterHolder(org.jruby.rack.rails.RailsServletContextListener.class);
+ rubyRack.setFilter(new RackFilter());
+ rubyRack.setInitParameter("jruby.standalone", "true");
+ rubyRack.setInitParameter("rails.root", "/WEB-INF/publicspace/");
+ rubyRack.setInitParameter("files.prefix", "/WEB-INF/publicspace/public");
+ rubyRack.setInitParameter("rails.env", "production");
+ rubyRack.setInitParameter("jruby.max.runtimes", "1");
+ rubyRack.setInitParameter("public.root", "/public/");
+ context.addFilter(rubyRack, "/public/*", 0);
+
+ // <context-param>
+ // <param-name>jruby.standalone</param-name>
+ // <param-value>true</param-value>
+ // </context-param>
+ // <context-param>
+ // <param-name>rails.root</param-name>
+ // <param-value>/WEB-INF/publicspace/
+ // </param-value>
+ // </context-param>
+ // <context-param>
+ // <param-name>files.prefix</param-name>
+ // <param-value>/WEB-INF/publicspace/public
+ // </param-value>
+ // </context-param>
+ // <context-param>
+ // <param-name>rails.env</param-name>
+ // <param-value>production</param-value>
+ // </context-param>
+ // <context-param>
+ // <param-name>jruby.max.runtimes</param-name>
+ // <param-value>1</param-value>
+ // </context-param>
+ // <context-param>
+ // <param-name>public.root</param-name>
+ // <param-value>/public/</param-value>
+ // </context-param>
+ // <filter>
+ // <filter-name>RackFilter</filter-name>
+ // <filter-class>org.jruby.rack.RackFilter</filter-class>
+ // </filter>
+ // <filter-mapping>
+ // <filter-name>RackFilter</filter-name>
+ // <url-pattern>/public/*</url-pattern>
+ // </filter-mapping>
+ // <listener>
+ // <listener-class>org.jruby.rack.rails.RailsServletContextListener</listener-class>
+ // </listener>
+
context.addEventListener(new GuiceServletContextListener() {
@Override
protected Injector getInjector() {
@@ -430,12 +489,13 @@
}
});
context.setAttribute(RackServletFilter.INJECTOR_PARENT_ATTRIBUTE, injector);
- context.addFilter(GuiceFilter.class, "/*", 0);
final FilterHolder filterHolder = new FilterHolder(RackServletFilter.class);
filterHolder.setInitParameter("org.ourproject.kune.rack.RackModule",
"org.ourproject.kune.app.server.KuneRackModule");
- context.addFilter(filterHolder, "/ws*", 0);
+ context.addFilter(filterHolder, "/ws/*", 0);
+ // context.addFilter(GuiceFilter.class, "/*", 0);
+
// Servlet where the websocket connection is served from.
final ServletHolder wsholder = new ServletHolder(new WaveWebSocketServlet());
context.addServlet(wsholder, "/socket");
@@ -477,11 +537,16 @@
final ServletHolder defaultServlet = new ServletHolder(new DefaultServlet());
context.addServlet(defaultServlet, "/static/*");
context.addServlet(defaultServlet, "/webclient/*");
+ context.addServlet(defaultServlet, "/ws/*");
for (final Pair<String, ServletHolder> servlet : servletRegistry) {
context.addServlet(servlet.getSecond(), servlet.getFirst());
}
+ // final ContextHandlerCollection contexts = new
+ // ContextHandlerCollection();
+ // contexts.setHandlers(new Handler[] { context, webContext });
+
httpServer.setHandler(context);
try {
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/JettyModule.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/JettyModule.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/JettyModule.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -0,0 +1,3 @@
+package cc.kune.wave.server;
+
+
Modified: branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/WaveMain.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/WaveMain.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/WaveMain.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -42,8 +42,6 @@
import org.waveprotocol.box.server.rpc.AuthenticationServlet;
import org.waveprotocol.box.server.rpc.FetchServlet;
import org.waveprotocol.box.server.rpc.SignOutServlet;
-import org.waveprotocol.box.server.rpc.UserRegistrationServlet;
-import org.waveprotocol.box.server.rpc.WaveClientServlet;
import org.waveprotocol.box.server.waveserver.WaveBus;
import org.waveprotocol.box.server.waveserver.WaveServerException;
import org.waveprotocol.box.server.waveserver.WaveletProvider;
@@ -128,7 +126,7 @@
server.addServlet(SessionManager.SIGN_IN_URL, injector.getInstance(AuthenticationServlet.class));
server.addServlet("/auth/signout", injector.getInstance(SignOutServlet.class));
- server.addServlet("/auth/register", injector.getInstance(UserRegistrationServlet.class));
+ server.addServlet("/auth/register", injector.getInstance(CustomUserRegistrationServlet.class));
server.addServlet("/fetch/*", injector.getInstance(FetchServlet.class));
@@ -147,7 +145,7 @@
final ServletHolder proxyServletHolder = server.addServlet("/gadgets/*", proxyServlet);
proxyServletHolder.setInitParameter("HostHeader", gadgetServerHostname);
- server.addServlet("/", injector.getInstance(WaveClientServlet.class));
+ server.addServlet("/", injector.getInstance(CustomWaveClientServlet.class));
}
public static void main(final String... args) {
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -27,6 +27,7 @@
import org.ourproject.kune.gallery.server.GalleryServerModule;
import org.ourproject.kune.platf.server.LoggerMethodInterceptor;
import org.ourproject.kune.platf.server.PlatformServerModule;
+import org.ourproject.kune.platf.server.init.FinderRegistry;
import org.ourproject.kune.platf.server.manager.file.EntityLogoDownloadManager;
import org.ourproject.kune.platf.server.manager.file.EntityLogoUploadManager;
import org.ourproject.kune.platf.server.manager.file.FileDownloadManager;
@@ -57,10 +58,10 @@
import com.google.inject.Module;
import com.google.inject.Scope;
import com.google.inject.matcher.Matchers;
+import com.google.inject.persist.jpa.JpaPersistModule;
import com.google.inject.servlet.GuiceFilter;
import com.google.inject.servlet.ServletModule;
import com.google.inject.servlet.SessionScoped;
-import com.wideplay.warp.jpa.JpaUnit;
public class KuneRackModule implements RackModule {
public static final Log LOG = LogFactory.getLog(KuneRackModule.class);
@@ -75,8 +76,8 @@
configModule = new AbstractModule() {
@Override
public void configure() {
+ install(FinderRegistry.init(new JpaPersistModule(jpaUnit)));
bindInterceptor(Matchers.any(), new NotInObject(), new LoggerMethodInterceptor());
- bindConstant().annotatedWith(JpaUnit.class).to(jpaUnit);
bindConstant().annotatedWith(PropertiesFileName.class).to(propertiesFileName);
if (sessionScope != null) {
bindScope(SessionScoped.class, sessionScope);
@@ -100,7 +101,7 @@
builder.exclude("/templates/.*");
/* Wave with context '/' */
- // builder.exclude("/*");
+ builder.exclude("/");
builder.exclude("/attachment/.*");
builder.exclude("/auth/signin");
builder.exclude("/auth/signout");
@@ -114,6 +115,7 @@
builder.exclude("/gadgets");
builder.exclude("/gadgets/.*");
builder.exclude("/socket.io/*");
+ builder.exclude("/socket.io/.*]");
builder.exclude("/socket");
builder.exclude("/static/.*");
builder.exclude("/webclient/.*");
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -20,8 +20,8 @@
package org.ourproject.kune.platf.client.actions.ui;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.OldAbstractAction;
-import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.PropertyChangeEvent;
import org.ourproject.kune.platf.client.actions.PropertyChangeListener;
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -19,10 +19,10 @@
*/
package org.ourproject.kune.platf.client.actions.ui;
-import org.ourproject.kune.platf.client.actions.OldAbstractAction;
import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.ActionEvent;
import org.ourproject.kune.platf.client.actions.KeyStroke;
+import org.ourproject.kune.platf.client.actions.OldAbstractAction;
import org.ourproject.kune.platf.client.actions.PropertyChangeEvent;
import org.ourproject.kune.platf.client.actions.PropertyChangeListener;
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractSeparatorDescriptor.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractSeparatorDescriptor.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractSeparatorDescriptor.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -19,8 +19,8 @@
*/
package org.ourproject.kune.platf.client.actions.ui;
+import org.ourproject.kune.platf.client.actions.ActionEvent;
import org.ourproject.kune.platf.client.actions.OldAbstractAction;
-import org.ourproject.kune.platf.client.actions.ActionEvent;
public abstract class AbstractSeparatorDescriptor extends OldGuiActionDescrip {
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/BaseAction.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/BaseAction.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/BaseAction.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -19,9 +19,9 @@
*/
package org.ourproject.kune.platf.client.actions.ui;
-import org.ourproject.kune.platf.client.actions.OldAbstractAction;
import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.OldAbstractAction;
import com.google.gwt.resources.client.ImageResource;
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -19,8 +19,8 @@
*/
package org.ourproject.kune.platf.client.actions.ui;
+import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.OldAbstractAction;
-import org.ourproject.kune.platf.client.actions.Action;
import com.google.gwt.resources.client.ImageResource;
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/OldGuiActionDescrip.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/OldGuiActionDescrip.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/actions/ui/OldGuiActionDescrip.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -20,10 +20,10 @@
package org.ourproject.kune.platf.client.actions.ui;
import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.actions.OldAbstractAction;
import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.ActionEvent;
import org.ourproject.kune.platf.client.actions.ChangebleObject;
+import org.ourproject.kune.platf.client.actions.OldAbstractAction;
/**
* The Class AbstractUIActionDescriptor.
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -19,11 +19,11 @@
*/
package org.ourproject.kune.platf.client.shortcuts;
-import org.ourproject.kune.platf.client.actions.OldAbstractAction;
import org.ourproject.kune.platf.client.actions.ActionEvent;
import org.ourproject.kune.platf.client.actions.ChangebleObject;
import org.ourproject.kune.platf.client.actions.InputMap;
import org.ourproject.kune.platf.client.actions.KeyStroke;
+import org.ourproject.kune.platf.client.actions.OldAbstractAction;
import org.ourproject.kune.platf.client.actions.Shortcut;
import com.allen_sauer.gwt.log.client.Log;
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -20,12 +20,12 @@
package org.ourproject.kune.platf.client.ui.rte.basic;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.actions.KeyStroke;
import org.ourproject.kune.platf.client.actions.OldAbstractAction;
-import org.ourproject.kune.platf.client.actions.KeyStroke;
-import org.ourproject.kune.platf.client.actions.ui.OldGuiActionDescrip;
import org.ourproject.kune.platf.client.actions.ui.GuiAddCondition;
import org.ourproject.kune.platf.client.actions.ui.IsActionExtensible;
import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor;
+import org.ourproject.kune.platf.client.actions.ui.OldGuiActionDescrip;
import com.calclab.suco.client.events.Listener0;
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -23,13 +23,13 @@
import org.cobogw.gwt.user.client.CSS;
import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.actions.OldAbstractAction;
import org.ourproject.kune.platf.client.actions.ActionEvent;
import org.ourproject.kune.platf.client.actions.InputMap;
import org.ourproject.kune.platf.client.actions.KeyStroke;
+import org.ourproject.kune.platf.client.actions.OldAbstractAction;
import org.ourproject.kune.platf.client.actions.ui.ComplexToolbar;
+import org.ourproject.kune.platf.client.actions.ui.GuiBindingsRegister;
import org.ourproject.kune.platf.client.actions.ui.OldGuiActionDescrip;
-import org.ourproject.kune.platf.client.actions.ui.GuiBindingsRegister;
import org.ourproject.kune.platf.client.shortcuts.GlobalShortcutRegister;
import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import org.ourproject.kune.platf.client.ui.rte.RichTextArea;
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -28,22 +28,22 @@
import java.util.Map;
import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.actions.OldAbstractAction;
import org.ourproject.kune.platf.client.actions.AbstractExtendedAction;
import org.ourproject.kune.platf.client.actions.ActionEvent;
import org.ourproject.kune.platf.client.actions.InputMap;
import org.ourproject.kune.platf.client.actions.KeyStroke;
+import org.ourproject.kune.platf.client.actions.OldAbstractAction;
import org.ourproject.kune.platf.client.actions.Shortcut;
import org.ourproject.kune.platf.client.actions.ui.AbstractActionExtensiblePresenter;
import org.ourproject.kune.platf.client.actions.ui.ButtonDescriptor;
import org.ourproject.kune.platf.client.actions.ui.GuiActionDescCollection;
-import org.ourproject.kune.platf.client.actions.ui.OldGuiActionDescrip;
import org.ourproject.kune.platf.client.actions.ui.GuiAddCondition;
import org.ourproject.kune.platf.client.actions.ui.MenuCheckItemDescriptor;
import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor;
-import org.ourproject.kune.platf.client.actions.ui.OldMenuItemDescriptor;
import org.ourproject.kune.platf.client.actions.ui.MenuRadioItemDescriptor;
import org.ourproject.kune.platf.client.actions.ui.MenuSeparatorDescriptor;
+import org.ourproject.kune.platf.client.actions.ui.OldGuiActionDescrip;
+import org.ourproject.kune.platf.client.actions.ui.OldMenuItemDescriptor;
import org.ourproject.kune.platf.client.actions.ui.PushButtonDescriptor;
import org.ourproject.kune.platf.client.actions.ui.ToolbarSeparatorDescriptor;
import org.ourproject.kune.platf.client.actions.ui.ToolbarSeparatorDescriptor.Type;
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/KunePersistenceService.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/KunePersistenceService.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/KunePersistenceService.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -23,20 +23,20 @@
import com.google.inject.Inject;
import com.google.inject.Singleton;
-import com.wideplay.warp.persist.PersistenceService;
+import com.google.inject.persist.PersistService;
@Singleton
public class KunePersistenceService {
@Inject
DatabaseInitializer databaseInitializer;
@Inject
- PersistenceService persistenceService;
+ PersistService persistenceService;
public void start() {
try {
persistenceService.start();
databaseInitializer.initConditional();
- } catch (Exception e) {
+ } catch (final Exception e) {
throw new ServerException("Error starting persistence service", e);
}
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -99,23 +99,9 @@
import cc.kune.core.client.rpcservices.UserService;
import cc.kune.core.shared.i18n.I18nTranslationService;
import cc.kune.domain.Comment;
-import cc.kune.domain.Container;
-import cc.kune.domain.Content;
-import cc.kune.domain.ExtMediaDescrip;
-import cc.kune.domain.Group;
-import cc.kune.domain.I18nCountry;
-import cc.kune.domain.I18nLanguage;
-import cc.kune.domain.I18nTranslation;
-import cc.kune.domain.License;
-import cc.kune.domain.Rate;
import cc.kune.domain.SocialNetwork;
-import cc.kune.domain.Tag;
-import cc.kune.domain.TagUserContent;
-import cc.kune.domain.User;
import com.google.inject.matcher.Matchers;
-import com.wideplay.warp.persist.PersistenceService;
-import com.wideplay.warp.persist.UnitOfWork;
public class PlatformServerModule extends AbstractExtendedModule {
private void bindFinders() {
@@ -124,20 +110,8 @@
// created in an ancestor injector whenever possible (...)
// (This fails with finders, then we make explicit bindings)
- bind(User.class);
- bind(Group.class);
- bind(Content.class);
- bind(Container.class);
- bind(License.class);
bind(SocialNetwork.class);
- bind(Rate.class);
- bind(I18nCountry.class);
- bind(I18nLanguage.class);
- bind(I18nTranslation.class);
- bind(Tag.class);
- bind(TagUserContent.class);
bind(Comment.class);
- bind(ExtMediaDescrip.class);
}
private void bindManagers() {
@@ -182,7 +156,7 @@
@Override
protected void configure() {
- install(PersistenceService.usingJpa().across(UnitOfWork.TRANSACTION).buildModule());
+ // install(PersistService.usingJpa().across(UnitOfWork.TRANSACTION).buildModule());
bind(KunePersistenceService.class);
bindFinders();
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContainerManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -38,9 +38,10 @@
import cc.kune.core.client.errors.NameInUseException;
import cc.kune.domain.AccessLists;
import cc.kune.domain.Container;
-import cc.kune.domain.Content;
import cc.kune.domain.Group;
import cc.kune.domain.I18nLanguage;
+import cc.kune.domain.finders.ContainerFinder;
+import cc.kune.domain.finders.ContentFinder;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -49,25 +50,26 @@
@Singleton
public class ContainerManagerDefault extends DefaultManager<Container, Long> implements ContainerManager {
- private final Container containerFinder;
- private final Content contentFinder;
+ private final ContainerFinder containerFinder;
+ private final ContentFinder contentFinder;
@Inject
- public ContainerManagerDefault(final Content contentFinder, final Container containerFinder,
+ public ContainerManagerDefault(final ContentFinder contentFinder, final ContainerFinder containerFinder,
final Provider<EntityManager> provider) {
super(provider, Container.class);
this.contentFinder = contentFinder;
this.containerFinder = containerFinder;
}
+ @Override
public Container createFolder(final Group group, final Container parent, final String name,
final I18nLanguage language, final String typeId) {
FilenameUtils.checkBasicFilename(name);
- String newtitle = findInexistentName(parent, name);
+ final String newtitle = findInexistentName(parent, name);
final List<Container> parentAbsolutePath = parent.getAbsolutePath();
final List<Container> childAbsolutePath = new ArrayList<Container>();
- for (Container parentRef : parentAbsolutePath) {
+ for (final Container parentRef : parentAbsolutePath) {
childAbsolutePath.add(parentRef);
}
// FIXME: use
@@ -82,6 +84,7 @@
return child;
}
+ @Override
public Container createRootFolder(final Group group, final String toolName, final String name, final String type) {
final Container container = new Container(name, group, toolName);
container.setTypeId(type);
@@ -92,15 +95,26 @@
}
/** Duplicate code in ContentMD **/
+ @Override
public boolean findIfExistsTitle(final Container container, final String title) {
return (contentFinder.findIfExistsTitle(container, title) > 0)
|| (containerFinder.findIfExistsTitle(container, title) > 0);
}
+ /** Duplicate code in ContentMD **/
+ private String findInexistentName(final Container container, final String title) {
+ String initialTitle = String.valueOf(title);
+ while (findIfExistsTitle(container, initialTitle)) {
+ initialTitle = FileUtils.getNextSequentialFileName(initialTitle);
+ }
+ return initialTitle;
+ }
+
+ @Override
public Container renameFolder(final Group group, final Container container, final String newName)
throws DefaultException {
FilenameUtils.checkBasicFilename(newName);
- String newNameWithoutNT = FilenameUtils.chomp(newName);
+ final String newNameWithoutNT = FilenameUtils.chomp(newName);
if (container.isRoot()) {
throw new DefaultException("Root folder cannot be renamed");
}
@@ -112,10 +126,12 @@
return container;
}
+ @Override
public SearchResult<Container> search(final String search) {
return this.search(search, null, null);
}
+ @Override
public SearchResult<Container> search(final String search, final Integer firstResult, final Integer maxResults) {
final MultiFieldQueryParser parser = new MultiFieldQueryParser(new String[] { "name" }, new StandardAnalyzer());
Query query;
@@ -127,18 +143,10 @@
return super.search(query, firstResult, maxResults);
}
+ @Override
public void setAccessList(final Container container, final AccessLists accessList) {
container.setAccessLists(accessList);
persist(container);
}
- /** Duplicate code in ContentMD **/
- private String findInexistentName(final Container container, final String title) {
- String initialTitle = String.valueOf(title);
- while (findIfExistsTitle(container, initialTitle)) {
- initialTitle = FileUtils.getNextSequentialFileName(initialTitle);
- }
- return initialTitle;
- }
-
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -48,6 +48,10 @@
import cc.kune.domain.Rate;
import cc.kune.domain.Revision;
import cc.kune.domain.User;
+import cc.kune.domain.finders.ContainerFinder;
+import cc.kune.domain.finders.ContentFinder;
+import cc.kune.domain.finders.I18nLanguageFinder;
+import cc.kune.domain.finders.UserFinder;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -56,17 +60,17 @@
@Singleton
public class ContentManagerDefault extends DefaultManager<Content, Long> implements ContentManager {
+ private final ContainerFinder containerFinder;
+ private final ContentFinder contentFinder;
private final FinderService finder;
- private final User userFinder;
- private final I18nLanguage languageFinder;
- private final Content contentFinder;
- private final Container containerFinder;
+ private final I18nLanguageFinder languageFinder;
private final TagUserContentManager tagManager;
+ private final UserFinder userFinder;
@Inject
- public ContentManagerDefault(final Content contentFinder, final Container containerFinder,
- final Provider<EntityManager> provider, final FinderService finder, final User userFinder,
- final I18nLanguage languageFinder, final TagUserContentManager tagManager) {
+ public ContentManagerDefault(final ContentFinder contentFinder, final ContainerFinder containerFinder,
+ final Provider<EntityManager> provider, final FinderService finder, final UserFinder userFinder,
+ final I18nLanguageFinder languageFinder, final TagUserContentManager tagManager) {
super(provider, Content.class);
this.contentFinder = contentFinder;
this.containerFinder = containerFinder;
@@ -76,6 +80,7 @@
this.tagManager = tagManager;
}
+ @Override
public void addAuthor(final User user, final Long contentId, final String authorShortName) throws DefaultException {
final Content content = finder.getContent(contentId);
final User author = userFinder.getByShortName(authorShortName);
@@ -85,10 +90,11 @@
content.addAuthor(author);
}
+ @Override
public Content createContent(final String title, final String body, final User author, final Container container,
final String typeId) {
FilenameUtils.checkBasicFilename(title);
- String newtitle = findInexistentTitle(container, title);
+ final String newtitle = findInexistentTitle(container, title);
final Content newContent = new Content();
newContent.addAuthor(author);
newContent.setLanguage(author.getLanguage());
@@ -102,19 +108,36 @@
return persist(newContent);
}
+ private MultiFieldQueryParser createMultiFieldParser() {
+ final MultiFieldQueryParser parser = new MultiFieldQueryParser(DEF_GLOBAL_SEARCH_FIELDS, new StandardAnalyzer());
+ return parser;
+ }
+
+ @Override
public boolean findIfExistsTitle(final Container container, final String title) {
return (contentFinder.findIfExistsTitle(container, title) > 0)
|| (containerFinder.findIfExistsTitle(container, title) > 0);
}
+ private String findInexistentTitle(final Container container, final String title) {
+ String initialTitle = String.valueOf(title);
+ while (findIfExistsTitle(container, initialTitle)) {
+ initialTitle = FileUtils.getNextSequentialFileName(initialTitle);
+ }
+ return initialTitle;
+ }
+
+ @Override
public Double getRateAvg(final Content content) {
return finder.getRateAvg(content);
}
+ @Override
public Long getRateByUsers(final Content content) {
return finder.getRateByUsers(content);
}
+ @Override
public Double getRateContent(final User rater, final Content content) {
final Rate rate = finder.getRate(rater, content);
if (rate != null) {
@@ -124,6 +147,7 @@
}
}
+ @Override
public RateResult rateContent(final User rater, final Long contentId, final Double value) throws DefaultException {
final Content content = finder.getContent(contentId);
final Rate oldRate = finder.getRate(rater, content);
@@ -134,11 +158,12 @@
oldRate.setValue(value);
super.persist(oldRate, Rate.class);
}
- Double rateAvg = getRateAvg(content);
- Long rateByUsers = getRateByUsers(content);
+ final Double rateAvg = getRateAvg(content);
+ final Long rateByUsers = getRateByUsers(content);
return new RateResult(rateAvg != null ? rateAvg : 0D, rateByUsers != null ? rateByUsers.intValue() : 0, value);
}
+ @Override
public void removeAuthor(final User user, final Long contentId, final String authorShortName)
throws DefaultException {
final Content content = finder.getContent(contentId);
@@ -149,8 +174,9 @@
content.removeAuthor(author);
}
+ @Override
public Content renameContent(final User user, final Long contentId, final String newTitle) throws DefaultException {
- String newTitleWithoutNL = FilenameUtils.chomp(newTitle);
+ final String newTitleWithoutNL = FilenameUtils.chomp(newTitle);
FilenameUtils.checkBasicFilename(newTitleWithoutNL);
final Content content = finder.getContent(contentId);
if (findIfExistsTitle(content.getContainer(), newTitleWithoutNL)) {
@@ -160,6 +186,7 @@
return content;
}
+ @Override
public Content save(final User editor, final Content content, final String body) {
final Revision revision = new Revision(content);
revision.setEditor(editor);
@@ -169,10 +196,12 @@
return persist(content);
}
+ @Override
public SearchResult<Content> search(final String search) {
return this.search(search, null, null);
}
+ @Override
public SearchResult<Content> search(final String search, final Integer firstResult, final Integer maxResults) {
final MultiFieldQueryParser parser = createMultiFieldParser();
Query query;
@@ -184,22 +213,25 @@
return super.search(query, firstResult, maxResults);
}
+ @Override
public SearchResult<Content> searchMime(final String search, final Integer firstResult, final Integer maxResults,
final String groupShortName, final String mimetype) {
- List<Content> list = contentFinder.findMime(groupShortName, "%" + search + "%", mimetype, firstResult,
+ final List<Content> list = contentFinder.findMime(groupShortName, "%" + search + "%", mimetype, firstResult,
maxResults);
- int count = contentFinder.findMimeCount(groupShortName, "%" + search + "%", mimetype);
+ final int count = contentFinder.findMimeCount(groupShortName, "%" + search + "%", mimetype);
return new SearchResult<Content>(count, list);
}
+ @Override
public SearchResult<?> searchMime(final String search, final Integer firstResult, final Integer maxResults,
final String groupShortName, final String mimetype, final String mimetype2) {
- List<Content> list = contentFinder.find2Mime(groupShortName, "%" + search + "%", mimetype, mimetype2,
+ final List<Content> list = contentFinder.find2Mime(groupShortName, "%" + search + "%", mimetype, mimetype2,
firstResult, maxResults);
- int count = contentFinder.find2MimeCount(groupShortName, "%" + search + "%", mimetype, mimetype2);
+ final int count = contentFinder.find2MimeCount(groupShortName, "%" + search + "%", mimetype, mimetype2);
return new SearchResult<Content>(count, list);
}
+ @Override
public I18nLanguage setLanguage(final User user, final Long contentId, final String languageCode)
throws DefaultException {
final Content content = finder.getContent(contentId);
@@ -211,11 +243,13 @@
return language;
}
+ @Override
public void setPublishedOn(final User user, final Long contentId, final Date publishedOn) throws DefaultException {
final Content content = finder.getContent(contentId);
content.setPublishedOn(publishedOn);
}
+ @Override
public Content setStatus(final Long contentId, final ContentStatus status) {
final Content content = finder.getContent(contentId);
content.setStatus(status);
@@ -234,21 +268,9 @@
return content;
}
+ @Override
public void setTags(final User user, final Long contentId, final String tags) throws DefaultException {
final Content content = finder.getContent(contentId);
tagManager.setTags(user, content, tags);
}
-
- private MultiFieldQueryParser createMultiFieldParser() {
- final MultiFieldQueryParser parser = new MultiFieldQueryParser(DEF_GLOBAL_SEARCH_FIELDS, new StandardAnalyzer());
- return parser;
- }
-
- private String findInexistentTitle(final Container container, final String title) {
- String initialTitle = String.valueOf(title);
- while (findIfExistsTitle(container, initialTitle)) {
- initialTitle = FileUtils.getNextSequentialFileName(initialTitle);
- }
- return initialTitle;
- }
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -26,8 +26,7 @@
import cc.kune.domain.User;
import com.google.inject.Inject;
-import com.wideplay.warp.persist.TransactionType;
-import com.wideplay.warp.persist.Transactional;
+import com.google.inject.persist.Transactional;
public class DatabaseInitializer {
private final ContentManager contentManager;
@@ -205,7 +204,7 @@
}
}
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public void initDatabase() throws Exception {
createOthers();
createLicenses();
Added: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/FinderRegistry.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/FinderRegistry.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/init/FinderRegistry.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -0,0 +1,37 @@
+package org.ourproject.kune.platf.server.init;
+
+import cc.kune.domain.finders.ContainerFinder;
+import cc.kune.domain.finders.ContentFinder;
+import cc.kune.domain.finders.ExtMediaDescripFinder;
+import cc.kune.domain.finders.GroupFinder;
+import cc.kune.domain.finders.I18nCountryFinder;
+import cc.kune.domain.finders.I18nLanguageFinder;
+import cc.kune.domain.finders.I18nTranslationFinder;
+import cc.kune.domain.finders.LicenseFinder;
+import cc.kune.domain.finders.RateFinder;
+import cc.kune.domain.finders.TagFinder;
+import cc.kune.domain.finders.TagUserContentFinder;
+import cc.kune.domain.finders.UserFinder;
+
+import com.google.inject.Module;
+import com.google.inject.persist.jpa.JpaPersistModule;
+
+public class FinderRegistry {
+
+ public static Module init(final JpaPersistModule jpaPersistModule) {
+ jpaPersistModule.addFinder(ContainerFinder.class);
+ jpaPersistModule.addFinder(ContentFinder.class);
+ jpaPersistModule.addFinder(ExtMediaDescripFinder.class);
+ jpaPersistModule.addFinder(GroupFinder.class);
+ jpaPersistModule.addFinder(I18nCountryFinder.class);
+ jpaPersistModule.addFinder(I18nLanguageFinder.class);
+ jpaPersistModule.addFinder(I18nTranslationFinder.class);
+ jpaPersistModule.addFinder(LicenseFinder.class);
+ jpaPersistModule.addFinder(RateFinder.class);
+ jpaPersistModule.addFinder(TagFinder.class);
+ jpaPersistModule.addFinder(TagUserContentFinder.class);
+ jpaPersistModule.addFinder(UserFinder.class);
+ return jpaPersistModule;
+ }
+
+}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/LicenseManager.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/LicenseManager.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/LicenseManager.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -22,6 +22,7 @@
import java.util.List;
import cc.kune.domain.License;
+import cc.kune.domain.finders.LicenseFinder;
public interface LicenseManager {
@@ -37,6 +38,6 @@
License persist(final License license);
- void setLicenseFinder(final License licenseFinder);
+ void setLicenseFinder(final LicenseFinder licenseFinder);
}
\ No newline at end of file
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManagerDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/TagUserContentManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -24,7 +24,6 @@
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
-import javax.persistence.Query;
import org.ourproject.kune.platf.server.manager.impl.DefaultManager;
@@ -36,6 +35,7 @@
import cc.kune.domain.Tag;
import cc.kune.domain.TagUserContent;
import cc.kune.domain.User;
+import cc.kune.domain.finders.TagUserContentFinder;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -43,27 +43,45 @@
@Singleton
public class TagUserContentManagerDefault extends DefaultManager<TagUserContent, Long> implements TagUserContentManager {
+ private final TagUserContentFinder finder;
private final Provider<EntityManager> provider;
private final TagManager tagManager;
- private final TagUserContent finder;
@Inject
public TagUserContentManagerDefault(final Provider<EntityManager> provider, final TagManager tagManager,
- final TagUserContent finder) {
+ final TagUserContentFinder finder) {
super(provider, TagUserContent.class);
this.provider = provider;
this.tagManager = tagManager;
this.finder = finder;
}
+ @Override
public List<Tag> find(final User user, final Content content) {
return finder.findTags(user, content);
}
+ private int getMaxCount(final Group group) {
+ // return finder.getMaxGrouped(group);
+ return 0;
+ }
+
+ private int getMinCount(final Group group) {
+ // return finder.getMinGrouped(group);
+ return 0;
+ }
+
+ private List<TagCount> getSummaryByGroup(final Group group) {
+ return new ArrayList<TagCount>();
+ // return finder.getTagsGroups(group);
+ }
+
+ @Override
public TagCloudResult getTagCloudResultByGroup(final Group group) {
return new TagCloudResult(getSummaryByGroup(group), getMaxCount(group), getMinCount(group));
}
+ @Override
public String getTagsAsString(final User user, final Content content) {
String tagConcatenated = "";
if (user.getId() != null) {
@@ -76,12 +94,14 @@
return tagConcatenated.replaceFirst(" ", "");
}
+ @Override
public void remove(final User user, final Content content) {
for (final TagUserContent item : finder.find(user, content)) {
provider.get().remove(item);
}
}
+ @Override
public void setTags(final User user, final Content content, final String tags) {
final ArrayList<String> tagsStripped = TextUtils.splitTags(tags);
final ArrayList<Tag> tagList = new ArrayList<Tag>();
@@ -104,26 +124,4 @@
persist(tagUserContent);
}
}
-
- private int getMaxCount(final Group group) {
- final Query q = provider.get().createNamedQuery(TagUserContent.TAGSMAXGROUPED);
- q.setParameter("group", group);
- final List resultList = q.getResultList();
- return (resultList.size() == 0 ? 0 : ((Long) resultList.get(0)).intValue());
- }
-
- @SuppressWarnings("rawtypes")
- private int getMinCount(final Group group) {
- final Query q = provider.get().createNamedQuery(TagUserContent.TAGSMINGROUPED);
- q.setParameter("group", group);
- final List resultList = q.getResultList();
- return (resultList.size() == 0 ? 0 : ((Long) resultList.get(0)).intValue());
- }
-
- private List<TagCount> getSummaryByGroup(final Group group) {
- final Query q = provider.get().createNamedQuery(TagUserContent.TAGSGROUPED);
- q.setParameter("group", group);
- final List<TagCount> results = q.getResultList();
- return results;
- }
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -42,8 +42,7 @@
import cc.kune.domain.Group;
import com.google.inject.Inject;
-import com.wideplay.warp.persist.TransactionType;
-import com.wideplay.warp.persist.Transactional;
+import com.google.inject.persist.Transactional;
public class EntityLogoUploadManager extends FileUploadManagerAbstract {
@@ -95,7 +94,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
protected void createUploadedFile(final String userHash, final StateToken stateToken, final String fileName,
final FileItem file, final String typeId) throws Exception {
final String mimeTypeS = file.getContentType();
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -47,24 +47,23 @@
import cc.kune.domain.User;
import com.google.inject.Inject;
+import com.google.inject.persist.Transactional;
import com.google.inject.servlet.RequestScoped;
-import com.wideplay.warp.persist.TransactionType;
-import com.wideplay.warp.persist.Transactional;
@RequestScoped
public class FileUploadManager extends FileJsonUploadManagerAbstract {
private static final long serialVersionUID = -7209922761735338754L;
@Inject
- UserSession userSession;
+ AccessService accessService;
@Inject
ContentManager contentManager;
@Inject
- AccessService accessService;
- @Inject
FileManager fileManager;
@Inject
I18nTranslationService i18n;
+ @Inject
+ UserSession userSession;
@Override
protected void beforePostStart() {
@@ -104,7 +103,7 @@
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Editor, actionLevel = ActionLevel.container, mustCheckMembership = false)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
Content createUploadedFileWrapped(final String userHash, final StateToken stateToken, final String fileName,
final FileItem fileUploadItem, final String typeId) throws Exception {
final String relDir = FileUtils.toDir(stateToken);
@@ -137,8 +136,8 @@
final User user = userSession.getUser();
final Container container = accessService.accessToContainer(ContentUtils.parseId(stateToken.getFolder()),
user, AccessRol.Editor);
- final Content content = contentManager.createContent(FileUtils.getFileNameWithoutExtension(file.getName(),
- extension), preview, user, container, typeId);
+ final Content content = contentManager.createContent(
+ FileUtils.getFileNameWithoutExtension(file.getName(), extension), preview, user, container, typeId);
content.setMimeType(basicMimeType);
content.setFilename(file.getName());
return content;
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/ExtMediaDescripManagerDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/ExtMediaDescripManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/ExtMediaDescripManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -26,6 +26,7 @@
import org.ourproject.kune.platf.server.manager.ExtMediaDescripManager;
import cc.kune.domain.ExtMediaDescrip;
+import cc.kune.domain.finders.ExtMediaDescripFinder;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -35,14 +36,16 @@
public class ExtMediaDescripManagerDefault extends DefaultManager<ExtMediaDescrip, Long> implements
ExtMediaDescripManager {
- private final ExtMediaDescrip extMediaFinder;
+ private final ExtMediaDescripFinder extMediaFinder;
@Inject
- public ExtMediaDescripManagerDefault(final Provider<EntityManager> provider, final ExtMediaDescrip extMediaFinder) {
+ public ExtMediaDescripManagerDefault(final Provider<EntityManager> provider,
+ final ExtMediaDescripFinder extMediaFinder) {
super(provider, ExtMediaDescrip.class);
this.extMediaFinder = extMediaFinder;
}
+ @Override
public List<ExtMediaDescrip> getAll() {
return extMediaFinder.getAll();
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -53,6 +53,9 @@
import cc.kune.domain.SocialNetwork;
import cc.kune.domain.ToolConfiguration;
import cc.kune.domain.User;
+import cc.kune.domain.finders.GroupFinder;
+import cc.kune.domain.finders.LicenseFinder;
+import cc.kune.domain.finders.UserFinder;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -61,19 +64,19 @@
@Singleton
public class GroupManagerDefault extends DefaultManager<Group, Long> implements GroupManager {
- private final Group finder;
+ private final GroupFinder finder;
private final KuneProperties kuneProperties;
- private final License licenseFinder;
+ private final LicenseFinder licenseFinder;
private final LicenseManager licenseManager;
private final DatabaseProperties properties;
private final ServerToolRegistry registry;
private final ServerToolRegistry serverToolRegistry;
- private final User userFinder;
+ private final UserFinder userFinder;
@Inject
- public GroupManagerDefault(final Provider<EntityManager> provider, final Group finder, final User userFinder,
- final KuneProperties kuneProperties, final DatabaseProperties properties,
- final ServerToolRegistry registry, final LicenseManager licenseManager, final License licenseFinder,
+ public GroupManagerDefault(final Provider<EntityManager> provider, final GroupFinder finder,
+ final UserFinder userFinder, final KuneProperties kuneProperties, final DatabaseProperties properties,
+ final ServerToolRegistry registry, final LicenseManager licenseManager, final LicenseFinder licenseFinder,
final ServerToolRegistry serverToolRegistry) {
super(provider, Group.class);
this.finder = finder;
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nCountryManagerDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nCountryManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nCountryManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -26,6 +26,7 @@
import org.ourproject.kune.platf.server.manager.I18nCountryManager;
import cc.kune.domain.I18nCountry;
+import cc.kune.domain.finders.I18nCountryFinder;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -34,19 +35,21 @@
@Singleton
public class I18nCountryManagerDefault extends DefaultManager<I18nCountry, Long> implements I18nCountryManager {
- private final I18nCountry finder;
+ private final I18nCountryFinder finder;
@Inject
- public I18nCountryManagerDefault(final Provider<EntityManager> provider, final I18nCountry finder) {
+ public I18nCountryManagerDefault(final Provider<EntityManager> provider, final I18nCountryFinder finder) {
super(provider, I18nCountry.class);
this.finder = finder;
}
+ @Override
+ public I18nCountry findByCode(final String country) {
+ return finder.findByCode(country);
+ }
+
+ @Override
public List<I18nCountry> getAll() {
return finder.getAll();
}
-
- public I18nCountry findByCode(final String country) {
- return finder.findByCode(country);
- }
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nLanguageManagerDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nLanguageManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nLanguageManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -26,6 +26,7 @@
import org.ourproject.kune.platf.server.manager.I18nLanguageManager;
import cc.kune.domain.I18nLanguage;
+import cc.kune.domain.finders.I18nLanguageFinder;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -34,18 +35,20 @@
@Singleton
public class I18nLanguageManagerDefault extends DefaultManager<I18nLanguage, Long> implements I18nLanguageManager {
- private final I18nLanguage finder;
+ private final I18nLanguageFinder finder;
@Inject
- public I18nLanguageManagerDefault(final Provider<EntityManager> provider, final I18nLanguage finder) {
+ public I18nLanguageManagerDefault(final Provider<EntityManager> provider, final I18nLanguageFinder finder) {
super(provider, I18nLanguage.class);
this.finder = finder;
}
+ @Override
public I18nLanguage findByCode(final String language) {
return finder.findByCode(language);
}
+ @Override
public List<I18nLanguage> getAll() {
return finder.getAll();
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nTranslationManagerDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nTranslationManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/I18nTranslationManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -32,6 +32,7 @@
import cc.kune.core.client.errors.DefaultException;
import cc.kune.domain.I18nLanguage;
import cc.kune.domain.I18nTranslation;
+import cc.kune.domain.finders.I18nTranslationFinder;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -41,12 +42,12 @@
public class I18nTranslationManagerDefault extends DefaultManager<I18nTranslation, Long> implements
I18nTranslationManager {
- private final I18nTranslation finder;
+ private final I18nTranslationFinder finder;
private final ConcurrentHashMap<String, HashMap<String, String>> langCache;
private final I18nLanguageManager languageManager;
@Inject
- public I18nTranslationManagerDefault(final Provider<EntityManager> provider, final I18nTranslation finder,
+ public I18nTranslationManagerDefault(final Provider<EntityManager> provider, final I18nTranslationFinder finder,
final I18nLanguageManager languageManager) {
super(provider, I18nTranslation.class);
this.finder = finder;
@@ -54,6 +55,7 @@
langCache = new ConcurrentHashMap<String, HashMap<String, String>>();
}
+ @Override
public HashMap<String, String> getLexicon(final String language) {
HashMap<String, String> map = langCache.get(language);
if (map == null) {
@@ -62,11 +64,27 @@
return map;
}
+ @SuppressWarnings("unchecked")
+ private HashMap<String, String> getLexiconFromDb(final String language) {
+ HashMap<String, String> map = new HashMap<String, String>();
+ final List<I18nTranslation> set = finder.findByLanguage(language);
+ if (!language.equals(I18nTranslation.DEFAULT_LANG)) {
+ map = (HashMap<String, String>) getLexicon(I18nTranslation.DEFAULT_LANG).clone();
+ }
+ for (final I18nTranslation trans : set) {
+ map.put(trans.getTrKey(), trans.getText());
+ }
+ langCache.put(language, map);
+ return map;
+ }
+
+ @Override
public List<I18nTranslation> getTranslatedLexicon(final String languageCode) {
final I18nLanguage language = languageManager.findByCode(languageCode);
return finder.getTranslatedLexicon(language);
}
+ @Override
public SearchResult<I18nTranslation> getTranslatedLexicon(final String languageCode, final Integer firstResult,
final Integer maxResults) {
final I18nLanguage language = languageManager.findByCode(languageCode);
@@ -75,6 +93,7 @@
return new SearchResult<I18nTranslation>(count.intValue(), list);
}
+ @Override
public String getTranslation(final String language, final String text) {
final HashMap<String, String> lexicon = getLexicon(language);
final String escapedText = TextUtils.escapeHtmlLight(text);
@@ -95,23 +114,27 @@
}
}
+ @Override
public String getTranslation(final String language, final String text, final Integer arg) {
String translation = getTranslation(language, text);
translation = translation.replaceFirst("\\[%d\\]", arg.toString());
return translation;
}
+ @Override
public String getTranslation(final String language, final String text, final String arg) {
String translation = getTranslation(language, text);
translation = translation.replaceFirst("\\[%s\\]", arg);
return translation;
}
+ @Override
public List<I18nTranslation> getUntranslatedLexicon(final String languageCode) {
final I18nLanguage language = initUnstranlated(languageCode);
return finder.getUnstranslatedLexicon(language);
}
+ @Override
public SearchResult<I18nTranslation> getUntranslatedLexicon(final String languageCode, final Integer firstResult,
final Integer maxResults) {
final I18nLanguage language = initUnstranlated(languageCode);
@@ -120,6 +143,24 @@
return new SearchResult<I18nTranslation>(count.intValue(), list);
}
+ private I18nLanguage initUnstranlated(final String languageCode) {
+ final I18nLanguage defLanguage = languageManager.findByCode(I18nTranslation.DEFAULT_LANG);
+ I18nLanguage language;
+ if (languageCode.equals(I18nTranslation.DEFAULT_LANG)) {
+ language = defLanguage;
+ } else {
+ language = languageManager.findByCode(languageCode);
+ final List<I18nTranslation> list = finder.getNonExistentFromDefault(defLanguage, language);
+ for (final I18nTranslation defTrans : list) {
+ final I18nTranslation newTrans = defTrans.cloneForNewLanguage();
+ newTrans.setLanguage(language);
+ persist(newTrans);
+ }
+ }
+ return language;
+ }
+
+ @Override
public String setTranslation(final String id, final String translation) throws DefaultException {
final I18nTranslation trans = super.find(Long.valueOf(id));
if (trans != null) {
@@ -132,6 +173,7 @@
}
}
+ @Override
public void setTranslation(final String languageId, final String text, final String translation) {
final I18nLanguage language = languageManager.findByCode(languageId);
final I18nTranslation newTranslation = new I18nTranslation(text, language, translation);
@@ -143,35 +185,4 @@
}
}
- @SuppressWarnings("unchecked")
- private HashMap<String, String> getLexiconFromDb(final String language) {
- HashMap<String, String> map = new HashMap<String, String>();
- final List<I18nTranslation> set = finder.findByLanguage(language);
- if (!language.equals(I18nTranslation.DEFAULT_LANG)) {
- map = (HashMap<String, String>) getLexicon(I18nTranslation.DEFAULT_LANG).clone();
- }
- for (I18nTranslation trans : set) {
- map.put(trans.getTrKey(), trans.getText());
- }
- langCache.put(language, map);
- return map;
- }
-
- private I18nLanguage initUnstranlated(final String languageCode) {
- final I18nLanguage defLanguage = languageManager.findByCode(I18nTranslation.DEFAULT_LANG);
- I18nLanguage language;
- if (languageCode.equals(I18nTranslation.DEFAULT_LANG)) {
- language = defLanguage;
- } else {
- language = languageManager.findByCode(languageCode);
- final List<I18nTranslation> list = finder.getNonExistentFromDefault(defLanguage, language);
- for (I18nTranslation defTrans : list) {
- final I18nTranslation newTrans = defTrans.cloneForNewLanguage();
- newTrans.setLanguage(language);
- persist(newTrans);
- }
- }
- return language;
- }
-
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/LicenseManagerDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/LicenseManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/LicenseManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -27,6 +27,7 @@
import org.ourproject.kune.platf.server.properties.DatabaseProperties;
import cc.kune.domain.License;
+import cc.kune.domain.finders.LicenseFinder;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -34,34 +35,39 @@
@Singleton
public class LicenseManagerDefault extends DefaultManager<License, Long> implements LicenseManager {
- private License licenseFinder;
+ private LicenseFinder licenseFinder;
private final DatabaseProperties properties;
@Inject
public LicenseManagerDefault(final Provider<EntityManager> provider, final DatabaseProperties properties,
- final License licenseFinder) {
+ final LicenseFinder licenseFinder) {
super(provider, License.class);
this.properties = properties;
this.licenseFinder = licenseFinder;
}
+ @Override
public License findByShortName(final String shortName) {
return licenseFinder.findByShortName(shortName);
}
+ @Override
public List<License> getAll() {
return licenseFinder.getAll();
}
+ @Override
public List<License> getCC() {
return licenseFinder.getCC();
}
+ @Override
public License getDefLicense() {
final String licenseDefId = properties.getDefaultLicense();
return licenseFinder.findByShortName(licenseDefId);
}
+ @Override
public List<License> getNotCC() {
return licenseFinder.getNotCC();
}
@@ -71,8 +77,9 @@
return super.persist(license);
}
+ @Override
@Inject
- public void setLicenseFinder(final License licenseFinder) {
+ public void setLicenseFinder(final LicenseFinder licenseFinder) {
this.licenseFinder = licenseFinder;
}
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/RateManagerDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/RateManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/RateManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -27,6 +27,7 @@
import cc.kune.domain.Content;
import cc.kune.domain.Rate;
import cc.kune.domain.User;
+import cc.kune.domain.finders.RateFinder;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -35,26 +36,29 @@
@Singleton
public class RateManagerDefault extends DefaultManager<Rate, Long> implements RateManager {
- private final Rate finder;
+ private final RateFinder finder;
@Inject
- public RateManagerDefault(final Provider<EntityManager> provider, final Rate finder) {
+ public RateManagerDefault(final Provider<EntityManager> provider, final RateFinder finder) {
super(provider, Rate.class);
this.finder = finder;
}
+ @Override
public Rate find(final User user, final Content content) {
try {
return finder.find(user, content);
- } catch (NoResultException e) {
+ } catch (final NoResultException e) {
return null;
}
}
+ @Override
public Double getRateAvg(final Content content) {
return finder.calculateRate(content);
}
+ @Override
public Long getRateByUsers(final Content content) {
return finder.calculateRateNumberOfUsers(content);
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -44,6 +44,7 @@
import cc.kune.domain.Group;
import cc.kune.domain.SocialNetwork;
import cc.kune.domain.User;
+import cc.kune.domain.finders.GroupFinder;
import cc.kune.domain.utils.ParticipationData;
import cc.kune.domain.utils.SocialNetworkData;
import cc.kune.domain.utils.UserBuddiesData;
@@ -55,12 +56,12 @@
@Singleton
public class SocialNetworkManagerDefault extends DefaultManager<SocialNetwork, Long> implements SocialNetworkManager {
- private final Group finder;
private final AccessRightsService accessRightsService;
+ private final GroupFinder finder;
private final UserManager userManager;
@Inject
- public SocialNetworkManagerDefault(final Provider<EntityManager> provider, final Group finder,
+ public SocialNetworkManagerDefault(final Provider<EntityManager> provider, final GroupFinder finder,
final AccessRightsService accessRightsService, final UserManager userManager) {
super(provider, SocialNetwork.class);
this.finder = finder;
@@ -68,6 +69,7 @@
this.userManager = userManager;
}
+ @Override
public void acceptJoinGroup(final User userLogged, final Group group, final Group inGroup) throws DefaultException,
AccessViolationException {
final SocialNetwork sn = inGroup.getSocialNetwork();
@@ -81,6 +83,12 @@
}
}
+ void addAdmin(final User newAdmin, final Group group) {
+ final SocialNetwork sn = group.getSocialNetwork();
+ sn.addAdmin(newAdmin.getUserGroup());
+ }
+
+ @Override
public void addGroupToAdmins(final User userLogged, final Group group, final Group inGroup) throws DefaultException {
checkGroupAddingToSelf(group, inGroup);
final SocialNetwork sn = inGroup.getSocialNetwork();
@@ -92,6 +100,7 @@
}
}
+ @Override
public void addGroupToCollabs(final User userLogged, final Group group, final Group inGroup)
throws DefaultException {
checkGroupAddingToSelf(group, inGroup);
@@ -104,6 +113,7 @@
}
}
+ @Override
public void addGroupToViewers(final User userLogged, final Group group, final Group inGroup)
throws DefaultException {
checkGroupAddingToSelf(group, inGroup);
@@ -116,6 +126,25 @@
}
}
+ private void checkGroupAddingToSelf(final Group group, final Group inGroup) throws DefaultException {
+ if (group.equals(inGroup)) {
+ throwGroupMemberException(group);
+ }
+ }
+
+ private void checkGroupIsNotAlreadyAMember(final Group group, final SocialNetwork sn) throws DefaultException {
+ if (sn.isAdmin(group) || sn.isCollab(group) || sn.isViewer(group) && notEveryOneCanView(sn)) {
+ throwGroupMemberException(group);
+ }
+ }
+
+ private void checkUserLoggedIsAdmin(final User userLogged, final SocialNetwork sn) throws AccessViolationException {
+ if (!accessRightsService.get(userLogged, sn.getAccessLists()).isAdministrable()) {
+ throw new AccessViolationException();
+ }
+ }
+
+ @Override
public void deleteMember(final User userLogged, final Group group, final Group inGroup) throws DefaultException,
AccessViolationException {
final SocialNetwork sn = inGroup.getSocialNetwork();
@@ -124,6 +153,7 @@
unJoinGroup(group, inGroup);
}
+ @Override
public void denyJoinGroup(final User userLogged, final Group group, final Group inGroup) throws DefaultException {
final SocialNetwork sn = inGroup.getSocialNetwork();
checkUserLoggedIsAdmin(userLogged, sn);
@@ -135,6 +165,7 @@
}
}
+ @Override
public ParticipationData findParticipation(final User userLogged, final Group group)
throws AccessViolationException {
get(userLogged, group); // check access
@@ -149,6 +180,7 @@
return new ParticipationData(adminInGroups, collabInGroups);
}
+ @Override
public SocialNetwork get(final User petitioner, final Group group) throws AccessViolationException {
final SocialNetwork sn = group.getSocialNetwork();
if (!sn.getAccessLists().getViewers().includes(petitioner.getUserGroup())) {
@@ -157,18 +189,19 @@
return sn;
}
+ @Override
public SocialNetworkData getSocialNetworkData(final User userLogged, final Group group) {
- SocialNetworkData socialNetData = new SocialNetworkData();
+ final SocialNetworkData socialNetData = new SocialNetworkData();
socialNetData.setGroupMembers(get(userLogged, group));
- AccessRights groupRights = accessRightsService.get(userLogged, group.getAccessLists());
+ final AccessRights groupRights = accessRightsService.get(userLogged, group.getAccessLists());
socialNetData.setGroupRights(groupRights);
socialNetData.setUserParticipation(findParticipation(userLogged, group));
socialNetData.setGroupMembers(get(userLogged, group));
if (group.isPersonal()) {
- UserBuddiesData userBuddies = userManager.getUserBuddies(group.getShortName());
- User userGroup = userManager.findByShortname(group.getShortName());
+ final UserBuddiesData userBuddies = userManager.getUserBuddies(group.getShortName());
+ final User userGroup = userManager.findByShortname(group.getShortName());
socialNetData.setUserBuddies(userBuddies);
- UserBuddiesVisibility buddiesVisibility = userGroup.getBuddiesVisibility();
+ final UserBuddiesVisibility buddiesVisibility = userGroup.getBuddiesVisibility();
socialNetData.setIsBuddiesVisible(true);
switch (buddiesVisibility) {
case anyone:
@@ -180,8 +213,8 @@
}
break;
case yourbuddies:
- boolean notMe = !userLogged.equals(userGroup);
- boolean notABuddie = !userBuddies.contains(userLogged.getShortName());
+ final boolean notMe = !userLogged.equals(userGroup);
+ final boolean notABuddie = !userBuddies.contains(userLogged.getShortName());
if (notMe && notABuddie) {
socialNetData.setIsBuddiesVisible(false);
socialNetData.setUserBuddies(UserBuddiesData.EMPTY);
@@ -190,7 +223,7 @@
}
socialNetData.setUserBuddiesVisibility(buddiesVisibility);
} else {
- SocialNetworkVisibility visibility = group.getSocialNetwork().getVisibility();
+ final SocialNetworkVisibility visibility = group.getSocialNetwork().getVisibility();
socialNetData.setIsMembersVisible(true);
switch (visibility) {
case anyone:
@@ -214,6 +247,23 @@
return socialNetData;
}
+ private boolean isClosed(final AdmissionType admissionType) {
+ return admissionType.equals(AdmissionType.Closed);
+ }
+
+ private boolean isModerated(final AdmissionType admissionType) {
+ return admissionType.equals(AdmissionType.Moderated);
+ }
+
+ private boolean isOpen(final AdmissionType admissionType) {
+ return admissionType.equals(AdmissionType.Open);
+ }
+
+ private boolean notEveryOneCanView(final SocialNetwork sn) {
+ return !sn.getAccessLists().getViewers().getMode().equals(GroupListMode.EVERYONE);
+ }
+
+ @Override
public SocialNetworkRequestResult requestToJoin(final User userLogged, final Group inGroup)
throws DefaultException, UserMustBeLoggedException {
final SocialNetwork sn = inGroup.getSocialNetwork();
@@ -246,6 +296,7 @@
}
}
+ @Override
public void setAdminAsCollab(final User userLogged, final Group group, final Group inGroup) throws DefaultException {
final SocialNetwork sn = inGroup.getSocialNetwork();
checkUserLoggedIsAdmin(userLogged, sn);
@@ -260,6 +311,7 @@
}
}
+ @Override
public void setCollabAsAdmin(final User userLogged, final Group group, final Group inGroup) throws DefaultException {
final SocialNetwork sn = inGroup.getSocialNetwork();
checkUserLoggedIsAdmin(userLogged, sn);
@@ -271,6 +323,15 @@
}
}
+ private void throwGroupMemberException(final Group group) throws DefaultException {
+ if (group.isPersonal()) {
+ throw new AlreadyUserMemberException();
+ } else {
+ throw new AlreadyGroupMemberException();
+ }
+ }
+
+ @Override
public void unJoinGroup(final Group groupToUnJoin, final Group inGroup) throws DefaultException {
final SocialNetwork sn = inGroup.getSocialNetwork();
@@ -291,51 +352,4 @@
}
}
- void addAdmin(final User newAdmin, final Group group) {
- final SocialNetwork sn = group.getSocialNetwork();
- sn.addAdmin(newAdmin.getUserGroup());
- }
-
- private void checkGroupAddingToSelf(final Group group, final Group inGroup) throws DefaultException {
- if (group.equals(inGroup)) {
- throwGroupMemberException(group);
- }
- }
-
- private void checkGroupIsNotAlreadyAMember(final Group group, final SocialNetwork sn) throws DefaultException {
- if (sn.isAdmin(group) || sn.isCollab(group) || sn.isViewer(group) && notEveryOneCanView(sn)) {
- throwGroupMemberException(group);
- }
- }
-
- private void checkUserLoggedIsAdmin(final User userLogged, final SocialNetwork sn) throws AccessViolationException {
- if (!accessRightsService.get(userLogged, sn.getAccessLists()).isAdministrable()) {
- throw new AccessViolationException();
- }
- }
-
- private boolean isClosed(final AdmissionType admissionType) {
- return admissionType.equals(AdmissionType.Closed);
- }
-
- private boolean isModerated(final AdmissionType admissionType) {
- return admissionType.equals(AdmissionType.Moderated);
- }
-
- private boolean isOpen(final AdmissionType admissionType) {
- return admissionType.equals(AdmissionType.Open);
- }
-
- private boolean notEveryOneCanView(final SocialNetwork sn) {
- return !sn.getAccessLists().getViewers().getMode().equals(GroupListMode.EVERYONE);
- }
-
- private void throwGroupMemberException(final Group group) throws DefaultException {
- if (group.isPersonal()) {
- throw new AlreadyUserMemberException();
- } else {
- throw new AlreadyGroupMemberException();
- }
- }
-
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -24,6 +24,7 @@
import org.ourproject.kune.platf.server.manager.TagManager;
import cc.kune.domain.Tag;
+import cc.kune.domain.finders.TagFinder;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -32,14 +33,15 @@
@Singleton
public class TagManagerDefault extends DefaultManager<Tag, Long> implements TagManager {
- private final Tag tagFinder;
+ private final TagFinder tagFinder;
@Inject
- public TagManagerDefault(final Provider<EntityManager> provider, final Tag tagFinder) {
+ public TagManagerDefault(final Provider<EntityManager> provider, final TagFinder tagFinder) {
super(provider, Tag.class);
this.tagFinder = tagFinder;
}
+ @Override
public Tag findByTagName(final String tag) {
return tagFinder.findByTagName(tag);
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -46,6 +46,7 @@
import cc.kune.domain.I18nCountry;
import cc.kune.domain.I18nLanguage;
import cc.kune.domain.User;
+import cc.kune.domain.finders.UserFinder;
import cc.kune.domain.utils.UserBuddiesData;
import cc.kune.wave.server.CustomUserRegistrationServlet;
@@ -56,7 +57,7 @@
@Singleton
public class UserManagerDefault extends DefaultManager<User, Long> implements UserManager {
private final I18nCountryManager countryManager;
- private final User finder;
+ private final UserFinder finder;
private final I18nTranslationService i18n;
private final I18nLanguageManager languageManager;
private final ChatProperties properties;
@@ -65,7 +66,7 @@
private final XmppManager xmppManager;
@Inject
- public UserManagerDefault(final Provider<EntityManager> provider, final User finder,
+ public UserManagerDefault(final Provider<EntityManager> provider, final UserFinder finder,
final I18nLanguageManager languageManager, final I18nCountryManager countryManager,
final XmppManager xmppManager, final ChatProperties properties, final I18nTranslationService i18n,
final CustomUserRegistrationServlet waveUserRegister) {
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -72,8 +72,7 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
-import com.wideplay.warp.persist.TransactionType;
-import com.wideplay.warp.persist.Transactional;
+import com.google.inject.persist.Transactional;
@Singleton
public class ContentRPC implements ContentService, RPC {
@@ -116,7 +115,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public void addAuthor(final String userHash, final StateToken token, final String authorShortName)
throws DefaultException {
final Long contentId = ContentUtils.parseId(token.getDocument());
@@ -127,7 +126,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Viewer)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public CommentDTO addComment(final String userHash, final StateToken token, final Long parentCommentId,
final String commentText) throws DefaultException {
final User author = getCurrentUser();
@@ -139,7 +138,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Viewer)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public CommentDTO addComment(final String userHash, final StateToken token, final String commentText)
throws DefaultException {
final User author = getCurrentUser();
@@ -151,7 +150,7 @@
@Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public StateContentDTO addContent(final String userHash, final StateToken parentToken, final String title,
final String typeId) throws DefaultException {
final String body = "";
@@ -161,7 +160,7 @@
@Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public StateContainerDTO addFolder(final String userHash, final StateToken parentToken, final String title,
final String contentTypeId) throws DefaultException {
final User user = getCurrentUser();
@@ -173,7 +172,7 @@
@Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public StateContainerDTO addRoom(final String userHash, final StateToken parentToken, final String roomName)
throws DefaultException {
// final String groupShortName = parentToken.getGroup();
@@ -205,7 +204,7 @@
@Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public StateContentDTO addWave(final String userHash, final StateToken parentToken, final String typeId,
final String waveId) throws DefaultException {
return createContent(parentToken, "Wave embeded test", typeId, waveId);
@@ -232,7 +231,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public StateContentDTO delContent(final String userHash, final StateToken token) throws DefaultException {
final Long contentId = ContentUtils.parseId(token.getDocument());
return getState(getCurrentUser(), contentManager.setStatus(contentId, ContentStatus.inTheDustbin));
@@ -240,7 +239,7 @@
@Override
@Authenticated(mandatory = false)
- @Transactional(type = TransactionType.READ_ONLY)
+ @Transactional
public StateAbstractDTO getContent(final String userHash, final StateToken token) throws DefaultException {
Group defaultGroup;
final User user = getCurrentUser();
@@ -302,7 +301,7 @@
@Override
@Authenticated(mandatory = false)
@Authorizated(accessRolRequired = AccessRol.Viewer)
- @Transactional(type = TransactionType.READ_ONLY)
+ @Transactional
public TagCloudResult getSummaryTags(final String userHash, final StateToken groupToken) {
final Group group = groupManager.findByShortName(groupToken.getGroup());
return getSummaryTags(group);
@@ -350,7 +349,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Viewer)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public CommentDTO markCommentAsAbuse(final String userHash, final StateToken token, final Long commentId)
throws DefaultException {
final User informer = getCurrentUser();
@@ -362,7 +361,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Viewer)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public RateResult rateContent(final String userHash, final StateToken token, final Double value)
throws DefaultException {
final User rater = getCurrentUser();
@@ -378,7 +377,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public void removeAuthor(final String userHash, final StateToken token, final String authorShortName)
throws DefaultException {
final Long contentId = ContentUtils.parseId(token.getDocument());
@@ -389,7 +388,7 @@
@Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public StateAbstractDTO renameContainer(final String userHash, final StateToken token, final String newName)
throws DefaultException {
renameFolder(token.getGroup(), ContentUtils.parseId(token.getFolder()), newName);
@@ -399,7 +398,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public StateAbstractDTO renameContent(final String userHash, final StateToken token, final String newName)
throws DefaultException {
final User user = getCurrentUser();
@@ -430,7 +429,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public void save(final String userHash, final StateToken token, final String textContent) throws DefaultException {
final Long contentId = ContentUtils.parseId(token.getDocument());
@@ -442,7 +441,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public ContentSimpleDTO setAsDefaultContent(final String userHash, final StateToken token) {
final Content content = contentManager.find(ContentUtils.parseId(token.getDocument()));
groupManager.setDefaultContent(token.getGroup(), content);
@@ -452,7 +451,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public I18nLanguageDTO setLanguage(final String userHash, final StateToken token, final String languageCode)
throws DefaultException {
final Long contentId = ContentUtils.parseId(token.getDocument());
@@ -463,7 +462,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public void setPublishedOn(final String userHash, final StateToken token, final Date publishedOn)
throws DefaultException {
final Long contentId = ContentUtils.parseId(token.getDocument());
@@ -474,7 +473,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Editor)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public StateAbstractDTO setStatus(final String userHash, final StateToken token, final ContentStatus status) {
if (status.equals(ContentStatus.publishedOnline) || status.equals(ContentStatus.rejected)
|| status.equals(ContentStatus.inTheDustbin)) {
@@ -488,7 +487,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public StateAbstractDTO setStatusAsAdmin(final String userHash, final StateToken token, final ContentStatus status) {
final Content content = contentManager.setStatus(ContentUtils.parseId(token.getDocument()),
ContentStatus.valueOf(status.toString()));
@@ -498,7 +497,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public TagCloudResult setTags(final String userHash, final StateToken token, final String tags)
throws DefaultException {
final Long contentId = ContentUtils.parseId(token.getDocument());
@@ -511,7 +510,7 @@
@Override
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Viewer)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public CommentDTO voteComment(final String userHash, final StateToken token, final Long commentId,
final boolean votePositive) throws DefaultException {
final User voter = getCurrentUser();
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -43,15 +43,14 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
-import com.wideplay.warp.persist.TransactionType;
-import com.wideplay.warp.persist.Transactional;
+import com.google.inject.persist.Transactional;
@Singleton
public class GroupRPC implements RPC, GroupService {
+ private final ContentManager contentManager;
+ private final GroupManager groupManager;
private final Mapper mapper;
- private final GroupManager groupManager;
private final Provider<UserSession> userSessionProvider;
- private final ContentManager contentManager;
@Inject
public GroupRPC(final Provider<UserSession> userSessionProvider, final GroupManager groupManager,
@@ -62,18 +61,20 @@
this.mapper = mapper;
}
+ @Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public void changeDefLicense(final String userHash, final StateToken groupToken, final LicenseDTO license) {
final User user = getUserLogged();
final Group group = groupManager.findByShortName(groupToken.getGroup());
groupManager.changeDefLicense(user, group, license.getShortName());
}
+ @Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public void changeGroupWsTheme(final String userHash, final StateToken groupToken, final String theme)
throws DefaultException {
final User user = getUserLogged();
@@ -81,17 +82,19 @@
groupManager.changeWsTheme(user, group, theme);
}
+ @Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public GroupDTO clearGroupBackImage(final String userHash, final StateToken token) {
final Group group = groupManager.findByShortName(token.getGroup());
groupManager.clearGroupBackImage(group);
return mapper.map(group, GroupDTO.class);
}
+ @Override
@Authenticated
- @Transactional(type = TransactionType.READ_WRITE, rollbackOn = DefaultException.class)
+ @Transactional(rollbackOn = DefaultException.class)
public StateToken createNewGroup(final String userHash, final GroupDTO groupDTO, final String publicDesc,
final String tags, final String[] enabledTools) throws DefaultException {
final User user = getUserLogged();
@@ -103,6 +106,7 @@
return newGroup.getDefaultContent().getStateToken();
};
+ @Override
@Authenticated(mandatory = false)
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Viewer)
public GroupDTO getGroup(final String userHash, final StateToken groupToken) {
@@ -110,9 +114,20 @@
return mapper.map(group, GroupDTO.class);
}
+ private User getUserLogged() {
+ final UserSession userSession = getUserSession();
+ final User user = userSession.getUser();
+ return user;
+ }
+
+ private UserSession getUserSession() {
+ return userSessionProvider.get();
+ }
+
+ @Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public GroupDTO setGroupBackImage(final String userHash, final StateToken token) {
final Group group = groupManager.findByShortName(token.getGroup());
final Content content = contentManager.find(ContentUtils.parseId(token.getDocument()));
@@ -120,40 +135,33 @@
return mapper.map(group, GroupDTO.class);
}
+ @Override
@Authenticated(mandatory = true)
@Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public void setGroupNewMembersJoiningPolicy(final String userHash, final StateToken token,
final AdmissionType admissionPolicy) {
final Group group = groupManager.findByShortName(token.getGroup());
group.setAdmissionType(AdmissionType.valueOf(admissionPolicy.toString()));
}
+ @Override
@Authenticated(mandatory = true)
@Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public void setSocialNetworkVisibility(final String userHash, final StateToken token,
final SocialNetworkVisibility visibility) {
final Group group = groupManager.findByShortName(token.getGroup());
group.getSocialNetwork().setVisibility(SocialNetworkVisibility.valueOf(visibility.toString()));
}
+ @Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public void setToolEnabled(final String userHash, final StateToken groupToken, final String toolName,
final boolean enabled) {
groupManager.setToolEnabled(getUserLogged(), groupToken.getGroup(), toolName, enabled);
}
- private User getUserLogged() {
- final UserSession userSession = getUserSession();
- final User user = userSession.getUser();
- return user;
- }
-
- private UserSession getUserSession() {
- return userSessionProvider.get();
- }
-
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/I18nRPC.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/I18nRPC.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/I18nRPC.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -40,16 +40,15 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
-import com.wideplay.warp.persist.TransactionType;
-import com.wideplay.warp.persist.Transactional;
+import com.google.inject.persist.Transactional;
@Singleton
public class I18nRPC implements RPC, I18nService {
private final I18nTranslationManager i18nTranslationManager;
- private final Provider<UserSession> userSessionProvider;
- private final Provider<HttpServletRequest> requestProvider;
private final I18nLanguageManager languageManager;
private final Mapper mapper;
+ private final Provider<HttpServletRequest> requestProvider;
+ private final Provider<UserSession> userSessionProvider;
@Inject
public I18nRPC(final Provider<HttpServletRequest> requestProvider, final Provider<UserSession> userSessionProvider,
@@ -62,7 +61,8 @@
this.mapper = mapper;
}
- @Transactional(type = TransactionType.READ_ONLY)
+ @Override
+ @Transactional
public I18nLanguageDTO getInitialLanguage(final String localeParam) {
String initLanguage;
I18nLanguage lang;
@@ -96,12 +96,14 @@
return mapper.map(lang, I18nLanguageDTO.class);
}
- @Transactional(type = TransactionType.READ_ONLY)
+ @Override
+ @Transactional
public HashMap<String, String> getLexicon(final String language) {
return i18nTranslationManager.getLexicon(language);
}
- @Transactional(type = TransactionType.READ_WRITE)
+ @Override
+ @Transactional
public String getTranslation(final String userHash, final String language, final String text) {
String translation = null;
try {
@@ -111,13 +113,6 @@
return translation;
}
- @Authenticated
- @Transactional(type = TransactionType.READ_WRITE)
- public String setTranslation(final String userHash, final String id, final String translation)
- throws DefaultException {
- return i18nTranslationManager.setTranslation(id, translation);
- }
-
@Authenticated(mandatory = false)
private String getTranslationWrapper(final String language, final String text) {
return i18nTranslationManager.getTranslation(language, text);
@@ -127,4 +122,12 @@
return userSessionProvider.get();
}
+ @Override
+ @Authenticated
+ @Transactional
+ public String setTranslation(final String userHash, final String id, final String translation)
+ throws DefaultException {
+ return i18nTranslationManager.setTranslation(id, translation);
+ }
+
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SiteRPC.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SiteRPC.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SiteRPC.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -41,22 +41,21 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
-import com.wideplay.warp.persist.TransactionType;
-import com.wideplay.warp.persist.Transactional;
+import com.google.inject.persist.Transactional;
@Singleton
public class SiteRPC implements RPC, SiteService {
- private final Mapper mapper;
- private final Provider<UserSession> userSessionProvider;
- private final LicenseManager licenseManager;
- private final UserManager userManager;
private final ChatProperties chatProperties;
- private final UserInfoService userInfoService;
+ private final I18nCountryManager countryManager;
+ private final ExtMediaDescripManager extMediaDescManager;
private final KuneProperties kuneProperties;
private final I18nLanguageManager languageManager;
- private final I18nCountryManager countryManager;
+ private final LicenseManager licenseManager;
+ private final Mapper mapper;
private final ServerToolRegistry serverToolRegistry;
- private final ExtMediaDescripManager extMediaDescManager;
+ private final UserInfoService userInfoService;
+ private final UserManager userManager;
+ private final Provider<UserSession> userSessionProvider;
// TODO: refactor: too many parameters! refactor to Facade Pattern
@Inject
@@ -78,7 +77,8 @@
this.extMediaDescManager = extMediaDescManager;
}
- @Transactional(type = TransactionType.READ_ONLY)
+ @Override
+ @Transactional
public InitDataDTO getInitData(final String userHash) throws DefaultException {
final InitData data = new InitData();
final UserSession userSession = getUserSession();
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SocialNetworkRPC.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SocialNetworkRPC.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/SocialNetworkRPC.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -39,16 +39,15 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
-import com.wideplay.warp.persist.TransactionType;
-import com.wideplay.warp.persist.Transactional;
+import com.google.inject.persist.Transactional;
@Singleton
public class SocialNetworkRPC implements SocialNetworkService, RPC {
- private final Provider<UserSession> userSessionProvider;
private final GroupManager groupManager;
+ private final Mapper mapper;
private final SocialNetworkManager socialNetworkManager;
- private final Mapper mapper;
+ private final Provider<UserSession> userSessionProvider;
@Inject
public SocialNetworkRPC(final Provider<UserSession> userSessionProvider, final GroupManager groupManager,
@@ -59,9 +58,10 @@
this.mapper = mapper;
}
+ @Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public SocialNetworkDataDTO acceptJoinGroup(final String hash, final StateToken groupToken,
final String groupToAcceptShortName) throws DefaultException {
final UserSession userSession = getUserSession();
@@ -72,9 +72,10 @@
return generateResponse(userLogged, group);
}
+ @Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public SocialNetworkDataDTO addAdminMember(final String hash, final StateToken groupToken,
final String groupToAddShortName) throws DefaultException {
final UserSession userSession = getUserSession();
@@ -85,9 +86,10 @@
return generateResponse(userLogged, group);
}
+ @Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public SocialNetworkDataDTO addCollabMember(final String hash, final StateToken groupToken,
final String groupToAddShortName) throws DefaultException {
final UserSession userSession = getUserSession();
@@ -98,9 +100,10 @@
return generateResponse(userLogged, group);
}
+ @Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public SocialNetworkDataDTO addViewerMember(final String hash, final StateToken groupToken,
final String groupToAddShortName) throws DefaultException {
final UserSession userSession = getUserSession();
@@ -111,9 +114,10 @@
return generateResponse(userLogged, group);
}
+ @Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public SocialNetworkDataDTO deleteMember(final String hash, final StateToken groupToken,
final String groupToDeleleShortName) throws DefaultException {
final UserSession userSession = getUserSession();
@@ -124,9 +128,10 @@
return generateResponse(userLogged, group);
}
+ @Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public SocialNetworkDataDTO denyJoinGroup(final String hash, final StateToken groupToken,
final String groupToDenyShortName) throws DefaultException {
final UserSession userSession = getUserSession();
@@ -137,10 +142,15 @@
return generateResponse(userLogged, group);
}
+ private SocialNetworkDataDTO generateResponse(final User userLogged, final Group group) {
+ return mapper.map(socialNetworkManager.getSocialNetworkData(userLogged, group), SocialNetworkDataDTO.class);
+ }
+
+ @Override
@Authenticated(mandatory = false)
// At least you can access as Viewer to the Group
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Viewer)
- @Transactional(type = TransactionType.READ_ONLY)
+ @Transactional
public SocialNetworkDataDTO getSocialNetwork(final String hash, final StateToken groupToken)
throws DefaultException {
final UserSession userSession = getUserSession();
@@ -149,8 +159,13 @@
return generateResponse(user, group);
}
+ private UserSession getUserSession() {
+ return userSessionProvider.get();
+ }
+
+ @Override
@Authenticated
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public SocialNetworkRequestResult requestJoinGroup(final String hash, final StateToken groupToken)
throws DefaultException {
final UserSession userSession = getUserSession();
@@ -159,9 +174,10 @@
return socialNetworkManager.requestToJoin(user, group);
}
+ @Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public SocialNetworkDataDTO setAdminAsCollab(final String hash, final StateToken groupToken,
final String groupToSetCollabShortName) throws DefaultException {
final UserSession userSession = getUserSession();
@@ -172,9 +188,10 @@
return generateResponse(userLogged, group);
}
+ @Override
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public SocialNetworkDataDTO setCollabAsAdmin(final String hash, final StateToken groupToken,
final String groupToSetAdminShortName) throws DefaultException {
final UserSession userSession = getUserSession();
@@ -185,8 +202,9 @@
return generateResponse(userLogged, group);
}
+ @Override
@Authenticated
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public SocialNetworkDataDTO unJoinGroup(final String hash, final StateToken groupToken) throws DefaultException {
final UserSession userSession = getUserSession();
final User userLogged = userSession.getUser();
@@ -195,12 +213,4 @@
return generateResponse(userLogged, group);
}
- private SocialNetworkDataDTO generateResponse(final User userLogged, final Group group) {
- return mapper.map(socialNetworkManager.getSocialNetworkData(userLogged, group), SocialNetworkDataDTO.class);
- }
-
- private UserSession getUserSession() {
- return userSessionProvider.get();
- }
-
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/UserRPC.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/UserRPC.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/platf/server/rpc/UserRPC.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -48,18 +48,17 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
-import com.wideplay.warp.persist.TransactionType;
-import com.wideplay.warp.persist.Transactional;
+import com.google.inject.persist.Transactional;
@Singleton
public class UserRPC implements RPC, UserService {
- private final UserManager userManager;
- private final Provider<UserSession> userSessionProvider;
private final GroupManager groupManager;
private final Mapper mapper;
+ private final Provider<SessionService> sessionServiceProvider;
private final UserInfoService userInfoService;
- private final Provider<SessionService> sessionServiceProvider;
+ private final UserManager userManager;
+ private final Provider<UserSession> userSessionProvider;
@Inject
public UserRPC(final Provider<SessionService> sessionServiceProvider,
@@ -74,7 +73,8 @@
this.mapper = mapper;
}
- @Transactional(type = TransactionType.READ_WRITE, rollbackOn = DefaultException.class)
+ @Override
+ @Transactional(rollbackOn = DefaultException.class)
public UserInfoDTO createUser(final UserDTO userDTO, final boolean wantPersonalHomepage) throws DefaultException {
final User user = userManager.createUser(userDTO.getShortName(), userDTO.getName(), userDTO.getEmail(),
userDTO.getPassword(), userDTO.getLanguage().getCode(), userDTO.getCountry().getCode(),
@@ -83,8 +83,9 @@
return login(userDTO.getShortName(), userDTO.getPassword());
}
+ @Override
@Authenticated
- @Transactional(type = TransactionType.READ_ONLY)
+ @Transactional
@Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
public String getUserAvatarBaser64(final String userHash, final StateToken userToken) throws DefaultException {
final UserSession userSession = getUserSession();
@@ -100,7 +101,17 @@
}
}
- @Transactional(type = TransactionType.READ_ONLY)
+ private UserSession getUserSession() {
+ return userSessionProvider.get();
+ }
+
+ private UserInfoDTO loadUserInfo(final User user) throws DefaultException {
+ final UserInfo userInfo = userInfoService.buildInfo(user, getUserSession().getHash());
+ return mapper.map(userInfo, UserInfoDTO.class);
+ }
+
+ @Override
+ @Transactional
public UserInfoDTO login(final String nickOrEmail, final String passwd) throws DefaultException {
final SessionService sessionService = sessionServiceProvider.get();
sessionService.getNewSession();
@@ -108,31 +119,45 @@
return loginUser(user);
}
+ private UserInfoDTO loginUser(final User user) throws DefaultException {
+ if (user != null) {
+ // Maybe use terracotta.org for http session clustering
+ getUserSession().login(user, UUID.randomUUID().toString());
+ return loadUserInfo(user);
+ } else {
+ throw new UserAuthException();
+ }
+ }
+
+ @Override
@Authenticated
- @Transactional(type = TransactionType.READ_ONLY)
+ @Transactional
public void logout(final String userHash) throws DefaultException {
getUserSession().logout();
final SessionService sessionService = sessionServiceProvider.get();
sessionService.getNewSession();
- }
+ };
+ @Override
@Authenticated(mandatory = false)
- @Transactional(type = TransactionType.READ_ONLY)
+ @Transactional
public void onlyCheckSession(final String userHash) throws DefaultException {
// Do nothing @Authenticated checks user session
}
+ @Override
@Authenticated
- @Transactional(type = TransactionType.READ_ONLY)
+ @Transactional
public UserInfoDTO reloadUserInfo(final String userHash) throws DefaultException {
final UserSession userSession = getUserSession();
final User user = userSession.getUser();
return loadUserInfo(user);
}
+ @Override
@Authenticated(mandatory = true)
@Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
- @Transactional(type = TransactionType.READ_WRITE)
+ @Transactional
public void setBuddiesVisibility(final String userHash, final StateToken groupToken,
final UserBuddiesVisibility visibility) {
final UserSession userSession = getUserSession();
@@ -141,25 +166,6 @@
throw new AccessViolationException();
}
user.setBuddiesVisibility(UserBuddiesVisibility.valueOf(visibility.toString()));
- };
-
- private UserSession getUserSession() {
- return userSessionProvider.get();
}
- private UserInfoDTO loadUserInfo(final User user) throws DefaultException {
- final UserInfo userInfo = userInfoService.buildInfo(user, getUserSession().getHash());
- return mapper.map(userInfo, UserInfoDTO.class);
- }
-
- private UserInfoDTO loginUser(final User user) throws DefaultException {
- if (user != null) {
- // Maybe use terracotta.org for http session clustering
- getUserSession().login(user, UUID.randomUUID().toString());
- return loadUserInfo(user);
- } else {
- throw new UserAuthException();
- }
- }
-
}
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/RackServletFilter.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/RackServletFilter.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/RackServletFilter.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -131,7 +131,6 @@
// final Injector waveChildInjector = waveStarter.runMain();
final Injector waveChildInjector = (Injector) filterConfig.getServletContext().getAttribute(
INJECTOR_PARENT_ATTRIBUTE);
- // final Injector waveChildInjector = Guice.createInjector();
final Injector kuneChildInjector = installInjector(filterConfig, rack, waveChildInjector);
startContainerListeners(rack.getListeners(), kuneChildInjector);
docks = rack.getDocks();
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/filters/rest/TransactionalServiceExecutor.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/filters/rest/TransactionalServiceExecutor.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/rack/filters/rest/TransactionalServiceExecutor.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -20,7 +20,7 @@
package org.ourproject.kune.rack.filters.rest;
import com.google.inject.Inject;
-import com.wideplay.warp.persist.Transactional;
+import com.google.inject.persist.Transactional;
public class TransactionalServiceExecutor {
private final RESTMethodFinder methodFinder;
Modified: branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -20,16 +20,16 @@
package org.ourproject.kune.workspace.client.hello;
import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.actions.OldAbstractAction;
import org.ourproject.kune.platf.client.actions.AbstractExtendedAction;
import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.OldAbstractAction;
import org.ourproject.kune.platf.client.actions.Shortcut;
import org.ourproject.kune.platf.client.actions.ui.MenuCheckItemDescriptor;
import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor;
-import org.ourproject.kune.platf.client.actions.ui.OldMenuItemDescriptor;
import org.ourproject.kune.platf.client.actions.ui.MenuRadioItemDescriptor;
import org.ourproject.kune.platf.client.actions.ui.MenuSeparatorDescriptor;
+import org.ourproject.kune.platf.client.actions.ui.OldMenuItemDescriptor;
import org.ourproject.kune.platf.client.actions.ui.PushButtonDescriptor;
import org.ourproject.kune.platf.client.services.AbstractExtendedModule;
import org.ourproject.kune.platf.client.shortcuts.GlobalShortcutRegister;
Modified: branches/wave-jetty-embed-guice/src/main/resources/META-INF/persistence.xml
===================================================================
--- branches/wave-jetty-embed-guice/src/main/resources/META-INF/persistence.xml 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/resources/META-INF/persistence.xml 2011-02-13 11:00:54 UTC (rev 1251)
@@ -7,6 +7,30 @@
<persistence-unit name="development"
transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
+ <!-- JPA entities must be registered here -->
+ <!-- src/main/java/cc/kune/domain$ ls -1 *.java | sed 's/.java/<\/class>/g' | sed 's/^/<class>cc.kune.domain./g' -->
+ <class>cc.kune.domain.AccessLists</class>
+ <class>cc.kune.domain.BasicMimeType</class>
+ <class>cc.kune.domain.Comment</class>
+ <class>cc.kune.domain.Container</class>
+ <class>cc.kune.domain.ContainerTranslation</class>
+ <class>cc.kune.domain.Content</class>
+ <class>cc.kune.domain.ContentTranslation</class>
+ <class>cc.kune.domain.CustomProperties</class>
+ <class>cc.kune.domain.ExtMediaDescrip</class>
+ <class>cc.kune.domain.Group</class>
+ <class>cc.kune.domain.GroupList</class>
+ <class>cc.kune.domain.I18nCountry</class>
+ <class>cc.kune.domain.I18nLanguage</class>
+ <class>cc.kune.domain.I18nTranslation</class>
+ <class>cc.kune.domain.License</class>
+ <class>cc.kune.domain.Rate</class>
+ <class>cc.kune.domain.Revision</class>
+ <class>cc.kune.domain.SocialNetwork</class>
+ <class>cc.kune.domain.Tag</class>
+ <class>cc.kune.domain.TagUserContent</class>
+ <class>cc.kune.domain.ToolConfiguration</class>
+ <class>cc.kune.domain.User</class>
<properties>
<property name="hibernate.archive.autodetection" value="class, hbm" />
<property name="hibernate.show_sql" value="false" />
@@ -19,7 +43,7 @@
<property name="hibernate.connection.username" value="kune" />
<property name="hibernate.connection.password" value="db4kune" />
- <!-- http://stackoverflow.com/questions/221379/hibernate-hbm2ddl-auto-update-in-…
+ <!-- http://stackoverflow.com/questions/221379/hibernate-hbm2ddl-auto-update-in-…
(NO!, une liquibase, for instance) -->
<!-- http://stackoverflow.com/questions/438146/hibernate-question-hbm2ddl-auto-p… -->
<property name="hibernate.hbm2ddl.auto" value="update" />
@@ -41,6 +65,29 @@
<persistence-unit name="test_db" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
+ <!-- JPA entities must be registered here -->
+ <class>cc.kune.domain.AccessLists</class>
+ <class>cc.kune.domain.BasicMimeType</class>
+ <class>cc.kune.domain.Comment</class>
+ <class>cc.kune.domain.Container</class>
+ <class>cc.kune.domain.ContainerTranslation</class>
+ <class>cc.kune.domain.Content</class>
+ <class>cc.kune.domain.ContentTranslation</class>
+ <class>cc.kune.domain.CustomProperties</class>
+ <class>cc.kune.domain.ExtMediaDescrip</class>
+ <class>cc.kune.domain.Group</class>
+ <class>cc.kune.domain.GroupList</class>
+ <class>cc.kune.domain.I18nCountry</class>
+ <class>cc.kune.domain.I18nLanguage</class>
+ <class>cc.kune.domain.I18nTranslation</class>
+ <class>cc.kune.domain.License</class>
+ <class>cc.kune.domain.Rate</class>
+ <class>cc.kune.domain.Revision</class>
+ <class>cc.kune.domain.SocialNetwork</class>
+ <class>cc.kune.domain.Tag</class>
+ <class>cc.kune.domain.TagUserContent</class>
+ <class>cc.kune.domain.ToolConfiguration</class>
+ <class>cc.kune.domain.User</class>
<properties>
<property name="hibernate.archive.autodetection" value="class, hbm" />
<property name="hibernate.show_sql" value="false" />
@@ -71,6 +118,29 @@
<persistence-unit name="test" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
+ <!-- JPA entities must be registered here -->
+ <class>cc.kune.domain.AccessLists</class>
+ <class>cc.kune.domain.BasicMimeType</class>
+ <class>cc.kune.domain.Comment</class>
+ <class>cc.kune.domain.Container</class>
+ <class>cc.kune.domain.ContainerTranslation</class>
+ <class>cc.kune.domain.Content</class>
+ <class>cc.kune.domain.ContentTranslation</class>
+ <class>cc.kune.domain.CustomProperties</class>
+ <class>cc.kune.domain.ExtMediaDescrip</class>
+ <class>cc.kune.domain.Group</class>
+ <class>cc.kune.domain.GroupList</class>
+ <class>cc.kune.domain.I18nCountry</class>
+ <class>cc.kune.domain.I18nLanguage</class>
+ <class>cc.kune.domain.I18nTranslation</class>
+ <class>cc.kune.domain.License</class>
+ <class>cc.kune.domain.Rate</class>
+ <class>cc.kune.domain.Revision</class>
+ <class>cc.kune.domain.SocialNetwork</class>
+ <class>cc.kune.domain.Tag</class>
+ <class>cc.kune.domain.TagUserContent</class>
+ <class>cc.kune.domain.ToolConfiguration</class>
+ <class>cc.kune.domain.User</class>
<properties>
<property name="hibernate.show_sql" value="false" />
<property name="hibernate.format_sql" value="false" />
@@ -87,4 +157,6 @@
value="/var/lib/kune/lucene/kune_test/indexes" />
</properties>
</persistence-unit>
+
+
</persistence>
Modified: branches/wave-jetty-embed-guice/src/main/webapp/WEB-INF/web.xml
===================================================================
--- branches/wave-jetty-embed-guice/src/main/webapp/WEB-INF/web.xml 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/main/webapp/WEB-INF/web.xml 2011-02-13 11:00:54 UTC (rev 1251)
@@ -19,48 +19,48 @@
<welcome-file>ws.html</welcome-file>
</welcome-file-list>
<!-- Wave proxies ========================================================================================= -->
- <filter>
- <filter-name>JettyContinuationFilter</filter-name>
- <filter-class>org.eclipse.jetty.continuation.ContinuationFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>JettyContinuationFilter</filter-name>
- <servlet-name>Wiab</servlet-name>
- <!-- <url-pattern>/*</url-pattern> -->
- </filter-mapping>
- <servlet>
- <servlet-name>Wiab</servlet-name>
- <servlet-class>org.eclipse.jetty.servlets.ProxyServlet$Transparent</servlet-class>
- <init-param>
- <param-name>ProxyTo</param-name>
- <param-value>http://127.0.0.1:9898/</param-value>
- </init-param>
- <init-param>
- <param-name>Prefix</param-name>
- <param-value>/</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>Wiab</servlet-name>
- <url-pattern>/attachment/*</url-pattern>
- <url-pattern>/auth/signin</url-pattern>
- <url-pattern>/auth/signout</url-pattern>
- <url-pattern>/auth/register</url-pattern>
- <url-pattern>/fetch/*</url-pattern>
- <url-pattern>/robot/dataapi</url-pattern>
- <url-pattern>/robot/dataapi/oauth/*</url-pattern>
- <url-pattern>/robot/dataapi/rpc</url-pattern>
- <url-pattern>/robot/register/*</url-pattern>
- <url-pattern>/robot/rpc</url-pattern>
- <url-pattern>/gadgets</url-pattern>
- <url-pattern>/gadgets/*</url-pattern>
- <url-pattern>/socket.io/*</url-pattern>
- <url-pattern>/socket</url-pattern>
- <url-pattern>/static/*</url-pattern>
- <url-pattern>/webclient/*</url-pattern>
- <!-- <url-pattern>/*</url-pattern> -->
- <!-- <load-on-startup>1</load-on-startup> -->
- </servlet-mapping>
+<!-- <filter>-->
+<!-- <filter-name>JettyContinuationFilter</filter-name>-->
+<!-- <filter-class>org.eclipse.jetty.continuation.ContinuationFilter</filter-class>-->
+<!-- </filter>-->
+<!-- <filter-mapping>-->
+<!-- <filter-name>JettyContinuationFilter</filter-name>-->
+<!-- <servlet-name>Wiab</servlet-name>-->
+<!-- <url-pattern>/*</url-pattern> -->
+<!-- </filter-mapping>-->
+<!-- <servlet>-->
+<!-- <servlet-name>Wiab</servlet-name>-->
+<!-- <servlet-class>org.eclipse.jetty.servlets.ProxyServlet$Transparent</servlet-class>-->
+<!-- <init-param>-->
+<!-- <param-name>ProxyTo</param-name>-->
+<!-- <param-value>http://127.0.0.1:9898/</param-value>-->
+<!-- </init-param>-->
+<!-- <init-param>-->
+<!-- <param-name>Prefix</param-name>-->
+<!-- <param-value>/</param-value>-->
+<!-- </init-param>-->
+<!-- </servlet>-->
+<!-- <servlet-mapping>-->
+<!-- <servlet-name>Wiab</servlet-name>-->
+<!-- <url-pattern>/attachment/*</url-pattern>-->
+<!-- <url-pattern>/auth/signin</url-pattern>-->
+<!-- <url-pattern>/auth/signout</url-pattern>-->
+<!-- <url-pattern>/auth/register</url-pattern>-->
+<!-- <url-pattern>/fetch/*</url-pattern>-->
+<!-- <url-pattern>/robot/dataapi</url-pattern>-->
+<!-- <url-pattern>/robot/dataapi/oauth/*</url-pattern>-->
+<!-- <url-pattern>/robot/dataapi/rpc</url-pattern>-->
+<!-- <url-pattern>/robot/register/*</url-pattern>-->
+<!-- <url-pattern>/robot/rpc</url-pattern>-->
+<!-- <url-pattern>/gadgets</url-pattern>-->
+<!-- <url-pattern>/gadgets/*</url-pattern>-->
+<!-- <url-pattern>/socket.io/*</url-pattern>-->
+<!-- <url-pattern>/socket</url-pattern>-->
+<!-- <url-pattern>/static/*</url-pattern>-->
+<!-- <url-pattern>/webclient/*</url-pattern>-->
+<!-- <url-pattern>/*</url-pattern> -->
+<!-- <load-on-startup>1</load-on-startup> -->
+<!-- </servlet-mapping>-->
<!-- JRuby servlets ======================================================================================= -->
<!-- Note: this gives problems depending on the version of jetty or tomcat -->
<context-param>
@@ -139,20 +139,20 @@
</url-pattern>
</servlet-mapping>
<!-- Kune normal guice configuration ======================================================================== -->
- <filter>
- <filter-name>rack</filter-name>
- <filter-class>org.ourproject.kune.rack.RackServletFilter</filter-class>
- <init-param>
- <param-name>org.ourproject.kune.rack.RackModule</param-name>
- <param-value>
- org.ourproject.kune.app.server.KuneRackModule
- </param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>rack</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
+<!-- <filter>-->
+<!-- <filter-name>rack</filter-name>-->
+<!-- <filter-class>org.ourproject.kune.rack.RackServletFilter</filter-class>-->
+<!-- <init-param>-->
+<!-- <param-name>org.ourproject.kune.rack.RackModule</param-name>-->
+<!-- <param-value>-->
+<!-- org.ourproject.kune.app.server.KuneRackModule-->
+<!-- </param-value>-->
+<!-- </init-param>-->
+<!-- </filter>-->
+<!-- <filter-mapping>-->
+<!-- <filter-name>rack</filter-name>-->
+<!-- <url-pattern>/*</url-pattern>-->
+<!-- </filter-mapping>-->
<!-- Wave proxies with context /wiab/ ====================================================================== -->
<!-- <servlet> -->
<!-- <servlet-name>WiabSocketIO</servlet-name> -->
Added: branches/wave-jetty-embed-guice/src/test/java/cc/kune/domain/finders/TagUserContentFinderTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/cc/kune/domain/finders/TagUserContentFinderTest.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/test/java/cc/kune/domain/finders/TagUserContentFinderTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -0,0 +1,36 @@
+/*
+ *
+ * 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.domain.finders;
+
+import org.junit.Test;
+import org.ourproject.kune.platf.server.PersistencePreLoadedDataTest;
+
+import com.google.inject.Inject;
+
+public class TagUserContentFinderTest extends PersistencePreLoadedDataTest {
+
+ @Inject
+ TagUserContentFinder tag;
+
+ @Test
+ public void test() {
+ tag.getTagsGroups(groupManager.getSiteDefaultGroup());
+ }
+}
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -43,7 +43,7 @@
import cc.kune.domain.ToolConfiguration;
import com.google.inject.Inject;
-import com.wideplay.warp.persist.Transactional;
+import com.google.inject.persist.Transactional;
public class DatabaseInitializationTest {
@Inject
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -27,6 +27,7 @@
import org.ourproject.kune.platf.server.KunePersistenceService;
import org.ourproject.kune.platf.server.PlatformServerModule;
import org.ourproject.kune.platf.server.TestConstants;
+import org.ourproject.kune.platf.server.init.FinderRegistry;
import org.ourproject.kune.platf.server.properties.PropertiesFileName;
import org.ourproject.kune.wiki.server.WikiServerModule;
import org.waveprotocol.box.server.CoreSettings;
@@ -38,9 +39,9 @@
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Scopes;
+import com.google.inject.persist.jpa.JpaPersistModule;
import com.google.inject.servlet.RequestScoped;
import com.google.inject.servlet.SessionScoped;
-import com.wideplay.warp.jpa.JpaUnit;
public class IntegrationTestHelper {
@@ -49,19 +50,16 @@
try {
injector = Guice.createInjector(CustomSettingsBinder.bindSettings(TestConstants.WAVE_TEST_PROPFILE,
CoreSettings.class));
- final PersistenceModule persistenceModule = injector.getInstance(PersistenceModule.class);
+ final PersistenceModule wavePersistModule = injector.getInstance(PersistenceModule.class);
- final Injector childInjector = injector.createChildInjector(persistenceModule, new PlatformServerModule(),
- new DocumentServerModule(), new ChatServerModule(), new WikiServerModule(), new AbstractModule() {
+ final Injector childInjector = injector.createChildInjector(wavePersistModule,
+ FinderRegistry.init(new JpaPersistModule(TestConstants.PERSISTENCE_UNIT)),
+ new PlatformServerModule(), new DocumentServerModule(), new ChatServerModule(),
+ new WikiServerModule(), new AbstractModule() {
@Override
protected void configure() {
bindScope(SessionScoped.class, Scopes.SINGLETON);
bindScope(RequestScoped.class, Scopes.SINGLETON);
- // test: use
- // memory
- // test_db: use
- // mysql
- bindConstant().annotatedWith(JpaUnit.class).to(TestConstants.PERSISTENCE_UNIT);
bindConstant().annotatedWith(PropertiesFileName.class).to("kune.properties");
bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
}
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -19,7 +19,10 @@
*/
package org.ourproject.kune.platf.integration.content;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
import java.util.List;
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/kuneservice/GroupServiceTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/kuneservice/GroupServiceTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/kuneservice/GroupServiceTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -34,20 +34,21 @@
import cc.kune.core.shared.dto.GroupType;
import cc.kune.core.shared.dto.LicenseDTO;
import cc.kune.domain.Group;
+import cc.kune.domain.finders.GroupFinder;
import com.google.inject.Inject;
public class GroupServiceTest extends IntegrationTest {
@Inject
+ GroupFinder groupFinder;
+
+ @Inject
GroupService service;
@Inject
UserSession session;
- @Inject
- Group groupFinder;
-
@Test
public void createCommunity() throws Exception {
doLogin();
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -34,7 +34,7 @@
import cc.kune.domain.Group;
import com.google.inject.Inject;
-import com.wideplay.warp.persist.Transactional;
+import com.google.inject.persist.Transactional;
public class SocialNetworkMembersTest extends IntegrationTest {
@Inject
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -36,11 +36,13 @@
import cc.kune.domain.Container;
import cc.kune.domain.Content;
-import cc.kune.domain.Group;
import cc.kune.domain.I18nCountry;
import cc.kune.domain.I18nLanguage;
import cc.kune.domain.License;
import cc.kune.domain.User;
+import cc.kune.domain.finders.GroupFinder;
+import cc.kune.domain.finders.LicenseFinder;
+import cc.kune.domain.finders.UserFinder;
import com.google.inject.Inject;
@@ -62,21 +64,21 @@
protected I18nLanguage english;
protected I18nCountry gb;
@Inject
- protected Group groupFinder;
+ protected GroupFinder groupFinder;
@Inject
protected GroupManager groupManager;
@Inject
protected I18nLanguageManager languageManager;
@Inject
- protected License licenseFinder;
+ protected LicenseFinder licenseFinder;
@Inject
protected LicenseManager licenseManager;
// @Inject
// protected PropertyGroupManager propGroupManager;
protected User user;
@Inject
- protected User userFinder;
+ protected UserFinder userFinder;
@Inject
protected UserManager userManager;
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -27,8 +27,8 @@
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Provider;
-import com.wideplay.warp.persist.PersistenceService;
-import com.wideplay.warp.persist.Transactional;
+import com.google.inject.persist.PersistService;
+import com.google.inject.persist.Transactional;
public abstract class PersistenceTest {
private final String persistenceUnit;
@@ -40,7 +40,7 @@
// test: use memory
// test_db: use mysql
// Also configurable ein TestHelper
- this("test_db", "kune.properties");
+ this(TestConstants.PERSISTENCE_UNIT, "kune.properties");
}
public PersistenceTest(final String persistenceUnit, final String propetiesFileName) {
@@ -77,7 +77,7 @@
@Before
public void prepare() {
final Injector injector = TestHelper.create(new PlatformServerModule(), persistenceUnit, propetiesFileName);
- final PersistenceService persistence = injector.getInstance(PersistenceService.class);
+ final PersistService persistence = injector.getInstance(PersistService.class);
// To Debug insert breakpoint here
persistence.start();
injector.injectMembers(this);
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestConstants.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestConstants.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestConstants.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -3,7 +3,8 @@
public final class TestConstants {
// test: use memory
// test_db: use mysql
- public static final String PERSISTENCE_UNIT = "test_db";
+ // public static final String PERSISTENCE_UNIT = "test_db";
+ public static final String PERSISTENCE_UNIT = "test";
public static final String WAVE_TEST_PROPFILE = "wave-server-testing.properties";
private TestConstants() {
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestHelper.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestHelper.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/TestHelper.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -23,6 +23,7 @@
import org.apache.commons.configuration.ConfigurationException;
import org.ourproject.kune.platf.integration.HttpServletRequestMocked;
+import org.ourproject.kune.platf.server.init.FinderRegistry;
import org.ourproject.kune.platf.server.properties.PropertiesFileName;
import org.waveprotocol.box.server.CoreSettings;
import org.waveprotocol.box.server.authentication.AccountStoreHolder;
@@ -39,26 +40,26 @@
import com.google.inject.Module;
import com.google.inject.Scopes;
import com.google.inject.name.Names;
+import com.google.inject.persist.jpa.JpaPersistModule;
import com.google.inject.servlet.RequestScoped;
import com.google.inject.servlet.SessionScoped;
-import com.wideplay.warp.jpa.JpaUnit;
public abstract class TestHelper {
public static Injector create(final Module module, final String persistenceUnit, final String propetiesFileName) {
try {
final Injector injector = Guice.createInjector(CustomSettingsBinder.bindSettings(
TestConstants.WAVE_TEST_PROPFILE, CoreSettings.class));
- final PersistenceModule persistenceModule = injector.getInstance(PersistenceModule.class);
- final Injector childInjector = injector.createChildInjector(persistenceModule, module, new Module() {
- @Override
- public void configure(final Binder binder) {
- binder.bindScope(SessionScoped.class, Scopes.SINGLETON);
- binder.bindScope(RequestScoped.class, Scopes.SINGLETON);
- binder.bindConstant().annotatedWith(JpaUnit.class).to(persistenceUnit);
- binder.bindConstant().annotatedWith(PropertiesFileName.class).to(propetiesFileName);
- binder.bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
- }
- });
+ final PersistenceModule wavePersistModule = injector.getInstance(PersistenceModule.class);
+ final Injector childInjector = injector.createChildInjector(wavePersistModule,
+ FinderRegistry.init(new JpaPersistModule(persistenceUnit)), module, new Module() {
+ @Override
+ public void configure(final Binder binder) {
+ binder.bindScope(SessionScoped.class, Scopes.SINGLETON);
+ binder.bindScope(RequestScoped.class, Scopes.SINGLETON);
+ binder.bindConstant().annotatedWith(PropertiesFileName.class).to(propetiesFileName);
+ binder.bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
+ }
+ });
final AccountStore accountStore = childInjector.getInstance(AccountStore.class);
accountStore.initializeAccountStore();
AccountStoreHolder.resetForTesting();
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -33,7 +33,7 @@
import cc.kune.core.shared.domain.AccessRol;
import cc.kune.core.shared.domain.utils.StateToken;
-import com.wideplay.warp.persist.Transactional;
+import com.google.inject.persist.Transactional;
public class AuthorizatedMethodInterceptorTest extends IntegrationTest {
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/GroupFinderTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/GroupFinderTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/GroupFinderTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -27,13 +27,19 @@
import org.ourproject.kune.platf.server.PersistenceTest;
import cc.kune.domain.Group;
+import cc.kune.domain.finders.GroupFinder;
import com.google.inject.Inject;
public class GroupFinderTest extends PersistenceTest {
@Inject
- Group groupFinder;
+ GroupFinder groupFinder;
+ @After
+ public void close() {
+ closeTransaction();
+ }
+
@Before
public void insertData() {
openTransaction();
@@ -45,9 +51,4 @@
public void testGetAll() {
assertEquals(2, groupFinder.getAll().size());
}
-
- @After
- public void close() {
- closeTransaction();
- }
}
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/LicenseFinderTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/LicenseFinderTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/LicenseFinderTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -17,86 +17,87 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
-package org.ourproject.kune.platf.server.finders;
-
-import static junit.framework.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.util.List;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.ourproject.kune.platf.server.PersistenceTest;
-import org.ourproject.kune.platf.server.properties.DatabaseProperties;
-
-import cc.kune.domain.License;
-
-import com.google.inject.Inject;
-
-public class LicenseFinderTest extends PersistenceTest {
- @Inject
- License finder;
- @Inject
- DatabaseProperties properties;
- private License license1;
- private License license2;
- private License licenseDef;
-
- @Before
- public void addData() {
- openTransaction();
- licenseDef = new License("by-sa-v3.0", "Creative Commons Attribution-ShareAlike", "",
- "http://creativecommons.org/licenses/by-sa/3.0/", true, true, false, "", "");
- persist(licenseDef);
- license1 = new License("by-nc-nd-v3.0", "Creative Commons Attribution-NonCommercial-NoDerivs", "",
- "http://creativecommons.org/licenses/by-nc-nd/3.0/", true, false, false, "", "");
- persist(license1);
- license2 = new License("gfdl-v1.3", "GNU Free Documentation License", "",
- "http://www.gnu.org/copyleft/fdl.html", false, true, false, "", "");
- persist(license2);
- }
-
- @After
- public void close() {
- if (getTransaction().isActive()) {
- getTransaction().rollback();
- }
- }
-
- @Test
- public void findAll() {
- List<License> all = finder.getAll();
- assertEquals(3, all.size());
- }
-
- @Test
- public void findById() {
- License lic = finder.findByShortName(license1.getShortName());
- assertNotNull(lic);
- assertEquals(license1.getShortName(), lic.getShortName());
- assertEquals(license1.getLongName(), lic.getLongName());
- }
-
- @Test
- public void findCC() {
- List<License> cc = finder.getCC();
- assertEquals(2, cc.size());
- }
-
- @Test
- public void findDefaultLicense() {
- String licenseDefId = properties.getDefaultLicense();
- License lic = finder.findByShortName(licenseDefId);
- assertNotNull(lic);
- assertEquals(licenseDef.getShortName(), lic.getShortName());
- assertEquals(licenseDef.getLongName(), lic.getLongName());
- }
-
- @Test
- public void findNotCC() {
- List<License> notCc = finder.getNotCC();
- assertEquals(1, notCc.size());
- }
-
-}
+package org.ourproject.kune.platf.server.finders;
+
+import static junit.framework.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.List;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.ourproject.kune.platf.server.PersistenceTest;
+import org.ourproject.kune.platf.server.properties.DatabaseProperties;
+
+import cc.kune.domain.License;
+import cc.kune.domain.finders.LicenseFinder;
+
+import com.google.inject.Inject;
+
+public class LicenseFinderTest extends PersistenceTest {
+ @Inject
+ LicenseFinder finder;
+ private License license1;
+ private License license2;
+ private License licenseDef;
+ @Inject
+ DatabaseProperties properties;
+
+ @Before
+ public void addData() {
+ openTransaction();
+ licenseDef = new License("by-sa-v3.0", "Creative Commons Attribution-ShareAlike", "",
+ "http://creativecommons.org/licenses/by-sa/3.0/", true, true, false, "", "");
+ persist(licenseDef);
+ license1 = new License("by-nc-nd-v3.0", "Creative Commons Attribution-NonCommercial-NoDerivs", "",
+ "http://creativecommons.org/licenses/by-nc-nd/3.0/", true, false, false, "", "");
+ persist(license1);
+ license2 = new License("gfdl-v1.3", "GNU Free Documentation License", "",
+ "http://www.gnu.org/copyleft/fdl.html", false, true, false, "", "");
+ persist(license2);
+ }
+
+ @After
+ public void close() {
+ if (getTransaction().isActive()) {
+ getTransaction().rollback();
+ }
+ }
+
+ @Test
+ public void findAll() {
+ final List<License> all = finder.getAll();
+ assertEquals(3, all.size());
+ }
+
+ @Test
+ public void findById() {
+ final License lic = finder.findByShortName(license1.getShortName());
+ assertNotNull(lic);
+ assertEquals(license1.getShortName(), lic.getShortName());
+ assertEquals(license1.getLongName(), lic.getLongName());
+ }
+
+ @Test
+ public void findCC() {
+ final List<License> cc = finder.getCC();
+ assertEquals(2, cc.size());
+ }
+
+ @Test
+ public void findDefaultLicense() {
+ final String licenseDefId = properties.getDefaultLicense();
+ final License lic = finder.findByShortName(licenseDefId);
+ assertNotNull(lic);
+ assertEquals(licenseDef.getShortName(), lic.getShortName());
+ assertEquals(licenseDef.getLongName(), lic.getLongName());
+ }
+
+ @Test
+ public void findNotCC() {
+ final List<License> notCc = finder.getNotCC();
+ assertEquals(1, notCc.size());
+ }
+
+}
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/RateFinderTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/RateFinderTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/RateFinderTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -33,14 +33,15 @@
import cc.kune.domain.Content;
import cc.kune.domain.Rate;
import cc.kune.domain.User;
+import cc.kune.domain.finders.RateFinder;
import com.google.inject.Inject;
public class RateFinderTest extends PersistencePreLoadedDataTest {
+ private EntityManager entityManager;
@Inject
- Rate rateFinder;
- private EntityManager entityManager;
+ RateFinder rateFinder;
@Before
public void before() {
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/UserFinderTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/UserFinderTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/finders/UserFinderTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -30,12 +30,13 @@
import org.ourproject.kune.platf.server.PersistencePreLoadedDataTest;
import cc.kune.domain.User;
+import cc.kune.domain.finders.UserFinder;
import com.google.inject.Inject;
public class UserFinderTest extends PersistencePreLoadedDataTest {
@Inject
- User finder;
+ UserFinder finder;
@Test
public void findAll() {
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/LicenseManagerTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/LicenseManagerTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/LicenseManagerTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -28,16 +28,24 @@
import org.ourproject.kune.platf.server.PersistenceTest;
import cc.kune.domain.License;
+import cc.kune.domain.finders.LicenseFinder;
import com.google.inject.Inject;
public class LicenseManagerTest extends PersistenceTest {
+ private License license;
@Inject
+ LicenseFinder licenseFinder;
+ @Inject
LicenseManager licenseManager;
- @Inject
- License licenseFinder;
- private License license;
+ @After
+ public void close() {
+ if (getTransaction().isActive()) {
+ getTransaction().rollback();
+ }
+ }
+
@Before
public void insertData() {
openTransaction();
@@ -52,11 +60,4 @@
assertNotNull(license.getId());
assertEquals(1, licenseFinder.getAll().size());
}
-
- @After
- public void close() {
- if (getTransaction().isActive()) {
- getTransaction().rollback();
- }
- }
}
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagManagerTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagManagerTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagManagerTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -28,17 +28,18 @@
import org.ourproject.kune.platf.server.content.ContentManager;
import cc.kune.domain.Tag;
+import cc.kune.domain.finders.TagFinder;
import com.google.inject.Inject;
public class TagManagerTest extends PersistenceTest {
@Inject
- TagManager tagManager;
- @Inject
ContentManager contentManager;
+ private Tag tag;
@Inject
- Tag tagFinder;
- private Tag tag;
+ TagFinder tagFinder;
+ @Inject
+ TagManager tagManager;
@After
public void close() {
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagUserContentTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagUserContentTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/TagUserContentTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -30,13 +30,17 @@
import cc.kune.domain.Tag;
import cc.kune.domain.TagUserContent;
+import cc.kune.domain.finders.TagUserContentFinder;
import com.google.inject.Inject;
public class TagUserContentTest extends PersistencePreLoadedDataTest {
private static final String DUMMY_TAG = "dummy";
@Inject
+ TagUserContentFinder finder;
+ @Inject
TagUserContentManager manager;
+
private Tag tag;
@Inject
TagManager tagManager;
@@ -47,14 +51,33 @@
tagManager.persist(tag);
}
+ private void createSomeTagUserContent() {
+ List<Tag> tags = manager.find(user, content);
+ assertEquals(0, tags.size());
+ createTagUserContent();
+ tags = manager.find(user, content);
+ assertEquals(1, tags.size());
+ }
+
+ private TagUserContent createTagUserContent() {
+ final TagUserContent tagUC = new TagUserContent(tag, user, content);
+ manager.persist(tagUC);
+ return tagUC;
+ }
+
@Test
public void getTagsAsString() {
manager.setTags(user, content, DUMMY_TAG);
- String tagS = manager.getTagsAsString(user, content);
+ final String tagS = manager.getTagsAsString(user, content);
assertEquals(DUMMY_TAG, tagS);
}
@Test
+ public void getTagsGrouped() {
+ finder.getTagsGroups(user.getUserGroup());
+ }
+
+ @Test
public void insertSomeUserContent() {
createSomeTagUserContent();
}
@@ -63,7 +86,7 @@
public void removeSomeUserContent() {
createSomeTagUserContent();
manager.remove(user, content);
- List<Tag> tags = manager.find(user, content);
+ final List<Tag> tags = manager.find(user, content);
assertEquals(0, tags.size());
}
@@ -80,28 +103,14 @@
public void setTagsRemoveBefore() {
manager.setTags(user, content, "foo");
manager.setTags(user, content, DUMMY_TAG);
- List<Tag> tags = manager.find(user, content);
+ final List<Tag> tags = manager.find(user, content);
assertEquals(1, tags.size());
assertEquals(DUMMY_TAG, tags.get(0).getName());
}
@Test
public void testInsertData() {
- TagUserContent tagUC = createTagUserContent();
+ final TagUserContent tagUC = createTagUserContent();
assertNotNull(tagUC.getId());
}
-
- private void createSomeTagUserContent() {
- List<Tag> tags = manager.find(user, content);
- assertEquals(0, tags.size());
- createTagUserContent();
- tags = manager.find(user, content);
- assertEquals(1, tags.size());
- }
-
- private TagUserContent createTagUserContent() {
- TagUserContent tagUC = new TagUserContent(tag, user, content);
- manager.persist(tagUC);
- return tagUC;
- }
}
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -34,6 +34,7 @@
import org.ourproject.kune.platf.server.manager.impl.SearchResult;
import cc.kune.core.client.errors.I18nNotFoundException;
+import cc.kune.core.client.errors.UserRegistrationException;
import cc.kune.domain.Group;
import cc.kune.domain.User;
@@ -94,10 +95,10 @@
}
/**
- * This is not working:
+ * This was not working:
* http://opensource.atlassian.com/projects/hibernate/browse/EJB-382
*/
- @Test(expected = PersistenceException.class)
+ @Test(expected = UserRegistrationException.class)
public void testUserExist() throws I18nNotFoundException {
final User user1 = userManager.createUser("test", "test 1 name", "test1(a)example.com", "some password", "en",
"GB", "GMT");
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/impl/AbstractSocialNetworkManagerTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/impl/AbstractSocialNetworkManagerTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/platf/server/manager/impl/AbstractSocialNetworkManagerTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -29,7 +29,7 @@
import cc.kune.domain.User;
import com.google.inject.Inject;
-import com.wideplay.warp.persist.Transactional;
+import com.google.inject.persist.Transactional;
public abstract class AbstractSocialNetworkManagerTest extends PersistenceTest {
@Inject
Modified: branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java
===================================================================
--- branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java 2011-02-12 02:19:16 UTC (rev 1250)
+++ branches/wave-jetty-embed-guice/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java 2011-02-13 11:00:54 UTC (rev 1251)
@@ -23,8 +23,6 @@
import org.junit.Test;
import org.mockito.Mockito;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
-import org.ourproject.kune.workspace.client.tool.ToolSelectorItem;
-import org.ourproject.kune.workspace.client.tool.ToolSelectorPresenter;
import cc.kune.core.client.state.StateManager;
1
0
r1250 - branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server
by Vicente J. Ruiz Jurado 12 Feb '11
by Vicente J. Ruiz Jurado 12 Feb '11
12 Feb '11
Author: vjrj_
Date: 2011-02-12 03:19:16 +0100 (Sat, 12 Feb 2011)
New Revision: 1250
Added:
branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/ServerRpcControllerImpl.java
branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/WaveMain.java
Log:
some wave startup testing
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/CustomServerRpcProvider.java 2011-02-12 02:19:16 UTC (rev 1250)
@@ -0,0 +1,507 @@
+package cc.kune.wave.server;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import javax.servlet.Servlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.nio.SelectChannelConnector;
+import org.eclipse.jetty.servlet.DefaultServlet;
+import org.eclipse.jetty.servlet.FilterHolder;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.websocket.WebSocket;
+import org.eclipse.jetty.websocket.WebSocketServlet;
+import org.ourproject.kune.rack.RackServletFilter;
+import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolAuthenticate;
+import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolAuthenticationResult;
+import org.waveprotocol.box.server.CoreSettings;
+import org.waveprotocol.box.server.authentication.SessionManager;
+import org.waveprotocol.box.server.rpc.BaseUrlHelper;
+import org.waveprotocol.box.server.rpc.MessageExpectingChannel;
+import org.waveprotocol.box.server.rpc.ProtoCallback;
+import org.waveprotocol.box.server.rpc.Rpc;
+import org.waveprotocol.box.server.rpc.ServerRpcController;
+import org.waveprotocol.box.server.rpc.SocketIOServerChannel;
+import org.waveprotocol.box.server.rpc.WebSocketServerChannel;
+import org.waveprotocol.box.server.util.NetUtils;
+import org.waveprotocol.wave.model.util.Pair;
+import org.waveprotocol.wave.model.wave.ParticipantId;
+import org.waveprotocol.wave.util.logging.Log;
+
+import com.glines.socketio.server.SocketIOInbound;
+import com.glines.socketio.server.SocketIOServlet;
+import com.glines.socketio.server.transport.FlashSocketTransport;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+import com.google.inject.name.Named;
+import com.google.inject.servlet.GuiceFilter;
+import com.google.inject.servlet.GuiceServletContextListener;
+import com.google.protobuf.Descriptors;
+import com.google.protobuf.Descriptors.MethodDescriptor;
+import com.google.protobuf.Message;
+import com.google.protobuf.RpcCallback;
+import com.google.protobuf.Service;
+import com.google.protobuf.UnknownFieldSet;
+
+/**
+ * ServerRpcProvider can provide instances of type Service over an incoming
+ * network socket and service incoming RPCs to these services and their methods.
+ *
+ *
+ */
+public class CustomServerRpcProvider {
+ abstract class Connection implements ProtoCallback {
+ private final Map<Long, ServerRpcController> activeRpcs = new ConcurrentHashMap<Long, ServerRpcController>();
+
+ // The logged in user.
+ // Note: Due to this bug:
+ // http://code.google.com/p/wave-protocol/issues/detail?id=119,
+ // the field may be null on first connect and then set later using an
+ // RPC.
+ private ParticipantId loggedInUser;
+
+ /**
+ * @param loggedInUser
+ * The currently logged in user, or null if no user is logged
+ * in.
+ */
+ public Connection(final ParticipantId loggedInUser) {
+ this.loggedInUser = loggedInUser;
+ }
+
+ private ParticipantId authenticate(final String token) {
+ final HttpSession session = sessionManager.getSessionFromToken(token);
+ final ParticipantId user = sessionManager.getLoggedInUser(session);
+ return user;
+ }
+
+ protected void expectMessages(final MessageExpectingChannel channel) {
+ synchronized (registeredServices) {
+ for (final RegisteredServiceMethod serviceMethod : registeredServices.values()) {
+ channel.expectMessage(serviceMethod.service.getRequestPrototype(serviceMethod.method));
+ LOG.fine("Expecting: " + serviceMethod.method.getFullName());
+ }
+ }
+ channel.expectMessage(Rpc.CancelRpc.getDefaultInstance());
+ }
+
+ @Override
+ public void message(final long sequenceNo, final Message message) {
+ if (message instanceof Rpc.CancelRpc) {
+ final ServerRpcController controller = activeRpcs.get(sequenceNo);
+ if (controller == null) {
+ throw new IllegalStateException("Trying to cancel an RPC that is not active!");
+ } else {
+ LOG.info("Cancelling open RPC " + sequenceNo);
+ controller.cancel();
+ }
+ } else if (message instanceof ProtocolAuthenticate) {
+ // Workaround for bug:
+ // http://codereview.waveprotocol.org/224001/
+
+ // When we get this message, either the connection will not be
+ // logged in
+ // (loggedInUser == null) or the connection will have been
+ // authenticated
+ // via cookies
+ // (in which case loggedInUser must match the authenticated
+ // user, and
+ // this message has no
+ // effect).
+
+ final ProtocolAuthenticate authMessage = (ProtocolAuthenticate) message;
+ final ParticipantId authenticatedAs = authenticate(authMessage.getToken());
+
+ Preconditions.checkArgument(authenticatedAs != null, "Auth token invalid");
+ Preconditions.checkState(loggedInUser == null || loggedInUser.equals(authenticatedAs),
+ "Session already authenticated as a different user");
+
+ loggedInUser = authenticatedAs;
+ LOG.info("Session authenticated as " + loggedInUser);
+ sendMessage(sequenceNo, ProtocolAuthenticationResult.getDefaultInstance());
+ } else if (registeredServices.containsKey(message.getDescriptorForType())) {
+ if (activeRpcs.containsKey(sequenceNo)) {
+ throw new IllegalStateException("Can't invoke a new RPC with a sequence number already in use.");
+ } else {
+ final RegisteredServiceMethod serviceMethod = registeredServices.get(message.getDescriptorForType());
+
+ // Create the internal ServerRpcController used to invoke
+ // the call.
+ final ServerRpcController controller = new ServerRpcControllerImpl(message, serviceMethod.service,
+ serviceMethod.method, loggedInUser, new RpcCallback<Message>() {
+ @Override
+ synchronized public void run(final Message message) {
+ if (message instanceof Rpc.RpcFinished
+ || !serviceMethod.method.getOptions().getExtension(Rpc.isStreamingRpc)) {
+ // This RPC is over - remove it from the
+ // map.
+ final boolean failed = message instanceof Rpc.RpcFinished ? ((Rpc.RpcFinished) message).getFailed()
+ : false;
+ LOG.fine("RPC " + sequenceNo + " is now finished, failed = " + failed);
+ if (failed) {
+ LOG.info("error = " + ((Rpc.RpcFinished) message).getErrorText());
+ }
+ activeRpcs.remove(sequenceNo);
+ }
+ sendMessage(sequenceNo, message);
+ }
+ });
+
+ // Kick off a new thread specific to this RPC.
+ activeRpcs.put(sequenceNo, controller);
+ threadPool.execute(controller);
+ }
+ } else {
+ // Sent a message type we understand, but don't expect -
+ // erronous case!
+ throw new IllegalStateException("Got expected but unknown message (" + message + ") for sequence: "
+ + sequenceNo);
+ }
+ }
+
+ protected abstract void sendMessage(long sequenceNo, Message message);
+
+ @Override
+ public void unknown(final long sequenceNo, final String messageType, final String message) {
+ throw new IllegalStateException("Got unknown message (type: " + messageType + ", " + message
+ + ") for sequence: " + sequenceNo);
+ }
+
+ @Override
+ public void unknown(final long sequenceNo, final String messageType, final UnknownFieldSet message) {
+ throw new IllegalStateException("Got unknown message (type: " + messageType + ", " + message
+ + ") for sequence: " + sequenceNo);
+ }
+ }
+
+ /**
+ * Internal, static container class for any specific registered service
+ * method.
+ */
+ static class RegisteredServiceMethod {
+ final MethodDescriptor method;
+ final Service service;
+
+ RegisteredServiceMethod(final Service service, final MethodDescriptor method) {
+ this.service = service;
+ this.method = method;
+ }
+ }
+ class SocketIOConnection extends Connection {
+ private final SocketIOServerChannel socketChannel;
+
+ SocketIOConnection(final ParticipantId loggedInUser) {
+ super(loggedInUser);
+ socketChannel = new SocketIOServerChannel(this);
+ LOG.info("New websocket connection set up for user " + loggedInUser);
+ expectMessages(socketChannel);
+ }
+
+ public SocketIOServerChannel getWebSocketServerChannel() {
+ return socketChannel;
+ }
+
+ @Override
+ protected void sendMessage(final long sequenceNo, final Message message) {
+ socketChannel.sendMessage(sequenceNo, message);
+ }
+ }
+ public class WaveSocketIOServlet extends SocketIOServlet {
+ @Override
+ protected SocketIOInbound doSocketIOConnect(final HttpServletRequest request, final String[] protocols) {
+ final ParticipantId loggedInUser = sessionManager.getLoggedInUser(request.getSession(false));
+
+ final SocketIOConnection connection = new SocketIOConnection(loggedInUser);
+ return connection.getWebSocketServerChannel();
+ }
+ }
+ public class WaveWebSocketServlet extends WebSocketServlet {
+ @Override
+ protected WebSocket doWebSocketConnect(final HttpServletRequest request, final String protocol) {
+ final ParticipantId loggedInUser = sessionManager.getLoggedInUser(request.getSession(false));
+
+ final WebSocketConnection connection = new WebSocketConnection(loggedInUser);
+ return connection.getWebSocketServerChannel();
+ }
+ }
+ class WebSocketConnection extends Connection {
+ private final WebSocketServerChannel socketChannel;
+
+ WebSocketConnection(final ParticipantId loggedInUser) {
+ super(loggedInUser);
+ socketChannel = new WebSocketServerChannel(this);
+ LOG.info("New websocket connection set up for user " + loggedInUser);
+ expectMessages(socketChannel);
+ }
+
+ public WebSocketServerChannel getWebSocketServerChannel() {
+ return socketChannel;
+ }
+
+ @Override
+ protected void sendMessage(final long sequenceNo, final Message message) {
+ socketChannel.sendMessage(sequenceNo, message);
+ }
+ }
+ private static final Log LOG = Log.get(CustomServerRpcProvider.class);
+
+ private static InetSocketAddress[] parseAddressList(final List<String> addressList) {
+ if (addressList == null || addressList.size() == 0) {
+ return new InetSocketAddress[0];
+ } else {
+ final Set<InetSocketAddress> addresses = Sets.newHashSet();
+ for (final String str : addressList) {
+ if (str.length() == 0) {
+ LOG.warning("Encountered empty address in http addresses list.");
+ } else {
+ try {
+ final InetSocketAddress address = NetUtils.parseHttpAddress(str);
+ if (!addresses.contains(address)) {
+ addresses.add(address);
+ } else {
+ LOG.warning("Ignoring duplicate address in http addresses list: Duplicate entry '" + str
+ + "' resolved to " + address.getAddress().getHostAddress());
+ }
+ } catch (final IOException e) {
+ LOG.severe("Unable to process address " + str, e);
+ }
+ }
+ }
+ return addresses.toArray(new InetSocketAddress[0]);
+ }
+ }
+ private final String baseUrl;
+
+ private final Integer flashsocketPolicyPort;
+
+ private final InetSocketAddress[] httpAddresses;
+
+ private Server httpServer = null;
+
+ private final Set<Connection> incomingConnections = Sets.newHashSet();
+
+ private final org.eclipse.jetty.server.SessionManager jettySessionManager;
+
+ // Mapping from incoming protocol buffer type -> specific handler.
+ private final Map<Descriptors.Descriptor, RegisteredServiceMethod> registeredServices = Maps.newHashMap();
+
+ private final String resourceBase;
+
+ /**
+ * Set of servlets
+ */
+ List<Pair<String, ServletHolder>> servletRegistry = Lists.newArrayList();
+
+ private final SessionManager sessionManager;
+
+ private final ExecutorService threadPool;
+
+ /**
+ * Construct a new ServerRpcProvider, hosting on the specified WebSocket
+ * addresses.
+ *
+ * Also accepts an ExecutorService for spawning managing threads.
+ */
+ public CustomServerRpcProvider(final InetSocketAddress[] httpAddresses, final Integer flashsocketPolicyPort,
+ final String baseUrl, final String resourceBase, final ExecutorService threadPool,
+ final SessionManager sessionManager, final org.eclipse.jetty.server.SessionManager jettySessionManager) {
+ this.httpAddresses = httpAddresses;
+ this.flashsocketPolicyPort = flashsocketPolicyPort;
+ this.baseUrl = BaseUrlHelper.removeLastSlash(baseUrl);
+ this.resourceBase = resourceBase;
+ this.threadPool = threadPool;
+ this.sessionManager = sessionManager;
+ this.jettySessionManager = jettySessionManager;
+ }
+
+ /**
+ * Constructs a new ServerRpcProvider with a default ExecutorService.
+ */
+ public CustomServerRpcProvider(final InetSocketAddress[] httpAddresses, final Integer flashsocketPolicyPort,
+ final String baseUrl, final String resourceBase, final SessionManager sessionManager,
+ final org.eclipse.jetty.server.SessionManager jettySessionManager) {
+ this(httpAddresses, flashsocketPolicyPort, baseUrl, resourceBase, Executors.newCachedThreadPool(),
+ sessionManager, jettySessionManager);
+ }
+
+ @Inject
+ public CustomServerRpcProvider((a)Named(CoreSettings.HTTP_FRONTEND_ADDRESSES) final List<String> httpAddresses,
+ @Named(CoreSettings.FLASHSOCKET_POLICY_PORT) final Integer flashsocketPolicyPort,
+ @Named(CoreSettings.HTTP_BASE_URL) final String baseUrl,
+ @Named(CoreSettings.RESOURCE_BASE) final String resourceBase, final SessionManager sessionManager,
+ final org.eclipse.jetty.server.SessionManager jettySessionManager) {
+ this(parseAddressList(httpAddresses), flashsocketPolicyPort, baseUrl, resourceBase, sessionManager,
+ jettySessionManager);
+ }
+
+ /**
+ * Add a servlet to the servlet registry. This servlet will be attached to
+ * the specified URL pattern when the server is started up.
+ *
+ * @param urlPattern
+ * URL pattern for paths. Eg, '/foo', '/foo/*'
+ * @param servlet
+ * The servlet object to bind to the specified paths
+ * @return the {@link ServletHolder} that holds the servlet.
+ */
+ public ServletHolder addServlet(final String urlPattern, final Servlet servlet) {
+ final ServletHolder servletHolder = new ServletHolder(servlet);
+ servletRegistry.add(new Pair<String, ServletHolder>(urlPattern, servletHolder));
+ return servletHolder;
+ }
+
+ /**
+ * @return a list of {@link SelectChannelConnector} each bound to a
+ * host:port pair form the list addresses.
+ */
+ private List<SelectChannelConnector> getSelectChannelConnectors(final InetSocketAddress[] httpAddresses) {
+ final List<SelectChannelConnector> list = Lists.newArrayList();
+ for (final InetSocketAddress address : httpAddresses) {
+ final SelectChannelConnector connector = new SelectChannelConnector();
+ connector.setHost(address.getAddress().getHostAddress());
+ connector.setPort(address.getPort());
+ list.add(connector);
+ }
+
+ return list;
+ }
+
+ /**
+ * Returns the socket the WebSocket server is listening on.
+ */
+ public SocketAddress getWebSocketAddress() {
+ if (httpServer == null) {
+ return null;
+ } else {
+ final Connector c = httpServer.getConnectors()[0];
+ return new InetSocketAddress(c.getHost(), c.getLocalPort());
+ }
+ }
+
+ /**
+ * Register all methods provided by the given service type.
+ */
+ public void registerService(final Service service) {
+ synchronized (registeredServices) {
+ for (final MethodDescriptor methodDescriptor : service.getDescriptorForType().getMethods()) {
+ registeredServices.put(methodDescriptor.getInputType(), new RegisteredServiceMethod(service,
+ methodDescriptor));
+ }
+ }
+ }
+
+ public void startWebSocketServer(final Injector injector) {
+ httpServer = new Server();
+
+ final List<SelectChannelConnector> connectors = getSelectChannelConnectors(httpAddresses);
+ if (connectors.isEmpty()) {
+ LOG.severe("No valid http end point address provided!");
+ }
+ for (final SelectChannelConnector connector : connectors) {
+ httpServer.addConnector(connector);
+ }
+
+ final ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
+ if (jettySessionManager != null) {
+ context.getSessionHandler().setSessionManager(jettySessionManager);
+ }
+ context.setResourceBase(resourceBase);
+ context.setContextPath(baseUrl);
+ context.addEventListener(new GuiceServletContextListener() {
+ @Override
+ protected Injector getInjector() {
+ return injector;
+ }
+ });
+ context.setAttribute(RackServletFilter.INJECTOR_PARENT_ATTRIBUTE, injector);
+ context.addFilter(GuiceFilter.class, "/*", 0);
+ final FilterHolder filterHolder = new FilterHolder(RackServletFilter.class);
+ filterHolder.setInitParameter("org.ourproject.kune.rack.RackModule",
+ "org.ourproject.kune.app.server.KuneRackModule");
+ context.addFilter(filterHolder, "/ws*", 0);
+
+ // Servlet where the websocket connection is served from.
+ final ServletHolder wsholder = new ServletHolder(new WaveWebSocketServlet());
+ context.addServlet(wsholder, "/socket");
+ // TODO(zamfi): fix to let messages span frames.
+ wsholder.setInitParameter("bufferSize", "" + 1024 * 1024); // 1M buffer
+
+ // Servlet where the websocket connection is served from.
+ final ServletHolder sioholder = new ServletHolder(new WaveSocketIOServlet());
+ context.addServlet(sioholder, "/socket.io/*");
+ // TODO(zamfi): fix to let messages span frames.
+ sioholder.setInitParameter("bufferSize", "" + 1024 * 1024); // 1M buffer
+ // Set flash policy server parameters
+ String flashPolicyServerHost = "localhost";
+ final StringBuilder flashPolicyAllowedPorts = new StringBuilder();
+ /*
+ * Loop through addresses, collect list of ports, and determine if we
+ * are to use "localhost" of the AnyHost wildcard.
+ */
+ for (final InetSocketAddress addr : httpAddresses) {
+ if (flashPolicyAllowedPorts.length() > 0) {
+ flashPolicyAllowedPorts.append(",");
+ }
+ flashPolicyAllowedPorts.append(addr.getPort());
+ if (!addr.getAddress().isLoopbackAddress()) {
+ // Until it's possible to pass a list of address, this is the
+ // only valid alternative.
+ flashPolicyServerHost = "0.0.0.0";
+ }
+ }
+ sioholder.setInitParameter(FlashSocketTransport.FLASHPOLICY_SERVER_HOST_KEY, flashPolicyServerHost);
+ sioholder.setInitParameter(FlashSocketTransport.FLASHPOLICY_SERVER_PORT_KEY, "" + flashsocketPolicyPort);
+ // TODO: Change to use the public http address and all other bound
+ // addresses.
+ sioholder.setInitParameter(FlashSocketTransport.FLASHPOLICY_DOMAIN_KEY, "*");
+ sioholder.setInitParameter(FlashSocketTransport.FLASHPOLICY_PORTS_KEY, flashPolicyAllowedPorts.toString());
+
+ // Serve the static content and GWT web client with the default servlet
+ // (acts like a standard file-based web server).
+ final ServletHolder defaultServlet = new ServletHolder(new DefaultServlet());
+ context.addServlet(defaultServlet, "/static/*");
+ context.addServlet(defaultServlet, "/webclient/*");
+
+ for (final Pair<String, ServletHolder> servlet : servletRegistry) {
+ context.addServlet(servlet.getSecond(), servlet.getFirst());
+ }
+
+ httpServer.setHandler(context);
+
+ try {
+ httpServer.start();
+ } catch (final Exception e) { // yes, .start() throws "Exception"
+ LOG.severe("Fatal error starting http server.", e);
+ return;
+ }
+ LOG.fine("WebSocket server running. --------");
+ }
+
+ /**
+ * Stops this server.
+ */
+ public void stopServer() throws IOException {
+ try {
+ httpServer.stop(); // yes, .stop() throws "Exception"
+ } catch (final Exception e) {
+ LOG.warning("Fatal error stopping http server.", e);
+ }
+ LOG.fine("server shutdown.");
+ }
+}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/ServerRpcControllerImpl.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/ServerRpcControllerImpl.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/ServerRpcControllerImpl.java 2011-02-12 02:19:16 UTC (rev 1250)
@@ -0,0 +1,226 @@
+/**
+ * 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.wave.server;
+
+import org.waveprotocol.box.server.rpc.Rpc;
+import org.waveprotocol.box.server.rpc.ServerRpcController;
+import org.waveprotocol.wave.model.wave.ParticipantId;
+
+import com.google.protobuf.Descriptors;
+import com.google.protobuf.Message;
+import com.google.protobuf.RpcCallback;
+import com.google.protobuf.Service;
+
+/**
+ * Implements the server end-point of a wave server RPC connection. This is a
+ * single-use RPC controller.
+ *
+ *
+ */
+public class ServerRpcControllerImpl implements ServerRpcController {
+ private final Service backingService;
+ private final RpcCallback<Message> callback;
+ private RpcCallback<Object> cancelCallback = null;
+ private boolean cancelled = false;
+ private boolean complete = false;
+
+ private final boolean isStreamingRpc;
+ private final ParticipantId loggedInUser;
+ private final Message requestMessage;
+ private final Descriptors.MethodDescriptor serviceMethod;
+ // The following variables represent the current status of this instance,
+ // and
+ // must all only be accessed or modified while synchronised on statusLock.
+ private final Object statusLock = new Object();
+
+ /**
+ * Instantiate a new ServerRpcController that may later be completely
+ * invoked by calling {#link run}.
+ *
+ * @param requestMessage
+ * the request being handled
+ * @param backingService
+ * the backing service type
+ * @param serviceMethod
+ * the specific method within the backing service type
+ * @param loggedInUser
+ * the currently logged in user
+ * @param callback
+ * the destination where responses may be passed - may be called
+ * once (normal RPC) or 1-n times (streaming RPC), and will pass
+ * instances of RpcFinished as required (error cases, or
+ * streaming RPC shutdown); is also always called under the
+ * ServerRpcController's statusLock to ensure that consecutive
+ * calls (in the streaming case) are called in series
+ */
+ ServerRpcControllerImpl(final Message requestMessage, final Service backingService,
+ final Descriptors.MethodDescriptor serviceMethod, final ParticipantId loggedInUser,
+ final RpcCallback<Message> callback) {
+ this.requestMessage = requestMessage;
+ this.backingService = backingService;
+ this.serviceMethod = serviceMethod;
+ this.loggedInUser = loggedInUser;
+ this.isStreamingRpc = serviceMethod.getOptions().getExtension(Rpc.isStreamingRpc);
+ this.callback = callback;
+ }
+
+ @Override
+ public void cancel() {
+ RpcCallback<Object> runCallback = null;
+ synchronized (statusLock) {
+ if (cancelled) {
+ throw new IllegalStateException("Can't cancel RPC, already cancelled.");
+ }
+ cancelled = true;
+ if (cancelCallback != null && !complete) {
+ runCallback = cancelCallback;
+ }
+ }
+ if (runCallback != null) {
+ runCallback.run(null);
+ }
+ }
+
+ @Override
+ public String errorText() {
+ throw new UnsupportedOperationException("Client-side method of RpcController only.");
+ }
+
+ @Override
+ public boolean failed() {
+ throw new UnsupportedOperationException("Client-side method of RpcController only.");
+ }
+
+ @Override
+ public ParticipantId getLoggedInUser() {
+ return loggedInUser;
+ }
+
+ @Override
+ public boolean isCanceled() {
+ return cancelled;
+ }
+
+ /**
+ * Registers a cancellation callback. This will always be called as part of
+ * this RPC, and always at most once; either when the client asks to cancel
+ * it, or when the RPC finishes (regardless of error case).
+ *
+ * This callback will be called outside normal locks on ServerRpcController
+ * state, i.e., not within a block synchronised on statusLock.
+ */
+ @Override
+ public void notifyOnCancel(final RpcCallback<Object> callback) {
+ RpcCallback<Object> runCallback = null;
+ synchronized (statusLock) {
+ if (cancelCallback != null) {
+ throw new IllegalStateException("Must only be called once per request.");
+ } else {
+ cancelCallback = callback;
+ if (cancelled || complete) {
+ runCallback = cancelCallback;
+ }
+ }
+ }
+ if (runCallback != null) {
+ runCallback.run(null);
+ }
+ }
+
+ @Override
+ public void reset() {
+ throw new UnsupportedOperationException("Client-side method of RpcController only.");
+ }
+
+ /**
+ * Run this ServerRpcController in the current thread. This must only be
+ * invoked ONCE, and will throw an IllegalStateException otherwise.
+ */
+ @Override
+ public void run() {
+ final RpcCallback<Message> messageCallback = new RpcCallback<Message>() {
+ @Override
+ public void run(Message result) { // NOPMD by vjrj on 12/02/11 0:16
+ RpcCallback<Object> runCallback = null;
+ synchronized (statusLock) {
+ if (complete) {
+ throw new IllegalStateException("Can't send responses over this RPC, as it is"
+ + " already complete: " + result);
+ }
+ if (!isStreamingRpc || result == null) {
+ // This either completes the streaming RPC (by passing
+ // an instance
+ // of RpcFinished in place of null) or completes a
+ // normal RPC (by
+ // passing any other message).
+ if (result == null) {
+ result = Rpc.RpcFinished.newBuilder().setFailed(false).build();
+ }
+ callback.run(result);
+
+ // Now complete, mark as such and invoke the
+ // cancellation callback.
+ complete = true;
+ if (cancelCallback != null && !cancelled) {
+ runCallback = cancelCallback;
+ }
+ } else {
+ // Streaming RPC update.
+ callback.run(result);
+ }
+ }
+ if (runCallback != null) {
+ runCallback.run(null);
+ }
+ }
+ };
+ try {
+ backingService.callMethod(serviceMethod, this, requestMessage, messageCallback);
+ } catch (final RuntimeException e) {
+ // Pass the description of any RuntimeException back to the caller.
+ e.printStackTrace();
+ if (!complete) {
+ setFailed(e.toString());
+ }
+ }
+ }
+
+ @Override
+ public void setFailed(final String reason) {
+ RpcCallback<Object> runCallback = null;
+ synchronized (statusLock) {
+ if (complete) {
+ throw new IllegalStateException("Can't fail this RPC, as it is already complete.");
+ } else {
+ complete = true;
+ callback.run(Rpc.RpcFinished.newBuilder().setFailed(true).setErrorText(reason).build());
+ if (cancelCallback != null && !cancelled) {
+ runCallback = cancelCallback;
+ }
+ }
+ }
+ if (runCallback != null) {
+ runCallback.run(null);
+ }
+ }
+
+ @Override
+ public void startCancel() {
+ throw new UnsupportedOperationException("Client-side method of RpcController only.");
+ }
+}
Added: branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/WaveMain.java
===================================================================
--- branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/WaveMain.java (rev 0)
+++ branches/wave-jetty-embed-guice/src/main/java/cc/kune/wave/server/WaveMain.java 2011-02-12 02:19:16 UTC (rev 1250)
@@ -0,0 +1,197 @@
+/**
+ * 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.wave.server;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.eclipse.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.servlets.ProxyServlet;
+import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolWaveClientRpc;
+import org.waveprotocol.box.server.CoreSettings;
+import org.waveprotocol.box.server.ServerModule;
+import org.waveprotocol.box.server.authentication.AccountStoreHolder;
+import org.waveprotocol.box.server.authentication.SessionManager;
+import org.waveprotocol.box.server.frontend.ClientFrontend;
+import org.waveprotocol.box.server.frontend.ClientFrontendImpl;
+import org.waveprotocol.box.server.frontend.WaveClientRpcImpl;
+import org.waveprotocol.box.server.persistence.AccountStore;
+import org.waveprotocol.box.server.persistence.PersistenceException;
+import org.waveprotocol.box.server.persistence.PersistenceModule;
+import org.waveprotocol.box.server.persistence.SignerInfoStore;
+import org.waveprotocol.box.server.robots.RobotApiModule;
+import org.waveprotocol.box.server.robots.RobotRegistrationServlet;
+import org.waveprotocol.box.server.robots.active.ActiveApiServlet;
+import org.waveprotocol.box.server.robots.dataapi.DataApiOAuthServlet;
+import org.waveprotocol.box.server.robots.dataapi.DataApiServlet;
+import org.waveprotocol.box.server.robots.passive.RobotsGateway;
+import org.waveprotocol.box.server.rpc.AttachmentServlet;
+import org.waveprotocol.box.server.rpc.AuthenticationServlet;
+import org.waveprotocol.box.server.rpc.FetchServlet;
+import org.waveprotocol.box.server.rpc.SignOutServlet;
+import org.waveprotocol.box.server.rpc.UserRegistrationServlet;
+import org.waveprotocol.box.server.rpc.WaveClientServlet;
+import org.waveprotocol.box.server.waveserver.WaveBus;
+import org.waveprotocol.box.server.waveserver.WaveServerException;
+import org.waveprotocol.box.server.waveserver.WaveletProvider;
+import org.waveprotocol.wave.crypto.CertPathStore;
+import org.waveprotocol.wave.federation.FederationSettings;
+import org.waveprotocol.wave.federation.FederationTransport;
+import org.waveprotocol.wave.federation.noop.NoOpFederationModule;
+import org.waveprotocol.wave.federation.xmpp.XmppFederationModule;
+import org.waveprotocol.wave.model.version.HashedVersionFactory;
+import org.waveprotocol.wave.util.logging.Log;
+import org.waveprotocol.wave.util.settings.SettingsBinder;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Key;
+import com.google.inject.Module;
+import com.google.inject.name.Names;
+
+/**
+ * Wave Server entrypoint.
+ */
+public class WaveMain {
+
+ private static final Log LOG = Log.get(WaveMain.class);
+
+ /**
+ * This is the name of the system property used to find the server config
+ * file.
+ */
+ private static final String PROPERTIES_FILE_KEY = "wave.server.config";
+
+ private static Module buildFederationModule(final Injector settingsInjector, final boolean enableFederation)
+ throws ConfigurationException {
+ Module federationModule;
+ if (enableFederation) {
+ federationModule = settingsInjector.getInstance(XmppFederationModule.class);
+ } else {
+ federationModule = settingsInjector.getInstance(NoOpFederationModule.class);
+ }
+ return federationModule;
+ }
+
+ private static void initializeFederation(final Injector injector) {
+ final FederationTransport federationManager = injector.getInstance(FederationTransport.class);
+ federationManager.startFederation();
+ }
+
+ private static void initializeFrontend(final Injector injector, final CustomServerRpcProvider server,
+ final WaveBus waveBus) throws WaveServerException {
+ final HashedVersionFactory hashFactory = injector.getInstance(HashedVersionFactory.class);
+ final WaveletProvider provider = injector.getInstance(WaveletProvider.class);
+ final ClientFrontend frontend = ClientFrontendImpl.create(hashFactory, provider, waveBus);
+
+ final ProtocolWaveClientRpc.Interface rpcImpl = WaveClientRpcImpl.create(frontend, false);
+ server.registerService(ProtocolWaveClientRpc.newReflectiveService(rpcImpl));
+ }
+
+ private static void initializeRobots(final Injector injector, final WaveBus waveBus) {
+ final RobotsGateway robotsGateway = injector.getInstance(RobotsGateway.class);
+ waveBus.subscribe(robotsGateway);
+ }
+
+ private static void initializeServer(final Injector injector) throws PersistenceException, WaveServerException {
+ final AccountStore accountStore = injector.getInstance(AccountStore.class);
+ accountStore.initializeAccountStore();
+ AccountStoreHolder.init(accountStore,
+ injector.getInstance(Key.get(String.class, Names.named(CoreSettings.WAVE_SERVER_DOMAIN))));
+
+ // Initialize the SignerInfoStore.
+ final CertPathStore certPathStore = injector.getInstance(CertPathStore.class);
+ if (certPathStore instanceof SignerInfoStore) {
+ ((SignerInfoStore) certPathStore).initializeSignerInfoStore();
+ }
+
+ // Initialize the server.
+ final WaveletProvider waveServer = injector.getInstance(WaveletProvider.class);
+ waveServer.initialize();
+ }
+
+ private static void initializeServlets(final Injector injector, final CustomServerRpcProvider server) {
+ server.addServlet("/attachment/*", injector.getInstance(AttachmentServlet.class));
+
+ server.addServlet(SessionManager.SIGN_IN_URL, injector.getInstance(AuthenticationServlet.class));
+ server.addServlet("/auth/signout", injector.getInstance(SignOutServlet.class));
+ server.addServlet("/auth/register", injector.getInstance(UserRegistrationServlet.class));
+
+ server.addServlet("/fetch/*", injector.getInstance(FetchServlet.class));
+
+ server.addServlet("/robot/dataapi", injector.getInstance(DataApiServlet.class));
+ server.addServlet(DataApiOAuthServlet.DATA_API_OAUTH_PATH + "/*",
+ injector.getInstance(DataApiOAuthServlet.class));
+ server.addServlet("/robot/dataapi/rpc", injector.getInstance(DataApiServlet.class));
+ server.addServlet("/robot/register/*", injector.getInstance(RobotRegistrationServlet.class));
+ server.addServlet("/robot/rpc", injector.getInstance(ActiveApiServlet.class));
+
+ final String gadgetServerHostname = injector.getInstance(Key.get(String.class,
+ Names.named(CoreSettings.GADGET_SERVER_HOSTNAME)));
+ final ProxyServlet.Transparent proxyServlet = new ProxyServlet.Transparent("/gadgets", "http",
+ gadgetServerHostname, injector.getInstance(Key.get(int.class,
+ Names.named(CoreSettings.GADGET_SERVER_PORT))), "/gadgets");
+ final ServletHolder proxyServletHolder = server.addServlet("/gadgets/*", proxyServlet);
+ proxyServletHolder.setInitParameter("HostHeader", gadgetServerHostname);
+
+ server.addServlet("/", injector.getInstance(WaveClientServlet.class));
+ }
+
+ public static void main(final String... args) {
+ try {
+ final Module coreSettings = SettingsBinder.bindSettings(PROPERTIES_FILE_KEY, CoreSettings.class);
+ run(coreSettings);
+ return;
+ } catch (final PersistenceException e) {
+ LOG.severe("PersistenceException when running server:", e);
+ } catch (final ConfigurationException e) {
+ LOG.severe("ConfigurationException when running server:", e);
+ } catch (final WaveServerException e) {
+ LOG.severe("WaveServerException when running server:", e);
+ }
+ }
+
+ public static void run(final Module coreSettings) throws PersistenceException, ConfigurationException,
+ WaveServerException {
+ Injector settingsInjector = Guice.createInjector(coreSettings);
+ final boolean enableFederation = settingsInjector.getInstance(Key.get(Boolean.class,
+ Names.named(CoreSettings.ENABLE_FEDERATION)));
+
+ if (enableFederation) {
+ final Module federationSettings = SettingsBinder.bindSettings(PROPERTIES_FILE_KEY, FederationSettings.class);
+ // This MUST happen first, or bindings will fail if federation is
+ // enabled.
+ settingsInjector = settingsInjector.createChildInjector(federationSettings);
+ }
+
+ final Module federationModule = buildFederationModule(settingsInjector, enableFederation);
+ final PersistenceModule persistenceModule = settingsInjector.getInstance(PersistenceModule.class);
+ final Injector injector = settingsInjector.createChildInjector(new ServerModule(enableFederation),
+ new RobotApiModule(), federationModule, persistenceModule);
+
+ final CustomServerRpcProvider server = injector.getInstance(CustomServerRpcProvider.class);
+ final WaveBus waveBus = injector.getInstance(WaveBus.class);
+
+ initializeServer(injector);
+ initializeServlets(injector, server);
+ initializeRobots(injector, waveBus);
+ initializeFrontend(injector, server, waveBus);
+ initializeFederation(injector);
+
+ LOG.info("Starting server");
+ server.startWebSocketServer(injector);
+ }
+}
1
0