[kune-commits] r1618 - in trunk: . img src/main/java/cc/kune/barters/client src/main/java/cc/kune/blogs/client src/main/java/cc/kune/chat/client src/main/java/cc/kune/core/client/cnt src/main/java/cc/kune/core/client/groups/newgroup src/main/java/cc/kune/core/client/registry src/main/java/cc/kune/core/client/sitebar/search src/main/java/cc/kune/core/client/state src/main/java/cc/kune/docs/client src/main/java/cc/kune/events/client src/main/java/cc/kune/gspace/client/tool src/main/java/cc/kune/gspace/client/tool/selector src/main/java/cc/kune/gspace/client/viewers src/main/java/cc/kune/lists/client src/main/java/cc/kune/tasks/client src/main/java/cc/kune/wave/client src/main/java/cc/kune/wiki/client src/main/java/org/waveprotocol/box/webclient/client src/main/java/org/waveprotocol/wave/client/wavepanel/impl/toolbar
Vicente J. Ruiz Jurado
vjrj_ at ourproject.org
Wed Nov 23 15:33:51 CET 2011
Author: vjrj_
Date: 2011-11-23 15:33:50 +0100 (Wed, 23 Nov 2011)
New Revision: 1618
Removed:
trunk/src/main/java/org/waveprotocol/box/webclient/client/HistorySupport.java
trunk/src/main/java/org/waveprotocol/wave/client/wavepanel/impl/toolbar/EditToolbar.java
Modified:
trunk/.classpath
trunk/CREDITS
trunk/img/kune-logos.svg
trunk/pom.xml
trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java
trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java
trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java
trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPresenter.java
trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java
trunk/src/main/java/cc/kune/core/client/registry/ContentCapabilitiesRegistry.java
trunk/src/main/java/cc/kune/core/client/sitebar/search/SitebarSearchPanel.java
trunk/src/main/java/cc/kune/core/client/state/StateManager.java
trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java
trunk/src/main/java/cc/kune/events/client/EventsClientTool.java
trunk/src/main/java/cc/kune/gspace/client/tool/FoldableAbstractClientTool.java
trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenter.java
trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerPanel.java
trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java
trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java
trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java
trunk/src/main/java/cc/kune/tasks/client/TasksClientTool.java
trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java
trunk/src/main/java/cc/kune/wave/client/WebClient.java
trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java
Log:
NEW - # 135: Some Calendar integration
http://kune.ourproject.org/issues/ticket/135
NEW - # 163: Empty messages in Views where not logged shoul be different to logged
http://kune.ourproject.org/issues/ticket/163
CLOSED - # 62: Tool links should point to the previous content (not the root)
http://kune.ourproject.org/issues/ticket/62
Wave updated with many fixes and lib upgrades
Big bug fix: you can now safety move to other locations while editing a wave
Attachments now should work also in Group Space
Modified: trunk/.classpath
===================================================================
--- trunk/.classpath 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/.classpath 2011-11-23 14:33:50 UTC (rev 1618)
@@ -12,19 +12,19 @@
<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/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box/0.3.5/box-0.3.5.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box-src/0.3.5/box-src-0.3.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box/0.3.7/box-0.3.7.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box-src/0.3.7/box-src-0.3.7.jar" sourcepath="M2_REPO/org/waveprotocol/box-src/0.3.7/box-src-0.3.7-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar"/>
<classpathentry kind="var" path="M2_REPO/c3p0/c3p0/0.9.1/c3p0-0.9.1.jar" sourcepath="M2_REPO/c3p0/c3p0/0.9.1/c3p0-0.9.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar" sourcepath="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client/0.3.5/client-0.3.5.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common/0.3.5/client-common-0.3.5.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common-src/0.3.5/client-common-src-0.3.5.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-scheduler-src/0.3.5/client-scheduler-src-0.3.5.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-src/0.3.5/client-src-0.3.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client/0.3.7/client-0.3.7.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common/0.3.7/client-common-0.3.7.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common-src/0.3.7/client-common-src-0.3.7.jar" sourcepath="M2_REPO/org/waveprotocol/client-common-src/0.3.7/client-common-src-0.3.7-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-scheduler-src/0.3.7/client-scheduler-src-0.3.7.jar" sourcepath="M2_REPO/org/waveprotocol/client-scheduler-src/0.3.7/client-scheduler-src-0.3.7-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-src/0.3.7/client-src-0.3.7.jar" sourcepath="M2_REPO/org/waveprotocol/client-src/0.3.7/client-src-0.3.7-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/cobogw/gwt/cobogw/1.3.1/cobogw-1.3.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/common-src/0.3.5/common-src-0.3.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/common-src/0.3.7/common-src-0.3.7.jar" sourcepath="M2_REPO/org/waveprotocol/common-src/0.3.7/common-src-0.3.7-sources.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"/>
@@ -33,8 +33,8 @@
<classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar" sourcepath="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.5/commons-lang-2.5.jar" sourcepath="M2_REPO/commons-lang/commons-lang/2.5/commons-lang-2.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/communication-src/0.3.5/communication-src-0.3.5.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/concurrencycontrol-src/0.3.5/concurrencycontrol-src-0.3.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/communication-src/0.3.7/communication-src-0.3.7.jar" sourcepath="M2_REPO/org/waveprotocol/communication-src/0.3.7/communication-src-0.3.7-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/concurrencycontrol-src/0.3.7/concurrencycontrol-src-0.3.7.jar" sourcepath="M2_REPO/org/waveprotocol/concurrencycontrol-src/0.3.7/concurrencycontrol-src-0.3.7-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sourceforge/cssparser/cssparser/0.9.5/cssparser-0.9.5.jar" sourcepath="M2_REPO/net/sourceforge/cssparser/cssparser/0.9.5/cssparser-0.9.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar" sourcepath="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sf/dozer/dozer/4.0/dozer-4.0.jar" sourcepath="M2_REPO/net/sf/dozer/dozer/4.0/dozer-4.0-sources.jar"/>
@@ -55,7 +55,7 @@
<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.5/gwt-util-src-0.3.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/gwt-util-src/0.3.7/gwt-util-src-0.3.7.jar" sourcepath="M2_REPO/org/waveprotocol/gwt-util-src/0.3.7/gwt-util-src-0.3.7-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/allen_sauer/gwt/voices/gwt-voices/gwt-voices/2.0.0/gwt-voices-2.0.0.jar"/>
<classpathentry kind="var" path="M2_REPO/com/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"/>
@@ -111,16 +111,16 @@
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-profile/2.0/maven-profile-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-profile/2.0/maven-profile-2.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-project/2.0/maven-project-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-project/2.0/maven-project-2.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/media-src/0.3.5/media-src-0.3.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/media-src/0.3.7/media-src-0.3.7.jar" sourcepath="M2_REPO/org/waveprotocol/media-src/0.3.7/media-src-0.3.7-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/org/waveprotocol/model-src/0.3.5/model-src-0.3.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/model-src/0.3.7/model-src-0.3.7.jar" sourcepath="M2_REPO/org/waveprotocol/model-src/0.3.7/model-src-0.3.7-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.16/mvel2-2.0.16.jar" sourcepath="M2_REPO/org/mvel/mvel2/2.0.16/mvel2-2.0.16-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/mysql/mysql-connector-java/5.1.13/mysql-connector-java-5.1.13.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sourceforge/nekohtml/nekohtml/1.9.15/nekohtml-1.9.15.jar" sourcepath="M2_REPO/net/sourceforge/nekohtml/nekohtml/1.9.15/nekohtml-1.9.15-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar" sourcepath="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/proto-msg/0.3.5/proto-msg-0.3.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/proto-msg/0.3.7/proto-msg-0.3.7.jar"/>
<classpathentry kind="var" path="M2_REPO/org/w3c/css/sac/1.3/sac-1.3.jar" sourcepath="M2_REPO/org/w3c/css/sac/1.3/sac-1.3-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium-android-driver/2.12.0/selenium-android-driver-2.12.0.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium-android-driver/2.12.0/selenium-android-driver-2.12.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium-api/2.12.0/selenium-api-2.12.0.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium-api/2.12.0/selenium-api-2.12.0-sources.jar"/>
@@ -144,9 +144,9 @@
<classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/>
<classpathentry kind="var" path="M2_REPO/org/testng/testng/6.2.1/testng-6.2.1.jar" sourcepath="M2_REPO/org/testng/testng/6.2.1/testng-6.2.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/tigase/tigase-xmltools/3.3.5/tigase-xmltools-3.3.5.jar" sourcepath="M2_REPO/tigase/tigase-xmltools/3.3.5/tigase-xmltools-3.3.5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/util-src/0.3.5/util-src-0.3.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/util-src/0.3.7/util-src-0.3.7.jar" sourcepath="M2_REPO/org/waveprotocol/util-src/0.3.7/util-src-0.3.7-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.jar" sourcepath="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/waveinabox-server-0.3/0.3.5/waveinabox-server-0.3-0.3.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/waveinabox-server-0.3/0.3.7/waveinabox-server-0.3-0.3.7.jar"/>
<classpathentry kind="var" path="M2_REPO/xalan/xalan/2.7.1/xalan-2.7.1.jar" sourcepath="M2_REPO/xalan/xalan/2.7.1/xalan-2.7.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
<classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar" sourcepath="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2-sources.jar"/>
Modified: trunk/CREDITS
===================================================================
--- trunk/CREDITS 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/CREDITS 2011-11-23 14:33:50 UTC (rev 1618)
@@ -24,6 +24,6 @@
* Daniel Jiménez for the initial help and coordination
* Johnattan Rupire, William Austen Bradbury and Rana Hassan for their web contributions and
translations
-* Bastien Guerry for his French translation
+* Bastien Guerry for his French translation and for his ideas, feedback, support, inspiration
* and <URL:http://ourproject.org> and again <URL:http://xsto.info> and
<URL:http://iepala.es> for sharing with us their resources
Modified: trunk/img/kune-logos.svg
===================================================================
--- trunk/img/kune-logos.svg 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/img/kune-logos.svg 2011-11-23 14:33:50 UTC (rev 1618)
@@ -57,15 +57,15 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="1.27"
- inkscape:cx="372.04724"
- inkscape:cy="526.18109"
+ inkscape:zoom="1"
+ inkscape:cx="518.29119"
+ inkscape:cy="649.99995"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:window-width="1078"
inkscape:window-height="1867"
- inkscape:window-x="0"
- inkscape:window-y="24"
+ inkscape:window-x="1"
+ inkscape:window-y="52"
showguides="true"
inkscape:guide-bbox="true"
inkscape:guide-points="true"
@@ -543,10 +543,10 @@
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
- inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/kunecc-logo-16px.png"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/kunecc-logo-16px-low.png"
transform="matrix(0.31973654,0,0,0.31973654,157.58786,-7.1498137)"
id="g3289"
- style="opacity:0.4">
+ style="opacity:0.5">
<g
id="g3291"
transform="translate(380,-30)">
@@ -556,7 +556,7 @@
inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/kune-logo-1200.png"
id="path3293"
d="m 818.32888,1096.181 c -0.74303,0 -1.45723,0 -2.17391,0.049 -0.0669,0.014 -0.13033,0.037 -0.19763,0.049 -0.66715,0.1246 -1.32536,0.2309 -2.02569,0.247 -0.097,0.014 -0.19995,-0.014 -0.29644,0 -5.71605,0.8606 -10.54554,3.3425 -14.42688,7.4605 -4.53271,4.7871 -6.81817,10.5218 -6.81818,17.1937 0,6.7467 2.28548,12.5204 6.81818,17.2925 4.90667,5.146 11.2818,7.7075 19.12055,7.7075 4.15869,0 8.15681,-1.0333 11.95652,-3.1127 3.79965,-2.0195 7.10345,-4.8778 9.93083,-8.498 l -8.54743,-4.7431 c -3.68005,4.9067 -8.20158,7.3617 -13.58695,7.3617 -3.73988,0 -7.0931,-1.2132 -9.98024,-3.6067 -2.93207,-2.3935 -4.39727,-5.3089 -4.39723,-8.7945 l 39.08102,0 0,-1.9763 c -4e-5,-8.452 -2.86291,-15.2201 -8.54743,-20.3063 -4.78705,-4.2335 -10.0899,-6.324 -15.90909,-6.3241 z m -181.71937,0.3459 0,18.9229 -6.62055,0 0,9.6838 6.62055,0 0,19.7628 10.07905,0 0,-19.7628 6.07708,0 12.40119,19.7628 11.95652,0 -16.6502,-25.0988 15.90909,-22.332 -12.20356,0 -12.30237,17.9842 -5.18775,0 0,-18.9229 -10.07905,0 z m 123.66601,0 c -1.73503,0.3096 -3.35171,0.8136 -4.8419,1.581 -2.5132,1.3464 -4.49729,3.122 -5.97826,5.336 l 0,-5.9783 -10.12846,0 0,47.4308 10.12846,0 0,-26.581 c -1e-5,-3.7997 1.07224,-6.7151 3.21147,-8.7945 2.15413,-2.0793 4.88507,-3.1126 8.25098,-3.1126 3.56032,0 6.34065,0.9553 8.3004,2.915 1.95964,1.9597 2.91496,5.031 2.91502,9.1897 l 0,26.3834 10.12846,0 0,-28.6067 c -5e-5,-5.8192 -1.77567,-10.6272 -5.33597,-14.4269 -2.67029,-2.8497 -5.76,-4.6235 -9.28854,-5.336 l -7.36166,0 z m -76.77865,0.9387 0,27.4703 c -2e-5,6.4326 2.16853,11.6335 6.52173,15.6127 4.03904,3.7399 9.04189,5.6324 14.92095,5.6324 5.93886,0 10.91633,-1.8925 14.97036,-5.6324 4.35315,-3.9792 6.52169,-9.1801 6.52174,-15.6127 l 0,-27.4703 -10.12846,0 0,26.581 c -5e-5,3.5005 -1.0723,6.3484 -3.21146,8.5474 -2.21404,2.2739 -4.906,3.4091 -8.15218,3.4091 -3.12654,0 -5.83938,-1.1502 -8.05336,-3.4091 -2.19905,-2.2738 -3.2609,-5.1067 -3.26087,-8.5474 l 0,-26.581 -10.12845,0 z m 133.54743,7.8063 c 3.306,10e-5 6.19285,0.9268 8.64624,2.7668 2.37851,1.8849 4.13014,4.6309 5.23716,8.251 l -27.22332,0 c 0.79283,-3.4855 2.43792,-6.1925 4.8913,-8.1522 2.37853,-1.8998 5.18745,-2.8655 8.44862,-2.8656 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"
+ style="font-size:58.13353347999999698px;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"
inkscape:connector-curvature="0" />
<g
inkscape:export-ydpi="399.59854"
@@ -568,38 +568,38 @@
transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
id="path3297"
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"
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23953247000000033;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block"
inkscape:connector-curvature="0" />
<path
transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
id="path3299"
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"
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffdb6b;stroke-width:109.23950958000000355;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block"
inkscape:connector-curvature="0" />
<path
transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
id="path3301"
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"
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#69312f;stroke-width:109.23951721000000248;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block"
inkscape:connector-curvature="0" />
<path
transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
id="path3303"
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"
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#cc6633;stroke-width:109.23950195000000463;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block"
inkscape:connector-curvature="0" />
<path
transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)"
id="path3305"
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"
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23947905999999364;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:block"
inkscape:connector-curvature="0" />
</g>
</g>
<text
transform="scale(-1,1)"
xml:space="preserve"
- style="font-size:58.94304657px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#69312f;fill-opacity:1;stroke:none;font-family:Emblem"
+ style="font-size:58.94304656999999992px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#69312f;fill-opacity:1;stroke:none;font-family:Emblem"
x="-1306.0667"
y="1115.2828"
id="text3307"
@@ -610,7 +610,7 @@
y="1115.2828">cc</tspan></text>
<text
xml:space="preserve"
- style="font-size:87.16403198px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#cc6633;fill-opacity:1;stroke:none;font-family:Emblem"
+ style="font-size:87.16403198000000430px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#cc6633;fill-opacity:1;stroke:none;font-family:Emblem"
x="1218.1743"
y="1115.0084"
id="text3311"
@@ -716,5 +716,96 @@
inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/icons/favicon-demo.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
+ <g
+ transform="translate(-64.205696,-101.81263)"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-logo-16px-low.png"
+ id="g4171"
+ style="opacity:0.5">
+ <path
+ inkscape:connector-curvature="0"
+ style="font-size:58.13353347999999698px;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="path4173"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-logo-16px.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <g
+ id="g4175"
+ 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
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23953247000000033;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="path4177"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffdb6b;stroke-width:109.23950958000000355;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="path4179"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#69312f;stroke-width:109.23951721000000248;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="path4181"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#cc6633;stroke-width:109.23950195000000463;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="path4183"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23947905999999364;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="path4185"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" />
+ </g>
+ </g>
+ <g
+ id="g4187"
+ transform="matrix(0.1111494,0,0,0.111008,214.3621,-79.296659)"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-icon16-low.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ style="opacity:0.5">
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23953247000000033;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="path4189"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffdb6b;stroke-width:109.23950958000000355;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="path4191"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#69312f;stroke-width:109.23951721000000248;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="path4193"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#cc6633;stroke-width:109.23950195000000463;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="path4195"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23947905999999364;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="path4197"
+ transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" />
+ </g>
</g>
</svg>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/pom.xml 2011-11-23 14:33:50 UTC (rev 1618)
@@ -19,6 +19,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<slf4j.version>1.6.1</slf4j.version>
<openjpa.version>2.0.1</openjpa.version>
+ <wiab.version>0.3.7</wiab.version>
<skipTests>true</skipTests>
</properties>
<repositories>
@@ -528,12 +529,12 @@
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>proto-msg</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>gwt-util-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
@@ -543,52 +544,52 @@
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>box</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>box-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>model-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>client</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>client-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>client-common</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>client-common-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>waveinabox-server-0.3</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>proto-msg</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>gwt-util-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
@@ -598,67 +599,67 @@
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>box</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>box-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>model-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>client</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>client-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>client-common</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>client-common-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>common-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>util-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>concurrencycontrol-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>client-scheduler-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>media-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>org.waveprotocol</groupId>
<artifactId>communication-src</artifactId>
- <version>0.3.5</version>
+ <version>${wiab.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.findbugs</groupId>
Modified: trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -33,6 +33,8 @@
public class BartersClientTool extends FoldableAbstractClientTool {
+ private static final String THERE_ISN_T_ANY_BARTER = "There isn't any barter. ";
+
@Inject
public BartersClientTool(final I18nTranslationService i18n, final ToolSelector toolSelector,
final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources) {
@@ -63,8 +65,10 @@
registerContentTypeIcon(TYPE_FOLDER, navResources.folder());
registerContentTypeIcon(TYPE_ROOT, navResources.folder());
registerContentTypeIcon(TYPE_BARTER, navResources.barter());
- registerEmptyMessages(TYPE_FOLDER, i18n.t("This folder is empty"));
- registerEmptyMessages(TYPE_ROOT, i18n.t("There isn't any barter"));
+ registerEmptyMessages(TYPE_FOLDER, i18n.t(THERE_ISN_T_ANY_BARTER + "You can create some here"));
+ registerEmptyMessages(TYPE_ROOT, i18n.t(THERE_ISN_T_ANY_BARTER));
+ registerEmptyMessagesNotLogged(TYPE_FOLDER, i18n.t(THERE_ISN_T_ANY_BARTER));
+ registerEmptyMessagesNotLogged(TYPE_ROOT, i18n.t(THERE_ISN_T_ANY_BARTER));
}
}
Modified: trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -68,6 +68,8 @@
registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);
registerEmptyMessages(TYPE_ROOT, i18n.t("There isn't any blog, create one"));
registerEmptyMessages(TYPE_BLOG, i18n.t("This blog hasn't any post, create one"));
+ registerEmptyMessagesNotLogged(TYPE_ROOT, i18n.t("There isn't any blog"));
+ registerEmptyMessagesNotLogged(TYPE_BLOG, i18n.t("This blog hasn't any post"));
}
}
Modified: trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -57,8 +57,10 @@
private void registerIcons() {
registerContentTypeIcon(TYPE_ROOM, res.groupChat());
- registerEmptyMessages(TYPE_ROOM, i18n.tWithNT("See the archive of old conversations"
- + TextUtils.IN_DEVELOPMENT_P, "with Brackets"));
+ final String emptyMsg = i18n.tWithNT("See the archive of old conversations"
+ + TextUtils.IN_DEVELOPMENT_P, "with Brackets");
+ registerEmptyMessages(TYPE_ROOM, emptyMsg);
+ registerEmptyMessagesNotLogged(TYPE_ROOM, emptyMsg);
}
}
Modified: trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPresenter.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPresenter.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -19,8 +19,6 @@
*/
package cc.kune.core.client.cnt;
-import org.waveprotocol.box.webclient.client.HistorySupport;
-
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.core.client.services.FileDownloadUtils;
@@ -39,156 +37,153 @@
import com.google.inject.Provider;
-public abstract class FoldableContentPresenter extends AbstractContentPresenter implements FoldableContent {
+public abstract class FoldableContentPresenter extends AbstractContentPresenter implements
+ FoldableContent {
- private final GuiActionDescCollection actionRegistry;
- private final Provider<FileDownloadUtils> downloadProvider;
- private final I18nTranslationService i18n;
- private final Provider<MediaUtils> mediaUtils;
- protected final Session session;
- private final ActionContentToolbar toolbar;
- private final String toolName;
- private String uploadType;
- private String waveType;
+ private final GuiActionDescCollection actionRegistry;
+ private final Provider<FileDownloadUtils> downloadProvider;
+ private final I18nTranslationService i18n;
+ private final Provider<MediaUtils> mediaUtils;
+ protected final Session session;
+ private final ActionContentToolbar toolbar;
+ private final String toolName;
+ private String uploadType;
+ private String waveType;
- public FoldableContentPresenter(final String toolName, final StateManager stateManager, final Session session,
- final ActionContentToolbar toolbar, final GuiActionDescCollection actionRegistry,
- final Provider<FileDownloadUtils> downloadProvider, final I18nTranslationService i18n,
- final Provider<MediaUtils> mediaUtils) {
- this.toolName = toolName;
- this.session = session;
- this.toolbar = toolbar;
- this.actionRegistry = actionRegistry;
- this.downloadProvider = downloadProvider;
- this.i18n = i18n;
- this.mediaUtils = mediaUtils;
- stateManager.onStateChanged(true, new StateChangedHandler() {
- @Override
- public void onStateChanged(final StateChangedEvent event) {
- setState(event.getState());
- }
- });
- }
+ public FoldableContentPresenter(final String toolName, final StateManager stateManager,
+ final Session session, final ActionContentToolbar toolbar,
+ final GuiActionDescCollection actionRegistry, final Provider<FileDownloadUtils> downloadProvider,
+ final I18nTranslationService i18n, final Provider<MediaUtils> mediaUtils) {
+ this.toolName = toolName;
+ this.session = session;
+ this.toolbar = toolbar;
+ this.actionRegistry = actionRegistry;
+ this.downloadProvider = downloadProvider;
+ this.i18n = i18n;
+ this.mediaUtils = mediaUtils;
+ stateManager.onStateChanged(true, new StateChangedHandler() {
+ @Override
+ public void onStateChanged(final StateChangedEvent event) {
+ setState(event.getState());
+ }
+ });
+ }
- private String getContentBody(final StateContentDTO state) {
- final String contentBody = state.getContent();
- return contentBody;
- }
+ private String getContentBody(final StateContentDTO state) {
+ final String contentBody = state.getContent();
+ return contentBody;
+ }
- public String getToolName() {
- return toolName;
- }
+ public String getToolName() {
+ return toolName;
+ }
- public String getUploadType() {
- return uploadType;
- }
+ public String getUploadType() {
+ return uploadType;
+ }
- public String getWaveType() {
- return waveType;
- }
+ public String getWaveType() {
+ return waveType;
+ }
- @Override
- public void refreshState() {
- setState(session.getContentState());
+ @Override
+ public void refreshState() {
+ setState(session.getContentState());
+ }
+
+ protected void setContent(final StateContentDTO state) {
+ final String typeId = state.getTypeId();
+ NotifyUser.info(typeId);
+ if (typeId.equals(getUploadType())) {
+ setUploadedContent(state);
+ } else if (typeId.equals(getWaveType())) {
+ setNormalContent(state);
+ // setWaveContent(state.getContent());
+ } else {
+ setNormalContent(state);
}
+ view.attach();
+ }
- protected void setContent(final StateContentDTO state) {
- final String typeId = state.getTypeId();
- NotifyUser.info(typeId);
- if (typeId.equals(getUploadType())) {
- setUploadedContent(state);
- } else if (typeId.equals(getWaveType())) {
- setNormalContent(state);
- // setWaveContent(state.getContent());
- } else {
- setNormalContent(state);
- }
- view.attach();
+ private void setNormalContent(final StateContentDTO state) {
+ final String contentBody = getContentBody(state);
+ if (contentBody == null || contentBody.length() == 0) {
+ if (state.getContentRights().isEditable()) {
+ view.setInfoMessage(i18n.t("There is no text in this page. Feel free to edit this page"));
+ } else {
+ view.setInfoMessage(i18n.t("There is no text in this page"));
+ }
+ } else {
+ view.setRawContent(contentBody);
}
+ }
- private void setNormalContent(final StateContentDTO state) {
- final String contentBody = getContentBody(state);
- if (contentBody == null || contentBody.length() == 0) {
- if (state.getContentRights().isEditable()) {
- view.setInfoMessage(i18n.t("There is no text in this page. Feel free to edit this page"));
- } else {
- view.setInfoMessage(i18n.t("There is no text in this page"));
- }
+ protected void setState(final StateAbstractDTO state) {
+ toolbar.detach();
+ if (state instanceof StateContainerDTO) {
+ final StateContainerDTO stateCntCtx = (StateContainerDTO) state;
+ if (stateCntCtx.getToolName().equals(toolName)) {
+ // This tool
+ if (stateCntCtx instanceof StateContentDTO) {
+ setState((StateContentDTO) stateCntCtx);
} else {
- view.setRawContent(contentBody);
+ setState(stateCntCtx);
}
+ }
}
+ }
- protected void setState(final StateAbstractDTO state) {
- toolbar.detach();
- if (state instanceof StateContainerDTO) {
- final StateContainerDTO stateCntCtx = (StateContainerDTO) state;
- if (stateCntCtx.getToolName().equals(toolName)) {
- // This tool
- if (stateCntCtx instanceof StateContentDTO) {
- setState((StateContentDTO) stateCntCtx);
- } else {
- setState(stateCntCtx);
- }
- }
- }
- }
+ protected void setState(final StateContainerDTO state) {
+ setToolbar(actionRegistry);
+ attach();
+ }
- protected void setState(final StateContainerDTO state) {
- setToolbar(actionRegistry);
- attach();
- }
+ protected void setState(final StateContentDTO state) {
+ setToolbar(actionRegistry);
+ attach();
+ }
- protected void setState(final StateContentDTO state) {
- setToolbar(actionRegistry);
- attach();
- }
+ private void setToolbar(final GuiActionDescCollection collection) {
+ // toolbar.disableMenusAndClearButtons();
+ toolbar.addAll(collection);
+ toolbar.attach();
+ }
- private void setToolbar(final GuiActionDescCollection collection) {
- // toolbar.disableMenusAndClearButtons();
- toolbar.addAll(collection);
- toolbar.attach();
+ private void setUploadedContent(final StateContentDTO state) {
+ final String contentBody = state.getContent();
+ final StateToken token = state.getStateToken();
+ final BasicMimeTypeDTO mimeType = state.getMimeType();
+ if (mimeType != null) {
+ final FileDownloadUtils fileDownloadUtils = downloadProvider.get();
+ if (mimeType.isImage()) {
+ view.showImage(fileDownloadUtils.getImageUrl(token),
+ fileDownloadUtils.getImageResizedUrl(token, ImageSize.sized), false);
+ } else if (mimeType.isPdf()) {
+ view.showImage(fileDownloadUtils.getImageUrl(token),
+ fileDownloadUtils.getImageResizedUrl(token, ImageSize.sized), true);
+ } else if (mimeType.isMp3()) {
+ view.setRawContent(mediaUtils.get().getMp3Embed(token));
+ } else if (mimeType.isOgg()) {
+ view.setRawContent(mediaUtils.get().getOggEmbed(token));
+ } else if (mimeType.isFlv()) {
+ view.setRawContent(mediaUtils.get().getFlvEmbed(token));
+ } else if (mimeType.isAvi()) {
+ view.setRawContent(mediaUtils.get().getAviEmbed(token));
+ } else if (mimeType.isText()) {
+ view.setContent(contentBody, true);
+ } else {
+ view.setNoPreview();
+ }
+ } else {
+ view.setNoPreview();
}
+ }
- private void setUploadedContent(final StateContentDTO state) {
- final String contentBody = state.getContent();
- final StateToken token = state.getStateToken();
- final BasicMimeTypeDTO mimeType = state.getMimeType();
- if (mimeType != null) {
- final FileDownloadUtils fileDownloadUtils = downloadProvider.get();
- if (mimeType.isImage()) {
- view.showImage(fileDownloadUtils.getImageUrl(token),
- fileDownloadUtils.getImageResizedUrl(token, ImageSize.sized), false);
- } else if (mimeType.isPdf()) {
- view.showImage(fileDownloadUtils.getImageUrl(token),
- fileDownloadUtils.getImageResizedUrl(token, ImageSize.sized), true);
- } else if (mimeType.isMp3()) {
- view.setRawContent(mediaUtils.get().getMp3Embed(token));
- } else if (mimeType.isOgg()) {
- view.setRawContent(mediaUtils.get().getOggEmbed(token));
- } else if (mimeType.isFlv()) {
- view.setRawContent(mediaUtils.get().getFlvEmbed(token));
- } else if (mimeType.isAvi()) {
- view.setRawContent(mediaUtils.get().getAviEmbed(token));
- } else if (mimeType.isText()) {
- view.setContent(contentBody, true);
- } else {
- view.setNoPreview();
- }
- } else {
- view.setNoPreview();
- }
- }
+ public void setUploadType(final String uploadType) {
+ this.uploadType = uploadType;
+ }
- public void setUploadType(final String uploadType) {
- this.uploadType = uploadType;
- }
-
- private void setWaveContent(final String id) {
- view.setEditableWaveContent(HistorySupport.waveRefFromHistoryToken(id), false);
- }
-
- public void setWaveType(final String waveType) {
- this.waveType = waveType;
- }
+ public void setWaveType(final String waveType) {
+ this.waveType = waveType;
+ }
}
Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -21,6 +21,7 @@
import cc.kune.common.client.notify.NotifyLevel;
import cc.kune.common.client.notify.NotifyLevelImages;
+import cc.kune.common.client.tooltip.Tooltip;
import cc.kune.common.client.ui.MaskWidgetView;
import cc.kune.common.client.ui.dialogs.BasicTopDialog;
import cc.kune.common.client.ui.dialogs.BasicTopDialog.Builder;
@@ -145,15 +146,9 @@
publicDescField.setValidationDelay(1000);
form.add(publicDescField);
- tag1 = new TextField<String>();
- tag1.setTabIndex(4);
- tag1.setFieldLabel(i18n.t("Group tags"));
- tag1.setName(TAGS_FIELD);
- tag1.setWidth(DefaultForm.BIG_FIELD_WIDTH);
- tag1.setAllowBlank(false);
- tag1.setTitle(i18n.t("type some keyword that define your group"));
- tag1.setValidationDelay(1000);
- form.add(tag1);
+ form.add(createTagField(tag1));
+ // form.add(createTagField(tag2));
+ // form.add(createTagField(tag3));
final FieldSet groupTypeFieldSet = new FieldSet();
groupTypeFieldSet.setHeading(i18n.t("Group type"));
@@ -197,6 +192,18 @@
return form;
}
+ private TextField<String> createTagField(TextField<String> tag) {
+ tag = new TextField<String>();
+ tag.setTabIndex(4);
+ tag.setFieldLabel(i18n.t("Group tags"));
+ tag.setName(TAGS_FIELD);
+ tag.setWidth(DefaultForm.BIG_FIELD_WIDTH);
+ tag.setAllowBlank(false);
+ Tooltip.to(tag, i18n.t("type some keyword that define your group"));
+ tag.setValidationDelay(1000);
+ return tag;
+ }
+
@Override
public void focusOnShorName() {
shortNameField.focus();
Modified: trunk/src/main/java/cc/kune/core/client/registry/ContentCapabilitiesRegistry.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/registry/ContentCapabilitiesRegistry.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/core/client/registry/ContentCapabilitiesRegistry.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -31,6 +31,7 @@
private final DropableRegistry dropable;
private final EmailSubscribeAbleRegistry emailSubscribeAble;
private final EmptyMessagesRegistry emptyMessagesRegistry;
+ private final EmptyMessagesRegistry emptyMessagesRegistryNotLogged;
private final IconsRegistry iconsRegistry;
private final LicensableRegistry licensable;
private final NewMenusForTypeIdsRegistry newMenus;
@@ -54,6 +55,7 @@
final RateableRegistry rateable, final TageableRegistry tageable,
final RenamableRegistry renamable, final TranslatableRegistry translatable,
final VersionableRegistry versionable, final EmptyMessagesRegistry emptyMessagesRegistry,
+ final EmptyMessagesRegistry emptyMessagesRegistryNotLogged,
final XmppComentableRegistry xmppComentable, final XmppNotifyCapableRegistry xmppNotifyCapable,
final ShowDeletedRegistry showDeleted) {
this.authorable = authorableRegistry;
@@ -73,6 +75,8 @@
this.translatable = translatable;
this.versionable = versionable;
this.emptyMessagesRegistry = emptyMessagesRegistry;
+ this.emptyMessagesRegistryNotLogged = emptyMessagesRegistryNotLogged;
+
this.xmppComentable = xmppComentable;
this.xmppNotifyCapable = xmppNotifyCapable;
this.showDeleted = showDeleted;
@@ -114,6 +118,10 @@
return emptyMessagesRegistry;
}
+ public EmptyMessagesRegistry getEmptyMessagesRegistryNotLogged() {
+ return emptyMessagesRegistryNotLogged;
+ }
+
public IconsRegistry getIconsRegistry() {
return iconsRegistry;
}
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/search/SitebarSearchPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/search/SitebarSearchPanel.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/search/SitebarSearchPanel.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -41,7 +41,7 @@
private static final int SEARCH_TEXT_HEIGHT = 13;
private static final int SEARCH_TEXT_WIDTH_BIG = 160;
- private static final int SEARCH_TEXT_WIDTH_SMALL = 120;
+ private static final int SEARCH_TEXT_WIDTH_SMALL = 80;
public static final String SITE_SEARCH_BUTTON = "kune-ssp-searchbt";
public static final String SITE_SEARCH_TEXTBOX = "kune-ssp-tbox";
private final PushButton searchButton;
Modified: trunk/src/main/java/cc/kune/core/client/state/StateManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateManager.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/core/client/state/StateManager.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -26,8 +26,21 @@
public interface StateManager {
+ /**
+ * @param listener
+ * you can use this {@link BeforeActionListener} to intercept changes
+ * of state (for instance if you are editing and what to save, etc.
+ */
void addBeforeStateChangeListener(BeforeActionListener listener);
+ /**
+ * This permits to add custom #framents to urls and its associated actions
+ *
+ * @param token
+ * the url #fragment
+ * @param historyTokenCallback
+ * the action that will be executed when the previous url fragment
+ */
void addSiteToken(String token, HistoryTokenCallback historyTokenCallback);
String getCurrentToken();
Modified: trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -35,6 +35,8 @@
public class DocsClientTool extends FoldableAbstractClientTool {
+ private static final String EMPTY_CREATE_SOME = "This folder is empty. You can create some document or folder here.";
+
@Inject
public DocsClientTool(final I18nTranslationService i18n, final ToolSelector toolSelector,
final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources) {
@@ -66,8 +68,10 @@
registerContentTypeIcon(TYPE_ROOT, navResources.folder());
registerContentTypeIcon(TYPE_DOCUMENT, navResources.page());
registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);
- registerEmptyMessages(TYPE_FOLDER, i18n.t("This folder is empty"));
- registerEmptyMessages(TYPE_ROOT, i18n.t("This folder is empty"));
+ registerEmptyMessagesNotLogged(TYPE_FOLDER, i18n.t(EMPTY));
+ registerEmptyMessagesNotLogged(TYPE_ROOT, i18n.t(EMPTY));
+ registerEmptyMessages(TYPE_FOLDER, i18n.t(EMPTY_CREATE_SOME));
+ registerEmptyMessages(TYPE_ROOT, i18n.t(EMPTY_CREATE_SOME));
}
}
Modified: trunk/src/main/java/cc/kune/events/client/EventsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/EventsClientTool.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/events/client/EventsClientTool.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -60,7 +60,8 @@
private void registerIcons() {
registerContentTypeIcon(TYPE_ROOT, navResources.folder());
registerContentTypeIcon(TYPE_MEETING, navResources.calendar());
- registerEmptyMessages(TYPE_ROOT, i18n.t("There isn't any meeting"));
+ registerEmptyMessages(TYPE_ROOT, i18n.t("There isn't any meeting, create one"));
+ registerEmptyMessagesNotLogged(TYPE_ROOT, i18n.t("There isn't any meeting"));
}
}
Modified: trunk/src/main/java/cc/kune/gspace/client/tool/FoldableAbstractClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/tool/FoldableAbstractClientTool.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/gspace/client/tool/FoldableAbstractClientTool.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -31,6 +31,7 @@
public abstract class FoldableAbstractClientTool extends AbstractClientTool {
+ protected static final String EMPTY = "This folder is empty";
protected final ContentCapabilitiesRegistry contentCapabilitiesRegistry;
protected final I18nTranslationService i18n;
protected final NavResources navResources;
@@ -87,6 +88,10 @@
contentCapabilitiesRegistry.getEmptyMessagesRegistry().register(contentTypeId, message);
}
+ public void registerEmptyMessagesNotLogged(final String contentTypeId, final String message) {
+ contentCapabilitiesRegistry.getEmptyMessagesRegistryNotLogged().register(contentTypeId, message);
+ }
+
protected void registerLicensableTypes(final String... typeIds) {
contentCapabilitiesRegistry.getLicensable().register(typeIds);
}
Modified: trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenter.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenter.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -124,13 +124,16 @@
final ToolSelectorItem tool = tools.get(oldTool);
checkTool(tool);
tool.setSelected(false);
- tool.setToken(oldToken);
+ if (newToken != null && oldToken != null && newToken.getGroup().equals(oldToken.getGroup())) {
+ // only if we don't change of group
+ tool.setToken(oldToken);
+ }
}
if (TextUtils.notEmpty(newTool)) {
final ToolSelectorItem tool = tools.get(newTool);
checkTool(tool);
tool.setSelected(true);
- tool.setToken(newToken.copy().clearDocument().clearFolder());
+ tool.setGroupShortName(newToken.getGroup());
}
}
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerPanel.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerPanel.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -23,7 +23,6 @@
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.ui.HasEditHandler;
import cc.kune.common.client.ui.UiUtils;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.core.client.dnd.FolderViewerDropController;
import cc.kune.core.client.dnd.KuneDragController;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
@@ -136,9 +135,8 @@
}
@Override
- public void showEmptyMsg(final String contentTypeId) {
+ public void showEmptyMsg(final String emptyMessage) {
+ emptyLabel.setText(emptyMessage);
gsArmor.getDocContainer().add(emptyPanel);
- final String msg = capabilitiesRegistry.getEmptyMessagesRegistry().getContentTypeIcon(contentTypeId);
- emptyLabel.setText(TextUtils.empty(msg) ? i18n.t("This is empty.") : i18n.t(msg));
}
}
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -30,12 +30,14 @@
import org.waveprotocol.wave.model.waveref.WaveRef;
import org.waveprotocol.wave.util.escapers.GwtWaverefEncoder;
+import cc.kune.common.client.actions.BeforeActionListener;
import cc.kune.common.client.actions.ui.IsActionExtensible;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.errors.UIException;
import cc.kune.common.client.ui.HasEditHandler;
import cc.kune.common.client.ui.UiUtils;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
+import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.dto.StateContentDTO;
import cc.kune.core.shared.i18n.I18nTranslationService;
import cc.kune.gspace.client.GSpaceArmor;
@@ -97,7 +99,7 @@
@Inject
public ContentViewerPanel(final GSpaceArmor wsArmor, final WaveClientProvider waveClient,
final ContentCapabilitiesRegistry capabilitiesRegistry, final I18nTranslationService i18n,
- final EventBus eventBus) {
+ final EventBus eventBus, final StateManager stateManager) {
this.gsArmor = wsArmor;
this.waveClientProv = waveClient;
this.capabilitiesRegistry = capabilitiesRegistry;
@@ -110,6 +112,15 @@
waveClear();
}
});
+ stateManager.addBeforeStateChangeListener(new BeforeActionListener() {
+ @Override
+ public boolean beforeAction() {
+ // This fix lot of problems when you are editing and move to other
+ // location (without stop editing)
+ waveClear();
+ return true;
+ }
+ });
}
@Override
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerPresenter.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -25,6 +25,7 @@
import cc.kune.common.client.ui.EditEvent;
import cc.kune.common.client.ui.EditEvent.EditHandler;
import cc.kune.common.client.ui.HasEditHandler;
+import cc.kune.common.client.utils.TextUtils;
import cc.kune.core.client.actions.ActionRegistryByType;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.client.registry.IconsRegistry;
@@ -97,7 +98,7 @@
void setSubheaderActions(GuiActionDescCollection actions);
- void showEmptyMsg(String contentTypeId);
+ void showEmptyMsg(String message);
}
private final ActionRegistryByType actionsRegistry;
@@ -140,7 +141,8 @@
final String name = content.getName();
final Object icon = mimeType != null ? getIcon(stateToken, typeId, mimeType) : getIcon(stateToken,
typeId, status);
- final String tooltip = getTooltip(stateToken, mimeType, capabilitiesRegistry.isDragable(typeId) && rights.isAdministrable());
+ final String tooltip = getTooltip(stateToken, mimeType, capabilitiesRegistry.isDragable(typeId)
+ && rights.isAdministrable());
if (status.equals(ContentStatus.inTheDustbin)
&& (!capabilitiesRegistry.showDeleted(typeId) && !session.getShowDeletedContent())) {
// Don't show
@@ -176,7 +178,15 @@
private void createChildItems(final ContainerDTO container, final AccessRights containerRights) {
if (container.getContents().size() + container.getChilds().size() == 0) {
- getView().showEmptyMsg(container.getTypeId());
+ String msg = null;
+ final String typeId = container.getTypeId();
+ if (session.isLogged()) {
+ msg = capabilitiesRegistry.getEmptyMessagesRegistry().getContentTypeIcon(typeId);
+ } else {
+ msg = capabilitiesRegistry.getEmptyMessagesRegistryNotLogged().getContentTypeIcon(typeId);
+ }
+ final String emptyMessage = TextUtils.empty(msg) ? i18n.t("This is empty.") : i18n.t(msg);
+ getView().showEmptyMsg(emptyMessage);
} else {
// Folders
for (final ContainerSimpleDTO childFolder : container.getChilds()) {
Modified: trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -66,8 +66,12 @@
registerContentTypeIcon(TYPE_POST, navResources.email());
final String noWave = i18n.t("There is nothing posted yet. Post something");
final String noList = i18n.t("There isn't any list, create one");
+ final String noWaveNotLogged = i18n.t("There is nothing posted yet");
+ final String noListNotLogged = i18n.t("There isn't any list");
registerEmptyMessages(TYPE_ROOT, noList);
registerEmptyMessages(TYPE_LIST, noWave);
+ registerEmptyMessagesNotLogged(TYPE_ROOT, noListNotLogged);
+ registerEmptyMessagesNotLogged(TYPE_LIST, noWaveNotLogged);
// registerShowDeleted();
}
Modified: trunk/src/main/java/cc/kune/tasks/client/TasksClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/tasks/client/TasksClientTool.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/tasks/client/TasksClientTool.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -35,6 +35,8 @@
public class TasksClientTool extends FoldableAbstractClientTool {
+ private static final String NO_TASK = "There isn't any task";
+
@Inject
public TasksClientTool(final I18nTranslationService i18n, final ToolSelector toolSelector,
final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources) {
@@ -66,9 +68,11 @@
registerContentTypeIcon(TYPE_FOLDER, navResources.taskfolder());
registerContentTypeIcon(TYPE_TASK, navResources.task());
registerContentTypeIcon(TYPE_TASK, ContentStatus.inTheDustbin, navResources.taskdone());
- final String noTask = i18n.t("There isn't any task, create one");
- registerEmptyMessages(TYPE_ROOT, noTask);
- registerEmptyMessages(TYPE_FOLDER, noTask);
+ final String noTaskLogged = i18n.t(NO_TASK + ", create one");
+ registerEmptyMessages(TYPE_ROOT, noTaskLogged);
+ registerEmptyMessages(TYPE_FOLDER, noTaskLogged);
+ registerEmptyMessagesNotLogged(TYPE_ROOT, NO_TASK);
+ registerEmptyMessagesNotLogged(TYPE_FOLDER, NO_TASK);
registerShowDeleted(TYPE_FOLDER, TYPE_ROOT, TYPE_TASK);
}
Modified: trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -36,11 +36,8 @@
import org.waveprotocol.wave.client.wavepanel.view.dom.ModelAsViewProvider;
import org.waveprotocol.wave.client.wavepanel.view.dom.full.BlipQueueRenderer;
import org.waveprotocol.wave.client.wavepanel.view.dom.full.DomRenderer;
-import org.waveprotocol.wave.model.conversation.Conversation;
-import org.waveprotocol.wave.model.conversation.ConversationBlip;
import org.waveprotocol.wave.model.conversation.ConversationView;
import org.waveprotocol.wave.model.id.IdGenerator;
-import org.waveprotocol.wave.model.id.ModernIdSerialiser;
import org.waveprotocol.wave.model.waveref.WaveRef;
import com.google.gwt.dom.client.Element;
@@ -124,7 +121,7 @@
@Override
protected AsyncHolder<StageTwo> createStageTwoLoader(StageOne one) {
return haltIfClosed(new StageTwoProvider(
- this.one = one, waveRef.getWaveId(), channel, isNewWave, idGenerator, profiles) {
+ this.one = one, waveRef, channel, isNewWave, idGenerator, profiles) {
// Kune patch
@Override
protected DomRenderer createRenderer() {
@@ -193,33 +190,8 @@
}
private void handleExistingWave(StageThree three) {
- // If there's blip reference then focus on that blip.
- String documentId = waveRef.getDocumentId();
- if (documentId != null) {
- ModelAsViewProvider views = two.getModelAsViewProvider();
BlipQueueRenderer blipQueue = two.getBlipQueue();
- ConversationView wave = two.getConversations();
blipQueue.flush();
- // Find conversation
- Conversation conversation;
- if (waveRef.hasWaveletId()) {
- String id = ModernIdSerialiser.INSTANCE.serialiseWaveletId(waveRef.getWaveletId());
- conversation = wave.getConversation(id);
- } else {
- // Unspecified wavelet means root.
- conversation = wave.getRoot();
- }
- if (conversation != null) {
- // Find selected blip.
- ConversationBlip blip = wave.getRoot().getBlip(documentId);
- if (blip != null) {
- BlipView blipUi = views.getBlipView(blip);
- if (blipUi != null) {
- two.getStageOne().getFocusFrame().focus(blipUi);
- }
- }
- }
- }
}
public void destroy() {
Modified: trunk/src/main/java/cc/kune/wave/client/WebClient.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WebClient.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/wave/client/WebClient.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -28,6 +28,7 @@
import org.waveprotocol.box.webclient.client.ClientEvents;
import org.waveprotocol.box.webclient.client.ClientIdGenerator;
import org.waveprotocol.box.webclient.client.DebugMessagePanel;
+import org.waveprotocol.box.webclient.client.HistoryProvider;
import org.waveprotocol.box.webclient.client.HistorySupport;
import org.waveprotocol.box.webclient.client.RemoteViewServiceMultiplexer;
import org.waveprotocol.box.webclient.client.Session;
@@ -183,6 +184,12 @@
final String message = stack.asString().replace("<br>", "\n");
REMOTE_LOG.severe(message);
NotifyUser.logError(message);
+ NotifyUser.showProgress("Error in editor");
+ new Timer() {
+ @Override
+ public void run() {
+ NotifyUser.hideProgress();
+ }}.schedule(3000);
}
});
}
@@ -285,7 +292,19 @@
//setupConnectionIndicator();
// Done in StateManager
- HistorySupport.kuneInit(tokenMatcher, session);
+ HistorySupport.init(new HistoryProvider() {
+ @Override
+ public String getToken() {
+ final String currentToken = History.getToken();
+ String waveToken = currentToken;
+ // FIXME what about preview?
+ if (tokenMatcher.isGroupToken(currentToken) || tokenMatcher.isHomeToken(currentToken)) {
+ waveToken = session.getContentState().getWaveRef();
+ LOG.info("Kune URL: " + currentToken + " = " + waveToken);
+ }
+ return waveToken;
+ }
+ });
loginImpl();
Modified: trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -34,6 +34,8 @@
public class WikiClientTool extends FoldableAbstractClientTool {
+ private static final String EMPTY_FOLDER = "This folder is empty, create some wikipage or folder";
+
@Inject
public WikiClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources) {
@@ -65,8 +67,10 @@
registerContentTypeIcon(TYPE_ROOT, navResources.folder());
registerContentTypeIcon(TYPE_WIKIPAGE, navResources.wikipage());
registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);
- registerEmptyMessages(TYPE_FOLDER, i18n.t("This folder is empty"));
- registerEmptyMessages(TYPE_ROOT, i18n.t("This wiki is empty"));
+ registerEmptyMessages(TYPE_FOLDER, i18n.t(EMPTY_FOLDER));
+ registerEmptyMessages(TYPE_ROOT, i18n.t(EMPTY_FOLDER));
+ registerEmptyMessagesNotLogged(TYPE_FOLDER, i18n.t("This folder is empty"));
+ registerEmptyMessagesNotLogged(TYPE_ROOT, i18n.t("This wiki is empty"));
}
}
Deleted: trunk/src/main/java/org/waveprotocol/box/webclient/client/HistorySupport.java
===================================================================
--- trunk/src/main/java/org/waveprotocol/box/webclient/client/HistorySupport.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/org/waveprotocol/box/webclient/client/HistorySupport.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -1,85 +0,0 @@
-// @formatter:off
-/*
- * Copyright 2010 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 org.waveprotocol.box.webclient.client;
-
-import javax.annotation.Nullable;
-
-import org.waveprotocol.box.webclient.client.events.Log;
-import org.waveprotocol.wave.model.waveref.InvalidWaveRefException;
-import org.waveprotocol.wave.model.waveref.WaveRef;
-import org.waveprotocol.wave.util.escapers.GwtWaverefEncoder;
-
-import cc.kune.core.client.state.TokenMatcher;
-
-/**
- * Contains the code to interface the history event mechanism with the client's
- * event bus. At the moment, a history token encodes a wave id or wave ref.
- */
-public class HistorySupport {
- private static final Log LOG = Log.get(HistorySupport.class);
- private static TokenMatcher tokenMatcher;
- private static cc.kune.core.client.state.Session session;
- public static void kuneInit(TokenMatcher tokenMatcher, cc.kune.core.client.state.Session session) {
- HistorySupport.tokenMatcher = tokenMatcher;
- HistorySupport.session = session;
- }
- public static void init() {
-// History.addValueChangeHandler(new ValueChangeHandler<String>() {
-// @Override
-// public void onValueChange(ValueChangeEvent<String> event) {
-// String encodedToken = event.getValue();
-// if (encodedToken == null || encodedToken.length() == 0) {
-// return;
-// }
-// WaveRef waveRef = waveRefFromHistoryToken(encodedToken);
-// if (waveRef == null) {
-// LOG.info("History token contains invalid path: " + encodedToken);
-// return;
-// }
-// LOG.info("Changing selected wave based on history event to " + waveRef.toString());
-// ClientEvents.get().fireEvent(new WaveSelectionEvent(waveRef));
-// }
-// });
- }
-
- /**
- * @param encodedToken token to parse into waveref
- * @return null if cannot parse into valid waveRef
- */
- @Nullable
- public static WaveRef waveRefFromHistoryToken(String encodedToken) {
- LOG.info("Encoded token: " + encodedToken);
- String waveToken = encodedToken;
- if (tokenMatcher.isGroupToken(encodedToken) || tokenMatcher.isHomeToken(encodedToken)) {
- waveToken = session.getContentState().getWaveRef();
- LOG.info("Kune URL: " + encodedToken + " = " + waveToken);
- }
- try {
- return GwtWaverefEncoder.decodeWaveRefFromPath(waveToken);
- } catch (InvalidWaveRefException e) {
- return null;
- }
- }
-
- public static String historyTokenFromWaveref(WaveRef ref) {
- return GwtWaverefEncoder.encodeToUriPathSegment(ref);
- }
-
- private HistorySupport() {
- }
-}
Deleted: trunk/src/main/java/org/waveprotocol/wave/client/wavepanel/impl/toolbar/EditToolbar.java
===================================================================
--- trunk/src/main/java/org/waveprotocol/wave/client/wavepanel/impl/toolbar/EditToolbar.java 2011-11-19 15:02:45 UTC (rev 1617)
+++ trunk/src/main/java/org/waveprotocol/wave/client/wavepanel/impl/toolbar/EditToolbar.java 2011-11-23 14:33:50 UTC (rev 1618)
@@ -1,610 +0,0 @@
-// @formatter:off
-/**
- * Copyright 2010 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 org.waveprotocol.wave.client.wavepanel.impl.toolbar;
-
-import org.waveprotocol.box.webclient.client.HistorySupport;
-import org.waveprotocol.wave.client.common.util.WaveRefConstants;
-import org.waveprotocol.wave.client.doodad.link.Link;
-import org.waveprotocol.wave.client.doodad.link.Link.InvalidLinkException;
-import org.waveprotocol.wave.client.editor.Editor;
-import org.waveprotocol.wave.client.editor.EditorContext;
-import org.waveprotocol.wave.client.editor.EditorContextAdapter;
-import org.waveprotocol.wave.client.editor.content.CMutableDocument;
-import org.waveprotocol.wave.client.editor.content.ContentElement;
-import org.waveprotocol.wave.client.editor.content.ContentNode;
-import org.waveprotocol.wave.client.editor.content.misc.StyleAnnotationHandler;
-import org.waveprotocol.wave.client.editor.content.paragraph.Paragraph;
-import org.waveprotocol.wave.client.editor.content.paragraph.Paragraph.LineStyle;
-import org.waveprotocol.wave.client.editor.toolbar.ButtonUpdater;
-import org.waveprotocol.wave.client.editor.toolbar.ParagraphApplicationController;
-import org.waveprotocol.wave.client.editor.toolbar.ParagraphTraversalController;
-import org.waveprotocol.wave.client.editor.toolbar.TextSelectionController;
-import org.waveprotocol.wave.client.editor.util.EditorAnnotationUtil;
-import org.waveprotocol.wave.client.gadget.GadgetXmlUtil;
-import org.waveprotocol.wave.client.wavepanel.impl.toolbar.attachment.AttachmentPopupWidget;
-import org.waveprotocol.wave.client.wavepanel.impl.toolbar.gadget.GadgetSelectorWidget;
-import org.waveprotocol.wave.client.wavepanel.view.AttachmentPopupView;
-import org.waveprotocol.wave.client.wavepanel.view.AttachmentPopupView.Listener;
-import org.waveprotocol.wave.client.widget.popup.UniversalPopup;
-import org.waveprotocol.wave.client.widget.toolbar.SubmenuToolbarView;
-import org.waveprotocol.wave.client.widget.toolbar.ToolbarButtonViewBuilder;
-import org.waveprotocol.wave.client.widget.toolbar.ToolbarView;
-import org.waveprotocol.wave.client.widget.toolbar.ToplevelToolbarWidget;
-import org.waveprotocol.wave.client.widget.toolbar.buttons.ToolbarClickButton;
-import org.waveprotocol.wave.client.widget.toolbar.buttons.ToolbarToggleButton;
-import org.waveprotocol.wave.media.model.AttachmentIdGenerator;
-import org.waveprotocol.wave.media.model.AttachmentIdGeneratorImpl;
-import org.waveprotocol.wave.model.document.util.FocusedRange;
-import org.waveprotocol.wave.model.document.util.LineContainers;
-import org.waveprotocol.wave.model.document.util.Point;
-import org.waveprotocol.wave.model.document.util.XmlStringBuilder;
-import org.waveprotocol.wave.model.id.IdGenerator;
-import org.waveprotocol.wave.model.wave.ParticipantId;
-import org.waveprotocol.wave.model.waveref.WaveRef;
-import org.waveprotocol.wave.util.escapers.GwtWaverefEncoder;
-
-import com.google.common.base.Preconditions;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.dom.client.Document;
-import com.google.gwt.dom.client.Element;
-import com.google.gwt.dom.client.Style.Unit;
-import com.google.gwt.http.client.URL;
-import com.google.gwt.user.client.History;
-import com.google.gwt.user.client.Window;
-
-/**
- * Attaches actions that can be performed in a Wave's "edit mode" to a toolbar.
- * <p>
- * Also constructs an initial set of such actions.
- *
- * @author kalman at google.com (Benjamin Kalman)
- */
-public class EditToolbar {
-
- /**
- * Container for an alignment.
- */
- private static final class Alignment {
- public final String description;
- public final String iconCss;
- public final LineStyle style;
- public Alignment(final String description, final String iconCss, final LineStyle style) {
- this.description = description;
- this.iconCss = iconCss;
- this.style = style;
- }
- }
-
- /**
- * Handler for click buttons added with {@link EditToolbar#addClickButton}.
- */
- public interface ClickHandler {
- void onClicked(EditorContext context);
- }
-
- /**
- * Container for a font family.
- */
- private static final class FontFamily {
- public final String description;
- public final String style;
- public FontFamily(final String description, final String style) {
- this.description = description;
- this.style = style;
- }
- }
-
- private static <E> E[] asArray(final E... elements) {
- return elements;
- }
- /**
- * Attaches editor behaviour to a toolbar, adding all the edit buttons.
- */
- public static EditToolbar create(final ParticipantId user, final IdGenerator idGenerator) {
- final ToplevelToolbarWidget toolbarUi = new ToplevelToolbarWidget();
- final EditorToolbarResources.Css css = EditorToolbarResources.Loader.res.css();
- return new EditToolbar(css, toolbarUi, user, idGenerator);
- }
- private final AttachmentIdGenerator attachmentIdGenerator;
- private final EditorToolbarResources.Css css;
-
- private final EditorContextAdapter editor = new EditorContextAdapter(null);
- private final ToplevelToolbarWidget toolbarUi;
-
- private final ButtonUpdater updater = new ButtonUpdater(editor);
-
- private final ParticipantId user;
-
- private EditToolbar(final EditorToolbarResources.Css css, final ToplevelToolbarWidget toolbarUi,
- final ParticipantId user, final IdGenerator idGenerator) {
- this.css = css;
- this.toolbarUi = toolbarUi;
- this.user = user;
- attachmentIdGenerator = new AttachmentIdGeneratorImpl(idGenerator);
- }
-
- /**
- * Adds a button to this toolbar.
- */
- public void addClickButton(final String icon, final ClickHandler handler) {
- final ToolbarClickButton.Listener uiHandler = new ToolbarClickButton.Listener() {
- @Override
- public void onClicked() {
- handler.onClicked(editor);
- }
- };
- new ToolbarButtonViewBuilder().setIcon(icon).applyTo(toolbarUi.addClickButton(), uiHandler);
- }
-
- private void createAlignButtons(final ToolbarView toolbar) {
- final SubmenuToolbarView submenu = toolbar.addSubmenu();
- new ToolbarButtonViewBuilder()
- .setIcon(css.alignDrop())
- .applyTo(submenu, null);
- submenu.setShowDropdownArrow(false); // Icon already has dropdown arrow.
- final ToolbarView group = submenu.addGroup();
- for (final Alignment alignment : asArray(
- new Alignment("Left", css.alignLeft(), Paragraph.Alignment.LEFT),
- new Alignment("Centre", css.alignCentre(), Paragraph.Alignment.CENTER),
- new Alignment("Right", css.alignRight(), Paragraph.Alignment.RIGHT))) {
- final ToolbarToggleButton b = group.addToggleButton();
- new ToolbarButtonViewBuilder()
- .setText(alignment.description)
- .setIcon(alignment.iconCss)
- .applyTo(b, createParagraphApplicationController(b, alignment.style));
- }
- }
-
- private void createBoldButton(final ToolbarView toolbar) {
- final ToolbarToggleButton b = toolbar.addToggleButton();
- new ToolbarButtonViewBuilder()
- .setIcon(css.bold())
- .applyTo(b, createTextSelectionController(b, "fontWeight", "bold"));
- }
-
- private void createClearFormattingButton(final ToolbarView toolbar) {
- new ToolbarButtonViewBuilder()
- .setIcon(css.clearFormatting())
- .applyTo(toolbar.addClickButton(), new ToolbarClickButton.Listener() {
- @Override public void onClicked() {
- EditorAnnotationUtil.clearAnnotationsOverSelection(editor, asArray(
- StyleAnnotationHandler.key("backgroundColor"),
- StyleAnnotationHandler.key("color"),
- StyleAnnotationHandler.key("fontFamily"),
- StyleAnnotationHandler.key("fontSize"),
- StyleAnnotationHandler.key("fontStyle"),
- StyleAnnotationHandler.key("fontWeight"),
- StyleAnnotationHandler.key("textDecoration")
- // NOTE: add more as required.
- ));
- createClearHeadingsListener().onClicked();
- }
- });
- }
-
- private ToolbarClickButton.Listener createClearHeadingsListener() {
- return new ParagraphTraversalController(editor, new ContentElement.Action() {
- @Override public void execute(final ContentElement e) {
- e.getMutableDoc().setElementAttribute(e, Paragraph.SUBTYPE_ATTR, null);
- }
- });
- }
-
- private void createFontFamilyButton(final ToolbarView toolbar) {
- final SubmenuToolbarView submenu = toolbar.addSubmenu();
- new ToolbarButtonViewBuilder()
- .setIcon(css.fontFamily())
- .applyTo(submenu, null);
- submenu.setShowDropdownArrow(false); // Icon already has dropdown arrow.
- createFontFamilyGroup(submenu.addGroup(), new FontFamily("Default", null));
- createFontFamilyGroup(submenu.addGroup(),
- new FontFamily("Sans Serif", "sans-serif"),
- new FontFamily("Serif", "serif"),
- new FontFamily("Wide", "arial black,sans-serif"),
- new FontFamily("Narrow", "arial narrow,sans-serif"),
- new FontFamily("Fixed Width", "monospace"));
- createFontFamilyGroup(submenu.addGroup(),
- new FontFamily("Arial", "arial,helvetica,sans-serif"),
- new FontFamily("Comic Sans MS", "comic sans ms,sans-serif"),
- new FontFamily("Courier New", "courier new,monospace"),
- new FontFamily("Garamond", "garamond,serif"),
- new FontFamily("Georgia", "georgia,serif"),
- new FontFamily("Tahoma", "tahoma,sans-serif"),
- new FontFamily("Times New Roman", "times new roman,serif"),
- new FontFamily("Trebuchet MS", "trebuchet ms,sans-serif"),
- new FontFamily("Verdana", "verdana,sans-serif"));
- }
-
- private Element createFontFamilyElement(final FontFamily family) {
- final Element e = Document.get().createSpanElement();
- e.getStyle().setProperty("fontFamily", family.style);
- e.setInnerText(family.description);
- return e;
- }
-
- private void createFontFamilyGroup(final ToolbarView toolbar, final FontFamily... families) {
- for (final FontFamily family : families) {
- final ToolbarToggleButton b = toolbar.addToggleButton();
- b.setVisualElement(createFontFamilyElement(family));
- b.setListener(createTextSelectionController(b, "fontFamily", family.style));
- }
- }
-
- private void createFontSizeButton(final ToolbarView toolbar) {
- final SubmenuToolbarView submenu = toolbar.addSubmenu();
- new ToolbarButtonViewBuilder()
- .setIcon(css.fontSize())
- .applyTo(submenu, null);
- submenu.setShowDropdownArrow(false); // Icon already has dropdown arrow.
- // TODO(kalman): default text size option.
- final ToolbarView group = submenu.addGroup();
- for (final int size : asArray(8, 9, 10, 11, 12, 14, 16, 18, 21, 24, 28, 32, 36, 42, 48, 56, 64, 72)) {
- final ToolbarToggleButton b = group.addToggleButton();
- final double baseSize = 12.0;
- b.setVisualElement(createFontSizeElement(baseSize, size));
- b.setListener(createTextSelectionController(b, "fontSize", (size / baseSize) + "em"));
- }
- }
-
- private Element createFontSizeElement(final double baseSize, final double size) {
- final Element e = Document.get().createSpanElement();
- e.getStyle().setFontSize(size / baseSize, Unit.EM);
- e.setInnerText(((int) size) + "");
- return e;
- }
-
- private void createHeadingButton(final ToolbarView toolbar) {
- final SubmenuToolbarView submenu = toolbar.addSubmenu();
- new ToolbarButtonViewBuilder()
- .setIcon(css.heading())
- .applyTo(submenu, null);
- submenu.setShowDropdownArrow(false); // Icon already has dropdown arrow.
- final ToolbarClickButton defaultButton = submenu.addClickButton();
- new ToolbarButtonViewBuilder()
- .setText("Default")
- .applyTo(defaultButton, createClearHeadingsListener());
- final ToolbarView group = submenu.addGroup();
- for (final int level : asArray(1, 2, 3, 4)) {
- final ToolbarToggleButton b = group.addToggleButton();
- b.setVisualElement(createHeadingElement(level));
- b.setListener(createParagraphApplicationController(b, Paragraph.regularStyle("h" + level)));
- }
- }
-
- private Element createHeadingElement(final int level) {
- final Element e = Document.get().createElement("h" + level);
- e.getStyle().setMarginTop(2, Unit.PX);
- e.getStyle().setMarginBottom(2, Unit.PX);
- e.setInnerText("Heading " + level);
- return e;
- }
-
- private void createIndentButton(final ToolbarView toolbar) {
- final ToolbarClickButton b = toolbar.addClickButton();
- new ToolbarButtonViewBuilder()
- .setIcon(css.indent())
- .applyTo(b, new ParagraphTraversalController(editor, Paragraph.INDENTER));
- }
-
- private void createInsertAttachmentButton(final ToolbarView toolbar, final ParticipantId user) {
- // Find the current wave id.
- final String encodedToken = History.getToken();
- WaveRef waveRef = null;
- if (encodedToken != null && !encodedToken.isEmpty()) {
- waveRef = HistorySupport.waveRefFromHistoryToken(encodedToken);
- }
- // Kune workaround while we do a HistorySupport patch
- if (waveRef == null) {
- return;
- }
- Preconditions.checkState(waveRef != null);
- final String waveRefToken = URL.encode(GwtWaverefEncoder.encodeToUriQueryString(waveRef));
-
- new ToolbarButtonViewBuilder().setIcon(css.insertAttachment()).setTooltip("Insert attachment")
- .applyTo(toolbar.addClickButton(), new ToolbarClickButton.Listener() {
- @Override
- public void onClicked() {
- int tmpCursor = -1;
- final FocusedRange focusedRange = editor.getSelectionHelper().getSelectionRange();
- if (focusedRange != null) {
- tmpCursor = focusedRange.getFocus();
- }
- final int cursorLoc = tmpCursor;
- final AttachmentPopupView attachmentView = new AttachmentPopupWidget();
- attachmentView.init(new Listener() {
-
- @Override
- public void onDone(final String encodedWaveRef, final String attachmentId, final String fullFileName) {
- // Insert a file name linking to the attachment URL.
- final int lastSlashPos = fullFileName.lastIndexOf("/");
- final int lastBackSlashPos = fullFileName.lastIndexOf("\\");
- String fileName = fullFileName;
- if (lastSlashPos != -1) {
- fileName = fullFileName.substring(lastSlashPos + 1, fullFileName.length());
- } else if (lastBackSlashPos != -1) {
- fileName = fullFileName.substring(lastBackSlashPos + 1, fullFileName.length());
- }
- final XmlStringBuilder xml = XmlStringBuilder.createFromXmlString(fileName);
- int to = -1;
- final int docSize = editor.getDocument().size();
- if (cursorLoc != -1) {
- // Insert the attachment at the cursor location.
- final CMutableDocument doc = editor.getDocument();
- final Point<ContentNode> point = doc.locate(cursorLoc);
- doc.insertXml(point, xml);
- } else {
- LineContainers.appendLine(editor.getDocument(), xml);
- }
- // Calculate the link length for the attachment.
- to = cursorLoc + editor.getDocument().size() - docSize;
- final String linkValue =
- GWT.getHostPageBaseURL() + "attachment/" + attachmentId + "?fileName="
- + fileName + "&waveRef=" + encodedWaveRef;
- EditorAnnotationUtil.setAnnotationOverRange(editor.getDocument(),
- editor.getCaretAnnotations(), Link.KEY, linkValue, cursorLoc, to);
- // Store the attachment information as annotations to allow
- // robots detect and process them.
- EditorAnnotationUtil.setAnnotationOverRange(editor.getDocument(),
- editor.getCaretAnnotations(), "attachment/id", attachmentId, cursorLoc, to);
- EditorAnnotationUtil.setAnnotationOverRange(editor.getDocument(),
- editor.getCaretAnnotations(), "attachment/fileName", fileName, cursorLoc, to);
- }
-
- @Override
- public void onHide() {
- }
-
- @Override
- public void onShow() {
- }
- });
-
- attachmentView.setAttachmentId(attachmentIdGenerator.newAttachmentId());
- attachmentView.setWaveRef(waveRefToken);
- attachmentView.show();
- }
- });
-}
-
- private void createInsertGadgetButton(final ToolbarView toolbar, final ParticipantId user) {
- new ToolbarButtonViewBuilder()
- .setIcon(css.insertGadget())
- .applyTo(toolbar.addClickButton(), new ToolbarClickButton.Listener() {
- @Override public void onClicked() {
- final GadgetSelectorWidget selector = new GadgetSelectorWidget();
- selector.addFeaturedOptions();
- final UniversalPopup popup = selector.showInPopup();
- selector.setListener(new GadgetSelectorWidget.Listener() {
- @Override public void onSelect(final String url) {
- insertGadget(url);
- popup.hide();
- }
- });
- }
- });
- }
-
- private void createInsertLinkButton(final ToolbarView toolbar) {
- // TODO (Yuri Z.) use createTextSelectionController when the full
- // link doodad is incorporated
- new ToolbarButtonViewBuilder()
- .setIcon(css.insertLink())
- .applyTo(toolbar.addClickButton(), new ToolbarClickButton.Listener() {
- @Override public void onClicked() {
- final FocusedRange range = editor.getSelectionHelper().getSelectionRange();
- if (range == null || range.isCollapsed()) {
- Window.alert("Select some text to create a link.");
- return;
- }
- final String rawLinkValue =
- Window.prompt("Enter link: URL or Wave ID.", WaveRefConstants.WAVE_URI_PREFIX);
- // user hit "ESC" or "cancel"
- if (rawLinkValue == null) {
- return;
- }
- try {
- final String linkAnnotationValue = Link.normalizeLink(rawLinkValue);
- EditorAnnotationUtil.setAnnotationOverSelection(editor, Link.KEY,
- linkAnnotationValue);
- } catch (final InvalidLinkException e) {
- Window.alert(e.getLocalizedMessage());
- }
- }
- });
- }
-
- private void createItalicButton(final ToolbarView toolbar) {
- final ToolbarToggleButton b = toolbar.addToggleButton();
- new ToolbarButtonViewBuilder()
- .setIcon(css.italic())
- .applyTo(b, createTextSelectionController(b, "fontStyle", "italic"));
- }
-
- private void createOrderedListButton(final ToolbarView toolbar) {
- final ToolbarToggleButton b = toolbar.addToggleButton();
- new ToolbarButtonViewBuilder()
- .setIcon(css.orderedlist())
- .applyTo(b, createParagraphApplicationController(
- b, Paragraph.listStyle(Paragraph.LIST_STYLE_DECIMAL)));
- }
-
- private void createOutdentButton(final ToolbarView toolbar) {
- final ToolbarClickButton b = toolbar.addClickButton();
- new ToolbarButtonViewBuilder()
- .setIcon(css.outdent())
- .applyTo(b, new ParagraphTraversalController(editor, Paragraph.OUTDENTER));
- }
-
- private ToolbarToggleButton.Listener createParagraphApplicationController(final ToolbarToggleButton b,
- final LineStyle style) {
- return updater.add(new ParagraphApplicationController(b, editor, style));
- }
-
- private void createRemoveLinkButton(final ToolbarView toolbar) {
- new ToolbarButtonViewBuilder()
- .setIcon(css.removeLink())
- .applyTo(toolbar.addClickButton(), new ToolbarClickButton.Listener() {
- @Override public void onClicked() {
- if (editor.getSelectionHelper().getSelectionRange() != null) {
- EditorAnnotationUtil.clearAnnotationsOverSelection(editor, Link.LINK_KEYS);
- }
- }
- });
- }
-
- private void createStrikethroughButton(final ToolbarView toolbar) {
- final ToolbarToggleButton b = toolbar.addToggleButton();
- new ToolbarButtonViewBuilder()
- .setIcon(css.strikethrough())
- .applyTo(b, createTextSelectionController(b, "textDecoration", "line-through"));
- }
-
- private void createSubscriptButton(final ToolbarView toolbar) {
- final ToolbarToggleButton b = toolbar.addToggleButton();
- new ToolbarButtonViewBuilder()
- .setIcon(css.subscript())
- .applyTo(b, createTextSelectionController(b, "verticalAlign", "sub"));
- }
-
- private void createSuperscriptButton(final ToolbarView toolbar) {
- final ToolbarToggleButton b = toolbar.addToggleButton();
- new ToolbarButtonViewBuilder()
- .setIcon(css.superscript())
- .applyTo(b, createTextSelectionController(b, "verticalAlign", "super"));
- }
-
- private ToolbarToggleButton.Listener createTextSelectionController(final ToolbarToggleButton b,
- final String styleName, final String value) {
- return updater.add(new TextSelectionController(b, editor,
- StyleAnnotationHandler.key(styleName), value));
- }
-
- private void createUnderlineButton(final ToolbarView toolbar) {
- final ToolbarToggleButton b = toolbar.addToggleButton();
- new ToolbarButtonViewBuilder()
- .setIcon(css.underline())
- .applyTo(b, createTextSelectionController(b, "textDecoration", "underline"));
- }
-
- private void createUnorderedListButton(final ToolbarView toolbar) {
- final ToolbarToggleButton b = toolbar.addToggleButton();
- new ToolbarButtonViewBuilder()
- .setIcon(css.unorderedlist())
- .applyTo(b, createParagraphApplicationController(b, Paragraph.listStyle(null)));
- }
-
- /**
- * Stops listening to editor changes.
- *
- * @throws IllegalStateException if this toolbar is not currently enabled
- * @throws IllegalArgumentException if this toolbar is currently enabled for a
- * different editor
- */
- public void disable(final Editor editor) {
- this.editor.checkEditor(editor);
- // The above won't throw if we're not currently enabled, but it makes sure
- // 'editor' is the same as the current editor, if any. So if 'editor' is
- // null, it means we aren't enabled (the wrapped editor is null too).
- Preconditions.checkState(editor != null);
- editor.removeUpdateListener(updater);
- this.editor.switchEditor(null);
- }
-
- /**
- * Starts listening to editor changes.
- *
- * @throws IllegalStateException if this toolbar is already enabled
- * @throws IllegalArgumentException if the editor is <code>null</code>
- */
- public void enable(final Editor editor) {
- this.editor.checkEditor(null);
- Preconditions.checkArgument(editor != null);
- this.editor.switchEditor(editor);
- editor.addUpdateListener(updater);
- updater.updateButtonStates();
- }
-
- /**
- * @return the {@link ToplevelToolbarWidget} backing this toolbar.
- */
- public ToplevelToolbarWidget getWidget() {
- return toolbarUi;
- }
-
- /** Constructs the initial set of actions in the toolbar. */
- public void init() {
- ToolbarView group = toolbarUi.addGroup();
- createBoldButton(group);
- createItalicButton(group);
- createUnderlineButton(group);
- createStrikethroughButton(group);
-
- group = toolbarUi.addGroup();
- createSuperscriptButton(group);
- createSubscriptButton(group);
-
- group = toolbarUi.addGroup();
- createFontSizeButton(group);
- createFontFamilyButton(group);
- createHeadingButton(group);
-
- group = toolbarUi.addGroup();
- createIndentButton(group);
- createOutdentButton(group);
-
- group = toolbarUi.addGroup();
- createUnorderedListButton(group);
- createOrderedListButton(group);
-
- group = toolbarUi.addGroup();
- createAlignButtons(group);
- createClearFormattingButton(group);
-
- group = toolbarUi.addGroup();
- createInsertLinkButton(group);
- createRemoveLinkButton(group);
-
- group = toolbarUi.addGroup();
- createInsertGadgetButton(group, user);
-
- group = toolbarUi.addGroup();
- createInsertAttachmentButton(group, user);
- }
-
- private void insertGadget(final String url) {
- int from = -1;
- final FocusedRange focusedRange = editor.getSelectionHelper().getSelectionRange();
- if (focusedRange != null) {
- from = focusedRange.getFocus();
- }
- if (url != null && !url.isEmpty()) {
- final XmlStringBuilder xml = GadgetXmlUtil.constructXml(url, "", user.getAddress());
- final CMutableDocument document = editor.getDocument();
- if (document == null) {
- return;
- }
- if (from != -1) {
- final Point<ContentNode> point = document.locate(from);
- document.insertXml(point, xml);
- } else {
- LineContainers.appendLine(document, xml);
- }
- }
- }
-}
More information about the kune-commits
mailing list