kune-commits
Threads by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
July 2008
- 1 participants
- 43 discussions
Author: vjrj
Date: 2008-07-31 15:28:16 +0200 (Thu, 31 Jul 2008)
New Revision: 822
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/QuickTipsHelper.java
trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslator.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenu.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenuPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenuPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenuView.java
Removed:
trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java
trunk/src/main/java/org/ourproject/kune/platf/client/app/DesktopView.java
trunk/src/main/java/org/ourproject/kune/platf/client/app/ui/DesktopPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/QuickTipHelper.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/DoTranslationAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/GetLexiconAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/GetTranslationAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorComponent.java
Modified:
trunk/pom.xml
trunk/script/css-compact-and-tidy.css
trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.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/rpc/GroupService.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/I18nService.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/Kune.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/DefaultBorderLayout.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java
trunk/src/main/java/org/ourproject/kune/rack/RackServletFilter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/ShowTranslatorAction.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/sitebar/bar/SiteBarPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitepublic/SitePublicSpaceLinkPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/EntityWorkspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/SiteBar.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/TitleBar.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/Toolbar.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java
trunk/src/main/resources/dozerBeanMapping.xml
trunk/src/test/java/org/ourproject/kune/platf/server/mapper/MapperTest.java
Log:
Workspace refactorization
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/pom.xml 2008-07-31 13:28:16 UTC (rev 822)
@@ -271,12 +271,12 @@
<dependency>
<groupId>com.calclab.emite</groupId>
<artifactId>emite</artifactId>
- <version>0.3.0</version>
+ <version>0.3.2</version>
</dependency>
<dependency>
<groupId>com.calclab</groupId>
<artifactId>suco</artifactId>
- <version>0.3.0</version>
+ <version>0.3.2</version>
</dependency>
</dependencies>
<!-- http://gwt-maven.googlecode.com/svn/docs/maven-googlewebtoolkit2-plugin/ind… -->
Modified: trunk/script/css-compact-and-tidy.css
===================================================================
--- trunk/script/css-compact-and-tidy.css 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/script/css-compact-and-tidy.css 2008-07-31 13:28:16 UTC (rev 822)
@@ -27,7 +27,7 @@
--silent=true \
$CSSTMPFILE
else
- echo Waring: Dependency csstidy, in debian: apt-get install csstidy
+ echo Warning: Dependency csstidy, in debian: apt-get install csstidy
cp $CATTMPFILE $CSSTMPFILE
fi
cat $CSSTMPFILE | sed 's/\.\.\/images/\.\.\/js\/ext\/resources\/images/g' > $1
Modified: trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -19,20 +19,12 @@
*/
package org.ourproject.kune.app.client;
-import java.util.HashMap;
+import org.ourproject.kune.platf.client.services.Kune;
-import org.ourproject.kune.platf.client.app.ApplicationBuilder;
-import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
-import org.ourproject.kune.platf.client.rpc.I18nService;
-import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
-import org.ourproject.kune.platf.client.ui.Location;
-import org.ourproject.kune.platf.client.ui.WindowUtils;
-
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DeferredCommand;
-import com.google.gwt.user.client.rpc.AsyncCallback;
public class KuneEntryPoint implements EntryPoint {
@@ -40,38 +32,20 @@
}
public void onModuleLoad() {
- Log.setUncaughtExceptionHandler();
+ Log.setUncaughtExceptionHandler();
- // At the moment, in runtime:
- Log.setCurrentLogLevel(Log.LOG_LEVEL_DEBUG);
+ // At the moment, in runtime:
+ Log.setCurrentLogLevel(Log.LOG_LEVEL_DEBUG);
- DeferredCommand.addCommand(new Command() {
- public void execute() {
- onModuleLoadCont();
- }
- });
+ DeferredCommand.addCommand(new Command() {
+ public void execute() {
+ onModuleLoadCont();
+ }
+ });
}
public void onModuleLoadCont() {
- Location loc = WindowUtils.getLocation();
- String locale = loc.getParameter("locale");
- final I18nServiceAsync server = I18nService.App.getInstance();
- server.getInitialLanguage(locale, new AsyncCallback<I18nLanguageDTO>() {
- public void onFailure(final Throwable caught) {
- Log.debug("Workspace adaptation to your language failed");
- }
-
- public void onSuccess(final I18nLanguageDTO initialLang) {
- server.getLexicon(initialLang.getCode(), new AsyncCallback<HashMap<String, String>>() {
- public void onFailure(final Throwable caught) {
- Log.debug("Workspace adaptation to your language failed");
- }
-
- public void onSuccess(final HashMap<String, String> lexicon) {
- new ApplicationBuilder().build(initialLang, lexicon);
- }
- });
- }
- });
+ Kune.create();
+ // RootPanel.getBodyElement().setClassName("kunebody");
}
}
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-07-31 13:28:16 UTC (rev 822)
@@ -1973,14 +1973,6 @@
width: 10px;
}
-.kune-SiteBarPanel-LabelLink {
- white-space: nowrap;
- color: #B3B3B3;
- margin-left: 3px;
- cursor: pointer;
- text-decoration: underline;
-}
-
.kune-SiteMessagePanel {
color: #250;
position: absolute;
@@ -2894,6 +2886,13 @@
color: #B3B3B3;
}
+.k-sitebar-labellink {
+ white-space: nowrap;
+ color: #B3B3B3;
+ cursor: pointer;
+ text-decoration: underline;
+}
+
.k-sitebar {
margin-right: 10px;
height: 16px;
@@ -2920,7 +2919,6 @@
.k-sitebar-LabelLink {
white-space: nowrap;
color: #B3B3B3;
- margin-left: 3px;
cursor: pointer;
text-decoration: underline;
}
@@ -3253,6 +3251,7 @@
.k-toolbar-sep {
padding-top: 4px;
+ padding-left: 5px;
}
/* Custom gwt-ext styles */
.ytb-sep {
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-07-31 13:28:16 UTC (rev 822)
@@ -20,6 +20,13 @@
color: #B3B3B3;
}
+.k-sitebar-labellink {
+ white-space: nowrap;
+ color: #B3B3B3;
+ cursor: pointer;
+ text-decoration: underline;
+}
+
.k-sitebar {
margin-right: 10px;
height: 16px;
@@ -46,7 +53,6 @@
.k-sitebar-LabelLink {
white-space: nowrap;
color: #B3B3B3;
- margin-left: 3px;
cursor: pointer;
text-decoration: underline;
}
@@ -379,6 +385,7 @@
.k-toolbar-sep {
padding-top: 4px;
+ padding-left: 5px;
}
/* Custom gwt-ext styles */
.ytb-sep {
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css 2008-07-31 13:28:16 UTC (rev 822)
@@ -65,14 +65,6 @@
width: 10px;
}
-.kune-SiteBarPanel-LabelLink {
- white-space: nowrap;
- color: #B3B3B3;
- margin-left: 3px;
- cursor: pointer;
- text-decoration: underline;
-}
-
.kune-SiteMessagePanel {
color: #250;
position: absolute;
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -9,34 +9,27 @@
import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
import com.calclab.emiteuimodule.client.EmiteUIDialog;
-import com.calclab.suco.client.container.Container;
-import com.calclab.suco.client.container.Provider;
-import com.calclab.suco.client.modules.Module;
-import com.calclab.suco.client.modules.ModuleBuilder;
+import com.calclab.suco.client.modules.AbstractModule;
+import com.calclab.suco.client.provider.Factory;
import com.calclab.suco.client.scopes.SingletonScope;
-public class ChatClientNewModule implements Module {
- public static ChatClientTool getChatClientTool(final Container components) {
- return components.getInstance(ChatClientTool.class);
- }
+public class ChatClientNewModule extends AbstractModule {
- public Class<? extends Module> getType() {
- return ChatClientNewModule.class;
+ public ChatClientNewModule() {
+ super(ChatClientNewModule.class);
}
- public void onLoad(final ModuleBuilder builder) {
- builder.registerProvider(ChatClientTool.class, new Provider<ChatClientTool>() {
- public ChatClientTool get() {
- return new ChatClientTool(builder.getInstance(Session.class), builder.getInstance(Application.class),
- builder.getInstance(I18nUITranslationService.class), builder.getInstance(EmiteUIDialog.class),
- builder.getInstance(WorkspaceSkeleton.class), builder.getProvider(GroupMembersSummary.class));
+ @Override
+ public void onLoad() {
+ register(SingletonScope.class, new Factory<ChatClientTool>(ChatClientTool.class) {
+ public ChatClientTool create() {
+ return new ChatClientTool($(Session.class), $(Application.class), $(I18nUITranslationService.class),
+ $(EmiteUIDialog.class), $(WorkspaceSkeleton.class), $p(GroupMembersSummary.class));
}
- }, SingletonScope.class);
+ });
- final ChatClientTool chatClientTool = getChatClientTool(builder);
- builder.getInstance(KunePlatform.class).addTool(chatClientTool);
- builder.getInstance(KunePlatform.class).install(
- new ChatClientModule(builder.getInstance(Session.class), builder.getInstance(StateManager.class),
- chatClientTool));
+ final ChatClientTool chatClientTool = $(ChatClientTool.class);
+ $(KunePlatform.class).addTool(chatClientTool);
+ $(KunePlatform.class).install(new ChatClientModule($(Session.class), $(StateManager.class), chatClientTool));
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -72,7 +72,8 @@
};
final String initialWindowTitle = Window.getTitle();
chatOptions.userOptions = userChatOptions;
- emiteDialog.start(userChatOptions, chatOptions.httpBase, chatOptions.roomHost, avatarProvider, i18n.t("Chat"));
+ emiteDialog.start(userChatOptions, chatOptions.httpBase, chatOptions.roomHost, initialWindowTitle,
+ avatarProvider, i18n.t("Chat"));
emiteDialog.show(OwnStatus.online);
if (traybarButton == null) {
traybarButton = new ToolbarButton();
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -10,45 +10,40 @@
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.workspace.TagsSummary;
-import com.calclab.suco.client.container.Container;
-import com.calclab.suco.client.container.Provider;
-import com.calclab.suco.client.modules.Module;
-import com.calclab.suco.client.modules.ModuleBuilder;
+import com.calclab.suco.client.modules.AbstractModule;
+import com.calclab.suco.client.provider.Factory;
import com.calclab.suco.client.scopes.SingletonScope;
-public class DocumentClientNewModule implements Module {
- public static DocumentClientTool getDocumentClientTool(final Container components) {
- return components.getInstance(DocumentClientTool.class);
- }
+public class DocumentClientNewModule extends AbstractModule {
- public Class<? extends Module> getType() {
- return DocumentClientNewModule.class;
+ public DocumentClientNewModule() {
+ super(DocumentClientNewModule.class);
}
- public void onLoad(final ModuleBuilder builder) {
- builder.registerProvider(DocumentFactory.class, new Provider<DocumentFactory>() {
- public DocumentFactory get() {
- return new DocumentFactory(builder.getInstance(I18nUITranslationService.class), builder
- .getInstance(Session.class), builder.getProvider(TagsSummary.class), builder
- .getInstance(WorkspaceSkeleton.class), builder.getInstance(RateIt.class));
+ @Override
+ public void onLoad() {
+ register(SingletonScope.class, new Factory<DocumentFactory>(DocumentFactory.class) {
+ public DocumentFactory create() {
+ return new DocumentFactory($(I18nUITranslationService.class), $(Session.class), $p(TagsSummary.class),
+ $(WorkspaceSkeleton.class), $(RateIt.class));
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(DocumentClientTool.class, new Provider<DocumentClientTool>() {
- public DocumentClientTool get() {
- final DocumentFactory factory = builder.getInstance(DocumentFactory.class);
- return new DocumentClientTool(factory, builder.getInstance(I18nUITranslationService.class));
+ register(SingletonScope.class, new Factory<DocumentClientTool>(DocumentClientTool.class) {
+ public DocumentClientTool create() {
+ final DocumentFactory factory = $(DocumentFactory.class);
+ return new DocumentClientTool(factory, $(I18nUITranslationService.class));
}
- }, SingletonScope.class);
+ });
- final KunePlatform platform = builder.getInstance(KunePlatform.class);
- final DocumentClientTool docClientTool = getDocumentClientTool(builder);
+ final KunePlatform platform = $(KunePlatform.class);
+ final DocumentClientTool docClientTool = $(DocumentClientTool.class);
platform.addTool(docClientTool);
- final Session session = builder.getInstance(Session.class);
- final StateManager stateManager = builder.getInstance(StateManager.class);
- final Application application = builder.getInstance(Application.class);
- final I18nUITranslationService i18n = builder.getInstance(I18nUITranslationService.class);
+ final Session session = $(Session.class);
+ final StateManager stateManager = $(StateManager.class);
+ final Application application = $(Application.class);
+ final I18nUITranslationService i18n = $(I18nUITranslationService.class);
platform.install(new DocsClientModule(session, stateManager, application.getWorkspace(), i18n));
}
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-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/Application.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -20,9 +20,10 @@
package org.ourproject.kune.platf.client.app;
+import java.util.ArrayList;
import java.util.HashMap;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
+import org.ourproject.kune.platf.client.dispatch.ActionEvent;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.tool.ClientTool;
import org.ourproject.kune.workspace.client.workspace.Workspace;
@@ -35,7 +36,7 @@
Workspace getWorkspace();
- void init(DefaultDispatcher dispatcher, StateManager stateManager, HashMap<String, ClientTool> tools);
+ void init(StateManager stateManager, HashMap<String, ClientTool> tools);
void onApplicationStart(Slot<Object> slot);
@@ -47,4 +48,6 @@
void stop();
+ void subscribeActions(ArrayList<ActionEvent<?>> actions);
+
}
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -1,101 +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.app;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-
-import org.ourproject.kune.chat.client.ChatClientNewModule;
-import org.ourproject.kune.docs.client.DocumentClientNewModule;
-import org.ourproject.kune.platf.client.KunePlatform;
-import org.ourproject.kune.platf.client.PlatformClientModule;
-import org.ourproject.kune.platf.client.dispatch.ActionEvent;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
-import org.ourproject.kune.platf.client.services.Kune;
-import org.ourproject.kune.platf.client.services.KuneModule;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.WorkspaceClientModule;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
-
-import com.calclab.emiteuimodule.client.EmiteUIModule;
-import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.WindowCloseListener;
-import com.google.gwt.user.client.ui.Label;
-
-public class ApplicationBuilder {
-
- public ApplicationBuilder() {
- }
-
- public void build(final I18nLanguageDTO initialLang, final HashMap<String, String> lexicon) {
- final Kune kune = Kune.create(new KuneModule(initialLang, lexicon), new EmiteUIModule(),
- new DocumentClientNewModule(), new ChatClientNewModule());
-
- final Session session = kune.getSession();
-
- Site.showProgressStarting();
-
- final KunePlatform platform = kune.getPlatform();
- final StateManager stateManager = kune.getStateManager();
- final Application application = kune.getInstance(Application.class);
- final I18nUITranslationService i18n = kune.getI18N();
-
- // Temporary new ws
- final WorkspaceSkeleton ws = kune.getInstance(WorkspaceSkeleton.class);
- ws.show();
- ws.getEntityWorkspace().getContentTopBar().add(new Label("Sorry, kune workspace under heavy refactorization"));
-
- // Testing providers:
- platform.install(new PlatformClientModule(session, kune.getProvider(StateManager.class)));
- platform.install(new WorkspaceClientModule(session, stateManager, application.getWorkspace(), i18n));
-
- final DefaultDispatcher dispatcher = DefaultDispatcher.getInstance();
-
- application.init(dispatcher, stateManager, platform.getIndexedTools());
- subscribeActions(dispatcher, platform.getActions());
-
- Window.addWindowCloseListener(new WindowCloseListener() {
- public void onWindowClosed() {
- application.stop();
- }
-
- public String onWindowClosing() {
- return null;
- }
- });
- application.start();
- }
-
- private void subscribeActions(final DefaultDispatcher dispatcher, final ArrayList<ActionEvent<?>> actions) {
- ActionEvent<?> actionEvent;
-
- for (final Iterator<ActionEvent<?>> it = actions.iterator(); it.hasNext();) {
- actionEvent = it.next();
- dispatcher.subscribe(actionEvent.event, actionEvent.action);
- }
- }
-
-}
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-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -20,10 +20,12 @@
package org.ourproject.kune.platf.client.app;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import org.ourproject.kune.platf.client.dispatch.ActionEvent;
import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
@@ -45,6 +47,8 @@
import com.calclab.suco.client.signal.Signal;
import com.calclab.suco.client.signal.Slot;
import com.google.gwt.user.client.Timer;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.WindowCloseListener;
import com.google.gwt.user.client.rpc.AsyncCallback;
public class ApplicationDefault implements Application {
@@ -53,17 +57,24 @@
private final Session session;
private final Signal<Object> onApplicationStart;
private final Signal<Object> onApplicationStop;
- private final WorkspaceSkeleton ws;
private StateManager stateManager;
public ApplicationDefault(final Session session, final ExtensibleWidgetsManager extensionPointManager,
final I18nTranslationService i18n, final KuneErrorHandler errorHandler, final WorkspaceSkeleton ws) {
this.session = session;
- this.ws = ws;
workspace = WorkspaceFactory.createWorkspace(session, extensionPointManager, i18n, errorHandler);
tools = new HashMap<String, ClientTool>();
this.onApplicationStart = new Signal<Object>("onApplicationStart");
this.onApplicationStop = new Signal<Object>("onApplicationStop");
+ Window.addWindowCloseListener(new WindowCloseListener() {
+ public void onWindowClosed() {
+ stop();
+ }
+
+ public String onWindowClosing() {
+ return null;
+ }
+ });
}
public ClientTool getTool(final String toolName) {
@@ -74,11 +85,9 @@
return workspace;
}
- public void init(final DefaultDispatcher dispatcher, final StateManager stateManager,
- final HashMap<String, ClientTool> tools) {
+ public void init(final StateManager stateManager, final HashMap<String, ClientTool> tools) {
this.stateManager = stateManager;
this.tools = tools;
- workspace.attachTools(tools.values().iterator());
}
public void onApplicationStart(final Slot<Object> slot) {
@@ -113,6 +122,15 @@
onApplicationStop.fire(null);
}
+ public void subscribeActions(final ArrayList<ActionEvent<?>> actions) {
+ ActionEvent<?> actionEvent;
+
+ for (final Iterator<ActionEvent<?>> it = actions.iterator(); it.hasNext();) {
+ actionEvent = it.next();
+ DefaultDispatcher.getInstance().subscribe(actionEvent.event, actionEvent.action);
+ }
+ }
+
private void getInitData() {
final SiteServiceAsync server = SiteService.App.getInstance();
server.getInitData(session.getUserHash(), new AsyncCallback<InitDataDTO>() {
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/app/DesktopView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/DesktopView.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/DesktopView.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -1,26 +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.app;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface DesktopView extends View {
- void attach();
-}
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/app/ui/DesktopPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ui/DesktopPanel.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ui/DesktopPanel.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -1,99 +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.app.ui;
-
-import org.ourproject.kune.platf.client.app.DesktopView;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.sitebar.bar.SiteBarListener;
-import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessage;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.WindowResizeListener;
-import com.google.gwt.user.client.ui.AbsolutePanel;
-import com.google.gwt.user.client.ui.RootPanel;
-import com.google.gwt.user.client.ui.Widget;
-
-@Deprecated
-public class DesktopPanel extends AbsolutePanel implements DesktopView {
-
- public DesktopPanel(final Workspace workspace, final SiteBarListener listener, final Session session,
- final I18nTranslationService i18n) {
- // QuickTips.init(); // extgwt tips
- // final QuickTip quickTipInstance = QuickTips.getQuickTip();
- // quickTipInstance.setDismissDelay(8000);
- // quickTipInstance.setHideDelay(500);
- // quickTipInstance.setInterceptTitles(true);
- // SiteBar siteBar = SiteBarFactory.createSiteBar(listener, session,
- // i18n);
- // final SiteMessage siteMessage = SiteBarFactory.getSiteMessage();
- // this.add((Widget) siteMessage.getView(),
- // calculateMessageWidth(Window.getClientWidth()),
- // calculateMessageHeight());
- // this.add((Widget) siteBar.getView(), 0, 0);
- this.add((Widget) workspace.getView(), 0, 20);
- this.addStyleName("kunebody");
- // initResizeListener(this, workspace, siteMessage);
- // resizeDesktop(this, workspace, siteMessage, Window.getClientWidth(),
- // Window.getClientHeight());
- }
-
- public void attach() {
- RootPanel.get().add(this);
- }
-
- private int calculateMessageHeight() {
- return 2;
- }
-
- private int calculateMessageWidth(final int width) {
- return width * 20 / 100 - 10;
- }
-
- private void initResizeListener(final AbsolutePanel desktop, final Workspace workspace,
- final SiteMessage siteMessage) {
- Window.addWindowResizeListener(new WindowResizeListener() {
- public void onWindowResized(final int width, final int height) {
- resizeDesktop(desktop, workspace, siteMessage, width, height);
- }
- });
- }
-
- private void resizeDesktop(final AbsolutePanel desktop, final Workspace workspace, final SiteMessage siteMessage,
- final int clientWidth, final int clientHeight) {
- final int width = workspace.calculateWidth(clientWidth);
- final int height = workspace.calculateHeight(clientHeight);
- final boolean scroll = width <= Workspace.MIN_WIDTH || height <= Workspace.MIN_HEIGHT ? true : false;
- Window.enableScrolling(scroll);
- if (scroll) {
- desktop.setSize("" + width, "" + height);
- } else {
- desktop.setSize("100%", "100%");
- }
- workspace.adjustSize(width, height);
- // siteMessage.adjustWidth(width);
- // desktop.setWidgetPosition((Widget) siteMessage.getView(),
- // calculateMessageWidth(width),
- // calculateMessageHeight());
- }
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -24,9 +24,7 @@
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.errors.DefaultException;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.RemoteService;
-import com.google.gwt.user.client.rpc.ServiceDefTarget;
public interface GroupService extends RemoteService {
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/I18nService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/I18nService.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/I18nService.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -24,25 +24,10 @@
import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
import org.ourproject.kune.platf.client.errors.DefaultException;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.RemoteService;
-import com.google.gwt.user.client.rpc.ServiceDefTarget;
public interface I18nService extends RemoteService {
- public class App {
- private static I18nServiceAsync ourInstance = null;
-
- public static synchronized I18nServiceAsync getInstance() {
- if (ourInstance == null) {
- ourInstance = (I18nServiceAsync) GWT.create(I18nService.class);
- ((ServiceDefTarget) ourInstance).setServiceEntryPoint(GWT.getModuleBaseURL() + "I18nService");
- }
- return ourInstance;
- }
-
- }
-
I18nLanguageDTO getInitialLanguage(String localeParam);
HashMap<String, String> getLexicon(String language);
Modified: 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-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/Kune.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -20,24 +20,16 @@
package org.ourproject.kune.platf.client.services;
-import org.ourproject.kune.platf.client.KunePlatform;
-import org.ourproject.kune.platf.client.app.Application;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-import com.calclab.emiteuimodule.client.EmiteUIDialog;
+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.modules.Module;
-import com.calclab.suco.client.modules.ModuleBuilder;
public class Kune extends DelegatedContainer {
public static Kune create(final Module... modules) {
- final ModuleBuilder container = new ModuleBuilder();
- container.add(modules);
+ final Container container = Suco.create(modules);
+ Suco.add(container, new KuneModule());
return container.getInstance(Kune.class);
}
@@ -45,32 +37,4 @@
super(container);
}
- public ColorTheme getColorTheme() {
- return this.getInstance(ColorTheme.class);
- }
-
- public EmiteUIDialog getEmiteUIDialog() {
- return this.getInstance(EmiteUIDialog.class);
- }
-
- public I18nUITranslationService getI18N() {
- return this.getInstance(I18nUITranslationService.class);
- }
-
- public KunePlatform getPlatform() {
- return this.getInstance(KunePlatform.class);
- }
-
- public Session getSession() {
- return this.getInstance(Session.class);
- }
-
- public StateManager getStateManager() {
- return this.getInstance(StateManager.class);
- }
-
- public Workspace getWorkspace() {
- return this.getInstance(Application.class).getWorkspace();
- }
-
}
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-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -1,12 +1,13 @@
package org.ourproject.kune.platf.client.services;
-import java.util.HashMap;
-
+import org.ourproject.kune.chat.client.ChatClientNewModule;
+import org.ourproject.kune.docs.client.DocumentClientNewModule;
import org.ourproject.kune.platf.client.KunePlatform;
+import org.ourproject.kune.platf.client.PlatformClientModule;
import org.ourproject.kune.platf.client.app.Application;
import org.ourproject.kune.platf.client.app.ApplicationDefault;
+import org.ourproject.kune.platf.client.app.HistoryWrapper;
import org.ourproject.kune.platf.client.app.HistoryWrapperImpl;
-import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
@@ -14,20 +15,28 @@
import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
import org.ourproject.kune.platf.client.rpc.GroupService;
import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.rpc.I18nService;
+import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
+import org.ourproject.kune.platf.client.state.ContentProvider;
import org.ourproject.kune.platf.client.state.ContentProviderImpl;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.SessionImpl;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.state.StateManagerDefault;
-import org.ourproject.kune.platf.client.ui.QuickTipHelper;
+import org.ourproject.kune.platf.client.ui.QuickTipsHelper;
import org.ourproject.kune.platf.client.ui.rate.RateIt;
import org.ourproject.kune.platf.client.ui.rate.RateItPanel;
import org.ourproject.kune.platf.client.ui.rate.RateItPresenter;
import org.ourproject.kune.platf.client.ui.rate.RatePanel;
import org.ourproject.kune.platf.client.ui.rate.RatePresenter;
+import org.ourproject.kune.workspace.client.WorkspaceClientModule;
+import org.ourproject.kune.workspace.client.i18n.I18nTranslator;
+import org.ourproject.kune.workspace.client.i18n.I18nTranslatorPresenter;
+import org.ourproject.kune.workspace.client.i18n.I18nTranslatorView;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.i18n.ui.I18nTranslatorPanel;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoose;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePanel;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePresenter;
@@ -92,6 +101,9 @@
import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitesign.SiteSignOutLink;
import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitesign.SiteSignOutLinkPanel;
import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitesign.SiteSignOutLinkPresenter;
+import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteusermenu.SiteUserMenu;
+import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteusermenu.SiteUserMenuPanel;
+import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteusermenu.SiteUserMenuPresenter;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsThemePanel;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsThemePresenter;
@@ -108,443 +120,523 @@
import org.ourproject.kune.workspace.client.workspace.ui.EntityLogo;
import org.ourproject.kune.workspace.client.workspace.ui.EntityLogoPanel;
-import com.calclab.suco.client.container.Provider;
-import com.calclab.suco.client.modules.Module;
-import com.calclab.suco.client.modules.ModuleBuilder;
+import com.calclab.emiteuimodule.client.EmiteUIModule;
+import com.calclab.suco.client.container.Container;
+import com.calclab.suco.client.modules.AbstractModule;
+import com.calclab.suco.client.provider.Factory;
import com.calclab.suco.client.scopes.SingletonScope;
import com.calclab.suco.client.signal.Slot;
+import com.calclab.suco.client.signal.Slot0;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
-public class KuneModule implements Module {
- private final I18nLanguageDTO initialLang;
- private final HashMap<String, String> lexicon;
- private ModuleBuilder builder;
-
- public KuneModule(final I18nLanguageDTO initialLang, final HashMap<String, String> lexicon) {
- this.initialLang = initialLang;
- this.lexicon = lexicon;
+public class KuneModule extends AbstractModule {
+ public KuneModule() {
+ super(KuneModule.class);
}
- public Class<? extends Module> getType() {
- return KuneModule.class;
- }
+ @Override
+ public void onLoad() {
+ register(SingletonScope.class, new Factory<Kune>(Kune.class) {
+ public Kune create() {
+ return new Kune($(Container.class));
+ }
+ });
- public void onLoad(final ModuleBuilder builder) {
- this.builder = builder;
+ register(SingletonScope.class, new Factory<Session>(Session.class) {
+ public Session create() {
+ return new SessionImpl(Cookies.getCookie(Site.USERHASH), $p(UserServiceAsync.class));
+ }
+ });
- builder.registerProvider(Kune.class, new Provider<Kune>() {
- public Kune get() {
- return new Kune(builder);
+ /** Services (this in other module after UI refactor * */
+
+ register(SingletonScope.class, new Factory<I18nServiceAsync>(I18nServiceAsync.class) {
+ public I18nServiceAsync create() {
+ final I18nServiceAsync service = (I18nServiceAsync) GWT.create(I18nService.class);
+ ((ServiceDefTarget) service).setServiceEntryPoint(GWT.getModuleBaseURL() + "I18nService");
+ return service;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(I18nUITranslationService.class, new Provider<I18nUITranslationService>() {
- public I18nUITranslationService get() {
+ register(SingletonScope.class, new Factory<UserServiceAsync>(UserServiceAsync.class) {
+ public UserServiceAsync create() {
+ final UserServiceAsync service = (UserServiceAsync) GWT.create(UserService.class);
+ ((ServiceDefTarget) service).setServiceEntryPoint(GWT.getModuleBaseURL() + "UserService");
+ return service;
+ }
+ });
+
+ register(SingletonScope.class, new Factory<SocialNetworkServiceAsync>(SocialNetworkServiceAsync.class) {
+ public SocialNetworkServiceAsync create() {
+ final SocialNetworkServiceAsync snServiceAsync = (SocialNetworkServiceAsync) GWT
+ .create(SocialNetworkService.class);
+ ((ServiceDefTarget) snServiceAsync).setServiceEntryPoint(GWT.getModuleBaseURL()
+ + "SocialNetworkService");
+ return snServiceAsync;
+ }
+ });
+
+ register(SingletonScope.class, new Factory<GroupServiceAsync>(GroupServiceAsync.class) {
+ public GroupServiceAsync create() {
+ final GroupServiceAsync groupServiceAsync = (GroupServiceAsync) GWT.create(GroupService.class);
+ ((ServiceDefTarget) groupServiceAsync).setServiceEntryPoint(GWT.getModuleBaseURL() + "GroupService");
+ return groupServiceAsync;
+ }
+ });
+
+ register(SingletonScope.class, new Factory<ContentServiceAsync>(ContentServiceAsync.class) {
+ public ContentServiceAsync create() {
+ return ContentService.App.getInstance();
+ }
+ });
+
+ register(SingletonScope.class, new Factory<I18nUITranslationService>(I18nUITranslationService.class) {
+ public I18nUITranslationService create() {
final I18nUITranslationService i18n = new I18nUITranslationService();
- i18n.setCurrentLanguage(initialLang.getCode());
- i18n.setLexicon(lexicon);
+ i18n.init($(I18nServiceAsync.class), $(Session.class), new Slot0() {
+ public void onEvent() {
+ onI18nReady();
+ }
+ });
return i18n;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(QuickTipHelper.class, new Provider<QuickTipHelper>() {
- public QuickTipHelper get() {
- return new QuickTipHelper();
+ $(I18nUITranslationService.class);
+ }
+
+ private void onI18nReady() {
+ final I18nUITranslationService i18n = $(I18nUITranslationService.class);
+
+ register(SingletonScope.class, new Factory<I18nTranslationService>(I18nTranslationService.class) {
+ public I18nTranslationService create() {
+ return i18n;
}
- }, SingletonScope.class);
+ });
- i(QuickTipHelper.class);
+ register(SingletonScope.class, new Factory<QuickTipsHelper>(QuickTipsHelper.class) {
+ public QuickTipsHelper create() {
+ return new QuickTipsHelper();
+ }
+ });
- builder.registerProvider(UserServiceAsync.class, new Provider<UserServiceAsync>() {
- public UserServiceAsync get() {
+ $(QuickTipsHelper.class);
+
+ register(SingletonScope.class, new Factory<UserServiceAsync>(UserServiceAsync.class) {
+ public UserServiceAsync create() {
final UserServiceAsync service = (UserServiceAsync) GWT.create(UserService.class);
((ServiceDefTarget) service).setServiceEntryPoint(GWT.getModuleBaseURL() + "UserService");
return service;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(SocialNetworkServiceAsync.class, new Provider<SocialNetworkServiceAsync>() {
- public SocialNetworkServiceAsync get() {
+ register(SingletonScope.class, new Factory<SocialNetworkServiceAsync>(SocialNetworkServiceAsync.class) {
+ public SocialNetworkServiceAsync create() {
final SocialNetworkServiceAsync snServiceAsync = (SocialNetworkServiceAsync) GWT
.create(SocialNetworkService.class);
((ServiceDefTarget) snServiceAsync).setServiceEntryPoint(GWT.getModuleBaseURL()
+ "SocialNetworkService");
return snServiceAsync;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(GroupServiceAsync.class, new Provider<GroupServiceAsync>() {
- public GroupServiceAsync get() {
+ register(SingletonScope.class, new Factory<GroupServiceAsync>(GroupServiceAsync.class) {
+ public GroupServiceAsync create() {
final GroupServiceAsync groupServiceAsync = (GroupServiceAsync) GWT.create(GroupService.class);
((ServiceDefTarget) groupServiceAsync).setServiceEntryPoint(GWT.getModuleBaseURL() + "GroupService");
return groupServiceAsync;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(ContentServiceAsync.class, new Provider<ContentServiceAsync>() {
- public ContentServiceAsync get() {
+ register(SingletonScope.class, new Factory<ContentServiceAsync>(ContentServiceAsync.class) {
+ public ContentServiceAsync create() {
return ContentService.App.getInstance();
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(Session.class, new Provider<Session>() {
- public Session get() {
- return new SessionImpl(Cookies.getCookie(Site.USERHASH), initialLang, p(UserServiceAsync.class));
- }
- }, SingletonScope.class);
-
- builder.registerProvider(Images.class, new Provider<Images>() {
- public Images get() {
+ register(SingletonScope.class, new Factory<Images>(Images.class) {
+ public Images create() {
return Images.App.getInstance();
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(ImageUtils.class, new Provider<ImageUtils>() {
- public ImageUtils get() {
+ register(SingletonScope.class, new Factory<ImageUtils>(ImageUtils.class) {
+ public ImageUtils create() {
return new ImageUtils();
}
- }, SingletonScope.class);
+ });
- final I18nUITranslationService i18n = i(I18nUITranslationService.class);
- builder.registerProvider(KuneErrorHandler.class, new Provider<KuneErrorHandler>() {
- public KuneErrorHandler get() {
- return new KuneErrorHandler(i(Session.class), i18n, p(WorkspaceSkeleton.class));
+ register(SingletonScope.class, new Factory<KuneErrorHandler>(KuneErrorHandler.class) {
+ public KuneErrorHandler create() {
+ return new KuneErrorHandler($(Session.class), i18n, $p(WorkspaceSkeleton.class));
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(WorkspaceSkeleton.class, new Provider<WorkspaceSkeleton>() {
- public WorkspaceSkeleton get() {
+ register(SingletonScope.class, new Factory<WorkspaceSkeleton>(WorkspaceSkeleton.class) {
+ public WorkspaceSkeleton create() {
return new WorkspaceSkeleton();
}
- }, SingletonScope.class);
+ });
- final KuneErrorHandler errorHandler = i(KuneErrorHandler.class);
+ final KuneErrorHandler errorHandler = $(KuneErrorHandler.class);
AsyncCallbackSimple.init(errorHandler);
- builder.registerProvider(KunePlatform.class, new Provider<KunePlatform>() {
- public KunePlatform get() {
+ register(SingletonScope.class, new Factory<KunePlatform>(KunePlatform.class) {
+ public KunePlatform create() {
return new KunePlatform();
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(ExtensibleWidgetsManager.class, new Provider<ExtensibleWidgetsManager>() {
- public ExtensibleWidgetsManager get() {
+ register(SingletonScope.class, new Factory<ExtensibleWidgetsManager>(ExtensibleWidgetsManager.class) {
+ public ExtensibleWidgetsManager create() {
return new ExtensibleWidgetsManager();
}
- }, SingletonScope.class);
+ });
- final WorkspaceSkeleton ws = i(WorkspaceSkeleton.class);
- final Images images = i(Images.class);
+ final WorkspaceSkeleton ws = $(WorkspaceSkeleton.class);
+ final Images images = $(Images.class);
- builder.registerProvider(Application.class, new Provider<Application>() {
- public Application get() {
- final Session session = i(Session.class);
- final ExtensibleWidgetsManager extensionPointManager = i(ExtensibleWidgetsManager.class);
- return new ApplicationDefault(session, extensionPointManager, i18n, i(KuneErrorHandler.class), ws);
+ register(SingletonScope.class, new Factory<Application>(Application.class) {
+ public Application create() {
+ final Session session = $(Session.class);
+ final ExtensibleWidgetsManager extensionPointManager = $(ExtensibleWidgetsManager.class);
+ return new ApplicationDefault(session, extensionPointManager, i18n, $(KuneErrorHandler.class), ws);
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(SitePublicSpaceLink.class, new Provider<SitePublicSpaceLink>() {
- public SitePublicSpaceLink get() {
+ register(SingletonScope.class, new Factory<SitePublicSpaceLink>(SitePublicSpaceLink.class) {
+ public SitePublicSpaceLink create() {
final SitePublicSpaceLinkPresenter presenter = new SitePublicSpaceLinkPresenter();
final SitePublicSpaceLinkPanel panel = new SitePublicSpaceLinkPanel(presenter, ws, i18n, images);
presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(SiteProgress.class, new Provider<SiteProgress>() {
- public SiteProgress get() {
+ register(SingletonScope.class, new Factory<SiteProgress>(SiteProgress.class) {
+ public SiteProgress create() {
final SiteProgressPresenter presenter = new SiteProgressPresenter();
- final SiteProgressPanel panel = new SiteProgressPanel(presenter, p(SitePublicSpaceLink.class));
+ final SiteProgressPanel panel = new SiteProgressPanel(presenter, $p(SitePublicSpaceLink.class));
presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(Site.class, new Provider<Site>() {
- public Site get() {
- return new Site(i18n, i(SiteProgress.class), p(SiteMessage.class));
+ register(SingletonScope.class, new Factory<Site>(Site.class) {
+ public Site create() {
+ return new Site(i18n, $(SiteProgress.class), $p(SiteMessage.class));
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(SiteMessage.class, new Provider<SiteMessage>() {
- public SiteMessage get() {
+ register(SingletonScope.class, new Factory<SiteMessage>(SiteMessage.class) {
+ public SiteMessage create() {
final SiteMessagePresenter siteMessagePresenter = new SiteMessagePresenter();
final SiteMessageView siteMessageView = new SiteMessagePanel(siteMessagePresenter, true, i18n);
siteMessagePresenter.init(siteMessageView);
return siteMessagePresenter;
}
- }, SingletonScope.class);
+ });
- i(SiteProgress.class);
- i(Site.class);
+ $(SiteProgress.class);
+ $(Site.class);
- builder.registerProvider(SiteSignInLink.class, new Provider<SiteSignInLink>() {
- public SiteSignInLink get() {
- final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter(i(Session.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);
presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(SiteSignOutLink.class, new Provider<SiteSignOutLink>() {
- public SiteSignOutLink get() {
- final SiteSignOutLinkPresenter presenter = new SiteSignOutLinkPresenter(i(Session.class),
- p(UserServiceAsync.class), p(KuneErrorHandler.class));
+ register(SingletonScope.class, new Factory<SiteUserMenu>(SiteUserMenu.class) {
+ public SiteUserMenu create() {
+ final SiteUserMenuPresenter presenter = new SiteUserMenuPresenter($(Session.class));
+ final SiteUserMenuPanel panel = new SiteUserMenuPanel(presenter, ws);
+ presenter.init(panel);
+ return presenter;
+ }
+ });
+
+ register(SingletonScope.class, new Factory<SiteSignOutLink>(SiteSignOutLink.class) {
+ public SiteSignOutLink create() {
+ final SiteSignOutLinkPresenter presenter = new SiteSignOutLinkPresenter($(Session.class),
+ $p(UserServiceAsync.class), $p(KuneErrorHandler.class));
final SiteSignOutLinkPanel panel = new SiteSignOutLinkPanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(SiteNewGroupLink.class, new Provider<SiteNewGroupLink>() {
- public SiteNewGroupLink get() {
+ register(SingletonScope.class, new Factory<SiteNewGroupLink>(SiteNewGroupLink.class) {
+ public SiteNewGroupLink create() {
final SiteNewGroupLinkPresenter presenter = new SiteNewGroupLinkPresenter();
final SiteNewGroupLinkPanel panel = new SiteNewGroupLinkPanel(presenter, ws, i18n);
presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(SiteOptions.class, new Provider<SiteOptions>() {
- public SiteOptions get() {
+ register(SingletonScope.class, new Factory<SiteOptions>(SiteOptions.class) {
+ public SiteOptions create() {
final SiteOptionsPresenter presenter = new SiteOptionsPresenter();
final SiteOptionsPanel panel = new SiteOptionsPanel(presenter, ws);
presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(SiteLogo.class, new Provider<SiteLogo>() {
- public SiteLogo get() {
- final SiteLogoPresenter presenter = new SiteLogoPresenter(i(Session.class));
+ register(SingletonScope.class, new Factory<SiteLogo>(SiteLogo.class) {
+ public SiteLogo create() {
+ final SiteLogoPresenter presenter = new SiteLogoPresenter($(Session.class));
final SiteLogoPanel panel = new SiteLogoPanel(presenter, ws);
presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(SiteSearcher.class, new Provider<SiteSearcher>() {
- public SiteSearcher get() {
+ register(SingletonScope.class, new Factory<SiteSearcher>(SiteSearcher.class) {
+ public SiteSearcher create() {
final SiteSearcherPresenter presenter = new SiteSearcherPresenter();
final SiteSearcherView view = new SiteSearcherPanel(presenter, i18n, ws);
presenter.init(view);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(SiteSearch.class, new Provider<SiteSearch>() {
- public SiteSearch get() {
- final SiteSearchPresenter presenter = new SiteSearchPresenter(p(SiteSearcher.class));
+ 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);
+ presenter.init(view);
+ return presenter;
+ }
+ });
+
+ register(SingletonScope.class, new Factory<SiteSearch>(SiteSearch.class) {
+ public SiteSearch create() {
+ final SiteSearchPresenter presenter = new SiteSearchPresenter($p(SiteSearcher.class));
final SiteSearchPanel panel = new SiteSearchPanel(presenter, ws, i18n);
presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(SignIn.class, new Provider<SignIn>() {
- public SignIn get() {
- final SignInPresenter presenter = new SignInPresenter(i(Session.class), i(StateManager.class), i18n,
- i(UserServiceAsync.class));
+ 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;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(LicenseChoose.class, new Provider<LicenseChoose>() {
- public LicenseChoose get() {
- final LicenseChoosePresenter presenter = new LicenseChoosePresenter(i(Session.class));
+ 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;
}
});
- builder.registerProvider(NewGroup.class, new Provider<NewGroup>() {
- public NewGroup get() {
- final NewGroupPresenter presenter = new NewGroupPresenter(i18n, i(Session.class),
- i(StateManager.class), p(GroupServiceAsync.class));
- final NewGroupPanel view = new NewGroupPanel(presenter, i18n, p(LicenseChoose.class));
+ register(SingletonScope.class, new Factory<NewGroup>(NewGroup.class) {
+ public NewGroup create() {
+ final NewGroupPresenter presenter = new NewGroupPresenter(i18n, $(Session.class),
+ $(StateManager.class), $p(GroupServiceAsync.class));
+ final NewGroupPanel view = new NewGroupPanel(presenter, i18n, $p(LicenseChoose.class));
presenter.init(view);
return presenter;
}
- }, SingletonScope.class);
+ });
- i(SitePublicSpaceLink.class);
- i(SiteMessage.class);
- i(SiteSignInLink.class);
- i(SiteSignOutLink.class);
- i(SiteNewGroupLink.class);
- i(SiteSearch.class);
- i(SiteLogo.class);
+ $(SitePublicSpaceLink.class);
+ $(SiteMessage.class);
+ $(SiteUserMenu.class);
+ $(SiteSignInLink.class);
+ $(SiteSignOutLink.class);
+ $(SiteNewGroupLink.class);
+ $(SiteSearch.class);
+ $(SiteLogo.class);
- builder.registerProvider(EntityLogo.class, new Provider<EntityLogo>() {
- public EntityLogo get() {
+ register(SingletonScope.class, new Factory<EntityLogo>(EntityLogo.class) {
+ public EntityLogo create() {
return new EntityLogoPanel(i18n, ws);
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(WsThemePresenter.class, new Provider<WsThemePresenter>() {
- public WsThemePresenter get() {
- final WsThemePresenter presenter = new WsThemePresenter(i(Session.class), p(GroupServiceAsync.class));
+ register(SingletonScope.class, new Factory<WsThemePresenter>(WsThemePresenter.class) {
+ public WsThemePresenter create() {
+ final WsThemePresenter presenter = new WsThemePresenter($(Session.class), $p(GroupServiceAsync.class));
final WsThemePanel panel = new WsThemePanel(ws, presenter, i18n);
presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(EntityTitlePresenter.class, new Provider<EntityTitlePresenter>() {
- public EntityTitlePresenter get() {
- final EntityTitlePresenter presenter = new EntityTitlePresenter(i18n, i(KuneErrorHandler.class));
+ register(SingletonScope.class, new Factory<EntityTitlePresenter>(EntityTitlePresenter.class) {
+ public EntityTitlePresenter create() {
+ final EntityTitlePresenter presenter = new EntityTitlePresenter(i18n, $(KuneErrorHandler.class));
final EntityTitlePanel panel = new EntityTitlePanel(ws, presenter);
presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(EntitySubTitlePresenter.class, new Provider<EntitySubTitlePresenter>() {
- public EntitySubTitlePresenter get() {
+ register(SingletonScope.class, new Factory<EntitySubTitlePresenter>(EntitySubTitlePresenter.class) {
+ public EntitySubTitlePresenter create() {
final EntitySubTitlePresenter presenter = new EntitySubTitlePresenter(i18n);
final EntitySubTitlePanel panel = new EntitySubTitlePanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(EntityLicensePresenter.class, new Provider<EntityLicensePresenter>() {
- public EntityLicensePresenter get() {
+ register(SingletonScope.class, new Factory<EntityLicensePresenter>(EntityLicensePresenter.class) {
+ public EntityLicensePresenter create() {
final EntityLicensePresenter presenter = new EntityLicensePresenter();
final EntityLicensePanel panel = new EntityLicensePanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(RatePresenter.class, new Provider<RatePresenter>() {
- public RatePresenter get() {
+ register(SingletonScope.class, new Factory<RatePresenter>(RatePresenter.class) {
+ public RatePresenter create() {
final RatePresenter presenter = new RatePresenter();
final RatePanel panel = new RatePanel(null, null, i18n, ws);
presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(RateIt.class, new Provider<RateIt>() {
- public RateIt get() {
- final RateItPresenter presenter = new RateItPresenter(i18n, i(Session.class),
- p(ContentServiceAsync.class), p(StateManager.class));
+ register(SingletonScope.class, new Factory<RateIt>(RateIt.class) {
+ public RateIt create() {
+ final RateItPresenter presenter = new RateItPresenter(i18n, $(Session.class),
+ $p(ContentServiceAsync.class), $p(StateManager.class));
final RateItPanel panel = new RateItPanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(WorkspaceManager.class, new Provider<WorkspaceManager>() {
- public WorkspaceManager get() {
- final WorkspaceManager presenter = new WorkspaceManager(i(SitePublicSpaceLink.class),
- i(EntityLogo.class), i(EntityTitlePresenter.class), i(EntitySubTitlePresenter.class),
- i(WsThemePresenter.class), i(EntityLicensePresenter.class), p(GroupMembersSummary.class),
- p(ParticipationSummary.class), p(TagsSummary.class), p(GroupSummary.class), i(RateIt.class),
- i(RatePresenter.class));
+ register(SingletonScope.class, new Factory<GroupMembersSummary>(GroupMembersSummary.class) {
+ public GroupMembersSummary create() {
+ final GroupMembersSummaryPresenter presenter = new GroupMembersSummaryPresenter(i18n,
+ $p(StateManager.class), $(ImageUtils.class), $(Session.class),
+ $p(SocialNetworkServiceAsync.class), $p(UserLiveSearcher.class));
+ final GroupMembersSummaryView view = new GroupMembersSummaryPanel(presenter, i18n, ws);
+ presenter.init(view);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(StateManager.class, new Provider<StateManager>() {
- public StateManager get() {
- final StateManagerDefault stateManager = new StateManagerDefault(new ContentProviderImpl(
- ContentService.App.getInstance()), i(Session.class), new HistoryWrapperImpl(),
- i(WorkspaceManager.class));
- History.addHistoryListener(stateManager);
- return stateManager;
- }
- }, SingletonScope.class);
-
- builder.registerProvider(UserLiveSearcher.class, new Provider<UserLiveSearcher>() {
- public UserLiveSearcher get() {
- final UserLiveSearcherPresenter presenter = new UserLiveSearcherPresenter();
- final EntityLiveSearcherView view = new UserLiveSearcherPanel(presenter, i18n);
+ register(SingletonScope.class, new Factory<GroupSummary>(GroupSummary.class) {
+ public GroupSummary create() {
+ final GroupSummaryPresenter presenter = new GroupSummaryPresenter();
+ final GroupSummaryView view = new GroupSummaryPanel(presenter, i18n, ws);
presenter.init(view);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(GroupLiveSearcher.class, new Provider<GroupLiveSearcher>() {
- public GroupLiveSearcher get() {
- final GroupLiveSearcherPresenter presenter = new GroupLiveSearcherPresenter();
- final EntityLiveSearcherView view = new GroupLiveSearchPanel(presenter, i18n);
+ register(SingletonScope.class, new Factory<ParticipationSummary>(ParticipationSummary.class) {
+ public ParticipationSummary create() {
+ final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(i18n,
+ $p(StateManager.class), $(ImageUtils.class), $(Session.class),
+ $p(SocialNetworkServiceAsync.class));
+ final ParticipationSummaryView view = new ParticipationSummaryPanel(presenter, i18n, ws);
presenter.init(view);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(GroupMembersSummary.class, new Provider<GroupMembersSummary>() {
- public GroupMembersSummary get() {
- final GroupMembersSummaryPresenter presenter = new GroupMembersSummaryPresenter(i18n,
- p(StateManager.class), i(ImageUtils.class), i(Session.class),
- p(SocialNetworkServiceAsync.class), p(UserLiveSearcher.class));
- final GroupMembersSummaryView view = new GroupMembersSummaryPanel(presenter, i18n, ws);
- presenter.init(view);
+ register(SingletonScope.class, new Factory<TagsSummary>(TagsSummary.class) {
+ public TagsSummary create() {
+ final TagsSummaryPresenter presenter = new TagsSummaryPresenter($p(Session.class),
+ $p(SiteSearcher.class));
+ final TagsSummaryPanel panel = new TagsSummaryPanel(presenter, i18n, ws);
+ presenter.init(panel);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(GroupSummary.class, new Provider<GroupSummary>() {
- public GroupSummary get() {
- final GroupSummaryPresenter presenter = new GroupSummaryPresenter();
- final GroupSummaryView view = new GroupSummaryPanel(presenter, i18n, ws);
- presenter.init(view);
+ register(SingletonScope.class, new Factory<WorkspaceManager>(WorkspaceManager.class) {
+ public WorkspaceManager create() {
+ final WorkspaceManager presenter = new WorkspaceManager($(SitePublicSpaceLink.class),
+ $(EntityLogo.class), $(EntityTitlePresenter.class), $(EntitySubTitlePresenter.class),
+ $(WsThemePresenter.class), $(EntityLicensePresenter.class), $p(GroupMembersSummary.class),
+ $p(ParticipationSummary.class), $p(TagsSummary.class), $p(GroupSummary.class),
+ $p(RateIt.class), $p(RatePresenter.class));
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(ParticipationSummary.class, new Provider<ParticipationSummary>() {
- public ParticipationSummary get() {
- final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(i18n,
- p(StateManager.class), i(ImageUtils.class), i(Session.class),
- p(SocialNetworkServiceAsync.class));
- final ParticipationSummaryView view = new ParticipationSummaryPanel(presenter, i18n, ws);
+ $(WorkspaceManager.class);
+
+ register(SingletonScope.class, new Factory<HistoryWrapper>(HistoryWrapper.class) {
+ public HistoryWrapper create() {
+ return new HistoryWrapperImpl();
+ }
+ }, new Factory<ContentProvider>(ContentProvider.class) {
+ public ContentProvider create() {
+ return new ContentProviderImpl($(ContentServiceAsync.class));
+ }
+ }, new Factory<StateManager>(StateManager.class) {
+ public StateManager create() {
+ final StateManagerDefault stateManager = new StateManagerDefault($(ContentProvider.class),
+ $(Session.class), $(HistoryWrapper.class), $(WorkspaceManager.class));
+ History.addHistoryListener(stateManager);
+ return stateManager;
+ }
+ });
+
+ register(SingletonScope.class, new Factory<UserLiveSearcher>(UserLiveSearcher.class) {
+ public UserLiveSearcher create() {
+ final UserLiveSearcherPresenter presenter = new UserLiveSearcherPresenter();
+ final EntityLiveSearcherView view = new UserLiveSearcherPanel(presenter, i18n);
presenter.init(view);
return presenter;
}
- }, SingletonScope.class);
+ });
- builder.registerProvider(TagsSummary.class, new Provider<TagsSummary>() {
- public TagsSummary get() {
- final TagsSummaryPresenter presenter = new TagsSummaryPresenter(p(Session.class), p(SiteSearcher.class));
- final TagsSummaryPanel panel = new TagsSummaryPanel(presenter, i18n, ws);
- presenter.init(panel);
+ register(SingletonScope.class, new Factory<GroupLiveSearcher>(GroupLiveSearcher.class) {
+ public GroupLiveSearcher create() {
+ final GroupLiveSearcherPresenter presenter = new GroupLiveSearcherPresenter();
+ final EntityLiveSearcherView view = new GroupLiveSearchPanel(presenter, i18n);
+ presenter.init(view);
return presenter;
}
- }, SingletonScope.class);
+ });
+ load(new EmiteUIModule(), new DocumentClientNewModule(), new ChatClientNewModule());
+
// Register of tokens like "signin", "newgroup", "translate" etcetera
- i(StateManager.class).addSiteToken(SiteToken.signin.toString(), new Slot<StateToken>() {
+ $(StateManager.class).addSiteToken(SiteToken.signin.toString(), new Slot<StateToken>() {
public void onEvent(final StateToken previousStateToken) {
- i(SignIn.class).doSignIn(previousStateToken);
+ $(SignIn.class).doSignIn(previousStateToken);
}
});
- i(StateManager.class).addSiteToken(SiteToken.newgroup.toString(), new Slot<StateToken>() {
+ $(StateManager.class).addSiteToken(SiteToken.newgroup.toString(), new Slot<StateToken>() {
public void onEvent(final StateToken previousStateToken) {
- i(NewGroup.class).doNewGroup(previousStateToken);
+ $(NewGroup.class).doNewGroup(previousStateToken);
}
});
- }
+ final KunePlatform platform = $(KunePlatform.class);
+ platform.install(new PlatformClientModule($(Session.class), $p(StateManager.class)));
+ platform.install(new WorkspaceClientModule($(Session.class), $(StateManager.class), $(Application.class)
+ .getWorkspace(), i18n));
+ $(Application.class).init($(StateManager.class), platform.getIndexedTools());
+ $(Application.class).subscribeActions(platform.getActions());
+ $(Application.class).getWorkspace().attachTools(platform.getTools().iterator());
+ $(Application.class).start();
- private <T> T i(final Class<T> componentType) {
- return builder.getInstance(componentType);
}
-
- private <T> Provider<T> p(final Class<T> componentKey) {
- return builder.getProvider(componentKey);
- }
-
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -52,10 +52,8 @@
private final Signal<Object> onUserSignOut;
private final Provider<UserServiceAsync> userServiceProvider;
- public SessionImpl(final String userHash, final I18nLanguageDTO initialLanguage,
- final Provider<UserServiceAsync> userServiceProvider) {
+ public SessionImpl(final String userHash, final Provider<UserServiceAsync> userServiceProvider) {
this.userHash = userHash;
- currentLanguage = initialLanguage;
this.userServiceProvider = userServiceProvider;
languagesArray = null;
this.onInitDataReceived = new Signal<InitDataDTO>("initDataReceived");
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/DefaultBorderLayout.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/DefaultBorderLayout.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/DefaultBorderLayout.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -130,5 +130,6 @@
public void setPanel(final Panel panel, final Widget widget) {
panel.clear();
add(panel, widget);
+ doLayoutIfNeeded();
}
}
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/ui/QuickTipHelper.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/QuickTipHelper.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/QuickTipHelper.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -1,15 +0,0 @@
-package org.ourproject.kune.platf.client.ui;
-
-import com.gwtext.client.widgets.QuickTip;
-import com.gwtext.client.widgets.QuickTips;
-
-public class QuickTipHelper {
-
- public QuickTipHelper() {
- QuickTips.init();
- final QuickTip quickTipInstance = QuickTips.getQuickTip();
- quickTipInstance.setDismissDelay(8000);
- quickTipInstance.setHideDelay(500);
- quickTipInstance.setInterceptTitles(true);
- }
-}
Copied: trunk/src/main/java/org/ourproject/kune/platf/client/ui/QuickTipsHelper.java (from rev 821, trunk/src/main/java/org/ourproject/kune/platf/client/ui/QuickTipHelper.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/QuickTipHelper.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/QuickTipsHelper.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -0,0 +1,25 @@
+package org.ourproject.kune.platf.client.ui;
+
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.DeferredCommand;
+import com.gwtext.client.widgets.QuickTip;
+import com.gwtext.client.widgets.QuickTips;
+
+public class QuickTipsHelper {
+
+ public QuickTipsHelper() {
+ DeferredCommand.addCommand(new Command() {
+ public void execute() {
+ if (!QuickTips.isEnabled()) {
+ // If not enabled before by another UI component
+ QuickTips.init();
+ final QuickTip quickTipInstance = QuickTips.getQuickTip();
+ quickTipInstance.setInterceptTitles(true);
+ quickTipInstance.setDismissDelay(7000);
+ quickTipInstance.setHideDelay(400);
+ quickTipInstance.setMinWidth(100);
+ }
+ }
+ });
+ }
+}
\ No newline at end of file
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-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -1,5 +1,6 @@
package org.ourproject.kune.platf.client.ui.gridmenu;
+import java.util.ArrayList;
import java.util.HashMap;
import com.allen_sauer.gwt.log.client.Log;
@@ -101,7 +102,7 @@
this.withEndIcon = withEndIcon;
super.setBorder(false);
super.setLayout(new FitLayout());
- //super.setAutoScroll(true);
+ // super.setAutoScroll(true);
if (withTopBar) {
topBar = new Toolbar();
super.setTopToolbar(topBar);
@@ -225,7 +226,7 @@
if (grid != null) {
// grid.setWidth(width - 27);
grid.setWidth(width - 27);
- //super.setWidth(width - 11);
+ // super.setWidth(width - 11);
doLayoutIfNeeded();
}
}
@@ -352,8 +353,17 @@
iconColumn.setFixed(true);
titleColumn.setFixed(false);
endIconColumn.setFixed(true);
- final ColumnConfig[] columnsConfigs = withEndIcon ? new ColumnConfig[] { iconColumn, titleColumn,
- endIconColumn, groupColumn } : new ColumnConfig[] { iconColumn, titleColumn, groupColumn };
+ final ArrayList<ColumnConfig> columnList = new ArrayList<ColumnConfig>();
+ columnList.add(iconColumn);
+ columnList.add(titleColumn);
+ if (grouped) {
+ columnList.add(groupColumn);
+ }
+ if (withEndIcon) {
+ columnList.add(endIconColumn);
+ }
+ ColumnConfig[] columnsConfigs = {};
+ columnsConfigs = columnList.toArray(columnsConfigs);
columnModel = new ColumnModel(columnsConfigs);
grid.setColumnModel(columnModel);
Modified: trunk/src/main/java/org/ourproject/kune/rack/RackServletFilter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/rack/RackServletFilter.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/rack/RackServletFilter.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -84,10 +84,10 @@
throws IOException, ServletException {
final String relative = RackHelper.getRelativeURL(request);
- log.debug("REQUEST: " + relative);
+ // log.debug("REQUEST: " + relative);
for (final RequestMatcher matcher : excludes) {
if (matcher.matches(relative)) {
- log.debug("SKIPING!");
+ // log.debug("SKIPING!");
chain.doFilter(request, response);
return;
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -29,9 +29,6 @@
import org.ourproject.kune.workspace.client.actions.DetachFromExtensibleWidgetAction;
import org.ourproject.kune.workspace.client.actions.RecalculateWorkspaceAction;
import org.ourproject.kune.workspace.client.actions.ReloadContextAction;
-import org.ourproject.kune.workspace.client.actions.i18n.DoTranslationAction;
-import org.ourproject.kune.workspace.client.actions.i18n.GetLexiconAction;
-import org.ourproject.kune.workspace.client.actions.i18n.GetTranslationAction;
import org.ourproject.kune.workspace.client.actions.i18n.ShowTranslatorAction;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.workspace.Workspace;
@@ -56,10 +53,7 @@
register.addAction(PlatformEvents.DETACH_FROM_EXTENSIBLE_WIDGET,
new DetachFromExtensibleWidgetAction(workspace));
register.addAction(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET, new ClearExtensibleWidgetAction(workspace));
- register.addAction(WorkspaceEvents.GET_TRANSLATION, new GetTranslationAction(session));
register.addAction(WorkspaceEvents.SHOW_TRANSLATOR, new ShowTranslatorAction(session, workspace, i18n));
- register.addAction(WorkspaceEvents.DO_TRANSLATION, new DoTranslationAction(session, i18n));
- register.addAction(WorkspaceEvents.GET_LEXICON, new GetLexiconAction(i18n));
register.addAction(WorkspaceEvents.RELOAD_CONTEXT, new ReloadContextAction(stateManager));
register.addAction(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, new RecalculateWorkspaceAction(workspace));
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -21,11 +21,7 @@
package org.ourproject.kune.workspace.client;
public interface WorkspaceEvents {
- public static final String GET_LEXICON = "i18n.getLexicon";
public static final String SHOW_TRANSLATOR = "i18n.ShowTranslator";
- public static final String SHOW_SEARCHER = "ws.ShowSearcher";
- public static final String GET_TRANSLATION = "i18n.GetTranslation";
- public static final String DO_TRANSLATION = "i18n.doTranslation";
public static final String RELOAD_CONTEXT = "ws.ReoloadContext";
public static final String WS_SPLITTER_STARTRESIZING = "ws.SplitterStartResizing";
public static final String WS_SPLITTER_STOPRESIZING = "ws.SplitterStopResizing";
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -19,8 +19,6 @@
*/
package org.ourproject.kune.workspace.client;
-import org.ourproject.kune.platf.client.app.DesktopView;
-import org.ourproject.kune.platf.client.app.ui.DesktopPanel;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.KuneErrorHandler;
@@ -29,19 +27,14 @@
import org.ourproject.kune.workspace.client.editor.TextEditorListener;
import org.ourproject.kune.workspace.client.editor.TextEditorPanel;
import org.ourproject.kune.workspace.client.editor.TextEditorPresenter;
-import org.ourproject.kune.workspace.client.i18n.I18nTranslatorComponent;
-import org.ourproject.kune.workspace.client.i18n.I18nTranslatorPresenter;
-import org.ourproject.kune.workspace.client.i18n.I18nTranslatorView;
import org.ourproject.kune.workspace.client.i18n.LanguageSelectorComponent;
import org.ourproject.kune.workspace.client.i18n.LanguageSelectorPresenter;
import org.ourproject.kune.workspace.client.i18n.LanguageSelectorView;
-import org.ourproject.kune.workspace.client.i18n.ui.I18nTranslatorPanel;
import org.ourproject.kune.workspace.client.i18n.ui.LanguageSelectorPanel;
import org.ourproject.kune.workspace.client.licensefoot.LicenseComponent;
import org.ourproject.kune.workspace.client.licensefoot.LicensePresenter;
import org.ourproject.kune.workspace.client.licensefoot.LicenseView;
import org.ourproject.kune.workspace.client.licensefoot.ui.LicensePanel;
-import org.ourproject.kune.workspace.client.sitebar.bar.SiteBarListener;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItems;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItemsPanel;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItemsPresenter;
@@ -96,12 +89,6 @@
return presenter;
}
- @Deprecated
- public static DesktopView createDesktop(final Workspace workspace, final SiteBarListener listener,
- final Session session) {
- return new DesktopPanel(workspace, listener, session, i18n);
- }
-
public static TextEditor createDocumentEditor(final TextEditorListener listener) {
final TextEditorPresenter presenter = new TextEditorPresenter(listener, true);
final TextEditorPanel panel = new TextEditorPanel(presenter, i18n);
@@ -109,13 +96,6 @@
return presenter;
}
- public static I18nTranslatorComponent createI18nTranslatorComponent() {
- final I18nTranslatorPresenter presenter = new I18nTranslatorPresenter(session);
- final I18nTranslatorView view = new I18nTranslatorPanel(presenter, i18n);
- presenter.init(view);
- return presenter;
- }
-
public static LanguageSelectorComponent createLanguageSelectorComponent() {
final LanguageSelectorPresenter presenter = new LanguageSelectorPresenter(session);
final LanguageSelectorView view = new LanguageSelectorPanel(presenter, i18n);
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/DoTranslationAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/DoTranslationAction.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/DoTranslationAction.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -1,61 +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.workspace.client.actions.i18n;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.DoTranslationActionParams;
-import org.ourproject.kune.platf.client.rpc.I18nService;
-import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class DoTranslationAction implements Action<DoTranslationActionParams> {
-
- private final Session session;
- private final I18nUITranslationService i18n;
-
- public DoTranslationAction(final Session session, final I18nUITranslationService i18n) {
- this.session = session;
- this.i18n = i18n;
- }
-
- public void execute(final DoTranslationActionParams params) {
- onDoTranslationAction(params);
- }
-
- private void onDoTranslationAction(final DoTranslationActionParams params) {
- Site.showProgressSaving();
- final I18nServiceAsync server = I18nService.App.getInstance();
- server.setTranslation(session.getUserHash(), params.getId(), params.getText(), new AsyncCallback<String>() {
- public void onFailure(final Throwable caught) {
- Site.hideProgress();
- Site.error(i18n.t("Server error saving translation"));
- }
-
- public void onSuccess(final String result) {
- Site.hideProgress();
- i18n.setTranslationAfterSave(params.getTrKey(), result);
- }
- });
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/GetLexiconAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/GetLexiconAction.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/GetLexiconAction.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -1,57 +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.workspace.client.actions.i18n;
-
-import java.util.HashMap;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.rpc.I18nService;
-import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-
-import com.allen_sauer.gwt.log.client.Log;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class GetLexiconAction implements Action<String> {
-
- private final I18nUITranslationService i18n;
-
- public GetLexiconAction(final I18nUITranslationService i18n) {
- this.i18n = i18n;
- }
-
- public void execute(final String value) {
- onGetLexicon(value);
- }
-
- private void onGetLexicon(final String language) {
- final I18nServiceAsync server = I18nService.App.getInstance();
- server.getLexicon(language, new AsyncCallback<HashMap<String, String>>() {
- public void onFailure(final Throwable caught) {
- Log.debug("Workspace adaptation to your language failed");
- }
-
- public void onSuccess(final HashMap<String, String> result) {
- i18n.setLexicon(result);
- }
- });
-
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/GetTranslationAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/GetTranslationAction.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/GetTranslationAction.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -1,52 +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.workspace.client.actions.i18n;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.GetTranslationActionParams;
-import org.ourproject.kune.platf.client.rpc.I18nService;
-import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class GetTranslationAction implements Action<GetTranslationActionParams> {
- private final Session session;
-
- public GetTranslationAction(final Session session) {
- this.session = session;
- }
-
- public void execute(final GetTranslationActionParams params) {
- onGetTranslation(params.getLanguage(), params.getText());
- }
-
- private void onGetTranslation(final String language, final String text) {
- final I18nServiceAsync server = I18nService.App.getInstance();
- server.getTranslation(session.getUserHash(), language, text, new AsyncCallback<String>() {
- public void onFailure(final Throwable caught) {
- }
-
- public void onSuccess(final String result) {
- }
- });
-
- }
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/ShowTranslatorAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/ShowTranslatorAction.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/i18n/ShowTranslatorAction.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -33,22 +33,22 @@
private final I18nTranslationService i18n;
public ShowTranslatorAction(final Session session, final Workspace workspace, final I18nTranslationService i18n) {
- this.session = session;
- this.workspace = workspace;
- this.i18n = i18n;
+ this.session = session;
+ this.workspace = workspace;
+ this.i18n = i18n;
}
public void execute(final Object value) {
- onShowTranslatorAction();
+ onShowTranslatorAction();
}
private void onShowTranslatorAction() {
- Site.showProgressLoading();
- if (session.isLogged()) {
- workspace.getI18nTranslatorComponent().show();
- } else {
- Site.info(i18n.t("Sign in or register to help with translation"));
- }
- Site.hideProgress();
+ Site.showProgressLoading();
+ if (session.isLogged()) {
+ // workspace.getI18nTranslatorComponent().show();
+ } else {
+ Site.info(i18n.t("Sign in or register to help with translation"));
+ }
+ Site.hideProgress();
}
}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslator.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorComponent.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorComponent.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslator.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -0,0 +1,26 @@
+/*
+ *
+ * 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.workspace.client.i18n;
+
+public interface I18nTranslator {
+
+ void show();
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorComponent.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorComponent.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorComponent.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -1,28 +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.workspace.client.i18n;
-
-import org.ourproject.kune.platf.client.Component;
-
-public interface I18nTranslatorComponent extends Component {
-
- void show();
-
-}
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-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nTranslatorPresenter.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -22,63 +22,81 @@
import org.ourproject.kune.platf.client.PlatformEvents;
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.platf.client.dto.DoTranslationActionParams;
import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetChild;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetId;
+import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.workspace.client.WorkspaceEvents;
+import org.ourproject.kune.workspace.client.sitebar.Site;
-public class I18nTranslatorPresenter implements I18nTranslatorComponent {
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+public class I18nTranslatorPresenter implements I18nTranslator {
private I18nTranslatorView view;
private final Session session;
+ private final I18nServiceAsync i18nService;
+ private final I18nUITranslationService i18n;
- public I18nTranslatorPresenter(final Session session) {
- this.session = session;
+ public I18nTranslatorPresenter(final Session session, final I18nServiceAsync i18nService,
+ final I18nUITranslationService i18n) {
+ this.session = session;
+ this.i18nService = i18nService;
+ this.i18n = i18n;
}
- public void init(final I18nTranslatorView view) {
- this.view = view;
+ public void attachIconToBottomBar(final View view) {
+ DefaultDispatcher.getInstance().fire(PlatformEvents.ATTACH_TO_EXTENSIBLE_WIDGET,
+ new ExtensibleWidgetChild(ExtensibleWidgetId.CONTENT_BOTTOM_ICONBAR, view));
}
- public View getView() {
- return view;
+ public void doClose() {
+ view.hide();
+ DefaultDispatcher.getInstance().fire(PlatformEvents.DETACH_FROM_EXTENSIBLE_WIDGET,
+ new ExtensibleWidgetChild(ExtensibleWidgetId.CONTENT_BOTTOM_ICONBAR, view));
}
- public Object[][] getLanguages() {
- return session.getLanguagesArray();
+ public void doShowTranslator() {
+ DefaultDispatcher.getInstance().fire(WorkspaceEvents.SHOW_TRANSLATOR, null);
}
- public void show() {
- view.show();
+ public void doTranslation(final String id, final String trKey, final String translation) {
+ Site.showProgressSaving();
+ i18nService.setTranslation(session.getUserHash(), id, translation, new AsyncCallback<String>() {
+ public void onFailure(final Throwable caught) {
+ Site.hideProgress();
+ Site.error(i18n.t("Server error saving translation"));
+ }
+
+ public void onSuccess(final String result) {
+ Site.hideProgress();
+ i18n.setTranslationAfterSave(trKey, result);
+ }
+ });
}
- public void hide() {
- view.hide();
+ public I18nLanguageDTO getLanguage() {
+ return session.getCurrentLanguage();
}
- public void doClose() {
- view.hide();
- DefaultDispatcher.getInstance().fire(PlatformEvents.DETACH_FROM_EXTENSIBLE_WIDGET,
- new ExtensibleWidgetChild(ExtensibleWidgetId.CONTENT_BOTTOM_ICONBAR, view));
+ public Object[][] getLanguages() {
+ return session.getLanguagesArray();
}
- public void doTranslation(final String id, final String trKey, final String translation) {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.DO_TRANSLATION,
- new DoTranslationActionParams(id, trKey, translation));
+ public View getView() {
+ return view;
}
- public I18nLanguageDTO getLanguage() {
- return session.getCurrentLanguage();
+ public void hide() {
+ view.hide();
}
- public void doShowTranslator() {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.SHOW_TRANSLATOR, null);
+ public void init(final I18nTranslatorView view) {
+ this.view = view;
}
- public void attachIconToBottomBar(final View view) {
- DefaultDispatcher.getInstance().fire(PlatformEvents.ATTACH_TO_EXTENSIBLE_WIDGET,
- new ExtensibleWidgetChild(ExtensibleWidgetId.CONTENT_BOTTOM_ICONBAR, view));
+ public void show() {
+ view.show();
}
}
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-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/i18n/I18nUITranslationService.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -21,19 +21,25 @@
import java.util.HashMap;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.platf.client.dto.GetTranslationActionParams;
+import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
+import org.ourproject.kune.platf.client.rpc.I18nServiceAsync;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.ui.KuneStringUtils;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
+import org.ourproject.kune.platf.client.ui.Location;
+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.google.gwt.user.client.rpc.AsyncCallback;
public class I18nUITranslationService extends I18nTranslationService {
private HashMap<String, String> lexicon;
- private String currentLanguage;
-
+ private String currentLanguageCode;
private I18nChangeListenerCollection i18nChangeListeners;
+ private I18nLanguageDTO initialLang;
+ private I18nServiceAsync i18nService;
+ private Session session;
/*
* If a UI element need to be fired when (for instance) the language changes
@@ -41,45 +47,77 @@
* direction, for instance.
*/
public void addI18nChangeListener(final I18nChangeListener listener) {
- if (i18nChangeListeners == null) {
- i18nChangeListeners = new I18nChangeListenerCollection();
- }
- i18nChangeListeners.add(listener);
+ if (i18nChangeListeners == null) {
+ i18nChangeListeners = new I18nChangeListenerCollection();
+ }
+ i18nChangeListeners.add(listener);
}
public void changeCurrentLanguage(final String newLanguage) {
- if (!newLanguage.equals(this.currentLanguage)) {
- setCurrentLanguage(newLanguage);
- changeLocale(newLanguage);
- }
+ if (!newLanguage.equals(this.currentLanguageCode)) {
+ setCurrentLanguage(newLanguage);
+ changeLocale(newLanguage);
+ }
}
public String getCurrentLanguage() {
- return currentLanguage;
+ return currentLanguageCode;
}
+ public I18nLanguageDTO getInitialLang() {
+ return initialLang;
+ }
+
public HashMap<String, String> getLexicon() {
- return lexicon;
+ return lexicon;
}
+ public void init(final I18nServiceAsync i18nService, final Session session, final Slot0 onReady) {
+ this.i18nService = i18nService;
+ this.session = session;
+ final Location loc = WindowUtils.getLocation();
+ final String locale = loc.getParameter("locale");
+ i18nService.getInitialLanguage(locale, new AsyncCallback<I18nLanguageDTO>() {
+ public void onFailure(final Throwable caught) {
+ Log.error("Workspace adaptation to your language failed");
+ }
+
+ public void onSuccess(final I18nLanguageDTO result) {
+ initialLang = result;
+ currentLanguageCode = initialLang.getCode();
+ session.setCurrentLanguage(initialLang);
+ i18nService.getLexicon(initialLang.getCode(), new AsyncCallback<HashMap<String, String>>() {
+ public void onFailure(final Throwable caught) {
+ Log.error("Workspace adaptation to your language failed");
+ }
+
+ public void onSuccess(final HashMap<String, String> result) {
+ lexicon = result;
+ onReady.onEvent();
+ }
+ });
+ }
+ });
+ }
+
public void removeI18nChangeListener(final I18nChangeListener listener) {
- if (i18nChangeListeners != null) {
- i18nChangeListeners.remove(listener);
- }
+ if (i18nChangeListeners != null) {
+ i18nChangeListeners.remove(listener);
+ }
}
public void setCurrentLanguage(final String newLanguage) {
- this.currentLanguage = newLanguage;
+ this.currentLanguageCode = newLanguage;
}
public void setLexicon(final HashMap<String, String> lexicon) {
- this.lexicon = lexicon;
- fireI18nLanguageChange();
+ this.lexicon = lexicon;
+ fireI18nLanguageChange();
}
public void setTranslationAfterSave(final String text, final String translation) {
- lexicon.put(text, translation);
- fireI18nLanguageChange();
+ lexicon.put(text, translation);
+ fireI18nLanguageChange();
}
/**
@@ -94,22 +132,27 @@
* @return text translated in the current language
*/
public String t(final String text) {
- String encodeText = KuneStringUtils.escapeHtmlLight(text);
- String translation = lexicon.get(encodeText);
- if (lexicon.containsKey(encodeText)) {
- if (translation == UNTRANSLATED_VALUE) {
- // Not translated but in db, return text
- translation = removeNT(encodeText);
- }
- } else {
- // Not translated and not in db, make a petition for translation
- DefaultDispatcher.getInstance().fireDeferred(WorkspaceEvents.GET_TRANSLATION,
- new GetTranslationActionParams(this.currentLanguage, text));
- Log.debug("Registering in db '" + text + "' as pending translation");
- translation = removeNT(encodeText);
- lexicon.put(encodeText, UNTRANSLATED_VALUE);
- }
- return decodeHtml(translation);
+ final String encodeText = KuneStringUtils.escapeHtmlLight(text);
+ String translation = lexicon.get(encodeText);
+ if (lexicon.containsKey(encodeText)) {
+ if (translation == UNTRANSLATED_VALUE) {
+ // Not translated but in db, return text
+ translation = removeNT(encodeText);
+ }
+ } else {
+ // Not translated and not in db, make a petition for translation
+ i18nService.getTranslation(session.getUserHash(), currentLanguageCode, text, new AsyncCallback<String>() {
+ public void onFailure(final Throwable caught) {
+ }
+
+ public void onSuccess(final String result) {
+ }
+ });
+ Log.debug("Registering in db '" + text + "' as pending translation");
+ translation = removeNT(encodeText);
+ lexicon.put(encodeText, UNTRANSLATED_VALUE);
+ }
+ return decodeHtml(translation);
}
/**
@@ -158,9 +201,9 @@
}-*/;
private void fireI18nLanguageChange() {
- if (i18nChangeListeners != null) {
- i18nChangeListeners.fireI18nLanguageChange();
- }
+ if (i18nChangeListeners != null) {
+ i18nChangeListeners.fireI18nLanguageChange();
+ }
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -36,12 +36,10 @@
private final SiteBarListener listener;
private String previousToken;
private final Session session;
- private final I18nTranslationService i18n;
public SiteBarPresenter(final SiteBarListener listener, final Session session, final I18nTranslationService i18n) {
this.listener = listener;
this.session = session;
- this.i18n = i18n;
}
public void changeState(final StateToken token) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -39,12 +39,13 @@
public ParticipationSummaryPanel(final ParticipationSummaryPresenter presenter, final I18nTranslationService i18n,
final WorkspaceSkeleton ws) {
super(true);
- super.setHeaderText(i18n.t("Participates as..."));
+ // super.setHeaderText(i18n.t("Participates as..."));
+ super.setHeaderText(i18n.t("Participates in..."));
super.setHeaderTitle(i18n.t("Groups in which participates"));
super.setBorderStylePrimaryName("k-dropdownouter-part");
super.addStyleName("kune-Margin-Medium-t");
- gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This user is not member of any group"), true, false, false,
- false, false);
+ gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This user is not member of any group"), false, false,
+ false, false, false);
final EntitySummary entitySummary = ws.getEntitySummary();
entitySummary.addInSummary(this);
entitySummary.addListener(new ContainerListenerAdapter() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -31,8 +31,8 @@
private final Provider<ParticipationSummary> participationSummaryProvider;
private final Provider<GroupSummary> groupSummaryProvider;
private final SitePublicSpaceLink publicSpaceLink;
- private final RateIt rateIt;
- private final RatePresenter ratePresenter;
+ private final Provider<RateIt> rateItProvider;
+ private final Provider<RatePresenter> ratePresenterProvider;
public WorkspaceManager(final SitePublicSpaceLink publicSpaceLink, final EntityLogo entityLogo,
final EntityTitlePresenter entityTitlePresenter, final EntitySubTitlePresenter entitySubTitlePresenter,
@@ -40,7 +40,7 @@
final Provider<GroupMembersSummary> groupMembersSummaryProvider,
final Provider<ParticipationSummary> participationSummaryProvider,
final Provider<TagsSummary> tagsSummaryProvider, final Provider<GroupSummary> groupSummaryProvider,
- final RateIt rateIt, final RatePresenter ratePresenter) {
+ final Provider<RateIt> rateItProvider, final Provider<RatePresenter> rateProvider) {
this.publicSpaceLink = publicSpaceLink;
this.entityLogo = entityLogo;
this.entityTitlePresenter = entityTitlePresenter;
@@ -51,8 +51,8 @@
this.participationSummaryProvider = participationSummaryProvider;
this.tagsProvider = tagsSummaryProvider;
this.groupSummaryProvider = groupSummaryProvider;
- this.rateIt = rateIt;
- this.ratePresenter = ratePresenter;
+ this.rateItProvider = rateItProvider;
+ this.ratePresenterProvider = rateProvider;
wsThemePresenter.onThemeChanged(new Slot2<WsTheme, WsTheme>() {
public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
entityLogo.setTheme(oldTheme, newTheme);
@@ -82,8 +82,8 @@
groupSummaryProvider.get().setState(state);
tagsProvider.get().setState(state);
wsThemePresenter.setState(state);
- rateIt.setState(state);
- ratePresenter.setState(state);
+ rateItProvider.get().setState(state);
+ ratePresenterProvider.get().setState(state);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -15,5 +15,7 @@
newGroupHyperlink.setTargetHistoryToken(SiteToken.newgroup.toString());
ws.getSiteBar().addSeparator();
ws.getSiteBar().add(newGroupHyperlink);
+ ws.getSiteBar().addSpacer();
+ ws.getSiteBar().addSpacer();
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitepublic/SitePublicSpaceLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitepublic/SitePublicSpaceLinkPanel.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitepublic/SitePublicSpaceLinkPanel.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -39,7 +39,8 @@
});
gotoPublic.setTitle(i18n.t("Leave the workspace and go to the public space of this group")
+ Site.IN_DEVELOPMENT);
- gotoPublic.addStyleName("kune-SiteBarPanel-LabelLink");
+ gotoPublic.addStyleName("k-sitebar-labellink");
+ contentNoPublic.addStyleName("k-sitebar-labellink");
}
public void setContentGotoPublicUrl(final String publicUrl) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -5,10 +5,8 @@
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.ui.Hyperlink;
-import com.gwtext.client.widgets.ToolbarButton;
public class SiteSignInLinkPanel implements SiteSignInLinkView {
- private final ToolbarButton loggedUserMenu;
private final Hyperlink signInHyperlink;
public SiteSignInLinkPanel(final SiteSignInLinkPresenter presenter, final I18nUITranslationService i18n,
@@ -16,22 +14,10 @@
signInHyperlink = new Hyperlink();
signInHyperlink.setText(i18n.t("Sign in to collaborate"));
signInHyperlink.setTargetHistoryToken(SiteToken.signin.toString());
- loggedUserMenu = new ToolbarButton("user");
ws.getSiteBar().add(signInHyperlink);
- // ws.getEntityWorkspace().setContainer(loggedUserMenu);
- // loggedUserMenu.render(loggedUserMenu.getElement());
}
- public void setLoggedUserMenuVisible(final boolean visible) {
- loggedUserMenu.setVisible(visible);
- }
-
- public void setLoggedUserName(final String name, final String homePage) {
- loggedUserMenu.setText(name);
- }
-
- public void setVisibleSignInLink(final boolean visible) {
+ public void setVisible(final boolean visible) {
signInHyperlink.setVisible(visible);
}
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPresenter.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPresenter.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -13,13 +13,12 @@
public SiteSignInLinkPresenter(final Session session) {
session.onUserSignIn(new Slot<UserInfoDTO>() {
public void onEvent(final UserInfoDTO user) {
- doAfterSignIn(user);
+ view.setVisible(false);
}
});
session.onUserSignOut(new Slot<Object>() {
public void onEvent(final Object parameter) {
- setLogged(false);
- view.setLoggedUserName("", "");
+ view.setVisible(true);
}
});
}
@@ -30,21 +29,7 @@
public void init(final SiteSignInLinkView view) {
this.view = view;
- setLogged(false);
+ view.setVisible(false);
}
- private void doAfterSignIn(final UserInfoDTO user) {
- if (user == null) {
- setLogged(false);
- } else {
- setLogged(true);
- view.setLoggedUserName(user.getShortName(), user.getHomePage());
- }
- }
-
- private void setLogged(boolean logged) {
- view.setVisibleSignInLink(!logged);
- view.setLoggedUserMenuVisible(logged);
- }
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkView.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkView.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -4,10 +4,6 @@
public interface SiteSignInLinkView extends View {
- void setLoggedUserMenuVisible(boolean visible);
+ void setVisible(boolean visible);
- void setLoggedUserName(String shortName, String homePage);
-
- void setVisibleSignInLink(boolean visible);
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPanel.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPanel.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -16,7 +16,7 @@
final WorkspaceSkeleton ws) {
signOutLabel = new Label();
signOutLabel.setText(i18n.t("Sign out"));
- signOutLabel.addStyleName("kune-SiteBarPanel-LabelLink");
+ signOutLabel.addStyleName("k-sitebar-labellink");
ws.getSiteBar().add(signOutLabel);
signOutLabel.addClickListener(new ClickListener() {
public void onClick(final Widget arg0) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -28,7 +28,7 @@
this.session = session;
this.userServiceProvider = userServiceProvider;
session.onUserSignIn(new Slot<UserInfoDTO>() {
- public void onEvent(final UserInfoDTO parameter) {
+ public void onEvent(final UserInfoDTO userInfoDTO) {
view.setVisible(true);
}
});
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenu.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenu.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenu.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteusermenu;
+
+public interface SiteUserMenu {
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenuPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenuPanel.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenuPanel.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -0,0 +1,43 @@
+package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteusermenu;
+
+import java.util.List;
+
+import org.ourproject.kune.platf.client.dto.LinkDTO;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
+
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.PushButton;
+import com.google.gwt.user.client.ui.Widget;
+import com.gwtext.client.widgets.menu.Menu;
+
+public class SiteUserMenuPanel implements SiteUserMenuView {
+
+ private final PushButton loggedUserMenu;
+ private final Widget separator;
+ private final Menu userMenu;
+
+ public SiteUserMenuPanel(final SiteUserMenuPresenter presenter, final WorkspaceSkeleton ws) {
+ loggedUserMenu = new PushButton("");
+ ws.getSiteBar().add(loggedUserMenu);
+ separator = ws.getSiteBar().addSeparator();
+ userMenu = new Menu();
+ loggedUserMenu.addClickListener(new ClickListener() {
+ public void onClick(final Widget sender) {
+ userMenu.showAt(sender.getAbsoluteLeft(), sender.getAbsoluteTop());
+ }
+ });
+ }
+
+ public void setLoggedUserName(final String name) {
+ loggedUserMenu.setText(name);
+ }
+
+ public void setUseGroupsIsMember(final List<LinkDTO> groupsIsAdmin, final List<LinkDTO> groupsIsCollab) {
+ // TODO Auto-generated method stub
+ }
+
+ public void setVisible(final boolean visible) {
+ loggedUserMenu.setVisible(visible);
+ separator.setVisible(visible);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenuPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenuPresenter.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenuPresenter.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -0,0 +1,37 @@
+package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteusermenu;
+
+import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.state.Session;
+
+import com.calclab.suco.client.signal.Slot;
+
+public class SiteUserMenuPresenter implements SiteUserMenu {
+
+ private SiteUserMenuView view;
+
+ public SiteUserMenuPresenter(final Session session) {
+ session.onUserSignIn(new Slot<UserInfoDTO>() {
+ public void onEvent(final UserInfoDTO userInfoDTO) {
+ view.setVisible(true);
+ view.setLoggedUserName(userInfoDTO.getShortName());
+ view.setUseGroupsIsMember(userInfoDTO.getGroupsIsAdmin(), userInfoDTO.getGroupsIsCollab());
+ }
+ });
+ session.onUserSignOut(new Slot<Object>() {
+ public void onEvent(final Object parameter) {
+ view.setVisible(false);
+ view.setLoggedUserName("");
+ }
+ });
+ }
+
+ public View getView() {
+ return view;
+ }
+
+ public void init(final SiteUserMenuView view) {
+ this.view = view;
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenuView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenuView.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteusermenu/SiteUserMenuView.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -0,0 +1,16 @@
+package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteusermenu;
+
+import java.util.List;
+
+import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.LinkDTO;
+
+public interface SiteUserMenuView extends View {
+
+ void setLoggedUserName(String name);
+
+ void setUseGroupsIsMember(List<LinkDTO> groupsIsAdmin, List<LinkDTO> groupsIsCollab);
+
+ void setVisible(boolean visible);
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/EntityWorkspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/EntityWorkspace.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/EntityWorkspace.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -65,10 +65,10 @@
contentBottomBar = new Toolbar();
containerTopBar = new Toolbar();
containerBottomBar = new Toolbar();
- contentTopBar.addClass("k-toolbar-bottom-line");
- contentBottomBar.addClass("k-toolbar-top-line");
- containerTopBar.addClass("k-toolbar-bottom-line");
- containerBottomBar.addClass("k-toolbar-top-line");
+ contentTopBar.addStyleName("k-toolbar-bottom-line");
+ contentBottomBar.addStyleName("k-toolbar-top-line");
+ containerTopBar.addStyleName("k-toolbar-bottom-line");
+ containerBottomBar.addStyleName("k-toolbar-top-line");
contentWrap.add(contentTopBar.getPanel(), Position.NORTH, false, DEF_TOOLBAR_HEIGHT);
containerWrap.add(containerTopBar.getPanel(), Position.NORTH, false, DEF_TOOLBAR_HEIGHT);
contentWrap.add(content, Position.CENTER);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/SiteBar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/SiteBar.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/SiteBar.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -18,16 +18,16 @@
titleBar.add(widget);
}
- public void addFill() {
- titleBar.addFill();
+ public Widget addFill() {
+ return titleBar.addFill();
}
- public void addSeparator() {
- titleBar.addSeparator();
+ public Widget addSeparator() {
+ return titleBar.addSeparator();
}
- public void addSpacer() {
- titleBar.addSpacer();
+ public Widget addSpacer() {
+ return titleBar.addSpacer();
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/TitleBar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/TitleBar.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/TitleBar.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -1,5 +1,48 @@
package org.ourproject.kune.workspace.client.ui.newtmp.skel;
-public class TitleBar extends AbstractBar {
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
-}
+public class TitleBar extends Composite {
+
+ private final HorizontalPanel childPanel;
+ private final HorizontalPanel mainPanel;
+
+ public TitleBar() {
+ mainPanel = new HorizontalPanel();
+ childPanel = new HorizontalPanel();
+ mainPanel.add(childPanel);
+ initWidget(mainPanel);
+ mainPanel.setWidth("100%");
+ }
+
+ public void add(final Widget widget) {
+ childPanel.add(widget);
+ childPanel.setCellVerticalAlignment(widget, VerticalPanel.ALIGN_MIDDLE);
+ }
+
+ public Widget addFill() {
+ final Label emptyLabel = new Label("");
+ this.add(emptyLabel);
+ childPanel.setCellWidth(emptyLabel, "100%");
+ return emptyLabel;
+ }
+
+ public Widget addSeparator() {
+ final Label emptyLabel = new Label("");
+ emptyLabel.setStyleName("ytb-sep");
+ emptyLabel.addStyleName("k-toolbar-sep");
+ this.add(emptyLabel);
+ return emptyLabel;
+ }
+
+ public Widget addSpacer() {
+ final Label emptyLabel = new Label("");
+ emptyLabel.setStyleName("ytb-spacer");
+ this.add(emptyLabel);
+ return emptyLabel;
+ }
+}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/Toolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/Toolbar.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/Toolbar.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -2,12 +2,14 @@
import org.ourproject.kune.platf.client.ui.DefaultBorderLayout;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.widgets.Panel;
public class Toolbar {
private final Panel container;
- private final AbstractBar horPanel;
+ private final HorizontalPanel childPanel;
public Toolbar() {
container = new Panel();
@@ -18,31 +20,41 @@
container.setHeader(false);
container.setBaseCls("x-toolbar");
container.addClass("x-panel");
- horPanel = new AbstractBar();
- container.add(horPanel);
+ childPanel = new HorizontalPanel();
+ container.add(childPanel);
}
public void add(final Widget widget) {
- horPanel.add(widget);
+ childPanel.add(widget);
if (container.isRendered()) {
container.doLayout(false);
}
}
- public void addClass(final String cls) {
- container.addClass(cls);
+ public Widget addFill() {
+ final Label emptyLabel = new Label("");
+ this.add(emptyLabel);
+ childPanel.setCellWidth(emptyLabel, "100%");
+ return emptyLabel;
}
- public void addFill() {
- horPanel.addFill();
+ public Widget addSeparator() {
+ final Label emptyLabel = new Label("");
+ emptyLabel.setStyleName("ytb-sep");
+ emptyLabel.addStyleName("k-toolbar-sep");
+ this.add(emptyLabel);
+ return emptyLabel;
}
- public void addSeparator() {
- horPanel.addSeparator();
+ public Widget addSpacer() {
+ final Label emptyLabel = new Label("");
+ emptyLabel.setStyleName("ytb-spacer");
+ this.add(emptyLabel);
+ return emptyLabel;
}
- public void addSpacer() {
- horPanel.addSpacer();
+ public void addStyleName(final String cls) {
+ container.addClass(cls);
}
public Panel getPanel() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -3,6 +3,7 @@
import org.ourproject.kune.platf.client.ui.DefaultBorderLayout;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
+import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.gwtext.client.core.ExtElement;
import com.gwtext.client.widgets.MessageBox;
@@ -30,6 +31,8 @@
mainPanel.add(sitebar, DefaultBorderLayout.Position.NORTH, DefaultBorderLayout.DEF_TOOLBAR_HEIGHT);
mainPanel.add(entity.getPanel(), DefaultBorderLayout.Position.CENTER);
container.add(mainPanel.getPanel());
+ getEntityWorkspace().getContentTopBar().add(new Label("Sorry, kune workspace under heavy refactorization"));
+ new Viewport(container);
}
public Panel getEntityMainHeader() {
@@ -64,10 +67,6 @@
entity.setTheme(oldTheme, newTheme);
}
- public void show() {
- new Viewport(container);
- }
-
public void showAlertMessage(final String title, final String message) {
MessageBox.alert(title, message, new MessageBox.AlertCallback() {
public void execute() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -26,7 +26,6 @@
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetChild;
import org.ourproject.kune.platf.client.tool.ClientTool;
import org.ourproject.kune.workspace.client.component.WorkspaceComponent;
-import org.ourproject.kune.workspace.client.i18n.I18nTranslatorComponent;
import org.ourproject.kune.workspace.client.licensefoot.LicenseComponent;
public interface Workspace extends Component {
@@ -53,8 +52,6 @@
public ContentTitleComponent getContentTitleComponent();
- public I18nTranslatorComponent getI18nTranslatorComponent();
-
public LicenseComponent getLicenseComponent();
public void setContent(WorkspaceComponent contentComponent);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -32,7 +32,6 @@
import org.ourproject.kune.platf.client.tool.ClientTool;
import org.ourproject.kune.workspace.client.WorkspaceEvents;
import org.ourproject.kune.workspace.client.component.WorkspaceComponent;
-import org.ourproject.kune.workspace.client.i18n.I18nTranslatorComponent;
import org.ourproject.kune.workspace.client.licensefoot.LicenseComponent;
import com.google.gwt.user.client.ui.Widget;
@@ -96,10 +95,6 @@
return components.getContentTitleComponent();
}
- public I18nTranslatorComponent getI18nTranslatorComponent() {
- return components.getI18nTranslatorComponent();
- }
-
public LicenseComponent getLicenseComponent() {
return components.getLicenseComponent();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -21,7 +21,6 @@
package org.ourproject.kune.workspace.client.workspace;
import org.ourproject.kune.workspace.client.WorkspaceFactory;
-import org.ourproject.kune.workspace.client.i18n.I18nTranslatorComponent;
import org.ourproject.kune.workspace.client.licensefoot.LicenseComponent;
public class WorkspaceUIComponents {
@@ -29,7 +28,6 @@
private ContentTitleComponent contentTitle;
private ContentSubTitleComponent contentSubTitle;
private ContentToolBarComponent contentToolBar;
- private I18nTranslatorComponent i18nTranslatorSearch;
public WorkspaceUIComponents(final WorkspacePresenter presenter) {
}
@@ -55,13 +53,6 @@
return contentToolBar;
}
- public I18nTranslatorComponent getI18nTranslatorComponent() {
- if (i18nTranslatorSearch == null) {
- i18nTranslatorSearch = WorkspaceFactory.createI18nTranslatorComponent();
- }
- return i18nTranslatorSearch;
- }
-
public LicenseComponent getLicenseComponent() {
if (license == null) {
license = WorkspaceFactory.createLicenseComponent();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -25,7 +25,6 @@
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.tool.ToolTrigger;
-import org.ourproject.kune.platf.client.ui.DropDownPanel;
import org.ourproject.kune.platf.client.ui.RoundedBorderDecorator;
import org.ourproject.kune.platf.client.ui.SplitterListener;
import org.ourproject.kune.platf.client.ui.gwtcustom.CustomHorizontalSplitPanel;
@@ -60,9 +59,6 @@
private final VerticalPanel groupDropDownsVP;
private final RoundedBorderDecorator contentTitleBarBorderDec;
private final RoundedBorderDecorator bottomBorderDecorator;
- private DropDownPanel groupMembersPanel;
- private DropDownPanel participationPanel;
- private DropDownPanel groupSummaryPanel;
private final VerticalPanel cntcxtVP;
private final ScrollPanel groupDropDownsSP;
private final BottomIconsTrayPanel bottomIconsTrayPanel;
@@ -74,7 +70,6 @@
private final HorizontalPanel contentBottomToolBarHP;
private ContentBottomToolBarPanel contentBottomToolBarPanel;
private LicensePanel bottomPanel;
- private DropDownPanel tagsPanel;
private int previousRightWidgetWidth;
private final WorkspacePresenter presenter;
@@ -276,12 +271,12 @@
}
public void setGroupMembers(final View view) {
- groupMembersPanel = (DropDownPanel) view;
+ // groupMembersPanel = (DropDownPanel) view;
// AddDropDown(groupMembersPanel, colorTheme.getGroupMembersDD());
}
public void setParticipation(final View view) {
- participationPanel = (DropDownPanel) view;
+ // participationPanel = (DropDownPanel) view;
// AddDropDown(participationPanel, colorTheme.getParticipationDD());
}
@@ -290,12 +285,12 @@
}
public void setSummary(final View view) {
- groupSummaryPanel = (DropDownPanel) view;
+ // groupSummaryPanel = (DropDownPanel) view;
// AddDropDown(groupSummaryPanel, colorTheme.getSummaryDD());
}
public void setTags(final View view) {
- tagsPanel = (DropDownPanel) view;
+ // tagsPanel = (DropDownPanel) view;
// AddDropDown(tagsPanel, colorTheme.getTagsDD());
}
@@ -343,12 +338,6 @@
super.setVisible(visible);
}
- private void AddDropDown(final DropDownPanel panel, final String color) {
- groupDropDownsVP.add(panel);
- panel.setWidth("145px");
- // panel.setColor(color);
- }
-
private void adjustSizeContentSP() {
final int width = cntcxtHSP.getLeftWidgetAvailableWidth() - 2;
final int height = cntcxtHSP.getOffsetHeight() - 29 - contentToolBarHP.getOffsetHeight();
Modified: trunk/src/main/resources/dozerBeanMapping.xml
===================================================================
--- trunk/src/main/resources/dozerBeanMapping.xml 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/main/resources/dozerBeanMapping.xml 2008-07-31 13:28:16 UTC (rev 822)
@@ -307,5 +307,14 @@
<b>abuseInformersCount</b>
</field>
</mapping>
+
+ <mapping>
+ <class-a>org.ourproject.kune.platf.client.dto.LinkDTO</class-a>
+ <class-b>org.ourproject.kune.platf.server.domain.User</class-b>
+ <field>
+ <a>longName</a>
+ <b>name</b>
+ </field>
+ </mapping>
</mappings>
\ No newline at end of file
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/mapper/MapperTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/mapper/MapperTest.java 2008-07-28 02:23:02 UTC (rev 821)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/mapper/MapperTest.java 2008-07-31 13:28:16 UTC (rev 822)
@@ -44,199 +44,207 @@
@Before
public void inject() {
- TestHelper.inject(this);
+ TestHelper.inject(this);
}
@Test
public void testCommentMapper() {
- final Content d = createTestContent();
- Comment comment = new Comment();
- comment.setContent(d);
- comment.setText("Some text");
- User user = new User();
- comment.addPositiveVoter(user);
- comment.addPositiveVoter(user);
- CommentDTO commentDTO = mapper.map(comment, CommentDTO.class);
- assertEquals(0, commentDTO.getNegativeVotersCount());
- assertEquals(0, commentDTO.getAbuseInformersCount());
- assertEquals(1, commentDTO.getPositiveVotersCount());
- comment.addNegativeVoter(user);
- comment.addNegativeVoter(user);
- commentDTO = mapper.map(comment, CommentDTO.class);
- assertEquals(1, commentDTO.getNegativeVotersCount());
- assertEquals(0, commentDTO.getAbuseInformersCount());
- assertEquals(0, commentDTO.getPositiveVotersCount());
- comment.addAbuseInformer(user);
- comment.addAbuseInformer(user);
- commentDTO = mapper.map(comment, CommentDTO.class);
- assertEquals(1, commentDTO.getNegativeVotersCount());
- assertEquals(1, commentDTO.getAbuseInformersCount());
- assertEquals(0, commentDTO.getPositiveVotersCount());
- Comment childComment = new Comment();
- childComment.setContent(d);
- childComment.setParent(comment);
- comment.getChilds().add(childComment);
- commentDTO = mapper.map(comment, CommentDTO.class);
- CommentDTO childCommentDTO = mapper.map(childComment, CommentDTO.class);
- assertEquals(1, comment.getChilds().size());
- assertEquals(commentDTO, childCommentDTO.getParent());
+ final Content d = createTestContent();
+ final Comment comment = new Comment();
+ comment.setContent(d);
+ comment.setText("Some text");
+ final User user = new User();
+ comment.addPositiveVoter(user);
+ comment.addPositiveVoter(user);
+ CommentDTO commentDTO = mapper.map(comment, CommentDTO.class);
+ assertEquals(0, commentDTO.getNegativeVotersCount());
+ assertEquals(0, commentDTO.getAbuseInformersCount());
+ assertEquals(1, commentDTO.getPositiveVotersCount());
+ comment.addNegativeVoter(user);
+ comment.addNegativeVoter(user);
+ commentDTO = mapper.map(comment, CommentDTO.class);
+ assertEquals(1, commentDTO.getNegativeVotersCount());
+ assertEquals(0, commentDTO.getAbuseInformersCount());
+ assertEquals(0, commentDTO.getPositiveVotersCount());
+ comment.addAbuseInformer(user);
+ comment.addAbuseInformer(user);
+ commentDTO = mapper.map(comment, CommentDTO.class);
+ assertEquals(1, commentDTO.getNegativeVotersCount());
+ assertEquals(1, commentDTO.getAbuseInformersCount());
+ assertEquals(0, commentDTO.getPositiveVotersCount());
+ final Comment childComment = new Comment();
+ childComment.setContent(d);
+ childComment.setParent(comment);
+ comment.getChilds().add(childComment);
+ commentDTO = mapper.map(comment, CommentDTO.class);
+ final CommentDTO childCommentDTO = mapper.map(childComment, CommentDTO.class);
+ assertEquals(1, comment.getChilds().size());
+ assertEquals(commentDTO, childCommentDTO.getParent());
}
@Test
public void testContentDescriptorMapping() {
- final Content d = new Content();
- d.setId(1l);
- final Revision revision = new Revision(d);
- revision.setTitle("title");
- d.addRevision(revision);
+ final Content d = new Content();
+ d.setId(1l);
+ final Revision revision = new Revision(d);
+ revision.setTitle("title");
+ d.addRevision(revision);
- final ContentDTO dto = mapper.map(d, ContentDTO.class);
- assertEquals(1, (long) dto.getId());
- assertEquals("title", dto.getTitle());
+ final ContentDTO dto = mapper.map(d, ContentDTO.class);
+ assertEquals(1, (long) dto.getId());
+ assertEquals("title", dto.getTitle());
}
@Test
public void testContentDescriptorToLinkMapping() {
- final Content d = createTestContent();
+ final Content d = createTestContent();
- final LinkDTO dto = mapper.map(d, LinkDTO.class);
- assertEquals("title", dto.getLongName());
- assertEquals("grouptest", dto.getShortName());
- assertEquals("grouptest.docs.1.1", dto.getLink());
+ final LinkDTO dto = mapper.map(d, LinkDTO.class);
+ assertEquals("title", dto.getLongName());
+ assertEquals("grouptest", dto.getShortName());
+ assertEquals("grouptest.docs.1.1", dto.getLink());
}
@Test
public void testContentMapping() {
- final State c = new State();
- c.setContentRights(new AccessRights(true, true, true));
- final Group groupAdmins = TestDomainHelper.createGroup(1);
- final Group groupEdit = TestDomainHelper.createGroup(2);
- final Group groupView = TestDomainHelper.createGroup(3);
- c.setAccessLists(TestDomainHelper.createAccessLists(groupAdmins, groupEdit, groupView));
- c.setRate(10.2d);
- c.setRateByUsers(3l);
- c.setCurrentUserRate(null);
+ final State c = new State();
+ c.setContentRights(new AccessRights(true, true, true));
+ final Group groupAdmins = TestDomainHelper.createGroup(1);
+ final Group groupEdit = TestDomainHelper.createGroup(2);
+ final Group groupView = TestDomainHelper.createGroup(3);
+ c.setAccessLists(TestDomainHelper.createAccessLists(groupAdmins, groupEdit, groupView));
+ c.setRate(10.2d);
+ c.setRateByUsers(3l);
+ c.setCurrentUserRate(null);
- final StateDTO dto = mapper.map(c, StateDTO.class);
- assertEquals(c.getContentRights().isAdministrable(), dto.getContentRights().isAdministrable());
+ final StateDTO dto = mapper.map(c, StateDTO.class);
+ assertEquals(c.getContentRights().isAdministrable(), dto.getContentRights().isAdministrable());
- assertValidAccessListsMapping(c.getAccessLists().getAdmins(), dto.getAccessLists().getAdmins());
- assertValidAccessListsMapping(c.getAccessLists().getEditors(), dto.getAccessLists().getEditors());
- assertValidAccessListsMapping(c.getAccessLists().getViewers(), dto.getAccessLists().getViewers());
+ assertValidAccessListsMapping(c.getAccessLists().getAdmins(), dto.getAccessLists().getAdmins());
+ assertValidAccessListsMapping(c.getAccessLists().getEditors(), dto.getAccessLists().getEditors());
+ assertValidAccessListsMapping(c.getAccessLists().getViewers(), dto.getAccessLists().getViewers());
- assertEquals(dto.getRate(), c.getRate());
- assertEquals(dto.getRateByUsers(), c.getRateByUsers());
- assertEquals(dto.getCurrentUserRate(), c.getCurrentUserRate());
+ assertEquals(dto.getRate(), c.getRate());
+ assertEquals(dto.getRateByUsers(), c.getRateByUsers());
+ assertEquals(dto.getCurrentUserRate(), c.getCurrentUserRate());
}
@Test
public void testFolderMapping() {
- final Container container = new Container();
- container.addChild(new Container());
- container.addChild(new Container());
- container.addContent(new Content());
- container.addContent(new Content());
- container.addContent(new Content());
- final Container containerChild = new Container();
- container.addChild(containerChild);
- List<Container> absolutePathChild = new ArrayList<Container>();
- absolutePathChild.add(container);
- containerChild.setAbsolutePath(absolutePathChild);
+ final Container container = new Container();
+ container.addChild(new Container());
+ container.addChild(new Container());
+ container.addContent(new Content());
+ container.addContent(new Content());
+ container.addContent(new Content());
+ final Container containerChild = new Container();
+ container.addChild(containerChild);
+ final List<Container> absolutePathChild = new ArrayList<Container>();
+ absolutePathChild.add(container);
+ containerChild.setAbsolutePath(absolutePathChild);
- final ContainerDTO dto = mapper.map(container, ContainerDTO.class);
- assertEquals(3, dto.getChilds().size());
- assertEquals(3, dto.getContents().size());
- assertTrue(dto.getContents().get(0) instanceof ContentDTO);
- assertTrue(dto.getChilds().get(0) instanceof ContainerDTO);
+ final ContainerDTO dto = mapper.map(container, ContainerDTO.class);
+ assertEquals(3, dto.getChilds().size());
+ assertEquals(3, dto.getContents().size());
+ assertTrue(dto.getContents().get(0) instanceof ContentDTO);
+ assertTrue(dto.getChilds().get(0) instanceof ContainerDTO);
- final ContainerDTO dtoChild = mapper.map(containerChild, ContainerDTO.class);
- assertTrue(dtoChild.getAbsolutePath()[0] instanceof ContainerSimpleDTO);
+ final ContainerDTO dtoChild = mapper.map(containerChild, ContainerDTO.class);
+ assertTrue(dtoChild.getAbsolutePath()[0] instanceof ContainerSimpleDTO);
}
@Test
public void testGroupListMapping() {
- assertMapping(GroupListMode.EVERYONE, GroupListDTO.EVERYONE);
- assertMapping(GroupListMode.NOBODY, GroupListDTO.NOBODY);
- assertMapping(GroupListMode.NORMAL, GroupListDTO.NORMAL);
+ assertMapping(GroupListMode.EVERYONE, GroupListDTO.EVERYONE);
+ assertMapping(GroupListMode.NOBODY, GroupListDTO.NOBODY);
+ assertMapping(GroupListMode.NORMAL, GroupListDTO.NORMAL);
}
@Test
public void testGroupMapping() {
- final Group group = new Group("shortName", "name");
- final GroupDTO dto = mapper.map(group, GroupDTO.class);
- assertEquals(group.getLongName(), dto.getLongName());
- assertEquals(group.getShortName(), dto.getShortName());
+ final Group group = new Group("shortName", "name");
+ final GroupDTO dto = mapper.map(group, GroupDTO.class);
+ assertEquals(group.getLongName(), dto.getLongName());
+ assertEquals(group.getShortName(), dto.getShortName());
}
@Test
public void testLicenseMapping() {
- final License licenseCC = new License("by-nc-nd", "Creative Commons Attribution-NonCommercial-NoDerivs", "cc1",
- "http://creativecommons.org/licenses/by-nc-nd/3.0/", true, false, false, "cc2", "cc3");
+ final License licenseCC = new License("by-nc-nd", "Creative Commons Attribution-NonCommercial-NoDerivs", "cc1",
+ "http://creativecommons.org/licenses/by-nc-nd/3.0/", true, false, false, "cc2", "cc3");
- final License licenseNotCC = new License("gfdl", "GNU Free Documentation License", "nocc1",
- "http://www.gnu.org/copyleft/fdl.html", false, true, false, "nocc2", "nocc3");
+ final License licenseNotCC = new License("gfdl", "GNU Free Documentation License", "nocc1",
+ "http://www.gnu.org/copyleft/fdl.html", false, true, false, "nocc2", "nocc3");
- final LicenseDTO dtoCC = mapper.map(licenseCC, LicenseDTO.class);
- final LicenseDTO dtoNotCC = mapper.map(licenseNotCC, LicenseDTO.class);
+ final LicenseDTO dtoCC = mapper.map(licenseCC, LicenseDTO.class);
+ final LicenseDTO dtoNotCC = mapper.map(licenseNotCC, LicenseDTO.class);
- assertEquals("by-nc-nd", dtoCC.getShortName());
- assertEquals("gfdl", dtoNotCC.getShortName());
- assertEquals("Creative Commons Attribution-NonCommercial-NoDerivs", dtoCC.getLongName());
- assertEquals("GNU Free Documentation License", dtoNotCC.getLongName());
- assertEquals("http://creativecommons.org/licenses/by-nc-nd/3.0/", dtoCC.getUrl());
- assertEquals("http://www.gnu.org/copyleft/fdl.html", dtoNotCC.getUrl());
- assertTrue(dtoCC.isCC());
- assertFalse(dtoNotCC.isCC());
- assertFalse(dtoCC.isCopyleft());
- assertTrue(dtoNotCC.isCopyleft());
- assertFalse(dtoCC.isDeprecated());
- assertFalse(dtoNotCC.isDeprecated());
- assertEquals("cc1", dtoCC.getDescription());
- assertEquals("cc2", dtoCC.getRdf());
- assertEquals("cc3", dtoCC.getImageUrl());
- assertEquals("nocc1", dtoNotCC.getDescription());
- assertEquals("nocc2", dtoNotCC.getRdf());
- assertEquals("nocc3", dtoNotCC.getImageUrl());
+ assertEquals("by-nc-nd", dtoCC.getShortName());
+ assertEquals("gfdl", dtoNotCC.getShortName());
+ assertEquals("Creative Commons Attribution-NonCommercial-NoDerivs", dtoCC.getLongName());
+ assertEquals("GNU Free Documentation License", dtoNotCC.getLongName());
+ assertEquals("http://creativecommons.org/licenses/by-nc-nd/3.0/", dtoCC.getUrl());
+ assertEquals("http://www.gnu.org/copyleft/fdl.html", dtoNotCC.getUrl());
+ assertTrue(dtoCC.isCC());
+ assertFalse(dtoNotCC.isCC());
+ assertFalse(dtoCC.isCopyleft());
+ assertTrue(dtoNotCC.isCopyleft());
+ assertFalse(dtoCC.isDeprecated());
+ assertFalse(dtoNotCC.isDeprecated());
+ assertEquals("cc1", dtoCC.getDescription());
+ assertEquals("cc2", dtoCC.getRdf());
+ assertEquals("cc3", dtoCC.getImageUrl());
+ assertEquals("nocc1", dtoNotCC.getDescription());
+ assertEquals("nocc2", dtoNotCC.getRdf());
+ assertEquals("nocc3", dtoNotCC.getImageUrl());
}
+ @Test
+ public void testUserToLinkMappping() {
+ final User user = new User("shortName", "longName", "", "", null, null, null);
+ final LinkDTO dto = mapper.map(user, LinkDTO.class);
+ assertEquals("shortName", dto.getShortName());
+ assertEquals("longName", dto.getLongName());
+ }
+
private void assertMapping(final GroupListMode mode, final String modeName) {
- final GroupList list = new GroupList();
- list.setMode(mode);
- final GroupListDTO dto = mapper.map(list, GroupListDTO.class);
- assertEquals(modeName, dto.getMode());
- final GroupList listBack = mapper.map(dto, GroupList.class);
- assertEquals(mode, listBack.getMode());
+ final GroupList list = new GroupList();
+ list.setMode(mode);
+ final GroupListDTO dto = mapper.map(list, GroupListDTO.class);
+ assertEquals(modeName, dto.getMode());
+ final GroupList listBack = mapper.map(dto, GroupList.class);
+ assertEquals(mode, listBack.getMode());
}
private void assertValidAccessListsMapping(final GroupList groupList, final GroupListDTO groupListDTO) {
- final List<Group> listOrig = groupList.getList();
- final List<GroupDTO> listDto = groupListDTO.getList();
- assertEquals(listDto.size(), listOrig.size());
- for (int i = 0; i < listDto.size(); i++) {
- final Object object = listDto.get(i);
- assertEquals(GroupDTO.class, object.getClass());
- final GroupDTO d = (GroupDTO) object;
- final Group g = listOrig.get(i);
- assertNotNull(d);
- assertNotNull(g);
- final GroupDTO map = mapper.map(g, GroupDTO.class);
- assertEquals(map, d);
- }
+ final List<Group> listOrig = groupList.getList();
+ final List<GroupDTO> listDto = groupListDTO.getList();
+ assertEquals(listDto.size(), listOrig.size());
+ for (int i = 0; i < listDto.size(); i++) {
+ final Object object = listDto.get(i);
+ assertEquals(GroupDTO.class, object.getClass());
+ final GroupDTO d = (GroupDTO) object;
+ final Group g = listOrig.get(i);
+ assertNotNull(d);
+ assertNotNull(g);
+ final GroupDTO map = mapper.map(g, GroupDTO.class);
+ assertEquals(map, d);
+ }
}
private Content createTestContent() {
- final Group group = new Group("grouptest", "This is a group Test");
- final Container container = new Container();
- container.setId(1l);
- container.setToolName("docs");
- container.setOwner(group);
- container.setName("folder");
- final Content d = new Content();
- d.setId(1l);
- final Revision revision = new Revision(d);
- revision.setTitle("title");
- d.addRevision(revision);
- d.setContainer(container);
- return d;
+ final Group group = new Group("grouptest", "This is a group Test");
+ final Container container = new Container();
+ container.setId(1l);
+ container.setToolName("docs");
+ container.setOwner(group);
+ container.setName("folder");
+ final Content d = new Content();
+ d.setId(1l);
+ final Revision revision = new Revision(d);
+ revision.setTitle("title");
+ d.addRevision(revision);
+ d.setContainer(container);
+ return d;
}
}
1
0
Author: vjrj
Date: 2008-07-28 04:23:02 +0200 (Mon, 28 Jul 2008)
New Revision: 821
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/QuickTipHelper.java
Modified:
trunk/pom.xml
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune.css
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/ui/DropDownPanel.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/RateItPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/stacks/StackedDropDownPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/EntityWorkspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java
trunk/src/main/resources/kune.properties
trunk/src/test/java/org/ourproject/kune/platf/server/manager/SocialNetworkManagerTest.java
Log:
Complete - task 25: Make a Quicktip initialization class (for both emite and kune)
Complete - task 17: Theme menus with colors and other themes
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/pom.xml 2008-07-28 02:23:02 UTC (rev 821)
@@ -213,7 +213,6 @@
</dependency>
<!-- jetty dependencies -->
- <!-- for jetty:continuations: -->
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-07-28 02:23:02 UTC (rev 821)
@@ -1787,6 +1787,18 @@
margin-top: 3px;
}
+.kune-Margin-Small-l {
+ margin-left: 3px;
+}
+
+.kune-Margin-Small-r {
+ margin-right: 3px;
+}
+
+.kune-Margin-Small-b {
+ margin-bottom: 3px;
+}
+
.kune-Margin-Mini-trbl {
margin: 1px;
}
@@ -1814,6 +1826,10 @@
margin-right: 1px;
}
+.kune-Margin-Mini-b {
+ margin-bottom: 1px;
+}
+
.kune-Margin-Mini-l {
margin-left: 1px;
}
@@ -2929,7 +2945,7 @@
height: 27px;
}
-.k-entitytextlogo-def .gwt-Label {
+.k-entitytextlogo-default .gwt-Label {
color: #69312F;
}
@@ -2962,7 +2978,7 @@
background-color: #FFF;
}
-.k-entity-def .x-layout-split {
+.k-entity-default .x-layout-split {
background: #DD8A3D none repeat scroll 0% 50%;
}
@@ -2990,7 +3006,7 @@
background: transparent none repeat scroll 0% 50%;
}
-.k-entityworkspace-def .x-layout-split {
+.k-entityworkspace-default .x-layout-split {
background: #DEAA87 none repeat scroll 0% 50%;
}
@@ -3032,7 +3048,7 @@
white-space: nowrap;
}
-.k-entity-title-rd-def {
+.k-entity-title-rd-default {
background: #DD8A3D;
}
@@ -3056,7 +3072,7 @@
background: #D40000;
}
-.k-entity-title-def {
+.k-entity-title-default {
background: #F1BB59 none repeat scroll 0% 50%;
border-left-color: #DD8A3D;
}
@@ -3086,7 +3102,7 @@
border-left-color: #D40000;
}
-.k-entity-title-def div {
+.k-entity-title-default div {
color: #69312F;
}
@@ -3110,7 +3126,7 @@
color: #800000;
}
-.k-entity-subtitle-def {
+.k-entity-subtitle-default {
background: #DD8A3D none repeat scroll 0% 50%;
}
@@ -3134,7 +3150,7 @@
background: #D40000 none repeat scroll 0% 50%;
}
-.k-entity-subtitle-def div {
+.k-entity-subtitle-default div {
color: #FFF;
}
@@ -3158,7 +3174,7 @@
color: #FFF;
}
-.k-entity-bottom-rd-def, .k-entity-bottom-def {
+.k-entity-bottom-rd-default, .k-entity-bottom-default {
background: #DD8A3D;
}
@@ -3188,7 +3204,7 @@
text-decoration: underline;
}
-.k-entity-container-def div {
+.k-entity-container-default div {
background: #FFD09D none repeat scroll 0% 50%;
}
@@ -3270,7 +3286,7 @@
.k-dropdownouter-members {
}
-.k-dropdownouter-members-def {
+.k-dropdownouter-members-default {
background-color: #DF5244;
}
@@ -3297,7 +3313,7 @@
.k-dropdownouter-part {
}
-.k-dropdownouter-part-def {
+.k-dropdownouter-part-default {
background-color: #CA5842;
}
@@ -3324,7 +3340,7 @@
.k-dropdownouter-tags {
}
-.k-dropdownouter-tags-def {
+.k-dropdownouter-tags-default {
background-color: #87501E;
}
@@ -3351,7 +3367,7 @@
.k-dropdownouter-summary {
}
-.k-dropdownouter-summary-def {
+.k-dropdownouter-summary-default {
background-color: #9F734B;
}
@@ -3396,7 +3412,7 @@
margin: 0 3px 0 1px;
}
/* WsTheme */
-.k-wstheme-icon-def {
+.k-wstheme-icon-default {
background: #FF8C00;
}
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-07-28 02:23:02 UTC (rev 821)
@@ -71,7 +71,7 @@
height: 27px;
}
-.k-entitytextlogo-def .gwt-Label {
+.k-entitytextlogo-default .gwt-Label {
color: #69312F;
}
@@ -104,7 +104,7 @@
background-color: #FFF;
}
-.k-entity-def .x-layout-split {
+.k-entity-default .x-layout-split {
background: #DD8A3D none repeat scroll 0% 50%;
}
@@ -132,7 +132,7 @@
background: transparent none repeat scroll 0% 50%;
}
-.k-entityworkspace-def .x-layout-split {
+.k-entityworkspace-default .x-layout-split {
background: #DEAA87 none repeat scroll 0% 50%;
}
@@ -174,7 +174,7 @@
white-space: nowrap;
}
-.k-entity-title-rd-def {
+.k-entity-title-rd-default {
background: #DD8A3D;
}
@@ -198,7 +198,7 @@
background: #D40000;
}
-.k-entity-title-def {
+.k-entity-title-default {
background: #F1BB59 none repeat scroll 0% 50%;
border-left-color: #DD8A3D;
}
@@ -228,7 +228,7 @@
border-left-color: #D40000;
}
-.k-entity-title-def div {
+.k-entity-title-default div {
color: #69312F;
}
@@ -252,7 +252,7 @@
color: #800000;
}
-.k-entity-subtitle-def {
+.k-entity-subtitle-default {
background: #DD8A3D none repeat scroll 0% 50%;
}
@@ -276,7 +276,7 @@
background: #D40000 none repeat scroll 0% 50%;
}
-.k-entity-subtitle-def div {
+.k-entity-subtitle-default div {
color: #FFF;
}
@@ -300,7 +300,7 @@
color: #FFF;
}
-.k-entity-bottom-rd-def, .k-entity-bottom-def {
+.k-entity-bottom-rd-default, .k-entity-bottom-default {
background: #DD8A3D;
}
@@ -330,7 +330,7 @@
text-decoration: underline;
}
-.k-entity-container-def div {
+.k-entity-container-default div {
background: #FFD09D none repeat scroll 0% 50%;
}
@@ -412,7 +412,7 @@
.k-dropdownouter-members {
}
-.k-dropdownouter-members-def {
+.k-dropdownouter-members-default {
background-color: #DF5244;
}
@@ -439,7 +439,7 @@
.k-dropdownouter-part {
}
-.k-dropdownouter-part-def {
+.k-dropdownouter-part-default {
background-color: #CA5842;
}
@@ -466,7 +466,7 @@
.k-dropdownouter-tags {
}
-.k-dropdownouter-tags-def {
+.k-dropdownouter-tags-default {
background-color: #87501E;
}
@@ -493,7 +493,7 @@
.k-dropdownouter-summary {
}
-.k-dropdownouter-summary-def {
+.k-dropdownouter-summary-default {
background-color: #9F734B;
}
@@ -538,7 +538,7 @@
margin: 0 3px 0 1px;
}
/* WsTheme */
-.k-wstheme-icon-def {
+.k-wstheme-icon-default {
background: #FF8C00;
}
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune.css 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune.css 2008-07-28 02:23:02 UTC (rev 821)
@@ -469,6 +469,18 @@
margin-top: 3px;
}
+.kune-Margin-Small-l {
+ margin-left: 3px;
+}
+
+.kune-Margin-Small-r {
+ margin-right: 3px;
+}
+
+.kune-Margin-Small-b {
+ margin-bottom: 3px;
+}
+
.kune-Margin-Mini-trbl {
margin: 1px;
}
@@ -496,6 +508,10 @@
margin-right: 1px;
}
+.kune-Margin-Mini-b {
+ margin-bottom: 1px;
+}
+
.kune-Margin-Mini-l {
margin-left: 1px;
}
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-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -102,7 +102,6 @@
logException(e, true);
Site.error(i18n.t("Error performing operation"));
GWT.log("Other kind of exception in StateManagerDefault/processErrorException", null);
- throw new RuntimeException();
}
}
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-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -21,6 +21,7 @@
import org.ourproject.kune.platf.client.state.SessionImpl;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.state.StateManagerDefault;
+import org.ourproject.kune.platf.client.ui.QuickTipHelper;
import org.ourproject.kune.platf.client.ui.rate.RateIt;
import org.ourproject.kune.platf.client.ui.rate.RateItPanel;
import org.ourproject.kune.platf.client.ui.rate.RateItPresenter;
@@ -149,6 +150,14 @@
}
}, SingletonScope.class);
+ builder.registerProvider(QuickTipHelper.class, new Provider<QuickTipHelper>() {
+ public QuickTipHelper get() {
+ return new QuickTipHelper();
+ }
+ }, SingletonScope.class);
+
+ i(QuickTipHelper.class);
+
builder.registerProvider(UserServiceAsync.class, new Provider<UserServiceAsync>() {
public UserServiceAsync get() {
final UserServiceAsync service = (UserServiceAsync) GWT.create(UserService.class);
@@ -479,7 +488,7 @@
public GroupMembersSummary get() {
final GroupMembersSummaryPresenter presenter = new GroupMembersSummaryPresenter(i18n,
p(StateManager.class), i(ImageUtils.class), i(Session.class),
- p(SocialNetworkServiceAsync.class), p(GroupLiveSearcher.class));
+ p(SocialNetworkServiceAsync.class), p(UserLiveSearcher.class));
final GroupMembersSummaryView view = new GroupMembersSummaryPanel(presenter, i18n, ws);
presenter.init(view);
return presenter;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/DropDownPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/DropDownPanel.java 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/DropDownPanel.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -105,22 +105,16 @@
vp.setStylePrimaryName(stylePrimaryName);
}
- @Deprecated
- public void setColor(final String color) {
- // outerBorder.setColor(color);
- // DOM.setStyleAttribute(arrowImage.getElement(), "backgroundColor",
- // color);
- // DOM.setStyleAttribute(vp.getElement(), "backgroundColor", color);
- // DOM.setStyleAttribute(titleLabel.getElement(), "backgroundColor",
- // color);
- }
-
public void setContent(final Widget widget) {
contentPanel.setWidget(widget);
// refresh panel
setContentVisible(isContentVisible());
}
+ public void setContentHeight(final String height) {
+ contentPanel.setHeight(height);
+ }
+
public void setContentVisible(final boolean visible) {
if (visible) {
img.arrowDownWhite().applyTo(arrowImage);
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/QuickTipHelper.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/QuickTipHelper.java 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/QuickTipHelper.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -0,0 +1,15 @@
+package org.ourproject.kune.platf.client.ui;
+
+import com.gwtext.client.widgets.QuickTip;
+import com.gwtext.client.widgets.QuickTips;
+
+public class QuickTipHelper {
+
+ public QuickTipHelper() {
+ QuickTips.init();
+ final QuickTip quickTipInstance = QuickTips.getQuickTip();
+ quickTipInstance.setDismissDelay(8000);
+ quickTipInstance.setHideDelay(500);
+ quickTipInstance.setInterceptTitles(true);
+ }
+}
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-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -5,7 +5,6 @@
import com.allen_sauer.gwt.log.client.Log;
import com.calclab.suco.client.signal.Signal;
import com.calclab.suco.client.signal.Slot;
-import com.google.gwt.user.client.ui.Composite;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.SortDir;
import com.gwtext.client.data.ArrayReader;
@@ -36,7 +35,7 @@
import com.gwtext.client.widgets.grid.event.GridRowListener;
import com.gwtext.client.widgets.layout.FitLayout;
-public class GridMenuPanel<T> extends Composite {
+public class GridMenuPanel<T> extends Panel {
public static final String GRID_MENU_PANEL_DD = "gridMenuPanelDD";
public static final int DEFAULT_INITIAL_WIDTH = 150;
private static final String GROUP = "groupField";
@@ -55,7 +54,6 @@
private RecordDef recordDef;
private GroupingStore store;
private GridPanel grid;
- private final Panel panel;
private final boolean grouped;
private final boolean withCounters;
private final Signal<String> onClick;
@@ -101,20 +99,19 @@
this.grouped = grouped;
this.withCounters = withCounters;
this.withEndIcon = withEndIcon;
- panel = new Panel();
- panel.setBorder(false);
- panel.setLayout(new FitLayout());
+ super.setBorder(false);
+ super.setLayout(new FitLayout());
+ //super.setAutoScroll(true);
if (withTopBar) {
topBar = new Toolbar();
- panel.setTopToolbar(topBar);
+ super.setTopToolbar(topBar);
}
if (withBottomBar) {
bottomBar = new Toolbar();
- panel.setBottomToolbar(bottomBar);
+ super.setBottomToolbar(bottomBar);
}
menuMap = new HashMap<String, GridMenu<T>>();
recordMap = new HashMap<T, Record>();
- initWidget(panel);
}
public GridMenuPanel(final String emptyText, final GridDropConfiguration gridDropConfiguration) {
@@ -172,6 +169,12 @@
};
}
+ public void doLayoutIfNeeded() {
+ if (super.isRendered()) {
+ super.doLayout();
+ }
+ }
+
public Toolbar getBottomBar() {
assert bottomBar != null;
return bottomBar;
@@ -210,9 +213,19 @@
}
}
+ @Override
+ public void setHeight(final int height) {
+ super.setHeight(height);
+ // grid.setHeight(height);
+ doLayoutIfNeeded();
+ }
+
+ @Override
public void setWidth(final int width) {
if (grid != null) {
+ // grid.setWidth(width - 27);
grid.setWidth(width - 27);
+ //super.setWidth(width - 11);
doLayoutIfNeeded();
}
}
@@ -420,7 +433,7 @@
} else {
grid.setDraggable(false);
}
- panel.add(grid);
+ super.add(grid);
}
private void createGridIfNeeded() {
@@ -429,12 +442,6 @@
}
}
- private void doLayoutIfNeeded() {
- if (panel.isRendered()) {
- panel.doLayout();
- }
- }
-
private void onClick(final int rowIndex) {
final Record record = store.getRecordAt(rowIndex);
onClick.fire(record.getAsString(ID));
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPanel.java 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPanel.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -120,7 +120,7 @@
rateGrid.setCellSpacing(0);
rateGrid.setBorderWidth(0);
rateItLabel.addStyleName("kune-Margin-Medium-r");
- rateItLabel.addStyleName("kune-Margin-Medium-l");
+ // rateItLabel.addStyleName("kune-Margin-Medium-l");
rateItLabel.addStyleName("kune-RatePanel-Label");
rateGrid.addStyleName("kune-RatePanel-Stars");
rateGrid.addStyleName("kune-RatePanel-Stars-RateIt");
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/stacks/StackedDropDownPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/stacks/StackedDropDownPanel.java 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/stacks/StackedDropDownPanel.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -66,7 +66,7 @@
setContent(generalVP);
// Set properties
- super.setColor(borderColor);
+ // super.setColor(borderColor);
setContentVisible(false); // DropDown
setHeaderText(headerText);
setHeaderTitle(headerTitle);
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-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -25,6 +25,7 @@
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
public class GroupMembersSummaryPanel extends DropDownPanel implements GroupMembersSummaryView {
+ // private static final int MAX_HEIGHT = 110;
private final GridMenuPanel<GroupDTO> gridMenuPanel;
private final I18nUITranslationService i18n;
private final GroupMembersSummaryPresenter presenter;
@@ -39,6 +40,7 @@
super.setHeaderTitle(i18n.t("People and groups collaborating in this group"));
super.setBorderStylePrimaryName("k-dropdownouter-members");
super.addStyleName("kune-Margin-Medium-t");
+ // super.addStyleName("kune-Margin-Small-r");
final GridDragConfiguration dragConf = new GridDragConfiguration(UserGridPanel.USER_GROUP_DD, i18n
.t("Drop in the chat area to start a chat.")
@@ -85,6 +87,10 @@
gridMenuPanel.addItem(gridItem);
}
+ public void addToolbarFill() {
+ gridMenuPanel.getBottomBar().addFill();
+ }
+
public void clear() {
gridMenuPanel.removeAll();
for (final ToolbarButton button : buttonsCache.values()) {
@@ -111,12 +117,19 @@
});
}
+ public void setDefaultHeigth() {
+ // super.setContentHeight("");
+ // gridMenuPanel.setHeight("auto");
+ // gridMenuPanel.doLayoutIfNeeded();
+ }
+
public void setDraggable(final boolean draggable) {
// gridMenuPanel.setDraggable(draggable);
}
- public void setDropDownContentVisible(final boolean visible) {
- super.setContentVisible(visible);
+ public void setMaxHeigth() {
+ // super.setContentHeight("" + MAX_HEIGHT);
+ // gridMenuPanel.setHeight(MAX_HEIGHT - 26);
}
public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
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-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -20,8 +20,8 @@
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.sitebar.Site;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
-import org.ourproject.kune.workspace.client.workspace.GroupLiveSearcher;
import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
+import org.ourproject.kune.workspace.client.workspace.UserLiveSearcher;
import com.calclab.suco.client.container.Provider;
import com.calclab.suco.client.signal.Slot;
@@ -40,7 +40,7 @@
public GroupMembersSummaryPresenter(final I18nUITranslationService i18n,
final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session,
final Provider<SocialNetworkServiceAsync> snServiceProvider,
- final Provider<GroupLiveSearcher> groupLiveSearcherProvider) {
+ final Provider<UserLiveSearcher> userLiveSearcherProvider) {
super(i18n, stateManagerProvider, imageUtils, session, snServiceProvider);
this.i18n = i18n;
this.session = session;
@@ -54,15 +54,16 @@
pendigCategory = new GridGroup(pendingTitle, pendingTitle, i18n
.t("People pending to be accepted in this group by the admins"), imageUtils
.getImageHtml(ImageDescriptor.alert), true);
- addMember = new GridButton("images/add-green.gif", i18n.t("Add member"), i18n
+ // 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>() {
public void onEvent(final String parameter) {
- groupLiveSearcherProvider.get().onSelection(new Slot<LinkDTO>() {
+ userLiveSearcherProvider.get().onSelection(new Slot<LinkDTO>() {
public void onEvent(final LinkDTO link) {
view.confirmAddCollab(link.getShortName(), link.getLongName());
}
});
- groupLiveSearcherProvider.get().show();
+ userLiveSearcherProvider.get().show();
}
});
super.addGroupOperation(gotoMemberMenuItem, false);
@@ -117,11 +118,11 @@
final boolean userCanView = rights.isVisible();
boolean userIsMember = isMember(userIsAdmin, userIsCollab);
- view.setDropDownContentVisible(false);
view.clear();
if (userIsAdmin) {
view.addButton(addMember);
+ view.addToolbarFill();
}
view.setDraggable(session.isLogged());
@@ -143,13 +144,24 @@
.addItem(createGridItem(collabCategory, collab, rights, changeToAdminMenuItem,
removeMemberMenuItem));
}
- for (final GroupDTO pendingCollab : pendingCollabsList) {
- view.addItem(createGridItem(pendigCategory, pendingCollab, rights, acceptJoinGroupMenuItem,
- denyJoinGroupMenuItem));
+ if (userIsAdmin) {
+ for (final GroupDTO pendingCollab : pendingCollabsList) {
+ view.addItem(createGridItem(pendigCategory, pendingCollab, rights, acceptJoinGroupMenuItem,
+ denyJoinGroupMenuItem));
+ }
}
}
- view.setDropDownContentVisible(true);
+ setMaxSize(adminsList.size(), collabList.size(), pendingCollabsList.size(), userIsAdmin);
view.setVisible(true);
}
+ private void setMaxSize(final int admins, final int collabs, final int pendingCollabs, final boolean isAdmin) {
+ final int members = admins + collabs + (isAdmin ? pendingCollabs : 0);
+ if (members > 2) {
+ view.setMaxHeigth();
+ } else {
+ view.setDefaultHeigth();
+ }
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -11,13 +11,19 @@
void addItem(GridItem<GroupDTO> gridItem);
+ void addToolbarFill();
+
void clear();
void confirmAddCollab(String groupShortName, String groupLongName);
+ void setContentVisible(boolean visible);
+
+ void setDefaultHeigth();
+
void setDraggable(boolean draggable);
- void setDropDownContentVisible(boolean visible);
+ void setMaxHeigth();
void setTheme(WsTheme oldTheme, WsTheme newTheme);
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-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -65,7 +65,6 @@
public void setState(final StateDTO state) {
final ParticipationDataDTO participation = state.getParticipation();
final AccessRightsDTO rights = state.getGroupRights();
- view.setContentVisible(false);
view.clear();
final List<LinkDTO> groupsIsAdmin = participation.getGroupsIsAdmin();
final List<LinkDTO> groupsIsCollab = participation.getGroupsIsCollab();
@@ -89,7 +88,6 @@
view.addItem(createGridItem(collabCategory, group, rights, unJoinMenuItem));
}
if (numAdmins > 0 || numCollaborators > 0) {
- view.setContentVisible(true);
view.show();
} else {
hide();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -32,6 +32,7 @@
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
@@ -59,7 +60,7 @@
addStyleName("kune-Margin-Medium-t");
flowPanel.addStyleName("kune-Margin-Small-trbl");
ws.getEntitySummary().addInSummary(this);
- ws.unMask();
+ RootPanel.get("kuneinitialcurtain").setVisible(false);
}
public void setTags(final List<TagResultDTO> groupTags) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -18,7 +18,8 @@
signInHyperlink.setTargetHistoryToken(SiteToken.signin.toString());
loggedUserMenu = new ToolbarButton("user");
ws.getSiteBar().add(signInHyperlink);
- // ws.getSiteBar().add(loggedUserMenu);
+ // ws.getEntityWorkspace().setContainer(loggedUserMenu);
+ // loggedUserMenu.render(loggedUserMenu.getElement());
}
public void setLoggedUserMenuVisible(final boolean visible) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/EntityWorkspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/EntityWorkspace.java 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/EntityWorkspace.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -1,6 +1,5 @@
package org.ourproject.kune.workspace.client.ui.newtmp.skel;
-import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.ui.DefaultBorderLayout;
import org.ourproject.kune.platf.client.ui.RoundedPanel;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
@@ -31,7 +30,6 @@
final Panel bottomPanel = new Panel();
bottomPanel.setBorder(false);
bottomPanel.setLayout(new AnchorLayout());
- ;
title = new TitleBar();
title.setHeight("" + (DEF_TOOLBAR_HEIGHT - 2));
@@ -81,7 +79,7 @@
add(titles, DefaultBorderLayout.Position.NORTH, DEF_TOOLBAR_HEIGHT * 2);
add(contentWrap.getPanel(), DefaultBorderLayout.Position.CENTER);
add(containerWrap.getPanel(), DefaultBorderLayout.Position.EAST, true, 175);
- add(bottomPanel, DefaultBorderLayout.Position.SOUTH, DEF_TOOLBAR_HEIGHT);
+ add(bottomPanel, DefaultBorderLayout.Position.SOUTH, DEF_TOOLBAR_HEIGHT + 2);
}
public TitleBar getBottomTitle() {
@@ -112,12 +110,12 @@
return title;
}
- public void setContainer(final View view) {
- setPanel(container, (Widget) view);
+ public void setContainer(final Widget widget) {
+ setPanel(container, widget);
}
- public void setContent(final View view) {
- setPanel(content, (Widget) view);
+ public void setContent(final Widget widget) {
+ setPanel(content, widget);
}
public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -7,8 +7,6 @@
import com.gwtext.client.core.ExtElement;
import com.gwtext.client.widgets.MessageBox;
import com.gwtext.client.widgets.Panel;
-import com.gwtext.client.widgets.QuickTip;
-import com.gwtext.client.widgets.QuickTips;
import com.gwtext.client.widgets.Toolbar;
import com.gwtext.client.widgets.Viewport;
import com.gwtext.client.widgets.layout.FitLayout;
@@ -22,12 +20,6 @@
public WorkspaceSkeleton() {
extRootBody = new ExtElement(RootPanel.getBodyElement());
- mask();
- QuickTips.init(); // extgwt tips
- final QuickTip quickTipInstance = QuickTips.getQuickTip();
- quickTipInstance.setDismissDelay(8000);
- quickTipInstance.setHideDelay(500);
- quickTipInstance.setInterceptTitles(true);
container = new Panel();
container.setLayout(new FitLayout());
container.setBorder(false);
@@ -85,7 +77,6 @@
public void unMask() {
extRootBody.unmask();
- RootPanel.get("kuneinitialcurtain").setVisible(false);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -40,9 +40,8 @@
final WsTheme theme = new WsTheme(themes[i]);
final MenuItem item = new MenuItem();
final String name = theme.getName();
- final String itemText = name.equals("def") ? i18n.t("default") : i18n.t(name);
item.setIconCls("k-wstheme-icon-" + name);
- item.setText(itemText);
+ item.setText(i18n.t(name));
menu.addItem(item);
item.addListener(new BaseItemListenerAdapter() {
@Override
Modified: trunk/src/main/resources/kune.properties
===================================================================
--- trunk/src/main/resources/kune.properties 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/main/resources/kune.properties 2008-07-28 02:23:02 UTC (rev 821)
@@ -18,7 +18,8 @@
kune.chat.roomHost = rooms.localhost
# Workspace enabled themes
-kune.wsthemes = def,green,blue,grey,purple,red
-kune.wsthemes.default = def
+# This names are also the name of the items in the theme menu and there are translated
+kune.wsthemes = default,green,blue,grey,purple,red
+kune.wsthemes.default = default
kune.sitelogourl = images/kune-logo-16px.png
\ No newline at end of file
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/SocialNetworkManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/SocialNetworkManagerTest.java 2008-07-27 03:03:11 UTC (rev 820)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/SocialNetworkManagerTest.java 2008-07-28 02:23:02 UTC (rev 821)
@@ -32,7 +32,6 @@
@Test
public void acceptJoinGroup() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.requestToJoin(user, group);
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.acceptJoinGroup(admin, userGroup, group);
@@ -42,82 +41,75 @@
assertEquals(group.getSocialNetwork().getAccessLists().getEditors().getList().size(), 1);
assertEquals(group.getSocialNetwork().getAccessLists().getEditors().getMode(), GroupListMode.NORMAL);
assertEquals(group.getSocialNetwork().getPendingCollaborators().getList().size(), 0);
+ closeTransaction();
}
@Test(expected = Exception.class)
public void acceptJoinNotPendingGroupFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.acceptJoinGroup(admin, userGroup, group);
}
@Test(expected = AlreadyGroupMemberException.class)
public void addAdminAsAdminFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.addGroupToAdmins(admin, admin.getUserGroup(), group);
}
@Test(expected = AlreadyGroupMemberException.class)
public void addAdminAsCollabFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.addGroupToCollabs(admin, admin.getUserGroup(), group);
}
@Test(expected = AlreadyGroupMemberException.class)
public void addAdminAsViewerFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.addGroupToViewers(admin, admin.getUserGroup(), group);
}
@Test(expected = Exception.class)
public void addAdminNotAdminFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addGroupToAdmins(otherUser, userGroup, group);
}
@Test(expected = Exception.class)
public void addCollabNotAdminFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addGroupToCollabs(otherUser, userGroup, group);
}
@Test
public void addPendingAsCollabDirectly() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.requestToJoin(user, group);
socialNetworkManager.addGroupToCollabs(admin, userGroup, group);
assertEquals(group.getSocialNetwork().getPendingCollaborators().getList().size(), 0);
+ closeTransaction();
}
@Test
public void addPendingAsCollabDirectlyAsAdmin() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.requestToJoin(user, group);
socialNetworkManager.addGroupToAdmins(admin, userGroup, group);
assertEquals(group.getSocialNetwork().getPendingCollaborators().getList().size(), 0);
+ closeTransaction();
}
@Test(expected = Exception.class)
public void addViewerNotAdminFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addGroupToViewers(otherUser, userGroup, group);
}
@After
public void close() {
if (getTransaction().isActive()) {
- getTransaction().rollback();
+ rollbackTransaction();
}
}
@Test
public void deleteMember() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.requestToJoin(user, group);
socialNetworkManager.acceptJoinGroup(admin, userGroup, group);
@@ -128,18 +120,17 @@
assertEquals(group.getSocialNetwork().getAccessLists().getEditors().getMode(), GroupListMode.NOBODY);
assertEquals(group.getSocialNetwork().getAccessLists().getEditors().getList().size(), 0);
assertEquals(group.getSocialNetwork().getPendingCollaborators().getList().size(), 0);
+ closeTransaction();
}
@Test(expected = Exception.class)
public void deleteNotMemberFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.deleteMember(admin, userGroup, group);
}
@Test
public void denyJoinGroup() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.requestToJoin(user, group);
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.denyJoinGroup(admin, userGroup, group);
@@ -148,18 +139,17 @@
assertFalse(group.getSocialNetwork().getAccessLists().getEditors().getList().contains(userGroup));
assertEquals(group.getSocialNetwork().getAccessLists().getEditors().getList().size(), 0);
assertEquals(group.getSocialNetwork().getPendingCollaborators().getList().size(), 0);
+ closeTransaction();
}
@Test(expected = AccessViolationException.class)
public void denyJoinGroupNotAdminFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.requestToJoin(user, group);
socialNetworkManager.denyJoinGroup(otherUser, userGroup, group);
}
@Test(expected = Exception.class)
public void denyNotPendingFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.denyJoinGroup(admin, userGroup, group);
}
@@ -167,7 +157,6 @@
@Test(expected = RuntimeException.class)
public void ilegalAdmissionType() throws Exception {
group.setAdmissionType(null);
-
socialNetworkManager.requestToJoin(user, group);
}
@@ -186,18 +175,17 @@
userGroup = user.getUserGroup();
admin = ctx.getUser("admin");
otherUser = ctx.getUser("otheruser");
+ assertSocialNetworkIsEmpty();
}
@Test(expected = LastAdminInGroupException.class)
public void lastAdminUnjoinGroupFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.unJoinGroup(admin.getUserGroup(), group);
}
@Test(expected = AccessViolationException.class)
public void notAdminTryDeleteMember() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.requestToJoin(user, group);
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.acceptJoinGroup(admin, userGroup, group);
@@ -206,37 +194,36 @@
@Test
public void requestJoinAClosedGroupDeny() throws Exception {
- assertSocialNetworkIsEmpty();
group.setAdmissionType(AdmissionType.Closed);
final String result = socialNetworkManager.requestToJoin(user, group);
assertEquals(result, SocialNetworkDTO.REQ_JOIN_DENIED);
+ closeTransaction();
}
@Test
public void requestJoinAModeratedGroupAddUserGroupToPending() throws Exception {
- assertSocialNetworkIsEmpty();
group.setAdmissionType(AdmissionType.Moderated);
final String result = socialNetworkManager.requestToJoin(user, group);
assertEquals(result, SocialNetworkDTO.REQ_JOIN_WAITING_MODERATION);
assertTrue(group.getSocialNetwork().getPendingCollaborators().getList().contains(userGroup));
+ closeTransaction();
}
@Test
public void requestJoinAOpenGroupAddUserGroupToEditors() throws Exception {
- assertSocialNetworkIsEmpty();
group.setAdmissionType(AdmissionType.Open);
final String result = socialNetworkManager.requestToJoin(user, group);
assertEquals(result, SocialNetworkDTO.REQ_JOIN_ACEPTED);
assertTrue(group.getSocialNetwork().getAccessLists().getEditors().getList().contains(userGroup));
assertEquals(group.getSocialNetwork().getAccessLists().getEditors().getMode(), GroupListMode.NORMAL);
+ closeTransaction();
}
@Test
public void requestJoinAOrphanedGroupAddUserGroupToAdmins() throws Exception {
- assertSocialNetworkIsEmpty();
orphanedGroup.setAdmissionType(AdmissionType.Open);
final String result = socialNetworkManager.requestToJoin(user, orphanedGroup);
@@ -245,11 +232,11 @@
assertEquals(orphanedGroup.getSocialNetwork().getAccessLists().getAdmins().getMode(), GroupListMode.NORMAL);
// FIXME Check change group type to PROJECT
+ closeTransaction();
}
@Test(expected = AlreadyGroupMemberException.class)
public void requestJoinTwiceAOrphanedGroupAddUserGroupToAdmins() throws Exception {
- assertSocialNetworkIsEmpty();
orphanedGroup.setAdmissionType(AdmissionType.Open);
final String result = socialNetworkManager.requestToJoin(user, orphanedGroup);
@@ -259,17 +246,16 @@
@Test
public void requestToJoinTwiceDontDuplicatePending() throws Exception {
- assertSocialNetworkIsEmpty();
group.setAdmissionType(AdmissionType.Moderated);
socialNetworkManager.requestToJoin(user, group);
socialNetworkManager.requestToJoin(user, group);
assertEquals(group.getSocialNetwork().getPendingCollaborators().getList().size(), 1);
+ closeTransaction();
}
@Test(expected = Exception.class)
public void setAdminAnonMemberFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.requestToJoin(user, group);
socialNetworkManager.setAdminAsCollab(admin, userGroup, group);
@@ -277,7 +263,6 @@
@Test
public void setAdminAsCollab() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.requestToJoin(user, group);
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.acceptJoinGroup(admin, userGroup, group);
@@ -292,11 +277,11 @@
assertEquals(group.getSocialNetwork().getAccessLists().getEditors().getList().size(), 1);
assertEquals(group.getSocialNetwork().getAccessLists().getEditors().getMode(), GroupListMode.NORMAL);
assertEquals(group.getSocialNetwork().getPendingCollaborators().getList().size(), 0);
+ closeTransaction();
}
@Test(expected = AccessViolationException.class)
public void setAdminAsCollabNotAdminFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.requestToJoin(user, group);
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.acceptJoinGroup(admin, userGroup, group);
@@ -305,7 +290,6 @@
@Test(expected = Exception.class)
public void setAdminNotCollabFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.requestToJoin(user, group);
socialNetworkManager.setCollabAsAdmin(admin, userGroup, group);
@@ -313,7 +297,6 @@
@Test
public void setCollabAsAdmin() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.requestToJoin(user, group);
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.acceptJoinGroup(admin, userGroup, group);
@@ -327,11 +310,11 @@
assertEquals(group.getSocialNetwork().getAccessLists().getEditors().getList().size(), 0);
assertEquals(group.getSocialNetwork().getAccessLists().getEditors().getMode(), GroupListMode.NOBODY);
assertEquals(group.getSocialNetwork().getPendingCollaborators().getList().size(), 0);
+ closeTransaction();
}
@Test(expected = AccessViolationException.class)
public void setCollabAsAdminNotAdminFails() throws Exception {
- assertSocialNetworkIsEmpty();
socialNetworkManager.requestToJoin(user, group);
socialNetworkManager.addAdmin(admin, group);
socialNetworkManager.acceptJoinGroup(admin, userGroup, group);
1
0
27 Jul '08
Author: vjrj
Date: 2008-07-27 05:03:11 +0200 (Sun, 27 Jul 2008)
New Revision: 820
Modified:
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherPresenter.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/SocialNetworkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearcherPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearcher.java
Log:
Complete - task 20: EntityLive not show...
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-07-27 01:15:27 UTC (rev 819)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-07-27 03:03:11 UTC (rev 820)
@@ -69,7 +69,7 @@
logException(e);
Site.error(i18n.t("You don't have rights to do that"));
} catch (final SessionExpiredException e) {
- logException(e);
+ logException(e, true);
doSessionExpired();
} catch (final UserMustBeLoggedException e) {
logException(e);
@@ -99,7 +99,7 @@
logException(e);
Site.error(i18n.t("This user is already a member of this group"));
} catch (final Throwable e) {
- logException(e);
+ logException(e, true);
Site.error(i18n.t("Error performing operation"));
GWT.log("Other kind of exception in StateManagerDefault/processErrorException", null);
throw new RuntimeException();
@@ -113,7 +113,15 @@
}
private void logException(final Throwable e) {
- Log.debug("Exception in KuneErrorHandler", e);
+ logException(e, false);
}
+ private void logException(final Throwable e, final boolean showException) {
+ if (showException) {
+ Log.debug("Exception in KuneErrorHandler", e);
+ } else {
+ Log.debug(e.getMessage());
+ }
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-07-27 01:15:27 UTC (rev 819)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-07-27 03:03:11 UTC (rev 820)
@@ -33,6 +33,7 @@
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
+import com.allen_sauer.gwt.log.client.Log;
import com.calclab.suco.client.container.Provider;
import com.calclab.suco.client.signal.Signal;
import com.calclab.suco.client.signal.Slot;
@@ -63,6 +64,7 @@
}
public void check(final AsyncCallbackSimple<?> callback) {
+ Log.debug("Checking session (userhash: " + getUserHash() + ")");
userServiceProvider.get().onlyCheckSession(getUserHash(), callback);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherPresenter.java 2008-07-27 01:15:27 UTC (rev 819)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherPresenter.java 2008-07-27 03:03:11 UTC (rev 820)
@@ -23,16 +23,14 @@
import org.ourproject.kune.platf.client.dto.LinkDTO;
import org.ourproject.kune.workspace.client.workspace.EntityLiveSearcher;
-import com.calclab.suco.client.signal.Signal;
import com.calclab.suco.client.signal.Slot;
public class EntityLiveSearcherPresenter implements EntityLiveSearcher {
private EntityLiveSearcherView view;
- private Signal<LinkDTO> onSelection;
+ private Slot<LinkDTO> slot;
- public void addListener(final EntityLiveSearchListener listener) {
- this.onSelection = new Signal<LinkDTO>("onSelection");
+ public EntityLiveSearcherPresenter() {
}
public View getView() {
@@ -44,20 +42,15 @@
}
public void onSelection(final LinkDTO link) {
- onSelection.fire(link);
+ slot.onEvent(link);
view.hide();
}
- public void onSelectionAdd(final Slot<LinkDTO> slot) {
- onSelection.add(slot);
+ public void onSelection(final Slot<LinkDTO> slot) {
+ this.slot = slot;
}
- public void onSelectionRemove(final Slot<LinkDTO> slot) {
- onSelection.remove(slot);
- }
-
public void show() {
view.show();
}
-
}
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-07-27 01:15:27 UTC (rev 819)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2008-07-27 03:03:11 UTC (rev 820)
@@ -14,6 +14,8 @@
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
import com.calclab.emiteuimodule.client.users.UserGridPanel;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.DeferredCommand;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Button;
@@ -65,7 +67,11 @@
button.setTooltip(gridButton.getTooltip());
button.addListener(new ButtonListenerAdapter() {
public void onClick(final Button button, final EventObject e) {
- gridButton.getSlot().onEvent("");
+ DeferredCommand.addCommand(new Command() {
+ public void execute() {
+ gridButton.getSlot().onEvent("");
+ }
+ });
}
});
buttonsCache.put(gridButton, button);
@@ -95,7 +101,11 @@
new MessageBox.ConfirmCallback() {
public void execute(final String btnID) {
if (btnID.equals("yes")) {
- presenter.addCollab(groupShortName);
+ DeferredCommand.addCommand(new Command() {
+ public void execute() {
+ presenter.addCollab(groupShortName);
+ }
+ });
}
}
});
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-07-27 01:15:27 UTC (rev 819)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-07-27 03:03:11 UTC (rev 820)
@@ -57,10 +57,9 @@
addMember = new GridButton("images/add-green.gif", i18n.t("Add member"), i18n
.t("Add a group or a person as member of this group"), new Slot<String>() {
public void onEvent(final String parameter) {
- groupLiveSearcherProvider.get().onSelectionAdd(new Slot<LinkDTO>() {
+ groupLiveSearcherProvider.get().onSelection(new Slot<LinkDTO>() {
public void onEvent(final LinkDTO link) {
view.confirmAddCollab(link.getShortName(), link.getLongName());
- groupLiveSearcherProvider.get().onSelectionRemove(this);
}
});
groupLiveSearcherProvider.get().show();
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-07-27 01:15:27 UTC (rev 819)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-07-27 03:03:11 UTC (rev 820)
@@ -155,7 +155,7 @@
.t("Change to collaborator"), new Slot<GroupDTO>() {
public void onEvent(final GroupDTO group) {
Site.showProgressProcessing();
- snServiceProvider.get().setCollabAsAdmin(session.getUserHash(),
+ snServiceProvider.get().setAdminAsCollab(session.getUserHash(),
session.getCurrentState().getGroup().getShortName(), group.getShortName(),
new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
@@ -189,12 +189,12 @@
new Slot<GroupDTO>() {
public void onEvent(final GroupDTO group) {
Site.showProgressProcessing();
- snServiceProvider.get().addAdminMember(session.getUserHash(),
+ snServiceProvider.get().setCollabAsAdmin(session.getUserHash(),
session.getCurrentState().getGroup().getShortName(), group.getShortName(),
new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
Site.hideProgress();
- Site.info(i18n.t("Member added as admin"));
+ Site.info(i18n.t("Type of member changed"));
getStateManager().setSocialNetwork(result);
}
});
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearcherPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearcherPanel.java 2008-07-27 01:15:27 UTC (rev 819)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearcherPanel.java 2008-07-27 03:03:11 UTC (rev 820)
@@ -22,9 +22,11 @@
import org.ourproject.kune.platf.client.dto.LinkDTO;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.ui.dialogs.BasicDialog;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherPresenter;
import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherView;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherPresenter;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.DeferredCommand;
import com.gwtext.client.core.Connection;
import com.gwtext.client.core.Template;
import com.gwtext.client.core.UrlParam;
@@ -138,10 +140,14 @@
cb.addListener(new ComboBoxListenerAdapter() {
public void onSelect(final ComboBox comboBox, final Record record, final int index) {
- final LinkDTO link = new LinkDTO(record.getAsString(SHORT_NAME_FIELD), record
- .getAsString(LONG_NAME_FIELD), record.getAsString(ICON_URL_FIELD), record
- .getAsString(LINK_FIELD));
- presenter.onSelection(link);
+ DeferredCommand.addCommand(new Command() {
+ public void execute() {
+ final LinkDTO link = new LinkDTO(record.getAsString(SHORT_NAME_FIELD), record
+ .getAsString(LONG_NAME_FIELD), record.getAsString(ICON_URL_FIELD), record
+ .getAsString(LINK_FIELD));
+ presenter.onSelection(link);
+ }
+ });
}
});
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearcher.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearcher.java 2008-07-27 01:15:27 UTC (rev 819)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearcher.java 2008-07-27 03:03:11 UTC (rev 820)
@@ -25,10 +25,8 @@
public interface EntityLiveSearcher {
- void onSelectionAdd(Slot<LinkDTO> slot);
+ void onSelection(Slot<LinkDTO> slot);
- void onSelectionRemove(Slot<LinkDTO> slot);
-
void show();
}
1
0
27 Jul '08
Author: vjrj
Date: 2008-07-27 03:15:27 +0200 (Sun, 27 Jul 2008)
New Revision: 819
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateIt.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePresenter.java
Modified:
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java
trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java
Log:
Complete - task 17: Theme menus with colors and other themes
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-07-27 01:15:27 UTC (rev 819)
@@ -2934,9 +2934,25 @@
}
.k-entitytextlogo-green .gwt-Label {
+ color: #250;
+}
+
+.k-entitytextlogo-blue .gwt-Label {
color: #000080;
}
+.k-entitytextlogo-grey .gwt-Label {
+ color: #1A1A1A;
+}
+
+.k-entitytextlogo-purple .gwt-Label {
+ color: #440055;
+}
+
+.k-entitytextlogo-red .gwt-Label {
+ color: #800000;
+}
+
.k-entitytextlogo .gwt-Hyperlink a {
color: #CCC;
font-size: 85%;
@@ -2954,6 +2970,22 @@
background: #5FD35F none repeat scroll 0% 50%;
}
+.k-entity-blue .x-layout-split {
+ background: #0066FF none repeat scroll 0% 50%;
+}
+
+.k-entity-grey .x-layout-split {
+ background: #4D4D4D none repeat scroll 0% 50%;
+}
+
+.k-entity-purple .x-layout-split {
+ background: #660080 none repeat scroll 0% 50%;
+}
+
+.k-entity-red .x-layout-split {
+ background: #D40000 none repeat scroll 0% 50%;
+}
+
.k-entityworkspace .x-layout-split {
background: transparent none repeat scroll 0% 50%;
}
@@ -2966,6 +2998,22 @@
background: #DCE8AB none repeat scroll 0% 50%;
}
+.k-entityworkspace-blue .x-layout-split {
+ background: #D5D5FF none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-grey .x-layout-split {
+ background: #999999 none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-purple .x-layout-split {
+ background: #A793AC none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-red .x-layout-split {
+ background: #FF5555 none repeat scroll 0% 50%;
+}
+
.k-entity-title {
border-left-style: solid;
border-left-width: 2px;
@@ -2992,48 +3040,148 @@
background: #5FD35F;
}
+.k-entity-title-rd-blue {
+ background: #0066FF;
+}
+
+.k-entity-title-rd-grey {
+ background: #4D4D4D;
+}
+
+.k-entity-title-rd-purple {
+ background: #660080;
+}
+
+.k-entity-title-rd-red {
+ background: #D40000;
+}
+
.k-entity-title-def {
background: #F1BB59 none repeat scroll 0% 50%;
border-left-color: #DD8A3D;
}
-.k-entity-title-def div {
- color: #69312F;
-}
-
.k-entity-title-green {
background: #AFA none repeat scroll 0% 50%;
border-left-color: #5FD35F;
}
+.k-entity-title-blue {
+ background: #AFDDE9 none repeat scroll 0% 50%;
+ border-left-color: #0066FF;
+}
+
+.k-entity-title-grey {
+ background: #CCCCCC none repeat scroll 0% 50%;
+ border-left-color: #4D4D4D;
+}
+
+.k-entity-title-purple {
+ background: #DDAFE9 none repeat scroll 0% 50%;
+ border-left-color: #660080;
+}
+
+.k-entity-title-red {
+ background: #FF8080 none repeat scroll 0% 50%;
+ border-left-color: #D40000;
+}
+
+.k-entity-title-def div {
+ color: #69312F;
+}
+
.k-entity-title-green div {
color: #250;
}
+.k-entity-title-blue div {
+ color: #000080;
+}
+
+.k-entity-title-grey div {
+ color: #1A1A1A;
+}
+
+.k-entity-title-purple div {
+ color: #440055;
+}
+
+.k-entity-title-red div {
+ color: #800000;
+}
+
.k-entity-subtitle-def {
background: #DD8A3D none repeat scroll 0% 50%;
}
+.k-entity-subtitle-green {
+ background: #5FD35F none repeat scroll 0% 50%;
+}
+
+.k-entity-subtitle-blue {
+ background: #0066FF none repeat scroll 0% 50%;
+}
+
+.k-entity-subtitle-grey {
+ background: #4D4D4D none repeat scroll 0% 50%;
+}
+
+.k-entity-subtitle-purple {
+ background: #660080 none repeat scroll 0% 50%;
+}
+
+.k-entity-subtitle-red {
+ background: #D40000 none repeat scroll 0% 50%;
+}
+
.k-entity-subtitle-def div {
color: #FFF;
}
-.k-entity-subtitle-green {
- background: #5FD35F none repeat scroll 0% 50%;
+.k-entity-subtitle-green div {
+ color: #FFF;
}
-.k-entity-subtitle-green div {
+.k-entity-subtitle-blue div {
color: #FFF;
}
-.k-entity-bottom-rd-def {
+.k-entity-subtitle-grey div {
+ color: #FFF;
+}
+
+.k-entity-subtitle-purple div {
+ color: #FFF;
+}
+
+.k-entity-subtitle-red div {
+ color: #FFF;
+}
+
+.k-entity-bottom-rd-def, .k-entity-bottom-def {
background: #DD8A3D;
}
-.k-entity-bottom-rd-green {
+.k-entity-bottom-rd-green, .k-entity-bottom-green {
background: #5FD35F;
}
+.k-entity-bottom-rd-blue, .k-entity-bottom-blue {
+ background: #0066FF;
+}
+
+.k-entity-bottom-rd-grey, .k-entity-bottom-grey {
+ background: #4D4D4D;
+}
+
+.k-entity-bottom-rd-purple, .k-entity-bottom-purple {
+ background: #660080;
+}
+
+.k-entity-bottom-rd-red, .k-entity-bottom-red {
+ background: #D40000;
+}
+
.k-entitylicensepanel-licensetext {
cursor: pointer;
margin-left: 5px;
@@ -3048,23 +3196,24 @@
background: #CFA none repeat scroll 0% 50%;
}
-.k-entity-bottom div {
- line-height: 2em;
+.k-entity-container-blue div {
+ background: #AACCFF none repeat scroll 0% 50%;
}
-.k-entity-bottom-def {
- background: #DD8A3D;
+.k-entity-container-grey div {
+ background: #B3B3B3 none repeat scroll 0% 50%;
}
-.k-entity-bottom-def div {
- color: #FFF;
+.k-entity-container-purple div {
+ background: #DDAFE9 none repeat scroll 0% 50%;
}
-.k-entity-bottom-green {
- background: #5FD35F;
+.k-entity-container-red div {
+ background: #FFAAAA none repeat scroll 0% 50%;
}
-.k-entity-bottom-green div {
+.k-entity-bottom div {
+ line-height: 2em;
color: #FFF;
}
@@ -3089,9 +3238,7 @@
.k-toolbar-sep {
padding-top: 4px;
}
-
/* Custom gwt-ext styles */
-
.ytb-sep {
background-image: url(../js/ext/resources/images/default/grid/grid-split.gif);
background-position: center;
@@ -3115,11 +3262,9 @@
cursor: pointer;
padding-top: 3px;
}
-
/* Drop down */
-
.k-dropdownouter {
- background-color: gray;
+ background-color: grey;
}
.k-dropdownouter-members {
@@ -3133,6 +3278,22 @@
background-color: #008000;
}
+.k-dropdownouter-members-blue {
+ background-color: #5500D4;
+}
+
+.k-dropdownouter-members-grey {
+ background-color: #4D4D4D;
+}
+
+.k-dropdownouter-members-purple {
+ background-color: #672178;
+}
+
+.k-dropdownouter-members-red {
+ background-color: #A02C2C;
+}
+
.k-dropdownouter-part {
}
@@ -3144,6 +3305,22 @@
background-color: #00AA00;
}
+.k-dropdownouter-part-blue {
+ background-color: #6600FF;
+}
+
+.k-dropdownouter-part-grey {
+ background-color: #666666;
+}
+
+.k-dropdownouter-part-purple {
+ background-color: #892CA0;
+}
+
+.k-dropdownouter-part-red {
+ background-color: #C83737;
+}
+
.k-dropdownouter-tags {
}
@@ -3155,6 +3332,22 @@
background-color: #00D400;
}
+.k-dropdownouter-tags-blue {
+ background-color: #9955FF;
+}
+
+.k-dropdownouter-tags-grey {
+ background-color: #808080;
+}
+
+.k-dropdownouter-tags-purple {
+ background-color: #AB37C8;
+}
+
+.k-dropdownouter-tags-red {
+ background-color: #D35F5F;
+}
+
.k-dropdownouter-summary {
}
@@ -3166,6 +3359,22 @@
background-color: #4CE14C;
}
+.k-dropdownouter-summary-blue {
+ background-color: #69A5FF;
+}
+
+.k-dropdownouter-summary-grey {
+ background-color: #A6A6A6;
+}
+
+.k-dropdownouter-summary-purple {
+ background-color: #C473D8;
+}
+
+.k-dropdownouter-summary-red {
+ background-color: #E08F8F;
+}
+
.k-dropdowninner {
margin: 0 3px 1px 3px;
background: green;
@@ -3186,5 +3395,28 @@
.k-dropdownlabel img {
margin: 0 3px 0 1px;
}
+/* WsTheme */
+.k-wstheme-icon-def {
+ background: #FF8C00;
+}
+.k-wstheme-icon-green {
+ background: green;
+}
+.k-wstheme-icon-blue {
+ background: blue;
+}
+
+.k-wstheme-icon-grey {
+ background: grey;
+}
+
+.k-wstheme-icon-purple {
+ background: purple;
+}
+
+.k-wstheme-icon-red {
+ background: red;
+}
+
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-07-27 01:15:27 UTC (rev 819)
@@ -76,9 +76,25 @@
}
.k-entitytextlogo-green .gwt-Label {
+ color: #250;
+}
+
+.k-entitytextlogo-blue .gwt-Label {
color: #000080;
}
+.k-entitytextlogo-grey .gwt-Label {
+ color: #1A1A1A;
+}
+
+.k-entitytextlogo-purple .gwt-Label {
+ color: #440055;
+}
+
+.k-entitytextlogo-red .gwt-Label {
+ color: #800000;
+}
+
.k-entitytextlogo .gwt-Hyperlink a {
color: #CCC;
font-size: 85%;
@@ -96,6 +112,22 @@
background: #5FD35F none repeat scroll 0% 50%;
}
+.k-entity-blue .x-layout-split {
+ background: #0066FF none repeat scroll 0% 50%;
+}
+
+.k-entity-grey .x-layout-split {
+ background: #4D4D4D none repeat scroll 0% 50%;
+}
+
+.k-entity-purple .x-layout-split {
+ background: #660080 none repeat scroll 0% 50%;
+}
+
+.k-entity-red .x-layout-split {
+ background: #D40000 none repeat scroll 0% 50%;
+}
+
.k-entityworkspace .x-layout-split {
background: transparent none repeat scroll 0% 50%;
}
@@ -108,6 +140,22 @@
background: #DCE8AB none repeat scroll 0% 50%;
}
+.k-entityworkspace-blue .x-layout-split {
+ background: #D5D5FF none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-grey .x-layout-split {
+ background: #999999 none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-purple .x-layout-split {
+ background: #A793AC none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-red .x-layout-split {
+ background: #FF5555 none repeat scroll 0% 50%;
+}
+
.k-entity-title {
border-left-style: solid;
border-left-width: 2px;
@@ -134,48 +182,148 @@
background: #5FD35F;
}
+.k-entity-title-rd-blue {
+ background: #0066FF;
+}
+
+.k-entity-title-rd-grey {
+ background: #4D4D4D;
+}
+
+.k-entity-title-rd-purple {
+ background: #660080;
+}
+
+.k-entity-title-rd-red {
+ background: #D40000;
+}
+
.k-entity-title-def {
background: #F1BB59 none repeat scroll 0% 50%;
border-left-color: #DD8A3D;
}
-.k-entity-title-def div {
- color: #69312F;
-}
-
.k-entity-title-green {
background: #AFA none repeat scroll 0% 50%;
border-left-color: #5FD35F;
}
+.k-entity-title-blue {
+ background: #AFDDE9 none repeat scroll 0% 50%;
+ border-left-color: #0066FF;
+}
+
+.k-entity-title-grey {
+ background: #CCCCCC none repeat scroll 0% 50%;
+ border-left-color: #4D4D4D;
+}
+
+.k-entity-title-purple {
+ background: #DDAFE9 none repeat scroll 0% 50%;
+ border-left-color: #660080;
+}
+
+.k-entity-title-red {
+ background: #FF8080 none repeat scroll 0% 50%;
+ border-left-color: #D40000;
+}
+
+.k-entity-title-def div {
+ color: #69312F;
+}
+
.k-entity-title-green div {
color: #250;
}
+.k-entity-title-blue div {
+ color: #000080;
+}
+
+.k-entity-title-grey div {
+ color: #1A1A1A;
+}
+
+.k-entity-title-purple div {
+ color: #440055;
+}
+
+.k-entity-title-red div {
+ color: #800000;
+}
+
.k-entity-subtitle-def {
background: #DD8A3D none repeat scroll 0% 50%;
}
+.k-entity-subtitle-green {
+ background: #5FD35F none repeat scroll 0% 50%;
+}
+
+.k-entity-subtitle-blue {
+ background: #0066FF none repeat scroll 0% 50%;
+}
+
+.k-entity-subtitle-grey {
+ background: #4D4D4D none repeat scroll 0% 50%;
+}
+
+.k-entity-subtitle-purple {
+ background: #660080 none repeat scroll 0% 50%;
+}
+
+.k-entity-subtitle-red {
+ background: #D40000 none repeat scroll 0% 50%;
+}
+
.k-entity-subtitle-def div {
color: #FFF;
}
-.k-entity-subtitle-green {
- background: #5FD35F none repeat scroll 0% 50%;
+.k-entity-subtitle-green div {
+ color: #FFF;
}
-.k-entity-subtitle-green div {
+.k-entity-subtitle-blue div {
color: #FFF;
}
-.k-entity-bottom-rd-def {
+.k-entity-subtitle-grey div {
+ color: #FFF;
+}
+
+.k-entity-subtitle-purple div {
+ color: #FFF;
+}
+
+.k-entity-subtitle-red div {
+ color: #FFF;
+}
+
+.k-entity-bottom-rd-def, .k-entity-bottom-def {
background: #DD8A3D;
}
-.k-entity-bottom-rd-green {
+.k-entity-bottom-rd-green, .k-entity-bottom-green {
background: #5FD35F;
}
+.k-entity-bottom-rd-blue, .k-entity-bottom-blue {
+ background: #0066FF;
+}
+
+.k-entity-bottom-rd-grey, .k-entity-bottom-grey {
+ background: #4D4D4D;
+}
+
+.k-entity-bottom-rd-purple, .k-entity-bottom-purple {
+ background: #660080;
+}
+
+.k-entity-bottom-rd-red, .k-entity-bottom-red {
+ background: #D40000;
+}
+
.k-entitylicensepanel-licensetext {
cursor: pointer;
margin-left: 5px;
@@ -190,23 +338,24 @@
background: #CFA none repeat scroll 0% 50%;
}
-.k-entity-bottom div {
- line-height: 2em;
+.k-entity-container-blue div {
+ background: #AACCFF none repeat scroll 0% 50%;
}
-.k-entity-bottom-def {
- background: #DD8A3D;
+.k-entity-container-grey div {
+ background: #B3B3B3 none repeat scroll 0% 50%;
}
-.k-entity-bottom-def div {
- color: #FFF;
+.k-entity-container-purple div {
+ background: #DDAFE9 none repeat scroll 0% 50%;
}
-.k-entity-bottom-green {
- background: #5FD35F;
+.k-entity-container-red div {
+ background: #FFAAAA none repeat scroll 0% 50%;
}
-.k-entity-bottom-green div {
+.k-entity-bottom div {
+ line-height: 2em;
color: #FFF;
}
@@ -231,9 +380,7 @@
.k-toolbar-sep {
padding-top: 4px;
}
-
/* Custom gwt-ext styles */
-
.ytb-sep {
background-image: url(../js/ext/resources/images/default/grid/grid-split.gif);
background-position: center;
@@ -257,11 +404,9 @@
cursor: pointer;
padding-top: 3px;
}
-
/* Drop down */
-
.k-dropdownouter {
- background-color: gray;
+ background-color: grey;
}
.k-dropdownouter-members {
@@ -275,6 +420,22 @@
background-color: #008000;
}
+.k-dropdownouter-members-blue {
+ background-color: #5500D4;
+}
+
+.k-dropdownouter-members-grey {
+ background-color: #4D4D4D;
+}
+
+.k-dropdownouter-members-purple {
+ background-color: #672178;
+}
+
+.k-dropdownouter-members-red {
+ background-color: #A02C2C;
+}
+
.k-dropdownouter-part {
}
@@ -286,6 +447,22 @@
background-color: #00AA00;
}
+.k-dropdownouter-part-blue {
+ background-color: #6600FF;
+}
+
+.k-dropdownouter-part-grey {
+ background-color: #666666;
+}
+
+.k-dropdownouter-part-purple {
+ background-color: #892CA0;
+}
+
+.k-dropdownouter-part-red {
+ background-color: #C83737;
+}
+
.k-dropdownouter-tags {
}
@@ -297,6 +474,22 @@
background-color: #00D400;
}
+.k-dropdownouter-tags-blue {
+ background-color: #9955FF;
+}
+
+.k-dropdownouter-tags-grey {
+ background-color: #808080;
+}
+
+.k-dropdownouter-tags-purple {
+ background-color: #AB37C8;
+}
+
+.k-dropdownouter-tags-red {
+ background-color: #D35F5F;
+}
+
.k-dropdownouter-summary {
}
@@ -308,6 +501,22 @@
background-color: #4CE14C;
}
+.k-dropdownouter-summary-blue {
+ background-color: #69A5FF;
+}
+
+.k-dropdownouter-summary-grey {
+ background-color: #A6A6A6;
+}
+
+.k-dropdownouter-summary-purple {
+ background-color: #C473D8;
+}
+
+.k-dropdownouter-summary-red {
+ background-color: #E08F8F;
+}
+
.k-dropdowninner {
margin: 0 3px 1px 3px;
background: green;
@@ -328,3 +537,27 @@
.k-dropdownlabel img {
margin: 0 3px 0 1px;
}
+/* WsTheme */
+.k-wstheme-icon-def {
+ background: #FF8C00;
+}
+
+.k-wstheme-icon-green {
+ background: green;
+}
+
+.k-wstheme-icon-blue {
+ background: blue;
+}
+
+.k-wstheme-icon-grey {
+ background: grey;
+}
+
+.k-wstheme-icon-purple {
+ background: purple;
+}
+
+.k-wstheme-icon-red {
+ background: red;
+}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java 2008-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -6,6 +6,7 @@
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
import com.calclab.emiteuimodule.client.EmiteUIDialog;
import com.calclab.suco.client.container.Container;
@@ -28,7 +29,7 @@
public ChatClientTool get() {
return new ChatClientTool(builder.getInstance(Session.class), builder.getInstance(Application.class),
builder.getInstance(I18nUITranslationService.class), builder.getInstance(EmiteUIDialog.class),
- builder.getInstance(WorkspaceSkeleton.class));
+ builder.getInstance(WorkspaceSkeleton.class), builder.getProvider(GroupMembersSummary.class));
}
}, SingletonScope.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-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -21,16 +21,21 @@
package org.ourproject.kune.chat.client;
import org.ourproject.kune.platf.client.app.Application;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.tool.AbstractClientTool;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuItem;
import org.ourproject.kune.workspace.client.component.WorkspaceComponent;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
+import com.calclab.emite.client.xmpp.stanzas.XmppURI;
import com.calclab.emiteuimodule.client.EmiteUIDialog;
+import com.calclab.suco.client.container.Provider;
import com.calclab.suco.client.signal.Slot;
public class ChatClientTool extends AbstractClientTool implements ChatProvider {
@@ -42,7 +47,8 @@
private ChatEngine chat;
public ChatClientTool(final Session session, final Application application, final I18nTranslationService i18n,
- final EmiteUIDialog emiteUIDialog, final WorkspaceSkeleton ws) {
+ final EmiteUIDialog emiteUIDialog, final WorkspaceSkeleton ws,
+ final Provider<GroupMembersSummary> groupMembersSummaryProvider) {
super(i18n.t("chat rooms"));
components = new ChatToolComponents(emiteUIDialog, i18n);
session.onInitDataReceived(new Slot<InitDataDTO>() {
@@ -50,6 +56,15 @@
final ChatOptions chatOptions = new ChatOptions(initData.getChatHttpBase(), initData.getChatDomain(),
initData.getChatRoomHost());
chat = new ChatEngineXmpp(emiteUIDialog, chatOptions, i18n, ws);
+ groupMembersSummaryProvider.get().addGroupOperation(
+ new GridMenuItem<GroupDTO>("images/chat-basic.gif", i18n.t("Start a chat with this member"),
+ new Slot<GroupDTO>() {
+ public void onEvent(final GroupDTO group) {
+ emiteUIDialog.chat(XmppURI.jid(group.getShortName() + "@"
+ + initData.getChatDomain()));
+ emiteUIDialog.show();
+ }
+ }), true);
}
});
application.onApplicationStop(new Slot<Object>() {
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-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -119,7 +119,6 @@
public void onFailure(final Throwable error) {
Site.error("Error fetching initial data");
Log.debug(error.getMessage());
- ws.unMask();
}
public void onSuccess(final InitDataDTO initData) {
@@ -127,7 +126,6 @@
session.setInitData(initData);
session.setCurrentUserInfo(initData.getUserInfo());
stateManager.reload();
- ws.unMask();
}
private void checkChatDomain(final String chatDomain) {
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-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -33,6 +33,7 @@
import org.ourproject.kune.workspace.client.sitebar.Site;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
+import com.allen_sauer.gwt.log.client.Log;
import com.calclab.suco.client.container.Provider;
import com.calclab.suco.client.signal.Signal;
import com.calclab.suco.client.signal.Slot;
@@ -65,31 +66,40 @@
try {
throw caught;
} catch (final AccessViolationException e) {
+ logException(e);
Site.error(i18n.t("You don't have rights to do that"));
} catch (final SessionExpiredException e) {
+ logException(e);
doSessionExpired();
} catch (final UserMustBeLoggedException e) {
+ logException(e);
if (session.isLogged()) {
doSessionExpired();
} else {
Site.important(i18n.t("Please sign in or register to collaborate"));
}
} catch (final GroupNotFoundException e) {
+ logException(e);
Site.error(i18n.t("Group not found"));
DefaultDispatcher.getInstance().fire(PlatformEvents.GOTO, "");
} catch (final ContentNotFoundException e) {
+ logException(e);
Site.error(i18n.t("Content not found"));
DefaultDispatcher.getInstance().fire(PlatformEvents.GOTO, "");
} catch (final LastAdminInGroupException e) {
+ logException(e);
getWorkspaceSkeleton().showAlertMessage(
i18n.t("Warning"),
i18n.t("Sorry, you are the last admin of this group."
+ " Look for someone to substitute you appropriately as admin before unjoin this group."));
} catch (final AlreadyGroupMemberException e) {
+ logException(e);
Site.error(i18n.t("This group is already a group member"));
} catch (final AlreadyUserMemberException e) {
+ logException(e);
Site.error(i18n.t("This user is already a member of this group"));
} catch (final Throwable e) {
+ logException(e);
Site.error(i18n.t("Error performing operation"));
GWT.log("Other kind of exception in StateManagerDefault/processErrorException", null);
throw new RuntimeException();
@@ -102,4 +112,8 @@
i18n.t("Your session has expired. Please login again."));
}
+ private void logException(final Throwable e) {
+ Log.debug("Exception in KuneErrorHandler", e);
+ }
+
}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateIt.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateIt.java 2008-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateIt.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -0,0 +1,11 @@
+package org.ourproject.kune.platf.client.ui.rate;
+
+import org.ourproject.kune.platf.client.dto.StateDTO;
+
+public interface RateIt {
+
+ void setState(StateDTO state);
+
+ void setVisible(boolean visible);
+
+}
Added: 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-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePresenter.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -0,0 +1,30 @@
+package org.ourproject.kune.platf.client.ui.rate;
+
+import org.ourproject.kune.platf.client.dto.StateDTO;
+
+public class RatePresenter {
+
+ private RateView view;
+
+ public RatePresenter() {
+ }
+
+ public void init(final RateView view) {
+ this.view = view;
+ }
+
+ public void setState(final StateDTO state) {
+ if (state.isRateable()) {
+ view.setVisible(true);
+ view.setRate(state.getRate());
+ view.setByUsers(state.getRateByUsers());
+ } else {
+ view.setVisible(false);
+ }
+
+ }
+
+ public void setVisible(final boolean visible) {
+ view.setVisible(visible);
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2008-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -59,6 +59,7 @@
addStyleName("kune-Margin-Medium-t");
flowPanel.addStyleName("kune-Margin-Small-trbl");
ws.getEntitySummary().addInSummary(this);
+ ws.unMask();
}
public void setTags(final List<TagResultDTO> groupTags) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java 2008-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -15,10 +15,12 @@
private final Menu menu;
private final WsThemePresenter presenter;
+ private final I18nUITranslationService i18n;
public WsThemePanel(final WorkspaceSkeleton ws, final WsThemePresenter presenter,
final I18nUITranslationService i18n) {
this.presenter = presenter;
+ this.i18n = i18n;
menu = new Menu();
menu.setDefaultAlign("br-tr");
@@ -37,7 +39,10 @@
for (int i = 0; i < themes.length; i++) {
final WsTheme theme = new WsTheme(themes[i]);
final MenuItem item = new MenuItem();
- item.setText(theme.toString());
+ final String name = theme.getName();
+ final String itemText = name.equals("def") ? i18n.t("default") : i18n.t(name);
+ item.setIconCls("k-wstheme-icon-" + name);
+ item.setText(itemText);
menu.addItem(item);
item.addListener(new BaseItemListenerAdapter() {
@Override
1
0
Author: vjrj
Date: 2008-07-26 22:07:21 +0200 (Sat, 26 Jul 2008)
New Revision: 818
Removed:
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/DisableRateItAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/EnableRateItAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/RateContentAction.java
Modified:
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.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/RateItPanel.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/RateItView.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/ContentBottomToolBarPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java
trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java
Log:
Rate widgets refactorization
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -5,6 +5,7 @@
import org.ourproject.kune.platf.client.app.Application;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.rate.RateIt;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.workspace.TagsSummary;
@@ -29,7 +30,7 @@
public DocumentFactory get() {
return new DocumentFactory(builder.getInstance(I18nUITranslationService.class), builder
.getInstance(Session.class), builder.getProvider(TagsSummary.class), builder
- .getInstance(WorkspaceSkeleton.class));
+ .getInstance(WorkspaceSkeleton.class), builder.getInstance(RateIt.class));
}
}, SingletonScope.class);
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-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -36,6 +36,7 @@
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetId;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.ui.rate.RateIt;
import org.ourproject.kune.workspace.client.WorkspaceEvents;
import org.ourproject.kune.workspace.client.component.WorkspaceDeckView;
import org.ourproject.kune.workspace.client.editor.TextEditor;
@@ -49,12 +50,14 @@
private final DocumentReader reader;
private final DocumentReaderControl readerControl;
private final Session session;
+ private final RateIt rateIt;
public DocumentContentPresenter(final DocumentFactory documentFactory, final DocumentContentListener listener,
- final WorkspaceDeckView view, final Session session) {
+ final WorkspaceDeckView view, final Session session, final RateIt rateIt) {
this.listener = listener;
this.view = view;
this.session = session;
+ this.rateIt = rateIt;
this.components = new DocumentContentComponents(documentFactory, this);
reader = components.getDocumentReader();
readerControl = components.getDocumentReaderControl();
@@ -74,7 +77,7 @@
showContent();
listener.onCancel();
// Re-enable rateIt widget
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.ENABLE_RATEIT, null);
+ rateIt.setVisible(true);
}
public void onDelete() {
@@ -86,7 +89,7 @@
public void onSuccess(final Object result) {
if (content.hasDocument()) {
// Don't permit rate content while your are editing
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.DISABLE_RATEIT, null);
+ rateIt.setVisible(false);
final TextEditor editor = components.getDocumentEditor();
editor.setContent(content.getContent());
view.show(editor.getView());
@@ -109,7 +112,7 @@
content.setContent(text);
DefaultDispatcher.getInstance().fire(DocsEvents.SAVE_DOCUMENT, new SaveDocumentActionParams(content, this));
// Re-enable rateIt widget
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.ENABLE_RATEIT, null);
+ rateIt.setVisible(true);
DefaultDispatcher.getInstance().fire(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, null);
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -49,6 +49,7 @@
import org.ourproject.kune.docs.client.ctx.folder.FolderContextPresenter;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.ui.rate.RateIt;
import org.ourproject.kune.workspace.client.WorkspaceFactory;
import org.ourproject.kune.workspace.client.component.WorkspaceDeckPanel;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItems;
@@ -63,13 +64,15 @@
private final Session session;
private final Provider<TagsSummary> tagsSummaryProvider;
private final WorkspaceSkeleton ws;
+ private final RateIt rateIt;
public DocumentFactory(final I18nTranslationService i18n, final Session session,
- final Provider<TagsSummary> tagsSummaryProvider, final WorkspaceSkeleton ws) {
+ final Provider<TagsSummary> tagsSummaryProvider, final WorkspaceSkeleton ws, final RateIt rateIt) {
this.i18n = i18n;
this.session = session;
this.tagsSummaryProvider = tagsSummaryProvider;
this.ws = ws;
+ this.rateIt = rateIt;
}
public AdminContext createAdminContext() {
@@ -81,7 +84,7 @@
public DocumentContent createDocumentContent(final DocumentContentListener listener) {
final WorkspaceDeckPanel panel = new WorkspaceDeckPanel();
- final DocumentContentPresenter presenter = new DocumentContentPresenter(this, listener, panel, session);
+ final DocumentContentPresenter presenter = new DocumentContentPresenter(this, listener, panel, session, rateIt);
return presenter;
}
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-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -11,6 +11,7 @@
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.rpc.ContentService;
+import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
import org.ourproject.kune.platf.client.rpc.GroupService;
import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
@@ -20,6 +21,11 @@
import org.ourproject.kune.platf.client.state.SessionImpl;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.state.StateManagerDefault;
+import org.ourproject.kune.platf.client.ui.rate.RateIt;
+import org.ourproject.kune.platf.client.ui.rate.RateItPanel;
+import org.ourproject.kune.platf.client.ui.rate.RateItPresenter;
+import org.ourproject.kune.platf.client.ui.rate.RatePanel;
+import org.ourproject.kune.platf.client.ui.rate.RatePresenter;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoose;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePanel;
@@ -169,6 +175,12 @@
}
}, SingletonScope.class);
+ builder.registerProvider(ContentServiceAsync.class, new Provider<ContentServiceAsync>() {
+ public ContentServiceAsync get() {
+ return ContentService.App.getInstance();
+ }
+ }, SingletonScope.class);
+
builder.registerProvider(Session.class, new Provider<Session>() {
public Session get() {
return new SessionImpl(Cookies.getCookie(Site.USERHASH), initialLang, p(UserServiceAsync.class));
@@ -405,12 +417,32 @@
}
}, SingletonScope.class);
+ builder.registerProvider(RatePresenter.class, new Provider<RatePresenter>() {
+ public RatePresenter get() {
+ final RatePresenter presenter = new RatePresenter();
+ final RatePanel panel = new RatePanel(null, null, i18n, ws);
+ presenter.init(panel);
+ return presenter;
+ }
+ }, SingletonScope.class);
+
+ builder.registerProvider(RateIt.class, new Provider<RateIt>() {
+ public RateIt get() {
+ final RateItPresenter presenter = new RateItPresenter(i18n, i(Session.class),
+ p(ContentServiceAsync.class), p(StateManager.class));
+ final RateItPanel panel = new RateItPanel(presenter, i18n, ws);
+ presenter.init(panel);
+ return presenter;
+ }
+ }, SingletonScope.class);
+
builder.registerProvider(WorkspaceManager.class, new Provider<WorkspaceManager>() {
public WorkspaceManager get() {
final WorkspaceManager presenter = new WorkspaceManager(i(SitePublicSpaceLink.class),
i(EntityLogo.class), i(EntityTitlePresenter.class), i(EntitySubTitlePresenter.class),
i(WsThemePresenter.class), i(EntityLicensePresenter.class), p(GroupMembersSummary.class),
- p(ParticipationSummary.class), p(TagsSummary.class), p(GroupSummary.class));
+ p(ParticipationSummary.class), p(TagsSummary.class), p(GroupSummary.class), i(RateIt.class),
+ i(RatePresenter.class));
return presenter;
}
}, SingletonScope.class);
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-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -371,6 +371,8 @@
});
grid.stripeRows(true);
grid.setHideColumnHeader(true);
+ // Not sure if when doLayoutIfNeeded there are problems with size and
+ // column header
grid.setBorder(false);
grid.setAutoScroll(true);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPanel.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPanel.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -21,6 +21,7 @@
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.Images;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
@@ -39,90 +40,91 @@
private Label rateItLabel;
private final I18nTranslationService i18n;
- public RateItPanel(final RateItPresenter presenter, final I18nTranslationService i18n) {
- this.presenter = presenter;
- this.i18n = i18n;
- initialize();
- layout();
- setProperties();
+ public RateItPanel(final RateItPresenter presenter, final I18nTranslationService i18n, final WorkspaceSkeleton ws) {
+ this.presenter = presenter;
+ this.i18n = i18n;
+ initialize();
+ layout();
+ setProperties();
+ ws.getEntityWorkspace().getContentBottomBar().add(this);
}
public void clearRate() {
- for (int i = 0; i < 5; i++) {
- img.starGrey().applyTo(starImg[i]);
- }
+ for (int i = 0; i < 5; i++) {
+ img.starGrey().applyTo(starImg[i]);
+ }
}
public void onClick(final Widget sender) {
- for (int i = 0; i < 5; i++) {
- if (sender == starImg[i]) {
- presenter.starClicked(i);
- }
- }
+ for (int i = 0; i < 5; i++) {
+ if (sender == starImg[i]) {
+ presenter.starClicked(i);
+ }
+ }
}
public void setDesc(final String desc) {
- rateDesc.setText(desc);
+ rateDesc.setText(desc);
}
public void setRate(final Star stars[]) {
- for (int i = 0; i < 5; i++) {
- stars[i].getImage().applyTo(starImg[i]);
- }
+ for (int i = 0; i < 5; i++) {
+ stars[i].getImage().applyTo(starImg[i]);
+ }
}
public void setStars(final Double rate) {
- setRate(Star.genStars(rate.doubleValue()));
+ setRate(Star.genStars(rate.doubleValue()));
}
private void initialize() {
- rateItLabel = new Label(i18n.t("Rate it:"));
- rateGrid = new Grid(1, 7);
- starImg = new Image[5];
- rateDesc = new Label();
- for (int i = 0; i < 5; i++) {
- starImg[i] = new Image();
- img.starGrey().applyTo(starImg[i]);
- starImg[i].addStyleName("rateit-star");
- starImg[i].setStyleName("rateit-star");
- starImg[i].setTitle(i18n.t("Click to rate this"));
- starImg[i].addClickListener(this);
- starImg[i].addMouseListener(new MouseListenerAdapter() {
- public void onMouseEnter(final Widget sender) {
- for (int j = 0; j < 5; j++) {
- if (sender == starImg[j]) {
- presenter.starOver(j);
- }
- }
+ rateItLabel = new Label(i18n.t("Rate it:"));
+ rateGrid = new Grid(1, 7);
+ starImg = new Image[5];
+ rateDesc = new Label();
+ for (int i = 0; i < 5; i++) {
+ starImg[i] = new Image();
+ img.starGrey().applyTo(starImg[i]);
+ starImg[i].addStyleName("rateit-star");
+ starImg[i].setStyleName("rateit-star");
+ starImg[i].setTitle(i18n.t("Click to rate this"));
+ starImg[i].addClickListener(this);
+ starImg[i].addMouseListener(new MouseListenerAdapter() {
+ public void onMouseEnter(final Widget sender) {
+ for (int j = 0; j < 5; j++) {
+ if (sender == starImg[j]) {
+ presenter.starOver(j);
+ }
+ }
- }
+ }
- public void onMouseLeave(final Widget sender) {
- presenter.revertCurrentRate();
- }
- });
- }
+ public void onMouseLeave(final Widget sender) {
+ presenter.revertCurrentRate();
+ }
+ });
+ }
}
private void layout() {
- initWidget(rateGrid);
- rateGrid.setWidget(0, 0, rateItLabel);
- for (int i = 0; i < 5; i++) {
- rateGrid.setWidget(0, i + 1, starImg[i]);
- }
- rateGrid.setWidget(0, 6, rateDesc);
+ initWidget(rateGrid);
+ rateGrid.setWidget(0, 0, rateItLabel);
+ for (int i = 0; i < 5; i++) {
+ rateGrid.setWidget(0, i + 1, starImg[i]);
+ }
+ rateGrid.setWidget(0, 6, rateDesc);
}
private void setProperties() {
- rateGrid.setCellPadding(0);
- rateGrid.setCellSpacing(0);
- rateGrid.setBorderWidth(0);
- rateItLabel.addStyleName("kune-Margin-Medium-r");
- rateItLabel.addStyleName("kune-Margin-Medium-l");
- rateItLabel.addStyleName("kune-RatePanel-Label");
- rateGrid.addStyleName("kune-RatePanel-Stars");
- rateGrid.addStyleName("kune-RatePanel-Stars-RateIt");
- rateDesc.addStyleName("kune-RatePanel-Label");
- rateDesc.addStyleName("kune-Margin-Medium-l");
+ rateGrid.setCellPadding(0);
+ rateGrid.setCellSpacing(0);
+ rateGrid.setBorderWidth(0);
+ rateItLabel.addStyleName("kune-Margin-Medium-r");
+ rateItLabel.addStyleName("kune-Margin-Medium-l");
+ rateItLabel.addStyleName("kune-RatePanel-Label");
+ rateGrid.addStyleName("kune-RatePanel-Stars");
+ rateGrid.addStyleName("kune-RatePanel-Stars-RateIt");
+ rateDesc.addStyleName("kune-RatePanel-Label");
+ rateDesc.addStyleName("kune-Margin-Medium-l");
}
}
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-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPresenter.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -19,93 +19,125 @@
*/
package org.ourproject.kune.platf.client.ui.rate;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
+import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.sitebar.Site;
-public class RateItPresenter {
+import com.calclab.suco.client.container.Provider;
+public class RateItPresenter implements RateIt {
+
private static final Double NOT_RATED = new Double(-1);
-
private RateItView view;
-
private Double currentRate;
-
private boolean isRating;
-
private final I18nTranslationService i18n;
+ private final Provider<ContentServiceAsync> contentServiceProvider;
+ private final Session session;
+ private final Provider<StateManager> stateManagerProvider;
- public RateItPresenter(final I18nTranslationService i18n) {
- this.i18n = i18n;
+ public RateItPresenter(final I18nTranslationService i18n, final Session session,
+ final Provider<ContentServiceAsync> contentServiceProvider,
+ final Provider<StateManager> stateManagerProvider) {
+ this.i18n = i18n;
+ this.session = session;
+ this.contentServiceProvider = contentServiceProvider;
+ this.stateManagerProvider = stateManagerProvider;
}
public void init(final RateItView view) {
- this.view = view;
- currentRate = NOT_RATED;
- isRating = false;
+ this.view = view;
+ currentRate = NOT_RATED;
+ isRating = false;
}
public void setRate(final Double value) {
- currentRate = value;
- if (currentRate == null) {
- currentRate = NOT_RATED;
- }
- isRating = false;
- setRatePanel(currentRate);
+ currentRate = value;
+ if (currentRate == null) {
+ currentRate = NOT_RATED;
+ }
+ isRating = false;
+ setRatePanel(currentRate);
}
+ public void setState(final StateDTO state) {
+ if (state.isRateable()) {
+ if (session.isLogged()) {
+ setRate(state.getCurrentUserRate());
+ view.setVisible(true);
+ } else {
+ view.setVisible(false);
+ }
+ } else {
+ view.setVisible(false);
+ }
+ }
+
+ public void setVisible(final boolean visible) {
+ view.setVisible(visible);
+ }
+
protected void revertCurrentRate() {
- if (!isRating) {
- setRatePanel(currentRate);
- }
+ if (!isRating) {
+ setRatePanel(currentRate);
+ }
}
protected void starClicked(final int starClicked) {
- isRating = true;
- Double newValue = new Double(starClicked + 1);
- if (Math.ceil(currentRate.doubleValue()) == newValue.doubleValue()) {
- // Same star, rest 1/2
- newValue = new Double(currentRate.doubleValue() - 0.5);
- }
- setRatePanel(newValue);
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.RATE_CONTENT, newValue);
+ isRating = true;
+ final Double newValue = starClicked + 1d == currentRate ? currentRate - 0.5d : starClicked + 1d;
+ setRatePanel(newValue);
+ Site.showProgressProcessing();
+ final StateDTO currentState = session.getCurrentState();
+ contentServiceProvider.get().rateContent(session.getUserHash(), currentState.getGroup().getShortName(),
+ currentState.getDocumentId(), newValue, new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ Site.hideProgress();
+ Site.info(i18n.t("Content rated"));
+ stateManagerProvider.get().reload();
+ }
+ });
}
protected void starOver(final int starMouseOver) {
- Double value = new Double(starMouseOver + 1);
- if (Math.ceil(currentRate.doubleValue()) == value.doubleValue()) {
- // use user already rated -> live same value when mouse is over
- value = currentRate;
- }
- if (!isRating) {
- // If we are not doing a rate rpc call
- setRatePanel(value);
- }
+ Double value = new Double(starMouseOver + 1);
+ if (Math.ceil(currentRate.doubleValue()) == value.doubleValue()) {
+ // use user already rated -> live same value when mouse is over
+ value = currentRate;
+ }
+ if (!isRating) {
+ // If we are not doing a rate rpc call
+ setRatePanel(value);
+ }
}
private void setDesc(final int rateTruncated) {
- if (rateTruncated >= 0 && rateTruncated <= 1) {
- view.setDesc(i18n.t("Poor"));
- } else if (rateTruncated == 2) {
- view.setDesc(i18n.t("Below average"));
- } else if (rateTruncated == 3) {
- view.setDesc(i18n.t("Average"));
- } else if (rateTruncated == 4) {
- view.setDesc(i18n.t("Above average"));
- } else if (rateTruncated == 5) {
- view.setDesc(i18n.t("Excellent"));
- } else {
- view.setDesc("");
- }
+ if (rateTruncated >= 0 && rateTruncated <= 1) {
+ view.setDesc(i18n.t("Poor"));
+ } else if (rateTruncated == 2) {
+ view.setDesc(i18n.t("Below average"));
+ } else if (rateTruncated == 3) {
+ view.setDesc(i18n.t("Average"));
+ } else if (rateTruncated == 4) {
+ view.setDesc(i18n.t("Above average"));
+ } else if (rateTruncated == 5) {
+ view.setDesc(i18n.t("Excellent"));
+ } else {
+ view.setDesc("");
+ }
}
private void setRatePanel(final Double value) {
- if (value.equals(NOT_RATED)) {
- view.clearRate();
- view.setDesc("");
- } else {
- view.setStars(value);
- setDesc((int) Math.ceil(value.doubleValue()));
- }
+ if (value.equals(NOT_RATED)) {
+ view.clearRate();
+ view.setDesc("");
+ } else {
+ view.setStars(value);
+ setDesc((int) Math.ceil(value.doubleValue()));
+ }
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItView.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItView.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -21,10 +21,12 @@
public interface RateItView {
- void setStars(Double value);
-
void clearRate();
void setDesc(String desc);
+ void setStars(Double value);
+
+ void setVisible(boolean visible);
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePanel.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePanel.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -20,6 +20,8 @@
package org.ourproject.kune.platf.client.ui.rate;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.Toolbar;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Grid;
@@ -32,65 +34,69 @@
private Label rateDesc;
private final I18nTranslationService i18n;
- public RatePanel(final Double rate, final Integer byUsers, final I18nTranslationService i18n) {
- this.i18n = i18n;
- initialize();
- layout();
- setProperties();
- if (rate != null) {
- setRate(rate);
- }
- if (byUsers != null) {
- setByUsers(byUsers);
- }
+ public RatePanel(final Double rate, final Integer byUsers, final I18nTranslationService i18n,
+ final WorkspaceSkeleton ws) {
+ this.i18n = i18n;
+ initialize();
+ layout();
+ setProperties();
+ if (rate != null) {
+ setRate(rate);
+ }
+ if (byUsers != null) {
+ setByUsers(byUsers);
+ }
+ final Toolbar bottomBar = ws.getEntityWorkspace().getContentBottomBar();
+ bottomBar.addFill();
+ bottomBar.add(this);
}
public void setByUsers(final Integer byUsers) {
- if (byUsers.intValue() == 0) {
- rateDesc.setText(i18n.t("(Not rated)"));
- } else if (byUsers.intValue() == 1) {
- // i18n params pluralization
- rateDesc.setText(i18n.t("([%d] user)", byUsers));
- } else {
- rateDesc.setText(i18n.t("([%d] users)", byUsers));
- }
+ if (byUsers.intValue() == 0) {
+ rateDesc.setText(i18n.t("(Not rated)"));
+ } else if (byUsers.intValue() == 1) {
+ // i18n params pluralization
+ rateDesc.setText(i18n.t("([%d] user)", byUsers));
+ } else {
+ rateDesc.setText(i18n.t("([%d] users)", byUsers));
+ }
}
public void setRate(final Double rate) {
- setRate(Star.genStars(rate.doubleValue()));
+ setRate(Star.genStars(rate.doubleValue()));
}
private void initialize() {
- rateGrid = new Grid(1, 6);
- starImg = new Image[5];
- for (int i = 0; i < 5; i++) {
- starImg[i] = new Image();
- new Star(Star.GREY).getImage().applyTo(starImg[i]);
- }
- rateDesc = new Label();
+ rateGrid = new Grid(1, 6);
+ starImg = new Image[5];
+ for (int i = 0; i < 5; i++) {
+ starImg[i] = new Image();
+ new Star(Star.GREY).getImage().applyTo(starImg[i]);
+ }
+ rateDesc = new Label();
}
private void layout() {
- initWidget(rateGrid);
- for (int i = 0; i < 5; i++) {
- rateGrid.setWidget(0, i, starImg[i]);
- }
- rateGrid.setWidget(0, 5, rateDesc);
+ initWidget(rateGrid);
+ for (int i = 0; i < 5; i++) {
+ rateGrid.setWidget(0, i, starImg[i]);
+ }
+ rateGrid.setWidget(0, 5, rateDesc);
}
private void setProperties() {
- rateGrid.setCellPadding(0);
- rateGrid.setCellSpacing(0);
- rateGrid.setBorderWidth(0);
- rateGrid.addStyleName("kune-RatePanel-Stars");
- rateDesc.addStyleName("kune-RatePanel-Label");
- rateDesc.addStyleName("kune-Margin-Medium-lr");
+ rateGrid.setCellPadding(0);
+ rateGrid.setCellSpacing(0);
+ rateGrid.setBorderWidth(0);
+ rateGrid.addStyleName("kune-RatePanel-Stars");
+ rateDesc.addStyleName("kune-RatePanel-Label");
+ rateDesc.addStyleName("kune-Margin-Medium-lr");
}
private void setRate(final Star stars[]) {
- for (int i = 0; i < 5; i++) {
- stars[i].getImage().applyTo(starImg[i]);
- }
+ for (int i = 0; i < 5; i++) {
+ stars[i].getImage().applyTo(starImg[i]);
+ }
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateView.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateView.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -20,7 +20,11 @@
package org.ourproject.kune.platf.client.ui.rate;
public interface RateView {
+
+ public void setByUsers(Integer byUsers);
+
public void setRate(Double rate);
- public void setByUsers(Integer byUsers);
+ public void setVisible(boolean visible);
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -20,8 +20,6 @@
package org.ourproject.kune.workspace.client;
import org.ourproject.kune.platf.client.PlatformEvents;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.platf.client.dispatch.Dispatcher;
import org.ourproject.kune.platf.client.extend.ClientModule;
import org.ourproject.kune.platf.client.extend.Register;
import org.ourproject.kune.platf.client.state.Session;
@@ -29,9 +27,6 @@
import org.ourproject.kune.workspace.client.actions.AttachToExtensibleWidgetAction;
import org.ourproject.kune.workspace.client.actions.ClearExtensibleWidgetAction;
import org.ourproject.kune.workspace.client.actions.DetachFromExtensibleWidgetAction;
-import org.ourproject.kune.workspace.client.actions.DisableRateItAction;
-import org.ourproject.kune.workspace.client.actions.EnableRateItAction;
-import org.ourproject.kune.workspace.client.actions.RateContentAction;
import org.ourproject.kune.workspace.client.actions.RecalculateWorkspaceAction;
import org.ourproject.kune.workspace.client.actions.ReloadContextAction;
import org.ourproject.kune.workspace.client.actions.i18n.DoTranslationAction;
@@ -45,7 +40,6 @@
private final StateManager stateManager;
private final Workspace workspace;
- private final Dispatcher dispacher;
private final Session session;
private final I18nUITranslationService i18n;
@@ -54,7 +48,6 @@
this.session = session;
this.stateManager = stateManager;
this.i18n = i18n;
- dispacher = DefaultDispatcher.getInstance();
this.workspace = workspace;
}
@@ -63,9 +56,6 @@
register.addAction(PlatformEvents.DETACH_FROM_EXTENSIBLE_WIDGET,
new DetachFromExtensibleWidgetAction(workspace));
register.addAction(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET, new ClearExtensibleWidgetAction(workspace));
- register.addAction(WorkspaceEvents.RATE_CONTENT, new RateContentAction(session, stateManager, i18n));
- register.addAction(WorkspaceEvents.ENABLE_RATEIT, new EnableRateItAction(workspace));
- register.addAction(WorkspaceEvents.DISABLE_RATEIT, new DisableRateItAction(workspace));
register.addAction(WorkspaceEvents.GET_TRANSLATION, new GetTranslationAction(session));
register.addAction(WorkspaceEvents.SHOW_TRANSLATOR, new ShowTranslatorAction(session, workspace, i18n));
register.addAction(WorkspaceEvents.DO_TRANSLATION, new DoTranslationAction(session, i18n));
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -21,9 +21,6 @@
package org.ourproject.kune.workspace.client;
public interface WorkspaceEvents {
- public static final String RATE_CONTENT = "ws.RateContent";
- public static final String ENABLE_RATEIT = "ws.EnableRateIt";
- public static final String DISABLE_RATEIT = "ws.DisableRateIt";
public static final String GET_LEXICON = "i18n.getLexicon";
public static final String SHOW_TRANSLATOR = "i18n.ShowTranslator";
public static final String SHOW_SEARCHER = "ws.ShowSearcher";
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -45,9 +45,6 @@
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItems;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItemsPanel;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItemsPresenter;
-import org.ourproject.kune.workspace.client.workspace.ContentBottomToolBarComponent;
-import org.ourproject.kune.workspace.client.workspace.ContentBottomToolBarPresenter;
-import org.ourproject.kune.workspace.client.workspace.ContentBottomToolBarView;
import org.ourproject.kune.workspace.client.workspace.ContentSubTitleComponent;
import org.ourproject.kune.workspace.client.workspace.ContentSubTitlePresenter;
import org.ourproject.kune.workspace.client.workspace.ContentSubTitleView;
@@ -60,7 +57,6 @@
import org.ourproject.kune.workspace.client.workspace.Workspace;
import org.ourproject.kune.workspace.client.workspace.WorkspacePresenter;
import org.ourproject.kune.workspace.client.workspace.WorkspaceView;
-import org.ourproject.kune.workspace.client.workspace.ui.ContentBottomToolBarPanel;
import org.ourproject.kune.workspace.client.workspace.ui.ContentSubTitlePanel;
import org.ourproject.kune.workspace.client.workspace.ui.ContentTitlePanel;
import org.ourproject.kune.workspace.client.workspace.ui.ContentToolBarPanel;
@@ -72,13 +68,6 @@
private static I18nTranslationService i18n;
private static KuneErrorHandler errorHandler;
- public static ContentBottomToolBarComponent createContentBottomToolBarComponent() {
- final ContentBottomToolBarPresenter presenter = new ContentBottomToolBarPresenter();
- final ContentBottomToolBarView view = new ContentBottomToolBarPanel(presenter, i18n);
- presenter.init(view);
- return presenter;
- }
-
public static ContentSubTitleComponent createContentSubTitleComponent() {
final ContentSubTitlePresenter presenter = new ContentSubTitlePresenter(i18n);
final ContentSubTitleView view = new ContentSubTitlePanel(presenter, i18n);
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/DisableRateItAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/DisableRateItAction.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/DisableRateItAction.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -1,40 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-public class DisableRateItAction implements Action<Object> {
-
- private final Workspace workspace;
-
- public DisableRateItAction(final Workspace workspace) {
- this.workspace = workspace;
- }
-
- public void execute(final Object value) {
- onDisableRateItAction();
- }
-
- private void onDisableRateItAction() {
- workspace.getContentBottomToolBarComponent().setEnabledRateIt(false);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/EnableRateItAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/EnableRateItAction.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/EnableRateItAction.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-@SuppressWarnings("unchecked")
-public class EnableRateItAction implements Action {
-
- private final Workspace workspace;
-
- public EnableRateItAction(final Workspace workspace) {
- this.workspace = workspace;
- }
-
- public void execute(final Object value) {
- onEnableRateItAction();
- }
-
- private void onEnableRateItAction() {
- workspace.getContentBottomToolBarComponent().setEnabledRateIt(true);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/RateContentAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/RateContentAction.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/RateContentAction.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -1,61 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.StateDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.ContentService;
-import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-public class RateContentAction implements Action<Double> {
-
- private final StateManager stateManager;
- private final Session session;
- private final I18nTranslationService i18n;
-
- public RateContentAction(final Session session, final StateManager stateManager, final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final Double value) {
- onRateContent(value);
- }
-
- private void onRateContent(final Double value) {
- Site.showProgressProcessing();
- ContentServiceAsync server = ContentService.App.getInstance();
- StateDTO currentState = session.getCurrentState();
- server.rateContent(session.getUserHash(), currentState.getGroup().getShortName(), currentState.getDocumentId(),
- value, new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- Site.hideProgress();
- Site.info(i18n.t("Content rated"));
- stateManager.reload();
- }
- });
- }
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -2,6 +2,8 @@
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.ui.rate.RateIt;
+import org.ourproject.kune.platf.client.ui.rate.RatePresenter;
import org.ourproject.kune.workspace.client.ui.newtmp.licensefoot.EntityLicensePresenter;
import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
@@ -29,13 +31,16 @@
private final Provider<ParticipationSummary> participationSummaryProvider;
private final Provider<GroupSummary> groupSummaryProvider;
private final SitePublicSpaceLink publicSpaceLink;
+ private final RateIt rateIt;
+ private final RatePresenter ratePresenter;
public WorkspaceManager(final SitePublicSpaceLink publicSpaceLink, final EntityLogo entityLogo,
final EntityTitlePresenter entityTitlePresenter, final EntitySubTitlePresenter entitySubTitlePresenter,
final WsThemePresenter wsThemePresenter, final EntityLicensePresenter entityLicensePresenter,
final Provider<GroupMembersSummary> groupMembersSummaryProvider,
final Provider<ParticipationSummary> participationSummaryProvider,
- final Provider<TagsSummary> tagsSummaryProvider, final Provider<GroupSummary> groupSummaryProvider) {
+ final Provider<TagsSummary> tagsSummaryProvider, final Provider<GroupSummary> groupSummaryProvider,
+ final RateIt rateIt, final RatePresenter ratePresenter) {
this.publicSpaceLink = publicSpaceLink;
this.entityLogo = entityLogo;
this.entityTitlePresenter = entityTitlePresenter;
@@ -46,6 +51,8 @@
this.participationSummaryProvider = participationSummaryProvider;
this.tagsProvider = tagsSummaryProvider;
this.groupSummaryProvider = groupSummaryProvider;
+ this.rateIt = rateIt;
+ this.ratePresenter = ratePresenter;
wsThemePresenter.onThemeChanged(new Slot2<WsTheme, WsTheme>() {
public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
entityLogo.setTheme(oldTheme, newTheme);
@@ -75,6 +82,8 @@
groupSummaryProvider.get().setState(state);
tagsProvider.get().setState(state);
wsThemePresenter.setState(state);
+ rateIt.setState(state);
+ ratePresenter.setState(state);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -49,8 +49,6 @@
public void detachFromExtensibleWidget(ExtensibleWidgetChild ext);
- public ContentBottomToolBarComponent getContentBottomToolBarComponent();
-
public ContentSubTitleComponent getContentSubTitleComponent();
public ContentTitleComponent getContentTitleComponent();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -88,10 +88,6 @@
extensionPointManager.detachFromExtensible(child);
}
- public ContentBottomToolBarComponent getContentBottomToolBarComponent() {
- return components.getContentBottomToolBarComponent();
- }
-
public ContentSubTitleComponent getContentSubTitleComponent() {
return components.getContentSubTitleComponent();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -27,27 +27,13 @@
public class WorkspaceUIComponents {
private LicenseComponent license;
private ContentTitleComponent contentTitle;
- private GroupMembersSummary groupMembers;
- private ParticipationSummary participatesInGroups;
- private GroupSummary groupSummary;
private ContentSubTitleComponent contentSubTitle;
- private ContentBottomToolBarComponent contentBottomToolBar;
- private ThemeMenuComponent themeMenu;
private ContentToolBarComponent contentToolBar;
- private GroupLiveSearcher groupLiveSearcher;
private I18nTranslatorComponent i18nTranslatorSearch;
- private UserLiveSearcher userLiveSearch;
public WorkspaceUIComponents(final WorkspacePresenter presenter) {
}
- public ContentBottomToolBarComponent getContentBottomToolBarComponent() {
- if (contentBottomToolBar == null) {
- contentBottomToolBar = WorkspaceFactory.createContentBottomToolBarComponent();
- }
- return contentBottomToolBar;
- }
-
public ContentSubTitleComponent getContentSubTitleComponent() {
if (contentSubTitle == null) {
contentSubTitle = WorkspaceFactory.createContentSubTitleComponent();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/ContentBottomToolBarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/ContentBottomToolBarPanel.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/ContentBottomToolBarPanel.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -22,9 +22,6 @@
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.ui.CustomPushButton;
-import org.ourproject.kune.platf.client.ui.rate.RateItPanel;
-import org.ourproject.kune.platf.client.ui.rate.RateItPresenter;
-import org.ourproject.kune.platf.client.ui.rate.RatePanel;
import org.ourproject.kune.workspace.client.workspace.ContentBottomToolBarPresenter;
import org.ourproject.kune.workspace.client.workspace.ContentBottomToolBarView;
@@ -35,57 +32,57 @@
public class ContentBottomToolBarPanel extends HorizontalPanel implements ContentBottomToolBarView {
- private final RatePanel rate;
- private final RateItPresenter rateItPresenter;
- private final RateItPanel rateIt;
+ // private final RatePanel rate;
+ // private final RateItPresenter rateItPresenter;
+ // private final RateItPanel rateIt;
private CustomPushButton btn;
public ContentBottomToolBarPanel(final ContentBottomToolBarPresenter presenter, final I18nTranslationService i18n) {
- rate = new RatePanel(null, null, i18n);
- rateItPresenter = new RateItPresenter(i18n);
- rateIt = new RateItPanel(rateItPresenter, i18n);
- rateItPresenter.init(rateIt);
- Label expand = new Label("");
- this.add(rateIt);
- this.add(expand);
- this.add(rate);
- this.setWidth("100%");
- expand.setWidth("100%");
- this.setCellWidth(expand, "100%");
- this.addStyleName("kune-ContentToolBarPanel");
- this.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE);
- this.setCellVerticalAlignment(rate, VerticalPanel.ALIGN_MIDDLE);
- this.setCellVerticalAlignment(rateIt, VerticalPanel.ALIGN_MIDDLE);
- rate.setVisible(false);
- rateIt.setVisible(false);
- // TODO setEnabled false to RateIt
+ // rate = new RatePanel(null, null, i18n);
+ // rateItPresenter = null;
+ // rateIt = new RateItPanel(rateItPresenter, i18n, null);
+ // rateItPresenter.init(rateIt);
+ final Label expand = new Label("");
+ // this.add(rateIt);
+ this.add(expand);
+ // this.add(rate);
+ this.setWidth("100%");
+ expand.setWidth("100%");
+ this.setCellWidth(expand, "100%");
+ this.addStyleName("kune-ContentToolBarPanel");
+ this.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE);
+ // this.setCellVerticalAlignment(rate, VerticalPanel.ALIGN_MIDDLE);
+ // this.setCellVerticalAlignment(rateIt, VerticalPanel.ALIGN_MIDDLE);
+ // rate.setVisible(false);
+ // rateIt.setVisible(false);
+ // TODO setEnabled false to RateIt
}
public void addButton(final String caption, final ClickListener listener) {
- btn = new CustomPushButton(caption, listener);
- this.insert(btn, 0);
- btn.addStyleName("kune-Button-Large-lrSpace");
+ btn = new CustomPushButton(caption, listener);
+ this.insert(btn, 0);
+ btn.addStyleName("kune-Button-Large-lrSpace");
}
public void setButtonVisible(final boolean isEnabled) {
- btn.setVisible(isEnabled);
+ btn.setVisible(isEnabled);
}
public void setRate(final Double value, final Integer rateByUsers) {
- rate.setRate(value);
- rate.setByUsers(rateByUsers);
+ // rate.setRate(value);
+ // rate.setByUsers(rateByUsers);
}
public void setRateIt(final Double currentUserRate) {
- rateItPresenter.setRate(currentUserRate);
+ // rateItPresenter.setRate(currentUserRate);
}
public void setRateItVisible(final boolean visible) {
- rateIt.setVisible(visible);
+ // rateIt.setVisible(visible);
}
public void setRateVisible(final boolean visible) {
- rate.setVisible(visible);
+ // rate.setVisible(visible);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -222,7 +222,7 @@
setContentTitle(components.getContentTitleComponent().getView());
setContentSubTitle(components.getContentSubTitleComponent().getView());
setContentToolBar(components.getContentToolBarComponent().getView());
- setContentBottomToolBar(components.getContentBottomToolBarComponent().getView());
+ // setContentBottomToolBar(components.getContentBottomToolBarComponent().getView());
setBottom(components.getLicenseComponent().getView());
// addBottomIconComponent(components.getThemeMenuComponent().getView());
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -16,53 +16,53 @@
private final String persistenceUnit;
private final String propetiesFileName;
+ public PersistenceTest() {
+ // test: use memory
+ // test_db: use mysql
+ this("test", "kune.properties");
+ }
+
public PersistenceTest(final String persistenceUnit, final String propetiesFileName) {
- this.persistenceUnit = persistenceUnit;
- this.propetiesFileName = propetiesFileName;
+ this.persistenceUnit = persistenceUnit;
+ this.propetiesFileName = propetiesFileName;
}
- public PersistenceTest() {
- // test: use memory
- // test_db: use mysql
- this("test", "kune.properties");
+ public void closeTransaction() {
+ getManager().getTransaction().commit();
}
- @Before
- public void prepare() {
- final Injector injector = TestHelper.create(new PlatformServerModule(), persistenceUnit, propetiesFileName);
- final PersistenceService persistence = injector.getInstance(PersistenceService.class);
- // To Debug insert breakpoint here
- persistence.start();
- injector.injectMembers(this);
+ public EntityTransaction getTransaction() {
+ return getManager().getTransaction();
}
public EntityManager openTransaction() {
- final EntityManager manager = getManager();
- final EntityTransaction transaction = manager.getTransaction();
- transaction.begin();
- return manager;
+ final EntityManager manager = getManager();
+ final EntityTransaction transaction = manager.getTransaction();
+ transaction.begin();
+ return manager;
}
- public void closeTransaction() {
- getManager().getTransaction().commit();
+ public void persist(final Object... entities) {
+ for (final Object entity : entities) {
+ getManager().persist(entity);
+ }
}
- public void rollbackTransaction() {
- getManager().getTransaction().rollback();
+ @Before
+ public void prepare() {
+ final Injector injector = TestHelper.create(new PlatformServerModule(), persistenceUnit, propetiesFileName);
+ final PersistenceService persistence = injector.getInstance(PersistenceService.class);
+ // To Debug insert breakpoint here
+ persistence.start();
+ injector.injectMembers(this);
}
- public void persist(final Object... entities) {
- for (final Object entity : entities) {
- getManager().persist(entity);
- }
+ public void rollbackTransaction() {
+ getManager().getTransaction().rollback();
}
private EntityManager getManager() {
- return provider.get();
+ return provider.get();
}
- public EntityTransaction getTransaction() {
- return getManager().getTransaction();
- }
-
}
1
0
r817 - in trunk/src/main/java/org/ourproject/kune: platf/client/ui/gridmenu workspace/client/socialnet
by vjrj 26 Jul '08
by vjrj 26 Jul '08
26 Jul '08
Author: vjrj
Date: 2008-07-26 19:03:52 +0200 (Sat, 26 Jul 2008)
New Revision: 817
Modified:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.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
Log:
Workspace refactorization
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-07-26 16:44:17 UTC (rev 816)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-07-26 17:03:52 UTC (rev 817)
@@ -5,7 +5,6 @@
import com.allen_sauer.gwt.log.client.Log;
import com.calclab.suco.client.signal.Signal;
import com.calclab.suco.client.signal.Slot;
-import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.Composite;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.SortDir;
@@ -211,12 +210,6 @@
}
}
- public void setDraggable(final boolean draggable) {
- createGridIfNeeded();
- DOM.setElementPropertyBoolean(grid.getElement(), "allowDrag", draggable);
- doLayoutIfNeeded();
- }
-
public void setWidth(final int width) {
if (grid != null) {
grid.setWidth(width - 27);
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-07-26 16:44:17 UTC (rev 816)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2008-07-26 17:03:52 UTC (rev 817)
@@ -102,7 +102,7 @@
}
public void setDraggable(final boolean draggable) {
- gridMenuPanel.setDraggable(draggable);
+ // gridMenuPanel.setDraggable(draggable);
}
public void setDropDownContentVisible(final boolean visible) {
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-07-26 16:44:17 UTC (rev 816)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-07-26 17:03:52 UTC (rev 817)
@@ -83,17 +83,13 @@
});
}
- public void hide() {
- view.setVisible(false);
- }
-
public void init(final GroupMembersSummaryView view) {
this.view = view;
}
public void setState(final StateDTO state) {
if (state.getGroup().getType().equals(GroupDTO.PERSONAL)) {
- hide();
+ view.setVisible(false);
} else {
setGroupMembers(state.getGroupMembers(), state.getGroupRights());
}
1
0
Author: vjrj
Date: 2008-07-26 18:44:17 +0200 (Sat, 26 Jul 2008)
New Revision: 816
Added:
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearcherPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearcherPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearcherPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearcherPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearcher.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearcher.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearcher.java
Removed:
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddGroupLiveSearchAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddUserLiveSearchAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearchPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryViewNew.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/MemberAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearchPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearchPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearchPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearchComponent.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearchComponent.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearchComponent.java
Modified:
trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneStringUtils.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupLiveSearchPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/GroupToolsBar.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java
trunk/src/test/java/org/ourproject/kune/platf/client/ui/KuneStringUtilsTest.java
Log:
Workspace refactorization
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-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -29,7 +29,6 @@
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
import org.ourproject.kune.platf.client.rpc.SiteService;
import org.ourproject.kune.platf.client.rpc.SiteServiceAsync;
-import org.ourproject.kune.platf.client.services.ColorTheme;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.KuneErrorHandler;
import org.ourproject.kune.platf.client.state.Session;
@@ -58,11 +57,10 @@
private StateManager stateManager;
public ApplicationDefault(final Session session, final ExtensibleWidgetsManager extensionPointManager,
- final I18nTranslationService i18n, final ColorTheme colorTheme, final KuneErrorHandler errorHandler,
- final WorkspaceSkeleton ws) {
+ final I18nTranslationService i18n, final KuneErrorHandler errorHandler, final WorkspaceSkeleton ws) {
this.session = session;
this.ws = ws;
- workspace = WorkspaceFactory.createWorkspace(session, extensionPointManager, i18n, colorTheme, errorHandler);
+ workspace = WorkspaceFactory.createWorkspace(session, extensionPointManager, i18n, errorHandler);
tools = new HashMap<String, ClientTool>();
this.onApplicationStart = new Signal<Object>("onApplicationStart");
this.onApplicationStop = new Signal<Object>("onApplicationStop");
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-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -43,12 +43,17 @@
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessageView;
import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPanelNew;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPresenterNew;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryViewNew;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherView;
+import org.ourproject.kune.workspace.client.socialnet.GroupLiveSearcherPresenter;
+import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPanel;
+import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPresenter;
+import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryView;
import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryPresenter;
import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryView;
+import org.ourproject.kune.workspace.client.socialnet.UserLiveSearcherPresenter;
+import org.ourproject.kune.workspace.client.socialnet.ui.GroupLiveSearchPanel;
import org.ourproject.kune.workspace.client.socialnet.ui.ParticipationSummaryPanel;
+import org.ourproject.kune.workspace.client.socialnet.ui.UserLiveSearcherPanel;
import org.ourproject.kune.workspace.client.summary.GroupSummaryPresenter;
import org.ourproject.kune.workspace.client.summary.GroupSummaryView;
import org.ourproject.kune.workspace.client.tags.TagsSummaryPanel;
@@ -87,10 +92,12 @@
import org.ourproject.kune.workspace.client.ui.newtmp.title.EntitySubTitlePresenter;
import org.ourproject.kune.workspace.client.ui.newtmp.title.EntityTitlePanel;
import org.ourproject.kune.workspace.client.ui.newtmp.title.EntityTitlePresenter;
+import org.ourproject.kune.workspace.client.workspace.GroupLiveSearcher;
import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
import org.ourproject.kune.workspace.client.workspace.GroupSummary;
import org.ourproject.kune.workspace.client.workspace.ParticipationSummary;
import org.ourproject.kune.workspace.client.workspace.TagsSummary;
+import org.ourproject.kune.workspace.client.workspace.UserLiveSearcher;
import org.ourproject.kune.workspace.client.workspace.ui.EntityLogo;
import org.ourproject.kune.workspace.client.workspace.ui.EntityLogoPanel;
@@ -196,12 +203,6 @@
final KuneErrorHandler errorHandler = i(KuneErrorHandler.class);
AsyncCallbackSimple.init(errorHandler);
- builder.registerProvider(ColorTheme.class, new Provider<ColorTheme>() {
- public ColorTheme get() {
- return new ColorTheme();
- }
- }, SingletonScope.class);
-
builder.registerProvider(KunePlatform.class, new Provider<KunePlatform>() {
public KunePlatform get() {
return new KunePlatform();
@@ -220,10 +221,8 @@
builder.registerProvider(Application.class, new Provider<Application>() {
public Application get() {
final Session session = i(Session.class);
- final ExtensibleWidgetsManager extensionPointManager = builder
- .getInstance(ExtensibleWidgetsManager.class);
- return new ApplicationDefault(session, extensionPointManager, i18n, builder
- .getInstance(ColorTheme.class), i(KuneErrorHandler.class), ws);
+ final ExtensibleWidgetsManager extensionPointManager = i(ExtensibleWidgetsManager.class);
+ return new ApplicationDefault(session, extensionPointManager, i18n, i(KuneErrorHandler.class), ws);
}
}, SingletonScope.class);
@@ -239,8 +238,7 @@
builder.registerProvider(SiteProgress.class, new Provider<SiteProgress>() {
public SiteProgress get() {
final SiteProgressPresenter presenter = new SiteProgressPresenter();
- final SiteProgressPanel panel = new SiteProgressPanel(presenter, builder
- .getProvider(SitePublicSpaceLink.class));
+ final SiteProgressPanel panel = new SiteProgressPanel(presenter, p(SitePublicSpaceLink.class));
presenter.init(panel);
return presenter;
}
@@ -330,8 +328,8 @@
builder.registerProvider(SignIn.class, new Provider<SignIn>() {
public SignIn get() {
- final SignInPresenter presenter = new SignInPresenter(i(Session.class), builder
- .getInstance(StateManager.class), i18n, i(UserServiceAsync.class));
+ final SignInPresenter presenter = new SignInPresenter(i(Session.class), i(StateManager.class), i18n,
+ i(UserServiceAsync.class));
final SignInPanel view = new SignInPanel(presenter, i18n, ws);
presenter.init(view);
return presenter;
@@ -358,6 +356,7 @@
}, SingletonScope.class);
i(SitePublicSpaceLink.class);
+ i(SiteMessage.class);
i(SiteSignInLink.class);
i(SiteSignOutLink.class);
i(SiteNewGroupLink.class);
@@ -381,8 +380,7 @@
builder.registerProvider(EntityTitlePresenter.class, new Provider<EntityTitlePresenter>() {
public EntityTitlePresenter get() {
- final EntityTitlePresenter presenter = new EntityTitlePresenter(i18n, builder
- .getInstance(KuneErrorHandler.class));
+ final EntityTitlePresenter presenter = new EntityTitlePresenter(i18n, i(KuneErrorHandler.class));
final EntityTitlePanel panel = new EntityTitlePanel(ws, presenter);
presenter.init(panel);
return presenter;
@@ -410,11 +408,9 @@
builder.registerProvider(WorkspaceManager.class, new Provider<WorkspaceManager>() {
public WorkspaceManager get() {
final WorkspaceManager presenter = new WorkspaceManager(i(SitePublicSpaceLink.class),
- i(EntityLogo.class), i(EntityTitlePresenter.class), builder
- .getInstance(EntitySubTitlePresenter.class), builder
- .getInstance(WsThemePresenter.class), i(EntityLicensePresenter.class), builder
- .getProvider(GroupMembersSummary.class), builder
- .getProvider(ParticipationSummary.class), p(TagsSummary.class), p(GroupSummary.class));
+ i(EntityLogo.class), i(EntityTitlePresenter.class), i(EntitySubTitlePresenter.class),
+ i(WsThemePresenter.class), i(EntityLicensePresenter.class), p(GroupMembersSummary.class),
+ p(ParticipationSummary.class), p(TagsSummary.class), p(GroupSummary.class));
return presenter;
}
}, SingletonScope.class);
@@ -429,12 +425,30 @@
}
}, SingletonScope.class);
+ builder.registerProvider(UserLiveSearcher.class, new Provider<UserLiveSearcher>() {
+ public UserLiveSearcher get() {
+ final UserLiveSearcherPresenter presenter = new UserLiveSearcherPresenter();
+ final EntityLiveSearcherView view = new UserLiveSearcherPanel(presenter, i18n);
+ presenter.init(view);
+ return presenter;
+ }
+ }, SingletonScope.class);
+
+ builder.registerProvider(GroupLiveSearcher.class, new Provider<GroupLiveSearcher>() {
+ public GroupLiveSearcher get() {
+ final GroupLiveSearcherPresenter presenter = new GroupLiveSearcherPresenter();
+ final EntityLiveSearcherView view = new GroupLiveSearchPanel(presenter, i18n);
+ presenter.init(view);
+ return presenter;
+ }
+ }, SingletonScope.class);
+
builder.registerProvider(GroupMembersSummary.class, new Provider<GroupMembersSummary>() {
public GroupMembersSummary get() {
- final GroupMembersSummaryPresenterNew presenter = new GroupMembersSummaryPresenterNew(i18n,
+ final GroupMembersSummaryPresenter presenter = new GroupMembersSummaryPresenter(i18n,
p(StateManager.class), i(ImageUtils.class), i(Session.class),
- p(SocialNetworkServiceAsync.class));
- final GroupMembersSummaryViewNew view = new GroupMembersSummaryPanelNew(presenter, i18n, ws);
+ p(SocialNetworkServiceAsync.class), p(GroupLiveSearcher.class));
+ final GroupMembersSummaryView view = new GroupMembersSummaryPanel(presenter, i18n, ws);
presenter.init(view);
return presenter;
}
@@ -462,8 +476,7 @@
builder.registerProvider(TagsSummary.class, new Provider<TagsSummary>() {
public TagsSummary get() {
- final TagsSummaryPresenter presenter = new TagsSummaryPresenter(p(Session.class), builder
- .getProvider(SiteSearcher.class));
+ final TagsSummaryPresenter presenter = new TagsSummaryPresenter(p(Session.class), p(SiteSearcher.class));
final TagsSummaryPanel panel = new TagsSummaryPanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneStringUtils.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneStringUtils.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneStringUtils.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -22,24 +22,42 @@
import java.util.ArrayList;
public class KuneStringUtils {
- public KuneStringUtils() {
+ /*
+ * This method escape only some dangerous html chars
+ */
+ public static String escapeHtmlLight(final String textOrig) {
+ String text = textOrig;
+ text = text.replaceAll("&", "&");
+ text = text.replaceAll("\"", """);
+ // text = text.replaceAll("\'", "'");
+ text = text.replaceAll("<", "<");
+ text = text.replaceAll(">", ">");
+ return text;
}
public static String generateHtmlLink(final String href, final String text) {
- return "<a href=\"" + href + "\" target=\"_blank\">" + text + "</a>";
+ return "<a href=\"" + href + "\" target=\"_blank\">" + text + "</a>";
}
- /*
- * This method escape only some dangerous html chars
- */
- public static String escapeHtmlLight(final String textOrig) {
- String text = textOrig;
- text = text.replaceAll("&", "&");
- text = text.replaceAll("\"", """);
- // text = text.replaceAll("\'", "'");
- text = text.replaceAll("<", "<");
- text = text.replaceAll(">", ">");
- return text;
+ public static ArrayList<String> splitTags(final String tagsString) {
+ final ArrayList<String> tagsList = new ArrayList<String>();
+ String tagsCopy = tagsString;
+ // remove commas and quotes
+ if (tagsString == null) {
+ return tagsList;
+ }
+ tagsCopy = tagsCopy.replaceAll(",", " ");
+ tagsCopy = tagsCopy.replaceAll("\"", "");
+ tagsCopy = tagsCopy.replaceAll("\'", "");
+ final String[] splitted = tagsCopy.split("\\s+");
+ for (int i = 0; i < splitted.length; i++) {
+ String tag = splitted[i];
+ tag = tag.replaceAll("\\s$", "");
+ if (tag.length() > 0) {
+ tagsList.add(tag);
+ }
+ }
+ return tagsList;
}
/*
@@ -47,31 +65,16 @@
* widget for instance
*/
public static String unescapeHtmlLight(final String textOrig) {
- String text = textOrig;
- text = text.replaceAll("&", "&");
- text = text.replaceAll(""", "\"");
- text = text.replaceAll("'", "\'");
- text = text.replaceAll("<", "<");
- text = text.replaceAll(">", ">");
- return text;
+ String text = textOrig;
+ text = text.replaceAll("&", "&");
+ text = text.replaceAll(""", "\"");
+ text = text.replaceAll("'", "\'");
+ text = text.replaceAll("<", "<");
+ text = text.replaceAll(">", ">");
+ return text;
}
- public static ArrayList<String> splitTags(final String tagsString) {
- ArrayList<String> tagsList = new ArrayList<String>();
- String tagsCopy = tagsString;
- // remove commas and quotes
- tagsCopy = tagsCopy.replaceAll(",", " ");
- tagsCopy = tagsCopy.replaceAll("\"", "");
- tagsCopy = tagsCopy.replaceAll("\'", "");
- String[] splitted = tagsCopy.split("\\s+");
- for (int i = 0; i < splitted.length; i++) {
- String tag = splitted[i];
- tag = tag.replaceAll("\\s$", "");
- if (tag.length() > 0) {
- tagsList.add(tag);
- }
- }
- return tagsList;
+ public KuneStringUtils() {
}
}
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-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -5,6 +5,7 @@
import com.allen_sauer.gwt.log.client.Log;
import com.calclab.suco.client.signal.Signal;
import com.calclab.suco.client.signal.Slot;
+import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.Composite;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.SortDir;
@@ -210,6 +211,12 @@
}
}
+ public void setDraggable(final boolean draggable) {
+ createGridIfNeeded();
+ DOM.setElementPropertyBoolean(grid.getElement(), "allowDrag", draggable);
+ doLayoutIfNeeded();
+ }
+
public void setWidth(final int width) {
if (grid != null) {
grid.setWidth(width - 27);
@@ -370,8 +377,9 @@
}
});
grid.stripeRows(true);
- grid.setAutoWidth(true);
- grid.setAutoHeight(true);
+ grid.setHideColumnHeader(true);
+ grid.setBorder(false);
+ grid.setAutoScroll(true);
if (grouped) {
final GroupingView groupView = new GroupingView();
@@ -405,9 +413,10 @@
view.setForceFit(true);
grid.setView(view);
}
- grid.setHideColumnHeader(true);
- grid.setBorder(false);
- grid.setAutoScroll(true);
+
+ grid.setAutoWidth(true);
+ grid.setAutoHeight(true);
+
if (gridDropConfiguration != null) {
configureDrop(gridDropConfiguration);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -26,8 +26,6 @@
import org.ourproject.kune.platf.client.extend.Register;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.actions.AddGroupLiveSearchAction;
-import org.ourproject.kune.workspace.client.actions.AddUserLiveSearchAction;
import org.ourproject.kune.workspace.client.actions.AttachToExtensibleWidgetAction;
import org.ourproject.kune.workspace.client.actions.ClearExtensibleWidgetAction;
import org.ourproject.kune.workspace.client.actions.DetachFromExtensibleWidgetAction;
@@ -69,8 +67,6 @@
register.addAction(WorkspaceEvents.ENABLE_RATEIT, new EnableRateItAction(workspace));
register.addAction(WorkspaceEvents.DISABLE_RATEIT, new DisableRateItAction(workspace));
register.addAction(WorkspaceEvents.GET_TRANSLATION, new GetTranslationAction(session));
- register.addAction(WorkspaceEvents.ADD_MEMBER_GROUPLIVESEARCH, new AddGroupLiveSearchAction(workspace));
- register.addAction(WorkspaceEvents.ADD_USERLIVESEARCH, new AddUserLiveSearchAction(workspace));
register.addAction(WorkspaceEvents.SHOW_TRANSLATOR, new ShowTranslatorAction(session, workspace, i18n));
register.addAction(WorkspaceEvents.DO_TRANSLATION, new DoTranslationAction(session, i18n));
register.addAction(WorkspaceEvents.GET_LEXICON, new GetLexiconAction(i18n));
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -24,8 +24,6 @@
public static final String RATE_CONTENT = "ws.RateContent";
public static final String ENABLE_RATEIT = "ws.EnableRateIt";
public static final String DISABLE_RATEIT = "ws.DisableRateIt";
- public static final String ADD_MEMBER_GROUPLIVESEARCH = "ws.AddMemberGroupLiveSearch";
- public static final String ADD_USERLIVESEARCH = "ws.AddUserLiveSearch";
public static final String GET_LEXICON = "i18n.getLexicon";
public static final String SHOW_TRANSLATOR = "i18n.ShowTranslator";
public static final String SHOW_SEARCHER = "ws.ShowSearcher";
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -22,7 +22,6 @@
import org.ourproject.kune.platf.client.app.DesktopView;
import org.ourproject.kune.platf.client.app.ui.DesktopPanel;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
-import org.ourproject.kune.platf.client.services.ColorTheme;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.KuneErrorHandler;
import org.ourproject.kune.platf.client.state.Session;
@@ -43,11 +42,6 @@
import org.ourproject.kune.workspace.client.licensefoot.LicenseView;
import org.ourproject.kune.workspace.client.licensefoot.ui.LicensePanel;
import org.ourproject.kune.workspace.client.sitebar.bar.SiteBarListener;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearchView;
-import org.ourproject.kune.workspace.client.socialnet.GroupLiveSearchPresenter;
-import org.ourproject.kune.workspace.client.socialnet.UserLiveSearchPresenter;
-import org.ourproject.kune.workspace.client.socialnet.ui.GroupLiveSearchPanel;
-import org.ourproject.kune.workspace.client.socialnet.ui.UserLiveSearchPanel;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItems;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItemsPanel;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItemsPresenter;
@@ -63,8 +57,6 @@
import org.ourproject.kune.workspace.client.workspace.ContentToolBarComponent;
import org.ourproject.kune.workspace.client.workspace.ContentToolBarPresenter;
import org.ourproject.kune.workspace.client.workspace.ContentToolBarView;
-import org.ourproject.kune.workspace.client.workspace.GroupLiveSearchComponent;
-import org.ourproject.kune.workspace.client.workspace.UserLiveSearchComponent;
import org.ourproject.kune.workspace.client.workspace.Workspace;
import org.ourproject.kune.workspace.client.workspace.WorkspacePresenter;
import org.ourproject.kune.workspace.client.workspace.WorkspaceView;
@@ -128,13 +120,6 @@
return presenter;
}
- public static GroupLiveSearchComponent createGroupLiveSearchComponent() {
- final GroupLiveSearchPresenter presenter = new GroupLiveSearchPresenter();
- final EntityLiveSearchView view = new GroupLiveSearchPanel(presenter, i18n);
- presenter.init(view);
- return presenter;
- }
-
public static I18nTranslatorComponent createI18nTranslatorComponent() {
final I18nTranslatorPresenter presenter = new I18nTranslatorPresenter(session);
final I18nTranslatorView view = new I18nTranslatorPanel(presenter, i18n);
@@ -156,21 +141,14 @@
return presenter;
}
- public static UserLiveSearchComponent createUserLiveSearchComponent() {
- final UserLiveSearchPresenter presenter = new UserLiveSearchPresenter();
- final EntityLiveSearchView view = new UserLiveSearchPanel(presenter, i18n);
- presenter.init(view);
- return presenter;
- }
-
public static Workspace createWorkspace(final Session session,
final ExtensibleWidgetsManager extensionPointManager, final I18nTranslationService i18n,
- final ColorTheme colorTheme, final KuneErrorHandler errorHandler) {
+ final KuneErrorHandler errorHandler) {
WorkspaceFactory.session = session;
WorkspaceFactory.i18n = i18n;
WorkspaceFactory.errorHandler = errorHandler;
final WorkspacePresenter workspace = new WorkspacePresenter(session);
- final WorkspaceView view = new WorkspacePanel(workspace, i18n, colorTheme);
+ final WorkspaceView view = new WorkspacePanel(workspace, i18n);
workspace.init(view, extensionPointManager);
return workspace;
}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddGroupLiveSearchAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddGroupLiveSearchAction.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddGroupLiveSearchAction.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,44 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearchListener;
-import org.ourproject.kune.workspace.client.workspace.GroupLiveSearchComponent;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-public class AddGroupLiveSearchAction implements Action<EntityLiveSearchListener> {
-
- private final Workspace workspace;
-
- public AddGroupLiveSearchAction(final Workspace workspace) {
- this.workspace = workspace;
- }
-
- public void execute(final EntityLiveSearchListener listener) {
- onAddMemberGroupLiveSearchAction(listener);
- }
-
- private void onAddMemberGroupLiveSearchAction(final EntityLiveSearchListener listener) {
- GroupLiveSearchComponent groupLiveSearchComponent = workspace.getGroupLiveSearchComponent();
- groupLiveSearchComponent.addListener(listener);
- groupLiveSearchComponent.show();
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddUserLiveSearchAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddUserLiveSearchAction.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddUserLiveSearchAction.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,44 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearchListener;
-import org.ourproject.kune.workspace.client.workspace.UserLiveSearchComponent;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-public class AddUserLiveSearchAction implements Action<EntityLiveSearchListener> {
-
- private final Workspace workspace;
-
- public AddUserLiveSearchAction(final Workspace workspace) {
- this.workspace = workspace;
- }
-
- public void execute(final EntityLiveSearchListener listener) {
- onAddUserLiveSearchAction(listener);
- }
-
- private void onAddUserLiveSearchAction(final EntityLiveSearchListener listener) {
- UserLiveSearchComponent userLiveSearchComponent = workspace.getUserLiveSearchComponent();
- userLiveSearchComponent.addListener(listener);
- userLiveSearchComponent.show();
- }
-}
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-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -60,6 +60,7 @@
Site.showProgressProcessing();
view.show();
view.center();
+ Site.hideProgress();
} else {
stateManager.setState(previousTokenOrig);
Site.info(i18n.t("Sign in or register to create a group"));
@@ -102,6 +103,7 @@
final LicenseDTO license = view.getLicense();
final GroupDTO group = new GroupDTO(shortName, longName, publicDesc, getTypeOfGroup());
group.setDefaultLicense(license);
+ group.setTags(view.getTags());
final AsyncCallback<StateToken> callback = new AsyncCallback<StateToken>() {
public void onFailure(final Throwable caught) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -37,6 +37,8 @@
String getShortName();
+ String getTags();
+
void hide();
void hideMessage();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -175,6 +175,10 @@
return shortNameField.getValueAsString();
}
+ public String getTags() {
+ return tags.getRawValue();
+ }
+
public void hideMessage() {
messagesPanel.hide();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -43,7 +43,8 @@
super.setContentVisible(true);
super.setBorderStylePrimaryName("k-dropdownouter-summary");
addStyleName("kune-Margin-Medium-t");
- ws.getEntitySummary().addInSummary(this);
+ // Disabled while in development
+ // ws.getEntitySummary().addInSummary(this);
}
public void setComment(final String comment) {
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,55 +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.workspace.client.socialnet;
-
-import org.ourproject.kune.platf.client.AbstractPresenter;
-import org.ourproject.kune.platf.client.View;
-
-public class EntityLiveSearchPresenter extends AbstractPresenter {
-
- private EntityLiveSearchView view;
- private EntityLiveSearchListener listener;
-
- public void init(final EntityLiveSearchView view) {
- this.view = view;
- }
-
- public View getView() {
- return view;
- }
-
- public void addListener(final EntityLiveSearchListener listener) {
- this.listener = listener;
- }
-
- public void show() {
- view.show();
- }
-
- public void hide() {
- view.hide();
- }
-
- public void fireListener(final String shortName, final String longName) {
- listener.onSelection(shortName, longName);
- hide();
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchView.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchView.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,35 +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.workspace.client.socialnet;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface EntityLiveSearchView extends View {
-
- final public static int SEARCH_GROUPS = 1;
- final public static int SEARCH_USERS = 2;
-
- void show();
-
- void hide();
-
- void center();
-
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherPresenter.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchPresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchPresenter.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,63 @@
+/*
+ *
+ * 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.workspace.client.socialnet;
+
+import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.LinkDTO;
+import org.ourproject.kune.workspace.client.workspace.EntityLiveSearcher;
+
+import com.calclab.suco.client.signal.Signal;
+import com.calclab.suco.client.signal.Slot;
+
+public class EntityLiveSearcherPresenter implements EntityLiveSearcher {
+
+ private EntityLiveSearcherView view;
+ private Signal<LinkDTO> onSelection;
+
+ public void addListener(final EntityLiveSearchListener listener) {
+ this.onSelection = new Signal<LinkDTO>("onSelection");
+ }
+
+ public View getView() {
+ return view;
+ }
+
+ public void init(final EntityLiveSearcherView view) {
+ this.view = view;
+ }
+
+ public void onSelection(final LinkDTO link) {
+ onSelection.fire(link);
+ view.hide();
+ }
+
+ public void onSelectionAdd(final Slot<LinkDTO> slot) {
+ onSelection.add(slot);
+ }
+
+ public void onSelectionRemove(final Slot<LinkDTO> slot) {
+ onSelection.remove(slot);
+ }
+
+ public void show() {
+ view.show();
+ }
+
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherView.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchView.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchView.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherView.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,35 @@
+/*
+ *
+ * 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.workspace.client.socialnet;
+
+import org.ourproject.kune.platf.client.View;
+
+public interface EntityLiveSearcherView extends View {
+
+ final public static int SEARCH_GROUPS = 1;
+ final public static int SEARCH_USERS = 2;
+
+ void show();
+
+ void hide();
+
+ void center();
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearchPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearchPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearchPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,26 +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.workspace.client.socialnet;
-
-import org.ourproject.kune.workspace.client.workspace.GroupLiveSearchComponent;
-
-public class GroupLiveSearchPresenter extends EntityLiveSearchPresenter implements GroupLiveSearchComponent {
-
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearcherPresenter.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearchPresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearchPresenter.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearcherPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,26 @@
+/*
+ *
+ * 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.workspace.client.socialnet;
+
+import org.ourproject.kune.workspace.client.workspace.GroupLiveSearcher;
+
+public class GroupLiveSearcherPresenter extends EntityLiveSearcherPresenter implements GroupLiveSearcher {
+
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java (from rev 814, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,119 @@
+package org.ourproject.kune.workspace.client.socialnet;
+
+import java.util.HashMap;
+
+import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.ui.DropDownPanel;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridButton;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridDragConfiguration;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuPanel;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.EntitySummary;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
+
+import com.calclab.emiteuimodule.client.users.UserGridPanel;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.widgets.BoxComponent;
+import com.gwtext.client.widgets.Button;
+import com.gwtext.client.widgets.MessageBox;
+import com.gwtext.client.widgets.ToolbarButton;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
+import com.gwtext.client.widgets.event.ContainerListenerAdapter;
+
+public class GroupMembersSummaryPanel extends DropDownPanel implements GroupMembersSummaryView {
+ private final GridMenuPanel<GroupDTO> gridMenuPanel;
+ private final I18nUITranslationService i18n;
+ private final GroupMembersSummaryPresenter presenter;
+ private final HashMap<GridButton, ToolbarButton> buttonsCache;
+
+ public GroupMembersSummaryPanel(final GroupMembersSummaryPresenter presenter, final I18nUITranslationService i18n,
+ final WorkspaceSkeleton ws) {
+ super(true);
+ this.presenter = presenter;
+ this.i18n = i18n;
+ super.setHeaderText(i18n.t("Group members"));
+ super.setHeaderTitle(i18n.t("People and groups collaborating in this group"));
+ super.setBorderStylePrimaryName("k-dropdownouter-members");
+ super.addStyleName("kune-Margin-Medium-t");
+
+ final GridDragConfiguration dragConf = new GridDragConfiguration(UserGridPanel.USER_GROUP_DD, i18n
+ .t("Drop in the chat area to start a chat.")
+ + "<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);
+ final EntitySummary entitySummary = ws.getEntitySummary();
+ entitySummary.addInSummary(this);
+ entitySummary.addListener(new ContainerListenerAdapter() {
+ @Override
+ public void onResize(final BoxComponent component, final int adjWidth, final int adjHeight,
+ final int rawWidth, final int rawHeight) {
+ gridMenuPanel.setWidth(adjWidth);
+ }
+ });
+ this.setContent(gridMenuPanel);
+ buttonsCache = new HashMap<GridButton, ToolbarButton>();
+ }
+
+ public void addButton(final GridButton gridButton) {
+ // Workaround: gwt-ext don't have toolbar.removeItem method ...
+ ToolbarButton button = buttonsCache.get(gridButton);
+ if (button == null) {
+ button = new ToolbarButton(gridButton.getTitle());
+ button.setIcon(gridButton.getIcon());
+ button.setTooltip(gridButton.getTooltip());
+ button.addListener(new ButtonListenerAdapter() {
+ public void onClick(final Button button, final EventObject e) {
+ gridButton.getSlot().onEvent("");
+ }
+ });
+ buttonsCache.put(gridButton, button);
+ } else {
+ button.setVisible(true);
+ }
+ gridMenuPanel.getBottomBar().addButton(button);
+ }
+
+ public void addItem(final GridItem<GroupDTO> gridItem) {
+ gridMenuPanel.addItem(gridItem);
+ }
+
+ public void clear() {
+ gridMenuPanel.removeAll();
+ for (final ToolbarButton button : buttonsCache.values()) {
+ // Workaround: gwt-ext don't have toolbar.removeItem method ...
+ // gridMenuPanel.getBottomBar().getEl().removeChild(button.getElement());
+ button.setVisible(false);
+ button.removeFromParent();
+ }
+ }
+
+ public void confirmAddCollab(final String groupShortName, final String groupLongName) {
+ final String groupName = groupLongName + " (" + groupShortName + ")";
+ MessageBox.confirm(i18n.t("Confirm addition of member"), i18n.t("Add [%s] as member?", groupName),
+ new MessageBox.ConfirmCallback() {
+ public void execute(final String btnID) {
+ if (btnID.equals("yes")) {
+ presenter.addCollab(groupShortName);
+ }
+ }
+ });
+ }
+
+ public void setDraggable(final boolean draggable) {
+ gridMenuPanel.setDraggable(draggable);
+ }
+
+ public void setDropDownContentVisible(final boolean visible) {
+ super.setContentVisible(visible);
+ }
+
+ public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
+ super.setTheme(oldTheme, newTheme);
+ }
+
+ public void setVisible(final boolean visible) {
+ super.setVisible(visible);
+ }
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,115 +0,0 @@
-package org.ourproject.kune.workspace.client.socialnet;
-
-import java.util.HashMap;
-
-import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.ui.DropDownPanel;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridButton;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridDragConfiguration;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuPanel;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.ui.newtmp.skel.EntitySummary;
-import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
-
-import com.calclab.emiteuimodule.client.users.UserGridPanel;
-import com.gwtext.client.core.EventObject;
-import com.gwtext.client.widgets.BoxComponent;
-import com.gwtext.client.widgets.Button;
-import com.gwtext.client.widgets.MessageBox;
-import com.gwtext.client.widgets.ToolbarButton;
-import com.gwtext.client.widgets.event.ButtonListenerAdapter;
-import com.gwtext.client.widgets.event.ContainerListenerAdapter;
-
-public class GroupMembersSummaryPanelNew extends DropDownPanel implements GroupMembersSummaryViewNew {
- private final GridMenuPanel<GroupDTO> gridMenuPanel;
- private final I18nUITranslationService i18n;
- private final GroupMembersSummaryPresenterNew presenter;
- private final HashMap<GridButton, ToolbarButton> buttonsCache;
-
- public GroupMembersSummaryPanelNew(final GroupMembersSummaryPresenterNew presenter,
- final I18nUITranslationService i18n, final WorkspaceSkeleton ws) {
- super(true);
- this.presenter = presenter;
- this.i18n = i18n;
- super.setHeaderText(i18n.t("Group members"));
- super.setHeaderTitle(i18n.t("People and groups collaborating in this group"));
- super.setBorderStylePrimaryName("k-dropdownouter-members");
- super.addStyleName("kune-Margin-Medium-t");
-
- final GridDragConfiguration dragConf = new GridDragConfiguration(UserGridPanel.USER_GROUP_DD, i18n
- .t("Drop in the chat area to start a chat.")
- + "<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);
- final EntitySummary entitySummary = ws.getEntitySummary();
- entitySummary.addInSummary(this);
- entitySummary.addListener(new ContainerListenerAdapter() {
- @Override
- public void onResize(final BoxComponent component, final int adjWidth, final int adjHeight,
- final int rawWidth, final int rawHeight) {
- gridMenuPanel.setWidth(adjWidth);
- }
- });
- this.setContent(gridMenuPanel);
- buttonsCache = new HashMap<GridButton, ToolbarButton>();
- }
-
- public void addButton(final GridButton gridButton) {
- // Workaround: gwt-ext don't have toolbar.removeItem method ...
- ToolbarButton button = buttonsCache.get(gridButton);
- if (button == null) {
- button = new ToolbarButton(gridButton.getTitle());
- button.setIcon(gridButton.getIcon());
- button.setTooltip(gridButton.getTooltip());
- button.addListener(new ButtonListenerAdapter() {
- public void onClick(final Button button, final EventObject e) {
- gridButton.getSlot().onEvent("");
- }
- });
- buttonsCache.put(gridButton, button);
- } else {
- button.setVisible(true);
- }
- gridMenuPanel.getBottomBar().addButton(button);
- }
-
- public void addItem(final GridItem<GroupDTO> gridItem) {
- gridMenuPanel.addItem(gridItem);
- }
-
- public void clear() {
- gridMenuPanel.removeAll();
- for (final ToolbarButton button : buttonsCache.values()) {
- // Workaround: gwt-ext don't have toolbar.removeItem method ...
- // gridMenuPanel.getBottomBar().getEl().removeChild(button.getElement());
- button.setVisible(false);
- button.removeFromParent();
- }
- }
-
- public void confirmAddCollab(final String groupShortName, final String groupLongName) {
- final String groupName = groupLongName + " (" + groupShortName + ")";
- MessageBox.confirm(i18n.t("Confirm addition of member"), i18n.t("Add [%s] as member?", groupName),
- new MessageBox.ConfirmCallback() {
- public void execute(final String btnID) {
- if (btnID.equals("yes")) {
- presenter.addCollab(groupShortName);
- }
- }
- });
- }
-
- public void setDropDownContentVisible(final boolean visible) {
- super.setContentVisible(visible);
- }
-
- public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
- super.setTheme(oldTheme, newTheme);
- }
-
- public void setVisible(final boolean visible) {
- super.setVisible(visible);
- }
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java (from rev 815, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,160 @@
+package org.ourproject.kune.workspace.client.socialnet;
+
+import java.util.List;
+
+import org.ourproject.kune.platf.client.dto.AccessListsDTO;
+import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.dto.LinkDTO;
+import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
+import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
+import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
+import org.ourproject.kune.platf.client.services.ImageDescriptor;
+import org.ourproject.kune.platf.client.services.ImageUtils;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridButton;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
+import org.ourproject.kune.workspace.client.workspace.GroupLiveSearcher;
+import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
+
+import com.calclab.suco.client.container.Provider;
+import com.calclab.suco.client.signal.Slot;
+
+public class GroupMembersSummaryPresenter extends SocialNetworkPresenter implements GroupMembersSummary {
+
+ protected GridButton addMember;
+ private GroupMembersSummaryView view;
+ private final I18nUITranslationService i18n;
+ private final GridGroup adminCategory;
+ private final GridGroup collabCategory;
+ private final GridGroup pendigCategory;
+ private final Session session;
+ private final Provider<SocialNetworkServiceAsync> snServiceProvider;
+
+ public GroupMembersSummaryPresenter(final I18nUITranslationService i18n,
+ final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session,
+ final Provider<SocialNetworkServiceAsync> snServiceProvider,
+ final Provider<GroupLiveSearcher> groupLiveSearcherProvider) {
+ super(i18n, stateManagerProvider, imageUtils, session, snServiceProvider);
+ this.i18n = i18n;
+ this.session = session;
+ this.snServiceProvider = snServiceProvider;
+ final String adminsTitle = i18n.t("Admins");
+ final String collabsTitle = i18n.t("Collaborators");
+ final String pendingTitle = i18n.t("Pending");
+ adminCategory = new GridGroup(adminsTitle, adminsTitle, i18n.t("People that can admin this group"), true);
+ collabCategory = new GridGroup(collabsTitle, collabsTitle, i18n
+ .t("Other people that collaborate with this group"), true);
+ pendigCategory = new GridGroup(pendingTitle, pendingTitle, i18n
+ .t("People pending to be accepted in this group by the admins"), imageUtils
+ .getImageHtml(ImageDescriptor.alert), true);
+ addMember = new GridButton("images/add-green.gif", i18n.t("Add member"), i18n
+ .t("Add a group or a person as member of this group"), new Slot<String>() {
+ public void onEvent(final String parameter) {
+ groupLiveSearcherProvider.get().onSelectionAdd(new Slot<LinkDTO>() {
+ public void onEvent(final LinkDTO link) {
+ view.confirmAddCollab(link.getShortName(), link.getLongName());
+ groupLiveSearcherProvider.get().onSelectionRemove(this);
+ }
+ });
+ groupLiveSearcherProvider.get().show();
+ }
+ });
+ super.addGroupOperation(gotoMemberMenuItem, false);
+ }
+
+ public void addCollab(final String groupShortName) {
+ Site.showProgressProcessing();
+ snServiceProvider.get().addCollabMember(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), groupShortName,
+ new AsyncCallbackSimple<SocialNetworkResultDTO>() {
+ public void onSuccess(final SocialNetworkResultDTO result) {
+ Site.hideProgress();
+ Site.info(i18n.t("Member added as collaborator"));
+ getStateManager().setSocialNetwork(result);
+ }
+
+ });
+ }
+
+ public void hide() {
+ view.setVisible(false);
+ }
+
+ public void init(final GroupMembersSummaryView view) {
+ this.view = view;
+ }
+
+ public void setState(final StateDTO state) {
+ if (state.getGroup().getType().equals(GroupDTO.PERSONAL)) {
+ hide();
+ } else {
+ setGroupMembers(state.getGroupMembers(), state.getGroupRights());
+ }
+ }
+
+ public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
+ view.setTheme(oldTheme, newTheme);
+ }
+
+ private boolean isMember(final boolean userIsAdmin, final boolean userIsCollab) {
+ return userIsAdmin || userIsCollab;
+ }
+
+ @SuppressWarnings("unchecked")
+ private void setGroupMembers(final SocialNetworkDTO socialNetwork, final AccessRightsDTO rights) {
+ final AccessListsDTO accessLists = socialNetwork.getAccessLists();
+
+ final List<GroupDTO> adminsList = accessLists.getAdmins().getList();
+ final List<GroupDTO> collabList = accessLists.getEditors().getList();
+ final List<GroupDTO> pendingCollabsList = socialNetwork.getPendingCollaborators().getList();
+
+ final int numAdmins = adminsList.size();
+
+ boolean userIsAdmin = rights.isAdministrable();
+ final boolean userIsCollab = !userIsAdmin && rights.isEditable();
+ final boolean userCanView = rights.isVisible();
+ boolean userIsMember = isMember(userIsAdmin, userIsCollab);
+
+ view.setDropDownContentVisible(false);
+ view.clear();
+
+ if (userIsAdmin) {
+ view.addButton(addMember);
+ }
+
+ view.setDraggable(session.isLogged());
+
+ if (!userIsMember) {
+ view.addButton(requestJoin);
+ } else if (userIsAdmin && numAdmins > 1 || userIsCollab) {
+ view.addButton(unJoinButton);
+ }
+
+ if (userCanView) {
+ for (final GroupDTO admin : adminsList) {
+ view
+ .addItem(createGridItem(adminCategory, admin, rights, changeToCollabMenuItem,
+ removeMemberMenuItem));
+ }
+ for (final GroupDTO collab : collabList) {
+ view
+ .addItem(createGridItem(collabCategory, collab, rights, changeToAdminMenuItem,
+ removeMemberMenuItem));
+ }
+ for (final GroupDTO pendingCollab : pendingCollabsList) {
+ view.addItem(createGridItem(pendigCategory, pendingCollab, rights, acceptJoinGroupMenuItem,
+ denyJoinGroupMenuItem));
+ }
+ }
+ view.setDropDownContentVisible(true);
+ view.setVisible(true);
+ }
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,140 +0,0 @@
-package org.ourproject.kune.workspace.client.socialnet;
-
-import java.util.List;
-
-import org.ourproject.kune.platf.client.dto.AccessListsDTO;
-import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
-import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.dto.StateDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.ImageDescriptor;
-import org.ourproject.kune.platf.client.services.ImageUtils;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
-import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
-
-import com.calclab.suco.client.container.Provider;
-
-public class GroupMembersSummaryPresenterNew extends SocialNetworkPresenter implements GroupMembersSummary {
-
- private GroupMembersSummaryViewNew view;
- private final I18nUITranslationService i18n;
- private final GridGroup adminCategory;
- private final GridGroup collabCategory;
- private final GridGroup pendigCategory;
- private final Session session;
- private final Provider<SocialNetworkServiceAsync> snServiceProvider;
-
- public GroupMembersSummaryPresenterNew(final I18nUITranslationService i18n,
- final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session,
- final Provider<SocialNetworkServiceAsync> snServiceProvider) {
- super(i18n, stateManagerProvider, imageUtils, session, snServiceProvider);
- this.i18n = i18n;
- this.session = session;
- this.snServiceProvider = snServiceProvider;
- final String adminsTitle = i18n.t("Admins");
- final String collabsTitle = i18n.t("Collaborators");
- final String pendingTitle = i18n.t("Pending");
- adminCategory = new GridGroup(adminsTitle, adminsTitle, i18n.t("People that can admin this group"), true);
- collabCategory = new GridGroup(collabsTitle, collabsTitle, i18n
- .t("Other people that collaborate with this group"), true);
- pendigCategory = new GridGroup(pendingTitle, pendingTitle, i18n
- .t("People pending to be accepted in this group by the admins"), imageUtils
- .getImageHtml(ImageDescriptor.alert), true);
- super.addGroupOperation(gotoMemberMenuItem, false);
- }
-
- public void addCollab(final String groupShortName) {
- Site.showProgressProcessing();
- snServiceProvider.get().addCollabMember(session.getUserHash(),
- session.getCurrentState().getGroup().getShortName(), groupShortName,
- new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member added as collaborator"));
- getStateManager().setSocialNetwork(result);
- }
-
- });
- }
-
- public void hide() {
- view.setVisible(false);
- }
-
- public void init(final GroupMembersSummaryViewNew view) {
- this.view = view;
- }
-
- public void setState(final StateDTO state) {
- if (state.getGroup().getType().equals(GroupDTO.PERSONAL)) {
- hide();
- } else {
- setGroupMembers(state.getGroupMembers(), state.getGroupRights());
- }
- }
-
- public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
- view.setTheme(oldTheme, newTheme);
- }
-
- private boolean isMember(final boolean userIsAdmin, final boolean userIsCollab) {
- return userIsAdmin || userIsCollab;
- }
-
- @SuppressWarnings("unchecked")
- private void setGroupMembers(final SocialNetworkDTO socialNetwork, final AccessRightsDTO rights) {
- final AccessListsDTO accessLists = socialNetwork.getAccessLists();
-
- final List<GroupDTO> adminsList = accessLists.getAdmins().getList();
- final List<GroupDTO> collabList = accessLists.getEditors().getList();
- final List<GroupDTO> pendingCollabsList = socialNetwork.getPendingCollaborators().getList();
-
- final int numAdmins = adminsList.size();
-
- boolean userIsAdmin = rights.isAdministrable();
- final boolean userIsCollab = !userIsAdmin && rights.isEditable();
- final boolean userCanView = rights.isVisible();
- boolean userIsMember = isMember(userIsAdmin, userIsCollab);
-
- view.setDropDownContentVisible(false);
- view.clear();
-
- if (userIsAdmin) {
- view.addButton(addMember);
- }
-
- if (!userIsMember) {
- view.addButton(requestJoin);
- } else if (userIsAdmin && numAdmins > 1 || userIsCollab) {
- view.addButton(unJoinButton);
- }
-
- if (userCanView) {
- for (final GroupDTO admin : adminsList) {
- view
- .addItem(createGridItem(adminCategory, admin, rights, changeToCollabMenuItem,
- removeMemberMenuItem));
- }
- for (final GroupDTO collab : collabList) {
- view
- .addItem(createGridItem(collabCategory, collab, rights, changeToAdminMenuItem,
- removeMemberMenuItem));
- }
- for (final GroupDTO pendingCollab : pendingCollabsList) {
- view.addItem(createGridItem(pendigCategory, pendingCollab, rights, acceptJoinGroupMenuItem,
- denyJoinGroupMenuItem));
- }
- }
- view.setDropDownContentVisible(true);
- view.setVisible(true);
- }
-
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java (from rev 804, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryViewNew.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryViewNew.java 2008-07-20 14:38:06 UTC (rev 804)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,26 @@
+package org.ourproject.kune.workspace.client.socialnet;
+
+import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridButton;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
+import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
+
+public interface GroupMembersSummaryView {
+
+ void addButton(GridButton gridButton);
+
+ void addItem(GridItem<GroupDTO> gridItem);
+
+ void clear();
+
+ void confirmAddCollab(String groupShortName, String groupLongName);
+
+ void setDraggable(boolean draggable);
+
+ void setDropDownContentVisible(boolean visible);
+
+ void setTheme(WsTheme oldTheme, WsTheme newTheme);
+
+ void setVisible(boolean visible);
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryViewNew.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryViewNew.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryViewNew.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,22 +0,0 @@
-package org.ourproject.kune.workspace.client.socialnet;
-
-import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridButton;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
-import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
-
-public interface GroupMembersSummaryViewNew {
-
- void addButton(GridButton gridButton);
-
- void addItem(GridItem<GroupDTO> gridItem);
-
- void clear();
-
- void setDropDownContentVisible(boolean visible);
-
- void setTheme(WsTheme oldTheme, WsTheme newTheme);
-
- void setVisible(boolean visible);
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/MemberAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/MemberAction.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/MemberAction.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,39 +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.workspace.client.socialnet;
-
-public class MemberAction {
-
- private final String text;
- private final String action;
-
- public MemberAction(final String text, final String action) {
- this.text = text;
- this.action = action;
- }
-
- public String getAction() {
- return action;
- }
-
- public String getText() {
- return text;
- }
-}
\ No newline at end of file
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-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -24,7 +24,6 @@
public class SocialNetworkPresenter {
- protected GridButton addMember;
protected GridButton requestJoin;
protected GridButton unJoinButton;
protected GridMenuItem<GroupDTO> changeToCollabMenuItem;
@@ -86,17 +85,6 @@
}
private void createButtons() {
- addMember = new GridButton("images/add-green.gif", i18n.t("Add member"), i18n
- .t("Add a group or a person as member of this group"), new Slot<String>() {
- public void onEvent(final String parameter) {
- // TODO
- // GroupLiveSearchComponent groupLiveSearchComponent
- // = workspace.getGroupLiveSearchComponent();
- // groupLiveSearchComponent.addListener(listener);
- // groupLiveSearchComponent.show();
- }
- });
-
requestJoin = new GridButton("images/add-green.gif", i18n.t("Participate"), i18n
.t("Request to participate in this group"), new Slot<String>() {
public void onEvent(final String parameter) {
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearchPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearchPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearchPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,26 +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.workspace.client.socialnet;
-
-import org.ourproject.kune.workspace.client.workspace.UserLiveSearchComponent;
-
-public class UserLiveSearchPresenter extends EntityLiveSearchPresenter implements UserLiveSearchComponent {
-
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearcherPresenter.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearchPresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearchPresenter.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearcherPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,26 @@
+/*
+ *
+ * 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.workspace.client.socialnet;
+
+import org.ourproject.kune.workspace.client.workspace.UserLiveSearcher;
+
+public class UserLiveSearcherPresenter extends EntityLiveSearcherPresenter implements UserLiveSearcher {
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearchPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearchPanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearchPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,145 +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.workspace.client.socialnet.ui;
-
-import org.ourproject.kune.platf.client.AbstractPresenter;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.ui.dialogs.BasicDialog;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearchView;
-import org.ourproject.kune.workspace.client.socialnet.GroupLiveSearchPresenter;
-
-import com.gwtext.client.core.Connection;
-import com.gwtext.client.core.Template;
-import com.gwtext.client.core.UrlParam;
-import com.gwtext.client.data.DataProxy;
-import com.gwtext.client.data.FieldDef;
-import com.gwtext.client.data.HttpProxy;
-import com.gwtext.client.data.JsonReader;
-import com.gwtext.client.data.Record;
-import com.gwtext.client.data.RecordDef;
-import com.gwtext.client.data.Store;
-import com.gwtext.client.data.StringFieldDef;
-import com.gwtext.client.widgets.form.ComboBox;
-import com.gwtext.client.widgets.form.FormPanel;
-import com.gwtext.client.widgets.form.event.ComboBoxListenerAdapter;
-
-public class EntityLiveSearchPanel implements EntityLiveSearchView {
-
- private static final int PAGINATION_SIZE = 10;
- private final AbstractPresenter presenter;
- private BasicDialog dialog;
- private final int searchType;
- private FormPanel searchForm;
- private final I18nTranslationService i18n;
-
- public EntityLiveSearchPanel(final AbstractPresenter initPresenter, final int searchType,
- final I18nTranslationService i18n) {
- this.presenter = initPresenter;
- this.searchType = searchType;
- this.i18n = i18n;
- }
-
- public void center() {
- dialog.center();
- }
-
- public void hide() {
- dialog.hide();
- searchForm.getForm().reset();
- }
-
- public void show() {
- if (dialog == null) {
- createGroupSearchDialog(searchType);
- }
- dialog.show();
- dialog.center();
- // DOM.setStyleAttribute(dialog.getElement(), "zIndex", "10000");
- }
-
- private void createGroupSearchDialog(final int searchType) {
- String title;
- if (searchType == EntityLiveSearchView.SEARCH_GROUPS) {
- title = i18n.t("Search existing users and groups");
- } else {
- title = i18n.t("Search existing users");
- }
- dialog = new BasicDialog(title, true, false, 285, 55);
- dialog.setClosable(true);
- dialog.setCollapsible(false);
-
- DataProxy dataProxy = null;
- switch (searchType) {
- case EntityLiveSearchView.SEARCH_GROUPS:
- dataProxy = new HttpProxy("/kune/json/GroupJSONService/search", Connection.POST);
- break;
- case EntityLiveSearchView.SEARCH_USERS:
- dataProxy = new HttpProxy("/kune/json/UserJSONService/search", Connection.POST);
- break;
- default:
- break;
- }
-
- JsonReader reader = new JsonReader(new RecordDef(new FieldDef[] { new StringFieldDef("shortName"),
- new StringFieldDef("longName"), new StringFieldDef("link"), new StringFieldDef("iconUrl") }));
- reader.setRoot("list");
- reader.setTotalProperty("size");
- reader.setId("shortName");
-
- final Store store = new Store(dataProxy, reader);
-
- store.load(new UrlParam[] { new UrlParam("query", "."), new UrlParam("first", 1),
- new UrlParam("max", PAGINATION_SIZE) });
-
- searchForm = new FormPanel();
- searchForm.setBorder(false);
- searchForm.setWidth(275);
- searchForm.setHideLabels(true);
-
- final Template resultTpl = new Template(
- "<div class=\"search-item\"><span class=\"kune-IconHyperlink\"><img alt=\"group logo\" src=\"images/group-def-icon.png\" style=\"height: 16px; width: 16px;\" />{shortName}: {longName}</span></div>");
- ComboBox cb = new ComboBox();
- cb.setStore(store);
- cb.setEmptyText(i18n.t("Write here to search"));
- cb.setDisplayField("longName");
- cb.setTypeAhead(true);
- cb.setLoadingText(i18n.t("Searching..."));
- cb.setWidth(268);
- cb.setPageSize(PAGINATION_SIZE);
- cb.setTpl(resultTpl);
- cb.setMode(ComboBox.REMOTE);
- cb.setMinChars(2);
- cb.setSelectOnFocus(false);
- cb.setHideTrigger(true);
- cb.setHideLabel(true);
- // setTitle(i18n.t("User or group"));
- cb.setItemSelector("div.search-item");
-
- cb.addListener(new ComboBoxListenerAdapter() {
- public void onSelect(final ComboBox comboBox, final Record record, final int index) {
- ((GroupLiveSearchPresenter) presenter).fireListener(record.getAsString("shortName"), record
- .getAsString("longName"));
- }
- });
-
- searchForm.add(cb);
- dialog.add(searchForm);
- }
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearcherPanel.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearchPanel.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearchPanel.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearcherPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,151 @@
+/*
+ *
+ * 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.workspace.client.socialnet.ui;
+
+import org.ourproject.kune.platf.client.dto.LinkDTO;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.ui.dialogs.BasicDialog;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherView;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherPresenter;
+
+import com.gwtext.client.core.Connection;
+import com.gwtext.client.core.Template;
+import com.gwtext.client.core.UrlParam;
+import com.gwtext.client.data.DataProxy;
+import com.gwtext.client.data.FieldDef;
+import com.gwtext.client.data.HttpProxy;
+import com.gwtext.client.data.JsonReader;
+import com.gwtext.client.data.Record;
+import com.gwtext.client.data.RecordDef;
+import com.gwtext.client.data.Store;
+import com.gwtext.client.data.StringFieldDef;
+import com.gwtext.client.widgets.form.ComboBox;
+import com.gwtext.client.widgets.form.FormPanel;
+import com.gwtext.client.widgets.form.event.ComboBoxListenerAdapter;
+
+public class EntityLiveSearcherPanel implements EntityLiveSearcherView {
+
+ private static final String LONG_NAME_FIELD = "longName";
+ private static final String SHORT_NAME_FIELD = "shortName";
+ private static final String ICON_URL_FIELD = "iconUrl";
+ private static final String LINK_FIELD = "link";
+ private static final int PAGINATION_SIZE = 10;
+ private final EntityLiveSearcherPresenter presenter;
+ private BasicDialog dialog;
+ private final int searchType;
+ private FormPanel searchForm;
+ private final I18nTranslationService i18n;
+
+ public EntityLiveSearcherPanel(final EntityLiveSearcherPresenter presenter, final int searchType,
+ final I18nTranslationService i18n) {
+ this.presenter = presenter;
+ this.searchType = searchType;
+ this.i18n = i18n;
+ }
+
+ public void center() {
+ dialog.center();
+ }
+
+ public void hide() {
+ dialog.hide();
+ searchForm.getForm().reset();
+ }
+
+ public void show() {
+ if (dialog == null) {
+ createGroupSearchDialog(searchType);
+ }
+ dialog.show();
+ dialog.center();
+ }
+
+ private void createGroupSearchDialog(final int searchType) {
+ String title;
+ if (searchType == EntityLiveSearcherView.SEARCH_GROUPS) {
+ title = i18n.t("Search existing users and groups");
+ } else {
+ title = i18n.t("Search existing users");
+ }
+ dialog = new BasicDialog(title, true, false, 285, 55);
+ dialog.setClosable(true);
+ dialog.setCollapsible(false);
+
+ DataProxy dataProxy = null;
+ switch (searchType) {
+ case EntityLiveSearcherView.SEARCH_GROUPS:
+ dataProxy = new HttpProxy("/kune/json/GroupJSONService/search", Connection.POST);
+ break;
+ case EntityLiveSearcherView.SEARCH_USERS:
+ dataProxy = new HttpProxy("/kune/json/UserJSONService/search", Connection.POST);
+ break;
+ default:
+ break;
+ }
+
+ final JsonReader reader = new JsonReader(new RecordDef(
+ new FieldDef[] { new StringFieldDef(SHORT_NAME_FIELD), new StringFieldDef(LONG_NAME_FIELD),
+ new StringFieldDef(LINK_FIELD), new StringFieldDef(ICON_URL_FIELD) }));
+ reader.setRoot("list");
+ reader.setTotalProperty("size");
+ reader.setId(SHORT_NAME_FIELD);
+
+ final Store store = new Store(dataProxy, reader);
+
+ store.load(new UrlParam[] { new UrlParam("query", "."), new UrlParam("first", 1),
+ new UrlParam("max", PAGINATION_SIZE) });
+
+ searchForm = new FormPanel();
+ searchForm.setBorder(false);
+ searchForm.setWidth(275);
+ searchForm.setHideLabels(true);
+
+ final Template resultTpl = new Template(
+ "<div class=\"search-item\"><span class=\"kune-IconHyperlink\"><img alt=\"group logo\" src=\"images/group-def-icon.png\" style=\"height: 16px; width: 16px;\" />{shortName}: {longName}</span></div>");
+ final ComboBox cb = new ComboBox();
+ cb.setStore(store);
+ cb.setEmptyText(i18n.t("Write here to search"));
+ cb.setDisplayField(LONG_NAME_FIELD);
+ cb.setTypeAhead(true);
+ cb.setLoadingText(i18n.t("Searching..."));
+ cb.setWidth(268);
+ cb.setPageSize(PAGINATION_SIZE);
+ cb.setTpl(resultTpl);
+ cb.setMode(ComboBox.REMOTE);
+ cb.setMinChars(2);
+ cb.setSelectOnFocus(false);
+ cb.setHideTrigger(true);
+ cb.setHideLabel(true);
+ // setTitle(i18n.t("User or group"));
+ cb.setItemSelector("div.search-item");
+
+ cb.addListener(new ComboBoxListenerAdapter() {
+ public void onSelect(final ComboBox comboBox, final Record record, final int index) {
+ final LinkDTO link = new LinkDTO(record.getAsString(SHORT_NAME_FIELD), record
+ .getAsString(LONG_NAME_FIELD), record.getAsString(ICON_URL_FIELD), record
+ .getAsString(LINK_FIELD));
+ presenter.onSelection(link);
+ }
+ });
+
+ searchForm.add(cb);
+ dialog.add(searchForm);
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupLiveSearchPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupLiveSearchPanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupLiveSearchPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -19,14 +19,14 @@
*/
package org.ourproject.kune.workspace.client.socialnet.ui;
-import org.ourproject.kune.platf.client.AbstractPresenter;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearchView;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherView;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherPresenter;
-public class GroupLiveSearchPanel extends EntityLiveSearchPanel {
+public class GroupLiveSearchPanel extends EntityLiveSearcherPanel {
- public GroupLiveSearchPanel(final AbstractPresenter presenter, final I18nTranslationService i18n) {
- super(presenter, EntityLiveSearchView.SEARCH_GROUPS, i18n);
+ public GroupLiveSearchPanel(final EntityLiveSearcherPresenter presenter, final I18nTranslationService i18n) {
+ super(presenter, EntityLiveSearcherView.SEARCH_GROUPS, i18n);
}
}
\ No newline at end of file
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearchPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearchPanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearchPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,32 +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.workspace.client.socialnet.ui;
-
-import org.ourproject.kune.platf.client.AbstractPresenter;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearchView;
-
-public class UserLiveSearchPanel extends EntityLiveSearchPanel {
-
- public UserLiveSearchPanel(final AbstractPresenter presenter, final I18nTranslationService i18n) {
- super(presenter, EntityLiveSearchView.SEARCH_USERS, i18n);
- }
-
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearcherPanel.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearchPanel.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearchPanel.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearcherPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,32 @@
+/*
+ *
+ * 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.workspace.client.socialnet.ui;
+
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherView;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherPresenter;
+
+public class UserLiveSearcherPanel extends EntityLiveSearcherPanel {
+
+ public UserLiveSearcherPanel(final EntityLiveSearcherPresenter presenter, final I18nTranslationService i18n) {
+ super(presenter, EntityLiveSearcherView.SEARCH_USERS, i18n);
+ }
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -49,7 +49,7 @@
}
public void setVisible(final boolean visible) {
- menu.setVisible(visible);
+ super.setVisible(visible);
}
}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearchComponent.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearchComponent.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearchComponent.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,31 +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.workspace.client.workspace;
-
-import org.ourproject.kune.platf.client.Component;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearchListener;
-
-public interface EntityLiveSearchComponent extends Component {
-
- void addListener(EntityLiveSearchListener presenter);
-
- void show();
-
-}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearcher.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearcher.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearcher.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.workspace.client.workspace;
+
+import org.ourproject.kune.platf.client.dto.LinkDTO;
+
+import com.calclab.suco.client.signal.Slot;
+
+public interface EntityLiveSearcher {
+
+ void onSelectionAdd(Slot<LinkDTO> slot);
+
+ void onSelectionRemove(Slot<LinkDTO> slot);
+
+ void show();
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearchComponent.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearchComponent.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearchComponent.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,25 +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.workspace.client.workspace;
-
-public interface GroupLiveSearchComponent extends EntityLiveSearchComponent {
-
-}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearcher.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearcher.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearcher.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,25 @@
+/*
+ *
+ * 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.workspace.client.workspace;
+
+public interface GroupLiveSearcher extends EntityLiveSearcher {
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearchComponent.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearchComponent.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearchComponent.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,24 +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.workspace.client.workspace;
-
-public interface UserLiveSearchComponent extends EntityLiveSearchComponent {
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearcher.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearchComponent.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearchComponent.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearcher.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,24 @@
+/*
+ *
+ * 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.workspace.client.workspace;
+
+public interface UserLiveSearcher extends EntityLiveSearcher {
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -55,14 +55,10 @@
public ContentTitleComponent getContentTitleComponent();
- public GroupLiveSearchComponent getGroupLiveSearchComponent();
-
public I18nTranslatorComponent getI18nTranslatorComponent();
public LicenseComponent getLicenseComponent();
- public UserLiveSearchComponent getUserLiveSearchComponent();
-
public void setContent(WorkspaceComponent contentComponent);
public void setContext(WorkspaceComponent contextComponent);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -100,10 +100,6 @@
return components.getContentTitleComponent();
}
- public GroupLiveSearchComponent getGroupLiveSearchComponent() {
- return components.getGroupLiveSearchComponent();
- }
-
public I18nTranslatorComponent getI18nTranslatorComponent() {
return components.getI18nTranslatorComponent();
}
@@ -112,10 +108,6 @@
return components.getLicenseComponent();
}
- public UserLiveSearchComponent getUserLiveSearchComponent() {
- return components.getUserLiveSearchComponent();
- }
-
public View getView() {
return view;
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -34,9 +34,9 @@
private ContentBottomToolBarComponent contentBottomToolBar;
private ThemeMenuComponent themeMenu;
private ContentToolBarComponent contentToolBar;
- private GroupLiveSearchComponent groupLiveSearch;
+ private GroupLiveSearcher groupLiveSearcher;
private I18nTranslatorComponent i18nTranslatorSearch;
- private UserLiveSearchComponent userLiveSearch;
+ private UserLiveSearcher userLiveSearch;
public WorkspaceUIComponents(final WorkspacePresenter presenter) {
}
@@ -69,13 +69,6 @@
return contentToolBar;
}
- public GroupLiveSearchComponent getGroupLiveSearchComponent() {
- if (groupLiveSearch == null) {
- groupLiveSearch = WorkspaceFactory.createGroupLiveSearchComponent();
- }
- return groupLiveSearch;
- }
-
public I18nTranslatorComponent getI18nTranslatorComponent() {
if (i18nTranslatorSearch == null) {
i18nTranslatorSearch = WorkspaceFactory.createI18nTranslatorComponent();
@@ -90,11 +83,4 @@
return license;
}
- public UserLiveSearchComponent getUserLiveSearchComponent() {
- if (userLiveSearch == null) {
- userLiveSearch = WorkspaceFactory.createUserLiveSearchComponent();
- }
- return userLiveSearch;
- }
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/GroupToolsBar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/GroupToolsBar.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/GroupToolsBar.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -22,7 +22,6 @@
import java.util.HashMap;
import java.util.Iterator;
-import org.ourproject.kune.platf.client.services.ColorTheme;
import org.ourproject.kune.platf.client.tool.ToolTrigger;
import org.ourproject.kune.platf.client.tool.ToolTrigger.TriggerListener;
import org.ourproject.kune.platf.client.ui.HasColor;
@@ -38,70 +37,70 @@
private static final String ITEM_NOT_SELECTED = "kune-GroupToolsBar-itemNotSelected";
private Widget currentTab;
private final HashMap<String, Widget> tabs;
- private final ColorTheme colorTheme;
- public GroupToolsBar(final ColorTheme colorTheme) {
- this.colorTheme = colorTheme;
- tabs = new HashMap<String, Widget>();
- currentTab = null;
- addStyleName("kune-GroupToolsBar");
+ public GroupToolsBar() {
+ // this.colorTheme = colorTheme;
+ tabs = new HashMap<String, Widget>();
+ currentTab = null;
+ addStyleName("kune-GroupToolsBar");
}
public void addItem(final ToolTrigger trigger) {
- final int nextIndex = this.getWidgetCount();
- final Widget menuItem = createItem(nextIndex, trigger);
- setTabSelected(menuItem, false);
- tabs.put(trigger.getName(), menuItem);
- this.add(menuItem);
+ final int nextIndex = this.getWidgetCount();
+ final Widget menuItem = createItem(nextIndex, trigger);
+ setTabSelected(menuItem, false);
+ tabs.put(trigger.getName(), menuItem);
+ this.add(menuItem);
}
public void selectItem(final String toolName) {
- if (currentTab != null) {
- setTabSelected(currentTab, false);
- }
- currentTab = getWidget(toolName);
- setTabSelected(currentTab, true);
+ if (currentTab != null) {
+ setTabSelected(currentTab, false);
+ }
+ currentTab = getWidget(toolName);
+ setTabSelected(currentTab, true);
}
public void setTabsColors(final String selectedColor, final String unSelectedColor) {
- final Iterator<Widget> iter = tabs.values().iterator();
- while (iter.hasNext()) {
- final Widget w = iter.next();
- if (w == currentTab) {
- ((HasColor) w).setColor(selectedColor);
- } else {
- ((HasColor) w).setColor(unSelectedColor);
- }
- }
+ final Iterator<Widget> iter = tabs.values().iterator();
+ while (iter.hasNext()) {
+ final Widget w = iter.next();
+ if (w == currentTab) {
+ ((HasColor) w).setColor(selectedColor);
+ } else {
+ ((HasColor) w).setColor(unSelectedColor);
+ }
+ }
}
private Widget createItem(final int index, final ToolTrigger trigger) {
- final SimplePanel menuItem = new SimplePanel();
- addStyleName("Tab");
- final Hyperlink hl = new Hyperlink(trigger.getLabel(), "");
- trigger.setListener(new TriggerListener() {
- public void onStateChanged(final String encoded) {
- hl.setTargetHistoryToken(encoded);
- }
- });
- menuItem.add(hl);
- return new RoundedBorderDecorator(menuItem, RoundedBorderDecorator.RIGHT);
+ final SimplePanel menuItem = new SimplePanel();
+ addStyleName("Tab");
+ final Hyperlink hl = new Hyperlink(trigger.getLabel(), "");
+ trigger.setListener(new TriggerListener() {
+ public void onStateChanged(final String encoded) {
+ hl.setTargetHistoryToken(encoded);
+ }
+ });
+ menuItem.add(hl);
+ return new RoundedBorderDecorator(menuItem, RoundedBorderDecorator.RIGHT);
}
private Widget getWidget(final String toolName) {
- return tabs.get(toolName);
+ return tabs.get(toolName);
}
private void setTabSelected(final Widget tab, final boolean isSelected) {
- if (isSelected) {
- tab.removeStyleName(ITEM_NOT_SELECTED);
- tab.addStyleName(ITEM_SELECTED);
- } else {
- tab.removeStyleName(ITEM_SELECTED);
- tab.addStyleName(ITEM_NOT_SELECTED);
- }
- String color = isSelected ? colorTheme.getToolSelected() : colorTheme.getToolUnselected();
- ((HasColor) tab).setColor(color);
+ if (isSelected) {
+ tab.removeStyleName(ITEM_NOT_SELECTED);
+ tab.addStyleName(ITEM_SELECTED);
+ } else {
+ tab.removeStyleName(ITEM_SELECTED);
+ tab.addStyleName(ITEM_NOT_SELECTED);
+ }
+ // tring color = isSelected ? colorTheme.getToolSelected() :
+ // colorTheme.getToolUnselected();
+ // ((HasColor) tab).setColor(color);
}
}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -22,7 +22,6 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetId;
-import org.ourproject.kune.platf.client.services.ColorTheme;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.tool.ToolTrigger;
@@ -66,7 +65,6 @@
private DropDownPanel groupSummaryPanel;
private final VerticalPanel cntcxtVP;
private final ScrollPanel groupDropDownsSP;
- private final ColorTheme colorTheme;
private final BottomIconsTrayPanel bottomIconsTrayPanel;
private ContentTitlePanel contentTitlePanel;
private ContentSubTitlePanel contentSubTitlePanel;
@@ -81,10 +79,8 @@
private int previousRightWidgetWidth;
private final WorkspacePresenter presenter;
- public WorkspacePanel(final WorkspacePresenter presenter, final I18nTranslationService i18n,
- final ColorTheme colorTheme) {
+ public WorkspacePanel(final WorkspacePresenter presenter, final I18nTranslationService i18n) {
this.presenter = presenter;
- this.colorTheme = colorTheme;
// Initialize
final VerticalPanel generalVP = new VerticalPanel();
initWidget(generalVP);
@@ -92,7 +88,7 @@
final HorizontalPanel generalHP = new HorizontalPanel();
cntcxtVP = new VerticalPanel();
final VerticalPanel groupNavBarVP = new VerticalPanel();
- groupToolsBar = new GroupToolsBar(colorTheme);
+ groupToolsBar = new GroupToolsBar();
bottomIconsTrayPanel = new BottomIconsTrayPanel();
groupDropDownsSP = new ScrollPanel();
groupDropDownsVP = new VerticalPanel();
@@ -156,7 +152,7 @@
addStyleName("kune-WorkspacePanel");
setGroupLogo("");
generalHP.addStyleName("GeneralHP");
- contentTitleBarBorderDec.setColor(colorTheme.getContentMainBorder());
+ // contentTitleBarBorderDec.setColor(colorTheme.getContentMainBorder());
contentTitleBarHP.setWidth("100%");
contentSubTitleBarHP.setWidth("100%");
contentTitleBarHP.addStyleName("kune-ContentTitleBar");
@@ -172,7 +168,7 @@
contentBottomBarHP.addStyleName("kune-ContentBottomBar");
contentBottomBarHP.addStyleName("kune-ft12px");
groupDropDownsVP.addStyleName("kune-GroupSummaryPanel");
- bottomBorderDecorator.setColor(colorTheme.getContentMainBorder());
+ // bottomBorderDecorator.setColor(colorTheme.getContentMainBorder());
bottomIconsTrayPanel.addStyleName("kune-Margin-Medium-l");
bottomIconsTrayPanel.addStyleName("kune-BottomIconsTrayPanel");
bottomIconsTrayPanel.setHorizontalAlignment(HorizontalPanel.ALIGN_CENTER);
@@ -281,12 +277,12 @@
public void setGroupMembers(final View view) {
groupMembersPanel = (DropDownPanel) view;
- AddDropDown(groupMembersPanel, colorTheme.getGroupMembersDD());
+ // AddDropDown(groupMembersPanel, colorTheme.getGroupMembersDD());
}
public void setParticipation(final View view) {
participationPanel = (DropDownPanel) view;
- AddDropDown(participationPanel, colorTheme.getParticipationDD());
+ // AddDropDown(participationPanel, colorTheme.getParticipationDD());
}
public void setPutYourLogoVisible(final boolean visible) {
@@ -295,12 +291,12 @@
public void setSummary(final View view) {
groupSummaryPanel = (DropDownPanel) view;
- AddDropDown(groupSummaryPanel, colorTheme.getSummaryDD());
+ // AddDropDown(groupSummaryPanel, colorTheme.getSummaryDD());
}
public void setTags(final View view) {
tagsPanel = (DropDownPanel) view;
- AddDropDown(tagsPanel, colorTheme.getTagsDD());
+ // AddDropDown(tagsPanel, colorTheme.getTagsDD());
}
public void setTheme(final String theme) {
Modified: trunk/src/test/java/org/ourproject/kune/platf/client/ui/KuneStringUtilsTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/ui/KuneStringUtilsTest.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/ui/KuneStringUtilsTest.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -9,43 +9,50 @@
public class KuneStringUtilsTest {
@Test
+ public void testTagNull() {
+ final String tagsString = null;
+ final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ assertEquals(0, tags.size());
+ }
+
+ @Test
public void testTagStripsSimple() {
- String tagsString = "ab cd";
- ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
- assertEquals("ab", tags.get(0));
- assertEquals("cd", tags.get(1));
+ final String tagsString = "ab cd";
+ final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ assertEquals("ab", tags.get(0));
+ assertEquals("cd", tags.get(1));
}
@Test
- public void testTagStripsWithQuotes() {
- String tagsString = "ab \"cd\"";
- ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
- assertEquals("ab", tags.get(0));
- assertEquals("cd", tags.get(1));
+ public void testTagStripsWithCommas() {
+ final String tagsString = "ab,cd";
+ final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ assertEquals("ab", tags.get(0));
+ assertEquals("cd", tags.get(1));
}
@Test
- public void testTagStripsWithSpaces() {
- String tagsString = " ab cd ";
- ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
- assertEquals("ab", tags.get(0));
- assertEquals("cd", tags.get(1));
+ public void testTagStripsWithCommasAndSpaces() {
+ final String tagsString = "ab, cd";
+ final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ assertEquals("ab", tags.get(0));
+ assertEquals("cd", tags.get(1));
}
@Test
- public void testTagStripsWithCommas() {
- String tagsString = "ab,cd";
- ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
- assertEquals("ab", tags.get(0));
- assertEquals("cd", tags.get(1));
+ public void testTagStripsWithQuotes() {
+ final String tagsString = "ab \"cd\"";
+ final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ assertEquals("ab", tags.get(0));
+ assertEquals("cd", tags.get(1));
}
@Test
- public void testTagStripsWithCommasAndSpaces() {
- String tagsString = "ab, cd";
- ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
- assertEquals("ab", tags.get(0));
- assertEquals("cd", tags.get(1));
+ public void testTagStripsWithSpaces() {
+ final String tagsString = " ab cd ";
+ final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ assertEquals("ab", tags.get(0));
+ assertEquals("cd", tags.get(1));
}
}
1
0
Author: vjrj
Date: 2008-07-26 13:38:54 +0200 (Sat, 26 Jul 2008)
New Revision: 815
Removed:
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/ChangeGroupWsThemeAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/CreateNewGroupAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/OnlyCheckUserSessionAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AcceptJoinGroupAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddAdminAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddCollabAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddViewerAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DeleteMemberAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DenyJoinGroupAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/RequestJoinGroupAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetAdminAsCollabAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetCollabAsAdminAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/UnJoinGroupAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupListener.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupMembersSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuView.java
Modified:
trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkService.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/ColorTheme.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/SessionImpl.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/DefaultForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroup.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/rpc/UserService.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.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/ui/newtmp/WorkspaceManager.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java
Log:
Incomplete - task 15: Resolve signIn dialog issues (margins, message, overflow)
Incomplete - task 16: NewGroup refactorization
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -106,7 +106,6 @@
public void logout() {
if (!emiteDialog.isDialogNotStarted()) {
- emiteDialog.closeAllChats(false);
emiteDialog.setOwnPresence(OwnStatus.offline);
final UserChatOptions userChatOptions = getUserChatOptions("reset(a)example.com", "");
emiteDialog.refreshUserInfo(userChatOptions);
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-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -35,6 +35,7 @@
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetChild;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetId;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.workspace.client.WorkspaceEvents;
import org.ourproject.kune.workspace.client.component.WorkspaceDeckView;
import org.ourproject.kune.workspace.client.editor.TextEditor;
@@ -47,14 +48,16 @@
private final DocumentContentListener listener;
private final DocumentReader reader;
private final DocumentReaderControl readerControl;
+ private final Session session;
public DocumentContentPresenter(final DocumentFactory documentFactory, final DocumentContentListener listener,
- final WorkspaceDeckView view) {
- this.listener = listener;
- this.view = view;
- this.components = new DocumentContentComponents(documentFactory, this);
- reader = components.getDocumentReader();
- readerControl = components.getDocumentReaderControl();
+ final WorkspaceDeckView view, final Session session) {
+ this.listener = listener;
+ this.view = view;
+ this.session = session;
+ this.components = new DocumentContentComponents(documentFactory, this);
+ reader = components.getDocumentReader();
+ readerControl = components.getDocumentReaderControl();
}
public void attach() {
@@ -64,88 +67,85 @@
}
public View getView() {
- return view;
+ return view;
}
public void onCancel() {
- showContent();
- listener.onCancel();
- // Re-enable rateIt widget
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.ENABLE_RATEIT, null);
+ showContent();
+ listener.onCancel();
+ // Re-enable rateIt widget
+ DefaultDispatcher.getInstance().fire(WorkspaceEvents.ENABLE_RATEIT, null);
}
public void onDelete() {
- DefaultDispatcher.getInstance().fire(DocsEvents.DEL_CONTENT, content.getDocumentId());
+ DefaultDispatcher.getInstance().fire(DocsEvents.DEL_CONTENT, content.getDocumentId());
}
public void onEdit() {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.ONLY_CHECK_USER_SESSION,
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- if (content.hasDocument()) {
- // Don't permit rate content while your are editing
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.DISABLE_RATEIT, null);
- TextEditor editor = components.getDocumentEditor();
- editor.setContent(content.getContent());
- view.show(editor.getView());
- DefaultDispatcher.getInstance().fire(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET,
- ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT);
- DefaultDispatcher.getInstance().fire(
- PlatformEvents.ATTACH_TO_EXTENSIBLE_WIDGET,
- new ExtensibleWidgetChild(ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT, editor
- .getToolBar()));
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, null);
- } else {
- FolderEditor editor = components.getFolderEditor();
- editor.setFolder(content.getFolder());
- view.show(editor.getView());
- }
- listener.onEdit();
- }
- });
+ session.check(new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ if (content.hasDocument()) {
+ // Don't permit rate content while your are editing
+ DefaultDispatcher.getInstance().fire(WorkspaceEvents.DISABLE_RATEIT, null);
+ final TextEditor editor = components.getDocumentEditor();
+ editor.setContent(content.getContent());
+ view.show(editor.getView());
+ DefaultDispatcher.getInstance().fire(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET,
+ ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT);
+ DefaultDispatcher.getInstance().fire(PlatformEvents.ATTACH_TO_EXTENSIBLE_WIDGET,
+ new ExtensibleWidgetChild(ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT, editor.getToolBar()));
+ DefaultDispatcher.getInstance().fire(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, null);
+ } else {
+ final FolderEditor editor = components.getFolderEditor();
+ editor.setFolder(content.getFolder());
+ view.show(editor.getView());
+ }
+ listener.onEdit();
+ }
+ });
}
public void onSave(final String text) {
- content.setContent(text);
- DefaultDispatcher.getInstance().fire(DocsEvents.SAVE_DOCUMENT, new SaveDocumentActionParams(content, this));
- // Re-enable rateIt widget
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.ENABLE_RATEIT, null);
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, null);
+ content.setContent(text);
+ DefaultDispatcher.getInstance().fire(DocsEvents.SAVE_DOCUMENT, new SaveDocumentActionParams(content, this));
+ // Re-enable rateIt widget
+ DefaultDispatcher.getInstance().fire(WorkspaceEvents.ENABLE_RATEIT, null);
+ DefaultDispatcher.getInstance().fire(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, null);
}
public void onSaved() {
- components.getDocumentEditor().onSaved();
+ components.getDocumentEditor().onSaved();
}
public void onSaveFailed() {
- components.getDocumentEditor().onSaveFailed();
+ components.getDocumentEditor().onSaveFailed();
}
public void onTranslate() {
}
public void setContent(final StateDTO content) {
- this.content = content;
- showContent();
+ this.content = content;
+ showContent();
}
private void showContent() {
- if (content.hasDocument()) {
- reader.showDocument(content.getContent());
- components.getDocumentEditor().reset();
- readerControl.setRights(content.getContentRights());
- DefaultDispatcher.getInstance().fire(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET,
- ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT);
- DefaultDispatcher.getInstance().fire(PlatformEvents.ATTACH_TO_EXTENSIBLE_WIDGET,
- new ExtensibleWidgetChild(ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT, readerControl.getView()));
- view.show(reader.getView());
- } else {
- FolderViewer viewer = components.getFolderViewer();
- viewer.setFolder(content.getFolder());
- DefaultDispatcher.getInstance().fire(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET,
- ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT);
- view.show(viewer.getView());
- }
+ if (content.hasDocument()) {
+ reader.showDocument(content.getContent());
+ components.getDocumentEditor().reset();
+ readerControl.setRights(content.getContentRights());
+ DefaultDispatcher.getInstance().fire(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET,
+ ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT);
+ DefaultDispatcher.getInstance().fire(PlatformEvents.ATTACH_TO_EXTENSIBLE_WIDGET,
+ new ExtensibleWidgetChild(ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT, readerControl.getView()));
+ view.show(reader.getView());
+ } else {
+ final FolderViewer viewer = components.getFolderViewer();
+ viewer.setFolder(content.getFolder());
+ DefaultDispatcher.getInstance().fire(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET,
+ ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT);
+ view.show(viewer.getView());
+ }
}
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -81,7 +81,7 @@
public DocumentContent createDocumentContent(final DocumentContentListener listener) {
final WorkspaceDeckPanel panel = new WorkspaceDeckPanel();
- final DocumentContentPresenter presenter = new DocumentContentPresenter(this, listener, panel);
+ final DocumentContentPresenter presenter = new DocumentContentPresenter(this, listener, panel, session);
return presenter;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -30,19 +30,6 @@
public interface GroupService extends RemoteService {
- public class App {
- private static GroupServiceAsync ourInstance = null;
-
- public static synchronized GroupServiceAsync getInstance() {
- if (ourInstance == null) {
- ourInstance = (GroupServiceAsync) GWT.create(GroupService.class);
- ((ServiceDefTarget) ourInstance).setServiceEntryPoint(GWT.getModuleBaseURL() + "GroupService");
- }
- return ourInstance;
- }
-
- }
-
void changeGroupWsTheme(String userHash, String groupShortName, String theme) throws DefaultException;
StateToken createNewGroup(String userHash, GroupDTO group) throws DefaultException;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkService.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkService.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -24,25 +24,10 @@
import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
import org.ourproject.kune.platf.client.errors.DefaultException;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.RemoteService;
-import com.google.gwt.user.client.rpc.ServiceDefTarget;
public interface SocialNetworkService extends RemoteService {
- public static class App {
- private static SocialNetworkServiceAsync instance;
-
- public static SocialNetworkServiceAsync getInstance() {
- if (instance == null) {
- instance = (SocialNetworkServiceAsync) GWT.create(SocialNetworkService.class);
- ((ServiceDefTarget) instance).setServiceEntryPoint(GWT.getModuleBaseURL() + "SocialNetworkService");
- }
- return instance;
- }
-
- }
-
SocialNetworkResultDTO AcceptJoinGroup(String hash, String groupShortName, String groupToAcceptShortName)
throws DefaultException;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/ColorTheme.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/ColorTheme.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/ColorTheme.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -21,6 +21,7 @@
import com.google.gwt.i18n.client.Dictionary;
+@Deprecated
public class ColorTheme {
private static final String DEFAULT_KUNE_THEME = "defaultKuneTheme";
@@ -28,71 +29,71 @@
private Dictionary theme;
public ColorTheme() {
- this(DEFAULT_KUNE_THEME);
+ this(DEFAULT_KUNE_THEME);
}
public ColorTheme(final String theme) {
- this.theme = Dictionary.getDictionary(theme);
+ this.theme = Dictionary.getDictionary(theme);
}
- public void setTheme(final String theme) {
- this.theme = Dictionary.getDictionary(theme);
+ public String getContentBottomText() {
+ return theme.get("contentBottomText");
}
- public String getThemeName() {
- return theme.get("themeName");
+ public String getContentMainBorder() {
+ return theme.get("contentMainBorder");
}
- public String getToolSelected() {
- return theme.get("toolSelected");
+ public String getContentSubTitleText() {
+ return theme.get("contentSubTitleText");
}
- public String getToolUnselected() {
- return theme.get("toolUnselected");
+ public String getContentTitle() {
+ return theme.get("contentTitle");
}
- public String getContentMainBorder() {
- return theme.get("contentMainBorder");
+ public String getContentTitleText() {
+ return theme.get("contentTitleText");
}
- public String getContentTitle() {
- return theme.get("contentTitle");
+ public String getContext() {
+ return theme.get("context");
}
- public String getContentTitleText() {
- return theme.get("contentTitleText");
+ public String getGroupMembersDD() {
+ return theme.get("groupMembersDD");
}
- public String getContentSubTitleText() {
- return theme.get("contentSubTitleText");
+ public String getParticipationDD() {
+ return theme.get("participationDD");
}
- public String getContentBottomText() {
- return theme.get("contentBottomText");
+ public String getSplitter() {
+ return theme.get("splitter");
}
- public String getContext() {
- return theme.get("context");
+ public String getSummaryDD() {
+ return theme.get("summaryDD");
}
- public String getSplitter() {
- return theme.get("splitter");
+ public String getTagsDD() {
+ return theme.get("tagsDD");
}
- public String getGroupMembersDD() {
- return theme.get("groupMembersDD");
+ public String getThemeName() {
+ return theme.get("themeName");
}
- public String getParticipationDD() {
- return theme.get("participationDD");
+ public String getToolSelected() {
+ return theme.get("toolSelected");
}
- public String getSummaryDD() {
- return theme.get("summaryDD");
+ public String getToolUnselected() {
+ return theme.get("toolUnselected");
}
- public String getTagsDD() {
- return theme.get("tagsDD");
+ public void setTheme(final String theme) {
+ this.theme = Dictionary.getDictionary(theme);
}
}
\ No newline at end of file
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-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -11,13 +11,19 @@
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.rpc.ContentService;
+import org.ourproject.kune.platf.client.rpc.GroupService;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
+import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
import org.ourproject.kune.platf.client.state.ContentProviderImpl;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.SessionImpl;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.state.StateManagerDefault;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.licensechoose.LicenseChoose;
+import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePanel;
+import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePresenter;
import org.ourproject.kune.workspace.client.newgroup.NewGroup;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
import org.ourproject.kune.workspace.client.newgroup.ui.NewGroupPanel;
@@ -36,6 +42,7 @@
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessagePresenter;
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessageView;
import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
+import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPanelNew;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPresenterNew;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryViewNew;
@@ -92,12 +99,15 @@
import com.calclab.suco.client.modules.ModuleBuilder;
import com.calclab.suco.client.scopes.SingletonScope;
import com.calclab.suco.client.signal.Slot;
+import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.History;
+import com.google.gwt.user.client.rpc.ServiceDefTarget;
public class KuneModule implements Module {
private final I18nLanguageDTO initialLang;
private final HashMap<String, String> lexicon;
+ private ModuleBuilder builder;
public KuneModule(final I18nLanguageDTO initialLang, final HashMap<String, String> lexicon) {
this.initialLang = initialLang;
@@ -109,6 +119,8 @@
}
public void onLoad(final ModuleBuilder builder) {
+ this.builder = builder;
+
builder.registerProvider(Kune.class, new Provider<Kune>() {
public Kune get() {
return new Kune(builder);
@@ -124,9 +136,35 @@
}
}, SingletonScope.class);
+ builder.registerProvider(UserServiceAsync.class, new Provider<UserServiceAsync>() {
+ public UserServiceAsync get() {
+ final UserServiceAsync service = (UserServiceAsync) GWT.create(UserService.class);
+ ((ServiceDefTarget) service).setServiceEntryPoint(GWT.getModuleBaseURL() + "UserService");
+ return service;
+ }
+ }, SingletonScope.class);
+
+ builder.registerProvider(SocialNetworkServiceAsync.class, new Provider<SocialNetworkServiceAsync>() {
+ public SocialNetworkServiceAsync get() {
+ final SocialNetworkServiceAsync snServiceAsync = (SocialNetworkServiceAsync) GWT
+ .create(SocialNetworkService.class);
+ ((ServiceDefTarget) snServiceAsync).setServiceEntryPoint(GWT.getModuleBaseURL()
+ + "SocialNetworkService");
+ return snServiceAsync;
+ }
+ }, SingletonScope.class);
+
+ builder.registerProvider(GroupServiceAsync.class, new Provider<GroupServiceAsync>() {
+ public GroupServiceAsync get() {
+ final GroupServiceAsync groupServiceAsync = (GroupServiceAsync) GWT.create(GroupService.class);
+ ((ServiceDefTarget) groupServiceAsync).setServiceEntryPoint(GWT.getModuleBaseURL() + "GroupService");
+ return groupServiceAsync;
+ }
+ }, SingletonScope.class);
+
builder.registerProvider(Session.class, new Provider<Session>() {
public Session get() {
- return new SessionImpl(Cookies.getCookie(Site.USERHASH), initialLang);
+ return new SessionImpl(Cookies.getCookie(Site.USERHASH), initialLang, p(UserServiceAsync.class));
}
}, SingletonScope.class);
@@ -142,11 +180,10 @@
}
}, SingletonScope.class);
- final I18nUITranslationService i18n = builder.getInstance(I18nUITranslationService.class);
+ final I18nUITranslationService i18n = i(I18nUITranslationService.class);
builder.registerProvider(KuneErrorHandler.class, new Provider<KuneErrorHandler>() {
public KuneErrorHandler get() {
- return new KuneErrorHandler(builder.getInstance(Session.class), i18n, builder
- .getProvider(WorkspaceSkeleton.class));
+ return new KuneErrorHandler(i(Session.class), i18n, p(WorkspaceSkeleton.class));
}
}, SingletonScope.class);
@@ -156,7 +193,7 @@
}
}, SingletonScope.class);
- final KuneErrorHandler errorHandler = builder.getInstance(KuneErrorHandler.class);
+ final KuneErrorHandler errorHandler = i(KuneErrorHandler.class);
AsyncCallbackSimple.init(errorHandler);
builder.registerProvider(ColorTheme.class, new Provider<ColorTheme>() {
@@ -177,16 +214,16 @@
}
}, SingletonScope.class);
- final WorkspaceSkeleton ws = builder.getInstance(WorkspaceSkeleton.class);
- final Images images = builder.getInstance(Images.class);
+ final WorkspaceSkeleton ws = i(WorkspaceSkeleton.class);
+ final Images images = i(Images.class);
builder.registerProvider(Application.class, new Provider<Application>() {
public Application get() {
- final Session session = builder.getInstance(Session.class);
+ final Session session = i(Session.class);
final ExtensibleWidgetsManager extensionPointManager = builder
.getInstance(ExtensibleWidgetsManager.class);
return new ApplicationDefault(session, extensionPointManager, i18n, builder
- .getInstance(ColorTheme.class), builder.getInstance(KuneErrorHandler.class), ws);
+ .getInstance(ColorTheme.class), i(KuneErrorHandler.class), ws);
}
}, SingletonScope.class);
@@ -211,7 +248,7 @@
builder.registerProvider(Site.class, new Provider<Site>() {
public Site get() {
- return new Site(i18n, builder.getInstance(SiteProgress.class), builder.getProvider(SiteMessage.class));
+ return new Site(i18n, i(SiteProgress.class), p(SiteMessage.class));
}
}, SingletonScope.class);
@@ -224,13 +261,12 @@
}
}, SingletonScope.class);
- builder.getInstance(SiteProgress.class);
- builder.getInstance(Site.class);
+ i(SiteProgress.class);
+ i(Site.class);
builder.registerProvider(SiteSignInLink.class, new Provider<SiteSignInLink>() {
public SiteSignInLink get() {
- final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter(builder
- .getInstance(Session.class));
+ final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter(i(Session.class));
final SiteSignInLinkPanel panel = new SiteSignInLinkPanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
@@ -239,9 +275,8 @@
builder.registerProvider(SiteSignOutLink.class, new Provider<SiteSignOutLink>() {
public SiteSignOutLink get() {
- final SiteSignOutLinkPresenter presenter = new SiteSignOutLinkPresenter(builder
- .getInstance(Session.class), UserService.App.getInstance(), builder
- .getInstance(KuneErrorHandler.class));
+ final SiteSignOutLinkPresenter presenter = new SiteSignOutLinkPresenter(i(Session.class),
+ p(UserServiceAsync.class), p(KuneErrorHandler.class));
final SiteSignOutLinkPanel panel = new SiteSignOutLinkPanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
@@ -251,7 +286,7 @@
builder.registerProvider(SiteNewGroupLink.class, new Provider<SiteNewGroupLink>() {
public SiteNewGroupLink get() {
final SiteNewGroupLinkPresenter presenter = new SiteNewGroupLinkPresenter();
- final SiteNewGroupLinkPanel panel = new SiteNewGroupLinkPanel(presenter, ws);
+ final SiteNewGroupLinkPanel panel = new SiteNewGroupLinkPanel(presenter, ws, i18n);
presenter.init(panel);
return presenter;
}
@@ -268,7 +303,7 @@
builder.registerProvider(SiteLogo.class, new Provider<SiteLogo>() {
public SiteLogo get() {
- final SiteLogoPresenter presenter = new SiteLogoPresenter(builder.getInstance(Session.class));
+ final SiteLogoPresenter presenter = new SiteLogoPresenter(i(Session.class));
final SiteLogoPanel panel = new SiteLogoPanel(presenter, ws);
presenter.init(panel);
return presenter;
@@ -286,7 +321,7 @@
builder.registerProvider(SiteSearch.class, new Provider<SiteSearch>() {
public SiteSearch get() {
- final SiteSearchPresenter presenter = new SiteSearchPresenter(builder.getProvider(SiteSearcher.class));
+ final SiteSearchPresenter presenter = new SiteSearchPresenter(p(SiteSearcher.class));
final SiteSearchPanel panel = new SiteSearchPanel(presenter, ws, i18n);
presenter.init(panel);
return presenter;
@@ -295,29 +330,39 @@
builder.registerProvider(SignIn.class, new Provider<SignIn>() {
public SignIn get() {
- final SignInPresenter presenter = new SignInPresenter(builder.getInstance(Session.class), builder
- .getInstance(StateManager.class), i18n, UserService.App.getInstance());
+ final SignInPresenter presenter = new SignInPresenter(i(Session.class), builder
+ .getInstance(StateManager.class), i18n, i(UserServiceAsync.class));
final SignInPanel view = new SignInPanel(presenter, i18n, ws);
presenter.init(view);
return presenter;
}
}, SingletonScope.class);
+ builder.registerProvider(LicenseChoose.class, new Provider<LicenseChoose>() {
+ public LicenseChoose get() {
+ final LicenseChoosePresenter presenter = new LicenseChoosePresenter(i(Session.class));
+ final LicenseChoosePanel view = new LicenseChoosePanel(presenter, i18n);
+ presenter.init(view);
+ return presenter;
+ }
+ });
+
builder.registerProvider(NewGroup.class, new Provider<NewGroup>() {
public NewGroup get() {
- final NewGroupPresenter presenter = new NewGroupPresenter(null, i18n);
- final NewGroupPanel view = new NewGroupPanel(presenter, i18n);
+ final NewGroupPresenter presenter = new NewGroupPresenter(i18n, i(Session.class),
+ i(StateManager.class), p(GroupServiceAsync.class));
+ final NewGroupPanel view = new NewGroupPanel(presenter, i18n, p(LicenseChoose.class));
presenter.init(view);
return presenter;
}
}, SingletonScope.class);
- builder.getInstance(SitePublicSpaceLink.class);
- builder.getInstance(SiteSignInLink.class);
- builder.getInstance(SiteSignOutLink.class);
- builder.getInstance(SiteNewGroupLink.class);
- builder.getInstance(SiteSearch.class);
- builder.getInstance(SiteLogo.class);
+ i(SitePublicSpaceLink.class);
+ i(SiteSignInLink.class);
+ i(SiteSignOutLink.class);
+ i(SiteNewGroupLink.class);
+ i(SiteSearch.class);
+ i(SiteLogo.class);
builder.registerProvider(EntityLogo.class, new Provider<EntityLogo>() {
public EntityLogo get() {
@@ -327,7 +372,7 @@
builder.registerProvider(WsThemePresenter.class, new Provider<WsThemePresenter>() {
public WsThemePresenter get() {
- final WsThemePresenter presenter = new WsThemePresenter(builder.getInstance(Session.class));
+ final WsThemePresenter presenter = new WsThemePresenter(i(Session.class), p(GroupServiceAsync.class));
final WsThemePanel panel = new WsThemePanel(ws, presenter, i18n);
presenter.init(panel);
return presenter;
@@ -364,14 +409,12 @@
builder.registerProvider(WorkspaceManager.class, new Provider<WorkspaceManager>() {
public WorkspaceManager get() {
- final WorkspaceManager presenter = new WorkspaceManager(builder.getInstance(SitePublicSpaceLink.class),
- builder.getInstance(EntityLogo.class), builder.getInstance(EntityTitlePresenter.class), builder
+ final WorkspaceManager presenter = new WorkspaceManager(i(SitePublicSpaceLink.class),
+ i(EntityLogo.class), i(EntityTitlePresenter.class), builder
.getInstance(EntitySubTitlePresenter.class), builder
- .getInstance(WsThemePresenter.class),
- builder.getInstance(EntityLicensePresenter.class), builder
+ .getInstance(WsThemePresenter.class), i(EntityLicensePresenter.class), builder
.getProvider(GroupMembersSummary.class), builder
- .getProvider(ParticipationSummary.class), builder.getProvider(TagsSummary.class),
- builder.getProvider(GroupSummary.class));
+ .getProvider(ParticipationSummary.class), p(TagsSummary.class), p(GroupSummary.class));
return presenter;
}
}, SingletonScope.class);
@@ -379,8 +422,8 @@
builder.registerProvider(StateManager.class, new Provider<StateManager>() {
public StateManager get() {
final StateManagerDefault stateManager = new StateManagerDefault(new ContentProviderImpl(
- ContentService.App.getInstance()), builder.getInstance(Session.class),
- new HistoryWrapperImpl(), builder.getInstance(WorkspaceManager.class));
+ ContentService.App.getInstance()), i(Session.class), new HistoryWrapperImpl(),
+ i(WorkspaceManager.class));
History.addHistoryListener(stateManager);
return stateManager;
}
@@ -388,9 +431,9 @@
builder.registerProvider(GroupMembersSummary.class, new Provider<GroupMembersSummary>() {
public GroupMembersSummary get() {
- final GroupMembersSummaryPresenterNew presenter = new GroupMembersSummaryPresenterNew(i18n, builder
- .getProvider(StateManager.class), builder.getInstance(ImageUtils.class), builder
- .getInstance(Session.class), SocialNetworkService.App.getInstance());
+ final GroupMembersSummaryPresenterNew presenter = new GroupMembersSummaryPresenterNew(i18n,
+ p(StateManager.class), i(ImageUtils.class), i(Session.class),
+ p(SocialNetworkServiceAsync.class));
final GroupMembersSummaryViewNew view = new GroupMembersSummaryPanelNew(presenter, i18n, ws);
presenter.init(view);
return presenter;
@@ -408,9 +451,9 @@
builder.registerProvider(ParticipationSummary.class, new Provider<ParticipationSummary>() {
public ParticipationSummary get() {
- final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(i18n, builder
- .getProvider(StateManager.class), builder.getInstance(ImageUtils.class), builder
- .getInstance(Session.class), SocialNetworkService.App.getInstance());
+ final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(i18n,
+ p(StateManager.class), i(ImageUtils.class), i(Session.class),
+ p(SocialNetworkServiceAsync.class));
final ParticipationSummaryView view = new ParticipationSummaryPanel(presenter, i18n, ws);
presenter.init(view);
return presenter;
@@ -419,8 +462,8 @@
builder.registerProvider(TagsSummary.class, new Provider<TagsSummary>() {
public TagsSummary get() {
- final TagsSummaryPresenter presenter = new TagsSummaryPresenter(builder.getProvider(Session.class),
- builder.getProvider(SiteSearcher.class));
+ final TagsSummaryPresenter presenter = new TagsSummaryPresenter(p(Session.class), builder
+ .getProvider(SiteSearcher.class));
final TagsSummaryPanel panel = new TagsSummaryPanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
@@ -428,15 +471,26 @@
}, SingletonScope.class);
// Register of tokens like "signin", "newgroup", "translate" etcetera
- builder.getInstance(StateManager.class).addSiteToken(SiteToken.signin.toString(), new Slot<StateToken>() {
+ i(StateManager.class).addSiteToken(SiteToken.signin.toString(), new Slot<StateToken>() {
public void onEvent(final StateToken previousStateToken) {
- builder.getInstance(SignIn.class).doSignIn(previousStateToken);
+ i(SignIn.class).doSignIn(previousStateToken);
}
});
- // builder.registerProvider(type, new Provider<>() {},
- // SingletonScope.class)
+ i(StateManager.class).addSiteToken(SiteToken.newgroup.toString(), new Slot<StateToken>() {
+ public void onEvent(final StateToken previousStateToken) {
+ i(NewGroup.class).doNewGroup(previousStateToken);
+ }
+ });
}
+ private <T> T i(final Class<T> componentType) {
+ return builder.getInstance(componentType);
+ }
+
+ private <T> Provider<T> p(final Class<T> componentKey) {
+ return builder.getProvider(componentKey);
+ }
+
}
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-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -28,6 +28,7 @@
import org.ourproject.kune.platf.client.dto.LicenseDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import com.calclab.suco.client.signal.Slot;
@@ -38,6 +39,8 @@
*/
public static int SESSION_DURATION = 1000 * 60 * 60 * 24 * 14;
+ public void check(AsyncCallbackSimple<?> callback);
+
public List<I18nCountryDTO> getCountries();
public Object[][] getCountriesArray();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -30,7 +30,10 @@
import org.ourproject.kune.platf.client.dto.LicenseDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
+import com.calclab.suco.client.container.Provider;
import com.calclab.suco.client.signal.Signal;
import com.calclab.suco.client.signal.Slot;
@@ -46,16 +49,23 @@
private final Signal<InitDataDTO> onInitDataReceived;
private final Signal<UserInfoDTO> onUserSignIn;
private final Signal<Object> onUserSignOut;
+ private final Provider<UserServiceAsync> userServiceProvider;
- public SessionImpl(final String userHash, final I18nLanguageDTO initialLanguage) {
+ public SessionImpl(final String userHash, final I18nLanguageDTO initialLanguage,
+ final Provider<UserServiceAsync> userServiceProvider) {
this.userHash = userHash;
currentLanguage = initialLanguage;
+ this.userServiceProvider = userServiceProvider;
languagesArray = null;
this.onInitDataReceived = new Signal<InitDataDTO>("initDataReceived");
this.onUserSignIn = new Signal<UserInfoDTO>("onUserSignIn");
this.onUserSignOut = new Signal<Object>("onUserSignOut");
}
+ public void check(final AsyncCallbackSimple<?> callback) {
+ userServiceProvider.get().onlyCheckSession(getUserHash(), callback);
+ }
+
public List<I18nCountryDTO> getCountries() {
return initData.getCountries();
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/DefaultForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/DefaultForm.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/DefaultForm.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -25,6 +25,10 @@
form.add(field);
}
+ public void addStyleName(final String cls) {
+ form.addStyleName(cls);
+ }
+
public FormPanel getForm() {
return form;
}
@@ -33,6 +37,10 @@
return form.getForm().isValid();
}
+ public void removeStyleName(final String cls) {
+ form.removeStyleName(cls);
+ }
+
public void reset() {
form.getForm().reset();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -29,13 +29,10 @@
import org.ourproject.kune.workspace.client.actions.AddGroupLiveSearchAction;
import org.ourproject.kune.workspace.client.actions.AddUserLiveSearchAction;
import org.ourproject.kune.workspace.client.actions.AttachToExtensibleWidgetAction;
-import org.ourproject.kune.workspace.client.actions.ChangeGroupWsThemeAction;
import org.ourproject.kune.workspace.client.actions.ClearExtensibleWidgetAction;
-import org.ourproject.kune.workspace.client.actions.CreateNewGroupAction;
import org.ourproject.kune.workspace.client.actions.DetachFromExtensibleWidgetAction;
import org.ourproject.kune.workspace.client.actions.DisableRateItAction;
import org.ourproject.kune.workspace.client.actions.EnableRateItAction;
-import org.ourproject.kune.workspace.client.actions.OnlyCheckUserSessionAction;
import org.ourproject.kune.workspace.client.actions.RateContentAction;
import org.ourproject.kune.workspace.client.actions.RecalculateWorkspaceAction;
import org.ourproject.kune.workspace.client.actions.ReloadContextAction;
@@ -43,16 +40,6 @@
import org.ourproject.kune.workspace.client.actions.i18n.GetLexiconAction;
import org.ourproject.kune.workspace.client.actions.i18n.GetTranslationAction;
import org.ourproject.kune.workspace.client.actions.i18n.ShowTranslatorAction;
-import org.ourproject.kune.workspace.client.actions.sn.AcceptJoinGroupAction;
-import org.ourproject.kune.workspace.client.actions.sn.AddAdminAction;
-import org.ourproject.kune.workspace.client.actions.sn.AddCollabAction;
-import org.ourproject.kune.workspace.client.actions.sn.AddViewerAction;
-import org.ourproject.kune.workspace.client.actions.sn.DeleteMemberAction;
-import org.ourproject.kune.workspace.client.actions.sn.DenyJoinGroupAction;
-import org.ourproject.kune.workspace.client.actions.sn.RequestJoinGroupAction;
-import org.ourproject.kune.workspace.client.actions.sn.SetAdminAsCollabAction;
-import org.ourproject.kune.workspace.client.actions.sn.SetCollabAsAdminAction;
-import org.ourproject.kune.workspace.client.actions.sn.UnJoinGroupAction;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.workspace.Workspace;
@@ -74,27 +61,10 @@
}
public void configure(final Register register) {
- register.addAction(WorkspaceEvents.ONLY_CHECK_USER_SESSION, new OnlyCheckUserSessionAction(session));
register.addAction(PlatformEvents.ATTACH_TO_EXTENSIBLE_WIDGET, new AttachToExtensibleWidgetAction(workspace));
register.addAction(PlatformEvents.DETACH_FROM_EXTENSIBLE_WIDGET,
new DetachFromExtensibleWidgetAction(workspace));
register.addAction(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET, new ClearExtensibleWidgetAction(workspace));
- register.addAction(WorkspaceEvents.REQ_JOIN_GROUP, new RequestJoinGroupAction(session, stateManager, i18n));
- register.addAction(WorkspaceEvents.ACCEPT_JOIN_GROUP, new AcceptJoinGroupAction(session, stateManager,
- workspace, i18n));
- register.addAction(WorkspaceEvents.DENY_JOIN_GROUP, new DenyJoinGroupAction(session, stateManager, i18n));
- register.addAction(WorkspaceEvents.DEL_MEMBER, new DeleteMemberAction(session, stateManager, i18n));
- register.addAction(WorkspaceEvents.SET_COLLAB_AS_ADMIN, new SetCollabAsAdminAction(session, stateManager,
- workspace, i18n));
- register.addAction(WorkspaceEvents.SET_ADMIN_AS_COLLAB, new SetAdminAsCollabAction(session, stateManager,
- workspace, i18n));
- register
- .addAction(WorkspaceEvents.ADD_ADMIN_MEMBER, new AddAdminAction(session, stateManager, workspace, i18n));
- register.addAction(WorkspaceEvents.ADD_COLLAB_MEMBER, new AddCollabAction(session, stateManager, workspace,
- i18n));
- register.addAction(WorkspaceEvents.ADD_VIEWER_MEMBER, new AddViewerAction(session, stateManager, i18n));
- register.addAction(WorkspaceEvents.UNJOIN_GROUP, new UnJoinGroupAction(session, stateManager, i18n));
- register.addAction(WorkspaceEvents.CHANGE_GROUP_WSTHEME, new ChangeGroupWsThemeAction(session, workspace));
register.addAction(WorkspaceEvents.RATE_CONTENT, new RateContentAction(session, stateManager, i18n));
register.addAction(WorkspaceEvents.ENABLE_RATEIT, new EnableRateItAction(workspace));
register.addAction(WorkspaceEvents.DISABLE_RATEIT, new DisableRateItAction(workspace));
@@ -104,7 +74,6 @@
register.addAction(WorkspaceEvents.SHOW_TRANSLATOR, new ShowTranslatorAction(session, workspace, i18n));
register.addAction(WorkspaceEvents.DO_TRANSLATION, new DoTranslationAction(session, i18n));
register.addAction(WorkspaceEvents.GET_LEXICON, new GetLexiconAction(i18n));
- register.addAction(WorkspaceEvents.CREATE_NEW_GROUP, new CreateNewGroupAction(session));
register.addAction(WorkspaceEvents.RELOAD_CONTEXT, new ReloadContextAction(stateManager));
register.addAction(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, new RecalculateWorkspaceAction(workspace));
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -21,18 +21,6 @@
package org.ourproject.kune.workspace.client;
public interface WorkspaceEvents {
- public static final String ONLY_CHECK_USER_SESSION = "ws_OnlyCheckUserSession";
- public static final String REQ_JOIN_GROUP = "ws.RequestJoinGroup";
- public static final String DEL_MEMBER = "ws.DeleteMember";
- public static final String DENY_JOIN_GROUP = "ws.DenyJoinGroup";
- public static final String ACCEPT_JOIN_GROUP = "ws.AcceptJoinGroup";
- public static final String SET_COLLAB_AS_ADMIN = "ws.SetMemberAsAsmin";
- public static final String SET_ADMIN_AS_COLLAB = "ws.SetMemberAsCollab";
- public static final String ADD_ADMIN_MEMBER = "ws.AddAdminMember";
- public static final String ADD_COLLAB_MEMBER = "ws.AddCollabMember";
- public static final String ADD_VIEWER_MEMBER = "ws.AddViewerMember";
- public static final String UNJOIN_GROUP = "ws.UnJoinGroup";
- public static final String CHANGE_GROUP_WSTHEME = "ws.ChangeGroupWsTheme";
public static final String RATE_CONTENT = "ws.RateContent";
public static final String ENABLE_RATEIT = "ws.EnableRateIt";
public static final String DISABLE_RATEIT = "ws.DisableRateIt";
@@ -43,7 +31,6 @@
public static final String SHOW_SEARCHER = "ws.ShowSearcher";
public static final String GET_TRANSLATION = "i18n.GetTranslation";
public static final String DO_TRANSLATION = "i18n.doTranslation";
- public static final String CREATE_NEW_GROUP = "ws.CreateNewGroup";
public static final String RELOAD_CONTEXT = "ws.ReoloadContext";
public static final String WS_SPLITTER_STARTRESIZING = "ws.SplitterStartResizing";
public static final String WS_SPLITTER_STOPRESIZING = "ws.SplitterStopResizing";
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -48,9 +48,6 @@
import org.ourproject.kune.workspace.client.socialnet.UserLiveSearchPresenter;
import org.ourproject.kune.workspace.client.socialnet.ui.GroupLiveSearchPanel;
import org.ourproject.kune.workspace.client.socialnet.ui.UserLiveSearchPanel;
-import org.ourproject.kune.workspace.client.theme.ThemeMenuPanel;
-import org.ourproject.kune.workspace.client.theme.ThemeMenuPresenter;
-import org.ourproject.kune.workspace.client.theme.ThemeMenuView;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItems;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItemsPanel;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItemsPresenter;
@@ -67,7 +64,6 @@
import org.ourproject.kune.workspace.client.workspace.ContentToolBarPresenter;
import org.ourproject.kune.workspace.client.workspace.ContentToolBarView;
import org.ourproject.kune.workspace.client.workspace.GroupLiveSearchComponent;
-import org.ourproject.kune.workspace.client.workspace.ThemeMenuComponent;
import org.ourproject.kune.workspace.client.workspace.UserLiveSearchComponent;
import org.ourproject.kune.workspace.client.workspace.Workspace;
import org.ourproject.kune.workspace.client.workspace.WorkspacePresenter;
@@ -82,7 +78,6 @@
private static Session session;
private static I18nTranslationService i18n;
- private static ColorTheme colorTheme;
private static KuneErrorHandler errorHandler;
public static ContentBottomToolBarComponent createContentBottomToolBarComponent() {
@@ -161,13 +156,6 @@
return presenter;
}
- public static ThemeMenuComponent createThemeMenuComponent() {
- final ThemeMenuPresenter presenter = new ThemeMenuPresenter();
- final ThemeMenuView view = new ThemeMenuPanel(presenter, i18n, colorTheme);
- presenter.init(view);
- return presenter;
- }
-
public static UserLiveSearchComponent createUserLiveSearchComponent() {
final UserLiveSearchPresenter presenter = new UserLiveSearchPresenter();
final EntityLiveSearchView view = new UserLiveSearchPanel(presenter, i18n);
@@ -180,7 +168,6 @@
final ColorTheme colorTheme, final KuneErrorHandler errorHandler) {
WorkspaceFactory.session = session;
WorkspaceFactory.i18n = i18n;
- WorkspaceFactory.colorTheme = colorTheme;
WorkspaceFactory.errorHandler = errorHandler;
final WorkspacePresenter workspace = new WorkspacePresenter(session);
final WorkspaceView view = new WorkspacePanel(workspace, i18n, colorTheme);
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/ChangeGroupWsThemeAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/ChangeGroupWsThemeAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/ChangeGroupWsThemeAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,57 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.GroupService;
-import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-public class ChangeGroupWsThemeAction implements Action<String> {
-
- private final Workspace workspace;
- private final Session session;
-
- public ChangeGroupWsThemeAction(final Session session, final Workspace workspace) {
- this.session = session;
- this.workspace = workspace;
- }
-
- public void execute(final String theme) {
- onChangeGroupWsTheme(theme);
- }
-
- private void onChangeGroupWsTheme(final String theme) {
- Site.showProgressProcessing();
- final GroupServiceAsync server = GroupService.App.getInstance();
- server.changeGroupWsTheme(session.getUserHash(), session.getCurrentState().getGroup().getShortName(), theme,
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- workspace.setTheme(theme);
- Site.hideProgress();
- }
- });
-
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/CreateNewGroupAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/CreateNewGroupAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/CreateNewGroupAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,48 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.rpc.GroupService;
-import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.rpc.ParamCallback;
-import org.ourproject.kune.platf.client.state.Session;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class CreateNewGroupAction implements Action<ParamCallback<GroupDTO, StateToken>> {
-
- private final Session session;
-
- public CreateNewGroupAction(final Session session) {
- this.session = session;
- }
-
- public void execute(final ParamCallback<GroupDTO, StateToken> paramCall) {
- onNewGroup(paramCall.getParam(), paramCall.getCallback());
- }
-
- private void onNewGroup(final GroupDTO group, final AsyncCallback<StateToken> callback) {
- GroupServiceAsync groupService = GroupService.App.getInstance();
- groupService.createNewGroup(session.getUserHash(), group, callback);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/OnlyCheckUserSessionAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/OnlyCheckUserSessionAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/OnlyCheckUserSessionAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,44 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class OnlyCheckUserSessionAction implements Action<AsyncCallback<Object>> {
- private final Session session;
-
- public OnlyCheckUserSessionAction(final Session session) {
- this.session = session;
- }
-
- public void execute(final AsyncCallback<Object> value) {
- onOnlyCheckUserSession(value);
- }
-
- private void onOnlyCheckUserSession(final AsyncCallback<Object> callback) {
- UserServiceAsync server = UserService.App.getInstance();
- server.onlyCheckSession(session.getUserHash(), callback);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AcceptJoinGroupAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AcceptJoinGroupAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AcceptJoinGroupAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,68 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-public class AcceptJoinGroupAction implements Action<String> {
-
- private final StateManager stateManager;
- private final Workspace workspace;
- private final Session session;
- private final I18nTranslationService i18n;
-
- @Deprecated
- public AcceptJoinGroupAction(final Session session, final StateManager stateManager, final Workspace workspace,
- final I18nTranslationService i18n) {
- this.session = session;
- this.workspace = workspace;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final String groupShortName) {
- onAcceptJoinGroup(groupShortName);
- }
-
- private void onAcceptJoinGroup(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.AcceptJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member accepted"));
- stateManager.setSocialNetwork(result);
- // FIXME
- // workspace.getGroupMembersComponent().showCollabs();
- }
- });
-
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddAdminAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddAdminAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddAdminAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,67 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-@Deprecated
-public class AddAdminAction implements Action<String> {
-
- private final Workspace workspace;
- private final StateManager stateManager;
- private final Session session;
- private final I18nTranslationService i18n;
-
- public AddAdminAction(final Session session, final StateManager stateManager, final Workspace workspace,
- final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.workspace = workspace;
- this.i18n = i18n;
- }
-
- public void execute(final String groupShortName) {
- onAddAdmin(groupShortName);
- }
-
- private void onAddAdmin(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.addAdminMember(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member added as admin"));
- stateManager.setSocialNetwork(result);
- // workspace.getGroupMembersComponent().showAdmins();
- }
- });
-
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddCollabAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddCollabAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddCollabAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,66 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-@Deprecated
-public class AddCollabAction implements Action<String> {
-
- private final Session session;
- private final StateManager stateManager;
- private final Workspace workspace;
- private final I18nTranslationService i18n;
-
- public AddCollabAction(final Session session, final StateManager stateManager, final Workspace workspace,
- final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.workspace = workspace;
- this.i18n = i18n;
- }
-
- public void execute(final String groupShortName) {
- onAddCollab(groupShortName);
- }
-
- private void onAddCollab(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.addCollabMember(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member added as collaborator"));
- stateManager.setSocialNetwork(result);
- // workspace.getGroupMembersComponent().showCollabs();
- }
- });
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddViewerAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddViewerAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddViewerAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,61 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-public class AddViewerAction implements Action<String> {
-
- private final Session session;
- private final StateManager stateManager;
- private final I18nTranslationService i18n;
-
- public AddViewerAction(final Session session, final StateManager stateManager, final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final String groupShortName) {
- onAddViewer(groupShortName);
- }
-
- private void onAddViewer(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.addViewerMember(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member can now view this group contents"));
- stateManager.setSocialNetwork(result);
- }
- });
-
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DeleteMemberAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DeleteMemberAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DeleteMemberAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,63 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-public class DeleteMemberAction implements Action<String> {
- private final Session session;
- private final StateManager stateManager;
- private final I18nTranslationService i18n;
-
- public DeleteMemberAction(final Session session, final StateManager stateManager, final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final String value) {
- onDeleteMember(value);
- }
-
- private void onDeleteMember(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.deleteMember(session.getUserHash(), session.getCurrentState().getGroup().getShortName(), groupShortName,
- new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member removed"));
- stateManager.reload();
- // in the future, only if I cannot be affected:
- // services.stateManager.reloadSocialNetwork((SocialNetworkResultDTO)
- // result);
- }
- });
-
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DenyJoinGroupAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DenyJoinGroupAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DenyJoinGroupAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,60 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-public class DenyJoinGroupAction implements Action<String> {
-
- private final Session session;
- private final StateManager stateManager;
- private final I18nTranslationService i18n;
-
- public DenyJoinGroupAction(final Session session, final StateManager stateManager, final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final String value) {
- onDenyJoinGroup(value);
- }
-
- private void onDenyJoinGroup(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.denyJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member rejected"));
- stateManager.setSocialNetwork(result);
- }
- });
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/RequestJoinGroupAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/RequestJoinGroupAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/RequestJoinGroupAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,72 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-@SuppressWarnings("unchecked")
-public class RequestJoinGroupAction implements Action {
-
- private final Session session;
- private final StateManager stateManager;
- private final I18nTranslationService i18n;
-
- public RequestJoinGroupAction(final Session session, final StateManager stateManager,
- final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final Object value) {
- onRequestJoinGroup();
- }
-
- private void onRequestJoinGroup() {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.requestJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- Site.hideProgress();
- final String resultType = (String) result;
- if (resultType == SocialNetworkDTO.REQ_JOIN_ACEPTED) {
- Site.info(i18n.t("You are now member of this group"));
- stateManager.reload();
- }
- if (resultType == SocialNetworkDTO.REQ_JOIN_DENIED) {
- Site.important(i18n.t("Sorry this is a closed group"));
- }
- if (resultType == SocialNetworkDTO.REQ_JOIN_WAITING_MODERATION) {
- Site.info(i18n.t("Requested. Waiting for admins decision"));
- }
- }
- });
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetAdminAsCollabAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetAdminAsCollabAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetAdminAsCollabAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,66 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-@Deprecated
-public class SetAdminAsCollabAction implements Action<String> {
-
- private final Session session;
- private final StateManager stateManager;
- private final Workspace workspace;
- private final I18nTranslationService i18n;
-
- public SetAdminAsCollabAction(final Session session, final StateManager stateManager, final Workspace workspace,
- final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.workspace = workspace;
- this.i18n = i18n;
- }
-
- public void execute(final String value) {
- onSetAdminAsCollab(value);
- }
-
- private void onSetAdminAsCollab(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.setAdminAsCollab(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Type of member changed"));
- stateManager.reload();
- // workspace.getGroupMembersComponent().showCollabs();
- }
- });
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetCollabAsAdminAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetCollabAsAdminAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetCollabAsAdminAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,68 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-@Deprecated
-public class SetCollabAsAdminAction implements Action<String> {
-
- private final Session session;
- private final StateManager stateManager;
- private final Workspace workspace;
- private final I18nTranslationService i18n;
-
- public SetCollabAsAdminAction(final Session session, final StateManager stateManager, final Workspace workspace,
- final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.workspace = workspace;
- this.i18n = i18n;
- }
-
- public void execute(final String value) {
- onSetCollabAsAdmin(value);
- }
-
- private void onSetCollabAsAdmin(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.setCollabAsAdmin(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Type of member changed"));
- stateManager.setSocialNetwork(result);
- // workspace.getGroupMembersComponent().showAdmins();
- // workspace.getGroupMembersComponent().showAdmins();
- }
- });
-
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/UnJoinGroupAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/UnJoinGroupAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/UnJoinGroupAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,62 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-public class UnJoinGroupAction implements Action<String> {
- private final Session session;
- private final StateManager stateManager;
- private final I18nTranslationService i18n;
-
- public UnJoinGroupAction(final Session session, final StateManager stateManager, final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final String value) {
- onUnJoinGroup(value);
- }
-
- private void onUnJoinGroup(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.unJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Removed as member"));
- stateManager.reload();
- // in the future with user info:
- // services.stateManager.reloadSocialNetwork((SocialNetworkResultDTO)
- // result);
- }
- });
- }
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -57,171 +57,171 @@
private final RadioButton nonCommercialRB;
private final I18nTranslationService i18n;
- public LicenseChoosePanel(final List<LicenseDTO> nonCCLicenses, final LicenseChoosePresenter presenter,
- final I18nTranslationService i18n) {
- this.i18n = i18n;
- Images img = Images.App.getInstance();
+ public LicenseChoosePanel(final LicenseChoosePresenter presenter, final I18nTranslationService i18n) {
+ this.i18n = i18n;
+ final Images img = Images.App.getInstance();
- VerticalPanel generalVP = new VerticalPanel();
- initWidget(generalVP);
+ final VerticalPanel generalVP = new VerticalPanel();
+ initWidget(generalVP);
- VerticalPanel licenseTypesVP = new VerticalPanel();
- ccRB = new RadioButton("ccOrNot", i18n.t("Creative Commons"));
- RadioButton notCcRB = new RadioButton("ccOrNot", i18n.t("Others licenses"));
- options = new DeckPanel();
- ccIntro = new Label(
- i18n
- .t("With a Creative Commons license, you keep your copyright but allow people to copy and distribute your work provided they give you credit — and only on the conditions you specify here. What do you want to do?"));
+ final VerticalPanel licenseTypesVP = new VerticalPanel();
+ ccRB = new RadioButton("ccOrNot", i18n.t("Creative Commons"));
+ final RadioButton notCcRB = new RadioButton("ccOrNot", i18n.t("Others licenses"));
+ options = new DeckPanel();
+ ccIntro = new Label(
+ i18n
+ .t("With a Creative Commons license, you keep your copyright but allow people to copy and distribute your work provided they give you credit — and only on the conditions you specify here. What do you want to do?"));
- otherLicenses = new ListBox();
- VerticalPanel ccOptionsVP = new VerticalPanel();
- VerticalPanel nonCcOptionsVP = new VerticalPanel();
+ otherLicenses = new ListBox();
+ final VerticalPanel ccOptionsVP = new VerticalPanel();
+ final VerticalPanel nonCcOptionsVP = new VerticalPanel();
- Label comercialLabel = new Label(i18n.t("Allow commercial uses of your work?"));
- commercialRB = new RadioButton("comercial", i18n.t("Yes"));
- nonCommercialRB = new RadioButton("comercial", i18n.t("No"));
- Label allowModifLabel = new Label(i18n.t("Allow modifications of your work?"));
- allowModifRB = new RadioButton("allowModif", i18n.t("Yes"));
- allowModifShareAlikeRB = new RadioButton("allowModif", i18n.t("Yes, as long as others share alike"));
- noModifRB = new RadioButton("allowModif", i18n.t("No"));
- generalVP.add(licenseTypesVP);
- licenseTypesVP.add(ccRB);
- licenseTypesVP.add(notCcRB);
+ final Label comercialLabel = new Label(i18n.t("Allow commercial uses of your work?"));
+ commercialRB = new RadioButton("comercial", i18n.t("Yes"));
+ nonCommercialRB = new RadioButton("comercial", i18n.t("No"));
+ final Label allowModifLabel = new Label(i18n.t("Allow modifications of your work?"));
+ allowModifRB = new RadioButton("allowModif", i18n.t("Yes"));
+ allowModifShareAlikeRB = new RadioButton("allowModif", i18n.t("Yes, as long as others share alike"));
+ noModifRB = new RadioButton("allowModif", i18n.t("No"));
+ generalVP.add(licenseTypesVP);
+ licenseTypesVP.add(ccRB);
+ licenseTypesVP.add(notCcRB);
- copyleft = new IconLabel(img.copyleft(), i18n.t("This is a copyleft license"), false);
- nonCopyleft = new IconLabel(img.noCopyleft(), i18n.t("This is not a copyleft license"), false);
- nonCopyleft.setVisible(false);
+ copyleft = new IconLabel(img.copyleft(), i18n.t("This is a copyleft license"), false);
+ nonCopyleft = new IconLabel(img.noCopyleft(), i18n.t("This is not a copyleft license"), false);
+ nonCopyleft.setVisible(false);
- generalVP.add(options);
+ generalVP.add(options);
- // Options
+ // Options
- optionsBox = new TitledPanel(i18n.t("Options"), options);
- generalVP.add(optionsBox);
- generalVP.add(nonCopyleft);
- generalVP.add(copyleft);
+ optionsBox = new TitledPanel(i18n.t("Options"), options);
+ generalVP.add(optionsBox);
+ generalVP.add(nonCopyleft);
+ generalVP.add(copyleft);
- ccOptionsVP.add(ccIntro);
- ccOptionsVP.add(comercialLabel);
- ccOptionsVP.add(commercialRB);
- ccOptionsVP.add(nonCommercialRB);
- ccOptionsVP.add(new HorizontalLine());
- ccOptionsVP.add(allowModifLabel);
- ccOptionsVP.add(allowModifRB);
- ccOptionsVP.add(allowModifShareAlikeRB);
- ccOptionsVP.add(noModifRB);
+ ccOptionsVP.add(ccIntro);
+ ccOptionsVP.add(comercialLabel);
+ ccOptionsVP.add(commercialRB);
+ ccOptionsVP.add(nonCommercialRB);
+ ccOptionsVP.add(new HorizontalLine());
+ ccOptionsVP.add(allowModifLabel);
+ ccOptionsVP.add(allowModifRB);
+ ccOptionsVP.add(allowModifShareAlikeRB);
+ ccOptionsVP.add(noModifRB);
- nonCcOptionsVP.add(otherLicenses);
+ nonCcOptionsVP.add(otherLicenses);
- options.add(ccOptionsVP);
- options.add(nonCcOptionsVP);
- options.showWidget(0);
+ options.add(ccOptionsVP);
+ options.add(nonCcOptionsVP);
+ options.showWidget(0);
- comercialLabel.addStyleName("kune-License-CC-Header");
- allowModifLabel.addStyleName("kune-License-CC-Header");
- nonCommercialRB.addStyleName("kune-Margin-Large-lr");
- commercialRB.addStyleName("kune-Margin-Large-lr");
- allowModifRB.addStyleName("kune-Margin-Large-lr");
- allowModifShareAlikeRB.addStyleName("kune-Margin-Large-lr");
- noModifRB.addStyleName("kune-Margin-Large-lr");
- optionsBox.addStyleName("kune-Margin-Medium-t");
- otherLicenses.addStyleName("kune-Margin-Large-trbl");
- generalVP.addStyleName("kune-Default-Form");
- copyleft.addStyleName("kune-Margin-Medium-t");
- nonCopyleft.addStyleName("kune-Margin-Medium-t");
+ comercialLabel.addStyleName("kune-License-CC-Header");
+ allowModifLabel.addStyleName("kune-License-CC-Header");
+ nonCommercialRB.addStyleName("kune-Margin-Large-lr");
+ commercialRB.addStyleName("kune-Margin-Large-lr");
+ allowModifRB.addStyleName("kune-Margin-Large-lr");
+ allowModifShareAlikeRB.addStyleName("kune-Margin-Large-lr");
+ noModifRB.addStyleName("kune-Margin-Large-lr");
+ optionsBox.addStyleName("kune-Margin-Medium-t");
+ otherLicenses.addStyleName("kune-Margin-Large-trbl");
+ generalVP.addStyleName("kune-Default-Form");
+ copyleft.addStyleName("kune-Margin-Medium-t");
+ nonCopyleft.addStyleName("kune-Margin-Medium-t");
- ccRB.addClickListener(new ClickListener() {
- public void onClick(final Widget arg0) {
- showCCoptions();
- presenter.onChange();
- }
- });
+ ccRB.addClickListener(new ClickListener() {
+ public void onClick(final Widget arg0) {
+ showCCoptions();
+ presenter.onChange();
+ }
+ });
- notCcRB.addClickListener(new ClickListener() {
- public void onClick(final Widget arg0) {
- showNotCCoptions();
- presenter.onChange();
- }
- });
+ notCcRB.addClickListener(new ClickListener() {
+ public void onClick(final Widget arg0) {
+ showNotCCoptions();
+ presenter.onChange();
+ }
+ });
- for (int i = 0; i < nonCCLicenses.size(); i++) {
- String licenseDescrip = nonCCLicenses.get(i).getLongName();
- otherLicenses.addItem(licenseDescrip);
- }
- if (nonCCLicenses.size() > 0) {
- otherLicenses.setItemSelected(0, true);
- otherLicenses.setVisibleItemCount(1);
- }
+ final List<LicenseDTO> nonCCLicenses = presenter.getNonCCLicenses();
+ for (int i = 0; i < nonCCLicenses.size(); i++) {
+ final String licenseDescrip = nonCCLicenses.get(i).getLongName();
+ otherLicenses.addItem(licenseDescrip);
+ }
+ if (nonCCLicenses.size() > 0) {
+ otherLicenses.setItemSelected(0, true);
+ otherLicenses.setVisibleItemCount(1);
+ }
- configureListeners(presenter);
+ configureListeners(presenter);
}
public int getSelectedNonCCLicenseIndex() {
- return otherLicenses.getSelectedIndex();
+ return otherLicenses.getSelectedIndex();
}
public boolean isAllowModif() {
- return allowModifRB.isChecked();
+ return allowModifRB.isChecked();
}
public boolean isAllowModifShareAlike() {
- return allowModifShareAlikeRB.isChecked();
+ return allowModifShareAlikeRB.isChecked();
}
public boolean isCCselected() {
- return ccRB.isChecked();
+ return ccRB.isChecked();
}
public boolean permitComercial() {
- return commercialRB.isChecked();
+ return commercialRB.isChecked();
}
public void reset() {
- options.showWidget(0);
- ccRB.setChecked(true);
- commercialRB.setChecked(true);
- allowModifShareAlikeRB.setChecked(true);
+ options.showWidget(0);
+ ccRB.setChecked(true);
+ commercialRB.setChecked(true);
+ allowModifShareAlikeRB.setChecked(true);
}
public void showCCoptions() {
- options.showWidget(0);
- optionsBox.setTitle(i18n.t("Options"));
+ options.showWidget(0);
+ optionsBox.setTitle(i18n.t("Options"));
}
public void showIsCopyleft() {
- nonCopyleft.setVisible(false);
- copyleft.setVisible(true);
+ nonCopyleft.setVisible(false);
+ copyleft.setVisible(true);
}
public void showIsNotCopyleft() {
- nonCopyleft.setVisible(true);
- copyleft.setVisible(false);
+ nonCopyleft.setVisible(true);
+ copyleft.setVisible(false);
}
public void showNotCCoptions() {
- options.showWidget(1);
- optionsBox.setTitle(i18n.t("Select one of these licenses:"));
+ options.showWidget(1);
+ optionsBox.setTitle(i18n.t("Select one of these licenses:"));
}
private void configureListeners(final LicenseChoosePresenter presenter) {
- ChangeListener changeListener = new ChangeListener() {
- public void onChange(final Widget arg0) {
- presenter.onChange();
- }
- };
+ final ChangeListener changeListener = new ChangeListener() {
+ public void onChange(final Widget arg0) {
+ presenter.onChange();
+ }
+ };
- ClickListener clickListener = new ClickListener() {
- public void onClick(final Widget arg0) {
- presenter.onChange();
- }
- };
- otherLicenses.addChangeListener(changeListener);
- ccRB.addClickListener(clickListener);
- allowModifRB.addClickListener(clickListener);
- commercialRB.addClickListener(clickListener);
- nonCommercialRB.addClickListener(clickListener);
- allowModifShareAlikeRB.addClickListener(clickListener);
- noModifRB.addClickListener(clickListener);
+ final ClickListener clickListener = new ClickListener() {
+ public void onClick(final Widget arg0) {
+ presenter.onChange();
+ }
+ };
+ otherLicenses.addChangeListener(changeListener);
+ ccRB.addClickListener(clickListener);
+ allowModifRB.addClickListener(clickListener);
+ commercialRB.addClickListener(clickListener);
+ nonCommercialRB.addClickListener(clickListener);
+ allowModifShareAlikeRB.addClickListener(clickListener);
+ noModifRB.addClickListener(clickListener);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -19,10 +19,13 @@
*/
package org.ourproject.kune.workspace.client.licensechoose;
+import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
+import org.ourproject.kune.platf.client.state.Session;
import com.allen_sauer.gwt.log.client.Log;
@@ -30,59 +33,68 @@
private LicenseChooseView view;
- private List<LicenseDTO> licenses;
+ private final List<LicenseDTO> licenses;
- private List<LicenseDTO> licensesNonCCList;
+ private final List<LicenseDTO> licensesNonCCList;
- public LicenseChoosePresenter() {
+ public LicenseChoosePresenter(final Session session) {
+ licensesNonCCList = new ArrayList<LicenseDTO>();
+ licenses = session.getLicenses();
+ for (final Iterator<LicenseDTO> iterator = licenses.iterator(); iterator.hasNext();) {
+ final LicenseDTO license = iterator.next();
+ if (!license.isCC()) {
+ licensesNonCCList.add(license);
+ }
+ }
}
- public void init(final LicenseChooseView view, final List<LicenseDTO> licenses,
- final List<LicenseDTO> licensesNonCCList) {
- this.view = view;
- this.licenses = licenses;
- this.licensesNonCCList = licensesNonCCList;
- this.view.reset();
- }
-
public LicenseDTO getLicense() {
- String licenseShortName;
+ String licenseShortName;
- if (view.isCCselected()) {
- if (view.permitComercial()) {
- licenseShortName = view.isAllowModif() ? "by" : view.isAllowModifShareAlike() ? "by-sa" : "by-nd";
- } else {
- licenseShortName = view.isAllowModif() ? "by-nc" : view.isAllowModifShareAlike() ? "by-nc-sa"
- : "by-nc-nd";
- }
- } else {
- licenseShortName = licensesNonCCList.get(view.getSelectedNonCCLicenseIndex()).getShortName();
- }
- return getLicenseFromShortName(licenseShortName);
+ if (view.isCCselected()) {
+ if (view.permitComercial()) {
+ licenseShortName = view.isAllowModif() ? "by" : view.isAllowModifShareAlike() ? "by-sa" : "by-nd";
+ } else {
+ licenseShortName = view.isAllowModif() ? "by-nc" : view.isAllowModifShareAlike() ? "by-nc-sa"
+ : "by-nc-nd";
+ }
+ } else {
+ licenseShortName = licensesNonCCList.get(view.getSelectedNonCCLicenseIndex()).getShortName();
+ }
+ return getLicenseFromShortName(licenseShortName);
}
- private LicenseDTO getLicenseFromShortName(final String shortName) {
- for (int i = 0; i < licenses.size(); i++) {
- LicenseDTO licenseDTO = licenses.get(i);
- if (licenseDTO.getShortName().equals(shortName)) {
- return licenseDTO;
- }
- }
- Log.error("Internal error: License not found");
- throw new IndexOutOfBoundsException("License not found");
+ public List<LicenseDTO> getNonCCLicenses() {
+ return licensesNonCCList;
}
public View getView() {
- return view;
+ return view;
}
+ public void init(final LicenseChooseView view) {
+ this.view = view;
+ this.view.reset();
+ }
+
public void onChange() {
- LicenseDTO licenseDTO = getLicense();
- if (licenseDTO.isCopyleft()) {
- view.showIsCopyleft();
- } else {
- view.showIsNotCopyleft();
- }
+ final LicenseDTO licenseDTO = getLicense();
+ if (licenseDTO.isCopyleft()) {
+ view.showIsCopyleft();
+ } else {
+ view.showIsNotCopyleft();
+ }
}
+ private LicenseDTO getLicenseFromShortName(final String shortName) {
+ for (int i = 0; i < licenses.size(); i++) {
+ final LicenseDTO licenseDTO = licenses.get(i);
+ if (licenseDTO.getShortName().equals(shortName)) {
+ return licenseDTO;
+ }
+ }
+ Log.error("Internal error: License not found");
+ throw new IndexOutOfBoundsException("License not found");
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroup.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroup.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroup.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -19,10 +19,10 @@
*/
package org.ourproject.kune.workspace.client.newgroup;
-import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.StateToken;
public interface NewGroup {
- public View getView();
+ void doNewGroup(StateToken previousToken);
}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupListener.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupListener.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupListener.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,32 +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.workspace.client.newgroup;
-
-import org.ourproject.kune.platf.client.dto.StateToken;
-
-public interface NewGroupListener {
-
- void onNewGroupCancel();
-
- void onNewGroupClose();
-
- void onNewGroupCreated(StateToken homePage);
-
-}
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-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -20,127 +20,142 @@
package org.ourproject.kune.workspace.client.newgroup;
import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.errors.GroupNameInUseException;
-import org.ourproject.kune.platf.client.rpc.ParamCallback;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+import com.calclab.suco.client.container.Provider;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
public class NewGroupPresenter implements NewGroup {
- private final NewGroupListener listener;
private NewGroupView view;
private final I18nTranslationService i18n;
+ private StateToken previousToken;
+ private final Session session;
+ private final StateManager stateManager;
+ private final Provider<GroupServiceAsync> groupServiceProvider;
- public NewGroupPresenter(final NewGroupListener listener, final I18nTranslationService i18n) {
- this.listener = listener;
- this.i18n = i18n;
+ public NewGroupPresenter(final I18nTranslationService i18n, final Session session, final StateManager stateManager,
+ final Provider<GroupServiceAsync> groupServiceProvider) {
+ this.i18n = i18n;
+ this.session = session;
+ this.stateManager = stateManager;
+ this.groupServiceProvider = groupServiceProvider;
}
+ public void doNewGroup(final StateToken previousTokenOrig) {
+ previousToken = previousTokenOrig;
+ session.check(new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ if (session.isLogged()) {
+ Site.showProgressProcessing();
+ view.show();
+ view.center();
+ } else {
+ stateManager.setState(previousTokenOrig);
+ Site.info(i18n.t("Sign in or register to create a group"));
+ }
+ }
+ });
+ }
+
public View getView() {
- return view;
+ return view;
}
public void init(final NewGroupView view) {
- this.view = view;
+ this.view = view;
}
public void onBack() {
- view.setEnabledBackButton(false);
- view.setEnabledFinishButton(false);
- view.setEnabledNextButton(true);
- view.showNewGroupInitialDataForm();
+ view.setEnabledBackButton(false);
+ view.setEnabledFinishButton(false);
+ view.setEnabledNextButton(true);
+ view.showNewGroupInitialDataForm();
}
public void onCancel() {
- listener.onNewGroupCancel();
- view.hide();
- reset();
+ view.hide();
+ reset();
+ stateManager.setState(previousToken);
}
- public void onChange() {
- // This doesn't work perfect (don't use now):
- // if (view.isFormValid()) {
- // view.setEnabledNextButton(true);
- // } else {
- // view.setEnabledNextButton(false);
- // }
- }
-
public void onClose() {
- listener.onNewGroupClose();
- reset();
+ reset();
+ stateManager.setState(previousToken);
}
public void onFinish() {
- view.maskProcessing();
- final String shortName = view.getShortName();
- final String longName = view.getLongName();
- final String publicDesc = view.getPublicDesc();
- final LicenseDTO license = view.getLicense();
- final GroupDTO group = new GroupDTO(shortName, longName, publicDesc, getTypeOfGroup());
- group.setDefaultLicense(license);
+ view.maskProcessing();
+ final String shortName = view.getShortName();
+ final String longName = view.getLongName();
+ final String publicDesc = view.getPublicDesc();
+ final LicenseDTO license = view.getLicense();
+ final GroupDTO group = new GroupDTO(shortName, longName, publicDesc, getTypeOfGroup());
+ group.setDefaultLicense(license);
- final AsyncCallback<StateToken> callback = new AsyncCallback<StateToken>() {
- public void onFailure(final Throwable caught) {
- try {
- throw caught;
- } catch (final GroupNameInUseException e) {
- onBack();
- view.unMask();
- setMessage(i18n.t("This name in already in use, try with a different name."), SiteErrorType.error);
- } catch (final Throwable e) {
- onBack(); // The messageP is in first page of wizard :-/
- view.unMask();
- setMessage(i18n.t("Error creating group"), SiteErrorType.error);
- GWT.log("Other kind of exception in group registration", null);
- throw new RuntimeException();
- }
- }
+ final AsyncCallback<StateToken> callback = new AsyncCallback<StateToken>() {
+ public void onFailure(final Throwable caught) {
+ try {
+ throw caught;
+ } catch (final GroupNameInUseException e) {
+ onBack();
+ view.unMask();
+ setMessage(i18n.t("This name in already in use, try with a different name."), SiteErrorType.error);
+ } catch (final Throwable e) {
+ onBack(); // The messageP is in first page of wizard :-/
+ view.unMask();
+ setMessage(i18n.t("Error creating group"), SiteErrorType.error);
+ GWT.log("Other kind of exception in group registration", null);
+ throw new RuntimeException();
+ }
+ }
- public void onSuccess(final StateToken token) {
- listener.onNewGroupCreated(token);
- view.hide();
- reset();
- view.unMask();
- }
- };
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.CREATE_NEW_GROUP,
- new ParamCallback<GroupDTO, StateToken>(group, callback));
+ public void onSuccess(final StateToken token) {
+ stateManager.setState(token);
+ view.hide();
+ reset();
+ view.unMask();
+ }
+ };
+ groupServiceProvider.get().createNewGroup(session.getUserHash(), group, callback);
}
public void onNext() {
- if (view.isFormValid()) {
- view.setEnabledBackButton(true);
- view.setEnabledFinishButton(true);
- view.setEnabledNextButton(false);
- view.showLicenseForm();
- }
+ if (view.isFormValid()) {
+ view.setEnabledBackButton(true);
+ view.setEnabledFinishButton(true);
+ view.setEnabledNextButton(false);
+ view.showLicenseForm();
+ }
}
public void setMessage(final String message, final SiteErrorType type) {
- view.setMessage(message, type);
+ view.setMessage(message, type);
}
private String getTypeOfGroup() {
- if (view.isProject()) {
- return GroupDTO.PROJECT;
- } else if (view.isOrphanedProject()) {
- return GroupDTO.ORPHANED_PROJECT;
- } else if (view.isOrganization()) {
- return GroupDTO.ORGANIZATION;
- } else {
- return GroupDTO.COMMUNITY;
- }
+ if (view.isProject()) {
+ return GroupDTO.PROJECT;
+ } else if (view.isOrphanedProject()) {
+ return GroupDTO.ORPHANED_PROJECT;
+ } else if (view.isOrganization()) {
+ return GroupDTO.ORGANIZATION;
+ } else {
+ return GroupDTO.COMMUNITY;
+ }
}
private void reset() {
- view.clearData();
+ view.clearData();
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -25,6 +25,8 @@
public interface NewGroupView extends View {
+ void center();
+
void clearData();
LicenseDTO getLicense();
@@ -59,6 +61,8 @@
void setMessage(String message, SiteErrorType type);
+ void show();
+
void showLicenseForm();
void showNewGroupInitialDataForm();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -30,9 +30,9 @@
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePanel;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
import org.ourproject.kune.workspace.client.newgroup.NewGroupView;
-import org.ourproject.kune.workspace.client.sitebar.SiteBarFactory;
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessagePanel;
+import com.calclab.suco.client.container.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;
@@ -49,7 +49,6 @@
import com.gwtext.client.widgets.form.Radio;
import com.gwtext.client.widgets.form.TextArea;
import com.gwtext.client.widgets.form.TextField;
-import com.gwtext.client.widgets.form.event.TextFieldListenerAdapter;
import com.gwtext.client.widgets.layout.FitLayout;
public class NewGroupPanel extends WizardDialog implements NewGroupView {
@@ -70,12 +69,13 @@
private TextField longNameField;
private TextArea publicDescField;
private final DeckPanel deck;
- private LicenseChoose licenseChoosePanel;
+ private final LicenseChoose licenseChoosePanel;
private final SiteMessagePanel messagesPanel;
private final I18nUITranslationService i18n;
private TextField tags;
- public NewGroupPanel(final NewGroupPresenter presenter, final I18nUITranslationService i18n) {
+ public NewGroupPanel(final NewGroupPresenter presenter, final I18nUITranslationService i18n,
+ final Provider<LicenseChoose> licenseChooseProvider) {
super(i18n.t("Register a new Group"), true, false, 460, 480, new WizardListener() {
public void onBack() {
presenter.onBack();
@@ -103,7 +103,7 @@
centerPanel.setLayout(new FitLayout());
deck = new DeckPanel();
newGroupInitialDataForm = createNewGroupInitialDataForm(presenter);
- createChooseLicensePanel();
+ licenseChoosePanel = licenseChooseProvider.get();
final VerticalPanel newGroupInitialDataVP = new VerticalPanel();
final HorizontalPanel newGroupInitialDataHP = new HorizontalPanel();
final VerticalPanel chooseLicenseVP = new VerticalPanel();
@@ -212,10 +212,6 @@
deck.showWidget(0);
}
- private void createChooseLicensePanel() {
- licenseChoosePanel = SiteBarFactory.createLicenseChoose();
- }
-
private FormPanel createNewGroupInitialDataForm(final NewGroupPresenter presenter) {
final FormPanel form = new FormPanel();
form.setBorder(false);
@@ -302,24 +298,6 @@
groupTypeFieldSet.setCollapsible(false);
- shortNameField.addListener(new TextFieldListenerAdapter() {
- public void onChange(final Field field, final Object newVal, final Object oldVal) {
- presenter.onChange();
- }
- });
-
- longNameField.addListener(new TextFieldListenerAdapter() {
- public void onChange(final Field field, final Object newVal, final Object oldVal) {
- presenter.onChange();
- }
- });
-
- publicDescField.addListener(new TextFieldListenerAdapter() {
- public void onChange(final Field field, final Object newVal, final Object oldVal) {
- presenter.onChange();
- }
- });
-
return form;
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -34,11 +34,6 @@
private static SiteProgress progress;
private static Provider<SiteMessage> siteMessageProvider;
- @Deprecated
- public static void doNewGroup(final String returnToken) {
- // sitebar.doNewGroup(returnToken);
- }
-
public static void error(final String value) {
getSiteMessage().setMessage(value, SiteErrorType.error);
}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,70 +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.workspace.client.sitebar;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.ourproject.kune.platf.client.dto.LicenseDTO;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.licensechoose.LicenseChoose;
-import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePanel;
-import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePresenter;
-import org.ourproject.kune.workspace.client.newgroup.NewGroup;
-import org.ourproject.kune.workspace.client.newgroup.NewGroupListener;
-import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
-import org.ourproject.kune.workspace.client.newgroup.ui.NewGroupPanel;
-import org.ourproject.kune.workspace.client.sitebar.login.SignIn;
-
-public class SiteBarFactory {
- private static SignIn login;
- private static NewGroup newGroup;
- private static Session session;
- private static I18nUITranslationService i18n;
-
- public static LicenseChoose createLicenseChoose() {
- final List<LicenseDTO> licensesList = session.getLicenses();
- final List<LicenseDTO> licensesNonCCList = new ArrayList<LicenseDTO>();
-
- for (final Iterator<LicenseDTO> iterator = licensesList.iterator(); iterator.hasNext();) {
- final LicenseDTO license = iterator.next();
- if (!license.isCC()) {
- licensesNonCCList.add(license);
- }
- }
- final LicenseChoosePresenter presenter = new LicenseChoosePresenter();
- final LicenseChoosePanel view = new LicenseChoosePanel(licensesNonCCList, presenter, i18n);
- presenter.init(view, licensesList, licensesNonCCList);
- return presenter;
- }
-
- public static NewGroup getNewGroupForm(final NewGroupListener listener) {
- if (newGroup == null) {
- final NewGroupPresenter presenter = new NewGroupPresenter(listener, i18n);
- final NewGroupPanel view = new NewGroupPanel(presenter, i18n);
- presenter.init(view);
- newGroup = presenter;
- }
- return newGroup;
- }
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -27,10 +27,8 @@
import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.ui.IconLabel;
import org.ourproject.kune.platf.client.ui.RoundedBorderDecorator;
-import org.ourproject.kune.workspace.client.newgroup.NewGroup;
import org.ourproject.kune.workspace.client.newgroup.ui.NewGroupPanel;
import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.sitebar.SiteBarFactory;
import org.ourproject.kune.workspace.client.sitebar.SiteToken;
import org.ourproject.kune.workspace.client.sitebar.login.SignInPanel;
@@ -315,10 +313,6 @@
}
public void showNewGroupDialog() {
- final NewGroup newGroupForm = SiteBarFactory.getNewGroupForm(presenter);
- newGroupPanel = (NewGroupPanel) newGroupForm.getView();
- newGroupPanel.show();
- Site.hideProgress();
}
public void showProgress(final String text) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -25,22 +25,13 @@
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-import org.ourproject.kune.platf.client.errors.SessionExpiredException;
-import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.workspace.client.WorkspaceEvents;
-import org.ourproject.kune.workspace.client.newgroup.NewGroupListener;
import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.rpc.AsyncCallback;
+public class SiteBarPresenter implements SiteBar {
-public class SiteBarPresenter implements SiteBar, NewGroupListener {
-
private SiteBarView view;
private final SiteBarListener listener;
private String previousToken;
@@ -66,51 +57,52 @@
}
public void doLogout() {
- final AsyncCallback<Object> callback = new AsyncCallback<Object>() {
- public void onFailure(final Throwable caught) {
- Site.hideProgress();
- try {
- throw caught;
- } catch (final SessionExpiredException e) {
- clientUILogout();
- } catch (final UserMustBeLoggedException e) {
- clientUILogout();
- } catch (final Throwable e) {
- GWT.log("Other kind of exception in doLogout", null);
- throw new RuntimeException();
- }
- }
-
- public void onSuccess(final Object arg0) {
- Site.hideProgress();
- clientUILogout();
- }
-
- private void clientUILogout() {
- view.restoreLoginLink();
- view.resetOptionsSubmenu();
- view.setLogoutLinkVisible(false);
- listener.onUserLoggedOut();
- }
- };
- UserService.App.getInstance().logout(session.getUserHash(), callback);
+ // final AsyncCallback<Object> callback = new AsyncCallback<Object>() {
+ // public void onFailure(final Throwable caught) {
+ // Site.hideProgress();
+ // try {
+ // throw caught;
+ // } catch (final SessionExpiredException e) {
+ // clientUILogout();
+ // } catch (final UserMustBeLoggedException e) {
+ // clientUILogout();
+ // } catch (final Throwable e) {
+ // GWT.log("Other kind of exception in doLogout", null);
+ // throw new RuntimeException();
+ // }
+ // }
+ //
+ // public void onSuccess(final Object arg0) {
+ // Site.hideProgress();
+ // clientUILogout();
+ // }
+ //
+ // private void clientUILogout() {
+ // view.restoreLoginLink();
+ // view.resetOptionsSubmenu();
+ // view.setLogoutLinkVisible(false);
+ // listener.onUserLoggedOut();
+ // }
+ // };
+ // UserService.App.getInstance().logout(session.getUserHash(),
+ // callback);
}
public void doNewGroup(final String previousTokenOrig) {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.ONLY_CHECK_USER_SESSION,
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- previousToken = previousTokenOrig;
- if (session.isLogged()) {
- Site.showProgressProcessing();
- view.showNewGroupDialog();
- view.centerNewGroupDialog();
- } else {
- returnToPreviousState();
- Site.info(i18n.t("Sign in or register to create a group"));
- }
- }
- });
+ // DefaultDispatcher.getInstance().fire(WorkspaceEvents.ONLY_CHECK_USER_SESSION,
+ // new AsyncCallbackSimple<Object>() {
+ // public void onSuccess(final Object result) {
+ // previousToken = previousTokenOrig;
+ // if (session.isLogged()) {
+ // Site.showProgressProcessing();
+ // view.showNewGroupDialog();
+ // view.centerNewGroupDialog();
+ // } else {
+ // returnToPreviousState();
+ // Site.info(i18n.t("Sign in or register to create a group"));
+ // }
+ // }
+ // });
}
public void doSearch(final String termToSearch) {
@@ -168,17 +160,19 @@
}
public void reloadUserInfo(final String userHash) {
- final UserServiceAsync siteBarService = UserService.App.getInstance();
- siteBarService.reloadUserInfo(userHash, new AsyncCallback<UserInfoDTO>() {
- public void onFailure(final Throwable arg0) {
- Site.hideProgress();
- }
-
- public void onSuccess(final UserInfoDTO response) {
- showLoggedUser(response);
- Site.hideProgress();
- }
- });
+ // //final UserServiceAsync siteBarService =
+ // UserService.App.getInstance();
+ // siteBarService.reloadUserInfo(userHash, new
+ // AsyncCallback<UserInfoDTO>() {
+ // public void onFailure(final Throwable arg0) {
+ // Site.hideProgress();
+ // }
+ //
+ // public void onSuccess(final UserInfoDTO response) {
+ // showLoggedUser(response);
+ // Site.hideProgress();
+ // }
+ // });
}
public void setState(final StateDTO state) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -34,6 +34,8 @@
private final ComboBox timezoneCombo;
public RegisterForm(final SignInPresenter presenter, final I18nUITranslationService i18n) {
+ super.addStyleName("kune-Margin-Large-l");
+
shortNameRegField = new TextField();
shortNameRegField.setFieldLabel(i18n.t("Nickname"));
shortNameRegField.setName(NICK_FIELD);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInForm.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInForm.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -13,6 +13,8 @@
private final TextField loginPassField;
public SignInForm(final I18nTranslationService i18n) {
+ super.addStyleName("kune-Margin-Large-trbl");
+
loginNickOrEmailField = new TextField();
loginNickOrEmailField.setFieldLabel(i18n.t("Nickname or email"));
loginNickOrEmailField.setName(NICKOREMAIL_FIELD);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/rpc/UserService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/rpc/UserService.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/rpc/UserService.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -24,28 +24,10 @@
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import org.ourproject.kune.platf.client.errors.DefaultException;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.RemoteService;
-import com.google.gwt.user.client.rpc.ServiceDefTarget;
public interface UserService extends RemoteService {
- public class App {
- private static UserServiceAsync ourInstance = null;
-
- public static synchronized UserServiceAsync getInstance() {
- if (ourInstance == null) {
- ourInstance = (UserServiceAsync) GWT.create(UserService.class);
- ((ServiceDefTarget) ourInstance).setServiceEntryPoint(GWT.getModuleBaseURL() + "UserService");
- }
- return ourInstance;
- }
-
- public static void setMock(final UserServiceAsync mock) {
- ourInstance = mock;
- }
- }
-
UserInfoDTO createUser(UserDTO user) throws DefaultException;
UserInfoDTO login(String nickOrEmail, String passwd) throws DefaultException;
Deleted: 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-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,210 +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.workspace.client.socialnet;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.ourproject.kune.platf.client.AbstractPresenter;
-import org.ourproject.kune.platf.client.PlatformEvents;
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.platf.client.dto.AccessListsDTO;
-import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
-import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
-import org.ourproject.kune.platf.client.dto.StateDTO;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuItem;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
-import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
-import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
-
-public class GroupMembersSummaryPresenter extends AbstractPresenter implements GroupMembersSummary,
- EntityLiveSearchListener {
-
- private GroupMembersSummaryView view;
- private final I18nTranslationService i18n;
- private final String adminCategory;
- private final String collabCategory;
- private final String pendigCategory;
- private final MemberAction gotoGroupCommand;
-
- public GroupMembersSummaryPresenter(final I18nTranslationService i18n) {
- this.i18n = i18n;
- adminCategory = i18n.t("Admins");
- collabCategory = i18n.t("Collaborators");
- pendigCategory = i18n.t("Pending");
- gotoGroupCommand = new MemberAction(i18n.t("Visit this member homepage"), PlatformEvents.GOTO);
- }
-
- public void addCollab(final String groupShortName) {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.ADD_COLLAB_MEMBER, groupShortName);
- }
-
- public void addGroupOperation(final GridMenuItem<GroupDTO> operation, final boolean mustBeLogged) {
- // TODO Auto-generated method stub
-
- }
-
- public View getView() {
- return view;
- }
-
- public void hide() {
- view.hide();
- }
-
- public void init(final GroupMembersSummaryView view) {
- this.view = view;
- }
-
- public void onJoin() {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.REQ_JOIN_GROUP, null);
- }
-
- public void onSelection(final String groupShortName, final String groupLongName) {
- view.confirmAddCollab(groupShortName, groupLongName);
- }
-
- public void removeGroupOperation(final GridMenuItem<GroupDTO> operation, final boolean mustBeLogged) {
- // TODO Auto-generated method stub
-
- }
-
- public void setState(final StateDTO state) {
- if (state.getGroup().getType() == GroupDTO.PERSONAL) {
- hide();
- } else {
- setGroupMembers(state.getGroupMembers(), state.getGroupRights());
- }
- }
-
- public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
- view.setTheme(oldTheme, newTheme);
- }
-
- public void showAdmins() {
- view.showCategory(adminCategory);
- }
-
- public void showCollabs() {
- view.showCategory(collabCategory);
- }
-
- private void addMembers(final List<GroupDTO> adminsList, final List<GroupDTO> collabList,
- final List<GroupDTO> pendingCollabsList, final int numAdmins, final int numCollaborators,
- final int numPendingCollabs, final boolean isAdmin, final MemberAction[] adminsActions,
- final MemberAction[] collabActions, final MemberAction[] pendingsActions, final MemberAction[] viewerActions) {
- if (numAdmins > 0) {
- view.addCategory(adminCategory, i18n.t("People that can admin this group"));
- iteraList(adminCategory, adminsList, adminsActions);
- }
- if (numCollaborators > 0) {
- view.addCategory(collabCategory, i18n.t("Other people that collaborate with this group"));
- iteraList(collabCategory, collabList, collabActions);
- }
- if (isAdmin) {
- if (numPendingCollabs > 0) {
- view.addCategory(pendigCategory, i18n.t("People pending to be accepted in this group by the admins"),
- GroupMembersSummaryView.ICON_ALERT);
- iteraList(pendigCategory, pendingCollabsList, pendingsActions);
- }
- }
-
- }
-
- private boolean isMember(final boolean userIsAdmin, final boolean userIsCollab) {
- return userIsAdmin || userIsCollab;
- }
-
- private void iteraList(final String categoryName, final List<GroupDTO> groupList, final MemberAction[] actions) {
- final Iterator<GroupDTO> iter = groupList.iterator();
- while (iter.hasNext()) {
- final GroupDTO group = iter.next();
- view.addCategoryMember(categoryName, group.getShortName(), group.getLongName(), actions);
- }
- }
-
- private void setGroupMembers(final SocialNetworkDTO socialNetwork, final AccessRightsDTO rights) {
- final AccessListsDTO accessLists = socialNetwork.getAccessLists();
-
- final List<GroupDTO> adminsList = accessLists.getAdmins().getList();
- final List<GroupDTO> collabList = accessLists.getEditors().getList();
- final List<GroupDTO> pendingCollabsList = socialNetwork.getPendingCollaborators().getList();
-
- final int numAdmins = adminsList.size();
- final int numCollaborators = collabList.size();
- final int numPendingCollabs = pendingCollabsList.size();
-
- boolean userIsAdmin = rights.isAdministrable();
- final boolean userIsCollab = !userIsAdmin && rights.isEditable();
- final boolean userCanView = rights.isVisible();
- boolean userIsMember = isMember(userIsAdmin, userIsCollab);
-
- view.setDropDownContentVisible(false);
- view.clear();
-
- if (userIsAdmin) {
- view.addAddMemberLink();
- }
-
- if (!userIsMember) {
- view.addJoinLink();
- } else if (userIsAdmin && numAdmins > 1 || userIsCollab) {
- view.addUnjoinLink();
- }
-
- if (numAdmins == 0 && numCollaborators == 0) {
- view.addComment(i18n.t("This is an orphaned project, if you are interested "
- + "please request to join to work on it"));
- }
-
- if (userCanView) {
- if (rights.isAdministrable()) {
- final MemberAction[] adminsActions = {
- new MemberAction(i18n.t("Remove this member"), WorkspaceEvents.DEL_MEMBER),
- new MemberAction(i18n.t("Change to collaborator"), WorkspaceEvents.SET_ADMIN_AS_COLLAB),
- gotoGroupCommand };
- final MemberAction[] collabActions = {
- new MemberAction(i18n.t("Remove this member"), WorkspaceEvents.DEL_MEMBER),
- new MemberAction(i18n.t("Change to admin"), WorkspaceEvents.SET_COLLAB_AS_ADMIN),
- gotoGroupCommand };
- final MemberAction[] pendingsActions = {
- new MemberAction(i18n.t("Accept this member"), WorkspaceEvents.ACCEPT_JOIN_GROUP),
- new MemberAction(i18n.t("Don't accept this member"), WorkspaceEvents.DENY_JOIN_GROUP),
- gotoGroupCommand };
- final MemberAction[] viewerActions = { gotoGroupCommand };
- addMembers(adminsList, collabList, pendingCollabsList, numAdmins, numCollaborators, numPendingCollabs,
- userIsAdmin, adminsActions, collabActions, pendingsActions, viewerActions);
- } else if (rights.isEditable() || rights.isVisible()) {
- final MemberAction[] adminsActions = { gotoGroupCommand };
- final MemberAction[] collabActions = { gotoGroupCommand };
- final MemberAction[] pendingsActions = { gotoGroupCommand };
- final MemberAction[] viewerActions = { gotoGroupCommand };
- addMembers(adminsList, collabList, pendingCollabsList, numAdmins, numCollaborators, numPendingCollabs,
- userIsAdmin, adminsActions, collabActions, pendingsActions, viewerActions);
- }
- }
- view.setDropDownContentVisible(true);
- view.show();
- }
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -30,15 +30,15 @@
private final GridGroup collabCategory;
private final GridGroup pendigCategory;
private final Session session;
- private final SocialNetworkServiceAsync snService;
+ private final Provider<SocialNetworkServiceAsync> snServiceProvider;
public GroupMembersSummaryPresenterNew(final I18nUITranslationService i18n,
final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session,
- final SocialNetworkServiceAsync snService) {
- super(i18n, stateManagerProvider, imageUtils, session, snService);
+ final Provider<SocialNetworkServiceAsync> snServiceProvider) {
+ super(i18n, stateManagerProvider, imageUtils, session, snServiceProvider);
this.i18n = i18n;
this.session = session;
- this.snService = snService;
+ this.snServiceProvider = snServiceProvider;
final String adminsTitle = i18n.t("Admins");
final String collabsTitle = i18n.t("Collaborators");
final String pendingTitle = i18n.t("Pending");
@@ -53,8 +53,9 @@
public void addCollab(final String groupShortName) {
Site.showProgressProcessing();
- snService.addCollabMember(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
+ snServiceProvider.get().addCollabMember(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), groupShortName,
+ new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
Site.hideProgress();
Site.info(i18n.t("Member added as collaborator"));
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,57 +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.workspace.client.socialnet;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
-
-public interface GroupMembersSummaryView extends View {
-
- public static final String ICON_ALERT = "alert";
-
- void addAddMemberLink();
-
- void addCategory(String name, String title);
-
- void addCategory(String name, String title, String iconType);
-
- void addCategoryMember(String categoryName, String name, String title, MemberAction[] memberActions);
-
- void addComment(String comment);
-
- void addJoinLink();
-
- void addUnjoinLink();
-
- void clear();
-
- void confirmAddCollab(String groupShortName, String groupLongName);
-
- void hide();
-
- void setDropDownContentVisible(boolean visible);
-
- void setTheme(WsTheme oldTheme, WsTheme newTheme);
-
- void show();
-
- void showCategory(String name);
-
-}
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-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -46,8 +46,8 @@
public ParticipationSummaryPresenter(final I18nUITranslationService i18n,
final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session,
- final SocialNetworkServiceAsync snService) {
- super(i18n, stateManagerProvider, imageUtils, session, snService);
+ final Provider<SocialNetworkServiceAsync> snServiceProvider) {
+ super(i18n, stateManagerProvider, imageUtils, session, snServiceProvider);
adminCategory = new GridGroup("admin in:", " ", i18n.tWithNT("Administrate these groups",
"talking about a person"), false);
collabCategory = new GridGroup(i18n.t("and as collaborator in:"), " ", i18n.t("Collaborate in these groups"),
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-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -5,7 +5,6 @@
import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
import org.ourproject.kune.platf.client.services.ImageDescriptor;
import org.ourproject.kune.platf.client.services.ImageUtils;
@@ -38,7 +37,7 @@
protected GridMenuItem<GroupDTO> unJoinMenuItem;
private final I18nUITranslationService i18n;
private final Provider<StateManager> stateManagerProvider;
- private final SocialNetworkServiceAsync snService;
+ private final Provider<SocialNetworkServiceAsync> snServiceProvider;
private final Session session;
private final GridMenuItemCollection<GroupDTO> otherOperations;
private final GridMenuItemCollection<GroupDTO> otherLoggedOperations;
@@ -46,12 +45,12 @@
public SocialNetworkPresenter(final I18nUITranslationService i18n,
final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session,
- final SocialNetworkServiceAsync snService) {
+ final Provider<SocialNetworkServiceAsync> snServiceProvider) {
this.i18n = i18n;
this.stateManagerProvider = stateManagerProvider;
this.imageUtils = imageUtils;
this.session = session;
- this.snService = snService;
+ this.snServiceProvider = snServiceProvider;
createButtons();
createMenuActions();
otherOperations = new GridMenuItemCollection<GroupDTO>();
@@ -102,8 +101,8 @@
.t("Request to participate in this group"), new Slot<String>() {
public void onEvent(final String parameter) {
Site.showProgressProcessing();
- snService.requestJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- new AsyncCallbackSimple<Object>() {
+ snServiceProvider.get().requestJoinGroup(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), new AsyncCallbackSimple<Object>() {
public void onSuccess(final Object result) {
Site.hideProgress();
final String resultType = (String) result;
@@ -168,8 +167,9 @@
.t("Change to collaborator"), new Slot<GroupDTO>() {
public void onEvent(final GroupDTO group) {
Site.showProgressProcessing();
- snService.setCollabAsAdmin(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- group.getShortName(), new AsyncCallbackSimple<SocialNetworkResultDTO>() {
+ snServiceProvider.get().setCollabAsAdmin(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), group.getShortName(),
+ new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
Site.hideProgress();
Site.info(i18n.t("Type of member changed"));
@@ -182,8 +182,8 @@
new Slot<GroupDTO>() {
public void onEvent(final GroupDTO group) {
Site.showProgressProcessing();
- snService.deleteMember(session.getUserHash(), session.getCurrentState().getGroup()
- .getShortName(), group.getShortName(),
+ snServiceProvider.get().deleteMember(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), group.getShortName(),
new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
Site.hideProgress();
@@ -201,9 +201,8 @@
new Slot<GroupDTO>() {
public void onEvent(final GroupDTO group) {
Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.addAdminMember(session.getUserHash(), session.getCurrentState().getGroup()
- .getShortName(), group.getShortName(),
+ snServiceProvider.get().addAdminMember(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), group.getShortName(),
new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
Site.hideProgress();
@@ -217,8 +216,8 @@
new Slot<GroupDTO>() {
public void onEvent(final GroupDTO group) {
Site.showProgressProcessing();
- snService.AcceptJoinGroup(session.getUserHash(), session.getCurrentState().getGroup()
- .getShortName(), group.getShortName(),
+ snServiceProvider.get().AcceptJoinGroup(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), group.getShortName(),
new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
Site.hideProgress();
@@ -232,8 +231,7 @@
new Slot<GroupDTO>() {
public void onEvent(final GroupDTO group) {
Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.denyJoinGroup(session.getUserHash(),
+ snServiceProvider.get().denyJoinGroup(session.getUserHash(),
session.getCurrentState().getGroup().getShortName(), group.getShortName(),
new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
@@ -252,7 +250,7 @@
private void removeMemberAction(final GroupDTO groupDTO) {
Site.showProgressProcessing();
- snService.unJoinGroup(session.getUserHash(), groupDTO.getShortName(),
+ snServiceProvider.get().unJoinGroup(session.getUserHash(), groupDTO.getShortName(),
new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
Site.hideProgress();
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupMembersSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupMembersSummaryPanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupMembersSummaryPanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,148 +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.workspace.client.socialnet.ui;
-
-import org.ourproject.kune.platf.client.PlatformEvents;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.services.Images;
-import org.ourproject.kune.platf.client.ui.UIConstants;
-import org.ourproject.kune.platf.client.ui.stacks.StackSubItemAction;
-import org.ourproject.kune.platf.client.ui.stacks.StackedDropDownPanel;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPresenter;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryView;
-import org.ourproject.kune.workspace.client.socialnet.MemberAction;
-import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
-
-import com.google.gwt.user.client.ui.AbstractImagePrototype;
-import com.gwtext.client.widgets.MessageBox;
-
-public class GroupMembersSummaryPanel extends StackedDropDownPanel implements GroupMembersSummaryView {
- private static final boolean COUNTS_VISIBLE = true;
- private final Images img = Images.App.getInstance();
- private final GroupMembersSummaryPresenter presenter;
- private final I18nTranslationService i18n;
-
- public GroupMembersSummaryPanel(final GroupMembersSummaryPresenter initPresenter,
- final I18nTranslationService i18n, final WorkspaceSkeleton ws) {
- super(initPresenter, "#00D4AA", i18n.t("Group members"), i18n
- .t("People and groups collaborating in this group"), COUNTS_VISIBLE);
- presenter = initPresenter;
- this.i18n = i18n;
- ws.getEntitySummary().addInSummary(this);
- }
-
- public void addAddMemberLink() {
- super.addBottomLink(img.addGreen(), i18n.t("Add member"), i18n
- .t("Add a group or a person as member of this group"), WorkspaceEvents.ADD_MEMBER_GROUPLIVESEARCH,
- presenter);
- }
-
- public void addCategory(final String name, final String title) {
- super.addStackItem(name, title, COUNTS_VISIBLE);
- }
-
- public void addCategory(final String name, final String title, final String iconType) {
- super.addStackItem(name, title, getIcon(iconType), UIConstants.ICON_HORIZ_ALIGN_RIGHT, COUNTS_VISIBLE);
- }
-
- public void addCategoryMember(final String categoryName, final String name, final String title,
- final MemberAction[] memberActions) {
- final StackSubItemAction[] subItems = new StackSubItemAction[memberActions.length];
- for (int i = 0; i < memberActions.length; i++) {
- subItems[i] = new StackSubItemAction(getIconFronEvent(memberActions[i].getAction()), memberActions[i]
- .getText(), memberActions[i].getAction());
- }
-
- super.addStackSubItem(categoryName, img.groupDefIcon(), name, title, subItems);
- }
-
- public void addComment(final String comment) {
- super.addComment(comment);
- }
-
- public void addJoinLink() {
- super.addBottomLink(img.addGreen(), i18n.t("Request to join"), i18n.t("Request to participate in this group"),
- WorkspaceEvents.REQ_JOIN_GROUP);
- }
-
- public void addUnjoinLink() {
- super.addBottomLink(img.del(), i18n.t("Unjoin this group"), i18n
- .t("Don't participate more as a member in this group"), WorkspaceEvents.UNJOIN_GROUP);
- }
-
- public void clear() {
- super.clear();
- }
-
- public void confirmAddCollab(final String groupShortName, final String groupLongName) {
- final String groupName = groupLongName + " (" + groupShortName + ")";
- MessageBox.confirm(i18n.t("Confirm addition of member"), i18n.t("Add [%s] as member?", groupName),
- new MessageBox.ConfirmCallback() {
- public void execute(final String btnID) {
- if (btnID.equals("yes")) {
- presenter.addCollab(groupShortName);
- }
- }
- });
- }
-
- public void hide() {
- this.setVisible(false);
- }
-
- public void show() {
- this.setVisible(true);
- }
-
- public void showCategory(final String name) {
- super.showStackItem(name);
- }
-
- private AbstractImagePrototype getIcon(final String event) {
- if (event == GroupMembersSummaryView.ICON_ALERT) {
- return img.alert();
- }
- throw new IndexOutOfBoundsException("Icon unknown in GroupMemebersPanel");
- }
-
- private AbstractImagePrototype getIconFronEvent(final String event) {
- if (event == WorkspaceEvents.ACCEPT_JOIN_GROUP) {
- return img.accept();
- }
- if (event == WorkspaceEvents.DENY_JOIN_GROUP) {
- return img.cancel();
- }
- if (event == WorkspaceEvents.DEL_MEMBER) {
- return img.del();
- }
- if (event == PlatformEvents.GOTO) {
- return img.groupHome();
- }
- if (event == WorkspaceEvents.SET_ADMIN_AS_COLLAB) {
- return img.arrowDownGreen();
- }
- if (event == WorkspaceEvents.SET_COLLAB_AS_ADMIN) {
- return img.arrowUpGreen();
- }
- throw new IndexOutOfBoundsException("Event unknown in GroupMembersPanel");
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,64 +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.workspace.client.theme;
-
-import org.ourproject.kune.platf.client.services.ColorTheme;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.services.Images;
-import org.ourproject.kune.platf.client.ui.BottomTrayIcon;
-
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.ui.MenuBar;
-
-public class ThemeMenuPanel extends BottomTrayIcon implements ThemeMenuView {
-
- private final MenuBar themesMB;
- private final ThemeMenuPresenter presenter;
- private final ColorTheme colorTheme;
-
- public ThemeMenuPanel(final ThemeMenuPresenter presenter, final I18nTranslationService i18n,
- final ColorTheme colorTheme) {
- super(i18n.t("Select Workspace theme for this group"));
- this.presenter = presenter;
- this.colorTheme = colorTheme;
- themesMB = new MenuBar(true);
- themesMB.addStyleDependentName("bottomMenu");
- this.addItem(Images.App.getInstance().themeChoose().getHTML(), true, themesMB);
- }
-
- public void setThemes(final String[] themes) {
- for (int i = 0; i < themes.length; i++) {
- final String theme = themes[i];
- colorTheme.setTheme(theme);
- String themeName = colorTheme.getThemeName();
- String mainColor = colorTheme.getContentMainBorder();
- themesMB.addItem("<span style=\"color: " + mainColor + ";\">" + themeName + "</span>", true, new Command() {
- public void execute() {
- presenter.chooseTheme(theme);
- }
- });
- }
- }
-
- public void setVisible(final boolean visible) {
- super.setVisible(visible);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,51 +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.workspace.client.theme;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
-import org.ourproject.kune.workspace.client.workspace.ThemeMenuComponent;
-
-public class ThemeMenuPresenter implements ThemeMenuComponent {
-
- private ThemeMenuView view;
-
- public void chooseTheme(final String theme) {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.CHANGE_GROUP_WSTHEME, theme);
- }
-
- public void init(final ThemeMenuView view) {
- this.view = view;
- }
-
- public void setThemes(final String[] themes) {
- view.setThemes(themes);
- }
-
- public View getView() {
- return view;
- }
-
- public void setVisible(final boolean visible) {
- view.setVisible(visible);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuView.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuView.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,31 +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.workspace.client.theme;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface ThemeMenuView extends View {
-
- void setThemes(String[] themes);
-
- void setVisible(boolean visible);
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -74,9 +74,7 @@
setSocialNetwork(state);
groupSummaryProvider.get().setState(state);
tagsProvider.get().setState(state);
- // Only for probes:
- wsThemePresenter.setVisible(true);
- wsThemePresenter.setTheme(new WsTheme(group.getWorkspaceTheme()));
+ wsThemePresenter.setState(state);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,14 +1,19 @@
package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitenewgroup;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.sitebar.SiteToken;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.ui.Hyperlink;
public class SiteNewGroupLinkPanel implements SiteNewGroupLinkView {
- private final Hyperlink newGroupHyperlink;
-
- public SiteNewGroupLinkPanel(final SiteNewGroupLinkPresenter presenter, final WorkspaceSkeleton ws) {
- newGroupHyperlink = new Hyperlink();
+ public SiteNewGroupLinkPanel(final SiteNewGroupLinkPresenter presenter, final WorkspaceSkeleton ws,
+ final I18nUITranslationService i18n) {
+ final Hyperlink newGroupHyperlink = new Hyperlink();
+ newGroupHyperlink.setText(i18n.t("Create New Group"));
+ newGroupHyperlink.setTargetHistoryToken(SiteToken.newgroup.toString());
+ ws.getSiteBar().addSeparator();
+ ws.getSiteBar().add(newGroupHyperlink);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -11,6 +11,7 @@
import org.ourproject.kune.workspace.client.sitebar.Site;
import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
+import com.calclab.suco.client.container.Provider;
import com.calclab.suco.client.signal.Slot;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Cookies;
@@ -20,12 +21,12 @@
private SiteSignOutLinkView view;
private final Session session;
- private final UserServiceAsync userService;
+ private final Provider<UserServiceAsync> userServiceProvider;
- public SiteSignOutLinkPresenter(final Session session, final UserServiceAsync userService,
- final KuneErrorHandler errorHandler) {
+ public SiteSignOutLinkPresenter(final Session session, final Provider<UserServiceAsync> userServiceProvider,
+ final Provider<KuneErrorHandler> kuneErrorHandlerProvider) {
this.session = session;
- this.userService = userService;
+ this.userServiceProvider = userServiceProvider;
session.onUserSignIn(new Slot<UserInfoDTO>() {
public void onEvent(final UserInfoDTO parameter) {
view.setVisible(true);
@@ -36,7 +37,7 @@
view.setVisible(false);
}
});
- errorHandler.onSessionExpired(new Slot<Object>() {
+ kuneErrorHandlerProvider.get().onSessionExpired(new Slot<Object>() {
public void onEvent(final Object parameter) {
clientUIsignOut();
}
@@ -65,7 +66,7 @@
}
};
- userService.logout(session.getUserHash(), callback);
+ userServiceProvider.get().logout(session.getUserHash(), callback);
}
public View getView() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -42,7 +42,7 @@
item.addListener(new BaseItemListenerAdapter() {
@Override
public void onClick(final BaseItem item, final EventObject e) {
- presenter.setTheme(theme);
+ presenter.onChangeGroupWsTheme(theme);
}
});
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,8 +1,13 @@
package org.ourproject.kune.workspace.client.ui.newtmp.themes;
import org.ourproject.kune.platf.client.dto.InitDataDTO;
+import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+import com.calclab.suco.client.container.Provider;
import com.calclab.suco.client.signal.Signal2;
import com.calclab.suco.client.signal.Slot;
import com.calclab.suco.client.signal.Slot2;
@@ -12,8 +17,12 @@
private WsThemeView view;
private WsTheme previousTheme;
private final Signal2<WsTheme, WsTheme> onThemeChanged;
+ private final Provider<GroupServiceAsync> groupServiceProvider;
+ private final Session session;
- public WsThemePresenter(final Session session) {
+ public WsThemePresenter(final Session session, final Provider<GroupServiceAsync> groupServiceProvider) {
+ this.session = session;
+ this.groupServiceProvider = groupServiceProvider;
this.onThemeChanged = new Signal2<WsTheme, WsTheme>("onThemeChanged");
session.onInitDataReceived(new Slot<InitDataDTO>() {
public void onEvent(final InitDataDTO initData) {
@@ -30,15 +39,32 @@
onThemeChanged.add(slot);
}
- public void setTheme(final WsTheme newTheme) {
+ public void setState(final StateDTO state) {
+ setTheme(new WsTheme(state.getGroup().getWorkspaceTheme()));
+ if (state.getGroupRights().isAdministrable()) {
+ view.setVisible(true);
+ } else {
+ view.setVisible(false);
+ }
+ }
+
+ protected void onChangeGroupWsTheme(final WsTheme newTheme) {
+ Site.showProgressProcessing();
+ groupServiceProvider.get().changeGroupWsTheme(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), newTheme.getName(),
+ new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ setTheme(newTheme);
+ Site.hideProgress();
+ }
+ });
+ }
+
+ private void setTheme(final WsTheme newTheme) {
if (previousTheme == null || !previousTheme.equals(newTheme)) {
onThemeChanged.fire(previousTheme, newTheme);
}
previousTheme = newTheme;
}
- public void setVisible(final boolean visible) {
- view.setVisible(visible);
- }
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -61,8 +61,6 @@
public LicenseComponent getLicenseComponent();
- public ThemeMenuComponent getThemeMenuComponent();
-
public UserLiveSearchComponent getUserLiveSearchComponent();
public void setContent(WorkspaceComponent contentComponent);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -112,10 +112,6 @@
return components.getLicenseComponent();
}
- public ThemeMenuComponent getThemeMenuComponent() {
- return components.getThemeMenuComponent();
- }
-
public UserLiveSearchComponent getUserLiveSearchComponent() {
return components.getUserLiveSearchComponent();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -90,13 +90,6 @@
return license;
}
- public ThemeMenuComponent getThemeMenuComponent() {
- if (themeMenu == null) {
- themeMenu = WorkspaceFactory.createThemeMenuComponent();
- }
- return themeMenu;
- }
-
public UserLiveSearchComponent getUserLiveSearchComponent() {
if (userLiveSearch == null) {
userLiveSearch = WorkspaceFactory.createUserLiveSearchComponent();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -228,7 +228,7 @@
setContentToolBar(components.getContentToolBarComponent().getView());
setContentBottomToolBar(components.getContentBottomToolBarComponent().getView());
setBottom(components.getLicenseComponent().getView());
- addBottomIconComponent(components.getThemeMenuComponent().getView());
+ // addBottomIconComponent(components.getThemeMenuComponent().getView());
}
public void setContent(final View content) {
1
0
r814 - in trunk/src/main/java/org/ourproject/kune: platf/client/ui/gridmenu workspace/client/socialnet
by vjrj 23 Jul '08
by vjrj 23 Jul '08
23 Jul '08
Author: vjrj
Date: 2008-07-23 06:36:14 +0200 (Wed, 23 Jul 2008)
New Revision: 814
Modified:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java
Log:
Incomplete - task 14: Make users in GroupSummary Draggable to emite (not totally working until emite update to GridMenuPanel new class)
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-07-23 04:11:58 UTC (rev 813)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-07-23 04:36:14 UTC (rev 814)
@@ -85,6 +85,11 @@
this(emptyText, gridDragConfiguration, null, false, false, false, false, false);
}
+ public GridMenuPanel(final String emptyText, final GridDragConfiguration dragConf, final boolean grouped,
+ final boolean withCounters, final boolean withTopBar, final boolean withBottomBar, final boolean withEndIcon) {
+ this(emptyText, dragConf, null, grouped, withCounters, withTopBar, withBottomBar, withEndIcon);
+ }
+
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) {
@@ -116,6 +121,11 @@
this(emptyText, null, gridDropConfiguration, false, false, false, false, false);
}
+ public GridMenuPanel(final String emptyText, final GridDropConfiguration dropConf, final boolean grouped,
+ final boolean withCounters, final boolean withTopBar, final boolean withBottomBar, final boolean withEndIcon) {
+ this(emptyText, null, dropConf, grouped, withCounters, withTopBar, withBottomBar, withEndIcon);
+ }
+
public void addItem(final GridItem<T> gridItem) {
createGridIfNeeded();
final String id = gridItem.getId();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-23 04:11:58 UTC (rev 813)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-23 04:36:14 UTC (rev 814)
@@ -5,6 +5,7 @@
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.ui.DropDownPanel;
import org.ourproject.kune.platf.client.ui.gridmenu.GridButton;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridDragConfiguration;
import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuPanel;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
@@ -12,6 +13,7 @@
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
+import com.calclab.emiteuimodule.client.users.UserGridPanel;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Button;
@@ -35,8 +37,12 @@
super.setHeaderTitle(i18n.t("People and groups collaborating in this group"));
super.setBorderStylePrimaryName("k-dropdownouter-members");
super.addStyleName("kune-Margin-Medium-t");
+
+ final GridDragConfiguration dragConf = new GridDragConfiguration(UserGridPanel.USER_GROUP_DD, i18n
+ .t("Drop in the chat area to start a chat.")
+ + "<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"), true, true, false, true, false);
+ + "please request to join to work on it"), dragConf, true, true, false, true, false);
final EntitySummary entitySummary = ws.getEntitySummary();
entitySummary.addInSummary(this);
entitySummary.addListener(new ContainerListenerAdapter() {
1
0
Author: vjrj
Date: 2008-07-23 06:11:58 +0200 (Wed, 23 Jul 2008)
New Revision: 813
Added:
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteToken.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignIn.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInView.java
Removed:
trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLoginAction.java
trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLogoutAction.java
trunk/src/main/java/org/ourproject/kune/chat/client/actions/InitChatEngineAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/InitAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedInAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedOutAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/StopAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLoginAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLogoutAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserRegisterAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/Login.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginListener.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginView.java
trunk/src/test/java/org/ourproject/kune/sitebar/client/ui/LoginPresenterTest.java
Modified:
trunk/script/css-compact-and-tidy.css
trunk/script/deploy_gwt.sh
trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
trunk/src/main/java/org/ourproject/kune/app/public/Kune.html
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
trunk/src/main/java/org/ourproject/kune/app/public/css/richtext.css
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java
trunk/src/main/java/org/ourproject/kune/docs/client/actions/SaveDocumentAction.java
trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.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/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/SessionImpl.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/workspace/client/WorkspaceClientModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkView.java
trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java
Log:
Workspace refactorization
Modified: trunk/script/css-compact-and-tidy.css
===================================================================
--- trunk/script/css-compact-and-tidy.css 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/script/css-compact-and-tidy.css 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,10 +1,11 @@
#!/bin/bash
+#!/bin/bash
ORIG=src/main/java/org/ourproject/kune/app/public/
CATTMPFILE=`mktemp -t css.1.XXX` || exit 1
CSSTMPFILE=`mktemp -t css.2.XXX` || exit 1
DEST=src/main/java/org/ourproject/kune/app/public/css/all.css
DEST2=src/main/java/org/ourproject/kune/app/public/css/richtext.css
-CSS='css/reset.css css/fonts-min.css js/ext/resources/css/ext-all.css js/ext/resources/css/xtheme-gray.css css/kune.css css/workspace.css css/chat.css css/docs.css'
+CSS='css/reset.css css/fonts-min.css js/ext/resources/css/ext-all.css js/ext/resources/css/xtheme-gray.css css/kune.css css/workspace.css css/chat.css css/docs.css css/kune-new.css'
CSS2='css/reset.css css/fonts-min.css css/base-min.css css/rte.css'
function concat {
@@ -16,13 +17,19 @@
}
function tidy {
-# Dependency csstidy (apt-get install csstidy)
-csstidy $CATTMPFILE \
- --template=highest \
- --optimise_shorthands=2 \
- --preserve_css=true \
- --silent=true \
- $CSSTMPFILE
+ls `which csstidy | cut -d " " -f 1` 2> /dev/null
+if [[ $? -eq 0 ]]
+then
+ csstidy $CATTMPFILE \
+ --template=highest \
+ --optimise_shorthands=2 \
+ --preserve_css=true \
+ --silent=true \
+ $CSSTMPFILE
+else
+ echo Waring: Dependency csstidy, in debian: apt-get install csstidy
+ cp $CATTMPFILE $CSSTMPFILE
+fi
cat $CSSTMPFILE | sed 's/\.\.\/images/\.\.\/js\/ext\/resources\/images/g' > $1
}
Modified: trunk/script/deploy_gwt.sh
===================================================================
--- trunk/script/deploy_gwt.sh 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/script/deploy_gwt.sh 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,7 +1,9 @@
#!/bin/bash
find target/kune-0.0.4/org.ourproject.kune.app.Kune/ -name .DS_Store -exec rm {} \;
-#script/css-compact-and-tidy.css
+script/css-compact-and-tidy.css
script/css-update.sh
+cp target/kune-0.0.4/org.ourproject.kune.app.Kune/js/ext/ext-all-debug.js target/kune-0.0.4/org.ourproject.kune.app.Kune/js/ext/ext-all.js
unison -silent -batch -auto -ui text target/kune-0.0.4/org.ourproject.kune.app.Kune src/main/webapp/gwt/org.ourproject.kune.app.Kune
+
Modified: trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2008-07-23 04:11:58 UTC (rev 813)
@@ -3,34 +3,21 @@
<inherits name='com.google.gwt.user.User' />
<inherits name="org.cafesip.gwtcomp.GWTComponents" />
+ <inherits name="com.calclab.suco.Suco" />
+ <inherits name='org.ourproject.kune.platf.Kune-Platform' />
+ <inherits name='org.ourproject.kune.docs.Kune-Docs' />
+ <inherits name='org.ourproject.kune.chat.Kune-Chat' />
+
<!-- gwt-ext -->
<inherits name='com.gwtext.GwtExt' />
<script src="js/ext/adapter/ext/ext-base.js" />
<script src="js/ext/ext-all.js" />
<!-- kune css -->
- <!-- when build a unique css with csstidy use all.css -->
- <!-- <stylesheet src="css/all.css" /> -->
-
- <stylesheet src="css/reset.css" />
- <stylesheet src="css/fonts-min.css" />
- <stylesheet src="js/ext/resources/css/ext-all.css" />
- <stylesheet src="js/ext/resources/css/xtheme-gray.css" />
- <stylesheet src="css/workspace.css" />
- <stylesheet src="css/chat.css" />
- <stylesheet src="css/docs.css" />
- <stylesheet src="css/kune.css" />
- <stylesheet src="css/kune-new.css" />
+ <stylesheet src="css/all.css" />
- <inherits name="com.calclab.suco.Suco" />
-
- <inherits name='org.ourproject.kune.platf.Kune-Platform' />
- <inherits name='org.ourproject.kune.docs.Kune-Docs' />
- <inherits name='org.ourproject.kune.chat.Kune-Chat' />
-
<inherits name="com.allen_sauer.gwt.log.gwt-log" />
-
<extend-property name="log_level" values="DEBUG" />
<set-property name="log_level" value="DEBUG" />
<set-property name="log_DivLogger" value="DISABLED" />
@@ -44,9 +31,8 @@
<!-- Specify the app entry point class. -->
<entry-point class='org.ourproject.kune.app.client.KuneEntryPoint' />
- <!-- <script src="js/ext/ext-custom.js" /> -->
-
<!--http://code.google.com/p/google-web-toolkit/issues/detail?id=42 -->
- <!-- <set-property name="user.agent" value="gecko" /> -->
+ <!-- <set-property name="user.agent" value="gecko" /> -->
+
</module>
Modified: trunk/src/main/java/org/ourproject/kune/app/public/Kune.html
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/Kune.html 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/app/public/Kune.html 2008-07-23 04:11:58 UTC (rev 813)
@@ -14,7 +14,6 @@
<link rel="stylesheet" type="text/css" href="css/workspace.css">
<link rel="stylesheet" type="text/css" href="css/chat.css">
<link rel="stylesheet" type="text/css" href="css/docs.css">
-<link rel="stylesheet" type="text/css" href="css/kune.css">
-->
<link rel="shortcut icon" href="images/favicon.ico" />
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-07-23 04:11:58 UTC (rev 813)
@@ -3,25 +3,2131 @@
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.3.1
-*/body{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:400;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup,sub{line-height:-1px;vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}/*
+*/
+body{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup,sub{line-height:-1px;vertical-align:text-top;}sub{vertical-align:text-bottom;}input, textarea, select{font-family:inherit;font-size:inherit;font-weight:inherit;}
+
+/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.3.1
-*/body{font:13px/1.22 arial,helvetica,clean,sans-serif;font-size:small;font:x-small;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;font-size:108%;line-height:99%;}/*
- * Ext JS Library 2.0.2
- * Copyright(c) 2006-2008, Ext JS, LLC.
- * licensing(a)extjs.com
- *
- * http://extjs.com/license
- */html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:400;}ol,ul{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';}.ext-el-mask{z-index:20000;position:absolute;top:0;left:0;-moz-opacity:.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;width:100%;height:100%;zoom:1;}.ext-el-mask-msg{z-index:20001;position:absolute;top:0;left:0;border:1px solid #6593cf;background:#c3daf9 url(../js/ext/resources/images/default/box/tb-blue.gif) repeat-x 0 -16px;padding:2px;}.ext-el-mask-msg div{padding:5px 10px;background:#eee;border:1px solid #a3bad9;color:#222;font:normal 11px tahoma,arial,helvetica,sans-serif;cursor:wait;}.ext-shim{position:absolute;visibility:hidden;left:0;top:0;overflow:hidden;}.ext-ie .ext-shim{filter:alpha(opacity=0);}.ext-ie6 .ext-shim{margin-left:5px;margin-top:3px;}.x-mask-loading div{padding:5px 10px 5px 25px;background:#fbfbfb url(../js/ext/resources/images/default/grid/loading.gif) no-repeat 5px 5px;line-height:16px;}.x-hidden,.x-hide-offsets{position:absolute;left:-10000px;top:-10000px;visibility:hidden;}.x-hide-display{display:none!important;}.x-hide-visibility{visibility:hidden!important;}.x-masked{overflow:hidden!important;}.x-masked select,.x-masked object,.x-masked embed{visibility:hidden;}.x-layer{visibility:hidden;}.x-unselectable,.x-unselectable *{-moz-user-select:none;-khtml-user-select:none;}.x-repaint{zoom:1;background-color:transparent;-moz-outline:none;}.x-item-disabled{color:gray;cursor:default;opacity:.6;-moz-opacity:.6;filter:alpha(opacity=60);}.x-item-disabled *{color:gray!important;cursor:default!important;}.x-splitbar-proxy{position:absolute;visibility:hidden;z-index:20001;background:#aaa;zoom:1;line-height:1px;font-size:1px;overflow:hidden;}.x-splitbar-h,.x-splitbar-proxy-h{cursor:e-resize;cursor:col-resize;}.x-splitbar-v,.x-splitbar-proxy-v{cursor:s-resize;cursor:row-resize;}.x-color-palette{width:150px;height:92px;cursor:pointer;}.x-color-palette a{border:1px solid #fff;float:left;padding:2px;text-decoration:none;-moz-outline:0 none;outline:0 none;cursor:pointer;}.x-color-palette a:hover,.x-color-palette a.x-color-palette-sel{border:1px solid #8BB8F3;background:#deecfd;}.x-color-palette em{display:block;border:1px solid #ACA899;}.x-color-palette em span{cursor:pointer;display:block;height:10px;line-height:10px;width:10px;}.x-ie-shadow{display:none;position:absolute;overflow:hidden;left:0;top:0;background:#777;zoom:1;}.x-shadow{display:none;position:absolute;overflow:hidden;left:0;top:0;}.x-shadow *{overflow:hidden;}.x-shadow *{padding:0;border:0;margin:0;clear:none;zoom:1;}.x-shadow .xstc,.x-shadow .xsbc{height:6px;float:left;}.x-shadow .xstl,.x-shadow .xstr,.x-shadow .xsbl,.x-shadow .xsbr{width:6px;height:6px;float:left;}.x-shadow .xsc{width:100%;}.x-shadow .xsml,.x-shadow .xsmr{width:6px;float:left;height:100%;}.x-shadow .xsmc{float:left;height:100%;background:transparent url(../js/ext/resources/images/default/shadow-c.png);}.x-shadow .xst,.x-shadow .xsb{height:6px;overflow:hidden;width:100%;}.x-shadow .xsml{background:transparent url(../js/ext/resources/images/default/shadow-lr.png) repeat-y 0 0;}.x-shadow .xsmr{background:transparent url(../js/ext/resources/images/default/shadow-lr.png) repeat-y -6px 0;}.x-shadow .xstl{background:transparent url(../js/ext/resources/images/default/shadow.png) no-repeat 0 0;}.x-shadow .xstc{background:transparent url(../js/ext/resources/images/default/shadow.png) repeat-x 0 -30px;}.x-shadow .xstr{background:transparent url(../js/ext/resources/images/default/shadow.png) repeat-x 0 -18px;}.x-shadow .xsbl{background:transparent url(../js/ext/resources/images/default/shadow.png) no-repeat 0 -12px;}.x-shadow .xsbc{background:transparent url(../js/ext/resources/images/default/shadow.png) repeat-x 0 -36px;}.x-shadow .xsbr{background:transparent url(../js/ext/resources/images/default/shadow.png) repeat-x 0 -6px;}.loading-indicator{font-size:11px;background-image:url(../js/ext/resources/images/default/grid/loading.gif);background-repeat:no-repeat;background-position:left;padding-left:20px;line-height:16px;margin:3px;}.x-text-resize{position:absolute;left:-1000px;top:-1000px;visibility:hidden;zoom:1;}.x-drag-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background-image:url(../js/ext/resources/images/default/s.gif);z-index:20000;}.x-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;}.x-spotlight{z-index:8999;position:absolute;top:0;left:0;-moz-opacity:.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;width:0;height:0;zoom:1;}.x-tab-panel{overflow:hidden;}.x-tab-panel-header,.x-tab-panel-footer{background:#deecfd;border:1px solid #8db2e3;overflow:hidden;zoom:1;}.x-tab-panel-header{border:1px solid #8db2e3;padding-bottom:2px;}.x-tab-panel-footer{border:1px solid #8db2e3;padding-top:2px;}.x-tab-strip-wrap{width:100%;overflow:hidden;position:relative;zoom:1;}ul.x-tab-strip{display:block;width:5000px;zoom:1;}ul.x-tab-strip-top{padding-top:1px;background:url(../js/ext/resources/images/default/tabs/tab-strip-bg.gif) #cedff5 repeat-x bottom;border-bottom:1px solid #8db2e3;}ul.x-tab-strip-bottom{padding-bottom:1px;background:url(../js/ext/resources/images/default/tabs/tab-strip-btm-bg.gif) #cedff5 repeat-x top;border-top:1px solid #8db2e3;border-bottom:0 none;}.x-tab-panel-header-plain .x-tab-strip-top{background:transparent!important;padding-top:0!important;}.x-tab-panel-header-plain{background:transparent!important;border-width:0!important;padding-bottom:0!important;}.x-tab-panel-header-plain .x-tab-strip-spacer{border:1px solid #8db2e3;border-top:0 none;height:2px;background:#deecfd;font-size:1px;line-height:1px;}.ext-border-box .x-tab-panel-header-plain .x-tab-strip-spacer{height:3px;}ul.x-tab-strip li{float:left;margin-left:2px;}ul.x-tab-strip li.x-tab-edge{float:left;margin:0!important;padding:0!important;border:0 none!important;font-size:1px!important;line-height:1px!important;overflow:hidden;zoom:1;background:transparent!important;width:1px;}.x-tab-strip a,.x-tab-strip span,.x-tab-strip em{display:block;}.x-tab-strip a{text-decoration:none!important;-moz-outline:none;outline:none;cursor:pointer;}.x-tab-strip-inner{overflow:hidden;text-overflow:ellipsis;}.x-tab-strip span.x-tab-strip-text{font:normal 11px tahoma,arial,helvetica;color:#416aa3;white-space:nowrap;cursor:pointer;padding:4px 0;}.x-tab-strip .x-tab-with-icon .x-tab-right{padding-left:6px;}.x-tab-strip .x-tab-with-icon span.x-tab-strip-text{padding-left:20px;background-position:0 3px;background-repeat:no-repeat;}.x-tab-strip-over span.x-tab-strip-text{color:#15428b;}.x-tab-strip-active{cursor:default;}.x-tab-strip-active span.x-tab-strip-text{cursor:default;color:#15428b;font-weight:700;}.x-tab-strip-disabled .x-tabs-text{cursor:default;color:#aaa;}.x-tab-panel-body{overflow:hidden;}.x-tab-panel-bwrap{overflow:hidden;}.ext-ie .x-tab-strip .x-tab-right{position:relative;}.x-tab-strip-top .x-tab-strip-active .x-tab-right{margin-bottom:-1px;}.x-tab-strip-top .x-tab-strip-active .x-tab-right span.x-tab-strip-text{padding-bottom:5px;}.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{margin-top:-1px;}.x-tab-strip-bottom .x-tab-strip-active .x-tab-right span.x-tab-strip-text{padding-top:5px;}.x-tab-strip-top .x-tab-right{background:transparent url(../js/ext/resources/images/default/tabs/tabs-sprite.gif) no-repeat 0 -51px;padding-left:10px;}.x-tab-strip-top .x-tab-left{background:transparent url(../js/ext/resources/images/default/tabs/tabs-sprite.gif) no-repeat right -351px;padding-right:10px;}.x-tab-strip-top .x-tab-strip-inner{background:transparent url(../js/ext/resources/images/default/tabs/tabs-sprite.gif) repeat-x 0 -201px;}.x-tab-strip-top .x-tab-strip-over .x-tab-right{background-position:0 -101px;}.x-tab-strip-top .x-tab-strip-over .x-tab-left{background-position:right -401px;}.x-tab-strip-top .x-tab-strip-over .x-tab-strip-inner{background-position:0 -251px;}.x-tab-strip-top .x-tab-strip-active .x-tab-right{background-position:0 0;}.x-tab-strip-top .x-tab-strip-active .x-tab-left{background-position:right -301px;}.x-tab-strip-top .x-tab-strip-active .x-tab-strip-inner{background-position:0 -151px;}.x-tab-strip-bottom .x-tab-right{background:url(../js/ext/resources/images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;}.x-tab-strip-bottom .x-tab-left{background:url(../js/ext/resources/images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;}.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{background:url(../js/ext/resources/images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left;}.x-tab-strip-bottom .x-tab-strip-active .x-tab-left{background:url(../js/ext/resources/images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right;}.x-tab-strip-bottom .x-tab-left{padding:0 10px;}.x-tab-strip-bottom .x-tab-right{padding:0;}.x-tab-strip .x-tab-strip-close{display:none;}.x-tab-strip-closable{position:relative;}.x-tab-strip-closable .x-tab-left{padding-right:19px;}.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close{background-image:url(../js/ext/resources/images/default/tabs/tab-close.gif);opacity:.6;-moz-opacity:.6;background-repeat:no-repeat;display:block;width:11px;height:11px;position:absolute;top:3px;right:3px;cursor:pointer;z-index:2;}.x-tab-strip .x-tab-strip-active a.x-tab-strip-close{opacity:.8;-moz-opacity:.8;}.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{background-image:url(../js/ext/resources/images/default/tabs/tab-close.gif);opacity:1;-moz-opacity:1;}.x-tab-panel-body{border:1px solid #8db2e3;background:#fff;}.x-tab-panel-body-top{border-top:0 none;}.x-tab-panel-body-bottom{border-bottom:0 none;}.x-tab-scroller-left{background:transparent url(../js/ext/resources/images/default/tabs/scroll-left.gif) no-repeat -18px 0;border-bottom:1px solid #8db2e3;width:18px;position:absolute;left:0;top:0;z-index:10;cursor:pointer;}.x-tab-scroller-left-over{background-position:0 0;}.x-tab-scroller-left-disabled{background-position:-18px 0;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);cursor:default;}.x-tab-scroller-right{background:transparent url(../js/ext/resources/images/default/tabs/scroll-right.gif) no-repeat 0 0;border-bottom:1px solid #8db2e3;width:18px;position:absolute;right:0;top:0;z-index:10;cursor:pointer;}.x-tab-scroller-right-over{background-position:-18px 0;}.x-tab-scroller-right-disabled{background-position:0 0;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);cursor:default;}.x-tab-scrolling .x-tab-strip-wrap{margin-left:18px;margin-right:18px;}.x-tab-scrolling{position:relative;}.x-tab-panel-bbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}.x-tab-panel-tbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}.x-border-layout-ct .x-tab-panel{background:#FFF;}.x-form-field{margin:0;font:normal 12px tahoma,arial,helvetica,sans-serif;}.x-form-text,textarea.x-form-field{padding:1px 3px;background:#fff url(../js/ext/resources/images/default/form/text-bg.gif) repeat-x 0 0;border:1px solid #B5B8C8;}textarea.x-form-field{padding:2px 3px;}.x-form-text{height:22px;line-height:18px;vertical-align:middle;}.ext-ie .x-form-text{margin:-1px 0;height:22px;line-height:18px;}.ext-ie textarea.x-form-field{margin:-1px 0;}.ext-strict .x-form-text{height:18px;}.ext-safari .x-form-text{height:20px;padding:0 3px;}.ext-safari.ext-mac textarea.x-form-field{margin-bottom:-2px;}.ext-gecko .x-form-text{padding-top:2px;padding-bottom:0;}textarea{resize:none;}.x-form-select-one{height:20px;line-height:18px;vertical-align:middle;background-color:#fff;border:1px solid #B5B8C8;}.x-form-field-wrap{position:relative;zoom:1;white-space:nowrap;}.x-editor .x-form-check-wrap{background:#fff;}.x-form-field-wrap .x-form-trigger{width:17px;height:21px;border:0;background:transparent url(../js/ext/resources/images/default/form/trigger.gif) no-repeat 0 0;cursor:pointer;border-bottom:1px solid #B5B8C8;position:absolute;top:0;}.ext-safari .x-form-field-wrap .x-form-trigger{height:21px;}.x-form-field-wrap .x-form-date-trigger{background-image:url(../js/ext/resources/images/default/form/date-trigger.gif);cursor:pointer;}.x-form-field-wrap .x-form-clear-trigger{background-image:url(../js/ext/resources/images/default/form/clear-trigger.gif);cursor:pointer;}.x-form-field-wrap .x-form-search-trigger{background-image:url(../js/ext/resources/images/default/form/search-trigger.gif);cursor:pointer;}.ext-safari .x-form-field-wrap .x-form-trigger{right:0;}.x-form-field-wrap .x-form-twin-triggers .x-form-trigger{position:static;top:auto;vertical-align:top;}.x-form-field-wrap .x-form-trigger-over{background-position:-17px 0;}.x-form-field-wrap .x-form-trigger-click{background-position:-34px 0;}.x-trigger-wrap-focus .x-form-trigger{background-position:-51px 0;}.x-trigger-wrap-focus .x-form-trigger-over{background-position:-68px 0;}.x-trigger-wrap-focus .x-form-trigger-click{background-position:-85px 0;}.x-trigger-wrap-focus .x-form-trigger{border-bottom:1px solid #7eadd9;}.x-item-disabled .x-form-trigger-over{background-position:0 0!important;border-bottom:1px solid #B5B8C8;}.x-item-disabled .x-form-trigger-click{background-position:0 0!important;border-bottom:1px solid #B5B8C8;}.x-form-focus,textarea.x-form-focus{border:1px solid #7eadd9;}.x-form-invalid,textarea.x-form-invalid{background:#fff url(../js/ext/resources/images/default/grid/invalid_line.gif) repeat-x bottom;border:1px solid #dd7870;}.ext-safari .x-form-invalid{background-color:#fee;border:1px solid #ff7870;}.x-editor{visibility:hidden;padding:0;margin:0;}.x-form-check-wrap{line-height:18px;}.ext-ie .x-form-check-wrap input{width:15px;height:15px;}.x-editor .x-form-check-wrap{padding:3px;}.x-editor .x-form-checkbox{height:13px;}.x-form-grow-sizer{font:normal 12px tahoma,arial,helvetica,sans-serif;left:-10000px;padding:8px 3px;position:absolute;visibility:hidden;top:-10000px;white-space:pre-wrap;white-space:0;white-space:0;white-space:0;word-wrap:break-word;zoom:1;}.x-form-grow-sizer p{margin:0!important;border:0 none!important;padding:0!important;}.x-form-item{font:normal 12px tahoma,arial,helvetica,sans-serif;display:block;margin-bottom:4px;}.x-form-item label{display:block;float:left;width:100px;padding:3px;padding-left:0;clear:left;z-index:2;position:relative;}.x-form-element{padding-left:105px;position:relative;}.x-form-invalid-msg{color:#e00;padding:2px;padding-left:18px;font:normal 11px tahoma,arial,helvetica,sans-serif;background:transparent url(../js/ext/resources/images/default/shared/warning.gif) no-repeat 0 2px;line-height:16px;width:200px;}.x-form-label-right label{text-align:right;}.x-form-label-top .x-form-item label{width:auto;float:none;clear:none;display:inline;margin-bottom:4px;position:static;}.x-form-label-top .x-form-element{padding-left:0;padding-top:4px;}.x-form-label-top .x-form-item{padding-bottom:4px;}.x-form-empty-field{color:gray;}.x-small-editor .x-form-field{font:normal 11px arial,tahoma,helvetica,sans-serif;}.x-small-editor .x-form-text{height:20px;line-height:16px;vertical-align:middle;}.ext-ie .x-small-editor .x-form-text{margin-top:-1px!important;margin-bottom:-1px!important;height:20px!important;line-height:16px!important;}.ext-strict .x-small-editor .x-form-text{height:16px!important;}.ext-safari .x-small-editor .x-form-field{font:normal 12px arial,tahoma,helvetica,sans-serif;}.ext-ie .x-small-editor .x-form-text{height:20px;line-height:16px;}.ext-border-box .x-small-editor .x-form-text{height:20px;}.x-small-editor .x-form-select-one{height:20px;line-height:16px;vertical-align:middle;}.x-small-editor .x-form-num-field{text-align:right;}.x-small-editor .x-form-field-wrap .x-form-trigger{height:19px;}.x-form-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;}.x-form-clear-left{clear:left;height:0;overflow:hidden;line-height:0;font-size:0;}.x-form-cb-label{width:auto!important;float:none!important;clear:none!important;display:inline!important;margin-left:4px;}.x-form-column{float:left;padding:0;margin:0;width:48%;overflow:hidden;zoom:1;}.x-form .x-form-btns-ct .x-btn{float:right;clear:none;}.x-form .x-form-btns-ct .x-form-btns td{border:0;padding:0;}.x-form .x-form-btns-ct .x-form-btns-right table{float:right;clear:none;}.x-form .x-form-btns-ct .x-form-btns-left table{float:left;clear:none;}.x-form .x-form-btns-ct .x-form-btns-center{text-align:center;}.x-form .x-form-btns-ct .x-form-btns-center table{margin:0 auto;}.x-form .x-form-btns-ct table td.x-form-btn-td{padding:3px;}.x-form .x-form-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;}.x-form .x-form-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;}.x-form .x-form-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;}.x-form .x-form-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;}.x-form .x-form-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;}.x-form .x-form-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;}.x-form-invalid-icon{width:16px;height:18px;visibility:hidden;position:absolute;left:0;top:0;display:block;background:transparent url(../js/ext/resources/images/default/form/exclamation.gif) no-repeat 0 2px;}.x-fieldset{border:1px solid #B5B8C8;padding:10px;margin-bottom:10px;}.x-fieldset legend{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#15428b;}.ext-ie .x-fieldset legend{margin-bottom:10px;}.ext-ie .x-fieldset{padding-top:0;padding-bottom:10px;}.x-fieldset legend .x-tool-toggle{margin-right:3px;margin-left:0;float:left!important;}.x-fieldset legend input{margin-right:3px;float:left!important;height:13px;width:13px;}fieldset.x-panel-collapsed{padding-bottom:0!important;border-width:1px 0 0!important;}fieldset.x-panel-collapsed .x-fieldset-bwrap{visibility:hidden;position:absolute;left:-1000px;top:-1000px;}.ext-ie .x-fieldset-bwrap{zoom:1;}.ext-ie td .x-form-text{position:relative;top:-1px;}.x-fieldset-noborder{border:0 none transparent;}.x-fieldset-noborder legend{margin-left:-3px;}.ext-ie .x-fieldset-noborder legend{position:relative;margin-bottom:23px;}.ext-ie .x-fieldset-noborder legend span{position:absolute;left:-5px;}.ext-gecko .x-window-body .x-form-item{-moz-outline:none;overflow:auto;}.ext-gecko .x-form-item{-moz-outline:none;}.x-hide-label label.x-form-item-label{display:none;}.x-hide-label .x-form-element{padding-left:0!important;}.x-fieldset{overflow:hidden;}.x-fieldset-bwrap{overflow:hidden;zoom:1;}.x-fieldset-body{overflow:hidden;}.x-btn{font:normal 11px tahoma,verdana,helvetica;cursor:pointer;white-space:nowrap;}.x-btn button{border:0 none;background:transparent;font:normal 11px tahoma,verdana,helvetica;padding-left:3px;padding-right:3px;cursor:pointer;margin:0;overflow:visible;width:auto;-moz-outline:0 none;outline:0 none;}* html .ext-ie .x-btn button{width:1px;}.ext-gecko .x-btn button{padding-left:0;padding-right:0;}.ext-ie .x-btn button{padding-top:2px;}.x-btn-icon .x-btn-center .x-btn-text{background-position:center;background-repeat:no-repeat;height:16px;width:16px;cursor:pointer;white-space:nowrap;padding:0;}.x-btn-icon .x-btn-center{padding:1px;}.x-btn em{font-style:normal;font-weight:400;}.x-btn-text-icon .x-btn-center .x-btn-text{background-position:0 2px;background-repeat:no-repeat;padding-left:18px;padding-top:3px;padding-bottom:2px;padding-right:0;}.x-btn-left,.x-btn-right{font-size:1px;line-height:1px;}.x-btn-left{width:3px;height:21px;background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 0;}.x-btn-right{width:3px;height:21px;background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 -21px;}.x-btn-left i,.x-btn-right i{display:block;width:3px;overflow:hidden;font-size:1px;line-height:1px;}.x-btn-center{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) repeat-x 0 -42px;vertical-align:middle;text-align:center;padding:0 5px;cursor:pointer;white-space:nowrap;}.x-btn-over .x-btn-left{background-position:0 -63px;}.x-btn-over .x-btn-right{background-position:0 -84px;}.x-btn-over .x-btn-center{background-position:0 -105px;}.x-btn-click .x-btn-center,.x-btn-menu-active .x-btn-center{background-position:0 -126px;}.x-btn-disabled *{color:gray!important;cursor:default!important;}.x-btn-menu-text-wrap .x-btn-center{padding:0 3px;}.ext-gecko .x-btn-menu-text-wrap .x-btn-center{padding:0 1px;}.x-btn-menu-arrow-wrap .x-btn-center{padding:0;}.x-btn-menu-arrow-wrap .x-btn-center button{width:12px!important;height:21px;padding:0!important;display:block;background:transparent url(../js/ext/resources/images/default/button/btn-arrow.gif) no-repeat left 3px;}.x-btn-with-menu .x-btn-center{padding-right:2px!important;}.x-btn-with-menu .x-btn-center em{display:block;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat right 0;padding-right:10px;}.x-btn-text-icon .x-btn-with-menu .x-btn-center em{display:block;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat right 3px;padding-right:10px;}.x-btn-pressed .x-btn-left{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 -63px;}.x-btn-pressed .x-btn-right{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 -84px;}.x-btn-pressed .x-btn-center{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) repeat-x 0 -126px;}.x-toolbar{border-color:#a9bfd3;border-style:solid;border-width:0 0 1px;display:block;padding:2px;background:#d0def0 url(../js/ext/resources/images/default/toolbar/bg.gif) repeat-x top left;position:relative;zoom:1;}.x-toolbar .x-item-disabled .x-btn-icon{opacity:.35;-moz-opacity:.35;filter:alpha(opacity=35);}.x-toolbar td{vertical-align:middle;}.mso .x-toolbar,.x-grid-mso .x-toolbar{border:0 none;background:url(../js/ext/resources/images/default/grid/mso-hd.gif);}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 11px tahoma,arial,helvetica,sans-serif;}.x-toolbar .x-item-disabled{color:gray;cursor:default;opacity:.6;-moz-opacity:.6;filter:alpha(opacity=60);}.x-toolbar .x-item-disabled *{color:gray;cursor:default;}.x-toolbar .x-btn-left{background:none;}.x-toolbar .x-btn-right{background:none;}.x-toolbar .x-btn-center{background:none;padding:0;}.x-toolbar .x-btn-menu-text-wrap .x-btn-center button{padding-right:2px;}.ext-gecko .x-toolbar .x-btn-menu-text-wrap .x-btn-center button{padding-right:0;}.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{padding:0 2px;}.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{width:12px;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat 0 3px;}.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button{width:12px;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat 0 3px;}.x-toolbar .x-btn-over .x-btn-menu-arrow-wrap .x-btn-center button{background-position:0 -47px;}.x-toolbar .x-btn-over .x-btn-left{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 0;}.x-toolbar .x-btn-over .x-btn-right{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -21px;}.x-toolbar .x-btn-over .x-btn-center{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -42px;}.x-toolbar .x-btn-click .x-btn-left,.x-toolbar .x-btn-pressed .x-btn-left,.x-toolbar .x-btn-menu-active .x-btn-left{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -63px;}.x-toolbar .x-btn-click .x-btn-right,.x-toolbar .x-btn-pressed .x-btn-right,.x-toolbar .x-btn-menu-active .x-btn-right{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -84px;}.x-toolbar .x-btn-click .x-btn-center,.x-toolbar .x-btn-pressed .x-btn-center,.x-toolbar .x-btn-menu-active .x-btn-center{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -105px;}.x-toolbar .x-btn-with-menu .x-btn-center em{padding-right:8px;}.x-toolbar .ytb-text{padding:2px;}.x-toolbar .ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-blue-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.x-toolbar .ytb-spacer{width:2px;}.x-tbar-page-number{width:24px;height:14px;}.x-tbar-page-first{background-image:url(../js/ext/resources/images/default/grid/page-first.gif)!important;}.x-tbar-loading{background-image:url(../js/ext/resources/images/default/grid/done.gif)!important;}.x-tbar-page-last{background-image:url(../js/ext/resources/images/default/grid/page-last.gif)!important;}.x-tbar-page-next{background-image:url(../js/ext/resources/images/default/grid/page-next.gif)!important;}.x-tbar-page-prev{background-image:url(../js/ext/resources/images/default/grid/page-prev.gif)!important;}.x-item-disabled .x-tbar-loading{background-image:url(../js/ext/resources/images/default/grid/loading.gif)!important;}.x-item-disabled .x-tbar-page-first{background-image:url(../js/ext/resources/images/default/grid/page-first-disabled.gif)!important;}.x-item-disabled .x-tbar-page-last{background-image:url(../js/ext/resources/images/default/grid/page-last-disabled.gif)!important;}.x-item-disabled .x-tbar-page-next{background-image:url(../js/ext/resources/images/default/grid/page-next-disabled.gif)!important;}.x-item-disabled .x-tbar-page-prev{background-image:url(../js/ext/resources/images/default/grid/page-prev-disabled.gif)!important;}.x-paging-info{position:absolute;top:5px;right:8px;color:#444;}.x-resizable-handle{position:absolute;z-index:100;font-size:1px;line-height:6px;overflow:hidden;background:#FFF;filter:alpha(opacity=0);opacity:0;zoom:1;}.x-resizable-handle-east{width:6px;cursor:e-resize;right:0;top:0;height:100%;}.ext-ie .x-resizable-handle-east{margin-right:-1px;}.x-resizable-handle-south{width:100%;cursor:s-resize;left:0;bottom:0;height:6px;}.ext-ie .x-resizable-handle-south{margin-bottom:-1px;}.x-resizable-handle-west{width:6px;cursor:w-resize;left:0;top:0;height:100%;}.x-resizable-handle-north{width:100%;cursor:n-resize;left:0;top:0;height:6px;}.x-resizable-handle-southeast{width:6px;cursor:se-resize;right:0;bottom:0;height:6px;z-index:101;}.x-resizable-handle-northwest{width:6px;cursor:nw-resize;left:0;top:0;height:6px;z-index:101;}.x-resizable-handle-northeast{width:6px;cursor:ne-resize;right:0;top:0;height:6px;z-index:101;}.x-resizable-handle-southwest{width:6px;cursor:sw-resize;left:0;bottom:0;height:6px;z-index:101;}.x-resizable-over .x-resizable-handle,.x-resizable-pinned .x-resizable-handle{filter:alpha(opacity=100);opacity:1;}.x-resizable-over .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-east{background:url(../js/ext/resources/images/default/sizer/e-handle.gif);background-position:left;}.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-west{background:url(../js/ext/resources/images/default/sizer/e-handle.gif);background-position:left;}.x-resizable-over .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-south{background:url(../js/ext/resources/images/default/sizer/s-handle.gif);background-position:top;}.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-north{background:url(../js/ext/resources/images/default/sizer/s-handle.gif);background-position:top;}.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{background:url(../js/ext/resources/images/default/sizer/se-handle.gif);background-position:top left;}.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{background:url(../js/ext/resources/images/default/sizer/nw-handle.gif);background-position:bottom right;}.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{background:url(../js/ext/resources/images/default/sizer/ne-handle.gif);background-position:bottom left;}.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{background:url(../js/ext/resources/images/default/sizer/sw-handle.gif);background-position:top right;}.x-resizable-proxy{border:1px dashed #3b5a82;position:absolute;overflow:hidden;display:none;left:0;top:0;z-index:50000;}.x-resizable-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background:#FFF;z-index:200000;-moz-opacity:0;opacity:0;filter:alpha(opacity=0);}.x-grid3{position:relative;overflow:hidden;background-color:#fff;}.x-grid-panel .x-panel-body{overflow:hidden!important;}.x-grid-panel .x-panel-mc .x-panel-body{border:1px solid #99bbe8;}.ext-ie .x-grid3 table,.ext-safari .x-grid3 table{table-layout:fixed;}.x-grid3-viewport{overflow:hidden;}.x-grid3-hd-row td,.x-grid3-row td,.x-grid3-summary-row td{font:normal 11px arial,tahoma,helvetica,sans-serif;-moz-outline:none;-moz-user-focus:normal;}.x-grid3-row td,.x-grid3-summary-row td{line-height:13px;vertical-align:top;padding-left:1px;padding-right:1px;-moz-user-select:none;}.x-grid3-hd-row td{line-height:15px;vertical-align:middle;border-left:1px solid #eee;border-right:1px solid #d0d0d0;}.x-grid3-hd-row .x-grid3-marker-hd{padding:3px;}.x-grid3-row .x-grid3-marker{padding:3px;}.x-grid3-cell-inner,.x-grid3-hd-inner{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;padding:3px 3px 3px 5px;white-space:nowrap;}.x-grid3-hd-inner{position:relative;cursor:inherit;padding:4px 3px 4px 5px;}.x-grid3-row-body{white-space:normal;}.x-grid3-body-cell{-moz-outline:0 none;outline:0 none;}.ext-ie .x-grid3-cell-inner,.ext-ie .x-grid3-hd-inner{width:100%;}.ext-strict .x-grid3-cell-inner,.ext-strict .x-grid3-hd-inner{width:auto;}.x-grid-row-loading{background:#fff url(../js/ext/resources/images/default/shared/loading-balls.gif) no-repeat center center;}.x-grid-page{overflow:hidden;}.x-grid3-row{cursor:default;border:1px solid #ededed;border-top-color:#fff;width:100%;}.x-grid3-row-alt{background-color:#fafafa;}.x-grid3-row-over{border:1px solid #ddd;background:#efefef url(../js/ext/resources/images/default/grid/row-over.gif) repeat-x left top;}.x-grid3-resize-proxy{width:1px;left:0;background-color:#777;cursor:e-resize;cursor:col-resize;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;}.x-grid3-resize-marker{width:1px;left:0;background-color:#777;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;}.x-grid3-focus{position:absolute;top:0;-moz-outline:0 none;outline:0 none;-moz-user-select:normal;-khtml-user-select:normal;}.x-grid3-header{background:#f9f9f9 url(../js/ext/resources/images/default/grid/grid3-hrow.gif) repeat-x 0 bottom;cursor:default;zoom:1;padding:1px 0 0;}.x-grid3-header-pop{border-left:1px solid #d0d0d0;float:right;clear:none;}.x-grid3-header-pop-inner{border-left:1px solid #eee;width:14px;height:19px;background:transparent url(../js/ext/resources/images/default/grid/hd-pop.gif) no-repeat center center;}.ext-ie .x-grid3-header-pop-inner{width:15px;}.ext-strict .x-grid3-header-pop-inner{width:14px;}.x-grid3-header-inner{overflow:hidden;zoom:1;float:left;}.x-grid3-header-offset{padding-left:1px;width:10000px;}td.x-grid3-hd-over,td.sort-desc,td.sort-asc,td.x-grid3-hd-menu-open{border-left:1px solid #aaccf6;border-right:1px solid #aaccf6;}td.x-grid3-hd-over .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.sort-asc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner{background:#ebf3fd url(../js/ext/resources/images/default/grid/grid3-hrow-over.gif) repeat-x left bottom;}.x-grid3-sort-icon{background-repeat:no-repeat;display:none;height:4px;width:13px;margin-left:3px;vertical-align:middle;}.sort-asc .x-grid3-sort-icon{background-image:url(../js/ext/resources/images/default/grid/sort_asc.gif);display:inline;}.sort-desc .x-grid3-sort-icon{background-image:url(../js/ext/resources/images/default/grid/sort_desc.gif);display:inline;}.ext-strict .ext-ie .x-grid3-header-inner{position:relative;}.ext-strict .ext-ie6 .x-grid3-hd{position:relative;}.ext-strict .ext-ie6 .x-grid3-hd-inner{position:static;}.x-grid3-body{zoom:1;}.x-grid3-scroller{overflow:auto;zoom:1;position:relative;}.x-grid3-cell-text,.x-grid3-hd-text{display:block;padding:3px 5px;-moz-user-select:none;-khtml-user-select:none;color:#000;}.x-grid3-split{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;cursor:e-resize;cursor:col-resize;display:block;font-size:1px;height:16px;overflow:hidden;position:absolute;top:2px;width:6px;z-index:3;}.x-grid3-hd-text{color:#15428b;}.x-dd-drag-proxy .x-grid3-hd-inner{background:#ebf3fd url(../js/ext/resources/images/default/grid/grid3-hrow-over.gif) repeat-x left bottom;width:120px;padding:3px;border:1px solid #aaccf6;overflow:hidden;}.col-move-top,.col-move-bottom{width:9px;height:9px;position:absolute;top:0;line-height:1px;font-size:1px;overflow:hidden;visibility:hidden;z-index:20000;}.col-move-top{background:transparent url(../js/ext/resources/images/default/grid/col-move-top.gif) no-repeat left top;}.col-move-bottom{background:transparent url(../js/ext/resources/images/default/grid/col-move-bottom.gif) no-repeat left top;}.x-grid3-row-selected{background:#DFE8F6!important;border:1px dotted #a3bae9;}.x-grid3-cell-selected{background-color:#B8CFEE!important;color:#000;}.x-grid3-cell-selected span{color:#000!important;}.x-grid3-cell-selected .x-grid3-cell-text{color:#000;}.x-grid3-locked td.x-grid3-row-marker,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{background:#ebeadb url(../js/ext/resources/images/default/grid/grid-hrow.gif) repeat-x 0 bottom!important;vertical-align:middle!important;color:#000;padding:0;border-top:1px solid #FFF;border-bottom:none!important;border-right:1px solid #6fa0df!important;text-align:center;}.x-grid3-locked td.x-grid3-row-marker div,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div{padding:0 4px;color:#15428b!important;text-align:center;}.x-grid3-dirty-cell{background:transparent url(../js/ext/resources/images/default/grid/dirty.gif) no-repeat 0 0;}.x-grid3-topbar,.x-grid3-bottombar{font:normal 11px arial,tahoma,helvetica,sans-serif;overflow:hidden;display:none;zoom:1;position:relative;}.x-grid3-topbar .x-toolbar{border-right:0 none;}.x-grid3-bottombar .x-toolbar{border-right:0 none;border-bottom:0 none;border-top:1px solid #a9bfd3;}.x-props-grid .x-grid3-cell{padding:1px;}.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y -16px!important;padding-left:12px;color:#000!important;}.x-props-grid .x-grid3-body .x-grid3-td-name{padding:1px;padding-right:0;background:#FFF!important;border:0 none;border-right:1px solid #eee;}.xg-hmenu-sort-asc .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-asc.gif);}.xg-hmenu-sort-desc .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-desc.gif);}.xg-hmenu-lock .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-lock.gif);}.xg-hmenu-unlock .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-unlock.gif);}.x-grid3-col-dd{border:0 none;padding:0;background:transparent;}.x-dd-drag-ghost .x-grid3-dd-wrap{padding:1px 3px 3px 1px;}.x-grid3-hd{-moz-user-select:none;}.x-grid3-hd-btn{display:none;position:absolute;width:14px;background:#c3daf9 url(../js/ext/resources/images/default/grid/grid3-hd-btn.gif) no-repeat left center;right:0;top:0;z-index:2;cursor:pointer;}.x-grid3-hd-over .x-grid3-hd-btn,.x-grid3-hd-menu-open .x-grid3-hd-btn{display:block;}a.x-grid3-hd-btn:hover{background-position:-14px center;}.x-grid3-body .x-grid3-td-expander{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y right;}.x-grid3-body .x-grid3-td-expander .x-grid3-cell-inner{padding:0!important;height:100%;}.x-grid3-row-expander{width:100%;height:18px;background-position:4px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/grid/row-expand-sprite.gif);}.x-grid3-row-collapsed .x-grid3-row-expander{background-position:4px 2px;}.x-grid3-row-expanded .x-grid3-row-expander{background-position:-21px 2px;}.x-grid3-row-collapsed .x-grid3-row-body{display:none!important;}.x-grid3-row-expanded .x-grid3-row-body{display:block!important;}.x-grid3-body .x-grid3-td-checker{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y right;}.x-grid3-body .x-grid3-td-checker .x-grid3-cell-inner,.x-grid3-header .x-grid3-td-checker .x-grid3-hd-inner{padding:0!important;height:100%;}.x-grid3-row-checker,.x-grid3-hd-checker{width:100%;height:18px;background-position:2px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/grid/row-check-sprite.gif);}.x-grid3-row .x-grid3-row-checker{background-position:2px 2px;}.x-grid3-row-selected .x-grid3-row-checker,.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 2px;}.x-grid3-hd-checker{background-position:2px 3px;}.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 3px;}.x-grid3-body .x-grid3-td-numberer{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y right;}.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner{padding:3px 5px 0 0!important;text-align:right;color:#444;}.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer,.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-sel-bg.gif) repeat-y right;}.x-grid3-body .x-grid3-check-col-td .x-grid3-cell-inner{padding:1px 0 0!important;}.x-grid3-check-col{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/menu/unchecked.gif);}.x-grid3-check-col-on{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/menu/checked.gif);}.x-grid-group,.x-grid-group-body,.x-grid-group-hd{zoom:1;}.x-grid-group-hd{border-bottom:2px solid #99bbe8;cursor:pointer;padding-top:6px;}.x-grid-group-hd div{background:transparent url(../js/ext/resources/images/default/grid/group-expand-sprite.gif) no-repeat 3px -47px;padding:4px 4px 4px 17px;color:#3764a0;font:bold 11px tahoma,arial,helvetica,sans-serif;}.x-grid-group-collapsed .x-grid-group-hd div{background-position:3px 3px;}.x-grid-group-collapsed .x-grid-group-body{display:none;}.x-group-by-icon{background-image:url(../js/ext/resources/images/default/grid/group-by.gif);}.x-cols-icon{background-image:url(../js/ext/resources/images/default/grid/columns.gif);}.x-show-groups-icon{background-image:url(../js/ext/resources/images/default/grid/group-by.gif);}.ext-ie .x-grid3 .x-editor .x-form-text{position:relative;top:-1px;}.ext-ie .x-props-grid .x-editor .x-form-text{position:static;top:0;}.x-grid-empty{padding:10px;color:gray;font:normal 11px tahoma,arial,helvetica,sans-serif;}.ext-ie7 .x-grid-panel .x-panel-bbar{position:relative;}.x-dd-drag-proxy{position:absolute;left:0;top:0;visibility:hidden;z-index:15000;}.x-dd-drag-ghost{color:#000;font:normal 11px arial,helvetica,sans-serif;-moz-opacity:.85;opacity:.85;filter:alpha(opacity=85);border-top:1px solid #ddd;border-left:1px solid #ddd;border-right:1px solid #bbb;border-bottom:1px solid #bbb;padding:3px;padding-left:20px;background-color:#FFF;white-space:nowrap;}.x-dd-drag-repair .x-dd-drag-ghost{-moz-opacity:.4;opacity:.4;filter:alpha(opacity=40);border:0 none;padding:0;background-color:transparent;}.x-dd-drag-repair .x-dd-drop-icon{visibility:hidden;}.x-dd-drop-icon{position:absolute;top:3px;left:3px;display:block;width:16px;height:16px;background-color:transparent;background-position:center;background-repeat:no-repeat;z-index:1;}.x-dd-drop-nodrop .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/dd/drop-no.gif);}.x-dd-drop-ok .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/dd/drop-yes.gif);}.x-dd-drop-ok-add .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/dd/drop-add.gif);}.x-view-selector{position:absolute;left:0;top:0;width:0;background:#c3daf9;border:1px dotted #39b;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);zoom:1;}.x-tree .x-panel-body{background-color:#fff;}.ext-strict .ext-ie .x-tree .x-panel-bwrap{position:relative;overflow:hidden;}.x-tree-icon,.x-tree-ec-icon,.x-tree-elbow-line,.x-tree-elbow,.x-tree-elbow-end,.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{border:0 none;height:18px;margin:0;padding:0;vertical-align:top;width:16px;background-repeat:no-repeat;}.x-tree-node-collapsed .x-tree-node-icon,.x-tree-node-expanded .x-tree-node-icon,.x-tree-node-leaf .x-tree-node-icon{border:0 none;height:18px;margin:0;padding:0;vertical-align:top;width:16px;background-position:center;background-repeat:no-repeat;}.ext-ie .x-tree-node-indent img,.ext-ie .x-tree-node-icon,.ext-ie .x-tree-ec-icon{vertical-align:middle!important;}.x-tree-node-expanded .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/folder-open.gif);}.x-tree-node-leaf .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/leaf.gif);}.x-tree-node-collapsed .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/folder.gif);}.ext-ie input.x-tree-node-cb{width:15px;height:15px;}input.x-tree-node-cb{margin-left:1px;}.ext-ie input.x-tree-node-cb{margin-left:0;}.x-tree-noicon .x-tree-node-icon{width:0;height:0;}.x-tree-node-loading .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/loading.gif)!important;}.x-tree-node-loading a span{font-style:italic;color:#444;}.ext-ie .x-tree-node-el input{width:15px;height:15px;}.x-tree-lines .x-tree-elbow{background-image:url(../js/ext/resources/images/default/tree/elbow.gif);}.x-tree-lines .x-tree-elbow-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-plus.gif);}.x-tree-lines .x-tree-elbow-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-minus.gif);}.x-tree-lines .x-tree-elbow-end{background-image:url(../js/ext/resources/images/default/tree/elbow-end.gif);}.x-tree-lines .x-tree-elbow-end-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-plus.gif);}.x-tree-lines .x-tree-elbow-end-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-minus.gif);}.x-tree-lines .x-tree-elbow-line{background-image:url(../js/ext/resources/images/default/tree/elbow-line.gif);}.x-tree-no-lines .x-tree-elbow{background:transparent;}.x-tree-no-lines .x-tree-elbow-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-plus-nl.gif);}.x-tree-no-lines .x-tree-elbow-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-minus-nl.gif);}.x-tree-no-lines .x-tree-elbow-end{background:transparent;}.x-tree-no-lines .x-tree-elbow-end-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-plus-nl.gif);}.x-tree-no-lines .x-tree-elbow-end-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-minus-nl.gif);}.x-tree-no-lines .x-tree-elbow-line{background:transparent;}.x-tree-arrows .x-tree-elbow{background:transparent;}.x-tree-arrows .x-tree-elbow-plus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat 0 0;}.x-tree-arrows .x-tree-elbow-minus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat -16px 0;}.x-tree-arrows .x-tree-elbow-end{background:transparent;}.x-tree-arrows .x-tree-elbow-end-plus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat 0 0;}.x-tree-arrows .x-tree-elbow-end-minus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat -16px 0;}.x-tree-arrows .x-tree-elbow-line{background:transparent;}.x-tree-arrows .x-tree-ec-over .x-tree-elbow-plus{background-position:-32px 0;}.x-tree-arrows .x-tree-ec-over .x-tree-elbow-minus{background-position:-48px 0;}.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-plus{background-position:-32px 0;}.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-minus{background-position:-48px 0;}.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{cursor:pointer;}.ext-ie ul.x-tree-node-ct{font-size:0;line-height:0;zoom:1;}.x-tree-node{color:#000;font:normal 11px arial,tahoma,helvetica,sans-serif;white-space:nowrap;}.x-tree-node-el{line-height:18px;cursor:pointer;}.x-tree-node a,.x-dd-drag-ghost a{text-decoration:none;color:#000;-khtml-user-select:none;-moz-user-select:none;-kthml-user-focus:normal;-moz-user-focus:normal;-moz-outline:0 none;outline:0 none;}.x-tree-node a span,.x-dd-drag-ghost a span{text-decoration:none;color:#000;padding:1px 3px 1px 2px;}.x-tree-node .x-tree-node-disabled a span{color:gray!important;}.x-tree-node .x-tree-node-disabled .x-tree-node-icon{-moz-opacity:.5;opacity:.5;filter:alpha(opacity=50);}.x-tree-node .x-tree-node-inline-icon{background:transparent;}.x-tree-node a:hover,.x-dd-drag-ghost a:hover{text-decoration:none;}.x-tree-node div.x-tree-drag-insert-below{border-bottom:1px dotted #36c;}.x-tree-node div.x-tree-drag-insert-above{border-top:1px dotted #36c;}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below{border-bottom:0 none;}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above{border-top:0 none;}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom:2px solid #36c;}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top:2px solid #36c;}.x-tree-node .x-tree-drag-append a span{background:#ddd;border:1px dotted gray;}.x-tree-node .x-tree-node-over{background-color:#eee;}.x-tree-node .x-tree-selected{background-color:#d9e8fb;}.x-dd-drag-ghost .x-tree-node-indent,.x-dd-drag-ghost .x-tree-ec-icon{display:none!important;}.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-add.gif);}.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-over.gif);}.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-under.gif);}.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-between.gif);}.x-date-picker{border:1px solid #1b376c;border-top:0 none;background:#fff;position:relative;}.x-date-picker a{-moz-outline:0 none;outline:0 none;}.x-date-inner,.x-date-inner td,.x-date-inner th{border-collapse:separate;}.x-date-middle,.x-date-left,.x-date-right{background:url(../js/ext/resources/images/default/shared/hd-sprite.gif) repeat-x 0 -83px;color:#FFF;font:bold 11px "sans serif",tahoma,verdana,helvetica;overflow:hidden;}.x-date-middle .x-btn-left,.x-date-middle .x-btn-center,.x-date-middle .x-btn-right{background:transparent!important;vertical-align:middle;}.x-date-middle .x-btn .x-btn-text{color:#fff;}.x-date-middle .x-btn-with-menu .x-btn-center em{background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow-light.gif) no-repeat right 0;}.x-date-right,.x-date-left{width:18px;}.x-date-right{text-align:right;}.x-date-middle{padding-top:2px;padding-bottom:2px;}.x-date-right a,.x-date-left a{display:block;width:16px;height:16px;background-position:center;background-repeat:no-repeat;cursor:pointer;-moz-opacity:.6;opacity:.6;filter:alpha(opacity=60);}.x-date-right a:hover,.x-date-left a:hover{-moz-opacity:1;opacity:1;filter:alpha(opacity=100);}.x-date-right a{background-image:url(../js/ext/resources/images/default/shared/right-btn.gif);margin-right:2px;text-decoration:none!important;}.x-date-left a{background-image:url(../js/ext/resources/images/default/shared/left-btn.gif);margin-left:2px;text-decoration:none!important;}table.x-date-inner{width:100%;table-layout:fixed;}.x-date-inner th{width:25px;}.x-date-inner th{background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;text-align:right!important;border-bottom:1px solid #a3bad9;font:normal 10px arial,helvetica,tahoma,sans-serif;color:#233d6d;cursor:default;padding:0;border-collapse:separate;}.x-date-inner th span{display:block;padding:2px;padding-right:7px;}.x-date-inner td{border:1px solid #fff;text-align:right;padding:0;}.x-date-inner a{padding:2px 5px;display:block;font:normal 11px arial,helvetica,tahoma,sans-serif;text-decoration:none;color:#000;text-align:right;zoom:1;}.x-date-inner .x-date-active{cursor:pointer;color:#000;}.x-date-inner .x-date-selected a{background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;border:1px solid #8db2e3;padding:1px 4px;}.x-date-inner .x-date-today a{border:1px solid #8B0000;padding:1px 4px;}.x-date-inner .x-date-selected span{font-weight:700;}.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a{color:#aaa;text-decoration:none!important;}.x-date-bottom{padding:4px;border-top:1px solid #a3bad9;background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;}.x-date-inner a:hover,.x-date-inner .x-date-disabled a:hover{text-decoration:none!important;color:#000;background:#ddecfe;}.x-date-inner .x-date-disabled a{cursor:default;background:#eee;color:#bbb;}.x-date-mmenu{background:#eee!important;}.x-date-mmenu .x-menu-item{font-size:10px;padding:1px 24px 1px 4px;white-space:nowrap;color:#000;}.x-date-mmenu .x-menu-item .x-menu-item-icon{width:10px;height:10px;margin-right:5px;background-position:center -4px!important;}.x-date-mp{position:absolute;left:0;top:0;background:#FFF;display:none;}.x-date-mp td{padding:2px;font:normal 11px arial,helvetica,tahoma,sans-serif;}td.x-date-mp-month,td.x-date-mp-year,td.x-date-mp-ybtn{border:0 none;text-align:center;vertical-align:middle;width:25%;}.x-date-mp-ok{margin-right:3px;}.x-date-mp-btns button{text-decoration:none;text-align:center;text-decoration:none!important;background:#083772;color:#FFF;border:1px solid;border-color:#36c #005 #005 #36c;padding:1px 3px;font:normal 11px arial,helvetica,tahoma,sans-serif;cursor:pointer;}.x-date-mp-btns{background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;}.x-date-mp-btns td{border-top:1px solid #c5d2df;text-align:center;}td.x-date-mp-month a,td.x-date-mp-year a{display:block;padding:2px 4px;text-decoration:none;text-align:center;color:#15428b;}td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{color:#15428b;text-decoration:none;cursor:pointer;background:#ddecfe;}td.x-date-mp-sel a{padding:1px 3px;background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;border:1px solid #8db2e3;}.x-date-mp-ybtn a{overflow:hidden;width:15px;height:15px;cursor:pointer;background:transparent url(../js/ext/resources/images/default/panel/tool-sprites.gif) no-repeat;display:block;margin:0 auto;}.x-date-mp-ybtn a.x-date-mp-next{background-position:0 -120px;}.x-date-mp-ybtn a.x-date-mp-next:hover{background-position:-15px -120px;}.x-date-mp-ybtn a.x-date-mp-prev{background-position:0 -105px;}.x-date-mp-ybtn a.x-date-mp-prev:hover{background-position:-15px -105px;}.x-date-mp-ybtn{text-align:center;}td.x-date-mp-sep{border-right:1px solid #c5d2df;}.x-tip{position:absolute;top:0;left:0;visibility:hidden;z-index:20000;border:0 none;}.x-tip .x-tip-close{background-image:url(../js/ext/resources/images/default/qtip/close.gif);height:15px;float:right;width:15px;margin:0 0 2px 2px;cursor:pointer;display:none;}.x-tip .x-tip-tc{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -62px;padding-top:3px;overflow:hidden;zoom:1;}.x-tip .x-tip-tl{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 0;padding-left:6px;overflow:hidden;zoom:1;}.x-tip .x-tip-tr{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat right 0;padding-right:6px;overflow:hidden;zoom:1;}.x-tip .x-tip-bc{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -121px;height:3px;overflow:hidden;}.x-tip .x-tip-bl{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -59px;padding-left:6px;zoom:1;}.x-tip .x-tip-br{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat right -59px;padding-right:6px;zoom:1;}.x-tip .x-tip-mc{border:0 none;font:normal 11px tahoma,arial,helvetica,sans-serif;}.x-tip .x-tip-ml{background:#fff url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -124px;padding-left:6px;zoom:1;}.x-tip .x-tip-mr{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat right -124px;padding-right:6px;zoom:1;}.ext-ie .x-tip .x-tip-header,.ext-ie .x-tip .x-tip-tc{font-size:0;line-height:0;}.x-tip .x-tip-header-text{font:bold 11px tahoma,arial,helvetica,sans-serif;padding:0;margin:0 0 2px;color:#444;}.x-tip .x-tip-body{font:normal 11px tahoma,arial,helvetica,sans-serif;margin:0!important;line-height:14px;color:#444;padding:0;}.x-tip .x-tip-body .loading-indicator{margin:0;}.x-tip-draggable .x-tip-header,.x-tip-draggable .x-tip-header-text{cursor:move;}.x-form-invalid-tip .x-tip-tc{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) repeat-x 0 -12px;padding-top:6px;}.x-form-invalid-tip .x-tip-tl{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}.x-form-invalid-tip .x-tip-tr{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}.x-form-invalid-tip .x-tip-bc{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) repeat-x 0 -18px;height:6px;}.x-form-invalid-tip .x-tip-bl{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) no-repeat 0 -6px;}.x-form-invalid-tip .x-tip-br{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) no-repeat right -6px;}.x-form-invalid-tip .x-tip-ml{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}.x-form-invalid-tip .x-tip-mr{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}.x-form-invalid-tip .x-tip-body{padding:2px;}.x-form-invalid-tip .x-tip-body{padding-left:24px;background:transparent url(../js/ext/resources/images/default/form/exclamation.gif) no-repeat 2px 2px;}.x-menu{border:1px solid #718bb7;z-index:15000;zoom:1;background:#f0f0f0 url(../js/ext/resources/images/default/menu/menu.gif) repeat-y;padding:2px;}.x-menu a{text-decoration:none!important;}.ext-ie .x-menu{zoom:1;overflow:hidden;}.x-menu-list{background:transparent;border:0 none;}.x-menu li{line-height:100%;}.x-menu li.x-menu-sep-li{font-size:1px;line-height:1px;}.x-menu-list-item{font:normal 11px tahoma,arial,sans-serif;white-space:nowrap;-moz-user-select:none;-khtml-user-select:none;display:block;padding:1px;}.x-menu-item-arrow{background:transparent url(../js/ext/resources/images/default/menu/menu-parent.gif) no-repeat right;}.x-menu-sep{display:block;font-size:1px;line-height:1px;margin:2px 3px;background-color:#e0e0e0;border-bottom:1px solid #fff;overflow:hidden;}.x-menu-focus{position:absolute;left:0;top:-5px;width:0;height:0;line-height:1px;}.x-menu a.x-menu-item{display:block;line-height:16px;padding:3px 21px 3px 3px;white-space:nowrap;text-decoration:none;color:#222;-moz-outline:0 none;outline:0 none;cursor:pointer;}.x-menu-item-active{background:#ebf3fd url(../js/ext/resources/images/default/menu/item-over.gif) repeat-x left bottom;border:1px solid #aaccf6;padding:0;}.x-menu-item-active a.x-menu-item{color:#233d6d;}.x-menu-item-icon{border:0 none;height:16px;padding:0;vertical-align:top;width:16px;margin:0 8px 0 0;background-position:center;}.x-menu-check-item .x-menu-item-icon{background:transparent url(../js/ext/resources/images/default/menu/unchecked.gif) no-repeat center;}.x-menu-item-checked .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/menu/checked.gif);}.x-menu-group-item .x-menu-item-icon{background:transparent;}.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{background:transparent url(../js/ext/resources/images/default/menu/group-checked.gif) no-repeat center;}.x-menu-plain{background:#fff!important;}.x-menu-date-item{padding:0;}.x-menu .x-color-palette,.x-menu .x-date-picker{margin-left:26px;margin-right:4px;}.x-menu .x-date-picker{border:1px solid #a3bad9;margin-top:2px;margin-bottom:2px;}.x-menu-plain .x-color-palette,.x-menu-plain .x-date-picker{margin:0;border:0 none;}.x-date-menu{padding:0!important;}.x-cycle-menu .x-menu-item-checked{border:1px dotted #a3bae9!important;background:#DFE8F6;padding:0;}.x-box-tl{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat 0 0;zoom:1;}.x-box-tc{height:8px;background:transparent url(../js/ext/resources/images/default/box/tb.gif) repeat-x 0 0;overflow:hidden;}.x-box-tr{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat right -8px;}.x-box-ml{background:transparent url(../js/ext/resources/images/default/box/l.gif) repeat-y 0;padding-left:4px;overflow:hidden;zoom:1;}.x-box-mc{background:#eee url(../js/ext/resources/images/default/box/tb.gif) repeat-x 0 -16px;padding:4px 10px;font-family:"Myriad Pro","Myriad Web",Tahoma,Helvetica,Arial,sans-serif;color:#393939;font-size:12px;}.x-box-mc h3{font-size:14px;font-weight:700;margin:0 0 4px;zoom:1;}.x-box-mr{background:transparent url(../js/ext/resources/images/default/box/r.gif) repeat-y right;padding-right:4px;overflow:hidden;}.x-box-bl{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat 0 -16px;zoom:1;}.x-box-bc{background:transparent url(../js/ext/resources/images/default/box/tb.gif) repeat-x 0 -8px;height:8px;overflow:hidden;}.x-box-br{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat right -24px;}.x-box-tl,.x-box-bl{padding-left:8px;overflow:hidden;}.x-box-tr,.x-box-br{padding-right:8px;overflow:hidden;}.x-box-blue .x-box-bl,.x-box-blue .x-box-br,.x-box-blue .x-box-tl,.x-box-blue .x-box-tr{background-image:url(../js/ext/resources/images/default/box/corners-blue.gif);}.x-box-blue .x-box-bc,.x-box-blue .x-box-mc,.x-box-blue .x-box-tc{background-image:url(../js/ext/resources/images/default/box/tb-blue.gif);}.x-box-blue .x-box-mc{background-color:#c3daf9;}.x-box-blue .x-box-mc h3{color:#17385b;}.x-box-blue .x-box-ml{background-image:url(../js/ext/resources/images/default/box/l-blue.gif);}.x-box-blue .x-box-mr{background-image:url(../js/ext/resources/images/default/box/r-blue.gif);}#x-debug-browser .x-tree .x-tree-node a span{color:#222297;font-size:11px;padding-top:2px;font-family:monotype,"courier new",sans-serif;line-height:18px;}#x-debug-browser .x-tree a i{color:#FF4545;font-style:normal;}#x-debug-browser .x-tree a em{color:#999;}#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{background:#c3daf9;}#x-debug-browser .x-tool-toggle{background-position:0 -75px;}#x-debug-browser .x-tool-toggle-over{background-position:-15px -75px;}#x-debug-browser.x-panel-collapsed .x-tool-toggle{background-position:0 -60px;}#x-debug-browser.x-panel-collapsed .x-tool-toggle-over{background-position:-15px -60px;}.x-combo-list{border:1px solid #98c0f4;background:#ddecfe;zoom:1;overflow:hidden;}.x-combo-list-inner{overflow:auto;background:#FFF;position:relative;zoom:1;overflow-x:hidden;}.x-combo-list-hd{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#15428b;background-image:url(../js/ext/resources/images/default/layout/panel-title-light-bg.gif);border-bottom:1px solid #98c0f4;padding:3px;}.x-resizable-pinned .x-combo-list-inner{border-bottom:1px solid #98c0f4;}.x-combo-list-item{font:normal 12px tahoma,arial,helvetica,sans-serif;padding:2px;border:1px solid #fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.x-combo-list .x-combo-selected{border:1px dotted #a3bae9!important;background:#DFE8F6;cursor:pointer;}.x-combo-noedit{cursor:pointer;}.x-combo-list .x-toolbar{border-top:1px solid #98c0f4;border-bottom:0 none;}.x-combo-list-small .x-combo-list-item{font:normal 11px tahoma,arial,helvetica,sans-serif;}.x-panel{border-style:solid;border-color:#99bbe8;border-width:0;}.x-panel-header{overflow:hidden;zoom:1;color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 3px 4px 5px;border:1px solid #99bbe8;line-height:15px;background:transparent url(../js/ext/resources/images/default/panel/white-top-bottom.gif) repeat-x 0 -1px;}.x-panel-body{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;background:#FFF;position:relative;}.x-panel-bbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}.x-panel-tbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}.x-panel-tbar-noheader .x-toolbar,.x-panel-mc .x-panel-tbar .x-toolbar{border-top:1px solid #99bbe8;border-bottom:0 none;}.x-panel-body-noheader,.x-panel-mc .x-panel-body{border-top:1px solid #99bbe8;}.x-panel-header{overflow:hidden;zoom:1;}.x-panel-tl .x-panel-header{color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 0 4px;border:0 none;background:transparent;}.x-panel-tl .x-panel-icon,.x-window-tl .x-panel-icon{padding-left:20px!important;background-repeat:no-repeat;background-position:0 4px;zoom:1;}.x-panel-inline-icon{width:16px;height:16px;background-repeat:no-repeat;background-position:0 0;vertical-align:middle;margin-right:4px;margin-top:-1px;margin-bottom:-1px;}.x-panel-tc{background:transparent url(../js/ext/resources/images/default/panel/top-bottom.gif) repeat-x 0 0;overflow:hidden;}.ext-strict .ext-ie7 .x-panel-tc{overflow:visible;}.x-panel-tl{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat 0 0;padding-left:6px;zoom:1;border-bottom:1px solid #99bbe8;}.x-panel-tr{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat right 0;zoom:1;padding-right:6px;}.x-panel-bc{background:transparent url(../js/ext/resources/images/default/panel/top-bottom.gif) repeat-x 0 bottom;zoom:1;}.x-panel-bc .x-panel-footer{zoom:1;}.x-panel-bl{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat 0 bottom;padding-left:6px;zoom:1;}.x-panel-br{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat right bottom;padding-right:6px;zoom:1;}.x-panel-mc{border:0 none;padding:0;margin:0;font:normal 11px tahoma,arial,helvetica,sans-serif;padding-top:6px;background:#dfe8f6;}.x-panel-mc .x-panel-body{background:transparent;border:0 none;}.x-panel-ml{background:#fff url(../js/ext/resources/images/default/panel/left-right.gif) repeat-y 0 0;padding-left:6px;zoom:1;}.x-panel-mr{background:transparent url(../js/ext/resources/images/default/panel/left-right.gif) repeat-y right 0;padding-right:6px;zoom:1;}.x-panel-bc .x-panel-footer{padding-bottom:6px;}.x-panel-nofooter .x-panel-bc{height:6px;font-size:0;line-height:0;}.x-panel-bwrap{overflow:hidden;zoom:1;}.x-panel-body{overflow:hidden;zoom:1;}.x-panel-collapsed .x-resizable-handle{display:none;}.ext-gecko .x-panel-animated div{overflow:hidden!important;}.x-plain-body{overflow:hidden;}.x-plain-bbar .x-toolbar{overflow:hidden;padding:2px;}.x-plain-tbar .x-toolbar{overflow:hidden;padding:2px;}.x-plain-bwrap{overflow:hidden;zoom:1;}.x-plain{overflow:hidden;}.x-tool{overflow:hidden;width:15px;height:15px;float:right;cursor:pointer;background:transparent url(../js/ext/resources/images/default/panel/tool-sprites.gif) no-repeat;margin-left:2px;}.x-tool-toggle{background-position:0 -60px;}.x-tool-toggle-over{background-position:-15px -60px;}.x-panel-collapsed .x-tool-toggle{background-position:0 -75px;}.x-panel-collapsed .x-tool-toggle-over{background-position:-15px -75px;}.x-tool-close{background-position:0 0;}.x-tool-close-over{background-position:-15px 0;}.x-tool-minimize{background-position:0 -15px;}.x-tool-minimize-over{background-position:-15px -15px;}.x-tool-maximize{background-position:0 -30px;}.x-tool-maximize-over{background-position:-15px -30px;}.x-tool-restore{background-position:0 -45px;}.x-tool-restore-over{background-position:-15px -45px;}.x-tool-gear{background-position:0 -90px;}.x-tool-gear-over{background-position:-15px -90px;}.x-tool-pin{background-position:0 -135px;}.x-tool-pin-over{background-position:-15px -135px;}.x-tool-unpin{background-position:0 -150px;}.x-tool-unpin-over{background-position:-15px -150px;}.x-tool-right{background-position:0 -165px;}.x-tool-right-over{background-position:-15px -165px;}.x-tool-left{background-position:0 -180px;}.x-tool-left-over{background-position:-15px -180px;}.x-tool-up{background-position:0 -210px;}.x-tool-up-over{background-position:-15px -210px;}.x-tool-down{background-position:0 -195px;}.x-tool-down-over{background-position:-15px -195px;}.x-tool-refresh{background-position:0 -225px;}.x-tool-refresh-over{background-position:-15px -225px;}.x-tool-minus{background-position:0 -255px;}.x-tool-minus-over{background-position:-15px -255px;}.x-tool-plus{background-position:0 -240px;}.x-tool-plus-over{background-position:-15px -240px;}.x-tool-search{background-position:0 -270px;}.x-tool-search-over{background-position:-15px -270px;}.x-tool-save{background-position:0 -285px;}.x-tool-save-over{background-position:-15px -285px;}.x-tool-help{background-position:0 -300px;}.x-tool-help-over{background-position:-15px -300px;}.x-tool-print{background-position:0 -315px;}.x-tool-print-over{background-position:-15px -315px;}.x-panel-ghost{background:#cbddf3;z-index:12000;overflow:hidden;position:absolute;left:0;top:0;opacity:.65;-moz-opacity:.65;filter:alpha(opacity=65);}.x-panel-ghost ul{margin:0;padding:0;overflow:hidden;font-size:0;line-height:0;border:1px solid #99bbe8;border-top:0 none;display:block;}.x-panel-ghost *{cursor:move!important;}.x-panel-dd-spacer{border:2px dashed #99bbe8;}.x-panel-btns-ct{padding:5px;}.x-panel-btns-ct .x-btn{float:right;clear:none;}.x-panel-btns-ct .x-panel-btns td{border:0;padding:0;}.x-panel-btns-ct .x-panel-btns-right table{float:right;clear:none;}.x-panel-btns-ct .x-panel-btns-left table{float:left;clear:none;}.x-panel-btns-ct .x-panel-btns-center{text-align:center;}.x-panel-btns-ct .x-panel-btns-center table{margin:0 auto;}.x-panel-btns-ct table td.x-panel-btn-td{padding:3px;}.x-panel-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;}.x-panel-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;}.x-panel-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;}.x-panel-btns-ct .x-btn-over .x-btn-left{background-position:0 -63px;}.x-panel-btns-ct .x-btn-over .x-btn-right{background-position:0 -84px;}.x-panel-btns-ct .x-btn-over .x-btn-center{background-position:0 -105px;}.x-panel-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;}.x-panel-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;}.x-panel-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;}.x-window{zoom:1;}.x-window .x-resizable-handle{opacity:0;-moz-opacity:0;filter:alpha(opacity=0);}.x-window-proxy{background:#C7DFFC;border:1px solid #99bbe8;z-index:12000;overflow:hidden;position:absolute;left:0;top:0;display:none;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);}.x-window-header{overflow:hidden;zoom:1;}.x-window-bwrap{z-index:1;position:relative;zoom:1;}.x-window-tl .x-window-header{color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 0 4px;}.x-window-header-text{cursor:pointer;}.x-window-tc{background:transparent url(../js/ext/resources/images/default/window/top-bottom.png) repeat-x 0 0;overflow:hidden;zoom:1;}.x-window-tl{background:transparent url(../js/ext/resources/images/default/window/left-corners.png) no-repeat 0 0;padding-left:6px;zoom:1;z-index:1;position:relative;}.x-window-tr{background:transparent url(../js/ext/resources/images/default/window/right-corners.png) no-repeat right 0;padding-right:6px;}.x-window-bc{background:transparent url(../js/ext/resources/images/default/window/top-bottom.png) repeat-x 0 bottom;zoom:1;}.x-window-bc .x-window-footer{padding-bottom:6px;zoom:1;font-size:0;line-height:0;}.x-window-bl{background:transparent url(../js/ext/resources/images/default/window/left-corners.png) no-repeat 0 bottom;padding-left:6px;zoom:1;}.x-window-br{background:transparent url(../js/ext/resources/images/default/window/right-corners.png) no-repeat right bottom;padding-right:6px;zoom:1;}.x-window-mc{border:1px solid #99bbe8;padding:0;margin:0;font:normal 11px tahoma,arial,helvetica,sans-serif;background:#dfe8f6;}.x-window-ml{background:transparent url(../js/ext/resources/images/default/window/left-right.png) repeat-y 0 0;padding-left:6px;zoom:1;}.x-window-mr{background:transparent url(../js/ext/resources/images/default/window/left-right.png) repeat-y right 0;padding-right:6px;zoom:1;}.x-panel-nofooter .x-window-bc{height:6px;}.x-window-body{overflow:hidden;}.x-window-bwrap{overflow:hidden;}.x-window-maximized .x-window-bl,.x-window-maximized .x-window-br,.x-window-maximized .x-window-ml,.x-window-maximized .x-window-mr,.x-window-maximized .x-window-tl,.x-window-maximized .x-window-tr{padding:0;}.x-window-maximized .x-window-footer{padding-bottom:0;}.x-window-maximized .x-window-tc{padding-left:3px;padding-right:3px;background-color:#FFF;}.x-window-maximized .x-window-mc{border-left:0 none;border-right:0 none;}.x-window-tbar .x-toolbar,.x-window-bbar .x-toolbar{border-left:0 none;border-right:0 none;}.x-window-bbar .x-toolbar{border-top:1px solid #99bbe8;border-bottom:0 none;}.x-window-draggable,.x-window-draggable .x-window-header-text{cursor:move;}.x-window-maximized .x-window-draggable,.x-window-maximized .x-window-draggable .x-window-header-text{cursor:default;}.x-window-body{background:transparent;}.x-panel-ghost .x-window-tl{border-bottom:1px solid #99bbe8;}.x-panel-collapsed .x-window-tl{border-bottom:1px solid #84a0c4;}.x-window-maximized-ct{overflow:hidden;}.x-window-maximized .x-resizable-handle{display:none;}.x-window-sizing-ghost ul{border:0 none!important;}.x-dlg-focus{-moz-outline:0 none;outline:0 none;width:0;height:0;overflow:hidden;position:absolute;top:0;left:0;}.x-dlg-mask{z-index:10000;display:none;position:absolute;top:0;left:0;-moz-opacity:.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;}body.ext-ie6.x-body-masked select{visibility:hidden;}body.ext-ie6.x-body-masked .x-window select{visibility:visible;}.x-window-plain .x-window-mc{background:#CAD9EC;border-right:1px solid #DFE8F6;border-bottom:1px solid #DFE8F6;border-top:1px solid #a3bae9;border-left:1px solid #a3bae9;}.x-window-plain .x-window-body{border-left:1px solid #DFE8F6;border-top:1px solid #DFE8F6;border-bottom:1px solid #a3bae9;border-right:1px solid #a3bae9;background:transparent!important;}body.x-body-masked .x-window-plain .x-window-mc{background:#C7D6E9;}.x-html-editor-wrap{border:1px solid #a9bfd3;background:#FFF;}.x-html-editor-tb .x-btn-text{background:transparent url(../js/ext/resources/images/default/editor/tb-sprite.gif) no-repeat;}.x-html-editor-tb .x-edit-bold .x-btn-text{background-position:0 0;}.x-html-editor-tb .x-edit-italic .x-btn-text{background-position:-16px 0;}.x-html-editor-tb .x-edit-underline .x-btn-text{background-position:-32px 0;}.x-html-editor-tb .x-edit-forecolor .x-btn-text{background-position:-160px 0;}.x-html-editor-tb .x-edit-backcolor .x-btn-text{background-position:-176px 0;}.x-html-editor-tb .x-edit-justifyleft .x-btn-text{background-position:-112px 0;}.x-html-editor-tb .x-edit-justifycenter .x-btn-text{background-position:-128px 0;}.x-html-editor-tb .x-edit-justifyright .x-btn-text{background-position:-144px 0;}.x-html-editor-tb .x-edit-insertorderedlist .x-btn-text{background-position:-80px 0;}.x-html-editor-tb .x-edit-insertunorderedlist .x-btn-text{background-position:-96px 0;}.x-html-editor-tb .x-edit-increasefontsize .x-btn-text{background-position:-48px 0;}.x-html-editor-tb .x-edit-decreasefontsize .x-btn-text{background-position:-64px 0;}.x-html-editor-tb .x-edit-sourceedit .x-btn-text{background-position:-192px 0;}.x-html-editor-tb .x-edit-createlink .x-btn-text{background-position:-208px 0;}.x-html-editor-tip .x-tip-bd .x-tip-bd-inner{padding:5px;padding-bottom:1px;}.x-html-editor-tb .x-toolbar{position:static!important;}.x-panel-noborder .x-panel-body-noborder{border-width:0;}.x-panel-noborder .x-panel-header-noborder{border-width:0;border-bottom:1px solid #99bbe8;}.x-panel-noborder .x-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #99bbe8;}.x-panel-noborder .x-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #99bbe8;}.x-window-noborder .x-window-mc{border-width:0;}.x-window-plain .x-window-body-noborder{border-width:0;}.x-tab-panel-noborder .x-tab-panel-body-noborder{border-width:0;}.x-tab-panel-noborder .x-tab-panel-header-noborder{border-top-width:0;border-left-width:0;border-right-width:0;}.x-tab-panel-noborder .x-tab-panel-footer-noborder{border-bottom-width:0;border-left-width:0;border-right-width:0;}.x-tab-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #99bbe8;}.x-tab-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #99bbe8;}.x-border-layout-ct{background:#dfe8f6;}.x-border-panel{position:absolute;left:0;top:0;}.x-tool-collapse-south{background-position:0 -195px;}.x-tool-collapse-south-over{background-position:-15px -195px;}.x-tool-collapse-north{background-position:0 -210px;}.x-tool-collapse-north-over{background-position:-15px -210px;}.x-tool-collapse-west{background-position:0 -180px;}.x-tool-collapse-west-over{background-position:-15px -180px;}.x-tool-collapse-east{background-position:0 -165px;}.x-tool-collapse-east-over{background-position:-15px -165px;}.x-tool-expand-south{background-position:0 -210px;}.x-tool-expand-south-over{background-position:-15px -210px;}.x-tool-expand-north{background-position:0 -195px;}.x-tool-expand-north-over{background-position:-15px -195px;}.x-tool-expand-west{background-position:0 -165px;}.x-tool-expand-west-over{background-position:-15px -165px;}.x-tool-expand-east{background-position:0 -180px;}.x-tool-expand-east-over{background-position:-15px -180px;}.x-tool-expand-north,.x-tool-expand-south{float:right;margin:3px;}.x-tool-expand-east,.x-tool-expand-west{float:none;margin:3px auto;}.x-accordion-hd .x-tool-toggle{background-position:0 -255px;}.x-accordion-hd .x-tool-toggle-over{background-position:-15px -255px;}.x-panel-collapsed .x-accordion-hd .x-tool-toggle{background-position:0 -240px;}.x-panel-collapsed .x-accordion-hd .x-tool-toggle-over{background-position:-15px -240px;}.x-accordion-hd{color:#222;padding-top:4px;padding-bottom:3px;border-top:0 none;font-weight:400;background:transparent url(../js/ext/resources/images/default/panel/light-hd.gif) repeat-x 0 -9px;}.x-layout-collapsed{position:absolute;left:-10000px;top:-10000px;visibility:hidden;background-color:#d2e0f2;width:20px;height:20px;overflow:hidden;border:1px solid #98c0f4;z-index:20;}.ext-border-box .x-layout-collapsed{width:22px;height:22px;}.x-layout-collapsed-over{cursor:pointer;background-color:#d9e8fb;}.x-layout-collapsed-west .x-layout-collapsed-tools,.x-layout-collapsed-east .x-layout-collapsed-tools{position:absolute;top:0;left:0;width:20px;height:20px;}.x-layout-split{position:absolute;height:5px;width:5px;line-height:1px;font-size:1px;z-index:3;background-color:transparent;}.x-layout-split-h{background-image:url(../js/ext/resources/images/default/s.gif);background-position:left;}.x-layout-split-v{background-image:url(../js/ext/resources/images/default/s.gif);background-position:top;}.x-column-layout-ct{overflow:hidden;zoom:1;}.x-column{float:left;padding:0;margin:0;overflow:hidden;zoom:1;}.x-layout-mini{position:absolute;top:0;left:0;display:block;width:5px;height:35px;cursor:pointer;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);}.x-layout-mini-over,.x-layout-collapsed-over .x-layout-mini{opacity:1;-moz-opacity:1;filter:none;}.x-layout-split-west .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-left.gif);}.x-layout-split-east .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-right.gif);}.x-layout-split-north .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-top.gif);}.x-layout-split-south .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-bottom.gif);}.x-layout-cmini-west .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-right.gif);}.x-layout-cmini-east .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-left.gif);}.x-layout-cmini-north .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-bottom.gif);}.x-layout-cmini-south .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-top.gif);}.x-layout-cmini-west,.x-layout-cmini-east{border:0 none;width:5px!important;padding:0;background:transparent;}.x-layout-cmini-north,.x-layout-cmini-south{border:0 none;height:5px!important;padding:0;background:transparent;}.x-viewport,.x-viewport body{margin:0;padding:0;border:0 none;overflow:hidden;height:100%;}.x-abs-layout-item{position:absolute;left:0;top:0;}.ext-ie input.x-abs-layout-item,.ext-ie textarea.x-abs-layout-item{margin:0;}.x-progress-wrap{border:1px solid #6593cf;overflow:hidden;}.x-progress-inner{height:18px;background:#e0e8f3 url(../js/ext/resources/images/default/qtip/bg.gif) repeat-x;position:relative;}.x-progress-bar{height:18px;float:left;width:0;background:#9CBFEE url(../js/ext/resources/images/default/progress/progress-bg.gif) repeat-x left center;border-top:1px solid #D1E4FD;border-bottom:1px solid #7FA9E4;border-right:1px solid #7FA9E4;}.x-progress-text{font-size:11px;font-weight:700;color:#fff;padding:1px 5px;overflow:hidden;position:absolute;left:0;text-align:center;}.x-progress-text-back{color:#396095;line-height:16px;}.ext-ie .x-progress-text-back{line-height:15px;}.x-window-dlg .x-window-body{border:0 none!important;padding:5px 10px;overflow:hidden!important;}.x-window-dlg .x-window-mc{border:0 none!important;}.x-window-dlg .ext-mb-text,.x-window-dlg .x-window-header-text{font-size:12px;}.x-window-dlg .ext-mb-input{margin-top:4px;width:95%;}.x-window-dlg .ext-mb-textarea{margin-top:4px;font:normal 12px tahoma,arial,helvetica,sans-serif;}.x-window-dlg .x-progress-wrap{margin-top:4px;}.ext-ie .x-window-dlg .x-progress-wrap{margin-top:6px;}.x-window-dlg .x-msg-box-wait{background:transparent url(../js/ext/resources/images/default/grid/loading.gif) no-repeat left;display:block;width:300px;padding-left:18px;line-height:18px;}.x-window-dlg .ext-mb-icon{float:left;width:47px;height:32px;}.ext-ie .x-window-dlg .ext-mb-icon{width:44px;}.x-window-dlg .ext-mb-info{background:transparent url(../js/ext/resources/images/default/window/icon-info.gif) no-repeat top left;}.x-window-dlg .ext-mb-warning{background:transparent url(../js/ext/resources/images/default/window/icon-warning.gif) no-repeat top left;}.x-window-dlg .ext-mb-question{background:transparent url(../js/ext/resources/images/default/window/icon-question.gif) no-repeat top left;}.x-window-dlg .ext-mb-error{background:transparent url(../js/ext/resources/images/default/window/icon-error.gif) no-repeat top left;}/*
- * Ext JS Library 2.0.2
- * Copyright(c) 2006-2008, Ext JS, LLC.
- * licensing(a)extjs.com
- *
- * http://extjs.com/license
- */.x-panel{border-style:solid;border-color:#d0d0d0;}.x-panel-header{color:#333;border:1px solid #d0d0d0;background-image:url(../js/ext/resources/images/gray/panel/white-top-bottom.gif);}.x-panel-body{border-color:#d0d0d0;}.x-panel-bbar .x-toolbar{border-color:#d0d0d0;}.x-panel-tbar .x-toolbar{border-color:#d0d0d0;}.x-panel-tbar-noheader .x-toolbar,.x-panel-mc .x-panel-tbar .x-toolbar{border-color:#d0d0d0;}.x-panel-body-noheader,.x-panel-mc .x-panel-body{border-color:#d0d0d0;}.x-panel-tl .x-panel-header{color:#333;}.x-panel-tc{background-image:url(../js/ext/resources/images/gray/panel/top-bottom.gif);}.x-panel-tl{background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);border-color:#d0d0d0;}.x-panel-tr{background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);}.x-panel-bc{background-image:url(../js/ext/resources/images/gray/panel/top-bottom.gif);}.x-panel-bl{background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);}.x-panel-br{background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);}.x-panel-mc{background:#f1f1f1;}.x-panel-mc .x-panel-body{background:transparent;border:0 none;}.x-panel-ml{background-image:url(../js/ext/resources/images/gray/panel/left-right.gif);}.x-panel-mr{background-image:url(../js/ext/resources/images/gray/panel/left-right.gif);}/* Tools */.x-tool{background-image:url(../js/ext/resources/images/gray/panel/tool-sprites.gif);}/* Ghosting */.x-panel-ghost{background:#e0e0e0;}.x-panel-ghost ul{border-color:#b0b0b0;}.x-grid-panel .x-panel-mc .x-panel-body{border:1px solid #d0d0d0;}/* Buttons */.x-btn-left{background-image:url(../js/ext/resources/images/gray/button/btn-sprite.gif);}.x-btn-right{background-image:url(../js/ext/resources/images/gray/button/btn-sprite.gif);}.x-btn-center{background-image:url(../js/ext/resources/images/gray/button/btn-sprite.gif);}/* Layout classes */.x-border-layout-ct{background:#f0f0f0;}.x-accordion-hd{background-image:url(../js/ext/resources/images/gray/panel/light-hd.gif);}.x-layout-collapsed{background-color:#eee;border-color:#e0e0e0;}.x-layout-collapsed-over{background-color:#fbfbfb;}/* qtips */.x-tip .x-tip-top{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}.x-tip .x-tip-top-left{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}.x-tip .x-tip-top-right{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}.x-tip .x-tip-ft{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}.x-tip .x-tip-ft-left{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}.x-tip .x-tip-ft-right{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}.x-tip .x-tip-bd-left{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}.x-tip .x-tip-bd-right{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}/* Toolbars */.x-toolbar{border-color:#d0d0d0;background:#f0f4f5 url(../js/ext/resources/images/gray/toolbar/bg.gif) repeat-x top left;}.x-toolbar button{color:#444;}.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{background-image:url(../js/ext/resources/images/gray/toolbar/btn-arrow.gif);}.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button{background-image:url(../js/ext/resources/images/gray/toolbar/btn-arrow.gif);}.x-toolbar .x-btn-over .x-btn-left{background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);}.x-toolbar .x-btn-over .x-btn-right{background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);}.x-toolbar .x-btn-over .x-btn-center{background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);}.x-toolbar .x-btn-over button{color:#111;}.x-toolbar .x-btn-click .x-btn-left,.x-toolbar .x-btn-pressed .x-btn-left,.x-toolbar .x-btn-menu-active .x-btn-left{background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);}.x-toolbar .x-btn-click .x-btn-right,.x-toolbar .x-btn-pressed .x-btn-right,.x-toolbar .x-btn-menu-active .x-btn-right{background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);}.x-toolbar .x-btn-click .x-btn-center,.x-toolbar .x-btn-pressed .x-btn-center,.x-toolbar .x-btn-menu-active .x-btn-center{background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);}.x-toolbar .ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);}/* Tabs */.x-tab-panel-header,.x-tab-panel-footer{background:#EAEAEA;border-color:#d0d0d0;}.x-tab-panel-header{border-color:#d0d0d0;}.x-tab-panel-footer{border-color:#d0d0d0;}ul.x-tab-strip-top{background:#dbdbdb url(../js/ext/resources/images/gray/tabs/tab-strip-bg.gif) repeat-x left top;border-color:#d0d0d0;padding-top:2px;}ul.x-tab-strip-bottom{background-image:url(../js/ext/resources/images/gray/tabs/tab-strip-btm-bg.gif);border-color:#d0d0d0;}.x-tab-strip span.x-tab-strip-text{color:#333;}.x-tab-strip-over span.x-tab-strip-text{color:#111;}.x-tab-strip-active span.x-tab-strip-text{color:#333;}.x-tab-strip-disabled .x-tabs-text{color:#AAA;}.x-tab-strip-top .x-tab-right{background-image:url(../js/ext/resources/images/gray/tabs/tabs-sprite.gif);}.x-tab-strip-top .x-tab-left{background-image:url(../js/ext/resources/images/gray/tabs/tabs-sprite.gif);}.x-tab-strip-top .x-tab-strip-inner{background-image:url(../js/ext/resources/images/gray/tabs/tabs-sprite.gif);}.x-tab-strip-bottom .x-tab-right{background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-inactive-right-bg.gif);}.x-tab-strip-bottom .x-tab-left{background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-inactive-left-bg.gif);}.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-right-bg.gif);}.x-tab-strip-bottom .x-tab-strip-active .x-tab-left{background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-left-bg.gif);}.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close{background-image:url(../js/ext/resources/images/gray/tabs/tab-close.gif);}.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{background-image:url(../js/ext/resources/images/gray/tabs/tab-close.gif);}.x-tab-panel-body{border-color:#d0d0d0;background:#fff;}.x-tab-panel-bbar .x-toolbar{border-color:#d0d0d0;}.x-tab-panel-tbar .x-toolbar{border-color:#d0d0d0;}.x-tab-panel-header-plain .x-tab-strip-spacer{border-color:#d0d0d0;background:#eaeaea;}.x-tab-scroller-left{background-image:url(../js/ext/resources/images/gray/tabs/scroll-left.gif);border-color:#aeaeae;}.x-tab-scroller-right{background-image:url(../js/ext/resources/images/gray/tabs/scroll-right.gif);border-color:#aeaeae;}/* Window */.x-window-proxy{background:#e0e0e0;border-color:#b0b0b0;}.x-window-tl .x-window-header{color:#555;}.x-window-tc{background-image:url(../js/ext/resources/images/gray/window/top-bottom.png);}.x-window-tl{background-image:url(../js/ext/resources/images/gray/window/left-corners.png);}.x-window-tr{background-image:url(../js/ext/resources/images/gray/window/right-corners.png);}.x-window-bc{background-image:url(../js/ext/resources/images/gray/window/top-bottom.png);}.x-window-bl{background-image:url(../js/ext/resources/images/gray/window/left-corners.png);}.x-window-br{background-image:url(../js/ext/resources/images/gray/window/right-corners.png);}.x-window-mc{border:1px solid #d0d0d0;background:#e8e8e8;}.x-window-ml{background-image:url(../js/ext/resources/images/gray/window/left-right.png);}.x-window-mr{background-image:url(../js/ext/resources/images/gray/window/left-right.png);}.x-panel-ghost .x-window-tl{border-color:#d0d0d0;}.x-panel-collapsed .x-window-tl{border-color:#d0d0d0;}.x-window-plain .x-window-mc{background:#e8e8e8;border-right:1px solid #eee;border-bottom:1px solid #eee;border-top:1px solid #d0d0d0;border-left:1px solid #d0d0d0;}.x-window-plain .x-window-body{border-left:1px solid #eee;border-top:1px solid #eee;border-bottom:1px solid #d0d0d0;border-right:1px solid #d0d0d0;background:transparent!important;}body.x-body-masked .x-window-mc,body.x-body-masked .x-window-plain .x-window-mc{background-color:#e4e4e4;}/* misc */.x-html-editor-wrap{border-color:#d0d0d0;}/* Borders go last for specificity */.x-panel-noborder .x-panel-body-noborder{border-width:0;}.x-panel-noborder .x-panel-header-noborder{border-width:0;border-bottom:1px solid #d0d0d0;}.x-panel-noborder .x-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #d0d0d0;}.x-panel-noborder .x-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #d0d0d0;}.x-window-noborder .x-window-mc{border-width:0;}.x-window-plain .x-window-body-noborder{border-width:0;}.x-tab-panel-noborder .x-tab-panel-body-noborder{border-width:0;}.x-tab-panel-noborder .x-tab-panel-header-noborder{border-top-width:0;border-left-width:0;border-right-width:0;}.x-tab-panel-noborder .x-tab-panel-footer-noborder{border-bottom-width:0;border-left-width:0;border-right-width:0;}.x-tab-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #d0d0d0;}.x-tab-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #d0d0d0;}.kunebody{background-color:#FFF;color:#000;font-family:arial, sans;margin:5px;}#kuneinitialcurtain{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#FFF;z-index:9999;}/* Global styles */.gwt-HorizontalSplitPanel .hsplitter{cursor:e-resize;width:6px;}.gwt-DialogBox{border:8px solid #C3D9FF;border:2px outset;background-color:#FFF;}.gwt-DialogBox .Caption{background-color:#C3D9FF;font-size:85%;font-weight:700;padding:3px;margin:2px;cursor:default;}.gwt-MenuBar{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;}.gwt-MenuBar .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.gwt-MenuBar .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.gwt-MenuBar .gwt-MenuItem{background-color:#F2F2F2;}.gwt-MenuBar .gwt-MenuItem-selected{background-color:#FFB958;}.kune-MenuBar .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;cursor:hand;white-space:nowrap;padding:0 10px;}.kune-MenuBar .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#963;}.kune-expandHoriz{width:100%;}.kune-expandVert{height:100%;}.kune-floatleft{float:left;}.kune-floatright{float:right;}/* Deprecated */.kune-Default-Form{margin:10px;}.kune-valignmiddle{vertical-align:middle;}fieldset{border:1px solid #B5B8C8;/* margin-bottom:10px; */padding:10px 10px 5px;}legend{color:#15428B;font-size:85%;font-size-adjust:none;font-style:normal;font-variant:normal;font-weight:700;line-height:normal;}.gwt-RadioButton input{margin:0 3px;vertical-align:middle;}.gwt-RadioButton label{margin:0 3px;vertical-align:middle;}.kune-pointer{cursor:pointer;}.kuneLabelPre{white-space:pre!important;}/* Buttons */.kune-CustomPushButton-space{margin-top:3px;margin-bottom:3px;}.kune-CustomPushButton{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:0 12px;}.kune-CustomPushButton-up{color:#161616;}.kune-CustomPushButton-down{color:#000;}.kune-CustomPushButton-up-hovering{color:#161616;background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;}.kune-CustomPushButton-down-hovering{color:#000;}.kune-CustomPushButton-up-disabled{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#E0E0E0;cursor:normal;}.kune-CustomPushButton-down-disabled{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#E0E0E0;cursor:normal;}.kune-Button-Large-lrSpace{margin-left:12px;margin-right:12px;}.kune-Button-Large-rSpace{margin-right:12px;}.kune-Button-Large-lSpace{margin-left:12px;}.kune-Button-Large-tbSpace{margin-top:12px;margin-bottom:12px;}.kune-Button-Small-lrSpace{margin-left:10px;margin-right:10px;}.kune-Button-Small-rSpace{margin-right:10px;}.kune-Button-Small-lSpace{margin-left:10px;}.kune-Button-Small-tbSpace{margin-top:10px;margin-bottom:10px;}.kune-Button-Mini-lSpace{margin-left:8px;}.kune-Button-Mini-lrSpace{margin-left:8px;margin-right:8px;}.kune-Button-Mini-rSpace{margin-right:8px;}.kune-Button-Mini-tbSpace{margin-top:8px;margin-bottom:8px;}.kune-IconHyperlink{}.kune-IconHyperlink a:link{/* text-decoration: underline; */color:green;}.kune-IconHyperlink a:hover{text-decoration:underline;}.kune-IconHyperlink a:visited{color:olive;}.kune-IconHyperlink img{margin-right:4px;vertical-align:middle;}.kune-IconLabel{}.kune-IconLabel img{margin-right:4px;vertical-align:middle;}.kune-link{text-decoration:underline;color:green;cursor:pointer;}/* DropDowns */.kune-DropDownOuter{background-color:green;}.kune-DropDownInner{margin:0 3px 1px;background:green;background-color:#FFF;padding:3px;}.kune-DropDownLabel{color:#FFF;cursor:pointer;}.kune-DropDownLabel .gwt-Label{margin:0 5px 0 0;width:100%;}.kune-DropDownLabel img{margin:0 3px 0 1px;}.kune-IconLabel{color:green;}.kune-IconLabel img{margin-right:4px;vertical-align:middle;}/* Used in multi chat panel status change */.x-menu-item img{margin-right:4px;vertical-align:middle;}/* Margins */.kune-Margin-40-trbl{margin:40px;}.kune-Margin-40-lr{margin-left:40px;margin-right:40px;}.kune-Margin-40-tl{margin-top:40px;margin-left:40px;}.kune-Margin-40-tb{margin-top:40px;margin-bottom:40px;}.kune-Margin-40-t{margin-top:40px;}.kune-Margin-40-r{margin-right:40px;}.kune-Margin-40-l{margin-left:40px;}.kune-Margin-20-trbl{margin:20px;}.kune-Margin-20-lr{margin-left:20px;margin-right:20px;}.kune-Margin-20-tl{margin-top:20px;margin-left:20px;}.kune-Margin-20-tb{margin-top:20px;margin-bottom:20px;}.kune-Margin-20-t{margin-top:20px;}.kune-Margin-20-r{margin-right:20px;}.kune-Margin-20-l{margin-left:20px;}.kune-Margin-Large-trbl{margin:10px;}.kune-Margin-Large-lr{margin-left:10px;margin-right:10px;}.kune-Margin-Large-tl{margin-top:10px;margin-left:10px;}.kune-Margin-Large-tb{margin-top:10px;margin-bottom:: 10px;}.kune-Margin-Large-t{margin-top:10px;}.kune-Margin-Large-r{margin-right:10px;}.kune-Margin-Large-l{margin-left:10px;}.kune-Margin-Medium-trbl{margin:5px;}.kune-Margin-Medium-lr{margin-left:5px;margin-right:5px;}.kune-Margin-Medium-tl{margin-top:5px;margin-left:5px;}.kune-Margin-Medium-tb{margin-top:5px;margin-bottom:5px;}.kune-Margin-Medium-t{margin-top:5px;}.kune-Margin-Medium-r{margin-right:5px;}.kune-Margin-Medium-b{margin-bottom:5px;}.kune-Margin-Medium-l{margin-left:5px;}.kune-Margin-Small-trbl{margin:3px;}.kune-Margin-Small-lr{margin-left:3px;margin-right:3px;}.kune-Margin-Small-tl{margin-top:3px;margin-left:3px;}.kune-Margin-Small-tb{margin-top:3px;margin-bottom:3px;}.kune-Margin-Small-t{margin-top:3px;}.kune-Margin-Mini-trbl{margin:1px;}.kune-Margin-Mini-lr{margin-left:1px;margin-right:1px;}.kune-Margin-Mini-tl{margin-top:1px;margin-left:1px;}.kune-Margin-Mini-tb{margin-top:1px;margin-bottom:1px;}.kune-Margin-Mini-t{margin-top:1px;}.kune-Margin-Mini-r{margin-right:1px;}.kune-Margin-Mini-l{margin-left:1px;}/* Fonts
-see: http://developer.yahoo.com/yui/fonts/ */.kune-ft10px{font-size:77%;}.kune-ft11px{font-size:85%;}.kune-ft12px{font-size:93%;}.kune-ft13px{font-size:100%;}.kune-ft14px{font-size:108%;}.kune-ft15px{font-size:116%;}.kune-ft16px{font-size:123.099998%;}.kune-ft17px{font-size:131%;}.kune-ft18px{font-size:138.5%;}.kune-ft19px{font-size:146.5%;}.kune-ft20px{font-size:153.899994%;}.kune-ft21px{font-size:161.600006%;}.kune-ft22px{font-size:167%;}.kune-ft23px{font-size:174%;}.kune-ft24px{font-size:182%;}.kune-ft25px{font-size:189%;}.kune-ft26px{font-size:197px %;}/* Sitebar */#kuneprogresspanel{position:absolute;top:2px;left:2px;z-index:30000;}.kune-Progress{background:#E5FF80;border:1px solid #E5FF80;white-space:nowrap;height:16px;padding:0 3px;}.kune-SiteBarPanel .kune-IconHyperlink{white-space:nowrap;}.kune-SiteBarPanel .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.kune-SiteBarPanel .kune-IconHyperlink a:hover{text-decoration:underline;}.kune-SiteBarPanel .kune-IconHyperlink a:visited{color:#B3B3B3;}.kune-SiteBarPanel{margin-right:10px;height:16px;}.kune-SiteBarPanel .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.kune-SiteBarPanel .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.kune-SiteBarPanel .gwt-PushButton{cursor:pointer;}.kune-SiteBarPanel-Separator{color:#E4A374;margin:0 5px;}.kune-SiteBarPanel-SpaceSeparator{width:10px;}.kune-SiteBarPanel-LabelLink{white-space:nowrap;color:#B3B3B3;margin-left:3px;cursor:pointer;text-decoration:underline;}.kune-SiteMessagePanel{color:#250;position:absolute;z-index:10000;vertical-align:middle;}.kune-SiteMessagePanel .gwt-HTML{margin:15px 5px 15px 2px;}.kune-SiteMessagePanel .gwt-Image{margin:5px;}.kune-SiteMessagePanel-error{background-color:#FFB380;border:1px solid #F06;}.kune-SiteMessagePanel-veryimp{background-color:#FFD4AA;border:1px solid #F59;}.kune-SiteMessagePanel-imp{background-color:#FFE6D5;border:1px solid #DE87AA;}.kune-SiteMessagePanel-info{background-color:#E5FF80;border:1px solid #87DE87;}/* Workspace styles */.kune-WorkspacePanel{width:100%;background-color:#FFF;}.kune-WokspacePanel .Tab{}.kune-WorkspacePanel .GeneralHP{}.kune-WorkspacePanel .ContextPanel{width:100%;border-right:3px solid #DD8A3D;}.kune-EntityTextLogo{border:2px solid #F2F2F2;height:60px;margin-bottom:4px;overflow:hidden;width:468px;}.kune-EntityTextLogo .gwt-Label{color:#A40;font-size:167%;font-weight:700;margin:5px;height:27px;}.kune-EntityTextLogo .gwt-Hyperlink a{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.kune-GroupSummaryPanel{margin:5px 0 0 5px;width:100%;}.kune-GroupToolsBar{width:150px;}.kune-GroupToolsBar-itemSelected{margin-bottom:5px;}.kune-GroupToolsBar-itemSelected .gwt-Hyperlink a{color:#FFF;padding:0 9px;text-decoration:none;}.kune-GroupToolsBar-itemSelected .gwt-Hyperlink a:hover{text-decoration:none;}.kune-GroupToolsBar-itemNotSelected{margin-bottom:5px;}.kune-GroupToolsBar-itemNotSelected .gwt-Hyperlink a{color:green;padding:0 9px;text-decoration:none;}.kune-GroupToolsBar-itemNotSelected .gwt-Hyperlink a:hover{text-decoration:none;}/* Content titles */.kune-ContentTitleBar{border-left:2px solid #DD8A3D;width:100%;height:25px;vertical-align:middle;}.kune-ContentTitleBar .gwt-Label{width:100%;}.kune-ContentTitleBar-l{float:left;}.kune-ContentTitleBar-r{float:right;}.kune-ContentSubTitleBar{vertical-align:middle;font-weight:700;width:100%;height:23px;}.kune-ContentSubTitleBar .gwt-Label{width:100%;white-space:nowrap;}.kune-ContentSubTitleBar-l{float:left;}.kune-ContentSubTitleBar-r{float:right;}.kune-ContentToolBarPanel{background-color:#F2F2F2;padding:2px;height:24px;vertical-align:middle;}.kune-ContentBottomBar{vertical-align:middle;height:24px;}.kune-ContentBottomBar .gwt-Image{margin-left:5px;cursor:pointer;float:left;}.kune-ContentBottomBar .gwt-Label a{}.kune-LicensePanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}/* Main Content & Context */.kune-WorkspacePanel-Content{background-color:#FCFCFC;width:100%;height:100%;}.kune-WorkspacePanel-Content .main-content{margin:7px 5px 5px 10px;}.kune-WorkspacePanel-Context{background-color:#CFA;width:100%;height:100%;}.kune-NavigationBar{width:100%;}.kune-NavigationBar .topBar{background-color:#ececec;background:#ececec;border-bottom:1px solid #e3dbdb;vertical-align:middle;}.kune-NavigationBar .topBar .gwt-PushButton{margin:1px 3px 1px 0;}.kune-NavigationBar .topBar .gwt-Label{vertical-align:middle;}.kune-NavigationBar .kune-topBar-iconBar{margin:2px 0 2px 5px;}.kune-NavigationBar .kune-ContextItemsPanel-LabelLink{/* text-decoration: underline; */color:green;cursor:pointer;margin-left:3px;}/*
+*/
+body {font:13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}table {font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:99%;}
+
+
+/*
+ * Ext JS Library 2.0.2
+ * Copyright(c) 2006-2008, Ext JS, LLC.
+ * licensing(a)extjs.com
+ *
+ * http://extjs.com/license
+ */
+
+html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}
+img,body,html{border:0;}
+address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}
+ol,ul{list-style:none;}
+caption,th{text-align:left;}
+h1,h2,h3,h4,h5,h6{font-size:100%;}
+q:before,q:after{content:'';}
+
+.ext-el-mask{z-index:20000;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;width:100%;height:100%;zoom:1;}
+.ext-el-mask-msg{z-index:20001;position:absolute;top:0;left:0;border:1px solid #6593cf;background:#c3daf9 url(../js/ext/resources/images/default/box/tb-blue.gif) repeat-x 0 -16px;padding:2px;}
+.ext-el-mask-msg div{padding:5px 10px 5px 10px;background:#eee;border:1px solid #a3bad9;color:#222;font:normal 11px tahoma,arial,helvetica,sans-serif;cursor:wait;}
+.ext-shim{position:absolute;visibility:hidden;left:0;top:0;overflow:hidden;}
+.ext-ie .ext-shim{filter:alpha(opacity=0);}
+.ext-ie6 .ext-shim{margin-left:5px;margin-top:3px;}
+.x-mask-loading div{padding:5px 10px 5px 25px;background:#fbfbfb url( '../js/ext/resources/images/default/grid/loading.gif' ) no-repeat 5px 5px;line-height:16px;}
+.x-hidden,.x-hide-offsets{position:absolute;left:-10000px;top:-10000px;visibility:hidden;}
+.x-hide-display{display:none!important;}
+.x-hide-visibility{visibility:hidden!important;}
+.x-masked{overflow:hidden!important;}
+.x-masked select,.x-masked object,.x-masked embed{visibility:hidden;}
+.x-layer{visibility:hidden;}
+.x-unselectable,.x-unselectable *{-moz-user-select:none;-khtml-user-select:none;}
+.x-repaint{zoom:1;background-color:transparent;-moz-outline:none;}
+.x-item-disabled{color:gray;cursor:default;opacity:.6;-moz-opacity:.6;filter:alpha(opacity=60);}
+.x-item-disabled *{color:gray!important;cursor:default!important;}
+.x-splitbar-proxy{position:absolute;visibility:hidden;z-index:20001;background:#aaa;zoom:1;line-height:1px;font-size:1px;overflow:hidden;}
+.x-splitbar-h,.x-splitbar-proxy-h{cursor:e-resize;cursor:col-resize;}
+.x-splitbar-v,.x-splitbar-proxy-v{cursor:s-resize;cursor:row-resize;}
+.x-color-palette{width:150px;height:92px;cursor:pointer;}
+.x-color-palette a{border:1px solid #fff;float:left;padding:2px;text-decoration:none;-moz-outline:0 none;outline:0 none;cursor:pointer;}
+.x-color-palette a:hover,.x-color-palette a.x-color-palette-sel{border:1px solid #8BB8F3;background:#deecfd;}
+.x-color-palette em{display:block;border:1px solid #ACA899;}
+.x-color-palette em span{cursor:pointer;display:block;height:10px;line-height:10px;width:10px;}
+.x-ie-shadow{display:none;position:absolute;overflow:hidden;left:0;top:0;background:#777;zoom:1;}
+.x-shadow{display:none;position:absolute;overflow:hidden;left:0;top:0;}
+.x-shadow *{overflow:hidden;}
+.x-shadow *{padding:0;border:0;margin:0;clear:none;zoom:1;}
+.x-shadow .xstc,.x-shadow .xsbc{height:6px;float:left;}
+.x-shadow .xstl,.x-shadow .xstr,.x-shadow .xsbl,.x-shadow .xsbr{width:6px;height:6px;float:left;}
+.x-shadow .xsc{width:100%;}
+.x-shadow .xsml,.x-shadow .xsmr{width:6px;float:left;height:100%;}
+.x-shadow .xsmc{float:left;height:100%;background:transparent url( ../js/ext/resources/images/default/shadow-c.png );}
+.x-shadow .xst,.x-shadow .xsb{height:6px;overflow:hidden;width:100%;}
+.x-shadow .xsml{background:transparent url( ../js/ext/resources/images/default/shadow-lr.png ) repeat-y 0 0;}
+.x-shadow .xsmr{background:transparent url( ../js/ext/resources/images/default/shadow-lr.png ) repeat-y -6px 0;}
+.x-shadow .xstl{background:transparent url( ../js/ext/resources/images/default/shadow.png ) no-repeat 0 0;}
+.x-shadow .xstc{background:transparent url( ../js/ext/resources/images/default/shadow.png ) repeat-x 0 -30px;}
+.x-shadow .xstr{background:transparent url( ../js/ext/resources/images/default/shadow.png ) repeat-x 0 -18px;}
+.x-shadow .xsbl{background:transparent url( ../js/ext/resources/images/default/shadow.png ) no-repeat 0 -12px;}
+.x-shadow .xsbc{background:transparent url( ../js/ext/resources/images/default/shadow.png ) repeat-x 0 -36px;}
+.x-shadow .xsbr{background:transparent url( ../js/ext/resources/images/default/shadow.png ) repeat-x 0 -6px;}
+.loading-indicator{font-size:11px;background-image:url(../js/ext/resources/images/default/grid/loading.gif);background-repeat:no-repeat;background-position:left;padding-left:20px;line-height:16px;margin:3px;}
+.x-text-resize{position:absolute;left:-1000px;top:-1000px;visibility:hidden;zoom:1;}
+.x-drag-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background-image:url(../js/ext/resources/images/default/s.gif);z-index:20000;}
+.x-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;}
+.x-spotlight{z-index:8999;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;width:0;height:0;zoom:1;}
+
+.x-tab-panel{overflow:hidden;}
+.x-tab-panel-header,.x-tab-panel-footer{background:#deecfd;border:1px solid #8db2e3;overflow:hidden;zoom:1;}
+.x-tab-panel-header{border:1px solid #8db2e3;padding-bottom:2px;}
+.x-tab-panel-footer{border:1px solid #8db2e3;padding-top:2px;}
+.x-tab-strip-wrap{width:100%;overflow:hidden;position:relative;zoom:1;}
+ul.x-tab-strip{display:block;width:5000px;zoom:1;}
+ul.x-tab-strip-top{padding-top:1px;background:url(../js/ext/resources/images/default/tabs/tab-strip-bg.gif) #cedff5 repeat-x bottom;border-bottom:1px solid #8db2e3;}
+ul.x-tab-strip-bottom{padding-bottom:1px;background:url(../js/ext/resources/images/default/tabs/tab-strip-btm-bg.gif) #cedff5 repeat-x top;border-top:1px solid #8db2e3;border-bottom:0 none;}
+.x-tab-panel-header-plain .x-tab-strip-top{background:transparent!important;padding-top:0!important;}
+.x-tab-panel-header-plain{background:transparent!important;border-width:0!important;padding-bottom:0!important;}
+.x-tab-panel-header-plain .x-tab-strip-spacer{border:1px solid #8db2e3;border-top:0 none;height:2px;background:#deecfd;font-size:1px;line-height:1px;}
+.ext-border-box .x-tab-panel-header-plain .x-tab-strip-spacer{height:3px;}
+ul.x-tab-strip li{float:left;margin-left:2px;}
+ul.x-tab-strip li.x-tab-edge{float:left;margin:0!important;padding:0!important;border:0 none!important;font-size:1px!important;line-height:1px!important;overflow:hidden;zoom:1;background:transparent!important;width:1px;}
+.x-tab-strip a,.x-tab-strip span,.x-tab-strip em{display:block;}
+.x-tab-strip a{text-decoration:none!important;-moz-outline:none;outline:none;cursor:pointer;}
+.x-tab-strip-inner{overflow:hidden;text-overflow:ellipsis;}
+.x-tab-strip span.x-tab-strip-text{font:normal 11px tahoma,arial,helvetica;color:#416aa3;white-space:nowrap;cursor:pointer;padding:4px 0;}
+.x-tab-strip .x-tab-with-icon .x-tab-right{padding-left:6px;}
+.x-tab-strip .x-tab-with-icon span.x-tab-strip-text{padding-left:20px;background-position:0 3px;background-repeat:no-repeat;}
+.x-tab-strip-over span.x-tab-strip-text{color:#15428b;}
+.x-tab-strip-active{cursor:default;}
+.x-tab-strip-active span.x-tab-strip-text{cursor:default;color:#15428b;font-weight:bold;}
+.x-tab-strip-disabled .x-tabs-text{cursor:default;color:#aaa;}
+.x-tab-panel-body{overflow:hidden;}
+.x-tab-panel-bwrap{overflow:hidden;}
+.ext-ie .x-tab-strip .x-tab-right{position:relative;}
+.x-tab-strip-top .x-tab-strip-active .x-tab-right{margin-bottom:-1px;}
+.x-tab-strip-top .x-tab-strip-active .x-tab-right span.x-tab-strip-text{padding-bottom:5px;}
+.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{margin-top:-1px;}
+.x-tab-strip-bottom .x-tab-strip-active .x-tab-right span.x-tab-strip-text{padding-top:5px;}
+.x-tab-strip-top .x-tab-right{background:transparent url(../js/ext/resources/images/default/tabs/tabs-sprite.gif) no-repeat 0 -51px;padding-left:10px;}
+.x-tab-strip-top .x-tab-left{background:transparent url(../js/ext/resources/images/default/tabs/tabs-sprite.gif) no-repeat right -351px;padding-right:10px;}
+.x-tab-strip-top .x-tab-strip-inner{background:transparent url(../js/ext/resources/images/default/tabs/tabs-sprite.gif) repeat-x 0 -201px;}
+.x-tab-strip-top .x-tab-strip-over .x-tab-right{background-position:0 -101px;}
+.x-tab-strip-top .x-tab-strip-over .x-tab-left{background-position:right -401px;}
+.x-tab-strip-top .x-tab-strip-over .x-tab-strip-inner{background-position:0 -251px;}
+.x-tab-strip-top .x-tab-strip-active .x-tab-right{background-position:0 0;}
+.x-tab-strip-top .x-tab-strip-active .x-tab-left{background-position:right -301px;}
+.x-tab-strip-top .x-tab-strip-active .x-tab-strip-inner{background-position:0 -151px;}
+.x-tab-strip-bottom .x-tab-right{background:url(../js/ext/resources/images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;}
+.x-tab-strip-bottom .x-tab-left{background:url(../js/ext/resources/images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;}
+.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{background:url(../js/ext/resources/images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left;}
+.x-tab-strip-bottom .x-tab-strip-active .x-tab-left{background:url(../js/ext/resources/images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right;}
+.x-tab-strip-bottom .x-tab-left{padding:0 10px;}
+.x-tab-strip-bottom .x-tab-right{padding:0;}
+.x-tab-strip .x-tab-strip-close{display:none;}
+.x-tab-strip-closable{position:relative;}
+.x-tab-strip-closable .x-tab-left{padding-right:19px;}
+.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close{background-image:url(../js/ext/resources/images/default/tabs/tab-close.gif);opacity:.6;-moz-opacity:.6;background-repeat:no-repeat;display:block;width:11px;height:11px;position:absolute;top:3px;right:3px;cursor:pointer;z-index:2;}
+.x-tab-strip .x-tab-strip-active a.x-tab-strip-close{opacity:.8;-moz-opacity:.8;}
+.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{background-image:url(../js/ext/resources/images/default/tabs/tab-close.gif);opacity:1;-moz-opacity:1;}
+.x-tab-panel-body{border:1px solid #8db2e3;background:#fff;}
+.x-tab-panel-body-top{border-top:0 none;}
+.x-tab-panel-body-bottom{border-bottom:0 none;}
+.x-tab-scroller-left{background:transparent url(../js/ext/resources/images/default/tabs/scroll-left.gif) no-repeat -18px 0;border-bottom:1px solid #8db2e3;width:18px;position:absolute;left:0;top:0;z-index:10;cursor:pointer;}
+.x-tab-scroller-left-over{background-position:0 0;}
+.x-tab-scroller-left-disabled{background-position:-18px 0;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);cursor:default;}
+.x-tab-scroller-right{background:transparent url(../js/ext/resources/images/default/tabs/scroll-right.gif) no-repeat 0 0;border-bottom:1px solid #8db2e3;width:18px;position:absolute;right:0;top:0;z-index:10;cursor:pointer;}
+.x-tab-scroller-right-over{background-position:-18px 0;}
+.x-tab-scroller-right-disabled{background-position:0 0;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);cursor:default;}
+.x-tab-scrolling .x-tab-strip-wrap{margin-left:18px;margin-right:18px;}
+.x-tab-scrolling{position:relative;}
+.x-tab-panel-bbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}
+.x-tab-panel-tbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}
+.x-border-layout-ct .x-tab-panel{background:white;}
+
+ .x-form-field{margin:0;font:normal 12px tahoma,arial,helvetica,sans-serif;}
+.x-form-text,textarea.x-form-field{padding:1px 3px;background:#fff url(../js/ext/resources/images/default/form/text-bg.gif) repeat-x 0 0;border:1px solid #B5B8C8;}
+textarea.x-form-field{padding:2px 3px;}
+.x-form-text{height:22px;line-height:18px;vertical-align:middle;}
+.ext-ie .x-form-text{margin:-1px 0;height:22px;line-height:18px;}
+.ext-ie textarea.x-form-field{margin:-1px 0;}
+.ext-strict .x-form-text{height:18px;}
+.ext-safari .x-form-text{height:20px;padding:0 3px;}
+.ext-safari.ext-mac textarea.x-form-field{margin-bottom:-2px;}
+.ext-gecko .x-form-text{padding-top:2px;padding-bottom:0;}
+textarea{resize:none;}
+.x-form-select-one{height:20px;line-height:18px;vertical-align:middle;background-color:#fff;border:1px solid #B5B8C8;}
+.x-form-field-wrap{position:relative;zoom:1;white-space:nowrap;}
+.x-editor .x-form-check-wrap{background:#fff;}
+.x-form-field-wrap .x-form-trigger{width:17px;height:21px;border:0;background:transparent url(../js/ext/resources/images/default/form/trigger.gif) no-repeat 0 0;cursor:pointer;border-bottom:1px solid #B5B8C8;position:absolute;top:0;}
+.ext-safari .x-form-field-wrap .x-form-trigger{height:21px;}
+.x-form-field-wrap .x-form-date-trigger{background-image:url(../js/ext/resources/images/default/form/date-trigger.gif);cursor:pointer;}
+.x-form-field-wrap .x-form-clear-trigger{background-image:url(../js/ext/resources/images/default/form/clear-trigger.gif);cursor:pointer;}
+.x-form-field-wrap .x-form-search-trigger{background-image:url(../js/ext/resources/images/default/form/search-trigger.gif);cursor:pointer;}
+.ext-safari .x-form-field-wrap .x-form-trigger{right:0;}
+.x-form-field-wrap .x-form-twin-triggers .x-form-trigger{position:static;top:auto;vertical-align:top;}
+.x-form-field-wrap .x-form-trigger-over{background-position:-17px 0;}
+.x-form-field-wrap .x-form-trigger-click{background-position:-34px 0;}
+.x-trigger-wrap-focus .x-form-trigger{background-position:-51px 0;}
+.x-trigger-wrap-focus .x-form-trigger-over{background-position:-68px 0;}
+.x-trigger-wrap-focus .x-form-trigger-click{background-position:-85px 0;}
+.x-trigger-wrap-focus .x-form-trigger{border-bottom:1px solid #7eadd9;}
+.x-item-disabled .x-form-trigger-over{background-position:0 0!important;border-bottom:1px solid #B5B8C8;}
+.x-item-disabled .x-form-trigger-click{background-position:0 0!important;border-bottom:1px solid #B5B8C8;}
+.x-form-focus,textarea.x-form-focus{border:1px solid #7eadd9;}
+.x-form-invalid,textarea.x-form-invalid{background:#fff url(../js/ext/resources/images/default/grid/invalid_line.gif) repeat-x bottom;border:1px solid #dd7870;}
+.ext-safari .x-form-invalid{background-color:#fee;border:1px solid #ff7870;}
+.x-editor{visibility:hidden;padding:0;margin:0;}
+.x-form-check-wrap{line-height:18px;}
+.ext-ie .x-form-check-wrap input{width:15px;height:15px;}
+.x-editor .x-form-check-wrap{padding:3px;}
+.x-editor .x-form-checkbox{height:13px;}
+.x-form-grow-sizer{font:normal 12px tahoma,arial,helvetica,sans-serif;left:-10000px;padding:8px 3px;position:absolute;visibility:hidden;top:-10000px;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;zoom:1;}
+.x-form-grow-sizer p{margin:0!important;border:0 none!important;padding:0!important;}
+.x-form-item{font:normal 12px tahoma,arial,helvetica,sans-serif;display:block;margin-bottom:4px;}
+.x-form-item label{display:block;float:left;width:100px;padding:3px;padding-left:0;clear:left;z-index:2;position:relative;}
+.x-form-element{padding-left:105px;position:relative;}
+.x-form-invalid-msg{color:#e00;padding:2px;padding-left:18px;font:normal 11px tahoma,arial,helvetica,sans-serif;background:transparent url(../js/ext/resources/images/default/shared/warning.gif) no-repeat 0 2px;line-height:16px;width:200px;}
+.x-form-label-right label{text-align:right;}
+.x-form-label-top .x-form-item label{width:auto;float:none;clear:none;display:inline;margin-bottom:4px;position:static;}
+.x-form-label-top .x-form-element{padding-left:0;padding-top:4px;}
+.x-form-label-top .x-form-item{padding-bottom:4px;}
+.x-form-empty-field{color:gray;}
+.x-small-editor .x-form-field{font:normal 11px arial,tahoma,helvetica,sans-serif;}
+.x-small-editor .x-form-text{height:20px;line-height:16px;vertical-align:middle;}
+.ext-ie .x-small-editor .x-form-text{margin-top:-1px!important;margin-bottom:-1px!important;height:20px!important;line-height:16px!important;}
+.ext-strict .x-small-editor .x-form-text{height:16px!important;}
+.ext-safari .x-small-editor .x-form-field{font:normal 12px arial,tahoma,helvetica,sans-serif;}
+.ext-ie .x-small-editor .x-form-text{height:20px;line-height:16px;}
+.ext-border-box .x-small-editor .x-form-text{height:20px;}
+.x-small-editor .x-form-select-one{height:20px;line-height:16px;vertical-align:middle;}
+.x-small-editor .x-form-num-field{text-align:right;}
+.x-small-editor .x-form-field-wrap .x-form-trigger{height:19px;}
+.x-form-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;}
+.x-form-clear-left{clear:left;height:0;overflow:hidden;line-height:0;font-size:0;}
+.x-form-cb-label{width:'auto'!important;float:none!important;clear:none!important;display:inline!important;margin-left:4px;}
+.x-form-column{float:left;padding:0;margin:0;width:48%;overflow:hidden;zoom:1;}
+.x-form .x-form-btns-ct .x-btn{float:right;clear:none;}
+.x-form .x-form-btns-ct .x-form-btns td{border:0;padding:0;}
+.x-form .x-form-btns-ct .x-form-btns-right table{float:right;clear:none;}
+.x-form .x-form-btns-ct .x-form-btns-left table{float:left;clear:none;}
+.x-form .x-form-btns-ct .x-form-btns-center{text-align:center;}
+.x-form .x-form-btns-ct .x-form-btns-center table{margin:0 auto;}
+.x-form .x-form-btns-ct table td.x-form-btn-td{padding:3px;}
+.x-form .x-form-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;}
+.x-form .x-form-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;}
+.x-form .x-form-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;}
+.x-form .x-form-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;}
+.x-form .x-form-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;}
+.x-form .x-form-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;}
+.x-form-invalid-icon{width:16px;height:18px;visibility:hidden;position:absolute;left:0;top:0;display:block;background:transparent url(../js/ext/resources/images/default/form/exclamation.gif) no-repeat 0 2px;}
+.x-fieldset{border:1px solid #B5B8C8;padding:10px;margin-bottom:10px;}
+.x-fieldset legend{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#15428b;}
+.ext-ie .x-fieldset legend{margin-bottom:10px;}
+.ext-ie .x-fieldset{padding-top:0;padding-bottom:10px;}
+.x-fieldset legend .x-tool-toggle{margin-right:3px;margin-left:0;float:left!important;}
+.x-fieldset legend input{margin-right:3px;float:left!important;height:13px;width:13px;}
+fieldset.x-panel-collapsed{padding-bottom:0!important;border-width:1px 0 0 0!important;}
+fieldset.x-panel-collapsed .x-fieldset-bwrap{visibility:hidden;position:absolute;left:-1000px;top:-1000px;}
+.ext-ie .x-fieldset-bwrap{zoom:1;}
+.ext-ie td .x-form-text{position:relative;top:-1px;}
+.x-fieldset-noborder{border:0 none transparent;}
+.x-fieldset-noborder legend{margin-left:-3px;}
+.ext-ie .x-fieldset-noborder legend{position:relative;margin-bottom:23px;}
+.ext-ie .x-fieldset-noborder legend span{position:absolute;left:-5px;}
+.ext-gecko .x-window-body .x-form-item{-moz-outline:none;overflow:auto;}
+.ext-gecko .x-form-item{-moz-outline:none;}
+.x-hide-label label.x-form-item-label{display:none;}
+.x-hide-label .x-form-element{padding-left:0!important;}
+.x-fieldset{overflow:hidden;}
+.x-fieldset-bwrap{overflow:hidden;zoom:1;}
+.x-fieldset-body{overflow:hidden;}
+
+.x-btn{font:normal 11px tahoma,verdana,helvetica;cursor:pointer;white-space:nowrap;}
+.x-btn button{border:0 none;background:transparent;font:normal 11px tahoma,verdana,helvetica;padding-left:3px;padding-right:3px;cursor:pointer;margin:0;overflow:visible;width:auto;-moz-outline:0 none;outline:0 none;}
+* html .ext-ie .x-btn button{width:1px;}
+.ext-gecko .x-btn button{padding-left:0;padding-right:0;}
+.ext-ie .x-btn button{padding-top:2px;}
+.x-btn-icon .x-btn-center .x-btn-text{background-position:center;background-repeat:no-repeat;height:16px;width:16px;cursor:pointer;white-space:nowrap;padding:0;}
+.x-btn-icon .x-btn-center{padding:1px;}
+.x-btn em{font-style:normal;font-weight:normal;}
+.x-btn-text-icon .x-btn-center .x-btn-text{background-position:0 2px;background-repeat:no-repeat;padding-left:18px;padding-top:3px;padding-bottom:2px;padding-right:0;}
+.x-btn-left,.x-btn-right{font-size:1px;line-height:1px;}
+.x-btn-left{width:3px;height:21px;background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 0;}
+.x-btn-right{width:3px;height:21px;background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 -21px;}
+.x-btn-left i,.x-btn-right i{display:block;width:3px;overflow:hidden;font-size:1px;line-height:1px;}
+.x-btn-center{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) repeat-x 0 -42px;vertical-align:middle;text-align:center;padding:0 5px;cursor:pointer;white-space:nowrap;}
+.x-btn-over .x-btn-left{background-position:0 -63px;}
+.x-btn-over .x-btn-right{background-position:0 -84px;}
+.x-btn-over .x-btn-center{background-position:0 -105px;}
+.x-btn-click .x-btn-center,.x-btn-menu-active .x-btn-center{background-position:0 -126px;}
+.x-btn-disabled *{color:gray!important;cursor:default!important;}
+.x-btn-menu-text-wrap .x-btn-center{padding:0 3px;}
+.ext-gecko .x-btn-menu-text-wrap .x-btn-center{padding:0 1px;}
+.x-btn-menu-arrow-wrap .x-btn-center{padding:0;}
+.x-btn-menu-arrow-wrap .x-btn-center button{width:12px!important;height:21px;padding:0!important;display:block;background:transparent url(../js/ext/resources/images/default/button/btn-arrow.gif) no-repeat left 3px;}
+.x-btn-with-menu .x-btn-center{padding-right:2px!important;}
+.x-btn-with-menu .x-btn-center em{display:block;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat right 0;padding-right:10px;}
+.x-btn-text-icon .x-btn-with-menu .x-btn-center em{display:block;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat right 3px;padding-right:10px;}
+.x-btn-pressed .x-btn-left{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 -63px;}
+.x-btn-pressed .x-btn-right{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 -84px;}
+.x-btn-pressed .x-btn-center{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) repeat-x 0 -126px;}
+
+.x-toolbar{border-color:#a9bfd3;border-style:solid;border-width:0 0 1px 0;display:block;padding:2px;background:#d0def0 url(../js/ext/resources/images/default/toolbar/bg.gif) repeat-x top left;position:relative;zoom:1;}
+.x-toolbar .x-item-disabled .x-btn-icon{opacity:.35;-moz-opacity:.35;filter:alpha(opacity=35);}
+.x-toolbar td{vertical-align:middle;}
+.mso .x-toolbar,.x-grid-mso .x-toolbar{border:0 none;background:url(../js/ext/resources/images/default/grid/mso-hd.gif);}
+.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 11px tahoma,arial,helvetica,sans-serif;}
+.x-toolbar .x-item-disabled{color:gray;cursor:default;opacity:.6;-moz-opacity:.6;filter:alpha(opacity=60);}
+.x-toolbar .x-item-disabled *{color:gray;cursor:default;}
+.x-toolbar .x-btn-left{background:none;}
+.x-toolbar .x-btn-right{background:none;}
+.x-toolbar .x-btn-center{background:none;padding:0;}
+.x-toolbar .x-btn-menu-text-wrap .x-btn-center button{padding-right:2px;}
+.ext-gecko .x-toolbar .x-btn-menu-text-wrap .x-btn-center button{padding-right:0;}
+.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{padding:0 2px;}
+.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{width:12px;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat 0 3px;}
+.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button{width:12px;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat 0 3px;}
+.x-toolbar .x-btn-over .x-btn-menu-arrow-wrap .x-btn-center button{background-position:0 -47px;}
+.x-toolbar .x-btn-over .x-btn-left{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 0;}
+.x-toolbar .x-btn-over .x-btn-right{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -21px;}
+.x-toolbar .x-btn-over .x-btn-center{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -42px;}
+.x-toolbar .x-btn-click .x-btn-left,.x-toolbar .x-btn-pressed .x-btn-left,.x-toolbar .x-btn-menu-active .x-btn-left{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -63px;}
+.x-toolbar .x-btn-click .x-btn-right,.x-toolbar .x-btn-pressed .x-btn-right,.x-toolbar .x-btn-menu-active .x-btn-right{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -84px;}
+.x-toolbar .x-btn-click .x-btn-center,.x-toolbar .x-btn-pressed .x-btn-center,.x-toolbar .x-btn-menu-active .x-btn-center{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -105px;}
+.x-toolbar .x-btn-with-menu .x-btn-center em{padding-right:8px;}
+.x-toolbar .ytb-text{padding:2px;}
+.x-toolbar .ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-blue-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px 0;border:0;}
+.x-toolbar .ytb-spacer{width:2px;}
+.x-tbar-page-number{width:24px;height:14px;}
+.x-tbar-page-first{background-image:url(../js/ext/resources/images/default/grid/page-first.gif)!important;}
+.x-tbar-loading{background-image:url(../js/ext/resources/images/default/grid/done.gif)!important;}
+.x-tbar-page-last{background-image:url(../js/ext/resources/images/default/grid/page-last.gif)!important;}
+.x-tbar-page-next{background-image:url(../js/ext/resources/images/default/grid/page-next.gif)!important;}
+.x-tbar-page-prev{background-image:url(../js/ext/resources/images/default/grid/page-prev.gif)!important;}
+.x-item-disabled .x-tbar-loading{background-image:url(../js/ext/resources/images/default/grid/loading.gif)!important;}
+.x-item-disabled .x-tbar-page-first{background-image:url(../js/ext/resources/images/default/grid/page-first-disabled.gif)!important;}
+.x-item-disabled .x-tbar-page-last{background-image:url(../js/ext/resources/images/default/grid/page-last-disabled.gif)!important;}
+.x-item-disabled .x-tbar-page-next{background-image:url(../js/ext/resources/images/default/grid/page-next-disabled.gif)!important;}
+.x-item-disabled .x-tbar-page-prev{background-image:url(../js/ext/resources/images/default/grid/page-prev-disabled.gif)!important;}
+.x-paging-info{position:absolute;top:5px;right:8px;color:#444;}
+
+.x-resizable-handle{position:absolute;z-index:100;font-size:1px;line-height:6px;overflow:hidden;background:white;filter:alpha(opacity=0);opacity:0;zoom:1;}
+.x-resizable-handle-east{width:6px;cursor:e-resize;right:0;top:0;height:100%;}
+.ext-ie .x-resizable-handle-east{margin-right:-1px;}
+.x-resizable-handle-south{width:100%;cursor:s-resize;left:0;bottom:0;height:6px;}
+.ext-ie .x-resizable-handle-south{margin-bottom:-1px;}
+.x-resizable-handle-west{width:6px;cursor:w-resize;left:0;top:0;height:100%;}
+.x-resizable-handle-north{width:100%;cursor:n-resize;left:0;top:0;height:6px;}
+.x-resizable-handle-southeast{width:6px;cursor:se-resize;right:0;bottom:0;height:6px;z-index:101;}
+.x-resizable-handle-northwest{width:6px;cursor:nw-resize;left:0;top:0;height:6px;z-index:101;}
+.x-resizable-handle-northeast{width:6px;cursor:ne-resize;right:0;top:0;height:6px;z-index:101;}
+.x-resizable-handle-southwest{width:6px;cursor:sw-resize;left:0;bottom:0;height:6px;z-index:101;}
+.x-resizable-over .x-resizable-handle,.x-resizable-pinned .x-resizable-handle{filter:alpha(opacity=100);opacity:1;}
+.x-resizable-over .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-east{background:url(../js/ext/resources/images/default/sizer/e-handle.gif);background-position:left;}
+.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-west{background:url(../js/ext/resources/images/default/sizer/e-handle.gif);background-position:left;}
+.x-resizable-over .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-south{background:url(../js/ext/resources/images/default/sizer/s-handle.gif);background-position:top;}
+.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-north{background:url(../js/ext/resources/images/default/sizer/s-handle.gif);background-position:top;}
+.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{background:url(../js/ext/resources/images/default/sizer/se-handle.gif);background-position:top left;}
+.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{background:url(../js/ext/resources/images/default/sizer/nw-handle.gif);background-position:bottom right;}
+.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{background:url(../js/ext/resources/images/default/sizer/ne-handle.gif);background-position:bottom left;}
+.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{background:url(../js/ext/resources/images/default/sizer/sw-handle.gif);background-position:top right;}
+.x-resizable-proxy{border:1px dashed #3b5a82;position:absolute;overflow:hidden;display:none;left:0;top:0;z-index:50000;}
+.x-resizable-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background:white;z-index:200000;-moz-opacity:0;opacity:0;filter:alpha(opacity=0);}
+
+ .x-grid3{position:relative;overflow:hidden;background-color:#fff;}
+.x-grid-panel .x-panel-body{overflow:hidden!important;}
+.x-grid-panel .x-panel-mc .x-panel-body{border:1px solid #99bbe8;}
+.ext-ie .x-grid3 table,.ext-safari .x-grid3 table{table-layout:fixed;}
+.x-grid3-viewport{overflow:hidden;}
+.x-grid3-hd-row td,.x-grid3-row td,.x-grid3-summary-row td{font:normal 11px arial,tahoma,helvetica,sans-serif;-moz-outline:none;-moz-user-focus:normal;}
+.x-grid3-row td,.x-grid3-summary-row td{line-height:13px;vertical-align:top;padding-left:1px;padding-right:1px;-moz-user-select:none;}
+.x-grid3-hd-row td{line-height:15px;vertical-align:middle;border-left:1px solid #eee;border-right:1px solid #d0d0d0;}
+.x-grid3-hd-row .x-grid3-marker-hd{padding:3px;}
+.x-grid3-row .x-grid3-marker{padding:3px;}
+.x-grid3-cell-inner,.x-grid3-hd-inner{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;padding:3px 3px 3px 5px;white-space:nowrap;}
+.x-grid3-hd-inner{position:relative;cursor:inherit;padding:4px 3px 4px 5px;}
+.x-grid3-row-body{white-space:normal;}
+.x-grid3-body-cell{-moz-outline:0 none;outline:0 none;}
+.ext-ie .x-grid3-cell-inner,.ext-ie .x-grid3-hd-inner{width:100%;}
+.ext-strict .x-grid3-cell-inner,.ext-strict .x-grid3-hd-inner{width:auto;}
+.x-grid-row-loading{background:#fff url(../js/ext/resources/images/default/shared/loading-balls.gif) no-repeat center center;}
+.x-grid-page{overflow:hidden;}
+.x-grid3-row{cursor:default;border:1px solid #ededed;border-top-color:#fff;width:100%;}
+.x-grid3-row-alt{background-color:#fafafa;}
+.x-grid3-row-over{border:1px solid #ddd;background:#efefef url(../js/ext/resources/images/default/grid/row-over.gif) repeat-x left top;}
+.x-grid3-resize-proxy{width:1px;left:0;background-color:#777;cursor:e-resize;cursor:col-resize;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;}
+.x-grid3-resize-marker{width:1px;left:0;background-color:#777;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;}
+.x-grid3-focus{position:absolute;top:0;-moz-outline:0 none;outline:0 none;-moz-user-select:normal;-khtml-user-select:normal;}
+.x-grid3-header{background:#f9f9f9 url(../js/ext/resources/images/default/grid/grid3-hrow.gif) repeat-x 0 bottom;cursor:default;zoom:1;padding:1px 0 0 0;}
+.x-grid3-header-pop{border-left:1px solid #d0d0d0;float:right;clear:none;}
+.x-grid3-header-pop-inner{border-left:1px solid #eee;width:14px;height:19px;background:transparent url(../js/ext/resources/images/default/grid/hd-pop.gif) no-repeat center center;}
+.ext-ie .x-grid3-header-pop-inner{width:15px;}
+.ext-strict .x-grid3-header-pop-inner{width:14px;}
+.x-grid3-header-inner{overflow:hidden;zoom:1;float:left;}
+.x-grid3-header-offset{padding-left:1px;width:10000px;}
+td.x-grid3-hd-over,td.sort-desc,td.sort-asc,td.x-grid3-hd-menu-open{border-left:1px solid #aaccf6;border-right:1px solid #aaccf6;}
+td.x-grid3-hd-over .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.sort-asc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner{background:#ebf3fd url(../js/ext/resources/images/default/grid/grid3-hrow-over.gif) repeat-x left bottom;}
+.x-grid3-sort-icon{background-repeat:no-repeat;display:none;height:4px;width:13px;margin-left:3px;vertical-align:middle;}
+.sort-asc .x-grid3-sort-icon{background-image:url(../js/ext/resources/images/default/grid/sort_asc.gif);display:inline;}
+.sort-desc .x-grid3-sort-icon{background-image:url(../js/ext/resources/images/default/grid/sort_desc.gif);display:inline;}
+.ext-strict .ext-ie .x-grid3-header-inner{position:relative;}
+.ext-strict .ext-ie6 .x-grid3-hd{position:relative;}
+.ext-strict .ext-ie6 .x-grid3-hd-inner{position:static;}
+.x-grid3-body{zoom:1;}
+.x-grid3-scroller{overflow:auto;zoom:1;position:relative;}
+.x-grid3-cell-text,.x-grid3-hd-text{display:block;padding:3px 5px 3px 5px;-moz-user-select:none;-khtml-user-select:none;color:black;}
+.x-grid3-split{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;cursor:e-resize;cursor:col-resize;display:block;font-size:1px;height:16px;overflow:hidden;position:absolute;top:2px;width:6px;z-index:3;}
+.x-grid3-hd-text{color:#15428b;}
+.x-dd-drag-proxy .x-grid3-hd-inner{background:#ebf3fd url(../js/ext/resources/images/default/grid/grid3-hrow-over.gif) repeat-x left bottom;width:120px;padding:3px;border:1px solid #aaccf6;overflow:hidden;}
+.col-move-top,.col-move-bottom{width:9px;height:9px;position:absolute;top:0;line-height:1px;font-size:1px;overflow:hidden;visibility:hidden;z-index:20000;}
+.col-move-top{background:transparent url(../js/ext/resources/images/default/grid/col-move-top.gif) no-repeat left top;}
+.col-move-bottom{background:transparent url(../js/ext/resources/images/default/grid/col-move-bottom.gif) no-repeat left top;}
+.x-grid3-row-selected{background:#DFE8F6!important;border:1px dotted #a3bae9;}
+.x-grid3-cell-selected{background-color:#B8CFEE!important;color:black;}
+.x-grid3-cell-selected span{color:black!important;}
+.x-grid3-cell-selected .x-grid3-cell-text{color:black;}
+.x-grid3-locked td.x-grid3-row-marker,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{background:#ebeadb url(../js/ext/resources/images/default/grid/grid-hrow.gif) repeat-x 0 bottom!important;vertical-align:middle!important;color:black;padding:0;border-top:1px solid white;border-bottom:none!important;border-right:1px solid #6fa0df!important;text-align:center;}
+.x-grid3-locked td.x-grid3-row-marker div,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div{padding:0 4px;color:#15428b!important;text-align:center;}
+.x-grid3-dirty-cell{background:transparent url(../js/ext/resources/images/default/grid/dirty.gif) no-repeat 0 0;}
+.x-grid3-topbar,.x-grid3-bottombar{font:normal 11px arial,tahoma,helvetica,sans-serif;overflow:hidden;display:none;zoom:1;position:relative;}
+.x-grid3-topbar .x-toolbar{border-right:0 none;}
+.x-grid3-bottombar .x-toolbar{border-right:0 none;border-bottom:0 none;border-top:1px solid #a9bfd3;}
+.x-props-grid .x-grid3-cell{padding:1px;}
+.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y -16px!important;padding-left:12px;color:black!important;}
+.x-props-grid .x-grid3-body .x-grid3-td-name{padding:1px;padding-right:0;background:white!important;border:0 none;border-right:1px solid #eee;}
+.xg-hmenu-sort-asc .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-asc.gif);}
+.xg-hmenu-sort-desc .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-desc.gif);}
+.xg-hmenu-lock .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-lock.gif);}
+.xg-hmenu-unlock .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-unlock.gif);}
+.x-grid3-col-dd{border:0 none;padding:0;background:transparent;}
+.x-dd-drag-ghost .x-grid3-dd-wrap{padding:1px 3px 3px 1px;}
+.x-grid3-hd{-moz-user-select:none;}
+.x-grid3-hd-btn{display:none;position:absolute;width:14px;background:#c3daf9 url(../js/ext/resources/images/default/grid/grid3-hd-btn.gif) no-repeat left center;right:0;top:0;z-index:2;cursor:pointer;}
+.x-grid3-hd-over .x-grid3-hd-btn,.x-grid3-hd-menu-open .x-grid3-hd-btn{display:block;}
+a.x-grid3-hd-btn:hover{background-position:-14px center;}
+.x-grid3-body .x-grid3-td-expander{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y right;}
+.x-grid3-body .x-grid3-td-expander .x-grid3-cell-inner{padding:0!important;height:100%;}
+.x-grid3-row-expander{width:100%;height:18px;background-position:4px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/grid/row-expand-sprite.gif);}
+.x-grid3-row-collapsed .x-grid3-row-expander{background-position:4px 2px;}
+.x-grid3-row-expanded .x-grid3-row-expander{background-position:-21px 2px;}
+.x-grid3-row-collapsed .x-grid3-row-body{display:none!important;}
+.x-grid3-row-expanded .x-grid3-row-body{display:block!important;}
+.x-grid3-body .x-grid3-td-checker{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y right;}
+.x-grid3-body .x-grid3-td-checker .x-grid3-cell-inner,.x-grid3-header .x-grid3-td-checker .x-grid3-hd-inner{padding:0!important;height:100%;}
+.x-grid3-row-checker,.x-grid3-hd-checker{width:100%;height:18px;background-position:2px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/grid/row-check-sprite.gif);}
+.x-grid3-row .x-grid3-row-checker{background-position:2px 2px;}
+.x-grid3-row-selected .x-grid3-row-checker,.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 2px;}
+.x-grid3-hd-checker{background-position:2px 3px;}
+.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 3px;}
+.x-grid3-body .x-grid3-td-numberer{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y right;}
+.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner{padding:3px 5px 0 0!important;text-align:right;color:#444;}
+.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer,.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-sel-bg.gif) repeat-y right;}
+.x-grid3-body .x-grid3-check-col-td .x-grid3-cell-inner{padding:1px 0 0 0!important;}
+.x-grid3-check-col{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/menu/unchecked.gif);}
+.x-grid3-check-col-on{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/menu/checked.gif);}
+.x-grid-group,.x-grid-group-body,.x-grid-group-hd{zoom:1;}
+.x-grid-group-hd{border-bottom:2px solid #99bbe8;cursor:pointer;padding-top:6px;}
+.x-grid-group-hd div{background:transparent url(../js/ext/resources/images/default/grid/group-expand-sprite.gif) no-repeat 3px -47px;padding:4px 4px 4px 17px;color:#3764a0;font:bold 11px tahoma,arial,helvetica,sans-serif;}
+.x-grid-group-collapsed .x-grid-group-hd div{background-position:3px 3px;}
+.x-grid-group-collapsed .x-grid-group-body{display:none;}
+.x-group-by-icon{background-image:url(../js/ext/resources/images/default/grid/group-by.gif);}
+.x-cols-icon{background-image:url(../js/ext/resources/images/default/grid/columns.gif);}
+.x-show-groups-icon{background-image:url(../js/ext/resources/images/default/grid/group-by.gif);}
+.ext-ie .x-grid3 .x-editor .x-form-text{position:relative;top:-1px;}
+.ext-ie .x-props-grid .x-editor .x-form-text{position:static;top:0;}
+.x-grid-empty{padding:10px;color:gray;font:normal 11px tahoma,arial,helvetica,sans-serif;}
+.ext-ie7 .x-grid-panel .x-panel-bbar{position:relative;}
+
+.x-dd-drag-proxy{position:absolute;left:0;top:0;visibility:hidden;z-index:15000;}
+.x-dd-drag-ghost{color:black;font:normal 11px arial,helvetica,sans-serif;-moz-opacity:0.85;opacity:.85;filter:alpha(opacity=85);border-top:1px solid #ddd;border-left:1px solid #ddd;border-right:1px solid #bbb;border-bottom:1px solid #bbb;padding:3px;padding-left:20px;background-color:white;white-space:nowrap;}
+.x-dd-drag-repair .x-dd-drag-ghost{-moz-opacity:0.4;opacity:.4;filter:alpha(opacity=40);border:0 none;padding:0;background-color:transparent;}
+.x-dd-drag-repair .x-dd-drop-icon{visibility:hidden;}
+.x-dd-drop-icon{position:absolute;top:3px;left:3px;display:block;width:16px;height:16px;background-color:transparent;background-position:center;background-repeat:no-repeat;z-index:1;}
+.x-dd-drop-nodrop .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/dd/drop-no.gif);}
+.x-dd-drop-ok .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/dd/drop-yes.gif);}
+.x-dd-drop-ok-add .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/dd/drop-add.gif);}
+.x-view-selector{position:absolute;left:0;top:0;width:0;background:#c3daf9;border:1px dotted #39b;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);zoom:1;}
+
+.x-tree .x-panel-body{background-color:#fff;}
+.ext-strict .ext-ie .x-tree .x-panel-bwrap{position:relative;overflow:hidden;}
+.x-tree-icon,.x-tree-ec-icon,.x-tree-elbow-line,.x-tree-elbow,.x-tree-elbow-end,.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{border:0 none;height:18px;margin:0;padding:0;vertical-align:top;width:16px;background-repeat:no-repeat;}
+.x-tree-node-collapsed .x-tree-node-icon,.x-tree-node-expanded .x-tree-node-icon,.x-tree-node-leaf .x-tree-node-icon{border:0 none;height:18px;margin:0;padding:0;vertical-align:top;width:16px;background-position:center;background-repeat:no-repeat;}
+.ext-ie .x-tree-node-indent img,.ext-ie .x-tree-node-icon,.ext-ie .x-tree-ec-icon{vertical-align:middle!important;}
+.x-tree-node-expanded .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/folder-open.gif);}
+.x-tree-node-leaf .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/leaf.gif);}
+.x-tree-node-collapsed .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/folder.gif);}
+.ext-ie input.x-tree-node-cb{width:15px;height:15px;}
+input.x-tree-node-cb{margin-left:1px;}
+.ext-ie input.x-tree-node-cb{margin-left:0;}
+.x-tree-noicon .x-tree-node-icon{width:0;height:0;}
+.x-tree-node-loading .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/loading.gif)!important;}
+.x-tree-node-loading a span{font-style:italic;color:#444;}
+.ext-ie .x-tree-node-el input{width:15px;height:15px;}
+.x-tree-lines .x-tree-elbow{background-image:url(../js/ext/resources/images/default/tree/elbow.gif);}
+.x-tree-lines .x-tree-elbow-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-plus.gif);}
+.x-tree-lines .x-tree-elbow-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-minus.gif);}
+.x-tree-lines .x-tree-elbow-end{background-image:url(../js/ext/resources/images/default/tree/elbow-end.gif);}
+.x-tree-lines .x-tree-elbow-end-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-plus.gif);}
+.x-tree-lines .x-tree-elbow-end-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-minus.gif);}
+.x-tree-lines .x-tree-elbow-line{background-image:url(../js/ext/resources/images/default/tree/elbow-line.gif);}
+.x-tree-no-lines .x-tree-elbow{background:transparent;}
+.x-tree-no-lines .x-tree-elbow-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-plus-nl.gif);}
+.x-tree-no-lines .x-tree-elbow-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-minus-nl.gif);}
+.x-tree-no-lines .x-tree-elbow-end{background:transparent;}
+.x-tree-no-lines .x-tree-elbow-end-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-plus-nl.gif);}
+.x-tree-no-lines .x-tree-elbow-end-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-minus-nl.gif);}
+.x-tree-no-lines .x-tree-elbow-line{background:transparent;}
+.x-tree-arrows .x-tree-elbow{background:transparent;}
+.x-tree-arrows .x-tree-elbow-plus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat 0 0;}
+.x-tree-arrows .x-tree-elbow-minus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat -16px 0;}
+.x-tree-arrows .x-tree-elbow-end{background:transparent;}
+.x-tree-arrows .x-tree-elbow-end-plus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat 0 0;}
+.x-tree-arrows .x-tree-elbow-end-minus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat -16px 0;}
+.x-tree-arrows .x-tree-elbow-line{background:transparent;}
+.x-tree-arrows .x-tree-ec-over .x-tree-elbow-plus{background-position:-32px 0;}
+.x-tree-arrows .x-tree-ec-over .x-tree-elbow-minus{background-position:-48px 0;}
+.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-plus{background-position:-32px 0;}
+.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-minus{background-position:-48px 0;}
+.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{cursor:pointer;}
+.ext-ie ul.x-tree-node-ct{font-size:0;line-height:0;zoom:1;}
+.x-tree-node{color:black;font:normal 11px arial,tahoma,helvetica,sans-serif;white-space:nowrap;}
+.x-tree-node-el{line-height:18px;cursor:pointer;}
+.x-tree-node a,.x-dd-drag-ghost a{text-decoration:none;color:black;-khtml-user-select:none;-moz-user-select:none;-kthml-user-focus:normal;-moz-user-focus:normal;-moz-outline:0 none;outline:0 none;}
+.x-tree-node a span,.x-dd-drag-ghost a span{text-decoration:none;color:black;padding:1px 3px 1px 2px;}
+.x-tree-node .x-tree-node-disabled a span{color:gray!important;}
+.x-tree-node .x-tree-node-disabled .x-tree-node-icon{-moz-opacity:0.5;opacity:.5;filter:alpha(opacity=50);}
+.x-tree-node .x-tree-node-inline-icon{background:transparent;}
+.x-tree-node a:hover,.x-dd-drag-ghost a:hover{text-decoration:none;}
+.x-tree-node div.x-tree-drag-insert-below{border-bottom:1px dotted #36c;}
+.x-tree-node div.x-tree-drag-insert-above{border-top:1px dotted #36c;}
+.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below{border-bottom:0 none;}
+.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above{border-top:0 none;}
+.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom:2px solid #36c;}
+.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top:2px solid #36c;}
+.x-tree-node .x-tree-drag-append a span{background:#ddd;border:1px dotted gray;}
+.x-tree-node .x-tree-node-over{background-color:#eee;}
+.x-tree-node .x-tree-selected{background-color:#d9e8fb;}
+.x-dd-drag-ghost .x-tree-node-indent,.x-dd-drag-ghost .x-tree-ec-icon{display:none!important;}
+.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-add.gif);}
+.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-over.gif);}
+.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-under.gif);}
+.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-between.gif);}
+
+.x-date-picker{border:1px solid #1b376c;border-top:0 none;background:#fff;position:relative;}
+.x-date-picker a{-moz-outline:0 none;outline:0 none;}
+.x-date-inner,.x-date-inner td,.x-date-inner th{border-collapse:separate;}
+.x-date-middle,.x-date-left,.x-date-right{background:url(../js/ext/resources/images/default/shared/hd-sprite.gif) repeat-x 0 -83px;color:#FFF;font:bold 11px "sans serif",tahoma,verdana,helvetica;overflow:hidden;}
+.x-date-middle .x-btn-left,.x-date-middle .x-btn-center,.x-date-middle .x-btn-right{background:transparent!important;vertical-align:middle;}
+.x-date-middle .x-btn .x-btn-text{color:#fff;}
+.x-date-middle .x-btn-with-menu .x-btn-center em{background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow-light.gif) no-repeat right 0;}
+.x-date-right,.x-date-left{width:18px;}
+.x-date-right{text-align:right;}
+.x-date-middle{padding-top:2px;padding-bottom:2px;}
+.x-date-right a,.x-date-left a{display:block;width:16px;height:16px;background-position:center;background-repeat:no-repeat;cursor:pointer;-moz-opacity:0.6;opacity:.6;filter:alpha(opacity=60);}
+.x-date-right a:hover,.x-date-left a:hover{-moz-opacity:1;opacity:1;filter:alpha(opacity=100);}
+.x-date-right a{background-image:url(../js/ext/resources/images/default/shared/right-btn.gif);margin-right:2px;text-decoration:none!important;}
+.x-date-left a{background-image:url(../js/ext/resources/images/default/shared/left-btn.gif);margin-left:2px;text-decoration:none!important;}
+table.x-date-inner{width:100%;table-layout:fixed;}
+.x-date-inner th{width:25px;}
+.x-date-inner th{background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;text-align:right!important;border-bottom:1px solid #a3bad9;font:normal 10px arial,helvetica,tahoma,sans-serif;color:#233d6d;cursor:default;padding:0;border-collapse:separate;}
+.x-date-inner th span{display:block;padding:2px;padding-right:7px;}
+.x-date-inner td{border:1px solid #fff;text-align:right;padding:0;}
+.x-date-inner a{padding:2px 5px;display:block;font:normal 11px arial,helvetica,tahoma,sans-serif;text-decoration:none;color:black;text-align:right;zoom:1;}
+.x-date-inner .x-date-active{cursor:pointer;color:black;}
+.x-date-inner .x-date-selected a{background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;border:1px solid #8db2e3;padding:1px 4px;}
+.x-date-inner .x-date-today a{border:1px solid darkred;padding:1px 4px;}
+.x-date-inner .x-date-selected span{font-weight:bold;}
+.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a{color:#aaa;text-decoration:none!important;}
+.x-date-bottom{padding:4px;border-top:1px solid #a3bad9;background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;}
+.x-date-inner a:hover,.x-date-inner .x-date-disabled a:hover{text-decoration:none!important;color:black;background:#ddecfe;}
+.x-date-inner .x-date-disabled a{cursor:default;background:#eee;color:#bbb;}
+.x-date-mmenu{background:#eee!important;}
+.x-date-mmenu .x-menu-item{font-size:10px;padding:1px 24px 1px 4px;white-space:nowrap;color:#000;}
+.x-date-mmenu .x-menu-item .x-menu-item-icon{width:10px;height:10px;margin-right:5px;background-position:center -4px!important;}
+.x-date-mp{position:absolute;left:0;top:0;background:white;display:none;}
+.x-date-mp td{padding:2px;font:normal 11px arial,helvetica,tahoma,sans-serif;}
+td.x-date-mp-month,td.x-date-mp-year,td.x-date-mp-ybtn{border:0 none;text-align:center;vertical-align:middle;width:25%;}
+.x-date-mp-ok{margin-right:3px;}
+.x-date-mp-btns button{text-decoration:none;text-align:center;text-decoration:none!important;background:#083772;color:white;border:1px solid;border-color:#36c #005 #005 #36c;padding:1px 3px 1px;font:normal 11px arial,helvetica,tahoma,sans-serif;cursor:pointer;}
+.x-date-mp-btns{background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;}
+.x-date-mp-btns td{border-top:1px solid #c5d2df;text-align:center;}
+td.x-date-mp-month a,td.x-date-mp-year a{display:block;padding:2px 4px;text-decoration:none;text-align:center;color:#15428b;}
+td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{color:#15428b;text-decoration:none;cursor:pointer;background:#ddecfe;}
+td.x-date-mp-sel a{padding:1px 3px;background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;border:1px solid #8db2e3;}
+.x-date-mp-ybtn a{overflow:hidden;width:15px;height:15px;cursor:pointer;background:transparent url(../js/ext/resources/images/default/panel/tool-sprites.gif) no-repeat;display:block;margin:0 auto;}
+.x-date-mp-ybtn a.x-date-mp-next{background-position:0 -120px;}
+.x-date-mp-ybtn a.x-date-mp-next:hover{background-position:-15px -120px;}
+.x-date-mp-ybtn a.x-date-mp-prev{background-position:0 -105px;}
+.x-date-mp-ybtn a.x-date-mp-prev:hover{background-position:-15px -105px;}
+.x-date-mp-ybtn{text-align:center;}
+td.x-date-mp-sep{border-right:1px solid #c5d2df;}
+
+.x-tip{position:absolute;top:0;left:0;visibility:hidden;z-index:20000;border:0 none;}
+.x-tip .x-tip-close{background-image:url(../js/ext/resources/images/default/qtip/close.gif);height:15px;float:right;width:15px;margin:0 0 2px 2px;cursor:pointer;display:none;}
+.x-tip .x-tip-tc{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -62px;padding-top:3px;overflow:hidden;zoom:1;}
+.x-tip .x-tip-tl{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 0;padding-left:6px;overflow:hidden;zoom:1;}
+.x-tip .x-tip-tr{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat right 0;padding-right:6px;overflow:hidden;zoom:1;}
+.x-tip .x-tip-bc{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -121px;height:3px;overflow:hidden;}
+.x-tip .x-tip-bl{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -59px;padding-left:6px;zoom:1;}
+.x-tip .x-tip-br{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat right -59px;padding-right:6px;zoom:1;}
+.x-tip .x-tip-mc{border:0 none;font:normal 11px tahoma,arial,helvetica,sans-serif;}
+.x-tip .x-tip-ml{background:#fff url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -124px;padding-left:6px;zoom:1;}
+.x-tip .x-tip-mr{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat right -124px;padding-right:6px;zoom:1;}
+.ext-ie .x-tip .x-tip-header,.ext-ie .x-tip .x-tip-tc{font-size:0;line-height:0;}
+.x-tip .x-tip-header-text{font:bold 11px tahoma,arial,helvetica,sans-serif;padding:0;margin:0 0 2px 0;color:#444;}
+.x-tip .x-tip-body{font:normal 11px tahoma,arial,helvetica,sans-serif;margin:0!important;line-height:14px;color:#444;padding:0;}
+.x-tip .x-tip-body .loading-indicator{margin:0;}
+.x-tip-draggable .x-tip-header,.x-tip-draggable .x-tip-header-text{cursor:move;}
+.x-form-invalid-tip .x-tip-tc{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) repeat-x 0 -12px;padding-top:6px;}
+.x-form-invalid-tip .x-tip-tl{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}
+.x-form-invalid-tip .x-tip-tr{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}
+.x-form-invalid-tip .x-tip-bc{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) repeat-x 0 -18px;height:6px;}
+.x-form-invalid-tip .x-tip-bl{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) no-repeat 0 -6px;}
+.x-form-invalid-tip .x-tip-br{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) no-repeat right -6px;}
+.x-form-invalid-tip .x-tip-ml{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}
+.x-form-invalid-tip .x-tip-mr{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}
+.x-form-invalid-tip .x-tip-body{padding:2px;}
+.x-form-invalid-tip .x-tip-body{padding-left:24px;background:transparent url(../js/ext/resources/images/default/form/exclamation.gif) no-repeat 2px 2px;}
+
+.x-menu{border:1px solid #718bb7;z-index:15000;zoom:1;background:#f0f0f0 url(../js/ext/resources/images/default/menu/menu.gif) repeat-y;padding:2px;}
+.x-menu a{text-decoration:none!important;}
+.ext-ie .x-menu{zoom:1;overflow:hidden;}
+.x-menu-list{background:transparent;border:0 none;}
+.x-menu li{line-height:100%;}
+.x-menu li.x-menu-sep-li{font-size:1px;line-height:1px;}
+.x-menu-list-item{font:normal 11px tahoma,arial,sans-serif;white-space:nowrap;-moz-user-select:none;-khtml-user-select:none;display:block;padding:1px;}
+.x-menu-item-arrow{background:transparent url(../js/ext/resources/images/default/menu/menu-parent.gif) no-repeat right;}
+.x-menu-sep{display:block;font-size:1px;line-height:1px;margin:2px 3px;background-color:#e0e0e0;border-bottom:1px solid #fff;overflow:hidden;}
+.x-menu-focus{position:absolute;left:0;top:-5px;width:0;height:0;line-height:1px;}
+.x-menu a.x-menu-item{display:block;line-height:16px;padding:3px 21px 3px 3px;white-space:nowrap;text-decoration:none;color:#222;-moz-outline:0 none;outline:0 none;cursor:pointer;}
+.x-menu-item-active{background:#ebf3fd url(../js/ext/resources/images/default/menu/item-over.gif) repeat-x left bottom;border:1px solid #aaccf6;padding:0;}
+.x-menu-item-active a.x-menu-item{color:#233d6d;}
+.x-menu-item-icon{border:0 none;height:16px;padding:0;vertical-align:top;width:16px;margin:0 8px 0 0;background-position:center;}
+.x-menu-check-item .x-menu-item-icon{background:transparent url(../js/ext/resources/images/default/menu/unchecked.gif) no-repeat center;}
+.x-menu-item-checked .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/menu/checked.gif);}
+.x-menu-group-item .x-menu-item-icon{background:transparent;}
+.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{background:transparent url(../js/ext/resources/images/default/menu/group-checked.gif) no-repeat center;}
+.x-menu-plain{background:#fff!important;}
+.x-menu-date-item{padding:0;}
+.x-menu .x-color-palette,.x-menu .x-date-picker{margin-left:26px;margin-right:4px;}
+.x-menu .x-date-picker{border:1px solid #a3bad9;margin-top:2px;margin-bottom:2px;}
+.x-menu-plain .x-color-palette,.x-menu-plain .x-date-picker{margin:0;border:0 none;}
+.x-date-menu{padding:0!important;}
+.x-cycle-menu .x-menu-item-checked{border:1px dotted #a3bae9!important;background:#DFE8F6;padding:0;}
+
+ .x-box-tl{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat 0 0;zoom:1;}
+.x-box-tc{height:8px;background:transparent url(../js/ext/resources/images/default/box/tb.gif) repeat-x 0 0;overflow:hidden;}
+.x-box-tr{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat right -8px;}
+.x-box-ml{background:transparent url(../js/ext/resources/images/default/box/l.gif) repeat-y 0;padding-left:4px;overflow:hidden;zoom:1;}
+.x-box-mc{background:#eee url(../js/ext/resources/images/default/box/tb.gif) repeat-x 0 -16px;padding:4px 10px;font-family:"Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif;color:#393939;font-size:12px;}
+.x-box-mc h3{font-size:14px;font-weight:bold;margin:0 0 4px 0;zoom:1;}
+.x-box-mr{background:transparent url(../js/ext/resources/images/default/box/r.gif) repeat-y right;padding-right:4px;overflow:hidden;}
+.x-box-bl{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat 0 -16px;zoom:1;}
+.x-box-bc{background:transparent url(../js/ext/resources/images/default/box/tb.gif) repeat-x 0 -8px;height:8px;overflow:hidden;}
+.x-box-br{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat right -24px;}
+.x-box-tl,.x-box-bl{padding-left:8px;overflow:hidden;}
+.x-box-tr,.x-box-br{padding-right:8px;overflow:hidden;}
+.x-box-blue .x-box-bl,.x-box-blue .x-box-br,.x-box-blue .x-box-tl,.x-box-blue .x-box-tr{background-image:url(../js/ext/resources/images/default/box/corners-blue.gif);}
+.x-box-blue .x-box-bc,.x-box-blue .x-box-mc,.x-box-blue .x-box-tc{background-image:url(../js/ext/resources/images/default/box/tb-blue.gif);}
+.x-box-blue .x-box-mc{background-color:#c3daf9;}
+.x-box-blue .x-box-mc h3{color:#17385b;}
+.x-box-blue .x-box-ml{background-image:url(../js/ext/resources/images/default/box/l-blue.gif);}
+.x-box-blue .x-box-mr{background-image:url(../js/ext/resources/images/default/box/r-blue.gif);}
+
+#x-debug-browser .x-tree .x-tree-node a span{color:#222297;font-size:11px;padding-top:2px;font-family:"monotype","courier new",sans-serif;line-height:18px;}
+#x-debug-browser .x-tree a i{color:#FF4545;font-style:normal;}
+#x-debug-browser .x-tree a em{color:#999;}
+#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{background:#c3daf9;}
+#x-debug-browser .x-tool-toggle{background-position:0 -75px;}
+#x-debug-browser .x-tool-toggle-over{background-position:-15px -75px;}
+#x-debug-browser.x-panel-collapsed .x-tool-toggle{background-position:0 -60px;}
+#x-debug-browser.x-panel-collapsed .x-tool-toggle-over{background-position:-15px -60px;}
+
+.x-combo-list{border:1px solid #98c0f4;background:#ddecfe;zoom:1;overflow:hidden;}
+.x-combo-list-inner{overflow:auto;background:white;position:relative;zoom:1;overflow-x:hidden;}
+.x-combo-list-hd{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#15428b;background-image:url(../js/ext/resources/images/default/layout/panel-title-light-bg.gif);border-bottom:1px solid #98c0f4;padding:3px;}
+.x-resizable-pinned .x-combo-list-inner{border-bottom:1px solid #98c0f4;}
+.x-combo-list-item{font:normal 12px tahoma,arial,helvetica,sans-serif;padding:2px;border:1px solid #fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
+.x-combo-list .x-combo-selected{border:1px dotted #a3bae9!important;background:#DFE8F6;cursor:pointer;}
+.x-combo-noedit{cursor:pointer;}
+.x-combo-list .x-toolbar{border-top:1px solid #98c0f4;border-bottom:0 none;}
+.x-combo-list-small .x-combo-list-item{font:normal 11px tahoma,arial,helvetica,sans-serif;}
+
+.x-panel{border-style:solid;border-color:#99bbe8;border-width:0;}
+.x-panel-header{overflow:hidden;zoom:1;color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 3px 4px 5px;border:1px solid #99bbe8;line-height:15px;background:transparent url(../js/ext/resources/images/default/panel/white-top-bottom.gif) repeat-x 0 -1px;}
+.x-panel-body{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;background:white;position:relative;}
+.x-panel-bbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}
+.x-panel-tbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}
+.x-panel-tbar-noheader .x-toolbar,.x-panel-mc .x-panel-tbar .x-toolbar{border-top:1px solid #99bbe8;border-bottom:0 none;}
+.x-panel-body-noheader,.x-panel-mc .x-panel-body{border-top:1px solid #99bbe8;}
+.x-panel-header{overflow:hidden;zoom:1;}
+.x-panel-tl .x-panel-header{color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 0 4px 0;border:0 none;background:transparent;}
+.x-panel-tl .x-panel-icon,.x-window-tl .x-panel-icon{padding-left:20px!important;background-repeat:no-repeat;background-position:0 4px;zoom:1;}
+.x-panel-inline-icon{width:16px;height:16px;background-repeat:no-repeat;background-position:0 0;vertical-align:middle;margin-right:4px;margin-top:-1px;margin-bottom:-1px;}
+.x-panel-tc{background:transparent url(../js/ext/resources/images/default/panel/top-bottom.gif) repeat-x 0 0;overflow:hidden;}
+.ext-strict .ext-ie7 .x-panel-tc{overflow:visible;}
+.x-panel-tl{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat 0 0;padding-left:6px;zoom:1;border-bottom:1px solid #99bbe8;}
+.x-panel-tr{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat right 0;zoom:1;padding-right:6px;}
+.x-panel-bc{background:transparent url(../js/ext/resources/images/default/panel/top-bottom.gif) repeat-x 0 bottom;zoom:1;}
+.x-panel-bc .x-panel-footer{zoom:1;}
+.x-panel-bl{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat 0 bottom;padding-left:6px;zoom:1;}
+.x-panel-br{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat right bottom;padding-right:6px;zoom:1;}
+.x-panel-mc{border:0 none;padding:0;margin:0;font:normal 11px tahoma,arial,helvetica,sans-serif;padding-top:6px;background:#dfe8f6;}
+.x-panel-mc .x-panel-body{background:transparent;border:0 none;}
+.x-panel-ml{background:#fff url(../js/ext/resources/images/default/panel/left-right.gif) repeat-y 0 0;padding-left:6px;zoom:1;}
+.x-panel-mr{background:transparent url(../js/ext/resources/images/default/panel/left-right.gif) repeat-y right 0;padding-right:6px;zoom:1;}
+.x-panel-bc .x-panel-footer{padding-bottom:6px;}
+.x-panel-nofooter .x-panel-bc{height:6px;font-size:0;line-height:0;}
+.x-panel-bwrap{overflow:hidden;zoom:1;}
+.x-panel-body{overflow:hidden;zoom:1;}
+.x-panel-collapsed .x-resizable-handle{display:none;}
+.ext-gecko .x-panel-animated div{overflow:hidden!important;}
+.x-plain-body{overflow:hidden;}
+.x-plain-bbar .x-toolbar{overflow:hidden;padding:2px;}
+.x-plain-tbar .x-toolbar{overflow:hidden;padding:2px;}
+.x-plain-bwrap{overflow:hidden;zoom:1;}
+.x-plain{overflow:hidden;}
+.x-tool{overflow:hidden;width:15px;height:15px;float:right;cursor:pointer;background:transparent url(../js/ext/resources/images/default/panel/tool-sprites.gif) no-repeat;margin-left:2px;}
+.x-tool-toggle{background-position:0 -60px;}
+.x-tool-toggle-over{background-position:-15px -60px;}
+.x-panel-collapsed .x-tool-toggle{background-position:0 -75px;}
+.x-panel-collapsed .x-tool-toggle-over{background-position:-15px -75px;}
+.x-tool-close{background-position:0 -0;}
+.x-tool-close-over{background-position:-15px 0;}
+.x-tool-minimize{background-position:0 -15px;}
+.x-tool-minimize-over{background-position:-15px -15px;}
+.x-tool-maximize{background-position:0 -30px;}
+.x-tool-maximize-over{background-position:-15px -30px;}
+.x-tool-restore{background-position:0 -45px;}
+.x-tool-restore-over{background-position:-15px -45px;}
+.x-tool-gear{background-position:0 -90px;}
+.x-tool-gear-over{background-position:-15px -90px;}
+.x-tool-pin{background-position:0 -135px;}
+.x-tool-pin-over{background-position:-15px -135px;}
+.x-tool-unpin{background-position:0 -150px;}
+.x-tool-unpin-over{background-position:-15px -150px;}
+.x-tool-right{background-position:0 -165px;}
+.x-tool-right-over{background-position:-15px -165px;}
+.x-tool-left{background-position:0 -180px;}
+.x-tool-left-over{background-position:-15px -180px;}
+.x-tool-up{background-position:0 -210px;}
+.x-tool-up-over{background-position:-15px -210px;}
+.x-tool-down{background-position:0 -195px;}
+.x-tool-down-over{background-position:-15px -195px;}
+.x-tool-refresh{background-position:0 -225px;}
+.x-tool-refresh-over{background-position:-15px -225px;}
+.x-tool-minus{background-position:0 -255px;}
+.x-tool-minus-over{background-position:-15px -255px;}
+.x-tool-plus{background-position:0 -240px;}
+.x-tool-plus-over{background-position:-15px -240px;}
+.x-tool-search{background-position:0 -270px;}
+.x-tool-search-over{background-position:-15px -270px;}
+.x-tool-save{background-position:0 -285px;}
+.x-tool-save-over{background-position:-15px -285px;}
+.x-tool-help{background-position:0 -300px;}
+.x-tool-help-over{background-position:-15px -300px;}
+.x-tool-print{background-position:0 -315px;}
+.x-tool-print-over{background-position:-15px -315px;}
+.x-panel-ghost{background:#cbddf3;z-index:12000;overflow:hidden;position:absolute;left:0;top:0;opacity:.65;-moz-opacity:.65;filter:alpha(opacity=65);}
+.x-panel-ghost ul{margin:0;padding:0;overflow:hidden;font-size:0;line-height:0;border:1px solid #99bbe8;border-top:0 none;display:block;}
+.x-panel-ghost *{cursor:move!important;}
+.x-panel-dd-spacer{border:2px dashed #99bbe8;}
+.x-panel-btns-ct{padding:5px;}
+.x-panel-btns-ct .x-btn{float:right;clear:none;}
+.x-panel-btns-ct .x-panel-btns td{border:0;padding:0;}
+.x-panel-btns-ct .x-panel-btns-right table{float:right;clear:none;}
+.x-panel-btns-ct .x-panel-btns-left table{float:left;clear:none;}
+.x-panel-btns-ct .x-panel-btns-center{text-align:center;}
+.x-panel-btns-ct .x-panel-btns-center table{margin:0 auto;}
+.x-panel-btns-ct table td.x-panel-btn-td{padding:3px;}
+.x-panel-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;}
+.x-panel-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;}
+.x-panel-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;}
+.x-panel-btns-ct .x-btn-over .x-btn-left{background-position:0 -63px;}
+.x-panel-btns-ct .x-btn-over .x-btn-right{background-position:0 -84px;}
+.x-panel-btns-ct .x-btn-over .x-btn-center{background-position:0 -105px;}
+.x-panel-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;}
+.x-panel-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;}
+.x-panel-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;}
+
+.x-window{zoom:1;}
+.x-window .x-resizable-handle{opacity:0;-moz-opacity:0;filter:alpha(opacity=0);}
+.x-window-proxy{background:#C7DFFC;border:1px solid #99bbe8;z-index:12000;overflow:hidden;position:absolute;left:0;top:0;display:none;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);}
+.x-window-header{overflow:hidden;zoom:1;}
+.x-window-bwrap{z-index:1;position:relative;zoom:1;}
+.x-window-tl .x-window-header{color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 0 4px 0;}
+.x-window-header-text{cursor:pointer;}
+.x-window-tc{background:transparent url(../js/ext/resources/images/default/window/top-bottom.png) repeat-x 0 0;overflow:hidden;zoom:1;}
+.x-window-tl{background:transparent url(../js/ext/resources/images/default/window/left-corners.png) no-repeat 0 0;padding-left:6px;zoom:1;z-index:1;position:relative;}
+.x-window-tr{background:transparent url(../js/ext/resources/images/default/window/right-corners.png) no-repeat right 0;padding-right:6px;}
+.x-window-bc{background:transparent url(../js/ext/resources/images/default/window/top-bottom.png) repeat-x 0 bottom;zoom:1;}
+.x-window-bc .x-window-footer{padding-bottom:6px;zoom:1;font-size:0;line-height:0;}
+.x-window-bl{background:transparent url(../js/ext/resources/images/default/window/left-corners.png) no-repeat 0 bottom;padding-left:6px;zoom:1;}
+.x-window-br{background:transparent url(../js/ext/resources/images/default/window/right-corners.png) no-repeat right bottom;padding-right:6px;zoom:1;}
+.x-window-mc{border:1px solid #99bbe8;padding:0;margin:0;font:normal 11px tahoma,arial,helvetica,sans-serif;background:#dfe8f6;}
+.x-window-ml{background:transparent url(../js/ext/resources/images/default/window/left-right.png) repeat-y 0 0;padding-left:6px;zoom:1;}
+.x-window-mr{background:transparent url(../js/ext/resources/images/default/window/left-right.png) repeat-y right 0;padding-right:6px;zoom:1;}
+.x-panel-nofooter .x-window-bc{height:6px;}
+.x-window-body{overflow:hidden;}
+.x-window-bwrap{overflow:hidden;}
+.x-window-maximized .x-window-bl,.x-window-maximized .x-window-br,.x-window-maximized .x-window-ml,.x-window-maximized .x-window-mr,.x-window-maximized .x-window-tl,.x-window-maximized .x-window-tr{padding:0;}
+.x-window-maximized .x-window-footer{padding-bottom:0;}
+.x-window-maximized .x-window-tc{padding-left:3px;padding-right:3px;background-color:white;}
+.x-window-maximized .x-window-mc{border-left:0 none;border-right:0 none;}
+.x-window-tbar .x-toolbar,.x-window-bbar .x-toolbar{border-left:0 none;border-right:0 none;}
+.x-window-bbar .x-toolbar{border-top:1px solid #99bbe8;border-bottom:0 none;}
+.x-window-draggable,.x-window-draggable .x-window-header-text{cursor:move;}
+.x-window-maximized .x-window-draggable,.x-window-maximized .x-window-draggable .x-window-header-text{cursor:default;}
+.x-window-body{background:transparent;}
+.x-panel-ghost .x-window-tl{border-bottom:1px solid #99bbe8;}
+.x-panel-collapsed .x-window-tl{border-bottom:1px solid #84a0c4;}
+.x-window-maximized-ct{overflow:hidden;}
+.x-window-maximized .x-resizable-handle{display:none;}
+.x-window-sizing-ghost ul{border:0 none!important;}
+.x-dlg-focus{-moz-outline:0 none;outline:0 none;width:0;height:0;overflow:hidden;position:absolute;top:0;left:0;}
+.x-dlg-mask{z-index:10000;display:none;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;}
+body.ext-ie6.x-body-masked select{visibility:hidden;}
+body.ext-ie6.x-body-masked .x-window select{visibility:visible;}
+.x-window-plain .x-window-mc{background:#CAD9EC;border-right:1px solid #DFE8F6;border-bottom:1px solid #DFE8F6;border-top:1px solid #a3bae9;border-left:1px solid #a3bae9;}
+.x-window-plain .x-window-body{border-left:1px solid #DFE8F6;border-top:1px solid #DFE8F6;border-bottom:1px solid #a3bae9;border-right:1px solid #a3bae9;background:transparent!important;}
+body.x-body-masked .x-window-plain .x-window-mc{background:#C7D6E9;}
+
+.x-html-editor-wrap{border:1px solid #a9bfd3;background:white;}
+.x-html-editor-tb .x-btn-text{background:transparent url(../js/ext/resources/images/default/editor/tb-sprite.gif) no-repeat;}
+.x-html-editor-tb .x-edit-bold .x-btn-text{background-position:0 0;}
+.x-html-editor-tb .x-edit-italic .x-btn-text{background-position:-16px 0;}
+.x-html-editor-tb .x-edit-underline .x-btn-text{background-position:-32px 0;}
+.x-html-editor-tb .x-edit-forecolor .x-btn-text{background-position:-160px 0;}
+.x-html-editor-tb .x-edit-backcolor .x-btn-text{background-position:-176px 0;}
+.x-html-editor-tb .x-edit-justifyleft .x-btn-text{background-position:-112px 0;}
+.x-html-editor-tb .x-edit-justifycenter .x-btn-text{background-position:-128px 0;}
+.x-html-editor-tb .x-edit-justifyright .x-btn-text{background-position:-144px 0;}
+.x-html-editor-tb .x-edit-insertorderedlist .x-btn-text{background-position:-80px 0;}
+.x-html-editor-tb .x-edit-insertunorderedlist .x-btn-text{background-position:-96px 0;}
+.x-html-editor-tb .x-edit-increasefontsize .x-btn-text{background-position:-48px 0;}
+.x-html-editor-tb .x-edit-decreasefontsize .x-btn-text{background-position:-64px 0;}
+.x-html-editor-tb .x-edit-sourceedit .x-btn-text{background-position:-192px 0;}
+.x-html-editor-tb .x-edit-createlink .x-btn-text{background-position:-208px 0;}
+.x-html-editor-tip .x-tip-bd .x-tip-bd-inner{padding:5px;padding-bottom:1px;}
+.x-html-editor-tb .x-toolbar{position:static!important;}
+
+.x-panel-noborder .x-panel-body-noborder{border-width:0;}
+.x-panel-noborder .x-panel-header-noborder{border-width:0;border-bottom:1px solid #99bbe8;}
+.x-panel-noborder .x-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #99bbe8;}
+.x-panel-noborder .x-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #99bbe8;}
+.x-window-noborder .x-window-mc{border-width:0;}
+.x-window-plain .x-window-body-noborder{border-width:0;}
+.x-tab-panel-noborder .x-tab-panel-body-noborder{border-width:0;}
+.x-tab-panel-noborder .x-tab-panel-header-noborder{border-top-width:0;border-left-width:0;border-right-width:0;}
+.x-tab-panel-noborder .x-tab-panel-footer-noborder{border-bottom-width:0;border-left-width:0;border-right-width:0;}
+.x-tab-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #99bbe8;}
+.x-tab-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #99bbe8;}
+
+.x-border-layout-ct{background:#dfe8f6;}
+.x-border-panel{position:absolute;left:0;top:0;}
+.x-tool-collapse-south{background-position:0 -195px;}
+.x-tool-collapse-south-over{background-position:-15px -195px;}
+.x-tool-collapse-north{background-position:0 -210px;}
+.x-tool-collapse-north-over{background-position:-15px -210px;}
+.x-tool-collapse-west{background-position:0 -180px;}
+.x-tool-collapse-west-over{background-position:-15px -180px;}
+.x-tool-collapse-east{background-position:0 -165px;}
+.x-tool-collapse-east-over{background-position:-15px -165px;}
+.x-tool-expand-south{background-position:0 -210px;}
+.x-tool-expand-south-over{background-position:-15px -210px;}
+.x-tool-expand-north{background-position:0 -195px;}
+.x-tool-expand-north-over{background-position:-15px -195px;}
+.x-tool-expand-west{background-position:0 -165px;}
+.x-tool-expand-west-over{background-position:-15px -165px;}
+.x-tool-expand-east{background-position:0 -180px;}
+.x-tool-expand-east-over{background-position:-15px -180px;}
+.x-tool-expand-north,.x-tool-expand-south{float:right;margin:3px;}
+.x-tool-expand-east,.x-tool-expand-west{float:none;margin:3px auto;}
+.x-accordion-hd .x-tool-toggle{background-position:0 -255px;}
+.x-accordion-hd .x-tool-toggle-over{background-position:-15px -255px;}
+.x-panel-collapsed .x-accordion-hd .x-tool-toggle{background-position:0 -240px;}
+.x-panel-collapsed .x-accordion-hd .x-tool-toggle-over{background-position:-15px -240px;}
+.x-accordion-hd{color:#222;padding-top:4px;padding-bottom:3px;border-top:0 none;font-weight:normal;background:transparent url(../js/ext/resources/images/default/panel/light-hd.gif) repeat-x 0 -9px;}
+.x-layout-collapsed{position:absolute;left:-10000px;top:-10000px;visibility:hidden;background-color:#d2e0f2;width:20px;height:20px;overflow:hidden;border:1px solid #98c0f4;z-index:20;}
+.ext-border-box .x-layout-collapsed{width:22px;height:22px;}
+.x-layout-collapsed-over{cursor:pointer;background-color:#d9e8fb;}
+.x-layout-collapsed-west .x-layout-collapsed-tools,.x-layout-collapsed-east .x-layout-collapsed-tools{position:absolute;top:0;left:0;width:20px;height:20px;}
+.x-layout-split{position:absolute;height:5px;width:5px;line-height:1px;font-size:1px;z-index:3;background-color:transparent;}
+.x-layout-split-h{background-image:url(../js/ext/resources/images/default/s.gif);background-position:left;}
+.x-layout-split-v{background-image:url(../js/ext/resources/images/default/s.gif);background-position:top;}
+.x-column-layout-ct{overflow:hidden;zoom:1;}
+.x-column{float:left;padding:0;margin:0;overflow:hidden;zoom:1;}
+.x-layout-mini{position:absolute;top:0;left:0;display:block;width:5px;height:35px;cursor:pointer;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);}
+.x-layout-mini-over,.x-layout-collapsed-over .x-layout-mini{opacity:1;-moz-opacity:1;filter:none;}
+.x-layout-split-west .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-left.gif);}
+.x-layout-split-east .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-right.gif);}
+.x-layout-split-north .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-top.gif);}
+.x-layout-split-south .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-bottom.gif);}
+.x-layout-cmini-west .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-right.gif);}
+.x-layout-cmini-east .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-left.gif);}
+.x-layout-cmini-north .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-bottom.gif);}
+.x-layout-cmini-south .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-top.gif);}
+.x-layout-cmini-west,.x-layout-cmini-east{border:0 none;width:5px!important;padding:0;background:transparent;}
+.x-layout-cmini-north,.x-layout-cmini-south{border:0 none;height:5px!important;padding:0;background:transparent;}
+.x-viewport,.x-viewport body{margin:0;padding:0;border:0 none;overflow:hidden;height:100%;}
+.x-abs-layout-item{position:absolute;left:0;top:0;}
+.ext-ie input.x-abs-layout-item,.ext-ie textarea.x-abs-layout-item{margin:0;}
+
+.x-progress-wrap{border:1px solid #6593cf;overflow:hidden;}
+.x-progress-inner{height:18px;background:#e0e8f3 url(../js/ext/resources/images/default/qtip/bg.gif) repeat-x;position:relative;}
+.x-progress-bar{height:18px;float:left;width:0;background:#9CBFEE url( ../js/ext/resources/images/default/progress/progress-bg.gif ) repeat-x left center;border-top:1px solid #D1E4FD;border-bottom:1px solid #7FA9E4;border-right:1px solid #7FA9E4;}
+.x-progress-text{font-size:11px;font-weight:bold;color:#fff;padding:1px 5px;overflow:hidden;position:absolute;left:0;text-align:center;}
+.x-progress-text-back{color:#396095;line-height:16px;}
+.ext-ie .x-progress-text-back{line-height:15px;}
+
+.x-window-dlg .x-window-body{border:0 none!important;padding:5px 10px;overflow:hidden!important;}
+.x-window-dlg .x-window-mc{border:0 none!important;}
+.x-window-dlg .ext-mb-text,.x-window-dlg .x-window-header-text{font-size:12px;}
+.x-window-dlg .ext-mb-input{margin-top:4px;width:95%;}
+.x-window-dlg .ext-mb-textarea{margin-top:4px;font:normal 12px tahoma,arial,helvetica,sans-serif;}
+.x-window-dlg .x-progress-wrap{margin-top:4px;}
+.ext-ie .x-window-dlg .x-progress-wrap{margin-top:6px;}
+.x-window-dlg .x-msg-box-wait{background:transparent url(../js/ext/resources/images/default/grid/loading.gif) no-repeat left;display:block;width:300px;padding-left:18px;line-height:18px;}
+.x-window-dlg .ext-mb-icon{float:left;width:47px;height:32px;}
+.ext-ie .x-window-dlg .ext-mb-icon{width:44px;}
+.x-window-dlg .ext-mb-info{background:transparent url(../js/ext/resources/images/default/window/icon-info.gif) no-repeat top left;}
+.x-window-dlg .ext-mb-warning{background:transparent url(../js/ext/resources/images/default/window/icon-warning.gif) no-repeat top left;}
+.x-window-dlg .ext-mb-question{background:transparent url(../js/ext/resources/images/default/window/icon-question.gif) no-repeat top left;}
+.x-window-dlg .ext-mb-error{background:transparent url(../js/ext/resources/images/default/window/icon-error.gif) no-repeat top left;}
+
+
+
+/*
+ * Ext JS Library 2.0.2
+ * Copyright(c) 2006-2008, Ext JS, LLC.
+ * licensing(a)extjs.com
+ *
+ * http://extjs.com/license
+ */
+
+.x-panel {
+ border-style: solid;
+ border-color: #d0d0d0;
+}
+.x-panel-header {
+ color:#333;
+ border:1px solid #d0d0d0;
+ background-image:url(../js/ext/resources/images/gray/panel/white-top-bottom.gif);
+}
+
+.x-panel-body {
+ border-color:#d0d0d0;
+}
+
+.x-panel-bbar .x-toolbar {
+ border-color:#d0d0d0;
+}
+
+.x-panel-tbar .x-toolbar {
+ border-color:#d0d0d0;
+}
+
+.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar {
+ border-color:#d0d0d0;
+}
+.x-panel-body-noheader, .x-panel-mc .x-panel-body {
+ border-color:#d0d0d0;
+}
+.x-panel-tl .x-panel-header {
+ color:#333;
+}
+.x-panel-tc {
+ background-image:url(../js/ext/resources/images/gray/panel/top-bottom.gif);
+}
+.x-panel-tl {
+ background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);
+ border-color:#d0d0d0;
+}
+.x-panel-tr {
+ background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);
+}
+.x-panel-bc {
+ background-image:url(../js/ext/resources/images/gray/panel/top-bottom.gif);
+}
+.x-panel-bl {
+ background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);
+}
+.x-panel-br {
+ background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);
+}
+.x-panel-mc {
+ background:#f1f1f1;
+}
+.x-panel-mc .x-panel-body {
+ background:transparent;
+ border: 0 none;
+}
+.x-panel-ml {
+ background-image:url(../js/ext/resources/images/gray/panel/left-right.gif);
+}
+.x-panel-mr {
+ background-image:url(../js/ext/resources/images/gray/panel/left-right.gif);
+}
+
+/* Tools */
+.x-tool {
+ background-image:url(../js/ext/resources/images/gray/panel/tool-sprites.gif);
+}
+
+/* Ghosting */
+.x-panel-ghost {
+ background:#e0e0e0;
+}
+
+.x-panel-ghost ul {
+ border-color:#b0b0b0;
+}
+
+.x-grid-panel .x-panel-mc .x-panel-body {
+ border:1px solid #d0d0d0;
+}
+
+/* Buttons */
+
+.x-btn-left{
+ background-image:url(../js/ext/resources/images/gray/button/btn-sprite.gif);
+}
+.x-btn-right{
+ background-image:url(../js/ext/resources/images/gray/button/btn-sprite.gif);
+}
+.x-btn-center{
+ background-image:url(../js/ext/resources/images/gray/button/btn-sprite.gif);
+}
+
+/* Layout classes */
+
+.x-border-layout-ct {
+ background:#f0f0f0;
+}
+
+.x-accordion-hd {
+ background-image:url(../js/ext/resources/images/gray/panel/light-hd.gif);
+}
+
+.x-layout-collapsed{
+ background-color:#eee;
+ border-color:#e0e0e0;
+}
+.x-layout-collapsed-over{
+ background-color:#fbfbfb;
+}
+
+
+/* qtips */
+.x-tip .x-tip-top {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+.x-tip .x-tip-top-left {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+.x-tip .x-tip-top-right {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+.x-tip .x-tip-ft {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+.x-tip .x-tip-ft-left {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+.x-tip .x-tip-ft-right {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+.x-tip .x-tip-bd-left {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+.x-tip .x-tip-bd-right {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+
+/* Toolbars */
+
+.x-toolbar{
+ border-color:#d0d0d0;
+ background:#f0f4f5 url(../js/ext/resources/images/gray/toolbar/bg.gif) repeat-x top left;
+}
+.x-toolbar button {
+ color:#444;
+}
+.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button {
+ background-image:url(../js/ext/resources/images/gray/toolbar/btn-arrow.gif);
+}
+.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button {
+ background-image:url(../js/ext/resources/images/gray/toolbar/btn-arrow.gif);
+}
+.x-toolbar .x-btn-over .x-btn-left{
+ background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);
+}
+.x-toolbar .x-btn-over .x-btn-right{
+ background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);
+}
+.x-toolbar .x-btn-over .x-btn-center{
+ background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);
+}
+.x-toolbar .x-btn-over button {
+ color:#111;
+}
+.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{
+ background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);
+}
+.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{
+ background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);
+}
+
+.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{
+ background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);
+}
+.x-toolbar .ytb-sep {
+ background-image: url(../js/ext/resources/images/default/grid/grid-split.gif);
+}
+
+/* Tabs */
+
+.x-tab-panel-header, .x-tab-panel-footer {
+ background: #EAEAEA;
+ border-color:#d0d0d0;
+}
+
+
+.x-tab-panel-header {
+ border-color:#d0d0d0;
+}
+
+.x-tab-panel-footer {
+ border-color:#d0d0d0;
+}
+
+ul.x-tab-strip-top{
+ background:#dbdbdb url(../js/ext/resources/images/gray/tabs/tab-strip-bg.gif) repeat-x left top;
+ border-color:#d0d0d0;
+ padding-top: 2px;
+}
+
+ul.x-tab-strip-bottom{
+ background-image:url(../js/ext/resources/images/gray/tabs/tab-strip-btm-bg.gif);
+ border-color:#d0d0d0;
+}
+
+.x-tab-strip span.x-tab-strip-text {
+ color:#333;
+}
+.x-tab-strip-over span.x-tab-strip-text {
+ color:#111;
+}
+
+.x-tab-strip-active span.x-tab-strip-text {
+ color:#333;
+}
+
+.x-tab-strip-disabled .x-tabs-text {
+ color:#aaaaaa;
+}
+
+.x-tab-strip-top .x-tab-right {
+ background-image:url(../js/ext/resources/images/gray/tabs/tabs-sprite.gif);
+}
+
+.x-tab-strip-top .x-tab-left {
+ background-image:url(../js/ext/resources/images/gray/tabs/tabs-sprite.gif);
+}
+.x-tab-strip-top .x-tab-strip-inner {
+ background-image:url(../js/ext/resources/images/gray/tabs/tabs-sprite.gif);
+}
+
+.x-tab-strip-bottom .x-tab-right {
+ background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-inactive-right-bg.gif);
+}
+
+.x-tab-strip-bottom .x-tab-left {
+ background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-inactive-left-bg.gif);
+}
+
+.x-tab-strip-bottom .x-tab-strip-active .x-tab-right {
+ background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-right-bg.gif);
+}
+
+.x-tab-strip-bottom .x-tab-strip-active .x-tab-left {
+ background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-left-bg.gif);
+}
+
+.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close {
+ background-image:url(../js/ext/resources/images/gray/tabs/tab-close.gif);
+}
+.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{
+ background-image:url(../js/ext/resources/images/gray/tabs/tab-close.gif);
+}
+
+.x-tab-panel-body {
+ border-color:#d0d0d0;
+ background:#fff;
+}
+.x-tab-panel-bbar .x-toolbar {
+ border-color: #d0d0d0;
+}
+
+.x-tab-panel-tbar .x-toolbar {
+ border-color: #d0d0d0;
+}
+
+.x-tab-panel-header-plain .x-tab-strip-spacer {
+ border-color:#d0d0d0;
+ background: #eaeaea;
+}
+
+.x-tab-scroller-left {
+ background-image: url(../js/ext/resources/images/gray/tabs/scroll-left.gif);
+ border-color:#aeaeae;
+}
+.x-tab-scroller-right {
+ background-image: url(../js/ext/resources/images/gray/tabs/scroll-right.gif);
+ border-color:#aeaeae;
+}
+
+/* Window */
+
+.x-window-proxy {
+ background:#e0e0e0;
+ border-color:#b0b0b0;
+}
+
+.x-window-tl .x-window-header {
+ color:#555;
+}
+.x-window-tc {
+ background-image:url(../js/ext/resources/images/gray/window/top-bottom.png);
+}
+.x-window-tl {
+ background-image:url(../js/ext/resources/images/gray/window/left-corners.png);
+}
+.x-window-tr {
+ background-image:url(../js/ext/resources/images/gray/window/right-corners.png);
+}
+.x-window-bc {
+ background-image:url(../js/ext/resources/images/gray/window/top-bottom.png);
+}
+.x-window-bl {
+ background-image:url(../js/ext/resources/images/gray/window/left-corners.png);
+}
+.x-window-br {
+ background-image:url(../js/ext/resources/images/gray/window/right-corners.png);
+}
+.x-window-mc {
+ border:1px solid #d0d0d0;
+ background:#e8e8e8;
+}
+
+.x-window-ml {
+ background-image:url(../js/ext/resources/images/gray/window/left-right.png);
+}
+.x-window-mr {
+ background-image:url(../js/ext/resources/images/gray/window/left-right.png);
+}
+.x-panel-ghost .x-window-tl {
+ border-color:#d0d0d0;
+}
+.x-panel-collapsed .x-window-tl {
+ border-color:#d0d0d0;
+}
+
+.x-window-plain .x-window-mc {
+ background: #e8e8e8;
+ border-right:1px solid #eee;
+ border-bottom:1px solid #eee;
+ border-top:1px solid #d0d0d0;
+ border-left:1px solid #d0d0d0;
+}
+
+.x-window-plain .x-window-body {
+ border-left:1px solid #eee;
+ border-top:1px solid #eee;
+ border-bottom:1px solid #d0d0d0;
+ border-right:1px solid #d0d0d0;
+ background:transparent !important;
+}
+
+body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc {
+ background-color: #e4e4e4;
+}
+
+
+/* misc */
+.x-html-editor-wrap {
+ border-color:#d0d0d0;
+}
+
+/* Borders go last for specificity */
+.x-panel-noborder .x-panel-body-noborder {
+ border-width:0;
+}
+
+.x-panel-noborder .x-panel-header-noborder {
+ border-width:0;
+ border-bottom:1px solid #d0d0d0;
+}
+
+.x-panel-noborder .x-panel-tbar-noborder .x-toolbar {
+ border-width:0;
+ border-bottom:1px solid #d0d0d0;
+}
+
+.x-panel-noborder .x-panel-bbar-noborder .x-toolbar {
+ border-width:0;
+ border-top:1px solid #d0d0d0;
+}
+
+.x-window-noborder .x-window-mc {
+ border-width:0;
+}
+.x-window-plain .x-window-body-noborder {
+ border-width:0;
+}
+
+.x-tab-panel-noborder .x-tab-panel-body-noborder {
+ border-width:0;
+}
+
+.x-tab-panel-noborder .x-tab-panel-header-noborder {
+ border-top-width:0;
+ border-left-width:0;
+ border-right-width:0;
+}
+
+.x-tab-panel-noborder .x-tab-panel-footer-noborder {
+ border-bottom-width:0;
+ border-left-width:0;
+ border-right-width:0;
+}
+
+
+.x-tab-panel-bbar-noborder .x-toolbar {
+ border-width:0;
+ border-top:1px solid #d0d0d0;
+}
+
+.x-tab-panel-tbar-noborder .x-toolbar {
+ border-width:0;
+ border-bottom:1px solid #d0d0d0;
+}
+
+.kunebody {
+ background-color: #FFF;
+ color: #000;
+ font-family: arial, sans;
+ margin: 5px 5px 5px 5px;
+}
+
+#kuneinitialcurtain {
+ position: absolute;
+ left: 0px;
+ top: 0px;
+ width: 100%;
+ height: 100%;
+ background-color: #FFF;
+ z-index: 9999;
+}
+
+/* Global styles */
+
+.gwt-HorizontalSplitPanel .hsplitter {
+ cursor: e-resize;
+ width: 6px;
+}
+
+.gwt-DialogBox {
+ border: 8px solid #C3D9FF;
+ border: 2px outset;
+ background-color: white;
+}
+
+.gwt-DialogBox .Caption {
+ background-color: #C3D9FF;
+ font-size: 85%;
+ font-weight: 700;
+ padding: 3px;
+ margin: 2px;
+ cursor: default;
+}
+
+.gwt-MenuBar {
+ background-color: #F2F2F2;
+ border: 1px solid #999;
+ vertical-align: middle;
+ padding: 5px 0;
+}
+
+.gwt-MenuBar .gwt-MenuItem {
+ cursor: pointer;
+ padding: 1px 10px;
+ white-space: nowrap;
+}
+
+.gwt-MenuBar .gwt-MenuItem img {
+ vertical-align: middle;
+ margin-right: 3px;
+}
+
+.gwt-MenuBar .gwt-MenuItem {
+ background-color: #F2F2F2;
+}
+
+.gwt-MenuBar .gwt-MenuItem-selected {
+ background-color: #FFB958;
+}
+
+.kune-MenuBar .gwt-MenuItem {
+ background: transparent url(img/button-bg-hard.gif) repeat-x 0 0;
+ border-left: 1px solid #AAA;
+ border-right: 1px solid #AAA;
+ color: #999;
+ cursor: pointer;
+ cursor: hand;
+ white-space: nowrap;
+ padding: 0 10px;
+}
+
+.kune-MenuBar .gwt-MenuItem-selected {
+ background: transparent url(img/button-bg-soft.gif) repeat-x 0 0;
+ color: #996633;
+}
+
+.kune-expandHoriz {
+ width: 100%;
+}
+
+.kune-expandVert {
+ height: 100%;
+}
+
+.kune-floatleft {
+ float: left;
+}
+
+.kune-floatright {
+ float: right;
+}
+
+/* Deprecated */
+.kune-Default-Form {
+ margin: 10px;
+}
+
+.kune-valignmiddle {
+ vertical-align: middle;
+}
+
+fieldset {
+ border:1px solid #B5B8C8;
+ /* margin-bottom:10px; */
+ padding:10px 10px 5px;
+}
+
+legend {
+ color:#15428B;
+ font-size: 85%;
+ font-size-adjust:none;
+ font-style:normal;
+ font-variant:normal;
+ font-weight:bold;
+ line-height:normal;
+}
+
+.gwt-RadioButton input {
+ margin: 0 3px;
+ vertical-align:middle;
+}
+
+.gwt-RadioButton label {
+ margin: 0 3px;
+ vertical-align:middle;
+}
+
+.kune-pointer {
+ cursor: pointer;
+}
+
+.kuneLabelPre {
+ white-space: pre !important;
+}
+
+/* Buttons */
+
+.kune-CustomPushButton-space {
+ margin-top: 3px;
+ margin-bottom: 3px;
+}
+
+.kune-CustomPushButton {
+ background: transparent url(img/button-bg-hard.gif) repeat-x 0 0;
+ border-left: 1px solid #AAA;
+ border-right: 1px solid #AAA;
+ color: #999;
+ cursor: pointer;
+ white-space: nowrap;
+ padding: 0px 12px;
+}
+
+.kune-CustomPushButton-up {
+ color: #161616;
+}
+
+.kune-CustomPushButton-down {
+ color: black;
+}
+
+.kune-CustomPushButton-up-hovering {
+ color: #161616;
+ background: transparent url(img/button-bg-soft.gif) repeat-x 0 0;
+}
+
+.kune-CustomPushButton-down-hovering {
+ color: black;
+}
+
+.kune-CustomPushButton-up-disabled {
+ background: transparent url(img/button-bg-soft.gif) repeat-x 0 0;
+ color: #E0E0E0;
+ cursor: default;
+}
+
+.kune-CustomPushButton-down-disabled {
+ background: transparent url(img/button-bg-soft.gif) repeat-x 0 0;
+ color: #E0E0E0;
+ cursor: default;
+}
+
+.kune-Button-Large-lrSpace {
+ margin-left: 12px;
+ margin-right: 12px;
+}
+
+.kune-Button-Large-rSpace {
+ margin-right: 12px;
+}
+
+.kune-Button-Large-lSpace {
+ margin-left: 12px;
+}
+
+.kune-Button-Large-tbSpace {
+ margin-top: 12px;
+ margin-bottom: 12px;
+}
+
+.kune-Button-Small-lrSpace {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+.kune-Button-Small-rSpace {
+ margin-right: 10px;
+}
+
+.kune-Button-Small-lSpace {
+ margin-left: 10px;
+}
+
+.kune-Button-Small-tbSpace {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+.kune-Button-Mini-lSpace {
+ margin-left: 8px;
+}
+
+.kune-Button-Mini-lrSpace {
+ margin-left: 8px;
+ margin-right: 8px;
+}
+
+.kune-Button-Mini-rSpace {
+ margin-right: 8px;
+}
+
+.kune-Button-Mini-tbSpace {
+ margin-top: 8px;
+ margin-bottom: 8px;
+}
+
+.kune-IconHyperlink {
+}
+
+.kune-IconHyperlink a:link {
+ /* text-decoration: underline; */
+ color: green;
+}
+
+.kune-IconHyperlink a:hover {
+ text-decoration: underline;
+}
+
+.kune-IconHyperlink a:visited {
+ color: #808000;
+}
+
+.kune-IconHyperlink img {
+ margin-right: 4px;
+ vertical-align: middle;
+}
+
+.kune-IconLabel {
+
+}
+
+.kune-IconLabel img {
+ margin-right: 4px;
+ vertical-align: middle;
+}
+
+.kune-link {
+ text-decoration: underline;
+ color: green;
+ cursor: pointer;
+}
+
+/* DropDowns */
+
+.kune-DropDownOuter {
+ background-color: green;
+}
+
+.kune-DropDownInner {
+ margin: 0 3px 1px 3px;
+ background: green;
+ background-color: #FFF;
+ padding: 3px;
+}
+
+.kune-DropDownLabel {
+ color: #FFF;
+ cursor: pointer;
+}
+
+.kune-DropDownLabel .gwt-Label {
+ margin: 0 5px 0 0;
+ width: 100%;
+}
+
+.kune-DropDownLabel img {
+ margin: 0 3px 0 1px;
+}
+
+.kune-IconLabel {
+ color: green;
+}
+
+.kune-IconLabel img {
+ margin-right: 4px;
+ vertical-align: middle;
+}
+
+/* Used in multi chat panel status change */
+.x-menu-item img {
+ margin-right: 4px;
+ vertical-align: middle;
+}
+
+/* Margins */
+
+.kune-Margin-40-trbl {
+ margin: 40px;
+}
+
+.kune-Margin-40-lr {
+ margin-left: 40px;
+ margin-right: 40px;
+}
+
+.kune-Margin-40-tl {
+ margin-top: 40px;
+ margin-left: 40px;
+}
+
+.kune-Margin-40-tb {
+ margin-top: 40px;
+ margin-bottom: 40px;
+}
+
+.kune-Margin-40-t {
+ margin-top: 40px;
+}
+
+.kune-Margin-40-r {
+ margin-right: 40px;
+}
+
+.kune-Margin-40-l {
+ margin-left: 40px;
+}
+
+.kune-Margin-20-trbl {
+ margin: 20px;
+}
+
+.kune-Margin-20-lr {
+ margin-left: 20px;
+ margin-right: 20px;
+}
+
+.kune-Margin-20-tl {
+ margin-top: 20px;
+ margin-left: 20px;
+}
+
+.kune-Margin-20-tb {
+ margin-top: 20px;
+ margin-bottom: 20px;
+}
+
+.kune-Margin-20-t {
+ margin-top: 20px;
+}
+
+.kune-Margin-20-r {
+ margin-right: 20px;
+}
+
+.kune-Margin-20-l {
+ margin-left: 20px;
+}
+
+.kune-Margin-Large-trbl {
+ margin: 10px;
+}
+
+.kune-Margin-Large-lr {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+.kune-Margin-Large-tl {
+ margin-top: 10px;
+ margin-left: 10px;
+}
+
+.kune-Margin-Large-tb {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+.kune-Margin-Large-t {
+ margin-top: 10px;
+}
+
+.kune-Margin-Large-r {
+ margin-right: 10px;
+}
+
+.kune-Margin-Large-l {
+ margin-left: 10px;
+}
+
+.kune-Margin-Medium-trbl {
+ margin: 5px;
+}
+
+.kune-Margin-Medium-lr {
+ margin-left: 5px;
+ margin-right: 5px;
+}
+
+.kune-Margin-Medium-tl {
+ margin-top: 5px;
+ margin-left: 5px;
+}
+
+.kune-Margin-Medium-tb {
+ margin-top: 5px;
+ margin-bottom: 5px;
+}
+
+.kune-Margin-Medium-t {
+ margin-top: 5px;
+}
+
+.kune-Margin-Medium-r {
+ margin-right: 5px;
+}
+
+.kune-Margin-Medium-b {
+ margin-bottom: 5px;
+}
+
+.kune-Margin-Medium-l {
+ margin-left: 5px;
+}
+
+.kune-Margin-Small-trbl {
+ margin: 3px;
+}
+
+.kune-Margin-Small-lr {
+ margin-left: 3px;
+ margin-right: 3px;
+}
+
+.kune-Margin-Small-tl {
+ margin-top: 3px;
+ margin-left: 3px;
+}
+
+.kune-Margin-Small-tb {
+ margin-top: 3px;
+ margin-bottom: 3px;
+}
+
+.kune-Margin-Small-t {
+ margin-top: 3px;
+}
+
+.kune-Margin-Mini-trbl {
+ margin: 1px;
+}
+
+.kune-Margin-Mini-lr {
+ margin-left: 1px;
+ margin-right: 1px;
+}
+
+.kune-Margin-Mini-tl {
+ margin-top: 1px;
+ margin-left: 1px;
+}
+
+.kune-Margin-Mini-tb {
+ margin-top: 1px;
+ margin-bottom: 1px;
+}
+
+.kune-Margin-Mini-t {
+ margin-top: 1px;
+}
+
+.kune-Margin-Mini-r {
+ margin-right: 1px;
+}
+
+.kune-Margin-Mini-l {
+ margin-left: 1px;
+}
+
+/* Fonts
+see: http://developer.yahoo.com/yui/fonts/ */
+
+.kune-ft10px {
+ font-size: 77%
+}
+
+.kune-ft11px {
+ font-size: 85%
+}
+
+.kune-ft12px {
+ font-size: 93%
+}
+
+.kune-ft13px {
+ font-size: 100%
+}
+
+.kune-ft14px {
+ font-size: 108%
+}
+
+.kune-ft15px {
+ font-size: 116%
+}
+
+.kune-ft16px {
+ font-size: 123.1%
+}
+
+.kune-ft17px {
+ font-size: 131%
+}
+
+.kune-ft18px {
+ font-size: 138.5%
+}
+
+.kune-ft19px {
+ font-size: 146.5%
+}
+
+.kune-ft20px {
+ font-size: 153.9%
+}
+
+.kune-ft21px {
+ font-size: 161.6%
+}
+
+.kune-ft22px {
+ font-size: 167%
+}
+
+.kune-ft23px {
+ font-size: 174%
+}
+
+.kune-ft24px {
+ font-size: 182%
+}
+
+.kune-ft25px {
+ font-size: 189%
+}
+
+.kune-ft26px {
+ font-size: 197%
+}
+
+
+/* Sitebar */
+
+#kuneprogresspanel {
+ position: absolute;
+ top: 2px;
+ left: 2px;
+ z-index: 30000;
+}
+
+.kune-Progress {
+ background: #E5FF80;
+ border: 1px solid #E5FF80;
+ white-space: nowrap;
+ height: 16px;
+ padding: 0 3px;
+}
+
+.kune-SiteBarPanel .kune-IconHyperlink {
+ white-space: nowrap;
+}
+
+.kune-SiteBarPanel .kune-IconHyperlink a:link {
+ cursor: pointer;
+ text-decoration: underline;
+ color: #B3B3B3;
+}
+
+.kune-SiteBarPanel .kune-IconHyperlink a:hover {
+ text-decoration: underline;
+}
+
+.kune-SiteBarPanel .kune-IconHyperlink a:visited {
+ color: #B3B3B3;
+}
+
+.kune-SiteBarPanel {
+ margin-right: 10px;
+ height: 16px;
+}
+
+.kune-SiteBarPanel .gwt-TextBox {
+ border: 1px solid #E4A374;
+ margin: 0 15px 0 3px;
+ padding-left: 3px;
+ color: #B3B3B3;
+}
+
+.kune-SiteBarPanel .gwt-Hyperlink a {
+ white-space: nowrap;
+ color: #B3B3B3;
+ text-decoration: underline;
+ cursor: pointer;
+}
+
+.kune-SiteBarPanel .gwt-PushButton {
+ cursor: pointer;
+}
+
+.kune-SiteBarPanel-Separator {
+ color: #E4A374;
+ margin: 0 5px;
+}
+
+.kune-SiteBarPanel-SpaceSeparator {
+ width: 10px;
+}
+
+.kune-SiteBarPanel-LabelLink {
+ white-space: nowrap;
+ color: #B3B3B3;
+ margin-left: 3px;
+ cursor: pointer;
+ text-decoration: underline;
+}
+
+.kune-SiteMessagePanel {
+ color: #250;
+ position: absolute;
+ z-index: 10000;
+ vertical-align: middle;
+}
+
+.kune-SiteMessagePanel .gwt-HTML {
+ margin: 15px 5px 15px 2px;
+}
+
+.kune-SiteMessagePanel .gwt-Image {
+ margin: 5px;
+}
+
+.kune-SiteMessagePanel-error {
+ background-color: #FFB380;
+ border: 1px solid #FF0066;
+}
+
+.kune-SiteMessagePanel-veryimp {
+ background-color: #FFD4AA;
+ border: 1px solid #FF5599;
+}
+
+.kune-SiteMessagePanel-imp {
+ background-color: #FFE6D5;
+ border: 1px solid #DE87AA;
+}
+
+.kune-SiteMessagePanel-info {
+ background-color: #E5FF80;
+ border: 1px solid #87DE87;
+}
+
+/* Workspace styles */
+.kune-WorkspacePanel {
+ width: 100%;
+ background-color: #FFF;
+}
+
+.kune-WokspacePanel .Tab {
+
+}
+
+.kune-WorkspacePanel .GeneralHP {
+
+}
+
+.kune-WorkspacePanel .ContextPanel {
+ width: 100%;
+ border-right: 3px solid #DD8A3D;
+}
+
+.kune-GroupSummaryPanel {
+ margin: 5px 0 0 5px;
+ width: 100%;
+}
+
+.kune-GroupToolsBar {
+ width: 150px;
+}
+
+.kune-GroupToolsBar-itemSelected {
+ margin-bottom: 5px;
+}
+
+.kune-GroupToolsBar-itemSelected .gwt-Hyperlink a {
+ color: #FFF;
+ padding: 0 9px;
+ text-decoration: none;
+}
+
+.kune-GroupToolsBar-itemSelected .gwt-Hyperlink a:hover {
+ text-decoration: none;
+}
+
+.kune-GroupToolsBar-itemNotSelected {
+ margin-bottom: 5px;
+}
+
+.kune-GroupToolsBar-itemNotSelected .gwt-Hyperlink a {
+ color: green;
+ padding: 0 9px;
+ text-decoration: none;
+}
+
+.kune-GroupToolsBar-itemNotSelected .gwt-Hyperlink a:hover {
+ text-decoration: none;
+}
+
+/* Content titles */
+
+.kune-ContentToolBarPanel {
+ background-color: #F2F2F2;
+ padding: 2px;
+ height: 24px;
+ vertical-align: middle;
+}
+
+.kune-ContentBottomBar {
+ vertical-align: middle;
+ height: 24px;
+}
+
+.kune-ContentBottomBar .gwt-Image {
+ margin-left: 5px;
+ cursor: pointer;
+ float: left;
+}
+
+.kune-ContentBottomBar .gwt-Label a {
+
+}
+
+/* Main Content & Context */
+.kune-WorkspacePanel-Content {
+ background-color: #FCFCFC;
+ width: 100%;
+ height: 100%;
+}
+
+.kune-WorkspacePanel-Content .main-content {
+ margin: 7px 5px 5px 10px;
+}
+
+.kune-WorkspacePanel-Context {
+ background-color: #CFA;
+ width: 100%;
+ height: 100%;
+}
+
+.kune-NavigationBar {
+ width: 100%;
+}
+
+.kune-NavigationBar .topBar {
+ background-color: #ececec;
+ background: #ececec;
+ border-bottom: 1px solid #e3dbdb;
+ vertical-align: middle;
+}
+
+.kune-NavigationBar .topBar .gwt-PushButton {
+ margin: 1px 3px 1px 0;
+}
+
+.kune-NavigationBar .topBar .gwt-Label {
+ vertical-align: middle;
+}
+
+.kune-NavigationBar .kune-topBar-iconBar {
+ margin: 2px 0 2px 5px;
+}
+
+.kune-NavigationBar .kune-ContextItemsPanel-LabelLink {
+ /* text-decoration: underline; */
+ color: green;
+ cursor: pointer;
+ margin-left: 3px;
+}
+
+/*
.topBar .gwt-PushButton-up-disabled {
filter: alpha(opacity = 20);
-moz-opacity: 0.2;
@@ -33,6 +2139,1052 @@
-moz-opacity: 0.2;
opacity: 0.2;
}
-*/.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;owerflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.kune-TagsPanel-tag{float:left;margin-right:5px;cursor:pointer;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}.chat-icon{background-image:url(img/chat.gif)!important;}.group-icon{background-image:url(img/group.gif)!important;}.user-icon{background-image:url(img/user.gif)!important;}.userf-icon{background-image:url(img/userf.gif)!important;}.kune-RoomPanel-HorizDelimiter{white-space:nowrap;color:#B3B3B3;}.kune-MultiRoomPanel-Subject{font-size:108%;color:#2E5492;}.kune-MultiRoomPanel-User{}.kune-MultiRoomPanel-User .kune-IconLabel{overflow:hidden;white-space:nowrap;}.kune-RoomPanel-Conversation{}.kune-RoomPanel-Message{margin:0 7px;}.kune-RoomPanel-EventMessage{font-style:italic;color:#69C;margin:0 5px;}.kune-MultiRoomPanel-EmoticonPalette{background-color:#FFF;border:1px solid #AAA;margin:1px solid red;z-index:10000;position:absolute;}.kune-MultiRoomPanel-EmoticonPalette td{width:30px;height:30px;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
- background-color: #FFF; */border:1px solid #4D4D4D;background-color:#FFF;margin:5px 0 5px 10px;}.gwt-RichTextToolbar{/* background-color: #F2F2F2;
- padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px solid red;}.kune-WebSafePalette td{width:12px;height:10px;}
\ No newline at end of file
+*/
+.kune-NavigationBar .topBar .gwt-Image {
+ margin: 0 2px 0 5px;
+}
+
+.kune-NavigationBar .Items {
+ margin: 2px 0;
+}
+
+.kune-NavigationBar .Items .gwt-Image {
+ margin: 2px 0;
+ vertical-align: middle;
+}
+
+.kune-NavigationBar .Items .gwt-Hyperlink a {
+ color: green; /* FIXME: other color */
+}
+
+.kune-NavigationBar .topBar .topBar-margin {
+ margin-left: 5px;
+}
+
+.kune-NavigationBar .pathMenu {
+ vertical-align: middle;
+}
+
+.kune-NavigationBar .pathMenu .gwt-MenuItem {
+ background: transparent url(img/button-bg-hard.gif) repeat-x 0 0;
+ border-left: 1px solid #AAA;
+ border-right: 1px solid #AAA;
+ color: #999;
+ cursor: pointer;
+ white-space: nowrap;
+ padding: 3px 6px;
+}
+
+.kune-NavigationBar .pathMenu .gwt-MenuItem-selected {
+ background: transparent url(img/button-bg-soft.gif) repeat-x 0 0;
+ color: #000;
+}
+
+.kune-NavigationBar .kune-IconHyperlink {
+ vertical-align: middle;
+ margin-left: 5px;
+}
+
+.kune-NavigationBar .kune-IconHyperlink a {
+ color: green;
+ text-decoration: none;
+}
+
+.kune-NavigationBar .kune-IconHyperlink .gwt-Image {
+ margin-right: 3px;
+ vertical-align: middle;
+}
+
+/* Social Network */
+.kune-StackedDropDownPanel {
+
+}
+
+.kune-StackedDropDownPanel .gwt-StackPanelItem {
+ border-top: 1px solid #CCC;
+ border-bottom: 1px solid #CCC;
+ background-color: #EEFFAA;
+ cursor: pointer;
+ padding: 1px 3px 0 6px;
+ overflow: hidden;
+}
+
+.kune-StackedDropDownPanel .gwt-StackPanelItem img {
+ margin: 0 0 0 3px;
+ vertical-align: middle;
+}
+
+.kune-StackedDropDownPanel .kune-DropDownInner table {
+ width: 100%;
+}
+
+.kune-StackedDropDownPanel .gwt-StackPanelItem-selected {
+
+}
+
+.kune-StackedDropDownPanelLink {
+ background-color: #E6E6E6;
+ border-top: 1px solid #CCC;
+ border-bottom: 1px solid #F2F2F2;
+/* white-space: nowrap; */
+ cursor: pointer;
+}
+
+.kune-StackedDropDownPanel .kune-DropDownInner {
+ padding: 0px;
+}
+
+/* StackedDropDownPanel Members */
+.kune-StackSubItemLabel {
+ overflow: hidden;
+}
+
+.kune-StackSubItemLabel .gwt-MenuItem {
+ white-space: nowrap;
+ cursor: pointer;
+ border-bottom: 1px solid #F2F2F2;
+}
+
+.kune-StackSubItemLabel table {
+ width: 100%;
+}
+
+.kune-StackSubItemLabel .gwt-MenuItem img {
+ vertical-align: middle;
+ margin-top: 1px;
+ margin-bottom: 1px;
+ margin-left: 5px;
+ margin-right: 3px;
+}
+
+.kune-StackSubItemLabel .gwt-MenuItem-selected {
+ background-color: #FFE6D5;
+}
+
+.kune-StackSubItemActions {
+ background-color: #F2F2F2;
+ border: 1px solid #999;
+ vertical-align: middle;
+ padding: 5px 0;
+ margin-left: -120px;
+ margin-top: -2px;
+}
+
+.kune-StackSubItemActions .gwt-MenuItem {
+ cursor: pointer;
+ padding: 1px 10px;
+ white-space: nowrap;
+}
+
+.kune-StackSubItemActions .gwt-MenuItem img {
+ vertical-align: middle;
+ margin-right: 3px;
+}
+
+.kune-StackSubItemActions .gwt-MenuItem-selected {
+ background-color: #FFB958;
+}
+
+/* AccessList */
+.kune-AccessListSubLabel {
+ font-style: italic;
+}
+
+.kune-AccessList {
+ margin: 5px;
+ width: 100%;
+}
+
+.kune-AccessList .gwt-DisclosurePanel {
+ margin: 5px;
+ width: 100%;
+}
+
+.kune-AccessList .gwt-DisclosurePanel-open {
+ width: 100%;
+}
+
+.kune-AccessList .gwt-DisclosurePanel-closed {
+ width: 100%;
+}
+
+.kune-AccessList .header {
+ margin: 0 0 3px 0;
+ text-decoration: none;
+ width: 100%;
+ background-color: #8DD35F;
+}
+
+.kune-AccessList .header table {
+ margin: 0 5px 0 0;
+ width: 100%;
+ color: #FFF;
+}
+
+.kune-AccessList .header img {
+ margin: 0 3px 0 0;
+}
+
+.kune-AccessList .content {
+ margin: 0 0 0 7px;
+ width: 100%;
+}
+
+.kune-AccessList .content table {
+ margin-bottom: 5px;
+ width: 100%;
+}
+
+/* Rate */
+.kune-RatePanel-Label {
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+.kune-RatePanel-Stars {
+ margin-left: 5px;
+ vertical-align: middle;
+}
+
+.kune-RatePanel-Stars-RateIt {
+ cursor: pointer;
+}
+
+/* Licenses */
+.kune-License-CC-Header {
+ color: #15428B;
+ font-weight: bold;
+ font-size: 85%;
+ margin-top: 5px;
+}
+
+.kune-License-CC-Header .gwt-Label {
+ color: #15428B;
+ font-weight: bold;
+ font-size: 85%;
+ margin-top: 5px;
+}
+
+/* Theme */
+.kune-IconBottomPanel .gwt-MenuItem {
+ cursor: pointer;
+ background-color: #FFF;
+ margin: 2px 2px 2px 5px;
+}
+
+.kune-IconBottomPanel .gwt-MenuItem-selected {
+ background-color: #F2F2F2;
+}
+
+.gwt-MenuBar-bottomMenu {
+ margin-left: -60px;
+ margin-top: -120px;
+}
+
+/* i18n */
+.kune-I18nTranslatorCell {
+ white-space: normal;
+}
+
+.kune-i18nTranslator-recommend {
+ margin: 10px;
+}
+
+.kune-i18nTranslator-recommend h1 {
+ font-size: 131%;
+ font-weight: bold;
+}
+
+.kune-i18nTranslator-recommend h2 {
+ font-size: 116%;
+ font-weight: bold;
+}
+
+.kune-i18nTranslator-recommend h3 {
+ font-size: 108%;
+ font-weight: bold;
+ font-style: italic;
+}
+
+.kune-i18nTranslator-recommend em {
+ font-weight: bold;
+}
+
+.kune-i18nTranslator-recommend strong {
+ font-weight: bold;
+}
+
+/* Admin Context */
+.kune-AdminContextPanel {
+ margin: 6px;
+ width: 100%;
+}
+
+.kune-AdminContextPanel .gwt-StackPanelItem {
+ background: transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;
+ cursor: pointer;
+ padding: 3px 10px 1px 20px;
+ overflow: hidden;
+ width: 100%;
+}
+
+.kune-AdminContextPanel .gwt-StackPanelItem img {
+ margin: 0 0 0 3px;
+ vertical-align: middle;
+}
+
+.kune-AdminContextPanel .gwt-StackPanelItem-selected {
+ background: transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;
+ background-color: #DEE3DB;
+}
+
+.kune-AdminContextPanelLink {
+ background-color: #E6E6E6;
+ border-top: 1px solid #CCC;
+ border-bottom: 1px solid #F2F2F2;
+ /* white-space: nowrap; */
+ cursor: pointer;
+}
+
+.kune-AdminContextPanel-inner {
+ background-color: #FFF;
+}
+
+.kune-AdminContextPanel-inner-wrap {
+ margin: 5px;
+}
+
+.kune-EditableLabel {
+
+}
+
+.kune-EditableLabel .kune-EditableLabel-editable {
+
+}
+
+.kune-EditableLabel-high {
+ background-color: #FFFBC1;
+ cursor: pointer;
+}
+
+.kune-EditableLabel-high span {
+ background-color: #FFFBC1;
+}
+
+.kune-EditableLabel a {
+ margin-left: 5px;
+}
+
+.kune-EditableLabel a:link {
+ color: green;
+}
+
+.kune-EditableLabel a:hover {
+ text-decoration: underline;
+}
+
+.kune-EditableLabel a:visited {
+ color: #808000;
+}
+
+.kune-EditableLabel img {
+ margin-right: 4px;
+ vertical-align: middle;
+}
+
+.kune-EditableLabel-editable img {
+ margin-right: 4px;
+ vertical-align: middle;
+}
+
+.kune-EditableLabel-editable span {
+ margin: 3px;
+}
+
+.kune-EditableLabel span {
+ margin: 3px;
+}
+
+.kune-BottomIconsTrayPanel {
+ width: 165px;
+ height: 21px;
+ vertical-align: middle;
+ background-color: #EFEFEF;
+}
+
+.kune-TagsPanel-tag {
+ float: left;
+ margin-right: 5px;
+ cursor: pointer;
+}
+
+.kune-Content-Main {
+ margin: 5px;
+}
+
+/* Yahoo ui base.css */
+
+.kune-Content-Main h1 {
+ font-size: 138.5%;
+}
+
+.kune-Content-Main h2 {
+ font-size: 123.1%;
+}
+
+.kune-Content-Main h3 {
+ font-size: 108%;
+}
+
+.kune-Content-Main h1 {
+ margin: 1em 0;
+}
+
+.kune-Content-Main h2 {
+ margin: 1em 0;
+}
+
+.kune-Content-Main h3 {
+ margin: 1em 0;
+}
+
+.kune-Content-Main h1 {
+ font-weight: bold;
+}
+
+.kune-Content-Main h2 {
+ font-weight: bold;
+}
+
+.kune-Content-Main h3 {
+ font-weight: bold;
+}
+
+.kune-Content-Main h4 {
+ font-weight: bold;
+}
+
+.kune-Content-Main h5 {
+ font-weight: bold;
+}
+
+.kune-Content-Main h6 {
+ font-weight: bold;
+}
+
+.kune-Content-Main strong {
+ font-weight: bold;
+}
+
+.kune-Content-Main abbr {
+ border-bottom: 1px dotted #000;
+ cursor: help;
+}
+
+.kune-Content-Main acronym {
+ border-bottom: 1px dotted #000;
+ cursor: help;
+}
+
+.kune-Content-Main em {
+ font-style: italic;
+}
+
+.kune-Content-Main blockquote {
+ margin: 1em;
+}
+
+.kune-Content-Main ul {
+ margin: 1em;
+}
+
+.kune-Content-Main ol {
+ margin: 1em;
+}
+
+.kune-Content-Main dl {
+ margin: 1em;
+}
+
+.kune-Content-Main ol {
+ margin-left: 2em;
+}
+
+.kune-Content-Main ul {
+ margin-left: 2em;
+}
+
+.kune-Content-Main dl {
+ margin-left: 2em;
+}
+
+.kune-Content-Main ol {
+ list-style: decimal outside;
+}
+
+.kune-Content-Main li {
+ list-style: decimal outside;
+}
+
+.kune-Content-Main li {
+ list-style: disc outside;
+}
+
+.kune-Content-Main ul {
+ list-style: disc outside;
+}
+
+
+.kune-Content-Main dl {
+ margin-left: 1em;
+}
+
+.kune-Content-Main dd {
+ margin-left: 1em;
+}
+
+.kune-Content-Main th {
+ border: 1px solid #000;
+ padding: .5em;
+ font-weight: bold;
+ text-align: center;
+}
+
+.kune-Content-Main td {
+ border: 1px solid #000;
+ padding: .5em;
+}
+
+.kune-Content-Main caption {
+ margin-bottom: .5em;
+ text-align: center;
+}
+
+.kune-Content-Main p {
+ margin-bottom: 1em;
+}
+
+.kune-Content-Main fieldset {
+ margin-bottom: 1em;
+}
+.kune-Content-Main table {
+ margin-bottom: 1em;
+}
+
+.kune-Content-Main pre {
+ margin-bottom: 1em;
+}
+
+.kune-Content-Main input[type=text] {
+ width: 12.25em;*width: 11.9em;}
+
+.kune-Content-Main input[type=password] {
+ width: 12.25em;*width: 11.9em;}
+
+.kune-Content-Main textarea {width: 12.25em;*width: 11.9em;}
+
+.search-icon {
+ background-image: url(img/search.gif) !important;
+}
+
+.i18n-icon {
+ background-image: url(img/language.gif) !important;
+}
+
+.chat-icon {
+ background-image: url(img/chat.gif) !important;
+}
+
+.group-icon {
+ background-image: url(img/group.gif) !important;
+}
+
+.user-icon {
+ background-image: url(img/user.gif) !important;
+}
+
+.userf-icon {
+ background-image: url(img/userf.gif) !important;
+}
+
+
+
+
+/* RTE Text editor */
+.kune-TexEditorPanel-TextArea {
+ margin: 3px;
+}
+
+.gwt-RichTextArea { /* border: 1px solid #000;
+ background-color: #FFF; */
+ border: 1px solid #4D4D4D;
+ background-color: #FFF;
+ margin: 5px 0px 5px 10px;
+}
+
+.gwt-RichTextToolbar {
+ /* background-color: #F2F2F2;
+ padding: 5px; */
+ height: 24px;
+ vertical-align: middle;
+}
+
+.gwt-RichTextToolbar table {
+ vertical-align: middle;
+}
+
+.gwt-RichTextToolbar .gwt-ToggleButton {
+ float: left;
+ margin-top: 2px;
+}
+
+.gwt-RichTextToolbar .gwt-PushButton {
+ float: left;
+ margin-top: 2px;
+}
+
+.gwt-RichTextToolbar .gwt-PushButton-up {
+ margin-right: 2px;
+ border: 1px solid #F2F2F2;
+}
+
+.gwt-RichTextToolbar .gwt-PushButton-up-hovering {
+ margin-right: 2px;
+ border: 1px solid #C3D9FF;
+ border-color: #E8F1FF #9daecd #9daecd #e8f1ff;
+}
+
+.gwt-RichTextToolbar .gwt-PushButton-down {
+ margin-right: 2px;
+ border: 1px solid #C3D9FF;
+ border-color: #9DAECD #e8f1ff #e8f1ff #9daecd;
+}
+
+.gwt-RichTextToolbar .gwt-PushButton-down-hovering {
+ margin-right: 2px;
+ border: 1px solid #C3D9FF;
+ border-color: #9DAECD #e8f1ff #e8f1ff #9daecd;
+}
+
+.gwt-RichTextToolbar .gwt-ToggleButton-up {
+ margin-right: 2px;
+ border: 1px solid #F2F2F2;
+}
+
+.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering {
+ margin-right: 2px;
+ border: 1px solid #C3D9FF;
+ border-color: #E8F1FF #9daecd #9daecd #e8f1ff;
+}
+
+.gwt-RichTextToolbar .gwt-ToggleButton-down {
+ margin-right: 2px;
+ background-color: #E8F1FF;
+ border: 1px solid #C3D9FF;
+ border-color: #9DAECD #e8f1ff #e8f1ff #9daecd;
+}
+
+.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering {
+ margin-right: 2px;
+ background-color: #E8F1FF;
+ border: 1px solid #C3D9FF;
+ border-color: #9DAECD #e8f1ff #e8f1ff #9daecd;
+}
+
+.gwt-RichTextToolbar .x-btn {
+ float: left;
+}
+
+.gwt-RichTextToolbar .kune-Button-Large-lSpace {
+ float: left;
+}
+
+.gwt-RichTextToolbar .kune-Button-Large-lrSpace {
+ float: left;
+}
+
+.RichTextToolbar-menu {
+ float: left;
+ margin-top: 2px;
+}
+
+.RichTextToolbar-menu table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ margin: 0;
+}
+
+.RichTextToolbar-menu .gwt-MenuItem {
+ margin-right: 2px;
+ border: 1px solid #F2F2F2;
+}
+
+.RichTextToolbar-menu .gwt-MenuItem-selected {
+ margin-right: 2px;
+ background-color: #E8F1FF;
+ border: 1px solid #C3D9FF;
+ border-color: #9DAECD #e8f1ff #e8f1ff #9daecd;
+}
+
+.RichTextToolbar-submenu {
+ background-color: #FFFCD5;
+ border: 1px solid #D38D5F;
+ cursor: default;
+}
+
+.RichTextToolbar-submenu .gwt-MenuItem {
+ cursor: default;
+ white-space: nowrap;
+ border: 1px solid #FFFCD5;
+ padding: 0 4px;
+}
+
+.RichTextToolbar-submenu .gwt-MenuItem-selected {
+ background-color: #FFB958;
+ border: 1px solid #C83737;
+}
+
+.kune-WebSafePalette {
+ background-color: #FFF;
+ border: 1px solid #AAA;
+ margin: 1px;
+}
+
+.kune-WebSafePalette td {
+ width: 12px;
+ height: 10px;
+}
+
+
+.k-site-traybar {
+ background: #FFF none repeat scroll 0% 50%;
+}
+
+.k-sitebar .kune-IconHyperlink {
+ white-space: nowrap;
+}
+
+.k-sitebar .kune-IconHyperlink a:link {
+ cursor: pointer;
+ text-decoration: underline;
+ color: #B3B3B3;
+}
+
+.k-sitebar .kune-IconHyperlink a:hover {
+ text-decoration: underline;
+}
+
+.k-sitebar .kune-IconHyperlink a:visited {
+ color: #B3B3B3;
+}
+
+.k-sitebar {
+ margin-right: 10px;
+ height: 16px;
+}
+
+.k-sitebar .gwt-TextBox {
+ border: 1px solid #E4A374;
+ margin: 0 15px 0 3px;
+ padding-left: 3px;
+ color: #B3B3B3;
+}
+
+.k-sitebar .gwt-Hyperlink a {
+ white-space: nowrap;
+ color: #B3B3B3;
+ text-decoration: underline;
+ cursor: pointer;
+}
+
+.k-sitebar .gwt-PushButton {
+ cursor: pointer;
+}
+
+.k-sitebar-LabelLink {
+ white-space: nowrap;
+ color: #B3B3B3;
+ margin-left: 3px;
+ cursor: pointer;
+ text-decoration: underline;
+}
+
+.k-entity-summary {
+ border-left-color: #FFF;
+ border-left-width: 5px;
+}
+
+.k-EntityTextLogo {
+ border: 2px solid #F2F2F2;
+ height: 60px;
+ margin: 0 0 4px -1px;
+ overflow: hidden;
+ width: 468px;
+}
+
+.k-entitytextlogo .gwt-Label {
+ font-size: 167%;
+ font-weight: 700;
+ margin: 5px;
+ height: 27px;
+}
+
+.k-entitytextlogo-def .gwt-Label {
+ color: #69312F;
+}
+
+.k-entitytextlogo-green .gwt-Label {
+ color: #000080;
+}
+
+.k-entitytextlogo .gwt-Hyperlink a {
+ color: #CCC;
+ font-size: 85%;
+ margin: 5px;
+ text-decoration: underline;
+ white-space: nowrap;
+ background-color: #FFF;
+}
+
+.k-entity-def .x-layout-split {
+ background: #DD8A3D none repeat scroll 0% 50%;
+}
+
+.k-entity-green .x-layout-split {
+ background: #5FD35F none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace .x-layout-split {
+ background: transparent none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-def .x-layout-split {
+ background: #DEAA87 none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-green .x-layout-split {
+ background: #DCE8AB none repeat scroll 0% 50%;
+}
+
+.k-entity-title {
+ border-left-style: solid;
+ border-left-width: 2px;
+}
+
+.k-entity-title div {
+ line-height: 22px;
+ white-space: nowrap;
+}
+
+.k-entity-subtitle {
+}
+
+.k-entity-subtitle div {
+ line-height: 22px;
+ white-space: nowrap;
+}
+
+.k-entity-title-rd-def {
+ background: #DD8A3D;
+}
+
+.k-entity-title-rd-green {
+ background: #5FD35F;
+}
+
+.k-entity-title-def {
+ background: #F1BB59 none repeat scroll 0% 50%;
+ border-left-color: #DD8A3D;
+}
+
+.k-entity-title-def div {
+ color: #69312F;
+}
+
+.k-entity-title-green {
+ background: #AFA none repeat scroll 0% 50%;
+ border-left-color: #5FD35F;
+}
+
+.k-entity-title-green div {
+ color: #250;
+}
+
+.k-entity-subtitle-def {
+ background: #DD8A3D none repeat scroll 0% 50%;
+}
+
+.k-entity-subtitle-def div {
+ color: #FFF;
+}
+
+.k-entity-subtitle-green {
+ background: #5FD35F none repeat scroll 0% 50%;
+}
+
+.k-entity-subtitle-green div {
+ color: #FFF;
+}
+
+.k-entity-bottom-rd-def {
+ background: #DD8A3D;
+}
+
+.k-entity-bottom-rd-green {
+ background: #5FD35F;
+}
+
+.k-entitylicensepanel-licensetext {
+ cursor: pointer;
+ margin-left: 5px;
+ text-decoration: underline;
+}
+
+.k-entity-container-def div {
+ background: #FFD09D none repeat scroll 0% 50%;
+}
+
+.k-entity-container-green div {
+ background: #CFA none repeat scroll 0% 50%;
+}
+
+.k-entity-bottom div {
+ line-height: 2em;
+}
+
+.k-entity-bottom-def {
+ background: #DD8A3D;
+}
+
+.k-entity-bottom-def div {
+ color: #FFF;
+}
+
+.k-entity-bottom-green {
+ background: #5FD35F;
+}
+
+.k-entity-bottom-green div {
+ color: #FFF;
+}
+
+.k-toolbar-top-line {
+ border-top-color: rgb( 208, 208, 208 );
+ border-top-style: solid;
+ border-top-width: 1px;
+}
+
+.k-toolbar-bottom-line {
+ border-bottom-color: rgb( 208, 208, 208 );
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+}
+
+.x-toolbar td, .x-toolbar span, .x-toolbar input, .x-toolbar div, .x-toolbar select, .x-toolbar label {
+ white-space: nowrap;
+ font: normal 13px arial, sans;
+ line-height: 19px;
+}
+
+.k-toolbar-sep {
+ padding-top: 4px;
+}
+
+/* Custom gwt-ext styles */
+
+.ytb-sep {
+ background-image: url(../js/ext/resources/images/default/grid/grid-split.gif);
+ background-position: center;
+ background-repeat: no-repeat;
+ display: block;
+ font-size: 1px;
+ height: 16px;
+ width: 4px;
+ overflow: hidden;
+ cursor: default;
+ margin: 0 2px 0;
+ border: 0;
+}
+
+.ytb-spacer {
+ width: 2px;
+}
+
+.x-grid-group-hd {
+ border-bottom: 2px solid grey;
+ cursor: pointer;
+ padding-top: 3px;
+}
+
+/* Drop down */
+
+.k-dropdownouter {
+ background-color: gray;
+}
+
+.k-dropdownouter-members {
+}
+
+.k-dropdownouter-members-def {
+ background-color: #DF5244;
+}
+
+.k-dropdownouter-members-green {
+ background-color: #008000;
+}
+
+.k-dropdownouter-part {
+}
+
+.k-dropdownouter-part-def {
+ background-color: #CA5842;
+}
+
+.k-dropdownouter-part-green {
+ background-color: #00AA00;
+}
+
+.k-dropdownouter-tags {
+}
+
+.k-dropdownouter-tags-def {
+ background-color: #87501E;
+}
+
+.k-dropdownouter-tags-green {
+ background-color: #00D400;
+}
+
+.k-dropdownouter-summary {
+}
+
+.k-dropdownouter-summary-def {
+ background-color: #9F734B;
+}
+
+.k-dropdownouter-summary-green {
+ background-color: #4CE14C;
+}
+
+.k-dropdowninner {
+ margin: 0 3px 1px 3px;
+ background: green;
+ background-color: #FFF;
+ /* padding: 3px; */
+}
+
+.k-dropdownlabel {
+ color: #FFF;
+ cursor: pointer;
+}
+
+.k-dropdownlabel .gwt-Label {
+ margin: 0 5px 0 0;
+ width: 100%;
+}
+
+.k-dropdownlabel img {
+ margin: 0 3px 0 1px;
+}
+
+
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-07-23 04:11:58 UTC (rev 813)
@@ -232,6 +232,8 @@
padding-top: 4px;
}
+/* Custom gwt-ext styles */
+
.ytb-sep {
background-image: url(../js/ext/resources/images/default/grid/grid-split.gif);
background-position: center;
@@ -249,7 +251,15 @@
.ytb-spacer {
width: 2px;
}
+
+.x-grid-group-hd {
+ border-bottom: 2px solid grey;
+ cursor: pointer;
+ padding-top: 3px;
+}
+
/* Drop down */
+
.k-dropdownouter {
background-color: gray;
}
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/richtext.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/richtext.css 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/richtext.css 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,3 +1,4 @@
+
/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
@@ -3,13 +4,28 @@
http://developer.yahoo.net/yui/license.txt
version: 2.3.1
-*/body{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:400;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup,sub{line-height:-1px;vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}/*
+*/
+body{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup,sub{line-height:-1px;vertical-align:text-top;}sub{vertical-align:text-bottom;}input, textarea, select{font-family:inherit;font-size:inherit;font-weight:inherit;}
+
+/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.3.1
-*/body{font:13px/1.22 arial,helvetica,clean,sans-serif;font-size:small;font:x-small;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;font-size:108%;line-height:99%;}/*
+*/
+body {font:13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}table {font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:99%;}
+
+
+/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.4.1
-*/h1{font-size:138.5%;}h2{font-size:123.099998%;}h3{font-size:108%;}h1,h2,h3{margin:1em 0;}h1,h2,h3,h4,h5,h6,strong{font-weight:700;}abbr,acronym{border-bottom:1px dotted #000;cursor:help;}em{font-style:italic;}blockquote,ul,ol,dl{margin:1em;}ol,ul,dl{margin-left:2em;}ol li{list-style:decimal outside;}ul li{list-style:disc outside;}dl dd{margin-left:1em;}th,td{border:1px solid #000;padding:.5em;}th{font-weight:700;text-align:center;}caption{margin-bottom:.5em;text-align:center;}p,fieldset,table,pre{margin-bottom:1em;}input[type=text],input[type=password],textarea{width:12.25em;width:11.9em;}body{font-family:arial, sans;margin:5px;}
\ No newline at end of file
+*/
+h1{font-size:138.5%;}h2{font-size:123.1%;}h3{font-size:108%;}h1,h2,h3{margin:1em 0;}h1,h2,h3,h4,h5,h6,strong{font-weight:bold;}abbr,acronym{border-bottom:1px dotted #000;cursor:help;} em{font-style:italic;}blockquote,ul,ol,dl{margin:1em;}ol,ul,dl{margin-left:2em;}ol li{list-style:decimal outside;}ul li{list-style:disc outside;}dl dd{margin-left:1em;}th,td{border:1px solid #000;padding:.5em;}th{font-weight:bold;text-align:center;}caption{margin-bottom:.5em;text-align:center;}p,fieldset,table,pre{margin-bottom:1em;}input[type=text],input[type=password],textarea{width:12.25em;*width:11.9em;}
+
+
+body {
+ font-family: arial, sans;
+ margin: 5px;
+}
+
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -21,33 +21,22 @@
package org.ourproject.kune.chat.client;
import org.ourproject.kune.chat.client.actions.AddRoomAction;
-import org.ourproject.kune.chat.client.actions.ChatLoginAction;
-import org.ourproject.kune.chat.client.actions.ChatLogoutAction;
-import org.ourproject.kune.chat.client.actions.InitChatEngineAction;
import org.ourproject.kune.platf.client.extend.ClientModule;
import org.ourproject.kune.platf.client.extend.Register;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
public class ChatClientModule implements ClientModule {
private final Session session;
private final StateManager stateManager;
- private final ChatClientTool chatTool;
public ChatClientModule(final Session session, final StateManager stateManager, final ChatClientTool chatTool) {
- this.session = session;
- this.stateManager = stateManager;
- this.chatTool = chatTool;
+ this.session = session;
+ this.stateManager = stateManager;
}
public void configure(final Register register) {
- register.addAction(WorkspaceEvents.INIT_DATA_RECEIVED, new InitChatEngineAction(chatTool));
- register.addAction(WorkspaceEvents.USER_LOGGED_IN, new ChatLoginAction(chatTool));
- ChatLogoutAction logoutAction = new ChatLogoutAction(chatTool);
- register.addAction(WorkspaceEvents.USER_LOGGED_OUT, logoutAction);
- register.addAction(WorkspaceEvents.STOP_APP, logoutAction);
- register.addAction(ChatEvents.ADD_ROOM, new AddRoomAction(session, stateManager));
+ register.addAction(ChatEvents.ADD_ROOM, new AddRoomAction(session, stateManager));
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,9 +1,11 @@
package org.ourproject.kune.chat.client;
import org.ourproject.kune.platf.client.KunePlatform;
+import org.ourproject.kune.platf.client.app.Application;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.calclab.emiteuimodule.client.EmiteUIDialog;
import com.calclab.suco.client.container.Container;
@@ -24,17 +26,16 @@
public void onLoad(final ModuleBuilder builder) {
builder.registerProvider(ChatClientTool.class, new Provider<ChatClientTool>() {
public ChatClientTool get() {
- return new ChatClientTool(builder.getInstance(I18nUITranslationService.class), builder
- .getInstance(EmiteUIDialog.class));
+ return new ChatClientTool(builder.getInstance(Session.class), builder.getInstance(Application.class),
+ builder.getInstance(I18nUITranslationService.class), builder.getInstance(EmiteUIDialog.class),
+ builder.getInstance(WorkspaceSkeleton.class));
}
}, SingletonScope.class);
- final KunePlatform platform = builder.getInstance(KunePlatform.class);
final ChatClientTool chatClientTool = getChatClientTool(builder);
- platform.addTool(chatClientTool);
-
- final Session session = builder.getInstance(Session.class);
- final StateManager stateManager = builder.getInstance(StateManager.class);
- platform.install(new ChatClientModule(session, stateManager, chatClientTool));
+ builder.getInstance(KunePlatform.class).addTool(chatClientTool);
+ builder.getInstance(KunePlatform.class).install(
+ new ChatClientModule(builder.getInstance(Session.class), builder.getInstance(StateManager.class),
+ chatClientTool));
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -20,57 +20,77 @@
package org.ourproject.kune.chat.client;
+import org.ourproject.kune.platf.client.app.Application;
+import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.tool.AbstractClientTool;
import org.ourproject.kune.workspace.client.component.WorkspaceComponent;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.calclab.emiteuimodule.client.EmiteUIDialog;
+import com.calclab.suco.client.signal.Slot;
public class ChatClientTool extends AbstractClientTool implements ChatProvider {
public static final String NAME = "chats";
public static final String TYPE_ROOT = "chat.root";
public static final String TYPE_ROOM = "chat.room";
public static final String TYPE_CHAT = "chat.chat";
-
private final ChatToolComponents components;
private ChatEngine chat;
- private final EmiteUIDialog emiteUIDialog;
- private final I18nTranslationService i18n;
- public ChatClientTool(final I18nTranslationService i18n, final EmiteUIDialog emiteUIDialog) {
- super(i18n.t("chat rooms"));
- this.i18n = i18n;
- this.emiteUIDialog = emiteUIDialog;
- components = new ChatToolComponents(emiteUIDialog, i18n);
+ public ChatClientTool(final Session session, final Application application, final I18nTranslationService i18n,
+ final EmiteUIDialog emiteUIDialog, final WorkspaceSkeleton ws) {
+ super(i18n.t("chat rooms"));
+ components = new ChatToolComponents(emiteUIDialog, i18n);
+ session.onInitDataReceived(new Slot<InitDataDTO>() {
+ public void onEvent(final InitDataDTO initData) {
+ final ChatOptions chatOptions = new ChatOptions(initData.getChatHttpBase(), initData.getChatDomain(),
+ initData.getChatRoomHost());
+ chat = new ChatEngineXmpp(emiteUIDialog, chatOptions, i18n, ws);
+ }
+ });
+ application.onApplicationStop(new Slot<Object>() {
+ public void onEvent(final Object parameter) {
+ chat.logout();
+ }
+ });
+ session.onUserSignOut(new Slot<Object>() {
+ public void onEvent(final Object parameter) {
+ chat.logout();
+ }
+ });
+ session.onUserSignIn(new Slot<UserInfoDTO>() {
+ public void onEvent(final UserInfoDTO user) {
+ chat.login(user.getChatName(), user.getChatPassword());
+ }
+ });
}
public ChatEngine getChat() {
- return chat;
+ return chat;
}
public WorkspaceComponent getContent() {
- return components.getContent();
+ return components.getContent();
}
public WorkspaceComponent getContext() {
- return components.getContext();
+ return components.getContext();
}
public String getName() {
- return NAME;
+ return NAME;
}
- public void initEngine(final ChatOptions options) {
- this.chat = new ChatEngineXmpp(emiteUIDialog, options, i18n);
- }
-
public void setContent(final StateDTO state) {
- components.getContent().setState(state);
+ components.getContent().setState(state);
}
public void setContext(final StateDTO state) {
- components.getContext().setState(state);
+ components.getContext().setState(state);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -24,7 +24,7 @@
void joinRoom(String roomName, String userAlias);
- void login(String chatName, String chatPassword);
+ void login(String jid, String passwd);
void logout();
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -22,6 +22,7 @@
import java.util.Date;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.calclab.emite.client.im.roster.RosterManager.SubscriptionMode;
import com.calclab.emite.client.xmpp.stanzas.XmppURI;
@@ -31,17 +32,24 @@
import com.calclab.emiteuimodule.client.status.OwnPresence.OwnStatus;
import com.calclab.suco.client.signal.Slot;
import com.google.gwt.user.client.Window;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.widgets.Button;
+import com.gwtext.client.widgets.ToolbarButton;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
class ChatEngineXmpp implements ChatEngine {
private final ChatOptions chatOptions;
private final EmiteUIDialog emiteDialog;
private final I18nTranslationService i18n;
+ private final WorkspaceSkeleton ws;
+ private ToolbarButton traybarButton;
public ChatEngineXmpp(final EmiteUIDialog emiteUIDialog, final ChatOptions chatOptions,
- final I18nTranslationService i18n) {
+ final I18nTranslationService i18n, final WorkspaceSkeleton ws) {
this.emiteDialog = emiteUIDialog;
this.chatOptions = chatOptions;
this.i18n = i18n;
+ this.ws = ws;
}
public ChatOptions getChatOptions() {
@@ -54,24 +62,36 @@
emiteDialog.joinRoom(roomURI);
}
- public void login(final String chatName, final String chatPassword) {
- final String resource = "emiteui-" + new Date().getTime() + "-kune"; // +
- // getGwtMetaProperty(GWT_PROPERTY_RELEASE);
- // FIXME, get this from user profile
- final UserChatOptions userChatOptions = new UserChatOptions(chatName + "@" + chatOptions.domain, chatPassword,
- resource, "blue", SubscriptionMode.autoAcceptAll, true);
+ public void login(final String jid, final String passwd) {
+ final UserChatOptions userChatOptions = getUserChatOptions(jid, passwd);
// FIXME: Avatar provider
final AvatarProvider avatarProvider = new AvatarProvider() {
public String getAvatarURL(XmppURI userURI) {
return "images/person-def.gif";
}
};
-
final String initialWindowTitle = Window.getTitle();
chatOptions.userOptions = userChatOptions;
emiteDialog.start(userChatOptions, chatOptions.httpBase, chatOptions.roomHost, avatarProvider, i18n.t("Chat"));
emiteDialog.show(OwnStatus.online);
- // emiteDialog.hide();
+ if (traybarButton == null) {
+ traybarButton = new ToolbarButton();
+ traybarButton.setTooltip(i18n.t("Show/hide the chat window"));
+ traybarButton.setIcon("images/emite-chat.gif");
+ traybarButton.addListener(new ButtonListenerAdapter() {
+ @Override
+ public void onClick(final Button button, final EventObject e) {
+ if (emiteDialog.isVisible()) {
+ emiteDialog.hide();
+ } else {
+ emiteDialog.show();
+ }
+ }
+
+ });
+ ws.getSiteTraybar().addButton(traybarButton);
+ }
+ emiteDialog.hide();
emiteDialog.onChatAttended(new Slot<String>() {
public void onEvent(final String parameter) {
Window.setTitle(initialWindowTitle);
@@ -88,6 +108,17 @@
if (!emiteDialog.isDialogNotStarted()) {
emiteDialog.closeAllChats(false);
emiteDialog.setOwnPresence(OwnStatus.offline);
+ final UserChatOptions userChatOptions = getUserChatOptions("reset(a)example.com", "");
+ emiteDialog.refreshUserInfo(userChatOptions);
+ chatOptions.userOptions = userChatOptions;
}
}
+
+ private UserChatOptions getUserChatOptions(final String jid, final String passwd) {
+ final String resource = "emiteui-" + new Date().getTime() + "-kune"; // +
+ // getGwtMetaProperty(GWT_PROPERTY_RELEASE);
+ // FIXME, get this from user profile
+ return new UserChatOptions(jid + "@" + chatOptions.domain, passwd, resource, "blue",
+ SubscriptionMode.autoAcceptAll, true);
+ }
}
Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLoginAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLoginAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLoginAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,40 +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.chat.client.actions;
-
-import org.ourproject.kune.chat.client.ChatProvider;
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-
-public class ChatLoginAction implements Action<UserInfoDTO> {
- private final ChatProvider provider;
-
- public ChatLoginAction(final ChatProvider provider) {
- this.provider = provider;
- }
-
- public void execute(final UserInfoDTO value) {
- login(value);
- }
-
- private void login(final UserInfoDTO user) {
- provider.getChat().login(user.getChatName(), user.getChatPassword());
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLogoutAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLogoutAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLogoutAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,37 +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.chat.client.actions;
-
-import org.ourproject.kune.chat.client.ChatProvider;
-import org.ourproject.kune.platf.client.dispatch.Action;
-
-@SuppressWarnings("unchecked")
-public class ChatLogoutAction implements Action {
- private final ChatProvider provider;
-
- public ChatLogoutAction(final ChatProvider provider) {
- this.provider = provider;
- }
-
- public void execute(final Object value) {
- provider.getChat().logout();
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/actions/InitChatEngineAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/actions/InitChatEngineAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/actions/InitChatEngineAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,42 +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.chat.client.actions;
-
-import org.ourproject.kune.chat.client.ChatClientTool;
-import org.ourproject.kune.chat.client.ChatOptions;
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.InitDataDTO;
-
-public class InitChatEngineAction implements Action<InitDataDTO> {
-
- private final ChatClientTool chatTool;
-
- public InitChatEngineAction(final ChatClientTool chatTool) {
- this.chatTool = chatTool;
- }
-
- public void execute(final InitDataDTO value) {
- InitDataDTO initData = value;
- ChatOptions chatOptions = new ChatOptions(initData.getChatHttpBase(), initData.getChatDomain(), initData
- .getChatRoomHost());
- chatTool.initEngine(chatOptions);
- }
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -28,7 +28,7 @@
builder.registerProvider(DocumentFactory.class, new Provider<DocumentFactory>() {
public DocumentFactory get() {
return new DocumentFactory(builder.getInstance(I18nUITranslationService.class), builder
- .getInstance(Session.class), builder.getInstance(TagsSummary.class), builder
+ .getInstance(Session.class), builder.getProvider(TagsSummary.class), builder
.getInstance(WorkspaceSkeleton.class));
}
}, SingletonScope.class);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/actions/SaveDocumentAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/actions/SaveDocumentAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/SaveDocumentAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -38,43 +38,44 @@
private final I18nTranslationService i18n;
public SaveDocumentAction(final Session session, final I18nTranslationService i18n) {
- this.session = session;
- this.i18n = i18n;
+ this.session = session;
+ this.i18n = i18n;
}
public void execute(final SaveDocumentActionParams params) {
- save(params);
+ save(params);
}
private void save(final SaveDocumentActionParams params) {
- Site.showProgressSaving();
- ContentServiceAsync server = ContentService.App.getInstance();
- server.save(session.getUserHash(), session.getCurrentState().getGroup().getShortName(), params.getStateDTO()
- .getDocumentId(), params.getStateDTO().getContent(), new AsyncCallback<Integer>() {
- public void onFailure(final Throwable caught) {
- Site.hideProgress();
- try {
- throw caught;
- } catch (final SessionExpiredException e) {
- Site.doLogout();
- MessageBox.alert(i18n.t("Alert"), i18n.t("Your session has expired. Please login again."),
- new AlertCallback() {
- public void execute() {
- Site.doLogin(null);
- }
- });
- } catch (final Throwable e) {
- Site.error(i18n.t("Error saving document. Retrying..."));
- params.getDocumentContent().onSaveFailed();
- }
- }
+ Site.showProgressSaving();
+ final ContentServiceAsync server = ContentService.App.getInstance();
+ server.save(session.getUserHash(), session.getCurrentState().getGroup().getShortName(), params.getStateDTO()
+ .getDocumentId(), params.getStateDTO().getContent(), new AsyncCallback<Integer>() {
+ public void onFailure(final Throwable caught) {
+ // User error codes and KuneErrorHandler
+ Site.hideProgress();
+ try {
+ throw caught;
+ } catch (final SessionExpiredException e) {
+ // FIXME Logout ???
+ MessageBox.alert(i18n.t("Alert"), i18n.t("Your session has expired. Please login again."),
+ new AlertCallback() {
+ public void execute() {
+ // FIXME Login ???
+ }
+ });
+ } catch (final Throwable e) {
+ Site.error(i18n.t("Error saving document. Retrying..."));
+ params.getDocumentContent().onSaveFailed();
+ }
+ }
- public void onSuccess(final Integer result) {
- Site.hideProgress();
- params.getDocumentContent().onSaved();
- }
+ public void onSuccess(final Integer result) {
+ Site.hideProgress();
+ params.getDocumentContent().onSaved();
+ }
- });
+ });
}
}
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-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPresenter.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -39,15 +39,17 @@
import org.ourproject.kune.workspace.client.sitebar.Site;
import org.ourproject.kune.workspace.client.workspace.TagsSummary;
+import com.calclab.suco.client.container.Provider;
+
public class AdminContextPresenter extends AbstractPresenter implements AdminContext {
private AdminContextView view;
private final Session session;
- private final TagsSummary tags;
+ private final Provider<TagsSummary> tagsSummaryProvider;
- public AdminContextPresenter(final Session session, final TagsSummary tags) {
+ public AdminContextPresenter(final Session session, final Provider<TagsSummary> tagsSummaryProvider) {
this.session = session;
- this.tags = tags;
+ this.tagsSummaryProvider = tagsSummaryProvider;
}
public void doChangeLanguage(final String langCode) {
@@ -110,7 +112,7 @@
server.setTags(session.getUserHash(), currentState.getGroup().getShortName(), currentState.getDocumentId(),
tagsString, new AsyncCallbackSimple<List<TagResultDTO>>() {
public void onSuccess(final List<TagResultDTO> result) {
- tags.setGroupTags(result);
+ tagsSummaryProvider.get().setGroupTags(result);
Site.hideProgress();
}
});
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -55,23 +55,25 @@
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.workspace.TagsSummary;
+import com.calclab.suco.client.container.Provider;
+
public class DocumentFactory {
private final I18nTranslationService i18n;
private final Session session;
- private final TagsSummary tags;
+ private final Provider<TagsSummary> tagsSummaryProvider;
private final WorkspaceSkeleton ws;
- public DocumentFactory(final I18nTranslationService i18n, final Session session, final TagsSummary tags,
- final WorkspaceSkeleton ws) {
+ public DocumentFactory(final I18nTranslationService i18n, final Session session,
+ final Provider<TagsSummary> tagsSummaryProvider, final WorkspaceSkeleton ws) {
this.i18n = i18n;
this.session = session;
- this.tags = tags;
+ this.tagsSummaryProvider = tagsSummaryProvider;
this.ws = ws;
}
public AdminContext createAdminContext() {
- final AdminContextPresenter presenter = new AdminContextPresenter(session, tags);
+ final AdminContextPresenter presenter = new AdminContextPresenter(session, tagsSummaryProvider);
final AdminContextView view = new AdminContextPanel(presenter, i18n);
presenter.init(view);
return presenter;
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-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/Application.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -27,6 +27,8 @@
import org.ourproject.kune.platf.client.tool.ClientTool;
import org.ourproject.kune.workspace.client.workspace.Workspace;
+import com.calclab.suco.client.signal.Slot;
+
public interface Application {
ClientTool getTool(String toolName);
@@ -35,11 +37,10 @@
void init(DefaultDispatcher dispatcher, StateManager stateManager, HashMap<String, ClientTool> tools);
- /**
- * Communicates to every tool the current group
- *
- * @param group
- */
+ void onApplicationStart(Slot<Object> slot);
+
+ void onApplicationStop(Slot<Object> slot);
+
void setGroupState(String groupShortName);
void start();
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-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -25,40 +25,47 @@
import java.util.Map;
import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.platf.client.dispatch.Dispatcher;
+import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
+import org.ourproject.kune.platf.client.rpc.SiteService;
+import org.ourproject.kune.platf.client.rpc.SiteServiceAsync;
import org.ourproject.kune.platf.client.services.ColorTheme;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.KuneErrorHandler;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.tool.ClientTool;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
+import org.ourproject.kune.platf.client.ui.WindowUtils;
+import org.ourproject.kune.platf.client.utils.PrefetchUtilities;
import org.ourproject.kune.workspace.client.WorkspaceFactory;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.workspace.Workspace;
+import com.allen_sauer.gwt.log.client.Log;
+import com.calclab.suco.client.signal.Signal;
+import com.calclab.suco.client.signal.Slot;
+import com.google.gwt.user.client.Timer;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
public class ApplicationDefault implements Application {
private final Workspace workspace;
private Map<String, ClientTool> tools;
- private Dispatcher dispatcher;
+ private final Session session;
+ private final Signal<Object> onApplicationStart;
+ private final Signal<Object> onApplicationStop;
+ private final WorkspaceSkeleton ws;
private StateManager stateManager;
public ApplicationDefault(final Session session, final ExtensibleWidgetsManager extensionPointManager,
- final I18nTranslationService i18n, final ColorTheme colorTheme, final KuneErrorHandler errorHandler) {
+ final I18nTranslationService i18n, final ColorTheme colorTheme, final KuneErrorHandler errorHandler,
+ final WorkspaceSkeleton ws) {
+ this.session = session;
+ this.ws = ws;
workspace = WorkspaceFactory.createWorkspace(session, extensionPointManager, i18n, colorTheme, errorHandler);
tools = new HashMap<String, ClientTool>();
- // DesktopView desktop = WorkspaceFactory.createDesktop(workspace, new
- // SiteBarListener() {
- // public void onChangeState(StateToken token) {
- // stateManager.setState(token);
- // }
- //
- // public void onUserLoggedOut() {
- // dispatcher.fire(WorkspaceEvents.USER_LOGGED_OUT, null);
- // }
- // }, session);
- // desktop.attach();
-
+ this.onApplicationStart = new Signal<Object>("onApplicationStart");
+ this.onApplicationStop = new Signal<Object>("onApplicationStop");
}
public ClientTool getTool(final String toolName) {
@@ -71,12 +78,19 @@
public void init(final DefaultDispatcher dispatcher, final StateManager stateManager,
final HashMap<String, ClientTool> tools) {
- this.dispatcher = dispatcher;
this.stateManager = stateManager;
this.tools = tools;
workspace.attachTools(tools.values().iterator());
}
+ public void onApplicationStart(final Slot<Object> slot) {
+ onApplicationStart.add(slot);
+ }
+
+ public void onApplicationStop(final Slot<Object> slot) {
+ onApplicationStop.add(slot);
+ }
+
public void setGroupState(final String groupShortName) {
final Iterator<ClientTool> iterator = tools.values().iterator();
while (iterator.hasNext()) {
@@ -86,10 +100,46 @@
}
public void start() {
- dispatcher.fireDeferred(WorkspaceEvents.START_APP, null);
+ onApplicationStart.fire(null);
+ PrefetchUtilities.preFetchImpImages();
+ getInitData();
+ final Timer prefetchTimer = new Timer() {
+ public void run() {
+ PrefetchUtilities.doTasksDeferred(workspace);
+ }
+ };
+ prefetchTimer.schedule(20000);
}
public void stop() {
- dispatcher.fire(WorkspaceEvents.STOP_APP, null);
+ onApplicationStop.fire(null);
}
+
+ private void getInitData() {
+ final SiteServiceAsync server = SiteService.App.getInstance();
+ server.getInitData(session.getUserHash(), new AsyncCallback<InitDataDTO>() {
+ public void onFailure(final Throwable error) {
+ Site.error("Error fetching initial data");
+ Log.debug(error.getMessage());
+ ws.unMask();
+ }
+
+ public void onSuccess(final InitDataDTO initData) {
+ checkChatDomain(initData.getChatDomain());
+ session.setInitData(initData);
+ session.setCurrentUserInfo(initData.getUserInfo());
+ stateManager.reload();
+ ws.unMask();
+ }
+
+ private void checkChatDomain(final String chatDomain) {
+ final String httpDomain = WindowUtils.getLocation().getHostName();
+ if (!chatDomain.equals(httpDomain)) {
+ Log.error("Your http domain (" + httpDomain + ") is different from the chat domain (" + chatDomain
+ + "). This will produce problems with the chat functionality. "
+ + "Check kune.properties on the server.");
+ }
+ }
+ });
+ }
}
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-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -34,24 +34,32 @@
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.calclab.suco.client.container.Provider;
+import com.calclab.suco.client.signal.Signal;
+import com.calclab.suco.client.signal.Slot;
import com.google.gwt.core.client.GWT;
public class KuneErrorHandler {
private final Session session;
private final I18nTranslationService i18n;
private final Provider<WorkspaceSkeleton> wsProvider;
+ private final Signal<Object> onSessionExpired;
public KuneErrorHandler(final Session session, final I18nTranslationService i18n,
final Provider<WorkspaceSkeleton> wsProvider) {
this.session = session;
this.i18n = i18n;
this.wsProvider = wsProvider;
+ this.onSessionExpired = new Signal<Object>("onSessionExpired");
}
public WorkspaceSkeleton getWorkspaceSkeleton() {
return wsProvider.get();
}
+ public void onSessionExpired(final Slot<Object> slot) {
+ onSessionExpired.add(slot);
+ }
+
public void process(final Throwable caught) {
Site.hideProgress();
try {
@@ -89,7 +97,7 @@
}
private void doSessionExpired() {
- Site.doLogout();
+ onSessionExpired.fire(null);
getWorkspaceSkeleton().showAlertMessage(i18n.t("Session expired"),
i18n.t("Your session has expired. Please login again."));
}
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-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -5,9 +5,9 @@
import org.ourproject.kune.platf.client.KunePlatform;
import org.ourproject.kune.platf.client.app.Application;
import org.ourproject.kune.platf.client.app.ApplicationDefault;
-import org.ourproject.kune.platf.client.app.HistoryWrapper;
import org.ourproject.kune.platf.client.app.HistoryWrapperImpl;
import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.rpc.ContentService;
@@ -18,16 +18,24 @@
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.state.StateManagerDefault;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.newgroup.NewGroup;
+import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
+import org.ourproject.kune.workspace.client.newgroup.ui.NewGroupPanel;
import org.ourproject.kune.workspace.client.presence.ui.GroupSummaryPanel;
import org.ourproject.kune.workspace.client.search.SiteSearcher;
import org.ourproject.kune.workspace.client.search.SiteSearcherPanel;
import org.ourproject.kune.workspace.client.search.SiteSearcherPresenter;
import org.ourproject.kune.workspace.client.search.SiteSearcherView;
import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.sitebar.SiteToken;
+import org.ourproject.kune.workspace.client.sitebar.login.SignIn;
+import org.ourproject.kune.workspace.client.sitebar.login.SignInPanel;
+import org.ourproject.kune.workspace.client.sitebar.login.SignInPresenter;
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessage;
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessagePanel;
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessagePresenter;
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessageView;
+import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPanelNew;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPresenterNew;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryViewNew;
@@ -83,6 +91,7 @@
import com.calclab.suco.client.modules.Module;
import com.calclab.suco.client.modules.ModuleBuilder;
import com.calclab.suco.client.scopes.SingletonScope;
+import com.calclab.suco.client.signal.Slot;
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.History;
@@ -117,7 +126,7 @@
builder.registerProvider(Session.class, new Provider<Session>() {
public Session get() {
- return new SessionImpl(Cookies.getCookie("userHash"), initialLang);
+ return new SessionImpl(Cookies.getCookie(Site.USERHASH), initialLang);
}
}, SingletonScope.class);
@@ -168,19 +177,19 @@
}
}, SingletonScope.class);
+ final WorkspaceSkeleton ws = builder.getInstance(WorkspaceSkeleton.class);
+ final Images images = builder.getInstance(Images.class);
+
builder.registerProvider(Application.class, new Provider<Application>() {
public Application get() {
final Session session = builder.getInstance(Session.class);
final ExtensibleWidgetsManager extensionPointManager = builder
.getInstance(ExtensibleWidgetsManager.class);
return new ApplicationDefault(session, extensionPointManager, i18n, builder
- .getInstance(ColorTheme.class), builder.getInstance(KuneErrorHandler.class));
+ .getInstance(ColorTheme.class), builder.getInstance(KuneErrorHandler.class), ws);
}
}, SingletonScope.class);
- final WorkspaceSkeleton ws = builder.getInstance(WorkspaceSkeleton.class);
- final Images images = builder.getInstance(Images.class);
-
builder.registerProvider(SitePublicSpaceLink.class, new Provider<SitePublicSpaceLink>() {
public SitePublicSpaceLink get() {
final SitePublicSpaceLinkPresenter presenter = new SitePublicSpaceLinkPresenter();
@@ -220,8 +229,9 @@
builder.registerProvider(SiteSignInLink.class, new Provider<SiteSignInLink>() {
public SiteSignInLink get() {
- final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter();
- final SiteSignInLinkPanel panel = new SiteSignInLinkPanel(presenter, ws);
+ final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter(builder
+ .getInstance(Session.class));
+ final SiteSignInLinkPanel panel = new SiteSignInLinkPanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
}
@@ -229,8 +239,10 @@
builder.registerProvider(SiteSignOutLink.class, new Provider<SiteSignOutLink>() {
public SiteSignOutLink get() {
- final SiteSignOutLinkPresenter presenter = new SiteSignOutLinkPresenter();
- final SiteSignOutLinkPanel panel = new SiteSignOutLinkPanel(presenter, ws);
+ final SiteSignOutLinkPresenter presenter = new SiteSignOutLinkPresenter(builder
+ .getInstance(Session.class), UserService.App.getInstance(), builder
+ .getInstance(KuneErrorHandler.class));
+ final SiteSignOutLinkPanel panel = new SiteSignOutLinkPanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
}
@@ -281,9 +293,27 @@
}
}, SingletonScope.class);
+ builder.registerProvider(SignIn.class, new Provider<SignIn>() {
+ public SignIn get() {
+ final SignInPresenter presenter = new SignInPresenter(builder.getInstance(Session.class), builder
+ .getInstance(StateManager.class), i18n, UserService.App.getInstance());
+ final SignInPanel view = new SignInPanel(presenter, i18n, ws);
+ presenter.init(view);
+ return presenter;
+ }
+ }, SingletonScope.class);
+
+ builder.registerProvider(NewGroup.class, new Provider<NewGroup>() {
+ public NewGroup get() {
+ final NewGroupPresenter presenter = new NewGroupPresenter(null, i18n);
+ final NewGroupPanel view = new NewGroupPanel(presenter, i18n);
+ presenter.init(view);
+ return presenter;
+ }
+ }, SingletonScope.class);
+
builder.getInstance(SitePublicSpaceLink.class);
builder.getInstance(SiteSignInLink.class);
-
builder.getInstance(SiteSignOutLink.class);
builder.getInstance(SiteNewGroupLink.class);
builder.getInstance(SiteSearch.class);
@@ -346,6 +376,16 @@
}
}, SingletonScope.class);
+ builder.registerProvider(StateManager.class, new Provider<StateManager>() {
+ public StateManager get() {
+ final StateManagerDefault stateManager = new StateManagerDefault(new ContentProviderImpl(
+ ContentService.App.getInstance()), builder.getInstance(Session.class),
+ new HistoryWrapperImpl(), builder.getInstance(WorkspaceManager.class));
+ History.addHistoryListener(stateManager);
+ return stateManager;
+ }
+ }, SingletonScope.class);
+
builder.registerProvider(GroupMembersSummary.class, new Provider<GroupMembersSummary>() {
public GroupMembersSummary get() {
final GroupMembersSummaryPresenterNew presenter = new GroupMembersSummaryPresenterNew(i18n, builder
@@ -387,23 +427,16 @@
}
}, SingletonScope.class);
+ // Register of tokens like "signin", "newgroup", "translate" etcetera
+ builder.getInstance(StateManager.class).addSiteToken(SiteToken.signin.toString(), new Slot<StateToken>() {
+ public void onEvent(final StateToken previousStateToken) {
+ builder.getInstance(SignIn.class).doSignIn(previousStateToken);
+ }
+ });
+
// builder.registerProvider(type, new Provider<>() {},
- // SingletonScope.class);
+ // SingletonScope.class)
- builder.registerProvider(StateManager.class, new Provider<StateManager>() {
- public StateManager get() {
- final Session session = builder.getInstance(Session.class);
- final ContentProviderImpl provider = new ContentProviderImpl(ContentService.App.getInstance());
- final HistoryWrapper historyWrapper = new HistoryWrapperImpl();
- final Application application = builder.getInstance(Application.class);
- final WorkspaceManager wm = builder.getInstance(WorkspaceManager.class);
- final StateManagerDefault stateManager = new StateManagerDefault(provider, application, session,
- historyWrapper, wm);
- History.addHistoryListener(stateManager);
- return stateManager;
- }
- }, SingletonScope.class);
-
}
}
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-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,7 +1,7 @@
/*
*
+ * This file is part of kune.
* 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
@@ -27,6 +27,7 @@
import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import com.calclab.suco.client.signal.Slot;
@@ -67,6 +68,12 @@
void onInitDataReceived(Slot<InitDataDTO> slot);
+ void onUserSignIn(Slot<UserInfoDTO> slot);
+
+ void onUserSignOut(Slot<Object> slot);
+
+ void setCurrentUserInfo(UserInfoDTO currentUserInfo);
+
void setUserHash(String userHash);
}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -29,32 +29,31 @@
import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import com.calclab.suco.client.signal.Signal;
import com.calclab.suco.client.signal.Slot;
-/**
- * RESPONSABILITIES: - Store the user's application state - Generates URLable's
- * historyTokens
- *
- * @author danigb
- *
- */
public class SessionImpl implements Session {
private String userHash;
+ private InitDataDTO initData;
+ private UserInfoDTO currentUserInfo;
private Object[][] languagesArray;
private Object[][] countriesArray;
private Object[][] timezonesArray;
private StateDTO currentState;
private I18nLanguageDTO currentLanguage;
- private InitDataDTO initData;
private final Signal<InitDataDTO> onInitDataReceived;
+ private final Signal<UserInfoDTO> onUserSignIn;
+ private final Signal<Object> onUserSignOut;
public SessionImpl(final String userHash, final I18nLanguageDTO initialLanguage) {
this.userHash = userHash;
currentLanguage = initialLanguage;
languagesArray = null;
this.onInitDataReceived = new Signal<InitDataDTO>("initDataReceived");
+ this.onUserSignIn = new Signal<UserInfoDTO>("onUserSignIn");
+ this.onUserSignOut = new Signal<Object>("onUserSignOut");
}
public List<I18nCountryDTO> getCountries() {
@@ -76,6 +75,10 @@
return currentState;
}
+ public UserInfoDTO getCurrentUserInfo() {
+ return currentUserInfo;
+ }
+
public List<I18nLanguageSimpleDTO> getLanguages() {
return initData.getLanguages();
}
@@ -110,6 +113,14 @@
onInitDataReceived.add(slot);
}
+ public void onUserSignIn(final Slot<UserInfoDTO> slot) {
+ onUserSignIn.add(slot);
+ }
+
+ public void onUserSignOut(final Slot<Object> slot) {
+ onUserSignOut.add(slot);
+ }
+
public void setCurrent(final StateDTO currentState) {
this.currentState = currentState;
}
@@ -122,6 +133,15 @@
this.currentState = currentState;
}
+ public void setCurrentUserInfo(final UserInfoDTO currentUserInfo) {
+ this.currentUserInfo = currentUserInfo;
+ if (currentUserInfo != null) {
+ onUserSignIn.fire(currentUserInfo);
+ } else {
+ onUserSignOut.fire(null);
+ }
+ }
+
public void setInitData(final InitDataDTO initData) {
this.initData = initData;
onInitDataReceived.fire(initData);
@@ -132,9 +152,9 @@
}
private Object[][] mapCountries() {
- final Object[][] objs = new Object[getCountries().size()][1];
+ final Object[][] objs = new Object[initData.getCountries().size()][1];
int i = 0;
- for (final Iterator<I18nCountryDTO> iterator = getCountries().iterator(); iterator.hasNext();) {
+ for (final Iterator<I18nCountryDTO> iterator = initData.getCountries().iterator(); iterator.hasNext();) {
final I18nCountryDTO country = iterator.next();
final Object[] obj = new Object[] { country.getCode(), country.getEnglishName() };
objs[i++] = obj;
@@ -143,9 +163,9 @@
}
private Object[][] mapLangs() {
- final Object[][] objs = new Object[getLanguages().size()][1];
+ final Object[][] objs = new Object[initData.getLanguages().size()][1];
int i = 0;
- for (final Iterator<I18nLanguageSimpleDTO> iterator = getLanguages().iterator(); iterator.hasNext();) {
+ for (final Iterator<I18nLanguageSimpleDTO> iterator = initData.getLanguages().iterator(); iterator.hasNext();) {
final I18nLanguageSimpleDTO language = iterator.next();
final Object[] obj = new Object[] { language.getCode(), language.getEnglishName() };
objs[i++] = obj;
@@ -154,9 +174,9 @@
}
private void mapTimezones() {
- timezonesArray = new Object[getTimezones().length][1];
+ timezonesArray = new Object[initData.getTimezones().length][1];
for (int i = 0; i < getTimezones().length; i++) {
- final Object[] obj = new Object[] { getTimezones()[i] };
+ final Object[] obj = new Object[] { initData.getTimezones()[i] };
timezonesArray[i] = obj;
}
}
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-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -24,16 +24,21 @@
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.google.gwt.user.client.HistoryListener;
public interface StateManager extends HistoryListener {
+ void addSiteToken(String token, Slot<StateToken> whenToken);
+
void gotoToken(String token);
void reload();
void reloadContextAndTitles();
+ void removeSiteToken(String token);
+
void setRetrievedState(StateDTO content);
void setSocialNetwork(SocialNetworkResultDTO socialNet);
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-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -20,65 +20,73 @@
package org.ourproject.kune.platf.client.state;
-import org.ourproject.kune.platf.client.app.Application;
+import java.util.HashMap;
+
import org.ourproject.kune.platf.client.app.HistoryWrapper;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.ParticipationDataDTO;
import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.tool.ClientTool;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
import org.ourproject.kune.workspace.client.sitebar.Site;
import org.ourproject.kune.workspace.client.ui.newtmp.WorkspaceManager;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
+import com.allen_sauer.gwt.log.client.Log;
+import com.calclab.suco.client.signal.Slot;
+
public class StateManagerDefault implements StateManager {
- private final Application app;
- private final ContentProvider provider;
- private final Workspace workspace;
+ private final ContentProvider contentProvider;
private StateDTO oldState;
private final Session session;
private final HistoryWrapper history;
- private final WorkspaceManager ws;
+ private final WorkspaceManager workspaceManager;
+ private final HashMap<String, Slot<StateToken>> siteTokens;
- public StateManagerDefault(final ContentProvider provider, final Application app, final Session session,
- final HistoryWrapper history, final WorkspaceManager ws) {
- this.provider = provider;
- this.app = app;
+ public StateManagerDefault(final ContentProvider contentProvider, final Session session,
+ final HistoryWrapper history, final WorkspaceManager workspaceManager) {
+ this.contentProvider = contentProvider;
this.session = session;
this.history = history;
- this.ws = ws;
- this.workspace = app.getWorkspace();
+ this.workspaceManager = workspaceManager;
this.oldState = null;
+ session.onUserSignIn(new Slot<UserInfoDTO>() {
+ public void onEvent(final UserInfoDTO parameter) {
+ restorePreviousState();
+ }
+ });
+ session.onUserSignOut(new Slot<Object>() {
+ public void onEvent(final Object parameter) {
+ reload();
+ }
+ });
+ siteTokens = new HashMap<String, Slot<StateToken>>();
}
+ public void addSiteToken(final String token, final Slot<StateToken> slot) {
+ siteTokens.put(token, slot);
+ }
+
public void gotoToken(final String token) {
setState(new StateToken(token));
}
public void onHistoryChanged(final String historyToken) {
- String oldStateEncoded = "";
- if (oldState != null) {
- oldStateEncoded = oldState.getStateToken().getEncoded();
- }
- if (historyToken.equals(Site.NEWGROUP_TOKEN)) {
- Site.doNewGroup(oldStateEncoded);
- } else if (historyToken.equals(Site.LOGIN_TOKEN)) {
- Site.doLogin(oldStateEncoded);
- } else if (historyToken.equals(Site.TRANSLATE_TOKEN)) {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.SHOW_TRANSLATOR, null);
- } else if (historyToken.equals(Site.FIXME_TOKEN)) {
+ final Slot<StateToken> tokenSlot = siteTokens.get(historyToken);
+ Log.debug("history token: " + historyToken);
+ if (tokenSlot == null) {
+ onHistoryChanged(new StateToken(historyToken));
+ } else {
+ StateToken stateToken;
if (oldState == null) {
- onHistoryChanged(new StateToken());
+ // Starting with some token like "signin": load defContent also
+ stateToken = new StateToken();
+ onHistoryChanged(stateToken);
} else {
- loadContent(oldState);
+ stateToken = oldState.getStateToken();
}
- } else {
- onHistoryChanged(new StateToken(historyToken));
+ tokenSlot.onEvent(stateToken);
}
}
@@ -92,21 +100,25 @@
}
public void reloadContextAndTitles() {
- provider.getContent(session.getUserHash(), new StateToken(history.getToken()),
+ contentProvider.getContent(session.getUserHash(), new StateToken(history.getToken()),
new AsyncCallbackSimple<StateDTO>() {
public void onSuccess(final StateDTO newStateDTO) {
loadContextOnly(newStateDTO);
oldState = newStateDTO;
- workspace.getContentTitleComponent().setState(oldState);
- workspace.getContentSubTitleComponent().setState(oldState);
+ // workspace.getContentTitleComponent().setState(oldState);
+ // workspace.getContentSubTitleComponent().setState(oldState);
Site.hideProgress();
}
});
}
+ public void removeSiteToken(final String token) {
+ siteTokens.remove(token);
+ }
+
public void setRetrievedState(final StateDTO content) {
final StateToken state = content.getStateToken();
- provider.cache(state, content);
+ contentProvider.cache(state, content);
setState(state);
}
@@ -120,7 +132,7 @@
final ParticipationDataDTO userParticipation = socialNet.getUserParticipation();
state.setGroupMembers(groupMembers);
state.setParticipation(userParticipation);
- ws.setSocialNetwork(state);
+ workspaceManager.setSocialNetwork(state);
}
}
@@ -130,46 +142,55 @@
private void loadContent(final StateDTO state) {
session.setCurrent(state);
- final GroupDTO group = state.getGroup();
- app.setGroupState(group.getShortName());
- final boolean isAdmin = state.getGroupRights().isAdministrable();
- if (isAdmin) {
- workspace.getThemeMenuComponent().setVisible(true);
- } else {
- workspace.getThemeMenuComponent().setVisible(false);
- }
- workspace.showGroup(group, isAdmin);
+ workspaceManager.setState(state);
+ // final GroupDTO group = state.getGroup();
+ // app.setGroupState(group.getShortName());
+ // final boolean isAdmin = state.getGroupRights().isAdministrable();
+ // if (isAdmin) {
+ // workspace.getThemeMenuComponent().setVisible(true);
+ // } else {
+ // workspace.getThemeMenuComponent().setVisible(false);
+ // }
+ // workspace.showGroup(group, isAdmin);
- final String toolName = state.getToolName();
- workspace.setTool(toolName);
+ // final String toolName = state.getToolName();
+ // workspace.setTool(toolName);
- final ClientTool clientTool = app.getTool(toolName);
- clientTool.setContent(state);
- clientTool.setContext(state);
- ws.setState(state);
- workspace.getContentTitleComponent().setState(state);
- workspace.getContentSubTitleComponent().setState(state);
- workspace.getContentBottomToolBarComponent().setRate(state, session.isLogged());
- workspace.setContent(clientTool.getContent());
- workspace.setContext(clientTool.getContext());
- workspace.getLicenseComponent().setLicense(state);
+ // final ClientTool clientTool = app.getTool(toolName);
+ // clientTool.setContent(state);
+ // clientTool.setContext(state);
+ // workspace.getContentTitleComponent().setState(state);
+ // workspace.getContentSubTitleComponent().setState(state);
+ // workspace.getContentBottomToolBarComponent().setRate(state,
+ // session.isLogged());
+ // workspace.setContent(clientTool.getContent());
+ // workspace.setContext(clientTool.getContext());
+ // workspace.getLicenseComponent().setLicense(state);
Site.hideProgress();
}
private void loadContextOnly(final StateDTO state) {
session.setCurrent(state);
- final String toolName = state.getToolName();
- final ClientTool clientTool = app.getTool(toolName);
- clientTool.setContext(state);
- workspace.setContext(clientTool.getContext());
+ // /final String toolName = state.getToolName();
+ // /final ClientTool clientTool = app.getTool(toolName);
+ // /clientTool.setContext(state);
+ // /workspace.setContext(clientTool.getContext());
}
private void onHistoryChanged(final StateToken newState) {
- provider.getContent(session.getUserHash(), newState, new AsyncCallbackSimple<StateDTO>() {
+ contentProvider.getContent(session.getUserHash(), newState, new AsyncCallbackSimple<StateDTO>() {
public void onSuccess(final StateDTO newStateDTO) {
loadContent(newStateDTO);
oldState = newStateDTO;
}
});
}
+
+ private void restorePreviousState() {
+ if (oldState == null) {
+ onHistoryChanged(new StateToken());
+ } else {
+ loadContent(oldState);
+ }
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -35,17 +35,10 @@
import org.ourproject.kune.workspace.client.actions.DetachFromExtensibleWidgetAction;
import org.ourproject.kune.workspace.client.actions.DisableRateItAction;
import org.ourproject.kune.workspace.client.actions.EnableRateItAction;
-import org.ourproject.kune.workspace.client.actions.InitAction;
-import org.ourproject.kune.workspace.client.actions.LoggedInAction;
-import org.ourproject.kune.workspace.client.actions.LoggedOutAction;
import org.ourproject.kune.workspace.client.actions.OnlyCheckUserSessionAction;
import org.ourproject.kune.workspace.client.actions.RateContentAction;
import org.ourproject.kune.workspace.client.actions.RecalculateWorkspaceAction;
import org.ourproject.kune.workspace.client.actions.ReloadContextAction;
-import org.ourproject.kune.workspace.client.actions.StopAction;
-import org.ourproject.kune.workspace.client.actions.UserLoginAction;
-import org.ourproject.kune.workspace.client.actions.UserLogoutAction;
-import org.ourproject.kune.workspace.client.actions.UserRegisterAction;
import org.ourproject.kune.workspace.client.actions.i18n.DoTranslationAction;
import org.ourproject.kune.workspace.client.actions.i18n.GetLexiconAction;
import org.ourproject.kune.workspace.client.actions.i18n.GetTranslationAction;
@@ -81,10 +74,6 @@
}
public void configure(final Register register) {
- register.addAction(WorkspaceEvents.START_APP, new InitAction(session, dispacher, workspace));
- register.addAction(WorkspaceEvents.STOP_APP, new StopAction(workspace));
- register.addAction(WorkspaceEvents.USER_LOGGED_IN, new LoggedInAction(session, stateManager, i18n));
- register.addAction(WorkspaceEvents.USER_LOGGED_OUT, new LoggedOutAction(session, stateManager));
register.addAction(WorkspaceEvents.ONLY_CHECK_USER_SESSION, new OnlyCheckUserSessionAction(session));
register.addAction(PlatformEvents.ATTACH_TO_EXTENSIBLE_WIDGET, new AttachToExtensibleWidgetAction(workspace));
register.addAction(PlatformEvents.DETACH_FROM_EXTENSIBLE_WIDGET,
@@ -115,9 +104,6 @@
register.addAction(WorkspaceEvents.SHOW_TRANSLATOR, new ShowTranslatorAction(session, workspace, i18n));
register.addAction(WorkspaceEvents.DO_TRANSLATION, new DoTranslationAction(session, i18n));
register.addAction(WorkspaceEvents.GET_LEXICON, new GetLexiconAction(i18n));
- register.addAction(WorkspaceEvents.USER_LOGIN, new UserLoginAction());
- register.addAction(WorkspaceEvents.USER_LOGOUT, new UserLogoutAction(session));
- register.addAction(WorkspaceEvents.USER_REGISTER, new UserRegisterAction());
register.addAction(WorkspaceEvents.CREATE_NEW_GROUP, new CreateNewGroupAction(session));
register.addAction(WorkspaceEvents.RELOAD_CONTEXT, new ReloadContextAction(stateManager));
register.addAction(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, new RecalculateWorkspaceAction(workspace));
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -21,12 +21,7 @@
package org.ourproject.kune.workspace.client;
public interface WorkspaceEvents {
- public static final String START_APP = "platf.StartApplication";
- public static final String STOP_APP = "platf.StopApplication";
- public static final String USER_LOGGED_IN = "ws.UserLoggedIn";
- public static final String USER_LOGGED_OUT = "ws.UserLoggedOut";
public static final String ONLY_CHECK_USER_SESSION = "ws_OnlyCheckUserSession";
- public static final String INIT_DATA_RECEIVED = "ws.InitDataReceived";
public static final String REQ_JOIN_GROUP = "ws.RequestJoinGroup";
public static final String DEL_MEMBER = "ws.DeleteMember";
public static final String DENY_JOIN_GROUP = "ws.DenyJoinGroup";
@@ -48,9 +43,6 @@
public static final String SHOW_SEARCHER = "ws.ShowSearcher";
public static final String GET_TRANSLATION = "i18n.GetTranslation";
public static final String DO_TRANSLATION = "i18n.doTranslation";
- public static final String USER_LOGIN = "ws.UserLogin";
- public static final String USER_LOGOUT = "ws.UserLogout";
- public static final String USER_REGISTER = "ws.UserRegister";
public static final String CREATE_NEW_GROUP = "ws.CreateNewGroup";
public static final String RELOAD_CONTEXT = "ws.ReoloadContext";
public static final String WS_SPLITTER_STARTRESIZING = "ws.SplitterStartResizing";
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/InitAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/InitAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/InitAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,94 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dispatch.Dispatcher;
-import org.ourproject.kune.platf.client.dto.InitDataDTO;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-import org.ourproject.kune.platf.client.rpc.SiteService;
-import org.ourproject.kune.platf.client.rpc.SiteServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.ui.WindowUtils;
-import org.ourproject.kune.platf.client.utils.PrefetchUtilities;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-import com.allen_sauer.gwt.log.client.Log;
-import com.google.gwt.user.client.Timer;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class InitAction implements Action<Object> {
- private final Session session;
- private final Dispatcher dispatcher;
- private final Workspace workspace;
-
- public InitAction(final Session session, final Dispatcher dispatcher, final Workspace workspace) {
- this.session = session;
- this.dispatcher = dispatcher;
- this.workspace = workspace;
- }
-
- public void execute(final Object value) {
- PrefetchUtilities.preFetchImpImages();
- getInitData();
- dispatcher.fire(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, null);
- final Timer prefetchTimer = new Timer() {
- public void run() {
- PrefetchUtilities.doTasksDeferred(workspace);
- }
- };
- prefetchTimer.schedule(20000);
- }
-
- private void getInitData() {
- final SiteServiceAsync server = SiteService.App.getInstance();
- server.getInitData(session.getUserHash(), new AsyncCallback<InitDataDTO>() {
- public void onFailure(final Throwable error) {
- Site.error("Error fetching initial data");
- Log.debug(error.getMessage());
- }
-
- public void onSuccess(final InitDataDTO initData) {
- checkChatDomain(initData.getChatDomain());
- session.setInitData(initData);
- final UserInfoDTO currentUser = initData.getUserInfo();
- // use signals:
- dispatcher.fire(WorkspaceEvents.INIT_DATA_RECEIVED, initData);
- if (currentUser == null) {
- dispatcher.fire(WorkspaceEvents.USER_LOGGED_OUT, null);
- } else {
- dispatcher.fire(WorkspaceEvents.USER_LOGGED_IN, currentUser);
- }
- }
-
- private void checkChatDomain(final String chatDomain) {
- final String httpDomain = WindowUtils.getLocation().getHostName();
- if (!chatDomain.equals(httpDomain)) {
- Log.error("Your http domain (" + httpDomain + ") is different from the chat domain (" + chatDomain
- + "). This will produce problems with the chat functionality. "
- + "Check kune.properties on the server.");
- }
- }
- });
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedInAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedInAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedInAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,65 +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.workspace.client.actions;
-
-import java.util.Date;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-
-import com.google.gwt.user.client.Cookies;
-
-public class LoggedInAction implements Action<UserInfoDTO> {
- private final Session session;
- private final StateManager stateManager;
- private final I18nUITranslationService i18n;
-
- public LoggedInAction(final Session session, final StateManager stateManager, final I18nUITranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final UserInfoDTO value) {
- onLoggedIn(value);
- }
-
- private void onLoggedIn(final UserInfoDTO userInfoDTO) {
- setCookie(userInfoDTO);
- session.setUserHash(userInfoDTO.getUserHash());
- // FIXME ite.sitebar.showLoggedUser(userInfoDTO);
- final I18nLanguageDTO language = userInfoDTO.getLanguage();
- stateManager.reload();
- i18n.changeCurrentLanguage(language.getCode());
- session.setCurrentLanguage(language);
- }
-
- private void setCookie(final UserInfoDTO userInfoDTO) {
- // http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ
- final String sessionId = userInfoDTO.getUserHash();
- final long duration = Session.SESSION_DURATION;
- final Date expires = new Date(System.currentTimeMillis() + duration);
- Cookies.setCookie("userHash", sessionId, expires, null, "/", false);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedOutAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedOutAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedOutAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,52 +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.workspace.client.actions;
-
-import java.util.Date;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-
-import com.google.gwt.user.client.Cookies;
-
-@SuppressWarnings("unchecked")
-public class LoggedOutAction implements Action {
-
- private final Session session;
- private final StateManager stateManager;
-
- public LoggedOutAction(final Session session, final StateManager stateManager) {
- this.session = session;
- this.stateManager = stateManager;
- }
-
- public void execute(final Object value) {
- // FIXME: Remove cookie doesn't works in all browsers, know issue:
- // http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/ded8…
- // http://code.google.com/p/google-web-toolkit/issues/detail?id=1735&q=removeC…
- Cookies.removeCookie("userHash");
- // Workaround:
- Cookies.setCookie("userHash", null, new Date(0), null, "/", false);
- session.setUserHash(null);
- // FIXME Site.sitebar.showLoggedUser(null);
- stateManager.reload();
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/StopAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/StopAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/StopAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-@SuppressWarnings("unchecked")
-public class StopAction implements Action {
-
- private final Workspace workspace;
-
- public StopAction(final Workspace workspace) {
- this.workspace = workspace;
- }
-
- public void execute(final Object value) {
- onStop();
- }
-
- private void onStop() {
- workspace.setVisible(false);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLoginAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLoginAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLoginAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.UserDTO;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-import org.ourproject.kune.platf.client.rpc.ParamCallback;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class UserLoginAction implements Action<ParamCallback<UserDTO, UserInfoDTO>> {
-
- public void execute(final ParamCallback<UserDTO, UserInfoDTO> paramCall) {
- onLogin(paramCall.getParam(), paramCall.getCallback());
- }
-
- private void onLogin(final UserDTO user, final AsyncCallback<UserInfoDTO> callback) {
- UserServiceAsync siteBarService = UserService.App.getInstance();
- siteBarService.login(user.getShortName(), user.getPassword(), callback);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLogoutAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLogoutAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLogoutAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,46 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class UserLogoutAction implements Action<AsyncCallback<Object>> {
-
- private final Session session;
-
- public UserLogoutAction(final Session session) {
- this.session = session;
- }
-
- @SuppressWarnings("unchecked")
- public void execute(final AsyncCallback<Object> value) {
- onLogout(value);
- }
-
- private void onLogout(final AsyncCallback<Object> callback) {
- UserServiceAsync userService = UserService.App.getInstance();
- userService.logout(session.getUserHash(), callback);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserRegisterAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserRegisterAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserRegisterAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,42 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.UserDTO;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-import org.ourproject.kune.platf.client.rpc.ParamCallback;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class UserRegisterAction implements Action<ParamCallback<UserDTO, UserInfoDTO>> {
-
- @SuppressWarnings("unchecked")
- public void execute(final ParamCallback<UserDTO, UserInfoDTO> paramCall) {
- onRegister(paramCall.getParam(), paramCall.getCallback());
- }
-
- private void onRegister(final UserDTO user, final AsyncCallback<UserInfoDTO> callback) {
- final UserServiceAsync userService = UserService.App.getInstance();
- userService.createUser(user, callback);
- }
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -42,9 +42,8 @@
super.setContent(vp);
super.setContentVisible(true);
super.setBorderStylePrimaryName("k-dropdownouter-summary");
- addStyleName("kune-Margin-Medium-tl");
+ addStyleName("kune-Margin-Medium-t");
ws.getEntitySummary().addInSummary(this);
- ws.unMask();
}
public void setComment(final String comment) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -28,26 +28,13 @@
import com.calclab.suco.client.container.Provider;
public class Site {
- public static final String LOGIN_TOKEN = "login";
- public static final String NEWGROUP_TOKEN = "newgroup";
- public static final String FIXME_TOKEN = "fixme";
- public static final String TRANSLATE_TOKEN = "translate";
+ public static final String USERHASH = "userHash";
public static final String IN_DEVELOPMENT = " (in development)";
private static I18nTranslationService i18n;
private static SiteProgress progress;
private static Provider<SiteMessage> siteMessageProvider;
@Deprecated
- public static void doLogin(final String returnToken) {
- // sitebar.doLogin(returnToken);
- }
-
- @Deprecated
- public static void doLogout() {
- // sitebar.doLogout();
- }
-
- @Deprecated
public static void doNewGroup(final String returnToken) {
// sitebar.doNewGroup(returnToken);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -33,13 +33,10 @@
import org.ourproject.kune.workspace.client.newgroup.NewGroupListener;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
import org.ourproject.kune.workspace.client.newgroup.ui.NewGroupPanel;
-import org.ourproject.kune.workspace.client.sitebar.login.Login;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginListener;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginPanel;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginPresenter;
+import org.ourproject.kune.workspace.client.sitebar.login.SignIn;
public class SiteBarFactory {
- private static Login login;
+ private static SignIn login;
private static NewGroup newGroup;
private static Session session;
private static I18nUITranslationService i18n;
@@ -60,16 +57,6 @@
return presenter;
}
- public static Login getLoginForm(final LoginListener listener) {
- if (login == null) {
- final LoginPresenter presenter = new LoginPresenter(session, listener, i18n);
- final LoginPanel view = new LoginPanel(presenter, i18n);
- presenter.init(view);
- login = presenter;
- }
- return login;
- }
-
public static NewGroup getNewGroupForm(final NewGroupListener listener) {
if (newGroup == null) {
final NewGroupPresenter presenter = new NewGroupPresenter(listener, i18n);
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteToken.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteToken.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteToken.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.workspace.client.sitebar;
+
+public enum SiteToken {
+ signin, newgroup, translate
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -31,8 +31,8 @@
import org.ourproject.kune.workspace.client.newgroup.ui.NewGroupPanel;
import org.ourproject.kune.workspace.client.sitebar.Site;
import org.ourproject.kune.workspace.client.sitebar.SiteBarFactory;
-import org.ourproject.kune.workspace.client.sitebar.login.Login;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginPanel;
+import org.ourproject.kune.workspace.client.sitebar.SiteToken;
+import org.ourproject.kune.workspace.client.sitebar.login.SignInPanel;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DOM;
@@ -75,7 +75,7 @@
private TextBox searchTextBox;
private final Label logoutLabel;
- private LoginPanel loginPanel;
+ private SignInPanel signInPanel;
private final Images img;
private final MenuBar optionsSubmenu;
private MenuItem linkHelpInTrans;
@@ -157,14 +157,14 @@
gotoPublic.addStyleName("kune-SiteBarPanel-LabelLink");
contentNoPublic.addStyleName("kune-Margin-Medium-r");
newGroupHyperlink.setText(i18n.t("Create New Group"));
- newGroupHyperlink.setTargetHistoryToken(Site.NEWGROUP_TOKEN);
+ newGroupHyperlink.setTargetHistoryToken(SiteToken.newgroup.toString());
loggedUserHyperlink.setVisible(false);
pipeSeparatorHtml.setHTML("|");
pipeSeparatorHtml.setStyleName("kune-SiteBarPanel-Separator");
pipeSeparatorHtml2.setHTML("|");
pipeSeparatorHtml2.setStyleName("kune-SiteBarPanel-Separator");
loginHyperlink.setText(i18n.t("Sign in to collaborate"));
- loginHyperlink.setTargetHistoryToken(Site.LOGIN_TOKEN);
+ loginHyperlink.setTargetHistoryToken(SiteToken.signin.toString());
logoutLabel.setText(i18n.t("Sign out"));
logoutLabel.addStyleName("kune-SiteBarPanel-LabelLink");
options.addItem(i18n.t("Options"), true, optionsSubmenu);
@@ -186,7 +186,7 @@
}
public void centerLoginDialog() {
- loginPanel.center();
+ signInPanel.center();
}
public void centerNewGroupDialog() {
@@ -206,7 +206,7 @@
}
public void hideLoginDialog() {
- loginPanel.hide();
+ signInPanel.hide();
}
public void hideNewGroupDialog() {
@@ -235,7 +235,7 @@
public void restoreLoginLink() {
loginHyperlink.setVisible(true);
loggedUserHyperlink.setVisible(false);
- loginHyperlink.setTargetHistoryToken(Site.LOGIN_TOKEN);
+ loginHyperlink.setTargetHistoryToken(SiteToken.signin.toString());
}
public void setContentGotoPublicUrl(final String publicUrl) {
@@ -308,9 +308,9 @@
}
public void showLoginDialog() {
- final Login login = SiteBarFactory.getLoginForm(presenter);
- loginPanel = (LoginPanel) login.getView();
- loginPanel.show();
+ // final SignIn login = SiteBarFactory.getLoginForm(presenter);
+ // signInPanel = (SignInPanel) login.getView();
+ // signInPanel.show();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -33,14 +33,13 @@
import org.ourproject.kune.workspace.client.WorkspaceEvents;
import org.ourproject.kune.workspace.client.newgroup.NewGroupListener;
import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginListener;
import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
-public class SiteBarPresenter implements SiteBar, LoginListener, NewGroupListener {
+public class SiteBarPresenter implements SiteBar, NewGroupListener {
private SiteBarView view;
private final SiteBarListener listener;
@@ -94,8 +93,7 @@
listener.onUserLoggedOut();
}
};
-
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.USER_LOGOUT, callback);
+ UserService.App.getInstance().logout(session.getUserHash(), callback);
}
public void doNewGroup(final String previousTokenOrig) {
@@ -218,12 +216,6 @@
view.unMask();
}
- public void userLoggedIn(final UserInfoDTO userInfoDTO) {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.USER_LOGGED_IN, userInfoDTO);
- view.hideLoginDialog();
- returnToPreviousState();
- }
-
protected void onSearchFocus() {
view.setTextSearchBig();
view.clearSearchText();
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/Login.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/Login.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/Login.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,33 +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.workspace.client.sitebar.login;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface Login {
-
- public void onCancel();
-
- public void doLogin();
-
- public View getView();
-
- public void doRegister();
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginForm.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginForm.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,46 +0,0 @@
-package org.ourproject.kune.workspace.client.sitebar.login;
-
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.ui.dialogs.DefaultForm;
-
-import com.gwtext.client.widgets.form.TextField;
-
-public class LoginForm extends DefaultForm {
- private static final String NICKOREMAIL_FIELD = "nickOrEmail";
- private static final String PASSWORD_FIELD = "password";
-
- private final TextField loginNickOrEmailField;
- private final TextField loginPassField;
-
- public LoginForm(final I18nTranslationService i18n) {
- loginNickOrEmailField = new TextField();
- loginNickOrEmailField.setFieldLabel(i18n.t("Nickname or email"));
- loginNickOrEmailField.setName(NICKOREMAIL_FIELD);
- loginNickOrEmailField.setWidth(DEF_FIELD_WIDTH);
- loginNickOrEmailField.setAllowBlank(false);
- loginNickOrEmailField.setValidationEvent(false);
- super.add(loginNickOrEmailField);
-
- loginPassField = new TextField();
- loginPassField.setFieldLabel(i18n.t("Password"));
- loginPassField.setName(PASSWORD_FIELD);
- loginPassField.setWidth(DEF_FIELD_WIDTH);
- loginPassField.setPassword(true);
- loginPassField.setAllowBlank(false);
- loginPassField.setValidationEvent(false);
- super.add(loginPassField);
- }
-
- public void focusLogin() {
- loginNickOrEmailField.focus();
- }
-
- public String getLoginPassword() {
- return loginPassField.getValueAsString();
- }
-
- public String getNickOrEmail() {
- return loginNickOrEmailField.getValueAsString();
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginListener.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginListener.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginListener.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,30 +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.workspace.client.sitebar.login;
-
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-
-public interface LoginListener {
- void userLoggedIn(UserInfoDTO user);
-
- void onLoginCancelled();
-
- void onLoginClose();
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,344 +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.workspace.client.sitebar.login;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.ui.dialogs.BasicDialog;
-import org.ourproject.kune.platf.client.ui.dialogs.InfoDialog;
-import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.sitebar.msg.SimpleMessagePanel;
-
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.DeferredCommand;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.Widget;
-import com.gwtext.client.core.EventObject;
-import com.gwtext.client.core.RegionPosition;
-import com.gwtext.client.widgets.Button;
-import com.gwtext.client.widgets.Component;
-import com.gwtext.client.widgets.Panel;
-import com.gwtext.client.widgets.TabPanel;
-import com.gwtext.client.widgets.event.ButtonListenerAdapter;
-import com.gwtext.client.widgets.event.PanelListenerAdapter;
-import com.gwtext.client.widgets.event.WindowListenerAdapter;
-import com.gwtext.client.widgets.form.Field;
-import com.gwtext.client.widgets.layout.BorderLayout;
-import com.gwtext.client.widgets.layout.BorderLayoutData;
-import com.gwtext.client.widgets.layout.FitLayout;
-
-public class LoginPanel implements LoginView, View {
- private class MessagePanel extends Panel {
- private final SimpleMessagePanel messagesPanel;
-
- public MessagePanel() {
- setPaddings(10);
- setBorder(false);
- setHeight(60);
- messagesPanel = new SimpleMessagePanel();
- messagesPanel.setMessage("", SiteErrorType.info, SiteErrorType.error);
- add(messagesPanel);
- }
-
- public void hide() {
- messagesPanel.hide();
- super.hide();
- }
-
- public void setMessage(final String message, final SiteErrorType lastMessageType, final SiteErrorType type) {
- messagesPanel.setMessage(message, lastMessageType, type);
- }
-
- public void show() {
- messagesPanel.show();
- super.show();
- }
- }
-
- private BasicDialog dialog;
- private final LoginPresenter presenter;
- private LoginForm signInForm;
- private RegisterForm registerForm;
- private MessagePanel messagesSignInPanel;
- private InfoDialog welcomeDialog;
- private TabPanel centerPanel;
- private MessagePanel messagesRegisterPanel;
- private final I18nTranslationService i18n;
-
- public LoginPanel(final LoginPresenter initialPresenter, final I18nTranslationService i18n) {
- this.i18n = i18n;
- Field.setMsgTarget("side");
- this.presenter = initialPresenter;
- createPanel();
- }
-
- public void center() {
- dialog.center();
- }
-
- public String getCountry() {
- return registerForm.getCountry();
- }
-
- public String getEmail() {
- return registerForm.getEmail();
- }
-
- public String getLanguage() {
- return registerForm.getLanguage();
- }
-
- public String getLoginPassword() {
- return signInForm.getLoginPassword();
- }
-
- public String getLongName() {
- return registerForm.getLongName();
- }
-
- public String getNickOrEmail() {
- return signInForm.getNickOrEmail();
- }
-
- public String getRegisterPassword() {
- return registerForm.getRegisterPassword();
- }
-
- public String getRegisterPasswordDup() {
- return registerForm.getRegisterPasswordDup();
- }
-
- public String getShortName() {
- return registerForm.getShortName();
- }
-
- public String getTimezone() {
- return registerForm.getTimezone();
- }
-
- public void hide() {
- dialog.hide();
- }
-
- public void hideMessages() {
- messagesSignInPanel.hide();
- if (messagesRegisterPanel != null) {
- messagesRegisterPanel.hide();
- }
- renderDialogIfNeeded();
- }
-
- public boolean isRegisterFormValid() {
- return registerForm.isValid();
- }
-
- public boolean isSignInFormValid() {
- return signInForm.isValid();
- }
-
- public void maskProcessing() {
- mask(i18n.t("Processing"));
- }
-
- public void reset() {
- DeferredCommand.addCommand(new Command() {
- public void execute() {
- signInForm.reset();
- if (registerForm != null) {
- registerForm.reset();
- }
- }
- });
- }
-
- public void setRegisterMessage(final String message, final SiteErrorType type) {
- messagesRegisterPanel.setMessage(message, type, type);
- messagesRegisterPanel.show();
- renderDialogIfNeeded();
- }
-
- public void setSignInMessage(final String message, final SiteErrorType type) {
- messagesSignInPanel.setMessage(message, type, type);
- messagesSignInPanel.show();
- renderDialogIfNeeded();
- }
-
- public void show() {
- centerPanel.activate(0);
- dialog.setVisible(true);
- dialog.show();
- Site.hideProgress();
- dialog.focus();
- signInForm.focusLogin();
- }
-
- public void showWelcolmeDialog() {
- if (welcomeDialog == null) {
- welcomeDialog = new InfoDialog(i18n.t("Welcome"), i18n.t("Thanks for registering"), i18n
- .t("Now you can participate more actively in this site with other people and groups. "
- + "You can also use your personal space to publish contents. "
- + "Your email is not verified, please follow the instructions you will receive by email."),
- i18n.t("Ok"), true, true, 400, 270);
- }
- welcomeDialog.show();
- }
-
- public void unMask() {
- dialog.enable();
- }
-
- private void confPanel(final Panel panel) {
- // panel.setLayout(new FormLayout());
- // panel.setAutoWidth(true);
- // anel.setAutoHeight(true);
- }
-
- private Panel createNoAccountRegister() {
- final Panel noAccRegisterPanel = new Panel();
- noAccRegisterPanel.setBorder(false);
- noAccRegisterPanel.setMargins(0, 90, 0, 0);
- final Label dontHaveAccountLabel = new Label(i18n.t("Don't have an account?"));
- final Label registerLabel = new Label(i18n.t("Create one."));
- registerLabel.addClickListener(new ClickListener() {
- public void onClick(final Widget arg0) {
- centerPanel.activate(1);
- }
- });
- registerLabel.addStyleName("kune-Margin-Medium-l");
- registerLabel.addStyleName("kune-link");
- noAccRegisterPanel.add(dontHaveAccountLabel);
- noAccRegisterPanel.add(registerLabel);
- return noAccRegisterPanel;
- }
-
- private void createPanel() {
- dialog = new BasicDialog(i18n.t("Sign in"), true, false, 370, 400);
- dialog.setLayout(new FitLayout());
- final Panel dialogPanel = new Panel();
- dialogPanel.setLayout(new BorderLayout());
- // dialog.setAutoHeight(false);
- // dialog.setAutoWidth(false);
- // dialog.setAutoHeight(true);
- // dialog.setAutoWidth(true);
- dialogPanel.setHeight("100%");
- dialogPanel.setWidth("auto");
- // dialog.setCollapsible(false);
-
- centerPanel = new TabPanel();
- centerPanel.setActiveTab(0);
- // centerPanel.setAutoWidth(true);
- // centerPanel.setAutoHeight(true);
- centerPanel.setClosable(false);
-
- final Panel signInPanel = new Panel(i18n.t("Sign in"));
- confPanel(signInPanel);
- signInForm = new LoginForm(i18n);
- signInPanel.add(signInForm.getForm());
- signInPanel.add(createNoAccountRegister());
- messagesSignInPanel = new MessagePanel();
- signInPanel.add(messagesSignInPanel);
-
- final Panel registerPanel = new Panel(i18n.t("Register"));
- confPanel(registerPanel);
-
- centerPanel.add(signInPanel);
- centerPanel.add(registerPanel);
- dialogPanel.add(centerPanel, new BorderLayoutData(RegionPosition.CENTER));
- dialog.add(dialogPanel);
-
- final Button signInBtn = new Button(i18n.t("Sign in"));
- signInBtn.addListener(new ButtonListenerAdapter() {
- public void onClick(final Button button, final EventObject e) {
- signInForm.validate();
- if (signInForm.isValid()) {
- presenter.doLogin();
- }
- }
- });
- dialog.addButton(signInBtn);
-
- final Button registerBtn = new Button(i18n.t("Register"));
- registerBtn.addListener(new ButtonListenerAdapter() {
- public void onClick(final Button button, final EventObject e) {
- registerForm.validate();
- if (registerForm.isValid()) {
- presenter.doRegister();
- }
- }
- });
- dialog.addButton(registerBtn);
- registerBtn.hide();
-
- final Button cancel = new Button();
- dialog.addButton(cancel);
- cancel.setText(i18n.tWithNT("Cancel", "used in button"));
- cancel.addListener(new ButtonListenerAdapter() {
- public void onClick(final Button button, final EventObject e) {
- presenter.onCancel();
- }
- });
-
- signInPanel.addListener(new PanelListenerAdapter() {
- public void onActivate(final Panel panel) {
- dialog.setTitle(i18n.t("Sign in"));
- registerBtn.hide();
- signInBtn.show();
- }
- });
-
- registerPanel.addListener(new PanelListenerAdapter() {
- public void onActivate(final Panel panel) {
- if (registerForm == null) {
- maskProcessing();
- registerForm = new RegisterForm(presenter, i18n);
- registerPanel.add(registerForm.getForm());
- messagesRegisterPanel = new MessagePanel();
- registerPanel.add(messagesRegisterPanel);
- messagesRegisterPanel.hide();
- renderDialogIfNeeded();
- unMask();
- }
- dialog.setTitle(i18n.t("Register"));
- signInBtn.hide();
- registerBtn.show();
- }
- });
-
- dialog.addListener(new WindowListenerAdapter() {
- public void onHide(final Component component) {
- presenter.onClose();
- }
- });
- hideMessages();
- renderDialogIfNeeded();
- }
-
- private void mask(final String message) {
- dialog.disable();
- }
-
- private void renderDialogIfNeeded() {
- if (dialog.isRendered()) {
- dialog.doLayout();
- }
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPresenter.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPresenter.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,186 +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.workspace.client.sitebar.login;
-
-import org.ourproject.kune.platf.client.PlatformEvents;
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.platf.client.dto.I18nCountryDTO;
-import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
-import org.ourproject.kune.platf.client.dto.TimeZoneDTO;
-import org.ourproject.kune.platf.client.dto.UserDTO;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-import org.ourproject.kune.platf.client.errors.EmailAddressInUseException;
-import org.ourproject.kune.platf.client.errors.GroupNameInUseException;
-import org.ourproject.kune.platf.client.errors.UserAuthException;
-import org.ourproject.kune.platf.client.rpc.ParamCallback;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
-import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-import com.calclab.emite.client.im.roster.RosterManager.SubscriptionMode;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class LoginPresenter implements Login {
-
- LoginView view;
-
- final LoginListener listener;
-
- private final Session session;
-
- private final I18nTranslationService i18n;
-
- public LoginPresenter(final Session session, final LoginListener listener, final I18nTranslationService i18n) {
- this.session = session;
- this.listener = listener;
- this.i18n = i18n;
- }
-
- public void doLogin() {
- if (view.isSignInFormValid()) {
- view.maskProcessing();
-
- final String nickOrEmail = view.getNickOrEmail();
- final String passwd = view.getLoginPassword();
-
- final UserDTO user = new UserDTO();
- user.setShortName(nickOrEmail);
- user.setPassword(passwd);
-
- final AsyncCallback<UserInfoDTO> callback = new AsyncCallback<UserInfoDTO>() {
- public void onFailure(final Throwable caught) {
- view.unMask();
- Site.hideProgress();
- try {
- throw caught;
- } catch (final UserAuthException e) {
- view.setSignInMessage(i18n.t("Incorrect nickname/email or password"), SiteErrorType.error);
- } catch (final Throwable e) {
- view.setSignInMessage("Error in login", SiteErrorType.error);
- GWT.log("Other kind of exception in LoginFormPresenter/doLogin", null);
- throw new RuntimeException();
- }
- }
-
- public void onSuccess(final UserInfoDTO response) {
- listener.userLoggedIn(response);
- view.unMask();
- }
- };
-
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.USER_LOGIN,
- new ParamCallback<UserDTO, UserInfoDTO>(user, callback));
- }
- }
-
- public void doRegister() {
- if (view.isRegisterFormValid()) {
- view.maskProcessing();
-
- final I18nLanguageDTO language = new I18nLanguageDTO();
- language.setCode(view.getLanguage());
-
- final I18nCountryDTO country = new I18nCountryDTO();
- country.setCode(view.getCountry());
-
- final TimeZoneDTO timezone = new TimeZoneDTO();
- timezone.setId(view.getTimezone());
-
- final UserDTO user = new UserDTO(view.getLongName(), view.getShortName(), view.getRegisterPassword(), view
- .getEmail(), language, country, timezone, null, true, SubscriptionMode.manual, "blue");
- final AsyncCallback<UserInfoDTO> callback = new AsyncCallback<UserInfoDTO>() {
- public void onFailure(final Throwable caught) {
- view.unMask();
- try {
- throw caught;
- } catch (final EmailAddressInUseException e) {
- view.setRegisterMessage(i18n.t("This email in in use by other person, try with another."),
- SiteErrorType.error);
- } catch (final GroupNameInUseException e) {
- view.setRegisterMessage(i18n.t("This name in already in use, try with a different name."),
- SiteErrorType.error);
- } catch (final Throwable e) {
- view.setRegisterMessage(i18n.t("Error during registration."), SiteErrorType.error);
- GWT.log("Other kind of exception in user registration", null);
- throw new RuntimeException();
- }
- }
-
- public void onSuccess(final UserInfoDTO userInfoDTO) {
- listener.userLoggedIn(userInfoDTO);
- view.unMask();
- view.showWelcolmeDialog();
- DefaultDispatcher.getInstance().fire(PlatformEvents.GOTO, userInfoDTO.getShortName());
- }
- };
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.USER_REGISTER,
- new ParamCallback<UserDTO, UserInfoDTO>(user, callback));
- }
- }
-
- public Object[][] getCountries() {
- return session.getCountriesArray();
- }
-
- public I18nLanguageDTO getCurrentLanguage() {
- return session.getCurrentLanguage();
- }
-
- public Object[][] getLanguages() {
- return session.getLanguagesArray();
- }
-
- public Object[][] getTimezones() {
- return session.getTimezones();
- }
-
- public View getView() {
- return view;
- }
-
- public void init(final LoginView loginview) {
- this.view = loginview;
- }
-
- public void onCancel() {
- resetMessages();
- reset();
- listener.onLoginCancelled();
- }
-
- public void onClose() {
- reset();
- view.hideMessages();
- listener.onLoginClose();
- }
-
- private void reset() {
- view.reset();
- }
-
- private void resetMessages() {
- view.hideMessages();
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginView.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginView.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,65 +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.workspace.client.sitebar.login;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
-
-public interface LoginView extends View {
-
- public String getCountry();
-
- public String getEmail();
-
- public String getLanguage();
-
- public String getLoginPassword();
-
- public String getLongName();
-
- public String getNickOrEmail();
-
- public String getRegisterPassword();
-
- public String getRegisterPasswordDup();
-
- public String getShortName();
-
- public String getTimezone();
-
- public void hideMessages();
-
- public boolean isRegisterFormValid();
-
- public boolean isSignInFormValid();
-
- public void maskProcessing();
-
- public void reset();
-
- public void showWelcolmeDialog();
-
- public void unMask();
-
- void setRegisterMessage(String message, SiteErrorType type);
-
- void setSignInMessage(String message, SiteErrorType type);
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,7 +1,7 @@
package org.ourproject.kune.workspace.client.sitebar.login;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.ui.dialogs.DefaultForm;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import com.gwtext.client.data.SimpleStore;
import com.gwtext.client.data.Store;
@@ -33,172 +33,172 @@
private final ComboBox countryCombo;
private final ComboBox timezoneCombo;
- public RegisterForm(final LoginPresenter presenter, final I18nTranslationService i18n) {
- shortNameRegField = new TextField();
- shortNameRegField.setFieldLabel(i18n.t("Nickname"));
- shortNameRegField.setName(NICK_FIELD);
- shortNameRegField.setWidth(DEF_FIELD_WIDTH);
- shortNameRegField.setAllowBlank(false);
- shortNameRegField.setMinLength(3);
- shortNameRegField.setMaxLength(15);
- shortNameRegField.setRegex("^[a-z0-9_\\-]+$");
- shortNameRegField.setMinLengthText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
- shortNameRegField.setMaxLengthText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
- shortNameRegField.setRegexText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
- shortNameRegField.setValidationEvent(false);
- add(shortNameRegField);
+ public RegisterForm(final SignInPresenter presenter, final I18nUITranslationService i18n) {
+ shortNameRegField = new TextField();
+ shortNameRegField.setFieldLabel(i18n.t("Nickname"));
+ shortNameRegField.setName(NICK_FIELD);
+ shortNameRegField.setWidth(DEF_FIELD_WIDTH);
+ shortNameRegField.setAllowBlank(false);
+ shortNameRegField.setMinLength(3);
+ shortNameRegField.setMaxLength(15);
+ shortNameRegField.setRegex("^[a-z0-9_\\-]+$");
+ shortNameRegField.setMinLengthText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
+ shortNameRegField.setMaxLengthText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
+ shortNameRegField.setRegexText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
+ shortNameRegField.setValidationEvent(false);
+ add(shortNameRegField);
- longNameRegField = new TextField();
- longNameRegField.setFieldLabel(i18n.t("Full Name"));
- longNameRegField.setName(LONGNAME_FIELD);
- longNameRegField.setWidth(DEF_FIELD_WIDTH);
- longNameRegField.setAllowBlank(false);
- longNameRegField.setMinLength(3);
- longNameRegField.setMaxLength(50);
- longNameRegField.setValidationEvent(false);
- add(longNameRegField);
+ longNameRegField = new TextField();
+ longNameRegField.setFieldLabel(i18n.t("Full Name"));
+ longNameRegField.setName(LONGNAME_FIELD);
+ longNameRegField.setWidth(DEF_FIELD_WIDTH);
+ longNameRegField.setAllowBlank(false);
+ longNameRegField.setMinLength(3);
+ longNameRegField.setMaxLength(50);
+ longNameRegField.setValidationEvent(false);
+ add(longNameRegField);
- passwdRegField = new TextField();
- passwdRegField.setFieldLabel(i18n.t("Password"));
- passwdRegField.setName(PASSWORD_FIELD);
- passwdRegField.setPassword(true);
- passwdRegField.setAllowBlank(false);
- passwdRegField.setMaxLength(40);
- passwdRegField.setWidth(DEF_FIELD_WIDTH);
- passwdRegField.setValidationEvent(false);
- add(passwdRegField);
+ passwdRegField = new TextField();
+ passwdRegField.setFieldLabel(i18n.t("Password"));
+ passwdRegField.setName(PASSWORD_FIELD);
+ passwdRegField.setPassword(true);
+ passwdRegField.setAllowBlank(false);
+ passwdRegField.setMaxLength(40);
+ passwdRegField.setWidth(DEF_FIELD_WIDTH);
+ passwdRegField.setValidationEvent(false);
+ add(passwdRegField);
- passwdRegFieldDup = new TextField();
- passwdRegFieldDup.setFieldLabel(i18n.t("Retype password"));
- passwdRegFieldDup.setName(PASSWORD_FIELD_DUP);
- passwdRegFieldDup.setPassword(true);
- passwdRegFieldDup.setAllowBlank(false);
- passwdRegFieldDup.setMinLength(6);
- passwdRegFieldDup.setMaxLength(40);
- passwdRegFieldDup.setWidth(DEF_FIELD_WIDTH);
- passwdRegFieldDup.setInvalidText(i18n.t("Passwords do not match"));
- passwdRegFieldDup.setValidator(new Validator() {
- public boolean validate(final String value) throws ValidationException {
- return passwdRegField.getValueAsString().equals(passwdRegFieldDup.getValueAsString());
- }
- });
- passwdRegFieldDup.setValidationEvent(false);
- add(passwdRegFieldDup);
+ passwdRegFieldDup = new TextField();
+ passwdRegFieldDup.setFieldLabel(i18n.t("Retype password"));
+ passwdRegFieldDup.setName(PASSWORD_FIELD_DUP);
+ passwdRegFieldDup.setPassword(true);
+ passwdRegFieldDup.setAllowBlank(false);
+ passwdRegFieldDup.setMinLength(6);
+ passwdRegFieldDup.setMaxLength(40);
+ passwdRegFieldDup.setWidth(DEF_FIELD_WIDTH);
+ passwdRegFieldDup.setInvalidText(i18n.t("Passwords do not match"));
+ passwdRegFieldDup.setValidator(new Validator() {
+ public boolean validate(final String value) throws ValidationException {
+ return passwdRegField.getValueAsString().equals(passwdRegFieldDup.getValueAsString());
+ }
+ });
+ passwdRegFieldDup.setValidationEvent(false);
+ add(passwdRegFieldDup);
- emailRegField = new TextField();
- emailRegField.setFieldLabel(i18n.t("Email"));
- emailRegField.setName(EMAIL_FIELD);
- emailRegField.setVtype(VType.EMAIL);
- emailRegField.setWidth(DEF_FIELD_WIDTH);
- emailRegField.setAllowBlank(false);
- emailRegField.setValidationEvent(false);
+ emailRegField = new TextField();
+ emailRegField.setFieldLabel(i18n.t("Email"));
+ emailRegField.setName(EMAIL_FIELD);
+ emailRegField.setVtype(VType.EMAIL);
+ emailRegField.setWidth(DEF_FIELD_WIDTH);
+ emailRegField.setAllowBlank(false);
+ emailRegField.setValidationEvent(false);
- add(emailRegField);
+ add(emailRegField);
- final Store langStore = new SimpleStore(new String[] { "abbr", "language" }, presenter.getLanguages());
- langStore.load();
+ final Store langStore = new SimpleStore(new String[] { "abbr", "language" }, presenter.getLanguages());
+ langStore.load();
- languageCombo = new ComboBox();
- languageCombo.setName(LANG_FIELD);
- languageCombo.setMinChars(1);
- languageCombo.setFieldLabel(i18n.t("Language"));
- languageCombo.setStore(langStore);
- languageCombo.setDisplayField("language");
- languageCombo.setMode(ComboBox.LOCAL);
- languageCombo.setTriggerAction(ComboBox.ALL);
- languageCombo.setEmptyText(i18n.t("Enter language"));
- languageCombo.setLoadingText(i18n.t("Searching..."));
- languageCombo.setTypeAhead(true);
- languageCombo.setTypeAheadDelay(1000);
- languageCombo.setSelectOnFocus(false);
- languageCombo.setWidth(186);
- languageCombo.setAllowBlank(false);
- languageCombo.setValueField("abbr");
- languageCombo.setValue(presenter.getCurrentLanguage().getCode());
- languageCombo.setPageSize(7);
- languageCombo.setForceSelection(true);
- languageCombo.setValidationEvent(false);
- add(languageCombo);
+ languageCombo = new ComboBox();
+ languageCombo.setName(LANG_FIELD);
+ languageCombo.setMinChars(1);
+ languageCombo.setFieldLabel(i18n.t("Language"));
+ languageCombo.setStore(langStore);
+ languageCombo.setDisplayField("language");
+ languageCombo.setMode(ComboBox.LOCAL);
+ languageCombo.setTriggerAction(ComboBox.ALL);
+ languageCombo.setEmptyText(i18n.t("Enter language"));
+ languageCombo.setLoadingText(i18n.t("Searching..."));
+ languageCombo.setTypeAhead(true);
+ languageCombo.setTypeAheadDelay(1000);
+ languageCombo.setSelectOnFocus(false);
+ languageCombo.setWidth(186);
+ languageCombo.setAllowBlank(false);
+ languageCombo.setValueField("abbr");
+ languageCombo.setValue(presenter.getCurrentLanguage().getCode());
+ languageCombo.setPageSize(7);
+ languageCombo.setForceSelection(true);
+ languageCombo.setValidationEvent(false);
+ add(languageCombo);
- final Store countryStore = new SimpleStore(new String[] { "abbr", "country" }, presenter.getCountries());
- countryStore.load();
+ final Store countryStore = new SimpleStore(new String[] { "abbr", "country" }, presenter.getCountries());
+ countryStore.load();
- countryCombo = new ComboBox();
- countryCombo.setName(COUNTRY_FIELD);
- countryCombo.setMinChars(1);
- countryCombo.setFieldLabel(i18n.t("Country"));
- countryCombo.setStore(countryStore);
- countryCombo.setDisplayField("country");
- countryCombo.setMode(ComboBox.LOCAL);
- countryCombo.setTriggerAction(ComboBox.ALL);
- countryCombo.setEmptyText(i18n.t("Enter your country"));
- countryCombo.setLoadingText(i18n.t("Searching..."));
- countryCombo.setTypeAhead(true);
- countryCombo.setTypeAheadDelay(1000);
- countryCombo.setSelectOnFocus(false);
- countryCombo.setWidth(186);
- countryCombo.setAllowBlank(false);
- countryCombo.setValueField("abbr");
- countryCombo.setPageSize(7);
- countryCombo.setForceSelection(true);
- countryCombo.setValidationEvent(false);
- add(countryCombo);
+ countryCombo = new ComboBox();
+ countryCombo.setName(COUNTRY_FIELD);
+ countryCombo.setMinChars(1);
+ countryCombo.setFieldLabel(i18n.t("Country"));
+ countryCombo.setStore(countryStore);
+ countryCombo.setDisplayField("country");
+ countryCombo.setMode(ComboBox.LOCAL);
+ countryCombo.setTriggerAction(ComboBox.ALL);
+ countryCombo.setEmptyText(i18n.t("Enter your country"));
+ countryCombo.setLoadingText(i18n.t("Searching..."));
+ countryCombo.setTypeAhead(true);
+ countryCombo.setTypeAheadDelay(1000);
+ countryCombo.setSelectOnFocus(false);
+ countryCombo.setWidth(186);
+ countryCombo.setAllowBlank(false);
+ countryCombo.setValueField("abbr");
+ countryCombo.setPageSize(7);
+ countryCombo.setForceSelection(true);
+ countryCombo.setValidationEvent(false);
+ add(countryCombo);
- final Store timezoneStore = new SimpleStore(new String[] { "id" }, presenter.getTimezones());
- timezoneStore.load();
+ final Store timezoneStore = new SimpleStore(new String[] { "id" }, presenter.getTimezones());
+ timezoneStore.load();
- timezoneCombo = new ComboBox();
- timezoneCombo.setName(TIMEZONE_FIELD);
- timezoneCombo.setMinChars(1);
- timezoneCombo.setFieldLabel(i18n.t("Timezone"));
- timezoneCombo.setStore(timezoneStore);
- timezoneCombo.setDisplayField("id");
- timezoneCombo.setMode(ComboBox.LOCAL);
- timezoneCombo.setTriggerAction(ComboBox.ALL);
- timezoneCombo.setEmptyText(i18n.t("Enter your timezone"));
- timezoneCombo.setLoadingText(i18n.t("Searching..."));
- timezoneCombo.setTypeAhead(true);
- timezoneCombo.setTypeAheadDelay(1000);
- timezoneCombo.setSelectOnFocus(false);
- timezoneCombo.setWidth(186);
- timezoneCombo.setAllowBlank(false);
- timezoneCombo.setValueField("id");
- timezoneCombo.setPageSize(7);
- timezoneCombo.setForceSelection(true);
- timezoneCombo.setValidationEvent(false);
- add(timezoneCombo);
+ timezoneCombo = new ComboBox();
+ timezoneCombo.setName(TIMEZONE_FIELD);
+ timezoneCombo.setMinChars(1);
+ timezoneCombo.setFieldLabel(i18n.t("Timezone"));
+ timezoneCombo.setStore(timezoneStore);
+ timezoneCombo.setDisplayField("id");
+ timezoneCombo.setMode(ComboBox.LOCAL);
+ timezoneCombo.setTriggerAction(ComboBox.ALL);
+ timezoneCombo.setEmptyText(i18n.t("Enter your timezone"));
+ timezoneCombo.setLoadingText(i18n.t("Searching..."));
+ timezoneCombo.setTypeAhead(true);
+ timezoneCombo.setTypeAheadDelay(1000);
+ timezoneCombo.setSelectOnFocus(false);
+ timezoneCombo.setWidth(186);
+ timezoneCombo.setAllowBlank(false);
+ timezoneCombo.setValueField("id");
+ timezoneCombo.setPageSize(7);
+ timezoneCombo.setForceSelection(true);
+ timezoneCombo.setValidationEvent(false);
+ add(timezoneCombo);
}
public String getCountry() {
- return countryCombo.getValueAsString();
+ return countryCombo.getValueAsString();
}
public String getEmail() {
- return emailRegField.getValueAsString();
+ return emailRegField.getValueAsString();
}
public String getLanguage() {
- return languageCombo.getValueAsString();
+ return languageCombo.getValueAsString();
}
public String getLongName() {
- return longNameRegField.getValueAsString();
+ return longNameRegField.getValueAsString();
}
public String getRegisterPassword() {
- return passwdRegField.getValueAsString();
+ return passwdRegField.getValueAsString();
}
public String getRegisterPasswordDup() {
- return passwdRegFieldDup.getValueAsString();
+ return passwdRegFieldDup.getValueAsString();
}
public String getShortName() {
- return shortNameRegField.getValueAsString();
+ return shortNameRegField.getValueAsString();
}
public String getTimezone() {
- return timezoneCombo.getValueAsString();
+ return timezoneCombo.getValueAsString();
}
}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignIn.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/Login.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/Login.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignIn.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -0,0 +1,28 @@
+/*
+ *
+ * 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.workspace.client.sitebar.login;
+
+import org.ourproject.kune.platf.client.dto.StateToken;
+
+public interface SignIn {
+
+ void doSignIn(StateToken previousStateToken);
+
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInForm.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginForm.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginForm.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInForm.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -0,0 +1,46 @@
+package org.ourproject.kune.workspace.client.sitebar.login;
+
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.ui.dialogs.DefaultForm;
+
+import com.gwtext.client.widgets.form.TextField;
+
+public class SignInForm extends DefaultForm {
+ private static final String NICKOREMAIL_FIELD = "nickOrEmail";
+ private static final String PASSWORD_FIELD = "password";
+
+ private final TextField loginNickOrEmailField;
+ private final TextField loginPassField;
+
+ public SignInForm(final I18nTranslationService i18n) {
+ loginNickOrEmailField = new TextField();
+ loginNickOrEmailField.setFieldLabel(i18n.t("Nickname or email"));
+ loginNickOrEmailField.setName(NICKOREMAIL_FIELD);
+ loginNickOrEmailField.setWidth(DEF_FIELD_WIDTH);
+ loginNickOrEmailField.setAllowBlank(false);
+ loginNickOrEmailField.setValidationEvent(false);
+ super.add(loginNickOrEmailField);
+
+ loginPassField = new TextField();
+ loginPassField.setFieldLabel(i18n.t("Password"));
+ loginPassField.setName(PASSWORD_FIELD);
+ loginPassField.setWidth(DEF_FIELD_WIDTH);
+ loginPassField.setPassword(true);
+ loginPassField.setAllowBlank(false);
+ loginPassField.setValidationEvent(false);
+ super.add(loginPassField);
+ }
+
+ public void focusLogin() {
+ loginNickOrEmailField.focus();
+ }
+
+ public String getLoginPassword() {
+ return loginPassField.getValueAsString();
+ }
+
+ public String getNickOrEmail() {
+ return loginNickOrEmailField.getValueAsString();
+ }
+
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInPanel.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPanel.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPanel.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -0,0 +1,344 @@
+/*
+ *
+ * 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.workspace.client.sitebar.login;
+
+import org.ourproject.kune.platf.client.ui.dialogs.BasicDialog;
+import org.ourproject.kune.platf.client.ui.dialogs.InfoDialog;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.sitebar.msg.SimpleMessagePanel;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
+
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.DeferredCommand;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Widget;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.core.RegionPosition;
+import com.gwtext.client.widgets.Button;
+import com.gwtext.client.widgets.Component;
+import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.TabPanel;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
+import com.gwtext.client.widgets.event.PanelListenerAdapter;
+import com.gwtext.client.widgets.event.WindowListenerAdapter;
+import com.gwtext.client.widgets.form.Field;
+import com.gwtext.client.widgets.layout.BorderLayout;
+import com.gwtext.client.widgets.layout.BorderLayoutData;
+import com.gwtext.client.widgets.layout.FitLayout;
+
+public class SignInPanel implements SignInView {
+ private class MessagePanel extends Panel {
+ private final SimpleMessagePanel messagesPanel;
+
+ public MessagePanel() {
+ setPaddings(10);
+ setBorder(false);
+ setHeight(60);
+ messagesPanel = new SimpleMessagePanel();
+ messagesPanel.setMessage("", SiteErrorType.info, SiteErrorType.error);
+ add(messagesPanel);
+ }
+
+ public void hide() {
+ messagesPanel.hide();
+ super.hide();
+ }
+
+ public void setMessage(final String message, final SiteErrorType lastMessageType, final SiteErrorType type) {
+ messagesPanel.setMessage(message, lastMessageType, type);
+ }
+
+ public void show() {
+ messagesPanel.show();
+ super.show();
+ }
+ }
+
+ private BasicDialog dialog;
+ private final SignInPresenter presenter;
+ private SignInForm signInForm;
+ private RegisterForm registerForm;
+ private MessagePanel messagesSignInPanel;
+ private InfoDialog welcomeDialog;
+ private TabPanel centerPanel;
+ private MessagePanel messagesRegisterPanel;
+ private final I18nUITranslationService i18n;
+
+ public SignInPanel(final SignInPresenter presenter, final I18nUITranslationService i18n, final WorkspaceSkeleton ws) {
+ this.i18n = i18n;
+ Field.setMsgTarget("side");
+ this.presenter = presenter;
+ createPanel();
+ }
+
+ public void center() {
+ dialog.center();
+ }
+
+ public String getCountry() {
+ return registerForm.getCountry();
+ }
+
+ public String getEmail() {
+ return registerForm.getEmail();
+ }
+
+ public String getLanguage() {
+ return registerForm.getLanguage();
+ }
+
+ public String getLoginPassword() {
+ return signInForm.getLoginPassword();
+ }
+
+ public String getLongName() {
+ return registerForm.getLongName();
+ }
+
+ public String getNickOrEmail() {
+ return signInForm.getNickOrEmail();
+ }
+
+ public String getRegisterPassword() {
+ return registerForm.getRegisterPassword();
+ }
+
+ public String getRegisterPasswordDup() {
+ return registerForm.getRegisterPasswordDup();
+ }
+
+ public String getShortName() {
+ return registerForm.getShortName();
+ }
+
+ public String getTimezone() {
+ return registerForm.getTimezone();
+ }
+
+ public void hide() {
+ dialog.hide();
+ }
+
+ public void hideMessages() {
+ messagesSignInPanel.hide();
+ if (messagesRegisterPanel != null) {
+ messagesRegisterPanel.hide();
+ }
+ renderDialogIfNeeded();
+ }
+
+ public boolean isRegisterFormValid() {
+ return registerForm.isValid();
+ }
+
+ public boolean isSignInFormValid() {
+ return signInForm.isValid();
+ }
+
+ public void mask(final String message) {
+ dialog.getEl().mask(message, "x-mask-loading");
+ }
+
+ public void maskProcessing() {
+ mask(i18n.t("Processing"));
+ }
+
+ public void reset() {
+ DeferredCommand.addCommand(new Command() {
+ public void execute() {
+ signInForm.reset();
+ if (registerForm != null) {
+ registerForm.reset();
+ }
+ }
+ });
+ }
+
+ public void setRegisterMessage(final String message, final SiteErrorType type) {
+ messagesRegisterPanel.setMessage(message, type, type);
+ messagesRegisterPanel.show();
+ renderDialogIfNeeded();
+ }
+
+ public void setSignInMessage(final String message, final SiteErrorType type) {
+ messagesSignInPanel.setMessage(message, type, type);
+ messagesSignInPanel.show();
+ renderDialogIfNeeded();
+ }
+
+ public void show() {
+ centerPanel.activate(0);
+ dialog.setVisible(true);
+ dialog.show();
+ Site.hideProgress();
+ dialog.focus();
+ signInForm.focusLogin();
+ }
+
+ public void showWelcolmeDialog() {
+ if (welcomeDialog == null) {
+ welcomeDialog = new InfoDialog(i18n.t("Welcome"), i18n.t("Thanks for registering"), i18n
+ .t("Now you can participate more actively in this site with other people and groups. "
+ + "You can also use your personal space to publish contents. "
+ + "Your email is not verified, please follow the instructions you will receive by email."),
+ i18n.t("Ok"), true, true, 400, 270);
+ }
+ welcomeDialog.show();
+ }
+
+ public void unMask() {
+ dialog.getEl().unmask();
+ }
+
+ private void confPanel(final Panel panel) {
+ // panel.setLayout(new FormLayout());
+ // panel.setAutoWidth(true);
+ // anel.setAutoHeight(true);
+ }
+
+ private Panel createNoAccountRegister() {
+ final Panel noAccRegisterPanel = new Panel();
+ noAccRegisterPanel.setBorder(false);
+ noAccRegisterPanel.setMargins(0, 90, 0, 0);
+ final Label dontHaveAccountLabel = new Label(i18n.t("Don't have an account?"));
+ final Label registerLabel = new Label(i18n.t("Create one."));
+ registerLabel.addClickListener(new ClickListener() {
+ public void onClick(final Widget arg0) {
+ centerPanel.activate(1);
+ }
+ });
+ registerLabel.addStyleName("kune-Margin-Medium-l");
+ registerLabel.addStyleName("kune-link");
+ noAccRegisterPanel.add(dontHaveAccountLabel);
+ noAccRegisterPanel.add(registerLabel);
+ return noAccRegisterPanel;
+ }
+
+ private void createPanel() {
+ dialog = new BasicDialog(i18n.t("Sign in"), true, false, 370, 400);
+ dialog.setLayout(new FitLayout());
+ final Panel dialogPanel = new Panel();
+ dialogPanel.setLayout(new BorderLayout());
+ // dialog.setAutoHeight(false);
+ // dialog.setAutoWidth(false);
+ // dialog.setAutoHeight(true);
+ // dialog.setAutoWidth(true);
+ dialogPanel.setHeight("100%");
+ dialogPanel.setWidth("auto");
+ // dialog.setCollapsible(false);
+
+ centerPanel = new TabPanel();
+ centerPanel.setActiveTab(0);
+ // centerPanel.setAutoWidth(true);
+ // centerPanel.setAutoHeight(true);
+ centerPanel.setClosable(false);
+
+ final Panel signInPanel = new Panel(i18n.t("Sign in"));
+ confPanel(signInPanel);
+ signInForm = new SignInForm(i18n);
+ signInPanel.add(signInForm.getForm());
+ signInPanel.add(createNoAccountRegister());
+ messagesSignInPanel = new MessagePanel();
+ signInPanel.add(messagesSignInPanel);
+
+ final Panel registerPanel = new Panel(i18n.t("Register"));
+ confPanel(registerPanel);
+
+ centerPanel.add(signInPanel);
+ centerPanel.add(registerPanel);
+ dialogPanel.add(centerPanel, new BorderLayoutData(RegionPosition.CENTER));
+ dialog.add(dialogPanel);
+
+ final Button signInBtn = new Button(i18n.t("Sign in"));
+ signInBtn.addListener(new ButtonListenerAdapter() {
+ public void onClick(final Button button, final EventObject e) {
+ signInForm.validate();
+ if (signInForm.isValid()) {
+ presenter.onFormSignIn();
+ }
+ }
+ });
+ dialog.addButton(signInBtn);
+
+ final Button registerBtn = new Button(i18n.t("Register"));
+ registerBtn.addListener(new ButtonListenerAdapter() {
+ public void onClick(final Button button, final EventObject e) {
+ registerForm.validate();
+ if (registerForm.isValid()) {
+ presenter.onFormRegister();
+ }
+ }
+ });
+ dialog.addButton(registerBtn);
+ registerBtn.hide();
+
+ final Button cancel = new Button();
+ dialog.addButton(cancel);
+ cancel.setText(i18n.tWithNT("Cancel", "used in button"));
+ cancel.addListener(new ButtonListenerAdapter() {
+ public void onClick(final Button button, final EventObject e) {
+ presenter.onCancel();
+ }
+ });
+
+ signInPanel.addListener(new PanelListenerAdapter() {
+ public void onActivate(final Panel panel) {
+ dialog.setTitle(i18n.t("Sign in"));
+ registerBtn.hide();
+ signInBtn.show();
+ }
+ });
+
+ registerPanel.addListener(new PanelListenerAdapter() {
+ public void onActivate(final Panel panel) {
+ if (registerForm == null) {
+ maskProcessing();
+ registerForm = new RegisterForm(presenter, i18n);
+ registerPanel.add(registerForm.getForm());
+ messagesRegisterPanel = new MessagePanel();
+ registerPanel.add(messagesRegisterPanel);
+ messagesRegisterPanel.hide();
+ renderDialogIfNeeded();
+ unMask();
+ }
+ dialog.setTitle(i18n.t("Register"));
+ signInBtn.hide();
+ registerBtn.show();
+ }
+ });
+
+ dialog.addListener(new WindowListenerAdapter() {
+ public void onHide(final Component component) {
+ presenter.onClose();
+ }
+ });
+ hideMessages();
+ renderDialogIfNeeded();
+ }
+
+ private void renderDialogIfNeeded() {
+ if (dialog.isRendered()) {
+ dialog.doLayout();
+ }
+ }
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInPresenter.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPresenter.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInPresenter.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -0,0 +1,218 @@
+/*
+ *
+ * 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.workspace.client.sitebar.login;
+
+import java.util.Date;
+
+import org.ourproject.kune.platf.client.dto.I18nCountryDTO;
+import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.dto.TimeZoneDTO;
+import org.ourproject.kune.platf.client.dto.UserDTO;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.errors.EmailAddressInUseException;
+import org.ourproject.kune.platf.client.errors.GroupNameInUseException;
+import org.ourproject.kune.platf.client.errors.UserAuthException;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
+
+import com.calclab.emite.client.im.roster.RosterManager.SubscriptionMode;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.Cookies;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+public class SignInPresenter implements SignIn {
+
+ SignInView view;
+ private final Session session;
+ private final I18nUITranslationService i18n;
+ private final UserServiceAsync userService;
+ private final StateManager stateManager;
+ private StateToken previousStateToken;
+
+ public SignInPresenter(final Session session, final StateManager stateManager, final I18nUITranslationService i18n,
+ final UserServiceAsync userService) {
+ this.session = session;
+ this.stateManager = stateManager;
+ this.userService = userService;
+ this.i18n = i18n;
+ }
+
+ public void doSignIn(final StateToken previousStateToken) {
+ this.previousStateToken = previousStateToken;
+ if (!session.isLogged()) {
+ Site.showProgressProcessing();
+ view.show();
+ view.center();
+ Site.hideProgress();
+ } else {
+ stateManager.setState(previousStateToken);
+ }
+ }
+
+ public Object[][] getCountries() {
+ return session.getCountriesArray();
+ }
+
+ public I18nLanguageDTO getCurrentLanguage() {
+ return session.getCurrentLanguage();
+ }
+
+ public Object[][] getLanguages() {
+ return session.getLanguagesArray();
+ }
+
+ public Object[][] getTimezones() {
+ return session.getTimezones();
+ }
+
+ public void init(final SignInView loginview) {
+ this.view = loginview;
+ }
+
+ public void onCancel() {
+ resetMessages();
+ reset();
+ view.hide();
+ stateManager.setState(previousStateToken);
+ }
+
+ public void onClose() {
+ reset();
+ view.hideMessages();
+ if (!session.isLogged()) {
+ stateManager.setState(previousStateToken);
+ }
+ }
+
+ public void onFormRegister() {
+ if (view.isRegisterFormValid()) {
+ view.maskProcessing();
+
+ final I18nLanguageDTO language = new I18nLanguageDTO();
+ language.setCode(view.getLanguage());
+
+ final I18nCountryDTO country = new I18nCountryDTO();
+ country.setCode(view.getCountry());
+
+ final TimeZoneDTO timezone = new TimeZoneDTO();
+ timezone.setId(view.getTimezone());
+
+ final UserDTO user = new UserDTO(view.getLongName(), view.getShortName(), view.getRegisterPassword(), view
+ .getEmail(), language, country, timezone, null, true, SubscriptionMode.manual, "blue");
+ final AsyncCallback<UserInfoDTO> callback = new AsyncCallback<UserInfoDTO>() {
+ public void onFailure(final Throwable caught) {
+ view.unMask();
+ try {
+ throw caught;
+ } catch (final EmailAddressInUseException e) {
+ view.setRegisterMessage(i18n.t("This email in in use by other person, try with another."),
+ SiteErrorType.error);
+ } catch (final GroupNameInUseException e) {
+ view.setRegisterMessage(i18n.t("This name in already in use, try with a different name."),
+ SiteErrorType.error);
+ } catch (final Throwable e) {
+ view.setRegisterMessage(i18n.t("Error during registration."), SiteErrorType.error);
+ GWT.log("Other kind of exception in user registration" + e.getMessage() + ", "
+ + e.getLocalizedMessage(), null);
+ e.printStackTrace();
+ throw new RuntimeException();
+ }
+ }
+
+ public void onSuccess(final UserInfoDTO userInfoDTO) {
+ stateManager.gotoToken(userInfoDTO.getHomePage());
+ onSignIn(userInfoDTO);
+ view.hide();
+ view.unMask();
+ view.showWelcolmeDialog();
+ }
+ };
+ userService.createUser(user, callback);
+ }
+ }
+
+ protected void onFormSignIn() {
+ if (view.isSignInFormValid()) {
+ view.maskProcessing();
+
+ final String nickOrEmail = view.getNickOrEmail();
+ final String passwd = view.getLoginPassword();
+
+ final UserDTO user = new UserDTO();
+ user.setShortName(nickOrEmail);
+ user.setPassword(passwd);
+
+ final AsyncCallback<UserInfoDTO> callback = new AsyncCallback<UserInfoDTO>() {
+ public void onFailure(final Throwable caught) {
+ view.unMask();
+ Site.hideProgress();
+ try {
+ throw caught;
+ } catch (final UserAuthException e) {
+ view.setSignInMessage(i18n.t("Incorrect nickname/email or password"), SiteErrorType.error);
+ } catch (final Throwable e) {
+ view.setSignInMessage("Error in login", SiteErrorType.error);
+ GWT.log("Other kind of exception in LoginFormPresenter/doLogin", null);
+ throw new RuntimeException();
+ }
+ }
+
+ public void onSuccess(final UserInfoDTO userInfoDTO) {
+ stateManager.setState(previousStateToken);
+ onSignIn(userInfoDTO);
+ view.hide();
+ view.unMask();
+ }
+ };
+ userService.login(user.getShortName(), user.getPassword(), callback);
+ }
+ }
+
+ private void onSignIn(final UserInfoDTO userInfoDTO) {
+ setCookie(userInfoDTO);
+ session.setUserHash(userInfoDTO.getUserHash());
+ session.setCurrentUserInfo(userInfoDTO);
+ final I18nLanguageDTO language = userInfoDTO.getLanguage();
+ i18n.changeCurrentLanguage(language.getCode());
+ session.setCurrentLanguage(language);
+ }
+
+ private void reset() {
+ view.reset();
+ }
+
+ private void resetMessages() {
+ view.hideMessages();
+ }
+
+ private void setCookie(final UserInfoDTO userInfoDTO) {
+ // http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ
+ final String sessionId = userInfoDTO.getUserHash();
+ final long duration = Session.SESSION_DURATION;
+ final Date expires = new Date(System.currentTimeMillis() + duration);
+ Cookies.setCookie(Site.USERHASH, sessionId, expires, null, "/", false);
+ }
+
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInView.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginView.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginView.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInView.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -0,0 +1,71 @@
+/*
+ *
+ * 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.workspace.client.sitebar.login;
+
+import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
+
+public interface SignInView extends View {
+
+ public void center();
+
+ public String getCountry();
+
+ public String getEmail();
+
+ public String getLanguage();
+
+ public String getLoginPassword();
+
+ public String getLongName();
+
+ public String getNickOrEmail();
+
+ public String getRegisterPassword();
+
+ public String getRegisterPasswordDup();
+
+ public String getShortName();
+
+ public String getTimezone();
+
+ public void hide();
+
+ public void hideMessages();
+
+ public boolean isRegisterFormValid();
+
+ public boolean isSignInFormValid();
+
+ public void maskProcessing();
+
+ public void reset();
+
+ public void show();
+
+ public void showWelcolmeDialog();
+
+ public void unMask();
+
+ void setRegisterMessage(String message, SiteErrorType type);
+
+ void setSignInMessage(String message, SiteErrorType type);
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -79,8 +79,9 @@
adjustWidth(width);
}
});
+ super.reset();
+ super.show();
extElem.setVisible(false, false);
- hide();
RootPanel.get().add(this, calculateX(clientWidth), calculateY());
}
@@ -96,9 +97,7 @@
}
public void show() {
- if (!extElem.isVisible()) {
- extElem.show(true);
- }
+ extElem.show(false);
// super.show();
timer.schedule(TIMEVISIBLE);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -12,7 +12,6 @@
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
-import com.allen_sauer.gwt.log.client.Log;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Button;
@@ -35,7 +34,7 @@
super.setHeaderText(i18n.t("Group members"));
super.setHeaderTitle(i18n.t("People and groups collaborating in this group"));
super.setBorderStylePrimaryName("k-dropdownouter-members");
- super.addStyleName("kune-Margin-Medium-tl");
+ super.addStyleName("kune-Margin-Medium-t");
gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This is an orphaned project, if you are interested "
+ "please request to join to work on it"), true, true, false, true, false);
final EntitySummary entitySummary = ws.getEntitySummary();
@@ -105,7 +104,6 @@
}
public void setVisible(final boolean visible) {
- Log.debug("Set visible: " + visible + " in GroupMembers");
super.setVisible(visible);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -42,7 +42,7 @@
super.setHeaderText(i18n.t("Participates as..."));
super.setHeaderTitle(i18n.t("Groups in which participates"));
super.setBorderStylePrimaryName("k-dropdownouter-part");
- super.addStyleName("kune-Margin-Medium-tl");
+ super.addStyleName("kune-Margin-Medium-t");
gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This user is not member of any group"), true, false, false,
false, false);
final EntitySummary entitySummary = ws.getEntitySummary();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -56,7 +56,7 @@
vp.setCellWidth(flowPanel, "100%");
super.setContent(vp);
super.setBorderStylePrimaryName("k-dropdownouter-tags");
- addStyleName("kune-Margin-Medium-tl");
+ addStyleName("kune-Margin-Medium-t");
flowPanel.addStyleName("kune-Margin-Small-trbl");
ws.getEntitySummary().addInSummary(this);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,5 +1,7 @@
package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitesign;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.sitebar.SiteToken;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.ui.Hyperlink;
@@ -9,8 +11,26 @@
private final ToolbarButton loggedUserMenu;
private final Hyperlink signInHyperlink;
- public SiteSignInLinkPanel(final SiteSignInLinkPresenter presenter, final WorkspaceSkeleton ws) {
+ public SiteSignInLinkPanel(final SiteSignInLinkPresenter presenter, final I18nUITranslationService i18n,
+ final WorkspaceSkeleton ws) {
signInHyperlink = new Hyperlink();
- loggedUserMenu = new ToolbarButton();
+ signInHyperlink.setText(i18n.t("Sign in to collaborate"));
+ signInHyperlink.setTargetHistoryToken(SiteToken.signin.toString());
+ loggedUserMenu = new ToolbarButton("user");
+ ws.getSiteBar().add(signInHyperlink);
+ // ws.getSiteBar().add(loggedUserMenu);
}
+
+ public void setLoggedUserMenuVisible(final boolean visible) {
+ loggedUserMenu.setVisible(visible);
+ }
+
+ public void setLoggedUserName(final String name, final String homePage) {
+ loggedUserMenu.setText(name);
+ }
+
+ public void setVisibleSignInLink(final boolean visible) {
+ signInHyperlink.setVisible(visible);
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPresenter.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPresenter.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,22 +1,50 @@
package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitesign;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.state.Session;
+import com.calclab.suco.client.signal.Slot;
+
public class SiteSignInLinkPresenter implements SiteSignInLink {
-private SiteSignInLinkView view;
+ private SiteSignInLinkView view;
-public SiteSignInLinkPresenter() {
-}
+ public SiteSignInLinkPresenter(final Session session) {
+ session.onUserSignIn(new Slot<UserInfoDTO>() {
+ public void onEvent(final UserInfoDTO user) {
+ doAfterSignIn(user);
+ }
+ });
+ session.onUserSignOut(new Slot<Object>() {
+ public void onEvent(final Object parameter) {
+ setLogged(false);
+ view.setLoggedUserName("", "");
+ }
+ });
+ }
-public void init(SiteSignInLinkView view) {
-this.view = view;
-}
+ public View getView() {
+ return view;
+ }
+ public void init(final SiteSignInLinkView view) {
+ this.view = view;
+ setLogged(false);
+ }
- public View getView() {
- return view;
+ private void doAfterSignIn(final UserInfoDTO user) {
+ if (user == null) {
+ setLogged(false);
+ } else {
+ setLogged(true);
+ view.setLoggedUserName(user.getShortName(), user.getHomePage());
+ }
}
+ private void setLogged(boolean logged) {
+ view.setVisibleSignInLink(!logged);
+ view.setLoggedUserMenuVisible(logged);
+ }
+
}
-
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkView.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkView.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -3,5 +3,11 @@
import org.ourproject.kune.platf.client.View;
public interface SiteSignInLinkView extends View {
+
+ void setLoggedUserMenuVisible(boolean visible);
+
+ void setLoggedUserName(String shortName, String homePage);
+
+ void setVisibleSignInLink(boolean visible);
+
}
-
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,14 +1,32 @@
package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitesign;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.sitebar.Site;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
+import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Widget;
public class SiteSignOutLinkPanel implements SiteSignOutLinkView {
private final Label signOutLabel;
- public SiteSignOutLinkPanel(final SiteSignOutLinkPresenter presenter, final WorkspaceSkeleton ws) {
+ public SiteSignOutLinkPanel(final SiteSignOutLinkPresenter presenter, final I18nUITranslationService i18n,
+ final WorkspaceSkeleton ws) {
signOutLabel = new Label();
+ signOutLabel.setText(i18n.t("Sign out"));
+ signOutLabel.addStyleName("kune-SiteBarPanel-LabelLink");
+ ws.getSiteBar().add(signOutLabel);
+ signOutLabel.addClickListener(new ClickListener() {
+ public void onClick(final Widget arg0) {
+ Site.showProgressProcessing();
+ presenter.doSignOut();
+ }
+ });
}
+
+ public void setVisible(final boolean visible) {
+ signOutLabel.setVisible(visible);
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,22 +1,92 @@
package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitesign;
+import java.util.Date;
+
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.errors.SessionExpiredException;
+import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException;
+import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
+import com.calclab.suco.client.signal.Slot;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.Cookies;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
public class SiteSignOutLinkPresenter implements SiteSignOutLink {
-private SiteSignOutLinkView view;
+ private SiteSignOutLinkView view;
+ private final Session session;
+ private final UserServiceAsync userService;
-public SiteSignOutLinkPresenter() {
-}
+ public SiteSignOutLinkPresenter(final Session session, final UserServiceAsync userService,
+ final KuneErrorHandler errorHandler) {
+ this.session = session;
+ this.userService = userService;
+ session.onUserSignIn(new Slot<UserInfoDTO>() {
+ public void onEvent(final UserInfoDTO parameter) {
+ view.setVisible(true);
+ }
+ });
+ session.onUserSignOut(new Slot<Object>() {
+ public void onEvent(final Object parameter) {
+ view.setVisible(false);
+ }
+ });
+ errorHandler.onSessionExpired(new Slot<Object>() {
+ public void onEvent(final Object parameter) {
+ clientUIsignOut();
+ }
+ });
+ }
-public void init(SiteSignOutLinkView view) {
-this.view = view;
-}
+ public void doSignOut() {
+ final AsyncCallback<Object> callback = new AsyncCallback<Object>() {
+ public void onFailure(final Throwable caught) {
+ Site.hideProgress();
+ try {
+ throw caught;
+ } catch (final SessionExpiredException e) {
+ clientUIsignOut();
+ } catch (final UserMustBeLoggedException e) {
+ clientUIsignOut();
+ } catch (final Throwable e) {
+ GWT.log("Other kind of exception in doLogout", null);
+ throw new RuntimeException();
+ }
+ }
+ public void onSuccess(final Object arg0) {
+ Site.hideProgress();
+ clientUIsignOut();
+ }
+ };
+ userService.logout(session.getUserHash(), callback);
+ }
+
public View getView() {
- return view;
+ return view;
}
+ public void init(final SiteSignOutLinkView view) {
+ this.view = view;
+ view.setVisible(false);
+ }
+
+ private void clientUIsignOut() {
+ // FIXME: Remove cookie doesn't works in all browsers, know
+ // issue:
+ // http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/ded8…
+ // http://code.google.com/p/google-web-toolkit/issues/detail?id=1735&q=removeC…
+ Cookies.removeCookie(Site.USERHASH);
+ // Workaround:
+ Cookies.setCookie(Site.USERHASH, null, new Date(0), null, "/", false);
+ session.setUserHash(null);
+ session.setCurrentUserInfo(null);
+ }
+
}
-
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkView.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkView.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -3,5 +3,6 @@
import org.ourproject.kune.platf.client.View;
public interface SiteSignOutLinkView extends View {
+
+ void setVisible(boolean visible);
}
-
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-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,46 +1,64 @@
package org.ourproject.kune.platf.client.state;
-import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;
-import org.ourproject.kune.platf.client.app.Application;
+import org.mockito.Mockito;
import org.ourproject.kune.platf.client.app.HistoryWrapper;
-import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.workspace.client.sitebar.SiteToken;
import org.ourproject.kune.workspace.client.ui.newtmp.WorkspaceManager;
+import com.calclab.suco.client.signal.Slot;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
public class StateManagerTest {
- private StateManager stateManager;
+ private static final String HASH = "someUserHash";
+ private StateManagerDefault stateManager;
private HistoryWrapper history;
+ private ContentProvider contentProvider;
+ private Session session;
+ @SuppressWarnings("unchecked")
@Test
- public void fixmeToken() {
- stateManager.onHistoryChanged(Site.FIXME_TOKEN);
- }
-
- @Test
public void getDefGroup() {
stateManager.onHistoryChanged("site.docs");
+ Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateDTO>) Mockito.anyObject());
}
+ @SuppressWarnings("unchecked")
@Before
public void init() {
- final ContentProvider contentProvider = EasyMock.createStrictMock(ContentProvider.class);
- final Application application = EasyMock.createStrictMock(Application.class);
- final Session session = EasyMock.createStrictMock(Session.class);
- history = EasyMock.createStrictMock(HistoryWrapper.class);
- final WorkspaceManager ws = EasyMock.createStrictMock(WorkspaceManager.class);
- stateManager = new StateManagerDefault(contentProvider, application, session, history, ws);
+ contentProvider = Mockito.mock(ContentProvider.class);
+ session = Mockito.mock(Session.class);
+ history = Mockito.mock(HistoryWrapper.class);
+ final WorkspaceManager ws = Mockito.mock(WorkspaceManager.class);
+ stateManager = new StateManagerDefault(contentProvider, session, history, ws);
+ Mockito.stub(session.getUserHash()).toReturn(HASH);
}
+ @SuppressWarnings("unchecked")
@Test
public void normalStartLoggedUser() {
// When a user enter reload state, also if the application is starting
// (and the user was logged)
- EasyMock.expect(history.getToken()).andReturn("");
- EasyMock.replay(history);
+ Mockito.stub(history.getToken()).toReturn("");
stateManager.reload();
- EasyMock.verify(history);
+ Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateDTO>) Mockito.anyObject());
}
+ @SuppressWarnings("unchecked")
+ @Test
+ public void siteTokenFirstLoadDefContentAndFireSlot() {
+ final Slot slot = Mockito.mock(Slot.class);
+ final String token = SiteToken.signin.toString();
+ stateManager.addSiteToken(token, slot);
+ stateManager.onHistoryChanged(token);
+ Mockito.verify(slot, Mockito.times(1)).onEvent(Mockito.anyObject());
+ Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateDTO>) Mockito.anyObject());
+ }
}
Deleted: trunk/src/test/java/org/ourproject/kune/sitebar/client/ui/LoginPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/sitebar/client/ui/LoginPresenterTest.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/test/java/org/ourproject/kune/sitebar/client/ui/LoginPresenterTest.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,52 +0,0 @@
-package org.ourproject.kune.sitebar.client.ui;
-
-import org.easymock.EasyMock;
-import org.junit.Before;
-import org.junit.Test;
-import org.ourproject.kune.platf.client.services.I18nTranslationServiceMocked;
-import org.ourproject.kune.platf.client.state.SessionImpl;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginListener;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginPresenter;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginView;
-
-public class LoginPresenterTest {
- private LoginPresenter presenter;
- private LoginView view;
- private LoginListener listener;
-
- @Before
- public void createObjects() {
- listener = EasyMock.createStrictMock(LoginListener.class);
- presenter = new LoginPresenter(new SessionImpl("foo", null), listener, new I18nTranslationServiceMocked());
- view = EasyMock.createStrictMock(LoginView.class);
- }
-
- @Test
- public void nickPassTyped() {
- // view.setEnabledLoginButton(false);
- // view.setEnabledLoginButton(true);
- EasyMock.replay(view);
-
- presenter.init(view);
- // presenter.onDataChanged("luther.b", "somepass");
- EasyMock.verify(view);
- }
-
- @Test
- public void noUserInput() {
- // view.setEnabledLoginButton(false);
- EasyMock.replay(view);
-
- presenter.init(view);
- // presenter.onDataChanged("", "");
- EasyMock.verify(view);
- }
-
- @Test
- public void testViewInitialization() {
- // view.setEnabledLoginButton(false);
- EasyMock.replay(view);
- presenter.init(view);
- EasyMock.verify(view);
- }
-}
1
0