r881 - in trunk: . src/main/java/org/ourproject/kune/app src/main/java/org/ourproject/kune/app/client src/main/java/org/ourproject/kune/app/server src/main/java/org/ourproject/kune/chat src/main/java/org/ourproject/kune/chat/client src/main/java/org/ourproject/kune/chat/client/cnt src/main/java/org/ourproject/kune/chat/client/ctx src/main/java/org/ourproject/kune/chat/client/ctx/rooms src/main/java/org/ourproject/kune/docs/client src/main/java/org/ourproject/kune/docs/client/actions src/main/
Author: vjrj Date: 2008-09-24 03:47:16 +0200 (Wed, 24 Sep 2008) New Revision: 881 Added: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationComponentGroup.java trunk/src/main/java/org/ourproject/kune/platf/client/app/ToolGroup.java trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneCoreModule.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUtils.java trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/FileManagerTest.java trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/FileUtilsTest.java Removed: trunk/src/main/java/org/ourproject/kune/platf/client/services/Kune.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManagerDefault.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManagerRevisited.java Modified: trunk/pom.xml trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java trunk/src/main/java/org/ourproject/kune/chat/Kune-Chat.gwt.xml 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/chat/client/ChatEngineXmpp.java trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContentPresenter.java trunk/src/main/java/org/ourproject/kune/chat/client/ctx/ChatContextPresenter.java trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdminPresenter.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/docs/client/DocumentClientTool.java trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditAction.java trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditInProgressAction.java trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentPublishAction.java trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentRejectAction.java trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSetStatusAction.java trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSubmitForPublishAction.java trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTranslationAction.java trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTrashAction.java trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContent.java trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextPresenter.java trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonDescriptor.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionManager.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionMenuDescriptor.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbar.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/app/Application.java trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java trunk/src/main/java/org/ourproject/kune/platf/client/dto/ChatUserParamsDTO.java trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserDTO.java trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.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/StateManager.java trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java trunk/src/main/java/org/ourproject/kune/platf/client/tool/ToolSelectorItemPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/tool/ToolSelectorPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/MenuItem.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/FileUploader.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/FileUploaderDialog.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridButton.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridDropConfiguration.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePresenter.java trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java trunk/src/main/java/org/ourproject/kune/platf/server/domain/ChatUserParams.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/FileManager.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileManagerDefault.java trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePresenter.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/search/EntityLiveSearcher.java trunk/src/main/java/org/ourproject/kune/workspace/client/search/EntityLiveSearcherPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/site/Site.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitelogo/SiteLogoPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteprogress/SiteProgressPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPresenter.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/WorkspaceSkeleton.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/ParticipationSummaryPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/summary/GroupSummaryPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.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/title/EntitySubTitlePresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePresenter.java trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java trunk/src/test/java/org/ourproject/kune/platf/integration/site/UserServiceTest.java trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java Log: (hosted mode not working, waiting emiteui bugfix) Incomplete - task 63: Use ensureDebugId for automated testing Complete - task 49: New server FileManager (to help with files) Incomplete - task 51: File upload server manager Incomplete - task 24: new suco 0.5.0 and emite 0.4.1 http://code.google.com/p/kune/issues/detail?id=24 Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/pom.xml 2008-09-24 01:47:16 UTC (rev 881) @@ -1,522 +1,603 @@ <?xml version="1.0" encoding="UTF-8"?> <project> - <modelVersion>4.0.0</modelVersion> - <groupId>org.ourproject</groupId> - <artifactId>kune</artifactId> - <packaging>jar</packaging> - <version>0.0.4</version> - <description>kune free/open/libre collaboration platform</description> - <name>kune</name> - <url>http://kune.ourproject.org</url> + <modelVersion>4.0.0</modelVersion> + <groupId>org.ourproject</groupId> + <artifactId>kune</artifactId> + <packaging>jar</packaging> + <version>0.0.4</version> + <description> + kune free/open/libre collaboration platform + </description> + <name>kune</name> + <url>http://kune.ourproject.org</url> - <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> + <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> - <!-- gwt --> - <dependency> - <groupId>com.google.gwt</groupId> - <artifactId>gwt-user</artifactId> - <version>1.5.2</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>com.google.gwt</groupId> - <artifactId>gwt-servlet</artifactId> - <version>1.5.2</version> - </dependency> - <!-- - <dependency> - <groupId>com.extjs</groupId> - <artifactId>gxt</artifactId> - <version>1.0-beta2</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.3.0b</version> - </dependency> - <dependency> - <groupId>com.allen_sauer.gwt.log.gwt-log</groupId> - <artifactId>gwt-log</artifactId> - <version>2.5.2</version> - </dependency> - <dependency> - <groupId>com.allen_sauer.gwt.voices.gwt-voices</groupId> - <artifactId>gwt-voices</artifactId> - <version>1.5.5</version> - </dependency> + <!-- gwt --> + <dependency> + <groupId>com.google.gwt</groupId> + <artifactId>gwt-user</artifactId> + <version>1.5.2</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>com.google.gwt</groupId> + <artifactId>gwt-servlet</artifactId> + <version>1.5.2</version> + </dependency> + <!-- + <dependency> + <groupId>com.extjs</groupId> + <artifactId>gxt</artifactId> + <version>1.0-beta2</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.3.0b</version> + </dependency> + <dependency> + <groupId>com.allen_sauer.gwt.log.gwt-log</groupId> + <artifactId>gwt-log</artifactId> + <version>2.5.2</version> + </dependency> + <dependency> + <groupId>com.allen_sauer.gwt.voices.gwt-voices</groupId> + <artifactId>gwt-voices</artifactId> + <version>1.5.5</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> + <!-- 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.5.02</version> + </dependency> - <!-- xmpp --> - <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> + <!-- xmpp --> + <dependency> + <groupId>com.calclab.emite</groupId> + <artifactId>emite</artifactId> + <version>0.4.1</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> + <!-- 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.0.0.GA</version> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate</artifactId> - <version>3.2.5.ga</version> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-annotations</artifactId> - <version>3.3.0.ga</version> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-entitymanager</artifactId> - <version>3.3.1.ga</version> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-tools</artifactId> - <version>3.2.0.beta9a</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>0.6</version> - </dependency> + <!-- hibernate JPA --> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-search</artifactId> + <version>3.0.0.GA</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate</artifactId> + <version>3.2.5.ga</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-annotations</artifactId> + <version>3.3.0.ga</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-entitymanager</artifactId> + <version>3.3.1.ga</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-tools</artifactId> + <version>3.2.0.beta9a</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>0.6</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> + <!-- 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> + <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> + <!-- 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> - <dependency> - <groupId>org.cafesip.gwtcomp</groupId> - <artifactId>gwtcomp</artifactId> - <version>0.0.3b</version> - </dependency> - <dependency> - <groupId>org.cafesip.gwtcomp</groupId> - <artifactId>gwtcomp-servlet</artifactId> - <version>0.0.3b</version> - </dependency> + <dependency> + <groupId>org.cafesip.gwtcomp</groupId> + <artifactId>gwtcomp</artifactId> + <version>0.0.3b</version> + </dependency> + <dependency> + <groupId>org.cafesip.gwtcomp</groupId> + <artifactId>gwtcomp-servlet</artifactId> + <version>0.0.3b</version> + </dependency> - <!-- db upgrades --> + <!-- db upgrades --> - <dependency> - <groupId>org.liquibase</groupId> - <artifactId>liquibase-core</artifactId> - <version>1.4.1</version> - </dependency> + <dependency> + <groupId>org.liquibase</groupId> + <artifactId>liquibase-core</artifactId> + <version>1.4.1</version> + </dependency> - <!-- jetty dependencies --> - <dependency> - <groupId>org.mortbay.jetty</groupId> - <artifactId>jetty-util</artifactId> - <version>6.1.5</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.mortbay.jetty</groupId> - <artifactId>jetty</artifactId> - <version>6.1.5</version> - <scope>provided</scope> - </dependency> + <!-- jetty dependencies --> + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty-util</artifactId> + <version>6.1.5</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty</artifactId> + <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> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <version>2.4</version> + <scope>provided</scope> + </dependency> - <!-- testing dependencies --> - <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.easymock</groupId> - <artifactId>easymock</artifactId> - <version>2.2</version> - <scope>test</scope> - </dependency> - <!-- - <dependency> - <groupId>com.google</groupId> - <artifactId>gwt-dev</artifactId> - <version>1.4.61</version> - <scope>test</scope> - </dependency> - --> - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-all</artifactId> - <version>1.2</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>com.calclab.emite</groupId> - <artifactId>emite</artifactId> - <version>0.3.3</version> - </dependency> - <dependency> - <groupId>com.calclab</groupId> - <artifactId>suco</artifactId> - <version>0.4.0</version> - </dependency> - </dependencies> - <!-- http://gwt-maven.googlecode.com/svn/docs/maven-googlewebtoolkit2-plugin/inde... --> - <repositories> - <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> - </repositories> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <version>2.3</version> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.0</version> - <configuration> - <source>1.5</source> - <target>1.5</target> - </configuration> - </plugin> - <plugin> - <groupId>com.totsp.gwt</groupId> - <artifactId>maven-googlewebtoolkit2-plugin</artifactId> - <version>2.0-beta23</version> - <configuration> - <logLevel>INFO</logLevel> - <style>PRETTY</style> - <runTarget>org.ourproject.kune.app.Kune/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>target/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> - <configuration> - <contextPath>/</contextPath> - <scanIntervalSeconds>0</scanIntervalSeconds> - </configuration> - </plugin> + <!-- testing dependencies --> + <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.easymock</groupId> + <artifactId>easymock</artifactId> + <version>2.2</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + <version>1.2</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> + </dependencies> - <plugin> - <groupId>org.liquibase</groupId> - <artifactId>liquibase-plugin</artifactId> - <version>1.4.1.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>migrate</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>**/Kune-Platform.gwt.xml**</include> - <include>**/I18nTranslationService**</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>helloworldplugin</id> - <phase>package</phase> - <goals> - <goal>jar</goal> - </goals> - <configuration> - <classifier>helloworldplugin</classifier> - <includes> - <include>**/HelloWorld*</include> - </includes> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - <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.2</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.build.directory}/cobertura/cobertura.ser - </value> - </property> - </systemProperties> - </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> + <!-- http://gwt-maven.googlecode.com/svn/docs/maven-googlewebtoolkit2-plugin/inde... --> + <repositories> + <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> + </repositories> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.3</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>2.0</version> + <configuration> + <source>1.5</source> + <target>1.5</target> + </configuration> + </plugin> + <plugin> + <groupId>com.totsp.gwt</groupId> + <artifactId>maven-googlewebtoolkit2-plugin</artifactId> + <version>2.0-beta23</version> + <configuration> + <logLevel>INFO</logLevel> + <style>PRETTY</style> + <runTarget> + org.ourproject.kune.app.Kune/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>target/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> + <configuration> + <contextPath>/</contextPath> + <scanIntervalSeconds>0</scanIntervalSeconds> + </configuration> + </plugin> + + <plugin> + <groupId>org.liquibase</groupId> + <artifactId>liquibase-plugin</artifactId> + <version>1.4.1.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>migrate</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> + **/Kune-Platform.gwt.xml** + </include> + <include> + **/I18nTranslationService** + </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>helloworldplugin</id> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + <configuration> + <classifier>helloworldplugin</classifier> + <includes> + <include>**/HelloWorld*</include> + </includes> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>selenium-maven-plugin</artifactId> + <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> + <!-- 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> + </plugins> + <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.2</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.build.directory}/cobertura/cobertura.ser + </value> + </property> + </systemProperties> + </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> </project> Modified: trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2008-09-24 01:47:16 UTC (rev 881) @@ -2,6 +2,9 @@ <inherits name='com.google.gwt.i18n.I18N' /> <inherits name='com.google.gwt.user.User' /> + <!-- for automated testing (see UIObject.ensureDebugId()) --> + <inherits name="com.google.gwt.user.Debug"/> + <!-- http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/4d38c... --> <set-property name="gwt.suppressNonStaticFinalFieldWarnings" value="true" /> Modified: trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-09-24 01:47:16 UTC (rev 881) @@ -19,9 +19,14 @@ */ package org.ourproject.kune.app.client; -import org.ourproject.kune.platf.client.services.Kune; +import org.ourproject.kune.chat.client.ChatClientModule; +import org.ourproject.kune.docs.client.DocumentClientModule; +import org.ourproject.kune.platf.client.services.KuneCoreModule; +import org.ourproject.kune.platf.client.services.KuneModule; import com.allen_sauer.gwt.log.client.Log; +import com.calclab.emiteuimodule.client.EmiteUIModule; +import com.calclab.suco.client.Suco; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.DeferredCommand; @@ -45,6 +50,8 @@ } public void onModuleLoadCont() { - Kune.create(); + Suco.install(new KuneCoreModule(), new EmiteUIModule(), new DocumentClientModule(), new ChatClientModule(), + new KuneModule()); + // Suco.get(Application.class).start(); } } Modified: trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java 2008-09-24 01:47:16 UTC (rev 881) @@ -28,7 +28,7 @@ import org.ourproject.kune.platf.client.rpc.SocialNetworkService; import org.ourproject.kune.platf.server.LoggerMethodInterceptor; import org.ourproject.kune.platf.server.PlatformServerModule; -import org.ourproject.kune.platf.server.manager.impl.FileUploadManagerRevisited; +import org.ourproject.kune.platf.server.manager.impl.FileUploadManager; import org.ourproject.kune.platf.server.properties.PropertiesFileName; import org.ourproject.kune.platf.server.rest.ContentJSONService; import org.ourproject.kune.platf.server.rest.GroupJSONService; @@ -96,7 +96,7 @@ UserService.class, SocialNetworkService.class, I18nService.class); builder.installRESTServices("^/kune/json/", TestJSONService.class, GroupJSONService.class, UserJSONService.class, I18nTranslationJSONService.class, ContentJSONService.class); - builder.installServlet("^/kune/servlets/", FileUploadManagerRevisited.class); + builder.installServlet("^/kune/servlets/", FileUploadManager.class); builder.at("^/kune/(.*)$").install(new ForwardFilter("^/kune/(.*)$", "/gwt/org.ourproject.kune.app.Kune/{0}")); } Modified: trunk/src/main/java/org/ourproject/kune/chat/Kune-Chat.gwt.xml =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/Kune-Chat.gwt.xml 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/chat/Kune-Chat.gwt.xml 2008-09-24 01:47:16 UTC (rev 881) @@ -1,6 +1,5 @@ <module> <inherits name='org.ourproject.kune.platf.Kune-Platform' /> <inherits name='org.ourproject.kune.workspace.Kune-Workspace' /> - <inherits name="com.calclab.emite.Emite" /> <inherits name="com.calclab.emiteuimodule.EmiteUIModule" /> </module> Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2008-09-24 01:47:16 UTC (rev 881) @@ -15,6 +15,7 @@ import org.ourproject.kune.chat.client.ctx.rooms.RoomsAdmin; import org.ourproject.kune.chat.client.ctx.rooms.RoomsAdminPresenter; import org.ourproject.kune.platf.client.app.Application; +import org.ourproject.kune.platf.client.app.ToolGroup; import org.ourproject.kune.platf.client.rpc.ContentServiceAsync; import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.platf.client.state.StateManager; @@ -27,9 +28,9 @@ import org.ourproject.kune.workspace.client.themes.WsThemePresenter; import com.calclab.emiteuimodule.client.EmiteUIDialog; -import com.calclab.suco.client.module.AbstractModule; -import com.calclab.suco.client.provider.Factory; -import com.calclab.suco.client.scope.SingletonScope; +import com.calclab.suco.client.ioc.decorator.Singleton; +import com.calclab.suco.client.ioc.module.AbstractModule; +import com.calclab.suco.client.ioc.module.Factory; public class ChatClientModule extends AbstractModule { @@ -39,13 +40,13 @@ @Override public void onLoad() { - register(SingletonScope.class, new Factory<ChatInfo>(ChatInfo.class) { + register(Singleton.class, new Factory<ChatInfo>(ChatInfo.class) { public ChatInfo create() { return new ChatInfoPanel(); } }); - register(SingletonScope.class, new Factory<ChatContent>(ChatContent.class) { + register(Singleton.class, new Factory<ChatContent>(ChatContent.class) { public ChatContent create() { final WorkspaceDeckPanel panel = new WorkspaceDeckPanel(); final ChatContentPresenter presenter = new ChatContentPresenter($(EmiteUIDialog.class), panel, @@ -54,7 +55,7 @@ } }); - register(SingletonScope.class, new Factory<ChatContext>(ChatContext.class) { + register(Singleton.class, new Factory<ChatContext>(ChatContext.class) { public ChatContext create() { final WorkspaceDeckPanel panel = new WorkspaceDeckPanel(); final ChatContextPresenter presenter = new ChatContextPresenter(panel, $$(RoomsAdmin.class)); @@ -62,7 +63,7 @@ } }); - register(SingletonScope.class, new Factory<ChatRoomControl>(ChatRoomControl.class) { + register(Singleton.class, new Factory<ChatRoomControl>(ChatRoomControl.class) { public ChatRoomControl create() { final ChatRoomControlPresenter presenter = new ChatRoomControlPresenter(); final ChatRoomControlPanel panel = new ChatRoomControlPanel($(I18nUITranslationService.class), @@ -72,14 +73,14 @@ } }); - register(SingletonScope.class, new Factory<ChatRoom>(ChatRoom.class) { + register(Singleton.class, new Factory<ChatRoom>(ChatRoom.class) { public ChatRoom create() { final ChatRoomPanel panel = new ChatRoomPanel($(WorkspaceSkeleton.class)); final ChatRoomPresenter presenter = new ChatRoomPresenter(panel); return presenter; } }); - register(SingletonScope.class, new Factory<RoomsAdmin>(RoomsAdmin.class) { + register(Singleton.class, new Factory<RoomsAdmin>(RoomsAdmin.class) { public RoomsAdmin create() { final RoomsAdminPresenter presenter = new RoomsAdminPresenter($(ContextNavigator.class), $(I18nUITranslationService.class), $$(StateManager.class), $(Session.class), @@ -88,7 +89,7 @@ } }); - register(SingletonScope.class, new Factory<ChatClientTool>(ChatClientTool.class) { + register(ToolGroup.class, new Factory<ChatClientTool>(ChatClientTool.class) { public ChatClientTool create() { return new ChatClientTool($(Session.class), $(Application.class), $(I18nUITranslationService.class), $(EmiteUIDialog.class), $(WorkspaceSkeleton.class), $$(GroupMembersSummary.class), @@ -96,7 +97,5 @@ } }); - $(ChatClientTool.class); - } } Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2008-09-24 01:47:16 UTC (rev 881) @@ -38,11 +38,11 @@ import org.ourproject.kune.workspace.client.themes.WsThemePresenter; import com.allen_sauer.gwt.log.client.Log; -import com.calclab.emite.client.xmpp.stanzas.XmppURI; +import com.calclab.emite.core.client.xmpp.stanzas.XmppURI; import com.calclab.emiteuimodule.client.EmiteUIDialog; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener0; public class ChatClientTool extends AbstractClientTool implements ChatProvider { public static final String NAME = "chats"; @@ -61,7 +61,7 @@ super(NAME, i18n.t("chat rooms"), toolSelector, wsThemePresenter, ws); this.chatContentProvider = chatContentProvider; this.chatContextProvider = chatContextProvider; - session.onInitDataReceived(new Slot<InitDataDTO>() { + session.onInitDataReceived(new Listener<InitDataDTO>() { public void onEvent(final InitDataDTO initData) { checkChatDomain(initData.getChatDomain()); final ChatOptions chatOptions = new ChatOptions(initData.getChatHttpBase(), initData.getChatDomain(), @@ -69,7 +69,7 @@ chat = new ChatEngineXmpp(emiteUIDialog, chatOptions, i18n, ws); groupMembersSummaryProvider.get().addUserOperation( new MenuItem<GroupDTO>("images/new-chat.gif", i18n.t("Start a chat with this member"), - new Slot<GroupDTO>() { + new Listener<GroupDTO>() { public void onEvent(final GroupDTO group) { emiteUIDialog.show(); if (emiteUIDialog.isLoggedIn()) { @@ -92,17 +92,17 @@ } } }); - application.onApplicationStop(new Slot0() { + application.onApplicationStop(new Listener0() { public void onEvent() { chat.logout(); } }); - session.onUserSignOut(new Slot0() { + session.onUserSignOut(new Listener0() { public void onEvent() { chat.logout(); } }); - session.onUserSignIn(new Slot<UserInfoDTO>() { + session.onUserSignIn(new Listener<UserInfoDTO>() { public void onEvent(final UserInfoDTO user) { chat.login(user.getChatName(), user.getChatPassword()); } Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-09-24 01:47:16 UTC (rev 881) @@ -24,13 +24,13 @@ import org.ourproject.kune.platf.client.services.I18nTranslationService; import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; -import com.calclab.emite.client.im.roster.RosterManager.SubscriptionMode; -import com.calclab.emite.client.xmpp.stanzas.XmppURI; +import com.calclab.emite.core.client.xmpp.stanzas.XmppURI; +import com.calclab.emiteuimodule.client.SubscriptionMode; import com.calclab.emiteuimodule.client.EmiteUIDialog; import com.calclab.emiteuimodule.client.UserChatOptions; import com.calclab.emiteuimodule.client.params.AvatarProvider; import com.calclab.emiteuimodule.client.status.OwnPresence.OwnStatus; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; import com.google.gwt.user.client.Window; import com.gwtext.client.core.EventObject; import com.gwtext.client.widgets.Button; @@ -101,24 +101,24 @@ } }); ws.getSiteTraybar().addButton(traybarButton); - emiteDialog.onChatAttended(new Slot<String>() { + emiteDialog.onChatAttended(new Listener<String>() { public void onEvent(final String parameter) { traybarButton.setIcon("images/e-icon.gif"); } }); - emiteDialog.onChatUnattendedWithActivity(new Slot<String>() { + emiteDialog.onChatUnattendedWithActivity(new Listener<String>() { public void onEvent(final String parameter) { traybarButton.setIcon("images/e-icon-a.gif"); } }); } emiteDialog.hide(); - emiteDialog.onChatAttended(new Slot<String>() { + emiteDialog.onChatAttended(new Listener<String>() { public void onEvent(final String parameter) { Window.setTitle(initialWindowTitle); } }); - emiteDialog.onChatUnattendedWithActivity(new Slot<String>() { + emiteDialog.onChatUnattendedWithActivity(new Listener<String>() { public void onEvent(final String chatTitle) { Window.setTitle("(* " + chatTitle + ") " + initialWindowTitle); } Modified: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContentPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContentPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatContentPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -28,9 +28,9 @@ import org.ourproject.kune.workspace.client.component.WorkspaceDeckView; import com.allen_sauer.gwt.log.client.Log; -import com.calclab.emite.client.xmpp.stanzas.XmppURI; +import com.calclab.emite.core.client.xmpp.stanzas.XmppURI; import com.calclab.emiteuimodule.client.EmiteUIDialog; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; public class ChatContentPresenter implements ChatContent { Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/ChatContextPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ctx/ChatContextPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ctx/ChatContextPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -25,7 +25,7 @@ import org.ourproject.kune.platf.client.dto.StateDTO; import org.ourproject.kune.workspace.client.component.WorkspaceDeckView; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; public class ChatContextPresenter implements ChatContext { Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdminPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdminPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ctx/rooms/RoomsAdminPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -30,7 +30,7 @@ import org.ourproject.kune.platf.client.state.StateManager; import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; public class RoomsAdminPresenter implements RoomsAdmin { private final ContextNavigator contextNavigator; @@ -46,7 +46,7 @@ // contextNavigator.registerType(ChatClientTool.TYPE_ROOM, // images.chatGreen()); // contextNavigator.canCreate(i18n.t("New chat room"), i18n.t("Add a - // chat room"), new Slot<String>() { + // chat room"), new Listener<String>() { // public void onEvent(final String name) { // Site.showProgressProcessing(); // final String groupShortName = Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-09-24 01:47:16 UTC (rev 881) @@ -29,8 +29,8 @@ import org.ourproject.kune.workspace.client.site.Site; import com.allen_sauer.gwt.log.client.Log; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Listener; public class DocumentClientActions { @@ -66,7 +66,7 @@ .t("New wiki"), i18n.t("Folder"), i18n.t("New"), i18n.t("wiki")); final ActionMenuDescriptor<StateToken> addDoc = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Editor, - ActionPosition.topbarAndItemMenu, new Slot<StateToken>() { + ActionPosition.topbarAndItemMenu, new Listener<StateToken>() { public void onEvent(final StateToken token) { Site.showProgressProcessing(); contentServiceProvider.get().addContent(session.getUserHash(), @@ -85,7 +85,7 @@ addDoc.setIconUrl("images/nav/page_add.png"); final ActionMenuDescriptor<StateToken> delContainer = new ActionMenuDescriptor<StateToken>( - AccessRolDTO.Administrator, ActionPosition.topbarAndItemMenu, new Slot<StateToken>() { + AccessRolDTO.Administrator, ActionPosition.topbarAndItemMenu, new Listener<StateToken>() { public void onEvent(final StateToken token) { Site.info("Sorry, in development"); } @@ -97,7 +97,7 @@ delContainer.setConfirmationText(i18n.t("You will delete it and also all its contents. Are you sure?")); final ActionMenuDescriptor<StateToken> delContent = new ActionMenuDescriptor<StateToken>( - AccessRolDTO.Administrator, ActionPosition.topbarAndItemMenu, new Slot<StateToken>() { + AccessRolDTO.Administrator, ActionPosition.topbarAndItemMenu, new Listener<StateToken>() { public void onEvent(final StateToken token) { contentServiceProvider.get().delContent(session.getUserHash(), token, new AsyncCallbackSimple<String>() { @@ -115,7 +115,7 @@ delContent.setConfirmationText(i18n.t("Are you sure?")); final ActionDescriptor<StateToken> go = new ActionDescriptor<StateToken>(AccessRolDTO.Viewer, - ActionPosition.itemMenu, new Slot<StateToken>() { + ActionPosition.itemMenu, new Listener<StateToken>() { public void onEvent(final StateToken token) { stateManager.gotoToken(token); } @@ -129,7 +129,7 @@ }); final ActionDescriptor<StateToken> rename = new ActionDescriptor<StateToken>(AccessRolDTO.Editor, - ActionPosition.itemMenu, new Slot<StateToken>() { + ActionPosition.itemMenu, new Listener<StateToken>() { public void onEvent(final StateToken stateToken) { contextNavigator.editItem(stateToken); } @@ -137,7 +137,7 @@ rename.setTextDescription(i18n.t("Rename")); final ActionButtonDescriptor<StateToken> goGroupHome = new ActionButtonDescriptor<StateToken>( - AccessRolDTO.Viewer, ActionPosition.topbar, new Slot<StateToken>() { + AccessRolDTO.Viewer, ActionPosition.topbar, new Listener<StateToken>() { public void onEvent(final StateToken token) { stateManager.gotoToken(token.getGroup()); } @@ -152,7 +152,7 @@ }); final ActionMenuDescriptor<StateToken> setAsDefGroupContent = new ActionMenuDescriptor<StateToken>( - AccessRolDTO.Administrator, ActionPosition.itemMenu, new Slot<StateToken>() { + AccessRolDTO.Administrator, ActionPosition.itemMenu, new Listener<StateToken>() { public void onEvent(final StateToken token) { Site.showProgressProcessing(); contentServiceProvider.get().setAsDefaultContent(session.getUserHash(), token, @@ -176,7 +176,7 @@ }); final ActionButtonDescriptor<StateToken> refresh = new ActionButtonDescriptor<StateToken>(AccessRolDTO.Viewer, - ActionPosition.topbar, new Slot<StateToken>() { + ActionPosition.topbar, new Listener<StateToken>() { public void onEvent(final StateToken stateToken) { stateManager.reload(); contextNavigator.selectItem(stateToken); @@ -189,7 +189,7 @@ final ActionDescriptor<StateToken> uploadFile = createUploadAction(i18n.t("Upload file"), "images/nav/upload.png", i18n.t("Upload some files (images, PDFs, ...)"), null); - session.onInitDataReceived(new Slot<InitDataDTO>() { + session.onInitDataReceived(new Listener<InitDataDTO>() { public void onEvent(final InitDataDTO parameter) { final ActionDescriptor<StateToken> uploadMedia = createUploadAction(i18n.t("Upload media"), "images/nav/upload.png", i18n.t("Upload some media (images, videos)"), session @@ -241,7 +241,7 @@ final String defaultName) { final ActionMenuDescriptor<StateToken> addFolder; addFolder = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Editor, ActionPosition.topbarAndItemMenu, - new Slot<StateToken>() { + new Listener<StateToken>() { public void onEvent(final StateToken stateToken) { Site.showProgressProcessing(); contentServiceProvider.get().addFolder(session.getUserHash(), stateToken, defaultName, @@ -264,7 +264,7 @@ final String toolTip, final String permitedExtensions) { final ActionButtonDescriptor<StateToken> uploadFile; uploadFile = new ActionButtonDescriptor<StateToken>(AccessRolDTO.Editor, ActionPosition.bootombarAndItemMenu, - new Slot<StateToken>() { + new Listener<StateToken>() { public void onEvent(final StateToken token) { if (permitedExtensions != null) { Log.info("Permited extensions (in dev): " + permitedExtensions); Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-09-24 01:47:16 UTC (rev 881) @@ -33,6 +33,7 @@ import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar; import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPanel; import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPresenter; +import org.ourproject.kune.platf.client.app.ToolGroup; import org.ourproject.kune.platf.client.rpc.ContentServiceAsync; import org.ourproject.kune.platf.client.services.KuneErrorHandler; import org.ourproject.kune.platf.client.state.Session; @@ -49,9 +50,9 @@ import org.ourproject.kune.workspace.client.title.EntitySubTitle; import org.ourproject.kune.workspace.client.title.EntityTitle; -import com.calclab.suco.client.module.AbstractModule; -import com.calclab.suco.client.provider.Factory; -import com.calclab.suco.client.scope.SingletonScope; +import com.calclab.suco.client.ioc.decorator.Singleton; +import com.calclab.suco.client.ioc.module.AbstractModule; +import com.calclab.suco.client.ioc.module.Factory; public class DocumentClientModule extends AbstractModule { @@ -60,51 +61,55 @@ @Override public void onLoad() { - final I18nUITranslationService i18n = $(I18nUITranslationService.class); - final WorkspaceSkeleton ws = $(WorkspaceSkeleton.class); - register(SingletonScope.class, new Factory<DocumentClientTool>(DocumentClientTool.class) { + register(ToolGroup.class, new Factory<DocumentClientTool>(DocumentClientTool.class) { public DocumentClientTool create() { $(DocumentClientActions.class); - return new DocumentClientTool(i18n, $(ToolSelector.class), $(WsThemePresenter.class), - $(WorkspaceSkeleton.class), $$(DocumentContext.class), $$(ContentServiceAsync.class), - $(ContentActionRegistry.class), $(DragDropContentRegistry.class), $(ContentIconsRegistry.class)); + return new DocumentClientTool($(I18nUITranslationService.class), $(ToolSelector.class), + $(WsThemePresenter.class), $(WorkspaceSkeleton.class), $$(DocumentContext.class), + $$(ContentServiceAsync.class), $(ContentActionRegistry.class), + $(DragDropContentRegistry.class), $(ContentIconsRegistry.class)); } }); - register(SingletonScope.class, new Factory<ContentPublishAction>(ContentPublishAction.class) { + register(Singleton.class, new Factory<ContentPublishAction>(ContentPublishAction.class) { public ContentPublishAction create() { - return new ContentPublishAction($(Session.class), $$(ContentServiceAsync.class), i18n); + return new ContentPublishAction($(Session.class), $$(ContentServiceAsync.class), + $(I18nUITranslationService.class)); } }, new Factory<ContentRejectAction>(ContentRejectAction.class) { public ContentRejectAction create() { - return new ContentRejectAction($(Session.class), $$(ContentServiceAsync.class), i18n); + return new ContentRejectAction($(Session.class), $$(ContentServiceAsync.class), + $(I18nUITranslationService.class)); } }, new Factory<ContentEditInProgressAction>(ContentEditInProgressAction.class) { public ContentEditInProgressAction create() { - return new ContentEditInProgressAction($(Session.class), $$(ContentServiceAsync.class), i18n); + return new ContentEditInProgressAction($(Session.class), $$(ContentServiceAsync.class), + $(I18nUITranslationService.class)); } }, new Factory<ContentSubmitForPublishAction>(ContentSubmitForPublishAction.class) { public ContentSubmitForPublishAction create() { - return new ContentSubmitForPublishAction($(Session.class), $$(ContentServiceAsync.class), i18n); + return new ContentSubmitForPublishAction($(Session.class), $$(ContentServiceAsync.class), + $(I18nUITranslationService.class)); } }, new Factory<ContentTrashAction>(ContentTrashAction.class) { public ContentTrashAction create() { - return new ContentTrashAction($(Session.class), $$(ContentServiceAsync.class), i18n); + return new ContentTrashAction($(Session.class), $$(ContentServiceAsync.class), + $(I18nUITranslationService.class)); } }); - register(SingletonScope.class, new Factory<ContentEditAction>(ContentEditAction.class) { + register(Singleton.class, new Factory<ContentEditAction>(ContentEditAction.class) { public ContentEditAction create() { - return new ContentEditAction(i18n); + return new ContentEditAction($(I18nUITranslationService.class)); } }, new Factory<ContentTranslationAction>(ContentTranslationAction.class) { public ContentTranslationAction create() { - return new ContentTranslationAction(i18n); + return new ContentTranslationAction($(I18nUITranslationService.class)); } }); - register(SingletonScope.class, new Factory<DocumentClientActions>(DocumentClientActions.class) { + register(Singleton.class, new Factory<DocumentClientActions>(DocumentClientActions.class) { public DocumentClientActions create() { return new DocumentClientActions($(I18nUITranslationService.class), $(ContextNavigator.class), $(Session.class), $(StateManager.class), $$(ContentServiceAsync.class), $$(FileUploader.class), @@ -112,10 +117,11 @@ } }); - register(SingletonScope.class, new Factory<DocumentContent>(DocumentContent.class) { + register(ToolGroup.class, new Factory<DocumentContent>(DocumentContent.class) { public DocumentContent create() { final ActionToolbarPanel contentNavigatorToolbar = new ActionToolbarPanel( - ActionToolbarPanel.Position.content, $(Session.class), $$(ActionManager.class), ws); + ActionToolbarPanel.Position.content, $(Session.class), $$(ActionManager.class), + $(WorkspaceSkeleton.class)); final ActionToolbar toolbar = new ActionToolbarPresenter($(Session.class), contentNavigatorToolbar, $(ContentActionRegistry.class)); @@ -124,10 +130,8 @@ $(RateIt.class), $$(DocumentReader.class), $$(TextEditor.class), $$(FolderViewer.class), $$(ContentServiceAsync.class), toolbar, $(ContentActionRegistry.class)); final DocumentContentPanel panel = new DocumentContentPanel($(WorkspaceSkeleton.class)); - $(ContentActionRegistry.class).addAction(DocumentClientTool.TYPE_DOCUMENT, $(ContentEditAction.class)); + $(ContentActionRegistry.class).addAction(DocumentClientTool.TYPE_DOCUMENT, - $(ContentTranslationAction.class)); - $(ContentActionRegistry.class).addAction(DocumentClientTool.TYPE_DOCUMENT, $(ContentPublishAction.class)); $(ContentActionRegistry.class) .addAction(DocumentClientTool.TYPE_DOCUMENT, $(ContentRejectAction.class)); @@ -136,23 +140,27 @@ $(ContentActionRegistry.class).addAction(DocumentClientTool.TYPE_DOCUMENT, $(ContentEditInProgressAction.class)); $(ContentActionRegistry.class).addAction(DocumentClientTool.TYPE_DOCUMENT, $(ContentTrashAction.class)); + + $(ContentActionRegistry.class).addAction(DocumentClientTool.TYPE_DOCUMENT, $(ContentEditAction.class)); + $(ContentActionRegistry.class).addAction(DocumentClientTool.TYPE_DOCUMENT, + $(ContentTranslationAction.class)); presenter.init(panel); return presenter; } }); - register(SingletonScope.class, new Factory<AdminContext>(AdminContext.class) { + register(Singleton.class, new Factory<AdminContext>(AdminContext.class) { public AdminContext create() { final AdminContextPresenter presenter = new AdminContextPresenter($(Session.class), $(StateManager.class), $$(TagsSummary.class), $$(ContentServiceAsync.class), $(EntityTitle.class), $(EntitySubTitle.class)); - final AdminContextView view = new AdminContextPanel(presenter, i18n); + final AdminContextView view = new AdminContextPanel(presenter, $(I18nUITranslationService.class)); presenter.init(view); return presenter; } }); - register(SingletonScope.class, new Factory<DocumentContext>(DocumentContext.class) { + register(Singleton.class, new Factory<DocumentContext>(DocumentContext.class) { public DocumentContext create() { final DocumentContextPresenter presenter = new DocumentContextPresenter($(StateManager.class), $$(ContextNavigator.class), $$(AdminContext.class)); @@ -162,24 +170,20 @@ } }); - register(SingletonScope.class, new Factory<DocumentReader>(DocumentReader.class) { + register(Singleton.class, new Factory<DocumentReader>(DocumentReader.class) { public DocumentReader create() { - final DocumentReaderView view = new DocumentReaderPanel(ws); + final DocumentReaderView view = new DocumentReaderPanel($(WorkspaceSkeleton.class)); final DocumentReaderPresenter presenter = new DocumentReaderPresenter(view); return presenter; } }); - register(SingletonScope.class, new Factory<FolderViewer>(FolderViewer.class) { + register(Singleton.class, new Factory<FolderViewer>(FolderViewer.class) { public FolderViewer create() { final FolderViewerView view = new FolderViewerPanel(); final FolderViewerPresenter presenter = new FolderViewerPresenter(view); return presenter; } }); - - $(DocumentClientTool.class); - $(DocumentContent.class); - $(DocumentContext.class); } } Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-09-24 01:47:16 UTC (rev 881) @@ -31,7 +31,7 @@ import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; import org.ourproject.kune.workspace.client.themes.WsThemePresenter; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; public class DocumentClientTool extends AbstractClientTool { public static final String TYPE_ROOT = "docs.root"; Modified: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditAction.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditAction.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditAction.java 2008-09-24 01:47:16 UTC (rev 881) @@ -6,12 +6,12 @@ import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; public class ContentEditAction extends ActionButtonDescriptor<StateToken> { public ContentEditAction(final I18nUITranslationService i18n) { - super(AccessRolDTO.Editor, ActionPosition.topbar, new Slot<StateToken>() { + super(AccessRolDTO.Editor, ActionPosition.topbar, new Listener<StateToken>() { public void onEvent(final StateToken stateToken) { } }); Modified: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditInProgressAction.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditInProgressAction.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditInProgressAction.java 2008-09-24 01:47:16 UTC (rev 881) @@ -9,7 +9,7 @@ import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; public class ContentEditInProgressAction extends ContentSetStatusAction { public ContentEditInProgressAction(final Session session, final Provider<ContentServiceAsync> provider, Modified: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentPublishAction.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentPublishAction.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentPublishAction.java 2008-09-24 01:47:16 UTC (rev 881) @@ -9,7 +9,7 @@ import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; public class ContentPublishAction extends ContentSetStatusAction { public ContentPublishAction(final Session session, final Provider<ContentServiceAsync> provider, Modified: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentRejectAction.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentRejectAction.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentRejectAction.java 2008-09-24 01:47:16 UTC (rev 881) @@ -9,7 +9,7 @@ import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; public class ContentRejectAction extends ContentSetStatusAction { public ContentRejectAction(final Session session, final Provider<ContentServiceAsync> provider, Modified: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSetStatusAction.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSetStatusAction.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSetStatusAction.java 2008-09-24 01:47:16 UTC (rev 881) @@ -10,15 +10,15 @@ import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Listener; public abstract class ContentSetStatusAction extends ActionMenuDescriptor<StateToken> { public ContentSetStatusAction(final Session session, final Provider<ContentServiceAsync> contentServiceProvider, final I18nUITranslationService i18n, final AccessRolDTO rol, final String textDescription, final ContentStatusDTO status) { - super(rol, ActionPosition.topbarAndItemMenu, new Slot<StateToken>() { + super(rol, ActionPosition.topbarAndItemMenu, new Listener<StateToken>() { public void onEvent(final StateToken stateToken) { final AsyncCallbackSimple<Object> callback = new AsyncCallbackSimple<Object>() { public void onSuccess(final Object result) { Modified: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSubmitForPublishAction.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSubmitForPublishAction.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSubmitForPublishAction.java 2008-09-24 01:47:16 UTC (rev 881) @@ -9,7 +9,7 @@ import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; public class ContentSubmitForPublishAction extends ContentSetStatusAction { public ContentSubmitForPublishAction(final Session session, final Provider<ContentServiceAsync> provider, Modified: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTranslationAction.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTranslationAction.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTranslationAction.java 2008-09-24 01:47:16 UTC (rev 881) @@ -7,12 +7,12 @@ import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; import org.ourproject.kune.workspace.client.site.Site; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; public class ContentTranslationAction extends ActionButtonDescriptor<StateToken> { public ContentTranslationAction(final I18nUITranslationService i18n) { - super(AccessRolDTO.Editor, ActionPosition.topbar, new Slot<StateToken>() { + super(AccessRolDTO.Editor, ActionPosition.topbar, new Listener<StateToken>() { public void onEvent(final StateToken stateToken) { Site.important(i18n.t("Sorry, this functionality is currently in development")); } Modified: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTrashAction.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTrashAction.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTrashAction.java 2008-09-24 01:47:16 UTC (rev 881) @@ -9,7 +9,7 @@ import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; public class ContentTrashAction extends ContentSetStatusAction { public ContentTrashAction(final Session session, final Provider<ContentServiceAsync> provider, Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContent.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContent.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContent.java 2008-09-24 01:47:16 UTC (rev 881) @@ -20,17 +20,17 @@ package org.ourproject.kune.docs.client.cnt; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.listener.Listener0; public interface DocumentContent { - void onEditCancelled(Slot0 slot); + void onEditCancelled(Listener0 listener); void onDeleteClicked(); void onEditClicked(); - void onEditing(Slot0 slot); + void onEditing(Listener0 listener); void onSaved(); Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -40,11 +40,11 @@ import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; import org.ourproject.kune.workspace.client.site.Site; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Signal0; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot0; -import com.calclab.suco.client.signal.Slot2; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Event0; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener0; +import com.calclab.suco.client.listener.Listener2; import com.google.gwt.user.client.rpc.AsyncCallback; public class DocumentContentPresenter implements DocumentContent, TextEditorListener { @@ -56,8 +56,8 @@ private final Provider<DocumentReader> docReaderProvider; private final Provider<TextEditor> textEditorProvider; private final Provider<FolderViewer> folderViewerProvider; - private final Signal0 onEditing; - private final Signal0 onEditCancelled; + private final Event0 onEditing; + private final Event0 onEditCancelled; private final Provider<ContentServiceAsync> contentServiceProvider; private final I18nUITranslationService i18n; private final KuneErrorHandler errorHandler; @@ -81,16 +81,16 @@ this.contentServiceProvider = contentServiceProvider; this.toolbar = toolbar; this.actionRegistry = actionRegistry; - this.onEditing = new Signal0("onEditing"); - this.onEditCancelled = new Signal0("onEditCancelled"); - stateManager.onStateChanged(new Slot<StateDTO>() { + this.onEditing = new Event0("onEditing"); + this.onEditCancelled = new Event0("onEditCancelled"); + stateManager.onStateChanged(new Listener<StateDTO>() { public void onEvent(final StateDTO state) { if (state.getToolName().equals(DocumentClientTool.NAME)) { setState(state); } } }); - stateManager.onToolChanged(new Slot2<String, String>() { + stateManager.onToolChanged(new Listener2<String, String>() { public void onEvent(final String oldTool, final String newTool) { if (oldTool != null && oldTool.equals(DocumentClientTool.NAME)) { // Detach @@ -122,8 +122,8 @@ textEditorProvider.get().setToolbarVisible(false); } - public void onEditCancelled(final Slot0 slot) { - onEditCancelled.add(slot); + public void onEditCancelled(final Listener0 listener) { + onEditCancelled.add(listener); } public void onEditClicked() { @@ -146,8 +146,8 @@ }); } - public void onEditing(final Slot0 slot) { - onEditing.add(slot); + public void onEditing(final Listener0 listener) { + onEditing.add(listener); } public void onSave(final String text) { @@ -196,7 +196,7 @@ set = actionRegistry.selectCurrentActions(content.getContainerRights(), typeId); } toolbar.disableMenusAndClearButtons(); - toolbar.setActions(set.getToolbarActions(), true); + toolbar.showActions(set.getToolbarActions(), true); showContent(); } Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/ctx/DocumentContextPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -26,8 +26,8 @@ import org.ourproject.kune.platf.client.state.StateManager; import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Listener; public class DocumentContextPresenter implements DocumentContext { private DocumentContextView view; @@ -38,7 +38,7 @@ final Provider<ContextNavigator> contextNavigatorProvider, final Provider<AdminContext> adminContextProvider) { this.contextNavigatorProvider = contextNavigatorProvider; this.adminContextProvider = adminContextProvider; - stateManager.onStateChanged(new Slot<StateDTO>() { + stateManager.onStateChanged(new Listener<StateDTO>() { public void onEvent(final StateDTO state) { if (DocumentClientTool.NAME.equals(state.getToolName())) { setState(state); Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -38,7 +38,7 @@ import org.ourproject.kune.workspace.client.title.EntitySubTitle; import org.ourproject.kune.workspace.client.title.EntityTitle; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; public class AdminContextPresenter implements AdminContext { Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonDescriptor.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonDescriptor.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonDescriptor.java 2008-09-24 01:47:16 UTC (rev 881) @@ -2,7 +2,7 @@ import org.ourproject.kune.platf.client.dto.AccessRolDTO; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; public class ActionButtonDescriptor<T> extends ActionDescriptor<T> { @@ -10,7 +10,7 @@ private ActionButtonSeparator rightSeparator; public ActionButtonDescriptor(final AccessRolDTO accessRolDTO, final ActionPosition actionPosition, - final Slot<T> onPerformCall) { + final Listener<T> onPerformCall) { super(accessRolDTO, actionPosition, onPerformCall); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java 2008-09-24 01:47:16 UTC (rev 881) @@ -3,7 +3,7 @@ import org.ourproject.kune.platf.client.dto.AccessRolDTO; import org.ourproject.kune.platf.client.services.ImageDescriptor; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; public class ActionDescriptor<T> { @@ -16,8 +16,8 @@ private String confirmationTitle; private String confirmationText; - private final Slot<T> onPerformCall; - private final Slot<T> onNotConfirmed; + private final Listener<T> onPerformCall; + private final Listener<T> onNotConfirmed; private AccessRolDTO accessRol; @@ -26,7 +26,7 @@ private ActionEnableCondition<T> enableCondition; public ActionDescriptor(final AccessRolDTO accessRolDTO, final ActionPosition actionPosition, - final Slot<T> onPerformCall) { + final Listener<T> onPerformCall) { accessRol = accessRolDTO; this.actionPosition = actionPosition; this.onPerformCall = onPerformCall; @@ -35,7 +35,7 @@ } public ActionDescriptor(final AccessRolDTO accessRolDTO, final ActionPosition actionPosition, - final Slot<T> onPerformCall, final ActionEnableCondition<T> enableCondition) { + final Listener<T> onPerformCall, final ActionEnableCondition<T> enableCondition) { this(accessRolDTO, actionPosition, onPerformCall); this.enableCondition = enableCondition; } 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionManager.java 2008-09-24 01:47:16 UTC (rev 881) @@ -2,7 +2,7 @@ import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.listener.Listener0; public class ActionManager { @@ -14,11 +14,11 @@ public void doAction(final ActionDescriptor<?> action, final Object parameter) { if (action.isMustBeConfirmed()) { - ws.askConfirmation(action.getConfirmationTitle(), action.getConfirmationText(), new Slot0() { + ws.askConfirmation(action.getConfirmationTitle(), action.getConfirmationText(), new Listener0() { public void onEvent() { action.fireOnPerformCall(parameter); } - }, new Slot0() { + }, new Listener0() { public void onEvent() { action.fireOnNotConfirmed(parameter); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionMenuDescriptor.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionMenuDescriptor.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionMenuDescriptor.java 2008-09-24 01:47:16 UTC (rev 881) @@ -3,7 +3,7 @@ import org.ourproject.kune.platf.client.dto.AccessRolDTO; import com.allen_sauer.gwt.log.client.Log; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; public class ActionMenuDescriptor<T> extends ActionDescriptor<T> { @@ -12,7 +12,7 @@ private String parentSubMenuTitle; public ActionMenuDescriptor(final AccessRolDTO accessRolDTO, final ActionPosition actionPosition, - final Slot<T> onPerformCall) { + final Listener<T> onPerformCall) { super(accessRolDTO, actionPosition, onPerformCall); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbar.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbar.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbar.java 2008-09-24 01:47:16 UTC (rev 881) @@ -9,6 +9,6 @@ void disableMenusAndClearButtons(); - void setActions(ActionCollection<StateToken> actionCollection, boolean isItemSelected); + void showActions(ActionCollection<StateToken> actionCollection, boolean isItemSelected); } 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -13,7 +13,7 @@ import org.ourproject.kune.workspace.client.skel.Toolbar; import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; import com.google.gwt.user.client.ui.Widget; import com.gwtext.client.core.EventObject; import com.gwtext.client.widgets.Button; 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -11,14 +11,14 @@ import com.allen_sauer.gwt.log.client.Log; public class ActionToolbarPresenter implements ActionToolbar { - private final ActionToolbarPanel toolbar; + private final ActionToolbarView toolbar; private final Session session; private final ActionRegistry<StateToken> actionRegistry; - public ActionToolbarPresenter(final Session session, final ActionToolbarPanel actionToolbarPanel, + public ActionToolbarPresenter(final Session session, final ActionToolbarView toolbar, final ActionRegistry<StateToken> actionRegistry) { this.session = session; - toolbar = actionToolbarPanel; + this.toolbar = toolbar; this.actionRegistry = actionRegistry; } @@ -31,7 +31,7 @@ toolbar.disableAllMenuItems(); } - public void setActions(final ActionCollection<StateToken> actions, final boolean isItemSelected) { + public void showActions(final ActionCollection<StateToken> actions, final boolean isItemSelected) { for (final ActionDescriptor<StateToken> action : actions) { if (action instanceof ActionMenuDescriptor) { toolbar.addMenuAction((ActionMenuDescriptor<StateToken>) action, isItemSelected @@ -48,5 +48,4 @@ } } } - } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/Application.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/app/Application.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/app/Application.java 2008-09-24 01:47:16 UTC (rev 881) @@ -20,13 +20,13 @@ package org.ourproject.kune.platf.client.app; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.listener.Listener0; public interface Application { - void onApplicationStart(Slot0 slot); + void onApplicationStart(Listener0 listener); - void onApplicationStop(Slot0 slot); + void onApplicationStop(Listener0 listener); void start(); Added: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationComponentGroup.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationComponentGroup.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationComponentGroup.java 2008-09-24 01:47:16 UTC (rev 881) @@ -0,0 +1,7 @@ +package org.ourproject.kune.platf.client.app; + +import com.calclab.suco.client.ioc.decorator.GroupedSingleton; + +public class ApplicationComponentGroup extends GroupedSingleton { + +} 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-09-24 01:47:16 UTC (rev 881) @@ -28,8 +28,8 @@ import org.ourproject.kune.workspace.client.site.Site; import com.allen_sauer.gwt.log.client.Log; -import com.calclab.suco.client.signal.Signal0; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.listener.Event0; +import com.calclab.suco.client.listener.Listener0; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.DeferredCommand; import com.google.gwt.user.client.Timer; @@ -40,13 +40,13 @@ public class ApplicationDefault implements Application { private final Session session; - private final Signal0 onApplicationStart; - private final Signal0 onApplicationStop; + private final Event0 onApplicationStart; + private final Event0 onApplicationStop; public ApplicationDefault(final Session session) { this.session = session; - this.onApplicationStart = new Signal0("onApplicationStart"); - this.onApplicationStop = new Signal0("onApplicationStop"); + this.onApplicationStart = new Event0("onApplicationStart"); + this.onApplicationStop = new Event0("onApplicationStop"); Window.addWindowCloseListener(new WindowCloseListener() { public void onWindowClosed() { stop(); @@ -58,12 +58,12 @@ }); } - public void onApplicationStart(final Slot0 slot) { - onApplicationStart.add(slot); + public void onApplicationStart(final Listener0 listener) { + onApplicationStart.add(listener); } - public void onApplicationStop(final Slot0 slot) { - onApplicationStop.add(slot); + public void onApplicationStop(final Listener0 listener) { + onApplicationStop.add(listener); } public void start() { Added: trunk/src/main/java/org/ourproject/kune/platf/client/app/ToolGroup.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/app/ToolGroup.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ToolGroup.java 2008-09-24 01:47:16 UTC (rev 881) @@ -0,0 +1,6 @@ +package org.ourproject.kune.platf.client.app; + +import com.calclab.suco.client.ioc.decorator.GroupedSingleton; + +public class ToolGroup extends GroupedSingleton { +} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/ChatUserParamsDTO.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/dto/ChatUserParamsDTO.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/ChatUserParamsDTO.java 2008-09-24 01:47:16 UTC (rev 881) @@ -1,7 +1,6 @@ package org.ourproject.kune.platf.client.dto; -import com.calclab.emite.client.im.roster.RosterManager; -import com.calclab.emite.client.im.roster.RosterManager.SubscriptionMode; +import com.calclab.emiteuimodule.client.SubscriptionMode; import com.google.gwt.user.client.rpc.IsSerializable; public class ChatUserParamsDTO implements IsSerializable { @@ -34,7 +33,7 @@ return chatColor; } - public RosterManager.SubscriptionMode getSubscriptionMode() { + public SubscriptionMode getSubscriptionMode() { return subscriptionMode; } @@ -54,7 +53,7 @@ this.publishRoster = publishRoster; } - public void setSubscriptionMode(final RosterManager.SubscriptionMode subscriptionMode) { + public void setSubscriptionMode(final SubscriptionMode subscriptionMode) { this.subscriptionMode = subscriptionMode; } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserDTO.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserDTO.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserDTO.java 2008-09-24 01:47:16 UTC (rev 881) @@ -19,7 +19,7 @@ */ package org.ourproject.kune.platf.client.dto; -import com.calclab.emite.client.im.roster.RosterManager.SubscriptionMode; +import com.calclab.emiteuimodule.client.SubscriptionMode; import com.google.gwt.user.client.rpc.IsSerializable; public class UserDTO implements IsSerializable { @@ -37,120 +37,120 @@ private String chatColor; public UserDTO() { - this(null, null, null, null, null, null, null, null, true, null, null); + this(null, null, null, null, null, null, null, null, true, null, null); } public UserDTO(final String name, final String shortName, final String password, final String email, - final I18nLanguageDTO language, final I18nCountryDTO country, final TimeZoneDTO timezone, - final String avatar, final boolean publishRoster, final SubscriptionMode subscriptionMode, - final String chatColor) { - this.name = name; - this.shortName = shortName; - this.password = password; - this.email = email; - this.language = language; - this.country = country; - this.timezone = timezone; - this.avatar = avatar; - this.publishRoster = publishRoster; - this.subscriptionMode = subscriptionMode; - this.chatColor = chatColor; + final I18nLanguageDTO language, final I18nCountryDTO country, final TimeZoneDTO timezone, + final String avatar, final boolean publishRoster, final SubscriptionMode subscriptionMode, + final String chatColor) { + this.name = name; + this.shortName = shortName; + this.password = password; + this.email = email; + this.language = language; + this.country = country; + this.timezone = timezone; + this.avatar = avatar; + this.publishRoster = publishRoster; + this.subscriptionMode = subscriptionMode; + this.chatColor = chatColor; } public String getAvatar() { - return avatar; + return avatar; } public String getChatColor() { - return chatColor; + return chatColor; } public I18nCountryDTO getCountry() { - return country; + return country; } public String getEmail() { - return email; + return email; } public Long getId() { - return id; + return id; } public I18nLanguageDTO getLanguage() { - return language; + return language; } public String getName() { - return name; + return name; } public String getPassword() { - return password; + return password; } public String getShortName() { - return shortName; + return shortName; } public SubscriptionMode getSubscriptionMode() { - return subscriptionMode; + return subscriptionMode; } public TimeZoneDTO getTimezone() { - return timezone; + return timezone; } public boolean isPublishRoster() { - return publishRoster; + return publishRoster; } public void setAvatar(final String avatar) { - this.avatar = avatar; + this.avatar = avatar; } public void setChatColor(final String chatColor) { - this.chatColor = chatColor; + this.chatColor = chatColor; } public void setCountry(final I18nCountryDTO country) { - this.country = country; + this.country = country; } public void setEmail(final String email) { - this.email = email; + this.email = email; } public void setId(final Long id) { - this.id = id; + this.id = id; } public void setLanguage(final I18nLanguageDTO language) { - this.language = language; + this.language = language; } public void setName(final String name) { - this.name = name; + this.name = name; } public void setPassword(final String password) { - this.password = password; + this.password = password; } public void setPublishRoster(final boolean publishRoster) { - this.publishRoster = publishRoster; + this.publishRoster = publishRoster; } public void setShortName(final String shortName) { - this.shortName = shortName; + this.shortName = shortName; } public void setSubscriptionMode(final SubscriptionMode subscriptionMode) { - this.subscriptionMode = subscriptionMode; + this.subscriptionMode = subscriptionMode; } public void setTimezone(final TimeZoneDTO timezone) { - this.timezone = timezone; + this.timezone = timezone; } } Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/services/Kune.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/Kune.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/Kune.java 2008-09-24 01:47:16 UTC (rev 881) @@ -1,41 +0,0 @@ -/* - * - * Copyright (C) 2007-2008 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.services; - -import com.calclab.suco.client.Suco; -import com.calclab.suco.client.container.Container; -import com.calclab.suco.client.container.DelegatedContainer; -import com.calclab.suco.client.module.Module; -import com.calclab.suco.client.module.ModuleManager.ProviderRegisterStrategy; - -public class Kune extends DelegatedContainer { - - public static Kune create(final Module... modules) { - final Container container = Suco.create(modules); - Suco.install(container, ProviderRegisterStrategy.registerOnlyIfNotRegistered, new KuneModule()); - return container.getInstance(Kune.class); - } - - protected Kune(final Container container) { - super(container); - } - -} Added: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneCoreModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneCoreModule.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneCoreModule.java 2008-09-24 01:47:16 UTC (rev 881) @@ -0,0 +1,15 @@ +package org.ourproject.kune.platf.client.services; + +import org.ourproject.kune.platf.client.app.ApplicationComponentGroup; +import org.ourproject.kune.platf.client.app.ToolGroup; + +import com.calclab.suco.client.ioc.module.AbstractModule; + +public class KuneCoreModule extends AbstractModule { + + @Override + public void onLoad() { + registerDecorator(ApplicationComponentGroup.class, new ApplicationComponentGroup()); + registerDecorator(ToolGroup.class, new ToolGroup()); + } +} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-09-24 01:47:16 UTC (rev 881) @@ -34,9 +34,9 @@ import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; import com.allen_sauer.gwt.log.client.Log; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Signal0; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Event0; +import com.calclab.suco.client.listener.Listener0; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException; @@ -44,7 +44,7 @@ private final Session session; private final I18nTranslationService i18n; private final Provider<WorkspaceSkeleton> wsProvider; - private final Signal0 onSessionExpired; + private final Event0 onSessionExpired; private final Provider<StateManager> stateManagerProvider; public KuneErrorHandler(final Session session, final I18nTranslationService i18n, @@ -53,7 +53,7 @@ this.i18n = i18n; this.wsProvider = wsProvider; this.stateManagerProvider = stateManagerProvider; - this.onSessionExpired = new Signal0("onSessionExpired"); + this.onSessionExpired = new Event0("onSessionExpired"); } public void doSessionExpired() { @@ -66,8 +66,8 @@ return wsProvider.get(); } - public void onSessionExpired(final Slot0 slot) { - onSessionExpired.add(slot); + public void onSessionExpired(final Listener0 listener) { + onSessionExpired.add(listener); } public void process(final Throwable caught) { Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-09-24 01:47:16 UTC (rev 881) @@ -1,7 +1,5 @@ package org.ourproject.kune.platf.client.services; -import org.ourproject.kune.chat.client.ChatClientModule; -import org.ourproject.kune.docs.client.DocumentClientModule; import org.ourproject.kune.platf.client.actions.ActionManager; import org.ourproject.kune.platf.client.actions.ContentActionRegistry; import org.ourproject.kune.platf.client.actions.ContentIconsRegistry; @@ -11,9 +9,11 @@ import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPanel; import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPresenter; import org.ourproject.kune.platf.client.app.Application; +import org.ourproject.kune.platf.client.app.ApplicationComponentGroup; import org.ourproject.kune.platf.client.app.ApplicationDefault; 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.dto.StateToken; import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple; import org.ourproject.kune.platf.client.rpc.ContentService; @@ -140,14 +140,11 @@ import org.ourproject.kune.workspace.client.title.EntityTitlePanel; import org.ourproject.kune.workspace.client.title.EntityTitlePresenter; -import com.calclab.emiteuimodule.client.EmiteUIModule; -import com.calclab.suco.client.container.Container; -import com.calclab.suco.client.module.AbstractModule; -import com.calclab.suco.client.module.ModuleManager.ProviderRegisterStrategy; -import com.calclab.suco.client.provider.Factory; -import com.calclab.suco.client.scope.SingletonScope; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.ioc.decorator.Singleton; +import com.calclab.suco.client.ioc.module.AbstractModule; +import com.calclab.suco.client.ioc.module.Factory; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener0; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.Cookies; import com.google.gwt.user.client.History; @@ -157,13 +154,8 @@ @Override public void onLoad() { - register(SingletonScope.class, new Factory<Kune>(Kune.class) { - public Kune create() { - return new Kune($(Container.class)); - } - }); - register(SingletonScope.class, new Factory<Session>(Session.class) { + register(Singleton.class, new Factory<Session>(Session.class) { public Session create() { return new SessionDefault(Cookies.getCookie(Site.USERHASH), $$(UserServiceAsync.class)); } @@ -202,10 +194,10 @@ } }); - register(SingletonScope.class, new Factory<I18nUITranslationService>(I18nUITranslationService.class) { + register(Singleton.class, new Factory<I18nUITranslationService>(I18nUITranslationService.class) { public I18nUITranslationService create() { final I18nUITranslationService i18n = new I18nUITranslationService(); - i18n.init($(I18nServiceAsync.class), $(Session.class), new Slot0() { + i18n.init($(I18nServiceAsync.class), $(Session.class), new Listener0() { public void onEvent() { onI18nReady(); } @@ -220,21 +212,17 @@ private void onI18nReady() { final I18nUITranslationService i18n = $(I18nUITranslationService.class); - register(SingletonScope.class, new Factory<I18nTranslationService>(I18nTranslationService.class) { + if (container.hasProvider(I18nTranslationService.class)) { + container.removeProvider(I18nTranslationService.class); + } + + register(Singleton.class, new Factory<I18nTranslationService>(I18nTranslationService.class) { public I18nTranslationService create() { return i18n; } }); - register(SingletonScope.class, new Factory<QuickTipsHelper>(QuickTipsHelper.class) { - public QuickTipsHelper create() { - return new QuickTipsHelper(); - } - }); - - $(QuickTipsHelper.class); - - register(SingletonScope.class, new Factory<HistoryWrapper>(HistoryWrapper.class) { + register(Singleton.class, new Factory<HistoryWrapper>(HistoryWrapper.class) { public HistoryWrapper create() { return new HistoryWrapperDefault(); } @@ -251,13 +239,13 @@ } }); - register(SingletonScope.class, new Factory<KuneErrorHandler>(KuneErrorHandler.class) { + register(Singleton.class, new Factory<KuneErrorHandler>(KuneErrorHandler.class) { public KuneErrorHandler create() { return new KuneErrorHandler($(Session.class), i18n, $$(WorkspaceSkeleton.class), $$(StateManager.class)); } }); - register(SingletonScope.class, new Factory<Images>(Images.class) { + register(Singleton.class, new Factory<Images>(Images.class) { public Images create() { return Images.App.getInstance(); } @@ -267,34 +255,32 @@ } }); - register(SingletonScope.class, new Factory<WorkspaceSkeleton>(WorkspaceSkeleton.class) { + register(Singleton.class, new Factory<WorkspaceSkeleton>(WorkspaceSkeleton.class) { public WorkspaceSkeleton create() { return new WorkspaceSkeleton(); } }); - final KuneErrorHandler errorHandler = $(KuneErrorHandler.class); - AsyncCallbackSimple.init(errorHandler); + AsyncCallbackSimple.init($(KuneErrorHandler.class)); final WorkspaceSkeleton ws = $(WorkspaceSkeleton.class); - final Images images = $(Images.class); - - register(SingletonScope.class, new Factory<Application>(Application.class) { + register(Singleton.class, new Factory<Application>(Application.class) { public Application create() { return new ApplicationDefault($(Session.class)); } + + @Override + public void onAfterCreated(final Application instance) { + } }); - register(SingletonScope.class, new Factory<SitePublicSpaceLink>(SitePublicSpaceLink.class) { - public SitePublicSpaceLink create() { - final SitePublicSpaceLinkPresenter presenter = new SitePublicSpaceLinkPresenter($(StateManager.class)); - final SitePublicSpaceLinkPanel panel = new SitePublicSpaceLinkPanel(presenter, ws, i18n, images); - presenter.init(panel); - return presenter; + register(ApplicationComponentGroup.class, new Factory<QuickTipsHelper>(QuickTipsHelper.class) { + public QuickTipsHelper create() { + return new QuickTipsHelper(); } }); - register(SingletonScope.class, new Factory<SiteProgress>(SiteProgress.class) { + register(ApplicationComponentGroup.class, new Factory<SiteProgress>(SiteProgress.class) { public SiteProgress create() { final SiteProgressPresenter presenter = new SiteProgressPresenter(); final SiteProgressPanel panel = new SiteProgressPanel(presenter, $$(SitePublicSpaceLink.class)); @@ -303,13 +289,23 @@ } }); - register(SingletonScope.class, new Factory<Site>(Site.class) { + register(ApplicationComponentGroup.class, new Factory<Site>(Site.class) { public Site create() { return new Site(i18n, $(SiteProgress.class), $$(SiteMessage.class)); } }); - register(SingletonScope.class, new Factory<SiteMessage>(SiteMessage.class) { + register(ApplicationComponentGroup.class, new Factory<SitePublicSpaceLink>(SitePublicSpaceLink.class) { + public SitePublicSpaceLink create() { + final SitePublicSpaceLinkPresenter presenter = new SitePublicSpaceLinkPresenter($(StateManager.class)); + final SitePublicSpaceLinkPanel panel = new SitePublicSpaceLinkPanel(presenter, ws, i18n, + $(Images.class)); + presenter.init(panel); + return presenter; + } + }); + + register(ApplicationComponentGroup.class, new Factory<SiteMessage>(SiteMessage.class) { public SiteMessage create() { final SiteMessagePresenter siteMessagePresenter = new SiteMessagePresenter(); final SiteMessageView siteMessageView = new SiteMessagePanel(siteMessagePresenter, true, i18n); @@ -318,29 +314,26 @@ } }); - $(SiteProgress.class); - $(Site.class); - - register(SingletonScope.class, new Factory<SiteSignInLink>(SiteSignInLink.class) { - public SiteSignInLink create() { - final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter($(Session.class)); - final SiteSignInLinkPanel panel = new SiteSignInLinkPanel(presenter, i18n, ws); + register(ApplicationComponentGroup.class, new Factory<SiteUserMenu>(SiteUserMenu.class) { + public SiteUserMenu create() { + final SiteUserMenuPresenter presenter = new SiteUserMenuPresenter($(Session.class), + $(StateManager.class)); + final SiteUserMenuPanel panel = new SiteUserMenuPanel(presenter, ws, i18n); presenter.init(panel); return presenter; } }); - register(SingletonScope.class, new Factory<SiteUserMenu>(SiteUserMenu.class) { - public SiteUserMenu create() { - final SiteUserMenuPresenter presenter = new SiteUserMenuPresenter($(Session.class), - $(StateManager.class)); - final SiteUserMenuPanel panel = new SiteUserMenuPanel(presenter, ws, i18n); + register(ApplicationComponentGroup.class, new Factory<SiteSignInLink>(SiteSignInLink.class) { + public SiteSignInLink create() { + final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter($(Session.class)); + final SiteSignInLinkPanel panel = new SiteSignInLinkPanel(presenter, i18n, ws); presenter.init(panel); return presenter; } }); - register(SingletonScope.class, new Factory<SiteSignOutLink>(SiteSignOutLink.class) { + register(ApplicationComponentGroup.class, new Factory<SiteSignOutLink>(SiteSignOutLink.class) { public SiteSignOutLink create() { final SiteSignOutLinkPresenter presenter = new SiteSignOutLinkPresenter($(Session.class), $$(UserServiceAsync.class), $$(KuneErrorHandler.class)); @@ -350,7 +343,7 @@ } }); - register(SingletonScope.class, new Factory<SiteNewGroupLink>(SiteNewGroupLink.class) { + register(ApplicationComponentGroup.class, new Factory<SiteNewGroupLink>(SiteNewGroupLink.class) { public SiteNewGroupLink create() { final SiteNewGroupLinkPresenter presenter = new SiteNewGroupLinkPresenter(); final SiteNewGroupLinkPanel panel = new SiteNewGroupLinkPanel(presenter, ws, i18n); @@ -359,7 +352,7 @@ } }); - register(SingletonScope.class, new Factory<SiteOptions>(SiteOptions.class) { + register(ApplicationComponentGroup.class, new Factory<SiteOptions>(SiteOptions.class) { public SiteOptions create() { final SiteOptionsPresenter presenter = new SiteOptionsPresenter(); final SiteOptionsPanel panel = new SiteOptionsPanel(presenter, ws, i18n, $$(I18nTranslator.class)); @@ -368,7 +361,7 @@ } }); - register(SingletonScope.class, new Factory<SiteLogo>(SiteLogo.class) { + register(ApplicationComponentGroup.class, new Factory<SiteLogo>(SiteLogo.class) { public SiteLogo create() { final SiteLogoPresenter presenter = new SiteLogoPresenter($(Session.class)); final SiteLogoPanel panel = new SiteLogoPanel(presenter, ws); @@ -377,26 +370,7 @@ } }); - register(SingletonScope.class, new Factory<SiteSearcher>(SiteSearcher.class) { - public SiteSearcher create() { - final SiteSearcherPresenter presenter = new SiteSearcherPresenter($$(StateManager.class)); - final SiteSearcherView view = new SiteSearcherPanel(presenter, i18n, ws); - presenter.init(view); - return presenter; - } - }); - - register(SingletonScope.class, new Factory<I18nTranslator>(I18nTranslator.class) { - public I18nTranslator create() { - final I18nTranslatorPresenter presenter = new I18nTranslatorPresenter($(Session.class), - $(I18nServiceAsync.class), i18n); - final I18nTranslatorView view = new I18nTranslatorPanel(presenter, i18n, $(LanguageSelector.class), ws); - presenter.init(view); - return presenter; - } - }); - - register(SingletonScope.class, new Factory<SiteSearch>(SiteSearch.class) { + register(ApplicationComponentGroup.class, new Factory<SiteSearch>(SiteSearch.class) { public SiteSearch create() { final SiteSearchPresenter presenter = new SiteSearchPresenter($$(SiteSearcher.class)); final SiteSearchPanel panel = new SiteSearchPanel(presenter, ws, i18n); @@ -405,36 +379,7 @@ } }); - register(SingletonScope.class, new Factory<SignIn>(SignIn.class) { - public SignIn create() { - final SignInPresenter presenter = new SignInPresenter($(Session.class), $(StateManager.class), i18n, - $(UserServiceAsync.class)); - final SignInPanel view = new SignInPanel(presenter, i18n, ws); - presenter.init(view); - return presenter; - } - }); - - register(SingletonScope.class, new Factory<LicenseChoose>(LicenseChoose.class) { - public LicenseChoose create() { - final LicenseChoosePresenter presenter = new LicenseChoosePresenter($(Session.class)); - final LicenseChoosePanel view = new LicenseChoosePanel(presenter, i18n); - presenter.init(view); - return presenter; - } - }); - - register(SingletonScope.class, new Factory<NewGroup>(NewGroup.class) { - public NewGroup create() { - final NewGroupPresenter presenter = new NewGroupPresenter(i18n, $(Session.class), - $(StateManager.class), $$(GroupServiceAsync.class)); - final NewGroupPanel view = new NewGroupPanel(presenter, i18n, $$(LicenseChoose.class)); - presenter.init(view); - return presenter; - } - }); - - register(SingletonScope.class, new Factory<EntityLogo>(EntityLogo.class) { + register(ApplicationComponentGroup.class, new Factory<EntityLogo>(EntityLogo.class) { public EntityLogo create() { final EntityLogoPresenter presenter = new EntityLogoPresenter($(StateManager.class), $(WsThemePresenter.class)); @@ -444,7 +389,7 @@ } }); - register(SingletonScope.class, new Factory<WsThemePresenter>(WsThemePresenter.class) { + register(ApplicationComponentGroup.class, new Factory<WsThemePresenter>(WsThemePresenter.class) { public WsThemePresenter create() { final WsThemePresenter presenter = new WsThemePresenter($(Session.class), $$(GroupServiceAsync.class), $(StateManager.class)); @@ -454,7 +399,7 @@ } }); - register(SingletonScope.class, new Factory<EntityTitle>(EntityTitle.class) { + register(ApplicationComponentGroup.class, new Factory<EntityTitle>(EntityTitle.class) { public EntityTitle create() { final EntityTitlePresenter presenter = new EntityTitlePresenter(i18n, $(KuneErrorHandler.class), $(StateManager.class), $(Session.class), $$(ContentServiceAsync.class), @@ -465,7 +410,7 @@ } }); - register(SingletonScope.class, new Factory<EntitySubTitle>(EntitySubTitle.class) { + register(ApplicationComponentGroup.class, new Factory<EntitySubTitle>(EntitySubTitle.class) { public EntitySubTitle create() { final EntitySubTitlePresenter presenter = new EntitySubTitlePresenter(i18n, $(StateManager.class)); final EntitySubTitlePanel panel = new EntitySubTitlePanel(presenter, i18n, ws); @@ -474,7 +419,7 @@ } }); - register(SingletonScope.class, new Factory<EntityLicensePresenter>(EntityLicensePresenter.class) { + register(ApplicationComponentGroup.class, new Factory<EntityLicensePresenter>(EntityLicensePresenter.class) { public EntityLicensePresenter create() { final EntityLicensePresenter presenter = new EntityLicensePresenter($(StateManager.class)); final EntityLicensePanel panel = new EntityLicensePanel(presenter, i18n, ws); @@ -483,7 +428,7 @@ } }); - register(SingletonScope.class, new Factory<RatePresenter>(RatePresenter.class) { + register(ApplicationComponentGroup.class, new Factory<RatePresenter>(RatePresenter.class) { public RatePresenter create() { final RatePresenter presenter = new RatePresenter($(StateManager.class)); final RatePanel panel = new RatePanel(null, null, i18n, ws); @@ -492,7 +437,7 @@ } }); - register(SingletonScope.class, new Factory<RateIt>(RateIt.class) { + register(ApplicationComponentGroup.class, new Factory<RateIt>(RateIt.class) { public RateIt create() { final RateItPresenter presenter = new RateItPresenter(i18n, $(Session.class), $$(ContentServiceAsync.class), $(StateManager.class)); @@ -502,7 +447,7 @@ } }); - register(SingletonScope.class, new Factory<GroupMembersSummary>(GroupMembersSummary.class) { + register(ApplicationComponentGroup.class, new Factory<GroupMembersSummary>(GroupMembersSummary.class) { public GroupMembersSummary create() { final GroupMembersSummaryPresenter presenter = new GroupMembersSummaryPresenter(i18n, $(StateManager.class), $(ImageUtils.class), $(Session.class), @@ -513,7 +458,7 @@ } }); - register(SingletonScope.class, new Factory<GroupSummary>(GroupSummary.class) { + register(ApplicationComponentGroup.class, new Factory<GroupSummary>(GroupSummary.class) { public GroupSummary create() { final GroupSummaryPresenter presenter = new GroupSummaryPresenter($(StateManager.class), $(WsThemePresenter.class)); @@ -523,7 +468,7 @@ } }); - register(SingletonScope.class, new Factory<ParticipationSummary>(ParticipationSummary.class) { + register(ApplicationComponentGroup.class, new Factory<ParticipationSummary>(ParticipationSummary.class) { public ParticipationSummary create() { final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(i18n, $(StateManager.class), $(ImageUtils.class), $(Session.class), @@ -534,7 +479,7 @@ } }); - register(SingletonScope.class, new Factory<TagsSummary>(TagsSummary.class) { + register(ApplicationComponentGroup.class, new Factory<TagsSummary>(TagsSummary.class) { public TagsSummary create() { final TagsSummaryPresenter presenter = new TagsSummaryPresenter($(Session.class), $$(SiteSearcher.class), $(StateManager.class), $(WsThemePresenter.class)); @@ -544,7 +489,55 @@ } }); - register(SingletonScope.class, new Factory<UserLiveSearcher>(UserLiveSearcher.class) { + register(Singleton.class, new Factory<SiteSearcher>(SiteSearcher.class) { + public SiteSearcher create() { + final SiteSearcherPresenter presenter = new SiteSearcherPresenter($$(StateManager.class)); + final SiteSearcherView view = new SiteSearcherPanel(presenter, i18n, ws); + presenter.init(view); + return presenter; + } + }); + + register(Singleton.class, new Factory<I18nTranslator>(I18nTranslator.class) { + public I18nTranslator create() { + final I18nTranslatorPresenter presenter = new I18nTranslatorPresenter($(Session.class), + $(I18nServiceAsync.class), i18n); + final I18nTranslatorView view = new I18nTranslatorPanel(presenter, i18n, $(LanguageSelector.class), ws); + presenter.init(view); + return presenter; + } + }); + + register(Singleton.class, new Factory<SignIn>(SignIn.class) { + public SignIn create() { + final SignInPresenter presenter = new SignInPresenter($(Session.class), $(StateManager.class), i18n, + $(UserServiceAsync.class)); + final SignInPanel view = new SignInPanel(presenter, i18n, ws); + presenter.init(view); + return presenter; + } + }); + + register(Singleton.class, new Factory<LicenseChoose>(LicenseChoose.class) { + public LicenseChoose create() { + final LicenseChoosePresenter presenter = new LicenseChoosePresenter($(Session.class)); + final LicenseChoosePanel view = new LicenseChoosePanel(presenter, i18n); + presenter.init(view); + return presenter; + } + }); + + register(Singleton.class, new Factory<NewGroup>(NewGroup.class) { + public NewGroup create() { + final NewGroupPresenter presenter = new NewGroupPresenter(i18n, $(Session.class), + $(StateManager.class), $$(GroupServiceAsync.class)); + final NewGroupPanel view = new NewGroupPanel(presenter, i18n, $$(LicenseChoose.class)); + presenter.init(view); + return presenter; + } + }); + + register(Singleton.class, new Factory<UserLiveSearcher>(UserLiveSearcher.class) { public UserLiveSearcher create() { final UserLiveSearcherPresenter presenter = new UserLiveSearcherPresenter(); final EntityLiveSearcherView view = new UserLiveSearcherPanel(presenter, i18n); @@ -553,7 +546,7 @@ } }); - register(SingletonScope.class, new Factory<GroupLiveSearcher>(GroupLiveSearcher.class) { + register(Singleton.class, new Factory<GroupLiveSearcher>(GroupLiveSearcher.class) { public GroupLiveSearcher create() { final GroupLiveSearcherPresenter presenter = new GroupLiveSearcherPresenter(); final EntityLiveSearcherView view = new GroupLiveSearchPanel(presenter, i18n); @@ -562,7 +555,7 @@ } }); - register(SingletonScope.class, new Factory<ToolSelector>(ToolSelector.class) { + register(Singleton.class, new Factory<ToolSelector>(ToolSelector.class) { public ToolSelector create() { final ToolSelectorPresenter presenter = new ToolSelectorPresenter($(StateManager.class), $(WsThemePresenter.class)); @@ -570,7 +563,7 @@ } }); - register(SingletonScope.class, new Factory<TextEditor>(TextEditor.class) { + register(Singleton.class, new Factory<TextEditor>(TextEditor.class) { public TextEditor create() { final TextEditorPresenter presenter = new TextEditorPresenter(null, true); final TextEditorPanel panel = new TextEditorPanel(presenter, i18n, ws); @@ -579,7 +572,7 @@ } }); - register(SingletonScope.class, new Factory<LanguageSelector>(LanguageSelector.class) { + register(Singleton.class, new Factory<LanguageSelector>(LanguageSelector.class) { public LanguageSelector create() { final LanguageSelectorPresenter presenter = new LanguageSelectorPresenter($(Session.class)); final LanguageSelectorView view = new LanguageSelectorPanel(presenter, i18n); @@ -588,42 +581,42 @@ } }); - register(SingletonScope.class, new Factory<ActionManager>(ActionManager.class) { + register(Singleton.class, new Factory<ActionManager>(ActionManager.class) { public ActionManager create() { return new ActionManager(ws); } }); - register(SingletonScope.class, new Factory<ContextActionRegistry>(ContextActionRegistry.class) { + register(Singleton.class, new Factory<ContextActionRegistry>(ContextActionRegistry.class) { public ContextActionRegistry create() { return new ContextActionRegistry(); } }); - register(SingletonScope.class, new Factory<ContentActionRegistry>(ContentActionRegistry.class) { + register(Singleton.class, new Factory<ContentActionRegistry>(ContentActionRegistry.class) { public ContentActionRegistry create() { return new ContentActionRegistry(); } }); - register(SingletonScope.class, new Factory<DragDropContentRegistry>(DragDropContentRegistry.class) { + register(Singleton.class, new Factory<DragDropContentRegistry>(DragDropContentRegistry.class) { public DragDropContentRegistry create() { return new DragDropContentRegistry(); } }); - register(SingletonScope.class, new Factory<ContentIconsRegistry>(ContentIconsRegistry.class) { + register(Singleton.class, new Factory<ContentIconsRegistry>(ContentIconsRegistry.class) { public ContentIconsRegistry create() { return new ContentIconsRegistry(); } }); - register(SingletonScope.class, new Factory<ContextNavigator>(ContextNavigator.class) { + register(Singleton.class, new Factory<ContextNavigator>(ContextNavigator.class) { public ContextNavigator create() { - final ActionToolbarPanel contextNavigatorToolbar = new ActionToolbarPanel(ActionToolbarPanel.Position.context, - $(Session.class), $$(ActionManager.class), ws); - final ActionToolbar toolbar = new ActionToolbarPresenter($(Session.class), - contextNavigatorToolbar, $(ContextActionRegistry.class)); + final ActionToolbarPanel contextNavigatorToolbar = new ActionToolbarPanel( + ActionToolbarPanel.Position.context, $(Session.class), $$(ActionManager.class), ws); + final ActionToolbar toolbar = new ActionToolbarPresenter($(Session.class), contextNavigatorToolbar, + $(ContextActionRegistry.class)); final ContextNavigatorPresenter presenter = new ContextNavigatorPresenter($(StateManager.class), $(Session.class), $$(ContentServiceAsync.class), i18n, $(EntityTitle.class), @@ -636,58 +629,59 @@ } }); - register(SingletonScope.class, new Factory<FileUploader>(FileUploader.class) { + register(Singleton.class, new Factory<FileUploader>(FileUploader.class) { public FileUploader create() { final FileUploaderDialog panel = new FileUploaderDialog(i18n, ws, $(Session.class)); return panel; } }); - install(ProviderRegisterStrategy.registerOnlyIfNotRegistered, new EmiteUIModule(), new DocumentClientModule(), - new ChatClientModule()); - - $(SitePublicSpaceLink.class); - $(SiteMessage.class); - $(SiteUserMenu.class); - $(SiteSignInLink.class); - $(SiteSignOutLink.class); - $(SiteNewGroupLink.class); - $(SiteOptions.class); - $(SiteSearch.class); - $(SiteLogo.class); - - $(GroupMembersSummary.class); - $(ParticipationSummary.class); - $(TagsSummary.class); - $(GroupSummary.class); - - $(EntityLogo.class); - $(EntityTitle.class); - $(EntitySubTitle.class); - $(WsThemePresenter.class); - $(EntityLicensePresenter.class); - $(RateIt.class); - $(RatePresenter.class); - // Register of tokens like "signin", "newgroup", "translate" etcetera - $(StateManager.class).addSiteToken(SiteToken.signin.toString(), new Slot<StateToken>() { + $(StateManager.class).addSiteToken(SiteToken.signin.toString(), new Listener<StateToken>() { public void onEvent(final StateToken previousStateToken) { $(SignIn.class).doSignIn(previousStateToken); } }); - $(StateManager.class).addSiteToken(SiteToken.newgroup.toString(), new Slot<StateToken>() { + $(StateManager.class).addSiteToken(SiteToken.newgroup.toString(), new Listener<StateToken>() { public void onEvent(final StateToken previousStateToken) { $(NewGroup.class).doNewGroup(previousStateToken); } }); - $(StateManager.class).addSiteToken(SiteToken.translate.toString(), new Slot<StateToken>() { + $(StateManager.class).addSiteToken(SiteToken.translate.toString(), new Listener<StateToken>() { public void onEvent(final StateToken previousStateToken) { $(I18nTranslator.class).doShowTranslator(); } }); + // $(SiteProgress.class); + // $(Site.class); + // $(SitePublicSpaceLink.class); + // $(SiteMessage.class); + // $(SiteUserMenu.class); + // $(SiteSignInLink.class); + // $(SiteSignOutLink.class); + // $(SiteNewGroupLink.class); + // $(SiteOptions.class); + // $(SiteSearch.class); + // $(SiteLogo.class); + // + // $(GroupMembersSummary.class); + // $(ParticipationSummary.class); + // $(TagsSummary.class); + // $(GroupSummary.class); + // + // $(EntityLogo.class); + // $(EntityTitle.class); + // $(EntitySubTitle.class); + // $(WsThemePresenter.class); + // $(EntityLicensePresenter.class); + // $(RateIt.class); + // $(RatePresenter.class); + + $(ApplicationComponentGroup.class).createAll(); + $(ToolGroup.class).createAll(); $(Application.class).start(); } 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2008-09-24 01:47:16 UTC (rev 881) @@ -31,8 +31,8 @@ import org.ourproject.kune.platf.client.dto.UserInfoDTO; import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener0; public interface Session { @@ -77,11 +77,11 @@ String getUserHash(); - void onInitDataReceived(Slot<InitDataDTO> slot); + void onInitDataReceived(Listener<InitDataDTO> listener); - void onUserSignIn(Slot<UserInfoDTO> slot); + void onUserSignIn(Listener<UserInfoDTO> listener); - void onUserSignOut(Slot0 slot); + void onUserSignOut(Listener0 listener); void setCurrentUserInfo(UserInfoDTO currentUserInfo); 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java 2008-09-24 01:47:16 UTC (rev 881) @@ -35,11 +35,11 @@ import org.ourproject.kune.workspace.client.site.rpc.UserServiceAsync; import com.allen_sauer.gwt.log.client.Log; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Signal; -import com.calclab.suco.client.signal.Signal0; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Event; +import com.calclab.suco.client.listener.Event0; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener0; public class SessionDefault implements Session { private String userHash; @@ -50,18 +50,18 @@ private Object[][] timezonesArray; private StateDTO currentState; private I18nLanguageDTO currentLanguage; - private final Signal<InitDataDTO> onInitDataReceived; - private final Signal<UserInfoDTO> onUserSignIn; - private final Signal0 onUserSignOut; + private final Event<InitDataDTO> onInitDataReceived; + private final Event<UserInfoDTO> onUserSignIn; + private final Event0 onUserSignOut; private final Provider<UserServiceAsync> userServiceProvider; public SessionDefault(final String userHash, final Provider<UserServiceAsync> userServiceProvider) { this.userHash = userHash == null || userHash.equals("null") ? null : userHash; this.userServiceProvider = userServiceProvider; languagesArray = null; - this.onInitDataReceived = new Signal<InitDataDTO>("initDataReceived"); - this.onUserSignIn = new Signal<UserInfoDTO>("onUserSignIn"); - this.onUserSignOut = new Signal0("onUserSignOut"); + this.onInitDataReceived = new Event<InitDataDTO>("initDataReceived"); + this.onUserSignIn = new Event<UserInfoDTO>("onUserSignIn"); + this.onUserSignOut = new Event0("onUserSignOut"); } public void check(final AsyncCallbackSimple<?> callback) { @@ -130,16 +130,16 @@ return userHash != null; } - public void onInitDataReceived(final Slot<InitDataDTO> slot) { - onInitDataReceived.add(slot); + public void onInitDataReceived(final Listener<InitDataDTO> listener) { + onInitDataReceived.add(listener); } - public void onUserSignIn(final Slot<UserInfoDTO> slot) { - onUserSignIn.add(slot); + public void onUserSignIn(final Listener<UserInfoDTO> listener) { + onUserSignIn.add(listener); } - public void onUserSignOut(final Slot0 slot) { - onUserSignOut.add(slot); + public void onUserSignOut(final Listener0 listener) { + onUserSignOut.add(listener); } public void setCurrent(final StateDTO currentState) { Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java 2008-09-24 01:47:16 UTC (rev 881) @@ -24,13 +24,13 @@ import org.ourproject.kune.platf.client.dto.StateDTO; import org.ourproject.kune.platf.client.dto.StateToken; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot2; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener2; import com.google.gwt.user.client.HistoryListener; public interface StateManager extends HistoryListener { - void addSiteToken(String token, Slot<StateToken> whenToken); + void addSiteToken(String token, Listener<StateToken> whenToken); void gotoContainer(Long containerId); @@ -38,13 +38,13 @@ void gotoToken(String token); - void onGroupChanged(Slot2<String, String> slot); + void onGroupChanged(Listener2<String, String> listener); - void onSocialNetworkChanged(Slot<StateDTO> slot); + void onSocialNetworkChanged(Listener<StateDTO> listener); - void onStateChanged(Slot<StateDTO> slot); + void onStateChanged(Listener<StateDTO> listener); - void onToolChanged(Slot2<String, String> slot); + void onToolChanged(Listener2<String, String> listener); void reload(); 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-09-24 01:47:16 UTC (rev 881) @@ -33,22 +33,22 @@ import org.ourproject.kune.workspace.client.site.Site; import com.allen_sauer.gwt.log.client.Log; -import com.calclab.suco.client.signal.Signal; -import com.calclab.suco.client.signal.Signal2; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot0; -import com.calclab.suco.client.signal.Slot2; +import com.calclab.suco.client.listener.Event; +import com.calclab.suco.client.listener.Event2; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener0; +import com.calclab.suco.client.listener.Listener2; public class StateManagerDefault implements StateManager { private final ContentProvider contentProvider; private StateDTO oldState; private final Session session; private final HistoryWrapper history; - private final HashMap<String, Slot<StateToken>> siteTokens; - private final Signal<StateDTO> onStateChanged; - private final Signal<StateDTO> onSocialNetworkChanged; - private final Signal2<String, String> onToolChanged; - private final Signal2<String, String> onGroupChanged; + private final HashMap<String, Listener<StateToken>> siteTokens; + private final Event<StateDTO> onStateChanged; + private final Event<StateDTO> onSocialNetworkChanged; + private final Event2<String, String> onToolChanged; + private final Event2<String, String> onGroupChanged; public StateManagerDefault(final ContentProvider contentProvider, final Session session, final HistoryWrapper history) { @@ -56,25 +56,25 @@ this.session = session; this.history = history; this.oldState = null; - this.onStateChanged = new Signal<StateDTO>("onStateChanged"); - this.onGroupChanged = new Signal2<String, String>("onGroupChanged"); - this.onToolChanged = new Signal2<String, String>("onToolChanged"); - this.onSocialNetworkChanged = new Signal<StateDTO>("onSocialNetworkChanged"); - session.onUserSignIn(new Slot<UserInfoDTO>() { + this.onStateChanged = new Event<StateDTO>("onStateChanged"); + this.onGroupChanged = new Event2<String, String>("onGroupChanged"); + this.onToolChanged = new Event2<String, String>("onToolChanged"); + this.onSocialNetworkChanged = new Event<StateDTO>("onSocialNetworkChanged"); + session.onUserSignIn(new Listener<UserInfoDTO>() { public void onEvent(final UserInfoDTO parameter) { restorePreviousState(); } }); - session.onUserSignOut(new Slot0() { + session.onUserSignOut(new Listener0() { public void onEvent() { reload(); } }); - siteTokens = new HashMap<String, Slot<StateToken>>(); + siteTokens = new HashMap<String, Listener<StateToken>>(); } - public void addSiteToken(final String token, final Slot<StateToken> slot) { - siteTokens.put(token, slot); + public void addSiteToken(final String token, final Listener<StateToken> listener) { + siteTokens.put(token, listener); } public void gotoContainer(final Long containerId) { @@ -92,14 +92,14 @@ gotoToken(new StateToken(token)); } - public void onGroupChanged(final Slot2<String, String> slot) { - onGroupChanged.add(slot); + public void onGroupChanged(final Listener2<String, String> listener) { + onGroupChanged.add(listener); } public void onHistoryChanged(final String historyToken) { - final Slot<StateToken> tokenSlot = siteTokens.get(historyToken); + final Listener<StateToken> tokenListener = siteTokens.get(historyToken); Log.debug("history token: " + historyToken); - if (tokenSlot == null) { + if (tokenListener == null) { onHistoryChanged(new StateToken(historyToken)); } else { StateToken stateToken; @@ -110,20 +110,20 @@ } else { stateToken = oldState.getStateToken(); } - tokenSlot.onEvent(stateToken); + tokenListener.onEvent(stateToken); } } - public void onSocialNetworkChanged(final Slot<StateDTO> slot) { - onSocialNetworkChanged.add(slot); + public void onSocialNetworkChanged(final Listener<StateDTO> listener) { + onSocialNetworkChanged.add(listener); } - public void onStateChanged(final Slot<StateDTO> slot) { - onStateChanged.add(slot); + public void onStateChanged(final Listener<StateDTO> listener) { + onStateChanged.add(listener); } - public void onToolChanged(final Slot2<String, String> slot) { - onToolChanged.add(slot); + public void onToolChanged(final Listener2<String, String> listener) { + onToolChanged.add(listener); } /** Modified: trunk/src/main/java/org/ourproject/kune/platf/client/tool/ToolSelectorItemPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/tool/ToolSelectorItemPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/tool/ToolSelectorItemPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -5,7 +5,7 @@ import org.ourproject.kune.workspace.client.themes.WsTheme; import org.ourproject.kune.workspace.client.themes.WsThemePresenter; -import com.calclab.suco.client.signal.Slot2; +import com.calclab.suco.client.listener.Listener2; public class ToolSelectorItemPresenter implements ToolSelectorItem { @@ -34,7 +34,7 @@ public void init(final ToolSelectorItemView view) { this.view = view; toolSelector.addTool(this); - wsThemePresenter.onThemeChanged(new Slot2<WsTheme, WsTheme>() { + wsThemePresenter.onThemeChanged(new Listener2<WsTheme, WsTheme>() { public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) { setTheme(oldTheme, newTheme); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/tool/ToolSelectorPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/tool/ToolSelectorPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/tool/ToolSelectorPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -5,7 +5,7 @@ import org.ourproject.kune.platf.client.state.StateManager; import org.ourproject.kune.workspace.client.themes.WsThemePresenter; -import com.calclab.suco.client.signal.Slot2; +import com.calclab.suco.client.listener.Listener2; public class ToolSelectorPresenter implements ToolSelector { @@ -13,12 +13,12 @@ public ToolSelectorPresenter(final StateManager stateManager, final WsThemePresenter wsThemePresenter) { tools = new HashMap<String, ToolSelectorItem>(); - stateManager.onGroupChanged(new Slot2<String, String>() { + stateManager.onGroupChanged(new Listener2<String, String>() { public void onEvent(final String oldGroupName, final String newGroupName) { onGroupChanged(newGroupName); } }); - stateManager.onToolChanged(new Slot2<String, String>() { + stateManager.onToolChanged(new Listener2<String, String>() { public void onEvent(final String oldTool, final String newTool) { onToolChanged(oldTool, newTool); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/MenuItem.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/MenuItem.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/MenuItem.java 2008-09-24 01:47:16 UTC (rev 881) @@ -1,19 +1,19 @@ package org.ourproject.kune.platf.client.ui; -import com.calclab.suco.client.signal.Signal; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Event; +import com.calclab.suco.client.listener.Listener; public class MenuItem<T> { final String icon; final String title; - private final Signal<T> onClick; + private final Event<T> onClick; - public MenuItem(final String icon, final String title, final Slot<T> slot) { + public MenuItem(final String icon, final String title, final Listener<T> listener) { this.icon = icon; this.title = title; - this.onClick = new Signal<T>("onClick"); - onClick(slot); + this.onClick = new Event<T>("onClick"); + onClick(listener); } public void fire(final T id) { @@ -28,7 +28,7 @@ return title; } - public void onClick(final Slot<T> slot) { - onClick.add(slot); + public void onClick(final Listener<T> listener) { + onClick.add(listener); } } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/FileUploader.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/FileUploader.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/FileUploader.java 2008-09-24 01:47:16 UTC (rev 881) @@ -2,6 +2,10 @@ public interface FileUploader { + public static final String USERHASH = "userhash"; + public static final String CURRENT_STATE_TOKEN = "currentStateToken"; + public static final String FILENAME = "filename"; + void hide(); void setPermittedExtensions(String extensions); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/FileUploaderDialog.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/FileUploaderDialog.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/FileUploaderDialog.java 2008-09-24 01:47:16 UTC (rev 881) @@ -20,8 +20,10 @@ public class FileUploaderDialog implements FileUploader { - private static final String URL = "/kune/servlets/FileUploadManagerRevisited"; + protected static final String SITE_FILE_UPLOADER = "k-site-file-uploader"; + private static final String URL = "/kune/servlets/FileUploadManager"; + private UploadDialog dialog; private ToolbarButton traybarButton; private final I18nUITranslationService i18n; @@ -42,6 +44,7 @@ public void setPermittedExtensions(final String extensions) { DeferredCommand.addCommand(new Command() { public void execute() { + Log.error("Debugging setPerm issue, current perms: " + dialog.getPermittedExtensions()); final Object[] objs = KuneStringUtils.splitTags(extensions).toArray(); final String[] exts = new String[objs.length]; for (int i = 0; i < objs.length; i++) { @@ -78,10 +81,9 @@ private void createDialog(final boolean show) { DeferredCommand.addCommand(new Command() { - public void execute() { - dialog = new UploadDialog(i18n.t("File uploader"), false, true); + dialog.setId(SITE_FILE_UPLOADER); // dialog.setUploadAutostart(true); dialog.setResetOnHide(false); dialog.addListener(new UploadDialogListenerAdapter() { @@ -115,9 +117,9 @@ final String filename) { Log.info("Setting upload params"); final UrlParam param[] = new UrlParam[3]; - param[0] = new UrlParam("userhash", userhash); - param[1] = new UrlParam("currentStateToken", currentStateToken); - param[2] = new UrlParam("filename", filename); + param[0] = new UrlParam(USERHASH, userhash); + param[1] = new UrlParam(CURRENT_STATE_TOKEN, currentStateToken); + param[2] = new UrlParam(FILENAME, filename); dialog.setBaseParams(param); dialog.setPostVarName(filename); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridButton.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridButton.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridButton.java 2008-09-24 01:47:16 UTC (rev 881) @@ -1,27 +1,27 @@ package org.ourproject.kune.platf.client.ui.gridmenu; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; public class GridButton { private final String title; private final String icon; private final String tooltip; - private final Slot<String> slot; + private final Listener<String> listener; - public GridButton(final String icon, final String title, final String tooltip, final Slot<String> slot) { + public GridButton(final String icon, final String title, final String tooltip, final Listener<String> listener) { this.icon = icon; this.title = title; this.tooltip = tooltip; - this.slot = slot; + this.listener = listener; } public String getIcon() { return icon; } - public Slot<String> getSlot() { - return slot; + public Listener<String> getListener() { + return listener; } public String getTitle() { Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridDropConfiguration.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridDropConfiguration.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridDropConfiguration.java 2008-09-24 01:47:16 UTC (rev 881) @@ -21,18 +21,18 @@ */ package org.ourproject.kune.platf.client.ui.gridmenu; -import com.calclab.suco.client.signal.Signal; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Event; +import com.calclab.suco.client.listener.Listener; public class GridDropConfiguration { private final String ddGroupId; - private final Signal<String> onDrop; + private final Event<String> onDrop; - public GridDropConfiguration(final String ddGroupId, final Slot<String> slot) { + public GridDropConfiguration(final String ddGroupId, final Listener<String> listener) { this.ddGroupId = ddGroupId; - this.onDrop = new Signal<String>("onDrop"); - this.onDrop(slot); + this.onDrop = new Event<String>("onDrop"); + this.onDrop(listener); } public void fire(final String id) { @@ -43,8 +43,8 @@ return ddGroupId; } - public void onDrop(final Slot<String> slot) { - onDrop.add(slot); + public void onDrop(final Listener<String> listener) { + onDrop.add(listener); } } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -4,8 +4,8 @@ import java.util.HashMap; import com.allen_sauer.gwt.log.client.Log; -import com.calclab.suco.client.signal.Signal; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Event; +import com.calclab.suco.client.listener.Listener; import com.gwtext.client.core.EventObject; import com.gwtext.client.core.Ext; import com.gwtext.client.core.SortDir; @@ -60,8 +60,8 @@ private GridPanel grid; private final boolean grouped; private final boolean withCounters; - private final Signal<String> onClick; - private final Signal<String> onDoubleClick; + private final Event<String> onClick; + private final Event<String> onDoubleClick; private Toolbar topBar; private Toolbar bottomBar; private ColumnModel columnModel; @@ -92,8 +92,8 @@ public GridMenuPanel(final String emptyText, final GridDragConfiguration gridDragConfiguration, final GridDropConfiguration gridDropConfiguration, final boolean grouped, final boolean withCounters, final boolean withTopBar, final boolean withBottomBar, final boolean withEndIcon) { - this.onClick = new Signal<String>("onClick"); - this.onDoubleClick = new Signal<String>("onDoubleClick"); + this.onClick = new Event<String>("onClick"); + this.onDoubleClick = new Event<String>("onDoubleClick"); this.grouped = grouped; this.withCounters = withCounters; this.withEndIcon = withEndIcon; @@ -196,12 +196,12 @@ return topBar; } - public void onClick(final Slot<String> slot) { - onClick.add(slot); + public void onClick(final Listener<String> listener) { + onClick.add(listener); } - public void onDoubleClick(final Slot<String> slot) { - onDoubleClick.add(slot); + public void onDoubleClick(final Listener<String> listener) { + onDoubleClick.add(listener); } public void removeAll() { Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -27,8 +27,8 @@ import org.ourproject.kune.platf.client.state.StateManager; import org.ourproject.kune.workspace.client.site.Site; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Listener; public class RateItPresenter implements RateIt { @@ -47,7 +47,7 @@ this.session = session; this.contentServiceProvider = contentServiceProvider; this.stateManager = stateManager; - stateManager.onStateChanged(new Slot<StateDTO>() { + stateManager.onStateChanged(new Listener<StateDTO>() { public void onEvent(final StateDTO state) { setState(state); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -3,14 +3,14 @@ import org.ourproject.kune.platf.client.dto.StateDTO; import org.ourproject.kune.platf.client.state.StateManager; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; public class RatePresenter { private RateView view; public RatePresenter(final StateManager stateManager) { - stateManager.onStateChanged(new Slot<StateDTO>() { + stateManager.onStateChanged(new Listener<StateDTO>() { public void onEvent(final StateDTO state) { setState(state); } Modified: trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java 2008-09-24 01:47:16 UTC (rev 881) @@ -64,7 +64,7 @@ import org.ourproject.kune.platf.server.manager.ToolConfigurationManager; import org.ourproject.kune.platf.server.manager.UserManager; import org.ourproject.kune.platf.server.manager.impl.FileManagerDefault; -import org.ourproject.kune.platf.server.manager.impl.FileUploadManagerRevisited; +import org.ourproject.kune.platf.server.manager.impl.FileUploadManager; import org.ourproject.kune.platf.server.manager.impl.GroupManagerDefault; import org.ourproject.kune.platf.server.manager.impl.I18nCountryManagerDefault; import org.ourproject.kune.platf.server.manager.impl.I18nLanguageManagerDefault; @@ -108,7 +108,7 @@ bind(KuneProperties.class).to(KunePropertiesDefault.class); bind(Mapper.class).to(DozerMapper.class); bind(ToolRegistry.class); - bind(FileUploadManagerRevisited.class); + bind(FileUploadManager.class); bindInterceptor(Matchers.any(), Matchers.annotatedWith(Authenticated.class), outermostCall(new AuthenticatedMethodInterceptor())); Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/ChatUserParams.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/domain/ChatUserParams.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/ChatUserParams.java 2008-09-24 01:47:16 UTC (rev 881) @@ -2,8 +2,7 @@ import java.io.Serializable; -import com.calclab.emite.client.im.roster.RosterManager; -import com.calclab.emite.client.im.roster.RosterManager.SubscriptionMode; +import com.calclab.emiteuimodule.client.SubscriptionMode; public class ChatUserParams implements Serializable { @@ -37,7 +36,7 @@ return chatColor; } - public RosterManager.SubscriptionMode getSubscriptionMode() { + public SubscriptionMode getSubscriptionMode() { return subscriptionMode; } @@ -57,7 +56,7 @@ this.publishRoster = publishRoster; } - public void setSubscriptionMode(final RosterManager.SubscriptionMode subscriptionMode) { + public void setSubscriptionMode(final SubscriptionMode subscriptionMode) { this.subscriptionMode = subscriptionMode; } Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/FileManager.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/FileManager.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/FileManager.java 2008-09-24 01:47:16 UTC (rev 881) @@ -1,5 +1,35 @@ package org.ourproject.kune.platf.server.manager; +import java.io.File; +import java.io.IOException; + public interface FileManager { + /** + * Create a new file adding a numeric sequence if the file already exists + * + * @param dir + * the directory (use File.separator for dir delimiters) + * @param fileName + * (the new file name) + * @return if 'file.txt' exists it creates 'file 1.txt' and if 'file 1.txt' + * exists it creates 'file 2.txt' and so on + * @throws IOException + */ + File createFileWithSequentialName(String dir, String fileName) throws IOException; + + /** + * @param dir + * the directory (use File.separator for dir delimiters) + * @return true if and only if the directory was created, along with all + * necessary parent directories; false otherwise + */ + boolean mkdir(String dir); + + /** + * @param dir + * the directory (use File.separator for dir delimiters) + */ + void rmdir(String dir); + } Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileManagerDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileManagerDefault.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileManagerDefault.java 2008-09-24 01:47:16 UTC (rev 881) @@ -1,5 +1,8 @@ package org.ourproject.kune.platf.server.manager.impl; +import java.io.File; +import java.io.IOException; + import org.ourproject.kune.platf.server.manager.FileManager; import com.google.inject.Singleton; @@ -7,4 +10,29 @@ @Singleton public class FileManagerDefault implements FileManager { + public File createFileWithSequentialName(final String dir, final String fileName) throws IOException { + String fileNameProposal = new String(fileName); + File file = new File(dir, fileNameProposal); + while (file.exists()) { + fileNameProposal = FileUtils.getNextSequentialFileName(fileNameProposal, true); + file = new File(dir, fileNameProposal); + } + file.createNewFile(); + return file; + } + + public boolean mkdir(final String dir) { + return (new File(dir)).mkdirs(); + } + + public void rmdir(final String dir) { + final File file = new File(dir); + if (!file.isDirectory()) { + throw new RuntimeException("rmdir: " + dir + ": Not a directory"); + } + if (file.listFiles().length != 0) { + throw new RuntimeException("rmdir: " + dir + ": Directory not empty"); + } + file.delete(); + } } Copied: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java (from rev 878, trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManagerRevisited.java) =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManagerRevisited.java 2008-09-22 11:53:01 UTC (rev 878) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java 2008-09-24 01:47:16 UTC (rev 881) @@ -0,0 +1,154 @@ +package org.ourproject.kune.platf.server.manager.impl; + +import java.io.File; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.util.Iterator; +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import net.sf.json.JSONObject; + +import org.apache.commons.fileupload.FileItem; +import org.apache.commons.fileupload.FileUploadException; +import org.apache.commons.fileupload.disk.DiskFileItemFactory; +import org.apache.commons.fileupload.servlet.ServletFileUpload; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.ourproject.kune.platf.client.dto.StateToken; +import org.ourproject.kune.platf.client.ui.dialogs.FileUploader; +import org.ourproject.kune.platf.server.access.AccessRol; +import org.ourproject.kune.platf.server.auth.ActionLevel; +import org.ourproject.kune.platf.server.auth.Authenticated; +import org.ourproject.kune.platf.server.auth.Authorizated; +import org.ourproject.kune.platf.server.content.ContentManager; +import org.ourproject.kune.platf.server.manager.FileManager; +import org.ourproject.kune.platf.server.properties.KuneProperties; + +import com.google.inject.Inject; +import com.google.inject.servlet.RequestScoped; + +@RequestScoped +public class FileUploadManager extends HttpServlet { + + public static final Log log = LogFactory.getLog(FileUploadManager.class); + + private static final long serialVersionUID = 1L; + + @Inject + KuneProperties kuneProperties; + @Inject + ContentManager contentManager; + @Inject + FileManager fileManager; + + @Override + @SuppressWarnings( { "unchecked", "deprecation" }) + protected void doPost(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, + IOException { + + // i18n + JSONObject jsonResponse = createJsonResponse(true, "OK"); + + final DiskFileItemFactory factory = new DiskFileItemFactory(); + // maximum size that will be stored in memory + factory.setSizeThreshold(4096); + // the location for saving data that is larger than getSizeThreshold() + factory.setRepository(new File("/tmp")); + + if (!ServletFileUpload.isMultipartContent(req)) { + log.warn("Not a multipart upload"); + } + + final ServletFileUpload upload = new ServletFileUpload(factory); + // maximum size before a FileUploadException will be thrown + upload.setSizeMax(new Integer(kuneProperties.get(KuneProperties.UPLOAD_MAX_FILE_SIZE)) * 1024 * 1024); + + try { + final List fileItems = upload.parseRequest(req); + String userHash = null; + StateToken stateToken = null; + String fileName = null; + FileItem file = null; + for (final Iterator iterator = fileItems.iterator(); iterator.hasNext();) { + final FileItem item = (FileItem) iterator.next(); + if (item.isFormField()) { + final String name = item.getFieldName(); + final String value = item.getString(); + log.info("name: " + name + " value: " + value); + if (name.equals(FileUploader.USERHASH)) { + userHash = value; + } + if (name.equals(FileUploader.CURRENT_STATE_TOKEN)) { + stateToken = new StateToken(value); + } + } else { + fileName = item.getName(); + log.info("file: " + fileName + " fieldName: " + item.getFieldName() + " size: " + item.getSize()); + file = item; + } + } + createFile(userHash, stateToken, fileName, file); + } catch (final FileUploadException e) { + // i18n + jsonResponse = createJsonResponse(false, "Error: File too large"); + } catch (final Exception e) { + // i18n + jsonResponse = createJsonResponse(false, "Error uploading file"); + e.printStackTrace(); + } + + final Writer w = new OutputStreamWriter(resp.getOutputStream()); + w.write(jsonResponse.toString()); + w.close(); + resp.setStatus(HttpServletResponse.SC_OK); + } + + private String calculateUploadDirLocation(final StateToken stateToken) { + return kuneProperties.get(KuneProperties.UPLOAD_LOCATION) + File.pathSeparator + stateToken.getGroup() + + File.pathSeparator + stateToken.getTool() + File.pathSeparator + stateToken.getFolder(); + } + + @Authenticated + @Authorizated(accessRolRequired = AccessRol.Editor, actionLevel = ActionLevel.container) + private JSONObject createFile(final String userHash, final StateToken stateToken, final String fileName, + final FileItem fileUploadItem) throws Exception { + final String destDir = calculateUploadDirLocation(stateToken); + fileManager.mkdir(destDir); + final File file = fileManager.createFileWithSequentialName(destDir, fileName); + fileUploadItem.write(file); + fileUploadItem.getContentType(); + // here ContentManager code + return createJsonResponse(true, "OK"); + } + + private JSONObject createJsonResponse(final boolean success, final String message) { + /** + * + * http://max-bazhenov.com/dev/upload-dialog-2.0/index.php + * + * Server side handler. + * + * The files in the queue are posted one at a time, the file field name + * is 'file'. The handler should return json encoded object with + * following properties: { success: true|false, // required error: + * 'Error or success message' // optional, also can be named 'message' } + */ + + JSONObject response = null; + try { + response = new JSONObject(); + response.put("success", success); + response.put("error", message); + response.put("code", "232"); + } catch (final Exception e) { + log.error("Error building response"); + } + return response; + } +} Deleted: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManagerDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManagerDefault.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManagerDefault.java 2008-09-24 01:47:16 UTC (rev 881) @@ -1,46 +0,0 @@ -package org.ourproject.kune.platf.server.manager.impl; - -import java.io.File; -import java.util.HashMap; -import java.util.Map; - -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.cafesip.gwtcomp.server.FileUploadAction; -import org.cafesip.gwtcomp.server.FormResponse; - -public class FileUploadManagerDefault implements FileUploadAction { - - public static final Log log = LogFactory.getLog(FileUploadManagerDefault.class); - private HashMap<String, File> files; - - @SuppressWarnings("unchecked") - public FormResponse onSubmit(final HttpServlet servlet, final HttpServletRequest request) { - for (final Map.Entry<String, File> entry : files.entrySet()) { - log.info("file uploaded: " + entry.getKey()); - } - - /** - * - * http://max-bazhenov.com/dev/upload-dialog-2.0/index.php - * - * Server side handler. - * - * The files in the queue are posted one at a time, the file field name - * is 'file'. The handler should return json encoded object with - * following properties: { success: true|false, // required error: - * 'Error or success message' // optional, also can be named 'message' } - */ - return new FormResponse(HttpServletResponse.SC_OK, "{'success':true,'message':'OK'}", false); - } - - public void setFileList(final HashMap<String, File> files) { - log.info("Setting files"); - this.files = files; - } - -} Deleted: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManagerRevisited.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManagerRevisited.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManagerRevisited.java 2008-09-24 01:47:16 UTC (rev 881) @@ -1,111 +0,0 @@ -package org.ourproject.kune.platf.server.manager.impl; - -import java.io.File; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.io.Writer; -import java.util.Iterator; -import java.util.List; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import net.sf.json.JSONObject; - -import org.apache.commons.fileupload.FileItem; -import org.apache.commons.fileupload.FileUploadException; -import org.apache.commons.fileupload.disk.DiskFileItemFactory; -import org.apache.commons.fileupload.servlet.ServletFileUpload; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.ourproject.kune.platf.server.properties.KuneProperties; - -import com.google.inject.Inject; -import com.google.inject.servlet.RequestScoped; - -@RequestScoped -public class FileUploadManagerRevisited extends HttpServlet { - - public static final Log log = LogFactory.getLog(FileUploadManagerRevisited.class); - - private static final long serialVersionUID = 1L; - - @Inject - KuneProperties kuneProperties; - - @Override - @SuppressWarnings( { "unchecked", "deprecation" }) - protected void doPost(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, - IOException { - - // i18n - String jsonResponse = createJsonResponse(true, "OK"); - - final DiskFileItemFactory factory = new DiskFileItemFactory(); - // maximum size that will be stored in memory - factory.setSizeThreshold(4096); - // the location for saving data that is larger than getSizeThreshold() - factory.setRepository(new File("/tmp")); - - if (!ServletFileUpload.isMultipartContent(req)) { - log.warn("Not a multipart upload"); - } - - final ServletFileUpload upload = new ServletFileUpload(factory); - // maximum size before a FileUploadException will be thrown - upload.setSizeMax(new Integer(kuneProperties.get(KuneProperties.UPLOAD_MAX_FILE_SIZE)) * 1024 * 1024); - - try { - final List fileItems = upload.parseRequest(req); - for (final Iterator iterator = fileItems.iterator(); iterator.hasNext();) { - final FileItem item = (FileItem) iterator.next(); - if (item.isFormField()) { - final String name = item.getFieldName(); - final String value = item.getString(); - log.info("name: " + name + " value: " + value); - } else { - final String fileName = item.getName(); - log.info("file: " + fileName + " fieldName: " + item.getFieldName() + " size: " + item.getSize()); - item.write(new File(kuneProperties.get(KuneProperties.UPLOAD_LOCATION), fileName)); - } - } - } catch (final FileUploadException e) { - jsonResponse = createJsonResponse(false, "Error: File too large"); - } catch (final Exception e) { - jsonResponse = createJsonResponse(false, "Error uploading file"); - e.printStackTrace(); - } - - final Writer w = new OutputStreamWriter(resp.getOutputStream()); - w.write(jsonResponse); - w.close(); - resp.setStatus(HttpServletResponse.SC_OK); - } - - private String createJsonResponse(final boolean success, final String message) { - /** - * - * http://max-bazhenov.com/dev/upload-dialog-2.0/index.php - * - * Server side handler. - * - * The files in the queue are posted one at a time, the file field name - * is 'file'. The handler should return json encoded object with - * following properties: { success: true|false, // required error: - * 'Error or success message' // optional, also can be named 'message' } - */ - - JSONObject response = null; - try { - response = new JSONObject(); - response.put("success", success); - response.put("error", message); - response.put("code", "232"); - } catch (final Exception e) { - log.error("Error building response"); - } - return response.toString(); - } -} Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUtils.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUtils.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUtils.java 2008-09-24 01:47:16 UTC (rev 881) @@ -0,0 +1,30 @@ +package org.ourproject.kune.platf.server.manager.impl; + +public class FileUtils { + + public static String getNextSequentialFileName(final String fileName) { + final int lastSpace = fileName.lastIndexOf(" "); + if (lastSpace != -1) { + final String suffix = fileName.substring(lastSpace + 1); + try { + final Integer i = new Integer(suffix); + return fileName.substring(0, lastSpace + 1) + (i + 1); + } catch (final NumberFormatException e) { + } + } + return fileName + " 1"; + } + + public static String getNextSequentialFileName(final String fileName, boolean preserveExtension) { + if (!preserveExtension) { + return getNextSequentialFileName(fileName); + } + final int dotIndex = fileName.lastIndexOf("."); + if (dotIndex == -1 || dotIndex == 0) { + return getNextSequentialFileName(fileName); + } else { + final String ext = fileName.substring(dotIndex); + return getNextSequentialFileName(fileName.substring(0, dotIndex)) + ext; + } + } +} Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -101,6 +101,7 @@ if (!item.getStateToken().hasAll()) { // is a container child.setExpandable(true); + child.setSingleClickExpand(true); child.addListener(new TreeNodeListenerAdapter() { public void onExpand(final Node node) { treePanel.getNodeById(node.getId()).select(); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -44,9 +44,9 @@ import org.ourproject.kune.workspace.client.site.Site; import org.ourproject.kune.workspace.client.title.EntityTitle; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener0; import com.google.gwt.user.client.rpc.AsyncCallback; public class ContextNavigatorPresenter implements ContextNavigator { @@ -100,12 +100,12 @@ public void init(final ContextNavigatorView view) { this.view = view; - session.onUserSignIn(new Slot<UserInfoDTO>() { + session.onUserSignIn(new Listener<UserInfoDTO>() { public void onEvent(final UserInfoDTO parameter) { clear(); } }); - session.onUserSignOut(new Slot0() { + session.onUserSignOut(new Listener0() { public void onEvent() { clear(); } @@ -152,7 +152,7 @@ public void selectItem(final StateToken stateToken) { view.selectItem(genId(stateToken)); toolbar.disableMenusAndClearButtons(); - toolbar.setActions(actionsByItem.get(stateToken), true); + toolbar.showActions(actionsByItem.get(stateToken), true); } public void setEditOnNextStateChange(final boolean edit) { @@ -184,7 +184,7 @@ .getTypeId()); view.setRootItem(genId(root.getStateToken()), i18n.t(root.getName()), root.getStateToken(), set .getItemActions()); - toolbar.setActions(set.getToolbarActions(), false); + toolbar.showActions(set.getToolbarActions(), false); createChildItems(root, containerRights); actionsByItem.put(root.getStateToken(), set.getToolbarActions()); } @@ -229,7 +229,7 @@ final boolean isNodeSelected) { final ActionCollectionSet<StateToken> set = actionRegistry.selectCurrentActions(rights, contentTypeId); - toolbar.setActions(set.getToolbarActions(), isNodeSelected); + toolbar.showActions(set.getToolbarActions(), isNodeSelected); final ContextNavigatorItem item = new ContextNavigatorItem(genId(stateToken), genId(parentStateToken), contentIconsRegistry.getContentTypeIcon(contentTypeId), title, status, stateToken, Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -6,14 +6,14 @@ import org.ourproject.kune.workspace.client.themes.WsTheme; import org.ourproject.kune.workspace.client.themes.WsThemePresenter; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot2; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener2; public class EntityLogoPresenter implements EntityLogo { private EntityLogoView view; public EntityLogoPresenter(final StateManager stateManager, final WsThemePresenter theme) { - stateManager.onStateChanged(new Slot<StateDTO>() { + stateManager.onStateChanged(new Listener<StateDTO>() { public void onEvent(final StateDTO state) { final GroupDTO group = state.getGroup(); final boolean isAdmin = state.getGroupRights().isAdministrable(); @@ -22,7 +22,7 @@ view.setPutYourLogoVisible(isAdmin); } }); - theme.onThemeChanged(new Slot2<WsTheme, WsTheme>() { + theme.onThemeChanged(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/i18n/I18nTranslatorPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -25,7 +25,7 @@ import org.ourproject.kune.platf.client.state.Session; import org.ourproject.kune.workspace.client.site.Site; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.listener.Listener0; import com.google.gwt.user.client.rpc.AsyncCallback; public class I18nTranslatorPresenter implements I18nTranslator { @@ -39,7 +39,7 @@ this.session = session; this.i18nService = i18nService; this.i18n = i18n; - session.onUserSignOut(new Slot0() { + session.onUserSignOut(new Listener0() { public void onEvent() { view.hideTranslatorAndIcon(); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java 2008-09-24 01:47:16 UTC (rev 881) @@ -30,7 +30,7 @@ import org.ourproject.kune.platf.client.ui.WindowUtils; import com.allen_sauer.gwt.log.client.Log; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.listener.Listener0; import com.google.gwt.user.client.rpc.AsyncCallback; public class I18nUITranslationService extends I18nTranslationService { @@ -72,7 +72,7 @@ return lexicon; } - public void init(final I18nServiceAsync i18nService, final Session session, final Slot0 onReady) { + public void init(final I18nServiceAsync i18nService, final Session session, final Listener0 onReady) { this.i18nService = i18nService; this.session = session; final Location loc = WindowUtils.getLocation(); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -24,7 +24,7 @@ import org.ourproject.kune.platf.client.dto.StateDTO; import org.ourproject.kune.platf.client.state.StateManager; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; public class EntityLicensePresenter { @@ -32,7 +32,7 @@ private LicenseDTO license; public EntityLicensePresenter(final StateManager stateManager) { - stateManager.onStateChanged(new Slot<StateDTO>() { + stateManager.onStateChanged(new Listener<StateDTO>() { public void onEvent(final StateDTO state) { setLicense(state); } 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -30,7 +30,7 @@ import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePanel; import org.ourproject.kune.workspace.client.site.msg.SiteMessagePanel; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; import com.google.gwt.user.client.ui.AbstractImagePrototype; import com.google.gwt.user.client.ui.DeckPanel; import com.google.gwt.user.client.ui.HTML; 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -33,8 +33,8 @@ import org.ourproject.kune.workspace.client.site.Site; import org.ourproject.kune.workspace.client.site.SiteToken; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Listener; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -52,7 +52,7 @@ this.session = session; this.stateManager = stateManager; this.groupServiceProvider = groupServiceProvider; - stateManager.addSiteToken(SiteToken.newgroup.toString(), new Slot<StateToken>() { + stateManager.addSiteToken(SiteToken.newgroup.toString(), new Listener<StateToken>() { public void onEvent(final StateToken previousStateToken) { doNewGroup(previousStateToken); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/search/EntityLiveSearcher.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/search/EntityLiveSearcher.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/search/EntityLiveSearcher.java 2008-09-24 01:47:16 UTC (rev 881) @@ -21,11 +21,11 @@ import org.ourproject.kune.platf.client.dto.LinkDTO; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; public interface EntityLiveSearcher { - void onSelection(Slot<LinkDTO> slot); + void onSelection(Listener<LinkDTO> listener); void show(); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/search/EntityLiveSearcherPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/search/EntityLiveSearcherPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/search/EntityLiveSearcherPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -22,12 +22,12 @@ import org.ourproject.kune.platf.client.View; import org.ourproject.kune.platf.client.dto.LinkDTO; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; public class EntityLiveSearcherPresenter implements EntityLiveSearcher { private EntityLiveSearcherView view; - private Slot<LinkDTO> slot; + private Listener<LinkDTO> listener; public EntityLiveSearcherPresenter() { } @@ -41,12 +41,12 @@ } public void onSelection(final LinkDTO link) { - slot.onEvent(link); + listener.onEvent(link); view.hide(); } - public void onSelection(final Slot<LinkDTO> slot) { - this.slot = slot; + public void onSelection(final Listener<LinkDTO> listener) { + this.listener = listener; } public void show() { 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -54,6 +54,7 @@ public class SiteSearcherPanel extends AbstractSearcherPanel implements SiteSearcherView { + private static final String SITE_SEARCHER_DIALOG = "k-site-searcher-dialog"; private final Window dialog; private final SiteSearcherPresenter presenter; private Store groupStore; @@ -159,6 +160,7 @@ centerPanel.setActiveItemID(panelId); dialog.setCloseAction(Window.HIDE); + dialog.ensureDebugId(SITE_SEARCHER_DIALOG); return dialog; } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -26,7 +26,7 @@ import org.ourproject.kune.platf.client.state.StateManager; import org.ourproject.kune.workspace.client.site.Site; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; public class SiteSearcherPresenter implements SiteSearcher { Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -53,6 +53,7 @@ public class SignInPanel implements SignInView { private class MessagePanel extends Panel { + private static final String SIGNIN_MESSAGE_PANEL = "k-signin-message-panel"; private final SimpleMessagePanel messagesPanel; public MessagePanel() { @@ -60,6 +61,7 @@ setBorder(false); setHeight(60); messagesPanel = new SimpleMessagePanel(); + messagesPanel.ensureDebugId(SIGNIN_MESSAGE_PANEL); messagesPanel.setMessage("", SiteErrorType.info, SiteErrorType.error); add(messagesPanel); } @@ -79,6 +81,9 @@ } } + private static final String USER_SIGN_IN_PANEL = "k-user-sign-in-panel"; + private static final String USER_REGISTER_PANEL = "k-user-register-panel"; + private BasicDialog dialog; private final SignInPresenter presenter; private SignInForm signInForm; @@ -270,11 +275,13 @@ confPanel(signInPanel); signInForm = new SignInForm(i18n); signInPanel.add(signInForm.getForm()); + signInPanel.ensureDebugId(USER_SIGN_IN_PANEL); signInPanel.add(createNoAccountRegister()); messagesSignInPanel = new MessagePanel(); signInPanel.add(messagesSignInPanel); final Panel registerPanel = new Panel(i18n.t("Register")); + registerPanel.ensureDebugId(USER_REGISTER_PANEL); confPanel(registerPanel); centerPanel.add(signInPanel); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -36,7 +36,7 @@ import org.ourproject.kune.workspace.client.site.rpc.UserServiceAsync; import com.allen_sauer.gwt.log.client.Log; -import com.calclab.emite.client.im.roster.RosterManager.SubscriptionMode; +import com.calclab.emiteuimodule.client.SubscriptionMode; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/site/Site.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/site/Site.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/Site.java 2008-09-24 01:47:16 UTC (rev 881) @@ -25,7 +25,7 @@ import org.ourproject.kune.workspace.client.site.msg.SiteMessage; import org.ourproject.kune.workspace.client.sitebar.siteprogress.SiteProgress; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; public class Site { public static final String USERHASH = "userHash"; Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitelogo/SiteLogoPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitelogo/SiteLogoPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitelogo/SiteLogoPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -4,14 +4,14 @@ import org.ourproject.kune.platf.client.dto.InitDataDTO; import org.ourproject.kune.platf.client.state.Session; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; public class SiteLogoPresenter implements SiteLogo { private SiteLogoView view; public SiteLogoPresenter(final Session session) { - session.onInitDataReceived(new Slot<InitDataDTO>() { + session.onInitDataReceived(new Listener<InitDataDTO>() { public void onEvent(final InitDataDTO initData) { view.setSiteLogoUrl(initData.getSiteLogoUrl()); } 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -4,7 +4,7 @@ import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.ClickListener; import com.google.gwt.user.client.ui.PushButton; Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteprogress/SiteProgressPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteprogress/SiteProgressPanel.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteprogress/SiteProgressPanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -2,7 +2,7 @@ import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.ui.RootPanel; Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPanel.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -14,6 +14,9 @@ public class SitePublicSpaceLinkPanel implements SitePublicSpaceLinkView { + private static final String SITE_GOTO_PUBLIC = "k-site-goto-public"; + private static final String SITE_CONTENT_NO_PUBLIC = "k-site-content-no-public"; + private final HorizontalPanel publicHP; private final IconLabel contentNoPublic; private final IconLabel gotoPublic; @@ -23,7 +26,9 @@ final I18nUITranslationService i18n, final Images img) { publicHP = new HorizontalPanel(); gotoPublic = new IconLabel(img.anybody(), i18n.t("Go to Public Space"), false); + gotoPublic.ensureDebugId(SITE_GOTO_PUBLIC); contentNoPublic = new IconLabel(img.anybody(), i18n.t("This content is not public")); + contentNoPublic.ensureDebugId(SITE_CONTENT_NO_PUBLIC); publicHP.add(gotoPublic); publicHP.add(contentNoPublic); final SiteBar siteBar = ws.getSiteBar(); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitepublic/SitePublicSpaceLinkPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -6,14 +6,14 @@ import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.platf.client.state.StateManager; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; public class SitePublicSpaceLinkPresenter implements SitePublicSpaceLink { private SitePublicSpaceLinkView view; public SitePublicSpaceLinkPresenter(final StateManager stateManager) { - stateManager.onStateChanged(new Slot<StateDTO>() { + stateManager.onStateChanged(new Listener<StateDTO>() { public void onEvent(final StateDTO state) { setState(state); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPanel.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -16,6 +16,8 @@ public class SiteSearchPanel implements SiteSearchView { private static final String SEARCH_TEXT_WIDTH_SMALL = "120"; private static final String SEARCH_TEXT_WIDTH_BIG = "180"; + private static final String SITE_SEARCH_BUTTON = "k-site-search-button"; + private static final String SITE_SEARCH_TEXTBOX = "k-site-search-textbox"; private final PushButton searchButton; private final TextBox searchTextBox; @@ -29,7 +31,9 @@ siteBar.addSpacer(); siteBar.addSpacer(); searchButton = new PushButton(img.kuneSearchIco().createImage(), img.kuneSearchIcoPush().createImage()); + searchButton.ensureDebugId(SITE_SEARCH_BUTTON); searchTextBox = new TextBox(); + searchTextBox.ensureDebugId(SITE_SEARCH_TEXTBOX); siteBar.add(searchButton); siteBar.addSpacer(); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -3,7 +3,7 @@ import org.ourproject.kune.platf.client.View; import org.ourproject.kune.workspace.client.search.SiteSearcher; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; public class SiteSearchPresenter implements SiteSearch { Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPanel.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -7,11 +7,15 @@ import com.google.gwt.user.client.ui.Hyperlink; public class SiteSignInLinkPanel implements SiteSignInLinkView { + + private static final String SITE_SIGN_IN = "k-site-sign-in"; + private final Hyperlink signInHyperlink; public SiteSignInLinkPanel(final SiteSignInLinkPresenter presenter, final I18nUITranslationService i18n, final WorkspaceSkeleton ws) { signInHyperlink = new Hyperlink(); + signInHyperlink.ensureDebugId(SITE_SIGN_IN); signInHyperlink.setText(i18n.t("Sign in to collaborate")); signInHyperlink.setTargetHistoryToken(SiteToken.signin.toString()); ws.getSiteBar().add(signInHyperlink); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignInLinkPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -4,20 +4,20 @@ import org.ourproject.kune.platf.client.dto.UserInfoDTO; import org.ourproject.kune.platf.client.state.Session; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener0; public class SiteSignInLinkPresenter implements SiteSignInLink { private SiteSignInLinkView view; public SiteSignInLinkPresenter(final Session session) { - session.onUserSignIn(new Slot<UserInfoDTO>() { + session.onUserSignIn(new Listener<UserInfoDTO>() { public void onEvent(final UserInfoDTO user) { view.setVisible(false); } }); - session.onUserSignOut(new Slot0() { + session.onUserSignOut(new Listener0() { public void onEvent() { view.setVisible(true); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPanel.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -10,6 +10,8 @@ public class SiteSignOutLinkPanel implements SiteSignOutLinkView { + private static final String SITE_SIGN_OUT = "k-site-sign-out"; + private final Label signOutLabel; public SiteSignOutLinkPanel(final SiteSignOutLinkPresenter presenter, final I18nUITranslationService i18n, @@ -17,6 +19,7 @@ signOutLabel = new Label(); signOutLabel.setText(i18n.t("Sign out")); signOutLabel.addStyleName("k-sitebar-labellink"); + signOutLabel.ensureDebugId(SITE_SIGN_OUT); ws.getSiteBar().add(signOutLabel); signOutLabel.addClickListener(new ClickListener() { public void onClick(final Widget arg0) { 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesign/SiteSignOutLinkPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -11,9 +11,9 @@ import org.ourproject.kune.workspace.client.site.Site; import org.ourproject.kune.workspace.client.site.rpc.UserServiceAsync; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener0; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.Cookies; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -28,17 +28,17 @@ final Provider<KuneErrorHandler> kuneErrorHandlerProvider) { this.session = session; this.userServiceProvider = userServiceProvider; - session.onUserSignIn(new Slot<UserInfoDTO>() { + session.onUserSignIn(new Listener<UserInfoDTO>() { public void onEvent(final UserInfoDTO userInfoDTO) { view.setVisible(true); } }); - session.onUserSignOut(new Slot0() { + session.onUserSignOut(new Listener0() { public void onEvent() { view.setVisible(false); } }); - kuneErrorHandlerProvider.get().onSessionExpired(new Slot0() { + kuneErrorHandlerProvider.get().onSessionExpired(new Listener0() { public void onEvent() { clientUIsignOut(); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -17,6 +17,10 @@ public class SiteUserMenuPanel implements SiteUserMenuView { + private static final String LOGGED_USER_MENU = "k-logged-user-menu"; + private static final String USER_PREFERENCES_MENU_ITEM = "k-user-pref-menu-item"; + private static final String USER_HOME_PAGE_MENU_ITEM = "k-user-home-page-menu-item"; + private static final String USER_PARTICIPATION_MENU_ITEM = "k-user-participation-menu-item"; private final PushButton loggedUserMenu; private final Widget separator; private final Menu userMenu; @@ -25,6 +29,7 @@ public SiteUserMenuPanel(final SiteUserMenuPresenter presenter, final WorkspaceSkeleton ws, final I18nUITranslationService i18n) { loggedUserMenu = new PushButton(""); + loggedUserMenu.ensureDebugId(LOGGED_USER_MENU); loggedUserMenu.setStyleName("k-sitebar-labellink"); ws.getSiteBar().add(loggedUserMenu); separator = ws.getSiteBar().addSeparator(); @@ -36,6 +41,7 @@ }); final Item userHomePage = new Item(i18n.t("Your homepage")); userHomePage.setIcon("images/group-home.gif"); + userHomePage.ensureDebugId(USER_HOME_PAGE_MENU_ITEM); userHomePage.addListener(new BaseItemListenerAdapter() { @Override public void onClick(final BaseItem item, final EventObject e) { @@ -45,6 +51,7 @@ }); userMenu.addItem(userHomePage); final Item userPreferences = new Item(i18n.t("Your preferences")); + userPreferences.ensureDebugId(USER_PREFERENCES_MENU_ITEM); userPreferences.setIcon("images/kune-preferences.gif"); userPreferences.addListener(new BaseItemListenerAdapter() { @Override @@ -55,6 +62,7 @@ }); userMenu.addItem(userPreferences); userParticipation = new Menu(); + userParticipation.ensureDebugId(USER_PARTICIPATION_MENU_ITEM); final MenuItem userParticipationItem = new MenuItem(i18n.t("Your groups"), userParticipation); userParticipationItem.setIcon(""); userMenu.addItem(userParticipationItem); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -8,8 +8,8 @@ import org.ourproject.kune.platf.client.ui.MenuItem; import org.ourproject.kune.platf.client.ui.MenuItemCollection; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener0; public class SiteUserMenuPresenter implements SiteUserMenu { @@ -22,13 +22,13 @@ this.session = session; this.stateManager = stateManager; participateInGroups = new MenuItemCollection<GroupDTO>(); - session.onUserSignIn(new Slot<UserInfoDTO>() { + session.onUserSignIn(new Listener<UserInfoDTO>() { public void onEvent(final UserInfoDTO userInfoDTO) { onUserSignIn(userInfoDTO); } }); - session.onUserSignOut(new Slot0() { + session.onUserSignOut(new Listener0() { public void onEvent() { view.setVisible(false); view.setLoggedUserName(""); @@ -54,7 +54,7 @@ private void addPartipation(final GroupDTO group) { participateInGroups.add(new MenuItem<GroupDTO>("images/group-def-icon.gif", group.getShortName(), - new Slot<GroupDTO>() { + new Listener<GroupDTO>() { public void onEvent(final GroupDTO param) { stateManager.gotoToken(group.getShortName()); } 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java 2008-09-24 01:47:16 UTC (rev 881) @@ -10,6 +10,9 @@ import com.gwtext.client.widgets.layout.FitLayout; public class EntitySummary { + private static final String SITE_TRAYBAR = "k-site-traybar"; + private static final String ENTITY_SUMMARY = "k-entity-summary"; + private static final String ENTITY_TOOLS = "k-entity-tools"; private final Panel entityTools; private final Panel entitySummary; private final DefaultBorderLayout mainPanel; @@ -19,6 +22,7 @@ public EntitySummary() { mainPanel = new DefaultBorderLayout(); entityTools = new Panel(); + entityTools.ensureDebugId(ENTITY_TOOLS); entityTools.setLayout(new FitLayout()); entityTools.setAutoHeight(true); vpTools = new VerticalPanel(); @@ -28,8 +32,10 @@ entitySummary.setBorder(false); entityTools.setAutoScroll(false); entitySummary.setAutoScroll(true); - entitySummary.setCls("k-entity-summary"); - trayBar = mainPanel.createBottomBar(entitySummary, "k-site-traybar"); + entitySummary.setCls(ENTITY_SUMMARY); + entitySummary.ensureDebugId(ENTITY_SUMMARY); + trayBar = mainPanel.createBottomBar(entitySummary, SITE_TRAYBAR); + trayBar.ensureDebugId(SITE_TRAYBAR); mainPanel.add(entityTools, DefaultBorderLayout.Position.NORTH); mainPanel.add(entitySummary, DefaultBorderLayout.Position.CENTER); 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2008-09-24 01:47:16 UTC (rev 881) @@ -10,6 +10,11 @@ import com.gwtext.client.widgets.layout.AnchorLayoutData; public class EntityWorkspace extends DefaultBorderLayout { + private static final String ENTITY_TITLE = "k-entity-title"; + private static final String ENTITY_SUBTITLE = "k-entity-subtitle"; + private static final String ENTITY_BOTTOM = "k-entity-bottom"; + private static final String ENTITY_CONTENT = "k-entity-content"; + private static final String ENTITY_CONTEXT = "k-entity-context"; private final Panel content; private final Panel context; private final TitleBar title; @@ -33,12 +38,15 @@ title = new TitleBar(); title.setHeight("" + (DEF_TOOLBAR_HEIGHT - 2)); - title.setStylePrimaryName("k-entity-title"); + title.setStylePrimaryName(ENTITY_TITLE); + title.ensureDebugId(ENTITY_TITLE); subTitle = new TitleBar(); - subTitle.setStylePrimaryName("k-entity-subtitle"); + subTitle.setStylePrimaryName(ENTITY_SUBTITLE); + subTitle.ensureDebugId(ENTITY_SUBTITLE); bottom = new TitleBar(); bottom.setHeight("" + (DEF_TOOLBAR_HEIGHT - 2)); - bottom.setStylePrimaryName("k-entity-bottom"); + bottom.setStylePrimaryName(ENTITY_BOTTOM); + bottom.ensureDebugId(ENTITY_BOTTOM); roundedTitle = new RoundedPanel(title, RoundedPanel.TOPLEFT, 2); roundedBottom = new RoundedPanel(bottom, RoundedPanel.BOTTOMLEFT, 2); @@ -53,6 +61,8 @@ contextWrap.setBorder(true); content = new Panel(); context = new Panel(); + content.ensureDebugId(ENTITY_CONTENT); + context.ensureDebugId(ENTITY_CONTEXT); content.setBorder(false); context.setBorder(false); context.setCollapsible(true); 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java 2008-09-24 01:47:16 UTC (rev 881) @@ -3,7 +3,7 @@ import org.ourproject.kune.platf.client.ui.DefaultBorderLayout; import org.ourproject.kune.workspace.client.themes.WsTheme; -import com.calclab.suco.client.signal.Slot0; +import com.calclab.suco.client.listener.Listener0; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.DeferredCommand; import com.google.gwt.user.client.ui.RootPanel; @@ -41,7 +41,7 @@ entity.addToEntityMainHeader(widget); } - public void askConfirmation(final String title, final String message, final Slot0 onConfirmed, final Slot0 onCancel) { + public void askConfirmation(final String title, final String message, final Listener0 onConfirmed, final Listener0 onCancel) { MessageBox.confirm(title, message, new MessageBox.ConfirmCallback() { public void execute(final String btnID) { if (btnID.equals("yes")) { @@ -81,7 +81,7 @@ extRootBody.mask(message, "x-mask-loading"); } - public void promptMessage(final String title, final String message, final Slot0 onEnter) { + public void promptMessage(final String title, final String message, final Listener0 onEnter) { MessageBox.prompt(title, message, new MessageBox.PromptCallback() { public void execute(final String btnID, final String text) { // FIXME: use btnID 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -14,7 +14,7 @@ import org.ourproject.kune.workspace.client.themes.WsTheme; import com.calclab.emiteuimodule.client.users.UserGridPanel; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.DeferredCommand; import com.gwtext.client.core.EventObject; @@ -47,7 +47,7 @@ + "<br/>" + 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); - gridMenuPanel.onDoubleClick(new Slot<String>() { + gridMenuPanel.onDoubleClick(new Listener<String>() { public void onEvent(final String groupShortName) { presenter.onDoubleClick(groupShortName); } @@ -76,7 +76,7 @@ public void onClick(final Button button, final EventObject e) { DeferredCommand.addCommand(new Command() { public void execute() { - gridButton.getSlot().onEvent(""); + gridButton.getListener().onEvent(""); } }); } 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -24,9 +24,9 @@ import org.ourproject.kune.workspace.client.themes.WsTheme; import org.ourproject.kune.workspace.client.themes.WsThemePresenter; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot2; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener2; public class GroupMembersSummaryPresenter extends SocialNetworkPresenter implements GroupMembersSummary { @@ -49,14 +49,14 @@ this.stateManager = stateManager; this.session = session; this.snServiceProvider = snServiceProvider; - final Slot<StateDTO> setStateSlot = new Slot<StateDTO>() { + final Listener<StateDTO> setStateListener = new Listener<StateDTO>() { public void onEvent(StateDTO state) { setState(state); } }; - stateManager.onStateChanged(setStateSlot); - stateManager.onSocialNetworkChanged(setStateSlot); - wsThemePresenter.onThemeChanged(new Slot2<WsTheme, WsTheme>() { + 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); } @@ -72,9 +72,9 @@ .getImageHtml(ImageDescriptor.alert), true); // i18n.t("Add member") addMember = new GridButton("images/add-green.gif", "", i18n - .t("Add a group or a person as member of this group"), new Slot<String>() { + .t("Add a group or a person as member of this group"), new Listener<String>() { public void onEvent(final String parameter) { - liveSearcherProvider.get().onSelection(new Slot<LinkDTO>() { + liveSearcherProvider.get().onSelection(new Listener<LinkDTO>() { public void onEvent(final LinkDTO link) { view.confirmAddCollab(link.getShortName(), link.getLongName()); } 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -34,9 +34,10 @@ import org.ourproject.kune.workspace.client.themes.WsTheme; import org.ourproject.kune.workspace.client.themes.WsThemePresenter; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot2; +import com.allen_sauer.gwt.log.client.Log; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener2; public class ParticipationSummaryPresenter extends SocialNetworkPresenter implements ParticipationSummary { @@ -56,14 +57,14 @@ collabOnlyCategory = new GridGroup(i18n.t("collaborator in:"), " ", i18n.t("Collaborate in these groups"), false); super.addGroupOperation(gotoGroupMenuItem, false); - final Slot<StateDTO> setStateSlot = new Slot<StateDTO>() { + final Listener<StateDTO> setStateListener = new Listener<StateDTO>() { public void onEvent(StateDTO state) { setState(state); } }; - stateManager.onStateChanged(setStateSlot); - stateManager.onSocialNetworkChanged(setStateSlot); - wsThemePresenter.onThemeChanged(new Slot2<WsTheme, WsTheme>() { + 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); } @@ -85,6 +86,8 @@ view.clear(); final List<GroupDTO> groupsIsAdmin = participation.getGroupsIsAdmin(); final List<GroupDTO> groupsIsCollab = participation.getGroupsIsCollab(); + Log.info("Is admin in " + groupsIsAdmin.size() + " groups."); + Log.info("Is collab in " + groupsIsCollab.size() + " groups."); final int numAdmins = groupsIsAdmin.size(); final int numCollaborators = groupsIsCollab.size(); if (numAdmins == 0) { 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -21,8 +21,8 @@ import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; import org.ourproject.kune.workspace.client.site.Site; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Listener; public class SocialNetworkPresenter { @@ -101,7 +101,7 @@ private void createButtons() { requestJoin = new GridButton("images/add-green.gif", i18n.t("Participate"), i18n - .t("Request to participate in this group"), new Slot<String>() { + .t("Request to participate in this group"), new Listener<String>() { public void onEvent(final String parameter) { Site.showProgressProcessing(); snServiceProvider.get().requestJoinGroup(session.getUserHash(), @@ -127,7 +127,7 @@ }); unJoinButton = new GridButton("images/del.gif", i18n.t("Unjoin"), i18n - .t("Don't participate more in this group"), new Slot<String>() { + .t("Don't participate more in this group"), new Listener<String>() { public void onEvent(final String parameter) { removeMemberAction(); } @@ -162,25 +162,25 @@ private void createMenuActions() { gotoGroupMenuItem = new MenuItem<GroupDTO>("images/group-home.gif", i18n.t("Visit this group homepage"), - new Slot<GroupDTO>() { + new Listener<GroupDTO>() { public void onEvent(final GroupDTO groupDTO) { stateManager.gotoToken(groupDTO.getShortName()); } }); gotoMemberMenuItem = new MenuItem<GroupDTO>("images/group-home.gif", i18n.t("Visit this member homepage"), - new Slot<GroupDTO>() { + new Listener<GroupDTO>() { public void onEvent(final GroupDTO groupDTO) { stateManager.gotoToken(groupDTO.getShortName()); } }); unJoinMenuItem = new MenuItem<GroupDTO>("images/del.gif", i18n - .t("Don't participate more as a member in this group"), new Slot<GroupDTO>() { + .t("Don't participate more as a member in this group"), new Listener<GroupDTO>() { public void onEvent(final GroupDTO groupDTO) { removeMemberAction(groupDTO); } }); changeToCollabMenuItem = new MenuItem<GroupDTO>("images/arrow-down-green.gif", - i18n.t("Change to collaborator"), new Slot<GroupDTO>() { + i18n.t("Change to collaborator"), new Listener<GroupDTO>() { public void onEvent(final GroupDTO group) { Site.showProgressProcessing(); snServiceProvider.get().setAdminAsCollab(session.getUserHash(), @@ -195,7 +195,7 @@ } }); removeMemberMenuItem = new MenuItem<GroupDTO>("images/del.gif", i18n.t("Remove this member"), - new Slot<GroupDTO>() { + new Listener<GroupDTO>() { public void onEvent(final GroupDTO group) { Site.showProgressProcessing(); snServiceProvider.get().deleteMember(session.getUserHash(), @@ -214,7 +214,7 @@ } }); changeToAdminMenuItem = new MenuItem<GroupDTO>("images/arrow-up-green.gif", i18n.t("Change to admin"), - new Slot<GroupDTO>() { + new Listener<GroupDTO>() { public void onEvent(final GroupDTO group) { Site.showProgressProcessing(); snServiceProvider.get().setCollabAsAdmin(session.getUserHash(), @@ -229,7 +229,7 @@ } }); acceptJoinGroupMenuItem = new MenuItem<GroupDTO>("images/accept.gif", i18n.t("Accept this member"), - new Slot<GroupDTO>() { + new Listener<GroupDTO>() { public void onEvent(final GroupDTO group) { Site.showProgressProcessing(); snServiceProvider.get().AcceptJoinGroup(session.getUserHash(), @@ -244,7 +244,7 @@ } }); denyJoinGroupMenuItem = new MenuItem<GroupDTO>("images/cancel.gif", i18n.t("Don't accept this member"), - new Slot<GroupDTO>() { + new Listener<GroupDTO>() { public void onEvent(final GroupDTO group) { Site.showProgressProcessing(); snServiceProvider.get().denyJoinGroup(session.getUserHash(), Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/summary/GroupSummaryPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/summary/GroupSummaryPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/summary/GroupSummaryPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -25,20 +25,20 @@ import org.ourproject.kune.workspace.client.themes.WsTheme; import org.ourproject.kune.workspace.client.themes.WsThemePresenter; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot2; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener2; public class GroupSummaryPresenter implements GroupSummary { private GroupSummaryView view; public GroupSummaryPresenter(final StateManager stateManager, final WsThemePresenter wsThemePresenter) { - stateManager.onStateChanged(new Slot<StateDTO>() { + stateManager.onStateChanged(new Listener<StateDTO>() { public void onEvent(final StateDTO state) { setState(state); } }); - wsThemePresenter.onThemeChanged(new Slot2<WsTheme, WsTheme>() { + wsThemePresenter.onThemeChanged(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/tags/TagsSummaryPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -32,9 +32,9 @@ import org.ourproject.kune.workspace.client.themes.WsTheme; import org.ourproject.kune.workspace.client.themes.WsThemePresenter; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot2; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener2; public class TagsSummaryPresenter implements TagsSummary { @@ -46,12 +46,12 @@ final StateManager stateManager, final WsThemePresenter wsThemePresenter) { this.session = session; this.searcherProvider = searcherProvider; - stateManager.onStateChanged(new Slot<StateDTO>() { + stateManager.onStateChanged(new Listener<StateDTO>() { public void onEvent(final StateDTO state) { setState(state); } }); - wsThemePresenter.onThemeChanged(new Slot2<WsTheme, WsTheme>() { + wsThemePresenter.onThemeChanged(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/themes/WsThemePanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePanel.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePanel.java 2008-09-24 01:47:16 UTC (rev 881) @@ -3,7 +3,7 @@ import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService; import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; -import com.calclab.suco.client.signal.Slot2; +import com.calclab.suco.client.listener.Listener2; import com.gwtext.client.core.EventObject; import com.gwtext.client.widgets.ToolbarButton; import com.gwtext.client.widgets.menu.BaseItem; @@ -28,7 +28,7 @@ super.setIcon("images/colors.gif"); super.setTooltip(i18n.t("Select Workspace theme for this group")); ws.getSiteTraybar().addButton(this); - presenter.onThemeChanged(new Slot2<WsTheme, WsTheme>() { + presenter.onThemeChanged(new Listener2<WsTheme, WsTheme>() { public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) { ws.setTheme(oldTheme, newTheme); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -8,16 +8,16 @@ import org.ourproject.kune.platf.client.state.StateManager; import org.ourproject.kune.workspace.client.site.Site; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Signal2; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot2; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Event2; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener2; public class WsThemePresenter { private WsThemeView view; private WsTheme previousTheme; - private final Signal2<WsTheme, WsTheme> onThemeChanged; + private final Event2<WsTheme, WsTheme> onThemeChanged; private final Provider<GroupServiceAsync> groupServiceProvider; private final Session session; @@ -25,14 +25,14 @@ final StateManager stateManager) { this.session = session; this.groupServiceProvider = groupServiceProvider; - this.onThemeChanged = new Signal2<WsTheme, WsTheme>("onThemeChanged"); - session.onInitDataReceived(new Slot<InitDataDTO>() { + this.onThemeChanged = new Event2<WsTheme, WsTheme>("onThemeChanged"); + session.onInitDataReceived(new Listener<InitDataDTO>() { public void onEvent(final InitDataDTO initData) { view.setThemes(initData.getWsThemes()); setTheme(new WsTheme(initData.getWsThemes()[0])); } }); - stateManager.onStateChanged(new Slot<StateDTO>() { + stateManager.onStateChanged(new Listener<StateDTO>() { public void onEvent(final StateDTO state) { setState(state); } @@ -43,8 +43,8 @@ this.view = view; } - public void onThemeChanged(final Slot2<WsTheme, WsTheme> slot) { - onThemeChanged.add(slot); + public void onThemeChanged(final Listener2<WsTheme, WsTheme> listener) { + onThemeChanged.add(listener); } protected void onChangeGroupWsTheme(final WsTheme newTheme) { Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -25,7 +25,7 @@ import org.ourproject.kune.platf.client.services.I18nTranslationService; import org.ourproject.kune.platf.client.state.StateManager; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; public class EntitySubTitlePresenter implements EntitySubTitle { @@ -34,7 +34,7 @@ public EntitySubTitlePresenter(final I18nTranslationService i18n, final StateManager stateManager) { this.i18n = i18n; - stateManager.onStateChanged(new Slot<StateDTO>() { + stateManager.onStateChanged(new Listener<StateDTO>() { public void onEvent(final StateDTO state) { setState(state); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePresenter.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePresenter.java 2008-09-24 01:47:16 UTC (rev 881) @@ -33,8 +33,8 @@ import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator; import org.ourproject.kune.workspace.client.site.Site; -import com.calclab.suco.client.provider.Provider; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.listener.Listener; import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -56,7 +56,7 @@ this.session = session; this.contentServiceProvider = contentServiceProvider; this.contextNavigatorProvider = contextNavigatorProvider; - stateManager.onStateChanged(new Slot<StateDTO>() { + stateManager.onStateChanged(new Listener<StateDTO>() { public void onEvent(final StateDTO state) { setState(state); } Modified: trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java 2008-09-24 01:47:16 UTC (rev 881) @@ -9,7 +9,7 @@ import org.ourproject.kune.platf.client.dto.AccessRolDTO; import org.ourproject.kune.platf.client.dto.StateToken; -import com.calclab.suco.client.signal.Slot; +import com.calclab.suco.client.listener.Listener; public class ActionRegistryTest { @@ -19,22 +19,29 @@ private ActionDescriptor<StateToken> editorAction; private ActionDescriptor<StateToken> viewerAction; + @Test + public void actionsEmptyButNeverNull() { + checkActionLists(0, 0, new AccessRightsDTO(true, true, true)); + checkActionLists(0, 0, new AccessRightsDTO(false, true, true)); + checkActionLists(0, 0, new AccessRightsDTO(false, false, true)); + } + @Before public void before() { registry = new ActionRegistry<StateToken>(); adminAction = new ActionDescriptor<StateToken>(AccessRolDTO.Administrator, ActionPosition.topbarAndItemMenu, - new Slot<StateToken>() { + new Listener<StateToken>() { public void onEvent(final StateToken parameter) { } }); editorAction = new ActionDescriptor<StateToken>(AccessRolDTO.Editor, ActionPosition.topbarAndItemMenu, - new Slot<StateToken>() { + new Listener<StateToken>() { public void onEvent(final StateToken parameter) { } }); viewerAction = new ActionDescriptor<StateToken>(AccessRolDTO.Viewer, ActionPosition.topbarAndItemMenu, - new Slot<StateToken>() { + new Listener<StateToken>() { public void onEvent(final StateToken parameter) { } }); Modified: trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java 2008-09-24 01:47:16 UTC (rev 881) @@ -8,8 +8,8 @@ import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.workspace.client.site.SiteToken; -import com.calclab.suco.client.signal.Slot; -import com.calclab.suco.client.signal.Slot2; +import com.calclab.suco.client.listener.Listener; +import com.calclab.suco.client.listener.Listener2; import com.google.gwt.user.client.rpc.AsyncCallback; public class StateManagerTest { @@ -22,24 +22,24 @@ @SuppressWarnings("unchecked") @Test - public void changeStateWithDifferentGroupsMustFireSlot() { - final Slot2<String, String> groupSlot = Mockito.mock(Slot2.class); - stateManager.onGroupChanged(groupSlot); + public void changeStateWithDifferentGroupsMustFireListener() { + final Listener2<String, String> groupListener = Mockito.mock(Listener2.class); + stateManager.onGroupChanged(groupListener); stateManager.onHistoryChanged("group1.tool1"); stateManager.onHistoryChanged("group2.tool1"); // TODO, think how to test this - // Mockito.verify(groupSlot).onEvent("group1", "group2"); + // Mockito.verify(groupListener).onEvent("group1", "group2"); } @SuppressWarnings("unchecked") @Test - public void changeStateWithDifferentToolsMustFireSlot() { - final Slot2<String, String> toolSlot = Mockito.mock(Slot2.class); - stateManager.onToolChanged(toolSlot); + public void changeStateWithDifferentToolsMustFireListener() { + final Listener2<String, String> toolListener = Mockito.mock(Listener2.class); + stateManager.onToolChanged(toolListener); stateManager.gotoToken("group1.tool1"); stateManager.gotoToken("group1.tool2"); // TODO, think how to test this - // Mockito.verify(toolSlot).onEvent("tool1", "tool2"); + // Mockito.verify(toolListener).onEvent("tool1", "tool2"); } @SuppressWarnings("unchecked") @@ -73,12 +73,12 @@ @SuppressWarnings("unchecked") @Test - public void siteTokenFirstLoadDefContentAndFireSlot() { - final Slot slot = Mockito.mock(Slot.class); + public void siteTokenFirstLoadDefContentAndFireListener() { + final Listener listener = Mockito.mock(Listener.class); final String token = SiteToken.signin.toString(); - stateManager.addSiteToken(token, slot); + stateManager.addSiteToken(token, listener); stateManager.onHistoryChanged(token); - Mockito.verify(slot, Mockito.times(1)).onEvent(Mockito.anyObject()); + Mockito.verify(listener, Mockito.times(1)).onEvent(Mockito.anyObject()); Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(), (StateToken) Mockito.anyObject(), (AsyncCallback<StateDTO>) Mockito.anyObject()); } 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/test/java/org/ourproject/kune/platf/integration/site/UserServiceTest.java 2008-09-24 01:47:16 UTC (rev 881) @@ -28,7 +28,7 @@ import org.ourproject.kune.platf.server.users.UserInfoService; import org.ourproject.kune.workspace.client.site.rpc.UserService; -import com.calclab.emite.client.im.roster.RosterManager.SubscriptionMode; +import com.calclab.emiteuimodule.client.SubscriptionMode; import com.google.inject.Inject; public class UserServiceTest extends IntegrationTest { Added: trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/FileManagerTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/FileManagerTest.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/FileManagerTest.java 2008-09-24 01:47:16 UTC (rev 881) @@ -0,0 +1,62 @@ +package org.ourproject.kune.platf.server.manager.impl; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.io.File; +import java.io.IOException; + +import org.junit.Before; +import org.junit.Test; +import org.ourproject.kune.platf.server.TestHelper; +import org.ourproject.kune.platf.server.manager.FileManager; + +import com.google.inject.Inject; + +public class FileManagerTest { + + @Inject + FileManager fileManager; + private String tempDir; + + @Before + public void inject() throws IOException { + TestHelper.inject(this); + tempDir = File.createTempFile("temp", "txt").getParent(); + } + + @Test + public void test3FileCreationWithSeq() throws IOException { + final File tempFile = File.createTempFile("some file name", ".txt"); + final File newFile1 = fileManager.createFileWithSequentialName(tempDir, tempFile.getName()); + final File newFile2 = fileManager.createFileWithSequentialName(tempDir, tempFile.getName()); + final File newFile3 = fileManager.createFileWithSequentialName(tempDir, tempFile.getName()); + assertEquals(tempDir + File.separator + seq(seq(seq(tempFile.getName()))), newFile3.getAbsolutePath()); + newFile1.delete(); + newFile2.delete(); + newFile3.delete(); + } + + @Test + public void testDirCreation() throws IOException { + final String newTestDir = tempDir + File.separator + "test1" + File.separator + "test2" + File.separator; + assertTrue(fileManager.mkdir(newTestDir)); + final File dir = new File(newTestDir); + assertTrue(dir.exists()); + fileManager.rmdir(newTestDir); + assertFalse(dir.exists()); + } + + @Test + public void testFileCreationWithSeq() throws IOException { + final File tempFile = File.createTempFile("some file name", ".txt"); + final File newFile = fileManager.createFileWithSequentialName(tempDir, tempFile.getName()); + assertEquals(tempDir + File.separator + seq(tempFile.getName()), newFile.getAbsolutePath()); + newFile.delete(); + } + + private String seq(final String file) { + return FileUtils.getNextSequentialFileName(file, true); + } +} Added: trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/FileUtilsTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/FileUtilsTest.java 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/FileUtilsTest.java 2008-09-24 01:47:16 UTC (rev 881) @@ -0,0 +1,53 @@ +package org.ourproject.kune.platf.server.manager.impl; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class FileUtilsTest { + + private static final String SIMPLE_FILE_NAME = "simple file name"; + private static final String EXT = ".someext"; + + @Test + public void dotFileRetSeq1() { + assertEquals("." + SIMPLE_FILE_NAME + " 1", FileUtils.getNextSequentialFileName("." + SIMPLE_FILE_NAME, true)); + } + + @Test + public void dotFileRetSeq1IgnoreExt() { + assertEquals("." + SIMPLE_FILE_NAME + " 1", FileUtils.getNextSequentialFileName("." + SIMPLE_FILE_NAME, false)); + } + + @Test + public void testIfSeq101return102() { + assertEquals(SIMPLE_FILE_NAME + " 102", FileUtils.getNextSequentialFileName(SIMPLE_FILE_NAME + " 101")); + } + + @Test + public void testIfSeq1return2() { + assertEquals(SIMPLE_FILE_NAME + " 2", FileUtils.getNextSequentialFileName(SIMPLE_FILE_NAME + " 1")); + } + + @Test + public void testIfSeq1WithExtreturn2WithExt() { + assertEquals(SIMPLE_FILE_NAME + " 2" + EXT, FileUtils.getNextSequentialFileName(SIMPLE_FILE_NAME + " 1" + EXT, + true)); + } + + @Test + public void testNoSeqReturn1() { + assertEquals(SIMPLE_FILE_NAME + " 1", FileUtils.getNextSequentialFileName(SIMPLE_FILE_NAME)); + } + + @Test + public void testNoSeqWithExtNotTakedIntoAccountReturn1() { + assertEquals(SIMPLE_FILE_NAME + EXT + " 1", FileUtils.getNextSequentialFileName(SIMPLE_FILE_NAME + EXT, false)); + } + + @Test + public void testNoSeqWithExtReturn1WithExt() { + assertEquals(SIMPLE_FILE_NAME + " 1" + EXT, FileUtils.getNextSequentialFileName(SIMPLE_FILE_NAME + EXT, true)); + } + +} 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 2008-09-23 12:02:42 UTC (rev 880) +++ trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java 2008-09-24 01:47:16 UTC (rev 881) @@ -9,7 +9,7 @@ import org.ourproject.kune.workspace.client.search.SiteSearcher; import org.ourproject.kune.workspace.client.themes.WsThemePresenter; -import com.calclab.suco.client.provider.Provider; +import com.calclab.suco.client.ioc.Provider; public class TagsSummaryPresenterTest {
participants (1)
-
vjrj