kune-commits
Threads by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1587 discussions
Author: vjrj
Date: 2009-08-05 16:56:47 +0200 (Wed, 05 Aug 2009)
New Revision: 1139
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ChangebleObject.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/AccessRightsClientManager.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/ExtendedDialog.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/del-green.png
trunk/src/main/java/org/ourproject/kune/workspace/client/ActionsModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipateAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/RolAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/RolComparator.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UIStatus.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UnjoinAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/wave/
trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsert.java
trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsertPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsertPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsertView.java
trunk/src/test/java/org/ourproject/kune/workspace/client/socialnet/
trunk/src/test/java/org/ourproject/kune/workspace/client/socialnet/RolActionTest.java
trunk/src/test/java/org/ourproject/kune/workspace/client/socialnet/RolComparatorTest.java
trunk/war/WEB-INF/lib/gwt-servlet-2.0.0-SNAPSHOT.jar
Removed:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialogExtended.java
Modified:
trunk/TODO
trunk/pom.xml
trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/AbstractAction.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionItem.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionManager.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionMenuItem.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/GuiActionDescrip.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuCheckItemDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/PushButtonDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/PushButtonGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SubMenuGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SiteService.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkServiceAsync.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/UserServiceAsync.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/noti/NotifyUser.java
trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java
trunk/src/main/java/org/ourproject/kune/platf/server/UserSession.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/DefaultManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertiesManagerDefault.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensewizard/LicenseChangeAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java
trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
trunk/src/test/java/org/ourproject/kune/platf/integration/site/UserServiceTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/TestHelper.java
trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java
Log:
Complete - task wave simple integration
Complete - task guice 2.0
Incomplete - task New Actions class in SN
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/TODO 2009-08-05 14:56:47 UTC (rev 1139)
@@ -174,8 +174,10 @@
2007-12-21 10:35:16,197 [btpool0-5] DEBUG - ContentManagerDefault.createContent EXCEPTION => javax.persistence.Entity
** vjrj <v> IconHyperlink.java and IconLabel.java to gwt1.5
-
* MID-TERM
+** TODO <v> Images zoom-in/out with style="cursor: url(somezoomcursor.cur);"
+http://www.w3.org/TR/SVG/interact.html#Cursors
+http://www.w3.org/TR/CSS2/ui.html
** TODO <v> karma, reputation, trust metrics:
http://wiki.couchsurfing.com/en/Trust
http://p2pfoundation.net/Trust_Metrics
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/pom.xml 2009-08-05 14:56:47 UTC (rev 1139)
@@ -12,6 +12,7 @@
<name>kune</name>
<url>http://kune.ourproject.org</url>
<properties>
+ <!-- <gwtVersion>2.0.0-SNAPSHOT</gwtVersion> -->
<gwtVersion>1.7.0</gwtVersion>
</properties>
<dependencies>
@@ -19,12 +20,12 @@
<dependency>
<groupId>com.google.code.guice</groupId>
<artifactId>guice</artifactId>
- <version>1.0</version>
+ <version>2.0.1</version>
</dependency>
<dependency>
<groupId>com.google.code.guice</groupId>
<artifactId>guice-servlet</artifactId>
- <version>1.0</version>
+ <version>2.0.1</version>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
@@ -32,7 +33,7 @@
<version>1.0</version>
</dependency>
- <!-- G WT deps (from central repo) -->
+ <!-- GWT deps (from central repo) -->
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>
@@ -121,8 +122,9 @@
<dependency>
<groupId>org.xwiki.platform</groupId>
<artifactId>xwiki-web-gwt-dom</artifactId>
- <version>2.0-SNAPSHOT</version>
- <!-- <version>2.0-SNAPSHOT-g164</version> -->
+ <version>2.0-SNAPSHOT-g164</version>
+ <!-- <version>2.0-SNAPSHOT</version> -->
+ <!-- <version>2.0-SNAPSHOT-g20s</version> -->
</dependency>
<!-- xmpp -->
@@ -208,7 +210,7 @@
<dependency>
<groupId>com.wideplay</groupId>
<artifactId>warp-persist</artifactId>
- <version>1.0.1</version>
+ <version>2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
@@ -360,6 +362,11 @@
</pluginRepositories>
<repositories>
<repository>
+ <id>guice-maven</id>
+ <name>guice maven</name>
+ <url>http://guice-maven.googlecode.com/svn/trunk</url>
+ </repository>
+ <repository>
<id>Codehaus Snapshots</id>
<url>http://snapshots.repository.codehaus.org/</url>
<snapshots>
@@ -833,4 +840,4 @@
</reporting>
</profile>
</profiles>
-</project>
+</project>
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2009-08-05 14:56:47 UTC (rev 1139)
@@ -43,6 +43,11 @@
<set-property name="log_level" value="DEBUG" />
<set-property name="log_DivLogger" value="DISABLED" />
<set-property name="log_FirebugLogger" value="ENABLED" />
+ <!--
+ Inspired by Apache log4j PatternLayout:
+ http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.…
+ -->
+ <set-configuration-property name="log_pattern" value="%d [%-5p] %m%n" />
<!--
<extend-property name="locale" values="es" />
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -43,6 +43,7 @@
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
+import org.ourproject.kune.workspace.client.wave.WaveInsert;
import com.calclab.suco.client.ioc.Provider;
@@ -56,11 +57,12 @@
final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
final BlogViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
- final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
+ final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager,
+ final Provider<WaveInsert> waveInsert) {
super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
- documentViewer, entityLogo, publicLink, wsBackManager);
+ documentViewer, entityLogo, publicLink, wsBackManager, waveInsert);
}
@Override
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -55,6 +55,7 @@
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
+import org.ourproject.kune.workspace.client.wave.WaveInsert;
import com.calclab.suco.client.ioc.decorator.Singleton;
import com.calclab.suco.client.ioc.module.Factory;
@@ -81,7 +82,8 @@
p(ContentServiceAsync.class), p(GroupServiceAsync.class), p(FileUploader.class),
i(ContentActionRegistry.class), i(ContextActionRegistry.class), p(FileDownloadUtils.class),
i(EntityHeader.class), p(ContentEditor.class), i(ErrorHandler.class), i(BlogViewer.class),
- p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class));
+ p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class),
+ p(WaveInsert.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -35,6 +35,7 @@
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.ui.WindowUtils;
import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
+import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import com.allen_sauer.gwt.log.client.Log;
@@ -181,7 +182,7 @@
});
}
} else {
- wskel.showAlertMessage(i18n.t("Error"), i18n.t("To join a chatroom you need to be 'online'"));
+ NotifyUser.showAlertMessage(i18n.t("Error"), i18n.t("To join a chatroom you need to be 'online'"));
}
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -44,6 +44,7 @@
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
+import org.ourproject.kune.workspace.client.wave.WaveInsert;
import com.calclab.suco.client.ioc.Provider;
@@ -57,11 +58,12 @@
final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
final DocumentViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
- final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
+ final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager,
+ final Provider<WaveInsert> waveInsert) {
super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
- documentViewer, entityLogo, publicLink, wsBackManager);
+ documentViewer, entityLogo, publicLink, wsBackManager, waveInsert);
}
@Override
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -55,6 +55,7 @@
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
+import org.ourproject.kune.workspace.client.wave.WaveInsert;
import com.calclab.suco.client.ioc.decorator.Singleton;
import com.calclab.suco.client.ioc.module.Factory;
@@ -81,7 +82,8 @@
p(ContentServiceAsync.class), p(GroupServiceAsync.class), p(FileUploader.class),
i(ContentActionRegistry.class), i(ContextActionRegistry.class), p(FileDownloadUtils.class),
i(EntityHeader.class), p(ContentEditor.class), i(ErrorHandler.class), i(DocumentViewer.class),
- p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class));
+ p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class),
+ p(WaveInsert.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -42,6 +42,7 @@
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
+import org.ourproject.kune.workspace.client.wave.WaveInsert;
import com.calclab.suco.client.ioc.Provider;
@@ -55,11 +56,12 @@
final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
final GalleryViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
- final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
+ final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager,
+ final Provider<WaveInsert> waveInsert) {
super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
- documentViewer, entityLogo, publicLink, wsBackManager);
+ documentViewer, entityLogo, publicLink, wsBackManager, waveInsert);
}
@Override
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -55,6 +55,7 @@
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
+import org.ourproject.kune.workspace.client.wave.WaveInsert;
import com.calclab.suco.client.ioc.decorator.Singleton;
import com.calclab.suco.client.ioc.module.Factory;
@@ -81,7 +82,8 @@
p(ContentServiceAsync.class), p(GroupServiceAsync.class), p(FileUploader.class),
i(ContentActionRegistry.class), i(ContextActionRegistry.class), p(FileDownloadUtils.class),
i(EntityHeader.class), p(ContentEditor.class), i(ErrorHandler.class), i(GalleryViewer.class),
- p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class));
+ p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class),
+ p(WaveInsert.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/AbstractAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/AbstractAction.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/AbstractAction.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -47,7 +47,7 @@
* @author Andrew Selkirk
* @author Adapted version for GWT (C) The kune development team
*/
-public abstract class AbstractAction implements Action {
+public abstract class AbstractAction extends ChangebleObject implements Action {
/**
* A flag that indicates whether or not the action is enabled.
@@ -55,16 +55,6 @@
protected boolean enabled = true;
/**
- * Provides support for property change event notification.
- */
- protected PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
-
- /**
- * store
- */
- private HashMap<String, Object> store = new HashMap<String, Object>();
-
- /**
* Creates a new action with no properties set.
*/
public AbstractAction() {
@@ -115,56 +105,6 @@
}
/**
- * Registers a listener to receive {@link PropertyChangeEvent} notifications
- * from this action.
- *
- * @param listener
- * the listener.
- *
- * @see #removePropertyChangeListener(PropertyChangeListener)
- */
- public void addPropertyChangeListener(final PropertyChangeListener listener) {
- changeSupport.addPropertyChangeListener(listener);
- }
-
- /**
- * Returns an array of the keys for the property values that have been
- * defined via the {@link #putValue(String, Object)} method (or the class
- * constructor).
- *
- * @return An array of keys.
- */
- public Object[] getKeys() {
- return store.keySet().toArray();
- }
-
- /**
- * Returns all registered listeners.
- *
- * @return An array of listeners.
- *
- * @since 1.4
- */
- public PropertyChangeListener[] getPropertyChangeListeners() {
- return changeSupport.getPropertyChangeListeners();
- }
-
- /**
- * Returns the value associated with the specified key.
- *
- * @param key
- * the key (not <code>null</code>).
- *
- * @return The value associated with the specified key, or <code>null</code>
- * if the key is not found.
- *
- * @see #putValue(String, Object)
- */
- public Object getValue(final String key) {
- return store.get(key);
- }
-
- /**
* Returns the flag that indicates whether or not the action is enabled.
*
* @return The flag.
@@ -175,6 +115,7 @@
return enabled;
}
+ @Override
/**
* Sets the value associated with the specified key and sends a
* {@link java.beans.PropertyChangeEvent} to all registered listeners. The
@@ -189,34 +130,18 @@
* <li>{@link #MNEMONIC_KEY}</li>
* </ul>
* Any existing value associated with the key will be overwritten.
- *
+ *
* @param key
* the key (not <code>null</code>).
* @param value
* the value (<code>null</code> permitted).
*/
public void putValue(final String key, final Object value) {
- final Object old = getValue(key);
- if ((old == null && value != null) || (old != null && !old.equals(value))) {
- store.put(key, value);
- firePropertyChange(key, old, value);
- }
+ // TODO Auto-generated method stub
+ super.putValue(key, value);
}
/**
- * Deregisters a listener so that it no longer receives
- * {@link PropertyChangeEvent} notifications from this action.
- *
- * @param listener
- * the listener.
- *
- * @see #addPropertyChangeListener(PropertyChangeListener)
- */
- public void removePropertyChangeListener(final PropertyChangeListener listener) {
- changeSupport.removePropertyChangeListener(listener);
- }
-
- /**
* Sets the flag that indicates whether or not the action is enabled and, if
* the value of the flag changed from the previous setting, sends a
* {@link java.beans.PropertyChangeEvent} to all registered listeners (using
@@ -237,35 +162,4 @@
public void setShortcut(final KeyStroke key) {
putValue(Action.ACCELERATOR_KEY, key);
}
-
- /**
- * Sends a {@link PropertyChangeEvent} for the named property to all
- * registered listeners.
- *
- * @param propertyName
- * the property name.
- * @param oldValue
- * the old value of the property.
- * @param newValue
- * the new value of the property.
- */
- protected void firePropertyChange(final String propertyName, final Object oldValue, final Object newValue) {
- changeSupport.firePropertyChange(propertyName, oldValue, newValue);
- }
-
- /**
- * Sends a {@link PropertyChangeEvent} for the named property to all
- * registered listeners. This private method is called by the
- * {@link #setEnabled(boolean)} method.
- *
- * @param propertyName
- * the property name.
- * @param oldValue
- * the old value of the property.
- * @param newValue
- * the new value of the property.
- */
- private void firePropertyChange(final String propertyName, final boolean oldValue, final boolean newValue) {
- changeSupport.firePropertyChange(propertyName, oldValue, newValue);
- }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionItem.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionItem.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionItem.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -54,12 +54,12 @@
}
public boolean mustBePressed() {
- if (!(action instanceof ActionToolbarPushButtonDescriptor)) {
+ if (action instanceof ActionToolbarPushButtonDescriptor<?>) {
+ final ActionPressedCondition<T> mustIniPressed = ((ActionToolbarPushButtonDescriptor<T>) action).getMustInitialyPressed();
+ return mustIniPressed == null ? false : mustIniPressed.mustBePressed(getItem());
+ } else {
Log.error("This action is not a push button");
return false;
- } else {
- ActionPressedCondition<T> mustInitialyPressed = ((ActionToolbarPushButtonDescriptor<T>) action).getMustInitialyPressed();
- return mustInitialyPressed != null ? mustInitialyPressed.mustBePressed(getItem()) : false;
}
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionManager.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionManager.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -28,7 +28,6 @@
public ActionManager() {
}
- @Deprecated
public void doAction(final ActionItem<?> actionItem) {
final ActionDescriptor<?> action = actionItem.getAction();
final Object item = actionItem.getItem();
Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ChangebleObject.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ChangebleObject.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ChangebleObject.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,135 @@
+package org.ourproject.kune.platf.client.actions;
+
+import java.util.HashMap;
+
+/**
+ * A base class for implementing the {@link Action} interface.
+ *
+ * @author Andrew Selkirk
+ * @author Adapted version for GWT (C) The kune development team
+ */
+public class ChangebleObject {
+
+ /**
+ * Provides support for property change event notification.
+ */
+ protected PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
+ /**
+ * store
+ */
+ protected HashMap<String, Object> store = new HashMap<String, Object>();
+
+ /**
+ * Registers a listener to receive {@link PropertyChangeEvent} notifications
+ * from this action.
+ *
+ * @param listener
+ * the listener.
+ *
+ * @see #removePropertyChangeListener(PropertyChangeListener)
+ */
+ public void addPropertyChangeListener(final PropertyChangeListener listener) {
+ changeSupport.addPropertyChangeListener(listener);
+ }
+
+ /**
+ * Returns an array of the keys for the property values that have been
+ * defined via the {@link #putValue(String, Object)} method (or the class
+ * constructor).
+ *
+ * @return An array of keys.
+ */
+ public Object[] getKeys() {
+ return store.keySet().toArray();
+ }
+
+ /**
+ * Returns all registered listeners.
+ *
+ * @return An array of listeners.
+ *
+ * @since 1.4
+ */
+ public PropertyChangeListener[] getPropertyChangeListeners() {
+ return changeSupport.getPropertyChangeListeners();
+ }
+
+ /**
+ * Returns the value associated with the specified key.
+ *
+ * @param key
+ * the key (not <code>null</code>).
+ *
+ * @return The value associated with the specified key, or <code>null</code>
+ * if the key is not found.
+ *
+ * @see #putValue(String, Object)
+ */
+ public Object getValue(final String key) {
+ return store.get(key);
+ }
+
+ /**
+ * Sets the value associated with the specified key and sends a
+ * {@link java.beans.PropertyChangeEvent} to all registered listeners.
+ *
+ * Any existing value associated with the key will be overwritten.
+ *
+ * @param key
+ * the key (not <code>null</code>).
+ * @param value
+ * the value (<code>null</code> permitted).
+ */
+ public void putValue(final String key, final Object value) {
+ final Object old = getValue(key);
+ if ((old == null && value != null) || (old != null && !old.equals(value))) {
+ store.put(key, value);
+ firePropertyChange(key, old, value);
+ }
+ }
+
+ /**
+ * Deregisters a listener so that it no longer receives
+ * {@link PropertyChangeEvent} notifications from this action.
+ *
+ * @param listener
+ * the listener.
+ *
+ * @see #addPropertyChangeListener(PropertyChangeListener)
+ */
+ public void removePropertyChangeListener(final PropertyChangeListener listener) {
+ changeSupport.removePropertyChangeListener(listener);
+ }
+
+ /**
+ * Sends a {@link PropertyChangeEvent} for the named property to all
+ * registered listeners. This private method is called by the
+ * {@link #setEnabled(boolean)} method.
+ *
+ * @param propertyName
+ * the property name.
+ * @param oldValue
+ * the old value of the property.
+ * @param newValue
+ * the new value of the property.
+ */
+ protected void firePropertyChange(final String propertyName, final boolean oldValue, final boolean newValue) {
+ changeSupport.firePropertyChange(propertyName, oldValue, newValue);
+ }
+
+ /**
+ * Sends a {@link PropertyChangeEvent} for the named property to all
+ * registered listeners.
+ *
+ * @param propertyName
+ * the property name.
+ * @param oldValue
+ * the old value of the property.
+ * @param newValue
+ * the new value of the property.
+ */
+ protected void firePropertyChange(final String propertyName, final Object oldValue, final Object newValue) {
+ changeSupport.firePropertyChange(propertyName, oldValue, newValue);
+ }
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionMenuItem.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionMenuItem.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionMenuItem.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -18,30 +18,30 @@
public ActionMenuItem(final ActionItem<T> actionItem, final String id, final Listener0 onclick) {
final ActionToolbarMenuDescriptor<T> action = (ActionToolbarMenuDescriptor<T>) actionItem.getAction();
- if (action instanceof ActionToolbarMenuRadioDescriptor) {
- CheckItem checkItem = new CheckItem();
- ActionToolbarMenuRadioDescriptor<T> radioDescriptor = (ActionToolbarMenuRadioDescriptor<T>) action;
+ if (action instanceof ActionToolbarMenuRadioDescriptor<?>) {
+ final CheckItem checkItem = new CheckItem();
+ final ActionToolbarMenuRadioDescriptor<T> radioDescriptor = (ActionToolbarMenuRadioDescriptor<T>) action;
checkItem.setGroup(radioDescriptor.getGroup());
checkItem.setChecked(radioDescriptor.mustBeChecked());
item = checkItem;
- } else if (action instanceof ActionToolbarMenuCheckItemDescriptor) {
- CheckItem checkItem = new CheckItem();
- ActionToolbarMenuCheckItemDescriptor<T> checkItemDescriptor = (ActionToolbarMenuCheckItemDescriptor<T>) action;
+ } else if (action instanceof ActionToolbarMenuCheckItemDescriptor<?>) {
+ final CheckItem checkItem = new CheckItem();
+ final ActionToolbarMenuCheckItemDescriptor<T> checkItemDescriptor = (ActionToolbarMenuCheckItemDescriptor<T>) action;
checkItem.setChecked(checkItemDescriptor.getMustBeChecked().mustBeChecked());
item = checkItem;
} else {
item = new Item();
}
item.setText(genMenuItemText(action));
- BaseItemListenerAdapter clickListener = new BaseItemListenerAdapter() {
+ final BaseItemListenerAdapter clickListener = new BaseItemListenerAdapter() {
@Override
public void onClick(final BaseItem item, final EventObject e) {
onclick.onEvent();
}
};
item.addListener(clickListener);
- String iconCls = action.getIconCls();
- String iconUrl = action.getIconUrl();
+ final String iconCls = action.getIconCls();
+ final String iconUrl = action.getIconUrl();
if (iconCls != null) {
item.setIconCls(iconCls);
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -132,10 +132,11 @@
}
private boolean isToolbarMenu(final ActionDescriptor<T> action) {
- return action instanceof ActionToolbarMenuDescriptor || action instanceof ActionToolbarMenuAndItemDescriptor;
+ return action instanceof ActionToolbarMenuDescriptor<?>
+ || action instanceof ActionToolbarMenuAndItemDescriptor<?>;
}
private boolean isToolbarPushButton(final ActionDescriptor<T> action) {
- return action instanceof ActionToolbarPushButtonDescriptor;
+ return action instanceof ActionToolbarPushButtonDescriptor<?>;
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -17,7 +17,7 @@
}
public AbstractButtonGui(final ButtonDescriptor buttonDescriptor, final boolean enableTongle) {
- super();
+ super(buttonDescriptor);
button = new Button();
button.setEnableToggle(enableTongle);
final String id = buttonDescriptor.getId();
@@ -28,12 +28,12 @@
button.addListener(new ButtonListenerAdapter() {
@Override
public void onClick(final Button button, final EventObject event) {
- if (action != null) {
- action.actionPerformed(new ActionEvent(button, event.getBrowserEvent()));
+ if (getAction() != null) {
+ getAction().actionPerformed(new ActionEvent(button, event.getBrowserEvent()));
}
}
});
- setAction(buttonDescriptor.action);
+ configureItemFromProperties();
}
@Override
@@ -58,7 +58,7 @@
@Override
public void setToolTipText(final String tooltip) {
- final KeyStroke key = (KeyStroke) action.getValue(Action.ACCELERATOR_KEY);
+ final KeyStroke key = (KeyStroke) descriptor.getValue(Action.ACCELERATOR_KEY);
if (key == null) {
button.setTooltip(tooltip);
} else {
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -12,104 +12,70 @@
public abstract class AbstractGuiItem extends Composite implements View {
- protected AbstractAction action;
+ protected final GuiActionDescrip descriptor;
+ public AbstractGuiItem(final GuiActionDescrip descriptor) {
+ super();
+ this.descriptor = descriptor;
+ }
+
/**
- * Listener the button uses to receive PropertyChangeEvents from its Action.
+ * Sets the item properties from the stored values
*/
- protected PropertyChangeListener changeListener;
+ public void configureItemFromProperties() {
+ configure();
+ }
- public void setAction(final AbstractAction newaction) {
- if (action != null) {
- action.removePropertyChangeListener(changeListener);
- // removeActionListener(action);
- if (changeListener != null) {
- action.removePropertyChangeListener(changeListener);
- // @PMD:REVIEWED:NullAssignment: by vjrj on 24/05/09 20:05
- changeListener = null;
- }
- }
+ public AbstractAction getAction() {
+ return descriptor.getAction();
+ }
- action = newaction;
- configurePropertiesFromAction(action);
- if (action != null) {
- changeListener = createActionPropertyChangeListener(newaction);
- action.addPropertyChangeListener(changeListener);
- // addActionListener(action);
- }
+ protected abstract void setEnabled(boolean enabled);
+
+ protected abstract void setIconStyle(String style);
+
+ protected abstract void setIconUrl(String iconUrl);
+
+ protected abstract void setText(String text);
+
+ protected abstract void setToolTipText(String text);
+
+ private void configure() {
+ configureProperties();
+ final PropertyChangeListener changeListener = createActionPropertyChangeListener();
+ descriptor.getAction().addPropertyChangeListener(changeListener);
+ descriptor.addPropertyChangeListener(changeListener);
}
- protected void configurePropertiesFromAction(final Action action) {
- configurePropertiesFromActionImpl(action);
+ private void configureProperties() {
+ setText((String) (descriptor.getValue(Action.NAME)));
+ setIcon(descriptor.getValue(Action.SMALL_ICON));
+ setEnabled((Boolean) descriptor.getValue(AbstractAction.ENABLED));
+ setToolTipText((String) (descriptor.getValue(Action.SHORT_DESCRIPTION)));
+ setVisible((Boolean) descriptor.getValue(GuiActionDescrip.VISIBLE));
}
- protected PropertyChangeListener createActionPropertyChangeListener(final Action action) {
+ private PropertyChangeListener createActionPropertyChangeListener() {
return new PropertyChangeListener() {
public void propertyChange(final PropertyChangeEvent event) {
- final Action act = (Action) (event.getSource());
+ final Object newValue = event.getNewValue();
if (event.getPropertyName().equals(Action.ENABLED)) {
- setEnabled(act.isEnabled());
+ setEnabled((Boolean) newValue);
} else if (event.getPropertyName().equals(Action.NAME)) {
- setText((String) (act.getValue(Action.NAME)));
+ setText((String) newValue);
} else if (event.getPropertyName().equals(Action.SMALL_ICON)) {
- setIcon(action.getValue(Action.SMALL_ICON));
+ setIcon(newValue);
} else if (event.getPropertyName().equals(Action.SHORT_DESCRIPTION)) {
- setToolTipText((String) (act.getValue(Action.SHORT_DESCRIPTION)));
+ setToolTipText((String) newValue);
} else if (event.getPropertyName().equals(GuiActionDescrip.VISIBLE)) {
- setVisible(act);
+ setVisible((Boolean) newValue);
}
- // else if (e.getPropertyName().equals(Action.MNEMONIC_KEY)) {
- // if (act.getValue(Action.MNEMONIC_KEY) != null) {
- // setMnemonic(((Integer) (act.getValue(Action.MNEMONIC_KEY)))
- // .intValue());
- // } else if
- // (e.getPropertyName().equals(Action.ACTION_COMMAND_KEY)) {
- // setActionCommand((String)
- // (act.getValue(Action.ACTION_COMMAND_KEY)));
- // }
- // }
}
};
}
- protected abstract void setEnabled(boolean enabled);
-
- protected abstract void setIconStyle(String style);
-
- protected abstract void setIconUrl(String iconUrl);
-
- protected abstract void setText(String text);
-
- protected abstract void setToolTipText(String text);
-
- private void configurePropertiesFromActionImpl(final Action action) {
- if (action == null) {
- setText(null);
- setIcon(null);
- setEnabled(true);
- setToolTipText(null);
- } else {
- setText((String) (action.getValue(Action.NAME)));
- setIcon(action.getValue(Action.SMALL_ICON));
- setEnabled(action.isEnabled());
- setToolTipText((String) (action.getValue(Action.SHORT_DESCRIPTION)));
- setVisible(action);
- // if (a.getValue(Action.MNEMONIC_KEY) != null) {
- // setMnemonic(((Integer)
- // (a.getValue(Action.MNEMONIC_KEY))).intValue());
- // }
- // String actionCommand = (String)
- // (a.getValue(Action.ACTION_COMMAND_KEY));
- //
- // // Set actionCommand to button's text by default if it is not
- // // specified
- // if (actionCommand != null) {
- // setActionCommand((String)
- // (a.getValue(Action.ACTION_COMMAND_KEY)));
- // } else {
- // setActionCommand(getText());
- // }
- }
+ private void setEnabled(final Boolean enabled) {
+ setEnabled(enabled == null ? true : enabled);
}
private void setIcon(final Object icon) {
@@ -122,8 +88,7 @@
}
}
- private void setVisible(final Action action) {
- final Boolean visible = (Boolean) action.getValue(GuiActionDescrip.VISIBLE);
+ private void setVisible(final Boolean visible) {
setVisible(visible == null ? true : visible);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuGui.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuGui.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -1,6 +1,5 @@
package org.ourproject.kune.platf.client.actions.ui;
-import org.ourproject.kune.platf.client.actions.AbstractAction;
import org.ourproject.kune.platf.client.actions.PropertyChangeEvent;
import org.ourproject.kune.platf.client.actions.PropertyChangeListener;
@@ -11,8 +10,8 @@
protected final Menu menu;
- public AbstractMenuGui() {
- super();
+ public AbstractMenuGui(final GuiActionDescrip descriptor) {
+ super(descriptor);
menu = new Menu();
menu.setShadow(true);
}
@@ -25,14 +24,10 @@
menu.addSeparator();
}
- public void insert(final int position, final BaseItem item) {
- menu.insert(position, item);
- }
-
@Override
- public void setAction(final AbstractAction newaction) {
- super.setAction(newaction);
- action.addPropertyChangeListener(new PropertyChangeListener() {
+ public void configureItemFromProperties() {
+ super.configureItemFromProperties();
+ descriptor.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(final PropertyChangeEvent event) {
if (event.getPropertyName().equals(MenuDescriptor.MENU_CLEAR)) {
menu.removeAll();
@@ -41,6 +36,10 @@
});
}
+ public void insert(final int position, final BaseItem item) {
+ menu.insert(position, item);
+ }
+
public void show(final int x, final int y) {
menu.showAt(x, y);
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -1,5 +1,6 @@
package org.ourproject.kune.platf.client.actions.ui;
+import org.ourproject.kune.platf.client.actions.AbstractAction;
import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.ActionEvent;
import org.ourproject.kune.platf.client.actions.KeyStroke;
@@ -20,7 +21,7 @@
private Item item;
public AbstractMenuItemGui(final MenuItemDescriptor descriptor) {
- super();
+ super(descriptor);
if (descriptor instanceof MenuRadioItemDescriptor) {
final CheckItem checkItem = createCheckItem(descriptor);
checkItem.setGroup(((MenuRadioItemDescriptor) descriptor).getGroup());
@@ -41,13 +42,14 @@
final BaseItemListenerAdapter clickListener = new BaseItemListenerAdapter() {
@Override
public void onClick(final BaseItem item, final EventObject event) {
+ final AbstractAction action = getAction();
if (action != null) {
action.actionPerformed(new ActionEvent(item, event.getBrowserEvent()));
}
}
};
item.addListener(clickListener);
- setAction(descriptor.action);
+ configureItemFromProperties();
}
@Override
@@ -82,7 +84,7 @@
@Override
protected void setText(final String text) {
if (text != null) {
- final KeyStroke key = (KeyStroke) action.getValue(Action.ACCELERATOR_KEY);
+ final KeyStroke key = (KeyStroke) descriptor.getValue(Action.ACCELERATOR_KEY);
if (key == null) {
item.setText(text);
} else {
@@ -99,7 +101,7 @@
}
private void confCheckListener(final MenuItemDescriptor descriptor, final CheckItem checkItem) {
- descriptor.action.addPropertyChangeListener(new PropertyChangeListener() {
+ descriptor.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(final PropertyChangeEvent event) {
if (event.getPropertyName().equals(MenuCheckItemDescriptor.CHECKED)) {
checkItem.setChecked((Boolean) event.getNewValue());
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/GuiActionDescrip.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/GuiActionDescrip.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/GuiActionDescrip.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -4,11 +4,13 @@
import org.ourproject.kune.platf.client.actions.AbstractAction;
import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.ChangebleObject;
/**
* The Class AbstractUIActionDescriptor.
*/
-public abstract class GuiActionDescrip { // NOPMD by vjrj on 9/06/09 2:00
+public abstract class GuiActionDescrip extends ChangebleObject {
+
public static final String VISIBLE = "visibleprop";
protected static final int NO_POSITION = -1;
@@ -20,7 +22,7 @@
protected GuiActionDescrip parent;
/** The action. */
- protected AbstractAction action;
+ private final AbstractAction action;
/** The position where the item will be inserted. */
private int position;
@@ -48,6 +50,10 @@
action.actionPerformed(event);
}
+ public AbstractAction getAction() {
+ return action;
+ }
+
public GuiAddCondition getAddCondition() {
return addCondition;
}
@@ -81,19 +87,17 @@
public abstract Class<?> getType();
+ @Override
/**
- * Returns the value associated with the specified key.
- *
- * @param key
- * the key (not <code>null</code>).
- *
- * @return The value associated with the specified key, or <code>null</code>
- * if the key is not found.
- *
- * @see #putValue(String, Object)
+ * We try to get the gui property (for instance the name) and if it's empty we try to get the same property in actions. This permit to have several gui items with the same action but different gui properties (like text descriptions) if necessary.
*/
public Object getValue(final String key) {
- return action.getValue(key);
+ final Object guiValue = super.getValue(key);
+ if (guiValue == null) {
+ return action.getValue(key);
+ } else {
+ return guiValue;
+ }
}
public boolean isChild() {
@@ -109,20 +113,6 @@
return result;
}
- /**
- * Sets the value associated with the specified key.
- *
- * Any existing value associated with the key will be overwritten.
- *
- * @param key
- * the key (not <code>null</code>).
- * @param value
- * the value (<code>null</code> permitted).
- */
- public void putValue(final String key, final Object value) {
- action.putValue(key, value);
- }
-
public void setAddCondition(final GuiAddCondition addCondition) {
this.addCondition = addCondition;
}
@@ -168,8 +158,8 @@
@Override
public String toString() {
- final String name = (String) action.getValue(Action.NAME);
- final String tooltip = (String) action.getValue(Action.SHORT_DESCRIPTION);
+ final String name = (String) getValue(Action.NAME);
+ final String tooltip = (String) getValue(Action.SHORT_DESCRIPTION);
return "[GuiActionDescrip: " + action.getClass() + (name == null ? "" : " " + name)
+ (tooltip == null ? "" : " " + tooltip) + "]";
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuCheckItemDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuCheckItemDescriptor.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuCheckItemDescriptor.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -3,6 +3,7 @@
import org.ourproject.kune.platf.client.actions.AbstractAction;
public class MenuCheckItemDescriptor extends MenuItemDescriptor {
+
public static final String CHECKED = "checked";
private boolean checked = false;
@@ -23,7 +24,7 @@
public void setChecked(final boolean checked) {
if (checked != this.checked) {
this.checked = checked;
- action.putValue(CHECKED, this.checked);
+ putValue(CHECKED, this.checked);
}
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuDescriptor.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -54,7 +54,7 @@
public void clear() {
// Action detects changes in values, then we fire a change (whatever) to
// fire this method in the UI
- action.putValue(MENU_CLEAR, !((Boolean) action.getValue(MENU_CLEAR)));
+ putValue(MENU_CLEAR, !((Boolean) getValue(MENU_CLEAR)));
}
@Override
@@ -63,7 +63,7 @@
}
public void hide() {
- action.putValue(MENU_HIDE, !((Boolean) action.getValue(MENU_HIDE)));
+ putValue(MENU_HIDE, !((Boolean) getValue(MENU_HIDE)));
}
public boolean isStandalone() {
@@ -82,7 +82,7 @@
}
public void setText(final String text) {
- action.putValue(Action.NAME, text);
+ putValue(Action.NAME, text);
}
/**
@@ -92,7 +92,7 @@
* the element id to show menu near of it
*/
public void show(final String id) {
- action.putValue(MENU_SHOW_ID, id);
- action.putValue(MENU_SHOW, !((Boolean) action.getValue(MENU_SHOW)));
+ putValue(MENU_SHOW_ID, id);
+ putValue(MENU_SHOW, !((Boolean) getValue(MENU_SHOW)));
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -13,7 +13,7 @@
private ToolbarButton button = null;
public MenuGui(final MenuDescriptor descriptor) {
- super();
+ super(descriptor);
// Standalone menus are menus without and associated button in a toolbar
// (sometimes, a menu showed in a grid, or other special widgets)
notStandAlone = !descriptor.isStandalone();
@@ -28,15 +28,15 @@
} else {
initWidget(menu);
}
- setAction(descriptor.action);
- descriptor.action.addPropertyChangeListener(new PropertyChangeListener() {
+ configureItemFromProperties();
+ descriptor.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(final PropertyChangeEvent event) {
if (event.getPropertyName().equals(MenuDescriptor.MENU_HIDE)) {
menu.hide(true);
}
}
});
- descriptor.action.addPropertyChangeListener(new PropertyChangeListener() {
+ descriptor.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(final PropertyChangeEvent event) {
if (event.getPropertyName().equals(MenuDescriptor.MENU_SHOW)) {
menu.show(UIObject.DEBUG_ID_PREFIX + (String) descriptor.getValue(MenuDescriptor.MENU_SHOW_ID));
@@ -67,7 +67,7 @@
public void setIconUrl(final String imageUrl) {
if (notStandAlone) {
button.setIcon(imageUrl);
- if (action.getValue(Action.NAME) != null) {
+ if (descriptor.getValue(Action.NAME) != null) {
button.setCls("x-btn-text-icon");
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/PushButtonDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/PushButtonDescriptor.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/PushButtonDescriptor.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -13,7 +13,7 @@
}
public PushButtonDescriptor(final PushButtonDescriptor button) {
- super(button.action);
+ super(button.getAction());
pushed = button.pushed;
}
@@ -29,7 +29,7 @@
public void setPushed(final boolean pushed) {
if (pushed != this.pushed) {
this.pushed = pushed;
- action.putValue(PUSHED, this.pushed);
+ putValue(PUSHED, this.pushed);
}
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/PushButtonGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/PushButtonGui.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/PushButtonGui.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -8,7 +8,7 @@
public PushButtonGui(final PushButtonDescriptor btn) {
super(btn, true);
setPressed(btn.isPushed());
- btn.action.addPropertyChangeListener(new PropertyChangeListener() {
+ btn.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(final PropertyChangeEvent event) {
if (event.getPropertyName().equals(PushButtonDescriptor.PUSHED)) {
setPressed(btn.isPushed());
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SubMenuGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SubMenuGui.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SubMenuGui.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -7,10 +7,10 @@
private final MenuItem item;
public SubMenuGui(final GuiActionDescrip descriptor) {
- super();
+ super(descriptor);
item = new MenuItem();
item.setMenu(menu);
- setAction(descriptor.action);
+ configureItemFromProperties();
// initWidget(item);
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -20,7 +20,6 @@
package org.ourproject.kune.platf.client.app;
import org.ourproject.kune.platf.client.dto.InitDataDTO;
-import org.ourproject.kune.platf.client.rpc.SiteService;
import org.ourproject.kune.platf.client.rpc.SiteServiceAsync;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
@@ -44,9 +43,11 @@
private final Session session;
private final Event0 onAppStarting;
private final Event<ClosingEvent> onAppClosing;
+ private final SiteServiceAsync siteService;
- public ApplicationDefault(final Session session) {
+ public ApplicationDefault(final Session session, final SiteServiceAsync siteService) {
this.session = session;
+ this.siteService = siteService;
this.onAppStarting = new Event0("onAppStarting");
this.onAppClosing = new Event<ClosingEvent>("onAppClossing");
Window.addWindowClosingHandler(new ClosingHandler() {
@@ -78,8 +79,7 @@
}
private void getInitData() {
- final SiteServiceAsync server = SiteService.App.getInstance();
- server.getInitData(session.getUserHash(), new AsyncCallback<InitDataDTO>() {
+ siteService.getInitData(session.getUserHash(), new AsyncCallback<InitDataDTO>() {
public void onFailure(final Throwable error) {
RootPanel.get("kuneinitialcurtain").setVisible(false);
RootPanel.get("kuneloading").setVisible(false);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -36,7 +36,7 @@
public interface ContentServiceAsync {
- void addAuthor(String userHash, StateToken token, String authorShortName, AsyncCallback<?> asyncCallback);
+ void addAuthor(String userHash, StateToken token, String authorShortName, AsyncCallback<Void> asyncCallback);
void addComment(String userHash, StateToken token, Long parentCommentId, String commentText,
AsyncCallback<CommentDTO> asyncCallback);
@@ -64,21 +64,21 @@
void rateContent(String userHash, StateToken token, Double value, AsyncCallback<RateResultDTO> asyncCallback);
- void removeAuthor(String userHash, StateToken token, String authorShortName, AsyncCallback<?> asyncCallback);
+ void removeAuthor(String userHash, StateToken token, String authorShortName, AsyncCallback<Void> asyncCallback);
void renameContainer(String userHash, StateToken token, String newName,
AsyncCallback<StateAbstractDTO> asyncCallback);
void renameContent(String userHash, StateToken token, String newName, AsyncCallback<StateAbstractDTO> asyncCallback);
- void save(String user, StateToken token, String content, AsyncCallback<?> asyncCallback);
+ void save(String user, StateToken token, String content, AsyncCallback<Void> asyncCallback);
void setAsDefaultContent(String userHash, StateToken token, AsyncCallback<ContentSimpleDTO> asyncCallback);
void setLanguage(String userHash, StateToken token, String languageCode,
AsyncCallback<I18nLanguageDTO> asyncCallback);
- void setPublishedOn(String userHash, StateToken token, Date publishedOn, AsyncCallback<?> asyncCallback);
+ void setPublishedOn(String userHash, StateToken token, Date publishedOn, AsyncCallback<Void> asyncCallback);
void setStatus(String userHash, StateToken stateToken, ContentStatusDTO status,
AsyncCallback<StateAbstractDTO> asyncCallback);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -30,9 +30,9 @@
public interface GroupServiceAsync {
void changeDefLicense(final String userHash, final StateToken groupToken, final LicenseDTO license,
- AsyncCallback<?> asyncCallback);
+ AsyncCallback<Void> asyncCallback);
- void changeGroupWsTheme(String userHash, StateToken groupToken, String theme, AsyncCallback<?> callback);
+ void changeGroupWsTheme(String userHash, StateToken groupToken, String theme, AsyncCallback<Void> callback);
void clearGroupBackImage(String userHash, StateToken token, AsyncCallback<GroupDTO> asyncCallback);
@@ -44,12 +44,12 @@
void setGroupBackImage(String userHash, StateToken token, AsyncCallback<GroupDTO> asyncCallback);
void setGroupNewMembersJoiningPolicy(String userHash, StateToken groupToken, AdmissionTypeDTO admissionPolicy,
- AsyncCallback<?> asyncCallback);
+ AsyncCallback<Void> asyncCallback);
void setSocialNetworkVisibility(String userHash, StateToken token, SocialNetworkVisibilityDTO visibility,
- AsyncCallback<?> asyncCallback);
+ AsyncCallback<Void> asyncCallback);
void setToolEnabled(String userHash, StateToken groupToken, String toolName, boolean enabled,
- AsyncCallback<?> asyncCallback);
+ AsyncCallback<Void> asyncCallback);
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SiteService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SiteService.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SiteService.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -22,25 +22,10 @@
import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.errors.DefaultException;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.RemoteService;
-import com.google.gwt.user.client.rpc.ServiceDefTarget;
public interface SiteService extends RemoteService {
- public class App {
- private static SiteServiceAsync ourInstance = null;
-
- public static synchronized SiteServiceAsync getInstance() {
- if (ourInstance == null) {
- ourInstance = (SiteServiceAsync) GWT.create(SiteService.class);
- ((ServiceDefTarget) ourInstance).setServiceEntryPoint(GWT.getModuleBaseURL() + "SiteService");
- }
- return ourInstance;
- }
-
- }
-
InitDataDTO getInitData(String userHash) throws DefaultException;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkServiceAsync.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkServiceAsync.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkServiceAsync.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -20,6 +20,7 @@
package org.ourproject.kune.platf.client.rpc;
import org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO;
+import org.ourproject.kune.platf.client.dto.SocialNetworkRequestResult;
import org.ourproject.kune.platf.client.dto.StateToken;
import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -46,7 +47,7 @@
void getSocialNetwork(String hash, StateToken groupToken, AsyncCallback<SocialNetworkDataDTO> callback);
- void requestJoinGroup(String hash, StateToken groupToken, AsyncCallback<?> callback);
+ void requestJoinGroup(String hash, StateToken groupToken, AsyncCallback<SocialNetworkRequestResult> callback);
void setAdminAsCollab(String hash, StateToken groupToken, String groupToSetCollabShortName,
AsyncCallback<SocialNetworkDataDTO> callback);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/UserServiceAsync.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/UserServiceAsync.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/UserServiceAsync.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -30,17 +30,17 @@
void createUser(UserDTO user, boolean wantPersonalHomepage, AsyncCallback<UserInfoDTO> asyncCallback);
- void getUserAvatarBaser64(String userHash, StateToken userToken, AsyncCallback<?> asyncCallback);
+ void getUserAvatarBaser64(String userHash, StateToken userToken, AsyncCallback<String> asyncCallback);
void login(String nickOrEmail, String passwd, AsyncCallback<UserInfoDTO> asyncCallback);
- void logout(String userHash, AsyncCallback<?> asyncCallback);
+ void logout(String userHash, AsyncCallback<Void> asyncCallback);
- void onlyCheckSession(String userHash, AsyncCallback<?> asyncCallback);
+ void onlyCheckSession(String userHash, AsyncCallback<Void> asyncCallback);
void reloadUserInfo(String userHash, AsyncCallback<UserInfoDTO> asyncCallback);
void setBuddiesVisibility(String userHash, StateToken groupToken, UserBuddiesVisibilityDTO visibility,
- AsyncCallback<?> asyncCallback);
+ AsyncCallback<Void> asyncCallback);
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -29,6 +29,8 @@
import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
import org.ourproject.kune.platf.client.rpc.I18nService;
import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
+import org.ourproject.kune.platf.client.rpc.SiteService;
+import org.ourproject.kune.platf.client.rpc.SiteServiceAsync;
import org.ourproject.kune.platf.client.rpc.UserService;
import org.ourproject.kune.platf.client.rpc.UserServiceAsync;
import org.ourproject.kune.platf.client.state.ContentProvider;
@@ -80,6 +82,13 @@
((ServiceDefTarget) service).setServiceEntryPoint(GWT.getModuleBaseURL() + "UserService");
return service;
}
+ }, new Factory<SiteServiceAsync>(SiteServiceAsync.class) {
+ @Override
+ public SiteServiceAsync create() {
+ final SiteServiceAsync service = (SiteServiceAsync) GWT.create(SiteService.class);
+ ((ServiceDefTarget) service).setServiceEntryPoint(GWT.getModuleBaseURL() + "SiteService");
+ return service;
+ }
});
register(Singleton.class, new Factory<I18nUITranslationService>(I18nUITranslationService.class) {
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -29,7 +29,9 @@
import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
import org.ourproject.kune.platf.client.i18n.Resources;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.SiteServiceAsync;
import org.ourproject.kune.platf.client.shortcuts.GlobalShortcutRegister;
+import org.ourproject.kune.platf.client.state.AccessRightsClientManager;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.QuickTipsHelper;
@@ -179,7 +181,7 @@
register(Singleton.class, new Factory<Application>(Application.class) {
@Override
public Application create() {
- return new ApplicationDefault(i(Session.class));
+ return new ApplicationDefault(i(Session.class), i(SiteServiceAsync.class));
}
});
@@ -457,6 +459,13 @@
}
});
+ register(Singleton.class, new Factory<AccessRightsClientManager>(AccessRightsClientManager.class) {
+ @Override
+ public AccessRightsClientManager create() {
+ return new AccessRightsClientManager(i(StateManager.class));
+ }
+ });
+
i(ApplicationComponentGroup.class).createAll();
i(ToolGroup.class).createAll();
i(Application.class).start();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -2,6 +2,7 @@
import org.ourproject.kune.platf.client.actions.AbstractAction;
import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.ChangebleObject;
import org.ourproject.kune.platf.client.actions.InputMap;
import org.ourproject.kune.platf.client.actions.KeyStroke;
import org.ourproject.kune.platf.client.actions.Shortcut;
@@ -50,7 +51,7 @@
@Override
public void put(final KeyStroke keystroke, final AbstractAction action) {
- final AbstractAction previous = super.get(keystroke);
+ final ChangebleObject previous = super.get(keystroke);
if (previous != null) {
Log.warn("Shortcut already registed by: " + previous + "(overriding)");
}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/state/AccessRightsClientManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/AccessRightsClientManager.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/AccessRightsClientManager.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,31 @@
+package org.ourproject.kune.platf.client.state;
+
+import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
+import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
+
+import com.calclab.suco.client.events.Event2;
+import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.events.Listener2;
+
+public class AccessRightsClientManager {
+ private AccessRightsDTO previousRights;
+ private final Event2<AccessRightsDTO, AccessRightsDTO> onRightsChanged;
+
+ public AccessRightsClientManager(final StateManager stateManager) {
+ this.previousRights = null;
+ this.onRightsChanged = new Event2<AccessRightsDTO, AccessRightsDTO>("onRightsChanged");
+ stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
+ public void onEvent(final StateAbstractDTO newState) {
+ final AccessRightsDTO rights = newState.getGroupRights();
+ if (!rights.equals(previousRights)) {
+ onRightsChanged.fire(previousRights, rights);
+ previousRights = rights;
+ }
+ }
+ });
+ }
+
+ public void onRightsChanged(final Listener2<AccessRightsDTO, AccessRightsDTO> listener) {
+ onRightsChanged.add(listener);
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -67,7 +67,7 @@
String USERHASH = "userHash";
- void check(AsyncCallbackSimple<?> callback);
+ void check(AsyncCallbackSimple<Void> callback);
StateContainerDTO getContainerState();
@@ -123,14 +123,14 @@
Collection<ToolSimpleDTO> getUserTools();
- boolean isInCurrentUserSpace();
-
boolean inSameToken(StateToken token);
boolean isCurrentStateAContent();
boolean isCurrentStateAGroup();
+ boolean isInCurrentUserSpace();
+
boolean isLogged();
boolean isNotLogged();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -67,7 +67,7 @@
this.onUserSignOut = new Event0("onUserSignOut");
}
- public void check(final AsyncCallbackSimple<?> callback) {
+ public void check(final AsyncCallbackSimple<Void> callback) {
Log.debug("Checking session (userhash: " + getUserHash() + ")");
userServiceProvider.get().onlyCheckSession(getUserHash(), callback);
}
@@ -189,16 +189,6 @@
return initData.getUserTools();
}
- public boolean isInCurrentUserSpace() {
- if (!isLogged()) {
- return false;
- }
- if (getCurrentStateToken().getGroup().equals(getCurrentUser().getShortName())) {
- return true;
- }
- return false;
- }
-
public boolean inSameToken(final StateToken token) {
return getCurrentStateToken().equals(token);
}
@@ -211,6 +201,16 @@
return currentState == null ? false : !currentState.getGroup().isPersonal();
}
+ public boolean isInCurrentUserSpace() {
+ if (!isLogged()) {
+ return false;
+ }
+ if (getCurrentStateToken().getGroup().equals(getCurrentUser().getShortName())) {
+ return true;
+ }
+ return false;
+ }
+
public boolean isLogged() {
return userHash != null;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -198,6 +198,7 @@
NotifyUser.hideProgress();
checkGroupAndToolChange(newState);
previousToken = newState.getStateToken();
+
}
private void checkGroupAndToolChange(final StateAbstractDTO newState) {
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialogExtended.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialogExtended.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialogExtended.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -1,93 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package org.ourproject.kune.platf.client.ui.dialogs;
-
-import com.calclab.suco.client.events.Listener0;
-import com.gwtext.client.core.EventObject;
-import com.gwtext.client.core.Ext;
-import com.gwtext.client.core.Position;
-import com.gwtext.client.widgets.Button;
-import com.gwtext.client.widgets.event.ButtonListenerAdapter;
-import com.gwtext.client.widgets.layout.FitLayout;
-
-public class BasicDialogExtended extends BasicDialog {
-
- private final Button cancel;
- private final Button firstButton;
-
- public BasicDialogExtended(final String dialogId, final String title, final boolean modal,
- final boolean autoscroll, final int width, final int heigth, final String icon,
- final String firstButtonTitle, final String cancelButtonTitle, final Listener0 onFirstButtonClick,
- final Listener0 onCancelButtonClick, final int tabIndexStart) {
- this(dialogId, title, modal, autoscroll, width, heigth, icon, firstButtonTitle, Ext.generateId(),
- cancelButtonTitle, Ext.generateId(), onFirstButtonClick, onCancelButtonClick, tabIndexStart);
- }
-
- public BasicDialogExtended(final String dialogId, final String title, final boolean modal,
- final boolean autoscroll, final int width, final int heigth, final String icon,
- final String firstButtonTitle, final String firstButtonId, final String cancelButtonTitle,
- final String cancelButtonId, final Listener0 onFirstButtonClick, final Listener0 onCancelButtonClick,
- final int tabIndexStart) {
- super(dialogId, title, modal, autoscroll, width, heigth);
- setLayout(new FitLayout());
- setCollapsible(false);
- setButtonAlign(Position.RIGHT);
- setIconCls(icon);
-
- firstButton = new Button(firstButtonTitle);
- firstButton.setId(firstButtonId);
- firstButton.addListener(new ButtonListenerAdapter() {
- @Override
- public void onClick(final Button button, final EventObject event) {
- onFirstButtonClick.onEvent();
- }
- });
-
- firstButton.setTabIndex(tabIndexStart);
-
- cancel = new Button(cancelButtonTitle);
- cancel.setId(cancelButtonId);
- cancel.addListener(new ButtonListenerAdapter() {
- @Override
- public void onClick(final Button button, final EventObject event) {
- onCancelButtonClick.onEvent();
- }
- });
- cancel.setTabIndex(tabIndexStart + 1);
- addButton(firstButton);
- addButton(cancel);
- }
-
- public Button getCancel() {
- return cancel;
- }
-
- public Button getFirstButton() {
- return firstButton;
- }
-
- public void mask(final String message) {
- getEl().mask(message, "x-mask-loading");
- }
-
- public void unMask() {
- getEl().unmask();
- }
-}
Copied: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/ExtendedDialog.java (from rev 1121, trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialogExtended.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialogExtended.java 2009-06-08 14:18:03 UTC (rev 1121)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/ExtendedDialog.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,93 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.platf.client.ui.dialogs;
+
+import com.calclab.suco.client.events.Listener0;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.core.Ext;
+import com.gwtext.client.core.Position;
+import com.gwtext.client.widgets.Button;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
+import com.gwtext.client.widgets.layout.FitLayout;
+
+public class ExtendedDialog extends BasicDialog {
+
+ private final Button cancel;
+ private final Button firstButton;
+
+ public ExtendedDialog(final String dialogId, final String title, final boolean modal,
+ final boolean autoscroll, final int width, final int heigth, final String icon,
+ final String firstButtonTitle, final String cancelButtonTitle, final Listener0 onFirstButtonClick,
+ final Listener0 onCancelButtonClick, final int tabIndexStart) {
+ this(dialogId, title, modal, autoscroll, width, heigth, icon, firstButtonTitle, Ext.generateId(),
+ cancelButtonTitle, Ext.generateId(), onFirstButtonClick, onCancelButtonClick, tabIndexStart);
+ }
+
+ public ExtendedDialog(final String dialogId, final String title, final boolean modal,
+ final boolean autoscroll, final int width, final int heigth, final String icon,
+ final String firstButtonTitle, final String firstButtonId, final String cancelButtonTitle,
+ final String cancelButtonId, final Listener0 onFirstButtonClick, final Listener0 onCancelButtonClick,
+ final int tabIndexStart) {
+ super(dialogId, title, modal, autoscroll, width, heigth);
+ setLayout(new FitLayout());
+ setCollapsible(false);
+ setButtonAlign(Position.RIGHT);
+ setIconCls(icon);
+
+ firstButton = new Button(firstButtonTitle);
+ firstButton.setId(firstButtonId);
+ firstButton.addListener(new ButtonListenerAdapter() {
+ @Override
+ public void onClick(final Button button, final EventObject event) {
+ onFirstButtonClick.onEvent();
+ }
+ });
+
+ firstButton.setTabIndex(tabIndexStart);
+
+ cancel = new Button(cancelButtonTitle);
+ cancel.setId(cancelButtonId);
+ cancel.addListener(new ButtonListenerAdapter() {
+ @Override
+ public void onClick(final Button button, final EventObject event) {
+ onCancelButtonClick.onEvent();
+ }
+ });
+ cancel.setTabIndex(tabIndexStart + 1);
+ addButton(firstButton);
+ addButton(cancel);
+ }
+
+ public Button getCancel() {
+ return cancel;
+ }
+
+ public Button getFirstButton() {
+ return firstButton;
+ }
+
+ public void mask(final String message) {
+ getEl().mask(message, "x-mask-loading");
+ }
+
+ public void unMask() {
+ getEl().unmask();
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -15,6 +15,9 @@
@Resource("kimg.css")
CssResource css();
+ @Resource("del-green.png")
+ ImageResource delGreen();
+
@Resource("group-home.png")
ImageResource groupHome();
@@ -35,5 +38,4 @@
@Resource("prefs.png")
ImageResource prefs();
-
}
\ No newline at end of file
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/del-green.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/del-green.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/noti/NotifyUser.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/noti/NotifyUser.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/noti/NotifyUser.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -47,6 +47,15 @@
private static Images images;
public static void askConfirmation(final String confirmationTitle, final String confirmationText,
+ final Listener0 onConfirm) {
+ ON_CONFIRMATION_ASK.fire(new ConfirmationAsk(confirmationTitle, confirmationText, onConfirm, new Listener0() {
+ public void onEvent() {
+ // Do nothing
+ }
+ }));
+ }
+
+ public static void askConfirmation(final String confirmationTitle, final String confirmationText,
final Listener0 onConfirm, final Listener0 onCancel) {
ON_CONFIRMATION_ASK.fire(new ConfirmationAsk(confirmationTitle, confirmationText, onConfirm, onCancel));
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -124,6 +124,7 @@
bind(KuneProperties.class).to(KunePropertiesDefault.class);
bind(Mapper.class).to(DozerMapper.class);
bind(ServerToolRegistry.class);
+ // bind(FileUploadManager.class).in(ServletScopes.REQUEST);
bind(FileUploadManager.class);
bind(FileDownloadManager.class);
bind(EntityLogoUploadManager.class);
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/UserSession.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/UserSession.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/UserSession.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -36,24 +36,14 @@
this.manager = manager;
}
- public void login(final User user, final String newUserHash) {
- setUser(user);
- setHash(newUserHash);
+ public String getHash() {
+ return userHash;
}
- public void logout() {
- userId = null;
- userHash = null;
- }
-
public User getUser() {
return manager.find(userId);
}
- public String getHash() {
- return userHash;
- }
-
public boolean isUserLoggedIn() {
return userId != null;
}
@@ -62,12 +52,22 @@
return !isUserLoggedIn();
}
- private void setUser(final User user) {
- userId = user.getId();
+ public void login(final User user, final String newUserHash) {
+ setUser(user);
+ setHash(newUserHash);
}
+ public void logout() {
+ userId = null;
+ userHash = null;
+ }
+
private void setHash(final String hash) {
this.userHash = hash;
}
+ private void setUser(final User user) {
+ userId = user.getId();
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -117,7 +117,7 @@
fileUploadItem.write(file);
final String mimetype = fileUploadItem.getContentType();
- BasicMimeType basicMimeType = new BasicMimeType(mimetype);
+ final BasicMimeType basicMimeType = new BasicMimeType(mimetype);
LOG.info("Mimetype: " + basicMimeType);
final String extension = FileUtils.getFileNameExtension(file.getName(), false);
@@ -128,7 +128,7 @@
} else if (basicMimeType.isPdf()) {
generateThumbs(absDir, file.getName(), "png", true);
} else if (basicMimeType.isText()) {
- String textPreview = new String(FileUtils.getBytesFromFile(file));
+ final String textPreview = new String(FileUtils.getBytesFromFile(file));
preview = "<pre>" + StringW.wordWrap(textPreview) + "</pre>";
}
@@ -151,18 +151,18 @@
private void generateThumbs(final String absDir, final String filename, final String extension, final boolean isPdf) {
try {
- String fileOrig = absDir + filename;
- String withoutExtension = FileUtils.getFileNameWithoutExtension(filename, extension);
+ final String fileOrig = absDir + filename;
+ final String withoutExtension = FileUtils.getFileNameWithoutExtension(filename, extension);
- String resizeName = absDir + withoutExtension + "." + ImageSize.sized + "." + extension;
- String thumbName = absDir + withoutExtension + "." + ImageSize.thumb + "." + extension;
- String iconName = absDir + withoutExtension + "." + ImageSize.ico + "." + extension;
- String previewName = absDir + withoutExtension + "." + extension;
+ final String resizeName = absDir + withoutExtension + "." + ImageSize.sized + "." + extension;
+ final String thumbName = absDir + withoutExtension + "." + ImageSize.thumb + "." + extension;
+ final String iconName = absDir + withoutExtension + "." + ImageSize.ico + "." + extension;
+ final String previewName = absDir + withoutExtension + "." + extension;
- int resizeWidth = Integer.parseInt(kuneProperties.get(KuneProperties.IMAGES_RESIZEWIDTH));
- int thumbSize = Integer.parseInt(kuneProperties.get(KuneProperties.IMAGES_THUMBSIZE));
- int cropSize = Integer.parseInt(kuneProperties.get(KuneProperties.IMAGES_CROPSIZE));
- int iconSize = Integer.parseInt(kuneProperties.get(KuneProperties.IMAGES_ICONSIZE));
+ final int resizeWidth = Integer.parseInt(kuneProperties.get(KuneProperties.IMAGES_RESIZEWIDTH));
+ final int thumbSize = Integer.parseInt(kuneProperties.get(KuneProperties.IMAGES_THUMBSIZE));
+ final int cropSize = Integer.parseInt(kuneProperties.get(KuneProperties.IMAGES_CROPSIZE));
+ final int iconSize = Integer.parseInt(kuneProperties.get(KuneProperties.IMAGES_ICONSIZE));
ImageUtilsDefault.scaleImageToMax(fileOrig, resizeName, resizeWidth);
ImageUtilsDefault.createThumb(fileOrig, thumbName, thumbSize, cropSize);
@@ -170,11 +170,11 @@
if (isPdf) {
ImageUtilsDefault.createThumbFromPdf(fileOrig, previewName);
}
- } catch (NumberFormatException e) {
+ } catch (final NumberFormatException e) {
LOG.error("Image sizes in kune.properties are not integers", e);
- } catch (MagickException e) {
+ } catch (final MagickException e) {
LOG.info("Problem generating image thumb for " + filename, e);
- } catch (FileNotFoundException e) {
+ } catch (final FileNotFoundException e) {
LOG.info("Original image not found generating image thumb for " + filename, e);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/DefaultManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/DefaultManager.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/DefaultManager.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -76,7 +76,7 @@
@SuppressWarnings("unchecked")
public void reIndex() {
// Inject this?
- final FullTextEntityManager fullTextEm = Search.createFullTextEntityManager(getEntityManager());
+ final FullTextEntityManager fullTextEm = Search.getFullTextEntityManager(getEntityManager());
fullTextEm.purgeAll(entityClass);
fullTextEm.getTransaction().commit();
fullTextEm.getTransaction().begin();
@@ -97,7 +97,7 @@
@SuppressWarnings("unchecked")
public SearchResult<T> search(final Query query, final Integer firstResult, final Integer maxResults) {
- final FullTextQuery emQuery = Search.createFullTextEntityManager(getEntityManager()).createFullTextQuery(query,
+ final FullTextQuery emQuery = Search.getFullTextEntityManager(getEntityManager()).createFullTextQuery(query,
entityClass);
if (firstResult != null && maxResults != null) {
emQuery.setFirstResult(firstResult);
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertiesManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertiesManagerDefault.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertiesManagerDefault.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -20,14 +20,11 @@
public class PropertiesManagerDefault extends DefaultManager<Properties, Long> implements PropertiesManager {
private final Property propFinder;
- private final Properties propsFinder;
@Inject
- public PropertiesManagerDefault(final Provider<EntityManager> provider, final Property propFinder,
- final Properties propsFinder) {
+ public PropertiesManagerDefault(final Provider<EntityManager> provider, final Property propFinder) {
super(provider, Properties.class);
this.propFinder = propFinder;
- this.propsFinder = propsFinder;
}
public HashMap<String, PropertySetted> get(final Properties properties) {
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -43,6 +43,7 @@
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
+import org.ourproject.kune.workspace.client.wave.WaveInsert;
import com.calclab.suco.client.ioc.Provider;
@@ -56,11 +57,12 @@
final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
final WikiViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
- final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
+ final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager,
+ final Provider<WaveInsert> waveInsert) {
super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
- documentViewer, entityLogo, publicLink, wsBackManager);
+ documentViewer, entityLogo, publicLink, wsBackManager, waveInsert);
}
@Override
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -55,6 +55,7 @@
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
+import org.ourproject.kune.workspace.client.wave.WaveInsert;
import com.calclab.suco.client.ioc.decorator.Singleton;
import com.calclab.suco.client.ioc.module.Factory;
@@ -81,7 +82,8 @@
p(ContentServiceAsync.class), p(GroupServiceAsync.class), p(FileUploader.class),
i(ContentActionRegistry.class), i(ContextActionRegistry.class), p(FileDownloadUtils.class),
i(EntityHeader.class), p(ContentEditor.class), i(ErrorHandler.class), i(WikiViewer.class),
- p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class));
+ p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class),
+ p(WaveInsert.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -61,6 +61,7 @@
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
+import org.ourproject.kune.workspace.client.wave.WaveInsert;
import com.calclab.suco.client.events.Listener;
import com.calclab.suco.client.events.Listener0;
@@ -100,6 +101,8 @@
private final WsBackManager wsBackManager;
+ private final Provider<WaveInsert> waveInsert;
+
public AbstractFoldableContentActions(final Session session, final StateManager stateManager,
final I18nUITranslationService i18n, final ErrorHandler errorHandler,
final DeferredCommandWrapper deferredCommandWrapper,
@@ -109,7 +112,8 @@
final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry,
final Provider<FileDownloadUtils> fileDownloadProvider, final Provider<ContentEditor> textEditorProvider,
final Provider<ContextPropEditor> contextPropEditorProvider, final FoldableContent foldableContent,
- final EntityHeader entityLogo, final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
+ final EntityHeader entityLogo, final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager,
+ final Provider<WaveInsert> waveInsert) {
this.session = session;
this.stateManager = stateManager;
this.i18n = i18n;
@@ -128,6 +132,7 @@
this.entityLogo = entityLogo;
this.publicLink = publicLink;
this.wsBackManager = wsBackManager;
+ this.waveInsert = waveInsert;
createActions();
session.onInitDataReceived(new Listener<InitDataDTO>() {
public void onEvent(final InitDataDTO parameter) {
@@ -241,8 +246,8 @@
AccessRolDTO.Editor, CONTENT_TOPBAR, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
NotifyUser.showProgressProcessing();
- session.check(new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
+ session.check(new AsyncCallbackSimple<Void>() {
+ public void onSuccess(final Void result) {
final ContentEditor editor = textEditorProvider.get();
foldableContent.detach();
contextNavigator.detach();
@@ -251,7 +256,7 @@
public void onEvent(final String html) {
NotifyUser.showProgressSaving();
contentServiceProvider.get().save(session.getUserHash(), stateToken, html,
- new AsyncCallback<Object>() {
+ new AsyncCallback<Void>() {
public void onFailure(final Throwable caught) {
NotifyUser.hideProgress();
if (caught instanceof SessionExpiredException) {
@@ -263,7 +268,7 @@
}
}
- public void onSuccess(final Object param) {
+ public void onSuccess(final Void param) {
NotifyUser.hideProgress();
session.getContentState().setContent(html);
editor.onSavedSuccessful();
@@ -586,12 +591,7 @@
final ActionToolbarMenuAndItemDescriptor<StateToken> addWave = new ActionToolbarMenuAndItemDescriptor<StateToken>(
AccessRolDTO.Editor, CONTEXT_TOPBAR, new Listener<StateToken>() {
public void onEvent(final StateToken parentToken) {
- contentServiceProvider.get().addWave(session.getUserHash(), parentToken, waveFileType,
- "wavesandbox.com!w+NdlzA9PU%B", new AsyncCallbackSimple<StateContentDTO>() {
- public void onSuccess(final StateContentDTO state) {
- stateManager.setRetrievedState(state);
- }
- });
+ waveInsert.get().show(parentToken);
}
});
addWave.setTextDescription(i18n.t("Add Wave"));
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/ActionsModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ActionsModule.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ActionsModule.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,37 @@
+package org.ourproject.kune.workspace.client;
+
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
+import org.ourproject.kune.platf.client.services.AbstractExtendedModule;
+import org.ourproject.kune.platf.client.state.AccessRightsClientManager;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.img.ImgResources;
+import org.ourproject.kune.workspace.client.socialnet.ParticipateAction;
+import org.ourproject.kune.workspace.client.socialnet.UnjoinAction;
+
+import com.calclab.suco.client.ioc.decorator.NoDecoration;
+import com.calclab.suco.client.ioc.module.Factory;
+
+public class ActionsModule extends AbstractExtendedModule {
+ @Override
+ protected void onInstall() {
+ register(NoDecoration.class, new Factory<ParticipateAction>(ParticipateAction.class) {
+ @Override
+ public ParticipateAction create() {
+ return new ParticipateAction(i(Session.class), p(SocialNetworkServiceAsync.class),
+ i(StateManager.class), i(AccessRightsClientManager.class), i(I18nTranslationService.class),
+ i(ImgResources.class));
+ }
+ });
+
+ register(NoDecoration.class, new Factory<UnjoinAction>(UnjoinAction.class) {
+ @Override
+ public UnjoinAction create() {
+ return new UnjoinAction(i(Session.class), p(SocialNetworkServiceAsync.class), i(StateManager.class),
+ i(AccessRightsClientManager.class), i(I18nTranslationService.class), i(ImgResources.class));
+ }
+ });
+
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -48,6 +48,7 @@
import org.ourproject.kune.platf.client.services.ImageUtils;
import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.shortcuts.GlobalShortcutRegister;
+import org.ourproject.kune.platf.client.state.AccessRightsClientManager;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
@@ -254,6 +255,9 @@
import org.ourproject.kune.workspace.client.upload.FileUploader;
import org.ourproject.kune.workspace.client.upload.FileUploaderDialog;
import org.ourproject.kune.workspace.client.upload.FileUploaderPresenter;
+import org.ourproject.kune.workspace.client.wave.WaveInsert;
+import org.ourproject.kune.workspace.client.wave.WaveInsertPanel;
+import org.ourproject.kune.workspace.client.wave.WaveInsertPresenter;
import com.calclab.suco.client.events.Listener0;
import com.calclab.suco.client.ioc.decorator.NoDecoration;
@@ -562,7 +566,8 @@
i(I18nUITranslationService.class), i(StateManager.class), i(ImageUtils.class),
i(Session.class), p(SocialNetworkServiceAsync.class), p(GroupServiceAsync.class),
p(GroupLiveSearcher.class), p(ChatEngine.class), i(GroupActionRegistry.class),
- i(ActionGroupSummaryToolbar.class), p(FileDownloadUtils.class));
+ i(ActionGroupSummaryToolbar.class), p(FileDownloadUtils.class),
+ i(AccessRightsClientManager.class), i(ImgResources.class));
final GroupMembersSummaryView view = new GroupMembersSummaryPanel(presenter,
i(I18nUITranslationService.class), i(WorkspaceSkeleton.class), i(
ActionGroupSummaryToolbar.class).getView());
@@ -586,7 +591,7 @@
i(Session.class), p(UserServiceAsync.class), i(UserActionRegistry.class),
i(I18nTranslationService.class), p(ChatEngine.class), i(ActionBuddiesSummaryToolbar.class),
p(FileDownloadUtils.class), i(ImageUtils.class), p(SocialNetworkServiceAsync.class),
- i(GroupActionRegistry.class));
+ i(GroupActionRegistry.class), i(AccessRightsClientManager.class), i(ImgResources.class));
final BuddiesSummaryPanel panel = new BuddiesSummaryPanel(presenter, i(WorkspaceSkeleton.class),
i(I18nTranslationService.class), i(ActionManager.class),
i(ActionBuddiesSummaryToolbar.class).getView());
@@ -601,7 +606,8 @@
final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(
i(I18nUITranslationService.class), i(StateManager.class), i(ImageUtils.class),
i(Session.class), p(SocialNetworkServiceAsync.class), i(GroupActionRegistry.class),
- i(ActionParticipationToolbar.class), p(FileDownloadUtils.class));
+ i(ActionParticipationToolbar.class), p(FileDownloadUtils.class),
+ i(AccessRightsClientManager.class), i(ImgResources.class));
final ParticipationSummaryView view = new ParticipationSummaryPanel(presenter,
i(I18nUITranslationService.class), i(WorkspaceSkeleton.class), i(
ActionParticipationToolbar.class).getView());
@@ -1105,6 +1111,18 @@
}
});
+ register(Singleton.class, new Factory<WaveInsert>(WaveInsert.class) {
+ @Override
+ public WaveInsert create() {
+ final WaveInsertPresenter presenter = new WaveInsertPresenter(i(Session.class), i(StateManager.class),
+ i(I18nTranslationService.class), p(ContentServiceAsync.class));
+ final WaveInsertPanel panel = new WaveInsertPanel(presenter, i(I18nTranslationService.class),
+ i(ImgResources.class));
+ presenter.init(panel);
+ return presenter;
+ }
+ });
+
i(GlobalShortcutRegister.class).enable();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -102,7 +102,7 @@
}
});
waveWidget.loadWave(waveId);
- setContent(waveWidget);
+ setWidgetAsContent(waveWidget, false);
}
public void setWidgetAsContent(final Widget widget, final boolean setDefMargins) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPresenter.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -50,7 +50,7 @@
private final ContentCapabilitiesRegistry capabilitiesRegistry;
public ContextPropEditorPresenter(final Session session, final StateManager stateManager,
- ContentCapabilitiesRegistry capabilitiesRegistry, final Provider<TagsSummary> tagsSummaryProvider,
+ final ContentCapabilitiesRegistry capabilitiesRegistry, final Provider<TagsSummary> tagsSummaryProvider,
final Provider<ContentServiceAsync> contentServiceProvider, final EntitySubTitle entitySubTitle) {
this.session = session;
this.stateManager = stateManager;
@@ -64,8 +64,8 @@
NotifyUser.showProgressProcessing();
final StateContainerDTO currentState = session.getContentState();
contentServiceProvider.get().addAuthor(session.getUserHash(), currentState.getStateToken(), authorShortName,
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
+ new AsyncCallbackSimple<Void>() {
+ public void onSuccess(final Void result) {
NotifyUser.hideProgress();
stateManager.reload();
}
@@ -84,8 +84,8 @@
NotifyUser.showProgressProcessing();
final StateContainerDTO currentState = session.getContentState();
contentServiceProvider.get().removeAuthor(session.getUserHash(), currentState.getStateToken(), authorShortName,
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
+ new AsyncCallbackSimple<Void>() {
+ public void onSuccess(final Void result) {
NotifyUser.hideProgress();
stateManager.reload();
}
@@ -115,8 +115,8 @@
NotifyUser.showProgressProcessing();
final StateContainerDTO currentState = session.getContentState();
contentServiceProvider.get().setPublishedOn(session.getUserHash(), currentState.getStateToken(), publishedOn,
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
+ new AsyncCallbackSimple<Void>() {
+ public void onSuccess(final Void result) {
NotifyUser.hideProgress();
entitySubTitle.setContentDate(publishedOn);
}
@@ -131,7 +131,7 @@
final String tags = state.getTags();
final List<UserSimpleDTO> authors = state.getAuthors();
- String typeId = state.getTypeId();
+ final String typeId = state.getTypeId();
if (capabilitiesRegistry.isTranslatable(typeId)) {
assert (language != null);
view.setLanguage(language);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/licensewizard/LicenseChangeAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/licensewizard/LicenseChangeAction.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensewizard/LicenseChangeAction.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -47,13 +47,13 @@
public void changeLicense(final StateToken token, final LicenseDTO license, final Listener0 onSuccess) {
NotifyUser.showProgressProcessing();
- groupService.get().changeDefLicense(session.getUserHash(), token, license, new AsyncCallback<Object>() {
+ groupService.get().changeDefLicense(session.getUserHash(), token, license, new AsyncCallback<Void>() {
public void onFailure(final Throwable caught) {
NotifyUser.hideProgress();
NotifyUser.error(i18n.t("Error changing default group license"));
}
- public void onSuccess(final Object result) {
+ public void onSuccess(final Void result) {
stateManager.reload();
onSuccess.onEvent();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -24,7 +24,7 @@
import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.ui.KuneUiUtils;
import org.ourproject.kune.platf.client.ui.KuneWindowUtils;
-import org.ourproject.kune.platf.client.ui.dialogs.BasicDialogExtended;
+import org.ourproject.kune.platf.client.ui.dialogs.ExtendedDialog;
import org.ourproject.kune.platf.client.ui.dialogs.DefaultFormUtils;
import org.ourproject.kune.platf.client.ui.dialogs.MessageToolbar;
import org.ourproject.kune.platf.client.ui.noti.NotifyUser.Level;
@@ -55,7 +55,7 @@
import com.gwtext.client.widgets.form.TextField;
import com.gwtext.client.widgets.layout.HorizontalLayout;
-public class NewGroupPanel extends BasicDialogExtended implements NewGroupView {
+public class NewGroupPanel extends ExtendedDialog implements NewGroupView {
private static final String MARGIN_LEFT_105PX = "margin-left: 105px";
private static final int LABEL_WIDTH = 100;
public static final String SHORTNAME_FIELD = "k-ngp-short_name";
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -64,8 +64,8 @@
}
public void doNewGroup() {
- session.check(new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
+ session.check(new AsyncCallbackSimple<Void>() {
+ public void onSuccess(final Void result) {
if (session.isLogged()) {
NotifyUser.showProgressProcessing();
view.show();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -102,13 +102,13 @@
protected void setToolCheckedInServer(final boolean checked, final String toolName) {
groupService.get().setToolEnabled(session.getUserHash(), getOperationToken(), toolName, checked,
- new AsyncCallback<Object>() {
+ new AsyncCallback<Void>() {
public void onFailure(final Throwable caught) {
view.setChecked(toolName, !checked);
entityOptions.setErrorMessage(i18n.t("Error configuring the tool"), Level.error);
}
- public void onSuccess(final Object result) {
+ public void onSuccess(final Void result) {
stateManager.reload();
}
});
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInAbstractPanel.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -24,7 +24,7 @@
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.ui.dialogs.BasicDialogExtended;
+import org.ourproject.kune.platf.client.ui.dialogs.ExtendedDialog;
import org.ourproject.kune.platf.client.ui.dialogs.MessageToolbar;
import org.ourproject.kune.platf.client.ui.noti.NotifyUser.Level;
@@ -33,7 +33,7 @@
import com.google.gwt.user.client.Cookies;
import com.gwtext.client.core.Ext;
-public abstract class SignInAbstractPanel extends BasicDialogExtended {
+public abstract class SignInAbstractPanel extends ExtendedDialog {
protected final I18nTranslationService i18n;
private final MessageToolbar messageErrorBar;
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPresenter.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -74,7 +74,7 @@
public void doSignOut() {
if (beforeSignOut.checkBeforeAction()) {
- userService.get().logout(session.getUserHash(), new AsyncCallback<Object>() {
+ userService.get().logout(session.getUserHash(), new AsyncCallback<Void>() {
public void onFailure(final Throwable caught) {
NotifyUser.hideProgress();
if (caught instanceof SessionExpiredException) {
@@ -86,7 +86,7 @@
}
}
- public void onSuccess(final Object arg0) {
+ public void onSuccess(final Void arg0) {
NotifyUser.hideProgress();
clientUIsignOut();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -41,9 +41,11 @@
import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
import org.ourproject.kune.platf.client.rpc.UserServiceAsync;
import org.ourproject.kune.platf.client.services.ImageUtils;
+import org.ourproject.kune.platf.client.state.AccessRightsClientManager;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
+import org.ourproject.kune.platf.client.ui.img.ImgResources;
import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionBuddiesSummaryToolbar;
@@ -64,13 +66,15 @@
private final Provider<UserServiceAsync> userServiceAsync;
private final Provider<FileDownloadUtils> fileDownUtilsProvider;
- public BuddiesSummaryPresenter(StateManager stateManager, final Session session,
- Provider<UserServiceAsync> userServiceAsync, UserActionRegistry actionRegistry,
- I18nTranslationService i18n, final Provider<ChatEngine> chatEngineProvider,
- final ActionBuddiesSummaryToolbar toolbar, Provider<FileDownloadUtils> fileDownUtilsProvider,
- ImageUtils imageUtils, Provider<SocialNetworkServiceAsync> snServiceAsync,
- GroupActionRegistry groupActionRegistry) {
- super(i18n, stateManager, session, snServiceAsync, groupActionRegistry, fileDownUtilsProvider);
+ public BuddiesSummaryPresenter(final StateManager stateManager, final Session session,
+ final Provider<UserServiceAsync> userServiceAsync, final UserActionRegistry actionRegistry,
+ final I18nTranslationService i18n, final Provider<ChatEngine> chatEngineProvider,
+ final ActionBuddiesSummaryToolbar toolbar, final Provider<FileDownloadUtils> fileDownUtilsProvider,
+ final ImageUtils imageUtils, final Provider<SocialNetworkServiceAsync> snServiceAsync,
+ final GroupActionRegistry groupActionRegistry, final AccessRightsClientManager accessRightManager,
+ final ImgResources img) {
+ super(i18n, stateManager, accessRightManager, session, snServiceAsync, groupActionRegistry,
+ fileDownUtilsProvider, img);
this.stateManager = stateManager;
this.session = session;
this.userServiceAsync = userServiceAsync;
@@ -80,12 +84,12 @@
this.toolbar = toolbar;
this.fileDownUtilsProvider = fileDownUtilsProvider;
stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
- public void onEvent(StateAbstractDTO state) {
+ public void onEvent(final StateAbstractDTO state) {
setState(state);
}
});
stateManager.onSocialNetworkChanged(new Listener<StateAbstractDTO>() {
- public void onEvent(StateAbstractDTO state) {
+ public void onEvent(final StateAbstractDTO state) {
setState(state);
}
});
@@ -96,26 +100,26 @@
return view;
}
- public void init(BuddiesSummaryView view) {
+ public void init(final BuddiesSummaryView view) {
this.view = view;
}
- protected void setState(StateAbstractDTO state) {
+ protected void setState(final StateAbstractDTO state) {
if (state.getGroup().isPersonal()) {
view.clear();
- UserBuddiesDataDTO userBuddies = state.getUserBuddies();
+ final UserBuddiesDataDTO userBuddies = state.getUserBuddies();
if (state.getSocialNetworkData().isBuddiesVisible()) {
- List<UserSimpleDTO> buddies = userBuddies.getBuddies();
- for (UserSimpleDTO user : buddies) {
- String avatarUrl = user.hasLogo() ? fileDownUtilsProvider.get().getLogoImageUrl(
+ final List<UserSimpleDTO> buddies = userBuddies.getBuddies();
+ for (final UserSimpleDTO user : buddies) {
+ final String avatarUrl = user.hasLogo() ? fileDownUtilsProvider.get().getLogoImageUrl(
user.getStateToken()) : BuddiesSummaryView.NOAVATAR;
- String tooltip = super.createTooltipWithLogo(user.getShortName(), user.getStateToken(),
+ final String tooltip = super.createTooltipWithLogo(user.getShortName(), user.getStateToken(),
user.hasLogo(), true);
view.addBuddie(user, actionRegistry.getCurrentActions(user, session.isLogged(),
new AccessRightsDTO(true, true, true), false), avatarUrl, user.getName(), tooltip);
}
- boolean hasLocalBuddies = buddies.size() > 0;
- int numExtBuddies = userBuddies.getOtherExtBuddies();
+ final boolean hasLocalBuddies = buddies.size() > 0;
+ final int numExtBuddies = userBuddies.getOtherExtBuddies();
if (numExtBuddies > 0) {
if (hasLocalBuddies) {
// i18n: plural
@@ -147,9 +151,9 @@
}
private void createAddNewBuddiesAction() {
- ActionToolbarMenuDescriptor<UserSimpleDTO> addNewBuddiesAction = new ActionToolbarMenuDescriptor<UserSimpleDTO>(
+ final ActionToolbarMenuDescriptor<UserSimpleDTO> addNewBuddiesAction = new ActionToolbarMenuDescriptor<UserSimpleDTO>(
AccessRolDTO.Administrator, buddiesBottom, new Listener<UserSimpleDTO>() {
- public void onEvent(UserSimpleDTO parameter) {
+ public void onEvent(final UserSimpleDTO parameter) {
NotifyUser.info("In development");
}
});
@@ -159,23 +163,24 @@
actionRegistry.addAction(addNewBuddiesAction);
}
- private void createSetBuddiesVisibilityAction(String textDescription, final UserBuddiesVisibilityDTO visibility) {
- ActionToolbarMenuRadioDescriptor<UserSimpleDTO> buddiesVisibilityAction = new ActionToolbarMenuRadioDescriptor<UserSimpleDTO>(
+ private void createSetBuddiesVisibilityAction(final String textDescription,
+ final UserBuddiesVisibilityDTO visibility) {
+ final ActionToolbarMenuRadioDescriptor<UserSimpleDTO> buddiesVisibilityAction = new ActionToolbarMenuRadioDescriptor<UserSimpleDTO>(
AccessRolDTO.Administrator, buddiesBottom, new Listener<UserSimpleDTO>() {
- public void onEvent(UserSimpleDTO parameter) {
+ public void onEvent(final UserSimpleDTO parameter) {
userServiceAsync.get().setBuddiesVisibility(session.getUserHash(),
session.getCurrentState().getGroup().getStateToken(), visibility,
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(Object result) {
+ new AsyncCallbackSimple<Void>() {
+ public void onSuccess(final Void result) {
NotifyUser.info(i18n.t("Buddies visibility changed"));
}
});
}
}, BUDDIES_VISIBILITY_GROUP, new RadioMustBeChecked() {
public boolean mustBeChecked() {
- StateAbstractDTO currentState = session.getCurrentState();
+ final StateAbstractDTO currentState = session.getCurrentState();
if (currentState.getGroup().isPersonal()) {
- SocialNetworkDataDTO socialNetworkData = currentState.getSocialNetworkData();
+ final SocialNetworkDataDTO socialNetworkData = currentState.getSocialNetworkData();
return socialNetworkData.getUserBuddiesVisibility().equals(visibility);
}
return false;
@@ -198,7 +203,7 @@
addAsBuddie.setTextDescription(i18n.t("Add as a buddie"));
addAsBuddie.setIconUrl("images/add-green.png");
addAsBuddie.setEnableCondition(new ActionEnableCondition<UserSimpleDTO>() {
- public boolean mustBeEnabled(UserSimpleDTO user) {
+ public boolean mustBeEnabled(final UserSimpleDTO user) {
return !chatEngineProvider.get().isBuddie(user.getShortName());
}
});
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -44,11 +44,13 @@
import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
import org.ourproject.kune.platf.client.services.ImageDescriptor;
import org.ourproject.kune.platf.client.services.ImageUtils;
+import org.ourproject.kune.platf.client.state.AccessRightsClientManager;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.MenuItem;
import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
+import org.ourproject.kune.platf.client.ui.img.ImgResources;
import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import org.ourproject.kune.workspace.client.search.GroupLiveSearcher;
import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionGroupSummaryToolbar;
@@ -80,8 +82,10 @@
final Provider<GroupServiceAsync> groupServiceProvider,
final Provider<GroupLiveSearcher> liveSearcherProvider, final Provider<ChatEngine> chatEngineProvider,
final GroupActionRegistry groupActionRegistry, final ActionGroupSummaryToolbar toolbar,
- final Provider<FileDownloadUtils> downloadProvider) {
- super(i18n, stateManager, session, snServiceProvider, groupActionRegistry, downloadProvider);
+ final Provider<FileDownloadUtils> downloadProvider, final AccessRightsClientManager accessRightsManager,
+ final ImgResources img) {
+ super(i18n, stateManager, accessRightsManager, session, snServiceProvider, groupActionRegistry,
+ downloadProvider, img);
this.i18n = i18n;
this.stateManager = stateManager;
this.session = session;
@@ -165,9 +169,9 @@
addMember.setParentMenuTitle(i18n.t("Options"));
groupActionRegistry.addAction(addMember);
- groupActionRegistry.addAction(unJoin);
+ // groupActionRegistry.addAction(unJoin);
- groupActionRegistry.addAction(participate);
+ // groupActionRegistry.addAction(participate);
createSetMembersVisibilityAction(i18n.t("anyone"), SocialNetworkVisibilityDTO.anyone);
createSetMembersVisibilityAction(i18n.t("only members"), SocialNetworkVisibilityDTO.onlymembers);
createSetMembersVisibilityAction(i18n.t("only admins"), SocialNetworkVisibilityDTO.onlyadmins);
@@ -181,8 +185,8 @@
public void onEvent(final StateToken parameter) {
groupServiceProvider.get().setGroupNewMembersJoiningPolicy(session.getUserHash(),
session.getCurrentState().getGroup().getStateToken(), admissionPolicy,
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
+ new AsyncCallbackSimple<Void>() {
+ public void onSuccess(final Void result) {
NotifyUser.info(i18n.t("Members joining policy changed"));
}
});
@@ -206,8 +210,8 @@
public void onEvent(final StateToken parameter) {
groupServiceProvider.get().setSocialNetworkVisibility(session.getUserHash(),
session.getCurrentState().getGroup().getStateToken(), visibility,
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
+ new AsyncCallbackSimple<Void>() {
+ public void onSuccess(final Void result) {
NotifyUser.info(i18n.t("Members visibility changed"));
}
});
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipateAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipateAction.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipateAction.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,53 @@
+package org.ourproject.kune.workspace.client.socialnet;
+
+import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+import org.ourproject.kune.platf.client.dto.SocialNetworkRequestResult;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
+import org.ourproject.kune.platf.client.state.AccessRightsClientManager;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.img.ImgResources;
+import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
+
+import com.calclab.suco.client.ioc.Provider;
+
+public class ParticipateAction extends RolAction {
+ private final Provider<SocialNetworkServiceAsync> snServiceProvider;
+
+ public ParticipateAction(final Session session, final Provider<SocialNetworkServiceAsync> snServiceProvider,
+ final StateManager stateManager, final AccessRightsClientManager rightsManager,
+ final I18nTranslationService i18n, final ImgResources imgResources) {
+ super(session, stateManager, rightsManager, i18n, AccessRolDTO.Viewer, i18n.t("Participate"),
+ i18n.t("Request to participate in this group"), imgResources.addGreen());
+ this.snServiceProvider = snServiceProvider;
+ super.setVisible(false, true);
+ super.setMustBeAuthenticated(false);
+ }
+
+ public void actionPerformed(final ActionEvent event) {
+ NotifyUser.showProgressProcessing();
+ snServiceProvider.get().requestJoinGroup(session.getUserHash(), session.getCurrentState().getStateToken(),
+ new AsyncCallbackSimple<SocialNetworkRequestResult>() {
+ public void onSuccess(final SocialNetworkRequestResult result) {
+ NotifyUser.hideProgress();
+ switch ((result)) {
+ case accepted:
+ NotifyUser.info(i18n.t("You are now member of this group"));
+ stateManager.reload();
+ break;
+ case denied:
+ NotifyUser.important(i18n.t("Sorry this is a closed group"));
+ break;
+ case moderated:
+ NotifyUser.info(i18n.t("Membership requested. Waiting for admins decision"));
+ break;
+ default:
+ NotifyUser.info(i18n.t("Programatic error in ParticipateAction"));
+ }
+ }
+ });
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -28,10 +28,12 @@
import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
import org.ourproject.kune.platf.client.services.ImageUtils;
+import org.ourproject.kune.platf.client.state.AccessRightsClientManager;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
+import org.ourproject.kune.platf.client.ui.img.ImgResources;
import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionParticipationToolbar;
import com.calclab.suco.client.events.Listener;
@@ -47,8 +49,11 @@
public ParticipationSummaryPresenter(final I18nUITranslationService i18n, final StateManager stateManager,
final ImageUtils imageUtils, final Session session,
final Provider<SocialNetworkServiceAsync> snServiceProvider, final GroupActionRegistry groupActionRegistry,
- final ActionParticipationToolbar actionParticipationToolbar, final Provider<FileDownloadUtils> downloadProvider) {
- super(i18n, stateManager, session, snServiceProvider, groupActionRegistry, downloadProvider);
+ final ActionParticipationToolbar actionParticipationToolbar,
+ final Provider<FileDownloadUtils> downloadProvider, final AccessRightsClientManager accessRightsManager,
+ final ImgResources img) {
+ super(i18n, stateManager, accessRightsManager, session, snServiceProvider, groupActionRegistry,
+ downloadProvider, img);
adminCategory = new GridGroup("admin in:", " ", i18n.tWithNT("Administrate these groups",
"talking about a person"), false);
collabCategory = new GridGroup(i18n.t("and as collaborator in:"), " ", i18n.t("Collaborate in these groups"),
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/RolAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/RolAction.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/RolAction.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,76 @@
+package org.ourproject.kune.workspace.client.socialnet;
+
+import org.ourproject.kune.platf.client.actions.AbstractExtendedAction;
+import org.ourproject.kune.platf.client.actions.ui.GuiActionDescrip;
+import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
+import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.state.AccessRightsClientManager;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+
+import com.calclab.suco.client.events.Listener2;
+import com.google.gwt.libideas.resources.client.ImageResource;
+
+public abstract class RolAction extends AbstractExtendedAction {
+
+ public static UIStatus refreshStatus(final AccessRolDTO rolRequired, final boolean authNeed,
+ final boolean isLogged, final boolean visibleForMembers, final boolean visibleForNonMemb,
+ final AccessRightsDTO newRights) {
+ boolean newVisibility = false;
+ boolean newEnabled = false;
+ if (authNeed && !isLogged) {
+ newVisibility = newEnabled = false;
+ } else {
+ // Auth ok
+ newEnabled = RolComparator.isEnabled(rolRequired, newRights);
+ if (newEnabled) {
+ final boolean isMember = RolComparator.isMember(newRights);
+ newEnabled = newVisibility = ((isMember && visibleForMembers) || (!isMember && visibleForNonMemb));
+ } else {
+ newVisibility = false;
+ }
+ }
+ return new UIStatus(newVisibility, newEnabled);
+ }
+
+ protected final Session session;
+ protected final StateManager stateManager;
+ protected final I18nTranslationService i18n;
+ private boolean visibleForNonMemb;
+ private boolean visibleForMembers;
+ private boolean authNeed;
+
+ public RolAction(final Session session, final StateManager stateManager,
+ final AccessRightsClientManager rightsManager, final I18nTranslationService i18n,
+ final AccessRolDTO rolRequired, final String text, final String tooltip, final ImageResource icon) {
+ super(text, tooltip, icon);
+ this.session = session;
+ this.stateManager = stateManager;
+ this.i18n = i18n;
+ this.visibleForMembers = true;
+ this.visibleForNonMemb = true;
+ this.authNeed = false;
+ rightsManager.onRightsChanged(new Listener2<AccessRightsDTO, AccessRightsDTO>() {
+ public void onEvent(final AccessRightsDTO prevRights, final AccessRightsDTO newRights) {
+ setStatus(refreshStatus(rolRequired, authNeed, session.isLogged(), visibleForMembers,
+ visibleForNonMemb, newRights));
+ }
+
+ });
+ }
+
+ public void setMustBeAuthenticated(final boolean authNeed) {
+ this.authNeed = authNeed;
+ }
+
+ public void setVisible(final boolean forMembers, final boolean forNonMembers) {
+ this.visibleForMembers = forMembers;
+ this.visibleForNonMemb = forNonMembers;
+ }
+
+ private void setStatus(final UIStatus refreshStatus) {
+ setEnabled(refreshStatus.isEnabled());
+ putValue(GuiActionDescrip.VISIBLE, refreshStatus.isVisible());
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/RolComparator.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/RolComparator.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/RolComparator.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,26 @@
+package org.ourproject.kune.workspace.client.socialnet;
+
+import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
+import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+
+public final class RolComparator {
+
+ public static boolean isEnabled(final AccessRolDTO rolRequired, final AccessRightsDTO rights) {
+ switch (rolRequired) {
+ case Administrator:
+ return rights.isAdministrable();
+ case Editor:
+ return rights.isEditable();
+ case Viewer:
+ return rights.isVisible();
+ }
+ return false;
+ }
+
+ public static boolean isMember(final AccessRightsDTO newRights) {
+ return newRights.isAdministrable() || newRights.isEditable();
+ }
+
+ private RolComparator() {
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -19,19 +19,20 @@
\*/
package org.ourproject.kune.workspace.client.socialnet;
-import org.ourproject.kune.platf.client.actions.ActionAddCondition;
import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
+import org.ourproject.kune.platf.client.actions.ui.ButtonDescriptor;
+import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor;
+import org.ourproject.kune.platf.client.actions.ui.MenuItemDescriptor;
import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
-import org.ourproject.kune.platf.client.dto.AccessRolDTO;
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO;
-import org.ourproject.kune.platf.client.dto.SocialNetworkRequestResult;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
+import org.ourproject.kune.platf.client.state.AccessRightsClientManager;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.MenuItem;
@@ -41,6 +42,7 @@
import org.ourproject.kune.platf.client.ui.gridmenu.CustomMenu;
import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
+import org.ourproject.kune.platf.client.ui.img.ImgResources;
import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import com.calclab.suco.client.events.Listener;
@@ -48,9 +50,10 @@
public class SocialNetworkPresenter {
+ private static final String MEMBERS_BOTTON = "members_bottom";
+
protected final ActionToolbarPosition membersBottom = new ActionToolbarPosition("sn-bottomtoolbar");
protected final ActionToolbarPosition buddiesBottom = new ActionToolbarPosition("sn-bottomtoolbar");
-
protected MenuItem<GroupDTO> changeToCollabMenuItem;
protected MenuItem<GroupDTO> removeMemberMenuItem;
protected MenuItem<GroupDTO> changeToAdminMenuItem;
@@ -67,19 +70,25 @@
private final MenuItemCollection<GroupDTO> otherLoggedOperations;
private final MenuItemCollection<GroupDTO> otherOperationsUsers;
private final MenuItemCollection<GroupDTO> otherLoggedOperationsUsers;
-
protected ActionToolbarMenuDescriptor<StateToken> unJoin;
protected ActionToolbarButtonDescriptor<StateToken> participate;
private final Provider<FileDownloadUtils> downloadProvider;
+ private final AccessRightsClientManager rightsManager;
+ private final ImgResources imgResources;
+ private MenuDescriptor menuOptions;
+
public SocialNetworkPresenter(final I18nTranslationService i18n, final StateManager stateManager,
- final Session session, final Provider<SocialNetworkServiceAsync> snServiceProvider,
- final GroupActionRegistry groupActionRegistry, final Provider<FileDownloadUtils> downloadProvider) {
+ final AccessRightsClientManager rightsManager, final Session session,
+ final Provider<SocialNetworkServiceAsync> snServiceProvider, final GroupActionRegistry groupActionRegistry,
+ final Provider<FileDownloadUtils> downloadProvider, final ImgResources imgResources) {
this.i18n = i18n;
this.stateManager = stateManager;
+ this.rightsManager = rightsManager;
this.session = session;
this.snServiceProvider = snServiceProvider;
this.downloadProvider = downloadProvider;
+ this.imgResources = imgResources;
createButtons();
createMenuActions();
otherOperationsUsers = new MenuItemCollection<GroupDTO>();
@@ -137,60 +146,29 @@
}
private void createButtons() {
- participate = new ActionToolbarButtonDescriptor<StateToken>(AccessRolDTO.Viewer, membersBottom,
- new Listener<StateToken>() {
- public void onEvent(final StateToken parameter) {
- NotifyUser.showProgressProcessing();
- snServiceProvider.get().requestJoinGroup(session.getUserHash(),
- session.getCurrentState().getStateToken(), new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- NotifyUser.hideProgress();
- final SocialNetworkRequestResult resultType = (SocialNetworkRequestResult) result;
- switch (resultType) {
- case accepted:
- NotifyUser.info(i18n.t("You are now member of this group"));
- stateManager.reload();
- break;
- case denied:
- NotifyUser.important(i18n.t("Sorry this is a closed group"));
- break;
- case moderated:
- NotifyUser.info(i18n.t("Membership requested. Waiting for admins decision"));
- break;
- }
- }
- });
- }
- });
- participate.setIconUrl("images/add-green.gif");
- participate.setTextDescription(i18n.t("Participate"));
- participate.setToolTip(i18n.t("Request to participate in this group"));
- participate.setMustBeAuthenticated(false);
- participate.setAddCondition(new ActionAddCondition<StateToken>() {
- public boolean mustBeAdded(final StateToken token) {
- return !isMember(session.getCurrentState().getGroupRights());
+ final ParticipateAction participateAction = new ParticipateAction(session, snServiceProvider, stateManager,
+ rightsManager, i18n, imgResources);
+ final ButtonDescriptor participateBtn = new ButtonDescriptor(participateAction);
+ participateBtn.setLocation(MEMBERS_BOTTON);
+
+ menuOptions = new MenuDescriptor(i18n.t("Options"));
+
+ final UnjoinAction unjoinAction = new UnjoinAction(session, snServiceProvider, stateManager, rightsManager,
+ i18n, imgResources) {
+ @Override
+ public String getGroupName() {
+ return session.getContainerState().getGroup().getShortName();
}
- });
+ };
- unJoin = new ActionToolbarMenuDescriptor<StateToken>(AccessRolDTO.Editor, membersBottom,
- new Listener<StateToken>() {
- public void onEvent(final StateToken parameter) {
- removeMemberAction();
- }
- });
- unJoin.setIconUrl("images/del.gif");
- unJoin.setTextDescription(i18n.t("Leave this group"));
- unJoin.setToolTip(i18n.t("Do not participate anymore in this group"));
- unJoin.setParentMenuTitle(i18n.t("Options"));
- unJoin.setMustBeConfirmed(true);
- unJoin.setConfirmationTitle(i18n.t("Leave this group"));
- unJoin.setConfirmationText(i18n.t("Are you sure?"));
+ final MenuItemDescriptor unjoinBtn = new MenuItemDescriptor(menuOptions, unjoinAction);
+ unjoinBtn.setLocation(MEMBERS_BOTTON);
}
private GridItem<GroupDTO> createDefMemberMenu(final GroupDTO group, final GridGroup gridGroup) {
final CustomMenu<GroupDTO> menu = new CustomMenu<GroupDTO>(group);
final String longName = group.getLongName();
- boolean hasLogo = group.hasLogo();
+ final boolean hasLogo = group.hasLogo();
final String toolTip = createTooltipWithLogo(group.getShortName(), group.getStateToken(), hasLogo,
group.isPersonal());
final String imageHtml = downloadProvider.get().getLogoAvatarHtml(group.getStateToken(), hasLogo,
@@ -226,6 +204,7 @@
stateManager.gotoToken(groupDTO.getShortName());
}
});
+
unJoinMenuItem = new MenuItem<GroupDTO>("images/del.gif", i18n.t("Do not participate anymore in this group"),
new Listener<GroupDTO>() {
public void onEvent(final GroupDTO groupDTO) {
@@ -317,20 +296,6 @@
});
}
- private boolean isMember(final AccessRightsDTO rights) {
- boolean userIsAdmin = rights.isAdministrable();
- final boolean userIsCollab = !userIsAdmin && rights.isEditable();
- return isMember(userIsAdmin, userIsCollab);
- }
-
- private boolean isMember(final boolean userIsAdmin, final boolean userIsCollab) {
- return userIsAdmin || userIsCollab;
- }
-
- private void removeMemberAction() {
- removeMemberAction(session.getCurrentState().getGroup());
- }
-
private void removeMemberAction(final GroupDTO groupDTO) {
NotifyUser.showProgressProcessing();
snServiceProvider.get().unJoinGroup(session.getUserHash(), new StateToken(groupDTO.getShortName()),
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UIStatus.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UIStatus.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UIStatus.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,63 @@
+package org.ourproject.kune.workspace.client.socialnet;
+
+public class UIStatus {
+
+ private boolean visible;
+ private boolean enabled;
+
+ public UIStatus(final boolean visible, final boolean enabled) {
+ this.visible = visible;
+ this.enabled = enabled;
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ final UIStatus other = (UIStatus) obj;
+ if (enabled != other.enabled) {
+ return false;
+ }
+ if (visible != other.visible) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + (enabled ? 1231 : 1237);
+ result = prime * result + (visible ? 1231 : 1237);
+ return result;
+ }
+
+ public boolean isEnabled() {
+ return enabled;
+ }
+
+ public boolean isVisible() {
+ return visible;
+ }
+
+ public void setEnabled(final boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ public void setVisible(final boolean visible) {
+ this.visible = visible;
+ }
+
+ @Override
+ public String toString() {
+ return "(v: " + visible + ", e:" + enabled + ")";
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UnjoinAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UnjoinAction.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UnjoinAction.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,59 @@
+package org.ourproject.kune.workspace.client.socialnet;
+
+import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+import org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
+import org.ourproject.kune.platf.client.state.AccessRightsClientManager;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.img.ImgResources;
+import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
+
+import com.calclab.suco.client.events.Listener0;
+import com.calclab.suco.client.ioc.Provider;
+
+public class UnjoinAction extends RolAction {
+ private final Provider<SocialNetworkServiceAsync> snServiceProvider;
+ private String groupName;
+
+ public UnjoinAction(final Session session, final Provider<SocialNetworkServiceAsync> snServiceProvider,
+ final StateManager stateManager, final AccessRightsClientManager rightsManager,
+ final I18nTranslationService i18n, final ImgResources imgResources) {
+ super(session, stateManager, rightsManager, i18n, AccessRolDTO.Editor, i18n.t("Leave this group"),
+ i18n.t("Do not participate anymore in this group"), imgResources.delGreen());
+ this.snServiceProvider = snServiceProvider;
+ super.setVisible(true, false);
+ super.setMustBeAuthenticated(true);
+ }
+
+ public void actionPerformed(final ActionEvent event) {
+ NotifyUser.askConfirmation(i18n.t("Leave this group"), i18n.t("Are you sure?"), new Listener0() {
+ public void onEvent() {
+ NotifyUser.showProgressProcessing();
+ snServiceProvider.get().unJoinGroup(session.getUserHash(), new StateToken(getGroupName()),
+ new AsyncCallbackSimple<SocialNetworkDataDTO>() {
+ public void onSuccess(final SocialNetworkDataDTO result) {
+ NotifyUser.hideProgress();
+ NotifyUser.info(i18n.t("Removed as member"));
+ stateManager.reload();
+ // in the future with user info:
+ // stateManager.reloadSocialNetwork((SocialNetworkResultDTO)
+ // result);
+ }
+ });
+ }
+ });
+ }
+
+ public String getGroupName() {
+ return groupName;
+ }
+
+ public void setGroupName(final String groupName) {
+ this.groupName = groupName;
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -69,8 +69,8 @@
public void changeTheme(final StateToken token, final WsTheme newTheme) {
NotifyUser.showProgressProcessing();
groupServiceProvider.get().changeGroupWsTheme(session.getUserHash(), token, newTheme.getName(),
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
+ new AsyncCallbackSimple<Void>() {
+ public void onSuccess(final Void result) {
if (session.getCurrentState().getStateToken().getGroup().equals(token.getGroup())) {
setTheme(newTheme);
}
@@ -82,8 +82,8 @@
protected void onChangeGroupWsTheme(final WsTheme newTheme) {
NotifyUser.showProgressProcessing();
groupServiceProvider.get().changeGroupWsTheme(session.getUserHash(), session.getCurrentState().getStateToken(),
- newTheme.getName(), new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
+ newTheme.getName(), new AsyncCallbackSimple<Void>() {
+ public void onSuccess(final Void result) {
setTheme(newTheme);
NotifyUser.hideProgress();
}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsert.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsert.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsert.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,9 @@
+package org.ourproject.kune.workspace.client.wave;
+
+import org.ourproject.kune.platf.client.dto.StateToken;
+
+public interface WaveInsert {
+
+ void show(StateToken parentToken);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsertPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsertPanel.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsertPanel.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,100 @@
+package org.ourproject.kune.workspace.client.wave;
+
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.ui.img.ImgConstants;
+import org.ourproject.kune.platf.client.ui.img.ImgResources;
+
+import com.calclab.emiteuimodule.client.dialog.BasicDialogExtended;
+import com.calclab.emiteuimodule.client.dialog.BasicDialogListener;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.DeferredCommand;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.widgets.form.Field;
+import com.gwtext.client.widgets.form.FormPanel;
+import com.gwtext.client.widgets.form.TextField;
+import com.gwtext.client.widgets.form.event.FieldListenerAdapter;
+
+public class WaveInsertPanel implements WaveInsertView {
+
+ public static final String ADD_WAVE = "wip-add-wave";
+ public static final String CANCEL = "wip-cancel-add-wave";
+ public static final String WAVE_ID = "wip-wave-id-fl";
+ private BasicDialogExtended dialog;
+ private final WaveInsertPresenter presenter;
+ private final I18nTranslationService i18n;
+ private FormPanel formPanel;
+ private TextField waveId;
+ private final ImgResources img;
+
+ public WaveInsertPanel(final WaveInsertPresenter presenter, final I18nTranslationService i18n,
+ final ImgResources img) {
+ this.presenter = presenter;
+ this.i18n = i18n;
+ this.img = img;
+ }
+
+ public String getWaveId() {
+ return waveId.getValueAsString();
+ }
+
+ public void hide() {
+ dialog.hide();
+ }
+
+ public void reset() {
+ formPanel.getForm().reset();
+ }
+
+ public void show() {
+ if (dialog == null) {
+ dialog = new BasicDialogExtended(i18n.t("Add a wave"), true, false, 320, 140,
+ ImgConstants.toPath(img.addGreen()), i18n.t("Add"), ADD_WAVE, i18n.t("Cancel"), CANCEL,
+ new BasicDialogListener() {
+ public void onCancelButtonClick() {
+ presenter.onCancel();
+ }
+
+ public void onFirstButtonClick() {
+ presenter.onAdd();
+ }
+ });
+ dialog.setResizable(false);
+ createForm();
+ }
+ dialog.show();
+ DeferredCommand.addCommand(new Command() {
+ public void execute() {
+ waveId.focus();
+ }
+ });
+ }
+
+ private void createForm() {
+ formPanel = new FormPanel();
+ formPanel.setFrame(true);
+ formPanel.setAutoScroll(false);
+
+ formPanel.setWidth(333);
+ formPanel.setLabelWidth(100);
+ formPanel.setPaddings(10);
+
+ waveId = new TextField(i18n.t("Wave id"), "wave id", 150);
+ waveId.setTitle(i18n.t("Something like: [%s]", "wavesandbox.com!w+NdlzA9PU%B"));
+ waveId.setAllowBlank(false);
+ waveId.setValidationEvent(false);
+ // waveId.setRegex("^[a-z0-9_\\-]+$");
+ // waveId.setRegexText(i18n.t("Can only contain characters, numbers, and dashes"));
+ waveId.setId(WAVE_ID);
+ formPanel.add(waveId);
+
+ dialog.add(formPanel);
+ waveId.addListener(new FieldListenerAdapter() {
+ @Override
+ public void onSpecialKey(final Field field, final EventObject e) {
+ if (e.getKey() == 13) {
+ presenter.onAdd();
+ }
+ }
+ });
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsertPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsertPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsertPresenter.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,83 @@
+package org.ourproject.kune.workspace.client.wave;
+
+import org.ourproject.kune.docs.client.DocumentClientTool;
+import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.StateContentDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
+
+import com.calclab.suco.client.ioc.Provider;
+
+public class WaveInsertPresenter implements WaveInsert {
+
+ private WaveInsertView view;
+ private final Session session;
+ private final StateManager stateManager;
+ private final Provider<ContentServiceAsync> contentService;
+ private final I18nTranslationService i18n;
+ private StateToken parentToken;
+
+ public WaveInsertPresenter(final Session session, final StateManager stateManager,
+ final I18nTranslationService i18n, final Provider<ContentServiceAsync> contentService) {
+ this.session = session;
+ this.stateManager = stateManager;
+ this.i18n = i18n;
+ this.contentService = contentService;
+ }
+
+ public View getView() {
+ return view;
+ }
+
+ public void init(final WaveInsertView view) {
+ this.view = view;
+ }
+
+ public void onAdd() {
+ final String waveId = view.getWaveId();
+ if (waveId.length() > 0) {
+ addWave(waveId);
+ } else {
+ NotifyUser.error(i18n.t("The wave id is incorrect"));
+ resetAndHide();
+ }
+ }
+
+ public void onCancel() {
+ resetAndHide();
+ }
+
+ public void show(final StateToken parentToken) {
+ this.parentToken = parentToken;
+ view.show();
+ }
+
+ /**
+ *
+ * Add a wave to the current location
+ *
+ * @param waveId
+ * something like "wavesandbox.com!w+NdlzA9PU%B"
+ */
+ private void addWave(final String waveId) {
+ assert parentToken != null;
+ session.getContentState().getContainer().getStateToken();
+ contentService.get().addWave(session.getUserHash(), parentToken, DocumentClientTool.TYPE_WAVE, waveId,
+ new AsyncCallbackSimple<StateContentDTO>() {
+ public void onSuccess(final StateContentDTO state) {
+ stateManager.setRetrievedState(state);
+ }
+ });
+ resetAndHide();
+ }
+
+ private void resetAndHide() {
+ view.hide();
+ view.reset();
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsertView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsertView.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/wave/WaveInsertView.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,15 @@
+package org.ourproject.kune.workspace.client.wave;
+
+import org.ourproject.kune.platf.client.View;
+
+public interface WaveInsertView extends View {
+
+ String getWaveId();
+
+ void hide();
+
+ void reset();
+
+ void show();
+
+}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -13,6 +13,7 @@
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Scopes;
+import com.google.inject.servlet.RequestScoped;
import com.google.inject.servlet.SessionScoped;
import com.wideplay.warp.jpa.JpaUnit;
@@ -24,6 +25,7 @@
@Override
protected void configure() {
bindScope(SessionScoped.class, Scopes.SINGLETON);
+ bindScope(RequestScoped.class, Scopes.SINGLETON);
// test: use
// memory
// test_db: use
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/KuneSeleniumTestHelper.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -26,7 +26,7 @@
public class KuneSeleniumTestHelper extends SeleniumTestHelper {
- protected static final String KUNE_BASE_URL = "/kune/?locale=en#";
+ protected static final String KUNE_BASE_URL = "/ws/?locale=en#";
private static File dirCaptures;
@@ -125,7 +125,7 @@
}
protected void openDefPage() throws Exception {
- open("/kune/?locale=en#site");
+ open(KUNE_BASE_URL + "#site");
waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/site/UserServiceTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/site/UserServiceTest.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/site/UserServiceTest.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -20,7 +20,6 @@
import org.ourproject.kune.platf.client.rpc.UserService;
import org.ourproject.kune.platf.integration.IntegrationTest;
import org.ourproject.kune.platf.integration.IntegrationTestHelper;
-import org.ourproject.kune.platf.server.UserSession;
import org.ourproject.kune.platf.server.domain.Group;
import org.ourproject.kune.platf.server.manager.I18nLanguageManager;
import org.ourproject.kune.platf.server.mapper.Mapper;
@@ -33,8 +32,6 @@
public class UserServiceTest extends IntegrationTest {
@Inject
- UserSession session;
- @Inject
DatabaseProperties properties;
@Inject
UserService userService;
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/TestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/TestHelper.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/TestHelper.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -9,12 +9,17 @@
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;
+import com.google.inject.Scopes;
+import com.google.inject.servlet.RequestScoped;
+import com.google.inject.servlet.SessionScoped;
import com.wideplay.warp.jpa.JpaUnit;
public abstract class TestHelper {
public static Injector create(final Module module, final String persistenceUnit, final String propetiesFileName) {
- Injector injector = Guice.createInjector(module, new Module() {
- public void configure(Binder binder) {
+ final Injector injector = Guice.createInjector(module, new Module() {
+ public void configure(final Binder binder) {
+ binder.bindScope(SessionScoped.class, Scopes.SINGLETON);
+ binder.bindScope(RequestScoped.class, Scopes.SINGLETON);
binder.bindConstant().annotatedWith(JpaUnit.class).to(persistenceUnit);
binder.bindConstant().annotatedWith(PropertiesFileName.class).to(propetiesFileName);
binder.bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -6,7 +6,7 @@
import java.util.TimeZone;
-import javax.persistence.PersistenceException;
+import javax.persistence.EntityExistsException;
import org.apache.lucene.queryParser.ParseException;
import org.hibernate.validator.InvalidStateException;
@@ -65,7 +65,11 @@
persist(user);
}
- @Test(expected = PersistenceException.class)
+ /**
+ * This is not working:
+ * http://opensource.atlassian.com/projects/hibernate/browse/EJB-382
+ */
+ @Test(expected = EntityExistsException.class)
public void testUserExist() throws I18nNotFoundException {
final User user1 = userManager.createUser("test", "test 1 name", "test1(a)example.com", "some password", "en",
"GB", "GMT");
Added: trunk/src/test/java/org/ourproject/kune/workspace/client/socialnet/RolActionTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/socialnet/RolActionTest.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/socialnet/RolActionTest.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,80 @@
+package org.ourproject.kune.workspace.client.socialnet;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
+import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+
+public class RolActionTest {
+
+ private AccessRightsDTO adminRights;
+ private AccessRightsDTO editorRights;
+ private AccessRightsDTO viewerRights;
+ private AccessRightsDTO noPermRights;
+ private UIStatus ff;
+ private UIStatus tt;
+
+ @Before
+ public void before() {
+ adminRights = new AccessRightsDTO(true, true, true);
+ editorRights = new AccessRightsDTO(false, true, true);
+ viewerRights = new AccessRightsDTO(false, false, true);
+ noPermRights = new AccessRightsDTO(false, false, false);
+ ff = new UIStatus(false, false);
+ tt = new UIStatus(true, true);
+ }
+
+ @Test
+ public void testRefreshStatus() {
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Viewer, false, false, true, true, noPermRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Viewer, true, false, true, true, noPermRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Viewer, true, true, true, true, noPermRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Viewer, true, true, false, true, noPermRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Viewer, true, true, false, false, noPermRights));
+
+ assertEquals(tt, RolAction.refreshStatus(AccessRolDTO.Viewer, false, false, true, true, viewerRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Viewer, true, false, true, true, viewerRights));
+ assertEquals(tt, RolAction.refreshStatus(AccessRolDTO.Viewer, true, true, true, true, viewerRights));
+ assertEquals(tt, RolAction.refreshStatus(AccessRolDTO.Viewer, true, true, false, true, viewerRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Viewer, true, true, false, false, viewerRights));
+
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Editor, false, false, true, true, viewerRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Editor, true, false, true, true, viewerRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Editor, true, true, true, true, viewerRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Editor, true, true, false, true, viewerRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Editor, true, true, false, false, viewerRights));
+
+ assertEquals(tt, RolAction.refreshStatus(AccessRolDTO.Editor, false, false, true, true, editorRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Editor, true, false, true, true, editorRights));
+ assertEquals(tt, RolAction.refreshStatus(AccessRolDTO.Editor, true, true, true, true, editorRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Editor, true, true, false, true, editorRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Editor, true, true, false, false, editorRights));
+
+ assertEquals(tt, RolAction.refreshStatus(AccessRolDTO.Editor, false, false, true, true, adminRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Editor, true, false, true, true, adminRights));
+ assertEquals(tt, RolAction.refreshStatus(AccessRolDTO.Editor, true, true, true, true, adminRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Editor, true, true, false, true, adminRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Editor, true, true, false, false, adminRights));
+
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Administrator, false, false, true, true, viewerRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Administrator, true, false, true, true, viewerRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Administrator, true, true, true, true, viewerRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Administrator, true, true, false, true, viewerRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Administrator, true, true, false, false, viewerRights));
+
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Administrator, false, false, true, true, editorRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Administrator, true, false, true, true, editorRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Administrator, true, true, true, true, editorRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Administrator, true, true, false, true, editorRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Administrator, true, true, false, false, editorRights));
+
+ assertEquals(tt, RolAction.refreshStatus(AccessRolDTO.Administrator, false, false, true, true, adminRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Administrator, true, false, true, true, adminRights));
+ assertEquals(tt, RolAction.refreshStatus(AccessRolDTO.Administrator, true, true, true, true, adminRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Administrator, true, true, false, true, adminRights));
+ assertEquals(ff, RolAction.refreshStatus(AccessRolDTO.Administrator, true, true, false, false, adminRights));
+
+ }
+}
Added: trunk/src/test/java/org/ourproject/kune/workspace/client/socialnet/RolComparatorTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/socialnet/RolComparatorTest.java 2009-07-22 20:31:08 UTC (rev 1138)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/socialnet/RolComparatorTest.java 2009-08-05 14:56:47 UTC (rev 1139)
@@ -0,0 +1,40 @@
+package org.ourproject.kune.workspace.client.socialnet;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
+import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+
+public class RolComparatorTest {
+
+ @Test
+ public void testIsEnabled() {
+ final AccessRightsDTO adminRights = new AccessRightsDTO(true, true, true);
+ final AccessRightsDTO editorRights = new AccessRightsDTO(false, true, true);
+ final AccessRightsDTO viewerRights = new AccessRightsDTO(false, false, true);
+ final AccessRightsDTO noPermRights = new AccessRightsDTO(false, false, false);
+ assertTrue(RolComparator.isEnabled(AccessRolDTO.Administrator, adminRights));
+ assertFalse(RolComparator.isEnabled(AccessRolDTO.Administrator, editorRights));
+ assertFalse(RolComparator.isEnabled(AccessRolDTO.Administrator, viewerRights));
+ assertFalse(RolComparator.isEnabled(AccessRolDTO.Administrator, noPermRights));
+ assertTrue(RolComparator.isEnabled(AccessRolDTO.Editor, adminRights));
+ assertTrue(RolComparator.isEnabled(AccessRolDTO.Editor, editorRights));
+ assertFalse(RolComparator.isEnabled(AccessRolDTO.Editor, viewerRights));
+ assertFalse(RolComparator.isEnabled(AccessRolDTO.Editor, noPermRights));
+ assertTrue(RolComparator.isEnabled(AccessRolDTO.Viewer, adminRights));
+ assertTrue(RolComparator.isEnabled(AccessRolDTO.Viewer, editorRights));
+ assertTrue(RolComparator.isEnabled(AccessRolDTO.Viewer, viewerRights));
+ assertFalse(RolComparator.isEnabled(AccessRolDTO.Viewer, noPermRights));
+ }
+
+ @Test
+ public void testIsMember() {
+ assertFalse(RolComparator.isMember(new AccessRightsDTO(false, false, false)));
+ assertFalse(RolComparator.isMember(new AccessRightsDTO(false, false, true)));
+ assertTrue(RolComparator.isMember(new AccessRightsDTO(false, true, true)));
+ assertTrue(RolComparator.isMember(new AccessRightsDTO(true, true, true)));
+ }
+
+}
Added: trunk/war/WEB-INF/lib/gwt-servlet-2.0.0-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: trunk/war/WEB-INF/lib/gwt-servlet-2.0.0-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
1
0
Author: vjrj
Date: 2009-07-22 22:31:08 +0200 (Wed, 22 Jul 2009)
New Revision: 1138
Added:
trunk/src/main/java/com/
trunk/src/main/java/com/google/
trunk/src/main/java/com/google/gwt/
trunk/src/main/java/com/google/gwt/wave/
trunk/src/main/java/com/google/gwt/wave/Wave.gwt.xml
trunk/src/main/java/com/google/gwt/wave/client/
trunk/src/main/java/com/google/gwt/wave/client/WaveEmbed.java
trunk/src/main/java/com/google/gwt/wave/client/WaveWidget.java
trunk/src/main/java/com/google/gwt/wave/client/WaveWidgetTest.java
trunk/src/main/java/com/google/gwt/wave/client/event/
trunk/src/main/java/com/google/gwt/wave/client/event/HasWaveLoadHandlers.java
trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadEvent.java
trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadHandler.java
trunk/src/main/java/com/google/gwt/wave/client/package.html
trunk/src/main/java/com/google/gwt/wave/public/
trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js
trunk/war/ws-aux/
Modified:
trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java
trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java
trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java
trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java
Log:
Incomplete - taskwave simple integration
Added: trunk/src/main/java/com/google/gwt/wave/Wave.gwt.xml
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/Wave.gwt.xml 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/Wave.gwt.xml 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.6.4//EN"
+ "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/…">
+<!-- -->
+<!-- Copyright 2009 Google Inc. -->
+<!-- Licensed under the Apache License, Version 2.0 (the "License"); you -->
+<!-- may not use this file except in compliance with the License. You may -->
+<!-- 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. License for the specific language governing permissions and -->
+<!-- limitations under the License. -->
+<module rename-to="wave">
+ <inherits name='com.google.gwt.user.User'/>
+<!--
+ <entry-point class="com.google.gwt.wave.client.WaveWidgetTest"/>
+ -->
+
+ <script src="wave_embed.js"/>
+</module>
Added: trunk/src/main/java/com/google/gwt/wave/client/WaveEmbed.java
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/WaveEmbed.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/client/WaveEmbed.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,136 @@
+package com.google.gwt.wave.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.core.client.GWT.UncaughtExceptionHandler;
+import com.google.gwt.user.client.Element;
+import com.google.gwt.wave.client.event.HasWaveLoadHandlers;
+import com.google.gwt.wave.client.event.WaveLoadEvent;
+
+final class WaveEmbed extends JavaScriptObject {
+
+ protected WaveEmbed() {
+ // Required by JavaScriptObject types
+ }
+
+ // Undocumented:
+ // loadSearch
+ // setContactProvider
+ // provideContacts
+
+ // Not yet available:
+ // addParticipant
+ // addReply
+
+ /**
+ * Creates a new WaveEmbed using the default Wave server URL:
+ * <code>http://wave-devel.corp.google.com/a/google.com/</code>
+ */
+ public static native WaveEmbed newInstance() /*-{
+ return new $wnd.WavePanel();
+ }-*/;
+
+ /**
+ * Creates a new WaveEmbed using the specified Wave server URL.
+ *
+ * @param serverURL The URL of the Wave server to use
+ */
+ public static native WaveEmbed newInstance(String serverURL) /*-{
+ return new $wnd.WavePanel(serverURL);
+ }-*/;
+
+ /**
+ * Set the UI configuration for the wave. This must be done before init() is
+ * called. Note that fontSize must be expressed in points, such as "12pts".
+ *
+ * @param bgColor
+ * @param color
+ * @param font
+ * @param fontSize
+ */
+ public native void setUIConfig(String bgColor, String color, String font,
+ String fontSize) /*-{
+ this.setUIConfig(bgColor, color, font, fontSize);
+ }-*/;
+
+ /**
+ * Actually creates the wave >iframe> inside the given container. This is
+ * not done in the constructor so the caller can set various initialization
+ * options before the creation.
+ *
+ * @param container The container element which will hold the Wave >IFRAME>
+ */
+ public native void init(Element container) /*-{
+ this.init(container);
+ }-*/;
+
+ /**
+ * Loads the given wave into the wavePanel. This can be called before or after
+ * init.
+ *
+ * @param waveId The Id of the Wave to load
+ */
+ public native void loadWave(String waveId) /*-{
+ this.loadWave(waveId);
+ }-*/;
+
+ /**
+ * Loads the given wave into the wavePanel. This can be called before or after
+ * init.
+ *
+ * @param source An instance of HasWaveLoadHandlers where the WaveLoadEvent
+ * will be dispatched from
+ * @param waveId The Id of the Wave to load
+ */
+ public native void loadWave(HasWaveLoadHandlers source, String waveId) /*-{
+ this.loadWave(waveId, function() {
+ @com.google.gwt.wave.client.WaveEmbed::fireWaveLoadEvent(Lcom/google/gwt/wave/client/event/HasWaveLoadHandlers;Ljava/lang/String;)(source, waveId);
+ })
+ }-*/;
+
+ // Called from JSNI
+ @SuppressWarnings("unused")
+ private static void fireWaveLoadEvent(HasWaveLoadHandlers source,
+ String waveId) {
+ UncaughtExceptionHandler ueh = GWT.getUncaughtExceptionHandler();
+ WaveLoadEvent event = new WaveLoadEvent(waveId);
+
+ if (ueh != null) {
+ try {
+ source.fireEvent(event);
+ } catch (Exception ex) {
+ ueh.onUncaughtException(ex);
+ }
+ } else {
+ source.fireEvent(event);
+ }
+ }
+
+ /**
+ * Returns the ID of the created <iframe>
+ *
+ * @return the ID of the created <iframe>
+ */
+ public native String getFrameId() /*-{
+ return this.getFrameId();
+ }-*/;
+
+ /**
+ * Adds the current user as a participant to the wave.
+ * <p>
+ * NOTE: Not yet functional in developer sandbox!
+ */
+ public native void addParticipant() /*-{
+ this.addParticipant();
+ }-*/;
+
+ /**
+ * Adds a reply to the currently loaded wave. An empty reply will be added to
+ * the wave.
+ * <p>
+ * NOTE: Not yet functional in developer sandbox!
+ */
+ public native void addReply() /*-{
+ this.addReply();
+ }-*/;
+}
Added: trunk/src/main/java/com/google/gwt/wave/client/WaveWidget.java
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/WaveWidget.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/client/WaveWidget.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,65 @@
+package com.google.gwt.wave.client;
+
+import com.google.gwt.dom.client.Document;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.wave.client.event.HasWaveLoadHandlers;
+import com.google.gwt.wave.client.event.WaveLoadEvent;
+import com.google.gwt.wave.client.event.WaveLoadHandler;
+
+public class WaveWidget extends Widget implements HasWaveLoadHandlers {
+
+ private static final String UICONFIG_ERROR = "setUIConfig must be called before the widget is attached.";
+
+ private final WaveEmbed waveEmbed;
+
+ public WaveWidget(final String waveServer) {
+ setElement(Document.get().createDivElement());
+ this.waveEmbed = WaveEmbed.newInstance(waveServer);
+ }
+
+ public HandlerRegistration addWaveLoadHandler(final WaveLoadHandler handler) {
+ return addHandler(handler, WaveLoadEvent.getType());
+ }
+
+ /**
+ * Loads the given wave into the WaveWidget. This method may be called at
+ * any time.
+ */
+ public void loadWave(final String waveId) {
+ waveEmbed.loadWave(this, waveId);
+ }
+
+ @Override
+ public void onLoad() {
+ waveEmbed.init(getElement());
+ }
+
+ /**
+ * Set the UI configuration for the wave. This must be done before the panel
+ * is attached to the page.
+ *
+ * @param bgColor
+ * An HTML color for the background, like "#ffffff"
+ * @param color
+ * A color for the text, like "#000000"
+ * @param font
+ * A font style, like "sans"
+ * @param fontSize
+ * The font size, which must be expressed in points, as in "12pt"
+ */
+ public void setUIConfig(final String bgColor, final String color, final String font, final String fontSize) {
+ assert (!isAttached()) : UICONFIG_ERROR;
+ waveEmbed.setUIConfig(bgColor, color, font, fontSize);
+ }
+
+ // Package protected until this is functional on the developer sandbox
+ void addParticipant() {
+ waveEmbed.addParticipant();
+ }
+
+ // Package protected until this is functional on the developer sandbox
+ void addReply() {
+ waveEmbed.addReply();
+ }
+}
Added: trunk/src/main/java/com/google/gwt/wave/client/WaveWidgetTest.java
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/WaveWidgetTest.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/client/WaveWidgetTest.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,31 @@
+package com.google.gwt.wave.client;
+
+import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.GWT.UncaughtExceptionHandler;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.RootPanel;
+import com.google.gwt.wave.client.event.WaveLoadEvent;
+import com.google.gwt.wave.client.event.WaveLoadHandler;
+
+public class WaveWidgetTest implements EntryPoint {
+
+ public void onModuleLoad() {
+ GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
+ public void onUncaughtException(final Throwable e) {
+ Window.alert("Uncaught exception: " + e.getMessage());
+ }
+ });
+ final WaveWidget ww = new WaveWidget("http://wave.google.com/a/wavesandbox.com/");
+ ww.setUIConfig("#333", "#ccc", "sans", "12pt");
+
+ RootPanel.get().add(ww);
+ ww.addWaveLoadHandler(new WaveLoadHandler() {
+ public void onWaveLoad(final WaveLoadEvent event) {
+ Window.alert("Wave '" + event.getWaveId() + "' loaded!");
+ }
+ });
+ ww.loadWave("???");
+ }
+
+}
Added: trunk/src/main/java/com/google/gwt/wave/client/event/HasWaveLoadHandlers.java
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/event/HasWaveLoadHandlers.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/client/event/HasWaveLoadHandlers.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,8 @@
+package com.google.gwt.wave.client.event;
+
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public interface HasWaveLoadHandlers extends HasHandlers {
+ HandlerRegistration addWaveLoadHandler(WaveLoadHandler handler);
+}
Added: trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadEvent.java
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadEvent.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadEvent.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2008 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 com.google.gwt.wave.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+/**
+ * Represents a selection event.
+ *
+ * @param <I>
+ * the type being selected
+ */
+public class WaveLoadEvent extends GwtEvent<WaveLoadHandler> {
+
+ /**
+ * Handler type.
+ */
+ private static Type<WaveLoadHandler> type;
+
+ /**
+ * Fires a selection event on all registered handlers in the handler
+ * manager.If no such handlers exist, this method will do nothing.
+ *
+ * @param <I>
+ * the selected item type
+ * @param source
+ * the source of the handlers
+ * @param selectedItem
+ * the selected item
+ */
+ public static <I> void fire(final HasWaveLoadHandlers source, final String waveId) {
+ if (type != null) {
+ final WaveLoadEvent event = new WaveLoadEvent(waveId);
+ source.fireEvent(event);
+ }
+ }
+
+ /**
+ * Gets the type associated with this event.
+ *
+ * @return returns the handler type
+ */
+ public static Type<WaveLoadHandler> getType() {
+ if (type == null) {
+ type = new Type<WaveLoadHandler>();
+ }
+ return type;
+ }
+
+ private final String waveId;
+
+ /**
+ * Creates a new selection event.
+ *
+ * @param selectedItem
+ * selected item
+ */
+ public WaveLoadEvent(final String waveId) {
+ this.waveId = waveId;
+ }
+
+ @Override
+ public final Type<WaveLoadHandler> getAssociatedType() {
+ return type;
+ }
+
+ public String getWaveId() {
+ return waveId;
+ }
+
+ @Override
+ protected void dispatch(final WaveLoadHandler handler) {
+ handler.onWaveLoad(this);
+ }
+}
Added: trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadHandler.java
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadHandler.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadHandler.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,7 @@
+package com.google.gwt.wave.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+public interface WaveLoadHandler extends EventHandler {
+ void onWaveLoad(WaveLoadEvent event);
+}
Added: trunk/src/main/java/com/google/gwt/wave/client/package.html
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/package.html 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/client/package.html 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,5 @@
+<html>
+<body>
+Core classes used in the Google Wave Embed API Library for GWT
+</body>
+</html>
Added: trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,149 @@
+// embed.js retreived from http://wave-api.appspot.com/public/embed.js on 2009-06-02
+var a, WAVEPANEL_nextId = 0;
+if(typeof gadgets == "undefined" || !gadgets.rpc)document.write('<script src="http://wave.google.com/gadgets/js/core:rpc?debug=1&c=1" type="text/javascript"><\/script>');
+function WavePanel(b) {
+ this.id_ = WAVEPANEL_nextId++;
+ this.frameId_ = "iframe_panel_" + this.id_;
+ this.eventListeners_ = {};
+ this.init_ = false;
+ this.waveRootUrl = b || "http://wave-devel.corp.google.com/a/google.com/"
+}
+WavePanel.prototype.getId = function() {
+ return this.id_
+};
+WavePanel.prototype.setContactProvider = function(b) {
+ if(this.init_)throw"Can only set contact provider before calling init";this.contactProvider_ = b
+};
+WavePanel.prototype.init = function(b, c) {
+ this.init_ = true;
+ if(this.initWaveId_ && this.initSearch_)throw"Both an initial wave ID and a search were specified";this.setupRpc_(c);
+ this.createFrame_(b, this.contactProvider_, this.initWaveId_, this.initSearch_, this.uiConfig_);
+ gadgets.rpc.setRelayUrl(this.getFrameId(), this.getRelayUrl_(), false);
+ delete this.initSearch_;
+ delete this.initWaveId_
+};
+WavePanel.rpcSetup_ = false;
+WavePanel.callbackQueue_ = {};
+WavePanel.nextCallbackId = 0;
+WavePanel.pushCallback_ = function(b) {
+ if(!b)return"";
+ var c = "" + WavePanel.nextCallbackId;
+ WavePanel.nextCallbackId++;
+ WavePanel.callbackQueue_[c] = b;
+ return c
+};
+WavePanel.popCallback_ = function(b) {
+ if(b == "")return null;
+ var c = WavePanel.callbackQueue_[b];
+ delete WavePanel.callbackQueue_[b];
+ return c
+};
+a = WavePanel.prototype;
+a.setupRpc_ = function(b) {
+ if(!this.rpcSetup_) {
+ this.rpcSetup_ = true;
+ var c = this;
+ gadgets.rpc.register("load_done", function() {
+ b && b()
+ });
+ var e = function(d) {
+ var f = WavePanel.popCallback_(d.a[0]);
+ f && f(d.a[1])
+ };
+ gadgets.rpc.register("load_wave_done", function() {
+ e(this)
+ });
+ gadgets.rpc.register("request_contacts", function() {
+ if(!c.contactProvider_)throw"Got a contacts request but no contact provider is set.";c.contactProvider_(this.a[0])
+ });
+ gadgets.rpc.registerDefault(function() {
+ var d = this.s, f = this.a[0], h = c.eventListeners_[d];
+ if(h)for(var g in h)h[g](f)
+ })
+ }
+};
+a.createFrame_ = function(b, c, e, d, f) {
+ var h = document.createElement("div");
+ h.innerHTML = '<iframe name="' + this.frameId_ + '" >';
+ var g = h.firstChild;
+ g.id = this.frameId_;
+ g.width = "100%";
+ g.height = "100%";
+ g.frameBorder = "no";
+ g.scrolling = "no";
+ g.marginHeight = 0;
+ g.marginWidth = 0;
+ g.className = "embed-iframe";
+ g.src = this.iframeUrl_(c, e, d, f);
+ b = b || document.body;
+ b.appendChild(g);
+ return g
+};
+a.iframeUrl_ = function(b, c, e, d) {
+ var f = [];
+ f.push("client.type=embedded");
+ f.push("parent=" + escape("http://" + window.location.host + window.location.pathname));
+ b && f.push("ext_contacts=1");
+ c && f.push("wave_id=" + encodeURIComponent(c));
+ e && f.push("search_query=" + encodeURIComponent(e));
+ if(d) {
+ d.bgcolor && f.push("bgcolor=" + encodeURIComponent(d.bgcolor));
+ d.color && f.push("color=" + encodeURIComponent(d.color));
+ d.font && f.push("font=" + encodeURIComponent(d.font));
+ d.fontsize && f.push("fontsize=" + encodeURIComponent(d.fontsize))
+ }return this.waveRootUrl + "?" + f.join("&")
+};
+a.addListener = function(b, c) {
+ var e = this.eventListeners_, d = e[b];
+ if(!d) {
+ d = [];
+ e[b] = d
+ }d.push(c)
+};
+a.getFrameId = function() {
+ return this.frameId_
+};
+a.getRelayUrl_ = function() {
+ var b = this.waveRootUrl, c = b.split("://");
+ if(c && c.length > 0) {
+ var e = c[c.length - 1];
+ b = c[0] + "://";
+ for(var d = 0;d < e.length;++d) {
+ if(e[d] == "/")break;
+ b += e[d]
+ }b += "/"
+ }return b + "gadgets/files/container/rpc_relay.html"
+};
+a.loadWave = function(b, c) {
+ if(this.init_) {
+ var e = WavePanel.pushCallback_(c);
+ gadgets.rpc.call(this.getFrameId(), "load_wave", null, e, b)
+ }else this.initWaveId_ = b
+};
+a.loadSearch = function(b, c) {
+ if(this.init_) {
+ var e = WavePanel.pushCallback_(c);
+ gadgets.rpc.call(this.getFrameId(), "digest_search", null, e, b)
+ }else this.initSearch_ = b
+};
+a.setUIConfig = function(b, c, e, d) {
+ if(this.init_)throw"Cannot change the UIConfig after Init has been called.";else this.uiConfig_ = {bgcolor:b, color:c, font:e, fontsize:d}
+};
+a.addParticipant = function() {
+ if(!this.init_)throw"Init not called.";gadgets.rpc.call(this.getFrameId(), "add_participant", null, "")
+};
+a.addReply = function(b, c) {
+ if(!this.init_)throw"Init not called.";var e = WavePanel.pushCallback_(c);
+ gadgets.rpc.call(this.getFrameId(), "add_reply", null, e, b)
+};
+a.provideContacts = function(b) {
+ if(!this.init_)throw"Init not called.";var c = [];
+ for(var e in b) {
+ var d = b[e];
+ c.push(e);
+ c.push(d.firstName);
+ c.push(d.lastName);
+ c.push(d.photoUrl)
+ }c.unshift(c.length / 4);
+ gadgets.rpc.call(this.getFrameId(), "provide_contacts", null, c)
+};
Modified: trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2009-07-22 20:31:08 UTC (rev 1138)
@@ -56,4 +56,6 @@
<!-- <set-property name="user.agent" value="gecko" /> -->
+ <inherits name='com.google.gwt.wave.Wave' />
+
</module>
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -39,6 +39,7 @@
final ContentActionRegistry actionRegistry, final Provider<FileDownloadUtils> downloadProvider,
final Provider<MediaUtils> mediaUtils) {
super(BlogClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider, i18n, mediaUtils);
+ setUploadType(BlogClientTool.TYPE_UPLOADEDFILE);
}
public void init(final BlogViewerView view) {
@@ -48,7 +49,7 @@
@Override
protected void setState(final StateContentDTO state) {
super.setState(state);
- super.setContent(state, BlogClientTool.TYPE_UPLOADEDFILE);
+ super.setContent(state);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -23,6 +23,7 @@
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_FOLDER;
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_ROOT;
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_UPLOADEDFILE;
+import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_WAVE;
import org.ourproject.kune.docs.client.cnt.DocumentViewer;
import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
@@ -80,6 +81,8 @@
createNewContentAction(TYPE_DOCUMENT, "images/nav/page_add.png", i18n.t("New document"), parentMenuTitleCtx,
Position.ctx, TYPE_ROOT, TYPE_FOLDER);
+ createWaveAction(TYPE_WAVE, parentMenuTitleCtx, Position.ctx, TYPE_ROOT, TYPE_FOLDER);
+
createTranslateAction(parentMenuTitle, TYPE_DOCUMENT, TYPE_FOLDER);
createContentRenameAction(parentMenuTitle, i18n.t("Rename"), contents);
createEditAction(parentMenuTitle, TYPE_DOCUMENT);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -32,6 +32,7 @@
public static final String TYPE_FOLDER = NAME + "." + "folder";
public static final String TYPE_DOCUMENT = NAME + "." + "doc";
public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
+ public static final String TYPE_WAVE = NAME + "." + FoldableAbstractClientTool.WAVE_SUFFIX;
public DocumentClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
final WsThemeManager wsThemePresenter, final WorkspaceSkeleton ws,
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -40,6 +40,8 @@
final Provider<MediaUtils> mediaUtils) {
super(DocumentClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider, i18n,
mediaUtils);
+ setUploadType(DocumentClientTool.TYPE_UPLOADEDFILE);
+ setWaveType(DocumentClientTool.TYPE_WAVE);
}
public void init(final DocumentViewerView view) {
@@ -49,6 +51,6 @@
@Override
protected void setState(final StateContentDTO state) {
super.setState(state);
- setContent(state, DocumentClientTool.TYPE_UPLOADEDFILE);
+ setContent(state);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -45,6 +45,7 @@
public static final String TYPE_FOLDER = NAME + "." + "folder";
public static final String TYPE_DOCUMENT = NAME + "." + "doc";
public static final String TYPE_UPLOADEDFILE = NAME + "." + ServerTool.UPLOADEDFILE_SUFFIX;
+ public static final String TYPE_WAVE = NAME + "." + ServerTool.WAVE_SUFFIX;
public static final String ROOT_NAME = "documents";
@@ -62,11 +63,11 @@
this.i18n = translationService;
}
- public void checkTypesBeforeContainerCreation(String parentTypeId, String typeId) {
+ public void checkTypesBeforeContainerCreation(final String parentTypeId, final String typeId) {
checkContainerTypeId(parentTypeId, typeId);
}
- public void checkTypesBeforeContentCreation(String parentTypeId, String typeId) {
+ public void checkTypesBeforeContentCreation(final String parentTypeId, final String typeId) {
checkContentTypeId(parentTypeId, typeId);
}
@@ -125,9 +126,10 @@
}
void checkContentTypeId(final String parentTypeId, final String typeId) {
- if (typeId.equals(TYPE_DOCUMENT) || typeId.equals(TYPE_UPLOADEDFILE)) {
+ if (typeId.equals(TYPE_DOCUMENT) || typeId.equals(TYPE_UPLOADEDFILE) || typeId.equals(TYPE_WAVE)) {
// ok valid content
if ((typeId.equals(TYPE_DOCUMENT) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))
+ || (typeId.equals(TYPE_WAVE) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))
|| (typeId.equals(TYPE_UPLOADEDFILE) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))) {
// ok
} else {
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -40,6 +40,7 @@
final Provider<MediaUtils> mediaUtils) {
super(GalleryClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider, i18n,
mediaUtils);
+ setUploadType(GalleryClientTool.TYPE_UPLOADEDFILE);
}
public void init(final GalleryViewerView view) {
@@ -49,7 +50,7 @@
@Override
protected void setState(final StateContentDTO state) {
super.setState(state);
- setContent(state, GalleryClientTool.TYPE_UPLOADEDFILE);
+ setContent(state);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -51,6 +51,8 @@
StateContainerDTO addRoom(String user, StateToken parentToken, String name) throws DefaultException;
+ StateContentDTO addWave(String userHash, StateToken parentToken, String waveFileType, String waveId);
+
StateContentDTO delContent(String userHash, StateToken token) throws DefaultException;
StateAbstractDTO getContent(String userHash, StateToken token) throws DefaultException;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -51,6 +51,9 @@
void addRoom(String user, StateToken parentToken, String name, AsyncCallback<StateContainerDTO> callback);
+ void addWave(String userHash, StateToken parentToken, String waveFileType, String waveId,
+ AsyncCallback<StateContentDTO> asyncCallbackSimple);
+
void delContent(String userHash, StateToken token, AsyncCallback<StateContentDTO> asyncCallback);
void getContent(String user, StateToken newState, AsyncCallback<StateAbstractDTO> callback);
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -95,6 +95,7 @@
@Basic(optional = true)
private Date publishedOn;
+ // @NotNull??
private String typeId;
@OneToMany(cascade = CascadeType.ALL)
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -98,7 +98,7 @@
private final FinderService finderService;
@Inject
- public ContentRPC(FinderService finderService, final Provider<UserSession> userSessionProvider,
+ public ContentRPC(final FinderService finderService, final Provider<UserSession> userSessionProvider,
final AccessService accessService, final AccessRightsService rightsService,
final StateService stateService, final CreationService creationService, final GroupManager groupManager,
final XmppManager xmppManager, final ContentManager contentManager,
@@ -156,11 +156,8 @@
@Transactional(type = TransactionType.READ_WRITE)
public StateContentDTO addContent(final String userHash, final StateToken parentToken, final String title,
final String typeId) throws DefaultException {
- final User user = getCurrentUser();
- final Container container = accessService.accessToContainer(ContentUtils.parseId(parentToken.getFolder()),
- user, AccessRol.Editor);
- final Content addedContent = creationService.createContent(title, "", user, container, typeId);
- return getState(user, addedContent);
+ final String body = "";
+ return createContent(parentToken, title, typeId, body);
}
@Authenticated
@@ -202,6 +199,14 @@
}
@Authenticated
+ @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
+ @Transactional(type = TransactionType.READ_WRITE)
+ public StateContentDTO addWave(final String userHash, final StateToken parentToken, final String typeId,
+ final String waveId) throws DefaultException {
+ return createContent(parentToken, "Wave embeded test", typeId, waveId);
+ }
+
+ @Authenticated
@Authorizated(accessRolRequired = AccessRol.Administrator)
@Transactional(type = TransactionType.READ_WRITE)
public StateContentDTO delContent(final String userHash, final StateToken token) throws DefaultException {
@@ -263,7 +268,7 @@
final Long contentId = ContentUtils.parseId(token.getDocument());
if (isUserLoggedIn()) {
- RateResult result = contentManager.rateContent(rater, contentId, value);
+ final RateResult result = contentManager.rateContent(rater, contentId, value);
return mapper.map(result, RateResultDTO.class);
} else {
throw new AccessViolationException();
@@ -352,7 +357,7 @@
|| status.equals(ContentStatusDTO.inTheDustbin)) {
throw new AccessViolationException();
}
- Content content = contentManager.setStatus(ContentUtils.parseId(token.getDocument()),
+ final Content content = contentManager.setStatus(ContentUtils.parseId(token.getDocument()),
ContentStatus.valueOf(status.toString()));
return getState(getCurrentUser(), content);
}
@@ -362,7 +367,7 @@
@Transactional(type = TransactionType.READ_WRITE)
public StateAbstractDTO setStatusAsAdmin(final String userHash, final StateToken token,
final ContentStatusDTO status) {
- Content content = contentManager.setStatus(ContentUtils.parseId(token.getDocument()),
+ final Content content = contentManager.setStatus(ContentUtils.parseId(token.getDocument()),
ContentStatus.valueOf(status.toString()));
return getState(getCurrentUser(), content);
}
@@ -390,6 +395,15 @@
return mapper.map(comment, CommentDTO.class);
}
+ private StateContentDTO createContent(final StateToken parentToken, final String title, final String typeId,
+ final String body) {
+ final User user = getCurrentUser();
+ final Container container = accessService.accessToContainer(ContentUtils.parseId(parentToken.getFolder()),
+ user, AccessRol.Editor);
+ final Content addedContent = creationService.createContent(title, body, user, container, typeId);
+ return getState(user, addedContent);
+ }
+
private Container createFolder(final String groupShortName, final Long parentFolderId, final String title,
final String typeId) throws DefaultException {
final User user = getCurrentUser();
@@ -401,9 +415,9 @@
@Authenticated(mandatory = false)
@Authorizated(accessRolRequired = AccessRol.Viewer)
- private StateAbstractDTO getContentOrDefContent(String userHash, StateToken stateToken, final User user,
- final Content content) {
- Long id = content.getId();
+ private StateAbstractDTO getContentOrDefContent(final String userHash, final StateToken stateToken,
+ final User user, final Content content) {
+ final Long id = content.getId();
if (id != null) {
// Content
return mapState(stateService.create(user, content), user);
@@ -418,18 +432,18 @@
return getUserSession().getUser();
}
- private StateContainerDTO getState(User user, Container container) {
- StateContainer state = stateService.create(user, container);
+ private StateContainerDTO getState(final User user, final Container container) {
+ final StateContainer state = stateService.create(user, container);
return mapState(state, user);
}
- private StateContentDTO getState(User user, Content content) {
- StateContent state = stateService.create(user, content);
+ private StateContentDTO getState(final User user, final Content content) {
+ final StateContent state = stateService.create(user, content);
return mapState(state, user);
}
private TagCloudResultDTO getSummaryTags(final Group group) {
- TagCloudResult result = tagManager.getTagCloudResultByGroup(group);
+ final TagCloudResult result = tagManager.getTagCloudResultByGroup(group);
return new TagCloudResultDTO(mapper.mapList(result.getTagCountList(), TagCountDTO.class), result.getMaxValue(),
result.getMinValue());
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -34,6 +34,7 @@
/* Same constant in client */
public static final String UPLOADEDFILE_SUFFIX = "uploaded";
+ public static final String WAVE_SUFFIX = "wave";
void checkTypesBeforeContainerCreation(String parentTypeId, String typeId);
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -39,6 +39,7 @@
final ContentActionRegistry actionRegistry, final Provider<FileDownloadUtils> downloadProvider,
final Provider<MediaUtils> mediaUtils) {
super(WikiClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider, i18n, mediaUtils);
+ setUploadType(WikiClientTool.UPLOADEDFILE_SUFFIX);
}
public void init(final WikiViewerView view) {
@@ -48,6 +49,5 @@
@Override
protected void setState(final StateContentDTO state) {
super.setState(state);
- setContent(state, WikiClientTool.TYPE_UPLOADEDFILE);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -581,6 +581,28 @@
return uploadMedia;
}
+ protected ActionToolbarMenuAndItemDescriptor<StateToken> createWaveAction(final String waveFileType,
+ final String parentMenuTitle, final Position position, final String... registerInTypes) {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addWave = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Editor, CONTEXT_TOPBAR, new Listener<StateToken>() {
+ public void onEvent(final StateToken parentToken) {
+ contentServiceProvider.get().addWave(session.getUserHash(), parentToken, waveFileType,
+ "wavesandbox.com!w+NdlzA9PU%B", new AsyncCallbackSimple<StateContentDTO>() {
+ public void onSuccess(final StateContentDTO state) {
+ stateManager.setRetrievedState(state);
+ }
+ });
+ }
+ });
+ addWave.setTextDescription(i18n.t("Add Wave"));
+ addWave.setParentMenuTitle(parentMenuTitle);
+ addWave.setMustBeAuthenticated(true);
+ addWave.setParentSubMenuTitle(i18n.t("New"));
+ // addContent.setIconUrl(iconUrl);
+ register(addWave, position, registerInTypes);
+ return addWave;
+ }
+
protected void downloadContent(final StateToken token) {
fileDownloadProvider.get().downloadFile(token);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -19,12 +19,15 @@
*/
package org.ourproject.kune.workspace.client.cnt;
+import com.calclab.suco.client.events.Listener0;
import com.google.gwt.user.client.ui.Widget;
public interface AbstractContentView {
public void setRawContent(final String content);
+ public void setWave(String waveId, Listener0 onLoaded);
+
void attach();
void detach();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -26,6 +26,8 @@
import org.ourproject.kune.platf.client.ui.RoundedPanel;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import com.allen_sauer.gwt.log.client.Log;
+import com.calclab.suco.client.events.Listener0;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.HTML;
@@ -33,6 +35,9 @@
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.wave.client.WaveWidget;
+import com.google.gwt.wave.client.event.WaveLoadEvent;
+import com.google.gwt.wave.client.event.WaveLoadHandler;
public abstract class FoldableContentPanel extends AbstractContentPanel implements AbstractContentView {
@@ -86,6 +91,20 @@
setContent(html);
}
+ public void setWave(final String waveId, final Listener0 onLoaded) {
+ final WaveWidget waveWidget = new WaveWidget("http://wave.google.com/a/wavesandbox.com/");
+ waveWidget.setUIConfig("white", "black", "arial, sans", "10pt");
+ waveWidget.setHeight("100%");
+ waveWidget.addWaveLoadHandler(new WaveLoadHandler() {
+ public void onWaveLoad(final WaveLoadEvent event) {
+ Log.info("Wave '" + event.getWaveId() + "' loaded!");
+ onLoaded.onEvent();
+ }
+ });
+ waveWidget.loadWave(waveId);
+ setContent(waveWidget);
+ }
+
public void setWidgetAsContent(final Widget widget, final boolean setDefMargins) {
if (setDefMargins) {
widget.addStyleName(DEF_CONTENT_MARGINS_STYLE);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -32,10 +32,12 @@
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
import org.ourproject.kune.platf.client.ui.download.ImageSize;
+import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia.MediaUtils;
import org.ourproject.kune.workspace.client.AbstractFoldableContentActions;
import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.events.Listener0;
import com.calclab.suco.client.ioc.Provider;
public abstract class FoldableContentPresenter extends AbstractContentPresenter implements FoldableContent {
@@ -47,6 +49,9 @@
private final Provider<FileDownloadUtils> downloadProvider;
private final I18nTranslationService i18n;
private final Provider<MediaUtils> mediaUtils;
+ private String uploadType;
+ private String waveType;
+ private final Listener0 onWaveLoaded;
public FoldableContentPresenter(final String toolName, final StateManager stateManager, final Session session,
final ActionContentToolbar toolbar, final ActionRegistry<StateToken> actionRegistry,
@@ -64,56 +69,46 @@
setState(state);
}
});
+ onWaveLoaded = new Listener0() {
+ public void onEvent() {
+ NotifyUser.hideProgress();
+ NotifyUser.info("Wave loaded");
+ }
+ };
}
public String getToolName() {
return toolName;
}
+ public String getUploadType() {
+ return uploadType;
+ }
+
+ public String getWaveType() {
+ return waveType;
+ }
+
public void refreshState() {
setState(session.getContentState());
}
- protected void setContent(final StateContentDTO state, final String uploadedfileType) {
- String typeId = state.getTypeId();
- String contentBody = state.getContent();
- StateToken token = state.getStateToken();
- BasicMimeTypeDTO mimeType = state.getMimeType();
- if (typeId.equals(uploadedfileType)) {
- if (mimeType != null) {
- 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 setWaveType(final String waveType) {
+ this.waveType = waveType;
+ }
+
+ protected void setContent(final StateContentDTO state) {
+ final String typeId = state.getTypeId();
+ if (typeId.equals(getUploadType())) {
+ setUploadedContent(state);
+ } else if (typeId.equals(getWaveType())) {
+ setWaveContent(state);
} else {
- 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);
- }
+ setNormalContent(state);
}
view.attach();
}
@@ -121,7 +116,7 @@
protected void setState(final StateAbstractDTO state) {
toolbar.detach();
if (state instanceof StateContainerDTO) {
- StateContainerDTO stateCntCtx = (StateContainerDTO) state;
+ final StateContainerDTO stateCntCtx = (StateContainerDTO) state;
if (stateCntCtx.getToolName().equals(toolName)) {
// This tool
if (stateCntCtx instanceof StateContentDTO) {
@@ -134,13 +129,13 @@
}
protected void setState(final StateContainerDTO state) {
- ActionItemCollection<StateToken> collection = getActionCollection(state, state.getContainerRights());
+ final ActionItemCollection<StateToken> collection = getActionCollection(state, state.getContainerRights());
setToolbar(collection);
attach();
}
protected void setState(final StateContentDTO state) {
- ActionItemCollection<StateToken> collection = getActionCollection(state, state.getContentRights());
+ final ActionItemCollection<StateToken> collection = getActionCollection(state, state.getContentRights());
setToolbar(collection);
}
@@ -150,11 +145,63 @@
true);
}
+ private String getContentBody(final StateContentDTO state) {
+ final String contentBody = state.getContent();
+ return 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"));
+ }
+ } else {
+ view.setRawContent(contentBody);
+ }
+ }
+
private void setToolbar(final ActionItemCollection<StateToken> collection) {
toolbar.disableMenusAndClearButtons();
toolbar.addActions(collection, AbstractFoldableContentActions.CONTENT_TOPBAR);
- ;
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 setWaveContent(final StateContentDTO state) {
+ NotifyUser.showProgressLoading();
+ final String waveId = getContentBody(state);
+ view.setWave(waveId, onWaveLoaded);
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -61,8 +61,9 @@
mainFitPanel = new Panel();
mainFitPanel.setLayout(new FitLayout());
mainFitPanel.setBorder(false);
+ mainFitPanel.setAutoScroll(false);
- Panel mainAnchorLayout = new Panel();
+ final Panel mainAnchorLayout = new Panel();
mainAnchorLayout.setLayout(new AnchorLayout());
mainAnchorLayout.setBorder(false);
@@ -133,7 +134,7 @@
contentWrap.add(contentBottomBar.getPanel(), new BorderLayoutData(RegionPosition.SOUTH));
contextWrap.add(contextBottomBar.getPanel(), new BorderLayoutData(RegionPosition.SOUTH));
- BorderLayoutData eastData = new BorderLayoutData(RegionPosition.EAST);
+ final BorderLayoutData eastData = new BorderLayoutData(RegionPosition.EAST);
contextWrap.setWidth(175);
eastData.setUseSplitTips(true);
eastData.setCollapseModeMini(true);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -26,6 +26,7 @@
public abstract class FoldableAbstractClientTool extends AbstractClientTool {
public static final String UPLOADEDFILE_SUFFIX = "uploaded";
+ public static final String WAVE_SUFFIX = "wave";
protected final ContentCapabilitiesRegistry contentCapabilitiesRegistry;
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -28,7 +28,7 @@
// memory
// test_db: use
// mysql
- bindConstant().annotatedWith(JpaUnit.class).to("test");
+ bindConstant().annotatedWith(JpaUnit.class).to("test_db");
bindConstant().annotatedWith(PropertiesFileName.class).to("kune.properties");
bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
}
1
0
Author: vjrj
Date: 2009-07-22 17:12:39 +0200 (Wed, 22 Jul 2009)
New Revision: 1137
Modified:
trunk/TODO
trunk/pom.xml
Log:
Complete - task Hibernate upgraded (delete test dbs and indexes)
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2009-07-22 11:56:12 UTC (rev 1136)
+++ trunk/TODO 2009-07-22 15:12:39 UTC (rev 1137)
@@ -11,6 +11,9 @@
Use org-mode in emacs to easy manage this file
* SHORT-TERM (URGENT)
+** Use hibernate cache
+ http://ehcache.sourceforge.net/documentation/openjpa_provider.html
+ http://ehcache.sourceforge.net/documentation/hibernate.html
** Do something with jetty/jruby alias issue
http://jetty.mortbay.org/jetty5/faq/faq_s_400-Security_t_Aliases.html
** Use of webdriver instead of plain selenium
@@ -171,6 +174,7 @@
2007-12-21 10:35:16,197 [btpool0-5] DEBUG - ContentManagerDefault.createContent EXCEPTION => javax.persistence.Entity
** vjrj <v> IconHyperlink.java and IconLabel.java to gwt1.5
+
* MID-TERM
** TODO <v> karma, reputation, trust metrics:
http://wiki.couchsurfing.com/en/Trust
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-07-22 11:56:12 UTC (rev 1136)
+++ trunk/pom.xml 2009-07-22 15:12:39 UTC (rev 1137)
@@ -157,13 +157,13 @@
<!-- hibernate JPA -->
<dependency>
<groupId>org.hibernate</groupId>
- <artifactId>hibernate-search</artifactId>
- <version>3.1.0.GA</version>
+ <artifactId>hibernate-core</artifactId>
+ <version>3.3.1.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
- <artifactId>hibernate</artifactId>
- <version>3.2.6.ga</version>
+ <artifactId>hibernate-validator</artifactId>
+ <version>3.1.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
@@ -172,11 +172,21 @@
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
- <artifactId>hibernate-validator</artifactId>
- <version>3.0.0.ga</version>
+ <artifactId>hibernate-commons-annotations</artifactId>
+ <version>3.3.0.ga</version>
</dependency>
+ <!--
+ <dependency> <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-ehcache</artifactId>
+ <version>3.3.1.GA</version> </dependency>
+ -->
<dependency>
<groupId>org.hibernate</groupId>
+ <artifactId>hibernate-search</artifactId>
+ <version>3.1.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
</dependency>
1
0
22 Jul '09
Author: vjrj
Date: 2009-07-22 13:56:12 +0200 (Wed, 22 Jul 2009)
New Revision: 1136
Added:
trunk/pom.xml.net
Modified:
trunk/TROUBLESHOOT
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java
trunk/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java
trunk/war/WEB-INF/lib/gwt-servlet.jar
Log:
Incomplete - task Entity Properties (Group/User preferences)
Modified: trunk/TROUBLESHOOT
===================================================================
--- trunk/TROUBLESHOOT 2009-07-19 18:10:48 UTC (rev 1135)
+++ trunk/TROUBLESHOOT 2009-07-22 11:56:12 UTC (rev 1136)
@@ -46,3 +46,9 @@
Connections could not be acquired from the underlying database
We have problems testing all test together from eclipse and using real db (not the h2 memory db)
+
+=== Too many files open ===
+
+If running all the Kune test you get errors about "Too many files open" see:
+http://code.google.com/p/gwt-examples/wiki/gwtEclipseFaqs
+about how to fix it in your system.
\ No newline at end of file
Added: trunk/pom.xml.net
===================================================================
--- trunk/pom.xml.net 2009-07-19 18:10:48 UTC (rev 1135)
+++ trunk/pom.xml.net 2009-07-22 11:56:12 UTC (rev 1136)
@@ -0,0 +1,826 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.ourproject</groupId>
+ <artifactId>kune</artifactId>
+ <packaging>jar</packaging>
+ <version>0.0.6</version>
+ <description>
+ kune free/open/libre collaboration platform
+ </description>
+ <name>kune</name>
+ <url>http://kune.ourproject.org</url>
+ <properties>
+ <gwtVersion>1.7.0</gwtVersion>
+ </properties>
+ <dependencies>
+ <!-- guice -->
+ <dependency>
+ <groupId>com.google.code.guice</groupId>
+ <artifactId>guice</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.guice</groupId>
+ <artifactId>guice-servlet</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>aopalliance</groupId>
+ <artifactId>aopalliance</artifactId>
+ <version>1.0</version>
+ </dependency>
+
+ <!-- G WT deps (from central repo) -->
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-servlet</artifactId>
+ <version>${gwtVersion}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-user</artifactId>
+ <version>${gwtVersion}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-dev</artifactId>
+ <version>${gwtVersion}</version>
+ <classifier>${platform}-libs</classifier>
+ <type>zip</type>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-dev</artifactId>
+ <version>${gwtVersion}</version>
+ <classifier>${platform}</classifier>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-incubator</artifactId>
+ <version>march-02-2009</version>
+ <scope>provided</scope>
+ </dependency>
+ <!--
+ <dependency> <groupId>com.extjs</groupId>
+ <artifactId>gxt</artifactId> <version>1.0-beta2</version>
+ </dependency>
+ -->
+ <dependency>
+ <groupId>org.cobogw</groupId>
+ <artifactId>gwt</artifactId>
+ <version>1.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>com.gwtext</groupId>
+ <artifactId>gwtext</artifactId>
+ <version>2.0.5</version>
+ </dependency>
+ <dependency>
+ <groupId>com.gwtextux</groupId>
+ <artifactId>gwtextux</artifactId>
+ <version>0.4.0.924</version>
+ </dependency>
+ <dependency>
+ <groupId>com.allen_sauer.gwt.log.gwt-log</groupId>
+ <artifactId>gwt-log</artifactId>
+ <version>2.6.2</version>
+ </dependency>
+ <dependency>
+ <groupId>com.allen_sauer.gwt.voices.gwt-voices</groupId>
+ <artifactId>gwt-voices</artifactId>
+ <version>1.6.0</version>
+ </dependency>
+
+ <!-- utilities -->
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.dozer</groupId>
+ <artifactId>dozer</artifactId>
+ <version>4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.calclab</groupId>
+ <artifactId>suco</artifactId>
+ <version>0.6.1</version>
+ </dependency>
+ <dependency>
+ <groupId>jmagick</groupId>
+ <artifactId>jmagick</artifactId>
+ <version>6.2.6-0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.xwiki.platform</groupId>
+ <artifactId>xwiki-web-gwt-dom</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <!-- <version>2.0-SNAPSHOT-g164</version> -->
+ </dependency>
+
+ <!-- xmpp -->
+ <dependency>
+ <groupId>com.calclab.emite</groupId>
+ <artifactId>emite</artifactId>
+ <version>0.4.7</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jivesoftware.smack</groupId>
+ <artifactId>smack</artifactId>
+ <version>3.0.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jivesoftware.smackx</groupId>
+ <artifactId>smackx</artifactId>
+ <version>3.0.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jivesoftware.smackx.debugger</groupId>
+ <artifactId>smackx-debugger</artifactId>
+ <version>3.0.4</version>
+ </dependency>
+
+ <!-- mysql -->
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>5.0.5</version>
+ </dependency>
+
+ <!-- hibernate JPA -->
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-search</artifactId>
+ <version>3.1.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate</artifactId>
+ <version>3.2.6.ga</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-annotations</artifactId>
+ <version>3.4.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>3.0.0.ga</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <version>3.4.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-tools</artifactId>
+ <version>3.2.3.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>c3p0</groupId>
+ <artifactId>c3p0</artifactId>
+ <version>0.9.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.wideplay</groupId>
+ <artifactId>warp-persist</artifactId>
+ <version>1.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.5.2</version>
+ </dependency>
+
+ <!-- REST: xml and json (stax) -->
+ <dependency>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ <version>1.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ <version>1.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.jettison</groupId>
+ <artifactId>jettison</artifactId>
+ <version>1.0-RC2</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.json-lib</groupId>
+ <artifactId>json-lib</artifactId>
+ <version>2.1</version>
+ <classifier>jdk15</classifier>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2</version>
+ </dependency>
+
+ <!-- File upload -->
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ <version>1.7.0</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-fileupload</groupId>
+ <artifactId>commons-fileupload</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+
+ <!-- db upgrades -->
+ <dependency>
+ <groupId>org.liquibase</groupId>
+ <artifactId>liquibase-core</artifactId>
+ <version>1.7.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.liquibase</groupId>
+ <artifactId>liquibase-plugin</artifactId>
+ <version>1.7.0.0</version>
+ </dependency>
+
+ <!-- jetty dependencies -->
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>6.1.5</version>
+ <!--
+ <version>7.0.0.pre5</version>
+ -->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>maven-jetty-plugin</artifactId>
+ <!--
+ <artifactId>jetty-maven-plugin</artifactId>
+ <version>7.0.0.1beta0</version>
+ -->
+ <version>6.1.5</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.4</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- testing dependencies -->
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <version>1.6</version>
+ </dependency>
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <version>1.0.20070617</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.4</version>
+ <!--
+ <scope>test</scope>
+ -->
+ </dependency>
+ <dependency>
+ <groupId>org.openqa.selenium.client-drivers</groupId>
+ <artifactId>selenium-java-client-driver</artifactId>
+ <version>1.0-beta-1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- public side -->
+ <dependency>
+ <groupId>org.jruby.rack</groupId>
+ <artifactId>jruby-rack</artifactId>
+ <version>0.9.4</version>
+ </dependency>
+ </dependencies>
+ <!--
+ http://gwt-maven.googlecode.com/svn/docs/maven-googlewebtoolkit2-plugin/ind…
+ -->
+ <pluginRepositories>
+ <pluginRepository>
+ <id>gwt-maven</id>
+ <url>http://gwt-maven.googlecode.com/svn/trunk/mavenrepo</url>
+ </pluginRepository>
+ <pluginRepository>
+ <id>Codehaus Snapshots</id>
+ <url>http://snapshots.repository.codehaus.org/</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled> <!-- Workaround for MNG-2974, see note below -->
+ </releases>
+ </pluginRepository>
+ </pluginRepositories>
+ <repositories>
+ <repository>
+ <id>Codehaus Snapshots</id>
+ <url>http://snapshots.repository.codehaus.org/</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ <repository>
+ <id>repository.jboss.org</id>
+ <name>JBoss Maven Repository</name>
+ <url>http://repository.jboss.org/maven2</url>
+ <layout>default</layout>
+ </repository>
+ <repository>
+ <id>dyndns-repo</id>
+ <url>http://maven.dyndns.org/2</url>
+ </repository>
+ <repository>
+ <id>gwt-maven</id>
+ <url>
+ http://gwt-maven.googlecode.com/svn/trunk/mavenrepo/
+ </url>
+ </repository>
+ <repository>
+ <id>kune-maven</id>
+ <url>http://kune.ourproject.org/mavenrepo/</url>
+ </repository>
+ <repository>
+ <id>gwtext</id>
+ <url>http://www.gwt-ext.com/maven2/</url>
+ </repository>
+ <repository>
+ <id>openqa.org</id>
+ <name>Openqa Release Repository</name>
+ <url>http://archiva.openqa.org/repository/releases</url>
+ <layout>default</layout>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </repository>
+ <repository>
+ <id>openqa.org</id>
+ <name>Openqa Snapshot Repository</name>
+ <url>http://archiva.openqa.org/repository/snapshots</url>
+ <layout>default</layout>
+ <snapshots>
+ <enabled>true</enabled>
+ <updatePolicy>daily</updatePolicy>
+ <checksumPolicy>ignore</checksumPolicy>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ <repository>
+ <id>xwiki</id>
+ <name>XWiki Repository</name>
+ <url>http://maven.xwiki.org/snapshots</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ <updatePolicy>daily</updatePolicy>
+ <checksumPolicy>warn</checksumPolicy>
+ </snapshots>
+ </repository>
+ </repositories>
+ <issueManagement>
+ <system>kune issues list at ourproject.org</system>
+ <url>http://ourproject.org/tracker/?group_id=407</url>
+ </issueManagement>
+ <developers>
+ <developer>
+ <id>dani</id>
+ <name>Daniel Gómez Blasco</name>
+ <email>danigb(a)gmail.com</email>
+ </developer>
+ <developer>
+ <name>Samer Hassan</name>
+ <email>samer2004(a)gmail.com</email>
+ </developer>
+ <developer>
+ <name>Vicente J. Ruiz Jurado</name>
+ <email>vjrj(a)ourproject.org</email>
+ </developer>
+ </developers>
+ <scm>
+ <url>svn://scm.ourproject.org/svnroot/kune/trunk</url>
+ </scm>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <forkMode>pertest</forkMode>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ <!--
+ Uncomment and run mvn with -X -e if we have same compile
+ problems <compilerArgument>-verbose</compilerArgument>
+ <fork>true</fork> <verbose>true</verbose>
+ -->
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>com.totsp.gwt</groupId>
+ <artifactId>maven-googlewebtoolkit2-plugin</artifactId>
+ <version>2.0-RC1</version>
+ <configuration>
+ <logLevel>INFO</logLevel>
+ <!-- <style>OBF or PRETTY</style> -->
+ <style>PRETTY</style>
+ <!--
+ <output>${project.build.directory}/gwt/www</output>
+ -->
+ <logLevel>INFO</logLevel>
+ <noServer>true</noServer>
+ <extraJvmArgs>-Xmx640m</extraJvmArgs>
+ <gwtVersion>${gwtVersion}</gwtVersion>
+ <output>war/</output>
+ <runTarget>ws/Kune.html</runTarget>
+ <compileTargets>
+ <compileTarget>org.ourproject.kune.app.Kune</compileTarget>
+ </compileTargets>
+ <generatorRootClasses>
+ <value>org.ourproject.kune.MyBean</value>
+ </generatorRootClasses>
+ <generatorDestinationPackage> org.ourproject.kune.app.Kune </generatorDestinationPackage>
+ <generateGettersAndSetters> true </generateGettersAndSetters>
+ <generatePropertyChangeSupport> true </generatePropertyChangeSupport>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <!-- <goal>mergewebxml</goal> -->
+ <!-- <goal>compile</goal> -->
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.0</version>
+ <configuration>
+ <webXml>${project.build.directory}/WEB-INF/web.xml</webXml>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <downloadSources>true</downloadSources>
+ <downloadJavadocs>true</downloadJavadocs>
+ <wtpversion>1.5</wtpversion>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>maven-jetty-plugin</artifactId>
+ <version>6.1.5</version>
+ <!--
+ <artifactId>jetty-maven-plugin</artifactId>
+ <version>7.0.0.1beta0</version>
+ -->
+ <configuration>
+ <contextPath>/</contextPath>
+ <webAppSourceDirectory>war</webAppSourceDirectory>
+ <reload>manual</reload>
+ <scanIntervalSeconds>0</scanIntervalSeconds>
+ </configuration>
+ </plugin>
+ <!--
+ <plugin> <groupId>org.codehaus.mojo</groupId>
+ <artifactId>deb-maven-plugin</artifactId>
+ <version>1.0-SNAPSHOT</version> <configuration>
+ <description>kune free/open/libre collaboration
+ platform</description> <maintainer>Kune Development Team
+ <kune-devel(a)lists.ourproject.org></maintainer>
+ <section>web</section> <priority>optional</priority>
+ <architecture>all</architecture> </configuration> <executions>
+ <execution> <goals> <goal>deb</goal> </goals> </execution>
+ </executions> </plugin>
+ -->
+ <plugin>
+ <groupId>org.liquibase</groupId>
+ <artifactId>liquibase-plugin</artifactId>
+ <version>1.7.0.0</version>
+ <executions>
+ <execution>
+ <phase>process-resources</phase>
+ <configuration>
+ <changeLogFile>
+ src/main/resources/db/liquibase_changelog.xml </changeLogFile>
+ <driver>com.mysql.jdbc.Driver</driver>
+ <url>jdbc:mysql://localhost/kune_dev</url>
+ <username>kune</username>
+ <password>db4kune</password>
+ <verbose>true</verbose>
+ </configuration>
+ <!--
+ <configuration> <verbose>true</verbose> <propertiesFile>
+ src/main/resources/db/liquibase.properties
+ </propertiesFile> </configuration>
+ -->
+ <goals>
+ <goal>update</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.2</version>
+ <executions>
+ <execution>
+ <id>core</id>
+ <phase>package</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ <configuration>
+ <classifier>core</classifier>
+ <includes>
+ <include>**/KunePlatform.gwt.xml**</include>
+ <include>**/i18n/I18nTranslationService.**</include>
+ <include>**/i18n/I18nTranslationServiceMocked.**</include>
+ <include>**/TextUtils.**</include>
+ <include>**/IconLabelEditable.**</include>
+ <include>**/QuickTipsHelper.**</include>
+ <include>**/RichText.gwt.xml**</include>
+ <include>**/BasicDialog.**</include>
+ <include>**/HorizontalLine.**</include>
+ <include>**/AbstractLabel.**</include>
+ <include>**/IconLabel.**</include>
+ <include> **/EditableIconLabel.** </include>
+ <include> **/EditableClickListener.** </include>
+ <include>**/KuneStringUtils.**</include>
+ <include>**/IconHyperlink*.**</include>
+ <include>**/LabelWrapper*.**</include>
+ <include>**/KuneUiUtils.**</include>
+ <include>**/View.**</include>
+ <!--
+ <include>**/platf/**</include>
+ <include>**/platf/client/extend/**</include>
+ <include>**/platf/client/*java</include>
+ <include>**/platf/client/app/**</include>
+ <include>**/platf/client/dispatch/**</include>
+ -->
+ </includes>
+ </configuration>
+ </execution>
+ <execution>
+ <id>helloworldmodule</id>
+ <phase>package</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ <configuration>
+ <classifier>helloworldmodule</classifier>
+ <includes>
+ <include>**/HelloWorld*</include>
+ </includes>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>selenium-maven-plugin</artifactId>
+ <configuration>
+ <port>4441</port>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>start-server</goal>
+ </goals>
+ <configuration>
+ <background>true</background>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <forkMode>pertest</forkMode>
+ <!--
+ Skip the normal tests, we'll run them in the
+ integration-test phase
+ -->
+ <skip>true</skip>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <skip>false</skip>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <!--
+ <plugin> <artifactId>maven-clean-plugin</artifactId>
+ <version>2.2</version> <configuration> <filesets> <fileset>
+ <directory>src/main/webapp/gwt/</directory> <includes>
+ <include>**/org.ourproject.kune.app.Kune*</include>
+ <followSymlinks>false</followSymlinks> </includes> </fileset>
+ </filesets> </configuration> </plugin>
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-dev</artifactId>
+ <version>${gwtVersion}</version>
+ <classifier>${platform}-libs</classifier>
+ <type>zip</type>
+ <overWrite>false</overWrite>
+ <outputDirectory>${settings.localRepository}/com/google/gwt/gwt-dev/${gwtVersion}</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ <outputDirectory>war/WEB-INF/classes</outputDirectory>
+ <testOutputDirectory>war/WEB-INF/test-classes</testOutputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ </resource>
+ <resource>
+ <directory>src/main/java</directory>
+ </resource>
+ </resources>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jxr-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <linkXref>true</linkXref>
+ <sourceEncoding>utf-8</sourceEncoding>
+ <minimumTokens>100</minimumTokens>
+ <targetJdk>1.5</targetJdk>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <systemProperties>
+ <property>
+ <name> net.sourceforge.cobertura.datafile </name>
+ <value>
+ ${project.reporting.directory}/cobertura/cobertura.ser </value>
+ </property>
+ </systemProperties>
+ <forkMode>pertest</forkMode>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jdepend-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </reporting>
+
+ <!-- profiles (with activation per platform) -->
+ <profiles>
+ <profile>
+ <id>gwt-dev-windows</id>
+ <properties>
+ <platform>windows</platform>
+ </properties>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ <os>
+ <family>windows</family>
+ </os>
+ </activation>
+ <!-- FIXME: put here a similar temp directory to linux/unix systems -->
+ <build>
+ <directory>target/</directory>
+ </build>
+ <reporting>
+ <outputDirectory>target/</outputDirectory>
+ </reporting>
+ </profile>
+ <profile>
+ <id>gwt-dev-mac</id>
+ <properties>
+ <platform>mac</platform>
+ </properties>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ <os>
+ <family>mac</family>
+ </os>
+ </activation>
+ <build>
+ <directory>/var/tmp/kune-target/</directory>
+ </build>
+ <reporting>
+ <outputDirectory>/var/tmp/kune-target/</outputDirectory>
+ </reporting>
+ </profile>
+ <profile>
+ <id>gwt-dev-linux</id>
+ <properties>
+ <platform>linux</platform>
+ </properties>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ <os>
+ <name>linux</name>
+ </os>
+ </activation>
+ <build>
+ <directory>/var/tmp/kune-target/</directory>
+ </build>
+ <reporting>
+ <outputDirectory>/var/tmp/kune-target/</outputDirectory>
+ </reporting>
+ </profile>
+ </profiles>
+</project>
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java 2009-07-22 11:56:12 UTC (rev 1136)
@@ -30,6 +30,7 @@
import org.apache.lucene.queryParser.MultiFieldQueryParser;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.search.Query;
+import org.hibernate.exception.ConstraintViolationException;
import org.ourproject.kune.platf.client.dto.GroupType;
import org.ourproject.kune.platf.client.errors.AccessViolationException;
import org.ourproject.kune.platf.client.errors.DefaultException;
@@ -153,7 +154,7 @@
initGroup(user, userGroup, wantPersonalHomepage ? serverToolRegistry.getToolsForUserKeys()
: ServerToolRegistry.emptyToolList);
super.persist(user, User.class);
- } catch (final EntityExistsException e) {
+ } catch (final ConstraintViolationException e) {
throw new GroupNameInUseException();
}
return userGroup;
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java 2009-07-22 11:56:12 UTC (rev 1136)
@@ -43,6 +43,7 @@
import org.ourproject.kune.platf.server.domain.User;
import org.ourproject.kune.platf.server.manager.I18nCountryManager;
import org.ourproject.kune.platf.server.manager.I18nLanguageManager;
+import org.ourproject.kune.platf.server.manager.PropertiesManager;
import org.ourproject.kune.platf.server.manager.PropertyGroupManager;
import org.ourproject.kune.platf.server.manager.UserManager;
import org.ourproject.kune.platf.server.properties.ChatProperties;
@@ -62,12 +63,13 @@
private final I18nTranslationService i18n;
private final PropertyGroupManager propGroupManager;
private PropertyGroup userPropGroup;
+ private final PropertiesManager propManager;
@Inject
public UserManagerDefault(final Provider<EntityManager> provider, final User finder,
final I18nLanguageManager languageManager, final I18nCountryManager countryManager,
final XmppManager xmppManager, final ChatProperties properties, final I18nTranslationService i18n,
- final PropertyGroupManager propGroupManager) {
+ final PropertyGroupManager propGroupManager, final PropertiesManager propManager) {
super(provider, User.class);
this.finder = finder;
this.languageManager = languageManager;
@@ -76,23 +78,29 @@
this.properties = properties;
this.i18n = i18n;
this.propGroupManager = propGroupManager;
+ this.propManager = propManager;
}
public User createUser(final String shortName, final String longName, final String email, final String passwd,
final String langCode, final String countryCode, final String timezone) throws I18nNotFoundException {
+ I18nLanguage language;
+ I18nCountry country;
+ TimeZone tz;
try {
- final I18nLanguage language = languageManager.findByCode(langCode);
- final I18nCountry country = countryManager.findByCode(countryCode);
- final TimeZone tz = TimeZone.getTimeZone(timezone);
- if (userPropGroup == null) {
- userPropGroup = propGroupManager.find(User.PROPS_ID);
- }
- final User user = new User(shortName, longName, email, passwd, language, country, tz, new Properties(
- userPropGroup));
- return user;
+ language = languageManager.findByCode(langCode);
+ country = countryManager.findByCode(countryCode);
+ tz = TimeZone.getTimeZone(timezone);
} catch (final NoResultException e) {
throw new I18nNotFoundException();
}
+ if (userPropGroup == null) {
+ userPropGroup = propGroupManager.find(User.PROPS_ID);
+ }
+ final Properties userProp = new Properties(userPropGroup);
+ propManager.persist(userProp);
+ final User user = new User(shortName, longName, email, passwd, language, country, tz, userProp);
+ return user;
+
}
@Override
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java 2009-07-19 18:10:48 UTC (rev 1135)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java 2009-07-22 11:56:12 UTC (rev 1136)
@@ -15,11 +15,13 @@
import org.ourproject.kune.platf.server.domain.I18nCountry;
import org.ourproject.kune.platf.server.domain.I18nLanguage;
import org.ourproject.kune.platf.server.domain.License;
+import org.ourproject.kune.platf.server.domain.PropertyGroup;
import org.ourproject.kune.platf.server.domain.User;
import org.ourproject.kune.platf.server.manager.GroupManager;
import org.ourproject.kune.platf.server.manager.I18nCountryManager;
import org.ourproject.kune.platf.server.manager.I18nLanguageManager;
import org.ourproject.kune.platf.server.manager.LicenseManager;
+import org.ourproject.kune.platf.server.manager.PropertyGroupManager;
import org.ourproject.kune.platf.server.manager.UserManager;
import com.google.inject.Inject;
@@ -50,6 +52,8 @@
protected I18nLanguageManager languageManager;
@Inject
protected I18nCountryManager countryManager;
+ @Inject
+ protected PropertyGroupManager propGroupManager;
protected User user;
protected License defLicense;
@@ -77,6 +81,10 @@
assertEquals(0, userFinder.getAll().size());
assertEquals(0, groupFinder.getAll().size());
assertEquals(0, licenseFinder.getAll().size());
+ final PropertyGroup groupProps = new PropertyGroup(Group.PROPS_ID);
+ final PropertyGroup userProps = new PropertyGroup(User.PROPS_ID);
+ propGroupManager.persist(userProps);
+ propGroupManager.persist(groupProps);
english = new I18nLanguage(Long.valueOf(1819), "English", "English", "en");
languageManager.persist(english);
gb = new I18nCountry(Long.valueOf(75), "GB", "GBP", ".", "£%n", "", ".", "United Kingdom", "western", ",");
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java 2009-07-19 18:10:48 UTC (rev 1135)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java 2009-07-22 11:56:12 UTC (rev 1136)
@@ -6,7 +6,7 @@
import java.util.TimeZone;
-import javax.persistence.EntityExistsException;
+import javax.persistence.PersistenceException;
import org.apache.lucene.queryParser.ParseException;
import org.hibernate.validator.InvalidStateException;
@@ -65,7 +65,7 @@
persist(user);
}
- @Test(expected = EntityExistsException.class)
+ @Test(expected = PersistenceException.class)
public void testUserExist() throws I18nNotFoundException {
final User user1 = userManager.createUser("test", "test 1 name", "test1(a)example.com", "some password", "en",
"GB", "GMT");
Modified: trunk/war/WEB-INF/lib/gwt-servlet.jar
===================================================================
(Binary files differ)
1
0
Author: vjrj
Date: 2009-07-19 20:10:48 +0200 (Sun, 19 Jul 2009)
New Revision: 1135
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/errors/UnknownPropertyException.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Properties.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Property.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertyGroup.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySetted.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySubgroup.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertiesManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyGroupManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySettedManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySubgroupManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertiesManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyGroupManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySubgroupManagerDefault.java
trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefaultTest.java
Modified:
trunk/TODO
trunk/TROUBLESHOOT
trunk/pom.xml
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/server/KuneContainerListener.java
trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerModule.java
trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerTool.java
trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml
trunk/src/main/java/org/ourproject/kune/platf/RichText.gwt.xml
trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/User.java
trunk/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/Manager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/DefaultManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java
trunk/src/main/resources/META-INF/persistence.xml
trunk/src/test/java/org/ourproject/kune/platf/client/actions/KeyStrokeTest.java
trunk/src/test/java/org/ourproject/kune/platf/client/ui/rte/saving/RTESavingEditorPresenterTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerTest.java
trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java
Log:
Incomplete - task Entity Properties (Group/User preferences)
Complete - task Hibernate, gwt-log, gwt-voices, gwt updated
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/TODO 2009-07-19 18:10:48 UTC (rev 1135)
@@ -74,6 +74,30 @@
"Because the Preferences API is back-end neutral, you need not care whether the data are stored in files, database tables, or a platform-specific storage such as the Windows Registry. In fact, you don't want to care, because the situation may differ across varying platforms, or even across implementations on the same platform."
More links:
http://stackoverflow.com/questions/194349/what-is-the-proper-way-to-store-a…
+
+ Property
+ name
+ PropertyGroup pGroup
+ PropertySubgroup sGroup
+
+ PropertyGroup implements HasId
+ String name
+
+ PropertySubGroup implements HasId
+ String name
+
+ PropertySetted extends Property
+ String value
+
+ Properties
+ List<PropertySetted> list
+
+ User
+ Properties
+
+ Group
+ Properties
+
** vjrj Styling braimstorming
*** layouts
- name :: greenforrest
Modified: trunk/TROUBLESHOOT
===================================================================
--- trunk/TROUBLESHOOT 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/TROUBLESHOOT 2009-07-19 18:10:48 UTC (rev 1135)
@@ -1,24 +1,24 @@
=TROUBLESHOOTING=
-==Server debug==
+== Server debug ==
Server: debug with jetty in eclipse:
http://docs.codehaus.org/display/JETTY/Debugging+with+the+Maven+Jetty+Plugi…
-==Client debug==
+== Client debug ==
Client code: you can debug with gwt hosted mode in eclipse (see DEV-GUIDE for hosted mode instructions).
-==Firebug and client log levels==
+== Firebug and client log levels ==
To increase client logging add ?log_level=DEBUG# to the url and use firebug firefox extension to see the output.
-==Emite troubleshooting==
+== Emite troubleshooting ==
See:
http://code.google.com/p/emite/wiki/Troubleshooting
-==Liquibase==
+== Liquibase ==
=== Checksum errors ===
@@ -26,3 +26,23 @@
Don't try to update the liquibase changelogs you have already use. Better create new ones to delete, update, and so on. If you are developing and want to clear the checksums, you can use the command "clearCheckSums". See script/liquibase-* and http://www.liquibase.org/manual/command_line
+== Lucene ==
+
+=== Indexes problems during upgrades ===
+
+If you get errors like:
+
+org.ourproject.kune.platf.server.ServerException: Error starting persistence service
+(...)
+Caused by: org.hibernate.search.SearchException: Unable to open IndexWriter for class org.ourproject.kune.platf.server.domain.User
+(...)
+Caused by: org.apache.lucene.index.CorruptIndexException: Unknown format version: -7
+
+The indexes in /var/lib/kune/lucen/kune*/indexes/ are not compatible. For the moment the only workaround we now it's to delete the indexes.
+
+== JUnit ==
+
+Running all the Kune test from eclipse I get connection pool exceptions like:
+ Connections could not be acquired from the underlying database
+
+We have problems testing all test together from eclipse and using real db (not the h2 memory db)
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/pom.xml 2009-07-19 18:10:48 UTC (rev 1135)
@@ -12,7 +12,7 @@
<name>kune</name>
<url>http://kune.ourproject.org</url>
<properties>
- <gwtVersion>1.6.4</gwtVersion>
+ <gwtVersion>1.7.0</gwtVersion>
</properties>
<dependencies>
<!-- guice -->
@@ -66,7 +66,6 @@
<version>march-02-2009</version>
<scope>provided</scope>
</dependency>
-
<!--
<dependency> <groupId>com.extjs</groupId>
<artifactId>gxt</artifactId> <version>1.0-beta2</version>
@@ -90,12 +89,12 @@
<dependency>
<groupId>com.allen_sauer.gwt.log.gwt-log</groupId>
<artifactId>gwt-log</artifactId>
- <version>2.6.0</version>
+ <version>2.6.2</version>
</dependency>
<dependency>
<groupId>com.allen_sauer.gwt.voices.gwt-voices</groupId>
<artifactId>gwt-voices</artifactId>
- <version>1.5.5</version>
+ <version>1.6.0</version>
</dependency>
<!-- utilities -->
@@ -121,9 +120,9 @@
</dependency>
<dependency>
<groupId>org.xwiki.platform</groupId>
- <!-- https://yui-ext.com/forum/showthread.php?t=5762 -->
<artifactId>xwiki-web-gwt-dom</artifactId>
- <version>2.0-SNAPSHOT-g164</version>
+ <version>2.0-SNAPSHOT</version>
+ <!-- <version>2.0-SNAPSHOT-g164</version> -->
</dependency>
<!-- xmpp -->
@@ -159,27 +158,32 @@
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search</artifactId>
- <version>3.0.0.GA</version>
+ <version>3.1.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
- <version>3.2.5.ga</version>
+ <version>3.2.6.ga</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
- <version>3.3.0.ga</version>
+ <version>3.4.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>3.0.0.ga</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
- <version>3.3.1.ga</version>
+ <version>3.4.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-tools</artifactId>
- <version>3.2.0.beta9a</version>
+ <version>3.2.3.GA</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
@@ -196,6 +200,11 @@
<artifactId>warp-persist</artifactId>
<version>1.0.1</version>
</dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.5.2</version>
+ </dependency>
<!-- REST: xml and json (stax) -->
<dependency>
@@ -219,7 +228,6 @@
<version>2.1</version>
<classifier>jdk15</classifier>
</dependency>
-
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
@@ -249,7 +257,6 @@
</dependency>
<!-- db upgrades -->
-
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
@@ -273,7 +280,7 @@
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
- <artifactId>maven-jetty-plugin</artifactId>
+ <artifactId>maven-jetty-plugin</artifactId>
<!--
<artifactId>jetty-maven-plugin</artifactId>
<version>7.0.0.1beta0</version>
@@ -281,7 +288,6 @@
<version>6.1.5</version>
<scope>provided</scope>
</dependency>
-
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
@@ -323,7 +329,6 @@
<version>0.9.4</version>
</dependency>
</dependencies>
-
<!--
http://gwt-maven.googlecode.com/svn/docs/maven-googlewebtoolkit2-plugin/ind…
-->
@@ -343,7 +348,6 @@
</releases>
</pluginRepository>
</pluginRepositories>
-
<repositories>
<repository>
<id>Codehaus Snapshots</id>
@@ -487,15 +491,9 @@
<generatorRootClasses>
<value>org.ourproject.kune.MyBean</value>
</generatorRootClasses>
- <generatorDestinationPackage>
- org.ourproject.kune.app.Kune
- </generatorDestinationPackage>
- <generateGettersAndSetters>
- true
- </generateGettersAndSetters>
- <generatePropertyChangeSupport>
- true
- </generatePropertyChangeSupport>
+ <generatorDestinationPackage> org.ourproject.kune.app.Kune </generatorDestinationPackage>
+ <generateGettersAndSetters> true </generateGettersAndSetters>
+ <generatePropertyChangeSupport> true </generatePropertyChangeSupport>
</configuration>
<executions>
<execution>
@@ -525,11 +523,11 @@
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
- <artifactId>maven-jetty-plugin</artifactId>
- <version>6.1.5</version>
+ <artifactId>maven-jetty-plugin</artifactId>
+ <version>6.1.5</version>
<!--
- <artifactId>jetty-maven-plugin</artifactId>
- <version>7.0.0.1beta0</version>
+ <artifactId>jetty-maven-plugin</artifactId>
+ <version>7.0.0.1beta0</version>
-->
<configuration>
<contextPath>/</contextPath>
@@ -559,8 +557,7 @@
<phase>process-resources</phase>
<configuration>
<changeLogFile>
- src/main/resources/db/liquibase_changelog.xml
- </changeLogFile>
+ src/main/resources/db/liquibase_changelog.xml </changeLogFile>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost/kune_dev</url>
<username>kune</username>
@@ -603,12 +600,8 @@
<include>**/HorizontalLine.**</include>
<include>**/AbstractLabel.**</include>
<include>**/IconLabel.**</include>
- <include>
- **/EditableIconLabel.**
- </include>
- <include>
- **/EditableClickListener.**
- </include>
+ <include> **/EditableIconLabel.** </include>
+ <include> **/EditableClickListener.** </include>
<include>**/KuneStringUtils.**</include>
<include>**/IconHyperlink*.**</include>
<include>**/LabelWrapper*.**</include>
@@ -639,7 +632,6 @@
</execution>
</executions>
</plugin>
-
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
@@ -682,21 +674,12 @@
</executions>
</plugin>
<!--
- <plugin>
- <artifactId>maven-clean-plugin</artifactId>
- <version>2.2</version>
- <configuration>
- <filesets>
- <fileset>
- <directory>src/main/webapp/gwt/</directory>
- <includes>
- <include>**/org.ourproject.kune.app.Kune*</include>
- <followSymlinks>false</followSymlinks>
- </includes>
- </fileset>
- </filesets>
- </configuration>
- </plugin>
+ <plugin> <artifactId>maven-clean-plugin</artifactId>
+ <version>2.2</version> <configuration> <filesets> <fileset>
+ <directory>src/main/webapp/gwt/</directory> <includes>
+ <include>**/org.ourproject.kune.app.Kune*</include>
+ <followSymlinks>false</followSymlinks> </includes> </fileset>
+ </filesets> </configuration> </plugin>
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -736,7 +719,6 @@
</resource>
</resources>
</build>
-
<reporting>
<plugins>
<plugin>
@@ -764,12 +746,9 @@
<configuration>
<systemProperties>
<property>
- <name>
- net.sourceforge.cobertura.datafile
- </name>
+ <name> net.sourceforge.cobertura.datafile </name>
<value>
- ${project.reporting.directory}/cobertura/cobertura.ser
- </value>
+ ${project.reporting.directory}/cobertura/cobertura.ser </value>
</property>
</systemProperties>
<forkMode>pertest</forkMode>
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2009-07-19 18:10:48 UTC (rev 1135)
@@ -35,7 +35,7 @@
}
*/.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;overflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.kune-Content-Main blockquote{border:1px dashed #DDD;padding:10px;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
background-color: #FFF; */border:1px solid #4D4D4D;background-color:#FFF;margin:5px 0 5px 10px;}.gwt-RichTextToolbar{/* background-color: #F2F2F2;
- padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette-popup{z-index:9999!important;background-color:#FFF;border:1px solid gray;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:transparent none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:1px;color:#B3B3B3;background:transparent;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:transparent;border-left-width:5px;border-bottom-color:transparent;border-bottom-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-content{background:#FFF;}.k-entity-bottom div{/* line-height: 24px; */color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
+ padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette-popup{z-index:9999!important;background-color:#FFF;border:1px solid gray;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:transparent none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:1px;color:#B3B3B3;background:transparent;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:transparent;border-left-width:5px;border-bottom-color:transparent;border-bottom-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:5px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-content{background:#FFF;}.k-entity-bottom div{/* line-height: 24px; */color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
.x-tree-node a span, .x-dd-drag-ghost a span {
color:#000000;
padding: 1px 0px 1px 1px;
Modified: trunk/src/main/java/org/ourproject/kune/app/server/KuneContainerListener.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/server/KuneContainerListener.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/app/server/KuneContainerListener.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -30,50 +30,45 @@
import java.util.logging.Logger;
import org.apache.log4j.PropertyConfigurator;
-import org.ourproject.kune.docs.server.DocumentServerTool;
import org.ourproject.kune.platf.server.KunePersistenceService;
-import org.ourproject.kune.platf.server.tool.ServerToolRegistry;
import org.ourproject.kune.rack.ContainerListener;
import com.google.inject.Inject;
-class KuneContainerListener implements ContainerListener {
- KunePersistenceService persistenceService;
- ServerToolRegistry toolRegistry;
- DocumentServerTool documentTool;
- // @PMD:REVIEWED:LoggerIsNotStaticFinal: by vjrj on 21/05/09 16:55
- Logger logger;
+public class KuneContainerListener implements ContainerListener {
+ private final KunePersistenceService persistenceService;
+ private final Logger logger; // NOPMD by vjrj on 16/07/09 22:38
@Inject
- public KuneContainerListener(final KunePersistenceService persistenceService,
- final ServerToolRegistry toolRegistry, final DocumentServerTool documentTool, final Logger logger) {
+ public KuneContainerListener(final KunePersistenceService persistenceService, final Logger logger) {
this.persistenceService = persistenceService;
- this.toolRegistry = toolRegistry;
- this.documentTool = documentTool;
this.logger = logger;
}
+ public Logger getLogger() {
+ return logger;
+ }
+
public void start() {
configureLog4j();
logger.log(Level.INFO, "starting Kune...");
- toolRegistry.register(documentTool);
persistenceService.start();
logger.log(Level.INFO, "Kune server started");
}
public void stop() {
- logger.log(Level.INFO, "stoping Kune...");
- logger.log(Level.INFO, "Kune server stoped");
+ logger.log(Level.INFO, "stopping Kune...");
+ logger.log(Level.INFO, "Kune server stopped");
}
private void configureLog4j() {
try {
- Properties properties = new Properties();
- InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream(
+ final Properties properties = new Properties();
+ final InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream(
"log4j.dev.properties");
properties.load(input);
PropertyConfigurator.configure(properties);
- } catch (IOException e) {
+ } catch (final IOException e) {
e.printStackTrace();
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerModule.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerModule.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -23,12 +23,13 @@
public class ChatServerModule extends AbstractModule {
+ @Override
public void configure() {
// To debug Smack, descomment this
// XMPPConnection.DEBUG_ENABLED = true;
- // FIXME: Dani: check this please
bind(ChatServerTool.class).asEagerSingleton();
+
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerTool.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerTool.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -49,11 +49,11 @@
this.containerManager = containerManager;
}
- public void checkTypesBeforeContainerCreation(String parentTypeId, String typeId) {
+ public void checkTypesBeforeContainerCreation(final String parentTypeId, final String typeId) {
checkContainerTypeId(parentTypeId, typeId);
}
- public void checkTypesBeforeContentCreation(String parentTypeId, String typeId) {
+ public void checkTypesBeforeContentCreation(final String parentTypeId, final String typeId) {
if (!parentTypeId.equals(TYPE_ROOM)) {
throw new ContainerNotPermittedException();
}
@@ -85,7 +85,6 @@
}
public void onCreateContent(final Content content, final Container parent) {
-
}
@Inject
Modified: trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml 2009-07-19 18:10:48 UTC (rev 1135)
@@ -18,6 +18,7 @@
<when-type-is
class="org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl" />
<when-property-is name="user.agent" value="ie6" />
+ <when-property-is name="user.agent" value="ie8" />
</replace-with>
<!-- Mozilla-specific implementation -->
Modified: trunk/src/main/java/org/ourproject/kune/platf/RichText.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/RichText.gwt.xml 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/RichText.gwt.xml 2009-07-19 18:10:48 UTC (rev 1135)
@@ -24,6 +24,7 @@
<when-type-is
class="org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl" />
<when-property-is name="user.agent" value="ie6" />
+ <when-property-is name="user.agent" value="ie8" />
</replace-with>
<!-- Mozilla-specific implementation -->
Added: trunk/src/main/java/org/ourproject/kune/platf/client/errors/UnknownPropertyException.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/errors/UnknownPropertyException.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/errors/UnknownPropertyException.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,28 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.platf.client.errors;
+
+public class UnknownPropertyException extends DefaultException {
+ private static final long serialVersionUID = -5921396887476497824L;
+
+ public UnknownPropertyException(final String message) {
+ super(message);
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -59,6 +59,11 @@
import org.ourproject.kune.platf.server.manager.I18nLanguageManager;
import org.ourproject.kune.platf.server.manager.I18nTranslationManager;
import org.ourproject.kune.platf.server.manager.LicenseManager;
+import org.ourproject.kune.platf.server.manager.PropertiesManager;
+import org.ourproject.kune.platf.server.manager.PropertyGroupManager;
+import org.ourproject.kune.platf.server.manager.PropertyManager;
+import org.ourproject.kune.platf.server.manager.PropertySettedManager;
+import org.ourproject.kune.platf.server.manager.PropertySubgroupManager;
import org.ourproject.kune.platf.server.manager.RateManager;
import org.ourproject.kune.platf.server.manager.SocialNetworkManager;
import org.ourproject.kune.platf.server.manager.TagManager;
@@ -77,6 +82,11 @@
import org.ourproject.kune.platf.server.manager.impl.I18nLanguageManagerDefault;
import org.ourproject.kune.platf.server.manager.impl.I18nTranslationManagerDefault;
import org.ourproject.kune.platf.server.manager.impl.LicenseManagerDefault;
+import org.ourproject.kune.platf.server.manager.impl.PropertiesManagerDefault;
+import org.ourproject.kune.platf.server.manager.impl.PropertyGroupManagerDefault;
+import org.ourproject.kune.platf.server.manager.impl.PropertyManagerDefault;
+import org.ourproject.kune.platf.server.manager.impl.PropertySettedManagerDefault;
+import org.ourproject.kune.platf.server.manager.impl.PropertySubgroupManagerDefault;
import org.ourproject.kune.platf.server.manager.impl.RateManagerDefault;
import org.ourproject.kune.platf.server.manager.impl.SocialNetworkManagerDefault;
import org.ourproject.kune.platf.server.manager.impl.TagManagerDefault;
@@ -143,6 +153,11 @@
bind(CommentManager.class).to(CommentManagerDefault.class);
bind(FileManager.class).to(FileManagerDefault.class);
bind(ExtMediaDescripManager.class).to(ExtMediaDescripManagerDefault.class);
+ bind(PropertyManager.class).to(PropertyManagerDefault.class);
+ bind(PropertySettedManager.class).to(PropertySettedManagerDefault.class);
+ bind(PropertyGroupManager.class).to(PropertyGroupManagerDefault.class);
+ bind(PropertySubgroupManager.class).to(PropertySubgroupManagerDefault.class);
+ bind(PropertiesManager.class).to(PropertiesManagerDefault.class);
}
private void bindRPC() {
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -59,6 +59,7 @@
// see: http://docs.codehaus.org/display/PICO/Good+Citizen:
// Never expect or return null
public static final Group NO_GROUP = null;
+ public static final String PROPS_ID = "groupprops";
@Id
@DocumentId
Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Properties.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Properties.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Properties.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,79 @@
+package org.ourproject.kune.platf.server.domain;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.MapKey;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+import org.hibernate.validator.NotNull;
+
+/**
+ * Properties defined for some elements (identified by the group)
+ *
+ */
+@Entity
+@Table(name = "properties")
+public class Properties implements HasId {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ /**
+ * Every list of properties are from a unique PropertyGroup (like User
+ * properties, or Group properties)
+ *
+ */
+ @NotNull
+ @ManyToOne
+ private final PropertyGroup pgroup;
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @MapKey(name = "property")
+ // @Cascade( { org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
+ // @OnDelete(action = OnDeleteAction.CASCADE)
+ private Map<Property, PropertySetted> list;
+
+ public Properties() {
+ this(null);
+ }
+
+ public Properties(final PropertyGroup group) {
+ pgroup = group;
+ list = new HashMap<Property, PropertySetted>();
+ }
+
+ // @Finder(query =
+ // "SELECT p FROM Properties ps JOIN ps.list p WHERE p.property.name = :pname")
+ // public PropertySetted find(@Named("pname") final String key) {
+ // return null;
+ // }
+
+ public Long getId() {
+ return id;
+ }
+
+ public Map<Property, PropertySetted> getList() {
+ return list;
+ }
+
+ public PropertyGroup getPgroup() {
+ return pgroup;
+ }
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ public void setList(final Map<Property, PropertySetted> list) {
+ this.list = list;
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Property.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Property.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Property.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,215 @@
+package org.ourproject.kune.platf.server.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.Index;
+import org.hibernate.validator.NotNull;
+import org.hibernate.validator.Pattern;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+import com.google.inject.name.Named;
+import com.wideplay.warp.persist.dao.Finder;
+
+@Entity
+@Table(name = "property")
+// @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
+public class Property implements HasId {
+
+ public enum Type implements IsSerializable {
+ STRING, ENUM, BOOL, LIST, HIDDEN
+ }
+
+ @Id
+ @GeneratedValue
+ // (strategy = GenerationType.TABLE)
+ private Long id;
+
+ /**
+ * Required "symbolic" name of the user preference; displayed to the user
+ * during editing if no display_name is defined. Must contain only letters,
+ * number and underscores, i.e. the regular expression ^[a-zA-Z0-9_]+$. Must
+ * be unique.
+ **/
+ @Index(name = "propname")
+ @Column(unique = true)
+ @Pattern(regex = "^[a-zA-Z0-9_]+$", message = "The name can only contain Western characters, numbers, and dashes")
+ private String name;
+
+ /**
+ * Optional string to display alongside the user preferences in the edit
+ * window (in google gadgets must be unique).
+ **/
+ private String displayName;
+
+ /**
+ * Optional string that indicates the data type of this attribute. Can be
+ * string, bool, enum, hidden (final a string that is not visible or user
+ * editable), or list (final dynamic array generated from user input). The
+ * default is string.
+ **/
+ @Enumerated(EnumType.STRING)
+ @Column(nullable = false)
+ private Type datatype;
+
+ /**
+ * Optional boolean argument (true or false) indicating whether this user
+ * preference is required. The default is false.
+ **/
+ @Basic
+ private boolean required;
+
+ /**
+ * Optional string that indicates a user preference's default value.
+ **/
+ private String defaultValue;
+
+ /**
+ * Optional string list that indicates enum valid values.
+ **/
+ @Basic
+ private ArrayList<String> enumValues;
+
+ @NotNull
+ @ManyToOne
+ private PropertyGroup pgroup;
+
+ @NotNull
+ @ManyToOne
+ private PropertySubgroup sgroup;
+
+ public Property() {
+ this(null, null, Type.STRING, false, null, new ArrayList<String>(), null, null);
+ }
+
+ public Property(final Property prop) {
+ this.name = prop.getName();
+ this.required = prop.getRequired();
+ this.datatype = prop.getDatatype();
+ this.defaultValue = prop.getDefaultValue();
+ this.displayName = prop.getDisplayName();
+ this.enumValues = prop.getEnumValues();
+ this.pgroup = prop.getPgroup();
+ this.sgroup = prop.getSgroup();
+ }
+
+ public Property(final String name, final String displayName, final Type datatype, final boolean required,
+ final String defaultValue, final ArrayList<String> enumValues, final PropertyGroup pgroup,
+ final PropertySubgroup sgroup) {
+ this.name = name;
+ this.displayName = displayName;
+ this.datatype = datatype;
+ this.required = required;
+ this.defaultValue = defaultValue;
+ this.enumValues = enumValues;
+ this.pgroup = pgroup;
+ this.sgroup = sgroup;
+ }
+
+ public Property(final String name, final String displayName, final Type datatype, final boolean required,
+ final String defaultValue, final PropertyGroup pgroup, final PropertySubgroup sgroup) {
+ this(name, displayName, datatype, required, defaultValue, new ArrayList<String>(), pgroup, sgroup);
+ }
+
+ @Finder(query = "SELECT p FROM Property p JOIN p.pgroup g WHERE g = :pgroup")
+ public List<Property> find(@Named("pgroup") final PropertyGroup pGroup) {
+ return null;
+ }
+
+ @Finder(query = "SELECT p.name FROM Property p JOIN p.sgroup g WHERE g = :sgroup")
+ public List<String> find(@Named("sgroup") final PropertySubgroup sGroup) {
+ return null;
+ }
+
+ @Finder(query = "FROM Property p WHERE p.name = :name")
+ public Property find(@Named("name") final String name) {
+ return null;
+ }
+
+ @Finder(query = "FROM Property")
+ public List<Property> getAll() {
+ return null;
+ }
+
+ public Type getDatatype() {
+ return datatype;
+ }
+
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ public ArrayList<String> getEnumValues() {
+ return enumValues;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public PropertyGroup getPgroup() {
+ return pgroup;
+ }
+
+ public boolean getRequired() {
+ return required;
+ }
+
+ public PropertySubgroup getSgroup() {
+ return sgroup;
+ }
+
+ public void setDatatype(final Type datatype) {
+ this.datatype = datatype;
+ }
+
+ public void setDefaultValue(final String defaultValue) {
+ this.defaultValue = defaultValue;
+ }
+
+ public void setDisplayName(final String displayName) {
+ this.displayName = displayName;
+ }
+
+ public void setEnumValues(final ArrayList<String> enumValues) {
+ this.enumValues = enumValues;
+ }
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ public void setPgroup(final PropertyGroup pgroup) {
+ this.pgroup = pgroup;
+ }
+
+ public void setRequired(final boolean required) {
+ this.required = required;
+ }
+
+ public void setSgroup(final PropertySubgroup sgroup) {
+ this.sgroup = sgroup;
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertyGroup.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertyGroup.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertyGroup.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,92 @@
+package org.ourproject.kune.platf.server.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.OnDelete;
+import org.hibernate.annotations.OnDeleteAction;
+import org.hibernate.validator.NotNull;
+
+import com.google.inject.name.Named;
+import com.wideplay.warp.persist.dao.Finder;
+
+@Entity
+@Table(name = "property_group")
+public class PropertyGroup implements HasId {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ @OneToMany(mappedBy = "pgroup")
+ @OnDelete(action = OnDeleteAction.CASCADE)
+ private List<Property> propertyList;
+
+ @OneToMany(mappedBy = "pgroup")
+ @OnDelete(action = OnDeleteAction.CASCADE)
+ private List<Properties> propertiesList;
+
+ @NotNull
+ @Column(unique = true)
+ private String name;
+
+ public PropertyGroup() {
+ this(null);
+ }
+
+ public PropertyGroup(final String name) {
+ this.name = name;
+ propertyList = new ArrayList<Property>();
+ propertiesList = new ArrayList<Properties>();
+ }
+
+ @Finder(query = "FROM PropertyGroup pg WHERE pg.name = :groupname")
+ public PropertyGroup find(@Named("groupname") final String groupName) {
+ return null;
+ }
+
+ @Finder(query = "FROM PropertyGroup")
+ public List<PropertyGroup> getAll() {
+ return null;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public List<Properties> getPropertiesList() {
+ return propertiesList;
+ }
+
+ public List<Property> getPropertyList() {
+ return propertyList;
+ }
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ public void setPropertiesList(final List<Properties> propertiesList) {
+ this.propertiesList = propertiesList;
+ }
+
+ public void setPropertyList(final List<Property> propertyList) {
+ this.propertyList = propertyList;
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySetted.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySetted.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySetted.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,96 @@
+package org.ourproject.kune.platf.server.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+import org.hibernate.validator.NotNull;
+import org.ourproject.kune.platf.server.domain.Property.Type;
+
+import com.wideplay.warp.persist.dao.Finder;
+
+@Entity
+@Table(name = "property_setted")
+public class PropertySetted implements HasId {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ private String value;
+
+ @NotNull
+ @ManyToOne
+ private final Property property;
+
+ public PropertySetted() {
+ this(null, null);
+ }
+
+ public PropertySetted(final Property property, final String value) {
+ this.value = value;
+ this.property = property;
+ }
+
+ @Finder(query = "FROM PropertySetted")
+ public List<PropertySetted> getAll() {
+ return null;
+ }
+
+ public Type getDatatype() {
+ return property.getDatatype();
+ }
+
+ public String getDefaultValue() {
+ return property.getDefaultValue();
+ }
+
+ public String getDisplayName() {
+ return property.getDisplayName();
+ }
+
+ public ArrayList<String> getEnumValues() {
+ return property.getEnumValues();
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return property.getName();
+ }
+
+ public PropertyGroup getPgroup() {
+ return property.getPgroup();
+ }
+
+ public Property getProperty() {
+ return property;
+ }
+
+ public boolean getRequired() {
+ return property.getRequired();
+ }
+
+ public PropertySubgroup getSgroup() {
+ return property.getSgroup();
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ public void setValue(final String value) {
+ this.value = value;
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySubgroup.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySubgroup.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySubgroup.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,72 @@
+package org.ourproject.kune.platf.server.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.OnDelete;
+import org.hibernate.annotations.OnDeleteAction;
+import org.hibernate.validator.NotNull;
+
+import com.wideplay.warp.persist.dao.Finder;
+
+@Entity
+@Table(name = "property_subgroup")
+public class PropertySubgroup implements HasId {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ @NotNull
+ @Column(unique = true)
+ private String name;
+
+ @OneToMany(mappedBy = "sgroup")
+ @OnDelete(action = OnDeleteAction.CASCADE)
+ private List<Property> properties;
+
+ public PropertySubgroup() {
+ this.name = null;
+ this.properties = new ArrayList<Property>();
+ }
+
+ public PropertySubgroup(final String name) {
+ this.name = name;
+ }
+
+ @Finder(query = "FROM PropertySubgroup")
+ public List<PropertySubgroup> getAll() {
+ return null;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public List<Property> getProperties() {
+ return properties;
+ }
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ public void setProperties(final List<Property> properties) {
+ this.properties = properties;
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/User.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/User.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/User.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -33,6 +33,8 @@
import javax.persistence.Table;
import javax.persistence.Transient;
+import org.hibernate.annotations.OnDelete;
+import org.hibernate.annotations.OnDeleteAction;
import org.hibernate.search.annotations.DocumentId;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Index;
@@ -55,6 +57,7 @@
// see: http://docs.codehaus.org/display/PICO/Good+Citizen:
// Never expect or return null
public static final User UNKNOWN_USER = new User();
+ public static final String PROPS_ID = "userprops";
public static boolean isKnownUser(final User user) {
return !user.equals(UNKNOWN_USER);
@@ -111,12 +114,21 @@
@Basic
private Long lastLogin;
+ @OneToOne
+ @OnDelete(action = OnDeleteAction.CASCADE)
+ private Properties properties;
+
public User() {
- this(null, null, null, null, null, null, null);
+ this(null, null, null, null, null, null, null, null);
}
public User(final String shortName, final String longName, final String email, final String passwd,
final I18nLanguage language, final I18nCountry country, final TimeZone timezone) {
+ this(shortName, longName, email, passwd, language, country, timezone, null);
+ }
+
+ public User(final String shortName, final String longName, final String email, final String passwd,
+ final I18nLanguage language, final I18nCountry country, final TimeZone timezone, final Properties properties) {
this.shortName = shortName;
this.name = longName;
this.email = email;
@@ -129,6 +141,7 @@
buddiesVisibility = UserBuddiesVisibility.anyone;
this.createdOn = System.currentTimeMillis();
this.lastLogin = null;
+ this.properties = properties;
}
@Finder(query = "from User")
@@ -190,6 +203,10 @@
return password;
}
+ public Properties getProperties() {
+ return properties;
+ }
+
public String getShortName() {
return shortName;
}
@@ -246,6 +263,10 @@
// Use UnixCrypt (jetty)
}
+ public void setProperties(final Properties properties) {
+ this.properties = properties;
+ }
+
public void setShortName(final String shortName) {
this.shortName = shortName;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -1,5 +1,6 @@
package org.ourproject.kune.platf.server.init;
+import java.util.ArrayList;
import java.util.TimeZone;
import javax.persistence.NoResultException;
@@ -14,15 +15,22 @@
import org.ourproject.kune.platf.server.domain.I18nLanguage;
import org.ourproject.kune.platf.server.domain.I18nTranslation;
import org.ourproject.kune.platf.server.domain.License;
+import org.ourproject.kune.platf.server.domain.Property;
+import org.ourproject.kune.platf.server.domain.PropertyGroup;
+import org.ourproject.kune.platf.server.domain.PropertySubgroup;
import org.ourproject.kune.platf.server.domain.User;
import org.ourproject.kune.platf.server.manager.GroupManager;
import org.ourproject.kune.platf.server.manager.I18nCountryManager;
import org.ourproject.kune.platf.server.manager.I18nLanguageManager;
import org.ourproject.kune.platf.server.manager.I18nTranslationManager;
import org.ourproject.kune.platf.server.manager.LicenseManager;
+import org.ourproject.kune.platf.server.manager.PropertyGroupManager;
+import org.ourproject.kune.platf.server.manager.PropertyManager;
+import org.ourproject.kune.platf.server.manager.PropertySubgroupManager;
import org.ourproject.kune.platf.server.manager.UserManager;
import org.ourproject.kune.platf.server.properties.DatabaseProperties;
+import com.calclab.emiteuimodule.client.SubscriptionMode;
import com.google.inject.Inject;
import com.wideplay.warp.persist.TransactionType;
import com.wideplay.warp.persist.Transactional;
@@ -36,12 +44,17 @@
private final I18nCountryManager countryManager;
private final I18nTranslationManager translationManager;
private final ContentManager contentManager;
+ private final PropertyManager propertyManager;
+ private final PropertyGroupManager propGroupManager;
+ private final PropertySubgroupManager propSubgroupManager;
@Inject
public DatabaseInitializer(final DatabaseProperties properties, final UserManager userManager,
final GroupManager groupManager, final LicenseManager licenseManager,
final I18nLanguageManager languageManager, final I18nCountryManager countryManager,
- final I18nTranslationManager translationManager, final ContentManager contentManager) {
+ final I18nTranslationManager translationManager, final ContentManager contentManager,
+ final PropertyManager propertyManager, final PropertyGroupManager propGroupManager,
+ final PropertySubgroupManager propSubgroupManager) {
this.properties = properties;
this.userManager = userManager;
this.groupManager = groupManager;
@@ -50,6 +63,9 @@
this.countryManager = countryManager;
this.translationManager = translationManager;
this.contentManager = contentManager;
+ this.propertyManager = propertyManager;
+ this.propGroupManager = propGroupManager;
+ this.propSubgroupManager = propSubgroupManager;
}
public void createOthers() {
@@ -78,6 +94,7 @@
public void initDatabase() throws Exception {
createOthers();
createLicenses();
+ createProperties();
createDefUsersGroup();
}
@@ -180,4 +197,27 @@
"http://www.gnu.org/licenses/gpl.html", false, true, false, "", "images/lic/gnu-gpl.gif");
licenseManager.persist(license);
}
+
+ private void createProperties() {
+ final PropertyGroup groupProps = new PropertyGroup(Group.PROPS_ID);
+ final PropertyGroup userProps = new PropertyGroup(User.PROPS_ID);
+ propGroupManager.persist(userProps);
+ propGroupManager.persist(groupProps);
+ final PropertySubgroup userXmppProps = new PropertySubgroup("user-xmpp");
+ propSubgroupManager.persist(userXmppProps);
+
+ final Property colorProp = new Property("xmpp_color", "Choose your color", Property.Type.STRING, true, "blue",
+ userProps, userXmppProps);
+ final ArrayList<String> subValues = new ArrayList<String>();
+ subValues.add(SubscriptionMode.autoAcceptAll.toString());
+ subValues.add(SubscriptionMode.autoRejectAll.toString());
+ subValues.add(SubscriptionMode.manual.toString());
+ final Property subProp = new Property("xmpp_subcriptionmode", "New buddies options", Property.Type.ENUM, true,
+ SubscriptionMode.manual.toString(), subValues, userProps, userXmppProps);
+ final Property unanavProp = new Property("xmpp_unanavailableitemsvisible", "Show unavailable buddies",
+ Property.Type.BOOL, true, Boolean.toString(true), userProps, userXmppProps);
+ propertyManager.persist(colorProp);
+ propertyManager.persist(subProp);
+ propertyManager.persist(unanavProp);
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/Manager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/Manager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/Manager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -24,6 +24,8 @@
public interface Manager<T, X> {
+ void clear();
+
T find(X id);
T merge(T entity);
@@ -32,6 +34,8 @@
void reIndex();
+ void remove(T entity);
+
SearchResult<T> search(final String query, final String[] fields, final BooleanClause.Occur[] flags,
final Integer firstResult, final Integer maxResults);
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertiesManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertiesManager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertiesManager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,16 @@
+package org.ourproject.kune.platf.server.manager;
+
+import java.util.HashMap;
+
+import org.ourproject.kune.platf.server.domain.Properties;
+import org.ourproject.kune.platf.server.domain.PropertySetted;
+
+public interface PropertiesManager extends Manager<Properties, Long> {
+
+ HashMap<String, PropertySetted> get(Properties properties);
+
+ PropertySetted get(Properties properties, String key);
+
+ void set(Properties properties, String key, String value);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyGroupManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyGroupManager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyGroupManager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,9 @@
+package org.ourproject.kune.platf.server.manager;
+
+import org.ourproject.kune.platf.server.domain.PropertyGroup;
+
+public interface PropertyGroupManager extends Manager<PropertyGroup, Long> {
+
+ PropertyGroup find(String groupName);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyManager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyManager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,7 @@
+package org.ourproject.kune.platf.server.manager;
+
+import org.ourproject.kune.platf.server.domain.Property;
+
+public interface PropertyManager extends Manager<Property, Long> {
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySettedManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySettedManager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySettedManager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,7 @@
+package org.ourproject.kune.platf.server.manager;
+
+import org.ourproject.kune.platf.server.domain.PropertySetted;
+
+public interface PropertySettedManager extends Manager<PropertySetted, Long> {
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySubgroupManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySubgroupManager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySubgroupManager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,7 @@
+package org.ourproject.kune.platf.server.manager;
+
+import org.ourproject.kune.platf.server.domain.PropertySubgroup;
+
+public interface PropertySubgroupManager extends Manager<PropertySubgroup, Long> {
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -49,10 +49,10 @@
private static final long serialVersionUID = -4281058427935636238L;
@Inject
- GroupManager groupManager;
+ transient GroupManager groupManager;
@Inject
- I18nTranslationService i18n;
+ transient I18nTranslationService i18n;
@Override
protected void beforePostStart() {
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/DefaultManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/DefaultManager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/DefaultManager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -47,6 +47,10 @@
log = LogFactory.getLog(entityClass);
}
+ public void clear() {
+ getEntityManager().clear();
+ }
+
public T find(final Long primaryKey) {
return getEntityManager().find(entityClass, primaryKey);
}
@@ -83,6 +87,10 @@
fullTextEm.getSearchFactory().optimize(entityClass);
}
+ public void remove(final T entity) {
+ getEntityManager().remove(entity);
+ }
+
public SearchResult<T> search(final Query query) {
return search(query, null, null);
}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertiesManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertiesManagerDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertiesManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,86 @@
+package org.ourproject.kune.platf.server.manager.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+
+import org.ourproject.kune.platf.client.errors.UnknownPropertyException;
+import org.ourproject.kune.platf.server.domain.Properties;
+import org.ourproject.kune.platf.server.domain.Property;
+import org.ourproject.kune.platf.server.domain.PropertySetted;
+import org.ourproject.kune.platf.server.manager.PropertiesManager;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+@Singleton
+public class PropertiesManagerDefault extends DefaultManager<Properties, Long> implements PropertiesManager {
+
+ private final Property propFinder;
+ private final Properties propsFinder;
+
+ @Inject
+ public PropertiesManagerDefault(final Provider<EntityManager> provider, final Property propFinder,
+ final Properties propsFinder) {
+ super(provider, Properties.class);
+ this.propFinder = propFinder;
+ this.propsFinder = propsFinder;
+ }
+
+ public HashMap<String, PropertySetted> get(final Properties properties) {
+ final List<Property> defProperties = propFinder.find(properties.getPgroup());
+ final Map<Property, PropertySetted> propSetted = properties.getList();
+ final HashMap<String, PropertySetted> result = new HashMap<String, PropertySetted>();
+ for (final Property prop : defProperties) {
+ final PropertySetted setted = propSetted.get(prop);
+ if (setted == null) {
+ result.put(prop.getName(), createPropSettedFromDefault(prop));
+ } else {
+ result.put(prop.getName(), setted);
+ }
+ }
+ return result;
+ }
+
+ public PropertySetted get(final Properties properties, final String key) {
+ final Property prop = getDefProp(key);
+ PropertySetted propSet = properties.getList().get(prop);
+ if (propSet == null) {
+ propSet = createPropSettedFromDefault(prop);
+ }
+ return propSet;
+ }
+
+ public void set(final Properties properties, final String key, final String value) {
+ final PropertySetted propertySetted = get(properties, key);
+ propertySetted.setValue(value);
+ if (properties.getList().get(getDefProp(key)) == null) {
+ properties.getList().put(propertySetted.getProperty(), propertySetted);
+ }
+ persist(properties);
+ }
+
+ private PropertySetted createPropSettedFromDefault(final Property prop) {
+ return new PropertySetted(prop, prop.getDefaultValue());
+ }
+
+ private Property getDefProp(final String key) {
+ final Property prop = propFinder.find(key);
+ if (prop == null) {
+ throw new UnknownPropertyException("Unknown property: " + key);
+ }
+ return prop;
+ }
+
+ // @Override
+ // public void remove(final Properties properties) {
+ // for (final Entry<Property, PropertySetted> prop :
+ // properties.getList().entrySet()) {
+ // }
+ // super.remove(properties);
+ // }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyGroupManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyGroupManagerDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyGroupManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,40 @@
+package org.ourproject.kune.platf.server.manager.impl;
+
+import javax.persistence.EntityManager;
+
+import org.ourproject.kune.platf.server.domain.Properties;
+import org.ourproject.kune.platf.server.domain.PropertyGroup;
+import org.ourproject.kune.platf.server.manager.PropertiesManager;
+import org.ourproject.kune.platf.server.manager.PropertyGroupManager;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+@Singleton
+public class PropertyGroupManagerDefault extends DefaultManager<PropertyGroup, Long> implements PropertyGroupManager {
+
+ private final PropertyGroup finder;
+ private final PropertiesManager propertiesManager;
+
+ @Inject
+ public PropertyGroupManagerDefault(final Provider<EntityManager> provider, final PropertyGroup finder,
+ final PropertiesManager propertiesManager) {
+ super(provider, PropertyGroup.class);
+ this.finder = finder;
+ this.propertiesManager = propertiesManager;
+ }
+
+ public PropertyGroup find(final String groupName) {
+ return finder.find(groupName);
+ }
+
+ @Override
+ public void remove(final PropertyGroup pGroup) {
+ for (final Properties properties : pGroup.getPropertiesList()) {
+ propertiesManager.remove(properties);
+ }
+ super.remove(pGroup);
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyManagerDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,20 @@
+package org.ourproject.kune.platf.server.manager.impl;
+
+import javax.persistence.EntityManager;
+
+import org.ourproject.kune.platf.server.domain.Property;
+import org.ourproject.kune.platf.server.manager.PropertyManager;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+@Singleton
+public class PropertyManagerDefault extends DefaultManager<Property, Long> implements PropertyManager {
+
+ @Inject
+ public PropertyManagerDefault(final Provider<EntityManager> provider) {
+ super(provider, Property.class);
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,20 @@
+package org.ourproject.kune.platf.server.manager.impl;
+
+import javax.persistence.EntityManager;
+
+import org.ourproject.kune.platf.server.domain.PropertySetted;
+import org.ourproject.kune.platf.server.manager.PropertySettedManager;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+@Singleton
+public class PropertySettedManagerDefault extends DefaultManager<PropertySetted, Long> implements PropertySettedManager {
+
+ @Inject
+ public PropertySettedManagerDefault(final Provider<EntityManager> provider) {
+ super(provider, PropertySetted.class);
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySubgroupManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySubgroupManagerDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySubgroupManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,21 @@
+package org.ourproject.kune.platf.server.manager.impl;
+
+import javax.persistence.EntityManager;
+
+import org.ourproject.kune.platf.server.domain.PropertySubgroup;
+import org.ourproject.kune.platf.server.manager.PropertySubgroupManager;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+@Singleton
+public class PropertySubgroupManagerDefault extends DefaultManager<PropertySubgroup, Long> implements
+ PropertySubgroupManager {
+
+ @Inject
+ public PropertySubgroupManagerDefault(final Provider<EntityManager> provider) {
+ super(provider, PropertySubgroup.class);
+ }
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -38,9 +38,12 @@
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.server.domain.I18nCountry;
import org.ourproject.kune.platf.server.domain.I18nLanguage;
+import org.ourproject.kune.platf.server.domain.Properties;
+import org.ourproject.kune.platf.server.domain.PropertyGroup;
import org.ourproject.kune.platf.server.domain.User;
import org.ourproject.kune.platf.server.manager.I18nCountryManager;
import org.ourproject.kune.platf.server.manager.I18nLanguageManager;
+import org.ourproject.kune.platf.server.manager.PropertyGroupManager;
import org.ourproject.kune.platf.server.manager.UserManager;
import org.ourproject.kune.platf.server.properties.ChatProperties;
import org.ourproject.kune.platf.server.sn.UserBuddiesData;
@@ -57,11 +60,14 @@
private final XmppManager xmppManager;
private final ChatProperties properties;
private final I18nTranslationService i18n;
+ private final PropertyGroupManager propGroupManager;
+ private PropertyGroup userPropGroup;
@Inject
public UserManagerDefault(final Provider<EntityManager> provider, final User finder,
final I18nLanguageManager languageManager, final I18nCountryManager countryManager,
- final XmppManager xmppManager, final ChatProperties properties, final I18nTranslationService i18n) {
+ final XmppManager xmppManager, final ChatProperties properties, final I18nTranslationService i18n,
+ final PropertyGroupManager propGroupManager) {
super(provider, User.class);
this.finder = finder;
this.languageManager = languageManager;
@@ -69,17 +75,22 @@
this.xmppManager = xmppManager;
this.properties = properties;
this.i18n = i18n;
+ this.propGroupManager = propGroupManager;
}
public User createUser(final String shortName, final String longName, final String email, final String passwd,
final String langCode, final String countryCode, final String timezone) throws I18nNotFoundException {
try {
- I18nLanguage language = languageManager.findByCode(langCode);
- I18nCountry country = countryManager.findByCode(countryCode);
- TimeZone tz = TimeZone.getTimeZone(timezone);
- User user = new User(shortName, longName, email, passwd, language, country, tz);
+ final I18nLanguage language = languageManager.findByCode(langCode);
+ final I18nCountry country = countryManager.findByCode(countryCode);
+ final TimeZone tz = TimeZone.getTimeZone(timezone);
+ if (userPropGroup == null) {
+ userPropGroup = propGroupManager.find(User.PROPS_ID);
+ }
+ final User user = new User(shortName, longName, email, passwd, language, country, tz, new Properties(
+ userPropGroup));
return user;
- } catch (NoResultException e) {
+ } catch (final NoResultException e) {
throw new I18nNotFoundException();
}
}
@@ -108,21 +119,21 @@
// independent.
// In the future cache this.
final String domain = "@" + properties.getDomain();
- UserBuddiesData buddiesData = new UserBuddiesData();
- User user = finder.getByShortName(shortName);
- ChatConnection connection = xmppManager.login(user.getShortName() + domain, user.getPassword(), "kserver");
- Collection<RosterEntry> roster = xmppManager.getRoster(connection);
+ final UserBuddiesData buddiesData = new UserBuddiesData();
+ final User user = finder.getByShortName(shortName);
+ final ChatConnection connection = xmppManager.login(user.getShortName() + domain, user.getPassword(), "kserver");
+ final Collection<RosterEntry> roster = xmppManager.getRoster(connection);
xmppManager.disconnect(connection);
- for (RosterEntry entry : roster) {
+ for (final RosterEntry entry : roster) {
if (entry.getType().equals(ItemType.both)) {
// only show buddies with subscription 'both'
- int index = entry.getUser().indexOf(domain);
+ final int index = entry.getUser().indexOf(domain);
if (index > 0) {
// local user
try {
- User buddie = finder.getByShortName(entry.getUser().substring(0, index));
+ final User buddie = finder.getByShortName(entry.getUser().substring(0, index));
buddiesData.getBuddies().add(buddie);
- } catch (NoResultException e) {
+ } catch (final NoResultException e) {
// No existent buddie, skip
}
} else {
@@ -138,10 +149,10 @@
User user;
try {
user = finder.getByShortName(nickOrEmail);
- } catch (NoResultException e) {
+ } catch (final NoResultException e) {
try {
user = finder.getByEmail(nickOrEmail);
- } catch (NoResultException e2) {
+ } catch (final NoResultException e2) {
return null;
}
}
@@ -166,12 +177,12 @@
}
public SearchResult<User> search(final String search, final Integer firstResult, final Integer maxResults) {
- MultiFieldQueryParser parser = new MultiFieldQueryParser(new String[] { "name", "shortName" },
+ final MultiFieldQueryParser parser = new MultiFieldQueryParser(new String[] { "name", "shortName" },
new StandardAnalyzer());
Query query;
try {
query = parser.parse(search);
- } catch (ParseException e) {
+ } catch (final ParseException e) {
throw new ServerManagerException("Error parsing search", e);
}
return super.search(query, firstResult, maxResults);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -35,7 +35,7 @@
public class SiteOptionsPresenter extends AbstractActionExtensiblePresenter implements SiteOptions {
private SiteOptionsView view;
- private MenuDescriptor menuDescriptor;
+ private final MenuDescriptor menuDescriptor;
private final I18nTranslationService i18n;
private final ImgResources img;
@@ -43,6 +43,8 @@
super();
this.i18n = i18n;
this.img = img;
+ menuDescriptor = new MenuDescriptor();
+ menuDescriptor.setStandalone(true);
}
@Override
@@ -61,8 +63,6 @@
}
private void createActions() {
- menuDescriptor = new MenuDescriptor();
- menuDescriptor.setStandalone(true);
view.addAction(menuDescriptor);
view.setMenu(menuDescriptor);
final MenuSeparatorDescriptor sep = new MenuSeparatorDescriptor(menuDescriptor);
Modified: trunk/src/main/resources/META-INF/persistence.xml
===================================================================
--- trunk/src/main/resources/META-INF/persistence.xml 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/resources/META-INF/persistence.xml 2009-07-19 18:10:48 UTC (rev 1135)
@@ -14,7 +14,7 @@
<property name="hibernate.format_sql" value="false" />
<property name="use_sql_comments" value="true" />
<property name="hibernate.dialect"
- value="org.hibernate.dialect.MySQL5Dialect" />
+ value="org.hibernate.dialect.MySQLInnoDBDialect" />
<property name="hibernate.connection.driver_class"
value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url"
@@ -22,10 +22,11 @@
<property name="hibernate.connection.username" value="kune" />
<property name="hibernate.connection.password" value="db4kune" />
<property name="hibernate.hbm2ddl.auto" value="update" />
+ <!-- https://www.hibernate.org/214.html -->
<property name="hibernate.c3p0.min_size" value="5" />
- <property name="hibernate.c3p0.max_size" value="20" />
- <property name="hibernate.c3p0.timeout" value="300" />
- <property name="hibernate.c3p0.max_statements" value="50" />
+ <property name="hibernate.c3p0.max_size" value="50" />
+ <property name="hibernate.c3p0.timeout" value="100" />
+ <property name="hibernate.c3p0.max_statements" value="0" />
<property name="hibernate.c3p0.idle_test_period" value="3000" />
<property name="hibernate.search.default.directory_provider"
value="org.hibernate.search.store.FSDirectoryProvider" />
@@ -43,7 +44,7 @@
<property name="hibernate.format_sql" value="false" />
<property name="use_sql_comments" value="false" />
<property name="hibernate.dialect"
- value="org.hibernate.dialect.MySQL5Dialect" />
+ value="org.hibernate.dialect.MySQLInnoDBDialect" />
<property name="hibernate.connection.driver_class"
value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url"
@@ -52,9 +53,9 @@
<property name="hibernate.connection.password" value="db4kune" />
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="hibernate.c3p0.min_size" value="5" />
- <property name="hibernate.c3p0.max_size" value="20" />
- <property name="hibernate.c3p0.timeout" value="300" />
- <property name="hibernate.c3p0.max_statements" value="50" />
+ <property name="hibernate.c3p0.max_size" value="50" />
+ <property name="hibernate.c3p0.timeout" value="100" />
+ <property name="hibernate.c3p0.max_statements" value="0" />
<property name="hibernate.c3p0.idle_test_period" value="3000" />
<property name="hibernate.search.default.directory_provider"
value="org.hibernate.search.store.FSDirectoryProvider" />
Modified: trunk/src/test/java/org/ourproject/kune/platf/client/actions/KeyStrokeTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/actions/KeyStrokeTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/actions/KeyStrokeTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -14,7 +14,7 @@
@Test
public void altS() {
- final KeyStroke key = KeyStroke.getKeyStroke('S', Keyboard.MODIFIER_ALT);
+ final KeyStroke key = KeyStroke.getKeyStroke(Character.valueOf('S'), Keyboard.MODIFIER_ALT);
assertEquals(" (Alt+S)", key.toString());
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/client/ui/rte/saving/RTESavingEditorPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/ui/rte/saving/RTESavingEditorPresenterTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/ui/rte/saving/RTESavingEditorPresenterTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -41,6 +41,8 @@
final ImageResource img = Mockito.mock(ImageResource.class);
Mockito.when(img.getName()).thenReturn("save");
Mockito.when(imgResources.save()).thenReturn(img);
+ Mockito.when(imgResources.fontheight()).thenReturn(img);
+ Mockito.when(imgResources.charfontname()).thenReturn(img);
timer = Mockito.mock(TimerWrapper.class);
view = Mockito.mock(RTESavingEditorView.class);
@@ -95,7 +97,6 @@
@Test
public void initialEditWithEditionAndSave() {
presenter.edit("Text to edit", saveListener, cancelListener);
- final String textModified = "Text modified";
presenter.onEdit();
presenter.onDoSave();
presenter.onSavedSuccessful();
@@ -106,7 +107,6 @@
@Test
public void testSavePendingAndCancel() {
presenter.edit("Text to edit", saveListener, cancelListener);
- final String textModified = "Text modified";
presenter.onEdit();
presenter.onCancel();
presenter.onCancelConfirmed();
@@ -117,7 +117,6 @@
@Test
public void testSavePendingAndSaveFails() {
presenter.edit("Text to edit", saveListener, cancelListener);
- final String textModified = "Text modified";
presenter.onEdit();
presenter.onDoSave();
presenter.onSaveFailed();
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -23,6 +23,7 @@
import org.ourproject.kune.platf.server.manager.LicenseManager;
import com.google.inject.Inject;
+import com.wideplay.warp.persist.Transactional;
public class DatabaseInitializationTest {
@Inject
@@ -52,12 +53,13 @@
*/
@Test
public void caseSensitive() {
- Content defaultContent = defaultGroup.getDefaultContent();
+ final Content defaultContent = defaultGroup.getDefaultContent();
assertTrue(contentManager.findIfExistsTitle(defaultContent.getContainer(), "Welcome to kune demo"));
assertTrue(!contentManager.findIfExistsTitle(defaultContent.getContainer(), "welcome to kune Demo"));
assertTrue(!contentManager.findIfExistsTitle(defaultContent.getContainer(), "Welcome to kune demo "));
}
+ @Transactional
@Before
public void init() {
new IntegrationTestHelper(this);
@@ -95,7 +97,7 @@
final ToolConfiguration chatToolConfig = defaultGroup.getToolConfiguration(ChatServerTool.NAME);
assertNotNull(chatToolConfig);
assertTrue(chatToolConfig.isEnabled());
- List<String> enabledTools = groupManager.findEnabledTools(defaultGroup.getId());
+ final List<String> enabledTools = groupManager.findEnabledTools(defaultGroup.getId());
assertNotNull(enabledTools);
assertTrue(enabledTools.size() > 0);
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -14,6 +14,7 @@
import org.ourproject.kune.platf.server.manager.SocialNetworkManager;
import com.google.inject.Inject;
+import com.wideplay.warp.persist.Transactional;
public class SocialNetworkMembersTest extends IntegrationTest {
@Inject
@@ -25,6 +26,7 @@
private Group group;
+ @Transactional
@Before
public void init() {
new IntegrationTestHelper(this);
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -9,6 +9,7 @@
import com.google.inject.Injector;
import com.google.inject.Provider;
import com.wideplay.warp.persist.PersistenceService;
+import com.wideplay.warp.persist.Transactional;
public abstract class PersistenceTest {
@Inject
@@ -48,6 +49,7 @@
}
}
+ @Transactional
@Before
public void prepare() {
final Injector injector = TestHelper.create(new PlatformServerModule(), persistenceUnit, propetiesFileName);
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -13,12 +13,15 @@
import org.ourproject.kune.platf.integration.IntegrationTestHelper;
import org.ourproject.kune.platf.server.access.AccessRol;
+import com.wideplay.warp.persist.Transactional;
+
public class AuthorizatedMethodInterceptorTest extends IntegrationTest {
private AuthorizatedMethodInterceptor auth;
private MethodInvocation invocation;
private Authorizated authAnnotation;
+ @Transactional
@Before
public void before() {
auth = new AuthorizatedMethodInterceptor();
Added: trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefaultTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefaultTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,172 @@
+package org.ourproject.kune.platf.server.manager.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.HashMap;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.ourproject.kune.platf.server.PersistenceTest;
+import org.ourproject.kune.platf.server.domain.Properties;
+import org.ourproject.kune.platf.server.domain.Property;
+import org.ourproject.kune.platf.server.domain.PropertyGroup;
+import org.ourproject.kune.platf.server.domain.PropertySetted;
+import org.ourproject.kune.platf.server.domain.PropertySubgroup;
+import org.ourproject.kune.platf.server.manager.PropertiesManager;
+import org.ourproject.kune.platf.server.manager.PropertyGroupManager;
+import org.ourproject.kune.platf.server.manager.PropertyManager;
+import org.ourproject.kune.platf.server.manager.PropertySubgroupManager;
+
+import com.google.inject.Inject;
+
+public class PropertySettedManagerDefaultTest extends PersistenceTest {
+
+ private static final String NAME1 = "name1";
+ private static final String DISPLAYNAME1 = "display test name 1";
+ private static final String DEFVALUE1 = "def value 1";
+ private static final String NAME2 = "name2";
+ private static final String DISPLAYNAME2 = "display test name 2";
+ private static final String DEFVALUE2 = "def value 2";
+ private static final String NAME3 = "name3";
+ private static final String DISPLAYNAME3 = "display test name 3";
+ private static final String DEFVALUE3 = "def value 3";
+ private static final String SOME_NEW_VALUE = "some new value";
+ private static final String SOME_OTHER_NEW_VALUE = "some new value";
+
+ @Inject
+ PropertyManager propertyManager;
+
+ @Inject
+ PropertiesManager propertiesManager;
+
+ @Inject
+ PropertyGroupManager propGroupManager;
+
+ @Inject
+ PropertySubgroupManager propSubgroupManager;
+
+ @Inject
+ Property propFinder;
+
+ @Inject
+ PropertySetted propSettedFinder;
+
+ @Inject
+ PropertyGroup propGroupFinder;
+
+ @Inject
+ PropertySubgroup propSubgroupFinder;
+
+ private Property prop1;
+ private Property prop2;
+ private Property prop3;
+ private PropertyGroup somegroup;
+ private PropertySubgroup somesubgroup;
+ private PropertyGroup othergroup;
+
+ @Before
+ public void before() {
+ openTransaction();
+ somegroup = new PropertyGroup("somegroup");
+ othergroup = new PropertyGroup("othergroup");
+ somesubgroup = new PropertySubgroup("somesubgroup");
+ propGroupManager.persist(somegroup);
+ propGroupManager.persist(othergroup);
+ propSubgroupManager.persist(somesubgroup);
+ prop1 = new Property(NAME1, DISPLAYNAME1, Property.Type.STRING, true, DEFVALUE1, somegroup, somesubgroup);
+ prop2 = new Property(NAME2, DISPLAYNAME2, Property.Type.STRING, false, DEFVALUE2, somegroup, somesubgroup);
+ prop3 = new Property(NAME3, DISPLAYNAME3, Property.Type.STRING, false, DEFVALUE3, somegroup, somesubgroup);
+ propertyManager.persist(prop1);
+ propertyManager.persist(prop2);
+ propertyManager.persist(prop3);
+ assertEquals(3, propFinder.getAll().size());
+ }
+
+ @After
+ public void close() {
+ if (getTransaction().isActive()) {
+ rollbackTransaction();
+ }
+ }
+
+ @Test
+ public void setProperty() {
+ final Properties prop = new Properties(somegroup);
+ assertEquals(DEFVALUE1, propertiesManager.get(prop, NAME1).getValue());
+ assertEquals(0, prop.getList().size());
+ propertiesManager.set(prop, NAME1, SOME_NEW_VALUE);
+ assertNotNull(prop.getId());
+ assertEquals(1, prop.getList().size());
+ assertEquals(SOME_NEW_VALUE, propertiesManager.get(prop, NAME1).getValue());
+ propertiesManager.set(prop, NAME1, SOME_OTHER_NEW_VALUE);
+ assertEquals(1, prop.getList().size());
+ assertEquals(SOME_OTHER_NEW_VALUE, propertiesManager.get(prop, NAME1).getValue());
+ }
+
+ @Test
+ public void setTwoProps() {
+ final Properties prop1 = new Properties(somegroup);
+ final Properties prop2 = new Properties(somegroup);
+ propertiesManager.persist(prop1);
+ propertiesManager.persist(prop2);
+ propertiesManager.set(prop1, NAME1, SOME_NEW_VALUE);
+ propertiesManager.set(prop2, NAME1, SOME_OTHER_NEW_VALUE);
+ assertEquals(2, propSettedFinder.getAll().size());
+ assertEquals(SOME_NEW_VALUE, propertiesManager.get(prop1, NAME1).getValue());
+ assertEquals(SOME_OTHER_NEW_VALUE, propertiesManager.get(prop2, NAME1).getValue());
+ }
+
+ @Test
+ public void testGroupFinder() {
+ assertEquals(3, propFinder.find(somegroup).size());
+ assertEquals(0, propFinder.find(othergroup).size());
+ assertEquals(3, propFinder.find(somesubgroup).size());
+ }
+
+ @Test
+ public void testGroupRemove() {
+ final Properties prop = new Properties(somegroup);
+ propertiesManager.set(prop, NAME1, SOME_NEW_VALUE);
+ assertEquals(1, propSettedFinder.getAll().size());
+
+ assertNotNull(somegroup.getId());
+ propGroupManager.remove(somegroup);
+ closeTransaction();
+ assertEquals(0, propFinder.getAll().size());
+ assertEquals(0, propFinder.find(somegroup).size());
+ assertEquals(1, propGroupFinder.getAll().size());
+ assertEquals(0, propSettedFinder.getAll().size());
+ }
+
+ @Test
+ public void testPropertiesRemove() {
+ final Properties prop = new Properties(somegroup);
+ propertiesManager.set(prop, NAME1, SOME_NEW_VALUE);
+ assertEquals(1, propSettedFinder.getAll().size());
+ propertiesManager.remove(prop);
+ closeTransaction();
+ assertEquals(0, propSettedFinder.getAll().size());
+ }
+
+ @Test
+ public void testPropertyGet() {
+ final Properties prop = new Properties(somegroup);
+ propertiesManager.set(prop, NAME1, SOME_NEW_VALUE);
+ final HashMap<String, PropertySetted> result = propertiesManager.get(prop);
+ assertEquals(3, result.size());
+ assertEquals(SOME_NEW_VALUE, result.get(NAME1).getValue());
+ }
+
+ @Test
+ public void testSubgroupRemove() {
+ assertNotNull(somesubgroup.getId());
+ propSubgroupManager.remove(somesubgroup);
+ closeTransaction();
+ assertEquals(0, propFinder.getAll().size());
+ assertEquals(2, propGroupFinder.getAll().size());
+ assertEquals(0, propSubgroupFinder.getAll().size());
+ }
+
+}
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -21,6 +21,7 @@
import org.ourproject.kune.testhelper.ctx.DomainContext;
import com.google.inject.Inject;
+import com.wideplay.warp.persist.Transactional;
public class SocialNetworkManagerTest extends PersistenceTest {
@Inject
@@ -163,6 +164,7 @@
socialNetworkManager.requestToJoin(user, group);
}
+ @Transactional
@Before
public void init() {
openTransaction();
Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -11,7 +11,6 @@
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.search.SiteSearcher;
-import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import com.calclab.suco.client.ioc.Provider;
@@ -25,7 +24,6 @@
public void before() {
final Session session = Mockito.mock(Session.class);
final StateManager stateManager = Mockito.mock(StateManager.class);
- final WsThemeManager theme = Mockito.mock(WsThemeManager.class);
final SiteSearcher searcher = Mockito.mock(SiteSearcher.class);
final Provider searcherProvider = Mockito.mock(Provider.class);
Mockito.when(searcherProvider.get()).thenReturn(searcher);
@@ -44,7 +42,7 @@
@Test
public void withTagsViewFalse() {
final StateContainerDTO state = new StateContainerDTO();
- ArrayList<TagCountDTO> list = new ArrayList<TagCountDTO>();
+ final ArrayList<TagCountDTO> list = new ArrayList<TagCountDTO>();
state.setTagCloudResult(new TagCloudResultDTO(list, 0, 0));
tagsSummaryPresenter.setState(state);
Mockito.verify(view).setVisible(false);
@@ -53,7 +51,7 @@
@Test
public void withTagsViewVisible() {
final StateContainerDTO state = new StateContainerDTO();
- ArrayList<TagCountDTO> list = new ArrayList<TagCountDTO>();
+ final ArrayList<TagCountDTO> list = new ArrayList<TagCountDTO>();
list.add(new TagCountDTO("abc", 1L));
state.setTagCloudResult(new TagCloudResultDTO(list, 0, 0));
tagsSummaryPresenter.setState(state);
1
0
Author: vjrj
Date: 2009-07-13 13:36:33 +0200 (Mon, 13 Jul 2009)
New Revision: 1134
Added:
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManager.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManagerImpl.java
Modified:
trunk/TODO
trunk/img/icons-base.svg
trunk/img/ui-drafts.svg
trunk/script/css-compact-and-tidy.sh
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/AbstractToolbar.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/FlowToolbar.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/SimpleToolbar.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/tabbed/AbstractTabbedDialogPanel.java
trunk/src/main/java/org/ourproject/kune/platf/public/images/arrowdown.png
trunk/src/main/java/org/ourproject/kune/platf/public/images/kune-search-ico.png
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/GroupManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConf.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java
Log:
Complete - task Group background image (styling)
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/TODO 2009-07-13 11:36:33 UTC (rev 1134)
@@ -11,6 +11,8 @@
Use org-mode in emacs to easy manage this file
* SHORT-TERM (URGENT)
+** Do something with jetty/jruby alias issue
+ http://jetty.mortbay.org/jetty5/faq/faq_s_400-Security_t_Aliases.html
** Use of webdriver instead of plain selenium
http://code.google.com/p/webdriver/
** New Action class
@@ -103,6 +105,12 @@
- value :: red
*** logos
*** caching
+*** backgrounds
+ A big one select from context
+ body {
+ background: #352726 url('http://some.jpg') fixed no-repeat top left;
+ }
+
** danigb,vjrj URLs public/workspace braimstorming
Nowadays:
- ws: #group.tool.container.content
Modified: trunk/img/icons-base.svg
===================================================================
--- trunk/img/icons-base.svg 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/img/icons-base.svg 2009-07-13 11:36:33 UTC (rev 1134)
@@ -27,17 +27,17 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="1.4119877"
- inkscape:cx="342.50815"
- inkscape:cy="727.92005"
+ inkscape:zoom="1.3545976"
+ inkscape:cx="372.04724"
+ inkscape:cy="526.18109"
inkscape:document-units="px"
inkscape:current-layer="layer1"
- inkscape:window-width="1270"
- inkscape:window-height="773"
- inkscape:window-x="1280"
- inkscape:window-y="25"
+ inkscape:window-width="1280"
+ inkscape:window-height="730"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
showgrid="false"
- showguides="false"
+ showguides="true"
inkscape:guide-bbox="true"
inkscape:grid-points="true"
inkscape:guide-points="true">
@@ -2463,93 +2463,6 @@
id="image10688"
x="522"
y="784.36218" />
- <g
- inkscape:export-ydpi="90.000000"
- inkscape:export-xdpi="90.000000"
- inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-org-home-draft-0.5.png"
- transform="translate(-156.9822,555.56514)"
- id="g4822"
- style="opacity:0.5;display:inline">
- <rect
- ry="3.7996395"
- rx="3.7996395"
- y="8.8522816"
- x="405.52979"
- height="15.999997"
- width="15.999997"
- id="rect4824"
- style="fill:#dd8a3d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:12.63039398pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <g
- id="g4826"
- transform="matrix(1.635216,0,0,1.635216,-260.6467,-12.57016)">
- <path
- id="path4828"
- d="M 409.34583,20.876719 L 413.22395,17.041177"
- style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.74907231;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.37500004;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
- <g
- id="g4830">
- <path
- sodipodi:type="arc"
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="path4832"
- sodipodi:cx="250.53525"
- sodipodi:cy="332.62314"
- sodipodi:rx="26.82268"
- sodipodi:ry="26.82268"
- d="M 277.35793 332.62314 A 26.82268 26.82268 0 1 1 223.71257,332.62314 A 26.82268 26.82268 0 1 1 277.35793 332.62314 z"
- transform="matrix(0.102065,0,0,0.102065,387.7515,-17.05636)" />
- <path
- sodipodi:type="arc"
- style="fill:#dd8a3d;fill-opacity:1;fill-rule:evenodd;stroke:#dd8a3d;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
- id="path4834"
- sodipodi:cx="250.53525"
- sodipodi:cy="332.62314"
- sodipodi:rx="26.82268"
- sodipodi:ry="26.82268"
- d="M 277.35793 332.62314 A 26.82268 26.82268 0 1 1 223.71257,332.62314 A 26.82268 26.82268 0 1 1 277.35793 332.62314 z"
- transform="matrix(5.245387e-2,0,0,5.245387e-2,400.1808,-0.554549)" />
- </g>
- </g>
- </g>
- <g
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/icons/kune-search-ico-push.png"
- id="g3316">
- <rect
- ry="3.7996395"
- rx="3.7996395"
- y="564.36218"
- x="311"
- height="15.999997"
- width="15.999997"
- id="rect3279"
- style="opacity:1;fill:#eec59e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:12.63039398pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:type="arc"
- style="opacity:1;fill:#a02c2c;fill-opacity:1;fill-rule:evenodd;stroke:#a02c2c;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="path3287"
- sodipodi:cx="250.53525"
- sodipodi:cy="332.62314"
- sodipodi:rx="26.82268"
- sodipodi:ry="26.82268"
- d="M 277.35793 332.62314 A 26.82268 26.82268 0 1 1 223.71257,332.62314 A 26.82268 26.82268 0 1 1 277.35793 332.62314 z"
- transform="matrix(0.1668983,0,0,0.1668983,278.88098,515.04891)" />
- <path
- style="opacity:1;color:#000000;fill:#800000;fill-opacity:1;fill-rule:nonzero;stroke:#a02c2c;stroke-width:2.860111;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.37500004;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
- d="M 314.19237,577.07768 L 320.53393,570.80575"
- id="path3283" />
- <path
- sodipodi:type="arc"
- style="opacity:1;fill:#eec59e;fill-opacity:1;fill-rule:evenodd;stroke:#dd8a3d;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
- id="path3289"
- sodipodi:cx="250.53525"
- sodipodi:cy="332.62314"
- sodipodi:rx="26.82268"
- sodipodi:ry="26.82268"
- d="M 277.35793 332.62314 A 26.82268 26.82268 0 1 1 223.71257,332.62314 A 26.82268 26.82268 0 1 1 277.35793 332.62314 z"
- transform="matrix(8.5773407e-2,0,0,8.5773407e-2,299.20557,542.03293)" />
- </g>
<rect
style="opacity:1;color:#000000;fill:#592704;fill-opacity:1;fill-rule:evenodd;stroke-width:1.90017545;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect17021"
@@ -4515,5 +4428,164 @@
width="14"
id="rect2884"
style="opacity:1;fill:#ffe6d5;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <g
+ id="g3700"
+ inkscape:export-filename="//home/vjrj/proyectos/dev/kune/trunk/src/main/java/org/ourproject/kune/platf/public/images/arrowdown.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ transform="translate(-2.7252744,2.5494502)">
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/icons/menu-arrow-down.png"
+ transform="translate(-1437.9102,-6.8473347)"
+ d="M 1563.0192,677.96995 L 1559.716,672.3151 L 1566.2648,672.28185 L 1563.0192,677.96995 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="2.6129171"
+ sodipodi:arg1="1.5657195"
+ sodipodi:r2="0.90551758"
+ sodipodi:r1="3.7810335"
+ sodipodi:cy="674.18896"
+ sodipodi:cx="1563"
+ sodipodi:sides="3"
+ id="path2918"
+ style="fill:#9b9b9b;fill-opacity:1;fill-rule:evenodd;stroke:#2b0000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="star" />
+ <rect
+ y="660.27856"
+ x="117.08018"
+ height="16"
+ width="16"
+ id="rect2920"
+ style="opacity:0.35;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ </g>
+ <g
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/icons/kune-search-ico-push.png"
+ id="g3316"
+ transform="translate(-11.754839,-13.799158)">
+ <rect
+ ry="3.7996395"
+ rx="3.7996395"
+ y="564.36218"
+ x="311"
+ height="15.999997"
+ width="15.999997"
+ id="rect3279"
+ style="opacity:1;fill:#eec59e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:12.63039398pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#a02c2c;fill-opacity:1;fill-rule:evenodd;stroke:#a02c2c;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3287"
+ sodipodi:cx="250.53525"
+ sodipodi:cy="332.62314"
+ sodipodi:rx="26.82268"
+ sodipodi:ry="26.82268"
+ d="M 277.35793,332.62314 A 26.82268,26.82268 0 1 1 223.71257,332.62314 A 26.82268,26.82268 0 1 1 277.35793,332.62314 z"
+ transform="matrix(0.1668983,0,0,0.1668983,278.88098,515.04891)" />
+ <path
+ style="opacity:1;fill:#800000;fill-opacity:1;fill-rule:nonzero;stroke:#a02c2c;stroke-width:2.860111;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.37500004;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 314.19237,577.07768 L 320.53393,570.80575"
+ id="path3283" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#eec59e;fill-opacity:1;fill-rule:evenodd;stroke:#dd8a3d;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ id="path3289"
+ sodipodi:cx="250.53525"
+ sodipodi:cy="332.62314"
+ sodipodi:rx="26.82268"
+ sodipodi:ry="26.82268"
+ d="M 277.35793,332.62314 A 26.82268,26.82268 0 1 1 223.71257,332.62314 A 26.82268,26.82268 0 1 1 277.35793,332.62314 z"
+ transform="matrix(8.5773407e-2,0,0,8.5773407e-2,299.20557,542.03293)" />
+ </g>
+ <rect
+ ry="3.7996395"
+ rx="3.7996395"
+ y="552.33008"
+ x="272.48584"
+ height="15.999997"
+ width="15.999997"
+ id="rect3712"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:12.63039398pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:export-filename="//home/vjrj/proyectos/dev/kune/trunk/src/main/java/org/ourproject/kune/platf/public/images/kune-search-ico.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <g
+ inkscape:export-ydpi="90.000000"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-filename="//home/vjrj/proyectos/dev/kune/trunk/src/main/java/org/ourproject/kune/platf/public/images/kune-search-ico.png"
+ transform="translate(-133.04393,543.47778)"
+ id="g4822"
+ style="opacity:0.5;display:inline">
+ <rect
+ ry="3.7996395"
+ rx="3.7996395"
+ y="8.8522816"
+ x="405.52979"
+ height="15.999997"
+ width="15.999997"
+ id="rect4824"
+ style="fill:#dd8a3d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:12.63039398pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <g
+ id="g4826"
+ transform="matrix(1.635216,0,0,1.635216,-260.6467,-12.57016)">
+ <path
+ id="path4828"
+ d="M 409.34583,20.876719 L 413.22395,17.041177"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.74907231;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.37500004;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <g
+ id="g4830">
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4832"
+ sodipodi:cx="250.53525"
+ sodipodi:cy="332.62314"
+ sodipodi:rx="26.82268"
+ sodipodi:ry="26.82268"
+ d="M 277.35793,332.62314 A 26.82268,26.82268 0 1 1 223.71257,332.62314 A 26.82268,26.82268 0 1 1 277.35793,332.62314 z"
+ transform="matrix(0.102065,0,0,0.102065,387.7515,-17.05636)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#dd8a3d;fill-opacity:1;fill-rule:evenodd;stroke:#dd8a3d;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ id="path4834"
+ sodipodi:cx="250.53525"
+ sodipodi:cy="332.62314"
+ sodipodi:rx="26.82268"
+ sodipodi:ry="26.82268"
+ d="M 277.35793,332.62314 A 26.82268,26.82268 0 1 1 223.71257,332.62314 A 26.82268,26.82268 0 1 1 277.35793,332.62314 z"
+ transform="matrix(5.245387e-2,0,0,5.245387e-2,400.1808,-0.554549)" />
+ </g>
+ </g>
+ </g>
+ <use
+ style="display:inline"
+ x="0"
+ y="0"
+ xlink:href="#g28384"
+ id="use28983"
+ transform="translate(-878.08802,-538.70921)"
+ width="2104.7244"
+ height="1488.189"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-org-members-draft-0.3.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <use
+ style="display:inline"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-org-members-draft-0.3.png"
+ height="1488.189"
+ width="2104.7244"
+ transform="translate(-1042.2138,-568.35984)"
+ id="use14410"
+ xlink:href="#g28384"
+ y="0"
+ x="0"
+ inkscape:transform-center-x="-156.01159"
+ inkscape:transform-center-y="41.742437" />
</g>
</svg>
Modified: trunk/img/ui-drafts.svg
===================================================================
--- trunk/img/ui-drafts.svg 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/img/ui-drafts.svg 2009-07-13 11:36:33 UTC (rev 1134)
@@ -3,7 +3,7 @@
<svg
xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://web.resource.org/cc/"
+ xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
@@ -14,7 +14,7 @@
height="1488.189"
id="svg2"
sodipodi:version="0.32"
- inkscape:version="0.45.1"
+ inkscape:version="0.46"
sodipodi:docbase="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img"
sodipodi:docname="ui-drafts.svg"
version="1.0"
@@ -27,7 +27,7 @@
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
- inkscape:pageopacity="1"
+ inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="0.50128043"
inkscape:cx="1052.3622"
@@ -42,7 +42,6 @@
inkscape:object-paths="true"
guidetolerance="3.9"
showgrid="true"
- gridempspacing="0"
inkscape:window-width="1379"
inkscape:window-height="936"
inkscape:window-x="61"
@@ -51,9 +50,31 @@
height="2104.7244px"
inkscape:grid-bbox="false"
inkscape:guide-bbox="true"
- showguides="true" />
+ showguides="true">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="1px"
+ spacingy="1px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.2"
+ empopacity="0.4"
+ empspacing="0"
+ visible="true"
+ enabled="true" />
+ </sodipodi:namedview>
<defs
id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 744.09448 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="2104.7244 : 744.09448 : 1"
+ inkscape:persp3d-origin="1052.3622 : 496.06299 : 1"
+ id="perspective13699" />
<linearGradient
inkscape:collect="always"
xlink:href="#RSSg"
@@ -25089,6 +25110,20 @@
sodipodi:role="line">from: <tspan
id="tspan29289"
style="fill:#803300">Luther Blissett</tspan></tspan></text>
+ <use
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/Imágenes/yellow-logo.png"
+ height="1488.189"
+ width="2104.7244"
+ transform="matrix(1.237931,0,0,1.237931,-857.42313,-63.496407)"
+ id="use14410"
+ xlink:href="#g28384"
+ y="0"
+ x="0"
+ inkscape:transform-center-x="-193.13157"
+ inkscape:transform-center-y="51.674258"
+ style="fill:#241c1c" />
</g>
<g
inkscape:label="orange-circles"
Modified: trunk/script/css-compact-and-tidy.sh
===================================================================
--- trunk/script/css-compact-and-tidy.sh 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/script/css-compact-and-tidy.sh 2009-07-13 11:36:33 UTC (rev 1134)
@@ -62,3 +62,5 @@
tidy $DEST2
rm $EXTTMPFILE
+rm $CATTMPFILE
+rm $CSSTMPFILE
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2009-07-13 11:36:33 UTC (rev 1134)
@@ -35,10 +35,10 @@
}
*/.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;overflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.kune-Content-Main blockquote{border:1px dashed #DDD;padding:10px;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
background-color: #FFF; */border:1px solid #4D4D4D;background-color:#FFF;margin:5px 0 5px 10px;}.gwt-RichTextToolbar{/* background-color: #F2F2F2;
- padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette-popup{z-index:9999!important;background-color:#FFF;border:1px solid gray;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:1px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-bottom-color:#FFF;border-bottom-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-bottom div{/* line-height: 24px; */color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
+ padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette-popup{z-index:9999!important;background-color:#FFF;border:1px solid gray;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:transparent none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:1px;color:#B3B3B3;background:transparent;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:transparent;border-left-width:5px;border-bottom-color:transparent;border-bottom-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-content{background:#FFF;}.k-entity-bottom div{/* line-height: 24px; */color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
.x-tree-node a span, .x-dd-drag-ghost a span {
color:#000000;
padding: 1px 0px 1px 1px;
text-decoration:none;
}
-*/.x-tree-node .k-ctn-status-normal a span{}.x-tree-node .k-ctn-status-deleted a span{text-decoration:line-through;color:gray;}.x-tree-node .k-ctn-status-rejected a span{text-decoration:line-through;/* color: #FF6633; */color:#F30;}.x-tree-node .k-ctn-status-editing a span{font-style:italic;color:gray;}.x-tree-node .k-ctn-status-submitted a span{color:green;}.k-info-links{text-decoration:underline;color:gray;cursor:pointer;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-basic-thumb{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-basic-thumb td{padding:2px 3px;border:none;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;cursor:pointer;overflow:hidden;}.k-tsp-tag{float:left;padding:3px;cursor:pointer;color:#00F;}.k-tsp-cloud{line-height:1.5em;text-align:center;}.k-link-icon{background-image:url(img/link.gif)!important;}.k-options-icon{background-image:url(img/emblem-system.gif)!important;}.k-copyleft-icon{background-image:url(img/copyleft.png)!important;}.k-picture-icon{background-image:url(img/picture.png)!important;}.k-film-icon{background-image:url(img/film.png)!important;}.k-specialchars-icon{background-image:url(img/specialchars.png)!important;}.k-info-icon{background-image:url(img/info.gif)!important;}.k-newgroup-icon{background-image:url(img/kune-icon16.png)!important;}.k-colors-icon{background-image:url(img/colors.gif)!important;}.x-toolbar-body table{/* width: 100%; */}.k-preview-msg{background:#FCA;}.k-preview-msg-lab{background:#FCA;padding:0 5px;}.k-eil-edit{border:thin solid #000;}/* duplicated in rte.css */.k-rte-comment{border:1px dashed silver;line-height:1.4;padding:1px;background-color:#D7FFD7;}.k-specialchar-grid{border:1px solid #ACA899;}.k-specialchar-grid table{}.k-specialchar-grid div{line-height:22px;}.k-specialchar-grid td{padding:1px;}.k-specialchar-pb{border:1px solid #EBE8D7;cursor:pointer;font-size:108%!important;text-align:center;vertical-align:middle;width:18px;height:18px;}.k-specialchar-pb-up{}.k-specialchar-big{padding:3px;line-height:22px;font-size:197%!important;}.k-specialchar-adv-label{margin-left:-10px;}.k-specialchar-popup,{border:1px px solid silver;z-index:9999!important;background-color:#FFF;}.k-specialchar-pb-down{color:#161616;}.k-specialchar-pb-up-hovering{border:thin solid #ACA899;}.k-specialchar-pb-down-hovering{color:#161616;}.k-preview-panel{border:dashed 1px gray;padding:5px;}.k-rte-changelink{white-space:nowrap;color:navy;cursor:pointer;text-decoration:underline;margin:5px;}.k-rte-changelink-popup{border:1px solid silver;z-index:9999!important;background-color:#ECECEC;}.e-ui-room{height:27px;line-height:22px;}.e-ui-room input{font-size:100%;margin-left:0;margin-top:0;}.k-def-popup{z-index:9999!important;background-color:#FFF;border:1px solid gray;}#k-mshortcut{position:absolute;right:10px;}#k-mshortcut-hidden{visibility:hidden;}#k-mshortcut a{text-decoration:none;color:#000;}.k-plain-iframe iframe{border:1px solid gray;}
\ No newline at end of file
+*/.x-tree-node .k-ctn-status-normal a span{}.x-tree-node .k-ctn-status-deleted a span{text-decoration:line-through;color:gray;}.x-tree-node .k-ctn-status-rejected a span{text-decoration:line-through;/* color: #FF6633; */color:#F30;}.x-tree-node .k-ctn-status-editing a span{font-style:italic;color:gray;}.x-tree-node .k-ctn-status-submitted a span{color:green;}.k-info-links{text-decoration:underline;color:gray;cursor:pointer;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-basic-thumb{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-basic-thumb td{padding:2px 3px;border:none;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;cursor:pointer;overflow:hidden;}.k-tsp-tag{float:left;padding:3px;cursor:pointer;color:#00F;}.k-tsp-cloud{line-height:1.5em;text-align:center;}.k-link-icon{background-image:url(img/link.gif)!important;}.k-options-icon{background-image:url(img/emblem-system.gif)!important;}.k-copyleft-icon{background-image:url(img/copyleft.png)!important;}.k-picture-icon{background-image:url(img/picture.png)!important;}.k-film-icon{background-image:url(img/film.png)!important;}.k-specialchars-icon{background-image:url(img/specialchars.png)!important;}.k-info-icon{background-image:url(img/info.gif)!important;}.k-newgroup-icon{background-image:url(img/kune-icon16.png)!important;}.k-colors-icon{background-image:url(img/colors.gif)!important;}.x-toolbar-body table{/* width: 100%; */}.k-preview-msg{background:#FCA;}.k-preview-msg-lab{background:#FCA;padding:0 5px;}.k-eil-edit{border:thin solid #000;}/* duplicated in rte.css */.k-rte-comment{border:1px dashed silver;line-height:1.4;padding:1px;background-color:#D7FFD7;}.k-specialchar-grid{border:1px solid #ACA899;}.k-specialchar-grid table{}.k-specialchar-grid div{line-height:22px;}.k-specialchar-grid td{padding:1px;}.k-specialchar-pb{border:1px solid #EBE8D7;cursor:pointer;font-size:108%!important;text-align:center;vertical-align:middle;width:18px;height:18px;}.k-specialchar-pb-up{}.k-specialchar-big{padding:3px;line-height:22px;font-size:197%!important;}.k-specialchar-adv-label{margin-left:-10px;}.k-specialchar-popup,{border:1px px solid silver;z-index:9999!important;background-color:#FFF;}.k-specialchar-pb-down{color:#161616;}.k-specialchar-pb-up-hovering{border:thin solid #ACA899;}.k-specialchar-pb-down-hovering{color:#161616;}.k-preview-panel{border:dashed 1px gray;padding:5px;}.k-rte-changelink{white-space:nowrap;color:navy;cursor:pointer;text-decoration:underline;margin:5px;}.k-rte-changelink-popup{border:1px solid silver;z-index:9999!important;background-color:#ECECEC;}.e-ui-room{height:27px;line-height:22px;}.e-ui-room input{font-size:100%;margin-left:0;margin-top:0;}.k-def-popup{z-index:9999!important;background-color:#FFF;border:1px solid gray;}#k-mshortcut{position:absolute;right:10px;}#k-mshortcut-hidden{visibility:hidden;}#k-mshortcut a{text-decoration:none;color:#000;}.k-plain-iframe iframe{border:1px solid gray;}.k-transp .x-panel-body{background:transparent;}.k-transp{background:transparent;}.k-blank{background:#FFF;}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2009-07-13 11:36:33 UTC (rev 1134)
@@ -1,5 +1,5 @@
.k-site-traybar {
- background: #FFF none repeat scroll 0% 50%;
+ background: transparent none repeat scroll 0% 50%;
}
.k-blank-toolbar {
@@ -34,7 +34,6 @@
.k-sitebar {
margin-right: 10px;
height: 16px;
- background: #FFF;
}
.k-sitebar .gwt-TextBox {
@@ -42,6 +41,7 @@
margin: 0 15px 0 3px;
padding-left: 1px;
color: #B3B3B3;
+ background: transparent;
}
.k-sitebar .gwt-Hyperlink a {
@@ -63,9 +63,9 @@
}
.k-entity-summary {
- border-left-color: #FFF;
+ border-left-color: transparent;
border-left-width: 5px;
- border-bottom-color: #FFF;
+ border-bottom-color: transparent;
border-bottom-width: 5px;
}
@@ -205,7 +205,7 @@
.k-entity-title {
border-left-style: solid;
- border-left-width: 2px;
+ border-left-width: 5px;
}
.k-entity-title div {
@@ -411,6 +411,10 @@
background: #DDAFE9 none repeat scroll 0% 50%;
}
+.k-entity-content {
+ background: #FFF;
+}
+
.k-entity-bottom div { /* line-height: 24px; */
color: #FFF;
}
@@ -933,46 +937,68 @@
border
+
+
:
+
+
1
px
+
+
solid
+
+
#C0C0C0
+
+
;
z-index
+
+
:
+
+
9999
!
important
+
+
;
background-color
+
+
:
+
+
#FFF
+
+
;
}
.k-specialchar-pb-down {
@@ -1039,4 +1065,16 @@
.k-plain-iframe iframe {
border: 1px solid gray;
-}
\ No newline at end of file
+}
+
+.k-transp .x-panel-body {
+ background: transparent;
+}
+
+.k-transp {
+ background: transparent;
+}
+
+.k-blank {
+ background: #FFF;
+}
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -41,6 +41,7 @@
import org.ourproject.kune.workspace.client.editor.ContentEditor;
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
import com.calclab.suco.client.ioc.Provider;
@@ -55,11 +56,11 @@
final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
final BlogViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
- final SitePublicSpaceLink publicLink) {
+ final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
- documentViewer, entityLogo, publicLink);
+ documentViewer, entityLogo, publicLink, wsBackManager);
}
@Override
@@ -93,6 +94,7 @@
null, containersNoRoot);
createSetAsDefContent(parentMenuTitle, contents);
+ createSetGroupBackImageAction(parentMenuTitle, TYPE_UPLOADEDFILE);
createGoAction(all);
createGoHomeAction(containers);
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -51,6 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -80,7 +81,7 @@
p(ContentServiceAsync.class), p(GroupServiceAsync.class), p(FileUploader.class),
i(ContentActionRegistry.class), i(ContextActionRegistry.class), p(FileDownloadUtils.class),
i(EntityHeader.class), p(ContentEditor.class), i(ErrorHandler.class), i(BlogViewer.class),
- p(ContextPropEditor.class), i(SitePublicSpaceLink.class));
+ p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -41,6 +41,7 @@
import org.ourproject.kune.workspace.client.editor.ContentEditor;
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
import com.calclab.suco.client.ioc.Provider;
@@ -55,11 +56,11 @@
final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
final DocumentViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
- final SitePublicSpaceLink publicLink) {
+ final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
- documentViewer, entityLogo, publicLink);
+ documentViewer, entityLogo, publicLink, wsBackManager);
}
@Override
@@ -93,6 +94,8 @@
createSetAsDefContent(parentMenuTitle, contents);
+ createSetGroupBackImageAction(parentMenuTitle, TYPE_UPLOADEDFILE);
+
createUploadAction(i18n.t("Upload file"), "images/nav/upload.png", i18n.t("Upload files (images, PDFs...)"),
null, containers);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -51,6 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -80,7 +81,7 @@
p(ContentServiceAsync.class), p(GroupServiceAsync.class), p(FileUploader.class),
i(ContentActionRegistry.class), i(ContextActionRegistry.class), p(FileDownloadUtils.class),
i(EntityHeader.class), p(ContentEditor.class), i(ErrorHandler.class), i(DocumentViewer.class),
- p(ContextPropEditor.class), i(SitePublicSpaceLink.class));
+ p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -40,6 +40,7 @@
import org.ourproject.kune.workspace.client.editor.ContentEditor;
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
import com.calclab.suco.client.ioc.Provider;
@@ -54,11 +55,11 @@
final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
final GalleryViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
- final SitePublicSpaceLink publicLink) {
+ final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
- documentViewer, entityLogo, publicLink);
+ documentViewer, entityLogo, publicLink, wsBackManager);
}
@Override
@@ -88,6 +89,7 @@
createRefreshCxtAction(parentMenuTitleCtx, containers);
createSetAsDefContent(parentMenuTitle, contents);
+ createSetGroupBackImageAction(parentMenuTitle, TYPE_UPLOADEDFILE);
// createUploadAction(i18n.t("Upload file"), "images/nav/upload.png",
// i18n.t("Upload some files (images, PDFs, ...)"), null, containers);
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -51,6 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -80,7 +81,7 @@
p(ContentServiceAsync.class), p(GroupServiceAsync.class), p(FileUploader.class),
i(ContentActionRegistry.class), i(ContextActionRegistry.class), p(FileDownloadUtils.class),
i(EntityHeader.class), p(ContentEditor.class), i(ErrorHandler.class), i(GalleryViewer.class),
- p(ContextPropEditor.class), i(SitePublicSpaceLink.class));
+ p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -154,7 +154,7 @@
}
public void setCleanStyle() {
- toolbar.setCleanStyle();
+ toolbar.setBlankStyle();
}
public void setNormalStyle() {
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -26,10 +26,10 @@
}
/**
- * Set the blank/clean style
+ * Set the blank style
*/
public void setCleanStyle() {
- toolbar.setCleanStyle();
+ toolbar.setBlankStyle();
}
/**
@@ -39,6 +39,13 @@
toolbar.setNormalStyle();
}
+ /**
+ * Set the blank style
+ */
+ public void setTranspStyle() {
+ toolbar.setTranspStyle();
+ }
+
@Override
protected void add(final AbstractGuiItem item) {
item.addStyleName("kune-floatleft");
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -28,7 +28,7 @@
private String longName;
private GroupType groupType;
private ContentSimpleDTO defaultContent;
- private ContentSimpleDTO groupFullLogo;
+ private ContentSimpleDTO groupBackImage;
private LicenseDTO defaultLicense;
private String workspaceTheme;
private boolean hasLogo;
@@ -79,8 +79,8 @@
return defaultLicense;
}
- public ContentSimpleDTO getGroupFullLogo() {
- return groupFullLogo;
+ public ContentSimpleDTO getGroupBackImage() {
+ return groupBackImage;
}
public GroupType getGroupType() {
@@ -146,8 +146,8 @@
this.defaultLicense = defaultLicense;
}
- public void setGroupFullLogo(final ContentSimpleDTO groupFullLogo) {
- this.groupFullLogo = groupFullLogo;
+ public void setGroupBackImage(final ContentSimpleDTO groupBackImage) {
+ this.groupBackImage = groupBackImage;
}
public void setGroupType(final GroupType groupType) {
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -34,12 +34,14 @@
void changeGroupWsTheme(String userHash, StateToken groupToken, String theme) throws DefaultException;
+ GroupDTO clearGroupBackImage(String userHash, StateToken token);
+
StateToken createNewGroup(String userHash, GroupDTO group, String publicDesc, String tags, String[] enabledTools)
throws DefaultException;
GroupDTO getGroup(String userHash, StateToken token);
- GroupDTO setGroupFullLogo(String userHash, StateToken token);
+ GroupDTO setGroupBackImage(String userHash, StateToken token);
void setGroupNewMembersJoiningPolicy(String userHash, StateToken groupToken, AdmissionTypeDTO admissionPolicy);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -34,12 +34,14 @@
void changeGroupWsTheme(String userHash, StateToken groupToken, String theme, AsyncCallback<?> callback);
+ void clearGroupBackImage(String userHash, StateToken token, AsyncCallback<GroupDTO> asyncCallback);
+
void createNewGroup(String userHash, GroupDTO group, String publicDesc, String tags, String[] enabledTools,
AsyncCallback<StateToken> callback);
void getGroup(String userHash, StateToken token, AsyncCallback<GroupDTO> asyncCallback);
- void setGroupFullLogo(String userHash, StateToken token, AsyncCallback<GroupDTO> asyncCallback);
+ void setGroupBackImage(String userHash, StateToken token, AsyncCallback<GroupDTO> asyncCallback);
void setGroupNewMembersJoiningPolicy(String userHash, StateToken groupToken, AdmissionTypeDTO admissionPolicy,
AsyncCallback<?> asyncCallback);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -123,6 +123,8 @@
Collection<ToolSimpleDTO> getUserTools();
+ boolean isInCurrentUserSpace();
+
boolean inSameToken(StateToken token);
boolean isCurrentStateAContent();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -189,6 +189,16 @@
return initData.getUserTools();
}
+ public boolean isInCurrentUserSpace() {
+ if (!isLogged()) {
+ return false;
+ }
+ if (getCurrentStateToken().getGroup().equals(getCurrentUser().getShortName())) {
+ return true;
+ }
+ return false;
+ }
+
public boolean inSameToken(final StateToken token) {
return getCurrentStateToken().equals(token);
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/AbstractToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/AbstractToolbar.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/AbstractToolbar.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -25,7 +25,7 @@
void removeAll();
- void setCleanStyle();
+ void setBlankStyle();
void setHeight(String height);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/FlowToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/FlowToolbar.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/FlowToolbar.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -84,9 +84,9 @@
}
/**
- * Set the blank/clean style
+ * Set the blank style
*/
- public void setCleanStyle() {
+ public void setBlankStyle() {
setBasicStyle();
addStyleName("k-blank-toolbar");
}
@@ -105,6 +105,14 @@
addStyleName("k-toolbar-bottom-line");
}
+ /**
+ * Set the transparent style
+ */
+ public void setTranspStyle() {
+ setBasicStyle();
+ addStyleName("k-transp");
+ }
+
private void setBasicStyle() {
setStyleName("x-toolbar");
addStyleName("x-panel");
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/SimpleToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/SimpleToolbar.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/SimpleToolbar.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -84,7 +84,7 @@
childPanel.clear();
}
- public void setCleanStyle() {
+ public void setBlankStyle() {
setBasicStyle();
addStyleName("k-blank-toolbar");
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/tabbed/AbstractTabbedDialogPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/tabbed/AbstractTabbedDialogPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/tabbed/AbstractTabbedDialogPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -113,7 +113,9 @@
public void hide() {
if (dialog != null) {
- dialog.hide();
+ if (dialog.isVisible()) {
+ dialog.hide();
+ }
}
}
@@ -206,7 +208,7 @@
if (onHideListener != null) {
addHideListener();
}
- for (Button button : buttons) {
+ for (final Button button : buttons) {
dialog.addButton(button);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/public/images/arrowdown.png
===================================================================
(Binary files differ)
Modified: trunk/src/main/java/org/ourproject/kune/platf/public/images/kune-search-ico.png
===================================================================
(Binary files differ)
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -88,7 +88,7 @@
private Content defaultContent;
@OneToOne
- private Content groupFullLogo;
+ private Content groupBackImage;
@OneToOne(cascade = CascadeType.ALL)
private SocialNetwork socialNetwork;
@@ -201,8 +201,8 @@
return defaultLicense;
}
- public Content getGroupFullLogo() {
- return groupFullLogo;
+ public Content getGroupBackImage() {
+ return groupBackImage;
}
public GroupType getGroupType() {
@@ -287,8 +287,8 @@
this.defaultLicense = defaultLicense;
}
- public void setGroupFullLogo(final Content groupFullLogo) {
- this.groupFullLogo = groupFullLogo;
+ public void setGroupBackImage(final Content groupBackImage) {
+ this.groupBackImage = groupBackImage;
}
public void setGroupType(final GroupType groupType) {
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/GroupManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/GroupManager.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/GroupManager.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -36,6 +36,8 @@
void changeWsTheme(User user, Group group, String theme) throws AccessViolationException;
+ void clearGroupBackImage(Group group);
+
Group createGroup(Group group, User user) throws GroupNameInUseException, UserMustBeLoggedException;
Group createUserGroup(User user) throws GroupNameInUseException, EmailAddressInUseException;
@@ -67,7 +69,7 @@
void setDefaultContent(String groupShortName, Content content);
- void setGroupLogo(Group group, Content content);
+ void setGroupBackImage(Group group, Content content);
void setToolEnabled(User userLogged, String groupShortName, String toolName, boolean enabled);
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -97,6 +97,10 @@
group.setWorkspaceTheme(theme);
}
+ public void clearGroupBackImage(final Group group) {
+ group.setGroupBackImage(null);
+ }
+
public Group createGroup(final Group group, final User user) throws GroupNameInUseException,
UserMustBeLoggedException {
final String defaultSiteWorkspaceTheme = kuneProperties.get(KuneProperties.WS_THEMES_DEF);
@@ -201,9 +205,9 @@
group.setDefaultContent(content);
}
- public void setGroupLogo(final Group group, final Content content) {
- if (content.getMimeType().getType().equals("image")) {
- group.setGroupFullLogo(content);
+ public void setGroupBackImage(final Group group, final Content content) {
+ if (content.getMimeType().isImage()) {
+ group.setGroupBackImage(content);
} else {
throw new DefaultException("Trying to set not a image as group logo");
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -83,9 +83,18 @@
}
@Authenticated
+ @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
+ @Transactional(type = TransactionType.READ_WRITE)
+ public GroupDTO clearGroupBackImage(final String userHash, final StateToken token) {
+ final Group group = groupManager.findByShortName(token.getGroup());
+ groupManager.clearGroupBackImage(group);
+ return mapper.map(group, GroupDTO.class);
+ }
+
+ @Authenticated
@Transactional(type = TransactionType.READ_WRITE, rollbackOn = DefaultException.class)
- public StateToken createNewGroup(final String userHash, final GroupDTO groupDTO, String publicDesc, String tags,
- String[] enabledTools) throws DefaultException {
+ public StateToken createNewGroup(final String userHash, final GroupDTO groupDTO, final String publicDesc,
+ final String tags, final String[] enabledTools) throws DefaultException {
final User user = getUserLogged();
final Group group = mapper.map(groupDTO, Group.class);
final Group newGroup = groupManager.createGroup(group, user);
@@ -93,30 +102,30 @@
contentManager.save(user, newGroup.getDefaultContent(), publicDesc);
contentManager.setTags(user, defContentId, tags);
return newGroup.getDefaultContent().getStateToken();
- }
+ };
@Authenticated(mandatory = false)
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Viewer)
- public GroupDTO getGroup(String userHash, StateToken groupToken) {
+ public GroupDTO getGroup(final String userHash, final StateToken groupToken) {
final Group group = groupManager.findByShortName(groupToken.getGroup());
return mapper.map(group, GroupDTO.class);
- };
+ }
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
@Transactional(type = TransactionType.READ_WRITE)
- public GroupDTO setGroupFullLogo(final String userHash, final StateToken token) {
+ public GroupDTO setGroupBackImage(final String userHash, final StateToken token) {
final Group group = groupManager.findByShortName(token.getGroup());
final Content content = contentManager.find(ContentUtils.parseId(token.getDocument()));
- groupManager.setGroupLogo(group, content);
+ groupManager.setGroupBackImage(group, content);
return mapper.map(group, GroupDTO.class);
}
@Authenticated(mandatory = true)
@Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
@Transactional(type = TransactionType.READ_WRITE)
- public void setGroupNewMembersJoiningPolicy(final String userHash, StateToken token,
- AdmissionTypeDTO admissionPolicy) {
+ public void setGroupNewMembersJoiningPolicy(final String userHash, final StateToken token,
+ final AdmissionTypeDTO admissionPolicy) {
final Group group = groupManager.findByShortName(token.getGroup());
group.setAdmissionType(AdmissionType.valueOf(admissionPolicy.toString()));
}
@@ -124,8 +133,8 @@
@Authenticated(mandatory = true)
@Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
@Transactional(type = TransactionType.READ_WRITE)
- public void setSocialNetworkVisibility(final String userHash, StateToken token,
- SocialNetworkVisibilityDTO visibility) {
+ public void setSocialNetworkVisibility(final String userHash, final StateToken token,
+ final SocialNetworkVisibilityDTO visibility) {
final Group group = groupManager.findByShortName(token.getGroup());
group.getSocialNetwork().setVisibility(SocialNetworkVisibility.valueOf(visibility.toString()));
}
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -41,6 +41,7 @@
import org.ourproject.kune.workspace.client.editor.ContentEditor;
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
import com.calclab.suco.client.ioc.Provider;
@@ -55,11 +56,11 @@
final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
final WikiViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
- final SitePublicSpaceLink publicLink) {
+ final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
- documentViewer, entityLogo, publicLink);
+ documentViewer, entityLogo, publicLink, wsBackManager);
}
@Override
@@ -92,6 +93,7 @@
createRefreshCxtAction(parentMenuTitleCtx, containers);
createSetAsDefContent(parentMenuTitle, contents);
+ createSetGroupBackImageAction(parentMenuTitle, TYPE_UPLOADEDFILE);
createUploadAction(i18n.t("Upload file"), "images/nav/upload.png",
i18n.t("Upload some files (images, PDFs, ...)"), null, containers);
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -51,6 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -80,7 +81,7 @@
p(ContentServiceAsync.class), p(GroupServiceAsync.class), p(FileUploader.class),
i(ContentActionRegistry.class), i(ContextActionRegistry.class), p(FileDownloadUtils.class),
i(EntityHeader.class), p(ContentEditor.class), i(ErrorHandler.class), i(WikiViewer.class),
- p(ContextPropEditor.class), i(SitePublicSpaceLink.class));
+ p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -32,7 +32,6 @@
import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
import org.ourproject.kune.platf.client.actions.RadioMustBeChecked;
import org.ourproject.kune.platf.client.dto.AccessRolDTO;
-import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.GroupDTO;
@@ -60,6 +59,7 @@
import org.ourproject.kune.workspace.client.editor.ContentEditor;
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
import com.calclab.suco.client.events.Listener;
@@ -98,6 +98,8 @@
protected final EntityHeader entityLogo;
private final SitePublicSpaceLink publicLink;
+ private final WsBackManager wsBackManager;
+
public AbstractFoldableContentActions(final Session session, final StateManager stateManager,
final I18nUITranslationService i18n, final ErrorHandler errorHandler,
final DeferredCommandWrapper deferredCommandWrapper,
@@ -107,7 +109,7 @@
final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry,
final Provider<FileDownloadUtils> fileDownloadProvider, final Provider<ContentEditor> textEditorProvider,
final Provider<ContextPropEditor> contextPropEditorProvider, final FoldableContent foldableContent,
- final EntityHeader entityLogo, final SitePublicSpaceLink publicLink) {
+ final EntityHeader entityLogo, final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
this.session = session;
this.stateManager = stateManager;
this.i18n = i18n;
@@ -125,6 +127,7 @@
this.foldableContent = foldableContent;
this.entityLogo = entityLogo;
this.publicLink = publicLink;
+ this.wsBackManager = wsBackManager;
createActions();
session.onInitDataReceived(new Listener<InitDataDTO>() {
public void onEvent(final InitDataDTO parameter) {
@@ -455,6 +458,34 @@
return setAsDefGroupContent;
}
+ protected void createSetGroupBackImageAction(final String parentMenuTitle, final String... registerInTypes) {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> setGroupBackImage = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Administrator, CONTENT_TOPBAR, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ groupServiceProvider.get().setGroupBackImage(session.getUserHash(), token,
+ new AsyncCallbackSimple<GroupDTO>() {
+ public void onSuccess(final GroupDTO newGroup) {
+ if (session.getCurrentState().getGroup().getShortName().equals(
+ newGroup.getShortName())) {
+ session.getCurrentState().setGroup(newGroup);
+ wsBackManager.clearBackImage();
+ wsBackManager.setBackImage(newGroup.getGroupBackImage().getStateToken());
+ }
+ }
+ });
+ }
+ });
+ setGroupBackImage.setParentMenuTitle(parentMenuTitle);
+ setGroupBackImage.setTextDescription(i18n.t("Set this as the group background image"));
+ setGroupBackImage.setIconUrl("images/nav/picture.png");
+ setGroupBackImage.setEnableCondition(new ActionEnableCondition<StateToken>() {
+ public boolean mustBeEnabled(final StateToken token) {
+ return session.getContentState().getMimeType().isImage();
+ }
+ });
+ contentActionRegistry.addAction(setGroupBackImage, registerInTypes);
+ }
+
protected void createSetStatusAction(final AccessRolDTO rol, final String textDescription,
final ContentStatusDTO status, final String[] contentsModerated) {
final ActionToolbarMenuRadioDescriptor<StateToken> action = new ActionToolbarMenuRadioDescriptor<StateToken>(
@@ -554,40 +585,6 @@
fileDownloadProvider.get().downloadFile(token);
}
- /**
- * For future use contentActionRegistry.addAction(setGroupLogo,
- * TYPE_UPLOADEDFILE);
- */
- @SuppressWarnings("unused")
- private ActionToolbarMenuAndItemDescriptor<StateToken> createSetGroupLogoAction(final String parentMenuTitle) {
- final ActionToolbarMenuAndItemDescriptor<StateToken> setGroupLogo = new ActionToolbarMenuAndItemDescriptor<StateToken>(
- AccessRolDTO.Administrator, CONTENT_TOPBAR, new Listener<StateToken>() {
- public void onEvent(final StateToken token) {
- groupServiceProvider.get().setGroupFullLogo(session.getUserHash(), token,
- new AsyncCallbackSimple<GroupDTO>() {
- public void onSuccess(final GroupDTO newGroup) {
- NotifyUser.info("Logo selected");
- if (session.getCurrentState().getGroup().getShortName().equals(
- newGroup.getShortName())) {
- session.getCurrentState().setGroup(newGroup);
- }
- entityLogo.refreshGroupLogo();
- }
- });
- }
- });
- setGroupLogo.setParentMenuTitle(parentMenuTitle);
- setGroupLogo.setTextDescription(i18n.t("Set this as the group logo"));
- setGroupLogo.setIconUrl("images/nav/picture.png");
- setGroupLogo.setEnableCondition(new ActionEnableCondition<StateToken>() {
- public boolean mustBeEnabled(final StateToken token) {
- final BasicMimeTypeDTO mime = session.getContentState().getMimeType();
- return mime != null && mime.getType().equals("image");
- }
- });
- return setGroupLogo;
- }
-
private ActionEnableCondition<StateToken> notDefAndNotDeleted() {
return new ActionEnableCondition<StateToken>() {
public boolean mustBeEnabled(final StateToken token) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -236,6 +236,8 @@
import org.ourproject.kune.workspace.client.tags.TagsSummary;
import org.ourproject.kune.workspace.client.tags.TagsSummaryPanel;
import org.ourproject.kune.workspace.client.tags.TagsSummaryPresenter;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
+import org.ourproject.kune.workspace.client.themes.WsBackManagerImpl;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.themes.WsThemeManagerPanel;
import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
@@ -435,11 +437,18 @@
}
});
+ register(Singleton.class, new Factory<WsBackManager>(WsBackManager.class) {
+ @Override
+ public WsBackManager create() {
+ return new WsBackManagerImpl(i(FileDownloadUtils.class));
+ }
+ });
+
register(ApplicationComponentGroup.class, new Factory<WsThemeManager>(WsThemeManager.class) {
@Override
public WsThemeManager create() {
final WsThemeManager presenter = new WsThemeManager(i(Session.class), p(GroupServiceAsync.class),
- i(StateManager.class));
+ i(StateManager.class), i(WsBackManager.class));
new WsThemeManagerPanel(presenter, i(WorkspaceSkeleton.class));
return presenter;
}
@@ -641,7 +650,8 @@
@Override
public UserOptions create() {
final UserOptionsPresenter presenter = new UserOptionsPresenter(i(Session.class),
- i(I18nTranslationService.class), i(ImgResources.class), i(SiteUserOptions.class));
+ i(StateManager.class), i(I18nTranslationService.class), i(ImgResources.class),
+ i(SiteUserOptions.class));
final UserOptionsPanel panel = new UserOptionsPanel(presenter, i(EntityHeader.class),
i(I18nTranslationService.class), i(Images.class), i(UserOptionsCollection.class));
presenter.init(panel);
@@ -733,9 +743,10 @@
final WsThemeSelector themeSelector = i(WsThemeSelector.class);
final GroupOptionsPublicSpaceConfPresenter presenter = new GroupOptionsPublicSpaceConfPresenter(
i(Session.class), i(StateManager.class), i(GroupOptions.class), i(WsThemeManager.class),
- themeSelector);
+ themeSelector, p(GroupServiceAsync.class), i(WsBackManager.class));
final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(presenter,
- i(WorkspaceSkeleton.class), i(I18nTranslationService.class), themeSelector);
+ i(WorkspaceSkeleton.class), i(I18nTranslationService.class), themeSelector,
+ i(FileDownloadUtils.class));
presenter.init(panel);
return presenter;
}
@@ -747,9 +758,11 @@
public UserOptionsPublicSpaceConf create() {
final WsThemeSelector themeSelector = i(WsThemeSelector.class);
final UserOptionsPublicSpaceConfPresenter presenter = new UserOptionsPublicSpaceConfPresenter(
- i(Session.class), i(UserOptions.class), i(WsThemeManager.class), themeSelector);
+ i(Session.class), i(StateManager.class), i(UserOptions.class), i(WsThemeManager.class),
+ themeSelector, p(GroupServiceAsync.class), i(WsBackManager.class));
final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(
- presenter, i(WorkspaceSkeleton.class), i(I18nTranslationService.class), themeSelector);
+ presenter, i(WorkspaceSkeleton.class), i(I18nTranslationService.class), themeSelector,
+ i(FileDownloadUtils.class));
presenter.init(panel);
return presenter;
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -59,7 +59,7 @@
entityTextLogo = new EntityTextLogo();
add(entityTextLogo);
toolbar = new ComplexToolbar(bindings);
- toolbar.setCleanStyle();
+ toolbar.setTranspStyle();
vpanel.add(toolbar);
add(vpanel);
wskel.addToEntityMainHeader(this);
@@ -79,6 +79,7 @@
+ new Date().getTime());
}
+ @Deprecated
public void setFullLogo(final StateToken stateToken, final boolean clipped) {
clear();
final String imageUrl = downloadProvider.get().getImageUrl(stateToken);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -21,7 +21,6 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.actions.ui.GuiActionDescrip;
-import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
@@ -73,10 +72,7 @@
}
void setGroupLogo(final GroupDTO group) {
- final ContentSimpleDTO groupFullLogo = group.getGroupFullLogo();
- if (groupFullLogo != null) {
- view.setFullLogo(groupFullLogo.getStateToken(), true);
- } else if (group.hasLogo()) {
+ if (group.hasLogo()) {
setLogoText(group.getLongName());
view.setLogoImage(group.getStateToken());
view.setLogoImageVisible(true);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -33,8 +33,6 @@
void reloadImage(GroupDTO group);
- void setFullLogo(StateToken stateToken, boolean clipped);
-
void setLargeFont();
void setLogoImage(StateToken stateToken);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -25,6 +25,7 @@
import org.ourproject.kune.platf.client.actions.ui.MenuItemDescriptor;
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.dialogs.tabbed.AbstractTabbedDialogPresenter;
import org.ourproject.kune.platf.client.ui.img.ImgResources;
import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserOptions;
@@ -37,9 +38,13 @@
private final ImgResources img;
private final I18nTranslationService i18n;
private final SiteUserOptions userOptions;
+ private final Session session;
+ private final StateManager stateManager;
- public UserOptionsPresenter(final Session session, final I18nTranslationService i18n, final ImgResources img,
- final SiteUserOptions userOptions) {
+ public UserOptionsPresenter(final Session session, final StateManager stateManager,
+ final I18nTranslationService i18n, final ImgResources img, final SiteUserOptions userOptions) {
+ this.session = session;
+ this.stateManager = stateManager;
this.i18n = i18n;
this.img = img;
this.userOptions = userOptions;
@@ -59,6 +64,9 @@
private void createActions() {
final AbstractExtendedAction userPrefsAction = new AbstractExtendedAction() {
public void actionPerformed(final ActionEvent event) {
+ if (!session.isInCurrentUserSpace()) {
+ stateManager.gotoToken(session.getCurrentUser().getStateToken());
+ }
show();
}
};
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConf.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConf.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConf.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -19,6 +19,6 @@
*/
package org.ourproject.kune.workspace.client.options.pscape;
+
public interface EntityOptionsPublicSpaceConf {
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -19,9 +19,12 @@
*/
package org.ourproject.kune.workspace.client.options.pscape;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.client.ui.BasicThumb;
import org.ourproject.kune.platf.client.ui.TextUtils;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
+import org.ourproject.kune.platf.client.ui.download.ImageSize;
import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import org.ourproject.kune.workspace.client.options.EntityOptionsView;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
@@ -29,16 +32,28 @@
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
public class EntityOptionsPublicSpaceConfPanel extends Panel implements EntityOptionsPublicSpaceConfView {
+ private final Image backImage;
+ private final FileDownloadUtils downUtils;
+ private final Label currentBackLabel;
+ private final Label noBackLabel;
+ private final Button clearBtn;
+
public EntityOptionsPublicSpaceConfPanel(final EntityOptionsPublicSpaceConfPresenter presenter,
- final WorkspaceSkeleton ws, final I18nTranslationService i18n, final WsThemeSelector wsSelector) {
+ final WorkspaceSkeleton ws, final I18nTranslationService i18n, final WsThemeSelector wsSelector,
+ final FileDownloadUtils downUtils) {
+ this.downUtils = downUtils;
super.setTitle(i18n.t("Style"));
super.setIconCls("k-colors-icon");
super.setAutoScroll(true);
@@ -54,21 +69,57 @@
wsHP.add(wsThemeInfo);
wsHP.add(toolbarWsChange);
add(wsHP);
+ final VerticalPanel backPanel = new VerticalPanel();
+ currentBackLabel = new Label(i18n.t("Current background image: "));
+ noBackLabel = new Label(i18n.t("Also you can upload any image and select it later as background."));
+ backImage = new Image();
+ backImage.addStyleName("kune-Margin-Medium-trbl");
+ noBackLabel.addStyleName("kune-Margin-Medium-tb");
+ clearBtn = new Button(i18n.t("Clear"));
+ clearBtn.setTooltip(i18n.t("Remove current background image"));
+ clearBtn.addListener(new ButtonListenerAdapter() {
+ @Override
+ public void onClick(final Button button, final EventObject event) {
+ presenter.clearBackImage();
+ }
+ });
+ backPanel.add(noBackLabel);
+ backPanel.add(currentBackLabel);
+ backPanel.add(backImage);
+ backPanel.add(clearBtn);
+ add(backPanel);
final Label wsInfo = new Label(i18n.t("Select and configure the public space theme of this group:"));
wsInfo.addStyleName("kune-Margin-Medium-tb");
add(wsInfo);
- final FlowPanel stylesPanel = new FlowPanel();
+ final Panel stylesPanel = new Panel();
+ final ClickHandler clickHandler = new ClickHandler() {
+ public void onClick(final ClickEvent event) {
+ NotifyUser.info(TextUtils.IN_DEVELOPMENT_P);
+ }
+ };
for (int i = 1; i <= 6; i++) {
- final BasicThumb thumb = new BasicThumb("images/styles/styl" + i + ".png", "Style " + i,
- new ClickHandler() {
- public void onClick(final ClickEvent event) {
- NotifyUser.info(TextUtils.IN_DEVELOPMENT_P);
- }
- });
+ final BasicThumb thumb = new BasicThumb("images/styles/styl" + i + ".png", "Style " + i, clickHandler);
thumb.setTooltip(i18n.t("Click to select and configure this theme"));
add(thumb);
}
add(stylesPanel);
+ setBackImageVisibleImpl(false);
}
+
+ public void clearBackImage() {
+ setBackImageVisibleImpl(false);
+ }
+
+ public void setBackImage(final StateToken token) {
+ backImage.setUrl(downUtils.getImageResizedUrl(token, ImageSize.thumb));
+ setBackImageVisibleImpl(true);
+ }
+
+ private void setBackImageVisibleImpl(final boolean visible) {
+ backImage.setVisible(visible);
+ currentBackLabel.setVisible(visible);
+ clearBtn.setVisible(visible);
+ noBackLabel.setVisible(!visible);
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -1,16 +1,49 @@
package org.ourproject.kune.workspace.client.options.pscape;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.options.EntityOptions;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
-public abstract class EntityOptionsPublicSpaceConfPresenter {
+import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.events.Listener0;
+import com.calclab.suco.client.ioc.Provider;
+
+public abstract class EntityOptionsPublicSpaceConfPresenter implements EntityOptionsPublicSpaceConf {
private EntityOptionsPublicSpaceConfView view;
private final EntityOptions entityOptions;
+ private final Provider<GroupServiceAsync> groupService;
+ private final Session session;
+ private final WsBackManager backManager;
+ private final StateManager stateManager;
- public EntityOptionsPublicSpaceConfPresenter(final EntityOptions entityOptions) {
+ protected EntityOptionsPublicSpaceConfPresenter(final Session session, final StateManager stateManager,
+ final EntityOptions entityOptions, final Provider<GroupServiceAsync> groupService,
+ final WsBackManager backManager) {
+ this.session = session;
+ this.stateManager = stateManager;
this.entityOptions = entityOptions;
+ this.groupService = groupService;
+ this.backManager = backManager;
}
+ public void clearBackImage() {
+ groupService.get().clearGroupBackImage(session.getUserHash(), session.getCurrentStateToken(),
+ new AsyncCallbackSimple<GroupDTO>() {
+ public void onSuccess(final GroupDTO result) {
+ view.clearBackImage();
+ backManager.clearBackImage();
+ }
+ });
+ }
+
public View getView() {
return view;
}
@@ -18,6 +51,30 @@
public void init(final EntityOptionsPublicSpaceConfView view) {
this.view = view;
entityOptions.addTab(view);
+ setBackImage(session.getContainerState().getGroup().getGroupBackImage());
+ stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
+ public void onEvent(final StateAbstractDTO state) {
+ final ContentSimpleDTO backImage = state.getGroup().getGroupBackImage();
+ setBackImage(backImage);
+ }
+ });
+ backManager.addSetBackImage(new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ view.setBackImage(token);
+ }
+ });
+ backManager.addBackClear(new Listener0() {
+ public void onEvent() {
+ view.clearBackImage();
+ }
+ });
}
+ private void setBackImage(final ContentSimpleDTO backImage) {
+ if (backImage == null) {
+ view.clearBackImage();
+ } else {
+ view.setBackImage(backImage.getStateToken());
+ }
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfView.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfView.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -20,7 +20,12 @@
package org.ourproject.kune.workspace.client.options.pscape;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.StateToken;
public interface EntityOptionsPublicSpaceConfView extends View {
+
+ public void clearBackImage();
+
+ public void setBackImage(final StateToken token);
+
}
-
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConfPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConfPresenter.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -20,21 +20,25 @@
package org.ourproject.kune.workspace.client.options.pscape;
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.options.EntityOptions;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.themes.WsTheme;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.ioc.Provider;
public class GroupOptionsPublicSpaceConfPresenter extends EntityOptionsPublicSpaceConfPresenter implements
GroupOptionsPublicSpaceConf {
public GroupOptionsPublicSpaceConfPresenter(final Session session, final StateManager stateManager,
- final EntityOptions entityOptions, final WsThemeManager themeManager, final WsThemeSelector themeSelector) {
- super(entityOptions);
+ final EntityOptions entityOptions, final WsThemeManager themeManager, final WsThemeSelector themeSelector,
+ final Provider<GroupServiceAsync> groupService, final WsBackManager backManager) {
+ super(session, stateManager, entityOptions, groupService, backManager);
themeSelector.addThemeSelected(new Listener<WsTheme>() {
public void onEvent(final WsTheme theme) {
themeManager.changeTheme(session.getCurrentStateToken(), theme);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -20,22 +20,27 @@
package org.ourproject.kune.workspace.client.options.pscape;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.options.EntityOptions;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.themes.WsTheme;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.ioc.Provider;
public class UserOptionsPublicSpaceConfPresenter extends EntityOptionsPublicSpaceConfPresenter implements
UserOptionsPublicSpaceConf {
private final WsThemeSelector themeSelector;
- public UserOptionsPublicSpaceConfPresenter(final Session session, final EntityOptions entityOptions,
- final WsThemeManager themeManager, final WsThemeSelector themeSelector) {
- super(entityOptions);
+ public UserOptionsPublicSpaceConfPresenter(final Session session, final StateManager stateManager,
+ final EntityOptions entityOptions, final WsThemeManager themeManager, final WsThemeSelector themeSelector,
+ final Provider<GroupServiceAsync> groupService, final WsBackManager backManager) {
+ super(session, stateManager, entityOptions, groupService, backManager);
this.themeSelector = themeSelector;
themeSelector.addThemeSelected(new Listener<WsTheme>() {
public void onEvent(final WsTheme theme) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SummaryPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SummaryPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -32,9 +32,10 @@
private final String collapsedTitle;
private final String expandedTitle;
- public SummaryPanel(final String title, final String titleTooltip, WorkspaceSkeleton ws) {
+ public SummaryPanel(final String title, final String titleTooltip, final WorkspaceSkeleton ws) {
this.ws = ws;
super.setBorder(false);
+ super.addStyleName("k-blank");
super.setAutoScroll(true);
collapsedTitle = KuneUiUtils.genQuickTipLabel(title, null, titleTooltip,
Images.App.getInstance().arrowRightWhite(), IconPosition.left);
@@ -43,12 +44,12 @@
setTitle(expandedTitle);
super.addListener(new PanelListenerAdapter() {
@Override
- public void onCollapse(Panel panel) {
+ public void onCollapse(final Panel panel) {
setTitle(collapsedTitle);
}
@Override
- public void onExpand(Panel panel) {
+ public void onExpand(final Panel panel) {
setTitle(expandedTitle);
}
});
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -51,13 +51,16 @@
container.setLayout(new FitLayout());
container.setBorder(false);
container.setPaddings(5);
+ container.addStyleName("k-transp");
final Panel mainPanel = new Panel();
mainPanel.setLayout(new AnchorLayout());
mainPanel.setBorder(false);
+ mainPanel.addStyleName("k-transp");
sitebar = new SimpleToolbar();
sitebar.setStyleName("k-sitebar");
+ sitebar.addStyleName("k-transp");
sitebar.setHeight(String.valueOf(DEF_BAR_HEIGHT));
entity = new Entity();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -67,7 +67,7 @@
vp.add(flowPanel);
vp.add(otherBuddiesLabel);
toolbar = ((ActionToolbarPanel<UserSimpleDTO>) actionToolbarView).getToolbar();
- toolbar.setCleanStyle();
+ toolbar.setBlankStyle();
vp.add((Widget) toolbar);
super.add(vp);
addInSummary();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -78,7 +78,7 @@
super.add(noMembersPublic);
toolbar = ((ActionToolbarPanel<StateToken>) actionToolbarView).getToolbar();
- toolbar.setCleanStyle();
+ toolbar.setBlankStyle();
super.add((Widget) toolbar);
super.addInSummary();
ws.addListenerInEntitySummary(new ContainerListenerAdapter() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -54,7 +54,7 @@
gridMenuPanel.onDoubleClick(go);
super.add(gridMenuPanel);
toolbar = ((ActionToolbarPanel<StateToken>) actionToolbarView).getToolbar();
- toolbar.setCleanStyle();
+ toolbar.setBlankStyle();
super.add((Widget) toolbar);
addInSummary();
ws.addListenerInEntitySummary(new ContainerListenerAdapter() {
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManager.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManager.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -0,0 +1,18 @@
+package org.ourproject.kune.workspace.client.themes;
+
+import org.ourproject.kune.platf.client.dto.StateToken;
+
+import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.events.Listener0;
+
+public interface WsBackManager {
+
+ void addBackClear(Listener0 listener);
+
+ void addSetBackImage(Listener<StateToken> listener);
+
+ void clearBackImage();
+
+ void setBackImage(StateToken token);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManagerImpl.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManagerImpl.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManagerImpl.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -0,0 +1,53 @@
+package org.ourproject.kune.workspace.client.themes;
+
+import org.cobogw.gwt.user.client.CSS;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
+
+import com.calclab.suco.client.events.Event;
+import com.calclab.suco.client.events.Event0;
+import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.events.Listener0;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.ui.RootPanel;
+
+public class WsBackManagerImpl implements WsBackManager {
+
+ private static final StateToken NO_TOKEN = new StateToken("none.none.0.0");
+ private final FileDownloadUtils downloadUtils;
+ private StateToken lastToken;
+ private final Event0 onBackClear;
+ private final Event<StateToken> onSetBackImage;
+
+ public WsBackManagerImpl(final FileDownloadUtils downloadUtils) {
+ this.downloadUtils = downloadUtils;
+ lastToken = NO_TOKEN;
+ this.onBackClear = new Event0("onBackClear");
+ this.onSetBackImage = new Event<StateToken>("onSetBackImage");
+ }
+
+ public void addBackClear(final Listener0 listener) {
+ onBackClear.add(listener);
+ }
+
+ public void addSetBackImage(final Listener<StateToken> listener) {
+ onSetBackImage.add(listener);
+ }
+
+ public void clearBackImage() {
+ onBackClear.fire();
+ if (!lastToken.equals(NO_TOKEN)) {
+ DOM.setStyleAttribute(RootPanel.getBodyElement(), CSS.A.BACKGROUND, "transparent");
+ lastToken = NO_TOKEN;
+ }
+ }
+
+ public void setBackImage(final StateToken token) {
+ onSetBackImage.fire(token);
+ if (!token.equals(lastToken)) {
+ final String bodyProp = "#FFFFFF url('" + downloadUtils.getImageUrl(token) + "') fixed no-repeat top left";
+ DOM.setStyleAttribute(RootPanel.getBodyElement(), CSS.A.BACKGROUND, bodyProp);
+ lastToken = token;
+ }
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -19,6 +19,7 @@
\*/
package org.ourproject.kune.workspace.client.themes;
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
@@ -40,11 +41,13 @@
private final Provider<GroupServiceAsync> groupServiceProvider;
private final Session session;
private WsTheme defTheme;
+ private final WsBackManager wsBackManager;
public WsThemeManager(final Session session, final Provider<GroupServiceAsync> groupServiceProvider,
- final StateManager stateManager) {
+ final StateManager stateManager, final WsBackManager wsBackManager) {
this.session = session;
this.groupServiceProvider = groupServiceProvider;
+ this.wsBackManager = wsBackManager;
this.onThemeChanged = new Event2<WsTheme, WsTheme>("onThemeChanged");
session.onInitDataReceived(new Listener<InitDataDTO>() {
public void onEvent(final InitDataDTO initData) {
@@ -59,6 +62,10 @@
});
}
+ public void addOnThemeChanged(final Listener2<WsTheme, WsTheme> listener) {
+ onThemeChanged.add(listener);
+ }
+
public void changeTheme(final StateToken token, final WsTheme newTheme) {
NotifyUser.showProgressProcessing();
groupServiceProvider.get().changeGroupWsTheme(session.getUserHash(), token, newTheme.getName(),
@@ -72,10 +79,6 @@
});
}
- public void addOnThemeChanged(final Listener2<WsTheme, WsTheme> listener) {
- onThemeChanged.add(listener);
- }
-
protected void onChangeGroupWsTheme(final WsTheme newTheme) {
NotifyUser.showProgressProcessing();
groupServiceProvider.get().changeGroupWsTheme(session.getUserHash(), session.getCurrentState().getStateToken(),
@@ -93,6 +96,12 @@
private void setState(final StateAbstractDTO state) {
setTheme(new WsTheme(state.getGroup().getWorkspaceTheme()));
+ final ContentSimpleDTO groupBackImage = state.getGroup().getGroupBackImage();
+ if (groupBackImage == null) {
+ wsBackManager.clearBackImage();
+ } else {
+ wsBackManager.setBackImage(groupBackImage.getStateToken());
+ }
}
private void setTheme(final WsTheme newTheme) {
1
0
Author: vjrj
Date: 2009-07-02 01:06:27 +0200 (Thu, 02 Jul 2009)
New Revision: 1133
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ActionExtensibleView.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/CssStyleDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SimpleGuiItem.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/bug.png
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/site/DefCssResource.java
trunk/src/main/java/org/ourproject/kune/workspace/client/site/defCssResource.css
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManagerPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelector.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelectorPresenter.java
Removed:
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeView.java
Modified:
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/common/GotoGroupAction.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SubMenuGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserInfoDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java
trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfo.java
trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfoServiceDefault.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensewizard/LicenseChangeAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/EntityOptionsDefLicensePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicensePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicensePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/site/SiteResources.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tool/AbstractClientTool.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorItemPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenter.java
trunk/src/test/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPresenterTest.java
trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java
trunk/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java
Log:
Complete - task User/GroupOptions cleanup
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -51,7 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -68,7 +68,7 @@
public BlogClientTool create() {
i(BlogClientActions.class);
return new BlogClientTool(i(I18nUITranslationService.class), i(ToolSelector.class),
- i(WsThemePresenter.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
+ i(WsThemeManager.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.FoldableAbstractClientTool;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
@@ -34,7 +34,7 @@
public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
public BlogClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
- final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
+ final WsThemeManager wsThemePresenter, final WorkspaceSkeleton ws,
final ContentCapabilitiesRegistry cntCapReg) {
super(NAME, i18n.t("blogs"), toolSelector, wsThemePresenter, ws, cntCapReg);
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -45,7 +45,7 @@
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.cxt.ContextActionRegistry;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import com.calclab.emiteuimodule.client.EmiteUIDialog;
@@ -70,7 +70,7 @@
@Override
public ChatClientTool create() {
return new ChatClientTool(i(I18nUITranslationService.class), i(WorkspaceSkeleton.class),
- i(ToolSelector.class), i(WsThemePresenter.class), i(ContentCapabilitiesRegistry.class));
+ i(ToolSelector.class), i(WsThemeManager.class), i(ContentCapabilitiesRegistry.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.FoldableAbstractClientTool;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
@@ -33,7 +33,7 @@
public static final String TYPE_CHAT = "chat.chat";
public ChatClientTool(final I18nTranslationService i18n, final WorkspaceSkeleton ws,
- final ToolSelector toolSelector, final WsThemePresenter wsThemePresenter,
+ final ToolSelector toolSelector, final WsThemeManager wsThemePresenter,
ContentCapabilitiesRegistry contentCapabilitiesRegistry) {
super(NAME, i18n.t("chat rooms"), toolSelector, wsThemePresenter, ws, contentCapabilitiesRegistry);
registerContentTypeIcon(TYPE_ROOM, "images/emite-room.png");
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -51,7 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -68,7 +68,7 @@
public DocumentClientTool create() {
i(DocumentClientActions.class);
return new DocumentClientTool(i(I18nUITranslationService.class), i(ToolSelector.class),
- i(WsThemePresenter.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
+ i(WsThemeManager.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.FoldableAbstractClientTool;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
@@ -34,7 +34,7 @@
public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
public DocumentClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
- final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
+ final WsThemeManager wsThemePresenter, final WorkspaceSkeleton ws,
final ContentCapabilitiesRegistry cntCapRegistry) {
super(NAME, i18n.t("documents"), toolSelector, wsThemePresenter, ws, cntCapRegistry);
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -51,7 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -68,7 +68,7 @@
public GalleryClientTool create() {
i(GalleryClientActions.class);
return new GalleryClientTool(i(I18nUITranslationService.class), i(ToolSelector.class),
- i(WsThemePresenter.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
+ i(WsThemeManager.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.FoldableAbstractClientTool;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
@@ -33,7 +33,7 @@
public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
public GalleryClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
- final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
+ final WsThemeManager wsThemePresenter, final WorkspaceSkeleton ws,
final ContentCapabilitiesRegistry cntCapabReg) {
super(NAME, i18n.t("gallery"), toolSelector, wsThemePresenter, ws, cntCapabReg);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/common/GotoGroupAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/common/GotoGroupAction.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/common/GotoGroupAction.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -9,12 +9,13 @@
private final String name;
private final StateManager stateManager;
- public GotoGroupAction(final String logoImageUrl, final String name, final StateManager stateManager) {
+ public GotoGroupAction(final String logoImageUrl, final String name, final String longName,
+ final StateManager stateManager) {
super();
this.name = name;
this.stateManager = stateManager;
putValue(Action.SMALL_ICON, logoImageUrl);
- putValue(Action.NAME, name);
+ putValue(Action.NAME, longName);
}
public void actionPerformed(final ActionEvent event) {
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,9 +0,0 @@
-package org.ourproject.kune.platf.client.actions.ui;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface AbstractActionExtensibleView extends View {
-
- void addAction(GuiActionDescrip descriptor);
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -3,9 +3,7 @@
import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.ActionEvent;
import org.ourproject.kune.platf.client.actions.KeyStroke;
-import org.ourproject.kune.platf.client.ui.img.ImgConstants;
-import com.google.gwt.libideas.resources.client.ImageResource;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
@@ -69,8 +67,8 @@
}
@Override
- protected void setIcon(final ImageResource imageResource) {
- button.setIconCls(ImgConstants.CSS_SUFFIX + imageResource.getName());
+ protected void setIconStyle(final String style) {
+ button.setIconCls(style);
}
@Override
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -5,6 +5,7 @@
import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.PropertyChangeEvent;
import org.ourproject.kune.platf.client.actions.PropertyChangeListener;
+import org.ourproject.kune.platf.client.ui.img.ImgConstants;
import com.google.gwt.libideas.resources.client.ImageResource;
import com.google.gwt.user.client.ui.Composite;
@@ -73,7 +74,7 @@
protected abstract void setEnabled(boolean enabled);
- protected abstract void setIcon(ImageResource imageResource);
+ protected abstract void setIconStyle(String style);
protected abstract void setIconUrl(String iconUrl);
@@ -112,8 +113,10 @@
}
private void setIcon(final Object icon) {
- if (icon instanceof ImageResource) {
- setIcon((ImageResource) icon);
+ if (icon instanceof CssStyleDescriptor) {
+ setIconStyle(((CssStyleDescriptor) icon).getName());
+ } else if (icon instanceof ImageResource) {
+ setIconStyle((ImgConstants.CSS_SUFFIX + ((ImageResource) icon).getName()));
} else if (icon instanceof String) {
setIconUrl((String) icon);
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -5,9 +5,7 @@
import org.ourproject.kune.platf.client.actions.KeyStroke;
import org.ourproject.kune.platf.client.actions.PropertyChangeEvent;
import org.ourproject.kune.platf.client.actions.PropertyChangeListener;
-import org.ourproject.kune.platf.client.ui.img.ImgConstants;
-import com.google.gwt.libideas.resources.client.ImageResource;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.Widget;
@@ -77,8 +75,8 @@
}
@Override
- protected void setIcon(final ImageResource imageResource) {
- item.setIconCls(ImgConstants.CSS_SUFFIX + imageResource.getName());
+ protected void setIconStyle(final String style) {
+ item.setIconCls(style);
}
@Override
Copied: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ActionExtensibleView.java (from rev 1128, trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java 2009-06-13 00:43:29 UTC (rev 1128)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ActionExtensibleView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,9 @@
+package org.ourproject.kune.platf.client.actions.ui;
+
+import org.ourproject.kune.platf.client.View;
+
+public interface ActionExtensibleView extends View {
+
+ void addAction(GuiActionDescrip descriptor);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/CssStyleDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/CssStyleDescriptor.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/CssStyleDescriptor.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,18 @@
+package org.ourproject.kune.platf.client.actions.ui;
+
+public class CssStyleDescriptor {
+
+ public static CssStyleDescriptor create(final String name) {
+ return new CssStyleDescriptor(name);
+ }
+
+ private final String name;
+
+ public CssStyleDescriptor(final String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -3,9 +3,7 @@
import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.PropertyChangeEvent;
import org.ourproject.kune.platf.client.actions.PropertyChangeListener;
-import org.ourproject.kune.platf.client.ui.img.ImgConstants;
-import com.google.gwt.libideas.resources.client.ImageResource;
import com.google.gwt.user.client.ui.UIObject;
import com.gwtext.client.widgets.ToolbarButton;
@@ -59,9 +57,9 @@
}
@Override
- public void setIcon(final ImageResource imageResource) {
+ public void setIconStyle(final String style) {
if (notStandAlone) {
- button.setIconCls(ImgConstants.CSS_SUFFIX + imageResource.getName());
+ button.setIconCls(style);
}
}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SimpleGuiItem.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SimpleGuiItem.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SimpleGuiItem.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,25 @@
+package org.ourproject.kune.platf.client.actions.ui;
+
+import com.google.gwt.user.client.ui.HorizontalPanel;
+
+public class SimpleGuiItem extends AbstractComposedGuiItem implements ActionExtensibleView {
+
+ private final HorizontalPanel hpanel;
+
+ public SimpleGuiItem(final GuiBindingsRegister bindings) {
+ super(bindings);
+ hpanel = new HorizontalPanel();
+ initWidget(hpanel);
+ }
+
+ @Override
+ protected void add(final AbstractGuiItem item) {
+ hpanel.add(item);
+ }
+
+ @Override
+ protected void insert(final AbstractGuiItem item, final int position) {
+ hpanel.insert(item, position);
+ }
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SubMenuGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SubMenuGui.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SubMenuGui.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,8 +1,5 @@
package org.ourproject.kune.platf.client.actions.ui;
-import org.ourproject.kune.platf.client.ui.img.ImgConstants;
-
-import com.google.gwt.libideas.resources.client.ImageResource;
import com.gwtext.client.widgets.menu.MenuItem;
public class SubMenuGui extends AbstractMenuGui {
@@ -31,8 +28,8 @@
}
@Override
- public void setIcon(final ImageResource imageResource) {
- item.setIconCls(ImgConstants.CSS_SUFFIX + imageResource.getName());
+ public void setIconStyle(final String style) {
+ item.setIconCls(style);
}
@Override
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserInfoDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserInfoDTO.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserInfoDTO.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -33,6 +33,7 @@
private List<GroupDTO> groupsIsCollab;
private boolean showDeletedContent;
private List<String> enabledTools;
+ private GroupDTO userGroup;
public String getChatName() {
return chatName;
@@ -82,6 +83,10 @@
return user;
}
+ public GroupDTO getUserGroup() {
+ return userGroup;
+ }
+
public String getUserHash() {
return userHash;
}
@@ -119,6 +124,10 @@
this.user = user;
}
+ public void setUserGroup(final GroupDTO userGroup) {
+ this.userGroup = userGroup;
+ }
+
public void setUserHash(final String userHash) {
this.userHash = userHash;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -9,6 +9,9 @@
@Resource("add-green.png")
ImageResource addGreen();
+ @Resource("bug.png")
+ ImageResource bug();
+
@Resource("kimg.css")
CssResource css();
@@ -32,4 +35,5 @@
@Resource("prefs.png")
ImageResource prefs();
+
}
\ No newline at end of file
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/bug.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/bug.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css 2009-07-01 23:06:27 UTC (rev 1133)
@@ -10,6 +10,10 @@
gwt-image: 'kuneIcon16';
}
+@sprite div .k-icon-bug {
+ gwt-image: 'bug';
+}
+
@sprite div .k-icon-prefs {
gwt-image: 'prefs';
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -887,7 +887,6 @@
}
private void createBasicActions() {
-
final MenuSeparatorDescriptor editMenuSep = new MenuSeparatorDescriptor(editMenu);
final MenuSeparatorDescriptor insertMenuSep = new MenuSeparatorDescriptor(insertMenu);
final MenuSeparatorDescriptor formatMenuSep = new MenuSeparatorDescriptor(formatMenu);
@@ -1147,7 +1146,7 @@
menus.add(insertMenu = new MenuDescriptor(i18n.t("Insert")));
menus.add(formatMenu = new MenuDescriptor(i18n.t("Format")));
menus.add(linkCtxMenu = new MenuDescriptor(i18n.t("Change Link")));
- menus.add(fontMenu = new MenuDescriptor(NO_TEXT, i18n.t("Font"),
+ menus.add(fontMenu = new MenuDescriptor(" ", i18n.t("Font"),
ImgConstants.toPath(imgResources.charfontname())));
menus.add(fontSizeMenu = new MenuDescriptor(NO_TEXT, i18n.t("Font size"),
ImgConstants.toPath(imgResources.fontheight())));
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -2,11 +2,11 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.actions.InputMap;
-import org.ourproject.kune.platf.client.actions.ui.AbstractActionExtensibleView;
+import org.ourproject.kune.platf.client.actions.ui.ActionExtensibleView;
import org.ourproject.kune.platf.client.ui.rte.RichTextArea.FontSize;
import org.ourproject.kune.platf.client.ui.rte.insertlink.LinkInfo;
-public interface RTEditorView extends AbstractActionExtensibleView {
+public interface RTEditorView extends ActionExtensibleView {
void adjustSize(int height);
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfo.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfo.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfo.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -36,6 +36,7 @@
private String userHash;
private boolean showDeletedContent;
private List<String> enabledTools;
+ private Group userGroup;
public String getChatName() {
return chatName;
@@ -85,6 +86,10 @@
return user;
}
+ public Group getUserGroup() {
+ return userGroup;
+ }
+
public String getUserHash() {
return userHash;
}
@@ -121,6 +126,10 @@
this.user = user;
}
+ public void setUserGroup(final Group userGroup) {
+ this.userGroup = userGroup;
+ }
+
public void setUserHash(final String userHash) {
this.userHash = userHash;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfoServiceDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfoServiceDefault.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfoServiceDefault.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -43,28 +43,29 @@
}
public UserInfo buildInfo(final User user, final String userHash) throws DefaultException {
- UserInfo info = null;
+ UserInfo userInfo = null;
if (User.isKnownUser(user)) {
- info = new UserInfo();
+ userInfo = new UserInfo();
- info.setUser(user);
- info.setChatName(user.getShortName());
- info.setChatPassword(user.getPassword());
- info.setUserHash(userHash);
+ userInfo.setUser(user);
+ userInfo.setChatName(user.getShortName());
+ userInfo.setChatPassword(user.getPassword());
+ userInfo.setUserHash(userHash);
// FIXME: save this in user properties
- info.setShowDeletedContent(false);
+ userInfo.setShowDeletedContent(false);
final Group userGroup = user.getUserGroup();
final ParticipationData participation = socialNetworkManager.findParticipation(user, userGroup);
- info.setGroupsIsAdmin(participation.getGroupsIsAdmin());
- info.setGroupsIsCollab(participation.getGroupsIsCollab());
- info.setEnabledTools(groupManager.findEnabledTools(userGroup.getId()));
+ userInfo.setGroupsIsAdmin(participation.getGroupsIsAdmin());
+ userInfo.setGroupsIsCollab(participation.getGroupsIsCollab());
+ userInfo.setEnabledTools(groupManager.findEnabledTools(userGroup.getId()));
final Content defaultContent = userGroup.getDefaultContent();
+ userInfo.setUserGroup(userGroup);
if (defaultContent != null) {
- info.setHomePage(defaultContent.getStateToken().toString());
+ userInfo.setHomePage(defaultContent.getStateToken().toString());
}
}
- return info;
+ return userInfo;
}
}
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -51,7 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -68,7 +68,7 @@
public WikiClientTool create() {
i(WikiClientActions.class);
return new WikiClientTool(i(I18nUITranslationService.class), i(ToolSelector.class),
- i(WsThemePresenter.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
+ i(WsThemeManager.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.FoldableAbstractClientTool;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
@@ -34,7 +34,7 @@
public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
public WikiClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
- final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
+ final WsThemeManager wsThemePresenter, final WorkspaceSkeleton ws,
final ContentCapabilitiesRegistry cntCapabReg) {
super(NAME, i18n.t("wiki"), toolSelector, wsThemePresenter, ws, cntCapabReg);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -23,6 +23,7 @@
import org.ourproject.kune.platf.client.actions.ActionManager;
import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPanel;
import org.ourproject.kune.platf.client.actions.ui.GuiBindingsRegister;
+import org.ourproject.kune.platf.client.actions.ui.SimpleGuiItem;
import org.ourproject.kune.platf.client.app.ApplicationComponentGroup;
import org.ourproject.kune.platf.client.app.GroupOptionsCollection;
import org.ourproject.kune.platf.client.app.UserOptionsCollection;
@@ -126,7 +127,6 @@
import org.ourproject.kune.workspace.client.nohomepage.NoHomePage;
import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePanel;
import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePresenter;
-import org.ourproject.kune.workspace.client.options.EntityOptions;
import org.ourproject.kune.workspace.client.options.GroupOptions;
import org.ourproject.kune.workspace.client.options.GroupOptionsPanel;
import org.ourproject.kune.workspace.client.options.GroupOptionsPresenter;
@@ -146,9 +146,10 @@
import org.ourproject.kune.workspace.client.options.logo.UserOptionsLogoPanel;
import org.ourproject.kune.workspace.client.options.logo.UserOptionsLogoPresenter;
import org.ourproject.kune.workspace.client.options.pscape.EntityOptionsPublicSpaceConfPanel;
-import org.ourproject.kune.workspace.client.options.pscape.EntityOptionsPublicSpaceConfPresenter;
import org.ourproject.kune.workspace.client.options.pscape.GroupOptionsPublicSpaceConf;
+import org.ourproject.kune.workspace.client.options.pscape.GroupOptionsPublicSpaceConfPresenter;
import org.ourproject.kune.workspace.client.options.pscape.UserOptionsPublicSpaceConf;
+import org.ourproject.kune.workspace.client.options.pscape.UserOptionsPublicSpaceConfPresenter;
import org.ourproject.kune.workspace.client.options.tools.EntityOptionsToolsConf;
import org.ourproject.kune.workspace.client.options.tools.EntityOptionsToolsConfPanel;
import org.ourproject.kune.workspace.client.options.tools.GroupOptionsToolsConfPresenter;
@@ -235,8 +236,10 @@
import org.ourproject.kune.workspace.client.tags.TagsSummary;
import org.ourproject.kune.workspace.client.tags.TagsSummaryPanel;
import org.ourproject.kune.workspace.client.tags.TagsSummaryPresenter;
-import org.ourproject.kune.workspace.client.themes.WsThemePanel;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
+import org.ourproject.kune.workspace.client.themes.WsThemeManagerPanel;
+import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
+import org.ourproject.kune.workspace.client.themes.WsThemeSelectorPresenter;
import org.ourproject.kune.workspace.client.title.EntitySubTitle;
import org.ourproject.kune.workspace.client.title.EntitySubTitlePanel;
import org.ourproject.kune.workspace.client.title.EntitySubTitlePresenter;
@@ -343,8 +346,8 @@
@Override
public SiteUserOptions create() {
final SiteUserOptionsPresenter presenter = new SiteUserOptionsPresenter(i(Session.class),
- i(StateManager.class), p(UserOptions.class), p(FileDownloadUtils.class),
- $(I18nTranslationService.class), $(ImgResources.class));
+ i(StateManager.class), p(FileDownloadUtils.class), $(I18nTranslationService.class),
+ $(ImgResources.class));
final SiteUserOptionsPanel panel = new SiteUserOptionsPanel(presenter, i(WorkspaceSkeleton.class),
$(GuiBindingsRegister.class));
presenter.init(panel);
@@ -424,7 +427,7 @@
@Override
public EntityHeader create() {
final EntityHeaderPresenter presenter = new EntityHeaderPresenter(i(StateManager.class),
- i(WsThemePresenter.class), i(Session.class));
+ i(WsThemeManager.class), i(Session.class));
final EntityHeaderPanel panel = new EntityHeaderPanel(i(WorkspaceSkeleton.class),
p(FileDownloadUtils.class), i(Images.class), i(GuiBindingsRegister.class));
presenter.init(panel);
@@ -432,18 +435,26 @@
}
});
- register(ApplicationComponentGroup.class, new Factory<WsThemePresenter>(WsThemePresenter.class) {
+ register(ApplicationComponentGroup.class, new Factory<WsThemeManager>(WsThemeManager.class) {
@Override
- public WsThemePresenter create() {
- final WsThemePresenter presenter = new WsThemePresenter(i(Session.class), p(GroupServiceAsync.class),
+ public WsThemeManager create() {
+ final WsThemeManager presenter = new WsThemeManager(i(Session.class), p(GroupServiceAsync.class),
i(StateManager.class));
- final WsThemePanel panel = new WsThemePanel(i(WorkspaceSkeleton.class), presenter,
- i(I18nUITranslationService.class));
- presenter.init(panel);
+ new WsThemeManagerPanel(presenter, i(WorkspaceSkeleton.class));
return presenter;
}
});
+ register(NoDecoration.class, new Factory<WsThemeSelector>(WsThemeSelector.class) {
+ @Override
+ public WsThemeSelector create() {
+ final WsThemeSelectorPresenter presenter = new WsThemeSelectorPresenter(i(Session.class),
+ i(I18nTranslationService.class));
+ presenter.init(new SimpleGuiItem(i(GuiBindingsRegister.class)));
+ return presenter;
+ }
+ });
+
register(ApplicationComponentGroup.class, new Factory<EntityTitle>(EntityTitle.class) {
@Override
public EntityTitle create() {
@@ -541,8 +552,8 @@
final GroupMembersSummaryPresenter presenter = new GroupMembersSummaryPresenter(
i(I18nUITranslationService.class), i(StateManager.class), i(ImageUtils.class),
i(Session.class), p(SocialNetworkServiceAsync.class), p(GroupServiceAsync.class),
- p(GroupLiveSearcher.class), i(WsThemePresenter.class), p(ChatEngine.class),
- i(GroupActionRegistry.class), i(ActionGroupSummaryToolbar.class), p(FileDownloadUtils.class));
+ p(GroupLiveSearcher.class), p(ChatEngine.class), i(GroupActionRegistry.class),
+ i(ActionGroupSummaryToolbar.class), p(FileDownloadUtils.class));
final GroupMembersSummaryView view = new GroupMembersSummaryPanel(presenter,
i(I18nUITranslationService.class), i(WorkspaceSkeleton.class), i(
ActionGroupSummaryToolbar.class).getView());
@@ -580,8 +591,8 @@
public ParticipationSummary create() {
final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(
i(I18nUITranslationService.class), i(StateManager.class), i(ImageUtils.class),
- i(Session.class), p(SocialNetworkServiceAsync.class), i(WsThemePresenter.class),
- i(GroupActionRegistry.class), i(ActionParticipationToolbar.class), p(FileDownloadUtils.class));
+ i(Session.class), p(SocialNetworkServiceAsync.class), i(GroupActionRegistry.class),
+ i(ActionParticipationToolbar.class), p(FileDownloadUtils.class));
final ParticipationSummaryView view = new ParticipationSummaryPanel(presenter,
i(I18nUITranslationService.class), i(WorkspaceSkeleton.class), i(
ActionParticipationToolbar.class).getView());
@@ -594,7 +605,7 @@
@Override
public TagsSummary create() {
final TagsSummaryPresenter presenter = new TagsSummaryPresenter(i(Session.class),
- p(SiteSearcher.class), i(StateManager.class), i(WsThemePresenter.class));
+ p(SiteSearcher.class), i(StateManager.class));
final TagsSummaryPanel panel = new TagsSummaryPanel(presenter, i(I18nUITranslationService.class),
i(WorkspaceSkeleton.class));
presenter.init(panel);
@@ -719,7 +730,14 @@
GroupOptionsPublicSpaceConf.class) {
@Override
public GroupOptionsPublicSpaceConf create() {
- return createEntityOptionsPublicSpace(i(GroupOptions.class));
+ final WsThemeSelector themeSelector = i(WsThemeSelector.class);
+ final GroupOptionsPublicSpaceConfPresenter presenter = new GroupOptionsPublicSpaceConfPresenter(
+ i(Session.class), i(StateManager.class), i(GroupOptions.class), i(WsThemeManager.class),
+ themeSelector);
+ final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(presenter,
+ i(WorkspaceSkeleton.class), i(I18nTranslationService.class), themeSelector);
+ presenter.init(panel);
+ return presenter;
}
});
@@ -727,7 +745,13 @@
new Factory<UserOptionsPublicSpaceConf>(UserOptionsPublicSpaceConf.class) {
@Override
public UserOptionsPublicSpaceConf create() {
- return createEntityOptionsPublicSpace(i(UserOptions.class));
+ final WsThemeSelector themeSelector = i(WsThemeSelector.class);
+ final UserOptionsPublicSpaceConfPresenter presenter = new UserOptionsPublicSpaceConfPresenter(
+ i(Session.class), i(UserOptions.class), i(WsThemeManager.class), themeSelector);
+ final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(
+ presenter, i(WorkspaceSkeleton.class), i(I18nTranslationService.class), themeSelector);
+ presenter.init(panel);
+ return presenter;
}
});
@@ -897,7 +921,7 @@
@Override
public ToolSelector create() {
final ToolSelectorPresenter presenter = new ToolSelectorPresenter(i(StateManager.class),
- i(WsThemePresenter.class));
+ i(WsThemeManager.class));
return presenter;
}
});
@@ -1071,11 +1095,4 @@
i(GlobalShortcutRegister.class).enable();
}
- private EntityOptionsPublicSpaceConfPresenter createEntityOptionsPublicSpace(final EntityOptions entityOptions) {
- final EntityOptionsPublicSpaceConfPresenter presenter = new EntityOptionsPublicSpaceConfPresenter(entityOptions);
- final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(presenter,
- i(WorkspaceSkeleton.class), i(I18nTranslationService.class), i(WsThemePresenter.class));
- presenter.init(panel);
- return presenter;
- }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -26,7 +26,7 @@
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.themes.WsTheme;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import com.calclab.suco.client.events.Listener2;
@@ -37,7 +37,7 @@
private EntityHeaderView view;
private final Session session;
- public EntityHeaderPresenter(final StateManager stateManager, final WsThemePresenter theme, final Session session) {
+ public EntityHeaderPresenter(final StateManager stateManager, final WsThemeManager theme, final Session session) {
this.session = session;
stateManager.onGroupChanged(new Listener2<String, String>() {
@@ -45,7 +45,7 @@
setGroupLogo(session.getCurrentState().getGroup());
}
});
- theme.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
+ theme.addOnThemeChanged(new Listener2<WsTheme, WsTheme>() {
public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
view.setTheme(oldTheme, newTheme);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/licensewizard/LicenseChangeAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/licensewizard/LicenseChangeAction.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensewizard/LicenseChangeAction.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -20,6 +20,7 @@
package org.ourproject.kune.workspace.client.licensewizard;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.state.Session;
@@ -36,27 +37,26 @@
private final Session session;
private final I18nTranslationService i18n;
- public LicenseChangeAction(Provider<GroupServiceAsync> groupService, Session session, I18nTranslationService i18n,
- StateManager stateManager) {
+ public LicenseChangeAction(final Provider<GroupServiceAsync> groupService, final Session session,
+ final I18nTranslationService i18n, final StateManager stateManager) {
this.groupService = groupService;
this.session = session;
this.i18n = i18n;
this.stateManager = stateManager;
}
- public void changeLicense(final LicenseDTO license, final Listener0 onSuccess) {
+ public void changeLicense(final StateToken token, final LicenseDTO license, final Listener0 onSuccess) {
NotifyUser.showProgressProcessing();
- groupService.get().changeDefLicense(session.getUserHash(), session.getCurrentStateToken(), license,
- new AsyncCallback<Object>() {
- public void onFailure(Throwable caught) {
- NotifyUser.hideProgress();
- NotifyUser.error(i18n.t("Error changing default group license"));
- }
+ groupService.get().changeDefLicense(session.getUserHash(), token, license, new AsyncCallback<Object>() {
+ public void onFailure(final Throwable caught) {
+ NotifyUser.hideProgress();
+ NotifyUser.error(i18n.t("Error changing default group license"));
+ }
- public void onSuccess(Object result) {
- stateManager.reload();
- onSuccess.onEvent();
- }
- });
+ public void onSuccess(final Object result) {
+ stateManager.reload();
+ onSuccess.onEvent();
+ }
+ });
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/EntityOptionsDefLicensePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/EntityOptionsDefLicensePresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/EntityOptionsDefLicensePresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -21,6 +21,7 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.workspace.client.licensewizard.LicenseChangeAction;
import org.ourproject.kune.workspace.client.licensewizard.LicenseWizard;
@@ -60,7 +61,7 @@
public void onChange() {
licenseWizard.get().start(new Listener<LicenseDTO>() {
public void onEvent(final LicenseDTO license) {
- licChangeAction.get().changeLicense(license, new Listener0() {
+ licChangeAction.get().changeLicense(getOperationToken(), license, new Listener0() {
public void onEvent() {
setLicense(license);
}
@@ -77,6 +78,8 @@
protected abstract LicenseDTO getCurrentDefLicense();
+ protected abstract StateToken getOperationToken();
+
protected void setState() {
if (applicable()) {
setLicense(getCurrentDefLicense());
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicensePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicensePresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicensePresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,6 +1,7 @@
package org.ourproject.kune.workspace.client.options.license;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.licensewizard.LicenseChangeAction;
@@ -32,4 +33,9 @@
protected LicenseDTO getCurrentDefLicense() {
return session.getCurrentState().getGroup().getDefaultLicense();
}
+
+ @Override
+ protected StateToken getOperationToken() {
+ return session.getCurrentStateToken();
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicensePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicensePresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicensePresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,6 +1,7 @@
package org.ourproject.kune.workspace.client.options.license;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.workspace.client.licensewizard.LicenseChangeAction;
@@ -24,11 +25,16 @@
@Override
protected boolean applicable() {
- return session.isCurrentStateAGroup();
+ return session.isLogged();
}
@Override
protected LicenseDTO getCurrentDefLicense() {
return session.getCurrentState().getGroup().getDefaultLicense();
}
+
+ @Override
+ protected StateToken getOperationToken() {
+ return session.getCurrentUser().getStateToken();
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -25,20 +25,20 @@
import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import org.ourproject.kune.workspace.client.options.EntityOptionsView;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.widgets.Panel;
-import com.gwtext.client.widgets.ToolbarButton;
public class EntityOptionsPublicSpaceConfPanel extends Panel implements EntityOptionsPublicSpaceConfView {
public EntityOptionsPublicSpaceConfPanel(final EntityOptionsPublicSpaceConfPresenter presenter,
- final WorkspaceSkeleton ws, final I18nTranslationService i18n, final WsThemePresenter wsPresenter) {
+ final WorkspaceSkeleton ws, final I18nTranslationService i18n, final WsThemeSelector wsSelector) {
super.setTitle(i18n.t("Style"));
super.setIconCls("k-colors-icon");
super.setAutoScroll(true);
@@ -49,7 +49,7 @@
final HorizontalPanel wsHP = new HorizontalPanel();
final Label wsThemeInfo = new Label(i18n.t("Change this workspace theme:"));
- final ToolbarButton toolbarWsChange = (ToolbarButton) wsPresenter.getView();
+ final Widget toolbarWsChange = (Widget) wsSelector.getView();
toolbarWsChange.addStyleName("kune-Margin-Medium-l");
wsHP.add(wsThemeInfo);
wsHP.add(toolbarWsChange);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,29 +1,9 @@
-/*
- *
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
package org.ourproject.kune.workspace.client.options.pscape;
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.workspace.client.options.EntityOptions;
-public class EntityOptionsPublicSpaceConfPresenter implements GroupOptionsPublicSpaceConf, UserOptionsPublicSpaceConf {
-
+public abstract class EntityOptionsPublicSpaceConfPresenter {
private EntityOptionsPublicSpaceConfView view;
private final EntityOptions entityOptions;
@@ -39,4 +19,5 @@
this.view = view;
entityOptions.addTab(view);
}
+
}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConfPresenter.java (from rev 1131, trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConfPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,51 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.workspace.client.options.pscape;
+
+import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.options.EntityOptions;
+import org.ourproject.kune.workspace.client.themes.WsTheme;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
+import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
+
+import com.calclab.suco.client.events.Listener;
+
+public class GroupOptionsPublicSpaceConfPresenter extends EntityOptionsPublicSpaceConfPresenter implements
+ GroupOptionsPublicSpaceConf {
+
+ public GroupOptionsPublicSpaceConfPresenter(final Session session, final StateManager stateManager,
+ final EntityOptions entityOptions, final WsThemeManager themeManager, final WsThemeSelector themeSelector) {
+ super(entityOptions);
+ themeSelector.addThemeSelected(new Listener<WsTheme>() {
+ public void onEvent(final WsTheme theme) {
+ themeManager.changeTheme(session.getCurrentStateToken(), theme);
+ }
+ });
+ stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
+ public void onEvent(final StateAbstractDTO state) {
+ final String theme = state.getGroup().getWorkspaceTheme();
+ themeSelector.select(theme);
+ }
+ });
+ }
+
+}
\ No newline at end of file
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,60 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.workspace.client.options.pscape;
+
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.workspace.client.options.EntityOptions;
+import org.ourproject.kune.workspace.client.themes.WsTheme;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
+import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
+
+import com.calclab.suco.client.events.Listener;
+
+public class UserOptionsPublicSpaceConfPresenter extends EntityOptionsPublicSpaceConfPresenter implements
+ UserOptionsPublicSpaceConf {
+
+ private final WsThemeSelector themeSelector;
+
+ public UserOptionsPublicSpaceConfPresenter(final Session session, final EntityOptions entityOptions,
+ final WsThemeManager themeManager, final WsThemeSelector themeSelector) {
+ super(entityOptions);
+ this.themeSelector = themeSelector;
+ themeSelector.addThemeSelected(new Listener<WsTheme>() {
+ public void onEvent(final WsTheme theme) {
+ themeManager.changeTheme(session.getCurrentUser().getStateToken(), theme);
+ }
+ });
+ final UserInfoDTO userInfo = session.getCurrentUserInfo();
+ if (userInfo != null) {
+ setSelector(userInfo);
+ }
+ session.onUserSignIn(new Listener<UserInfoDTO>() {
+ public void onEvent(final UserInfoDTO parameter) {
+ setSelector(userInfo);
+ }
+ });
+ }
+
+ private void setSelector(final UserInfoDTO userInfo) {
+ themeSelector.select(userInfo.getUserGroup().getWorkspaceTheme());
+ }
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -21,18 +21,18 @@
private EntityOptionsToolsConfView view;
private final EntityOptions entityOptions;
protected final Session session;
- private final Provider<GroupServiceAsync> groupServiceProvider;
+ private final Provider<GroupServiceAsync> groupService;
protected final I18nTranslationService i18n;
protected final StateManager stateManager;
public EntityOptionsToolsConfPresenter(final Session session, final StateManager stateManager,
final I18nTranslationService i18n, final EntityOptions entityOptions,
- final Provider<GroupServiceAsync> groupServiceProvider) {
+ final Provider<GroupServiceAsync> groupService) {
this.session = session;
this.stateManager = stateManager;
this.i18n = i18n;
this.entityOptions = entityOptions;
- this.groupServiceProvider = groupServiceProvider;
+ this.groupService = groupService;
}
public View getView() {
@@ -51,8 +51,6 @@
if (checked) {
if (!(enabledTools.contains(toolName))) {
setToolCheckedInServer(checked, toolName);
- } else {
- // do nothing
}
} else {
if (enabledTools.contains(toolName)) {
@@ -103,7 +101,7 @@
}
protected void setToolCheckedInServer(final boolean checked, final String toolName) {
- groupServiceProvider.get().setToolEnabled(session.getUserHash(), getOperationToken(), toolName, checked,
+ groupService.get().setToolEnabled(session.getUserHash(), getOperationToken(), toolName, checked,
new AsyncCallback<Object>() {
public void onFailure(final Throwable caught) {
view.setChecked(toolName, !checked);
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/site/DefCssResource.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/DefCssResource.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/DefCssResource.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,11 @@
+package org.ourproject.kune.workspace.client.site;
+
+import com.google.gwt.libideas.resources.client.CssResource;
+import com.google.gwt.libideas.resources.client.ImmutableResourceBundle;
+
+public interface DefCssResource extends ImmutableResourceBundle {
+
+ @Resource("defCssResource.css")
+ CssResource css();
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/site/SiteResources.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/SiteResources.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/SiteResources.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,12 +1,13 @@
package org.ourproject.kune.workspace.client.site;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.libideas.resources.client.ImmutableResourceBundle;
import com.google.gwt.libideas.resources.client.TextResource;
public interface SiteResources extends ImmutableResourceBundle {
- public static final SiteResources INSTANCE = GWT.create(SiteResources.class);
+ @Deprecated
+ // not used now, only here for future use
@Resource("about.html")
public TextResource aboutKune();
+
}
\ No newline at end of file
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/site/defCssResource.css
===================================================================
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -74,7 +74,7 @@
}
};
bugsAction.putValue(Action.NAME, i18n.t("Report Kune issues/problems"));
- bugsAction.putValue(Action.SMALL_ICON, img.info());
+ bugsAction.putValue(Action.SMALL_ICON, img.bug());
final MenuItemDescriptor item = new MenuItemDescriptor(bugsAction);
addAction(item);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -19,10 +19,10 @@
\*/
package org.ourproject.kune.workspace.client.sitebar.siteoptions;
-import org.ourproject.kune.platf.client.actions.ui.AbstractActionExtensibleView;
+import org.ourproject.kune.platf.client.actions.ui.ActionExtensibleView;
import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor;
-public interface SiteOptionsView extends AbstractActionExtensibleView {
+public interface SiteOptionsView extends ActionExtensibleView {
void setMenu(MenuDescriptor menuDescriptor);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -38,7 +38,6 @@
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
import org.ourproject.kune.platf.client.ui.img.ImgResources;
-import org.ourproject.kune.workspace.client.options.UserOptions;
import com.calclab.suco.client.events.Listener;
import com.calclab.suco.client.events.Listener0;
@@ -49,7 +48,6 @@
private SiteUserOptionsView view;
private final StateManager stateManager;
private final Session session;
- private final Provider<UserOptions> userOptions;
private final Provider<FileDownloadUtils> downloadProvider;
private MenuDescriptor menuDescriptor;
private final I18nTranslationService i18n;
@@ -58,12 +56,11 @@
private MenuDescriptor partiMenu;;
public SiteUserOptionsPresenter(final Session session, final StateManager stateManager,
- final Provider<UserOptions> userOptions, final Provider<FileDownloadUtils> downloadProvider,
- final I18nTranslationService i18n, final ImgResources img) {
+ final Provider<FileDownloadUtils> downloadProvider, final I18nTranslationService i18n,
+ final ImgResources img) {
super();
this.session = session;
this.stateManager = stateManager;
- this.userOptions = userOptions;
this.downloadProvider = downloadProvider;
this.i18n = i18n;
this.img = img;
@@ -99,7 +96,8 @@
private void addPartipation(final GroupDTO group) {
final String logoImageUrl = group.hasLogo() ? downloadProvider.get().getLogoImageUrl(group.getStateToken())
: "images/group-def-icon.gif";
- final GotoGroupAction gotoGroupAction = new GotoGroupAction(logoImageUrl, group.getLongName(), stateManager);
+ final GotoGroupAction gotoGroupAction = new GotoGroupAction(logoImageUrl, group.getShortName(),
+ group.getLongName(), stateManager);
view.addAction(new MenuItemDescriptor(partiMenu, gotoGroupAction));
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -19,10 +19,10 @@
\*/
package org.ourproject.kune.workspace.client.sitebar.siteusermenu;
-import org.ourproject.kune.platf.client.actions.ui.AbstractActionExtensibleView;
+import org.ourproject.kune.platf.client.actions.ui.ActionExtensibleView;
import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor;
-public interface SiteUserOptionsView extends AbstractActionExtensibleView {
+public interface SiteUserOptionsView extends ActionExtensibleView {
void setLoggedUserName(String name);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -31,7 +31,6 @@
import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuPanel;
import org.ourproject.kune.workspace.client.skel.SummaryPanel;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
import com.calclab.emiteuimodule.client.users.UserGridPanel;
import com.calclab.suco.client.events.Listener;
@@ -52,7 +51,7 @@
private final Label noMembersPublic;
public GroupMembersSummaryPanel(final GroupMembersSummaryPresenter presenter, final I18nUITranslationService i18n,
- final WorkspaceSkeleton ws, ActionToolbarView<StateToken> actionToolbarView) {
+ final WorkspaceSkeleton ws, final ActionToolbarView<StateToken> actionToolbarView) {
super(i18n.t("Group members"), i18n.t("People and groups collaborating in this group"), ws);
this.presenter = presenter;
this.i18n = i18n;
@@ -62,7 +61,7 @@
+ i18n.t("Drop into a room to invite the user to join the chat room"));
gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This is an orphaned project, if you are interested "
+ "please request to join to work on it"), dragConf, true, true, false, true, false);
- Listener<String> go = new Listener<String>() {
+ final Listener<String> go = new Listener<String>() {
public void onEvent(final String groupShortName) {
presenter.onDoubleClick(groupShortName);
}
@@ -126,10 +125,6 @@
// gridMenuPanel.setDraggable(draggable);
}
- public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
- // super.setTheme(oldTheme, newTheme);
- }
-
public void showMembersNotVisible() {
noMembersPublic.setVisible(true);
gridMenuPanel.setVisible(false);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -52,12 +52,9 @@
import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import org.ourproject.kune.workspace.client.search.GroupLiveSearcher;
import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionGroupSummaryToolbar;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
import com.calclab.emite.core.client.xmpp.stanzas.XmppURI;
import com.calclab.suco.client.events.Listener;
-import com.calclab.suco.client.events.Listener2;
import com.calclab.suco.client.ioc.Provider;
public class GroupMembersSummaryPresenter extends SocialNetworkPresenter implements GroupMembersSummary {
@@ -81,9 +78,9 @@
final ImageUtils imageUtils, final Session session,
final Provider<SocialNetworkServiceAsync> snServiceProvider,
final Provider<GroupServiceAsync> groupServiceProvider,
- final Provider<GroupLiveSearcher> liveSearcherProvider, final WsThemePresenter wsThemePresenter,
- final Provider<ChatEngine> chatEngineProvider, final GroupActionRegistry groupActionRegistry,
- final ActionGroupSummaryToolbar toolbar, final Provider<FileDownloadUtils> downloadProvider) {
+ final Provider<GroupLiveSearcher> liveSearcherProvider, final Provider<ChatEngine> chatEngineProvider,
+ final GroupActionRegistry groupActionRegistry, final ActionGroupSummaryToolbar toolbar,
+ final Provider<FileDownloadUtils> downloadProvider) {
super(i18n, stateManager, session, snServiceProvider, groupActionRegistry, downloadProvider);
this.i18n = i18n;
this.stateManager = stateManager;
@@ -93,7 +90,7 @@
this.liveSearcherProvider = liveSearcherProvider;
this.groupActionRegistry = groupActionRegistry;
final Listener<StateAbstractDTO> setStateListener = new Listener<StateAbstractDTO>() {
- public void onEvent(StateAbstractDTO state) {
+ public void onEvent(final StateAbstractDTO state) {
setState(state);
toolbar.disableMenusAndClearButtons();
toolbar.addActions(groupActionRegistry.getCurrentActions(state.getGroup().getStateToken(),
@@ -103,11 +100,6 @@
};
stateManager.onStateChanged(setStateListener);
stateManager.onSocialNetworkChanged(setStateListener);
- wsThemePresenter.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
- public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
- view.setTheme(oldTheme, newTheme);
- }
- });
session.onInitDataReceived(new Listener<InitDataDTO>() {
public void onEvent(final InitDataDTO initData) {
addUserOperation(new MenuItem<GroupDTO>("images/new-chat.gif", i18n.t("Start a chat with this member"),
@@ -156,9 +148,9 @@
}
private void createActions() {
- ActionToolbarMenuDescriptor<StateToken> addMember = new ActionToolbarMenuDescriptor<StateToken>(
+ final ActionToolbarMenuDescriptor<StateToken> addMember = new ActionToolbarMenuDescriptor<StateToken>(
AccessRolDTO.Administrator, membersBottom, new Listener<StateToken>() {
- public void onEvent(StateToken parameter) {
+ public void onEvent(final StateToken parameter) {
liveSearcherProvider.get().onSelection(new Listener<LinkDTO>() {
public void onEvent(final LinkDTO link) {
view.confirmAddCollab(link.getShortName(), link.getLongName());
@@ -183,21 +175,21 @@
createNewMembersPolicyAction(i18n.t("auto accept request to join"), AdmissionTypeDTO.Open);
}
- private void createNewMembersPolicyAction(String textDescription, final AdmissionTypeDTO admissionPolicy) {
- ActionToolbarMenuRadioDescriptor<StateToken> newMembersPolicy = new ActionToolbarMenuRadioDescriptor<StateToken>(
+ private void createNewMembersPolicyAction(final String textDescription, final AdmissionTypeDTO admissionPolicy) {
+ final ActionToolbarMenuRadioDescriptor<StateToken> newMembersPolicy = new ActionToolbarMenuRadioDescriptor<StateToken>(
AccessRolDTO.Administrator, membersBottom, new Listener<StateToken>() {
- public void onEvent(StateToken parameter) {
+ public void onEvent(final StateToken parameter) {
groupServiceProvider.get().setGroupNewMembersJoiningPolicy(session.getUserHash(),
session.getCurrentState().getGroup().getStateToken(), admissionPolicy,
new AsyncCallbackSimple<Object>() {
- public void onSuccess(Object result) {
+ public void onSuccess(final Object result) {
NotifyUser.info(i18n.t("Members joining policy changed"));
}
});
}
}, NEW_MEMBERS_POLICY_GROUP, new RadioMustBeChecked() {
public boolean mustBeChecked() {
- StateAbstractDTO currentState = session.getCurrentState();
+ final StateAbstractDTO currentState = session.getCurrentState();
return currentState.getGroup().getAdmissionType().equals(admissionPolicy);
}
});
@@ -207,23 +199,24 @@
groupActionRegistry.addAction(newMembersPolicy);
}
- private void createSetMembersVisibilityAction(String textDescription, final SocialNetworkVisibilityDTO visibility) {
- ActionToolbarMenuRadioDescriptor<StateToken> showMembers = new ActionToolbarMenuRadioDescriptor<StateToken>(
+ private void createSetMembersVisibilityAction(final String textDescription,
+ final SocialNetworkVisibilityDTO visibility) {
+ final ActionToolbarMenuRadioDescriptor<StateToken> showMembers = new ActionToolbarMenuRadioDescriptor<StateToken>(
AccessRolDTO.Administrator, membersBottom, new Listener<StateToken>() {
- public void onEvent(StateToken parameter) {
+ public void onEvent(final StateToken parameter) {
groupServiceProvider.get().setSocialNetworkVisibility(session.getUserHash(),
session.getCurrentState().getGroup().getStateToken(), visibility,
new AsyncCallbackSimple<Object>() {
- public void onSuccess(Object result) {
+ public void onSuccess(final Object result) {
NotifyUser.info(i18n.t("Members visibility changed"));
}
});
}
}, MEMBERS_VISIBILITY_GROUP, new RadioMustBeChecked() {
public boolean mustBeChecked() {
- StateAbstractDTO currentState = session.getCurrentState();
+ final StateAbstractDTO currentState = session.getCurrentState();
if (!currentState.getGroup().isPersonal()) {
- SocialNetworkDataDTO socialNetworkData = currentState.getSocialNetworkData();
+ final SocialNetworkDataDTO socialNetworkData = currentState.getSocialNetworkData();
return socialNetworkData.getSocialNetworkVisibility().equals(visibility);
}
return false;
@@ -245,7 +238,7 @@
// final int numAdmins = adminsList.size();
- boolean userIsAdmin = rights.isAdministrable();
+ final boolean userIsAdmin = rights.isAdministrable();
final boolean userCanView = rights.isVisible();
view.clear();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -21,7 +21,6 @@
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
public interface GroupMembersSummaryView {
@@ -33,8 +32,6 @@
void setDraggable(boolean draggable);
- void setTheme(WsTheme oldTheme, WsTheme newTheme);
-
void setVisible(boolean visible);
void showMembersNotVisible();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -29,7 +29,6 @@
import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuPanel;
import org.ourproject.kune.workspace.client.skel.SummaryPanel;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
import com.calclab.suco.client.events.Listener;
import com.google.gwt.user.client.ui.Widget;
@@ -42,11 +41,11 @@
private final AbstractToolbar toolbar;
public ParticipationSummaryPanel(final ParticipationSummaryPresenter presenter, final I18nTranslationService i18n,
- final WorkspaceSkeleton ws, ActionToolbarView<StateToken> actionToolbarView) {
+ final WorkspaceSkeleton ws, final ActionToolbarView<StateToken> actionToolbarView) {
super(i18n.t("Participates in"), i18n.t("Groups in which the user participates"), ws);
gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This user does not belong to any group"), false, false,
false, false, false);
- Listener<String> go = new Listener<String>() {
+ final Listener<String> go = new Listener<String>() {
public void onEvent(final String groupShortName) {
presenter.onDoubleClick(groupShortName);
}
@@ -77,8 +76,4 @@
toolbar.removeAll();
}
- public void setTheme(WsTheme oldTheme, WsTheme newTheme) {
- // TODO Auto-generated method stub
- }
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -33,11 +33,8 @@
import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionParticipationToolbar;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
import com.calclab.suco.client.events.Listener;
-import com.calclab.suco.client.events.Listener2;
import com.calclab.suco.client.ioc.Provider;
public class ParticipationSummaryPresenter extends SocialNetworkPresenter implements ParticipationSummary {
@@ -49,9 +46,8 @@
public ParticipationSummaryPresenter(final I18nUITranslationService i18n, final StateManager stateManager,
final ImageUtils imageUtils, final Session session,
- final Provider<SocialNetworkServiceAsync> snServiceProvider, final WsThemePresenter wsThemePresenter,
- GroupActionRegistry groupActionRegistry, ActionParticipationToolbar actionParticipationToolbar,
- final Provider<FileDownloadUtils> downloadProvider) {
+ final Provider<SocialNetworkServiceAsync> snServiceProvider, final GroupActionRegistry groupActionRegistry,
+ final ActionParticipationToolbar actionParticipationToolbar, final Provider<FileDownloadUtils> downloadProvider) {
super(i18n, stateManager, session, snServiceProvider, groupActionRegistry, downloadProvider);
adminCategory = new GridGroup("admin in:", " ", i18n.tWithNT("Administrate these groups",
"talking about a person"), false);
@@ -61,17 +57,12 @@
false);
super.addGroupOperation(gotoGroupMenuItem, false);
final Listener<StateAbstractDTO> setStateListener = new Listener<StateAbstractDTO>() {
- public void onEvent(StateAbstractDTO state) {
+ public void onEvent(final StateAbstractDTO state) {
setState(state);
}
};
stateManager.onStateChanged(setStateListener);
stateManager.onSocialNetworkChanged(setStateListener);
- wsThemePresenter.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
- public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
- view.setTheme(oldTheme, newTheme);
- }
- });
}
public void init(final ParticipationSummaryView view) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,6 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
public interface ParticipationSummaryView extends View {
@@ -30,8 +29,6 @@
void clear();
- void setTheme(WsTheme oldTheme, WsTheme newTheme);
-
void setVisible(boolean b);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -23,7 +23,6 @@
import org.ourproject.kune.platf.client.ui.KuneUiUtils;
import org.ourproject.kune.workspace.client.skel.SummaryPanel;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
@@ -76,8 +75,4 @@
public void clear() {
flowPanel.clear();
}
-
- public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
- // TODO Auto-generated method stub
- }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -28,12 +28,9 @@
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.search.SiteSearcher;
import org.ourproject.kune.workspace.client.search.SiteSearcherType;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
import com.allen_sauer.gwt.log.client.Log;
import com.calclab.suco.client.events.Listener;
-import com.calclab.suco.client.events.Listener2;
import com.calclab.suco.client.ioc.Provider;
public class TagsSummaryPresenter implements TagsSummary {
@@ -46,7 +43,7 @@
private final Session session;
public TagsSummaryPresenter(final Session session, final Provider<SiteSearcher> searcherProvider,
- final StateManager stateManager, final WsThemePresenter wsThemePresenter) {
+ final StateManager stateManager) {
this.session = session;
this.searcherProvider = searcherProvider;
stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
@@ -58,11 +55,6 @@
}
}
});
- wsThemePresenter.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
- public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
- view.setTheme(oldTheme, newTheme);
- }
- });
}
public void doSearchTag(final String name) {
@@ -101,7 +93,7 @@
final int min = tagCloudResult.getMinValue();
final int diff = max - min;
final int step = (MAXSIZE - MINSIZE) / (diff == 0 ? 1 : diff);
- for (TagCountDTO tagCount : tagCloudResult.getTagCountList()) {
+ for (final TagCountDTO tagCount : tagCloudResult.getTagCountList()) {
final int size = Math.round((MINSIZE + (tagCount.getCount().floatValue() - min) * step));
view.addTag(tagCount.getName(), tagCount.getCount(), "kune-ft" + size + "px");
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -20,7 +20,6 @@
package org.ourproject.kune.workspace.client.tags;
import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
public interface TagsSummaryView extends View {
@@ -30,8 +29,6 @@
void expand();
- void setTheme(WsTheme oldTheme, WsTheme newTheme);
-
void setVisible(boolean visible);
}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java (from rev 1121, trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java 2009-06-08 14:18:03 UTC (rev 1121)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,105 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ \*/
+package org.ourproject.kune.workspace.client.themes;
+
+import org.ourproject.kune.platf.client.dto.InitDataDTO;
+import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
+
+import com.calclab.suco.client.events.Event2;
+import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.events.Listener2;
+import com.calclab.suco.client.ioc.Provider;
+
+public class WsThemeManager {
+
+ private WsTheme previousTheme;
+ private final Event2<WsTheme, WsTheme> onThemeChanged;
+ private final Provider<GroupServiceAsync> groupServiceProvider;
+ private final Session session;
+ private WsTheme defTheme;
+
+ public WsThemeManager(final Session session, final Provider<GroupServiceAsync> groupServiceProvider,
+ final StateManager stateManager) {
+ this.session = session;
+ this.groupServiceProvider = groupServiceProvider;
+ this.onThemeChanged = new Event2<WsTheme, WsTheme>("onThemeChanged");
+ session.onInitDataReceived(new Listener<InitDataDTO>() {
+ public void onEvent(final InitDataDTO initData) {
+ setDefTheme(initData);
+ setTheme(defTheme);
+ }
+ });
+ stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
+ public void onEvent(final StateAbstractDTO state) {
+ setState(state);
+ }
+ });
+ }
+
+ public void changeTheme(final StateToken token, final WsTheme newTheme) {
+ NotifyUser.showProgressProcessing();
+ groupServiceProvider.get().changeGroupWsTheme(session.getUserHash(), token, newTheme.getName(),
+ new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ if (session.getCurrentState().getStateToken().getGroup().equals(token.getGroup())) {
+ setTheme(newTheme);
+ }
+ NotifyUser.hideProgress();
+ }
+ });
+ }
+
+ public void addOnThemeChanged(final Listener2<WsTheme, WsTheme> listener) {
+ onThemeChanged.add(listener);
+ }
+
+ protected void onChangeGroupWsTheme(final WsTheme newTheme) {
+ NotifyUser.showProgressProcessing();
+ groupServiceProvider.get().changeGroupWsTheme(session.getUserHash(), session.getCurrentState().getStateToken(),
+ newTheme.getName(), new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ setTheme(newTheme);
+ NotifyUser.hideProgress();
+ }
+ });
+ }
+
+ private void setDefTheme(final InitDataDTO initData) {
+ defTheme = new WsTheme(initData.getWsThemes()[0]);
+ }
+
+ private void setState(final StateAbstractDTO state) {
+ setTheme(new WsTheme(state.getGroup().getWorkspaceTheme()));
+ }
+
+ private void setTheme(final WsTheme newTheme) {
+ if (previousTheme == null || !previousTheme.equals(newTheme)) {
+ onThemeChanged.fire(previousTheme, newTheme);
+ }
+ previousTheme = newTheme;
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManagerPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManagerPanel.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManagerPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,15 @@
+package org.ourproject.kune.workspace.client.themes;
+
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+import com.calclab.suco.client.events.Listener2;
+
+public class WsThemeManagerPanel {
+ public WsThemeManagerPanel(final WsThemeManager presenter, final WorkspaceSkeleton wskel) {
+ presenter.addOnThemeChanged(new Listener2<WsTheme, WsTheme>() {
+ public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
+ wskel.setTheme(oldTheme, newTheme);
+ }
+ });
+ }
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePanel.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePanel.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,73 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- \*/
-package org.ourproject.kune.workspace.client.themes;
-
-import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-
-import com.calclab.suco.client.events.Listener2;
-import com.gwtext.client.core.EventObject;
-import com.gwtext.client.widgets.ToolbarButton;
-import com.gwtext.client.widgets.menu.BaseItem;
-import com.gwtext.client.widgets.menu.Menu;
-import com.gwtext.client.widgets.menu.MenuItem;
-import com.gwtext.client.widgets.menu.event.BaseItemListenerAdapter;
-
-public class WsThemePanel extends ToolbarButton implements WsThemeView {
-
- private final Menu menu;
- private final WsThemePresenter presenter;
- private final I18nUITranslationService i18n;
-
- public WsThemePanel(final WorkspaceSkeleton ws, final WsThemePresenter presenter,
- final I18nUITranslationService i18n) {
- this.presenter = presenter;
- this.i18n = i18n;
- menu = new Menu();
-
- menu.setDefaultAlign("br-tr");
- super.setMenu(menu);
- super.setIcon("images/colors.gif");
- // super.setTooltip(i18n.t("Select Workspace theme for this group"));
- // ws.getSiteTraybar().addButton(this);
- presenter.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
- public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
- ws.setTheme(oldTheme, newTheme);
- }
- });
- }
-
- public void setThemes(final String[] themes) {
- for (String theme2 : themes) {
- final WsTheme theme = new WsTheme(theme2);
- final MenuItem item = new MenuItem();
- final String name = theme.getName();
- item.setIconCls("k-wstheme-icon-" + name);
- item.setText(i18n.t(name));
- menu.addItem(item);
- item.addListener(new BaseItemListenerAdapter() {
- @Override
- public void onClick(final BaseItem item, final EventObject e) {
- presenter.onChangeGroupWsTheme(theme);
- }
- });
- }
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,102 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- \*/
-package org.ourproject.kune.workspace.client.themes;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dto.InitDataDTO;
-import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
-
-import com.calclab.suco.client.events.Event2;
-import com.calclab.suco.client.events.Listener;
-import com.calclab.suco.client.events.Listener2;
-import com.calclab.suco.client.ioc.Provider;
-
-public class WsThemePresenter {
-
- private WsThemeView view;
- private WsTheme previousTheme;
- private final Event2<WsTheme, WsTheme> onThemeChanged;
- private final Provider<GroupServiceAsync> groupServiceProvider;
- private final Session session;
- private WsTheme defTheme;
-
- public WsThemePresenter(final Session session, final Provider<GroupServiceAsync> groupServiceProvider,
- final StateManager stateManager) {
- this.session = session;
- this.groupServiceProvider = groupServiceProvider;
- this.onThemeChanged = new Event2<WsTheme, WsTheme>("onThemeChanged");
- session.onInitDataReceived(new Listener<InitDataDTO>() {
- public void onEvent(final InitDataDTO initData) {
- view.setThemes(initData.getWsThemes());
- setDefTheme(initData);
- setTheme(defTheme);
- }
- });
- stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
- public void onEvent(final StateAbstractDTO state) {
- setState(state);
- }
- });
- }
-
- public View getView() {
- return view;
- }
-
- public void init(final WsThemeView view) {
- this.view = view;
- }
-
- public void onThemeChanged(final Listener2<WsTheme, WsTheme> listener) {
- onThemeChanged.add(listener);
- }
-
- protected void onChangeGroupWsTheme(final WsTheme newTheme) {
- NotifyUser.showProgressProcessing();
- groupServiceProvider.get().changeGroupWsTheme(session.getUserHash(), session.getCurrentState().getStateToken(),
- newTheme.getName(), new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- setTheme(newTheme);
- NotifyUser.hideProgress();
- }
- });
- }
-
- private void setDefTheme(final InitDataDTO initData) {
- defTheme = new WsTheme(initData.getWsThemes()[0]);
- }
-
- private void setState(final StateAbstractDTO state) {
- setTheme(new WsTheme(state.getGroup().getWorkspaceTheme()));
- }
-
- private void setTheme(final WsTheme newTheme) {
- if (previousTheme == null || !previousTheme.equals(newTheme)) {
- onThemeChanged.fire(previousTheme, newTheme);
- }
- previousTheme = newTheme;
- }
-
-}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelector.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelector.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelector.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,15 @@
+package org.ourproject.kune.workspace.client.themes;
+
+import org.ourproject.kune.platf.client.View;
+
+import com.calclab.suco.client.events.Listener;
+
+public interface WsThemeSelector {
+
+ void addThemeSelected(Listener<WsTheme> listener);
+
+ View getView();
+
+ void select(String theme);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelectorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelectorPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelectorPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,108 @@
+package org.ourproject.kune.workspace.client.themes;
+
+import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.actions.AbstractExtendedAction;
+import org.ourproject.kune.platf.client.actions.Action;
+import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.ui.ActionExtensibleView;
+import org.ourproject.kune.platf.client.actions.ui.CssStyleDescriptor;
+import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor;
+import org.ourproject.kune.platf.client.actions.ui.MenuItemDescriptor;
+import org.ourproject.kune.platf.client.dto.InitDataDTO;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.state.Session;
+
+import com.calclab.suco.client.events.Event;
+import com.calclab.suco.client.events.Listener;
+
+public class WsThemeSelectorPresenter implements WsThemeSelector {
+
+ class ThemeAction extends AbstractExtendedAction {
+
+ private final String theme;
+
+ public ThemeAction(final String theme) {
+ super();
+ this.theme = theme;
+ putValue(NAME, i18n.t(theme));
+ putValue(SMALL_ICON, CssStyleDescriptor.create("k-wstheme-icon-" + theme));
+ }
+
+ public void actionPerformed(final ActionEvent event) {
+ themeSelected.fire(new WsTheme(theme));
+ menu.setText(i18n.t(theme));
+ }
+ }
+
+ private final Event<WsTheme> themeSelected;
+ private final Event<String> selectItemInUI;
+ private final I18nTranslationService i18n;
+ private MenuDescriptor menu;
+ private ActionExtensibleView view;
+ private final Session session;
+
+ public WsThemeSelectorPresenter(final Session session, final I18nTranslationService i18n) {
+ this.session = session;
+ this.i18n = i18n;
+ this.themeSelected = new Event<WsTheme>("themeSelected");
+ this.selectItemInUI = new Event<String>("selectItemInUI");
+ }
+
+ public void addThemeSelected(final Listener<WsTheme> listener) {
+ themeSelected.add(listener);
+ }
+
+ public View getView() {
+ return view;
+ }
+
+ public void init(final ActionExtensibleView view) {
+ this.view = view;
+ createActions();
+ }
+
+ public void select(final String theme) {
+ selectItemInUI.fire(theme);
+ }
+
+ private void createActions() {
+ createMenu();
+ final InitDataDTO initData = session.getInitData();
+ if (initData == null) {
+ session.onInitDataReceived(new Listener<InitDataDTO>() {
+ public void onEvent(final InitDataDTO initData) {
+ setThemes(initData);
+ }
+ });
+ } else {
+ setThemes(initData);
+ }
+ }
+
+ private void createMenu() {
+ menu = new MenuDescriptor(" ");
+ menu.putValue(Action.SMALL_ICON, "images/colors.gif");
+ }
+
+ private void createTheme(final String theme) {
+ final ThemeAction action = new ThemeAction(theme);
+ final MenuItemDescriptor themeItem = new MenuItemDescriptor(menu, action);
+ selectItemInUI.add(new Listener<String>() {
+ public void onEvent(final String themeToSelect) {
+ if (theme.equals(themeToSelect)) {
+ menu.setText(i18n.t(theme));
+ // themeItem.setChecked(true);
+ }
+ }
+ });
+ view.addAction(themeItem);
+ }
+
+ private void setThemes(final InitDataDTO initData) {
+ view.addAction(menu);
+ for (final String theme : initData.getWsThemes()) {
+ createTheme(theme);
+ }
+ }
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,30 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- \*/
-package org.ourproject.kune.workspace.client.themes;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface WsThemeView extends View {
-
- void setThemes(String[] themes);
-
- void setVisible(boolean visible);
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tool/AbstractClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tool/AbstractClientTool.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tool/AbstractClientTool.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -20,12 +20,12 @@
package org.ourproject.kune.workspace.client.tool;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
public abstract class AbstractClientTool implements ClientTool {
public AbstractClientTool(final String shortName, final String longName, final ToolSelector toolSelector,
- final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws) {
+ final WsThemeManager wsThemePresenter, final WorkspaceSkeleton ws) {
final ToolSelectorItemPresenter presenter = new ToolSelectorItemPresenter(shortName, longName, toolSelector,
wsThemePresenter);
final ToolSelectorItemPanel panel = new ToolSelectorItemPanel(presenter, ws);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
public abstract class FoldableAbstractClientTool extends AbstractClientTool {
public static final String UPLOADEDFILE_SUFFIX = "uploaded";
@@ -30,7 +30,7 @@
protected final ContentCapabilitiesRegistry contentCapabilitiesRegistry;
public FoldableAbstractClientTool(final String shortName, final String longName, final ToolSelector toolSelector,
- final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
+ final WsThemeManager wsThemePresenter, final WorkspaceSkeleton ws,
final ContentCapabilitiesRegistry contentCapabilitiesRegistry) {
super(shortName, longName, toolSelector, wsThemePresenter, ws);
this.contentCapabilitiesRegistry = contentCapabilitiesRegistry;
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorItemPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorItemPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorItemPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.workspace.client.themes.WsTheme;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import com.calclab.suco.client.events.Listener2;
@@ -30,12 +30,12 @@
private ToolSelectorItemView view;
private final ToolSelector toolSelector;
- private final WsThemePresenter wsThemePresenter;
+ private final WsThemeManager wsThemePresenter;
private final String shortName;
private final String longName;
public ToolSelectorItemPresenter(final String shortName, final String longName, final ToolSelector toolSelector,
- final WsThemePresenter wsThemePresenter) {
+ final WsThemeManager wsThemePresenter) {
this.shortName = shortName;
this.longName = longName;
this.toolSelector = toolSelector;
@@ -53,7 +53,7 @@
public void init(final ToolSelectorItemView view) {
this.view = view;
toolSelector.addTool(this);
- wsThemePresenter.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
+ wsThemePresenter.addOnThemeChanged(new Listener2<WsTheme, WsTheme>() {
public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
setTheme(oldTheme, newTheme);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -25,7 +25,7 @@
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
import org.ourproject.kune.platf.client.errors.UIException;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import com.allen_sauer.gwt.log.client.Log;
import com.calclab.suco.client.events.Listener;
@@ -35,7 +35,7 @@
private final HashMap<String, ToolSelectorItem> tools;
- public ToolSelectorPresenter(final StateManager stateManager, final WsThemePresenter wsThemePresenter) {
+ public ToolSelectorPresenter(final StateManager stateManager, final WsThemeManager wsThemePresenter) {
tools = new HashMap<String, ToolSelectorItem>();
stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
public void onEvent(final StateAbstractDTO state) {
Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPresenterTest.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPresenterTest.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -8,7 +8,7 @@
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
public class EntityLogoPresenterTest {
@@ -21,7 +21,7 @@
public void before() {
stateManager = Mockito.mock(StateManager.class);
session = Mockito.mock(Session.class);
- WsThemePresenter theme = Mockito.mock(WsThemePresenter.class);
+ WsThemeManager theme = Mockito.mock(WsThemeManager.class);
entityLogoPresenter = new EntityHeaderPresenter(stateManager, theme, session);
view = Mockito.mock(EntityHeaderView.class);
entityLogoPresenter.init(view);
Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -11,7 +11,7 @@
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.search.SiteSearcher;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import com.calclab.suco.client.ioc.Provider;
@@ -25,12 +25,12 @@
public void before() {
final Session session = Mockito.mock(Session.class);
final StateManager stateManager = Mockito.mock(StateManager.class);
- final WsThemePresenter theme = Mockito.mock(WsThemePresenter.class);
+ final WsThemeManager theme = Mockito.mock(WsThemeManager.class);
final SiteSearcher searcher = Mockito.mock(SiteSearcher.class);
final Provider searcherProvider = Mockito.mock(Provider.class);
Mockito.when(searcherProvider.get()).thenReturn(searcher);
view = Mockito.mock(TagsSummaryView.class);
- tagsSummaryPresenter = new TagsSummaryPresenter(session, searcherProvider, stateManager, theme);
+ tagsSummaryPresenter = new TagsSummaryPresenter(session, searcherProvider, stateManager);
tagsSummaryPresenter.init(view);
}
Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -4,7 +4,7 @@
import org.junit.Test;
import org.mockito.Mockito;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelectorItem;
import org.ourproject.kune.workspace.client.tool.ToolSelectorPresenter;
@@ -50,7 +50,7 @@
@Before
public void begin() {
final StateManager stateManager = Mockito.mock(StateManager.class);
- final WsThemePresenter themePresenter = Mockito.mock(WsThemePresenter.class);
+ final WsThemeManager themePresenter = Mockito.mock(WsThemeManager.class);
toolSelector = new ToolSelectorPresenter(stateManager, themePresenter);
toolSelectorItem1 = Mockito.mock(ToolSelectorItem.class);
toolSelectorItem2 = Mockito.mock(ToolSelectorItem.class);
1
0
Author: vjrj
Date: 2009-06-29 21:41:17 +0200 (Mon, 29 Jun 2009)
New Revision: 1132
Added:
trunk/script/generateAbout.sh
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/add-green.png
trunk/src/main/java/org/ourproject/kune/platf/public/images/addGreen.png
trunk/src/main/java/org/ourproject/kune/workspace/client/site/SiteResources.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddieHeaderButton.java
Removed:
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insert/
trunk/src/main/java/org/ourproject/kune/workspace/client/events/
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddie.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddieView.java
Modified:
trunk/COPYRIGHT
trunk/TODO
trunk/debian/TODO
trunk/script/deploy_gwt.sh
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/InfoDialog.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/GroupOptionsPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java
Log:
Incomplete - task User/GroupOptions cleanup
Complete - task Add As Buddie button
Complete - task About kune
Modified: trunk/COPYRIGHT
===================================================================
--- trunk/COPYRIGHT 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/COPYRIGHT 2009-06-29 19:41:17 UTC (rev 1132)
@@ -81,13 +81,13 @@
others
--------------------------------------------------------------------------------
suco
- http://suco.googlecode.com
- Copyright: under GNU Lesser General Public License
+ http://suco.googlecode.com
+ Copyright: under GNU Lesser General Public License
http://www.gnu.org/licenses/lgpl.html
emite
- http://emite.googlecode.com
- Copyright: under GNU Lesser General Public License
+ http://emite.googlecode.com
+ Copyright: under GNU Lesser General Public License
http://www.gnu.org/licenses/lgpl.html
fonts-min.css and reset.css
@@ -100,7 +100,7 @@
under GNU GPL license
extjs
- http://extjs.com/
+ http://extjs.com/
Copyright: under GNU Lesser General Public License
http://www.gnu.org/licenses/lgpl.html
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/TODO 2009-06-29 19:41:17 UTC (rev 1132)
@@ -212,8 +212,9 @@
https://code.fluendo.com/flumotion/trac/browser/cortado/trunk/README
http://en.flossmanuals.net/TheoraCookbook/Cortado
- for mp3+flv :: flowplayer
+ http://flv-player.net/
- for avi :: some links:
- http://www.w3schools.com/media/media_browservideos.asp
+ http://www.w3schools.com/media/media_browservideos.asp
http://www.solitude.dk/archives/embedquicktime/
http://www.solitude.dk/archives/embedquicktime/jquery.embedquicktime-source…
** TODO <d> Inform to translators when original content changes
Modified: trunk/debian/TODO
===================================================================
--- trunk/debian/TODO 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/debian/TODO 2009-06-29 19:41:17 UTC (rev 1132)
@@ -1,6 +1,6 @@
- create user kune
- create /var/lib/kune/uploads and give permissions
- create /var/lib/kune/lucene
-- deps: libjmagick6-jni
+- deps: libjmagick6-jni, csstidy
- cp -a $EXTSRC/source/locale/ src/main/java/org/ourproject/kune/app/public/js/ext/source/
Modified: trunk/script/deploy_gwt.sh
===================================================================
--- trunk/script/deploy_gwt.sh 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/script/deploy_gwt.sh 2009-06-29 19:41:17 UTC (rev 1132)
@@ -6,6 +6,7 @@
#script/css-compact-and-tidy.sh
script/css-update.sh
+script/generateAbout.sh
#cp target/kune-0.0.5/org.ourproject.kune.app.Kune/js/ext/ext-all-debug.js target/kune-0.0.5/org.ourproject.kune.app.Kune/js/ext/ext-all.js
#rsync --delete -C -r -p war/ws/ src/main/webapp/gwt/ws/
Added: trunk/script/generateAbout.sh
===================================================================
--- trunk/script/generateAbout.sh 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/script/generateAbout.sh 2009-06-29 19:41:17 UTC (rev 1132)
@@ -0,0 +1,21 @@
+# Determine how to set the tempfile
+if [ -n "`which tempfile`" ]; then
+ tmp=`tempfile`
+else
+ tmp=/tmp/kune.$$
+fi
+trap "rm -rf $tmp" 1 2 3 9 15
+
+
+REV=`svn info --xml| grep -m 1 revi | cut -d\" -f 2`
+COMMITSPENDING=`svn status | grep -c ""`
+SVNVER=r$REV+c$COMMITSPENDING
+VER=`grep "<version>" pom.xml | head -1 | sed 's/..version.//g'`
+
+
+echo Kune >> $tmp
+echo "--------------------------------------------------------------------------------" >> $tmp
+echo Version $VER '('$SVNVER')' >> $tmp
+
+txt2html -h 80 --preserve_indent -8 --style_url /ws/css/richtext.css --infile $tmp --infile CREDITS --infile COPYRIGHT --outfile war/ws/about.html
+rm $tmp
Property changes on: trunk/script/generateAbout.sh
___________________________________________________________________
Name: svn:executable
+ *
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2009-06-29 19:41:17 UTC (rev 1132)
@@ -41,4 +41,4 @@
padding: 1px 0px 1px 1px;
text-decoration:none;
}
-*/.x-tree-node .k-ctn-status-normal a span{}.x-tree-node .k-ctn-status-deleted a span{text-decoration:line-through;color:gray;}.x-tree-node .k-ctn-status-rejected a span{text-decoration:line-through;/* color: #FF6633; */color:#F30;}.x-tree-node .k-ctn-status-editing a span{font-style:italic;color:gray;}.x-tree-node .k-ctn-status-submitted a span{color:green;}.k-info-links{text-decoration:underline;color:gray;cursor:pointer;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-basic-thumb{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-basic-thumb td{padding:2px 3px;border:none;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;cursor:pointer;overflow:hidden;}.k-tsp-tag{float:left;padding:3px;cursor:pointer;color:#00F;}.k-tsp-cloud{line-height:1.5em;text-align:center;}.k-link-icon{background-image:url(img/link.gif)!important;}.k-options-icon{background-image:url(img/emblem-system.gif)!important;}.k-copyleft-icon{background-image:url(img/copyleft.png)!important;}.k-picture-icon{background-image:url(img/picture.png)!important;}.k-film-icon{background-image:url(img/film.png)!important;}.k-specialchars-icon{background-image:url(img/specialchars.png)!important;}.k-info-icon{background-image:url(img/info.gif)!important;}.k-newgroup-icon{background-image:url(img/kune-icon16.png)!important;}.k-colors-icon{background-image:url(img/colors.gif)!important;}.x-toolbar-body table{/* width: 100%; */}.k-preview-msg{background:#FCA;}.k-preview-msg-lab{background:#FCA;padding:0 5px;}.k-eil-edit{border:thin solid #000;}/* duplicated in rte.css */.k-rte-comment{border:1px dashed silver;line-height:1.4;padding:1px;background-color:#D7FFD7;}.k-specialchar-grid{border:1px solid #ACA899;}.k-specialchar-grid table{}.k-specialchar-grid div{line-height:22px;}.k-specialchar-grid td{padding:1px;}.k-specialchar-pb{border:1px solid #EBE8D7;cursor:pointer;font-size:108%!important;text-align:center;vertical-align:middle;width:18px;height:18px;}.k-specialchar-pb-up{}.k-specialchar-big{padding:3px;line-height:22px;font-size:197%!important;}.k-specialchar-adv-label{margin-left:-10px;}.k-specialchar-popup,{border:1px px solid silver;z-index:9999!important;background-color:#FFF;}.k-specialchar-pb-down{color:#161616;}.k-specialchar-pb-up-hovering{border:thin solid #ACA899;}.k-specialchar-pb-down-hovering{color:#161616;}.k-preview-panel{border:dashed 1px gray;padding:5px;}.k-rte-changelink{white-space:nowrap;color:navy;cursor:pointer;text-decoration:underline;margin:5px;}.k-rte-changelink-popup{border:1px solid silver;z-index:9999!important;background-color:#ECECEC;}.e-ui-room{height:27px;line-height:22px;}.e-ui-room input{font-size:100%;margin-left:0;margin-top:0;}.k-def-popup{z-index:9999!important;background-color:#FFF;border:1px solid gray;}#k-mshortcut{position:absolute;right:10px;}#k-mshortcut-hidden{visibility:hidden;}#k-mshortcut a{text-decoration:none;color:#000;}
\ No newline at end of file
+*/.x-tree-node .k-ctn-status-normal a span{}.x-tree-node .k-ctn-status-deleted a span{text-decoration:line-through;color:gray;}.x-tree-node .k-ctn-status-rejected a span{text-decoration:line-through;/* color: #FF6633; */color:#F30;}.x-tree-node .k-ctn-status-editing a span{font-style:italic;color:gray;}.x-tree-node .k-ctn-status-submitted a span{color:green;}.k-info-links{text-decoration:underline;color:gray;cursor:pointer;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-basic-thumb{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-basic-thumb td{padding:2px 3px;border:none;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;cursor:pointer;overflow:hidden;}.k-tsp-tag{float:left;padding:3px;cursor:pointer;color:#00F;}.k-tsp-cloud{line-height:1.5em;text-align:center;}.k-link-icon{background-image:url(img/link.gif)!important;}.k-options-icon{background-image:url(img/emblem-system.gif)!important;}.k-copyleft-icon{background-image:url(img/copyleft.png)!important;}.k-picture-icon{background-image:url(img/picture.png)!important;}.k-film-icon{background-image:url(img/film.png)!important;}.k-specialchars-icon{background-image:url(img/specialchars.png)!important;}.k-info-icon{background-image:url(img/info.gif)!important;}.k-newgroup-icon{background-image:url(img/kune-icon16.png)!important;}.k-colors-icon{background-image:url(img/colors.gif)!important;}.x-toolbar-body table{/* width: 100%; */}.k-preview-msg{background:#FCA;}.k-preview-msg-lab{background:#FCA;padding:0 5px;}.k-eil-edit{border:thin solid #000;}/* duplicated in rte.css */.k-rte-comment{border:1px dashed silver;line-height:1.4;padding:1px;background-color:#D7FFD7;}.k-specialchar-grid{border:1px solid #ACA899;}.k-specialchar-grid table{}.k-specialchar-grid div{line-height:22px;}.k-specialchar-grid td{padding:1px;}.k-specialchar-pb{border:1px solid #EBE8D7;cursor:pointer;font-size:108%!important;text-align:center;vertical-align:middle;width:18px;height:18px;}.k-specialchar-pb-up{}.k-specialchar-big{padding:3px;line-height:22px;font-size:197%!important;}.k-specialchar-adv-label{margin-left:-10px;}.k-specialchar-popup,{border:1px px solid silver;z-index:9999!important;background-color:#FFF;}.k-specialchar-pb-down{color:#161616;}.k-specialchar-pb-up-hovering{border:thin solid #ACA899;}.k-specialchar-pb-down-hovering{color:#161616;}.k-preview-panel{border:dashed 1px gray;padding:5px;}.k-rte-changelink{white-space:nowrap;color:navy;cursor:pointer;text-decoration:underline;margin:5px;}.k-rte-changelink-popup{border:1px solid silver;z-index:9999!important;background-color:#ECECEC;}.e-ui-room{height:27px;line-height:22px;}.e-ui-room input{font-size:100%;margin-left:0;margin-top:0;}.k-def-popup{z-index:9999!important;background-color:#FFF;border:1px solid gray;}#k-mshortcut{position:absolute;right:10px;}#k-mshortcut-hidden{visibility:hidden;}#k-mshortcut a{text-decoration:none;color:#000;}.k-plain-iframe iframe{border:1px solid gray;}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2009-06-29 19:41:17 UTC (rev 1132)
@@ -823,7 +823,7 @@
.k-tsp-cloud {
line-height: 1.5em;
- text-align : center;
+ text-align: center;
}
.k-link-icon {
@@ -931,33 +931,49 @@
,
{
border
+
+
:
+
+
1
px
+
+
solid
+
+
#C0C0C0
+
+
;
+z-index
-z-index
:
+
+
9999
!
important
+
+
;
+background-color
-background-color
:
+
+
#FFF
-;
+;
}
.k-specialchar-pb-down {
color: #161616;
@@ -1008,8 +1024,8 @@
}
#k-mshortcut {
- position: absolute;
- right: 10px;
+ position: absolute;
+ right: 10px;
}
#k-mshortcut-hidden {
@@ -1017,6 +1033,10 @@
}
#k-mshortcut a {
- text-decoration: none;
- color: black;
+ text-decoration: none;
+ color: black;
+}
+
+.k-plain-iframe iframe {
+ border: 1px solid gray;
}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java 2009-06-29 19:41:17 UTC (rev 1132)
@@ -3,6 +3,7 @@
import org.ourproject.kune.platf.client.actions.AbstractAction;
import org.ourproject.kune.platf.client.actions.ActionEvent;
import org.ourproject.kune.platf.client.actions.InputMap;
+import org.ourproject.kune.platf.client.actions.KeyStroke;
import org.ourproject.kune.platf.client.actions.Shortcut;
import com.allen_sauer.gwt.log.client.Log;
@@ -46,4 +47,13 @@
public void enable() {
handlerReg = Event.addNativePreviewHandler(eventHandler);
}
+
+ @Override
+ public void put(final KeyStroke keystroke, final AbstractAction action) {
+ final AbstractAction previous = super.get(keystroke);
+ if (previous != null) {
+ Log.warn("Shortcut already registed by: " + previous + "(overriding)");
+ }
+ super.put(keystroke, action);
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/InfoDialog.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/InfoDialog.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/InfoDialog.java 2009-06-29 19:41:17 UTC (rev 1132)
@@ -19,16 +19,20 @@
\*/
package org.ourproject.kune.platf.client.ui.dialogs;
+import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
public class InfoDialog extends BasicDialog {
- public InfoDialog(final String dialogId, final String title, final String header, final String text,
- final String okButtonText, final String okButtonId, final boolean modal, final boolean autoScroll,
- final int width, final int height) {
+
+ private final Panel mainPanel;
+
+ public InfoDialog(final String dialogId, final String title, final String okButtonText, final String okButtonId,
+ final boolean modal, final boolean autoScroll, final int width, final int height) {
super(dialogId, title, modal, autoScroll, width, height);
final Button okButton = new Button(okButtonText);
okButton.setId(okButtonId);
@@ -38,21 +42,44 @@
destroy();
}
});
- final Panel panel = new Panel();
- panel.setBorder(false);
- panel.setHeader(false);
- panel.setPaddings(20);
+ mainPanel = new Panel();
+ mainPanel.setBorder(false);
+ mainPanel.setHeader(false);
+ mainPanel.setPaddings(20);
+ super.add(mainPanel);
+ addButton(okButton);
+ }
+ public InfoDialog(final String dialogId, final String title, final String header, final String text,
+ final String okButtonText, final String okButtonId, final boolean modal, final boolean autoScroll,
+ final int width, final int height) {
+ this(dialogId, title, header, text, okButtonText, okButtonId, modal, autoScroll, width, height, false);
+ }
+
+ public InfoDialog(final String dialogId, final String title, final String header, final String text,
+ final String okButtonText, final String okButtonId, final boolean modal, final boolean autoScroll,
+ final int width, final int height, final boolean isHtml) {
+ this(dialogId, title, okButtonText, okButtonId, modal, autoScroll, width, height);
+
final Label headerLabel = new Label(header);
- final Label textLabel = new Label(text);
+ Widget textLabel;
+ if (isHtml) {
+ textLabel = new HTML(text);
+ } else {
+ textLabel = new Label(text);
+ }
- panel.add(headerLabel);
- panel.add(textLabel);
- super.add(panel);
+ mainPanel.add(headerLabel);
+ mainPanel.add(textLabel);
headerLabel.addStyleName("k-infod-head");
+ }
- addButton(okButton);
- show();
+ public void add(final Panel panel) {
+ mainPanel.add(panel);
}
+
+ public void setMainPanelPaddings(final int padding) {
+ mainPanel.setPaddings(padding);
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java 2009-06-29 19:41:17 UTC (rev 1132)
@@ -6,6 +6,9 @@
public interface ImgResources extends ImmutableResourceBundle {
+ @Resource("add-green.png")
+ ImageResource addGreen();
+
@Resource("kimg.css")
CssResource css();
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/add-green.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/add-green.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css 2009-06-29 19:41:17 UTC (rev 1132)
@@ -18,6 +18,10 @@
gwt-image: 'groupHome';
}
+@sprite div .k-icon-addGreen {
+ gwt-image: 'addGreen';
+}
+
@sprite div .k-icon-maximize {
gwt-image: 'maximize';
}
Added: trunk/src/main/java/org/ourproject/kune/platf/public/images/addGreen.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/public/images/addGreen.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-06-29 19:41:17 UTC (rev 1132)
@@ -225,9 +225,7 @@
import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryPresenter;
import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryView;
import org.ourproject.kune.workspace.client.socialnet.UserActionRegistry;
-import org.ourproject.kune.workspace.client.socialnet.other.AddAsBuddie;
-import org.ourproject.kune.workspace.client.socialnet.other.AddAsBuddiePanel;
-import org.ourproject.kune.workspace.client.socialnet.other.AddAsBuddiePresenter;
+import org.ourproject.kune.workspace.client.socialnet.other.AddAsBuddieHeaderButton;
import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionBuddiesSummaryToolbar;
import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionBuddiesSummaryToolbarPresenter;
import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionGroupSummaryToolbar;
@@ -553,15 +551,11 @@
}
});
- register(ApplicationComponentGroup.class, new Factory<AddAsBuddie>(AddAsBuddie.class) {
+ register(ApplicationComponentGroup.class, new Factory<AddAsBuddieHeaderButton>(AddAsBuddieHeaderButton.class) {
@Override
- public AddAsBuddie create() {
- final AddAsBuddiePresenter presenter = new AddAsBuddiePresenter(p(ChatEngine.class),
- i(StateManager.class), i(Session.class));
- final AddAsBuddiePanel panel = new AddAsBuddiePanel(presenter, i(EntityHeader.class), i(Images.class),
- i(I18nTranslationService.class));
- presenter.init(panel);
- return presenter;
+ public AddAsBuddieHeaderButton create() {
+ return new AddAsBuddieHeaderButton(p(ChatEngine.class), i(Session.class), i(StateManager.class),
+ i(I18nTranslationService.class), i(ImgResources.class), i(EntityHeader.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/GroupOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/GroupOptionsPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/GroupOptionsPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
@@ -71,6 +71,7 @@
groupPrefsAction.putValue(Action.SMALL_ICON, ImgConstants.toPath(img.prefs()));
prefsItem = new ButtonDescriptor(groupPrefsAction);
prefsItem.setId(GROUP_OPTIONS_ICON);
+ prefsItem.setVisible(false);
view.addAction(prefsItem);
}
}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/site/SiteResources.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/SiteResources.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/SiteResources.java 2009-06-29 19:41:17 UTC (rev 1132)
@@ -0,0 +1,12 @@
+package org.ourproject.kune.workspace.client.site;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.libideas.resources.client.ImmutableResourceBundle;
+import com.google.gwt.libideas.resources.client.TextResource;
+
+public interface SiteResources extends ImmutableResourceBundle {
+ public static final SiteResources INSTANCE = GWT.create(SiteResources.class);
+
+ @Resource("about.html")
+ public TextResource aboutKune();
+}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPanel.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPanel.java 2009-06-29 19:41:17 UTC (rev 1132)
@@ -22,15 +22,25 @@
import org.ourproject.kune.platf.client.actions.ui.GuiBindingsRegister;
import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
import org.ourproject.kune.platf.client.ui.AbstractToolbar;
+import org.ourproject.kune.platf.client.ui.dialogs.InfoDialog;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import com.google.gwt.user.client.ui.Frame;
+import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.layout.FitLayout;
+
public class SiteOptionsPanel extends AbstractSiteOptionsPanel implements SiteOptionsView {
public static final String SITE_OPTIONS_MENU = "kune-sop-om";
+ public static final String ABOUT_KUNE_ID = "kune-about-diag";
+ public static final String ABOUT_KUNE_BTN_ID = "kune-about-button-diag";
+ private final I18nUITranslationService i18n;
+ private InfoDialog infoDialog;
public SiteOptionsPanel(final WorkspaceSkeleton wspace, final I18nUITranslationService i18n,
final GuiBindingsRegister bindings) {
super(bindings, SITE_OPTIONS_MENU);
+ this.i18n = i18n;
setBtnText(i18n.t("Options"));
final AbstractToolbar siteBar = wspace.getSiteBar();
siteBar.addSeparator();
@@ -38,4 +48,22 @@
siteBar.addSpacer();
siteBar.addSpacer();
}
+
+ public void showAboutDialog() {
+ if (infoDialog == null) {
+ final Frame aboutFrame = new Frame("/ws/about.html");
+ final Panel aboutPanel = new Panel();
+ aboutPanel.setCls("k-plain-iframe");
+ aboutPanel.setLayout(new FitLayout());
+ aboutPanel.add(aboutFrame);
+ aboutPanel.setBorder(false);
+ aboutPanel.setHeight(300);
+ infoDialog = new InfoDialog(ABOUT_KUNE_ID, i18n.t("About Kune"), i18n.t("Ok"), ABOUT_KUNE_BTN_ID, true,
+ true, 400, 400);
+ infoDialog.add(aboutPanel);
+ infoDialog.setIconCls("k-newgroup-icon");
+ infoDialog.setMainPanelPaddings(10);
+ }
+ infoDialog.show();
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
@@ -73,10 +73,22 @@
KuneWindowUtils.open("http://ourproject.org/tracker/?group_id=407");
}
};
- bugsAction.putValue(Action.NAME, i18n.t("Report kune bugs"));
- bugsAction.putValue(Action.SMALL_ICON, img.kuneIcon16());
+ bugsAction.putValue(Action.NAME, i18n.t("Report Kune issues/problems"));
+ bugsAction.putValue(Action.SMALL_ICON, img.info());
final MenuItemDescriptor item = new MenuItemDescriptor(bugsAction);
addAction(item);
+
+ // final KeyStroke shortcut = Shortcut.getShortcut(true, true, false,
+ // false, Character.valueOf('K'));
+ final AbstractExtendedAction aboutAction = new AbstractExtendedAction() {
+ public void actionPerformed(final ActionEvent event) {
+ view.showAboutDialog();
+ }
+ };
+ aboutAction.putValue(Action.NAME, i18n.t("About kune"));
+ aboutAction.putValue(Action.SMALL_ICON, img.kuneIcon16());
+ // aboutAction.setShortcut(shortcut);
+ // shortcutReg.put(shortcut, aboutAction);
+ addAction(new MenuItemDescriptor(aboutAction));
}
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java 2009-06-29 19:41:17 UTC (rev 1132)
@@ -26,4 +26,6 @@
void setMenu(MenuDescriptor menuDescriptor);
+ void showAboutDialog();
+
}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddie.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddie.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddie.java 2009-06-29 19:41:17 UTC (rev 1132)
@@ -1,5 +0,0 @@
-package org.ourproject.kune.workspace.client.socialnet.other;
-
-public interface AddAsBuddie {
-
-}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddieHeaderButton.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddieHeaderButton.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddieHeaderButton.java 2009-06-29 19:41:17 UTC (rev 1132)
@@ -0,0 +1,83 @@
+package org.ourproject.kune.workspace.client.socialnet.other;
+
+import org.ourproject.kune.chat.client.ChatEngine;
+import org.ourproject.kune.platf.client.actions.AbstractAction;
+import org.ourproject.kune.platf.client.actions.AbstractExtendedAction;
+import org.ourproject.kune.platf.client.actions.Action;
+import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.PropertyChangeEvent;
+import org.ourproject.kune.platf.client.actions.PropertyChangeListener;
+import org.ourproject.kune.platf.client.actions.ui.ButtonDescriptor;
+import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.img.ImgConstants;
+import org.ourproject.kune.platf.client.ui.img.ImgResources;
+import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
+
+import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.events.Listener0;
+import com.calclab.suco.client.ioc.Provider;
+
+public class AddAsBuddieHeaderButton {
+
+ public static class AddAsBuddieAction extends AbstractExtendedAction {
+ private final Provider<ChatEngine> chatEngine;
+ private final Session session;
+
+ public AddAsBuddieAction(final Provider<ChatEngine> chatEngine, final Session session,
+ final StateManager stateManager, final I18nTranslationService i18n, final ImgResources img) {
+ super();
+ this.chatEngine = chatEngine;
+ this.session = session;
+ stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
+ public void onEvent(final StateAbstractDTO state) {
+ setState(state);
+ }
+ });
+ chatEngine.get().addOnRosterChanged(new Listener0() {
+ public void onEvent() {
+ setState(session.getCurrentState());
+ }
+ });
+ putValue(Action.NAME, i18n.t("Add as a buddie"));
+ putValue(Action.SMALL_ICON, ImgConstants.toPath(img.addGreen()));
+ }
+
+ public void actionPerformed(final ActionEvent event) {
+ chatEngine.get().addNewBuddie(session.getCurrentState().getGroup().getShortName());
+ NotifyUser.info("Added as buddie. Waiting buddie response");
+ setEnabled(false);
+ }
+
+ private void setState(final StateAbstractDTO state) {
+ final String groupName = state.getGroup().getShortName();
+ final boolean isPersonal = state.getGroup().isPersonal();
+ final boolean isLogged = session.isLogged();
+ if (isLogged && isPersonal && (!chatEngine.get().isBuddie(groupName))
+ && (!session.getCurrentUser().getShortName().equals(groupName))) {
+ setEnabled(true);
+ } else {
+ setEnabled(false);
+ }
+ }
+ }
+
+ public AddAsBuddieHeaderButton(final Provider<ChatEngine> chatEngine, final Session session,
+ final StateManager stateManager, final I18nTranslationService i18n, final ImgResources img,
+ final EntityHeader entityHeader) {
+ final AddAsBuddieAction buddieAction = new AddAsBuddieAction(chatEngine, session, stateManager, i18n, img);
+ final ButtonDescriptor button = new ButtonDescriptor(buddieAction);
+ button.setVisible(false);
+ buddieAction.addPropertyChangeListener(new PropertyChangeListener() {
+ public void propertyChange(final PropertyChangeEvent event) {
+ if (event.getPropertyName().equals(AbstractAction.ENABLED)) {
+ button.setVisible((Boolean) event.getNewValue());
+ }
+ }
+ });
+ entityHeader.addAction(button);
+ }
+}
\ No newline at end of file
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePanel.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePanel.java 2009-06-29 19:41:17 UTC (rev 1132)
@@ -1,33 +0,0 @@
-package org.ourproject.kune.workspace.client.socialnet.other;
-
-import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
-import org.ourproject.kune.platf.client.services.Images;
-import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.entityheader.EntityHeaderButton;
-
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
-
-public class AddAsBuddiePanel implements AddAsBuddieView {
-
- public static final String ADD_BUDDIE_BUTTON = "k-aabp-bt";
- private final EntityHeaderButton button;
-
- public AddAsBuddiePanel(final AddAsBuddiePresenter presenter, final EntityHeader entityHeader, final Images images,
- final I18nTranslationService i18n) {
- button = new EntityHeaderButton(images.addGreen(), i18n.t("Add as a buddie"));
- button.addClickHandler(new ClickHandler() {
- public void onClick(final ClickEvent event) {
- presenter.onAdd();
- }
- });
- button.ensureDebugId(ADD_BUDDIE_BUTTON);
- button.addStyleName("kune-Margin-Medium-t");
- button.addStyleName("kune-pointer");
- entityHeader.addWidget(button);
- }
-
- public void setVisible(final boolean visible) {
- button.setVisible(visible);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
@@ -1,60 +0,0 @@
-package org.ourproject.kune.workspace.client.socialnet.other;
-
-import org.ourproject.kune.chat.client.ChatEngine;
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
-
-import com.calclab.suco.client.events.Listener;
-import com.calclab.suco.client.events.Listener0;
-import com.calclab.suco.client.ioc.Provider;
-
-public class AddAsBuddiePresenter implements AddAsBuddie {
-
- private AddAsBuddieView view;
- private final Session session;
- private final Provider<ChatEngine> chatEngine;
-
- public AddAsBuddiePresenter(Provider<ChatEngine> chatEngine, StateManager stateManager, final Session session) {
- this.chatEngine = chatEngine;
- this.session = session;
- stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
- public void onEvent(StateAbstractDTO state) {
- setState(state);
- }
- });
- chatEngine.get().addOnRosterChanged(new Listener0() {
- public void onEvent() {
- setState(session.getCurrentState());
- }
- });
- }
-
- public View getView() {
- return view;
- }
-
- public void init(AddAsBuddieView view) {
- this.view = view;
- }
-
- public void onAdd() {
- chatEngine.get().addNewBuddie(session.getCurrentState().getGroup().getShortName());
- NotifyUser.info("Added as buddie. Waiting buddie response");
- view.setVisible(false);
- }
-
- private void setState(StateAbstractDTO state) {
- String groupName = state.getGroup().getShortName();
- boolean isPersonal = state.getGroup().isPersonal();
- boolean isLogged = session.isLogged();
- if (isLogged && isPersonal && (!chatEngine.get().isBuddie(groupName))
- && (!session.getCurrentUser().getShortName().equals(groupName))) {
- view.setVisible(true);
- } else {
- view.setVisible(false);
- }
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddieView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddieView.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddieView.java 2009-06-29 19:41:17 UTC (rev 1132)
@@ -1,8 +0,0 @@
-package org.ourproject.kune.workspace.client.socialnet.other;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface AddAsBuddieView extends View {
-
- void setVisible(boolean visible);
-}
1
0
Author: vjrj
Date: 2009-06-28 00:41:14 +0200 (Sun, 28 Jun 2009)
New Revision: 1131
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/app/GroupOptionsCollection.java
trunk/src/main/java/org/ourproject/kune/platf/client/app/UserOptionsCollection.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/arrow_in.png
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/arrow_out.png
trunk/src/main/java/org/ourproject/kune/platf/public/images/prefs.png
trunk/src/main/java/org/ourproject/kune/workspace/client/options/GroupOptionsPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/GroupOptionsPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/GroupOptionsView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicense.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicensePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicense.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicensePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/GroupOptionsLogo.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/GroupOptionsLogoPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/GroupOptionsLogoPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/UserOptionsLogo.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/UserOptionsLogoPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/UserOptionsLogoPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConf.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConf.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/GroupOptionsToolConf.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/GroupOptionsToolsConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/UserOptionsToolsConf.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/UserOptionsToolsConfPresenter.java
Removed:
trunk/src/main/java/org/ourproject/kune/platf/client/app/EntityOptionsGroup.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPresenter.java
Modified:
trunk/pom.xml
trunk/src/main/java/org/ourproject/kune/platf/client/PlatfMessages.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/AbstractAction.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/GuiActionDescrip.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateAbstractDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserInfoDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/FlowToolbar.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialog.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileConstants.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfo.java
trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfoServiceDefault.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeader.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspaceView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/SiteOptionsI18nTranslatorAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/EntityOptionsDefLicensePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Entity.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Toolbar.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java
Log:
Incomplete - task User/GroupOptions cleanup
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/pom.xml 2009-06-27 22:41:14 UTC (rev 1131)
@@ -80,7 +80,7 @@
<dependency>
<groupId>com.gwtext</groupId>
<artifactId>gwtext</artifactId>
- <version>2.0.6-r1872</version>
+ <version>2.0.5</version>
</dependency>
<dependency>
<groupId>com.gwtextux</groupId>
@@ -90,7 +90,7 @@
<dependency>
<groupId>com.allen_sauer.gwt.log.gwt-log</groupId>
<artifactId>gwt-log</artifactId>
- <version>2.5.3</version>
+ <version>2.6.0</version>
</dependency>
<dependency>
<groupId>com.allen_sauer.gwt.voices.gwt-voices</groupId>
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/PlatfMessages.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/PlatfMessages.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/PlatfMessages.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -31,8 +31,8 @@
public final static String USER_DOESN_T_HAVE_A_HOMEPAGE = "This user does not have a homepage";
public final static String ENT_LOGO_SELECTOR_NORMAL_TITLE = "Logo";
public final static String ENT_LOGO_SELECTOR_PERSON_TITLE = "Avatar";
- public final static String ENT_OPTIONS_GROUP_TITLE = "Group options";
- public final static String ENT_OPTIONS_USER_TITLE = "User options";
+ public final static String GROUP_OPTIONS_DIALOG_TITLE = "Group options";
+ public final static String USER_OPTIONS_DIALOG_TITLE = "User options";
private PlatfMessages() {
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/AbstractAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/AbstractAction.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/AbstractAction.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -234,6 +234,10 @@
}
}
+ public void setShortcut(final KeyStroke key) {
+ putValue(Action.ACCELERATOR_KEY, key);
+ }
+
/**
* Sends a {@link PropertyChangeEvent} for the named property to all
* registered listeners.
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -22,6 +22,10 @@
super();
button = new Button();
button.setEnableToggle(enableTongle);
+ final String id = buttonDescriptor.getId();
+ if (id != null) {
+ button.setId(id);
+ }
initWidget(button);
button.addListener(new ButtonListenerAdapter() {
@Override
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -35,6 +35,10 @@
} else {
item = new Item();
}
+ final String id = descriptor.getId();
+ if (id != null) {
+ item.setId(id);
+ }
// initWidget(item);
final BaseItemListenerAdapter clickListener = new BaseItemListenerAdapter() {
@Override
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -25,10 +25,16 @@
toolbar.addSpacer();
}
+ /**
+ * Set the blank/clean style
+ */
public void setCleanStyle() {
toolbar.setCleanStyle();
}
+ /**
+ * Set the normal grey style
+ */
public void setNormalStyle() {
toolbar.setNormalStyle();
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/GuiActionDescrip.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/GuiActionDescrip.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/GuiActionDescrip.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -28,6 +28,9 @@
/** The item location. */
private String location;
+ /** The item DOM id. */
+ private String id;
+
/**
* Instantiates a new abstract ui action descriptor. This is used for
* describe UI button, menus, menu items and so on
@@ -49,6 +52,10 @@
return addCondition;
}
+ public String getId() {
+ return id;
+ }
+
/**
* Gets the location, a string used to group actions with locations (top
* bar, bottom bar, user bar...).
@@ -124,6 +131,10 @@
action.setEnabled(enabled);
}
+ public void setId(final String id) {
+ this.id = id;
+ }
+
/**
* If we have several toolbars, we can group with the "location" string key
* actions that must be in the same location (ex: top bar, bottom bar, and
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -22,6 +22,10 @@
if (notStandAlone) {
button = new ToolbarButton();
button.setMenu(menu);
+ final String id = descriptor.getId();
+ if (id != null) {
+ button.setId(id);
+ }
initWidget(button);
} else {
initWidget(menu);
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/app/EntityOptionsGroup.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/EntityOptionsGroup.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/EntityOptionsGroup.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -1,38 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- \*/
-package org.ourproject.kune.platf.client.app;
-
-import com.calclab.suco.client.ioc.Container;
-import com.calclab.suco.client.ioc.Provider;
-import com.calclab.suco.client.ioc.decorator.ProviderCollection;
-import com.calclab.suco.client.ioc.decorator.Singleton;
-
-public class EntityOptionsGroup extends ProviderCollection {
-
- public EntityOptionsGroup(final Container container) {
- super(container, Singleton.instance);
- }
-
- public void createAll() {
- for (final Provider<?> p : getProviders()) {
- p.get();
- }
- }
-}
Copied: trunk/src/main/java/org/ourproject/kune/platf/client/app/GroupOptionsCollection.java (from rev 1121, trunk/src/main/java/org/ourproject/kune/platf/client/app/EntityOptionsGroup.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/EntityOptionsGroup.java 2009-06-08 14:18:03 UTC (rev 1121)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/GroupOptionsCollection.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,38 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ \*/
+package org.ourproject.kune.platf.client.app;
+
+import com.calclab.suco.client.ioc.Container;
+import com.calclab.suco.client.ioc.Provider;
+import com.calclab.suco.client.ioc.decorator.ProviderCollection;
+import com.calclab.suco.client.ioc.decorator.Singleton;
+
+public class GroupOptionsCollection extends ProviderCollection {
+
+ public GroupOptionsCollection(final Container container) {
+ super(container, Singleton.instance);
+ }
+
+ public void createAll() {
+ for (final Provider<?> p : getProviders()) {
+ p.get();
+ }
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/app/UserOptionsCollection.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/UserOptionsCollection.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/UserOptionsCollection.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,38 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ \*/
+package org.ourproject.kune.platf.client.app;
+
+import com.calclab.suco.client.ioc.Container;
+import com.calclab.suco.client.ioc.Provider;
+import com.calclab.suco.client.ioc.decorator.ProviderCollection;
+import com.calclab.suco.client.ioc.decorator.Singleton;
+
+public class UserOptionsCollection extends ProviderCollection {
+
+ public UserOptionsCollection(final Container container) {
+ super(container, Singleton.instance);
+ }
+
+ public void createAll() {
+ for (final Provider<?> p : getProviders()) {
+ p.get();
+ }
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateAbstractDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateAbstractDTO.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateAbstractDTO.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -70,23 +70,23 @@
return socialNetworkData.getUserBuddies();
}
- public void setEnabledTools(List<String> enabledTools) {
+ public void setEnabledTools(final List<String> enabledTools) {
this.enabledTools = enabledTools;
}
- public void setGroup(GroupDTO group) {
+ public void setGroup(final GroupDTO group) {
this.group = group;
}
- public void setSocialNetworkData(SocialNetworkDataDTO socialNetworkData) {
+ public void setSocialNetworkData(final SocialNetworkDataDTO socialNetworkData) {
this.socialNetworkData = socialNetworkData;
}
- public void setStateToken(StateToken stateToken) {
+ public void setStateToken(final StateToken stateToken) {
this.stateToken = stateToken;
}
- public void setTitle(String title) {
+ public void setTitle(final String title) {
this.title = title;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserInfoDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserInfoDTO.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserInfoDTO.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -32,6 +32,7 @@
private List<GroupDTO> groupsIsAdmin;
private List<GroupDTO> groupsIsCollab;
private boolean showDeletedContent;
+ private List<String> enabledTools;
public String getChatName() {
return chatName;
@@ -45,6 +46,10 @@
return user.getCountry();
}
+ public List<String> getEnabledTools() {
+ return enabledTools;
+ }
+
public List<GroupDTO> getGroupsIsAdmin() {
return groupsIsAdmin;
}
@@ -90,6 +95,10 @@
}
+ public void setEnabledTools(final List<String> enabledTools) {
+ this.enabledTools = enabledTools;
+ }
+
public void setGroupsIsAdmin(final List<GroupDTO> groupsIsAdmin) {
this.groupsIsAdmin = groupsIsAdmin;
}
@@ -102,11 +111,11 @@
this.homePage = homePage;
}
- public void setShowDeletedContent(boolean showDeletedContent) {
+ public void setShowDeletedContent(final boolean showDeletedContent) {
this.showDeletedContent = showDeletedContent;
}
- public void setUser(UserSimpleDTO user) {
+ public void setUser(final UserSimpleDTO user) {
this.user = user;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -20,10 +20,11 @@
package org.ourproject.kune.platf.client.services;
import org.ourproject.kune.platf.client.app.ApplicationComponentGroup;
-import org.ourproject.kune.platf.client.app.EntityOptionsGroup;
+import org.ourproject.kune.platf.client.app.GroupOptionsCollection;
import org.ourproject.kune.platf.client.app.HistoryWrapper;
import org.ourproject.kune.platf.client.app.HistoryWrapperDefault;
import org.ourproject.kune.platf.client.app.ToolGroup;
+import org.ourproject.kune.platf.client.app.UserOptionsCollection;
import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
import org.ourproject.kune.platf.client.rpc.I18nService;
@@ -114,7 +115,8 @@
registerDecorator(ApplicationComponentGroup.class, new ApplicationComponentGroup(container));
registerDecorator(ToolGroup.class, new ToolGroup(container));
- registerDecorator(EntityOptionsGroup.class, new EntityOptionsGroup(container));
+ registerDecorator(GroupOptionsCollection.class, new GroupOptionsCollection(container));
+ registerDecorator(UserOptionsCollection.class, new UserOptionsCollection(container));
registerDecorator(InsertImageGroup.class, new InsertImageGroup(container));
registerDecorator(InsertMediaGroup.class, new InsertMediaGroup(container));
registerDecorator(InsertLinkGroup.class, new InsertLinkGroup(container));
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -127,6 +127,8 @@
boolean isCurrentStateAContent();
+ boolean isCurrentStateAGroup();
+
boolean isLogged();
boolean isNotLogged();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -197,6 +197,10 @@
return currentState instanceof StateContentDTO;
}
+ public boolean isCurrentStateAGroup() {
+ return currentState == null ? false : !currentState.getGroup().isPersonal();
+ }
+
public boolean isLogged() {
return userHash != null;
}
@@ -247,7 +251,7 @@
assert (initData != null);
final Object[][] objs = new Object[initData.getCountries().size()][1];
int i = 0;
- for (I18nCountryDTO country : initData.getCountries()) {
+ for (final I18nCountryDTO country : initData.getCountries()) {
final Object[] obj = new Object[] { country.getCode(), country.getEnglishName() };
objs[i++] = obj;
}
@@ -258,7 +262,7 @@
assert (initData != null);
final Object[][] objs = new Object[initData.getLanguages().size()][1];
int i = 0;
- for (I18nLanguageSimpleDTO language : initData.getLanguages()) {
+ for (final I18nLanguageSimpleDTO language : initData.getLanguages()) {
final Object[] obj = new Object[] { language.getCode(), language.getEnglishName() };
objs[i++] = obj;
}
@@ -273,5 +277,4 @@
timezonesArray[i] = obj;
}
}
-
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/FlowToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/FlowToolbar.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/FlowToolbar.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -32,6 +32,7 @@
private final FlowPanel childPanel;
public FlowToolbar() {
+ super();
mainPanel = new HorizontalPanel();
childPanel = new FlowPanel();
mainPanel.add(childPanel);
@@ -42,7 +43,7 @@
childPanel.add(widget);
}
- public void add(final Widget widget, VerticalAlignmentConstant valign) {
+ public void add(final Widget widget, final VerticalAlignmentConstant valign) {
childPanel.add(widget);
}
@@ -70,7 +71,7 @@
return emptyLabel;
}
- public void insert(final Widget widget, int position) {
+ public void insert(final Widget widget, final int position) {
childPanel.insert(widget, position);
}
@@ -82,17 +83,23 @@
childPanel.clear();
}
+ /**
+ * Set the blank/clean style
+ */
public void setCleanStyle() {
setBasicStyle();
addStyleName("k-blank-toolbar");
}
@Override
- public void setHeight(String height) {
+ public void setHeight(final String height) {
mainPanel.setHeight(height);
childPanel.setHeight(height);
}
+ /**
+ * Set the normal grey style
+ */
public void setNormalStyle() {
setBasicStyle();
addStyleName("k-toolbar-bottom-line");
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialog.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialog.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/BasicDialog.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -21,7 +21,10 @@
import com.gwtext.client.core.Ext;
import com.gwtext.client.core.Position;
+import com.gwtext.client.widgets.BoxComponent;
+import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Window;
+import com.gwtext.client.widgets.event.WindowListenerAdapter;
public class BasicDialog extends Window {
@@ -59,6 +62,23 @@
setResizable(true);
setCloseAction(Window.HIDE);
setButtonAlign(Position.RIGHT);
+ addListener(new WindowListenerAdapter() {
+ @Override
+ public void onMove(final BoxComponent component, final int x, final int y) {
+ checkPosition(component, x, y);
+ }
+
+ @Override
+ public void onShow(final Component component) {
+ checkPosition(BasicDialog.this, component.getAbsoluteLeft(), component.getAbsoluteTop());
+ }
+
+ private void checkPosition(final BoxComponent component, final int x, final int y) {
+ if (y < 0) {
+ component.setPagePosition(x, 0);
+ }
+ }
+ });
}
public BasicDialog(final String id, final String caption, final boolean modal, final boolean autoScroll,
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileConstants.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileConstants.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileConstants.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -27,7 +27,8 @@
public final static String IMGSIZE = "imgsize";
public final static String FILENAME = "filename";
public final static String TYPE_ID = "typeid";
- public final static String LOGO_FORM_FIELD = "k-elogov-ff";
+ public final static String USER_LOGO_FIELD = "k-ulogov-ff";
+ public final static String GROUP_LOGO_FIELD = "k-glogov-ff";
public final static int LOGO_DEF_HEIGHT = 60;
public final static int LOGO_DEF_WIDTH = 468;
public final static int LOGO_MIN_HEIGHT = 28;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -21,6 +21,12 @@
@Resource("language.png")
ImageResource language();
+ @Resource("arrow_out.png")
+ ImageResource maximize();
+
+ @Resource("arrow_in.png")
+ ImageResource minimize();
+
@Resource("prefs.png")
ImageResource prefs();
}
\ No newline at end of file
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/arrow_in.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/arrow_in.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/arrow_out.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/arrow_out.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css 2009-06-27 22:41:14 UTC (rev 1131)
@@ -17,3 +17,11 @@
@sprite div .k-icon-groupHome {
gwt-image: 'groupHome';
}
+
+@sprite div .k-icon-maximize {
+ gwt-image: 'maximize';
+}
+
+@sprite div .k-icon-minimize {
+ gwt-image: 'minimize';
+}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -297,11 +297,9 @@
super.onBrowserEvent(event);
break;
case Event.ONKEYPRESS:
- final AbstractAction rtaActionItem = inputMap.get(KeyStroke.getKeyStrokeForEvent(event));
- // FIXME
- // final Action actionItem = rtaActionItem == null ?
- // globalShortcutReg.get(event) : rtaActionItem;
- final AbstractAction actionItem = rtaActionItem == null ? null : rtaActionItem;
+ final KeyStroke keystroke = KeyStroke.getKeyStrokeForEvent(event);
+ final AbstractAction rtaActionItem = inputMap.get(keystroke);
+ final AbstractAction actionItem = rtaActionItem == null ? globalShortcutReg.get(keystroke) : rtaActionItem;
if (actionItem == null) {
super.onBrowserEvent(event);
updateStatus();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -11,7 +11,6 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.actions.AbstractAction;
import org.ourproject.kune.platf.client.actions.AbstractExtendedAction;
-import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.ActionEvent;
import org.ourproject.kune.platf.client.actions.InputMap;
import org.ourproject.kune.platf.client.actions.KeyStroke;
@@ -812,13 +811,13 @@
public void setActionShortcut(final KeyStroke key, final AbstractAction action) {
inputMap.put(key, action);
- action.putValue(Action.ACCELERATOR_KEY, key);
+ action.setShortcut(key);
}
public void setActionShortcut(final KeyStroke key, final AbstractAction mainAction, final AbstractAction... actions) {
setActionShortcut(key, mainAction);
for (final AbstractAction action : actions) {
- action.putValue(Action.ACCELERATOR_KEY, key);
+ action.setShortcut(key);
}
}
@@ -835,7 +834,7 @@
view.focus();
}
- public void setLocation(final String location, final GuiActionDescrip[] descripts) {
+ public void setLocation(final String location, final GuiActionDescrip... descripts) {
for (final GuiActionDescrip descript : descripts) {
descript.setLocation(location);
}
Added: trunk/src/main/java/org/ourproject/kune/platf/public/images/prefs.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/public/images/prefs.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -66,17 +66,17 @@
protected void createUploadedFile(final StateToken stateToken, final String mimeTypeS, final File origFile)
throws Exception, IOException, MagickException, FileNotFoundException {
- BasicMimeType mimeType = new BasicMimeType(mimeTypeS);
+ final BasicMimeType mimeType = new BasicMimeType(mimeTypeS);
if (!mimeType.getType().equals("image")) {
throw new Exception("Trying to set a non image (" + mimeTypeS + ") as group logo");
}
- Group group = groupManager.findByShortName(stateToken.getGroup());
+ final Group group = groupManager.findByShortName(stateToken.getGroup());
if (group == Group.NO_GROUP) {
throw new Exception("Group not found trying to set the logo");
}
- File tmpDestFile = File.createTempFile("logoDest", "");
+ final File tmpDestFile = File.createTempFile("logoDest", "");
final boolean result = ImageUtilsDefault.scaleImageToMax(origFile.getAbsolutePath(),
tmpDestFile.getAbsolutePath(), FileConstants.LOGO_DEF_HEIGHT);
@@ -97,8 +97,8 @@
@Transactional(type = TransactionType.READ_WRITE)
protected void createUploadedFile(final String userHash, final StateToken stateToken, final String fileName,
final FileItem file, final String typeId) throws Exception {
- String mimeTypeS = file.getContentType();
- File tmpOrigFile = File.createTempFile("logoOrig", "");
+ final String mimeTypeS = file.getContentType();
+ final File tmpOrigFile = File.createTempFile("logoOrig", "");
file.write(tmpOrigFile);
createUploadedFile(stateToken, mimeTypeS, tmpOrigFile);
logFileDel(tmpOrigFile.delete());
@@ -129,8 +129,9 @@
**/
protected String createXmlResponse(final boolean success, final String message) {
String error = "";
+ // FIXME: Use Group/User field when necessary
if (!success) {
- error = "<errors><field><id>" + FileConstants.LOGO_FORM_FIELD + "</id><msg><![CDATA[" + message
+ error = "<errors><field><id>" + FileConstants.GROUP_LOGO_FIELD + "</id><msg><![CDATA[" + message
+ "]]></msg></field></errors>";
}
return "<response success=\"" + success + "\">" + error + "</response>";
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfo.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfo.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfo.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -35,6 +35,7 @@
private List<Group> groupsIsCollab;
private String userHash;
private boolean showDeletedContent;
+ private List<String> enabledTools;
public String getChatName() {
return chatName;
@@ -48,6 +49,10 @@
return user.getCountry();
}
+ public List<String> getEnabledTools() {
+ return enabledTools;
+ }
+
public List<Group> getGroupsIsAdmin() {
return groupsIsAdmin;
}
@@ -92,6 +97,10 @@
this.chatPassword = chatPassword;
}
+ public void setEnabledTools(final List<String> enabledTools) {
+ this.enabledTools = enabledTools;
+ }
+
public void setGroupsIsAdmin(final List<Group> groupsIsAdmin) {
this.groupsIsAdmin = groupsIsAdmin;
}
@@ -104,11 +113,11 @@
this.homePage = homePage;
}
- public void setShowDeletedContent(boolean showDeletedContent) {
+ public void setShowDeletedContent(final boolean showDeletedContent) {
this.showDeletedContent = showDeletedContent;
}
- public void setUser(User user) {
+ public void setUser(final User user) {
this.user = user;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfoServiceDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfoServiceDefault.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfoServiceDefault.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -23,6 +23,7 @@
import org.ourproject.kune.platf.server.domain.Content;
import org.ourproject.kune.platf.server.domain.Group;
import org.ourproject.kune.platf.server.domain.User;
+import org.ourproject.kune.platf.server.manager.GroupManager;
import org.ourproject.kune.platf.server.manager.SocialNetworkManager;
import org.ourproject.kune.platf.server.sn.ParticipationData;
@@ -33,10 +34,12 @@
public class UserInfoServiceDefault implements UserInfoService {
private final SocialNetworkManager socialNetworkManager;
+ private final GroupManager groupManager;
@Inject
- public UserInfoServiceDefault(final SocialNetworkManager socialNetwork) {
+ public UserInfoServiceDefault(final SocialNetworkManager socialNetwork, final GroupManager groupManager) {
this.socialNetworkManager = socialNetwork;
+ this.groupManager = groupManager;
}
public UserInfo buildInfo(final User user, final String userHash) throws DefaultException {
@@ -56,7 +59,7 @@
final ParticipationData participation = socialNetworkManager.findParticipation(user, userGroup);
info.setGroupsIsAdmin(participation.getGroupsIsAdmin());
info.setGroupsIsCollab(participation.getGroupsIsCollab());
-
+ info.setEnabledTools(groupManager.findEnabledTools(userGroup.getId()));
final Content defaultContent = userGroup.getDefaultContent();
if (defaultContent != null) {
info.setHomePage(defaultContent.getStateToken().toString());
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -24,7 +24,8 @@
import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPanel;
import org.ourproject.kune.platf.client.actions.ui.GuiBindingsRegister;
import org.ourproject.kune.platf.client.app.ApplicationComponentGroup;
-import org.ourproject.kune.platf.client.app.EntityOptionsGroup;
+import org.ourproject.kune.platf.client.app.GroupOptionsCollection;
+import org.ourproject.kune.platf.client.app.UserOptionsCollection;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.dto.StateTokenUtils;
import org.ourproject.kune.platf.client.dto.UserSimpleDTO;
@@ -126,22 +127,33 @@
import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePanel;
import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePresenter;
import org.ourproject.kune.workspace.client.options.EntityOptions;
-import org.ourproject.kune.workspace.client.options.EntityOptionsPanel;
-import org.ourproject.kune.workspace.client.options.EntityOptionsPresenter;
import org.ourproject.kune.workspace.client.options.GroupOptions;
+import org.ourproject.kune.workspace.client.options.GroupOptionsPanel;
+import org.ourproject.kune.workspace.client.options.GroupOptionsPresenter;
import org.ourproject.kune.workspace.client.options.UserOptions;
-import org.ourproject.kune.workspace.client.options.license.EntityOptionsDefLicense;
+import org.ourproject.kune.workspace.client.options.UserOptionsPanel;
+import org.ourproject.kune.workspace.client.options.UserOptionsPresenter;
import org.ourproject.kune.workspace.client.options.license.EntityOptionsDefLicensePanel;
-import org.ourproject.kune.workspace.client.options.license.EntityOptionsDefLicensePresenter;
-import org.ourproject.kune.workspace.client.options.logo.EntityOptionsLogo;
-import org.ourproject.kune.workspace.client.options.logo.EntityOptionsLogoPanel;
+import org.ourproject.kune.workspace.client.options.license.GroupOptionsDefLicense;
+import org.ourproject.kune.workspace.client.options.license.GroupOptionsDefLicensePresenter;
+import org.ourproject.kune.workspace.client.options.license.UserOptionsDefLicense;
+import org.ourproject.kune.workspace.client.options.license.UserOptionsDefLicensePresenter;
import org.ourproject.kune.workspace.client.options.logo.EntityOptionsLogoPresenter;
-import org.ourproject.kune.workspace.client.options.pscape.EntityOptionsPublicSpaceConf;
+import org.ourproject.kune.workspace.client.options.logo.GroupOptionsLogo;
+import org.ourproject.kune.workspace.client.options.logo.GroupOptionsLogoPanel;
+import org.ourproject.kune.workspace.client.options.logo.GroupOptionsLogoPresenter;
+import org.ourproject.kune.workspace.client.options.logo.UserOptionsLogo;
+import org.ourproject.kune.workspace.client.options.logo.UserOptionsLogoPanel;
+import org.ourproject.kune.workspace.client.options.logo.UserOptionsLogoPresenter;
import org.ourproject.kune.workspace.client.options.pscape.EntityOptionsPublicSpaceConfPanel;
import org.ourproject.kune.workspace.client.options.pscape.EntityOptionsPublicSpaceConfPresenter;
+import org.ourproject.kune.workspace.client.options.pscape.GroupOptionsPublicSpaceConf;
+import org.ourproject.kune.workspace.client.options.pscape.UserOptionsPublicSpaceConf;
import org.ourproject.kune.workspace.client.options.tools.EntityOptionsToolsConf;
import org.ourproject.kune.workspace.client.options.tools.EntityOptionsToolsConfPanel;
-import org.ourproject.kune.workspace.client.options.tools.EntityOptionsToolsConfPresenter;
+import org.ourproject.kune.workspace.client.options.tools.GroupOptionsToolsConfPresenter;
+import org.ourproject.kune.workspace.client.options.tools.UserOptionsToolsConf;
+import org.ourproject.kune.workspace.client.options.tools.UserOptionsToolsConfPresenter;
import org.ourproject.kune.workspace.client.rate.RateIt;
import org.ourproject.kune.workspace.client.rate.RateItPanel;
import org.ourproject.kune.workspace.client.rate.RateItPresenter;
@@ -416,7 +428,7 @@
final EntityHeaderPresenter presenter = new EntityHeaderPresenter(i(StateManager.class),
i(WsThemePresenter.class), i(Session.class));
final EntityHeaderPanel panel = new EntityHeaderPanel(i(WorkspaceSkeleton.class),
- p(FileDownloadUtils.class), i(Images.class));
+ p(FileDownloadUtils.class), i(Images.class), i(GuiBindingsRegister.class));
presenter.init(panel);
return presenter;
}
@@ -608,37 +620,49 @@
}
});
- register(ApplicationComponentGroup.class, new Factory<EntityOptions>(EntityOptions.class) {
+ register(ApplicationComponentGroup.class, new Factory<GroupOptions>(GroupOptions.class) {
@Override
- public EntityOptions create() {
- final EntityOptionsPresenter presenter = new EntityOptionsPresenter(i(StateManager.class));
- final EntityOptionsPanel panel = new EntityOptionsPanel(presenter, i(EntityHeader.class),
- i(I18nTranslationService.class), i(Images.class), i(EntityOptionsGroup.class));
+ public GroupOptions create() {
+ final GroupOptionsPresenter presenter = new GroupOptionsPresenter(i(StateManager.class),
+ i(I18nTranslationService.class), i(ImgResources.class));
+ final GroupOptionsPanel panel = new GroupOptionsPanel(presenter, i(EntityHeader.class),
+ i(I18nTranslationService.class), i(Images.class), i(GroupOptionsCollection.class));
presenter.init(panel);
return presenter;
}
});
- register(Singleton.class, new Factory<GroupOptions>(GroupOptions.class) {
+ register(ApplicationComponentGroup.class, new Factory<UserOptions>(UserOptions.class) {
@Override
- public GroupOptions create() {
- return (GroupOptions) i(EntityOptions.class);
+ public UserOptions create() {
+ final UserOptionsPresenter presenter = new UserOptionsPresenter(i(Session.class),
+ i(I18nTranslationService.class), i(ImgResources.class), i(SiteUserOptions.class));
+ final UserOptionsPanel panel = new UserOptionsPanel(presenter, i(EntityHeader.class),
+ i(I18nTranslationService.class), i(Images.class), i(UserOptionsCollection.class));
+ presenter.init(panel);
+ return presenter;
}
});
- register(Singleton.class, new Factory<UserOptions>(UserOptions.class) {
+ register(GroupOptionsCollection.class, new Factory<EntityOptionsToolsConf>(EntityOptionsToolsConf.class) {
@Override
- public UserOptions create() {
- return (UserOptions) i(EntityOptions.class);
+ public EntityOptionsToolsConf create() {
+ final GroupOptionsToolsConfPresenter presenter = new GroupOptionsToolsConfPresenter(
+ i(StateManager.class), i(Session.class), i(I18nTranslationService.class),
+ i(GroupOptions.class), p(GroupServiceAsync.class));
+ final EntityOptionsToolsConfPanel panel = new EntityOptionsToolsConfPanel(presenter,
+ i(WorkspaceSkeleton.class), i(I18nTranslationService.class));
+ presenter.init(panel);
+ return presenter;
}
});
- register(EntityOptionsGroup.class, new Factory<EntityOptionsToolsConf>(EntityOptionsToolsConf.class) {
+ register(UserOptionsCollection.class, new Factory<UserOptionsToolsConf>(UserOptionsToolsConf.class) {
@Override
- public EntityOptionsToolsConf create() {
- final EntityOptionsToolsConfPresenter presenter = new EntityOptionsToolsConfPresenter(
- i(StateManager.class), i(Session.class), i(I18nTranslationService.class),
- i(EntityOptions.class), p(GroupServiceAsync.class));
+ public UserOptionsToolsConf create() {
+ final UserOptionsToolsConfPresenter presenter = new UserOptionsToolsConfPresenter(i(Session.class),
+ i(StateManager.class), i(I18nTranslationService.class), i(UserOptions.class),
+ p(GroupServiceAsync.class));
final EntityOptionsToolsConfPanel panel = new EntityOptionsToolsConfPanel(presenter,
i(WorkspaceSkeleton.class), i(I18nTranslationService.class));
presenter.init(panel);
@@ -646,24 +670,37 @@
}
});
- register(EntityOptionsGroup.class, new Factory<EntityOptionsLogo>(EntityOptionsLogo.class) {
+ register(GroupOptionsCollection.class, new Factory<GroupOptionsLogo>(GroupOptionsLogo.class) {
@Override
- public EntityOptionsLogo create() {
- final EntityOptionsLogoPresenter presenter = new EntityOptionsLogoPresenter(i(Session.class),
- i(EntityHeader.class), i(EntityOptions.class), i(StateManager.class),
- p(UserServiceAsync.class), p(ChatEngine.class));
- final EntityOptionsLogoPanel panel = new EntityOptionsLogoPanel(presenter, i(WorkspaceSkeleton.class),
+ public GroupOptionsLogo create() {
+ final EntityOptionsLogoPresenter presenter = new GroupOptionsLogoPresenter(i(Session.class),
+ i(EntityHeader.class), i(GroupOptions.class), i(StateManager.class), p(UserServiceAsync.class),
+ p(ChatEngine.class));
+ final GroupOptionsLogoPanel panel = new GroupOptionsLogoPanel(presenter, i(WorkspaceSkeleton.class),
i(I18nTranslationService.class));
presenter.init(panel);
return presenter;
}
});
- register(EntityOptionsGroup.class, new Factory<EntityOptionsDefLicense>(EntityOptionsDefLicense.class) {
+ register(UserOptionsCollection.class, new Factory<UserOptionsLogo>(UserOptionsLogo.class) {
@Override
- public EntityOptionsDefLicense create() {
- final EntityOptionsDefLicensePresenter presenter = new EntityOptionsDefLicensePresenter(
- i(EntityOptions.class), i(StateManager.class), i(Session.class), p(LicenseWizard.class),
+ public UserOptionsLogo create() {
+ final EntityOptionsLogoPresenter presenter = new UserOptionsLogoPresenter(i(Session.class),
+ i(EntityHeader.class), i(UserOptions.class), i(StateManager.class), p(UserServiceAsync.class),
+ p(ChatEngine.class));
+ final UserOptionsLogoPanel panel = new UserOptionsLogoPanel(presenter, i(WorkspaceSkeleton.class),
+ i(I18nTranslationService.class));
+ presenter.init(panel);
+ return presenter;
+ }
+ });
+
+ register(GroupOptionsCollection.class, new Factory<GroupOptionsDefLicense>(GroupOptionsDefLicense.class) {
+ @Override
+ public GroupOptionsDefLicense create() {
+ final GroupOptionsDefLicensePresenter presenter = new GroupOptionsDefLicensePresenter(
+ i(GroupOptions.class), i(StateManager.class), i(Session.class), p(LicenseWizard.class),
p(LicenseChangeAction.class));
final EntityOptionsDefLicensePanel panel = new EntityOptionsDefLicensePanel(presenter,
i(WorkspaceSkeleton.class), i(I18nTranslationService.class));
@@ -672,17 +709,31 @@
}
});
- register(EntityOptionsGroup.class,
- new Factory<EntityOptionsPublicSpaceConf>(EntityOptionsPublicSpaceConf.class) {
+ register(UserOptionsCollection.class, new Factory<UserOptionsDefLicense>(UserOptionsDefLicense.class) {
+ @Override
+ public UserOptionsDefLicense create() {
+ final UserOptionsDefLicensePresenter presenter = new UserOptionsDefLicensePresenter(
+ i(UserOptions.class), i(Session.class), p(LicenseWizard.class), p(LicenseChangeAction.class));
+ final EntityOptionsDefLicensePanel panel = new EntityOptionsDefLicensePanel(presenter,
+ i(WorkspaceSkeleton.class), i(I18nTranslationService.class));
+ presenter.init(panel);
+ return presenter;
+ }
+ });
+
+ register(GroupOptionsCollection.class, new Factory<GroupOptionsPublicSpaceConf>(
+ GroupOptionsPublicSpaceConf.class) {
+ @Override
+ public GroupOptionsPublicSpaceConf create() {
+ return createEntityOptionsPublicSpace(i(GroupOptions.class));
+ }
+ });
+
+ register(UserOptionsCollection.class,
+ new Factory<UserOptionsPublicSpaceConf>(UserOptionsPublicSpaceConf.class) {
@Override
- public EntityOptionsPublicSpaceConf create() {
- final EntityOptionsPublicSpaceConfPresenter presenter = new EntityOptionsPublicSpaceConfPresenter(
- i(EntityOptions.class));
- final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(
- presenter, i(WorkspaceSkeleton.class), i(I18nTranslationService.class),
- i(WsThemePresenter.class));
- presenter.init(panel);
- return presenter;
+ public UserOptionsPublicSpaceConf create() {
+ return createEntityOptionsPublicSpace(i(UserOptions.class));
}
});
@@ -984,9 +1035,10 @@
register(ApplicationComponentGroup.class, new Factory<MaxMinWorkspace>(MaxMinWorkspace.class) {
@Override
public MaxMinWorkspace create() {
- final MaxMinWorkspacePresenter presenter = new MaxMinWorkspacePresenter();
- final MaxMinWorkspacePanel panel = new MaxMinWorkspacePanel(presenter, i(WorkspaceSkeleton.class),
- i(Images.class), i(EntityHeader.class), i(I18nTranslationService.class));
+ final MaxMinWorkspacePresenter presenter = new MaxMinWorkspacePresenter(
+ i(GlobalShortcutRegister.class), i(ImgResources.class), i(I18nTranslationService.class),
+ i(SiteOptions.class));
+ final MaxMinWorkspacePanel panel = new MaxMinWorkspacePanel(i(WorkspaceSkeleton.class));
presenter.init(panel);
return presenter;
}
@@ -1024,4 +1076,12 @@
i(GlobalShortcutRegister.class).enable();
}
+
+ private EntityOptionsPublicSpaceConfPresenter createEntityOptionsPublicSpace(final EntityOptions entityOptions) {
+ final EntityOptionsPublicSpaceConfPresenter presenter = new EntityOptionsPublicSpaceConfPresenter(entityOptions);
+ final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(presenter,
+ i(WorkspaceSkeleton.class), i(I18nTranslationService.class), i(WsThemePresenter.class));
+ presenter.init(panel);
+ return presenter;
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeader.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeader.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeader.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -20,9 +20,12 @@
package org.ourproject.kune.workspace.client.entityheader;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.actions.ui.GuiActionDescrip;
public interface EntityHeader {
+ void addAction(GuiActionDescrip descriptor);
+
void addWidget(View widget);
/**
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -22,6 +22,9 @@
import java.util.Date;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.actions.ui.ComplexToolbar;
+import org.ourproject.kune.platf.client.actions.ui.GuiActionDescrip;
+import org.ourproject.kune.platf.client.actions.ui.GuiBindingsRegister;
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.services.Images;
@@ -41,25 +44,34 @@
private final Provider<FileDownloadUtils> downloadProvider;
private final EntityTextLogo entityTextLogo;
private final Images images;
- private final VerticalPanel vp;
+ private final VerticalPanel vpanel;
+ private final ComplexToolbar toolbar;
- public EntityHeaderPanel(final WorkspaceSkeleton ws, final Provider<FileDownloadUtils> downloadProvider,
- final Images images) {
+ public EntityHeaderPanel(final WorkspaceSkeleton wskel, final Provider<FileDownloadUtils> downloadProvider,
+ final Images images, final GuiBindingsRegister bindings) {
+ super();
super.setWidth("100%");
this.downloadProvider = downloadProvider;
this.images = images;
- vp = new VerticalPanel();
- vp.setWidth("100%");
- vp.setHorizontalAlignment(ALIGN_RIGHT);
+ vpanel = new VerticalPanel();
+ vpanel.setWidth("100%");
+ vpanel.setHorizontalAlignment(ALIGN_RIGHT);
entityTextLogo = new EntityTextLogo();
add(entityTextLogo);
- add(vp);
- ws.addToEntityMainHeader(this);
+ toolbar = new ComplexToolbar(bindings);
+ toolbar.setCleanStyle();
+ vpanel.add(toolbar);
+ add(vpanel);
+ wskel.addToEntityMainHeader(this);
}
+ public void addAction(final GuiActionDescrip descriptor) {
+ toolbar.add(descriptor);
+ }
+
public void addWidget(final View view) {
- Widget widget = (Widget) view;
- vp.add(widget);
+ final Widget widget = (Widget) view;
+ vpanel.add(widget);
}
public void reloadImage(final GroupDTO group) {
@@ -72,12 +84,11 @@
final String imageUrl = downloadProvider.get().getImageUrl(stateToken);
Image logo;
if (clipped) {
- logo = new Image(imageUrl, 0, 0, FileConstants.LOGO_DEF_WIDTH,
- FileConstants.LOGO_DEF_HEIGHT);
+ logo = new Image(imageUrl, 0, 0, FileConstants.LOGO_DEF_WIDTH, FileConstants.LOGO_DEF_HEIGHT);
} else {
logo = new Image(imageUrl);
- logo.setWidth("" + FileConstants.LOGO_DEF_WIDTH);
- logo.setHeight("" + FileConstants.LOGO_DEF_HEIGHT);
+ logo.setWidth(String.valueOf(FileConstants.LOGO_DEF_WIDTH));
+ logo.setHeight(String.valueOf(FileConstants.LOGO_DEF_HEIGHT));
}
add(logo);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -20,6 +20,7 @@
package org.ourproject.kune.workspace.client.entityheader;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.actions.ui.GuiActionDescrip;
import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.state.Session;
@@ -51,6 +52,10 @@
});
}
+ public void addAction(final GuiActionDescrip descriptor) {
+ view.addAction(descriptor);
+ }
+
public void addWidget(final View widget) {
view.addWidget(widget);
}
@@ -87,7 +92,7 @@
}
void setLogoText(final String name) {
- int length = name.length();
+ final int length = name.length();
if (length <= LARGE_NAME_LIMIT) {
view.setLargeFont();
} else if (length <= MEDIUM_NAME_LIMIT) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -20,12 +20,15 @@
package org.ourproject.kune.workspace.client.entityheader;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.actions.ui.GuiActionDescrip;
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.workspace.client.themes.WsTheme;
public interface EntityHeaderView {
+ void addAction(GuiActionDescrip descriptor);
+
void addWidget(View view);
void reloadImage(GroupDTO group);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspace.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspace.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -2,4 +2,8 @@
public interface MaxMinWorkspace {
+ void maximize();
+
+ void minimize();
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePanel.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePanel.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -1,53 +1,16 @@
package org.ourproject.kune.workspace.client.entityheader.maxmin;
-import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
-import org.ourproject.kune.platf.client.services.Images;
-import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.entityheader.EntityHeaderButton;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
-
public class MaxMinWorkspacePanel implements MaxMinWorkspaceView {
- public static final String MIN_ICON = "mmwp-min_bt";
- public static final String MAX_ICON = "mmwp-max_bt";
- private final WorkspaceSkeleton ws;
- private final EntityHeaderButton maxBtn;
- private final EntityHeaderButton minBtn;
+ private final WorkspaceSkeleton wskel;
- public MaxMinWorkspacePanel(final MaxMinWorkspacePresenter presenter, final WorkspaceSkeleton ws,
- final Images images, final EntityHeader entityHeader, final I18nTranslationService i18n) {
- this.ws = ws;
- maxBtn = new EntityHeaderButton("", images.arrowOut());
- minBtn = new EntityHeaderButton("", images.arrowIn());
- maxBtn.setTitle(i18n.t("Maximize the workspace"));
- minBtn.setTitle(i18n.t("Minimize the workspace"));
- maxBtn.addClickHandler(new ClickHandler() {
- public void onClick(final ClickEvent event) {
- presenter.onMaximize();
- }
- });
- minBtn.addClickHandler(new ClickHandler() {
- public void onClick(final ClickEvent event) {
- presenter.onMinimize();
- }
- });
- minBtn.setVisible(false);
- minBtn.ensureDebugId(MIN_ICON);
- maxBtn.ensureDebugId(MAX_ICON);
- entityHeader.addWidget(maxBtn);
- entityHeader.addWidget(minBtn);
+ public MaxMinWorkspacePanel(final WorkspaceSkeleton wskel) {
+ this.wskel = wskel;
}
public void setMaximized(final boolean maximized) {
- ws.setMaximized(maximized);
+ wskel.setMaximized(maximized);
}
-
- public void showMaxButton(final boolean showMax) {
- maxBtn.setVisible(showMax);
- minBtn.setVisible(!showMax);
- }
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspacePresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -1,32 +1,117 @@
package org.ourproject.kune.workspace.client.entityheader.maxmin;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.actions.AbstractExtendedAction;
+import org.ourproject.kune.platf.client.actions.Action;
+import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.KeyStroke;
+import org.ourproject.kune.platf.client.actions.Shortcut;
+import org.ourproject.kune.platf.client.actions.ui.MenuItemDescriptor;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.shortcuts.GlobalShortcutRegister;
+import org.ourproject.kune.platf.client.ui.img.ImgResources;
+import org.ourproject.kune.workspace.client.sitebar.siteoptions.SiteOptions;
+import com.google.gwt.libideas.resources.client.ImageResource;
+
public class MaxMinWorkspacePresenter implements MaxMinWorkspace {
+ public class MaximizeAction extends AbstractExtendedAction {
+ public MaximizeAction(final String name, final ImageResource img) {
+ super();
+ putValue(Action.NAME, name);
+ putValue(Action.SMALL_ICON, img);
+ }
+ public void actionPerformed(final ActionEvent event) {
+ showMaximized(true);
+ }
+ }
+ public class MinimizeAction extends AbstractExtendedAction {
+ public MinimizeAction(final String name, final ImageResource img) {
+ super();
+ putValue(Action.NAME, name);
+ putValue(Action.SMALL_ICON, img);
+ }
+
+ public void actionPerformed(final ActionEvent event) {
+ showMaximized(false);
+ }
+ }
+
+ public static final String MIN_ICON = "mmwp-min_bt";
+ public static final String MAX_ICON = "mmwp-max_bt";
private MaxMinWorkspaceView view;
- public MaxMinWorkspacePresenter() {
+ private boolean maximized;
+
+ private final ImgResources images;
+
+ private final I18nTranslationService i18n;
+
+ private final GlobalShortcutRegister shortcutReg;
+
+ private MenuItemDescriptor maximizeButton;
+
+ private MenuItemDescriptor minimizeButton;
+ private final SiteOptions siteOptions;
+
+ public MaxMinWorkspacePresenter(final GlobalShortcutRegister shortcutReg, final ImgResources images,
+ final I18nTranslationService i18n, final SiteOptions siteOptions) {
+ this.shortcutReg = shortcutReg;
+ this.images = images;
+ this.i18n = i18n;
+ this.siteOptions = siteOptions;
+ maximized = false;
+
}
public View getView() {
return view;
}
- public void init(MaxMinWorkspaceView view) {
+ public void init(final MaxMinWorkspaceView view) {
this.view = view;
+ createActions();
}
- public void onMaximize() {
+ public void maximize() {
showMaximized(true);
}
- public void onMinimize() {
+ public void minimize() {
showMaximized(false);
}
- private void showMaximized(boolean maximized) {
+ private void createActions() {
+ final KeyStroke shortcut = Shortcut.getShortcut(true, true, false, false, Character.valueOf('F'));
+
+ final MaximizeAction maximizeAction = new MaximizeAction(i18n.t("Maximize the workspace"), images.maximize());
+ maximizeAction.setShortcut(shortcut);
+ maximizeButton = new MenuItemDescriptor(maximizeAction);
+ maximizeButton.setPosition(0);
+ maximizeButton.setId(MAX_ICON);
+
+ final MinimizeAction minimizeAction = new MinimizeAction(i18n.t("Minimize the workspace"), images.minimize());
+ minimizeAction.setShortcut(shortcut);
+ minimizeButton = new MenuItemDescriptor(minimizeAction);
+ minimizeButton.setPosition(1);
+ minimizeButton.setVisible(false);
+ minimizeButton.setId(MIN_ICON);
+
+ shortcutReg.put(shortcut, new AbstractExtendedAction() {
+ public void actionPerformed(final ActionEvent event) {
+ showMaximized(!maximized);
+ }
+ });
+
+ siteOptions.addAction(maximizeButton);
+ siteOptions.addAction(minimizeButton);
+ }
+
+ private void showMaximized(final boolean maximized) {
+ maximizeButton.setVisible(!maximized);
+ minimizeButton.setVisible(maximized);
+ this.maximized = maximized;
view.setMaximized(maximized);
- view.showMaxButton(!maximized);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspaceView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspaceView.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/maxmin/MaxMinWorkspaceView.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -6,5 +6,4 @@
void setMaximized(boolean maximized);
- void showMaxButton(boolean showMax);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPanel.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPanel.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -39,11 +39,14 @@
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
import com.gwtext.client.util.Format;
+import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Button;
+import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.TabPanel;
import com.gwtext.client.widgets.Window;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
+import com.gwtext.client.widgets.event.WindowListenerAdapter;
import com.gwtext.client.widgets.form.ComboBox;
import com.gwtext.client.widgets.form.TextField;
import com.gwtext.client.widgets.form.event.ComboBoxListenerAdapter;
@@ -182,7 +185,23 @@
dialog.add(center, new BorderLayoutData(RegionPosition.CENTER));
center.setActiveItemID(unTransCenterPanel.getId());
+ dialog.addListener(new WindowListenerAdapter() {
+ @Override
+ public void onMove(final BoxComponent component, final int x, final int y) {
+ checkPosition(component, x, y);
+ }
+ @Override
+ public void onShow(final Component component) {
+ checkPosition(dialog, component.getAbsoluteLeft(), component.getAbsoluteTop());
+ }
+
+ private void checkPosition(final BoxComponent component, final int x, final int y) {
+ if (y < 0) {
+ component.setPagePosition(x, 0);
+ }
+ }
+ });
return dialog;
}
@@ -192,10 +211,10 @@
public String render(final Object value, final CellMetadata cellMetadata, final Record record,
final int rowIndex, final int colNum, final Store store) {
String renderer;
- String[] splitted = splitNT((String) value);
+ final String[] splitted = splitNT((String) value);
if (splitted.length > 1) {
renderer = "{0} " + img.nt().getHTML();
- String tip = "<div style='min-width: 75px'>" + splitted[1] + "</div>";
+ final String tip = "<div style='min-width: 75px'>" + splitted[1] + "</div>";
cellMetadata.setHtmlAttribute("ext:qtip=\"" + tip + "\" ext:qtitle=\"Note for translators\"");
} else {
renderer = "{0}";
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/SiteOptionsI18nTranslatorAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/SiteOptionsI18nTranslatorAction.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/SiteOptionsI18nTranslatorAction.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -20,7 +20,7 @@
putValue(Action.NAME, i18n.t("Help with the translation"));
putValue(Action.SMALL_ICON, img.language());
final MenuItemDescriptor item = new MenuItemDescriptor(this);
- item.setPosition(0);
+ item.setPosition(1);
siteOptions.addAction(item);
}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -1,91 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package org.ourproject.kune.workspace.client.options;
-
-import org.ourproject.kune.platf.client.PlatfMessages;
-import org.ourproject.kune.platf.client.app.EntityOptionsGroup;
-import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
-import org.ourproject.kune.platf.client.services.Images;
-import org.ourproject.kune.platf.client.ui.dialogs.tabbed.AbstractTabbedDialogPanel;
-import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
-import org.ourproject.kune.workspace.client.entityheader.EntityHeaderButton;
-
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
-
-public class EntityOptionsPanel extends AbstractTabbedDialogPanel implements EntityOptionsView {
-
- public static final String ENTITY_OP_PANEL_ID = "k-eop-diagpan";
- public static final String GROUP_OPTIONS_ERROR_ID = "k-eop-err-mess";
- public static final String GROUP_OPTIONS_ICON = "k-eop-icon";
- private final I18nTranslationService i18n;
- private final EntityHeader entityHeader;
- private EntityHeaderButton optionsButton;
- private final Images images;
-
- private final EntityOptionsGroup entityPreferencesGroup;
-
- public EntityOptionsPanel(final EntityOptions presenter, final EntityHeader entityHeader,
- final I18nTranslationService i18n, final Images images, final EntityOptionsGroup entityOptionsGroup) {
- super(ENTITY_OP_PANEL_ID, "", 400, HEIGHT + 80, 400, HEIGHT + 80, false, images, GROUP_OPTIONS_ERROR_ID);
- this.entityHeader = entityHeader;
- this.i18n = i18n;
- this.images = images;
- this.entityPreferencesGroup = entityOptionsGroup;
- super.setIconCls("k-options-icon");
- createOptionsButton();
- }
-
- @Override
- public void createAndShow() {
- // FIXME: use onAfterCreate in Factory/Module
- createAndShowItImpl();
- }
-
- public void setButtonVisible(final boolean visible) {
- optionsButton.setVisible(visible);
- }
-
- public void setGroupTitle() {
- super.setTitle(i18n.t(PlatfMessages.ENT_OPTIONS_GROUP_TITLE));
- optionsButton.setText(i18n.t(PlatfMessages.ENT_OPTIONS_GROUP_TITLE));
- }
-
- public void setPersonalTitle() {
- super.setTitle(i18n.t(PlatfMessages.ENT_OPTIONS_USER_TITLE));
- optionsButton.setText(i18n.t(PlatfMessages.ENT_OPTIONS_USER_TITLE));
- }
-
- private void createAndShowItImpl() {
- entityPreferencesGroup.createAll();
- super.createAndShow();
- }
-
- private void createOptionsButton() {
- optionsButton = new EntityHeaderButton("", images.emblemSystem());
- optionsButton.addClickHandler(new ClickHandler() {
- public void onClick(final ClickEvent event) {
- createAndShowItImpl();
- }
- });
- optionsButton.ensureDebugId(GROUP_OPTIONS_ICON);
- entityHeader.addWidget(optionsButton);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -1,54 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package org.ourproject.kune.workspace.client.options;
-
-import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.platf.client.ui.dialogs.tabbed.AbstractTabbedDialogPresenter;
-
-import com.calclab.suco.client.events.Listener;
-
-public class EntityOptionsPresenter extends AbstractTabbedDialogPresenter implements GroupOptions, UserOptions {
-
- private EntityOptionsView view;
-
- public EntityOptionsPresenter(final StateManager stateManager) {
- stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
- public void onEvent(final StateAbstractDTO state) {
- if (state.getGroup().isPersonal()) {
- view.setPersonalTitle();
- } else {
- view.setGroupTitle();
- }
- if (state.getGroupRights().isAdministrable()) {
- view.setButtonVisible(true);
- } else {
- view.setButtonVisible(false);
- view.hide();
- }
- }
- });
- }
-
- public void init(final EntityOptionsView view) {
- super.init(view);
- this.view = view;
- }
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsView.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsView.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -25,9 +25,4 @@
int HEIGHT = 270;
- void setButtonVisible(boolean visible);
-
- void setGroupTitle();
-
- void setPersonalTitle();
}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/options/GroupOptionsPanel.java (from rev 1121, trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java 2009-06-08 14:18:03 UTC (rev 1121)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/GroupOptionsPanel.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,60 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.workspace.client.options;
+
+import org.ourproject.kune.platf.client.PlatfMessages;
+import org.ourproject.kune.platf.client.actions.ui.GuiActionDescrip;
+import org.ourproject.kune.platf.client.app.GroupOptionsCollection;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.services.Images;
+import org.ourproject.kune.platf.client.ui.dialogs.tabbed.AbstractTabbedDialogPanel;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
+
+public class GroupOptionsPanel extends AbstractTabbedDialogPanel implements GroupOptionsView {
+
+ public static final String GROUP_OP_PANEL_ID = "k-gop-diagpan";
+ public static final String GROUP_OPTIONS_ERROR_ID = "k-gop-err-mess";
+ private final EntityHeader entityHeader;
+
+ private final GroupOptionsCollection entityPreferencesGroup;
+
+ public GroupOptionsPanel(final EntityOptions presenter, final EntityHeader entityHeader,
+ final I18nTranslationService i18n, final Images images, final GroupOptionsCollection entityOptionsGroup) {
+ super(GROUP_OP_PANEL_ID, "", 400, HEIGHT + 80, 400, HEIGHT + 80, false, images, GROUP_OPTIONS_ERROR_ID);
+ this.entityHeader = entityHeader;
+ this.entityPreferencesGroup = entityOptionsGroup;
+ super.setIconCls("k-options-icon");
+ super.setTitle(i18n.t(PlatfMessages.GROUP_OPTIONS_DIALOG_TITLE));
+ }
+
+ public void addAction(final GuiActionDescrip descriptor) {
+ entityHeader.addAction(descriptor);
+ }
+
+ @Override
+ public void createAndShow() {
+ createAndShowItImpl();
+ }
+
+ private void createAndShowItImpl() {
+ entityPreferencesGroup.createAll();
+ super.createAndShow();
+ }
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/options/GroupOptionsPresenter.java (from rev 1129, trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPresenter.java 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/GroupOptionsPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,76 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.workspace.client.options;
+
+import org.ourproject.kune.platf.client.actions.AbstractExtendedAction;
+import org.ourproject.kune.platf.client.actions.Action;
+import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.ui.ButtonDescriptor;
+import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.dialogs.tabbed.AbstractTabbedDialogPresenter;
+import org.ourproject.kune.platf.client.ui.img.ImgConstants;
+import org.ourproject.kune.platf.client.ui.img.ImgResources;
+
+import com.calclab.suco.client.events.Listener;
+
+public class GroupOptionsPresenter extends AbstractTabbedDialogPresenter implements GroupOptions {
+ public static final String GROUP_OPTIONS_ICON = "k-eop-icon";
+ private GroupOptionsView view;
+ private final I18nTranslationService i18n;
+ private final ImgResources img;
+ private ButtonDescriptor prefsItem;
+
+ public GroupOptionsPresenter(final StateManager stateManager, final I18nTranslationService i18n,
+ final ImgResources img) {
+ this.i18n = i18n;
+ this.img = img;
+ stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
+ public void onEvent(final StateAbstractDTO state) {
+ if (!state.getGroup().isPersonal() && state.getGroupRights().isAdministrable()) {
+ prefsItem.setVisible(true);
+ } else {
+ view.hide();
+ prefsItem.setVisible(false);
+ }
+ }
+ });
+ }
+
+ public void init(final GroupOptionsView view) {
+ super.init(view);
+ this.view = view;
+ createActions();
+ }
+
+ private void createActions() {
+ final AbstractExtendedAction groupPrefsAction = new AbstractExtendedAction() {
+ public void actionPerformed(final ActionEvent event) {
+ show();
+ }
+ };
+ groupPrefsAction.putValue(Action.NAME, i18n.t("Group options"));
+ groupPrefsAction.putValue(Action.SMALL_ICON, ImgConstants.toPath(img.prefs()));
+ prefsItem = new ButtonDescriptor(groupPrefsAction);
+ prefsItem.setId(GROUP_OPTIONS_ICON);
+ view.addAction(prefsItem);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/GroupOptionsView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/GroupOptionsView.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/GroupOptionsView.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,9 @@
+package org.ourproject.kune.workspace.client.options;
+
+import org.ourproject.kune.platf.client.actions.ui.GuiActionDescrip;
+
+public interface GroupOptionsView extends EntityOptionsView {
+
+ void addAction(GuiActionDescrip descriptor);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPanel.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPanel.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,53 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.workspace.client.options;
+
+import org.ourproject.kune.platf.client.PlatfMessages;
+import org.ourproject.kune.platf.client.app.UserOptionsCollection;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.services.Images;
+import org.ourproject.kune.platf.client.ui.dialogs.tabbed.AbstractTabbedDialogPanel;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
+
+public class UserOptionsPanel extends AbstractTabbedDialogPanel implements UserOptionsView {
+
+ public static final String USER_OP_PANEL_ID = "k-uop-diagpan";
+ public static final String USER_OPTIONS_ERROR_ID = "k-uop-err-mess";
+
+ private final UserOptionsCollection userPreferencesGroup;
+
+ public UserOptionsPanel(final EntityOptions presenter, final EntityHeader entityHeader,
+ final I18nTranslationService i18n, final Images images, final UserOptionsCollection userOptionsGroup) {
+ super(USER_OP_PANEL_ID, "", 400, HEIGHT + 80, 400, HEIGHT + 80, false, images, USER_OPTIONS_ERROR_ID);
+ this.userPreferencesGroup = userOptionsGroup;
+ super.setIconCls("k-options-icon");
+ super.setTitle(i18n.t(PlatfMessages.USER_OPTIONS_DIALOG_TITLE));
+ }
+
+ @Override
+ public void createAndShow() {
+ createAndShowItImpl();
+ }
+
+ private void createAndShowItImpl() {
+ userPreferencesGroup.createAll();
+ super.createAndShow();
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,71 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.workspace.client.options;
+
+import org.ourproject.kune.platf.client.actions.AbstractExtendedAction;
+import org.ourproject.kune.platf.client.actions.Action;
+import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.ui.MenuItemDescriptor;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.ui.dialogs.tabbed.AbstractTabbedDialogPresenter;
+import org.ourproject.kune.platf.client.ui.img.ImgResources;
+import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserOptions;
+
+import com.calclab.suco.client.events.Listener0;
+
+public class UserOptionsPresenter extends AbstractTabbedDialogPresenter implements UserOptions {
+
+ private UserOptionsView view;
+ private final ImgResources img;
+ private final I18nTranslationService i18n;
+ private final SiteUserOptions userOptions;
+
+ public UserOptionsPresenter(final Session session, final I18nTranslationService i18n, final ImgResources img,
+ final SiteUserOptions userOptions) {
+ this.i18n = i18n;
+ this.img = img;
+ this.userOptions = userOptions;
+ session.onUserSignOut(new Listener0() {
+ public void onEvent() {
+ view.hide();
+ }
+ });
+ }
+
+ public void init(final UserOptionsView view) {
+ super.init(view);
+ this.view = view;
+ createActions();
+ }
+
+ private void createActions() {
+ final AbstractExtendedAction userPrefsAction = new AbstractExtendedAction() {
+ public void actionPerformed(final ActionEvent event) {
+ show();
+ }
+ };
+ userPrefsAction.putValue(Action.NAME, i18n.t("Your preferences"));
+ userPrefsAction.putValue(Action.SMALL_ICON, img.prefs());
+ final MenuItemDescriptor prefsItem = new MenuItemDescriptor(userPrefsAction);
+ prefsItem.setPosition(1);
+ userOptions.addAction(prefsItem);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsView.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsView.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.workspace.client.options;
+
+public interface UserOptionsView extends EntityOptionsView {
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/EntityOptionsDefLicensePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/EntityOptionsDefLicensePresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/EntityOptionsDefLicensePresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -22,42 +22,36 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.licensewizard.LicenseChangeAction;
import org.ourproject.kune.workspace.client.licensewizard.LicenseWizard;
import org.ourproject.kune.workspace.client.options.EntityOptions;
import com.calclab.suco.client.events.Listener;
import com.calclab.suco.client.events.Listener0;
-import com.calclab.suco.client.events.Listener2;
import com.calclab.suco.client.ioc.Provider;
-public class EntityOptionsDefLicensePresenter implements EntityOptionsDefLicense {
+public abstract class EntityOptionsDefLicensePresenter {
private EntityOptionsDefLicenseView view;
private final EntityOptions entityOptions;
- private final Session session;
+ protected final Session session;
private final Provider<LicenseWizard> licenseWizard;
- private final Provider<LicenseChangeAction> licenseChangeAction;
+ private final Provider<LicenseChangeAction> licChangeAction;
- public EntityOptionsDefLicensePresenter(EntityOptions entityOptions, StateManager stateManager, Session session,
- Provider<LicenseWizard> licenseWizard, Provider<LicenseChangeAction> licenseChangeAction) {
+ public EntityOptionsDefLicensePresenter(final EntityOptions entityOptions, final Session session,
+ final Provider<LicenseWizard> licenseWizard, final Provider<LicenseChangeAction> licChangeAction) {
this.entityOptions = entityOptions;
this.session = session;
this.licenseWizard = licenseWizard;
- this.licenseChangeAction = licenseChangeAction;
- stateManager.onGroupChanged(new Listener2<String, String>() {
- public void onEvent(String group1, String group2) {
- setState();
- }
- });
+ this.licChangeAction = licChangeAction;
+
}
public View getView() {
return view;
}
- public void init(EntityOptionsDefLicenseView view) {
+ public void init(final EntityOptionsDefLicenseView view) {
this.view = view;
entityOptions.addTab(view);
setState();
@@ -66,7 +60,7 @@
public void onChange() {
licenseWizard.get().start(new Listener<LicenseDTO>() {
public void onEvent(final LicenseDTO license) {
- licenseChangeAction.get().changeLicense(license, new Listener0() {
+ licChangeAction.get().changeLicense(license, new Listener0() {
public void onEvent() {
setLicense(license);
}
@@ -79,15 +73,17 @@
view.openWindow(getCurrentDefLicense().getUrl());
}
- private LicenseDTO getCurrentDefLicense() {
- return session.getCurrentState().getGroup().getDefaultLicense();
+ protected abstract boolean applicable();
+
+ protected abstract LicenseDTO getCurrentDefLicense();
+
+ protected void setState() {
+ if (applicable()) {
+ setLicense(getCurrentDefLicense());
+ }
}
- private void setLicense(LicenseDTO license) {
+ private void setLicense(final LicenseDTO license) {
view.setLicense(license);
}
-
- private void setState() {
- setLicense(getCurrentDefLicense());
- }
}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicense.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicense.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicense.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.workspace.client.options.license;
+
+public interface GroupOptionsDefLicense extends EntityOptionsDefLicense {
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicensePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicensePresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicensePresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,35 @@
+package org.ourproject.kune.workspace.client.options.license;
+
+import org.ourproject.kune.platf.client.dto.LicenseDTO;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.licensewizard.LicenseChangeAction;
+import org.ourproject.kune.workspace.client.licensewizard.LicenseWizard;
+import org.ourproject.kune.workspace.client.options.EntityOptions;
+
+import com.calclab.suco.client.events.Listener2;
+import com.calclab.suco.client.ioc.Provider;
+
+public class GroupOptionsDefLicensePresenter extends EntityOptionsDefLicensePresenter implements GroupOptionsDefLicense {
+
+ public GroupOptionsDefLicensePresenter(final EntityOptions entityOptions, final StateManager stateManager,
+ final Session session, final Provider<LicenseWizard> licenseWizard,
+ final Provider<LicenseChangeAction> licChangeAction) {
+ super(entityOptions, session, licenseWizard, licChangeAction);
+ stateManager.onGroupChanged(new Listener2<String, String>() {
+ public void onEvent(final String group1, final String group2) {
+ setState();
+ }
+ });
+ }
+
+ @Override
+ protected boolean applicable() {
+ return session.isCurrentStateAGroup();
+ }
+
+ @Override
+ protected LicenseDTO getCurrentDefLicense() {
+ return session.getCurrentState().getGroup().getDefaultLicense();
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicense.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicense.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicense.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.workspace.client.options.license;
+
+public interface UserOptionsDefLicense extends EntityOptionsDefLicense {
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicensePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicensePresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicensePresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,34 @@
+package org.ourproject.kune.workspace.client.options.license;
+
+import org.ourproject.kune.platf.client.dto.LicenseDTO;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.workspace.client.licensewizard.LicenseChangeAction;
+import org.ourproject.kune.workspace.client.licensewizard.LicenseWizard;
+import org.ourproject.kune.workspace.client.options.EntityOptions;
+
+import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.ioc.Provider;
+
+public class UserOptionsDefLicensePresenter extends EntityOptionsDefLicensePresenter implements UserOptionsDefLicense {
+
+ public UserOptionsDefLicensePresenter(final EntityOptions entityOptions, final Session session,
+ final Provider<LicenseWizard> licenseWizard, final Provider<LicenseChangeAction> licChangeAction) {
+ super(entityOptions, session, licenseWizard, licChangeAction);
+ session.onUserSignIn(new Listener<UserInfoDTO>() {
+ public void onEvent(final UserInfoDTO parameter) {
+ setState();
+ }
+ });
+ }
+
+ @Override
+ protected boolean applicable() {
+ return session.isCurrentStateAGroup();
+ }
+
+ @Override
+ protected LicenseDTO getCurrentDefLicense() {
+ return session.getCurrentState().getGroup().getDefaultLicense();
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPanel.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPanel.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -42,19 +42,18 @@
import com.gwtext.client.widgets.form.event.FieldListenerAdapter;
import com.gwtext.client.widgets.form.event.FormListener;
-public class EntityOptionsLogoPanel extends FormPanel implements EntityOptionsLogoView {
+public abstract class EntityOptionsLogoPanel extends FormPanel implements EntityOptionsLogoView {
- public static final String ICON_UPLOAD_SERVLET = "/ws/servlets/EntityLogoUploadManager";
- public static final String SET_LOGO_ID = "k-eolp-sendb";
- public static final String PANEL_ID = "k-eolp-pan";
+ public static final String ICON_UPLD_SERVLET = "/ws/servlets/EntityLogoUploadManager";
private final Hidden userhashField;
private final Hidden tokenField;
private final TextField file;
private final Label dialogInfoLabel;
private final I18nTranslationService i18n;
- public EntityOptionsLogoPanel(final EntityOptionsLogoPresenter presenter, final WorkspaceSkeleton ws,
- final I18nTranslationService i18n) {
+ public EntityOptionsLogoPanel(final EntityOptionsLogoPresenter presenter, final WorkspaceSkeleton wskel,
+ final I18nTranslationService i18n, final String panelId, final String buttonId, final String inputId) {
+ super();
this.i18n = i18n;
super.setHeight(EntityOptionsView.HEIGHT);
super.setButtonAlign(Position.LEFT);
@@ -65,7 +64,7 @@
super.setWidth(400);
super.setIconCls("k-picture-icon");
super.setMethod(Connection.POST);
- super.setUrl(ICON_UPLOAD_SERVLET);
+ super.setUrl(ICON_UPLD_SERVLET);
super.setWaitMsgTarget(true);
super.setHideLabels(true);
super.setPaddings(10);
@@ -84,21 +83,21 @@
});
dialogInfoLabel = new Label();
super.add(dialogInfoLabel);
- file = new TextField("File", FileConstants.LOGO_FORM_FIELD);
- EventCallback keyListener = new EventCallback() {
+ file = new TextField("File", inputId);
+ final EventCallback keyListener = new EventCallback() {
public void execute(final EventObject e) {
// setEnableFileField();
}
};
file.addKeyPressListener(keyListener);
- file.setId(FileConstants.LOGO_FORM_FIELD);
+ file.setId(inputId);
file.setInputType("file");
userhashField = new Hidden(FileConstants.HASH, FileConstants.HASH);
tokenField = new Hidden(FileConstants.TOKEN, FileConstants.TOKEN);
super.add(userhashField);
super.add(tokenField);
super.add(file);
- FieldListenerAdapter changeListener = new FieldListenerAdapter() {
+ final FieldListenerAdapter changeListener = new FieldListenerAdapter() {
@Override
public void onChange(final Field field, final Object newVal, final Object oldVal) {
NotifyUser.info("change");
@@ -107,18 +106,18 @@
};
// Don't works:
file.addListener(changeListener);
- setId(PANEL_ID);
+ setId(panelId);
- Button sendButton = new Button(i18n.t("Send"), new ButtonListenerAdapter() {
+ final Button sendButton = new Button(i18n.t("Send"), new ButtonListenerAdapter() {
@Override
public void onClick(final Button button, final EventObject e) {
- String filename = file.getValueAsString();
+ final String filename = file.getValueAsString();
if (filename != null && filename.length() > 0) {
getForm().submit();
}
}
});
- sendButton.setId(SET_LOGO_ID);
+ sendButton.setId(buttonId);
super.addButton(sendButton);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/EntityOptionsLogoPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -21,74 +21,51 @@
import org.ourproject.kune.chat.client.ChatEngine;
import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.rpc.UserServiceAsync;
import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.options.EntityOptions;
-import com.calclab.suco.client.events.Listener2;
import com.calclab.suco.client.ioc.Provider;
-public class EntityOptionsLogoPresenter implements EntityOptionsLogo {
+public abstract class EntityOptionsLogoPresenter implements GroupOptionsLogo, UserOptionsLogo {
- private EntityOptionsLogoView view;
- private final Session session;
+ protected EntityOptionsLogoView view;
+ protected final Session session;
private final EntityHeader entityLogo;
private final EntityOptions entityOptions;
- private final Provider<UserServiceAsync> userService;
- private final Provider<ChatEngine> chatEngine;
+ protected final Provider<UserServiceAsync> userService;
+ protected final Provider<ChatEngine> chatEngine;
- public EntityOptionsLogoPresenter(Session session, EntityHeader entityLogo, EntityOptions entityOptions,
- StateManager stateManager, Provider<UserServiceAsync> userService, Provider<ChatEngine> chatEngine) {
+ public EntityOptionsLogoPresenter(final Session session, final EntityHeader entityLogo,
+ final EntityOptions entityOptions, final Provider<UserServiceAsync> userService,
+ final Provider<ChatEngine> chatEngine) {
this.session = session;
this.entityLogo = entityLogo;
this.entityOptions = entityOptions;
this.userService = userService;
this.chatEngine = chatEngine;
- stateManager.onGroupChanged(new Listener2<String, String>() {
- public void onEvent(String group1, String group2) {
- setState();
- }
- });
}
public View getView() {
return view;
}
- public void init(EntityOptionsLogoView view) {
+ public void init(final EntityOptionsLogoView view) {
this.view = view;
entityOptions.addTab(view);
setState();
}
- public void onSubmitComplete(int httpStatus, String photoBinary) {
+ public void onSubmitComplete(final int httpStatus, final String photoBinary) {
entityLogo.reloadGroupLogoImage();
- GroupDTO group = session.getCurrentState().getGroup();
- if (session.getCurrentUser().getShortName().equals(group.getShortName())) {
- userService.get().getUserAvatarBaser64(session.getUserHash(), group.getStateToken(),
- new AsyncCallbackSimple<String>() {
- public void onSuccess(String photoBinary) {
- chatEngine.get().setAvatar(photoBinary);
- }
- });
- }
}
- public void onSubmitFailed(int httpStatus, String responseText) {
- NotifyUser.error("Error setting the group logo: " + responseText);
+ public void onSubmitFailed(final int httpStatus, final String responseText) {
+ NotifyUser.error("Error setting the logo: " + responseText);
}
- private void setState() {
- view.setUploadParams(session.getUserHash(), session.getCurrentStateToken().toString());
- if (session.getCurrentState().getGroup().isPersonal()) {
- view.setPersonalGroupsLabels();
- } else {
- view.setNormalGroupsLabels();
- }
- }
+ protected abstract void setState();
+
}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/GroupOptionsLogo.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/GroupOptionsLogo.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/GroupOptionsLogo.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.workspace.client.options.logo;
+
+public interface GroupOptionsLogo extends EntityOptionsLogo {
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/GroupOptionsLogoPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/GroupOptionsLogoPanel.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/GroupOptionsLogoPanel.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,16 @@
+package org.ourproject.kune.workspace.client.options.logo;
+
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.ui.download.FileConstants;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+public class GroupOptionsLogoPanel extends EntityOptionsLogoPanel {
+ public static final String PANEL_ID = "k-golp-pan";
+ public static final String BUTTON_ID = "k-golp-sendb";
+
+ public GroupOptionsLogoPanel(final EntityOptionsLogoPresenter presenter, final WorkspaceSkeleton wskel,
+ final I18nTranslationService i18n) {
+ super(presenter, wskel, i18n, PANEL_ID, BUTTON_ID, FileConstants.GROUP_LOGO_FIELD);
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/GroupOptionsLogoPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/GroupOptionsLogoPresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/GroupOptionsLogoPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,36 @@
+package org.ourproject.kune.workspace.client.options.logo;
+
+import org.ourproject.kune.chat.client.ChatEngine;
+import org.ourproject.kune.platf.client.rpc.UserServiceAsync;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
+import org.ourproject.kune.workspace.client.options.EntityOptions;
+
+import com.calclab.suco.client.events.Listener2;
+import com.calclab.suco.client.ioc.Provider;
+
+public class GroupOptionsLogoPresenter extends EntityOptionsLogoPresenter {
+
+ public GroupOptionsLogoPresenter(final Session session, final EntityHeader entityLogo,
+ final EntityOptions entityOptions, final StateManager stateManager,
+ final Provider<UserServiceAsync> userService, final Provider<ChatEngine> chatEngine) {
+ super(session, entityLogo, entityOptions, userService, chatEngine);
+ stateManager.onGroupChanged(new Listener2<String, String>() {
+ public void onEvent(final String group1, final String group2) {
+ setState();
+ }
+ });
+ }
+
+ @Override
+ public void init(final EntityOptionsLogoView view) {
+ super.init(view);
+ view.setNormalGroupsLabels();
+ }
+
+ @Override
+ protected void setState() {
+ view.setUploadParams(session.getUserHash(), session.getCurrentStateToken().toString());
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/UserOptionsLogo.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/UserOptionsLogo.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/UserOptionsLogo.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.workspace.client.options.logo;
+
+public interface UserOptionsLogo extends EntityOptionsLogo {
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/UserOptionsLogoPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/UserOptionsLogoPanel.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/UserOptionsLogoPanel.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,16 @@
+package org.ourproject.kune.workspace.client.options.logo;
+
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.ui.download.FileConstants;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+public class UserOptionsLogoPanel extends EntityOptionsLogoPanel {
+ public static final String PANEL_ID = "k-uolp-pan";
+ public static final String BUTTON_ID = "k-uolp-sendb";
+
+ public UserOptionsLogoPanel(final EntityOptionsLogoPresenter presenter, final WorkspaceSkeleton wskel,
+ final I18nTranslationService i18n) {
+ super(presenter, wskel, i18n, PANEL_ID, BUTTON_ID, FileConstants.USER_LOGO_FIELD);
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/UserOptionsLogoPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/UserOptionsLogoPresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/logo/UserOptionsLogoPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,53 @@
+package org.ourproject.kune.workspace.client.options.logo;
+
+import org.ourproject.kune.chat.client.ChatEngine;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.UserServiceAsync;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
+import org.ourproject.kune.workspace.client.options.EntityOptions;
+
+import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.ioc.Provider;
+
+public class UserOptionsLogoPresenter extends EntityOptionsLogoPresenter {
+
+ public UserOptionsLogoPresenter(final Session session, final EntityHeader entityLogo,
+ final EntityOptions entityOptions, final StateManager stateManager,
+ final Provider<UserServiceAsync> userService, final Provider<ChatEngine> chatEngine) {
+ super(session, entityLogo, entityOptions, userService, chatEngine);
+ session.onUserSignIn(new Listener<UserInfoDTO>() {
+ public void onEvent(final UserInfoDTO parameter) {
+ setState();
+ }
+ });
+ }
+
+ @Override
+ public void init(final EntityOptionsLogoView view) {
+ super.init(view);
+ view.setPersonalGroupsLabels();
+ }
+
+ @Override
+ public void onSubmitComplete(final int httpStatus, final String photoBinary) {
+ super.onSubmitComplete(httpStatus, photoBinary);
+ final GroupDTO group = session.getCurrentState().getGroup();
+ if (session.getCurrentUser().getShortName().equals(group.getShortName())) {
+ userService.get().getUserAvatarBaser64(session.getUserHash(), group.getStateToken(),
+ new AsyncCallbackSimple<String>() {
+ public void onSuccess(final String photoBinary) {
+ chatEngine.get().setAvatar(photoBinary);
+ }
+ });
+ }
+ }
+
+ @Override
+ protected void setState() {
+ view.setUploadParams(session.getUserHash(), session.getCurrentUser().getStateToken().toString());
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -22,12 +22,12 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.workspace.client.options.EntityOptions;
-public class EntityOptionsPublicSpaceConfPresenter implements EntityOptionsPublicSpaceConf {
+public class EntityOptionsPublicSpaceConfPresenter implements GroupOptionsPublicSpaceConf, UserOptionsPublicSpaceConf {
private EntityOptionsPublicSpaceConfView view;
private final EntityOptions entityOptions;
- public EntityOptionsPublicSpaceConfPresenter(EntityOptions entityOptions) {
+ public EntityOptionsPublicSpaceConfPresenter(final EntityOptions entityOptions) {
this.entityOptions = entityOptions;
}
@@ -35,7 +35,7 @@
return view;
}
- public void init(EntityOptionsPublicSpaceConfView view) {
+ public void init(final EntityOptionsPublicSpaceConfView view) {
this.view = view;
entityOptions.addTab(view);
}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConf.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConf.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConf.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.workspace.client.options.pscape;
+
+public interface GroupOptionsPublicSpaceConf extends EntityOptionsPublicSpaceConf {
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConf.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConf.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConf.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.workspace.client.options.pscape;
+
+public interface UserOptionsPublicSpaceConf extends EntityOptionsPublicSpaceConf {
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPanel.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPanel.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -41,7 +41,7 @@
private final I18nTranslationService i18n;
public EntityOptionsToolsConfPanel(final EntityOptionsToolsConfPresenter presenter, final WorkspaceSkeleton ws,
- I18nTranslationService i18n) {
+ final I18nTranslationService i18n) {
super(i18n.t("Tools"));
this.i18n = i18n;
super.setHeight(EntityOptionsView.HEIGHT);
@@ -53,13 +53,14 @@
}
public void add(final ToolSimpleDTO tool) {
- Checkbox checkbox = new Checkbox(tool.getRootName(), new CheckboxListenerAdapter() {
+ final Checkbox checkbox = new Checkbox(tool.getRootName());
+ checkbox.setChecked(false);
+ checkbox.addListener(new CheckboxListenerAdapter() {
@Override
- public void onCheck(Checkbox field, boolean checked) {
+ public void onCheck(final Checkbox field, final boolean checked) {
presenter.onCheck(tool, checked);
}
});
- checkbox.setChecked(false);
super.add(checkbox);
fields.put(tool.getName(), checkbox);
doLayoutIfNeeded();
@@ -68,18 +69,18 @@
public void clear() {
super.getFormPanel().removeAll(true);
fields.clear();
- Label label = new Label();
+ final Label label = new Label();
label.setHtml(i18n.t("Here you can select the tools used:") + "<br/><br/>");
super.add(label);
}
- public void setChecked(String tool, boolean checked) {
- Checkbox field = getTool(tool);
+ public void setChecked(final String tool, final boolean checked) {
+ final Checkbox field = getTool(tool);
field.setValue(checked);
}
- public void setEnabled(String tool, boolean enabled) {
- Checkbox field = getTool(tool);
+ public void setEnabled(final String tool, final boolean enabled) {
+ final Checkbox field = getTool(tool);
if (enabled) {
field.enable();
} else {
@@ -87,9 +88,9 @@
}
}
- public void setTooltip(String tool, String tip) {
- Checkbox field = getTool(tool);
- ToolTip tooltip = new ToolTip();
+ public void setTooltip(final String tool, final String tip) {
+ final Checkbox field = getTool(tool);
+ final ToolTip tooltip = new ToolTip();
tooltip.setHtml(tip);
tooltip.setWidth(250);
tooltip.applyTo(field);
@@ -103,8 +104,8 @@
}
}
- private Checkbox getTool(String tool) {
- Checkbox field = fields.get(tool);
+ private Checkbox getTool(final String tool) {
+ final Checkbox field = fields.get(tool);
if (field == null) {
Log.error("Field " + tool + " not found in EOTCP");
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -1,29 +1,10 @@
-/*
- *
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
package org.ourproject.kune.workspace.client.options.tools;
import java.util.Collection;
+import java.util.List;
import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
-import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.dto.ToolSimpleDTO;
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
@@ -32,32 +13,26 @@
import org.ourproject.kune.platf.client.ui.noti.NotifyUser.Level;
import org.ourproject.kune.workspace.client.options.EntityOptions;
-import com.calclab.suco.client.events.Listener2;
import com.calclab.suco.client.ioc.Provider;
import com.google.gwt.user.client.rpc.AsyncCallback;
-public class EntityOptionsToolsConfPresenter implements EntityOptionsToolsConf {
+public abstract class EntityOptionsToolsConfPresenter {
private EntityOptionsToolsConfView view;
- private final Session session;
private final EntityOptions entityOptions;
+ protected final Session session;
private final Provider<GroupServiceAsync> groupServiceProvider;
- private final I18nTranslationService i18n;
- private final StateManager stateManager;
+ protected final I18nTranslationService i18n;
+ protected final StateManager stateManager;
- public EntityOptionsToolsConfPresenter(final StateManager stateManager, final Session session,
+ public EntityOptionsToolsConfPresenter(final Session session, final StateManager stateManager,
final I18nTranslationService i18n, final EntityOptions entityOptions,
final Provider<GroupServiceAsync> groupServiceProvider) {
- this.stateManager = stateManager;
this.session = session;
+ this.stateManager = stateManager;
this.i18n = i18n;
this.entityOptions = entityOptions;
this.groupServiceProvider = groupServiceProvider;
- stateManager.onGroupChanged(new Listener2<String, String>() {
- public void onEvent(final String group1, final String group2) {
- setState();
- }
- });
}
public View getView() {
@@ -71,62 +46,65 @@
}
public void onCheck(final ToolSimpleDTO tool, final boolean checked) {
- StateAbstractDTO state = session.getCurrentState();
- String toolName = tool.getName();
+ final List<String> enabledTools = getEnabledTools();
+ final String toolName = tool.getName();
if (checked) {
- if (!(state.getEnabledTools().contains(toolName))) {
- // Log.info("Tool " + tool.getName() + " checked: " + checked +
- // " enabled tools: "
- // + state.getEnabledTools().toString());
+ if (!(enabledTools.contains(toolName))) {
setToolCheckedInServer(checked, toolName);
} else {
// do nothing
}
} else {
- if (state.getEnabledTools().contains(tool.getName())) {
- // Log.info("Tool " + tool.getName() + " checked: " + checked);
+ if (enabledTools.contains(toolName)) {
setToolCheckedInServer(checked, toolName);
- if (session.getCurrentStateToken().getTool().equals(toolName)) {
- stateManager.gotoToken(session.getCurrentState().getGroup().getDefaultContent().getStateToken());
- }
+ gotoDifLocationIfNecessary(toolName);
}
}
}
- private void reset() {
+ protected abstract boolean applicable();
+
+ protected abstract Collection<ToolSimpleDTO> getAllTools();
+
+ protected abstract StateToken getDefContentToken();
+
+ protected abstract String getDefContentTooltip();
+
+ protected abstract List<String> getEnabledTools();
+
+ protected abstract StateToken getOperationToken();
+
+ protected abstract void gotoDifLocationIfNecessary(String toolName);
+
+ protected void reset() {
view.clear();
entityOptions.hideMessages();
}
- private void setState() {
- StateAbstractDTO state = session.getCurrentState();
+ protected void setState() {
reset();
- Collection<ToolSimpleDTO> toolCollection;
- if (state.getGroup().isPersonal()) {
- toolCollection = session.getUserTools();
- } else {
- toolCollection = session.getGroupTools();
- }
- for (ToolSimpleDTO tool : toolCollection) {
+ final Collection<ToolSimpleDTO> toolCollection = getAllTools();
+ for (final ToolSimpleDTO tool : toolCollection) {
view.add(tool);
view.setEnabled(tool.getName(), true);
}
- for (String tool : state.getEnabledTools()) {
+ for (final String tool : getEnabledTools()) {
view.setChecked(tool, true);
}
- ContentSimpleDTO defaultContent = session.getCurrentState().getGroup().getDefaultContent();
- if (defaultContent != null) {
- String defContentTool = defaultContent.getStateToken().getTool();
- view.setEnabled(defContentTool, false);
- view.setTooltip(
- defContentTool,
- i18n.t("You cannot disable this tool because it's where the current group home page is located. To do that you have to select other content as the default group home page but in another tool."));
+
+ final StateToken token = getDefContentToken();
+ if (token != null) {
+ final String defContentTool = token.getTool();
+ if (defContentTool != null) {
+ view.setEnabled(defContentTool, false);
+ view.setTooltip(defContentTool, getDefContentTooltip());
+ }
}
}
- private void setToolCheckedInServer(final boolean checked, final String toolName) {
- groupServiceProvider.get().setToolEnabled(session.getUserHash(), session.getCurrentStateToken(), toolName,
- checked, new AsyncCallback<Object>() {
+ protected void setToolCheckedInServer(final boolean checked, final String toolName) {
+ groupServiceProvider.get().setToolEnabled(session.getUserHash(), getOperationToken(), toolName, checked,
+ new AsyncCallback<Object>() {
public void onFailure(final Throwable caught) {
view.setChecked(toolName, !checked);
entityOptions.setErrorMessage(i18n.t("Error configuring the tool"), Level.error);
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/GroupOptionsToolConf.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/GroupOptionsToolConf.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/GroupOptionsToolConf.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.workspace.client.options.tools;
+
+public interface GroupOptionsToolConf extends EntityOptionsToolsConf {
+
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/GroupOptionsToolsConfPresenter.java (from rev 1121, trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java 2009-06-08 14:18:03 UTC (rev 1121)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/GroupOptionsToolsConfPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,91 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.workspace.client.options.tools;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.dto.ToolSimpleDTO;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.options.EntityOptions;
+
+import com.calclab.suco.client.events.Listener2;
+import com.calclab.suco.client.ioc.Provider;
+
+public class GroupOptionsToolsConfPresenter extends EntityOptionsToolsConfPresenter implements GroupOptionsToolConf {
+
+ public GroupOptionsToolsConfPresenter(final StateManager stateManager, final Session session,
+ final I18nTranslationService i18n, final EntityOptions entityOptions,
+ final Provider<GroupServiceAsync> groupService) {
+ super(session, stateManager, i18n, entityOptions, groupService);
+ stateManager.onGroupChanged(new Listener2<String, String>() {
+ public void onEvent(final String group1, final String group2) {
+ setState();
+ }
+ });
+ }
+
+ @Override
+ protected boolean applicable() {
+ return session.isCurrentStateAGroup();
+ }
+
+ @Override
+ protected Collection<ToolSimpleDTO> getAllTools() {
+ return session.getGroupTools();
+ }
+
+ @Override
+ protected StateToken getDefContentToken() {
+ final ContentSimpleDTO defaultContent = session.getCurrentState().getGroup().getDefaultContent();
+ return defaultContent == null ? null : defaultContent.getStateToken();
+ }
+
+ @Override
+ protected String getDefContentTooltip() {
+ return i18n.t("You cannot disable this tool because it's where the current group home page is located. To do that you have to select other content as the default group home page but in another tool.");
+ }
+
+ @Override
+ protected List<String> getEnabledTools() {
+ return session.getCurrentState().getEnabledTools();
+ }
+
+ @Override
+ protected StateToken getOperationToken() {
+ return session.getCurrentStateToken();
+ }
+
+ @Override
+ protected void gotoDifLocationIfNecessary(final String toolName) {
+ if (session.getCurrentStateToken().getTool().equals(toolName)) {
+ final ContentSimpleDTO defaultContent = session.getCurrentState().getGroup().getDefaultContent();
+ if (defaultContent != null) {
+ stateManager.gotoToken(defaultContent.getStateToken());
+ }
+ }
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/UserOptionsToolsConf.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/UserOptionsToolsConf.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/UserOptionsToolsConf.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.workspace.client.options.tools;
+
+public interface UserOptionsToolsConf extends EntityOptionsToolsConf {
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/UserOptionsToolsConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/UserOptionsToolsConfPresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/UserOptionsToolsConfPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -0,0 +1,88 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.workspace.client.options.tools;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.dto.ToolSimpleDTO;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.options.EntityOptions;
+
+import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.ioc.Provider;
+
+public class UserOptionsToolsConfPresenter extends EntityOptionsToolsConfPresenter implements UserOptionsToolsConf {
+
+ public UserOptionsToolsConfPresenter(final Session session, final StateManager stateManager,
+ final I18nTranslationService i18n, final EntityOptions entityOptions,
+ final Provider<GroupServiceAsync> groupService) {
+ super(session, stateManager, i18n, entityOptions, groupService);
+ session.onUserSignIn(new Listener<UserInfoDTO>() {
+ public void onEvent(final UserInfoDTO parameter) {
+ setState();
+ }
+ });
+ }
+
+ @Override
+ protected boolean applicable() {
+ return session.isLogged();
+ }
+
+ @Override
+ protected Collection<ToolSimpleDTO> getAllTools() {
+ return session.getUserTools();
+ }
+
+ @Override
+ protected StateToken getDefContentToken() {
+ final String homePage = session.getCurrentUserInfo().getHomePage();
+ return homePage == null ? null : new StateToken(homePage);
+ }
+
+ @Override
+ protected String getDefContentTooltip() {
+ return i18n.t("You cannot disable this tool because it's where your home page is located. To do that you have to select other content as the default home page but in another tool.");
+ }
+
+ @Override
+ protected List<String> getEnabledTools() {
+ return session.getCurrentUserInfo().getEnabledTools();
+ }
+
+ @Override
+ protected StateToken getOperationToken() {
+ return session.getCurrentUser().getStateToken();
+ }
+
+ @Override
+ protected void gotoDifLocationIfNecessary(final String toolName) {
+ if (session.getCurrentStateToken().getGroup().equals(session.getCurrentUserInfo().getShortName())
+ && session.getCurrentStateToken().getTool().equals(toolName)) {
+ stateManager.gotoToken(session.getCurrentState().getGroup().getDefaultContent().getStateToken());
+ }
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -35,6 +35,7 @@
import com.gwtext.client.data.Record;
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
+import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Panel;
@@ -42,6 +43,7 @@
import com.gwtext.client.widgets.Window;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.event.PanelListenerAdapter;
+import com.gwtext.client.widgets.event.WindowListenerAdapter;
import com.gwtext.client.widgets.form.Field;
import com.gwtext.client.widgets.form.FormPanel;
import com.gwtext.client.widgets.form.TextField;
@@ -169,7 +171,23 @@
centerPanel.setActiveItemID(panelId);
dialog.setCloseAction(Window.HIDE);
+ dialog.addListener(new WindowListenerAdapter() {
+ @Override
+ public void onMove(final BoxComponent component, final int x, final int y) {
+ checkPosition(component, x, y);
+ }
+ @Override
+ public void onShow(final Component component) {
+ checkPosition(dialog, component.getAbsoluteLeft(), component.getAbsoluteTop());
+ }
+
+ private void checkPosition(final BoxComponent component, final int x, final int y) {
+ if (y < 0) {
+ component.setPagePosition(x, 0);
+ }
+ }
+ });
return dialog;
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -27,6 +27,7 @@
import org.ourproject.kune.platf.client.actions.ui.GuiActionDescrip;
import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor;
import org.ourproject.kune.platf.client.actions.ui.MenuItemDescriptor;
+import org.ourproject.kune.platf.client.actions.ui.MenuSeparatorDescriptor;
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.client.ui.KuneWindowUtils;
import org.ourproject.kune.platf.client.ui.img.ImgResources;
@@ -64,6 +65,8 @@
menuDescriptor.setStandalone(true);
view.addAction(menuDescriptor);
view.setMenu(menuDescriptor);
+ final MenuSeparatorDescriptor sep = new MenuSeparatorDescriptor(menuDescriptor);
+ view.addAction(sep);
final AbstractExtendedAction bugsAction = new AbstractExtendedAction() {
public void actionPerformed(final ActionEvent event) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsPresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -122,18 +122,6 @@
final MenuItemDescriptor item = new MenuItemDescriptor(userHomeAction);
item.setPosition(0);
addAction(item);
-
- final AbstractExtendedAction userPrefsAction = new AbstractExtendedAction() {
- public void actionPerformed(final ActionEvent event) {
- goUserHome();
- userOptions.get().show();
- }
- };
- userPrefsAction.putValue(Action.NAME, i18n.t("Your preferences"));
- userPrefsAction.putValue(Action.SMALL_ICON, img.prefs());
- final MenuItemDescriptor prefsItem = new MenuItemDescriptor(userPrefsAction);
- prefsItem.setPosition(1);
- addAction(prefsItem);
}
private void goUserHome() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Entity.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Entity.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Entity.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -44,13 +44,13 @@
entityFitPanel.setLayout(new FitLayout());
entityFitPanel.setBorder(false);
- Panel entityAnchorLayout = new Panel();
- entityAnchorLayout.setBorder(false);
- entityAnchorLayout.setLayout(new AnchorLayout());
+ final Panel entityAnchor = new Panel();
+ entityAnchor.setBorder(false);
+ entityAnchor.setLayout(new AnchorLayout());
- Panel entityBorderLayout = new Panel();
- entityBorderLayout.setLayout(new BorderLayout());
- entityBorderLayout.setBorder(false);
+ final Panel entityBorder = new Panel();
+ entityBorder.setLayout(new BorderLayout());
+ entityBorder.setBorder(false);
entityMainHeader = new Panel();
entityMainHeader.setBorder(false);
@@ -58,22 +58,22 @@
entityWorkspace = new EntityWorkspace();
- BorderLayoutData eastData = new BorderLayoutData(RegionPosition.EAST);
+ final BorderLayoutData eastData = new BorderLayoutData(RegionPosition.EAST);
eastData.setMinSize(50);
eastData.setSplit(true);
eastData.setCollapseModeMini(true);
eastData.setUseSplitTips(true);
entitySummary = new EntitySummary();
- entityBorderLayout.add(entityWorkspace.getPanel(), new BorderLayoutData(RegionPosition.CENTER));
- entityBorderLayout.add(entitySummary.getPanel(), eastData);
+ entityBorder.add(entityWorkspace.getPanel(), new BorderLayoutData(RegionPosition.CENTER));
+ entityBorder.add(entitySummary.getPanel(), eastData);
- entityAnchorLayout.add(entityMainHeader, new AnchorLayoutData("100%"));
- entityAnchorLayout.add(entityBorderLayout, new AnchorLayoutData("100% -65"));
- entityFitPanel.add(entityAnchorLayout);
+ entityAnchor.add(entityMainHeader, new AnchorLayoutData("100%"));
+ entityAnchor.add(entityBorder, new AnchorLayoutData("100% -65"));
+ entityFitPanel.add(entityAnchor);
}
- public void addInSummary(Panel panel) {
+ public void addInSummary(final Panel panel) {
entitySummary.addInSummary(panel);
}
@@ -82,7 +82,7 @@
doLayoutIfNeeded();
}
- public void addListenerInEntitySummary(ContainerListenerAdapter listener) {
+ public void addListenerInEntitySummary(final ContainerListenerAdapter listener) {
entitySummary.addListener(listener);
}
@@ -111,9 +111,9 @@
entitySummary.doLayoutIfNeeded();
}
- public void setMaximized(boolean maximized) {
+ public void setMaximized(final boolean maximized) {
+ entitySummary.setMaximized(maximized);
entityWorkspace.setMaximized(maximized);
- entitySummary.setMaximized(maximized);
}
public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -72,7 +72,7 @@
entitySummary.setId(ENTITY_SUMMARY);
trayBar = new Toolbar();
- trayBar.setHeight(WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT);
+ trayBar.setHeight(WorkspaceSkeleton.DEF_BAR_HEIGHT);
trayBar.setId(SITE_TRAYBAR);
trayBar.setCls(SITE_TRAYBAR);
trayBar.addFill();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -77,25 +77,25 @@
bottomPanel.setLayout(new AnchorLayout());
title = new SimpleToolbar();
- title.setHeight("" + (WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT - 2));
+ title.setHeight("" + (WorkspaceSkeleton.DEF_BAR_HEIGHT - 2));
title.setStylePrimaryName(ENTITY_TITLE);
// title.ensureDebugId(ENTITY_TITLE);
subTitle = new SimpleToolbar();
subTitle.setStylePrimaryName(ENTITY_SUBTITLE);
// subTitle.ensureDebugId(ENTITY_SUBTITLE);
bottom = new SimpleToolbar();
- bottom.setHeight("" + (WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT - 2));
+ bottom.setHeight("" + (WorkspaceSkeleton.DEF_BAR_HEIGHT - 2));
bottom.setStylePrimaryName(ENTITY_BOTTOM);
// bottom.ensureDebugId(ENTITY_BOTTOM);
roundedTitle = new RoundedPanel(title, RoundedPanel.TOPLEFT, 2);
roundedBottom = new RoundedPanel(bottom, RoundedPanel.BOTTOMLEFT, 2);
- titles.add(roundedTitle, new AnchorLayoutData("100% -" + WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT));
- titles.add(subTitle, new AnchorLayoutData("100% -" + WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT));
- bottomPanel.add(roundedBottom, new AnchorLayoutData("100% -" + WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT));
- titles.setHeight(WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT * 2);
- bottomPanel.setHeight(WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT);
+ titles.add(roundedTitle, new AnchorLayoutData("100% -" + WorkspaceSkeleton.DEF_BAR_HEIGHT));
+ titles.add(subTitle, new AnchorLayoutData("100% -" + WorkspaceSkeleton.DEF_BAR_HEIGHT));
+ bottomPanel.add(roundedBottom, new AnchorLayoutData("100% -" + WorkspaceSkeleton.DEF_BAR_HEIGHT));
+ titles.setHeight(WorkspaceSkeleton.DEF_BAR_HEIGHT * 2);
+ bottomPanel.setHeight(WorkspaceSkeleton.DEF_BAR_HEIGHT);
final Panel contentWrap = new Panel();
contextWrap = new Panel();
@@ -117,10 +117,10 @@
contentBottomBar = new Toolbar();
contextTopBar = new Toolbar();
contextBottomBar = new Toolbar();
- contentTopBar.getPanel().setHeight(WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT);
- contextTopBar.getPanel().setHeight(WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT);
- contentBottomBar.getPanel().setHeight(WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT);
- contentBottomBar.getPanel().setHeight(WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT);
+ contentTopBar.getPanel().setHeight(WorkspaceSkeleton.DEF_BAR_HEIGHT);
+ contextTopBar.getPanel().setHeight(WorkspaceSkeleton.DEF_BAR_HEIGHT);
+ contentBottomBar.getPanel().setHeight(WorkspaceSkeleton.DEF_BAR_HEIGHT);
+ contentBottomBar.getPanel().setHeight(WorkspaceSkeleton.DEF_BAR_HEIGHT);
contentTopBar.addStyleName("k-toolbar-bottom-line");
contentBottomBar.addStyleName("k-toolbar-top-line");
contextTopBar.addStyleName("k-toolbar-bottom-line");
@@ -142,8 +142,8 @@
mainAnchorLayout.add(titles, new AnchorLayoutData("100%"));
mainAnchorLayout.add(cntCtxBorderLayout, new AnchorLayoutData("100% -"
- + ((WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT * 3))));
- mainAnchorLayout.add(bottomPanel, new AnchorLayoutData("100% -" + WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT * 3));
+ + ((WorkspaceSkeleton.DEF_BAR_HEIGHT * 3))));
+ mainAnchorLayout.add(bottomPanel, new AnchorLayoutData("100% -" + WorkspaceSkeleton.DEF_BAR_HEIGHT * 3));
mainFitPanel.add(mainAnchorLayout);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Toolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Toolbar.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Toolbar.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -35,7 +35,7 @@
container = new Panel();
container.setBorder(false);
container.setBodyBorder(false);
- container.setHeight(WorkspaceSkeleton.DEF_TOOLBAR_HEIGHT);
+ container.setHeight(WorkspaceSkeleton.DEF_BAR_HEIGHT);
container.setWidth(_100PC);
container.setHeader(false);
container.setBaseCls("x-toolbar");
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -39,38 +39,36 @@
import com.gwtext.client.widgets.layout.FitLayout;
public class WorkspaceSkeleton {
- public static final int DEF_TOOLBAR_HEIGHT = 26;
+ public static final int DEF_BAR_HEIGHT = 26;
private final Entity entity;
private final SimpleToolbar sitebar;
- private final Panel mainPanel;
- private final Panel container;
private final ExtElement extRootBody;
public WorkspaceSkeleton() {
extRootBody = new ExtElement(RootPanel.getBodyElement());
- container = new Panel();
+ final Panel container = new Panel();
container.setLayout(new FitLayout());
container.setBorder(false);
container.setPaddings(5);
- mainPanel = new Panel();
+ final Panel mainPanel = new Panel();
mainPanel.setLayout(new AnchorLayout());
mainPanel.setBorder(false);
sitebar = new SimpleToolbar();
sitebar.setStyleName("k-sitebar");
- sitebar.setHeight("" + DEF_TOOLBAR_HEIGHT);
+ sitebar.setHeight(String.valueOf(DEF_BAR_HEIGHT));
entity = new Entity();
mainPanel.add(sitebar, new AnchorLayoutData("100%"));
- mainPanel.add(entity.getPanel(), new AnchorLayoutData("100% -" + DEF_TOOLBAR_HEIGHT));
+ mainPanel.add(entity.getPanel(), new AnchorLayoutData("100% -" + DEF_BAR_HEIGHT));
container.add(mainPanel);
new Viewport(container);
}
- public void addInSummary(Panel panel) {
+ public void addInSummary(final Panel panel) {
entity.addInSummary(panel);
}
@@ -78,7 +76,7 @@
entity.addInTools(widget);
}
- public void addListenerInEntitySummary(ContainerListenerAdapter listener) {
+ public void addListenerInEntitySummary(final ContainerListenerAdapter listener) {
entity.addListenerInEntitySummary(listener);
}
@@ -90,7 +88,7 @@
final Listener0 onCancel) {
MessageBox.confirm(title, message, new MessageBox.ConfirmCallback() {
public void execute(final String btnID) {
- if (btnID.equals("yes")) {
+ if ("yes".equals(btnID)) {
DeferredCommand.addCommand(new Command() {
public void execute() {
onConfirmed.onEvent();
@@ -136,7 +134,7 @@
entity.refreshSummary();
}
- public void setMaximized(boolean maximized) {
+ public void setMaximized(final boolean maximized) {
entity.setMaximized(maximized);
}
@@ -147,6 +145,7 @@
public void showAlertMessage(final String title, final String message) {
MessageBox.alert(title, message, new MessageBox.AlertCallback() {
public void execute() {
+ // Do nothing
}
});
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java 2009-06-25 14:55:19 UTC (rev 1130)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java 2009-06-27 22:41:14 UTC (rev 1131)
@@ -5,8 +5,8 @@
import org.junit.Ignore;
import org.ourproject.kune.platf.client.ui.download.FileConstants;
-import org.ourproject.kune.workspace.client.options.EntityOptionsPanel;
-import org.ourproject.kune.workspace.client.options.logo.EntityOptionsLogoPanel;
+import org.ourproject.kune.workspace.client.options.GroupOptionsPresenter;
+import org.ourproject.kune.workspace.client.options.logo.GroupOptionsLogoPanel;
public class EntityLogoSeleniumTest extends KuneSeleniumTestHelper {
@@ -18,13 +18,14 @@
setLogo("kune-logo-without-text.png");
}
- private void setLogo(String filename) throws Exception, IOException {
- click(gid(EntityOptionsPanel.GROUP_OPTIONS_ICON));
+ private void setLogo(final String filename) throws Exception, IOException {
+ click(gid(GroupOptionsPresenter.GROUP_OPTIONS_ICON));
// waitForTextInside(EntityOptionsLogoPanel.PANEL_ID,
// PlatfMessages.ENT_OPTIONS_GROUP_TITLE);
- click(EntityOptionsLogoPanel.SET_LOGO_ID);
- File dir = new File(".");
- type(FileConstants.LOGO_FORM_FIELD, dir.getCanonicalPath() + File.separator + "img" + File.separator + filename);
- click(EntityOptionsLogoPanel.SET_LOGO_ID);
+ click(GroupOptionsLogoPanel.BUTTON_ID);
+ final File dir = new File(".");
+ type(FileConstants.GROUP_LOGO_FIELD, dir.getCanonicalPath() + File.separator + "img" + File.separator
+ + filename);
+ click(GroupOptionsLogoPanel.BUTTON_ID);
}
}
1
0
Author: vjrj
Date: 2009-06-25 16:55:19 +0200 (Thu, 25 Jun 2009)
New Revision: 1130
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/actions/Shortcut.java
trunk/src/test/java/org/ourproject/kune/platf/client/actions/ShortcutTest.java
Removed:
trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionShortcutTest.java
Modified:
trunk/TODO
trunk/pom.xml
trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
trunk/src/main/java/org/ourproject/kune/blogs/KuneBlogs.gwt.xml
trunk/src/main/java/org/ourproject/kune/chat/KuneChat.gwt.xml
trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java
trunk/src/main/java/org/ourproject/kune/docs/KuneDocs.gwt.xml
trunk/src/main/java/org/ourproject/kune/gallery/KuneGallery.gwt.xml
trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/ExtMediaDescripDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTELinkPopup.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java
trunk/src/main/java/org/ourproject/kune/wiki/KuneWiki.gwt.xml
trunk/src/main/java/org/ourproject/kune/workspace/KuneWorkspace.gwt.xml
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java
Log:
Complete - taskShortcuts refactorization
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/TODO 2009-06-25 14:55:19 UTC (rev 1130)
@@ -140,6 +140,11 @@
** vjrj <v> IconHyperlink.java and IconLabel.java to gwt1.5
* MID-TERM
+** TODO <v> karma, reputation, trust metrics:
+http://wiki.couchsurfing.com/en/Trust
+http://p2pfoundation.net/Trust_Metrics
+http://en.wikipedia.org/wiki/Trust_metric
+http://www.advogato.org/trust-metric.html
** TODO <v> use guice 2.0
http://google-code-updates.blogspot.com/2009/05/guice-deuce.html
http://code.google.com/docreader/#p=google-guice&s=google-guice
@@ -152,6 +157,7 @@
** TODO <v,s> harden our privacy policy. Goals:
- permit user/projects/contents how much private or public are
- APIs public only to associated sites (in study) ( http://oauth.net ? )
+http://raibledesigns.com/rd/entry/implementing_oauth_with_gwt
- the social net info (xmpp ids) must follow the mobile numbers/email info interchange mode (if I don't have yor email/mobile, I can't contact you)
- keep always the user informed
- consider integration of chryptopgraphy (keyczar.org ? )
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/pom.xml 2009-06-25 14:55:19 UTC (rev 1130)
@@ -470,8 +470,8 @@
<version>2.0-RC1</version>
<configuration>
<logLevel>INFO</logLevel>
- <style>OBF</style>
- <!-- <style>OBF PRETTY</style> -->
+ <!-- <style>OBF or PRETTY</style> -->
+ <style>PRETTY</style>
<!--
<output>${project.build.directory}/gwt/www</output>
-->
Modified: trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/…">
<module rename-to='ws'>
<inherits name='com.google.gwt.i18n.I18N' />
<inherits name='com.google.gwt.user.User' />
Modified: trunk/src/main/java/org/ourproject/kune/blogs/KuneBlogs.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/KuneBlogs.gwt.xml 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/blogs/KuneBlogs.gwt.xml 2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/…">
<module>
<inherits name='org.ourproject.kune.platf.KunePlatform' />
<inherits name='org.ourproject.kune.workspace.KuneWorkspace' />
Modified: trunk/src/main/java/org/ourproject/kune/chat/KuneChat.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/KuneChat.gwt.xml 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/chat/KuneChat.gwt.xml 2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/…">
<module>
<inherits name='org.ourproject.kune.platf.KunePlatform' />
<inherits name='org.ourproject.kune.workspace.KuneWorkspace' />
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java 2009-06-25 14:55:19 UTC (rev 1130)
@@ -22,13 +22,16 @@
import java.util.Collection;
import java.util.Date;
+import org.ourproject.kune.platf.client.actions.AbstractExtendedAction;
+import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.KeyStroke;
+import org.ourproject.kune.platf.client.actions.Shortcut;
import org.ourproject.kune.platf.client.app.Application;
import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.client.shortcuts.GlobalShortcutRegister;
-import org.ourproject.kune.platf.client.shortcuts.ShortcutDescriptor;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.ui.WindowUtils;
import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
@@ -61,28 +64,29 @@
class ChatEngineDefault implements ChatEngine {
private ChatConnectionOptions chatOptions;
private final I18nTranslationService i18n;
- private final WorkspaceSkeleton ws;
+ private final WorkspaceSkeleton wskel;
private ToolbarButton traybarButton;
private final Provider<EmiteUIDialog> emiteUIProvider;
private final Provider<FileDownloadUtils> downloadUtils;
private Collection<RosterItem> roster;
private final Event0 onRosterChanged;
- private final ShortcutDescriptor shortcut;
+ private final KeyStroke shortcut;
- public ChatEngineDefault(final I18nTranslationService i18n, final WorkspaceSkeleton ws,
+ public ChatEngineDefault(final I18nTranslationService i18n, final WorkspaceSkeleton wskel,
final Application application, final Session session, final Provider<EmiteUIDialog> emiteUIProvider,
- final Provider<FileDownloadUtils> downloadUtils, final GlobalShortcutRegister globalShortcutRegister) {
+ final Provider<FileDownloadUtils> downloadUtils, final GlobalShortcutRegister shortcutRegister) {
this.i18n = i18n;
- this.ws = ws;
+ this.wskel = wskel;
this.emiteUIProvider = emiteUIProvider;
this.downloadUtils = downloadUtils;
this.onRosterChanged = new Event0("onRosterChanged");
- shortcut = new ShortcutDescriptor(false, true, false, 'C');
- globalShortcutRegister.put(shortcut, new Listener0() {
- public void onEvent() {
+ shortcut = Shortcut.getShortcut(false, true, false, false, Character.valueOf('C'));
+ shortcutRegister.put(shortcut, new AbstractExtendedAction() {
+ public void actionPerformed(final ActionEvent event) {
if (isDialogStarted()) {
toggleShow();
}
+
}
});
session.onInitDataReceived(new Listener<InitDataDTO>() {
@@ -177,7 +181,7 @@
});
}
} else {
- ws.showAlertMessage(i18n.t("Error"), i18n.t("To join a chatroom you need to be 'online'"));
+ wskel.showAlertMessage(i18n.t("Error"), i18n.t("To join a chatroom you need to be 'online'"));
}
}
@@ -220,7 +224,7 @@
toggleShow();
}
});
- ws.getSiteTraybar().addButton(traybarButton);
+ wskel.getSiteTraybar().addButton(traybarButton);
emiteUIProvider.get().onChatAttended(new Listener<String>() {
public void onEvent(final String parameter) {
traybarButton.setIcon("images/e-icon.gif");
Modified: trunk/src/main/java/org/ourproject/kune/docs/KuneDocs.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/KuneDocs.gwt.xml 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/docs/KuneDocs.gwt.xml 2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/…">
<module>
<inherits name='org.ourproject.kune.platf.KunePlatform' />
<inherits name='org.ourproject.kune.workspace.KuneWorkspace' />
Modified: trunk/src/main/java/org/ourproject/kune/gallery/KuneGallery.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/KuneGallery.gwt.xml 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/gallery/KuneGallery.gwt.xml 2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/…">
<module>
<inherits name='org.ourproject.kune.platf.KunePlatform' />
<inherits name='org.ourproject.kune.workspace.KuneWorkspace' />
Modified: trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml 2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/…">
<module>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User' />
Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/Shortcut.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/Shortcut.java 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/Shortcut.java 2009-06-25 14:55:19 UTC (rev 1130)
@@ -0,0 +1,25 @@
+package org.ourproject.kune.platf.client.actions;
+
+import org.ourproject.kune.platf.client.shortcuts.Keyboard;
+
+public final class Shortcut {
+
+ public static KeyStroke getShortcut(final boolean ctrl, final boolean alt, final boolean shift, final boolean meta,
+ final Character character) {
+ return KeyStroke.getKeyStroke(character, (ctrl ? Keyboard.MODIFIER_CTRL : 0)
+ + (alt ? Keyboard.MODIFIER_ALT : 0) + (shift ? Keyboard.MODIFIER_SHIFT : 0)
+ + (meta ? Keyboard.MODIFIER_META : 0));
+ }
+
+ public static KeyStroke getShortcut(final boolean ctrl, final boolean shift, final Character character) {
+ return getShortcut(ctrl, false, shift, false, character);
+ }
+
+ public static KeyStroke getShortcut(final boolean ctrl, final Character character) {
+ return getShortcut(ctrl, false, false, false, character);
+ }
+
+ private Shortcut() {
+ }
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
@@ -39,7 +39,7 @@
this.view = toolbar;
}
- public void addActions(final ActionItemCollection<T> actions, ActionToolbarPosition position) {
+ public void addActions(final ActionItemCollection<T> actions, final ActionToolbarPosition position) {
for (final ActionItem<T> actionItem : actions) {
final ActionDescriptor<T> action = actionItem.getAction();
if (actionItem.mustBeAdded()) {
@@ -82,11 +82,11 @@
view.clear();
}
- public int getLeftPosition(ActionDescriptor<T> action) {
+ public int getLeftPosition(final ActionDescriptor<T> action) {
return view.getLeftPosition(action);
}
- public int getTopPosition(ActionDescriptor<T> action) {
+ public int getTopPosition(final ActionDescriptor<T> action) {
return view.getTopPosition(action);
}
@@ -98,7 +98,7 @@
view.hideAllMenus();
}
- public void setButtonEnable(ActionDescriptor<T> action, boolean enable) {
+ public void setButtonEnable(final ActionDescriptor<T> action, final boolean enable) {
view.setButtonEnable(action, enable);
}
@@ -110,15 +110,16 @@
view.setNormalStyle();
}
- public void setParentMenuTitle(ActionToolbarPosition position, String origTitle, String origTooltip, String newTitle) {
+ public void setParentMenuTitle(final ActionToolbarPosition position, final String origTitle,
+ final String origTooltip, final String newTitle) {
view.setParentMenuTitle(position, origTitle, origTooltip, newTitle);
}
- public void setPushButtonPressed(ActionDescriptor<T> action, boolean pressed) {
+ public void setPushButtonPressed(final ActionDescriptor<T> action, final boolean pressed) {
view.setPushButtonPressed(action, pressed);
}
- private boolean addInPosition(ActionDescriptor<T> action, ActionToolbarPosition position) {
+ private boolean addInPosition(final ActionDescriptor<T> action, final ActionToolbarPosition position) {
if (position.equals(IN_ANY) || ((ActionToolbarDescriptor<T>) action).getActionPosition().equals(position)) {
return true;
}
@@ -126,15 +127,15 @@
}
private boolean isToolbarButton(final ActionDescriptor<T> action) {
- return action instanceof ActionToolbarButtonDescriptor
- || action instanceof ActionToolbarButtonAndItemDescriptor;
+ return action instanceof ActionToolbarButtonDescriptor<?>
+ || action instanceof ActionToolbarButtonAndItemDescriptor<?>;
}
private boolean isToolbarMenu(final ActionDescriptor<T> action) {
return action instanceof ActionToolbarMenuDescriptor || action instanceof ActionToolbarMenuAndItemDescriptor;
}
- private boolean isToolbarPushButton(ActionDescriptor<T> action) {
+ private boolean isToolbarPushButton(final ActionDescriptor<T> action) {
return action instanceof ActionToolbarPushButtonDescriptor;
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/ExtMediaDescripDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/ExtMediaDescripDTO.java 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/ExtMediaDescripDTO.java 2009-06-25 14:55:19 UTC (rev 1130)
@@ -14,15 +14,14 @@
private String idRegex;
private String embedTemplate;
private int width;
-
private int height;
public ExtMediaDescripDTO() {
this(null, null, null, null, null, 0, 0);
}
- public ExtMediaDescripDTO(final String name, final String siteurl, final String detectRegex,
- final String idRegex, final String embedTemplate, final int defWidth, final int defHeight) {
+ public ExtMediaDescripDTO(final String name, final String siteurl, final String detectRegex, final String idRegex,
+ final String embedTemplate, final int defWidth, final int defHeight) {
this.name = name;
this.siteurl = siteurl;
this.detectRegex = detectRegex;
@@ -37,7 +36,7 @@
}
public String getEmbed(final String url) {
- String id = getId(url);
+ final String id = getId(url);
String result = embedTemplate.replaceAll(URL, id);
result = result.replaceAll(HEIGHT, "" + height);
result = result.replaceAll(WIDTH, "" + width);
@@ -53,7 +52,7 @@
}
public String getId(final String url) {
- String id = url.replaceFirst(idRegex, "$1");
+ final String id = url.replaceFirst(idRegex, "$1");
return id;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java 2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,32 +1,35 @@
package org.ourproject.kune.platf.client.shortcuts;
-import org.ourproject.kune.platf.client.actions.ActionItem;
-import org.ourproject.kune.platf.client.actions.ActionManager;
+import org.ourproject.kune.platf.client.actions.AbstractAction;
+import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.InputMap;
+import org.ourproject.kune.platf.client.actions.Shortcut;
+import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.dom.client.NativeEvent;
-import com.google.gwt.event.dom.client.KeyDownEvent;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Event.NativePreviewEvent;
import com.google.gwt.user.client.Event.NativePreviewHandler;
-public class GlobalShortcutRegister extends ShortcutRegister {
+public class GlobalShortcutRegister extends InputMap {
private final NativePreviewHandler eventHandler;
private HandlerRegistration handlerReg;
- public GlobalShortcutRegister(final ActionManager actionManager) {
+ public GlobalShortcutRegister() {
super();
eventHandler = new NativePreviewHandler() {
- @SuppressWarnings("unchecked")
public void onPreviewNativeEvent(final NativePreviewEvent nativeEventPrev) {
- final NativeEvent event = nativeEventPrev.getNativeEvent();
- if (nativeEventPrev.getAssociatedType().equals(KeyDownEvent.getType())) {
- final ActionItem actionItem = get(event);
- if (actionItem != null) {
- // Log.debug("Not propagating event");
- event.stopPropagation();
- actionManager.doAction(actionItem);
+ if (nativeEventPrev.getTypeInt() == Event.ONKEYDOWN) {
+ final NativeEvent nativeEvent = nativeEventPrev.getNativeEvent();
+ final Event event = Event.as(nativeEvent);
+ final AbstractAction action = get(Shortcut.getShortcut(event.getCtrlKey(), event.getAltKey(),
+ event.getShiftKey(), event.getShiftKey(), (char) event.getKeyCode()));
+ if (action != null) {
+ Log.debug("Not propagating event");
+ nativeEvent.stopPropagation();
+ action.actionPerformed(new ActionEvent(nativeEvent.getCurrentEventTarget(), event));
nativeEventPrev.cancel();
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css 2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,3 +1,19 @@
@sprite div .k-icon-info {
gwt-image: 'info';
}
+
+@sprite div .k-icon-language {
+ gwt-image: 'language';
+}
+
+@sprite div .k-icon-kuneIcon16 {
+ gwt-image: 'kuneIcon16';
+}
+
+@sprite div .k-icon-prefs {
+ gwt-image: 'prefs';
+}
+
+@sprite div .k-icon-groupHome {
+ gwt-image: 'groupHome';
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTELinkPopup.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTELinkPopup.java 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTELinkPopup.java 2009-06-25 14:55:19 UTC (rev 1130)
@@ -41,7 +41,7 @@
KuneUiUtils.setUnselectable(actionLabel.getElement());
actionLabel.addClickHandler(new ClickHandler() {
public void onClick(final ClickEvent event) {
- item.fire(new ActionEvent(actionLabel, (Event) event.getNativeEvent()));
+ item.fire(new ActionEvent(actionLabel, Event.as(event.getNativeEvent())));
}
});
hpanel.insert(actionLabel, 0);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2009-06-25 14:55:19 UTC (rev 1130)
@@ -15,6 +15,7 @@
import org.ourproject.kune.platf.client.actions.ActionEvent;
import org.ourproject.kune.platf.client.actions.InputMap;
import org.ourproject.kune.platf.client.actions.KeyStroke;
+import org.ourproject.kune.platf.client.actions.Shortcut;
import org.ourproject.kune.platf.client.actions.ui.AbstractActionExtensiblePresenter;
import org.ourproject.kune.platf.client.actions.ui.ButtonDescriptor;
import org.ourproject.kune.platf.client.actions.ui.GuiActionDescCollection;
@@ -29,7 +30,6 @@
import org.ourproject.kune.platf.client.actions.ui.ToolbarSeparatorDescriptor;
import org.ourproject.kune.platf.client.actions.ui.ToolbarSeparatorDescriptor.Type;
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
-import org.ourproject.kune.platf.client.shortcuts.Keyboard;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.ui.img.ImgConstants;
import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
@@ -901,71 +901,71 @@
final SelectAllAction selectAllAction = new SelectAllAction(i18n.t("Select all"),
AbstractExtendedAction.NO_TEXT, imgResources.selectall());
final MenuItemDescriptor select = new MenuItemDescriptor(editMenu, selectAllAction);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('A'), Keyboard.MODIFIER_CTRL), selectAllAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('A')), selectAllAction);
final BoldAction boldAction = new BoldAction(NO_TEXT, i18n.t("Bold"), imgResources.bold());
bold = new PushButtonDescriptor(boldAction);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('B'), Keyboard.MODIFIER_CTRL), boldAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('B')), boldAction);
final ItalicAction italicAction = new ItalicAction(NO_TEXT, i18n.t("Italic"), imgResources.italic());
italic = new PushButtonDescriptor(italicAction);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('I'), Keyboard.MODIFIER_CTRL), italicAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('I')), italicAction);
final UnderlineAction underlineAction = new UnderlineAction(NO_TEXT, i18n.t("Underline"),
imgResources.underline());
underline = new PushButtonDescriptor(underlineAction);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('U'), Keyboard.MODIFIER_CTRL), underlineAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('U')), underlineAction);
final SubscriptAction subscriptAction = new SubscriptAction(i18n.t("Subscript"), NO_TEXT,
imgResources.subscript());
final MenuItemDescriptor subscript = new MenuItemDescriptor(formatMenu, subscriptAction);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf(','), Keyboard.MODIFIER_CTRL), subscriptAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf(',')), subscriptAction);
final SuperscriptAction superscriptAction = new SuperscriptAction(i18n.t("Superscript"), NO_TEXT,
imgResources.superscript());
final MenuItemDescriptor superscript = new MenuItemDescriptor(formatMenu, superscriptAction);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('.'), Keyboard.MODIFIER_CTRL), superscriptAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('.')), superscriptAction);
final JustifyLeftAction jfyLeftAction = new JustifyLeftAction(NO_TEXT, i18n.t("Left Justify"),
imgResources.alignleft());
final ButtonDescriptor justifyLeft = new ButtonDescriptor(jfyLeftAction);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('L'), Keyboard.MODIFIER_CTRL), jfyLeftAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('L')), jfyLeftAction);
final JustifyCentreAction jfyCentreAction = new JustifyCentreAction(NO_TEXT, i18n.t("Centre Justify"),
imgResources.centerpara());
final ButtonDescriptor justifyCentre = new ButtonDescriptor(jfyCentreAction);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('E'), Keyboard.MODIFIER_CTRL), jfyCentreAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('E')), jfyCentreAction);
final JustifyRightAction jfyRightAction = new JustifyRightAction(NO_TEXT, i18n.t("Right Justify"),
imgResources.alignright());
final ButtonDescriptor justifyRight = new ButtonDescriptor(jfyRightAction);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('R'), Keyboard.MODIFIER_CTRL), jfyRightAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('R')), jfyRightAction);
final UndoAction undoAction = new UndoAction(i18n.t("Undo"), NO_TEXT, imgResources.undo());
final UndoAction undoActionBtn = new UndoAction(NO_TEXT, i18n.t("Undo"), imgResources.undo());
final MenuItemDescriptor undo = new MenuItemDescriptor(editMenu, undoAction);
final ButtonDescriptor undoBtn = new ButtonDescriptor(undoActionBtn);
undoBtn.setPosition(0);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('Z'), Keyboard.MODIFIER_CTRL), undoAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('Z')), undoAction);
final RedoAction redoAction = new RedoAction(i18n.t("Redo"), NO_TEXT, imgResources.redo());
final RedoAction redoActionBtn = new RedoAction(NO_TEXT, i18n.t("Redo"), imgResources.redo());
final MenuItemDescriptor redo = new MenuItemDescriptor(editMenu, redoAction);
final ButtonDescriptor redoBtn = new ButtonDescriptor(redoActionBtn);
redoBtn.setPosition(1);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('Y'), Keyboard.MODIFIER_CTRL), redoAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('Y')), redoAction);
final CopyAction copyAction = new CopyAction(i18n.t("Copy"), NO_TEXT, imgResources.copy());
final MenuItemDescriptor copy = new MenuItemDescriptor(editMenu, copyAction);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('C'), Keyboard.MODIFIER_CTRL), copyAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('C')), copyAction);
final CutAction cutAction = new CutAction(i18n.t("Cut"), NO_TEXT, imgResources.cut());
final MenuItemDescriptor cut = new MenuItemDescriptor(editMenu, cutAction);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('X'), Keyboard.MODIFIER_CTRL), cutAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('X')), cutAction);
final PasteAction pasteAction = new PasteAction(i18n.t("Paste"), NO_TEXT, imgResources.paste());
final MenuItemDescriptor paste = new MenuItemDescriptor(editMenu, pasteAction);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('V'), Keyboard.MODIFIER_CTRL), pasteAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('V')), pasteAction);
final EditHtmlAction editHtmlAction = new EditHtmlAction(i18n.t("Edit HTML"), NO_TEXT, imgResources.edithtml());
final MenuItemDescriptor editHtml = new MenuItemDescriptor(editMenu, editHtmlAction);
@@ -974,7 +974,7 @@
final CommentAction commentAction = new CommentAction(i18n.t("Comment"), NO_TEXT, NO_ICON);
final MenuItemDescriptor comment = new MenuItemDescriptor(insertMenu, commentAction);
comment.setAddCondition(extendedAddCond);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('M'), Keyboard.MODIFIER_CTRL), commentAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('M')), commentAction);
final HrAction hlineAction = new HrAction(i18n.t("Horizontal line"), NO_TEXT, imgResources.hfixedline());
final HrAction hlineBtnAction = new HrAction(NO_TEXT, i18n.t("Horizontal line"), imgResources.hfixedline());
@@ -982,8 +982,7 @@
final ButtonDescriptor hlineBtn = new ButtonDescriptor(hlineBtnAction);
hline.setAddCondition(extendedAddCond);
hlineBtn.setAddCondition(extendedAddCond);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf(' '), Keyboard.MODIFIER_CTRL
- + Keyboard.MODIFIER_SHIFT), hlineAction);
+ setActionShortcut(Shortcut.getShortcut(true, true, Character.valueOf(' ')), hlineAction);
final BlockquoteAction blockquoteAction = new BlockquoteAction(i18n.t("Block Quotation"), NO_TEXT, NO_ICON);
final MenuItemDescriptor blockquote = new MenuItemDescriptor(formatMenu, blockquoteAction);
@@ -1007,12 +1006,12 @@
final OlAction olistAction = new OlAction(NO_TEXT, i18n.t("Numbered List"), imgResources.defaultnumbering());
final ButtonDescriptor olist = new ButtonDescriptor(olistAction);
olist.setAddCondition(extendedAddCond);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('7'), Keyboard.MODIFIER_CTRL), olistAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('7')), olistAction);
final UlAction ulistAction = new UlAction(NO_TEXT, i18n.t("Bullet List"), imgResources.defaultbullet());
final ButtonDescriptor ulist = new ButtonDescriptor(ulistAction);
ulist.setAddCondition(extendedAddCond);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('8'), Keyboard.MODIFIER_CTRL), ulistAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('8')), ulistAction);
final ImgAction imgAction = new ImgAction(i18n.t("Image..."), NO_TEXT, imgResources.images());
final ImgAction imgBtnAction = new ImgAction(NO_TEXT, i18n.t("Insert Image"), imgResources.images());
@@ -1038,11 +1037,9 @@
editLink.setAddCondition(extendedAddCond);
editLinkBtn.setAddCondition(extendedAddCond);
editLinkCtx.setAddCondition(extendedAddCond);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('K'), Keyboard.MODIFIER_CTRL), editLinkAction,
- editLinkBtnAction);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('K')), editLinkAction, editLinkBtnAction);
- final KeyStroke key_SK = KeyStroke.getKeyStroke(Character.valueOf('K'), Keyboard.MODIFIER_CTRL
- + Keyboard.MODIFIER_SHIFT);
+ final KeyStroke key_SK = Shortcut.getShortcut(true, true, Character.valueOf('K'));
final RemoveLinkAction delLinkBtnAction = new RemoveLinkAction(NO_TEXT, i18n.t("Remove Link"),
imgResources.linkbreak());
final RemoveLinkAction delLinkCtxAction = new RemoveLinkAction(i18n.t("Remove"), NO_TEXT,
@@ -1061,8 +1058,7 @@
final ButtonDescriptor removeFormatBtn = new ButtonDescriptor(remFormatBtnAc);
removeFormat.setAddCondition(extendedAddCond);
removeFormatBtn.setAddCondition(extendedAddCond);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf(' '), Keyboard.MODIFIER_CTRL), remFormatAction,
- remFormatBtnAc);
+ setActionShortcut(Shortcut.getShortcut(true, Character.valueOf(' ')), remFormatAction, remFormatBtnAc);
final InsertSpecialCharAction insCharAction = new InsertSpecialCharAction(i18n.t("Special characters..."),
NO_TEXT, imgResources.specialchars());
@@ -1092,7 +1088,7 @@
imgResources.specialchars());
final MenuItemDescriptor devInfo = new MenuItemDescriptor(formatMenu, devInfoAction);
devInfo.setAddCondition(extendedAddCond);
- setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('I'), Keyboard.MODIFIER_ALT), devInfoAction);
+ setActionShortcut(Shortcut.getShortcut(false, true, false, false, Character.valueOf('I')), devInfoAction);
actions = new GuiActionDescCollection();
addActions(fileMenu, editMenu, formatMenu, insertMenu, undo, redo, editMenuSep, copy, cut, paste, editMenuSep,
@@ -1138,8 +1134,9 @@
final MenuRadioItemDescriptor fontSizeItem = new MenuRadioItemDescriptor(fontSizeMenu, fontSizeAction,
FONT_SIZEGROUP);
fontSizeItem.setAddCondition(basicAddCond);
- // setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf(((char)
- // (48 + fontSize))), Keyboard.MODIFIER_CTRL),
+ // setActionShortcut(Shortcut.getShortcut(true,
+ // Character.valueOf(((char)
+ // (48 + fontSize)))),
// fontSizeAction);
fontSizeItem.setLocation(SNDBAR);
actions.add(fontSizeItem);
Modified: trunk/src/main/java/org/ourproject/kune/wiki/KuneWiki.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/KuneWiki.gwt.xml 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/wiki/KuneWiki.gwt.xml 2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/…">
<module>
<inherits name='org.ourproject.kune.platf.KunePlatform' />
<inherits name='org.ourproject.kune.workspace.KuneWorkspace' />
Modified: trunk/src/main/java/org/ourproject/kune/workspace/KuneWorkspace.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/KuneWorkspace.gwt.xml 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/workspace/KuneWorkspace.gwt.xml 2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/…">
<module>
<inherits name='org.ourproject.kune.platf.KunePlatform' />
<inherits name="com.google.gwt.core.Core" />
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-06-25 14:55:19 UTC (rev 1130)
@@ -995,7 +995,7 @@
register(ApplicationComponentGroup.class, new Factory<GlobalShortcutRegister>(GlobalShortcutRegister.class) {
@Override
public GlobalShortcutRegister create() {
- return new GlobalShortcutRegister(i(ActionManager.class));
+ return new GlobalShortcutRegister();
}
});
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java 2009-06-25 14:55:19 UTC (rev 1130)
@@ -21,8 +21,10 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.actions.AbstractAction;
+import org.ourproject.kune.platf.client.actions.AbstractExtendedAction;
import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.Shortcut;
import org.ourproject.kune.platf.client.actions.ui.MenuCheckItemDescriptor;
import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor;
import org.ourproject.kune.platf.client.actions.ui.MenuItemDescriptor;
@@ -33,7 +35,6 @@
import org.ourproject.kune.platf.client.i18n.I18nTranslationServiceMocked;
import org.ourproject.kune.platf.client.services.AbstractExtendedModule;
import org.ourproject.kune.platf.client.shortcuts.GlobalShortcutRegister;
-import org.ourproject.kune.platf.client.shortcuts.ShortcutDescriptor;
import org.ourproject.kune.platf.client.ui.img.ImgResources;
import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import org.ourproject.kune.workspace.client.editor.ContentEditor;
@@ -41,7 +42,6 @@
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import com.allen_sauer.gwt.log.client.Log;
-import com.calclab.suco.client.events.Listener0;
import com.calclab.suco.client.ioc.Provider;
import com.calclab.suco.client.ioc.decorator.Singleton;
import com.calclab.suco.client.ioc.module.Factory;
@@ -294,11 +294,12 @@
/**
* Global shortcut sample definition
*/
- i(GlobalShortcutRegister.class).put(new ShortcutDescriptor(false, true, false, 'S'), new Listener0() {
- public void onEvent() {
- NotifyUser.info("Global Ctrl+S pressed");
- }
- });
+ i(GlobalShortcutRegister.class).put(Shortcut.getShortcut(true, Character.valueOf('S')),
+ new AbstractExtendedAction() {
+ public void actionPerformed(final ActionEvent event) {
+ NotifyUser.info("Global Ctrl+S pressed");
+ }
+ });
// And because nobody use this module, we get the class (to force the
// creation of the Helloworld instance):
Deleted: trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionShortcutTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionShortcutTest.java 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionShortcutTest.java 2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,63 +0,0 @@
-package org.ourproject.kune.platf.client.actions;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.ourproject.kune.platf.client.i18n.I18nTranslationServiceMocked;
-import org.ourproject.kune.platf.client.i18n.Resources;
-import org.ourproject.kune.platf.client.shortcuts.Keyboard;
-import org.ourproject.kune.platf.client.shortcuts.ShortcutDescriptor;
-
-public class ActionShortcutTest {
-
- @Test
- public void altS() {
- final ShortcutDescriptor shortcut = new ShortcutDescriptor(false, true, false, 'S', null);
- assertEquals(" (Alt+S)", shortcut.toString());
- assertTrue(shortcut.is('S', Keyboard.MODIFIER_ALT));
- assertTrue(!shortcut.is('S', Keyboard.MODIFIER_CTRL));
- assertTrue(!shortcut.is('S', Keyboard.MODIFIER_SHIFT));
- }
-
- @Before
- public void before() {
- new Resources(new I18nTranslationServiceMocked());
- }
-
- @Test
- public void ctrlComa() {
- final ShortcutDescriptor shortcut = new ShortcutDescriptor(true, ',');
- assertEquals(" (Ctrl+,)", shortcut.toString());
- assertTrue(shortcut.is(',', Keyboard.MODIFIER_CTRL));
- assertTrue(!shortcut.is(',', Keyboard.MODIFIER_ALT));
- assertTrue(!shortcut.is(',', Keyboard.MODIFIER_SHIFT));
- }
-
- @Test
- public void ctrlS() {
- final ShortcutDescriptor shortcut = new ShortcutDescriptor(true, 's');
- assertEquals(" (Ctrl+S)", shortcut.toString());
- assertTrue(shortcut.is('s', Keyboard.MODIFIER_CTRL));
- assertTrue(!shortcut.is('s', Keyboard.MODIFIER_ALT));
- assertTrue(!shortcut.is('s', Keyboard.MODIFIER_SHIFT));
- }
-
- @Test
- public void ctrlSCapital() {
- final ShortcutDescriptor shortcut = new ShortcutDescriptor(true, 'S');
- assertEquals(" (Ctrl+S)", shortcut.toString());
- assertTrue(shortcut.is('S', Keyboard.MODIFIER_CTRL));
- assertTrue(!shortcut.is('S', Keyboard.MODIFIER_ALT));
- assertTrue(!shortcut.is('S', Keyboard.MODIFIER_SHIFT));
- }
-
- @Test
- public void ctrlShiftS() {
- final ShortcutDescriptor shortcut = new ShortcutDescriptor(true, false, true, 'S', null);
- assertEquals(" (Ctrl+Shift+S)", shortcut.toString());
- assertTrue(!shortcut.is('S', Keyboard.MODIFIER_ALT));
- assertTrue(shortcut.is('S', Keyboard.MODIFIER_SHIFT | Keyboard.MODIFIER_CTRL));
- }
-}
Added: trunk/src/test/java/org/ourproject/kune/platf/client/actions/ShortcutTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/actions/ShortcutTest.java 2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/actions/ShortcutTest.java 2009-06-25 14:55:19 UTC (rev 1130)
@@ -0,0 +1,39 @@
+package org.ourproject.kune.platf.client.actions;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationServiceMocked;
+import org.ourproject.kune.platf.client.i18n.Resources;
+
+public class ShortcutTest {
+ @Test
+ public void altS() {
+ final KeyStroke shortcut = Shortcut.getShortcut(false, true, false, false, 'S');
+ assertEquals(" (Alt+S)", shortcut.toString());
+ }
+
+ @Before
+ public void before() {
+ new Resources(new I18nTranslationServiceMocked());
+ }
+
+ @Test
+ public void ctrlComa() {
+ final KeyStroke shortcut = Shortcut.getShortcut(true, ',');
+ assertEquals(" (Ctrl+,)", shortcut.toString());
+ }
+
+ @Test
+ public void ctrlSCapital() {
+ final KeyStroke shortcut = Shortcut.getShortcut(true, 'S');
+ assertEquals(" (Ctrl+S)", shortcut.toString());
+ }
+
+ @Test
+ public void ctrlShiftS() {
+ final KeyStroke shortcut = Shortcut.getShortcut(true, false, true, false, 'S');
+ assertEquals(" (Ctrl+Shift+S)", shortcut.toString());
+ }
+}
1
0