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
March 2012
- 2 participants
- 84 discussions
#104: Welcome like Tumblr, in the first visit
---------------------------+-------------------
Reporter: sam <samer@…> | Owner: vjrj
Type: enhancement | Status: new
Priority: critical | Milestone:
Component: Group space | Version:
Keywords: | Blocked By:
Blocking: |
---------------------------+-------------------
No one reads the first welcome document that explains Kune behaviour.
Thus, when a new user arrives, faces several issues:
1) cannot edit anything
2) cannot do much neither create new stuff. Even if he/she discovers how
to sign up, the user doesn't know yet how to edit anything.
3) doesn't realize that the top-left icons exist, so the experience is
very limited.
[Bastien tried it for 30 seconds and George for dont know how long, both
with similar results.]
Proposal: highlight the initial experience, such as Tumblr (or Flattr)
does. Guide users to sign-up, guide users to the personal space... give
for granted no one reads the welcoming doc and introduce Kune's first
visit with a practical basic interactive tutorial. Idea: start Kune in a
task list with the tasks that are left to do: "sign up", "visit personal
space", "create a poll gadget", etc.
I consider it maximum priority, as it can kick out many initial testers,
that don't manage in 30 seconds to understand its behaviour.
--
Ticket URL: <http://kune.ourproject.org/issues/ticket/104>
kune issues <http://kune.ourproject.org/issues/>
1
3
Author: vjrj_
Date: 2012-03-31 23:43:21 +0200 (Sat, 31 Mar 2012)
New Revision: 1813
Added:
trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContainerBtn.java
trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContainerMenuItem.java
Removed:
trunk/debian/files
trunk/debian/kune.postinst.debhelper
trunk/debian/kune.postrm.debhelper
trunk/debian/kune.prerm.debhelper
Modified:
trunk/debian/kune.debhelper.log
trunk/debian/kune.substvars
trunk/pom.xml
trunk/src/main/java/cc/kune/barters/client/actions/BartersClientActions.java
trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java
trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java
trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java
trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java
trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
trunk/src/main/java/cc/kune/core/server/rpc/ContentRPCMock.java
trunk/src/main/java/cc/kune/core/server/tool/ToolSimple.java
trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java
trunk/src/main/java/cc/kune/domain/Container.java
trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java
trunk/src/main/java/cc/kune/gspace/client/actions/ActionUtils.java
trunk/src/main/java/cc/kune/lists/client/actions/ListsClientActions.java
trunk/src/main/java/cc/kune/tasks/client/actions/TasksClientActions.java
trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceGetTest.java
trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java
trunk/src/test/java/cc/kune/core/server/manager/ContainerManagerDefaultTest.java
trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java
Log:
NEW - # 222: Create a trash folder icon and improve contents delete functionality
http://kune.ourproject.org/issues/ticket/222
Deleted: trunk/debian/files
===================================================================
--- trunk/debian/files 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/debian/files 2012-03-31 21:43:21 UTC (rev 1813)
@@ -1 +0,0 @@
-kune_0.1.0+b4_all.deb java optional
Modified: trunk/debian/kune.debhelper.log
===================================================================
--- trunk/debian/kune.debhelper.log 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/debian/kune.debhelper.log 2012-03-31 21:43:21 UTC (rev 1813)
@@ -1,34 +1,3 @@
dh_prep
dh_installdirs
dh_installdirs
-dh_installdocs
-dh_installexamples
-dh_installman
-dh_installinfo
-dh_installmenu
-dh_installcron
-dh_installinit
-dh_installdebconf
-dh_installemacsen
-dh_installcatalogs
-dh_installpam
-dh_installlogrotate
-dh_installlogcheck
-dh_installchangelogs
-dh_installudev
-dh_lintian
-dh_bugfiles
-dh_install
-dh_link
-dh_installmime
-dh_installgsettings
-dh_strip
-dh_compress
-dh_fixperms
-dh_makeshlibs
-dh_installdeb
-dh_perl
-dh_shlibdeps
-dh_gencontrol
-dh_md5sums
-dh_builddeb
Deleted: trunk/debian/kune.postinst.debhelper
===================================================================
--- trunk/debian/kune.postinst.debhelper 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/debian/kune.postinst.debhelper 2012-03-31 21:43:21 UTC (rev 1813)
@@ -1,6 +0,0 @@
-# Automatically added by dh_installinit
-if [ -x "/etc/init.d/kune" ]; then
- update-rc.d kune defaults >/dev/null
- invoke-rc.d kune start || exit $?
-fi
-# End automatically added section
Deleted: trunk/debian/kune.postrm.debhelper
===================================================================
--- trunk/debian/kune.postrm.debhelper 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/debian/kune.postrm.debhelper 2012-03-31 21:43:21 UTC (rev 1813)
@@ -1,11 +0,0 @@
-# Automatically added by dh_installdebconf
-if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
- . /usr/share/debconf/confmodule
- db_purge
-fi
-# End automatically added section
-# Automatically added by dh_installinit
-if [ "$1" = "purge" ] ; then
- update-rc.d kune remove >/dev/null
-fi
-# End automatically added section
Deleted: trunk/debian/kune.prerm.debhelper
===================================================================
--- trunk/debian/kune.prerm.debhelper 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/debian/kune.prerm.debhelper 2012-03-31 21:43:21 UTC (rev 1813)
@@ -1,5 +0,0 @@
-# Automatically added by dh_installinit
-if [ -x "/etc/init.d/kune" ]; then
- invoke-rc.d kune stop || exit $?
-fi
-# End automatically added section
Modified: trunk/debian/kune.substvars
===================================================================
--- trunk/debian/kune.substvars 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/debian/kune.substvars 2012-03-31 21:43:21 UTC (rev 1813)
@@ -1 +0,0 @@
-misc:Depends=debconf (>= 0.5) | debconf-2.0
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/pom.xml 2012-03-31 21:43:21 UTC (rev 1813)
@@ -291,7 +291,9 @@
<groupId>com.calclab.emite</groupId>
<artifactId>emite</artifactId>
<version>r1694</version>
+ <!-- Used in server side also
<scope>provided</scope>
+ -->
</dependency>
<dependency>
<groupId>com.calclab.emite</groupId>
@@ -711,7 +713,9 @@
<groupId>com.bradrydzewski</groupId>
<artifactId>gwt-cal</artifactId>
<version>0.9.3-dndCreation</version>
+ <!-- Used in server side also
<scope>provided</scope>
+ -->
</dependency>
<dependency>
<groupId>org.mnode.ical4j</groupId>
Modified: trunk/src/main/java/cc/kune/barters/client/actions/BartersClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/barters/client/actions/BartersClientActions.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/barters/client/actions/BartersClientActions.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -38,6 +38,8 @@
import cc.kune.gspace.client.actions.ContentViewerShareMenu;
import cc.kune.gspace.client.actions.CopyContentMenuItem;
import cc.kune.gspace.client.actions.ParticipateInContentBtn;
+import cc.kune.gspace.client.actions.PurgeContainerBtn;
+import cc.kune.gspace.client.actions.PurgeContainerMenuItem;
import cc.kune.gspace.client.actions.PurgeContentBtn;
import cc.kune.gspace.client.actions.PurgeContentMenuItem;
import cc.kune.gspace.client.actions.RefreshContentMenuItem;
@@ -71,7 +73,9 @@
final Provider<ParticipateInContentBtn> participateBtn,
final Provider<DelFolderMenuItem> delFolderMenuItem,
final Provider<PurgeContentMenuItem> purgeMenuItem, final Provider<PurgeContentBtn> purgeBtn,
- final Provider<RefreshContentMenuItem> refresh, final Provider<CopyContentMenuItem> copyContent,
+ final Provider<PurgeContainerMenuItem> purgeFolderMenuItem,
+ final Provider<PurgeContainerBtn> purgeFolderBtn, final Provider<RefreshContentMenuItem> refresh,
+ final Provider<CopyContentMenuItem> copyContent,
final Provider<WriteToParticipantsMenuItem> writeToParticipants) {
super(session, stateManager, i18n, registry);
actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, optionsMenuContent, all);
@@ -102,6 +106,10 @@
actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeBtn, contents);
actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeMenuItem,
contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeFolderBtn,
+ containersNoRoot);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeFolderMenuItem,
+ containersNoRoot);
}
@Override
Modified: trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -42,6 +42,8 @@
import cc.kune.gspace.client.actions.ContentViewerShareMenu;
import cc.kune.gspace.client.actions.CopyContentMenuItem;
import cc.kune.gspace.client.actions.ParticipateInContentBtn;
+import cc.kune.gspace.client.actions.PurgeContainerBtn;
+import cc.kune.gspace.client.actions.PurgeContainerMenuItem;
import cc.kune.gspace.client.actions.PurgeContentBtn;
import cc.kune.gspace.client.actions.PurgeContentMenuItem;
import cc.kune.gspace.client.actions.RefreshContentMenuItem;
@@ -81,6 +83,8 @@
final Provider<ChatAboutContentBtn> chatAbout, final Provider<DelBlogMenuItem> delFolderMenuItem,
final Provider<CopyContentMenuItem> copyContent,
final Provider<PurgeContentMenuItem> purgeMenuItem, final Provider<PurgeContentBtn> purgeBtn,
+ final Provider<PurgeContainerMenuItem> purgeFolderMenuItem,
+ final Provider<PurgeContainerBtn> purgeFolderBtn,
final Provider<WriteToParticipantsMenuItem> writeToParticipants,
final Provider<SetAsHomePageMenuItem> setAsHomePage) {
super(session, stateManager, i18n, registry);
@@ -116,6 +120,10 @@
actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeBtn, contents);
actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeMenuItem,
contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeFolderBtn,
+ containersNoRoot);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeFolderMenuItem,
+ containersNoRoot);
newMenusRegistry.register(TYPE_BLOG, blogNewMenu.get());
newMenusRegistry.register(TYPE_POST,
(MenuDescriptor) postNewMenu.get().withText(i18n.t("Add Gadget")));
Modified: trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -77,8 +77,6 @@
StateContainerDTO moveContent(String userHash, StateToken contentToken, StateToken newContainerToken)
throws DefaultException;
- StateContainerDTO purgeContainer(String userHash, StateToken token);
-
StateContainerDTO purgeContent(String userHash, StateToken token);
RateResult rateContent(String userHash, StateToken token, Double value) throws DefaultException;
Modified: trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -77,8 +77,6 @@
void moveContent(String userHash, StateToken contentToken, StateToken newContainerToken,
AsyncCallback<StateContainerDTO> asyncCallback);
- void purgeContainer(String userHash, StateToken token, AsyncCallback<StateContainerDTO> callback);
-
void purgeContent(String userHash, StateToken token, AsyncCallback<StateContainerDTO> callback);
void rateContent(String userHash, StateToken token, Double value,
Modified: trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -79,7 +79,6 @@
private final HistoryWrapper history;
private StateToken previousGroupToken;
private String previousHash;
- private String previousTool;
/**
* When a historyChanged is interrupted (for instance because you are editing
* something), the new history token is stored here
@@ -101,7 +100,6 @@
this.history = history;
this.signIn = signIn;
this.previousGroupToken = null;
- this.previousTool = null;
this.previousHash = null;
this.resumedHistoryToken = null;
tokenMatcher.init(GwtWaverefEncoder.INSTANCE);
@@ -156,7 +154,7 @@
GroupChangedEvent.fire(eventBus, previousGroup, newGroup);
}
final String previousToolName = getPreviousTool();
- final String newTokenTool = newState.getToolName();
+ final String newTokenTool = newState.getStateToken().getTool();
final String newToolName = newTokenTool == null ? "" : newTokenTool;
if (startingUp() || previousToolName == null || !previousToolName.equals(newToolName)) {
ToolChangedEvent.fire(eventBus, previousGroupToken, newState.getStateToken());
@@ -247,7 +245,7 @@
}
private String getPreviousTool() {
- final String previousTool = startingUp() ? "" : this.previousTool;
+ final String previousTool = startingUp() ? "" : previousGroupToken.getTool();
return previousTool;
}
@@ -547,7 +545,6 @@
StateChangedEvent.fire(eventBus, newState);
checkGroupAndToolChange(newState);
previousGroupToken = newToken.copy();
- previousTool = newState.getToolName();
eventBus.fireEvent(new ProgressHideEvent());
}
Modified: trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -42,7 +42,6 @@
import cc.kune.domain.I18nLanguage;
import cc.kune.domain.finders.ContainerFinder;
import cc.kune.domain.finders.ContentFinder;
-import cc.kune.trash.server.TrashServerUtils;
import cc.kune.trash.shared.TrashToolConstants;
import com.google.common.base.Preconditions;
@@ -134,8 +133,9 @@
@Override
public Container purgeContainer(final Container container) {
- Preconditions.checkState(TrashServerUtils.inTrash(container),
- "Trying to purge a not deleted container: " + container);
+ // Enable this precondition ASAP
+ // Preconditions.checkState(TrashServerUtils.inTrash(container),
+ // "Trying to purge a not deleted container: " + container);
Preconditions.checkState(!container.isRoot(), "Trying to purge a root folder: " + container);
Preconditions.checkState(container.getChilds().size() == 0, "Container has folder childs");
Preconditions.checkState(container.getContents().size() == 0, "Container has content childs");
@@ -144,9 +144,6 @@
container.setParent(null);
persist(parent);
container.setOwner(null);
- // persist(parent);
- // merge(container);
- // flush();
remove(container);
return parent;
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -103,6 +103,7 @@
private final NotificationService notifyService;
private final ParticipantUtils participantUtils;
private final KuneBasicProperties properties;
+ private final SocialNetworkCache snCache;
private final UserFinder userFinder;
private final AccountStore waveAccountStore;
private final CustomUserRegistrationServlet waveUserRegister;
@@ -117,7 +118,8 @@
final CustomUserRegistrationServlet waveUserRegister, final AccountStore waveAccountStore,
final KuneWaveService kuneWaveManager, final ParticipantUtils participantUtils,
final KuneBasicProperties properties, final GroupManager groupManager,
- final NotificationService notifyService, final XmppRosterProvider xmppRoster) {
+ final NotificationService notifyService, final XmppRosterProvider xmppRoster,
+ final SocialNetworkCache snCache) {
super(provider, User.class);
this.userFinder = finder;
this.languageManager = languageManager;
@@ -133,6 +135,7 @@
this.groupManager = groupManager;
this.notifyService = notifyService;
this.xmppRoster = xmppRoster;
+ this.snCache = snCache;
}
/*
@@ -434,6 +437,7 @@
@Override
public void setSNetVisibility(final User user, final UserSNetVisibility visibility) {
user.setSNetVisibility(visibility);
+ snCache.expire(user.getUserGroup());
persist(user);
}
Modified: trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -454,22 +454,17 @@
@Authenticated
@Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Administrator)
@KuneTransactional
- public StateContainerDTO purgeContainer(final String userHash, final StateToken token) {
- final User user = getCurrentUser();
- final Long containerId = ContentUtils.parseId(token.getFolder());
- final Container container = containerManager.purgeContainer(finderService.getContainer(containerId));
- return mapState(stateService.create(user, container), user);
- }
-
- @Override
- @Authenticated
- @Authorizated(actionLevel = ActionLevel.content, accessRolRequired = AccessRol.Administrator)
- @KuneTransactional
public StateContainerDTO purgeContent(final String userHash, final StateToken token) {
final User user = getCurrentUser();
- final Long contentId = ContentUtils.parseId(token.getDocument());
- final Container container = contentManager.purgeContent(finderService.getContent(contentId));
- return mapState(stateService.create(user, container), user);
+ if (token.isComplete()) {
+ final Long contentId = ContentUtils.parseId(token.getDocument());
+ final Container container = contentManager.purgeContent(finderService.getContent(contentId));
+ return mapState(stateService.create(user, container), user);
+ } else {
+ final Long containerId = ContentUtils.parseId(token.getFolder());
+ final Container container = containerManager.purgeContainer(finderService.getContainer(containerId));
+ return mapState(stateService.create(user, container), user);
+ }
}
@Override
Modified: trunk/src/main/java/cc/kune/core/server/rpc/ContentRPCMock.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/ContentRPCMock.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/core/server/rpc/ContentRPCMock.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -132,12 +132,6 @@
}
@Override
- public StateContainerDTO purgeContainer(final String userHash, final StateToken token) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
public StateContainerDTO purgeContent(final String userHash, final StateToken token) {
// TODO Auto-generated method stub
return null;
Modified: trunk/src/main/java/cc/kune/core/server/tool/ToolSimple.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/tool/ToolSimple.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/core/server/tool/ToolSimple.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -24,6 +24,10 @@
private final String name;
private final String rootName;
+ public ToolSimple() {
+ this(null, null);
+ }
+
public ToolSimple(final String name, final String rootName) {
this.name = name;
this.rootName = rootName;
Modified: trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -42,6 +42,8 @@
import cc.kune.gspace.client.actions.ContentViewerShareMenu;
import cc.kune.gspace.client.actions.CopyContentMenuItem;
import cc.kune.gspace.client.actions.ParticipateInContentBtn;
+import cc.kune.gspace.client.actions.PurgeContainerBtn;
+import cc.kune.gspace.client.actions.PurgeContainerMenuItem;
import cc.kune.gspace.client.actions.PurgeContentBtn;
import cc.kune.gspace.client.actions.PurgeContentMenuItem;
import cc.kune.gspace.client.actions.RefreshContentMenuItem;
@@ -83,6 +85,8 @@
final Provider<CopyContentMenuItem> copyContent,
final Provider<WriteToParticipantsMenuItem> writeToParticipants,
final Provider<PurgeContentMenuItem> purgeMenuItem, final Provider<PurgeContentBtn> purgeBtn,
+ final Provider<PurgeContainerMenuItem> purgeFolderMenuItem,
+ final Provider<PurgeContainerBtn> purgeFolderBtn,
final NewMenusForTypeIdsRegistry newMenusRegistry, final DocsFolderNewMenu foldersNewMenu,
final DocsNewMenu docsNewMenu) {
super(session, stateManager, i18n, registry);
@@ -120,6 +124,11 @@
actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeBtn, contents);
actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeMenuItem,
contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeFolderBtn,
+ containersNoRoot);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeFolderMenuItem,
+ containersNoRoot);
+
newMenusRegistry.register(TYPE_FOLDER, foldersNewMenu.get());
newMenusRegistry.register(TYPE_ROOT, foldersNewMenu.get());
newMenusRegistry.register(TYPE_DOCUMENT,
Modified: trunk/src/main/java/cc/kune/domain/Container.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/Container.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/domain/Container.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -158,6 +158,27 @@
} else if (!id.equals(other.id)) {
return false;
}
+ if (name == null) {
+ if (other.name != null) {
+ return false;
+ }
+ } else if (!name.equals(other.name)) {
+ return false;
+ }
+ if (toolName == null) {
+ if (other.toolName != null) {
+ return false;
+ }
+ } else if (!toolName.equals(other.toolName)) {
+ return false;
+ }
+ if (typeId == null) {
+ if (other.typeId != null) {
+ return false;
+ }
+ } else if (!typeId.equals(other.typeId)) {
+ return false;
+ }
return true;
}
@@ -252,14 +273,6 @@
return accessLists != null;
}
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((id == null) ? 0 : id.hashCode());
- return result;
- }
-
@Transient
public boolean isLeaf() {
return childs.size() == 0 && contents.size() == 0;
@@ -271,9 +284,9 @@
}
public void removeChild(final Container child) {
- childs.size();
+ // Adding hash and equals to Container breaks move and delete
+ child.setParent(null);
childs.remove(child);
- // child.setParent(null);
}
public void removeContent(final Content content) {
Modified: trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -37,6 +37,8 @@
import cc.kune.gspace.client.actions.ContentViewerShareMenu;
import cc.kune.gspace.client.actions.CopyContentMenuItem;
import cc.kune.gspace.client.actions.ParticipateInContentBtn;
+import cc.kune.gspace.client.actions.PurgeContainerBtn;
+import cc.kune.gspace.client.actions.PurgeContainerMenuItem;
import cc.kune.gspace.client.actions.PurgeContentBtn;
import cc.kune.gspace.client.actions.PurgeContentMenuItem;
import cc.kune.gspace.client.actions.RefreshContentMenuItem;
@@ -76,9 +78,10 @@
final Provider<CopyContentMenuItem> copyContent, final Provider<TutorialContainerBtn> tutorialBtn,
final Provider<WriteToParticipantsMenuItem> writeToParticipants,
final Provider<PurgeContentMenuItem> purgeMenuItem, final Provider<PurgeContentBtn> purgeBtn,
- final Provider<ExportCalendarMenuItem> export, final Provider<CalendarGoNextBtn> calNextBtn,
- final CalendarOnOverMenu onOverMenu, final Provider<CalendarGoTodayBtn> goToday,
- final Provider<RefreshContentMenuItem> refresh) {
+ final Provider<PurgeContainerMenuItem> purgeFolderMenuItem,
+ final Provider<PurgeContainerBtn> purgeFolderBtn, final Provider<ExportCalendarMenuItem> export,
+ final Provider<CalendarGoNextBtn> calNextBtn, final CalendarOnOverMenu onOverMenu,
+ final Provider<CalendarGoTodayBtn> goToday, final Provider<RefreshContentMenuItem> refresh) {
super(session, stateManager, i18n, registry);
actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, optionsMenuContent, all);
actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, refresh, all);
@@ -105,6 +108,10 @@
actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeBtn, contents);
actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeMenuItem,
contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeFolderBtn,
+ containersNoRoot);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeFolderMenuItem,
+ containersNoRoot);
eventOpenMenuItem.get();
eventAddMenuItem.get();
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/ActionUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/ActionUtils.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/ActionUtils.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -39,4 +39,5 @@
: ((AbstractContentSimpleDTO) event.getTarget()).getStateToken();
return token;
}
+
}
Added: trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContainerBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContainerBtn.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContainerBtn.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -0,0 +1,61 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.gspace.client.actions;
+
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
+import cc.kune.core.client.actions.RolAction;
+import cc.kune.core.client.i18n.I18n;
+import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.client.rpcservices.ContentServiceHelper;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.shared.dto.AccessRolDTO;
+
+import com.google.inject.Inject;
+
+public class PurgeContainerBtn extends ButtonDescriptor {
+
+ public static class PurgeCurrentContainerAction extends RolAction {
+
+ private final ContentServiceHelper contentService;
+ private final Session session;
+
+ @Inject
+ public PurgeCurrentContainerAction(final ContentServiceHelper contentService,
+ final CoreResources res, final Session session) {
+ super(AccessRolDTO.Administrator, true);
+ this.contentService = contentService;
+ this.session = session;
+ this.withText(I18n.t("Delete permanently")).withIcon(res.cancel());
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ contentService.purgeContent(session.getCurrentStateToken());
+ }
+
+ }
+
+ @Inject
+ public PurgeContainerBtn(final PurgeCurrentContainerAction action) {
+ super(action);
+ }
+
+}
Added: trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContainerMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContainerMenuItem.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContainerMenuItem.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -0,0 +1,58 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.gspace.client.actions;
+
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.actions.RolAction;
+import cc.kune.core.client.i18n.I18n;
+import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.client.rpcservices.ContentServiceHelper;
+import cc.kune.core.shared.dto.AccessRolDTO;
+
+import com.google.inject.Inject;
+
+public class PurgeContainerMenuItem extends MenuItemDescriptor {
+ public static class PurgeContainerAction extends RolAction {
+
+ private final ContentServiceHelper contentService;
+
+ @Inject
+ public PurgeContainerAction(final ContentServiceHelper contentService, final CoreResources res) {
+ super(AccessRolDTO.Administrator, true);
+ this.contentService = contentService;
+ this.withText(I18n.t("Delete permanently")).withIcon(res.cancel());
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ contentService.purgeContent(ActionUtils.getActionToken(event));
+ }
+
+ }
+
+ @Inject
+ public PurgeContainerMenuItem(final I18nTranslationService i18n, final PurgeContainerAction action,
+ final CoreResources res) {
+ super(action);
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/lists/client/actions/ListsClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/ListsClientActions.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/lists/client/actions/ListsClientActions.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -41,6 +41,8 @@
import cc.kune.gspace.client.actions.ContentViewerShareMenu;
import cc.kune.gspace.client.actions.CopyContentMenuItem;
import cc.kune.gspace.client.actions.ParticipateInContentBtn;
+import cc.kune.gspace.client.actions.PurgeContainerBtn;
+import cc.kune.gspace.client.actions.PurgeContainerMenuItem;
import cc.kune.gspace.client.actions.PurgeContentBtn;
import cc.kune.gspace.client.actions.PurgeContentMenuItem;
import cc.kune.gspace.client.actions.RefreshContentMenuItem;
@@ -82,6 +84,8 @@
final Provider<CopyContentMenuItem> copyContent,
final Provider<RefreshContentMenuItem> refreshPost,
final Provider<PurgeContentMenuItem> purgeMenuItem, final Provider<PurgeContentBtn> purgeBtn,
+ final Provider<PurgeContainerMenuItem> purgeFolderMenuItem,
+ final Provider<PurgeContainerBtn> purgeFolderBtn,
final Provider<WriteToParticipantsMenuItem> writeToParticipants, final ListsNewMenu listNewMenu,
final PostNewMenu postNewMenu, final NewMenusForTypeIdsRegistry newMenusRegistry,
final Provider<ChatAboutContentBtn> chatAbout, final Provider<DelListMenuItem> delFolderMenuItem,
@@ -125,6 +129,10 @@
actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeBtn, contents);
actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeMenuItem,
contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeFolderBtn,
+ containersNoRoot);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeFolderMenuItem,
+ containersNoRoot);
newMenusRegistry.register(TYPE_LIST, listNewMenu.get());
newMenusRegistry.register(TYPE_ROOT, listNewMenu.get());
newMenusRegistry.register(TYPE_POST,
Modified: trunk/src/main/java/cc/kune/tasks/client/actions/TasksClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/tasks/client/actions/TasksClientActions.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/main/java/cc/kune/tasks/client/actions/TasksClientActions.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -42,6 +42,8 @@
import cc.kune.gspace.client.actions.ContentViewerShareMenu;
import cc.kune.gspace.client.actions.CopyContentMenuItem;
import cc.kune.gspace.client.actions.ParticipateInContentBtn;
+import cc.kune.gspace.client.actions.PurgeContainerBtn;
+import cc.kune.gspace.client.actions.PurgeContainerMenuItem;
import cc.kune.gspace.client.actions.PurgeContentBtn;
import cc.kune.gspace.client.actions.PurgeContentMenuItem;
import cc.kune.gspace.client.actions.RefreshContentMenuItem;
@@ -80,7 +82,9 @@
final Provider<AddCollabMembersToContentMenuItem> addCollabMembersMenuItem,
final Provider<AddPublicToContentMenuItem> addPublicMenuItem,
final Provider<PurgeContentMenuItem> purgeMenuItem, final Provider<PurgeContentBtn> purgeBtn,
- final Provider<ChatAboutContentBtn> chatAbout, final Provider<CopyContentMenuItem> copyContent,
+ final Provider<PurgeContainerMenuItem> purgeFolderMenuItem,
+ final Provider<PurgeContainerBtn> purgeFolderBtn, final Provider<ChatAboutContentBtn> chatAbout,
+ final Provider<CopyContentMenuItem> copyContent,
final Provider<WriteToParticipantsMenuItem> writeToParticipants,
final TasksFolderNewMenu taskFolderNewMenu, final TasksNewMenu taskNewMenu,
final NewMenusForTypeIdsRegistry newMenusRegistry,
@@ -127,6 +131,10 @@
actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeBtn, contents);
actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeMenuItem,
contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeFolderBtn,
+ containersNoRoot);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeFolderMenuItem,
+ containersNoRoot);
// Currently new menu in folders has no sense (because we have buttons for
// the same contents)
// newMenusRegistry.register(TYPE_FOLDER, taskFolderNewMenu.get());
Modified: trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceGetTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceGetTest.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceGetTest.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -19,6 +19,7 @@
*/
package cc.kune.core.server.integration.content;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -51,7 +52,7 @@
getSiteDefaultContent().getStateToken());
assertNotNull(response.getContentRights());
assertTrue(response.getContentRights().isEditable());
- assertTrue(response.getAccessLists().getAdmins().getList().size() == 1);
+ assertEquals(1, response.getAccessLists().getAdmins().getList().size());
}
@Before
@@ -68,15 +69,13 @@
assertNotNull(content.getContainer().getId());
assertNotNull(content.getToolName());
assertNotNull(content.getDocumentId());
- assertNotNull(content.getRateByUsers());
- assertNotNull(content.getRate());
}
@Test
public void defContentOfUserWithNoHomePage() throws Exception {
- final String userHash = doLogin().getUserHash();
- final StateAbstractDTO response = contentService.getContent(userHash, new StateToken());
- assertTrue(response.getStateToken().equals(getSiteDefaultContent().getStateToken()));
+ doLogin();
+ final StateAbstractDTO response = contentService.getContent(session.getHash(), new StateToken());
+ assertEquals(response.getStateToken(), getSiteDefaultContent().getStateToken());
}
@Test
Modified: trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -131,8 +131,31 @@
}
@Test
- public void delAndPurgeContainer() throws Exception {
+ public void delAndPurgeContent() throws Exception {
doLogin();
+ final StateContainerDTO trash = getTrash();
+ final StateContainerDTO added = createNewContent();
+ final StateAbstractDTO retrievedContent = contentService.getContent(session.getHash(),
+ added.getStateToken());
+ assertNotNull(retrievedContent.getStateToken());
+ final StateContainerDTO deleledContainer = contentService.delContent(session.getHash(),
+ retrievedContent.getStateToken());
+ assertEquals(1, defaultContent.getContainer().getContents().size());
+ assertEquals(1, deleledContainer.getContainer().getContents().size());
+ final StateContentDTO deletedContent = (StateContentDTO) contentService.getContent(
+ session.getHash(),
+ retrievedContent.getStateToken().setTool(TrashToolConstants.TOOL_NAME).setFolder(
+ trash.getStateToken().getFolder()));
+ assertEquals(TrashToolConstants.TOOL_NAME, deletedContent.getToolName());
+ assertEquals(1, deletedContent.getContainer().getContents().size());
+ final StateContainerDTO trashAfterPurge = contentService.purgeContent(session.getHash(),
+ deletedContent.getStateToken());
+ assertEquals(0, trashAfterPurge.getContainer().getContents().size());
+ }
+
+ @Test
+ public void delAndyPurgeContainer() throws Exception {
+ doLogin();
final StateContainerDTO state = contentService.addFolder(session.getHash(),
defaultContent.getStateToken(), "some folder", DocsToolConstants.TYPE_FOLDER);
final ContainerDTO newFolder = state.getContainer();
@@ -149,36 +172,13 @@
session.getHash(),
newFolder.getStateToken().setTool(TrashToolConstants.TOOL_NAME).setFolder(
newFolder.getStateToken().getFolder()));
- contentService.purgeContainer(session.getHash(), deletedFolder.getStateToken());
+ contentService.purgeContent(session.getHash(), deletedFolder.getStateToken());
final StateContainerDTO trashAfterPurge = getTrash();
assertEquals(0, trashAfterPurge.getContainer().getContents().size());
assertEquals(0, trashAfterPurge.getContainer().getChilds().size());
}
@Test
- public void delAndPurgeContent() throws Exception {
- doLogin();
- final StateContainerDTO trash = getTrash();
- final StateContainerDTO added = createNewContent();
- final StateAbstractDTO retrievedContent = contentService.getContent(session.getHash(),
- added.getStateToken());
- assertNotNull(retrievedContent.getStateToken());
- final StateContainerDTO deleledContainer = contentService.delContent(session.getHash(),
- retrievedContent.getStateToken());
- assertEquals(1, defaultContent.getContainer().getContents().size());
- assertEquals(1, deleledContainer.getContainer().getContents().size());
- final StateContentDTO deletedContent = (StateContentDTO) contentService.getContent(
- session.getHash(),
- retrievedContent.getStateToken().setTool(TrashToolConstants.TOOL_NAME).setFolder(
- trash.getStateToken().getFolder()));
- assertEquals(TrashToolConstants.TOOL_NAME, deletedContent.getToolName());
- assertEquals(1, deletedContent.getContainer().getContents().size());
- final StateContainerDTO trashAfterPurge = contentService.purgeContent(session.getHash(),
- deletedContent.getStateToken());
- assertEquals(0, trashAfterPurge.getContainer().getContents().size());
- }
-
- @Test
public void folderRename() throws Exception {
doLogin();
defaultContent = getSiteDefaultContent();
Modified: trunk/src/test/java/cc/kune/core/server/manager/ContainerManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/ContainerManagerDefaultTest.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/test/java/cc/kune/core/server/manager/ContainerManagerDefaultTest.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -99,8 +99,8 @@
assertEquals(1, parentFolder.getChilds().size());
containerManager.moveContainer(folderToMove, rootFolder);
assertEquals(rootFolder, folderToMove.getParent());
+ assertEquals(2, rootFolder.getChilds().size());
assertEquals(0, parentFolder.getChilds().size());
- assertEquals(2, rootFolder.getChilds().size());
assertEquals(2, folderToMove.getAbsolutePath().size());
assertEquals(rootFolder, folderToMove.getAbsolutePath().get(0));
assertEquals(folderToMove, folderToMove.getAbsolutePath().get(1));
Modified: trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java 2012-03-31 19:22:39 UTC (rev 1812)
+++ trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java 2012-03-31 21:43:21 UTC (rev 1813)
@@ -87,13 +87,6 @@
assertNotNull(result.getId());
}
- @Test(expected = InvalidStateException.class)
- public void passwdLengthIncorrect() {
- user = new User("test1", "test1 name", "test(a)example.com", "diggest".getBytes(), "salt".getBytes(),
- english, gb, getTimeZone());
- persist(user);
- }
-
/**
* This was not working:
* http://opensource.atlassian.com/projects/hibernate/browse/EJB-382
1
0
r1812 - in trunk: . debian src/main/java/cc/kune/core/server/persist src/main/java/cc/kune/core/server/properties src/main/java/cc/kune/core/server/rpc src/main/java/cc/kune/events/server/utils src/test/java/cc/kune/core/server/persist src/test/java/cc/kune/events/server/utils
by Vicente J. Ruiz Jurado 31 Mar '12
by Vicente J. Ruiz Jurado 31 Mar '12
31 Mar '12
Author: vjrj_
Date: 2012-03-31 21:22:39 +0200 (Sat, 31 Mar 2012)
New Revision: 1812
Added:
trunk/src/test/java/cc/kune/core/server/persist/CachedCollectionTest.java
trunk/src/test/java/cc/kune/events/server/utils/DateUtilsTest.java
Removed:
trunk/src/main/java/cc/kune/core/server/persist/CachedCollectionTest.java
trunk/src/main/java/cc/kune/events/server/utils/DateUtilsTest.java
Modified:
trunk/TROUBLESHOOT
trunk/debian/changelog
trunk/debian/files
trunk/pom.xml
trunk/src/main/java/cc/kune/core/server/persist/CachedCollection.java
trunk/src/main/java/cc/kune/core/server/properties/KunePropertiesDefault.java
trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java
Log:
Removing some compile warnings
Modified: trunk/TROUBLESHOOT
===================================================================
--- trunk/TROUBLESHOOT 2012-03-31 17:43:11 UTC (rev 1811)
+++ trunk/TROUBLESHOOT 2012-03-31 19:22:39 UTC (rev 1812)
@@ -139,6 +139,17 @@
Verify that your system supports UTF8 (in debian systems check /etc/locale.gen and locale-gen)
+** Java compile errors: incompatible types
+Sometimes you get errors like this, trying to compile:
+Authorizated.java:[50,47] incompatible types
+found : cc.kune.core.shared.domain.AccessRol
+required: cc.kune.core.shared.domain.AccessRol
+seems that happens with some openjdk6 versions. Workaround to compile from eclipse or using sun-jdk or opnejdk7.
+More info:
+https://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/611284
+update-java-alternatives -l
+try with:
+update-java-alternatives -s java-6-sun
** Emite troubleshooting
See:
Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog 2012-03-31 17:43:11 UTC (rev 1811)
+++ trunk/debian/changelog 2012-03-31 19:22:39 UTC (rev 1812)
@@ -1,3 +1,9 @@
+kune (0.1.0+b4) oneiric; urgency=low
+
+ * Improved trash funcionality, other minor changes
+
+ -- Vicente J. Ruiz Jurado <vjrj(a)ourproject.org> Sat, 31 Mar 2012 19:42:30 +0200
+
kune (0.1.0+b3) oneiric; urgency=low
* Several changes (cache of SN and events, minor style changes, etc). See ChangeLog
Modified: trunk/debian/files
===================================================================
--- trunk/debian/files 2012-03-31 17:43:11 UTC (rev 1811)
+++ trunk/debian/files 2012-03-31 19:22:39 UTC (rev 1812)
@@ -1 +1 @@
-kune_0.1.0+b3_all.deb java optional
+kune_0.1.0+b4_all.deb java optional
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-03-31 17:43:11 UTC (rev 1811)
+++ trunk/pom.xml 2012-03-31 19:22:39 UTC (rev 1812)
@@ -212,11 +212,13 @@
<groupId>org.cobogw.gwt</groupId>
<artifactId>cobogw</artifactId>
<version>1.3.1</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>com.gwtplatform</groupId>
<artifactId>gwtp-all</artifactId>
<version>0.5</version>
+ <scope>provided</scope>
<!-- <version>0.6-SNAPSHOT</version> -->
<exclusions>
<exclusion>
@@ -248,6 +250,7 @@
<dependency>
<groupId>org.adamtacy</groupId>
<artifactId>gwt-fx</artifactId>
+ <scope>provided</scope>
<version>r464</version>
</dependency>
<!-- <dependency> <groupId>com.jhickman.web.gwt</groupId> <artifactId>gwt-customuibinder</artifactId>
@@ -258,16 +261,19 @@
<groupId>com.allen_sauer.gwt.log.gwt-log</groupId>
<artifactId>gwt-log</artifactId>
<version>3.0.1</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>com.allen_sauer.gwt.voices.gwt-voices</groupId>
<artifactId>gwt-voices</artifactId>
<version>2.0.0</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>com.allen_sauer.gwt.dnd.gwt-dnd</groupId>
<artifactId>gwt-dnd</artifactId>
<version>3.0.1</version>
+ <scope>provided</scope>
</dependency>
<!-- utilities -->
<dependency>
@@ -285,6 +291,7 @@
<groupId>com.calclab.emite</groupId>
<artifactId>emite</artifactId>
<version>r1694</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>com.calclab.emite</groupId>
@@ -295,6 +302,7 @@
<groupId>com.calclab.emite</groupId>
<artifactId>hablar</artifactId>
<version>r1697</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>jivesoftware</groupId>
@@ -703,6 +711,7 @@
<groupId>com.bradrydzewski</groupId>
<artifactId>gwt-cal</artifactId>
<version>0.9.3-dndCreation</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mnode.ical4j</groupId>
Modified: trunk/src/main/java/cc/kune/core/server/persist/CachedCollection.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/persist/CachedCollection.java 2012-03-31 17:43:11 UTC (rev 1811)
+++ trunk/src/main/java/cc/kune/core/server/persist/CachedCollection.java 2012-03-31 19:22:39 UTC (rev 1812)
@@ -36,7 +36,7 @@
* @param <V>
* the value type
*/
-public class CachedCollection<K, V> implements Map<K, V> {
+public class CachedCollection<K, V> {
/** The cache. */
// private final Map<K, V> cache;
@@ -49,65 +49,53 @@
* the size of the cache
*/
public CachedCollection(final int size) {
- cache = Collections.synchronizedMap(new LRUMap(size));
+ cache = Collections.synchronizedMap(new LRUMap(size));
}
- @Override
public void clear() {
cache.clear();
}
- @Override
public boolean containsKey(final Object key) {
return cache.containsKey(key);
}
- @Override
public boolean containsValue(final Object value) {
return cache.containsKey(value);
}
- @Override
public Set<java.util.Map.Entry<K, V>> entrySet() {
return cache.entrySet();
}
- @Override
public V get(final Object key) {
return (V) cache.get(key);
}
- @Override
public boolean isEmpty() {
return cache.isEmpty();
}
- @Override
public Set<K> keySet() {
return cache.keySet();
}
- @Override
- public Object put(final Object key, final Object value) {
- return cache.put(key, value);
+ public V put(final K key, final V value) {
+ return (V) cache.put(key, value);
}
- @Override
public void putAll(final Map<? extends K, ? extends V> m) {
cache.putAll(m);
}
- @Override
public V remove(final Object key) {
return (V) cache.remove(key);
}
- @Override
public int size() {
return cache.size();
}
- @Override
public Collection<V> values() {
return cache.values();
}
Deleted: trunk/src/main/java/cc/kune/core/server/persist/CachedCollectionTest.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/persist/CachedCollectionTest.java 2012-03-31 17:43:11 UTC (rev 1811)
+++ trunk/src/main/java/cc/kune/core/server/persist/CachedCollectionTest.java 2012-03-31 19:22:39 UTC (rev 1812)
@@ -1,54 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-package cc.kune.core.server.persist;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import org.junit.Before;
-import org.junit.Test;
-
-public class CachedCollectionTest {
-
- private CachedCollection<String, String> cache;
-
- @Before
- public void before() {
- cache = new CachedCollection<String, String>(2);
- }
-
- @Test
- public void testBasicSize() {
- assertTrue(cache.size() == 0);
- final String first = "1";
- cache.put(first, "1b");
- final String snd = "2";
- cache.put(snd, "2b");
- final String third = "3";
- cache.put(third, "3b");
- assertNull(cache.get(first));
- assertNotNull(cache.get(snd));
- assertNotNull(cache.get(third));
- assertTrue(cache.size() == 2);
- }
-
-}
Modified: trunk/src/main/java/cc/kune/core/server/properties/KunePropertiesDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/properties/KunePropertiesDefault.java 2012-03-31 17:43:11 UTC (rev 1811)
+++ trunk/src/main/java/cc/kune/core/server/properties/KunePropertiesDefault.java 2012-03-31 19:22:39 UTC (rev 1812)
@@ -29,7 +29,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import sun.misc.SignalHandler;
import cc.kune.core.server.error.ServerException;
import com.google.inject.Inject;
@@ -46,13 +45,16 @@
this.fileName = fileName;
// http://stackoverflow.com/questions/40376/handle-signals-in-the-java-virtual…
// Runtime.getRuntime().addShutdownHook() ??
- sun.misc.Signal.handle(new sun.misc.Signal("HUP"), new SignalHandler() {
- @Override
- public void handle(final sun.misc.Signal sig) {
- LOG.warn("Received SIGHUP signal. Will reload kune.properties");
- loadConfiguration();
- }
- });
+ // Gives some warning in openjdk
+ // http://stackoverflow.com/questions/5023520/sending-signals-to-a-running-jvm
+ //
+ // sun.misc.Signal.handle(new sun.misc.Signal("HUP"), new SignalHandler() {
+ // @Override
+ // public void handle(final sun.misc.Signal sig) {
+ // LOG.warn("Received SIGHUP signal. Will reload kune.properties");
+ // loadConfiguration();
+ // }
+ // });
loadConfiguration();
}
Modified: trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java 2012-03-31 17:43:11 UTC (rev 1811)
+++ trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java 2012-03-31 19:22:39 UTC (rev 1812)
@@ -23,7 +23,6 @@
import java.util.List;
import java.util.TimeZone;
-import sun.misc.SignalHandler;
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.client.rpcservices.SiteService;
import cc.kune.core.server.InitData;
@@ -79,12 +78,15 @@
this.countryManager = countryManager;
this.serverToolRegistry = serverToolRegistry;
this.extMediaDescManager = extMediaDescManager;
- sun.misc.Signal.handle(new sun.misc.Signal("HUP"), new SignalHandler() {
- @Override
- public void handle(final sun.misc.Signal sig) {
- loadProperties(kuneProperties);
- }
- });
+ // Gives some warning in openjdk
+ // http://stackoverflow.com/questions/5023520/sending-signals-to-a-running-jvm
+ //
+ // sun.misc.Signal.handle(new sun.misc.Signal("HUP"), new SignalHandler() {
+ // @Override
+ // public void handle(final sun.misc.Signal sig) {
+ // loadProperties(kuneProperties);
+ // }
+ // });
loadProperties(kuneProperties);
}
Deleted: trunk/src/main/java/cc/kune/events/server/utils/DateUtilsTest.java
===================================================================
--- trunk/src/main/java/cc/kune/events/server/utils/DateUtilsTest.java 2012-03-31 17:43:11 UTC (rev 1811)
+++ trunk/src/main/java/cc/kune/events/server/utils/DateUtilsTest.java 2012-03-31 19:22:39 UTC (rev 1812)
@@ -1,42 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.events.server.utils;
-
-import static org.junit.Assert.assertEquals;
-
-import java.text.ParseException;
-
-import org.junit.Test;
-
-public class DateUtilsTest {
-
- private static final String SAMPLE = "2012-03-05T00:00:00.000+0100";
- private static final String SAMPLE2 = "2012-03-05T00:00:00.000+01:00";
-
- @Test
- public void basicTest() throws ParseException {
-
- DateUtils.toDate(SAMPLE);
- DateUtils.toDate(SAMPLE2);
-
- // Difference from GWT timezone and SimpleDate
- assertEquals("foo+0100", "foo+01:00".replaceFirst(DateUtils.TIMEZONE_REGEXP, "$1$2"));
- }
-}
Copied: trunk/src/test/java/cc/kune/core/server/persist/CachedCollectionTest.java (from rev 1809, trunk/src/main/java/cc/kune/core/server/persist/CachedCollectionTest.java)
===================================================================
--- trunk/src/test/java/cc/kune/core/server/persist/CachedCollectionTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/core/server/persist/CachedCollectionTest.java 2012-03-31 19:22:39 UTC (rev 1812)
@@ -0,0 +1,54 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.core.server.persist;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class CachedCollectionTest {
+
+ private CachedCollection<String, String> cache;
+
+ @Before
+ public void before() {
+ cache = new CachedCollection<String, String>(2);
+ }
+
+ @Test
+ public void testBasicSize() {
+ assertTrue(cache.size() == 0);
+ final String first = "1";
+ cache.put(first, "1b");
+ final String snd = "2";
+ cache.put(snd, "2b");
+ final String third = "3";
+ cache.put(third, "3b");
+ assertNull(cache.get(first));
+ assertNotNull(cache.get(snd));
+ assertNotNull(cache.get(third));
+ assertTrue(cache.size() == 2);
+ }
+
+}
Copied: trunk/src/test/java/cc/kune/events/server/utils/DateUtilsTest.java (from rev 1809, trunk/src/main/java/cc/kune/events/server/utils/DateUtilsTest.java)
===================================================================
--- trunk/src/test/java/cc/kune/events/server/utils/DateUtilsTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/events/server/utils/DateUtilsTest.java 2012-03-31 19:22:39 UTC (rev 1812)
@@ -0,0 +1,42 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.events.server.utils;
+
+import static org.junit.Assert.assertEquals;
+
+import java.text.ParseException;
+
+import org.junit.Test;
+
+public class DateUtilsTest {
+
+ private static final String SAMPLE = "2012-03-05T00:00:00.000+0100";
+ private static final String SAMPLE2 = "2012-03-05T00:00:00.000+01:00";
+
+ @Test
+ public void basicTest() throws ParseException {
+
+ DateUtils.toDate(SAMPLE);
+ DateUtils.toDate(SAMPLE2);
+
+ // Difference from GWT timezone and SimpleDate
+ assertEquals("foo+0100", "foo+01:00".replaceFirst(DateUtils.TIMEZONE_REGEXP, "$1$2"));
+ }
+}
1
0
Author: vjrj_
Date: 2012-03-31 19:43:11 +0200 (Sat, 31 Mar 2012)
New Revision: 1811
Added:
trunk/src/main/java/cc/kune/gspace/client/actions/ActionUtils.java
trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContentBtn.java
trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContentMenuItem.java
trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmorDefault.java
trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmorDefault.ui.xml
trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceCenterPanel.java
trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceCenterPanel.ui.xml
trunk/src/main/java/cc/kune/trash/server/TrashServerUtils.java
trunk/src/main/webapp/others/defuser.jpg
trunk/src/main/webapp/others/unknown.png
trunk/src/test/java/cc/kune/core/client/actions/ActionRegistryByTypeTest.java
trunk/src/test/java/cc/kune/gspace/client/armor/
Removed:
trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.java
trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.ui.xml
trunk/src/test/java/cc/kune/core/client/actions/ActionRegistryByTypeBorrarTest.java
Modified:
trunk/TODO
trunk/debian/changelog
trunk/debian/files
trunk/debian/kune.init
trunk/img/icons/from-private-to-public.svg
trunk/script/server.sh
trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java
trunk/src/main/java/cc/kune/barters/client/actions/BartersClientActions.java
trunk/src/main/java/cc/kune/barters/server/BarterServerTool.java
trunk/src/main/java/cc/kune/barters/shared/BartersToolConstants.java
trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java
trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java
trunk/src/main/java/cc/kune/blogs/server/BlogServerTool.java
trunk/src/main/java/cc/kune/blogs/shared/BlogsToolConstants.java
trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java
trunk/src/main/java/cc/kune/chat/client/actions/ChatClientActions.java
trunk/src/main/java/cc/kune/chat/server/ChatServerTool.java
trunk/src/main/java/cc/kune/chat/shared/ChatToolConstants.java
trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescCollection.java
trunk/src/main/java/cc/kune/core/client/actions/ActionRegistryByType.java
trunk/src/main/java/cc/kune/core/client/actions/xml/XMLActionsParser.java
trunk/src/main/java/cc/kune/core/client/dnd/FolderContainerDropController.java
trunk/src/main/java/cc/kune/core/client/registry/AbstractContentRegistry.java
trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java
trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java
trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceHelper.java
trunk/src/main/java/cc/kune/core/client/services/ClientFileDownloadUtils.java
trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java
trunk/src/main/java/cc/kune/core/client/ws/CoreViewImpl.java
trunk/src/main/java/cc/kune/core/public/ws.css
trunk/src/main/java/cc/kune/core/server/content/ContainerManager.java
trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java
trunk/src/main/java/cc/kune/core/server/content/ContentManager.java
trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java
trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
trunk/src/main/java/cc/kune/core/server/rpc/ContentRPCMock.java
trunk/src/main/java/cc/kune/core/server/state/StateAbstract.java
trunk/src/main/java/cc/kune/core/server/state/StateContainer.java
trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java
trunk/src/main/java/cc/kune/core/server/tool/ServerToolRegistry.java
trunk/src/main/java/cc/kune/core/shared/FileConstants.java
trunk/src/main/java/cc/kune/core/shared/dto/ContainerDTO.java
trunk/src/main/java/cc/kune/core/shared/dto/ContainerSimpleDTO.java
trunk/src/main/java/cc/kune/core/shared/dto/StateAbstractDTO.java
trunk/src/main/java/cc/kune/core/shared/dto/StateContainerDTO.java
trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java
trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java
trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java
trunk/src/main/java/cc/kune/docs/server/DocumentServerTool.java
trunk/src/main/java/cc/kune/docs/shared/DocsToolConstants.java
trunk/src/main/java/cc/kune/domain/Container.java
trunk/src/main/java/cc/kune/domain/Content.java
trunk/src/main/java/cc/kune/events/client/EventsClientTool.java
trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java
trunk/src/main/java/cc/kune/events/server/EventsServerTool.java
trunk/src/main/java/cc/kune/events/shared/EventsToolConstants.java
trunk/src/main/java/cc/kune/gallery/server/GalleryServerTool.java
trunk/src/main/java/cc/kune/gallery/shared/GalleryToolConstants.java
trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorEntryPoint.java
trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java
trunk/src/main/java/cc/kune/gspace/client/actions/ActionGroups.java
trunk/src/main/java/cc/kune/gspace/client/actions/CopyContentMenuItem.java
trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java
trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerUtils.java
trunk/src/main/java/cc/kune/gspace/client/viewers/TutorialViewer.java
trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java
trunk/src/main/java/cc/kune/lists/client/actions/ListsClientActions.java
trunk/src/main/java/cc/kune/lists/server/ListsServerTool.java
trunk/src/main/java/cc/kune/lists/shared/ListsToolConstants.java
trunk/src/main/java/cc/kune/tasks/client/TasksClientTool.java
trunk/src/main/java/cc/kune/tasks/client/actions/TasksClientActions.java
trunk/src/main/java/cc/kune/tasks/server/TaskServerTool.java
trunk/src/main/java/cc/kune/tasks/shared/TasksToolConstants.java
trunk/src/main/java/cc/kune/trash/client/TrashClientTool.java
trunk/src/main/java/cc/kune/trash/client/actions/TrashClientActions.java
trunk/src/main/java/cc/kune/trash/server/TrashServerTool.java
trunk/src/main/java/cc/kune/trash/shared/TrashToolConstants.java
trunk/src/main/java/cc/kune/wave/server/ParticipantUtils.java
trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java
trunk/src/main/java/cc/kune/wiki/client/actions/WikiClientActions.java
trunk/src/main/java/cc/kune/wiki/server/WikiServerTool.java
trunk/src/main/java/cc/kune/wiki/shared/WikiToolConstants.java
trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java
trunk/src/main/resources/wave-server-production.properties
trunk/src/main/webapp/others/unknown.jpg
trunk/src/test/java/cc/kune/core/server/PersistencePreLoadedDataTest.java
trunk/src/test/java/cc/kune/core/server/TestHelper.java
trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java
trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java
trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceAddTest.java
trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java
trunk/src/test/java/cc/kune/core/server/manager/ContainerManagerDefaultTest.java
trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java
trunk/src/test/java/cc/kune/core/shared/utils/SharedFileDownloadUtilsTest.java
trunk/src/test/java/cc/kune/docs/DocumentToolTest.java
trunk/src/test/java/cc/kune/selenium/spaces/GroupSpacePageObject.java
Log:
NEW - # 222: Create a trash folder icon and improve contents delete functionality
http://kune.ourproject.org/issues/ticket/222
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/TODO 2012-03-31 17:43:11 UTC (rev 1811)
@@ -12,6 +12,10 @@
nick == assigned to
* SHORT-TERM (URGENT)
+** setui/root/port 80
+ [ ] http://wiki.eclipse.org/Jetty/Howto/Port80#Configuring_Jetty.27s_SetUID_Fea…
+ [ ] https://github.com/disconnect/apache-websocket
+ [ ] SSL + proxy normal
** tutorials
*** via btn
*** via hash (future) #tuto(token,slide)
Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/debian/changelog 2012-03-31 17:43:11 UTC (rev 1811)
@@ -1,3 +1,9 @@
+kune (0.1.0+b3) oneiric; urgency=low
+
+ * Several changes (cache of SN and events, minor style changes, etc). See ChangeLog
+
+ -- Vicente J. Ruiz Jurado <vjrj(a)ourproject.org> Fri, 30 Mar 2012 20:18:19 +0200
+
kune (0.1.0+b2) unstable; urgency=low
* Perms in daemon. SIGHUP to reload. Other minor changes
Modified: trunk/debian/files
===================================================================
--- trunk/debian/files 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/debian/files 2012-03-31 17:43:11 UTC (rev 1811)
@@ -1 +1 @@
-kune_0.1.0+b2_all.deb java optional
+kune_0.1.0+b3_all.deb java optional
Modified: trunk/debian/kune.init
===================================================================
--- trunk/debian/kune.init 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/debian/kune.init 2012-03-31 17:43:11 UTC (rev 1811)
@@ -12,6 +12,7 @@
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="kune server"
NAME=kune
+USER=kune
DAEMON=/usr/share/kune/bin/server.sh
# Arguments to run the daemon with (see server.sh -h)
DAEMON_ARGS="-j /usr/share/kune/lib/kune-complete.jar -a"
@@ -51,9 +52,9 @@
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
- start-stop-daemon --start --quiet --pidfile $PIDFILE -d /usr/share/kune/ -c $NAME:$NAME -b --exec $DAEMON --test > /dev/null \
+ start-stop-daemon --start --quiet --pidfile $PIDFILE -d /usr/share/kune/ -c $USER:$USER -b --exec $DAEMON --test > /dev/null \
|| return 1
- start-stop-daemon --start --quiet --pidfile $PIDFILE -d /usr/share/kune/ -c $NAME:$NAME -b --exec $DAEMON -- \
+ start-stop-daemon --start --quiet --pidfile $PIDFILE -d /usr/share/kune/ -c $USER:$USER -b --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2
# Add code here, if necessary, that waits for the process to be ready
@@ -103,7 +104,7 @@
log_daemon_msg "Reloading kune"
# Seems that dont works if the user/group is not the same:
# http://stackoverflow.com/questions/4147288/how-to-trap-a-signal-in-a-java-a…
- start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --user $NAME --group $NAME --name $NAME
+ start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --user $USER --group $USER --name $NAME
return 0
}
Modified: trunk/img/icons/from-private-to-public.svg
===================================================================
--- trunk/img/icons/from-private-to-public.svg 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/img/icons/from-private-to-public.svg 2012-03-31 17:43:11 UTC (rev 1811)
@@ -25,7 +25,7 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="0.66041902"
+ inkscape:zoom="0.67942388"
inkscape:cx="372.04724"
inkscape:cy="526.18109"
inkscape:document-units="px"
@@ -896,5 +896,56 @@
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
</g>
+ <rect
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/src/main/webapp/others/unknown.png"
+ y="68.119125"
+ x="423.80432"
+ height="90"
+ width="90"
+ id="rect14554"
+ style="opacity:0.82999998;color:#000000;fill:#ffffff;fill-opacity:0.94901961;fill-rule:nonzero;stroke:none;stroke-width:1.40678155;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/src/main/webapp/others/unknown.png"
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#666666;stroke-width:1.48864591000000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path14558"
+ sodipodi:cx="90"
+ sodipodi:cy="32.362183"
+ sodipodi:rx="20"
+ sodipodi:ry="10"
+ d="m 110,32.362183 a 20,10 0 1 1 -40,0 20,10 0 1 1 40,0 z"
+ transform="matrix(1.9,0,0,3.8,297.80431,-9.8571688)" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:#e6e6e6;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
+ x="453.29498"
+ y="138.63554"
+ id="text14573"
+ sodipodi:linespacing="125%"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/src/main/webapp/others/unknown.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"><tspan
+ sodipodi:role="line"
+ id="tspan14575"
+ x="453.29498"
+ y="138.63554"
+ style="font-size:72px;font-weight:bold;fill:#333333;stroke:none">?</tspan></text>
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/src/main/webapp/others/unknown.png"
+ transform="matrix(1.9,0,0,3.8,297.80431,-9.8571688)"
+ d="m 110,32.362183 a 20,10 0 1 1 -40,0 20,10 0 1 1 40,0 z"
+ sodipodi:ry="10"
+ sodipodi:rx="20"
+ sodipodi:cy="32.362183"
+ sodipodi:cx="90"
+ id="path14566"
+ style="color:#000000;fill:none;stroke:#999999;stroke-width:1.48864591;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
</g>
</svg>
Modified: trunk/script/server.sh
===================================================================
--- trunk/script/server.sh 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/script/server.sh 2012-03-31 17:43:11 UTC (rev 1811)
@@ -36,7 +36,7 @@
# See src/main/resources/jaas.config in svn
JAAS_CONFIG=$KUNE_HOME/jaas.config
# See src/main/resources/log4j.properties in svn
-LOGJ4_CONFIG=$KUNE_HOME/log4j.properties
+LOGJ4_CONFIG=file://$KUNE_HOME/log4j.properties
SUSPEND="n"
DEBUG=""
Modified: trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/barters/client/BartersClientTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.barters.client;
-import static cc.kune.barters.shared.BartersToolConstants.NAME;
+import static cc.kune.barters.shared.BartersToolConstants.TOOL_NAME;
import static cc.kune.barters.shared.BartersToolConstants.TYPE_BARTER;
import static cc.kune.barters.shared.BartersToolConstants.TYPE_FOLDER;
import static cc.kune.barters.shared.BartersToolConstants.TYPE_ROOT;
@@ -43,7 +43,7 @@
final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources,
final IconicResources icons) {
super(
- NAME,
+ TOOL_NAME,
i18n.t("barters"),
i18n.t("A decentralized way to offer (or ask for) services and goods to your groups or to anyone. Bartering means the exchange of goods by the agreement of two people"),
icons.barters(), AccessRolDTO.Viewer, toolSelector, cntCapRegistry, i18n, navResources);
@@ -63,7 +63,7 @@
@Override
public String getName() {
- return NAME;
+ return TOOL_NAME;
}
private void registerIcons() {
Modified: trunk/src/main/java/cc/kune/barters/client/actions/BartersClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/barters/client/actions/BartersClientActions.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/barters/client/actions/BartersClientActions.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,6 +19,7 @@
\*/
package cc.kune.barters.client.actions;
+import static cc.kune.barters.shared.BartersToolConstants.TOOL_NAME;
import static cc.kune.barters.shared.BartersToolConstants.TYPE_BARTER;
import static cc.kune.barters.shared.BartersToolConstants.TYPE_FOLDER;
import static cc.kune.barters.shared.BartersToolConstants.TYPE_ROOT;
@@ -37,9 +38,12 @@
import cc.kune.gspace.client.actions.ContentViewerShareMenu;
import cc.kune.gspace.client.actions.CopyContentMenuItem;
import cc.kune.gspace.client.actions.ParticipateInContentBtn;
+import cc.kune.gspace.client.actions.PurgeContentBtn;
+import cc.kune.gspace.client.actions.PurgeContentMenuItem;
import cc.kune.gspace.client.actions.RefreshContentMenuItem;
import cc.kune.gspace.client.actions.TutorialContainerBtn;
import cc.kune.gspace.client.actions.WriteToParticipantsMenuItem;
+import cc.kune.trash.shared.TrashToolConstants;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -66,34 +70,38 @@
final Provider<TutorialContainerBtn> tutorialBtn,
final Provider<ParticipateInContentBtn> participateBtn,
final Provider<DelFolderMenuItem> delFolderMenuItem,
+ final Provider<PurgeContentMenuItem> purgeMenuItem, final Provider<PurgeContentBtn> purgeBtn,
final Provider<RefreshContentMenuItem> refresh, final Provider<CopyContentMenuItem> copyContent,
final Provider<WriteToParticipantsMenuItem> writeToParticipants) {
super(session, stateManager, i18n, registry);
- actionsRegistry.addAction(ActionGroups.TOPBAR, optionsMenuContent, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, refresh, all);
- actionsRegistry.addAction(ActionGroups.BOTTOMBAR, folderGoUp, contents);
- actionsRegistry.addAction(ActionGroups.BOTTOMBAR, folderGoUp, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, shareMenuContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addAllMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addAdminMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addCollabMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addPublicMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, tutorialBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newBartersBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, participateBtn, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newFolderBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, copyContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, writeToParticipants, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, delContentMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, delFolderMenuItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addAllMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addAdminMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addCollabMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addPublicMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, copyContent, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, writeToParticipants, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, optionsMenuContent, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, refresh, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.BOTTOMBAR, folderGoUp, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.BOTTOMBAR, folderGoUp, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, shareMenuContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addAllMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addAdminMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addCollabMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addPublicMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, tutorialBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newBartersBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, participateBtn, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newFolderBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, copyContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, writeToParticipants, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, openContentMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, openContentMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, delContentMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, delFolderMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addAllMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addAdminMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addCollabMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addPublicMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, copyContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, writeToParticipants, contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeBtn, contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeMenuItem,
+ contents);
}
@Override
Modified: trunk/src/main/java/cc/kune/barters/server/BarterServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/barters/server/BarterServerTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/barters/server/BarterServerTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.barters.server;
-import static cc.kune.barters.shared.BartersToolConstants.NAME;
+import static cc.kune.barters.shared.BartersToolConstants.TOOL_NAME;
import static cc.kune.barters.shared.BartersToolConstants.ROOT_NAME;
import static cc.kune.barters.shared.BartersToolConstants.TYPE_BARTER;
import static cc.kune.barters.shared.BartersToolConstants.TYPE_FOLDER;
@@ -57,7 +57,7 @@
public BarterServerTool(final ContentManager contentManager, final ContainerManager containerManager,
final ToolConfigurationManager configurationManager, final I18nTranslationService i18n,
final CreationService creationService) {
- super(NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_BARTER), Arrays.asList(TYPE_ROOT, TYPE_FOLDER),
+ super(TOOL_NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_BARTER), Arrays.asList(TYPE_ROOT, TYPE_FOLDER),
Arrays.asList(TYPE_FOLDER), Arrays.asList(TYPE_ROOT, TYPE_FOLDER), contentManager,
containerManager, creationService, configurationManager, i18n, ServerToolTarget.forUsers);
gadgetUrl = UrlUtils.of(BARTER_GADGET);
Modified: trunk/src/main/java/cc/kune/barters/shared/BartersToolConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/barters/shared/BartersToolConstants.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/barters/shared/BartersToolConstants.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -21,11 +21,11 @@
public final class BartersToolConstants {
- public static final String NAME = "barters";
+ public static final String TOOL_NAME = "barters";
public static final String ROOT_NAME = "barters";
- public static final String TYPE_BARTER = NAME + "." + "barter";
- public static final String TYPE_FOLDER = NAME + "." + "folder";
- public static final String TYPE_ROOT = NAME + "." + "root";
+ public static final String TYPE_BARTER = TOOL_NAME + "." + "barter";
+ public static final String TYPE_FOLDER = TOOL_NAME + "." + "folder";
+ public static final String TYPE_ROOT = TOOL_NAME + "." + "root";
private BartersToolConstants() {
}
Modified: trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/blogs/client/BlogsClientTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.blogs.client;
-import static cc.kune.blogs.shared.BlogsToolConstants.NAME;
+import static cc.kune.blogs.shared.BlogsToolConstants.TOOL_NAME;
import static cc.kune.blogs.shared.BlogsToolConstants.TYPE_BLOG;
import static cc.kune.blogs.shared.BlogsToolConstants.TYPE_POST;
import static cc.kune.blogs.shared.BlogsToolConstants.TYPE_ROOT;
@@ -44,7 +44,7 @@
final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources,
final IconicResources icons) {
super(
- NAME,
+ TOOL_NAME,
i18n.t(BlogsToolConstants.ROOT_NAME),
i18n.t("Blogs are a chronological list of posts (ordered by date) about a specific topic. Each post can be commented by the visitors"),
icons.blogs(), AccessRolDTO.Viewer, toolSelector, cntCapRegistry, i18n, navResources);
@@ -64,7 +64,7 @@
@Override
public String getName() {
- return NAME;
+ return TOOL_NAME;
}
private void registerIcons() {
Modified: trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/blogs/client/actions/BlogsClientActions.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,6 +19,7 @@
\*/
package cc.kune.blogs.client.actions;
+import static cc.kune.blogs.shared.BlogsToolConstants.TOOL_NAME;
import static cc.kune.blogs.shared.BlogsToolConstants.TYPE_BLOG;
import static cc.kune.blogs.shared.BlogsToolConstants.TYPE_POST;
import static cc.kune.blogs.shared.BlogsToolConstants.TYPE_ROOT;
@@ -41,10 +42,13 @@
import cc.kune.gspace.client.actions.ContentViewerShareMenu;
import cc.kune.gspace.client.actions.CopyContentMenuItem;
import cc.kune.gspace.client.actions.ParticipateInContentBtn;
+import cc.kune.gspace.client.actions.PurgeContentBtn;
+import cc.kune.gspace.client.actions.PurgeContentMenuItem;
import cc.kune.gspace.client.actions.RefreshContentMenuItem;
import cc.kune.gspace.client.actions.SetAsHomePageMenuItem;
import cc.kune.gspace.client.actions.TutorialContainerBtn;
import cc.kune.gspace.client.actions.WriteToParticipantsMenuItem;
+import cc.kune.trash.shared.TrashToolConstants;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -76,38 +80,42 @@
final PostNewMenu postNewMenu, final NewMenusForTypeIdsRegistry newMenusRegistry,
final Provider<ChatAboutContentBtn> chatAbout, final Provider<DelBlogMenuItem> delFolderMenuItem,
final Provider<CopyContentMenuItem> copyContent,
+ final Provider<PurgeContentMenuItem> purgeMenuItem, final Provider<PurgeContentBtn> purgeBtn,
final Provider<WriteToParticipantsMenuItem> writeToParticipants,
final Provider<SetAsHomePageMenuItem> setAsHomePage) {
super(session, stateManager, i18n, registry);
- actionsRegistry.addAction(ActionGroups.TOPBAR, optionsMenuContent, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newPostIconBtn, noRoot);
- actionsRegistry.addAction(ActionGroups.TOPBAR, blogNewMenu, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.TOPBAR, postNewMenu, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, refresh, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newPostItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newBlogBtn, TYPE_ROOT);
- actionsRegistry.addAction(ActionGroups.BOTTOMBAR, folderGoUp, contents);
- actionsRegistry.addAction(ActionGroups.BOTTOMBAR, folderGoUp, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, shareMenuContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addAllMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addAdminMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addCollabMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addPublicMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, tutorialBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, participateBtn, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, chatAbout, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, copyContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, writeToParticipants, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, delContentMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, delFolderMenuItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addAllMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addAdminMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addCollabMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addPublicMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, copyContent, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, writeToParticipants, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, optionsMenuContent, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newPostIconBtn, noRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, blogNewMenu, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, postNewMenu, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, refresh, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newPostItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newBlogBtn, TYPE_ROOT);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.BOTTOMBAR, folderGoUp, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.BOTTOMBAR, folderGoUp, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, shareMenuContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addAllMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addAdminMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addCollabMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addPublicMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, tutorialBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, participateBtn, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, chatAbout, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, copyContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, writeToParticipants, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, openContentMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, openContentMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, delContentMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, delFolderMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addAllMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addAdminMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addCollabMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addPublicMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, copyContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, writeToParticipants, contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeBtn, contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeMenuItem,
+ contents);
newMenusRegistry.register(TYPE_BLOG, blogNewMenu.get());
newMenusRegistry.register(TYPE_POST,
(MenuDescriptor) postNewMenu.get().withText(i18n.t("Add Gadget")));
Modified: trunk/src/main/java/cc/kune/blogs/server/BlogServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/blogs/server/BlogServerTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/blogs/server/BlogServerTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.blogs.server;
-import static cc.kune.blogs.shared.BlogsToolConstants.NAME;
+import static cc.kune.blogs.shared.BlogsToolConstants.TOOL_NAME;
import static cc.kune.blogs.shared.BlogsToolConstants.ROOT_NAME;
import static cc.kune.blogs.shared.BlogsToolConstants.TYPE_BLOG;
import static cc.kune.blogs.shared.BlogsToolConstants.TYPE_POST;
@@ -46,7 +46,7 @@
public BlogServerTool(final ContentManager contentManager, final ContainerManager containerManager,
final ToolConfigurationManager configurationManager, final I18nTranslationService i18n,
final CreationService creationService) {
- super(NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_POST, TYPE_UPLOADEDFILE),
+ super(TOOL_NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_POST, TYPE_UPLOADEDFILE),
Arrays.asList(TYPE_BLOG), Arrays.asList(TYPE_BLOG), Arrays.asList(TYPE_ROOT), contentManager,
containerManager, creationService, configurationManager, i18n, ServerToolTarget.forBoth);
}
Modified: trunk/src/main/java/cc/kune/blogs/shared/BlogsToolConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/blogs/shared/BlogsToolConstants.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/blogs/shared/BlogsToolConstants.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -23,12 +23,12 @@
public final class BlogsToolConstants {
- public static final String NAME = "blogs";
+ public static final String TOOL_NAME = "blogs";
public static final String ROOT_NAME = "blogs";
- public static final String TYPE_BLOG = NAME + "." + "blog";
- public static final String TYPE_POST = NAME + "." + "post";
- public static final String TYPE_ROOT = NAME + "." + "root";
- public static final String TYPE_UPLOADEDFILE = NAME + "." + ToolConstants.UPLOADEDFILE_SUFFIX;
+ public static final String TYPE_BLOG = TOOL_NAME + "." + "blog";
+ public static final String TYPE_POST = TOOL_NAME + "." + "post";
+ public static final String TYPE_ROOT = TOOL_NAME + "." + "root";
+ public static final String TYPE_UPLOADEDFILE = TOOL_NAME + "." + ToolConstants.UPLOADEDFILE_SUFFIX;
private BlogsToolConstants() {
}
Modified: trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.chat.client;
-import static cc.kune.chat.shared.ChatToolConstants.NAME;
+import static cc.kune.chat.shared.ChatToolConstants.TOOL_NAME;
import static cc.kune.chat.shared.ChatToolConstants.TYPE_ROOM;
import static cc.kune.chat.shared.ChatToolConstants.TYPE_ROOT;
import cc.kune.chat.client.resources.ChatResources;
@@ -45,7 +45,7 @@
final ChatResources res, final IconicResources icons) {
// FIXME: change this in ChatConstants and in db via migration
super(
- NAME,
+ TOOL_NAME,
i18n.t("chatrooms"),
i18n.t(
"A 'room' where you can have a group-chat with many users at once. Rooms can be public or private. Users can be from [%s] or other sites (compatible with gmail chat)",
@@ -58,7 +58,7 @@
@Override
public String getName() {
- return NAME;
+ return TOOL_NAME;
}
private void registerIcons() {
Modified: trunk/src/main/java/cc/kune/chat/client/actions/ChatClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/ChatClientActions.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/chat/client/actions/ChatClientActions.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,6 +19,7 @@
\*/
package cc.kune.chat.client.actions;
+import static cc.kune.chat.shared.ChatToolConstants.TOOL_NAME;
import static cc.kune.chat.shared.ChatToolConstants.TYPE_ROOM;
import static cc.kune.chat.shared.ChatToolConstants.TYPE_ROOT;
import cc.kune.core.client.actions.ActionRegistryByType;
@@ -51,14 +52,14 @@
final Provider<OpenRoomBtn> openRoomBtn, final Provider<TutorialContainerBtn> tutorialBtn,
final Provider<ContentViewerOptionsMenu> optionsMenuContent) {
super(session, stateManager, i18n, registry);
- actionsRegistry.addAction(ActionGroups.TOPBAR, optionsMenuContent, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, refresh, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newRoomBtn, TYPE_ROOT);
- actionsRegistry.addAction(ActionGroups.BOTTOMBAR, folderGoUp, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, tutorialBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, openRoomBtn, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, openRoomMenuItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, openRoomArchiveMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, optionsMenuContent, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, refresh, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newRoomBtn, TYPE_ROOT);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.BOTTOMBAR, folderGoUp, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, tutorialBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, openRoomBtn, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, openRoomMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, openRoomArchiveMenuItem, containersNoRoot);
}
@Override
Modified: trunk/src/main/java/cc/kune/chat/server/ChatServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/server/ChatServerTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/chat/server/ChatServerTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.chat.server;
-import static cc.kune.chat.shared.ChatToolConstants.NAME;
+import static cc.kune.chat.shared.ChatToolConstants.TOOL_NAME;
import static cc.kune.chat.shared.ChatToolConstants.ROOT_NAME;
import static cc.kune.chat.shared.ChatToolConstants.TYPE_ROOM;
import static cc.kune.chat.shared.ChatToolConstants.TYPE_ROOT;
@@ -49,7 +49,7 @@
final ContentManager contentManager, final ContainerManager containerManager,
final ChatManagerDefault chatManager, final I18nTranslationService i18n,
final CreationService creationService) {
- super(NAME, ROOT_NAME, TYPE_ROOT, Collections.<String> emptyList(),
+ super(TOOL_NAME, ROOT_NAME, TYPE_ROOT, Collections.<String> emptyList(),
Collections.<String> emptyList(), Arrays.asList(TYPE_ROOM), Arrays.asList(TYPE_ROOT),
contentManager, containerManager, creationService, configurationManager, i18n,
ServerToolTarget.forGroups);
Modified: trunk/src/main/java/cc/kune/chat/shared/ChatToolConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/shared/ChatToolConstants.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/chat/shared/ChatToolConstants.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -21,11 +21,11 @@
public final class ChatToolConstants {
- public static final String NAME = "chats";
+ public static final String TOOL_NAME = "chats";
public static final String ROOT_NAME = "chats";
- public static final String TYPE_CHAT = NAME + "." + "chat";
- public static final String TYPE_ROOM = NAME + "." + "room";
- public static final String TYPE_ROOT = NAME + "." + "root";
+ public static final String TYPE_CHAT = TOOL_NAME + "." + "chat";
+ public static final String TYPE_ROOM = TOOL_NAME + "." + "room";
+ public static final String TYPE_ROOT = TOOL_NAME + "." + "root";
private ChatToolConstants() {
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescCollection.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescCollection.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescCollection.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -24,6 +24,7 @@
// @PMD:REVIEWED:AtLeastOneConstructor: by vjrj on 26/05/09 12:31
public class GuiActionDescCollection extends ArrayList<GuiActionDescrip> {
+ public static final GuiActionDescCollection EMPTY = new GuiActionDescCollection();
private static final long serialVersionUID = 6759723760404227737L;
public void add(final GuiActionDescrip... descriptors) {
Modified: trunk/src/main/java/cc/kune/core/client/actions/ActionRegistryByType.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/ActionRegistryByType.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/client/actions/ActionRegistryByType.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -57,12 +57,13 @@
collection.add(descrip);
}
- public void addAction(final Provider<? extends GuiActionDescrip> action) {
- addAction(GENERIC_GROUP_ACTION, action, GENERIC_TYPE_ID);
- }
+ // public void addAction(final Provider<? extends GuiActionDescrip> action) {
+ // addAction(GENERIC_GROUP_ACTION, action, GENERIC_TYPE_ID);
+ // }
- public void addAction(final String actionsGroupId, final GuiActionDescrip descrip, final String typeId) {
- addAction(actionsGroupId, new Provider<GuiActionDescrip>() {
+ public void addAction(@Nonnull final String tool, final String actionsGroupId,
+ final GuiActionDescrip descrip, final String typeId) {
+ addAction(tool, actionsGroupId, new Provider<GuiActionDescrip>() {
@Override
public GuiActionDescrip get() {
return descrip;
@@ -70,34 +71,35 @@
}, typeId);
}
- public void addAction(@Nonnull final String actionsGroupId,
+ public void addAction(@Nonnull final String tool, @Nonnull final String actionsGroupId,
final Provider<? extends GuiActionDescrip> action) {
- addAction(actionsGroupId, action, GENERIC_TYPE_ID);
+ addAction(tool, actionsGroupId, action, GENERIC_TYPE_ID);
}
- public void addAction(@Nonnull final String actionsGroupId,
+ public void addAction(@Nonnull final String tool, @Nonnull final String actionsGroupId,
final @Nonnull Provider<? extends GuiActionDescrip> action, final ContentStatus status,
@Nonnull final String... typeIds) {
for (final String typeId : typeIds) {
- addAction(actionsGroupId, action, IdGenerator.generate(typeId, status.toString()));
+ addAction(tool, actionsGroupId, action, IdGenerator.generate(typeId, status.toString()));
}
}
- public void addAction(@Nonnull final String actionsGroupId,
+ public void addAction(@Nonnull final String tool, @Nonnull final String actionsGroupId,
final @Nonnull Provider<? extends GuiActionDescrip> action, @Nonnull final String... typeIds) {
for (final String typeId : typeIds) {
- final GuiActionDescProviderCollection actionColl = getActions(actionsGroupId, typeId);
+ final GuiActionDescProviderCollection actionColl = getActions(tool, actionsGroupId, typeId);
actionColl.add(action);
- actions.put(genKey(actionsGroupId, typeId), actionColl);
+ actions.put(genKey(tool, actionsGroupId, typeId), actionColl);
}
}
- private String genKey(final String actionsGroupId, final String typeId) {
- return actionsGroupId + KEY_SEPARATOR + typeId;
+ private String genKey(final String tool, final String actionsGroupId, final String typeId) {
+ return tool + KEY_SEPARATOR + actionsGroupId + KEY_SEPARATOR + typeId;
}
- private GuiActionDescProviderCollection getActions(final String actionsGroupId, final String typeId) {
- final String key = genKey(actionsGroupId, typeId);
+ private GuiActionDescProviderCollection getActions(final String tool, final String actionsGroupId,
+ final String typeId) {
+ final String key = genKey(tool, actionsGroupId, typeId);
GuiActionDescProviderCollection actionColl = actions.get(key);
if (actionColl == null) {
actionColl = new GuiActionDescProviderCollection();
@@ -106,20 +108,22 @@
return actionColl;
}
- public GuiActionDescCollection getCurrentActions(final Object targetItem, final boolean isLogged,
- final AccessRights rights, @Nullable final String actionsGroup) {
- return getCurrentActions(targetItem, GENERIC_TYPE_ID, isLogged, rights, actionsGroup);
+ public GuiActionDescCollection getCurrentActions(final String tool, final Object targetItem,
+ final boolean isLogged, final AccessRights rights, @Nullable final String actionsGroup) {
+ return getCurrentActions(tool, targetItem, GENERIC_TYPE_ID, isLogged, rights, actionsGroup);
}
- public GuiActionDescCollection getCurrentActions(final Object targetItem, final String typeId,
- final boolean isLogged, final AccessRights rights) {
- return getCurrentActions(targetItem, typeId, isLogged, rights, null);
+ public GuiActionDescCollection getCurrentActions(@Nonnull final String tool, final Object targetItem,
+ final String typeId, final boolean isLogged, final AccessRights rights) {
+ return getCurrentActions(tool, targetItem, typeId, isLogged, rights, null);
}
- public <T> GuiActionDescCollection getCurrentActions(final Object targetItem, final String typeId,
- final boolean isLogged, final AccessRights rights, @Nullable final String actionsGroupId) {
+ public <T> GuiActionDescCollection getCurrentActions(final String tool, final Object targetItem,
+ final String typeId, final boolean isLogged, final AccessRights rights,
+ @Nullable final String actionsGroupId) {
final GuiActionDescCollection collection = new GuiActionDescCollection();
- for (final Provider<? extends GuiActionDescrip> descripProv : getActions(actionsGroupId, typeId)) {
+ for (final Provider<? extends GuiActionDescrip> descripProv : getActions(tool, actionsGroupId,
+ typeId)) {
final GuiActionDescrip descrip = descripProv.get();
final AbstractAction action = descrip.getAction();
if (action instanceof RolAction) {
@@ -133,13 +137,13 @@
return collection;
}
- public <T> GuiActionDescCollection getCurrentActions(final Object targetItem, final String typeId,
- final ContentStatus status, final boolean isLogged, final AccessRights rights,
- @Nullable final String actionsGroupId) {
+ public <T> GuiActionDescCollection getCurrentActions(@Nonnull final String tool,
+ final Object targetItem, final String typeId, final ContentStatus status, final boolean isLogged,
+ final AccessRights rights, @Nullable final String actionsGroupId) {
final GuiActionDescCollection collection = new GuiActionDescCollection();
- collection.addAll(getCurrentActions(targetItem, typeId, isLogged, rights, actionsGroupId));
- collection.addAll(getCurrentActions(targetItem, IdGenerator.generate(typeId, status.toString()),
- isLogged, rights, actionsGroupId));
+ collection.addAll(getCurrentActions(tool, targetItem, typeId, isLogged, rights, actionsGroupId));
+ collection.addAll(getCurrentActions(tool, targetItem,
+ IdGenerator.generate(typeId, status.toString()), isLogged, rights, actionsGroupId));
return collection;
}
Modified: trunk/src/main/java/cc/kune/core/client/actions/xml/XMLActionsParser.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/xml/XMLActionsParser.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/client/actions/xml/XMLActionsParser.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -98,11 +98,11 @@
}
private Provider<GuiActionDescrip> createMenuItem(final XMLGuiActionDescriptor descrip,
- final String origTypeId, final AbstractAction action) {
+ final String tool, final String origTypeId, final AbstractAction action) {
final String path = descrip.getPath();
final MenuDescriptor menu = newMenusRegistry.get(origTypeId);
assert menu != null;
- final SubMenuDescriptor submenu = getSubMenu(menu, origTypeId, path);
+ final SubMenuDescriptor submenu = getSubMenu(menu, tool, origTypeId, path);
final Provider<GuiActionDescrip> menuItemProvider = new Provider<GuiActionDescrip>() {
@Override
public GuiActionDescrip get() {
@@ -118,8 +118,8 @@
return menuItemProvider;
}
- private SubMenuDescriptor getSubMenu(final MenuDescriptor menu, final String typeId,
- final String parentS) {
+ private SubMenuDescriptor getSubMenu(final MenuDescriptor menu, final String tool,
+ final String typeId, final String parentS) {
final String[] path = parentS.split(SEP);
SubMenuDescriptor current = null;
for (int i = 0; i < path.length; i++) {
@@ -132,7 +132,7 @@
subMenuDescriptor = new SubMenuDescriptor(parent, false, i18n.t(name));
// subMenuDescriptor.setVisible(false);
submenus.put(subpathId, subMenuDescriptor);
- actionRegistry.addAction(ActionGroups.TOPBAR, subMenuDescriptor, typeId);
+ actionRegistry.addAction(tool, ActionGroups.TOPBAR, subMenuDescriptor, typeId);
}
current = subMenuDescriptor;
}
@@ -160,6 +160,7 @@
assert extension != null;
for (final XMLTypeId typeId : descrip.getTypeIds()) {
final String origTypeId = typeId.getOrigTypeId();
+ final String tool = origTypeId.split("\\.")[0];
final String contentIntro = descrip.getNewContentTextIntro();
final String destTypeId = typeId.getDestTypeId();
AbstractAction action;
@@ -175,8 +176,9 @@
extension.getExtName(), destTypeId, extension.getIconUrl(),
descrip.getNewContentTitle(), TextUtils.empty(contentIntro) ? "" : contentIntro);
}
- final Provider<GuiActionDescrip> menuItemProvider = createMenuItem(descrip, origTypeId, action);
- actionRegistry.addAction(ActionGroups.TOPBAR, menuItemProvider, origTypeId);
+ final Provider<GuiActionDescrip> menuItemProvider = createMenuItem(descrip, tool, origTypeId,
+ action);
+ actionRegistry.addAction(tool, ActionGroups.TOPBAR, menuItemProvider, origTypeId);
}
}
}
Modified: trunk/src/main/java/cc/kune/core/client/dnd/FolderContainerDropController.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/dnd/FolderContainerDropController.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/client/dnd/FolderContainerDropController.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -104,7 +104,7 @@
} else if (getTarget() instanceof ToolSelectorItemPanel) {
destToken = new StateToken(session.getCurrentGroupShortName(),
((ToolSelectorItemPanel) getTarget()).getName());
- if (!destToken.getTool().equals(TrashToolConstants.NAME)) {
+ if (!destToken.getTool().equals(TrashToolConstants.TOOL_NAME)) {
// By now only move to trash
notImplemented();
return;
Modified: trunk/src/main/java/cc/kune/core/client/registry/AbstractContentRegistry.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/registry/AbstractContentRegistry.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/client/registry/AbstractContentRegistry.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -22,30 +22,34 @@
import java.util.ArrayList;
public abstract class AbstractContentRegistry {
- private final ArrayList<String> registry;
+ private final ArrayList<String> registry;
- public AbstractContentRegistry() {
- registry = new ArrayList<String>();
- }
+ public AbstractContentRegistry() {
+ registry = new ArrayList<String>();
+ }
- public boolean contains(String typeId) {
- return registry.contains(typeId);
- }
+ public String[] asArray() {
+ return registry.toArray(new String[registry.size()]);
+ }
- public void register(String... typeIds) {
- for (String typeId : typeIds) {
- registry.add(typeId);
- }
- }
+ public boolean contains(final String typeId) {
+ return registry.contains(typeId);
+ }
- @Override
- public String toString() {
- return "registry: " + registry;
+ public void register(final String... typeIds) {
+ for (final String typeId : typeIds) {
+ registry.add(typeId);
}
+ }
- public void unregister(String... typeIds) {
- for (String typeId : typeIds) {
- registry.remove(typeId);
- }
+ @Override
+ public String toString() {
+ return "registry: " + registry;
+ }
+
+ public void unregister(final String... typeIds) {
+ for (final String typeId : typeIds) {
+ registry.remove(typeId);
}
+ }
}
Modified: trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -77,6 +77,10 @@
StateContainerDTO moveContent(String userHash, StateToken contentToken, StateToken newContainerToken)
throws DefaultException;
+ StateContainerDTO purgeContainer(String userHash, StateToken token);
+
+ StateContainerDTO purgeContent(String userHash, StateToken token);
+
RateResult rateContent(String userHash, StateToken token, Double value) throws DefaultException;
void removeAuthor(String userHash, StateToken token, String authorShortName) throws DefaultException;
Modified: trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -77,6 +77,10 @@
void moveContent(String userHash, StateToken contentToken, StateToken newContainerToken,
AsyncCallback<StateContainerDTO> asyncCallback);
+ void purgeContainer(String userHash, StateToken token, AsyncCallback<StateContainerDTO> callback);
+
+ void purgeContent(String userHash, StateToken token, AsyncCallback<StateContainerDTO> callback);
+
void rateContent(String userHash, StateToken token, Double value,
AsyncCallback<RateResult> asyncCallback);
Modified: trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceHelper.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceHelper.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceHelper.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -126,4 +126,35 @@
}
});
}
+
+ public void purgeContent(final StateToken token) {
+ ConfirmAskEvent.fire(eventBus, i18n.t("Please confirm"), i18n.t("Are you sure?"), i18n.t("Yes"),
+ i18n.t("No"), null, null, new OnAcceptCallback() {
+ @Override
+ public void onSuccess() {
+ NotifyUser.showProgress();
+ contentService.get().purgeContent(session.getUserHash(), token,
+ new AsyncCallbackSimple<StateContainerDTO>() {
+ @Override
+ public void onFailure(final Throwable caught) {
+ // Should we do something with
+ // ContainerNotEmptyException?
+ super.onFailure(caught);
+ NotifyUser.hideProgress();
+ }
+
+ @Override
+ public void onSuccess(final StateContainerDTO state) {
+ final StateToken parentToken = state.getStateToken();
+ if (session.getCurrentStateToken().equals(parentToken)) {
+ stateManager.setRetrievedStateAndGo(state);
+ } else {
+ stateManager.gotoStateToken(parentToken, false);
+ }
+ NotifyUser.hideProgress();
+ }
+ });
+ }
+ });
+ }
}
Modified: trunk/src/main/java/cc/kune/core/client/services/ClientFileDownloadUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/services/ClientFileDownloadUtils.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/client/services/ClientFileDownloadUtils.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -32,13 +32,11 @@
public class ClientFileDownloadUtils extends SharedFileDownloadUtils {
- private final ImageUtils imageUtils;
private final Session session;
@Inject
- public ClientFileDownloadUtils(final Session session, final ImageUtils imageUtils) {
+ public ClientFileDownloadUtils(final Session session) {
this.session = session;
- this.imageUtils = imageUtils;
}
private String calculateUrl(final StateToken token, final boolean download, final boolean useHash) {
@@ -81,17 +79,6 @@
return calculateUrl(token, false, true);
}
- public String getLogoAvatarHtml(final StateToken groupToken, final boolean groupHasLogo,
- final boolean isPersonal, final int size, final int hvspace) {
- if (groupHasLogo) {
- return "<img hspace='" + hvspace + "' vspace='" + hvspace + "' align='left' style='width: " + size
- + "px; height: " + size + "px;' src='" + getLogoImageUrl(groupToken.getGroup()) + "'>";
- } else {
- return isPersonal ? imageUtils.getImageHtml(ImageDescriptor.personDef)
- : imageUtils.getImageHtml(ImageDescriptor.groupDefIcon);
- }
- }
-
public String getUrl(final StateToken token) {
return calculateUrl(token, false, false);
}
Modified: trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -79,6 +79,7 @@
private final HistoryWrapper history;
private StateToken previousGroupToken;
private String previousHash;
+ private String previousTool;
/**
* When a historyChanged is interrupted (for instance because you are editing
* something), the new history token is stored here
@@ -100,6 +101,7 @@
this.history = history;
this.signIn = signIn;
this.previousGroupToken = null;
+ this.previousTool = null;
this.previousHash = null;
this.resumedHistoryToken = null;
tokenMatcher.init(GwtWaverefEncoder.INSTANCE);
@@ -154,7 +156,7 @@
GroupChangedEvent.fire(eventBus, previousGroup, newGroup);
}
final String previousToolName = getPreviousTool();
- final String newTokenTool = newState.getStateToken().getTool();
+ final String newTokenTool = newState.getToolName();
final String newToolName = newTokenTool == null ? "" : newTokenTool;
if (startingUp() || previousToolName == null || !previousToolName.equals(newToolName)) {
ToolChangedEvent.fire(eventBus, previousGroupToken, newState.getStateToken());
@@ -245,7 +247,7 @@
}
private String getPreviousTool() {
- final String previousTool = startingUp() ? "" : previousGroupToken.getTool();
+ final String previousTool = startingUp() ? "" : this.previousTool;
return previousTool;
}
@@ -545,6 +547,7 @@
StateChangedEvent.fire(eventBus, newState);
checkGroupAndToolChange(newState);
previousGroupToken = newToken.copy();
+ previousTool = newState.getToolName();
eventBus.fireEvent(new ProgressHideEvent());
}
Modified: trunk/src/main/java/cc/kune/core/client/ws/CoreViewImpl.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ws/CoreViewImpl.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/client/ws/CoreViewImpl.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -21,7 +21,7 @@
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.state.impl.StateManagerDefault;
-import cc.kune.gspace.client.armor.impl.GSpaceArmorImpl;
+import cc.kune.gspace.client.armor.GSpaceArmorDefault;
import cc.kune.gspace.client.armor.resources.GSpaceArmorResources;
import com.google.gwt.core.client.GWT;
@@ -35,7 +35,7 @@
*/
public class CoreViewImpl extends ViewImpl implements CorePresenter.CoreView {
- private final GSpaceArmorImpl armor;
+ private final GSpaceArmorDefault armor;
/**
* Instantiates a new core view.
@@ -44,7 +44,7 @@
* the body
*/
@Inject
- public CoreViewImpl(final GSpaceArmorImpl armor, final StateManagerDefault stateManager) {
+ public CoreViewImpl(final GSpaceArmorDefault armor, final StateManagerDefault stateManager) {
this.armor = armor;
GWT.<CoreResources> create(CoreResources.class).css().ensureInjected();
GWT.<GSpaceArmorResources> create(GSpaceArmorResources.class).style().ensureInjected();
Modified: trunk/src/main/java/cc/kune/core/public/ws.css
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.css 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/public/ws.css 2012-03-31 17:43:11 UTC (rev 1811)
@@ -730,6 +730,7 @@
.k-publicspace-description {
font-size: 14px;
display: table-cell;
+ padding-right: 20px;
}
.k-publicspace-actions {
Modified: trunk/src/main/java/cc/kune/core/server/content/ContainerManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContainerManager.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/server/content/ContainerManager.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -41,6 +41,8 @@
Container moveContainer(Container container, Container newContainer);
+ Container purgeContainer(Container container);
+
Container renameFolder(Group group, Container container, String newName) throws DefaultException;
SearchResult<Container> search(String search);
Modified: trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -42,8 +42,10 @@
import cc.kune.domain.I18nLanguage;
import cc.kune.domain.finders.ContainerFinder;
import cc.kune.domain.finders.ContentFinder;
+import cc.kune.trash.server.TrashServerUtils;
import cc.kune.trash.shared.TrashToolConstants;
+import com.google.common.base.Preconditions;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
@@ -120,16 +122,36 @@
}
if (container.isRoot()) {
// Cannot move root container
- throw new AccessViolationException();
+ throw new AccessViolationException("Trying to delete a root folder: " + container);
}
final Container oldContainer = container.getParent();
oldContainer.removeChild(container);
newContainer.addChild(container);
container.setParent(newContainer);
+ container.setToolName(newContainer.getToolName());
return persist(container);
}
@Override
+ public Container purgeContainer(final Container container) {
+ Preconditions.checkState(TrashServerUtils.inTrash(container),
+ "Trying to purge a not deleted container: " + container);
+ Preconditions.checkState(!container.isRoot(), "Trying to purge a root folder: " + container);
+ Preconditions.checkState(container.getChilds().size() == 0, "Container has folder childs");
+ Preconditions.checkState(container.getContents().size() == 0, "Container has content childs");
+ final Container parent = container.getParent();
+ parent.removeChild(container);
+ container.setParent(null);
+ persist(parent);
+ container.setOwner(null);
+ // persist(parent);
+ // merge(container);
+ // flush();
+ remove(container);
+ return parent;
+ }
+
+ @Override
public Container renameFolder(final Group group, final Container container, final String newName)
throws DefaultException {
FilenameUtils.checkBasicFilename(newName);
Modified: trunk/src/main/java/cc/kune/core/server/content/ContentManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContentManager.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/server/content/ContentManager.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -70,6 +70,8 @@
Content moveContent(Content content, Container newContainer);
+ Container purgeContent(Content content);
+
RateResult rateContent(User rater, Long contentId, Double value) throws DefaultException;
void removeAuthor(User user, Long contentId, String authorShortName) throws DefaultException;
Modified: trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -42,6 +42,7 @@
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.actions.xml.XMLWaveExtension;
+import cc.kune.core.client.errors.AccessViolationException;
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.client.errors.I18nNotFoundException;
import cc.kune.core.client.errors.MoveOnSameContainerException;
@@ -60,7 +61,6 @@
import cc.kune.core.server.utils.FilenameUtils;
import cc.kune.core.shared.domain.ContentStatus;
import cc.kune.core.shared.domain.RateResult;
-import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.SocialNetworkSubGroup;
import cc.kune.domain.Container;
import cc.kune.domain.Content;
@@ -75,6 +75,7 @@
import cc.kune.domain.finders.UserFinder;
import cc.kune.events.server.utils.EventsCache;
import cc.kune.events.shared.EventsToolConstants;
+import cc.kune.trash.server.TrashServerUtils;
import cc.kune.wave.server.KuneWaveServerUtils;
import cc.kune.wave.server.ParticipantUtils;
import cc.kune.wave.server.kspecific.KuneWaveService;
@@ -82,6 +83,7 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
+import com.google.wave.api.Participants;
@Singleton
public class ContentManagerDefault extends DefaultManager<Content, Long> implements ContentManager {
@@ -183,15 +185,11 @@
}
private void clearEventsCacheIfNecessary(final Container previousParent) {
- if (previousParent.getToolName().equals(EventsToolConstants.NAME)) {
+ if (previousParent.getToolName().equals(EventsToolConstants.TOOL_NAME)) {
eventsCache.remove(previousParent);
}
}
- private void clearEventsCacheIfNecessary(final StateToken token) {
- clearEventsCacheIfNecessary(finder.getContainer(token.getFolder()));
- }
-
@Override
public Content copyContent(final User user, final Container destination, final Content contentToCopy) {
try {
@@ -324,7 +322,31 @@
return persist(content);
}
+ /**
+ * Purge content (permanent delete)
+ *
+ * @param content
+ * the content to purge
+ */
@Override
+ public Container purgeContent(final Content content) {
+ if (!TrashServerUtils.inTrash(content)) {
+ throw new AccessViolationException("Trying to purge a not deleted content:" + content);
+ }
+ if (content.isWave()) {
+ final WaveRef waveRef = KuneWaveServerUtils.getWaveRef(content);
+ final String author = getContentAuthor(content);
+ final Participants participants = kuneWaveManager.getParticipants(waveRef, author);
+ kuneWaveManager.delParticipants(waveRef, author, participantUtils.arrayFrom(participants));
+ }
+ content.authorsClear();
+ final Container container = content.getContainer();
+ container.removeContent(content);
+ remove(content);
+ return container;
+ }
+
+ @Override
public RateResult rateContent(final User rater, final Long contentId, final Double value)
throws DefaultException {
final Content content = finder.getContent(contentId);
Modified: trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -49,6 +49,7 @@
private final InputStream groupLogo;
GroupManager groupManager;
private final InputStream personLogo;
+ private final InputStream unknownLogo;
@Inject
public EntityLogoDownloadManager((a)Named(CoreSettings.RESOURCE_BASES) final List<String> resourceBases,
@@ -58,6 +59,8 @@
FileConstants.PERSON_NO_AVATAR_IMAGE);
groupLogo = FileDownloadManagerUtils.searchFileInResourcBases(resourceBases,
FileConstants.GROUP_NO_AVATAR_IMAGE);
+ unknownLogo = FileDownloadManagerUtils.searchFileInResourcBases(resourceBases,
+ FileConstants.NO_RESULT_AVATAR_IMAGE);
}
@Override
@@ -65,14 +68,19 @@
throws ServletException, IOException {
final StateToken stateToken = new StateToken(req.getParameter(FileConstants.TOKEN));
-
+ final String onlyUserS = req.getParameter(FileConstants.ONLY_USERS);
+ final boolean onlyUsers = Boolean.parseBoolean(onlyUserS);
Group group = Group.NO_GROUP;
try {
group = groupManager.findByShortName(stateToken.getGroup());
if (group == Group.NO_GROUP) {
- throw new NoResultException("Group not found trying to get the logo");
+ unknownResult(resp);
+ return;
}
-
+ if (onlyUsers && !group.isPersonal()) {
+ unknownResult(resp);
+ return;
+ }
if (!group.hasLogo()) {
FileDownloadManagerUtils.returnFile((group.isPersonal() ? personLogo : groupLogo),
resp.getOutputStream());
@@ -87,9 +95,12 @@
resp.getOutputStream().write(logo);
}
} catch (final NoResultException e) {
- FileDownloadManagerUtils.returnNotFound404(resp);
- return;
+ unknownResult(resp);
}
}
+ private void unknownResult(final HttpServletResponse resp) throws IOException {
+ FileDownloadManagerUtils.returnFile(unknownLogo, resp.getOutputStream());
+ }
+
}
Modified: trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -75,8 +75,7 @@
import cc.kune.domain.Content;
import cc.kune.domain.Group;
import cc.kune.domain.User;
-import cc.kune.events.server.utils.EventsCache;
-import cc.kune.trash.shared.TrashToolConstants;
+import cc.kune.trash.server.TrashServerUtils;
import com.google.inject.Inject;
@@ -87,7 +86,6 @@
private final ContainerManager containerManager;
private final ContentManager contentManager;
private final CreationService creationService;
- private final EventsCache eventsCache;
private final FinderService finderService;
private final GroupManager groupManager;
private final Mapper mapper;
@@ -103,8 +101,7 @@
final StateService stateService, final CreationService creationService,
final GroupManager groupManager, final ContentManager contentManager,
final ContainerManager containerManager, final TagUserContentManager tagManager,
- final Mapper mapper, final ChatManager chatManager, final KuneWaveManager waveManager,
- final EventsCache eventsCache) {
+ final Mapper mapper, final ChatManager chatManager, final KuneWaveManager waveManager) {
this.finderService = finderService;
this.userSession = userSession;
this.accessService = accessService;
@@ -118,7 +115,6 @@
this.mapper = mapper;
this.chatManager = chatManager;
this.waveManager = waveManager;
- this.eventsCache = eventsCache;
}
@Override
@@ -134,7 +130,7 @@
@Override
@Authenticated
- @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
+ @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Administrator, mustCheckMembership = false)
@KuneTransactional
public StateContentDTO addContent(final String userHash, final StateToken parentToken,
final String title, final String typeId) throws DefaultException {
@@ -407,7 +403,10 @@
public StateContainerDTO moveContent(final String userHash, final StateToken movedToken,
final StateToken newContainerToken) throws DefaultException {
final User user = getCurrentUser();
- final boolean toTrash = newContainerToken.getTool().equals(TrashToolConstants.NAME);
+ final boolean toTrash = TrashServerUtils.isTrash(newContainerToken);
+
+ // FIXME: this not should be here ... should be in the managers
+
// Search the container id (because sometimes we get only #group.tool
// tokens)
final Long newContainerId = newContainerToken.hasGroupToolAndFolder() ? ContentUtils.parseId(newContainerToken.getFolder())
@@ -453,6 +452,28 @@
@Override
@Authenticated
+ @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Administrator)
+ @KuneTransactional
+ public StateContainerDTO purgeContainer(final String userHash, final StateToken token) {
+ final User user = getCurrentUser();
+ final Long containerId = ContentUtils.parseId(token.getFolder());
+ final Container container = containerManager.purgeContainer(finderService.getContainer(containerId));
+ return mapState(stateService.create(user, container), user);
+ }
+
+ @Override
+ @Authenticated
+ @Authorizated(actionLevel = ActionLevel.content, accessRolRequired = AccessRol.Administrator)
+ @KuneTransactional
+ public StateContainerDTO purgeContent(final String userHash, final StateToken token) {
+ final User user = getCurrentUser();
+ final Long contentId = ContentUtils.parseId(token.getDocument());
+ final Container container = contentManager.purgeContent(finderService.getContent(contentId));
+ return mapState(stateService.create(user, container), user);
+ }
+
+ @Override
+ @Authenticated
@Authorizated(accessRolRequired = AccessRol.Viewer)
@KuneTransactional
public RateResult rateContent(final String userHash, final StateToken token, final Double value)
Modified: trunk/src/main/java/cc/kune/core/server/rpc/ContentRPCMock.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/ContentRPCMock.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/server/rpc/ContentRPCMock.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -132,6 +132,18 @@
}
@Override
+ public StateContainerDTO purgeContainer(final String userHash, final StateToken token) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public StateContainerDTO purgeContent(final String userHash, final StateToken token) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
public RateResult rateContent(final String userHash, final StateToken token, final Double value)
throws DefaultException {
// TODO Auto-generated method stub
Modified: trunk/src/main/java/cc/kune/core/server/state/StateAbstract.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/state/StateAbstract.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/server/state/StateAbstract.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -23,6 +23,7 @@
import cc.kune.core.shared.domain.utils.AccessRights;
import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.domain.Container;
import cc.kune.domain.Group;
import cc.kune.domain.ParticipationData;
import cc.kune.domain.SocialNetwork;
@@ -31,74 +32,92 @@
public abstract class StateAbstract {
- private List<String> enabledTools;
- private Group group;
- private StateToken stateToken;
- private String title;
- private SocialNetworkData socialNetworkData;
+ private List<String> enabledTools;
+ private Group group;
+ private Container rootContainer;
+ private SocialNetworkData socialNetworkData;
+ private StateToken stateToken;
+ private String title;
+ private String toolName;
- public StateAbstract() {
- }
+ public StateAbstract() {
+ }
- public List<String> getEnabledTools() {
- return enabledTools;
- }
+ public List<String> getEnabledTools() {
+ return enabledTools;
+ }
- public Group getGroup() {
- return group;
- }
+ public Group getGroup() {
+ return group;
+ }
- public SocialNetwork getGroupMembers() {
- return socialNetworkData.getGroupMembers();
- }
+ public SocialNetwork getGroupMembers() {
+ return socialNetworkData.getGroupMembers();
+ }
- public AccessRights getGroupRights() {
- return socialNetworkData.getGroupRights();
- }
+ public AccessRights getGroupRights() {
+ return socialNetworkData.getGroupRights();
+ }
- public ParticipationData getParticipation() {
- return socialNetworkData.getUserParticipation();
- }
+ public ParticipationData getParticipation() {
+ return socialNetworkData.getUserParticipation();
+ }
- public SocialNetworkData getSocialNetworkData() {
- return socialNetworkData;
- }
+ public Container getRootContainer() {
+ return rootContainer;
+ }
- public StateToken getStateToken() {
- return stateToken;
- }
+ public SocialNetworkData getSocialNetworkData() {
+ return socialNetworkData;
+ }
- public String getTitle() {
- return title;
- }
+ public StateToken getStateToken() {
+ return stateToken;
+ }
- public UserBuddiesData getUserBuddies() {
- return socialNetworkData.getUserBuddies();
- }
+ public String getTitle() {
+ return title;
+ }
- public void setEnabledTools(List<String> enabledTools) {
- this.enabledTools = enabledTools;
- }
+ public String getToolName() {
+ return toolName;
+ }
- public void setGroup(Group group) {
- this.group = group;
- }
+ public UserBuddiesData getUserBuddies() {
+ return socialNetworkData.getUserBuddies();
+ }
- public void setSocialNetworkData(SocialNetworkData socialNetworkData) {
- this.socialNetworkData = socialNetworkData;
- }
+ public void setEnabledTools(final List<String> enabledTools) {
+ this.enabledTools = enabledTools;
+ }
- public void setStateToken(StateToken stateToken) {
- this.stateToken = stateToken;
- }
+ public void setGroup(final Group group) {
+ this.group = group;
+ }
- public void setTitle(String title) {
- this.title = title;
- }
+ public void setRootContainer(final Container rootContainer) {
+ this.rootContainer = rootContainer;
+ }
- @Override
- public String toString() {
- return "State[" + getStateToken() + "]";
- }
+ public void setSocialNetworkData(final SocialNetworkData socialNetworkData) {
+ this.socialNetworkData = socialNetworkData;
+ }
+ public void setStateToken(final StateToken stateToken) {
+ this.stateToken = stateToken;
+ }
+
+ public void setTitle(final String title) {
+ this.title = title;
+ }
+
+ public void setToolName(final String toolName) {
+ this.toolName = toolName;
+ }
+
+ @Override
+ public String toString() {
+ return "State[" + getStateToken() + "]";
+ }
+
}
Modified: trunk/src/main/java/cc/kune/core/server/state/StateContainer.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/state/StateContainer.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/server/state/StateContainer.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,6 @@
*/
package cc.kune.core.server.state;
-
import cc.kune.core.shared.domain.TagCloudResult;
import cc.kune.core.shared.domain.utils.AccessRights;
import cc.kune.domain.AccessLists;
@@ -29,97 +28,79 @@
public class StateContainer extends StateAbstract {
- private I18nLanguage language;
- private String typeId;
- private String toolName;
- private Container container;
- private Container rootContainer;
- private AccessRights containerRights;
- private License license;
- private TagCloudResult tagCloudResult;
- private AccessLists accessLists;
+ private AccessLists accessLists;
+ private Container container;
+ private AccessRights containerRights;
+ private I18nLanguage language;
+ private License license;
+ private TagCloudResult tagCloudResult;
+ private String typeId;
- public StateContainer() {
- }
+ public StateContainer() {
+ }
- public AccessLists getAccessLists() {
- return accessLists;
- }
+ public AccessLists getAccessLists() {
+ return accessLists;
+ }
- public Container getContainer() {
- return container;
- }
+ public Container getContainer() {
+ return container;
+ }
- public AccessRights getContainerRights() {
- return containerRights;
- }
+ public AccessRights getContainerRights() {
+ return containerRights;
+ }
- public I18nLanguage getLanguage() {
- return language;
- }
+ public I18nLanguage getLanguage() {
+ return language;
+ }
- public License getLicense() {
- return license;
- }
+ public License getLicense() {
+ return license;
+ }
- public Container getRootContainer() {
- return rootContainer;
- }
+ public TagCloudResult getTagCloudResult() {
+ return tagCloudResult;
+ }
- public TagCloudResult getTagCloudResult() {
- return tagCloudResult;
- }
+ public String getTypeId() {
+ return typeId;
+ }
- public String getToolName() {
- return toolName;
- }
+ public boolean isType(final String type) {
+ return getTypeId().equals(type);
+ }
- public String getTypeId() {
- return typeId;
- }
+ public void setAccessLists(final AccessLists accessLists) {
+ this.accessLists = accessLists;
+ }
- public boolean isType(String type) {
- return getTypeId().equals(type);
- }
+ public void setContainer(final Container container) {
+ this.container = container;
+ }
- public void setAccessLists(AccessLists accessLists) {
- this.accessLists = accessLists;
- }
+ public void setContainerRights(final AccessRights containerRights) {
+ this.containerRights = containerRights;
+ }
- public void setContainer(Container container) {
- this.container = container;
- }
+ public void setLanguage(final I18nLanguage language) {
+ this.language = language;
+ }
- public void setContainerRights(AccessRights containerRights) {
- this.containerRights = containerRights;
- }
+ public void setLicense(final License license) {
+ this.license = license;
+ }
- public void setLanguage(I18nLanguage language) {
- this.language = language;
- }
+ public void setTagCloudResult(final TagCloudResult tagCloudResult) {
+ this.tagCloudResult = tagCloudResult;
+ }
- public void setLicense(License license) {
- this.license = license;
- }
+ public void setTypeId(final String typeId) {
+ this.typeId = typeId;
+ }
- public void setRootContainer(Container rootContainer) {
- this.rootContainer = rootContainer;
- }
-
- public void setTagCloudResult(TagCloudResult tagCloudResult) {
- this.tagCloudResult = tagCloudResult;
- }
-
- public void setToolName(String toolName) {
- this.toolName = toolName;
- }
-
- public void setTypeId(String typeId) {
- this.typeId = typeId;
- }
-
- @Override
- public String toString() {
- return "State[" + getStateToken() + "/" + getTypeId() + "]";
- }
+ @Override
+ public String toString() {
+ return "State[" + getStateToken() + "/" + getTypeId() + "]";
+ }
}
Modified: trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -25,7 +25,6 @@
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.server.access.AccessRightsService;
-import cc.kune.core.server.content.ContentManager;
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.manager.SocialNetworkManager;
import cc.kune.core.server.manager.TagUserContentManager;
@@ -46,7 +45,6 @@
@Singleton
public class StateServiceDefault implements StateService {
public static final Log LOG = LogFactory.getLog(StateServiceDefault.class);
- private final ContentManager contentManager;
private final GroupManager groupManager;
private final I18nTranslationService i18n;
private final KuneWaveService kuneWaveManager;
@@ -56,12 +54,11 @@
@Inject
public StateServiceDefault(final GroupManager groupManager,
- final SocialNetworkManager socialNetworkManager, final ContentManager contentManager,
- final TagUserContentManager tagManager, final AccessRightsService rightsService,
- final I18nTranslationService i18n, final KuneWaveService kuneWaveManager) {
+ final SocialNetworkManager socialNetworkManager, final TagUserContentManager tagManager,
+ final AccessRightsService rightsService, final I18nTranslationService i18n,
+ final KuneWaveService kuneWaveManager) {
this.groupManager = groupManager;
this.socialNetworkManager = socialNetworkManager;
- this.contentManager = contentManager;
this.tagManager = tagManager;
this.rightsService = rightsService;
this.i18n = i18n;
@@ -80,7 +77,6 @@
state.setTypeId(container.getTypeId());
state.setLanguage(container.getLanguage());
state.setStateToken(container.getStateToken());
- state.setRootContainer(calculateRootContainer(container));
state.setLicense(container.getOwner().getDefaultLicense());
state.setAccessLists(container.getAccessLists());
final Group group = container.getOwner();
@@ -139,7 +135,7 @@
state.setTitle(revision.getTitle());
}
final Container container = content.getContainer();
- state.setRootContainer(calculateRootContainer(container));
+
final License license = content.getLicense();
final Group group = container.getOwner();
state.setLicense(license == null ? group.getDefaultLicense() : license);
@@ -173,7 +169,9 @@
private void setCommon(final StateContainer state, final User userLogged, final Group group,
final Container container) {
- state.setToolName(container.getToolName());
+ final Container root = calculateRootContainer(container);
+ state.setRootContainer(root);
+ state.setToolName(root.getToolName());
state.setGroup(group);
state.setContainer(container);
state.setContainerRights(rightsService.get(userLogged, container.getAccessLists()));
Modified: trunk/src/main/java/cc/kune/core/server/tool/ServerToolRegistry.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/tool/ServerToolRegistry.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/server/tool/ServerToolRegistry.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -89,7 +89,7 @@
public void register(final ServerTool tool) {
final String name = tool.getName();
final String rootName = tool.getRootName();
- if (tool.getName().equals(TrashToolConstants.NAME)) {
+ if (tool.getName().equals(TrashToolConstants.TOOL_NAME)) {
tools.put(name, tool);
// Trash is a special tool but we don't register it fully
return;
Modified: trunk/src/main/java/cc/kune/core/shared/FileConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/FileConstants.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/shared/FileConstants.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -38,7 +38,9 @@
public final static int LOGO_MIN_HEIGHT = 28;
public final static int LOGO_MIN_WIDTH = 468;
public static final String LOGODOWNLOADSERVLET = ASITE_PREFIX + "servlets/EntityLogoDownloadManager";
- public final static String PERSON_NO_AVATAR_IMAGE = "others/unknown.jpg";
+ public static final String NO_RESULT_AVATAR_IMAGE = "others/unknown.jpg";
+ public final static String ONLY_USERS = "onlyusers";
+ public final static String PERSON_NO_AVATAR_IMAGE = "others/defuser.jpg";
public final static String TOKEN = "token";
public final static String TUTORIALS_PREFIX = "/tutorials/";
public final static String TYPE_ID = "typeid";
Modified: trunk/src/main/java/cc/kune/core/shared/dto/ContainerDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/ContainerDTO.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/shared/dto/ContainerDTO.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -42,10 +42,20 @@
return absolutePath;
}
+ /**
+ * Gets the child folders.
+ *
+ * @return the childs
+ */
public List<ContainerSimpleDTO> getChilds() {
return childs;
}
+ /**
+ * Gets the child contents.
+ *
+ * @return the contents
+ */
public List<ContentSimpleDTO> getContents() {
return contents;
}
Modified: trunk/src/main/java/cc/kune/core/shared/dto/ContainerSimpleDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/ContainerSimpleDTO.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/shared/dto/ContainerSimpleDTO.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,28 +19,32 @@
*/
package cc.kune.core.shared.dto;
+import cc.kune.core.shared.domain.utils.StateToken;
+
/**
* A item can be both a container or a content
*
*/
public class ContainerSimpleDTO extends AbstractContentSimpleDTO {
private String name;
- private Long parentFolderId;
+ private StateToken parentToken;
+ @Override
public String getName() {
return name;
}
- public Long getParentFolderId() {
- return parentFolderId;
+ public StateToken getParentToken() {
+ return parentToken;
}
+ @Override
public void setName(final String name) {
this.name = name;
}
- public void setParentFolderId(final Long parentFolderId) {
- this.parentFolderId = parentFolderId;
+ public void setParentToken(final StateToken parentToken) {
+ this.parentToken = parentToken;
}
}
Modified: trunk/src/main/java/cc/kune/core/shared/dto/StateAbstractDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/StateAbstractDTO.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/shared/dto/StateAbstractDTO.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -27,75 +27,92 @@
import com.google.gwt.user.client.rpc.IsSerializable;
public abstract class StateAbstractDTO implements IsSerializable {
+ private List<String> enabledTools;
+ private GroupDTO group;
+ private ContainerDTO rootContainer;
+ private SocialNetworkDataDTO socialNetworkData;
+ private StateToken stateToken;
+ private String title;
+ private String toolName;
- private List<String> enabledTools;
- private GroupDTO group;
- private StateToken stateToken;
- private String title;
- private SocialNetworkDataDTO socialNetworkData;
+ public StateAbstractDTO() {
+ }
- public StateAbstractDTO() {
- }
+ public List<String> getEnabledTools() {
+ return enabledTools;
+ }
- public List<String> getEnabledTools() {
- return enabledTools;
- }
+ public GroupDTO getGroup() {
+ return group;
+ }
- public GroupDTO getGroup() {
- return group;
- }
+ public SocialNetworkDTO getGroupMembers() {
+ return socialNetworkData.getGroupMembers();
+ }
- public SocialNetworkDTO getGroupMembers() {
- return socialNetworkData.getGroupMembers();
- }
+ public AccessRights getGroupRights() {
+ return socialNetworkData.getGroupRights();
+ }
- public AccessRights getGroupRights() {
- return socialNetworkData.getGroupRights();
- }
+ public ParticipationDataDTO getParticipation() {
+ return socialNetworkData.getUserParticipation();
+ }
- public ParticipationDataDTO getParticipation() {
- return socialNetworkData.getUserParticipation();
- }
+ public ContainerDTO getRootContainer() {
+ return rootContainer;
+ }
- public SocialNetworkDataDTO getSocialNetworkData() {
- return socialNetworkData;
- }
+ public SocialNetworkDataDTO getSocialNetworkData() {
+ return socialNetworkData;
+ }
- public StateToken getStateToken() {
- return stateToken;
- }
+ public StateToken getStateToken() {
+ return stateToken;
+ }
- public String getTitle() {
- return title;
- }
+ public String getTitle() {
+ return title;
+ }
- public UserBuddiesDataDTO getUserBuddies() {
- return socialNetworkData.getUserBuddies();
- }
+ public String getToolName() {
+ return toolName;
+ }
- public void setEnabledTools(final List<String> enabledTools) {
- this.enabledTools = enabledTools;
- }
+ public UserBuddiesDataDTO getUserBuddies() {
+ return socialNetworkData.getUserBuddies();
+ }
- public void setGroup(final GroupDTO group) {
- this.group = group;
- }
+ public void setEnabledTools(final List<String> enabledTools) {
+ this.enabledTools = enabledTools;
+ }
- public void setSocialNetworkData(final SocialNetworkDataDTO socialNetworkData) {
- this.socialNetworkData = socialNetworkData;
- }
+ public void setGroup(final GroupDTO group) {
+ this.group = group;
+ }
- public void setStateToken(final StateToken stateToken) {
- this.stateToken = stateToken;
- }
+ public void setRootContainer(final ContainerDTO rootContainer) {
+ this.rootContainer = rootContainer;
+ }
- public void setTitle(final String title) {
- this.title = title;
- }
+ public void setSocialNetworkData(final SocialNetworkDataDTO socialNetworkData) {
+ this.socialNetworkData = socialNetworkData;
+ }
- @Override
- public String toString() {
- return "StateDTO[" + getStateToken() + "]";
- }
+ public void setStateToken(final StateToken stateToken) {
+ this.stateToken = stateToken;
+ }
+ public void setTitle(final String title) {
+ this.title = title;
+ }
+
+ public void setToolName(final String toolName) {
+ this.toolName = toolName;
+ }
+
+ @Override
+ public String toString() {
+ return "StateDTO[" + getStateToken() + "]";
+ }
+
}
Modified: trunk/src/main/java/cc/kune/core/shared/dto/StateContainerDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/StateContainerDTO.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/shared/dto/StateContainerDTO.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -31,9 +31,7 @@
private AccessRights containerRights;
private I18nLanguageDTO language;
private LicenseDTO license;
- private ContainerDTO rootContainer;
private TagCloudResult tagCloudResult;
- private String toolName;
private String typeId;
public StateContainerDTO() {
@@ -43,6 +41,7 @@
return accessLists;
}
+ @Override
public ContainerDTO getContainer() {
return container;
}
@@ -59,18 +58,10 @@
return license;
}
- public ContainerDTO getRootContainer() {
- return rootContainer;
- }
-
public TagCloudResult getTagCloudResult() {
return tagCloudResult;
}
- public String getToolName() {
- return toolName;
- }
-
@Override
public String getTypeId() {
return typeId;
@@ -100,18 +91,10 @@
this.license = license;
}
- public void setRootContainer(final ContainerDTO rootContainer) {
- this.rootContainer = rootContainer;
- }
-
public void setTagCloudResult(final TagCloudResult tagCloudResult) {
this.tagCloudResult = tagCloudResult;
}
- public void setToolName(final String toolName) {
- this.toolName = toolName;
- }
-
@Override
public void setTypeId(final String typeId) {
this.typeId = typeId;
Modified: trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -58,7 +58,8 @@
public String getLogoImageUrl(final String groupName) {
return prefix
- + new Url(FileConstants.LOGODOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN, groupName)).toString();
+ + new Url(FileConstants.LOGODOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN, groupName),
+ new UrlParam(FileConstants.ONLY_USERS, false)).toString();
}
public String getPrefix() {
@@ -71,7 +72,8 @@
public String getUserAvatar(final String username) {
return prefix
- + new Url(FileConstants.LOGODOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN, username)).toString();
+ + new Url(FileConstants.LOGODOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN, username),
+ new UrlParam(FileConstants.ONLY_USERS, true)).toString();
}
public String getUserAvatar(final UserSimpleDTO user) {
Modified: trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/docs/client/DocsClientTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.docs.client;
-import static cc.kune.docs.shared.DocsToolConstants.NAME;
+import static cc.kune.docs.shared.DocsToolConstants.TOOL_NAME;
import static cc.kune.docs.shared.DocsToolConstants.TYPE_DOCUMENT;
import static cc.kune.docs.shared.DocsToolConstants.TYPE_FOLDER;
import static cc.kune.docs.shared.DocsToolConstants.TYPE_ROOT;
@@ -45,7 +45,7 @@
final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources,
final IconicResources icons) {
super(
- NAME,
+ TOOL_NAME,
i18n.t(DocsToolConstants.ROOT_NAME),
i18n.t("Here you can create or upload your personal, group or public documents. These documents can be edited and commented collaboratively and simultaneously. These docs can be static pages in your web page if you publish them"),
icons.docs(), AccessRolDTO.Viewer, toolSelector, cntCapRegistry, i18n, navResources);
@@ -65,7 +65,7 @@
@Override
public String getName() {
- return NAME;
+ return TOOL_NAME;
}
private void registerIcons() {
Modified: trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/docs/client/actions/DocsClientActions.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,6 +19,7 @@
\*/
package cc.kune.docs.client.actions;
+import static cc.kune.docs.shared.DocsToolConstants.TOOL_NAME;
import static cc.kune.docs.shared.DocsToolConstants.TYPE_DOCUMENT;
import static cc.kune.docs.shared.DocsToolConstants.TYPE_FOLDER;
import static cc.kune.docs.shared.DocsToolConstants.TYPE_ROOT;
@@ -41,10 +42,13 @@
import cc.kune.gspace.client.actions.ContentViewerShareMenu;
import cc.kune.gspace.client.actions.CopyContentMenuItem;
import cc.kune.gspace.client.actions.ParticipateInContentBtn;
+import cc.kune.gspace.client.actions.PurgeContentBtn;
+import cc.kune.gspace.client.actions.PurgeContentMenuItem;
import cc.kune.gspace.client.actions.RefreshContentMenuItem;
import cc.kune.gspace.client.actions.SetAsHomePageMenuItem;
import cc.kune.gspace.client.actions.TutorialContainerBtn;
import cc.kune.gspace.client.actions.WriteToParticipantsMenuItem;
+import cc.kune.trash.shared.TrashToolConstants;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -78,40 +82,44 @@
final Provider<SetAsHomePageMenuItem> setAsHomePage,
final Provider<CopyContentMenuItem> copyContent,
final Provider<WriteToParticipantsMenuItem> writeToParticipants,
+ final Provider<PurgeContentMenuItem> purgeMenuItem, final Provider<PurgeContentBtn> purgeBtn,
final NewMenusForTypeIdsRegistry newMenusRegistry, final DocsFolderNewMenu foldersNewMenu,
final DocsNewMenu docsNewMenu) {
super(session, stateManager, i18n, registry);
- actionsRegistry.addAction(ActionGroups.TOPBAR, optionsMenuContent, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, refresh, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newDocIconBtn, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newFolderBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, foldersNewMenu, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, docsNewMenu, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newDocMenuItem, containers);
- actionsRegistry.addAction(ActionGroups.BOTTOMBAR, folderGoUp, contents);
- actionsRegistry.addAction(ActionGroups.BOTTOMBAR, folderGoUp, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, shareMenuContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addAllMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addAdminMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addCollabMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addPublicMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, tutorialBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, participateBtn, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newFolderMenuItem, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, chatAbout, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, copyContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, writeToParticipants, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, delContentMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, delFolderMenuItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, setAsHomePage, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addAllMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addAdminMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addCollabMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addPublicMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, copyContent, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, writeToParticipants, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, optionsMenuContent, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, refresh, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newDocIconBtn, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newFolderBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, foldersNewMenu, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, docsNewMenu, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newDocMenuItem, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.BOTTOMBAR, folderGoUp, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.BOTTOMBAR, folderGoUp, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, shareMenuContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addAllMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addAdminMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addCollabMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addPublicMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, tutorialBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, participateBtn, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newFolderMenuItem, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, chatAbout, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, copyContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, writeToParticipants, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, openContentMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, openContentMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, delContentMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, delFolderMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, setAsHomePage, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addAllMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addAdminMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addCollabMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addPublicMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, copyContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, writeToParticipants, contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeBtn, contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeMenuItem,
+ contents);
newMenusRegistry.register(TYPE_FOLDER, foldersNewMenu.get());
newMenusRegistry.register(TYPE_ROOT, foldersNewMenu.get());
newMenusRegistry.register(TYPE_DOCUMENT,
Modified: trunk/src/main/java/cc/kune/docs/server/DocumentServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/docs/server/DocumentServerTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/docs/server/DocumentServerTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.docs.server;
-import static cc.kune.docs.shared.DocsToolConstants.NAME;
+import static cc.kune.docs.shared.DocsToolConstants.TOOL_NAME;
import static cc.kune.docs.shared.DocsToolConstants.ROOT_NAME;
import static cc.kune.docs.shared.DocsToolConstants.TYPE_DOCUMENT;
import static cc.kune.docs.shared.DocsToolConstants.TYPE_FOLDER;
@@ -49,7 +49,7 @@
public DocumentServerTool(final ContentManager contentManager,
final ContainerManager containerManager, final ToolConfigurationManager configurationManager,
final I18nTranslationService i18n, final CreationService creationService) {
- super(NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_DOCUMENT, TYPE_UPLOADEDFILE), Arrays.asList(
+ super(TOOL_NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_DOCUMENT, TYPE_UPLOADEDFILE), Arrays.asList(
TYPE_ROOT, TYPE_FOLDER), Arrays.asList(TYPE_FOLDER), Arrays.asList(TYPE_ROOT, TYPE_FOLDER),
contentManager, containerManager, creationService, configurationManager, i18n,
ServerToolTarget.forBoth);
Modified: trunk/src/main/java/cc/kune/docs/shared/DocsToolConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/docs/shared/DocsToolConstants.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/docs/shared/DocsToolConstants.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -23,12 +23,12 @@
public final class DocsToolConstants {
- public static final String NAME = "docs";
+ public static final String TOOL_NAME = "docs";
public static final String ROOT_NAME = "documents";
- public static final String TYPE_DOCUMENT = NAME + "." + "doc";
- public static final String TYPE_FOLDER = NAME + "." + "folder";
- public static final String TYPE_ROOT = NAME + "." + "root";
- public static final String TYPE_UPLOADEDFILE = NAME + "." + ToolConstants.UPLOADEDFILE_SUFFIX;
+ public static final String TYPE_DOCUMENT = TOOL_NAME + "." + "doc";
+ public static final String TYPE_FOLDER = TOOL_NAME + "." + "folder";
+ public static final String TYPE_ROOT = TOOL_NAME + "." + "root";
+ public static final String TYPE_UPLOADEDFILE = TOOL_NAME + "." + ToolConstants.UPLOADEDFILE_SUFFIX;
private DocsToolConstants() {
}
Modified: trunk/src/main/java/cc/kune/domain/Container.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/Container.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/domain/Container.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -99,7 +99,7 @@
private String name;
@IndexedEmbedded(depth = 1, prefix = "owner_")
- @OneToOne(cascade = CascadeType.ALL)
+ @OneToOne
private Group owner;
// Parent/Child pattern:
@@ -271,8 +271,9 @@
}
public void removeChild(final Container child) {
- child.setParent(null);
+ childs.size();
childs.remove(child);
+ // child.setParent(null);
}
public void removeContent(final Content content) {
Modified: trunk/src/main/java/cc/kune/domain/Content.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/Content.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/domain/Content.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -168,6 +168,10 @@
}
}
+ public void authorsClear() {
+ authors.clear();
+ }
+
@Transient
public AccessLists getAccessLists() {
return hasAccessList() ? accessLists : getContainer().getAccessLists();
Modified: trunk/src/main/java/cc/kune/events/client/EventsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/EventsClientTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/events/client/EventsClientTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.events.client;
-import static cc.kune.events.shared.EventsToolConstants.NAME;
+import static cc.kune.events.shared.EventsToolConstants.TOOL_NAME;
import static cc.kune.events.shared.EventsToolConstants.ROOT_NAME;
import static cc.kune.events.shared.EventsToolConstants.TYPE_MEETING;
import static cc.kune.events.shared.EventsToolConstants.TYPE_ROOT;
@@ -41,7 +41,7 @@
public EventsClientTool(final I18nTranslationService i18n, final ToolSelector toolSelector,
final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources,
final IconicResources icons) {
- super(NAME, i18n.t(ROOT_NAME), i18n.t("A calendar to schedule activities and events"),
+ super(TOOL_NAME, i18n.t(ROOT_NAME), i18n.t("A calendar to schedule activities and events"),
icons.events(), AccessRolDTO.Viewer, toolSelector, cntCapRegistry, i18n, navResources);
this.icons = icons;
@@ -60,7 +60,7 @@
@Override
public String getName() {
- return NAME;
+ return TOOL_NAME;
}
private void registerIcons() {
Modified: trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,6 +19,7 @@
\*/
package cc.kune.events.client.actions;
+import static cc.kune.events.shared.EventsToolConstants.TOOL_NAME;
import static cc.kune.events.shared.EventsToolConstants.TYPE_MEETING;
import static cc.kune.events.shared.EventsToolConstants.TYPE_ROOT;
import cc.kune.core.client.actions.ActionRegistryByType;
@@ -36,9 +37,12 @@
import cc.kune.gspace.client.actions.ContentViewerShareMenu;
import cc.kune.gspace.client.actions.CopyContentMenuItem;
import cc.kune.gspace.client.actions.ParticipateInContentBtn;
+import cc.kune.gspace.client.actions.PurgeContentBtn;
+import cc.kune.gspace.client.actions.PurgeContentMenuItem;
import cc.kune.gspace.client.actions.RefreshContentMenuItem;
import cc.kune.gspace.client.actions.TutorialContainerBtn;
import cc.kune.gspace.client.actions.WriteToParticipantsMenuItem;
+import cc.kune.trash.shared.TrashToolConstants;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -71,45 +75,52 @@
final Provider<EventRemoveMenuItem> eventRemoveMenuItem,
final Provider<CopyContentMenuItem> copyContent, final Provider<TutorialContainerBtn> tutorialBtn,
final Provider<WriteToParticipantsMenuItem> writeToParticipants,
+ final Provider<PurgeContentMenuItem> purgeMenuItem, final Provider<PurgeContentBtn> purgeBtn,
final Provider<ExportCalendarMenuItem> export, final Provider<CalendarGoNextBtn> calNextBtn,
final CalendarOnOverMenu onOverMenu, final Provider<CalendarGoTodayBtn> goToday,
final Provider<RefreshContentMenuItem> refresh) {
super(session, stateManager, i18n, registry);
- actionsRegistry.addAction(ActionGroups.TOPBAR, optionsMenuContent, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, refresh, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, goToday, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, calPrevBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, cal1DayBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, cal3DaysBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, cal7DaysBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, calMonthBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, calNextBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, participateBtn, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, export, all);
- actionsRegistry.addAction(ActionGroups.BOTTOMBAR, folderGoUp, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, shareMenuContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addAllMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addAdminMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addCollabMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addPublicMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, tutorialBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, copyContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, writeToParticipants, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, optionsMenuContent, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, refresh, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, goToday, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, calPrevBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, cal1DayBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, cal3DaysBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, cal7DaysBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, calMonthBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, calNextBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, participateBtn, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, export, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.BOTTOMBAR, folderGoUp, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, shareMenuContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addAllMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addAdminMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addCollabMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addPublicMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, tutorialBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, copyContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, writeToParticipants, contents);
// On over calendar menu
- actionsRegistry.addAction(ActionGroups.TOPBAR, onOverMenu, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, onOverMenu, containers);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeBtn, contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeMenuItem,
+ contents);
eventOpenMenuItem.get();
eventAddMenuItem.get();
eventRemoveMenuItem.get();
- actionsRegistry.addAction(ActionGroups.TOPBAR, newEventBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newEventBtn, containers);
// For now, commented:
- // actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem,
+ // actionsRegistry.addAction(NAME, ActionGroups.ITEM_MENU,
+ // openContentMenuItem,
// contents);
- // actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem,
+ // actionsRegistry.addAction(NAME, ActionGroups.ITEM_MENU,
+ // openContentMenuItem,
// containersNoRoot);
- // actionsRegistry.addAction(ActionGroups.ITEM_MENU, delContentMenuItem,
+ // actionsRegistry.addAction(NAME, ActionGroups.ITEM_MENU,
+ // delContentMenuItem,
// contents);
}
Modified: trunk/src/main/java/cc/kune/events/server/EventsServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/events/server/EventsServerTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/events/server/EventsServerTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.events.server;
-import static cc.kune.events.shared.EventsToolConstants.NAME;
+import static cc.kune.events.shared.EventsToolConstants.TOOL_NAME;
import static cc.kune.events.shared.EventsToolConstants.ROOT_NAME;
import static cc.kune.events.shared.EventsToolConstants.TYPE_MEETING;
import static cc.kune.events.shared.EventsToolConstants.TYPE_ROOT;
@@ -59,7 +59,7 @@
public EventsServerTool(final ContentManager contentManager, final ContainerManager containerManager,
final ToolConfigurationManager configurationManager, final I18nTranslationService i18n,
final CreationService creationService, final EventsCache eventsCache) {
- super(NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_MEETING), Arrays.asList(TYPE_ROOT),
+ super(TOOL_NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_MEETING), Arrays.asList(TYPE_ROOT),
Collections.<String> emptyList(), Arrays.asList(TYPE_ROOT), contentManager, containerManager,
creationService, configurationManager, i18n, ServerToolTarget.forBoth);
this.eventsCache = eventsCache;
Modified: trunk/src/main/java/cc/kune/events/shared/EventsToolConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/events/shared/EventsToolConstants.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/events/shared/EventsToolConstants.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -21,11 +21,11 @@
public final class EventsToolConstants {
- public static final String NAME = "events";
+ public static final String TOOL_NAME = "events";
public static final String ROOT_NAME = "events";
- public static final String TYPE_MEETING = NAME + "." + "meeting";
+ public static final String TYPE_MEETING = TOOL_NAME + "." + "meeting";
public static final String TYPE_MEETING_DEF_GADGETNAME = "massmob";
- public static final String TYPE_ROOT = NAME + "." + "root";
+ public static final String TYPE_ROOT = TOOL_NAME + "." + "root";
private EventsToolConstants() {
}
Modified: trunk/src/main/java/cc/kune/gallery/server/GalleryServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/gallery/server/GalleryServerTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/gallery/server/GalleryServerTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.gallery.server;
-import static cc.kune.gallery.shared.GalleryToolConstants.NAME;
+import static cc.kune.gallery.shared.GalleryToolConstants.TOOL_NAME;
import static cc.kune.gallery.shared.GalleryToolConstants.ROOT_NAME;
import static cc.kune.gallery.shared.GalleryToolConstants.TYPE_ALBUM;
import static cc.kune.gallery.shared.GalleryToolConstants.TYPE_ROOT;
@@ -46,7 +46,7 @@
public GalleryServerTool(final ContentManager contentManager, final ContainerManager containerManager,
final ToolConfigurationManager configurationManager, final I18nTranslationService i18n,
final CreationService creationService) {
- super(NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_UPLOADEDFILE), Arrays.asList(TYPE_ROOT,
+ super(TOOL_NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_UPLOADEDFILE), Arrays.asList(TYPE_ROOT,
TYPE_ALBUM), Arrays.asList(TYPE_ALBUM), Arrays.asList(TYPE_ROOT, TYPE_ALBUM), contentManager,
containerManager, creationService, configurationManager, i18n, ServerToolTarget.forBoth);
}
Modified: trunk/src/main/java/cc/kune/gallery/shared/GalleryToolConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/gallery/shared/GalleryToolConstants.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/gallery/shared/GalleryToolConstants.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -22,11 +22,11 @@
import cc.kune.core.shared.ToolConstants;
public final class GalleryToolConstants {
- public static final String NAME = "gallery";
+ public static final String TOOL_NAME = "gallery";
public static final String ROOT_NAME = "gallery";
- public static final String TYPE_ALBUM = NAME + "." + "album";
- public static final String TYPE_ROOT = NAME + "." + "root";
- public static final String TYPE_UPLOADEDFILE = NAME + "." + ToolConstants.UPLOADEDFILE_SUFFIX;
+ public static final String TYPE_ALBUM = TOOL_NAME + "." + "album";
+ public static final String TYPE_ROOT = TOOL_NAME + "." + "root";
+ public static final String TYPE_UPLOADEDFILE = TOOL_NAME + "." + ToolConstants.UPLOADEDFILE_SUFFIX;
private GalleryToolConstants() {
}
Modified: trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorEntryPoint.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorEntryPoint.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorEntryPoint.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.gspace.client;
-import cc.kune.gspace.client.armor.impl.GSpaceArmorImpl;
+import cc.kune.gspace.client.armor.GSpaceArmorDefault;
import cc.kune.gspace.client.armor.resources.GSpaceArmorResources;
import com.google.gwt.core.client.EntryPoint;
@@ -35,7 +35,7 @@
resources.style().ensureInjected();
final RootLayoutPanel rootPanel = RootLayoutPanel.get();
- final GSpaceArmorImpl armor = new GSpaceArmorImpl(null);
+ final GSpaceArmorDefault armor = new GSpaceArmorDefault(null);
final InlineLabel icons = new InlineLabel("Icons");
final InlineLabel login = new InlineLabel("Login");
final InlineLabel logo = new InlineLabel("Logo");
Modified: trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -26,13 +26,14 @@
import cc.kune.core.client.sn.AllMembersGroupSNDropController;
import cc.kune.core.client.sn.CollabsGroupSNDropController;
import cc.kune.core.client.sn.actions.WriteToBuddyHeaderButton;
+import cc.kune.gspace.client.actions.ActionUtils;
import cc.kune.gspace.client.actions.ContentViewerOptionsMenu;
import cc.kune.gspace.client.actions.ContentViewerOptionsShareSubMenu;
import cc.kune.gspace.client.actions.ContentViewerShareMenu;
import cc.kune.gspace.client.actions.GiveUsFeedbackBtn;
import cc.kune.gspace.client.actions.RenameAction;
import cc.kune.gspace.client.armor.GSpaceArmor;
-import cc.kune.gspace.client.armor.impl.GSpaceArmorImpl;
+import cc.kune.gspace.client.armor.GSpaceArmorDefault;
import cc.kune.gspace.client.i18n.I18nTranslator;
import cc.kune.gspace.client.i18n.I18nTranslatorPanel;
import cc.kune.gspace.client.i18n.I18nTranslatorPresenter;
@@ -141,6 +142,7 @@
*/
@Override
protected void configure() {
+ requestStaticInjection(ActionUtils.class);
s(PathToolbarUtils.class);
s(FolderViewerUtils.class);
s(ContentDropController.class);
@@ -151,8 +153,8 @@
EntityLicensePanel.class, EntityLicensePresenter.EntityLicenseProxy.class);
bindPresenter(TagsSummaryPresenter.class, TagsSummaryPresenter.TagsSummaryView.class,
TagsSummaryPanel.class, TagsSummaryPresenter.TagsSummaryProxy.class);
- bind(GSpaceArmorImpl.class).in(Singleton.class);
- bind(GSpaceArmor.class).to(GSpaceArmorImpl.class).in(Singleton.class);
+ bind(GSpaceArmorDefault.class).in(Singleton.class);
+ bind(GSpaceArmor.class).to(GSpaceArmorDefault.class).in(Singleton.class);
bind(GSpaceParts.class).asEagerSingleton();
bindPresenter(ToolSelectorPresenter.class, ToolSelectorPresenter.ToolSelectorView.class,
ToolSelectorPanel.class, ToolSelectorPresenter.ToolSelectorProxy.class);
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/ActionGroups.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/ActionGroups.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/ActionGroups.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -21,14 +21,28 @@
/**
* A group of actions that must be grouped and showed in some perspective (on
- * edit, etc)
+ * edit, etc).
*/
public final class ActionGroups {
+
+ /**
+ * The Constant BOTTOMBAR identifies actions in the bottom bar, below the
+ * content.
+ */
public final static String BOTTOMBAR = "bottombar";
- public final static String EDIT = "edit";
+
+ /**
+ * The Constant ITEM_MENU identifies actions in the menu of each item of a
+ * folder list.
+ */
public final static String ITEM_MENU = "menu-item";
+
+ /** The Constant TOPBAR identifies actions in the top bar, above the content. */
public final static String TOPBAR = "topbar";
+ /**
+ * Instantiates a new action groups.
+ */
private ActionGroups() {
}
}
Added: trunk/src/main/java/cc/kune/gspace/client/actions/ActionUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/ActionUtils.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/ActionUtils.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -0,0 +1,42 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.gspace.client.actions;
+
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.AbstractContentSimpleDTO;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class ActionUtils {
+ @Inject
+ private static Session session;
+
+ public static StateToken getActionToken(final ActionEvent event) {
+ final boolean inContent = session.getCurrentStateToken().hasAll();
+ final StateToken token = inContent ? session.getCurrentStateToken()
+ : ((AbstractContentSimpleDTO) event.getTarget()).getStateToken();
+ return token;
+ }
+}
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/CopyContentMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/CopyContentMenuItem.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/CopyContentMenuItem.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -30,7 +30,6 @@
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.utils.StateToken;
-import cc.kune.core.shared.dto.AbstractContentSimpleDTO;
import cc.kune.core.shared.dto.AccessRolDTO;
import cc.kune.core.shared.dto.StateContentDTO;
@@ -58,9 +57,8 @@
@Override
public void actionPerformed(final ActionEvent event) {
NotifyUser.showProgress(i18n.t("Copying"));
+ final StateToken token = ActionUtils.getActionToken(event);
final boolean inContent = session.getCurrentStateToken().hasAll();
- final StateToken token = inContent ? session.getCurrentStateToken()
- : ((AbstractContentSimpleDTO) event.getTarget()).getStateToken();
final StateToken parentToken = inContent ? session.getContentState().getContainer().getStateToken()
: session.getCurrentStateToken();
contentService.copyContent(session.getUserHash(), parentToken, token,
Added: trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContentBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContentBtn.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContentBtn.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -0,0 +1,57 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.gspace.client.actions;
+
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
+import cc.kune.core.client.actions.RolAction;
+import cc.kune.core.client.i18n.I18n;
+import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.client.rpcservices.ContentServiceHelper;
+import cc.kune.core.shared.dto.AccessRolDTO;
+
+import com.google.inject.Inject;
+
+public class PurgeContentBtn extends ButtonDescriptor {
+
+ public static class PurgeContentAction extends RolAction {
+
+ private final ContentServiceHelper contentService;
+
+ @Inject
+ public PurgeContentAction(final ContentServiceHelper contentService, final CoreResources res) {
+ super(AccessRolDTO.Administrator, true);
+ this.contentService = contentService;
+ this.withText(I18n.t("Delete permanently")).withIcon(res.cancel());
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ contentService.purgeContent(ActionUtils.getActionToken(event));
+ }
+
+ }
+
+ @Inject
+ public PurgeContentBtn(final PurgeContentAction action) {
+ super(action);
+ }
+
+}
Added: trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContentMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContentMenuItem.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/PurgeContentMenuItem.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -0,0 +1,37 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.gspace.client.actions;
+
+import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.resources.CoreResources;
+import cc.kune.gspace.client.actions.PurgeContentBtn.PurgeContentAction;
+
+import com.google.inject.Inject;
+
+public class PurgeContentMenuItem extends MenuItemDescriptor {
+
+ @Inject
+ public PurgeContentMenuItem(final I18nTranslationService i18n, final PurgeContentAction action,
+ final CoreResources res) {
+ super(action);
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmorDefault.java (from rev 1806, trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.java)
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmorDefault.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmorDefault.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -0,0 +1,314 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.gspace.client.armor;
+
+import org.cobogw.gwt.user.client.CSS;
+
+import cc.kune.common.client.actions.ui.ActionFlowPanel;
+import cc.kune.common.client.actions.ui.IsActionExtensible;
+import cc.kune.common.shared.utils.Pair;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.Style.Overflow;
+import com.google.gwt.dom.client.Style.Position;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Element;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.DockLayoutPanel;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget;
+import com.google.gwt.user.client.ui.IsWidget;
+import com.google.gwt.user.client.ui.ScrollPanel;
+import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.user.client.ui.SplitLayoutPanel;
+import com.google.gwt.user.client.ui.TabLayoutPanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class GSpaceArmorDefault extends Composite implements GSpaceArmor {
+
+ interface GSpaceArmorDefaultUiBinder extends UiBinder<Widget, GSpaceArmorDefault> {
+ }
+ private static final int CENTER_NORTH_HEIGHT = 153;
+ private static final int CENTER_SOUTH_HEIGHT = 36;
+ private static final int EAST_WIDTH = 220;
+
+ private static GSpaceArmorDefaultUiBinder uiBinder = GWT.create(GSpaceArmorDefaultUiBinder.class);
+
+ @UiField
+ VerticalPanel centerNorth;
+ @UiField
+ ScrollPanel centerScroll;
+ @UiField
+ FlowPanel docContainer;
+ @UiField
+ DockLayoutPanel docContainerParent;
+ @UiField
+ FlowPanel docFooter;
+ private final ActionFlowPanel docFooterToolbar;
+ @UiField
+ FlowPanel docHeader;
+ @UiField
+ FlowPanel docSubheader;
+ @UiField
+ FlowPanel entityFooter;
+ private final ActionFlowPanel entityFooterToolbar;
+ @UiField
+ FlowPanel entityHeader;
+ @UiField
+ FlowPanel entityToolsCenter;
+ @UiField
+ FlowPanel entityToolsContainer;
+ @UiField
+ FlowPanel entityToolsNorth;
+ @UiField
+ FlowPanel entityToolsSouth;
+ @UiField
+ SplitLayoutPanel groupSpace;
+ @UiField
+ SimplePanel groupSpaceWrapper;
+ private final ActionFlowPanel headerToolbar;
+ @UiField
+ SimplePanel homeSpace;
+ @UiField
+ DockLayoutPanel mainpanel;
+ @UiField
+ SimplePanel publicSpace;
+ @UiField
+ FlowPanel sitebar;
+ @UiField
+ DockLayoutPanel splitCenter;
+ @UiField
+ DockLayoutPanel splitEast;
+ private final ActionFlowPanel subheaderToolbar;
+ @UiField
+ TabLayoutPanel tabs;
+ private final ActionFlowPanel toolsSouthToolbar;
+ @UiField
+ FlowPanel userSpace;
+
+ @Inject
+ public GSpaceArmorDefault(final Provider<ActionFlowPanel> toolbarProv) {
+ initWidget(uiBinder.createAndBindUi(this));
+ groupSpace.setWidgetMinSize(splitEast, 150);
+ DOM.setStyleAttribute((Element) groupSpace.getWidgetContainerElement(splitEast), "overflow",
+ "visible");
+ DOM.setStyleAttribute((Element) splitEast.getWidgetContainerElement(entityToolsContainer),
+ "overflow", "visible");
+ docFooterToolbar = toolbarProv.get();
+ headerToolbar = toolbarProv.get();
+ subheaderToolbar = toolbarProv.get();
+ toolsSouthToolbar = toolbarProv.get();
+ entityFooterToolbar = toolbarProv.get();
+ getDocHeader().add(headerToolbar);
+ getDocSubheader().add(subheaderToolbar);
+ getDocFooter().add(docFooterToolbar);
+ getEntityToolsSouth().add(toolsSouthToolbar);
+ getEntityFooter().add(entityFooterToolbar);
+ entityToolsNorth.getElement().getStyle().setPosition(Position.RELATIVE);
+ // entityToolsSouth.setVisible(false);
+ mainpanel.getWidgetContainerElement(tabs).addClassName("k-spaces");
+ enableCenterScroll(true);
+ }
+
+ @Override
+ public void clearBackImage() {
+ final String bodyProp = "#FFFFFF";
+ DOM.setStyleAttribute(groupSpaceWrapper.getElement(), CSS.A.BACKGROUND, bodyProp);
+ }
+
+ @Override
+ public void enableCenterScroll(final boolean enable) {
+ // TODO use here Element.getStyle()...
+ if (enable) {
+ centerScroll.setAlwaysShowScrollBars(false);
+ DOM.setStyleAttribute(centerScroll.getElement(), "position", "absolute");
+ DOM.setStyleAttribute((Element) centerScroll.getElement().getFirstChildElement(), "position",
+ "relative");
+ } else {
+ centerScroll.getElement().getStyle().setOverflow(Overflow.HIDDEN);
+ DOM.setStyleAttribute(centerScroll.getElement(), "position", "");
+ DOM.setStyleAttribute((Element) centerScroll.getElement().getFirstChildElement(), "position", "");
+ }
+ }
+
+ @Override
+ public ForIsWidget getDocContainer() {
+ return docContainer;
+ }
+
+ @Override
+ public Pair<Integer, Integer> getDocContainerSize() {
+ return Pair.create(centerScroll.getOffsetHeight(), centerScroll.getOffsetWidth());
+ }
+
+ @Override
+ public ForIsWidget getDocFooter() {
+ return docFooter;
+ }
+
+ @Override
+ public IsActionExtensible getDocFooterToolbar() {
+ return docFooterToolbar;
+ }
+
+ @Override
+ public ForIsWidget getDocHeader() {
+ return docHeader;
+ }
+
+ @Override
+ public ForIsWidget getDocSubheader() {
+ return docSubheader;
+ }
+
+ @Override
+ public ForIsWidget getEntityFooter() {
+ return entityFooter;
+ }
+
+ @Override
+ public IsActionExtensible getEntityFooterToolbar() {
+ return entityFooterToolbar;
+ }
+
+ @Override
+ public ForIsWidget getEntityHeader() {
+ return entityHeader;
+ }
+
+ @Override
+ public ForIsWidget getEntityToolsCenter() {
+ return entityToolsCenter;
+ }
+
+ @Override
+ public ForIsWidget getEntityToolsNorth() {
+ return entityToolsNorth;
+ }
+
+ @Override
+ public ForIsWidget getEntityToolsSouth() {
+ return entityToolsSouth;
+ }
+
+ @Override
+ public IsActionExtensible getHeaderToolbar() {
+ return headerToolbar;
+ }
+
+ @Override
+ public SimplePanel getHomeSpace() {
+ return homeSpace;
+ }
+
+ @Override
+ public IsWidget getMainpanel() {
+ return mainpanel;
+ }
+
+ @Override
+ public SimplePanel getPublicSpace() {
+ return publicSpace;
+ }
+
+ @Override
+ public ForIsWidget getSitebar() {
+ return sitebar;
+ }
+
+ @Override
+ public IsActionExtensible getSubheaderToolbar() {
+ return subheaderToolbar;
+ }
+
+ @Override
+ public IsActionExtensible getToolsSouthToolbar() {
+ return toolsSouthToolbar;
+ }
+
+ @Override
+ public ForIsWidget getUserSpace() {
+ return userSpace;
+ }
+
+ @Override
+ public void selectGroupSpace() {
+ tabs.selectTab(groupSpaceWrapper);
+ }
+
+ @Override
+ public void selectHomeSpace() {
+ tabs.selectTab(homeSpace);
+ }
+
+ @Override
+ public void selectPublicSpace() {
+ tabs.selectTab(publicSpace);
+ }
+
+ @Override
+ public void selectUserSpace() {
+ tabs.selectTab(userSpace);
+ }
+
+ @Override
+ public void setBackImage(final String url) {
+ final String bodyProp = "#FFFFFF url('" + url + "') fixed top left";
+ DOM.setStyleAttribute(groupSpaceWrapper.getElement(), CSS.A.BACKGROUND, bodyProp);
+ }
+
+ @Override
+ public void setMaximized(final boolean maximized) {
+ // setMaximized(docFooter.getParent(), maximized);
+ // setMaximized(entityFooter.getParent(), maximized);
+ // setMaximized(entityHeader.getParent(), maximized);
+ // setMaximized(entityToolsContainer, maximized);
+ // splitCenter.setWidgetSize(centerScroll, getAbsoluteLeft())
+ // setMaximized(splitCenter.getWidget(0), maximized);
+ // setMaximized(splitCenter.getWidget(2), maximized);
+ // setMaximized(splitEast, maximized);
+ groupSpace.setWidgetSize(splitEast, maximized ? 0 : EAST_WIDTH);
+ splitCenter.setWidgetSize(centerNorth, maximized ? 7 : CENTER_NORTH_HEIGHT);
+ splitCenter.setWidgetSize(entityFooter, maximized ? 7 : CENTER_SOUTH_HEIGHT);
+ }
+
+ private void setMaximized(final Widget widget, final boolean maximized) {
+ widget.setVisible(!maximized);
+ if (maximized) {
+ // // $((Widget) gsArmor.getHeaderToolbar()).as(Effects).
+ // $(widget).as(Effects).slideDown(new Function() {
+ // @Override
+ // public void f() {
+ // }
+ // });
+ } else {
+ // $(widget).parent().as(Effects).slideUp(new Function() {
+ // @Override
+ // public void f() {
+ // }
+ // });
+ }
+ }
+}
Copied: trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmorDefault.ui.xml (from rev 1806, trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.ui.xml)
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmorDefault.ui.xml (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmorDefault.ui.xml 2012-03-31 17:43:11 UTC (rev 1811)
@@ -0,0 +1,126 @@
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+ xmlns:co="urn:import:cc.kune.core.client" xmlns:kp="urn:import:cc.kune.pspace.client"
+ xmlns:g="urn:import:com.google.gwt.user.client.ui">
+ <ui:with field='res'
+ type='cc.kune.gspace.client.armor.resources.GSpaceArmorResources'/>
+ <ui:style>
+ .frame {
+ border: 0px;
+ margin: 0px;
+ }
+ </ui:style>
+ <g:DockLayoutPanel ui:field="mainpanel" styleName='{res.style.mainPanel}'
+ unit="PX">
+ <g:north size="23">
+ <g:FlowPanel ui:field="sitebar" height="23px"
+ styleName='{res.style.siteBar}'>
+ </g:FlowPanel>
+ </g:north>
+ <g:center>
+ <g:TabLayoutPanel width="100%" height="100%"
+ barUnit='PX' barHeight='0' ui:field="tabs">
+ <g:tab>
+ <g:header size='0'/>
+ <g:SimplePanel styleName="k-space" ui:field="homeSpace"
+ width="100%" height="100%"></g:SimplePanel>
+ </g:tab>
+ <g:tab>
+ <g:header size='0'/>
+ <g:FlowPanel ui:field="userSpace" styleName="k-space"
+ width="100%" height="100%">
+ <!-- <g:Frame url="/" styleName="{style.frame}" -->
+ <!-- ui:field="frame" width="100%" height="100%" /> -->
+ </g:FlowPanel>
+ </g:tab>
+ <g:tab>
+ <g:header size='0'/>
+ <g:SimplePanel ui:field="groupSpaceWrapper"
+ styleName="k-group-space">
+ <g:SplitLayoutPanel width="100%" height="100%"
+ styleName="k-space" ui:field="groupSpace">
+ <g:center size="1.0">
+ <g:DockLayoutPanel unit="PX" ui:field="splitCenter"
+ styleName="{res.style.entityCentralContainer}">
+ <g:north size="153">
+ <g:VerticalPanel width="100%" ui:field="centerNorth"
+ height="153px">
+ <g:FlowPanel height="70px" width="100%"
+ styleName="{res.style.entityHeader}" ui:field="entityHeader">
+ <!--<g:RichTextArea width="100%" height="70px" /> -->
+ </g:FlowPanel>
+ <g:FlowPanel width="100%" height="38px"
+ styleName="{res.style.docHeader}" ui:field="docHeader">
+ </g:FlowPanel>
+ <g:HTMLPanel ui:field="arrow"
+ styleName="{res.style.docSubheaderArrow}"/>
+ <g:FlowPanel width="100%" height="45px"
+ styleName="{res.style.docSubheader}" ui:field="docSubheader">
+ </g:FlowPanel>
+ </g:VerticalPanel>
+ </g:north>
+ <g:center>
+ <g:DockLayoutPanel unit="PX"
+ styleName="{res.style.docEditorMargin}" ui:field="docContainerParent">
+ <g:west size="10">
+ <g:SimplePanel/>
+ </g:west>
+ <g:east size="10">
+ <g:SimplePanel/>
+ </g:east>
+ <g:center>
+ <g:ScrollPanel ui:field="centerScroll"
+ styleName="{res.style.docEditor}">
+ <g:FlowPanel width="auto" height="auto"
+ styleName="{res.style.docEditorContainer}"
+ ui:field="docContainer"/>
+ </g:ScrollPanel>
+ </g:center>
+ <g:south size="33.0">
+ <g:VerticalPanel height="33px"
+ width="100%" styleName="{res.style.docFooter}">
+ <g:FlowPanel width="100%" height="33"
+ ui:field="docFooter">
+ </g:FlowPanel>
+ </g:VerticalPanel>
+ </g:south>
+ </g:DockLayoutPanel>
+ </g:center>
+ <g:south size="36">
+ <g:FlowPanel height="36px" width="100%"
+ styleName="{res.style.entityFooter}" ui:field="entityFooter">
+ </g:FlowPanel>
+ </g:south>
+ </g:DockLayoutPanel>
+ </g:center>
+ <!-- east to RTL (plus css changes in corners and menus) -->
+ <g:west size="202.0">
+ <g:DockLayoutPanel unit="PX"
+ styleName="{res.style.entityTools}" ui:field="splitEast">
+ <g:center>
+ <g:FlowPanel ui:field="entityToolsContainer">
+ <g:FlowPanel width="100%" ui:field="entityToolsNorth"
+ styleName="{res.style.entityToolsNorth}"></g:FlowPanel>
+ <g:FlowPanel width="100%" ui:field="entityToolsCenter"
+ styleName="{res.style.entityToolsCenter}">
+ </g:FlowPanel>
+ </g:FlowPanel>
+ </g:center>
+ <g:south size="98">
+ <g:FlowPanel styleName="{res.style.entityToolsSouth}"
+ ui:field="entityToolsSouth" width="100%"/>
+ </g:south>
+ </g:DockLayoutPanel>
+ </g:west>
+ </g:SplitLayoutPanel>
+ </g:SimplePanel>
+ </g:tab>
+ <g:tab>
+ <g:header size='0'/>
+ <g:SimplePanel ui:field="publicSpace" width="100%"
+ styleName="k-space" height="100%"></g:SimplePanel>
+ </g:tab>
+ </g:TabLayoutPanel>
+ </g:center>
+ </g:DockLayoutPanel>
+</ui:UiBinder>
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceCenterPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceCenterPanel.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceCenterPanel.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -0,0 +1,69 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.gspace.client.armor;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.Style.Overflow;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Element;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.DeckPanel;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.ScrollPanel;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.inject.Singleton;
+
+@Singleton
+public class GSpaceCenterPanel extends Composite {
+
+ interface GSpaceCenterPanelUiBinder extends UiBinder<Widget, GSpaceCenterPanel> {
+ }
+ private static GSpaceCenterPanelUiBinder uiBinder = GWT.create(GSpaceCenterPanelUiBinder.class);
+ @UiField
+ ScrollPanel centerScroll;
+ @UiField
+ DeckPanel deck;
+ @UiField
+ FlowPanel infoPanel;
+ @UiField
+ FlowPanel mainPanel;
+
+ public GSpaceCenterPanel() {
+ initWidget(uiBinder.createAndBindUi(this));
+ }
+
+ public void enableCenterScroll(final boolean enable) {
+ // TODO use here Element.getStyle()...
+ if (enable) {
+ // Move up???
+ centerScroll.setAlwaysShowScrollBars(false);
+ DOM.setStyleAttribute(centerScroll.getElement(), "position", "absolute");
+ DOM.setStyleAttribute((Element) centerScroll.getElement().getFirstChildElement(), "position",
+ "relative");
+ } else {
+ centerScroll.getElement().getStyle().setOverflow(Overflow.HIDDEN);
+ DOM.setStyleAttribute(centerScroll.getElement(), "position", "");
+ DOM.setStyleAttribute((Element) centerScroll.getElement().getFirstChildElement(), "position", "");
+ }
+ }
+}
Added: trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceCenterPanel.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceCenterPanel.ui.xml (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceCenterPanel.ui.xml 2012-03-31 17:43:11 UTC (rev 1811)
@@ -0,0 +1,16 @@
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+ xmlns:g="urn:import:com.google.gwt.user.client.ui">
+ <ui:with field='res'
+ type='cc.kune.gspace.client.armor.resources.GSpaceArmorResources'/>
+ <ui:style>
+ </ui:style>
+ <g:ScrollPanel ui:field="centerScroll" styleName="{res.style.docEditor}">
+ <g:DeckPanel ui:field="deck" width="auto" height="auto">
+ <g:FlowPanel width="auto" height="auto"
+ styleName="{res.style.docEditorContainer}" ui:field="infoPanel"/>
+ <g:FlowPanel width="auto" height="auto"
+ styleName="{res.style.docEditorContainer}" ui:field="mainPanel"/>
+ </g:DeckPanel>
+ </g:ScrollPanel>
+</ui:UiBinder>
\ No newline at end of file
Deleted: trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -1,315 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.gspace.client.armor.impl;
-
-import org.cobogw.gwt.user.client.CSS;
-
-import cc.kune.common.client.actions.ui.ActionFlowPanel;
-import cc.kune.common.client.actions.ui.IsActionExtensible;
-import cc.kune.common.shared.utils.Pair;
-import cc.kune.gspace.client.armor.GSpaceArmor;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.dom.client.Style.Overflow;
-import com.google.gwt.dom.client.Style.Position;
-import com.google.gwt.uibinder.client.UiBinder;
-import com.google.gwt.uibinder.client.UiField;
-import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.Element;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.DockLayoutPanel;
-import com.google.gwt.user.client.ui.FlowPanel;
-import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget;
-import com.google.gwt.user.client.ui.IsWidget;
-import com.google.gwt.user.client.ui.ScrollPanel;
-import com.google.gwt.user.client.ui.SimplePanel;
-import com.google.gwt.user.client.ui.SplitLayoutPanel;
-import com.google.gwt.user.client.ui.TabLayoutPanel;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.Widget;
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-
-public class GSpaceArmorImpl extends Composite implements GSpaceArmor {
-
- interface WsArmorImplUiBinder extends UiBinder<Widget, GSpaceArmorImpl> {
- }
- private static final int CENTER_NORTH_HEIGHT = 153;
- private static final int CENTER_SOUTH_HEIGHT = 36;
- private static final int EAST_WIDTH = 220;
-
- private static WsArmorImplUiBinder uiBinder = GWT.create(WsArmorImplUiBinder.class);
-
- @UiField
- VerticalPanel centerNorth;
- @UiField
- ScrollPanel centerScroll;
- @UiField
- FlowPanel docContainer;
- @UiField
- DockLayoutPanel docContainerParent;
- @UiField
- FlowPanel docFooter;
- private final ActionFlowPanel docFooterToolbar;
- @UiField
- FlowPanel docHeader;
- @UiField
- FlowPanel docSubheader;
- @UiField
- FlowPanel entityFooter;
- private final ActionFlowPanel entityFooterToolbar;
- @UiField
- FlowPanel entityHeader;
- @UiField
- FlowPanel entityToolsCenter;
- @UiField
- FlowPanel entityToolsContainer;
- @UiField
- FlowPanel entityToolsNorth;
- @UiField
- FlowPanel entityToolsSouth;
- @UiField
- SplitLayoutPanel groupSpace;
- @UiField
- SimplePanel groupSpaceWrapper;
- private final ActionFlowPanel headerToolbar;
- @UiField
- SimplePanel homeSpace;
- @UiField
- DockLayoutPanel mainpanel;
- @UiField
- SimplePanel publicSpace;
- @UiField
- FlowPanel sitebar;
- @UiField
- DockLayoutPanel splitCenter;
- @UiField
- DockLayoutPanel splitEast;
- private final ActionFlowPanel subheaderToolbar;
- @UiField
- TabLayoutPanel tabs;
- private final ActionFlowPanel toolsSouthToolbar;
- @UiField
- FlowPanel userSpace;
-
- @Inject
- public GSpaceArmorImpl(final Provider<ActionFlowPanel> toolbarProv) {
- initWidget(uiBinder.createAndBindUi(this));
- groupSpace.setWidgetMinSize(splitEast, 150);
- DOM.setStyleAttribute((Element) groupSpace.getWidgetContainerElement(splitEast), "overflow",
- "visible");
- DOM.setStyleAttribute((Element) splitEast.getWidgetContainerElement(entityToolsContainer),
- "overflow", "visible");
- docFooterToolbar = toolbarProv.get();
- headerToolbar = toolbarProv.get();
- subheaderToolbar = toolbarProv.get();
- toolsSouthToolbar = toolbarProv.get();
- entityFooterToolbar = toolbarProv.get();
- getDocHeader().add(headerToolbar);
- getDocSubheader().add(subheaderToolbar);
- getDocFooter().add(docFooterToolbar);
- getEntityToolsSouth().add(toolsSouthToolbar);
- getEntityFooter().add(entityFooterToolbar);
- entityToolsNorth.getElement().getStyle().setPosition(Position.RELATIVE);
- // entityToolsSouth.setVisible(false);
- mainpanel.getWidgetContainerElement(tabs).addClassName("k-spaces");
- enableCenterScroll(true);
- }
-
- @Override
- public void clearBackImage() {
- final String bodyProp = "#FFFFFF";
- DOM.setStyleAttribute(groupSpaceWrapper.getElement(), CSS.A.BACKGROUND, bodyProp);
- }
-
- @Override
- public void enableCenterScroll(final boolean enable) {
- // TODO use here Element.getStyle()...
- if (enable) {
- centerScroll.setAlwaysShowScrollBars(false);
- DOM.setStyleAttribute(centerScroll.getElement(), "position", "absolute");
- DOM.setStyleAttribute((Element) centerScroll.getElement().getFirstChildElement(), "position",
- "relative");
- } else {
- centerScroll.getElement().getStyle().setOverflow(Overflow.HIDDEN);
- DOM.setStyleAttribute(centerScroll.getElement(), "position", "");
- DOM.setStyleAttribute((Element) centerScroll.getElement().getFirstChildElement(), "position", "");
- }
- }
-
- @Override
- public ForIsWidget getDocContainer() {
- return docContainer;
- }
-
- @Override
- public Pair<Integer, Integer> getDocContainerSize() {
- return Pair.create(centerScroll.getOffsetHeight(), centerScroll.getOffsetWidth());
- }
-
- @Override
- public ForIsWidget getDocFooter() {
- return docFooter;
- }
-
- @Override
- public IsActionExtensible getDocFooterToolbar() {
- return docFooterToolbar;
- }
-
- @Override
- public ForIsWidget getDocHeader() {
- return docHeader;
- }
-
- @Override
- public ForIsWidget getDocSubheader() {
- return docSubheader;
- }
-
- @Override
- public ForIsWidget getEntityFooter() {
- return entityFooter;
- }
-
- @Override
- public IsActionExtensible getEntityFooterToolbar() {
- return entityFooterToolbar;
- }
-
- @Override
- public ForIsWidget getEntityHeader() {
- return entityHeader;
- }
-
- @Override
- public ForIsWidget getEntityToolsCenter() {
- return entityToolsCenter;
- }
-
- @Override
- public ForIsWidget getEntityToolsNorth() {
- return entityToolsNorth;
- }
-
- @Override
- public ForIsWidget getEntityToolsSouth() {
- return entityToolsSouth;
- }
-
- @Override
- public IsActionExtensible getHeaderToolbar() {
- return headerToolbar;
- }
-
- @Override
- public SimplePanel getHomeSpace() {
- return homeSpace;
- }
-
- @Override
- public IsWidget getMainpanel() {
- return mainpanel;
- }
-
- @Override
- public SimplePanel getPublicSpace() {
- return publicSpace;
- }
-
- @Override
- public ForIsWidget getSitebar() {
- return sitebar;
- }
-
- @Override
- public IsActionExtensible getSubheaderToolbar() {
- return subheaderToolbar;
- }
-
- @Override
- public IsActionExtensible getToolsSouthToolbar() {
- return toolsSouthToolbar;
- }
-
- @Override
- public ForIsWidget getUserSpace() {
- return userSpace;
- }
-
- @Override
- public void selectGroupSpace() {
- tabs.selectTab(groupSpaceWrapper);
- }
-
- @Override
- public void selectHomeSpace() {
- tabs.selectTab(homeSpace);
- }
-
- @Override
- public void selectPublicSpace() {
- tabs.selectTab(publicSpace);
- }
-
- @Override
- public void selectUserSpace() {
- tabs.selectTab(userSpace);
- }
-
- @Override
- public void setBackImage(final String url) {
- final String bodyProp = "#FFFFFF url('" + url + "') fixed top left";
- DOM.setStyleAttribute(groupSpaceWrapper.getElement(), CSS.A.BACKGROUND, bodyProp);
- }
-
- @Override
- public void setMaximized(final boolean maximized) {
- // setMaximized(docFooter.getParent(), maximized);
- // setMaximized(entityFooter.getParent(), maximized);
- // setMaximized(entityHeader.getParent(), maximized);
- // setMaximized(entityToolsContainer, maximized);
- // splitCenter.setWidgetSize(centerScroll, getAbsoluteLeft())
- // setMaximized(splitCenter.getWidget(0), maximized);
- // setMaximized(splitCenter.getWidget(2), maximized);
- // setMaximized(splitEast, maximized);
- groupSpace.setWidgetSize(splitEast, maximized ? 0 : EAST_WIDTH);
- splitCenter.setWidgetSize(centerNorth, maximized ? 7 : CENTER_NORTH_HEIGHT);
- splitCenter.setWidgetSize(entityFooter, maximized ? 7 : CENTER_SOUTH_HEIGHT);
- }
-
- private void setMaximized(final Widget widget, final boolean maximized) {
- widget.setVisible(!maximized);
- if (maximized) {
- // // $((Widget) gsArmor.getHeaderToolbar()).as(Effects).
- // $(widget).as(Effects).slideDown(new Function() {
- // @Override
- // public void f() {
- // }
- // });
- } else {
- // $(widget).parent().as(Effects).slideUp(new Function() {
- // @Override
- // public void f() {
- // }
- // });
- }
- }
-}
Deleted: trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.ui.xml 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.ui.xml 2012-03-31 17:43:11 UTC (rev 1811)
@@ -1,126 +0,0 @@
-<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
-<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
- xmlns:co="urn:import:cc.kune.core.client" xmlns:kp="urn:import:cc.kune.pspace.client"
- xmlns:g="urn:import:com.google.gwt.user.client.ui">
- <ui:with field='res'
- type='cc.kune.gspace.client.armor.resources.GSpaceArmorResources'/>
- <ui:style>
- .frame {
- border: 0px;
- margin: 0px;
- }
- </ui:style>
- <g:DockLayoutPanel ui:field="mainpanel" styleName='{res.style.mainPanel}'
- unit="PX">
- <g:north size="23">
- <g:FlowPanel ui:field="sitebar" height="23px"
- styleName='{res.style.siteBar}'>
- </g:FlowPanel>
- </g:north>
- <g:center>
- <g:TabLayoutPanel width="100%" height="100%"
- barUnit='PX' barHeight='0' ui:field="tabs">
- <g:tab>
- <g:header size='0'/>
- <g:SimplePanel styleName="k-space" ui:field="homeSpace"
- width="100%" height="100%"></g:SimplePanel>
- </g:tab>
- <g:tab>
- <g:header size='0'/>
- <g:FlowPanel ui:field="userSpace" styleName="k-space"
- width="100%" height="100%">
- <!-- <g:Frame url="/" styleName="{style.frame}" -->
- <!-- ui:field="frame" width="100%" height="100%" /> -->
- </g:FlowPanel>
- </g:tab>
- <g:tab>
- <g:header size='0'/>
- <g:SimplePanel ui:field="groupSpaceWrapper"
- styleName="k-group-space">
- <g:SplitLayoutPanel width="100%" height="100%"
- styleName="k-space" ui:field="groupSpace">
- <g:center size="1.0">
- <g:DockLayoutPanel unit="PX" ui:field="splitCenter"
- styleName="{res.style.entityCentralContainer}">
- <g:north size="153">
- <g:VerticalPanel width="100%" ui:field="centerNorth"
- height="153px">
- <g:FlowPanel height="70px" width="100%"
- styleName="{res.style.entityHeader}" ui:field="entityHeader">
- <!--<g:RichTextArea width="100%" height="70px" /> -->
- </g:FlowPanel>
- <g:FlowPanel width="100%" height="38px"
- styleName="{res.style.docHeader}" ui:field="docHeader">
- </g:FlowPanel>
- <g:HTMLPanel ui:field="arrow"
- styleName="{res.style.docSubheaderArrow}"/>
- <g:FlowPanel width="100%" height="45px"
- styleName="{res.style.docSubheader}" ui:field="docSubheader">
- </g:FlowPanel>
- </g:VerticalPanel>
- </g:north>
- <g:center>
- <g:DockLayoutPanel unit="PX"
- styleName="{res.style.docEditorMargin}" ui:field="docContainerParent">
- <g:west size="10">
- <g:SimplePanel/>
- </g:west>
- <g:east size="10">
- <g:SimplePanel/>
- </g:east>
- <g:center>
- <g:ScrollPanel ui:field="centerScroll"
- styleName="{res.style.docEditor}">
- <g:FlowPanel width="auto" height="auto"
- styleName="{res.style.docEditorContainer}"
- ui:field="docContainer"/>
- </g:ScrollPanel>
- </g:center>
- <g:south size="33.0">
- <g:VerticalPanel height="33px"
- width="100%" styleName="{res.style.docFooter}">
- <g:FlowPanel width="100%" height="33"
- ui:field="docFooter">
- </g:FlowPanel>
- </g:VerticalPanel>
- </g:south>
- </g:DockLayoutPanel>
- </g:center>
- <g:south size="36">
- <g:FlowPanel height="36px" width="100%"
- styleName="{res.style.entityFooter}" ui:field="entityFooter">
- </g:FlowPanel>
- </g:south>
- </g:DockLayoutPanel>
- </g:center>
- <!-- east to RTL (plus css changes in corners and menus) -->
- <g:west size="202.0">
- <g:DockLayoutPanel unit="PX"
- styleName="{res.style.entityTools}" ui:field="splitEast">
- <g:center>
- <g:FlowPanel ui:field="entityToolsContainer">
- <g:FlowPanel width="100%" ui:field="entityToolsNorth"
- styleName="{res.style.entityToolsNorth}"></g:FlowPanel>
- <g:FlowPanel width="100%" ui:field="entityToolsCenter"
- styleName="{res.style.entityToolsCenter}">
- </g:FlowPanel>
- </g:FlowPanel>
- </g:center>
- <g:south size="98">
- <g:FlowPanel styleName="{res.style.entityToolsSouth}"
- ui:field="entityToolsSouth" width="100%"/>
- </g:south>
- </g:DockLayoutPanel>
- </g:west>
- </g:SplitLayoutPanel>
- </g:SimplePanel>
- </g:tab>
- <g:tab>
- <g:header size='0'/>
- <g:SimplePanel ui:field="publicSpace" width="100%"
- styleName="k-space" height="100%"></g:SimplePanel>
- </g:tab>
- </g:TabLayoutPanel>
- </g:center>
- </g:DockLayoutPanel>
-</ui:UiBinder>
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -199,11 +199,11 @@
}
}
final GuiActionDescCollection topActions = actionsRegistry.getCurrentActions(
- stateContent.getGroup(), stateContent.getTypeId(), session.isLogged(), rights,
- ActionGroups.TOPBAR);
+ stateContent.getToolName(), stateContent.getGroup(), stateContent.getTypeId(),
+ session.isLogged(), rights, ActionGroups.TOPBAR);
final GuiActionDescCollection bottomActions = actionsRegistry.getCurrentActions(
- stateContent.getGroup(), stateContent.getTypeId(), session.isLogged(), rights,
- ActionGroups.BOTTOMBAR);
+ stateContent.getToolName(), stateContent.getGroup(), stateContent.getTypeId(),
+ session.isLogged(), rights, ActionGroups.BOTTOMBAR);
final GuiActionDescCollection pathActions = pathToolbarUtils.createPath(stateContent.getContainer(),
true);
bottomActions.addAll(pathActions);
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerUtils.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerUtils.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -93,9 +93,9 @@
});
}
- private void addItem(final AbstractContentSimpleDTO content, final BasicMimeTypeDTO mimeType,
- final ContentStatus status, final StateToken parentStateToken, final AccessRights rights,
- final long modifiedOn, final boolean isContainer) {
+ private void addItem(final String tool, final AbstractContentSimpleDTO content,
+ final BasicMimeTypeDTO mimeType, final ContentStatus status, final StateToken parentStateToken,
+ final AccessRights rights, final long modifiedOn, final boolean isContainer) {
final StateToken stateToken = content.getStateToken();
final String typeId = content.getTypeId();
final String name = content.getName();
@@ -104,18 +104,19 @@
final String tooltip = getTooltip(stateToken, mimeType,
capabReg.isDragable(typeId) && rights.isAdministrable());
final boolean thisTypeShouldShowDelete = capabReg.showDeleted(typeId)
- || parentStateToken.getTool().equals(TrashToolConstants.NAME);
+ || parentStateToken.getTool().equals(TrashToolConstants.TOOL_NAME);
final boolean showAllDeleted = session.getShowDeletedContent();
if (status.equals(ContentStatus.inTheDustbin) && !(thisTypeShouldShowDelete || showAllDeleted)) {
// Don't show
// NotifyUser.info("Deleted, don't show: " + parentStateToken + " " +
// thisTypeShouldShowDelete);
} else {
+ final GuiActionDescCollection currentActions = actionsRegistry.getCurrentActions(tool, content,
+ typeId, status, session.isLogged(), rights, ActionGroups.ITEM_MENU);
final FolderItemDescriptor item = new FolderItemDescriptor(genId(stateToken),
genId(parentStateToken), icon, name, tooltip, status, stateToken, modifiedOn,
capabReg.isDragable(typeId) && rights.isAdministrable(), capabReg.isDropable(typeId)
- && rights.isAdministrable(), actionsRegistry.getCurrentActions(content, typeId, status,
- session.isLogged(), rights, ActionGroups.ITEM_MENU), isContainer);
+ && rights.isAdministrable(), currentActions, isContainer);
getView().addItem(item, new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
@@ -148,16 +149,16 @@
} else {
// Folders
for (final ContainerSimpleDTO childFolder : container.getChilds()) {
- addItem(childFolder, null, ContentStatus.publishedOnline,
- childFolder.getStateToken().copy().setFolder(childFolder.getParentFolderId()),
- containerRights, FolderViewerView.NO_DATE, true);
+ addItem(container.getAbsolutePath()[0].getStateToken().getTool(), childFolder, null,
+ ContentStatus.publishedOnline, childFolder.getParentToken(), containerRights,
+ FolderViewerView.NO_DATE, true);
}
// Other contents (docs, etc)
for (final ContentSimpleDTO content : container.getContents()) {
assert content != null;
- addItem(content, content.getMimeType(), content.getStatus(),
- content.getStateToken().copy().clearDocument(), content.getRights(),
- content.getModifiedOn(), false);
+ addItem(container.getAbsolutePath()[0].getStateToken().getTool(), content,
+ content.getMimeType(), content.getStatus(), content.getStateToken().copy().clearDocument(),
+ content.getRights(), content.getModifiedOn(), false);
}
}
}
@@ -202,11 +203,11 @@
final AccessRights rights = stateContainer.getContainerRights();
// NotifyUser.info("Rights: " + rights, true);
final GuiActionDescCollection topActions = actionsRegistry.getCurrentActions(
- stateContainer.getGroup(), stateContainer.getTypeId(), session.isLogged(), rights,
- ActionGroups.TOPBAR);
+ stateContainer.getToolName(), stateContainer.getGroup(), stateContainer.getTypeId(),
+ session.isLogged(), rights, ActionGroups.TOPBAR);
final GuiActionDescCollection bottomActions = actionsRegistry.getCurrentActions(
- stateContainer.getGroup(), stateContainer.getTypeId(), session.isLogged(), rights,
- ActionGroups.BOTTOMBAR);
+ stateContainer.getToolName(), stateContainer.getGroup(), stateContainer.getTypeId(),
+ session.isLogged(), rights, ActionGroups.BOTTOMBAR);
final ContainerDTO container = stateContainer.getContainer();
final GuiActionDescCollection pathActions = pathToolbarUtils.createPath(container, true);
bottomActions.addAll(pathActions);
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/TutorialViewer.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/TutorialViewer.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/TutorialViewer.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -28,6 +28,7 @@
import cc.kune.core.shared.FileConstants;
import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
@@ -60,6 +61,10 @@
initWidget(uiBinder.createAndBindUi(this));
}
+ public HasClickHandlers getCloseBtn() {
+ return closeBtn;
+ }
+
private String getTutorialLang() {
if (langs == null) {
langs = session.getInitData().getTutorialLanguages();
@@ -76,7 +81,7 @@
final String he = (height - FOOTBAR) + "px";
frame.setWidth("100%");
frame.setHeight(he);
- Log.info("Resizing to: " + height);
+ Log.debug("Resizing to: " + height);
}
}
Modified: trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.lists.client;
-import static cc.kune.lists.shared.ListsToolConstants.NAME;
+import static cc.kune.lists.shared.ListsToolConstants.TOOL_NAME;
import static cc.kune.lists.shared.ListsToolConstants.ROOT_NAME;
import static cc.kune.lists.shared.ListsToolConstants.TYPE_LIST;
import static cc.kune.lists.shared.ListsToolConstants.TYPE_POST;
@@ -43,7 +43,7 @@
final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources,
final IconicResources icons) {
super(
- NAME,
+ TOOL_NAME,
i18n.t(ROOT_NAME),
i18n.t("Lists behave like a mailing list or a forum. You can subscribe and discuss about specific topics"),
icons.lists(), AccessRolDTO.Viewer, toolSelector, cntCapRegistry, i18n, navResources);
@@ -63,7 +63,7 @@
@Override
public String getName() {
- return NAME;
+ return TOOL_NAME;
}
private void registerIcons() {
Modified: trunk/src/main/java/cc/kune/lists/client/actions/ListsClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/ListsClientActions.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/lists/client/actions/ListsClientActions.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,6 +19,7 @@
\*/
package cc.kune.lists.client.actions;
+import static cc.kune.lists.shared.ListsToolConstants.TOOL_NAME;
import static cc.kune.lists.shared.ListsToolConstants.TYPE_LIST;
import static cc.kune.lists.shared.ListsToolConstants.TYPE_POST;
import static cc.kune.lists.shared.ListsToolConstants.TYPE_ROOT;
@@ -40,10 +41,13 @@
import cc.kune.gspace.client.actions.ContentViewerShareMenu;
import cc.kune.gspace.client.actions.CopyContentMenuItem;
import cc.kune.gspace.client.actions.ParticipateInContentBtn;
+import cc.kune.gspace.client.actions.PurgeContentBtn;
+import cc.kune.gspace.client.actions.PurgeContentMenuItem;
import cc.kune.gspace.client.actions.RefreshContentMenuItem;
import cc.kune.gspace.client.actions.SetAsHomePageMenuItem;
import cc.kune.gspace.client.actions.TutorialContainerBtn;
import cc.kune.gspace.client.actions.WriteToParticipantsMenuItem;
+import cc.kune.trash.shared.TrashToolConstants;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -77,46 +81,50 @@
final Provider<ParticipateInContentBtn> participateBtn,
final Provider<CopyContentMenuItem> copyContent,
final Provider<RefreshContentMenuItem> refreshPost,
+ final Provider<PurgeContentMenuItem> purgeMenuItem, final Provider<PurgeContentBtn> purgeBtn,
final Provider<WriteToParticipantsMenuItem> writeToParticipants, final ListsNewMenu listNewMenu,
final PostNewMenu postNewMenu, final NewMenusForTypeIdsRegistry newMenusRegistry,
final Provider<ChatAboutContentBtn> chatAbout, final Provider<DelListMenuItem> delFolderMenuItem,
final Provider<SetAsHomePageMenuItem> setAsHomePage) {
super(session, stateManager, i18n, registry);
- actionsRegistry.addAction(ActionGroups.TOPBAR, optionsMenuContainer, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, optionsMenuContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newPostIconBtn, noRoot);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newListBtn, TYPE_ROOT);
- actionsRegistry.addAction(ActionGroups.TOPBAR, listNewMenu, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.TOPBAR, postNewMenu, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, subscribeBtn, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.TOPBAR, refreshList, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, refreshPost, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, listOpenessMenuItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newPostItem, containersNoRoot);
- // actionsRegistry.addAction(ActionGroups.TOOLBAR, newListMenuItem,
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, optionsMenuContainer, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, optionsMenuContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newPostIconBtn, noRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newListBtn, TYPE_ROOT);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, listNewMenu, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, postNewMenu, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, subscribeBtn, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, refreshList, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, refreshPost, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, listOpenessMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newPostItem, containersNoRoot);
+ // actionsRegistry.addAction(NAME, ActionGroups.TOOLBAR, newListMenuItem,
// TYPE_ROOT);
- actionsRegistry.addAction(ActionGroups.BOTTOMBAR, folderGoUp, contents);
- actionsRegistry.addAction(ActionGroups.BOTTOMBAR, folderGoUp, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, tutorialBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, shareMenuContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addAllMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addAdminMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addCollabMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addPublicMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, participateBtn, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, subscribersCount, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.TOPBAR, copyContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, chatAbout, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, writeToParticipants, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, delFolderMenuItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addAllMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addAdminMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addCollabMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addPublicMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, copyContent, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, writeToParticipants, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.BOTTOMBAR, folderGoUp, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.BOTTOMBAR, folderGoUp, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, tutorialBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, shareMenuContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addAllMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addAdminMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addCollabMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addPublicMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, participateBtn, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, subscribersCount, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, copyContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, chatAbout, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, writeToParticipants, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, openContentMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, openContentMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, delFolderMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addAllMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addAdminMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addCollabMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addPublicMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, copyContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, writeToParticipants, contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeBtn, contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeMenuItem,
+ contents);
newMenusRegistry.register(TYPE_LIST, listNewMenu.get());
newMenusRegistry.register(TYPE_ROOT, listNewMenu.get());
newMenusRegistry.register(TYPE_POST,
Modified: trunk/src/main/java/cc/kune/lists/server/ListsServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/server/ListsServerTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/lists/server/ListsServerTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.lists.server;
-import static cc.kune.lists.shared.ListsToolConstants.NAME;
+import static cc.kune.lists.shared.ListsToolConstants.TOOL_NAME;
import static cc.kune.lists.shared.ListsToolConstants.ROOT_NAME;
import static cc.kune.lists.shared.ListsToolConstants.TYPE_LIST;
import static cc.kune.lists.shared.ListsToolConstants.TYPE_POST;
@@ -59,7 +59,7 @@
final ToolConfigurationManager configurationManager, final I18nTranslationService i18n,
final UserSessionManager userSessionManager, final KuneWaveService waveManager,
final CreationService creationService) {
- super(NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_POST), Arrays.asList(TYPE_LIST),
+ super(TOOL_NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_POST), Arrays.asList(TYPE_LIST),
Arrays.asList(TYPE_LIST), Arrays.asList(TYPE_ROOT), contentManager, containerManager,
creationService, configurationManager, i18n, ServerToolTarget.forGroups);
this.userSessionManager = userSessionManager;
Modified: trunk/src/main/java/cc/kune/lists/shared/ListsToolConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/shared/ListsToolConstants.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/lists/shared/ListsToolConstants.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -21,11 +21,11 @@
public final class ListsToolConstants {
- public static final String NAME = "lists";
+ public static final String TOOL_NAME = "lists";
public static final String ROOT_NAME = "lists";
- public static final String TYPE_LIST = NAME + "." + "list";
- public static final String TYPE_POST = NAME + "." + "post";
- public static final String TYPE_ROOT = NAME + "." + "root";
+ public static final String TYPE_LIST = TOOL_NAME + "." + "list";
+ public static final String TYPE_POST = TOOL_NAME + "." + "post";
+ public static final String TYPE_ROOT = TOOL_NAME + "." + "root";
private ListsToolConstants() {
}
Modified: trunk/src/main/java/cc/kune/tasks/client/TasksClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/tasks/client/TasksClientTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/tasks/client/TasksClientTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.tasks.client;
-import static cc.kune.tasks.shared.TasksToolConstants.NAME;
+import static cc.kune.tasks.shared.TasksToolConstants.TOOL_NAME;
import static cc.kune.tasks.shared.TasksToolConstants.ROOT_NAME;
import static cc.kune.tasks.shared.TasksToolConstants.TYPE_FOLDER;
import static cc.kune.tasks.shared.TasksToolConstants.TYPE_ROOT;
@@ -45,7 +45,7 @@
final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources,
final IconicResources icons) {
super(
- NAME,
+ TOOL_NAME,
i18n.t(ROOT_NAME),
i18n.t("A collaborative TO-DO list for the group. Any group-member can participate in any proposed task, add others to a task, comment them, add info, etc"),
icons.tasks(), AccessRolDTO.Viewer, toolSelector, cntCapRegistry, i18n, navResources);
@@ -65,7 +65,7 @@
@Override
public String getName() {
- return NAME;
+ return TOOL_NAME;
}
private void registerIcons() {
Modified: trunk/src/main/java/cc/kune/tasks/client/actions/TasksClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/tasks/client/actions/TasksClientActions.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/tasks/client/actions/TasksClientActions.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,6 +19,7 @@
\*/
package cc.kune.tasks.client.actions;
+import static cc.kune.tasks.shared.TasksToolConstants.TOOL_NAME;
import static cc.kune.tasks.shared.TasksToolConstants.TYPE_FOLDER;
import static cc.kune.tasks.shared.TasksToolConstants.TYPE_ROOT;
import static cc.kune.tasks.shared.TasksToolConstants.TYPE_TASK;
@@ -41,10 +42,13 @@
import cc.kune.gspace.client.actions.ContentViewerShareMenu;
import cc.kune.gspace.client.actions.CopyContentMenuItem;
import cc.kune.gspace.client.actions.ParticipateInContentBtn;
+import cc.kune.gspace.client.actions.PurgeContentBtn;
+import cc.kune.gspace.client.actions.PurgeContentMenuItem;
import cc.kune.gspace.client.actions.RefreshContentMenuItem;
import cc.kune.gspace.client.actions.SetAsHomePageMenuItem;
import cc.kune.gspace.client.actions.TutorialContainerBtn;
import cc.kune.gspace.client.actions.WriteToParticipantsMenuItem;
+import cc.kune.trash.shared.TrashToolConstants;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -75,6 +79,7 @@
final Provider<AddAdminMembersToContentMenuItem> addAdminMembersMenuItem,
final Provider<AddCollabMembersToContentMenuItem> addCollabMembersMenuItem,
final Provider<AddPublicToContentMenuItem> addPublicMenuItem,
+ final Provider<PurgeContentMenuItem> purgeMenuItem, final Provider<PurgeContentBtn> purgeBtn,
final Provider<ChatAboutContentBtn> chatAbout, final Provider<CopyContentMenuItem> copyContent,
final Provider<WriteToParticipantsMenuItem> writeToParticipants,
final TasksFolderNewMenu taskFolderNewMenu, final TasksNewMenu taskNewMenu,
@@ -82,42 +87,46 @@
final Provider<DelFolderMenuItem> delFolderMenuItem,
final Provider<SetAsHomePageMenuItem> setAsHomePage) {
super(session, stateManager, i18n, registry);
- actionsRegistry.addAction(ActionGroups.TOPBAR, optionsMenuContent, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, refresh, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newTaskIconBtn, all);
- // actionsRegistry.addAction(ActionGroups.TOOLBAR, taskFolderNewMenu,
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, optionsMenuContent, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, refresh, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newTaskIconBtn, all);
+ // actionsRegistry.addAction(NAME, ActionGroups.TOOLBAR, taskFolderNewMenu,
// containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, taskNewMenu, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newFolderBtn, containers);
- // actionsRegistry.addAction(ActionGroups.TOOLBAR, newTaskItem, containers);
- actionsRegistry.addAction(ActionGroups.BOTTOMBAR, folderGoUp, contents);
- actionsRegistry.addAction(ActionGroups.BOTTOMBAR, folderGoUp, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, tutorialBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, shareMenuContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addAllMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addAdminMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addCollabMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addPublicMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, participateBtn, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, chatAbout, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, copyContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, writeToParticipants, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, marksAsDoneMenuItem,
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, taskNewMenu, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newFolderBtn, containers);
+ // actionsRegistry.addAction(NAME, ActionGroups.TOOLBAR, newTaskItem,
+ // containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.BOTTOMBAR, folderGoUp, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.BOTTOMBAR, folderGoUp, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, tutorialBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, shareMenuContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addAllMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addAdminMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addCollabMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addPublicMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, participateBtn, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, chatAbout, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, copyContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, writeToParticipants, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, openContentMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, openContentMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, marksAsDoneMenuItem,
ContentStatus.publishedOnline, TYPE_TASK);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, marksAsDoneMenuItem,
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, marksAsDoneMenuItem,
ContentStatus.editingInProgress, TYPE_TASK);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, marksAsNotDoneMenuItem,
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, marksAsNotDoneMenuItem,
ContentStatus.inTheDustbin, TYPE_TASK);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, delFolderMenuItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, delContentMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addAllMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addAdminMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addCollabMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addPublicMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, copyContent, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, writeToParticipants, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, delFolderMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, delContentMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addAllMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addAdminMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addCollabMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addPublicMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, copyContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, writeToParticipants, contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeBtn, contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeMenuItem,
+ contents);
// Currently new menu in folders has no sense (because we have buttons for
// the same contents)
// newMenusRegistry.register(TYPE_FOLDER, taskFolderNewMenu.get());
Modified: trunk/src/main/java/cc/kune/tasks/server/TaskServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/tasks/server/TaskServerTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/tasks/server/TaskServerTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.tasks.server;
-import static cc.kune.tasks.shared.TasksToolConstants.NAME;
+import static cc.kune.tasks.shared.TasksToolConstants.TOOL_NAME;
import static cc.kune.tasks.shared.TasksToolConstants.ROOT_NAME;
import static cc.kune.tasks.shared.TasksToolConstants.TYPE_FOLDER;
import static cc.kune.tasks.shared.TasksToolConstants.TYPE_ROOT;
@@ -50,7 +50,7 @@
public TaskServerTool(final ContentManager contentManager, final ContainerManager containerManager,
final ToolConfigurationManager configurationManager, final I18nTranslationService i18n,
final CreationService creationService) {
- super(NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_TASK), Arrays.asList(TYPE_FOLDER, TYPE_ROOT),
+ super(TOOL_NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_TASK), Arrays.asList(TYPE_FOLDER, TYPE_ROOT),
Arrays.asList(TYPE_FOLDER), Arrays.asList(TYPE_ROOT, TYPE_FOLDER), contentManager,
containerManager, creationService, configurationManager, i18n, ServerToolTarget.forBoth);
}
Modified: trunk/src/main/java/cc/kune/tasks/shared/TasksToolConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/tasks/shared/TasksToolConstants.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/tasks/shared/TasksToolConstants.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -21,11 +21,11 @@
public final class TasksToolConstants {
- public static final String NAME = "tasks";
+ public static final String TOOL_NAME = "tasks";
public static final String ROOT_NAME = "tasks";
- public static final String TYPE_FOLDER = NAME + "." + "folder";
- public static final String TYPE_ROOT = NAME + "." + "root";
- public static final String TYPE_TASK = NAME + "." + "task";
+ public static final String TYPE_FOLDER = TOOL_NAME + "." + "folder";
+ public static final String TYPE_ROOT = TOOL_NAME + "." + "root";
+ public static final String TYPE_TASK = TOOL_NAME + "." + "task";
private TasksToolConstants() {
}
Modified: trunk/src/main/java/cc/kune/trash/client/TrashClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/trash/client/TrashClientTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/trash/client/TrashClientTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.trash.client;
-import static cc.kune.trash.shared.TrashToolConstants.NAME;
+import static cc.kune.trash.shared.TrashToolConstants.TOOL_NAME;
import static cc.kune.trash.shared.TrashToolConstants.ROOT_NAME;
import static cc.kune.trash.shared.TrashToolConstants.TYPE_ROOT;
import cc.kune.common.shared.i18n.I18nTranslationService;
@@ -41,7 +41,7 @@
public TrashClientTool(final I18nTranslationService i18n, final ToolSelector toolSelector,
final ContentCapabilitiesRegistry cntCapRegistry, final CoreResources res,
final NavResources navResources) {
- super(NAME, i18n.t(ROOT_NAME), i18n.t("You can drop here contents to delete then"),
+ super(TOOL_NAME, i18n.t(ROOT_NAME), i18n.t("You can drop here contents to delete then"),
res.trashWhite(), AccessRolDTO.Editor, toolSelector, cntCapRegistry, i18n, navResources);
this.res = res;
@@ -59,7 +59,7 @@
@Override
public String getName() {
- return NAME;
+ return TOOL_NAME;
}
private void registerIcons() {
Modified: trunk/src/main/java/cc/kune/trash/client/actions/TrashClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/trash/client/actions/TrashClientActions.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/trash/client/actions/TrashClientActions.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,6 +19,7 @@
*/
package cc.kune.trash.client.actions;
+import static cc.kune.trash.shared.TrashToolConstants.TOOL_NAME;
import static cc.kune.trash.shared.TrashToolConstants.TYPE_ROOT;
import cc.kune.chat.client.actions.GoParentChatBtn;
import cc.kune.core.client.actions.ActionRegistryByType;
@@ -39,7 +40,6 @@
final String[] all = { TYPE_ROOT };
final String[] containers = { TYPE_ROOT };
final String[] containersNoRoot = {};
- final String[] contents = {};
@Inject
public TrashClientActions(final I18nUITranslationService i18n, final Session session,
@@ -47,12 +47,8 @@
final Provider<RefreshContentMenuItem> refresh, final Provider<GoParentChatBtn> folderGoUp,
final Provider<ContentViewerOptionsMenu> optionsMenuContent) {
super(session, stateManager, i18n, registry);
- actionsRegistry.addAction(ActionGroups.TOPBAR, optionsMenuContent, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, refresh, all);
- // actionsRegistry.addAction(ActionGroups.TOOLBAR, folderGoUp,
- // DocsToolConstants.TYPE_DOCUMENT);
- // actionsRegistry.addAction(ActionGroups.ITEM_MENU, action,
- // containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, optionsMenuContent, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, refresh, all);
}
@Override
Modified: trunk/src/main/java/cc/kune/trash/server/TrashServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/trash/server/TrashServerTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/trash/server/TrashServerTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.trash.server;
-import static cc.kune.trash.shared.TrashToolConstants.NAME;
+import static cc.kune.trash.shared.TrashToolConstants.TOOL_NAME;
import static cc.kune.trash.shared.TrashToolConstants.ROOT_NAME;
import static cc.kune.trash.shared.TrashToolConstants.TYPE_ROOT;
@@ -49,7 +49,7 @@
public TrashServerTool(final ContentManager contentManager, final ContainerManager containerManager,
final ToolConfigurationManager configurationManager, final I18nTranslationService i18n,
final CreationService creationService) {
- super(NAME, ROOT_NAME, TYPE_ROOT, Collections.<String> emptyList(), Arrays.asList(TYPE_ROOT),
+ super(TOOL_NAME, ROOT_NAME, TYPE_ROOT, Collections.<String> emptyList(), Arrays.asList(TYPE_ROOT),
Collections.<String> emptyList(), Arrays.asList(TYPE_ROOT), contentManager, containerManager,
creationService, configurationManager, i18n, ServerToolTarget.forBoth);
}
Added: trunk/src/main/java/cc/kune/trash/server/TrashServerUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/trash/server/TrashServerUtils.java (rev 0)
+++ trunk/src/main/java/cc/kune/trash/server/TrashServerUtils.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -0,0 +1,42 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.trash.server;
+
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.domain.Container;
+import cc.kune.domain.Content;
+import cc.kune.trash.shared.TrashToolConstants;
+
+public class TrashServerUtils {
+
+ public static boolean inTrash(final Container container) {
+ return isTrash(container.getStateToken());
+ }
+
+ public static boolean inTrash(final Content content) {
+ return inTrash(content.getContainer());
+ }
+
+ public static boolean isTrash(final StateToken token) {
+ return token.getTool().equals(TrashToolConstants.TOOL_NAME);
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/trash/shared/TrashToolConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/trash/shared/TrashToolConstants.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/trash/shared/TrashToolConstants.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -21,9 +21,9 @@
public final class TrashToolConstants {
- public static final String NAME = "trash";
+ public static final String TOOL_NAME = "trash";
public static final String ROOT_NAME = "trash";
- public static final String TYPE_ROOT = NAME + "." + "root";
+ public static final String TYPE_ROOT = TOOL_NAME + "." + "root";
private TrashToolConstants() {
}
Modified: trunk/src/main/java/cc/kune/wave/server/ParticipantUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/ParticipantUtils.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/wave/server/ParticipantUtils.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,6 +19,7 @@
*/
package cc.kune.wave.server;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -34,6 +35,7 @@
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.google.inject.name.Named;
+import com.google.wave.api.Participants;
@Singleton
public class ParticipantUtils {
@@ -49,6 +51,12 @@
superAdmin = ofImpl(databaseProperties.getAdminShortName());
}
+ public String[] arrayFrom(final Participants parts) {
+ final List<String> list = new ArrayList<String>();
+ // From the first in the list
+ return parts.toArray(new String[parts.size()]);
+ }
+
public String getAddressName(final String address) {
return address.contains(ParticipantId.DOMAIN_PREFIX) ? address.split(ParticipantId.DOMAIN_PREFIX)[0]
: address;
Modified: trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/wiki/client/WikiClientTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.wiki.client;
-import static cc.kune.wiki.shared.WikiToolConstants.NAME;
+import static cc.kune.wiki.shared.WikiToolConstants.TOOL_NAME;
import static cc.kune.wiki.shared.WikiToolConstants.TYPE_FOLDER;
import static cc.kune.wiki.shared.WikiToolConstants.TYPE_ROOT;
import static cc.kune.wiki.shared.WikiToolConstants.TYPE_UPLOADEDFILE;
@@ -44,7 +44,7 @@
final ContentCapabilitiesRegistry cntCapRegistry, final NavResources navResources,
final IconicResources icons) {
super(
- NAME,
+ TOOL_NAME,
i18n.t("wiki"),
i18n.t(
"Wiki-pages are Documents that can be edited by any visitor (in [%s]), instead of only by the group. This accelerates updating and construction",
@@ -65,7 +65,7 @@
@Override
public String getName() {
- return NAME;
+ return TOOL_NAME;
}
private void registerIcons() {
Modified: trunk/src/main/java/cc/kune/wiki/client/actions/WikiClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/wiki/client/actions/WikiClientActions.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/wiki/client/actions/WikiClientActions.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,6 +19,7 @@
\*/
package cc.kune.wiki.client.actions;
+import static cc.kune.wiki.shared.WikiToolConstants.TOOL_NAME;
import static cc.kune.wiki.shared.WikiToolConstants.TYPE_FOLDER;
import static cc.kune.wiki.shared.WikiToolConstants.TYPE_ROOT;
import static cc.kune.wiki.shared.WikiToolConstants.TYPE_UPLOADEDFILE;
@@ -41,10 +42,13 @@
import cc.kune.gspace.client.actions.ContentViewerShareMenu;
import cc.kune.gspace.client.actions.CopyContentMenuItem;
import cc.kune.gspace.client.actions.ParticipateInContentBtn;
+import cc.kune.gspace.client.actions.PurgeContentBtn;
+import cc.kune.gspace.client.actions.PurgeContentMenuItem;
import cc.kune.gspace.client.actions.RefreshContentMenuItem;
import cc.kune.gspace.client.actions.SetAsHomePageMenuItem;
import cc.kune.gspace.client.actions.TutorialContainerBtn;
import cc.kune.gspace.client.actions.WriteToParticipantsMenuItem;
+import cc.kune.trash.shared.TrashToolConstants;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -72,6 +76,7 @@
final Provider<AddAdminMembersToContentMenuItem> addAdminMembersMenuItem,
final Provider<AddCollabMembersToContentMenuItem> addCollabMembersMenuItem,
final Provider<AddPublicToContentMenuItem> addPublicMenuItem,
+ final Provider<PurgeContentMenuItem> purgeMenuItem, final Provider<PurgeContentBtn> purgeBtn,
final Provider<DelFolderMenuItem> delFolderMenuItem, final Provider<NewFolderBtn> newFolderBtn,
final Provider<ChatAboutContentBtn> chatAbout, final Provider<RefreshContentMenuItem> refresh,
final Provider<SetAsHomePageMenuItem> setAsHomePage,
@@ -80,40 +85,43 @@
final Provider<WriteToParticipantsMenuItem> writeToParticipants,
final WikiPageNewMenu wikipageNewMenu) {
super(session, stateManager, i18n, registry);
- actionsRegistry.addAction(ActionGroups.TOPBAR, optionsMenuContent, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, refresh, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newWikiIconBtn, all);
- actionsRegistry.addAction(ActionGroups.TOPBAR, newFolderBtn, containers);
- // actionsRegistry.addAction(ActionGroups.TOOLBAR, folderNewMenu,
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, optionsMenuContent, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, refresh, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newWikiIconBtn, all);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, newFolderBtn, containers);
+ // actionsRegistry.addAction(NAME, ActionGroups.TOOLBAR, folderNewMenu,
// containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, wikipageNewMenu, contents);
- // actionsRegistry.addAction(ActionGroups.TOOLBAR, newWikiMenuItem,
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, wikipageNewMenu, contents);
+ // actionsRegistry.addAction(NAME, ActionGroups.TOOLBAR, newWikiMenuItem,
// containers);
- // actionsRegistry.addAction(ActionGroups.TOOLBAR, newFolderMenuItem,
+ // actionsRegistry.addAction(NAME, ActionGroups.TOOLBAR, newFolderMenuItem,
// containers);
- actionsRegistry.addAction(ActionGroups.BOTTOMBAR, folderGoUp, contents);
- actionsRegistry.addAction(ActionGroups.BOTTOMBAR, folderGoUp, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, shareMenuContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addAllMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addAdminMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addCollabMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, addPublicMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, tutorialBtn, containers);
- actionsRegistry.addAction(ActionGroups.TOPBAR, participateBtn, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, chatAbout, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, copyContent, contents);
- actionsRegistry.addAction(ActionGroups.TOPBAR, writeToParticipants, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, delContentMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, delFolderMenuItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, setAsHomePage, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addAllMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addAdminMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addCollabMembersMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, addPublicMenuItem, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, copyContent, contents);
- actionsRegistry.addAction(ActionGroups.ITEM_MENU, writeToParticipants, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.BOTTOMBAR, folderGoUp, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.BOTTOMBAR, folderGoUp, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, shareMenuContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addAllMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addAdminMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addCollabMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, addPublicMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, tutorialBtn, containers);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, participateBtn, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, chatAbout, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, copyContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.TOPBAR, writeToParticipants, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, openContentMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, openContentMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, delContentMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, delFolderMenuItem, containersNoRoot);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, setAsHomePage, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addAllMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addAdminMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addCollabMembersMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, addPublicMenuItem, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, copyContent, contents);
+ actionsRegistry.addAction(TOOL_NAME, ActionGroups.ITEM_MENU, writeToParticipants, contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.TOPBAR, purgeBtn, contents);
+ actionsRegistry.addAction(TrashToolConstants.TOOL_NAME, ActionGroups.ITEM_MENU, purgeMenuItem,
+ contents);
// Currently new menu in folders has no sense (because we have buttons for
// the same contents)
// newMenusRegistry.register(TYPE_FOLDER, folderNewMenu.get());
Modified: trunk/src/main/java/cc/kune/wiki/server/WikiServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/wiki/server/WikiServerTool.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/wiki/server/WikiServerTool.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.wiki.server;
-import static cc.kune.wiki.shared.WikiToolConstants.NAME;
+import static cc.kune.wiki.shared.WikiToolConstants.TOOL_NAME;
import static cc.kune.wiki.shared.WikiToolConstants.ROOT_NAME;
import static cc.kune.wiki.shared.WikiToolConstants.TYPE_FOLDER;
import static cc.kune.wiki.shared.WikiToolConstants.TYPE_ROOT;
@@ -52,7 +52,7 @@
public WikiServerTool(final ContentManager contentManager, final ContainerManager containerManager,
final ToolConfigurationManager configurationManager, final I18nTranslationService i18n,
final CreationService creationService) {
- super(NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_WIKIPAGE, TYPE_UPLOADEDFILE), Arrays.asList(
+ super(TOOL_NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_WIKIPAGE, TYPE_UPLOADEDFILE), Arrays.asList(
TYPE_ROOT, TYPE_FOLDER), Arrays.asList(TYPE_FOLDER), Arrays.asList(TYPE_ROOT, TYPE_FOLDER),
contentManager, containerManager, creationService, configurationManager, i18n,
ServerToolTarget.forBoth);
Modified: trunk/src/main/java/cc/kune/wiki/shared/WikiToolConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/wiki/shared/WikiToolConstants.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/cc/kune/wiki/shared/WikiToolConstants.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -23,12 +23,12 @@
public final class WikiToolConstants {
- public static final String NAME = "wiki";
+ public static final String TOOL_NAME = "wiki";
public static final String ROOT_NAME = "wiki";
- public static final String TYPE_FOLDER = NAME + "." + "folder";
- public static final String TYPE_ROOT = NAME + "." + "root";
- public static final String TYPE_UPLOADEDFILE = NAME + "." + ToolConstants.UPLOADEDFILE_SUFFIX;
- public static final String TYPE_WIKIPAGE = NAME + "." + "wikipage";
+ public static final String TYPE_FOLDER = TOOL_NAME + "." + "folder";
+ public static final String TYPE_ROOT = TOOL_NAME + "." + "root";
+ public static final String TYPE_UPLOADEDFILE = TOOL_NAME + "." + ToolConstants.UPLOADEDFILE_SUFFIX;
+ public static final String TYPE_WIKIPAGE = TOOL_NAME + "." + "wikipage";
private WikiToolConstants() {
}
Modified: trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java
===================================================================
--- trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -151,7 +151,7 @@
String avatar = "";
if (address.contains(domain)) {
avatar = new Url(FileConstants.LOGODOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN,
- address.split("@")[0])).toString();
+ address.split("@")[0]), new UrlParam(FileConstants.ONLY_USERS, true)).toString();
} else {
avatar = FileConstants.PERSON_NO_AVATAR_IMAGE;
}
Modified: trunk/src/main/resources/wave-server-production.properties
===================================================================
--- trunk/src/main/resources/wave-server-production.properties 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/main/resources/wave-server-production.properties 2012-03-31 17:43:11 UTC (rev 1811)
@@ -108,10 +108,10 @@
enable_ssl = false
# Path to keystore containg the ssl certificates to server
-ssl_keystore_path = src/main/resources/wiab.ks
+ssl_keystore_path = /etc/kune/kune.ks
#Password to the keystore
-ssl_keystore_password = fafafa
+ssl_keystore_password = change_me
# Enable import of waves via /import URL. Default value: false
enable_import = false
Added: trunk/src/main/webapp/others/defuser.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/others/defuser.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/webapp/others/unknown.jpg
===================================================================
(Binary files differ)
Added: trunk/src/main/webapp/others/unknown.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/others/unknown.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: trunk/src/test/java/cc/kune/core/client/actions/ActionRegistryByTypeBorrarTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/client/actions/ActionRegistryByTypeBorrarTest.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/test/java/cc/kune/core/client/actions/ActionRegistryByTypeBorrarTest.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -1,64 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.actions;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
-import cc.kune.core.shared.domain.utils.AccessRights;
-
-import com.google.inject.Provider;
-
-public class ActionRegistryByTypeBorrarTest {
-
- private static final String OTHERACTIONGROUP = "otheractiongroup";
- private static final String SOMEACTIONGROUP = "someactiongroup";
- private GuiActionDescrip action;
- private ActionRegistryByType actionRegistryByType;
- private AccessRights allRights;
-
- @SuppressWarnings({ "unchecked", "rawtypes" })
- @Before
- public void before() {
- actionRegistryByType = new ActionRegistryByType();
- action = Mockito.mock(GuiActionDescrip.class);
- allRights = new AccessRights(true, true, true);
- actionRegistryByType.addAction(SOMEACTIONGROUP, new Provider() {
- @Override
- public Object get() {
- return action;
- }
- });
- }
-
- @Test
- public void testDontGetCurrentActionsOfOtherGroup() {
- assertEquals(0, actionRegistryByType.getCurrentActions(null, false, allRights, OTHERACTIONGROUP).size());
- }
-
- @Test
- public void testGetCurrentActionsOfGroup() {
- assertEquals(1, actionRegistryByType.getCurrentActions(null, false, allRights, SOMEACTIONGROUP).size());
- }
-}
Copied: trunk/src/test/java/cc/kune/core/client/actions/ActionRegistryByTypeTest.java (from rev 1809, trunk/src/test/java/cc/kune/core/client/actions/ActionRegistryByTypeBorrarTest.java)
===================================================================
--- trunk/src/test/java/cc/kune/core/client/actions/ActionRegistryByTypeTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/core/client/actions/ActionRegistryByTypeTest.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -0,0 +1,70 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.actions;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
+import cc.kune.core.shared.domain.utils.AccessRights;
+
+import com.google.inject.Provider;
+
+public class ActionRegistryByTypeTest {
+
+ private static final String OTHERACTIONGROUP = "otheractiongroup";
+ private static final String SOMEACTIONGROUP = "someactiongroup";
+ private static final String TOOL = "tool";
+ private GuiActionDescrip action;
+ private ActionRegistryByType actionRegistryByType;
+ private AccessRights allRights;
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ @Before
+ public void before() {
+ actionRegistryByType = new ActionRegistryByType();
+ action = Mockito.mock(GuiActionDescrip.class);
+ allRights = new AccessRights(true, true, true);
+ actionRegistryByType.addAction(TOOL, SOMEACTIONGROUP, new Provider() {
+ @Override
+ public Object get() {
+ return action;
+ }
+ });
+ }
+
+ @Test
+ public void testDontGetCurrentActionsOfOtherGroup() {
+ assertEquals(0,
+ actionRegistryByType.getCurrentActions(TOOL, null, false, allRights, OTHERACTIONGROUP).size());
+ assertEquals(
+ 0,
+ actionRegistryByType.getCurrentActions(TOOL + "other", null, false, allRights, OTHERACTIONGROUP).size());
+ }
+
+ @Test
+ public void testGetCurrentActionsOfGroup() {
+ assertEquals(1,
+ actionRegistryByType.getCurrentActions(TOOL, null, false, allRights, SOMEACTIONGROUP).size());
+ }
+}
Modified: trunk/src/test/java/cc/kune/core/server/PersistencePreLoadedDataTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/PersistencePreLoadedDataTest.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/test/java/cc/kune/core/server/PersistencePreLoadedDataTest.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,6 +19,7 @@
*/
package cc.kune.core.server;
+import static cc.kune.docs.shared.DocsToolConstants.TOOL_NAME;
import static cc.kune.docs.shared.DocsToolConstants.TYPE_FOLDER;
import static org.junit.Assert.assertEquals;
@@ -121,9 +122,11 @@
contentManager.persist(content);
container = new Container();
container.setTypeId(TYPE_FOLDER);
+ container.setToolName(TOOL_NAME);
containerManager.persist(container);
otherContainer = new Container();
otherContainer.setTypeId(TYPE_FOLDER);
+ otherContainer.setToolName(TOOL_NAME);
containerManager.persist(otherContainer);
}
}
Modified: trunk/src/test/java/cc/kune/core/server/TestHelper.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/TestHelper.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/test/java/cc/kune/core/server/TestHelper.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -33,9 +33,18 @@
import org.waveprotocol.box.server.waveserver.WaveServerImpl;
import org.waveprotocol.wave.federation.noop.NoOpFederationModule;
+import cc.kune.barters.server.BarterServerModule;
+import cc.kune.chat.server.ChatServerModule;
import cc.kune.core.server.integration.HttpServletRequestMocked;
import cc.kune.core.server.persist.DataSourceKunePersistModule;
+import cc.kune.core.server.persist.DataSourceOpenfirePersistModule;
+import cc.kune.docs.server.DocumentServerModule;
+import cc.kune.events.server.EventsServerModule;
+import cc.kune.lists.server.ListsServerModule;
+import cc.kune.tasks.server.TaskServerModule;
+import cc.kune.trash.server.TrashServerModule;
import cc.kune.wave.server.CustomSettingsBinder;
+import cc.kune.wiki.server.WikiServerModule;
import com.google.inject.Binder;
import com.google.inject.Guice;
@@ -55,18 +64,23 @@
TestConstants.WAVE_TEST_PROPFILE, CoreSettings.class));
final PersistenceModule wavePersistModule = injector.getInstance(PersistenceModule.class);
final NoOpFederationModule federationModule = injector.getInstance(NoOpFederationModule.class);
+ final DataSourceKunePersistModule kuneDataSource = new DataSourceKunePersistModule(
+ "kune.properties", TestConstants.PERSISTENCE_UNIT);
final Injector childInjector = injector.createChildInjector(wavePersistModule, new ServerModule(
- false, 1, 2, 2), new RobotApiModule(), federationModule, new DataSourceKunePersistModule(
- "kune.properties", TestConstants.PERSISTENCE_UNIT), module, new Module() {
- @Override
- public void configure(final Binder binder) {
- binder.bindScope(SessionScoped.class, Scopes.SINGLETON);
- binder.bindScope(RequestScoped.class, Scopes.SINGLETON);
- // binder.bind(KuneProperties.class).toInstance(new
- // KunePropertiesDefault(propetiesFileName));
- binder.bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
- }
- });
+ false, 1, 2, 2), new RobotApiModule(), federationModule, new ListsServerModule(),
+ new DocumentServerModule(), new ChatServerModule(), federationModule,
+ new WikiServerModule(), new TaskServerModule(), new BarterServerModule(),
+ new EventsServerModule(), new TrashServerModule(), kuneDataSource,
+ new DataSourceOpenfirePersistModule(kuneDataSource.getKuneProperties()), module, new Module() {
+ @Override
+ public void configure(final Binder binder) {
+ binder.bindScope(SessionScoped.class, Scopes.SINGLETON);
+ binder.bindScope(RequestScoped.class, Scopes.SINGLETON);
+ // binder.bind(KuneProperties.class).toInstance(new
+ // KunePropertiesDefault(propetiesFileName));
+ binder.bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
+ }
+ });
try {
childInjector.getInstance(WaveServerImpl.class).initialize();
} catch (final WaveServerException e) {
Modified: trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/test/java/cc/kune/core/server/integration/DatabaseInitializerTest.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.core.server.integration;
-import static cc.kune.docs.shared.DocsToolConstants.NAME;
+import static cc.kune.docs.shared.DocsToolConstants.TOOL_NAME;
import static cc.kune.docs.shared.DocsToolConstants.TYPE_DOCUMENT;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -94,7 +94,7 @@
@Test
public void testToolConfiguration() {
assertNotNull(defaultGroup);
- final ToolConfiguration docToolConfig = defaultGroup.getToolConfiguration(NAME);
+ final ToolConfiguration docToolConfig = defaultGroup.getToolConfiguration(TOOL_NAME);
assertNotNull(docToolConfig);
assertTrue(docToolConfig.isEnabled());
// final ToolConfiguration chatToolConfig =
Modified: trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -84,11 +84,7 @@
kuneDataSource.getTransactionInterceptor());
install(kuneDataSource);
}
- },
-
- // new MyDataSourceTwoPersistModule(),
-
- new ListsServerModule(), new RobotApiModule(), new PlatformServerModule(),
+ }, new ListsServerModule(), new RobotApiModule(), new PlatformServerModule(),
new DocumentServerModule(), new ChatServerModule(), new ServerModule(false, 1, 2, 2),
federationModule, new WikiServerModule(), new TaskServerModule(), new BarterServerModule(),
new EventsServerModule(), new TrashServerModule());
Modified: trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceAddTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceAddTest.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceAddTest.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -20,7 +20,7 @@
package cc.kune.core.server.integration.content;
import static cc.kune.docs.shared.DocsToolConstants.TYPE_DOCUMENT;
-import static cc.kune.wiki.shared.WikiToolConstants.NAME;
+import static cc.kune.wiki.shared.WikiToolConstants.TOOL_NAME;
import static cc.kune.wiki.shared.WikiToolConstants.TYPE_WIKIPAGE;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -106,7 +106,7 @@
final ContainerDTO parentAgain = getSiteDefaultContent().getContainer();
final ContainerSimpleDTO child = parentAgain.getChilds().get(0);
- assertEquals(parent.getId(), child.getParentFolderId());
+ assertEquals(parent.getStateToken().getFolder(), child.getParentToken().getFolder());
assertEquals(parent.getId(), parentAgain.getId());
assertEquals(1, parentAgain.getChilds().size());
@@ -147,7 +147,7 @@
public void testAddWikiContent() throws Exception {
doLogin();
- final StateToken wikiToken = new StateToken(super.getDefSiteShortName(), NAME);
+ final StateToken wikiToken = new StateToken(super.getDefSiteShortName(), TOOL_NAME);
final StateContainerDTO wiki = (StateContainerDTO) contentService.getContent(session.getHash(),
wikiToken);
@@ -158,7 +158,7 @@
final ContainerDTO wikiContainer = added.getContainer();
final List<ContentSimpleDTO> contents = wikiContainer.getContents();
assertEquals(title, added.getTitle());
- assertEquals(2, contents.size());
+ assertEquals(1, contents.size());
doLogout();
doLoginWithDummyUser();
Modified: trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -32,6 +32,7 @@
import org.junit.Test;
import cc.kune.core.client.errors.AccessViolationException;
+import cc.kune.core.client.errors.CannotDeleteDefaultContentException;
import cc.kune.core.server.integration.IntegrationTestHelper;
import cc.kune.core.shared.domain.TagCloudResult;
import cc.kune.core.shared.domain.TagCount;
@@ -43,6 +44,7 @@
import cc.kune.core.shared.dto.StateContentDTO;
import cc.kune.core.shared.dto.UserSimpleDTO;
import cc.kune.docs.shared.DocsToolConstants;
+import cc.kune.trash.shared.TrashToolConstants;
public class ContentServiceVariousTest extends ContentServiceIntegrationTest {
@@ -85,6 +87,7 @@
assertEquals(1, (long) tagResult.getCount());
}
+ @Ignore
@Test
public void contentRateAndRetrieve() throws Exception {
contentService.rateContent(getHash(), defaultContent.getStateToken(), 4.5);
@@ -103,6 +106,13 @@
assertEquals("es", contentRetrieved.getLanguage().getCode());
}
+ private StateContainerDTO createNewContent() {
+ final StateContainerDTO added = contentService.addContent(session.getHash(),
+ defaultContent.getStateToken(), "New Content Title", TYPE_DOCUMENT);
+ assertNotNull(added);
+ return added;
+ }
+
@Ignore
// FIXME: when State refactor do this test (with noLogin and without)
public void defAdminDontShowAsParticipation() throws Exception {
@@ -113,13 +123,68 @@
assertEquals(1, content.getParticipation().getGroupsIsAdmin().size());
}
+ @Test(expected = CannotDeleteDefaultContentException.class)
+ public void defContentRemove() throws Exception {
+ doLogin();
+ defaultContent = getSiteDefaultContent();
+ contentService.delContent(session.getHash(), defaultContent.getStateToken());
+ }
+
@Test
+ public void delAndPurgeContainer() throws Exception {
+ doLogin();
+ final StateContainerDTO state = contentService.addFolder(session.getHash(),
+ defaultContent.getStateToken(), "some folder", DocsToolConstants.TYPE_FOLDER);
+ final ContainerDTO newFolder = state.getContainer();
+
+ final StateContainerDTO trash = getTrash();
+ assertEquals(0, trash.getContainer().getContents().size());
+ assertEquals(0, trash.getContainer().getChilds().size());
+ contentService.delContent(session.getHash(), newFolder.getStateToken());
+
+ final StateContainerDTO trashAfterDel = getTrash();
+ assertEquals(0, trashAfterDel.getContainer().getContents().size());
+ assertEquals(1, trashAfterDel.getContainer().getChilds().size());
+ final StateContainerDTO deletedFolder = (StateContainerDTO) contentService.getContent(
+ session.getHash(),
+ newFolder.getStateToken().setTool(TrashToolConstants.TOOL_NAME).setFolder(
+ newFolder.getStateToken().getFolder()));
+ contentService.purgeContainer(session.getHash(), deletedFolder.getStateToken());
+ final StateContainerDTO trashAfterPurge = getTrash();
+ assertEquals(0, trashAfterPurge.getContainer().getContents().size());
+ assertEquals(0, trashAfterPurge.getContainer().getChilds().size());
+ }
+
+ @Test
+ public void delAndPurgeContent() throws Exception {
+ doLogin();
+ final StateContainerDTO trash = getTrash();
+ final StateContainerDTO added = createNewContent();
+ final StateAbstractDTO retrievedContent = contentService.getContent(session.getHash(),
+ added.getStateToken());
+ assertNotNull(retrievedContent.getStateToken());
+ final StateContainerDTO deleledContainer = contentService.delContent(session.getHash(),
+ retrievedContent.getStateToken());
+ assertEquals(1, defaultContent.getContainer().getContents().size());
+ assertEquals(1, deleledContainer.getContainer().getContents().size());
+ final StateContentDTO deletedContent = (StateContentDTO) contentService.getContent(
+ session.getHash(),
+ retrievedContent.getStateToken().setTool(TrashToolConstants.TOOL_NAME).setFolder(
+ trash.getStateToken().getFolder()));
+ assertEquals(TrashToolConstants.TOOL_NAME, deletedContent.getToolName());
+ assertEquals(1, deletedContent.getContainer().getContents().size());
+ final StateContainerDTO trashAfterPurge = contentService.purgeContent(session.getHash(),
+ deletedContent.getStateToken());
+ assertEquals(0, trashAfterPurge.getContainer().getContents().size());
+ }
+
+ @Test
public void folderRename() throws Exception {
doLogin();
defaultContent = getSiteDefaultContent();
+ String newTitle = "folder new name";
final String oldTitle = "some title";
- String newTitle = "folder new name";
final StateContainerDTO newState = contentService.addFolder(session.getHash(),
defaultContent.getStateToken(), oldTitle, DocsToolConstants.TYPE_FOLDER);
@@ -179,6 +244,14 @@
assertEquals(newTitle, folderAgain.getName());
}
+ private StateContainerDTO getTrash() {
+ final StateAbstractDTO trash = contentService.getContent(
+ session.getHash(),
+ defaultContent.getStateToken().copy().clearDocument().clearFolder().setTool(
+ TrashToolConstants.TOOL_NAME));
+ return (StateContainerDTO) trash;
+ }
+
@Before
public void init() throws Exception {
new IntegrationTestHelper(this);
@@ -209,9 +282,7 @@
doLogin();
defaultContent = getSiteDefaultContent();
- final StateContainerDTO added = contentService.addContent(session.getHash(),
- defaultContent.getStateToken(), "New Content Title", TYPE_DOCUMENT);
- assertNotNull(added);
+ final StateContainerDTO added = createNewContent();
final ContentSimpleDTO newDefContent = contentService.setAsDefaultContent(session.getHash(),
added.getStateToken());
Modified: trunk/src/test/java/cc/kune/core/server/manager/ContainerManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/ContainerManagerDefaultTest.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/test/java/cc/kune/core/server/manager/ContainerManagerDefaultTest.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -39,7 +39,7 @@
@Before
public void before() {
- rootFolder = containerManager.createRootFolder(user.getUserGroup(), DocsToolConstants.NAME,
+ rootFolder = containerManager.createRootFolder(user.getUserGroup(), DocsToolConstants.TOOL_NAME,
DocsToolConstants.ROOT_NAME, TYPE_FOLDER);
}
Modified: trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -110,14 +110,22 @@
}
private Container createDefContainer(final Group group) {
+ return createDefContainer(group, 0);
+ }
+
+ private Container createDefContainer(final Group group, final int increment) {
final Container container = new Container();
- container.setId(1L);
+ container.setId(1L + increment);
container.setToolName(TESTTOOL);
container.setOwner(group);
container.setName("folder");
return container;
}
+ private Container createDefContainer(final int increment) {
+ return createDefContainer(createDeGroup(), increment);
+ }
+
private Content createDefContent() {
final Container container = createDefContainer(createDeGroup());
final Content d = new Content();
@@ -242,8 +250,8 @@
final Container container = createDefContainer();
final StateToken expectedToken = new StateToken(TESTGROUPSHORTNAME, TESTTOOL, 1L);
assertEquals(expectedToken, container.getStateToken());
- container.addChild(createDefContainer());
- container.addChild(createDefContainer());
+ container.addChild(createDefContainer(1));
+ container.addChild(createDefContainer(2));
container.addContent(createDefContent());
container.addContent(createDefContent());
container.addContent(createDefContent());
@@ -256,6 +264,7 @@
assertEquals(3, dto.getChilds().size());
assertEquals(3, dto.getContents().size());
assertTrue(dto.getContents().get(0) instanceof ContentSimpleDTO);
+ assertNotNull(dto.getContents().get(0).getStateToken());
assertTrue(dto.getChilds().get(0) instanceof ContainerSimpleDTO);
assertEquals(new StateToken(TESTGROUPSHORTNAME, TESTTOOL),
dto.getChilds().get(0).getStateToken().copy().clearFolder());
Modified: trunk/src/test/java/cc/kune/core/shared/utils/SharedFileDownloadUtilsTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/shared/utils/SharedFileDownloadUtilsTest.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/test/java/cc/kune/core/shared/utils/SharedFileDownloadUtilsTest.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -55,13 +55,13 @@
assertTrue(
util.getLogoAvatarHtml(GROUP, false, true, 50, 5),
util.getLogoAvatarHtml(GROUP, false, true, 50, 5).contains(
- "http://example.org/others/unknown.jpg"));
+ "http://example.org/others/defuser.jpg"));
assertTrue(utilNoPrefix.getLogoAvatarHtml(GROUP, false, true, 50, 5),
- util.getLogoAvatarHtml(GROUP, false, true, 50, 5).contains("/others/unknown.jpg"));
+ util.getLogoAvatarHtml(GROUP, false, true, 50, 5).contains("/others/defuser.jpg"));
assertTrue(
util.getLogoAvatarHtml(GROUP, true, false, 50, 5),
util.getLogoAvatarHtml(GROUP, true, false, 50, 5).contains(
- "'http://example.org/ws/servlets/EntityLogoDownloadManager?token=groupname"));
+ "'http://example.org/ws/servlets/EntityLogoDownloadManager?token=groupname&on…"));
}
assertTrue(
@@ -73,12 +73,11 @@
@Test
public void testUserAvatar() {
- assertEquals("http://example.org" + FileConstants.LOGODOWNLOADSERVLET + "?token=groupname",
- utilPrefix.getUserAvatar(GROUP));
- assertEquals("http://example.org" + FileConstants.LOGODOWNLOADSERVLET + "?token=groupname",
- utilPrefixWithSlash.getUserAvatar(GROUP));
- assertEquals(FileConstants.LOGODOWNLOADSERVLET + "?token=groupname",
+ assertEquals("http://example.org" + FileConstants.LOGODOWNLOADSERVLET
+ + "?token=groupname&onlyusers=true", utilPrefix.getUserAvatar(GROUP));
+ assertEquals("http://example.org" + FileConstants.LOGODOWNLOADSERVLET
+ + "?token=groupname&onlyusers=true", utilPrefixWithSlash.getUserAvatar(GROUP));
+ assertEquals(FileConstants.LOGODOWNLOADSERVLET + "?token=groupname&onlyusers=true",
utilNoPrefix.getUserAvatar(GROUP));
}
-
}
Modified: trunk/src/test/java/cc/kune/docs/DocumentToolTest.java
===================================================================
--- trunk/src/test/java/cc/kune/docs/DocumentToolTest.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/test/java/cc/kune/docs/DocumentToolTest.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -19,7 +19,7 @@
*/
package cc.kune.docs;
-import static cc.kune.docs.shared.DocsToolConstants.NAME;
+import static cc.kune.docs.shared.DocsToolConstants.TOOL_NAME;
import static cc.kune.docs.shared.DocsToolConstants.TYPE_DOCUMENT;
import static cc.kune.docs.shared.DocsToolConstants.TYPE_FOLDER;
import static cc.kune.docs.shared.DocsToolConstants.TYPE_ROOT;
@@ -33,7 +33,7 @@
@Test
public void clientAndServerSync() {
- assertEquals(NAME, DocsToolConstants.NAME);
+ assertEquals(TOOL_NAME, DocsToolConstants.TOOL_NAME);
assertEquals(TYPE_ROOT, DocsToolConstants.TYPE_ROOT);
assertEquals(TYPE_FOLDER, DocsToolConstants.TYPE_FOLDER);
assertEquals(TYPE_DOCUMENT, DocsToolConstants.TYPE_DOCUMENT);
Modified: trunk/src/test/java/cc/kune/selenium/spaces/GroupSpacePageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/spaces/GroupSpacePageObject.java 2012-03-31 00:46:37 UTC (rev 1810)
+++ trunk/src/test/java/cc/kune/selenium/spaces/GroupSpacePageObject.java 2012-03-31 17:43:11 UTC (rev 1811)
@@ -62,17 +62,17 @@
public WebElement addNewBuddieTextBox;
@FindBy(id = SeleniumConstants.GWTDEV + AddEntityToThisGroupAction.ADD_NEW_MEMBER_TEXTBOX)
public WebElement addNewMemberTextBox;
- @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + BlogsToolConstants.NAME)
+ @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + BlogsToolConstants.TOOL_NAME)
public WebElement blogTool;
- @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + ChatToolConstants.NAME)
+ @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + ChatToolConstants.TOOL_NAME)
public WebElement chatTool;
- @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + DocsToolConstants.NAME)
+ @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + DocsToolConstants.TOOL_NAME)
public WebElement docTool;
@FindBy(xpath = "//div[@id='gwt-debug-k-cnt-title-id']/div/span")
public WebElement entityTitle;
@FindBy(xpath = "//div[@id='gwt-debug-k-cnt-title-id']/div/input")
public WebElement entityTitleTextarea;
- @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + EventsToolConstants.NAME)
+ @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + EventsToolConstants.TOOL_NAME)
public WebElement eventTool;
@FindBy(xpath = "//td/img")
public WebElement firstAvatarOfGroup;
@@ -98,7 +98,7 @@
public WebElement groupOptionsTools;
@FindBy(id = SeleniumConstants.GWTDEV + SubscribeToListBtn.ID)
public WebElement listSubscribeBtn;
- @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + ListsToolConstants.NAME)
+ @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + ListsToolConstants.TOOL_NAME)
public WebElement listTool;
@FindBy(id = SeleniumConstants.GWTDEV + NewContainerBtn.BTN_ID)
public WebElement newContainerBtn;
@@ -120,9 +120,9 @@
public WebElement searchEntitiesOk;
@FindBy(xpath = "//div[3]/div/button")
public WebElement socialNetOptions;
- @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + TasksToolConstants.NAME)
+ @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + TasksToolConstants.TOOL_NAME)
public WebElement taskTool;
- @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + WikiToolConstants.NAME)
+ @FindBy(id = SeleniumConstants.GWTDEV + ToolSelectorItemPanel.TOOL_ID_PREFIX + WikiToolConstants.TOOL_NAME)
public WebElement wikiTool;
public void openFirtsContent() {
1
0
Author: vjrj_
Date: 2012-03-31 02:46:37 +0200 (Sat, 31 Mar 2012)
New Revision: 1810
Added:
Makefile
Log:
deb repo
Added: Makefile
===================================================================
--- Makefile (rev 0)
+++ Makefile 2012-03-31 00:46:37 UTC (rev 1810)
@@ -0,0 +1,46 @@
+export DEVDIR=~/proyectos/dev/kune/trunk
+
+all: kune
+
+kune:
+ @echo "Creating kune package..."
+ (cd ${DEVDIR}; debuild -us -uc)
+ @${MAKE} clean-kune
+
+clean-kune:
+ @echo "Cleaning kune..."
+ (cd trunk; debuild clean)
+
+clean-pkg:
+ @echo "Cleaning..."
+ @for ext in dsc asc build changes gz; do \
+ mv *.$${ext} ~/tmp/archive 2>/dev/null || true ; \
+ done
+
+clean-pkgall:
+ @echo "Cleaning..."
+ @for ext in deb dsc asc build changes gz; do \
+ mv *.$${ext} ~/tmp/archive 2>/dev/null || true ; \
+ done
+
+update-repo-stable:
+ @cp *.deb debian/stable
+
+repo-stable:
+ (cd debian; apt-ftparchive packages stable > stable/Packages)
+ gzip -c debian/stable/Packages > debian/stable/Packages.gz
+ (cd debian; apt-ftparchive release stable/ > stable/Release)
+
+update-repo-unstable:
+ @cp *.deb debian/unstable/
+
+repo-unstable:
+ (cd debian; apt-ftparchive packages unstable/ > unstable/Packages)
+ gzip -c debian/unstable/Packages > debian/unstable/Packages.gz
+ (cd debian; apt-ftparchive release unstable/ > unstable/Release)
+
+rsync:
+ @rsync --progress --partial -r debian/ [email protected]:/var/lib/gforge/chroot/ftproot/pub/kune/debian/
+
+#deb ftp://ftp.ourproject.org/pub/kune/debian/ stable/
+#deb ftp://ftp.ourproject.org/pub/kune/debian/ unstable/
\ No newline at end of file
1
0
r1809 - in trunk/src/main/java/cc/kune: core/client/groups/newgroup core/client/ui core/server/manager/impl core/shared/domain gspace/client/options/general
by Vicente J. Ruiz Jurado 30 Mar '12
by Vicente J. Ruiz Jurado 30 Mar '12
30 Mar '12
Author: vjrj_
Date: 2012-03-30 18:38:51 +0200 (Fri, 30 Mar 2012)
New Revision: 1809
Modified:
trunk/src/main/java/cc/kune/core/client/groups/newgroup/GroupFieldFactory.java
trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java
trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
trunk/src/main/java/cc/kune/core/client/ui/DefaultFormUtils.java
trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java
trunk/src/main/java/cc/kune/core/shared/domain/GroupListMode.java
trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralPanel.java
trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralPresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralView.java
trunk/src/main/java/cc/kune/gspace/client/options/general/UserOptGeneralPanel.java
Log:
CLOSED - # 229: Change between group types (open->closed, mainly)
http://kune.ourproject.org/issues/ticket/229
Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/GroupFieldFactory.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/GroupFieldFactory.java 2012-03-30 13:12:37 UTC (rev 1808)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/GroupFieldFactory.java 2012-03-30 16:38:51 UTC (rev 1809)
@@ -22,7 +22,10 @@
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.ui.DefaultForm;
+import cc.kune.core.client.ui.DefaultFormUtils;
+import com.extjs.gxt.ui.client.widget.form.FieldSet;
+import com.extjs.gxt.ui.client.widget.form.Radio;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.google.inject.Inject;
import com.google.inject.Singleton;
@@ -37,7 +40,28 @@
this.i18n = i18n;
}
- public TextField<String> createUserLongName(final String fieldId) {
+ public Radio createClosedRadio(final FieldSet fieldSet, final String fieldSetId, final String radioId) {
+ final Radio radio = DefaultFormUtils.createRadio(
+ fieldSet,
+ i18n.t("Closed"),
+ fieldSetId,
+ i18n.t("A Closed group is a private project, which contents are only accessible to its members (by default)."),
+ radioId);
+ return radio;
+ }
+
+ public Radio createCommunityRadio(final FieldSet fieldSet, final String fieldSetId,
+ final String radioId) {
+ final Radio radio = DefaultFormUtils.createRadio(
+ fieldSet,
+ i18n.t("Community"),
+ fieldSetId,
+ i18n.t("A community is a group of users with shared interests (for instance the environmental community or the LGBT community). It is open to any new member to join freely without the moderation of the administrators."),
+ radioId);
+ return radio;
+ }
+
+ public TextField<String> createLongName(final String fieldId) {
final TextField<String> field = new TextField<String>();
field.setFieldLabel(i18n.t("Long name"));
field.setName(fieldId);
@@ -50,6 +74,23 @@
return field;
}
+ public Radio createOrgRadio(final FieldSet fieldSet, final String fieldSetId, final String radioId) {
+ final Radio radio = DefaultFormUtils.createRadio(fieldSet, i18n.t("Organization"), fieldSetId,
+ i18n.t("An organization works the same way as a project, "
+ + "except that it must be a legal entity."), radioId);
+ return radio;
+ }
+
+ public Radio createProjectRadio(final FieldSet fieldSet, final String fieldSetId, final String radioId) {
+ final Radio radio = DefaultFormUtils.createRadio(
+ fieldSet,
+ i18n.t("Project"),
+ fieldSetId,
+ i18n.t("A project is a kind of group in which the joining of new members is moderated by the project administrators."),
+ radioId);
+ return radio;
+ }
+
public TextField<String> createUserShortName(final String fieldId) {
final String minMaxText = i18n.t(CoreMessages.FIELD_MUST_BE_BETWEEN_3_AND_15);
final TextField<String> field = new TextField<String>();
@@ -67,4 +108,5 @@
field.setValidationDelay(1000);
return field;
}
+
}
Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java 2012-03-30 13:12:37 UTC (rev 1808)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java 2012-03-30 16:38:51 UTC (rev 1809)
@@ -132,7 +132,7 @@
shortNameField.setTabIndex(1);
form.add(shortNameField);
- longNameField = groupFieldFactory.createUserLongName(LONGNAME_FIELD);
+ longNameField = groupFieldFactory.createLongName(LONGNAME_FIELD);
longNameField.setTabIndex(2);
form.add(longNameField);
@@ -153,42 +153,23 @@
// form.add(createTagField(tag2));
// form.add(createTagField(tag3));
- final FieldSet groupTypeFieldSet = new FieldSet();
- groupTypeFieldSet.setHeading(i18n.t("Group type"));
- groupTypeFieldSet.addStyleName("k-form-fieldset");
- groupTypeFieldSet.setCollapsible(true);
+ final FieldSet groupTypeFieldSet = DefaultFormUtils.createFieldSet(i18n.t("Group type"), "210px");
groupTypeFieldSet.setWidth("210px");
- groupTypeFieldSet.setAutoHeight(true);
-
form.add(groupTypeFieldSet);
- projectRadio = DefaultFormUtils.createRadio(
- groupTypeFieldSet,
- i18n.t("Project"),
- TYPEOFGROUP_FIELD,
- i18n.t("A project is a kind of group in which the joining of new members is moderated by the project administrators."),
+ projectRadio = groupFieldFactory.createProjectRadio(groupTypeFieldSet, TYPEOFGROUP_FIELD,
PROJ_GROUP_TYPE_ID);
projectRadio.setTabIndex(6);
projectRadio.setValue(true);
- orgRadio = DefaultFormUtils.createRadio(groupTypeFieldSet, i18n.t("Organization"),
- TYPEOFGROUP_FIELD, i18n.t("An organization works the same way as a project, "
- + "except that it must be a legal entity."), ORG_GROUP_TYPE_ID);
+ orgRadio = groupFieldFactory.createOrgRadio(groupTypeFieldSet, TYPEOFGROUP_FIELD, ORG_GROUP_TYPE_ID);
orgRadio.setTabIndex(7);
- closedRadio = DefaultFormUtils.createRadio(
- groupTypeFieldSet,
- i18n.t("Closed"),
- TYPEOFGROUP_FIELD,
- i18n.t("A Closed group is a private project, which contents are only accessible to its members (by default)."),
+ closedRadio = groupFieldFactory.createClosedRadio(groupTypeFieldSet, TYPEOFGROUP_FIELD,
CLOSED_GROUP_TYPE_ID);
closedRadio.setTabIndex(8);
- communityRadio = DefaultFormUtils.createRadio(
- groupTypeFieldSet,
- i18n.t("Community"),
- TYPEOFGROUP_FIELD,
- i18n.t("A community is a group of users with shared interests (for instance the environmental community or the LGBT community). It is open to any new member to join freely without the moderation of the administrators."),
+ communityRadio = groupFieldFactory.createCommunityRadio(groupTypeFieldSet, TYPEOFGROUP_FIELD,
COMM_GROUP_TYPE_ID);
communityRadio.setTabIndex(9);
Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java 2012-03-30 13:12:37 UTC (rev 1808)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java 2012-03-30 16:38:51 UTC (rev 1809)
@@ -110,6 +110,7 @@
}
private GroupType getTypeOfGroup() {
+ // Duplicate in GroupOptGeneralPanel
if (getView().isProject()) {
return GroupType.PROJECT;
} else if (getView().isOrganization()) {
Modified: trunk/src/main/java/cc/kune/core/client/ui/DefaultFormUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ui/DefaultFormUtils.java 2012-03-30 13:12:37 UTC (rev 1808)
+++ trunk/src/main/java/cc/kune/core/client/ui/DefaultFormUtils.java 2012-03-30 16:38:51 UTC (rev 1809)
@@ -28,6 +28,23 @@
import com.extjs.gxt.ui.client.widget.form.Radio;
public class DefaultFormUtils {
+
+ public static final String BIG_FIELD_SIZE = "310px";
+
+ public static FieldSet createFieldSet(final String heading) {
+ return createFieldSet(heading, BIG_FIELD_SIZE);
+ }
+
+ public static FieldSet createFieldSet(final String heading, final String width) {
+ final FieldSet fieldSet = new FieldSet();
+ fieldSet.setHeading(heading);
+ fieldSet.addStyleName("k-form-fieldset");
+ fieldSet.setCollapsible(false);
+ fieldSet.setWidth(width);
+ fieldSet.setAutoHeight(true);
+ return fieldSet;
+ }
+
public static Radio createRadio(final FieldSet fieldSet, final String radioLabel,
final String radioFieldName, final String radioTip, final String id) {
final Radio radio = new Radio();
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java 2012-03-30 13:12:37 UTC (rev 1808)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java 2012-03-30 16:38:51 UTC (rev 1809)
@@ -82,6 +82,7 @@
private final LicenseManager licenseManager;
private final KuneBasicProperties properties;
private final ServerToolRegistry serverToolRegistry;
+ private final SocialNetworkCache snCache;
private final Provider<TrashServerTool> trashTool;
private final UserFinder userFinder;
@@ -91,7 +92,7 @@
final KuneBasicProperties properties, final LicenseManager licenseManager,
final LicenseFinder licenseFinder, final FileManager fileManager,
final ServerToolRegistry serverToolRegistry, final Provider<TrashServerTool> trashTool,
- final I18nTranslationService i18n) {
+ final I18nTranslationService i18n, final SocialNetworkCache snCache) {
super(provider, Group.class);
this.finder = finder;
this.userFinder = userFinder;
@@ -103,6 +104,7 @@
this.serverToolRegistry = serverToolRegistry;
this.trashTool = trashTool;
this.i18n = i18n;
+ this.snCache = snCache;
}
@Override
@@ -157,26 +159,14 @@
checkIfLongNameAreInUse(group.getLongName());
final String defaultSiteWorkspaceTheme = kuneProperties.get(KuneProperties.WS_THEMES_DEF);
if (User.isKnownUser(user)) {
- GroupListMode publicVisibility = GroupListMode.EVERYONE;
- SocialNetworkVisibility snVisibility = SocialNetworkVisibility.anyone;
- if (group.getGroupType().equals(GroupType.COMMUNITY)) {
- group.setAdmissionType(AdmissionType.Open);
- } else if (group.getGroupType().equals(GroupType.CLOSED)) {
- group.setAdmissionType(AdmissionType.Closed);
- publicVisibility = GroupListMode.NORMAL;
- snVisibility = SocialNetworkVisibility.onlymembers;
- } else if (group.getGroupType().equals(GroupType.ORGANIZATION)) {
- group.setAdmissionType(AdmissionType.Moderated);
- } else if (group.getGroupType().equals(GroupType.PROJECT)) {
- group.setAdmissionType(AdmissionType.Moderated);
- } else if (group.getGroupType().equals(GroupType.ORPHANED_PROJECT)) {
- group.setAdmissionType(AdmissionType.Open);
- }
+ setAdmissionType(group);
final String licName = group.getDefaultLicense().getShortName();
final License license = licenseFinder.findByShortName(licName);
group.setDefaultLicense(license);
group.setWorkspaceTheme(defaultSiteWorkspaceTheme);
- initSocialNetwork(group, user.getUserGroup(), publicVisibility, snVisibility);
+ final boolean isClosed = group.getGroupType().equals(GroupType.CLOSED);
+ initSocialNetwork(group, user.getUserGroup(), getDefGroupMode(isClosed),
+ getDefSNVisibility(isClosed));
final String title = i18n.t("About [%s]", group.getLongName());
initGroup(user, group, serverToolRegistry.getToolsRegisEnabledForGroups(), title, publicDescrip);
return group;
@@ -249,6 +239,14 @@
return finder.findEnabledTools(id);
}
+ private GroupListMode getDefGroupMode(final boolean isClosed) {
+ return isClosed ? GroupListMode.NORMAL : GroupListMode.EVERYONE;
+ }
+
+ private SocialNetworkVisibility getDefSNVisibility(final boolean isClosed) {
+ return isClosed ? SocialNetworkVisibility.onlymembers : SocialNetworkVisibility.anyone;
+ }
+
@Override
public Group getGroupOfUserWithId(final Long userId) {
return userId != null ? find(User.class, userId).getUserGroup() : null;
@@ -283,14 +281,10 @@
private void initSocialNetwork(final Group group, final Group userGroup,
final GroupListMode publicVisibility, final SocialNetworkVisibility snVisibility) {
- final SocialNetwork network = group.getSocialNetwork();
- final AccessLists lists = network.getAccessLists();
- lists.getEditors().setMode(GroupListMode.NOBODY);
- lists.getViewers().setMode(publicVisibility);
+ final SocialNetwork network = setSocialNetwork(group, publicVisibility, snVisibility);
if (!group.getGroupType().equals(GroupType.ORPHANED_PROJECT)) {
network.addAdmin(userGroup);
}
- network.setVisibility(snVisibility);
}
@Override
@@ -317,6 +311,23 @@
return super.search(query, firstResult, maxResults);
}
+ private void setAdmissionType(final Group group) {
+ final GroupType groupType = group.getGroupType();
+ if (groupType.equals(GroupType.COMMUNITY)) {
+ group.setAdmissionType(AdmissionType.Open);
+ } else {
+ if (groupType.equals(GroupType.CLOSED)) {
+ group.setAdmissionType(AdmissionType.Closed);
+ } else if (groupType.equals(GroupType.ORGANIZATION)) {
+ group.setAdmissionType(AdmissionType.Moderated);
+ } else if (groupType.equals(GroupType.PROJECT)) {
+ group.setAdmissionType(AdmissionType.Moderated);
+ } else if (groupType.equals(GroupType.ORPHANED_PROJECT)) {
+ group.setAdmissionType(AdmissionType.Open);
+ }
+ }
+ }
+
@Override
public void setDefaultContent(final String groupShortName, final Content content) {
final Group group = findByShortName(groupShortName);
@@ -331,6 +342,16 @@
group.setBackgroundMime(mime);
}
+ private SocialNetwork setSocialNetwork(final Group group, final GroupListMode publicVisibility,
+ final SocialNetworkVisibility snVisibility) {
+ final SocialNetwork network = group.getSocialNetwork();
+ final AccessLists lists = network.getAccessLists();
+ lists.getEditors().setMode(GroupListMode.NOBODY);
+ lists.getViewers().setMode(publicVisibility);
+ network.setVisibility(snVisibility);
+ return network;
+ }
+
@Override
public void setToolEnabled(final User userLogged, final String groupShortName, final String tool,
final boolean enabled) {
@@ -366,7 +387,12 @@
}
group.setShortName(shortName);
}
+ group.setGroupType(groupDTO.getGroupType());
+ setAdmissionType(group);
+ final boolean isClosed = group.getGroupType().equals(GroupType.CLOSED);
+ setSocialNetwork(group, getDefGroupMode(isClosed), getDefSNVisibility(isClosed));
persist(group);
+ snCache.expire(group);
return group;
}
Modified: trunk/src/main/java/cc/kune/core/shared/domain/GroupListMode.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/domain/GroupListMode.java 2012-03-30 13:12:37 UTC (rev 1808)
+++ trunk/src/main/java/cc/kune/core/shared/domain/GroupListMode.java 2012-03-30 16:38:51 UTC (rev 1809)
@@ -21,6 +21,15 @@
import com.google.gwt.user.client.rpc.IsSerializable;
+/**
+ * The Enum GroupListMode describe the group list behavior
+ */
public enum GroupListMode implements IsSerializable {
- NORMAL, NOBODY, EVERYONE;
+
+ /** EVERYONE: means that everybody is allowed */
+ EVERYONE,
+ /** NOBODY: means that nobody is allowed */
+ NOBODY,
+ /** NORMAL means that that only groups in this list are allowed */
+ NORMAL;
}
Modified: trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralPanel.java 2012-03-30 13:12:37 UTC (rev 1808)
+++ trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralPanel.java 2012-03-30 16:38:51 UTC (rev 1809)
@@ -23,15 +23,30 @@
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.groups.newgroup.GroupFieldFactory;
import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.client.ui.DefaultFormUtils;
+import cc.kune.core.shared.dto.GroupType;
+import com.extjs.gxt.ui.client.widget.form.FieldSet;
+import com.extjs.gxt.ui.client.widget.form.Radio;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.google.inject.Inject;
public class GroupOptGeneralPanel extends EntityOptGeneralPanel implements GroupOptGeneralView {
+ public static final String CLOSED_GROUP_TYPE_ID = "k-gogp-type_of_group_closed";
+ public static final String COMM_GROUP_TYPE_ID = "k-gopg-type_of_group_comm";
private static final String LONG_NAME_FIELD = "k-gogp-longname";
+ public static final String ORG_GROUP_TYPE_ID = "k-gopg-type_of_group_org";
+
+ public static final String PROJ_GROUP_TYPE_ID = "k-gopg-type_of_group_proj";
+
private static final String SHORT_NAME_FIELD = "k-gogp-shortname";
+ public static final String TYPEOFGROUP_FIELD = "k-gogp-type_of_group";
+ private final Radio closedRadio;
+ private final Radio communityRadio;
private final TextField<String> longName;
+ private final Radio orgRadio;
+ private final Radio projectRadio;
private final TextField<String> shortName;
@Inject
@@ -39,12 +54,45 @@
final MaskWidget maskWidget, final GroupFieldFactory groupFieldFactory) {
super(maskWidget, res.emblemSystem(), i18n.t("General"), i18n.t("Change this values:"));
shortName = groupFieldFactory.createUserShortName(SHORT_NAME_FIELD);
- longName = groupFieldFactory.createUserLongName(LONG_NAME_FIELD);
+ longName = groupFieldFactory.createLongName(LONG_NAME_FIELD);
add(shortName);
add(longName);
+
+ final FieldSet groupTypeFieldSet = DefaultFormUtils.createFieldSet(i18n.t("Group type"), "210px");
+ groupTypeFieldSet.setWidth("210px");
+ add(groupTypeFieldSet);
+
+ projectRadio = groupFieldFactory.createProjectRadio(groupTypeFieldSet, TYPEOFGROUP_FIELD,
+ PROJ_GROUP_TYPE_ID);
+ projectRadio.setTabIndex(3);
+ projectRadio.setValue(true);
+
+ orgRadio = groupFieldFactory.createOrgRadio(groupTypeFieldSet, TYPEOFGROUP_FIELD, ORG_GROUP_TYPE_ID);
+ orgRadio.setTabIndex(4);
+
+ closedRadio = groupFieldFactory.createClosedRadio(groupTypeFieldSet, TYPEOFGROUP_FIELD,
+ CLOSED_GROUP_TYPE_ID);
+ closedRadio.setTabIndex(5);
+
+ communityRadio = groupFieldFactory.createCommunityRadio(groupTypeFieldSet, TYPEOFGROUP_FIELD,
+ COMM_GROUP_TYPE_ID);
+ communityRadio.setTabIndex(6);
}
@Override
+ public GroupType getGroupType() {
+ if (projectRadio.getValue()) {
+ return GroupType.PROJECT;
+ } else if (orgRadio.getValue()) {
+ return GroupType.ORGANIZATION;
+ } else if (closedRadio.getValue()) {
+ return GroupType.CLOSED;
+ } else {
+ return GroupType.COMMUNITY;
+ }
+ }
+
+ @Override
public String getLongName() {
return longName.getValue();
}
Modified: trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralPresenter.java 2012-03-30 13:12:37 UTC (rev 1808)
+++ trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralPresenter.java 2012-03-30 16:38:51 UTC (rev 1809)
@@ -78,12 +78,13 @@
@Override
protected void updateInServer() {
if (view.isValid()) {
- NotifyUser.showProgress();
+ NotifyUser.showProgress(i18n.t("Saving"));
final GroupDTO group = session.getCurrentState().getGroup();
final String previousGroupName = group.getShortName();
final StateToken token = group.getStateToken().copy();
group.setShortName(groupView.getShortName());
group.setLongName(groupView.getLongName());
+ group.setGroupType(groupView.getGroupType());
groupService.get().updateGroup(session.getUserHash(), token, group,
new AsyncCallbackSimple<StateAbstractDTO>() {
@Override
Modified: trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralView.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralView.java 2012-03-30 13:12:37 UTC (rev 1808)
+++ trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralView.java 2012-03-30 16:38:51 UTC (rev 1809)
@@ -19,8 +19,12 @@
*/
package cc.kune.gspace.client.options.general;
+import cc.kune.core.shared.dto.GroupType;
+
public interface GroupOptGeneralView extends EntityOptGeneralView {
+ GroupType getGroupType();
+
String getLongName();
String getShortName();
Modified: trunk/src/main/java/cc/kune/gspace/client/options/general/UserOptGeneralPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/general/UserOptGeneralPanel.java 2012-03-30 13:12:37 UTC (rev 1808)
+++ trunk/src/main/java/cc/kune/gspace/client/options/general/UserOptGeneralPanel.java 2012-03-30 16:38:51 UTC (rev 1809)
@@ -40,8 +40,6 @@
public class UserOptGeneralPanel extends EntityOptGeneralPanel implements UserOptGeneralView {
- private static final String BIG_FIELD_SIZE = "310px";
-
public static final String DAILY_TYPE_ID = "k-ngp-type_daily";
public static final String EMAIL_FIELD = "k-ngp-emial";
public static final String HOURLY_TYPE_ID = "k-ngp-type_hourly";
@@ -78,12 +76,7 @@
email = userFieldFactory.createUserEmail(EMAIL_FIELD);
add(email);
- emailNotifTypeFieldSet = new FieldSet();
- emailNotifTypeFieldSet.setHeading(i18n.t("How often do you want to receive email notifications?"));
- emailNotifTypeFieldSet.addStyleName("k-form-fieldset");
- emailNotifTypeFieldSet.setCollapsible(false);
- emailNotifTypeFieldSet.setWidth(BIG_FIELD_SIZE);
- emailNotifTypeFieldSet.setAutoHeight(true);
+ emailNotifTypeFieldSet = DefaultFormUtils.createFieldSet(i18n.t("How often do you want to receive email notifications?"));
immediateRadio = DefaultFormUtils.createRadio(emailNotifTypeFieldSet, i18n.t("almost immediately"),
TYPEOFEMAILNOTIF_FIELD, i18n.t(
@@ -122,7 +115,7 @@
notVerified.addStyleName("k-3corners");
notVerifLabelAdapter = new AdapterField(notVerified);
notVerifLabelAdapter.setLabelSeparator("");
- notVerifLabelAdapter.setWidth(BIG_FIELD_SIZE);
+ notVerifLabelAdapter.setWidth(DefaultFormUtils.BIG_FIELD_SIZE);
super.add(notVerifLabelAdapter);
resendEmailVerifBtn = new Button(i18n.t("Resend verification email"));
@@ -130,7 +123,7 @@
resendEmailVerifAdapter = new AdapterField(resendEmailVerifBtn);
resendEmailVerifAdapter.setValidateOnBlur(false);
resendEmailVerifAdapter.setLabelSeparator("");
- resendEmailVerifAdapter.setWidth(BIG_FIELD_SIZE);
+ resendEmailVerifAdapter.setWidth(DefaultFormUtils.BIG_FIELD_SIZE);
// resendEmailVerifAdapter.setFieldLabel(i18n.t("Maybe you want receive again our verification email"));
add(resendEmailVerifAdapter);
}
1
0
r1808 - in trunk/src/main/java: cc/kune/core/public cc/kune/core/server/manager/file cc/kune/gspace/client/actions cc/kune/gspace/client/armor/resources com/google/wave/splash/web/template
by Vicente J. Ruiz Jurado 30 Mar '12
by Vicente J. Ruiz Jurado 30 Mar '12
30 Mar '12
Author: vjrj_
Date: 2012-03-30 15:12:37 +0200 (Fri, 30 Mar 2012)
New Revision: 1808
Modified:
trunk/src/main/java/cc/kune/core/public/ws.css
trunk/src/main/java/cc/kune/core/server/manager/file/FileDownloadManagerUtils.java
trunk/src/main/java/cc/kune/gspace/client/actions/GoParentContainerBtn.java
trunk/src/main/java/cc/kune/gspace/client/armor/resources/gSpaceArmor.css
trunk/src/main/java/com/google/wave/splash/web/template/Templates.java
Log:
Some path fix, and a css fix.
Modified: trunk/src/main/java/cc/kune/core/public/ws.css
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.css 2012-03-30 11:26:03 UTC (rev 1807)
+++ trunk/src/main/java/cc/kune/core/public/ws.css 2012-03-30 13:12:37 UTC (rev 1808)
@@ -896,6 +896,11 @@
padding: 0 2px;
}
+
+button.k-btn-go-up {
+ margin-right: 5px;
+}
+
.k-sn-mainpanel .x-btn button:hover,.k-sn-mainpanel button:hover,button.k-button:hover,button.gwt-Button:hover
{
border: 1px orange solid;
@@ -1592,4 +1597,5 @@
right: 0 !important;
top: 0 !important;
width: auto !important;
-}
\ No newline at end of file
+}
+
Modified: trunk/src/main/java/cc/kune/core/server/manager/file/FileDownloadManagerUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/FileDownloadManagerUtils.java 2012-03-30 11:26:03 UTC (rev 1807)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/FileDownloadManagerUtils.java 2012-03-30 13:12:37 UTC (rev 1808)
@@ -79,8 +79,8 @@
InputStream in = null;
File icon = null;
for (final String path : resourceBases) {
- final String fileName = path + (path.endsWith(File.separator) ? "" : File.separator) + filename;
- final File file = new File(fileName);
+ final String pathAndfilename = path + (path.endsWith(File.separator) ? "" : File.separator) + filename;
+ final File file = new File(pathAndfilename);
if (file.exists()) {
icon = file;
break;
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/GoParentContainerBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/GoParentContainerBtn.java 2012-03-30 11:26:03 UTC (rev 1807)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/GoParentContainerBtn.java 2012-03-30 13:12:37 UTC (rev 1808)
@@ -71,7 +71,7 @@
final CoreResources res, final Session session, final String typeRoot) {
super(action);
this.withToolTip(i18n.t("Go up: Open the container folder")).withIcon(res.folderGoUp()).withStyles(
- "k-btn-min, k-fl");
+ "k-btn-min, k-fl, k-btn-go-up");
this.withId(GO_PARENT_ID);
final StateAbstractDTO state = session.getCurrentState();
if (!session.isCurrentStateAContent()) {
Modified: trunk/src/main/java/cc/kune/gspace/client/armor/resources/gSpaceArmor.css
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/armor/resources/gSpaceArmor.css 2012-03-30 11:26:03 UTC (rev 1807)
+++ trunk/src/main/java/cc/kune/gspace/client/armor/resources/gSpaceArmor.css 2012-03-30 13:12:37 UTC (rev 1808)
@@ -167,7 +167,7 @@
-webkit-border-bottom-right-radius: 4px;
-moz-border-radius-bottomright: 4px;
border-bottom-right-radius: 4px;
- padding: 1px 7px 0 7px;
+ padding: 3px 7px 0 5px;
overflow: hidden;
border-collapse: separate;
}
Modified: trunk/src/main/java/com/google/wave/splash/web/template/Templates.java
===================================================================
--- trunk/src/main/java/com/google/wave/splash/web/template/Templates.java 2012-03-30 11:26:03 UTC (rev 1807)
+++ trunk/src/main/java/com/google/wave/splash/web/template/Templates.java 2012-03-30 13:12:37 UTC (rev 1808)
@@ -21,6 +21,7 @@
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentMap;
import java.util.logging.Logger;
@@ -31,6 +32,7 @@
import org.mvel2.templates.TemplateCompiler;
import org.mvel2.templates.TemplateRuntime;
import org.mvel2.templates.util.TemplateTools;
+import org.waveprotocol.box.server.CoreSettings;
import com.google.common.base.Function;
import com.google.common.base.Preconditions;
@@ -38,6 +40,7 @@
import com.google.common.collect.Maps;
import com.google.inject.Inject;
import com.google.inject.Singleton;
+import com.google.inject.name.Named;
import com.google.wave.splash.text.Markup;
/**
@@ -55,13 +58,13 @@
private static final Logger LOG = Logger.getLogger(Templates.class.getName());
public static final String MOBILE_TEMPLATE = "mobile_client.html";
public static final String PERMALINK_WAVE_TEMPLATE = "permalink_client.html";
-
+ private static final String TEMPLATES_LOCATION = "others/splash/";
public static final String WAVE_NOT_FOUND_TEMPLATE = "wave_not_found.html.fragment";
private final Markup markup;
+ private String prefix;
private final boolean productionMode = true;
-
/**
* file name of template -> compiled template lazy cache.
*/
@@ -73,8 +76,19 @@
});
@Inject
- public Templates(final Markup markup) {
+ public Templates(final Markup markup,
+ @Named(CoreSettings.RESOURCE_BASES) final List<String> resourceBases) {
this.markup = markup;
+ for (final String path : resourceBases) {
+ final String prefix = path + (path.endsWith(File.separator) ? "" : File.separator);
+ final String pathAndfilename = prefix + TEMPLATES_LOCATION + Templates.BLIP_TEMPLATE;
+ final File file = new File(pathAndfilename);
+ if (file.exists()) {
+ this.prefix = prefix;
+ break;
+ }
+ }
+ Preconditions.checkArgument(prefix != null, "Could not find templates");
}
private CompiledTemplate loadTemplate(final String template) {
@@ -109,8 +123,7 @@
FileInputStream stream = null;
try {
- stream = new FileInputStream(new File((productionMode ? "/usr/share/kune/webapp"
- : "src/main/webapp") + "/others/splash/" + file));
+ stream = new FileInputStream(new File(prefix + TEMPLATES_LOCATION + file));
} catch (final FileNotFoundException e) {
LOG.info("Could not find resource named: " + file);
}
1
0
Author: vjrj_
Date: 2012-03-30 13:26:03 +0200 (Fri, 30 Mar 2012)
New Revision: 1807
Added:
trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkCache.java
trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkCacheClearDailyJob.java
trunk/src/main/java/cc/kune/core/server/persist/CachedCollection.java
trunk/src/main/java/cc/kune/core/server/persist/CachedCollectionTest.java
trunk/src/main/java/cc/kune/core/server/persist/ClearCacheDailyJob.java
trunk/src/main/java/cc/kune/events/client/actions/NewEventBtn.java
trunk/src/main/java/cc/kune/events/server/utils/EventsCache.java
trunk/src/main/java/cc/kune/events/server/utils/EventsCacheClearDailyJob.java
trunk/src/test/java/cc/kune/core/server/manager/impl/SocialNetworkCacheTest.java
trunk/src/test/java/cc/kune/events/server/utils/EventsCacheTest.java
Removed:
trunk/src/main/java/cc/kune/events/client/actions/NewMeetingBtn.java
Modified:
trunk/src/main/java/cc/kune/common/public/kune-common.css
trunk/src/main/java/cc/kune/core/public/ws.css
trunk/src/main/java/cc/kune/core/server/LoggerMethodInterceptor.java
trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java
trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
trunk/src/main/java/cc/kune/core/server/rpc/RPC.java
trunk/src/main/java/cc/kune/core/server/scheduler/CronServerTasksManager.java
trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java
trunk/src/main/java/cc/kune/domain/Container.java
trunk/src/main/java/cc/kune/domain/Content.java
trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java
trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java
trunk/src/main/java/cc/kune/events/server/EventsServerTool.java
trunk/src/main/java/cc/kune/events/server/EventsServlet.java
trunk/src/main/java/cc/kune/events/server/utils/EventsServerConversionUtil.java
trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java
Log:
CLOSED - # 228: Add more caches to server side objects
http://kune.ourproject.org/issues/ticket/228
Modified: trunk/src/main/java/cc/kune/common/public/kune-common.css
===================================================================
--- trunk/src/main/java/cc/kune/common/public/kune-common.css 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/common/public/kune-common.css 2012-03-30 11:26:03 UTC (rev 1807)
@@ -536,7 +536,7 @@
/* tooltips, adaptation of http://jonrohan.me/guide/css/creating-triangles-in-css/ */
.k-tooltip {
background-color: #FEFFF1;
- border: 2px solid #666666;
+ border: 1px solid #666666;
line-height: 1.3em;
padding: 5px;
}
Modified: trunk/src/main/java/cc/kune/core/public/ws.css
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.css 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/core/public/ws.css 2012-03-30 11:26:03 UTC (rev 1807)
@@ -1,18 +1,22 @@
-GCHARSET "UTF-8 "; body {
+GCHARSET "UTF-8 "; body
+ {
background-color: transparent;
color: black;
- font-family: "Ubuntu Beta",UbuntuBeta,Ubuntu,"Bitstream Vera Sans","DejaVu Sans",Tahoma,sans-serif;
+ font-family: "Ubuntu Beta", UbuntuBeta, Ubuntu, "Bitstream Vera Sans",
+ "DejaVu Sans", Tahoma, sans-serif;
font-size: small;
margin: 5px;
overflow: hidden;
}
* {
- font-family: "Ubuntu Beta",UbuntuBeta,Ubuntu,"Bitstream Vera Sans","DejaVu Sans",Tahoma,sans-serif;
+ font-family: "Ubuntu Beta", UbuntuBeta, Ubuntu, "Bitstream Vera Sans",
+ "DejaVu Sans", Tahoma, sans-serif;
}
body.fontface {
- font-family: "Ubuntu Beta",UbuntuBeta,Ubuntu,"Bitstream Vera Sans","DejaVu Sans",Tahoma,sans-serif;
+ font-family: "Ubuntu Beta", UbuntuBeta, Ubuntu, "Bitstream Vera Sans",
+ "DejaVu Sans", Tahoma, sans-serif;
}
div,span {
@@ -58,7 +62,7 @@
}
.gwt-Tree {
-
+
}
.gwt-Tree .gwt-TreeItem {
@@ -85,7 +89,7 @@
}
.gwt-StackPanel .gwt-StackPanelItem-selected {
-
+
}
.gwt-PushButton-up {
@@ -267,7 +271,7 @@
}
.gwt-SplitLayoutPanel {
-
+
}
.gwt-SplitLayoutPanel .gwt-SplitLayoutPanel-HDragger,.gwt-SplitLayoutPanel-HDragger
@@ -351,7 +355,7 @@
}
.x-btn button,button { /* font: 18px/27px 'Ubuntu', arial; */
-
+
}
.x-panel-mc {
@@ -376,11 +380,11 @@
}
div div.siteBar table.k-sitebar img.k-iconlabel-left {
- margin: 0px !important;
+ margin: 0px !important;
}
div div.siteBar table.k-sitebar div.k-iconlabel-left {
- margin: 0px !important;
+ margin: 0px !important;
}
.k-sitebar-wave-status {
@@ -394,7 +398,7 @@
}
.k-sitebar-wave-status {
-
+
}
.k-sitebar-wave-status-online {
@@ -415,7 +419,7 @@
}
.k-sitebar { /* margin-top: -30px; */
-
+
}
.k-link {
@@ -702,7 +706,7 @@
-moz-opacity: 0.68 !important;
-khtml-opacity: 0.68 !important;
opacity: 0.68 !important;*/
-
+
}
.k-publicspace-panel {
@@ -792,7 +796,8 @@
.x-fieldset-header-text,.x-form-group-label,.x-form-cb-label {
font-size: 14px;
- font-family: "Ubuntu Beta",UbuntuBeta,Ubuntu,"Bitstream Vera Sans","DejaVu Sans",Tahoma,sans-serif;
+ font-family: "Ubuntu Beta", UbuntuBeta, Ubuntu, "Bitstream Vera Sans",
+ "DejaVu Sans", Tahoma, sans-serif;
}
.k-form-intro {
@@ -851,7 +856,7 @@
}
.k-sn-adminslabel {
-
+
}
.k-sn-mainpanel .k-basic-thumb {
@@ -871,6 +876,7 @@
cursor: pointer;
margin: 0;
text-decoration: none;
+ background: url("images/hborder.png") repeat-x 0px -27px;
background-color: #F2F2F2;
color: #A05A2C;
-webkit-border-radius: 5px;
@@ -883,10 +889,10 @@
width: 50px;
min-width: 40px;
height: 26px;
+ text-shadow: 1px 1px 1px #FFFFFF;
}
-button.k-button
-{
+button.k-button {
padding: 0 2px;
}
@@ -894,7 +900,6 @@
{
border: 1px orange solid;
outline: 0 none;
- /* background: #f0f0f0; */
}
.k-sn-mainpanel .x-btn button:hover span,.k-sn-mainpanel button:hover span,button.k-button:hover span
@@ -961,8 +966,8 @@
color: gray !important;
border-color: #CCCCCC !important;
background: inherits !important;
- kfilter: alpha(opacity =
- 50) !important;
+ kfilter: alpha(opacity =
+ 50) !important;
-moz-opacity: 0.50 !important;
-khtml-opacity: 0.50 !important;
opacity: 0.50 !important;
@@ -976,12 +981,13 @@
}
/* end buttons */
+
.k-sn-collabslabel {
-
+
}
.k-sn-pendingslabel {
-
+
}
.k-sn-orphan-label {
@@ -999,15 +1005,15 @@
}
.k-sn-2nd-spanel {
-
+
}
.k-sn-3rd-panel {
-
+
}
.k-sn-adminsscroll,.k-sn-collabsscroll,.k-sn-pendingsscroll {
-
+
}
.k-sn-adminsflow,.k-sn-collabsflow,.k-sn-pendingsflow {
@@ -1015,15 +1021,15 @@
}
.k-sn-adminsscroll {
-
+
}
.k-sn-collabsscroll {
-
+
}
.k-sn-pendingsscroll {
-
+
}
.k-userconfirm-label {
@@ -1032,7 +1038,7 @@
}
.k-sn-deck {
-
+
}
.k-sn-bottomPanel {
@@ -1183,7 +1189,7 @@
}
.k-tool-panel {
-
+
}
.k-tool-item {
@@ -1193,19 +1199,19 @@
}
.k-tool-item-focus {
-
+
}
.k-tool-item-nofocus {
-
+
}
.k-tool-item-selected {
-
+
}
.k-tool-item-notselected {
-
+
}
.k-def-docbtn span {
@@ -1254,8 +1260,8 @@
-webkit-border-bottom-left-radius: 5px;
-moz-border-radius-bottomleft: 5px;
border-bottom-left-radius: 5px;
- kfilter: alpha(opacity =
- 90);
+ kfilter: alpha(opacity =
+ 90);
-moz-opacity: 0.90;
-khtml-opacity: 0.90;
opacity: 0.90;
@@ -1310,7 +1316,7 @@
/* Decorated tabbar */
.gwt-DecoratedTabBar {
-
+
}
.gwt-DecoratedTabBar .gwt-TabBarFirst {
@@ -1318,7 +1324,7 @@
}
.gwt-DecoratedTabBar .gwt-TabBarRest {
-
+
}
.gwt-DecoratedTabBar .gwt-TabBarItem {
@@ -1586,6 +1592,4 @@
right: 0 !important;
top: 0 !important;
width: auto !important;
-}
-
-
+}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/core/server/LoggerMethodInterceptor.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/LoggerMethodInterceptor.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/core/server/LoggerMethodInterceptor.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -19,6 +19,8 @@
*/
package cc.kune.core.server;
+import java.util.Date;
+
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.apache.commons.logging.Log;
@@ -26,99 +28,103 @@
public class LoggerMethodInterceptor implements MethodInterceptor {
- private static final Log LOG = LogFactory.getLog(LoggerMethodInterceptor.class);
- private final boolean simplifyNames;
+ private static final Log LOG = LogFactory.getLog(LoggerMethodInterceptor.class);
+ private final boolean simplifyNames;
- public LoggerMethodInterceptor() {
- this(true);
- }
+ public LoggerMethodInterceptor() {
+ this(true);
+ }
- public LoggerMethodInterceptor(final boolean simplifyNames) {
- this.simplifyNames = simplifyNames;
- }
+ public LoggerMethodInterceptor(final boolean simplifyNames) {
+ this.simplifyNames = simplifyNames;
+ }
- private void addMethodName(final MethodInvocation invocation, final StringBuffer buffer) {
- buffer.append(".");
- buffer.append(invocation.getMethod().getName());
- }
+ private void addMethodName(final MethodInvocation invocation, final StringBuffer buffer) {
+ buffer.append(".");
+ buffer.append(invocation.getMethod().getName());
+ }
- private void addMethodParameters(final MethodInvocation invocation, final StringBuffer buffer) {
- buffer.append("(");
- final Object[] arguments = invocation.getArguments();
- for (final Object arg : arguments) {
- buffer.append(getValue(arg)).append(", ");
- }
- buffer.append(")");
+ private void addMethodParameters(final MethodInvocation invocation, final StringBuffer buffer) {
+ buffer.append("(");
+ final Object[] arguments = invocation.getArguments();
+ for (final Object arg : arguments) {
+ buffer.append(getValue(arg)).append(", ");
}
+ buffer.append(")");
+ }
- private void addTargetClassName(final MethodInvocation invocation, final StringBuffer buffer) {
- buffer.append(getSimpleName(invocation.getThis().getClass()));
- }
+ private void addTargetClassName(final MethodInvocation invocation, final StringBuffer buffer) {
+ buffer.append(getSimpleName(invocation.getThis().getClass()));
+ }
- private StringBuffer createBuffer(final MethodInvocation invocation) {
- final StringBuffer buffer = new StringBuffer();
- addTargetClassName(invocation, buffer);
- return buffer;
- }
+ private StringBuffer createBuffer(final MethodInvocation invocation) {
+ final StringBuffer buffer = new StringBuffer();
+ addTargetClassName(invocation, buffer);
+ return buffer;
+ }
- private String getSimpleName(final Class<? extends Object> type) {
- String simpleName = type.getSimpleName();
- if (simplifyNames == true) {
- final int index = simpleName.indexOf('$');
- if (index > 0) {
- simpleName = simpleName.substring(0, index);
- }
- }
- return simpleName;
+ private String getSimpleName(final Class<? extends Object> type) {
+ String simpleName = type.getSimpleName();
+ if (simplifyNames == true) {
+ final int index = simpleName.indexOf('$');
+ if (index > 0) {
+ simpleName = simpleName.substring(0, index);
+ }
}
+ return simpleName;
+ }
- private String getValue(final Object result) {
- if (result == null) {
- return "null";
- } else {
- return result.toString();
- }
+ private String getValue(final Object result) {
+ if (result == null) {
+ return "null";
+ } else {
+ return result.toString();
}
+ }
- @Override
- public Object invoke(final MethodInvocation invocation) throws Throwable {
- logInvocation(invocation);
- try {
- final Object result = invocation.proceed();
- logResult(invocation, result);
- return result;
- } catch (final Exception e) {
- logException(invocation, e);
- throw e;
- }
+ @Override
+ public Object invoke(final MethodInvocation invocation) throws Throwable {
+ final Date start = new Date();
+ logInvocation(invocation);
+ try {
+ final Object result = invocation.proceed();
+ logResult(invocation, result, (new Date()).getTime() - start.getTime());
+ return result;
+ } catch (final Exception e) {
+ logException(invocation, e);
+ throw e;
}
+ }
- protected void log(final String output) {
- LOG.debug(output);
- }
+ protected void log(final String output) {
+ LOG.debug(output);
+ }
- protected void logException(final MethodInvocation invocation, final Throwable e) {
- final StringBuffer buffer = createBuffer(invocation);
- addMethodName(invocation, buffer);
- buffer.append(" EXCEPTION => ").append(e.getClass()).append(": ").append(
- e.getCause() != null ? e.getCause() : "").append(e.getMessage() != null ? e.getMessage() : "");
- log(buffer.toString());
- }
+ protected void logException(final MethodInvocation invocation, final Throwable e) {
+ final StringBuffer buffer = createBuffer(invocation);
+ addMethodName(invocation, buffer);
+ buffer.append(" EXCEPTION => ").append(e.getClass()).append(": ").append(
+ e.getCause() != null ? e.getCause() : "").append(e.getMessage() != null ? e.getMessage() : "");
+ log(buffer.toString());
+ }
- protected void logInvocation(final MethodInvocation invocation) {
- final StringBuffer buffer = createBuffer(invocation);
- addMethodName(invocation, buffer);
- addMethodParameters(invocation, buffer);
- log(buffer.toString());
- }
+ protected void logInvocation(final MethodInvocation invocation) {
+ final StringBuffer buffer = createBuffer(invocation);
+ addMethodName(invocation, buffer);
+ addMethodParameters(invocation, buffer);
+ log(buffer.toString());
+ }
- protected void logResult(final MethodInvocation invocation, final Object result) {
- final StringBuffer buffer = createBuffer(invocation);
- addMethodName(invocation, buffer);
- if (invocation.getMethod().getReturnType() != null) {
- buffer.append(" => ");
- buffer.append(getValue(result));
- }
- log(buffer.toString());
+ protected void logResult(final MethodInvocation invocation, final Object result, final long mill) {
+ final StringBuffer buffer = createBuffer(invocation);
+ addMethodName(invocation, buffer);
+ if (invocation.getMethod().getReturnType() != null) {
+ buffer.append(" => ");
+ buffer.append(getValue(result));
+ buffer.append(", time consumed: ");
+ buffer.append(mill);
+ buffer.append("ms");
}
+ log(buffer.toString());
+ }
}
Modified: trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -60,6 +60,7 @@
import cc.kune.core.server.utils.FilenameUtils;
import cc.kune.core.shared.domain.ContentStatus;
import cc.kune.core.shared.domain.RateResult;
+import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.SocialNetworkSubGroup;
import cc.kune.domain.Container;
import cc.kune.domain.Content;
@@ -72,6 +73,8 @@
import cc.kune.domain.finders.ContentFinder;
import cc.kune.domain.finders.I18nLanguageFinder;
import cc.kune.domain.finders.UserFinder;
+import cc.kune.events.server.utils.EventsCache;
+import cc.kune.events.shared.EventsToolConstants;
import cc.kune.wave.server.KuneWaveServerUtils;
import cc.kune.wave.server.ParticipantUtils;
import cc.kune.wave.server.kspecific.KuneWaveService;
@@ -84,6 +87,7 @@
public class ContentManagerDefault extends DefaultManager<Content, Long> implements ContentManager {
private final ContainerFinder containerFinder;
private final ContentFinder contentFinder;
+ private final EventsCache eventsCache;
private final FinderService finder;
private final I18nTranslationService i18n;
private final KuneWaveService kuneWaveManager;
@@ -101,7 +105,8 @@
final FinderService finder, final UserFinder userFinder, final I18nLanguageFinder languageFinder,
final TagUserContentManager tagManager, final KuneWaveService kuneWaveManager,
final ParticipantUtils participantUtils, final ServerToolRegistry tools,
- final XMLActionReader xmlActionReader, final I18nTranslationService i18n) {
+ final XMLActionReader xmlActionReader, final I18nTranslationService i18n,
+ final EventsCache eventsCache) {
super(provider, Content.class);
this.contentFinder = contentFinder;
this.containerFinder = containerFinder;
@@ -114,6 +119,7 @@
this.tools = tools;
this.xmlActionReader = xmlActionReader;
this.i18n = i18n;
+ this.eventsCache = eventsCache;
}
@Override
@@ -176,6 +182,16 @@
return addParticipants(user, content, members.toArray(new String[members.size()]));
}
+ private void clearEventsCacheIfNecessary(final Container previousParent) {
+ if (previousParent.getToolName().equals(EventsToolConstants.NAME)) {
+ eventsCache.remove(previousParent);
+ }
+ }
+
+ private void clearEventsCacheIfNecessary(final StateToken token) {
+ clearEventsCacheIfNecessary(finder.getContainer(token.getFolder()));
+ }
+
@Override
public Content copyContent(final User user, final Container destination, final Content contentToCopy) {
try {
@@ -304,6 +320,7 @@
oldContainer.removeContent(content);
newContainer.addContent(content);
content.setContainer(newContainer);
+ clearEventsCacheIfNecessary(oldContainer);
return persist(content);
}
@@ -351,6 +368,7 @@
getContentAuthor(content));
}
setModifiedTime(content);
+ clearEventsCacheIfNecessary(content.getContainer());
return content;
}
@@ -413,6 +431,9 @@
public void setGadgetProperties(final User user, final Content content, final String gadgetName,
final Map<String, String> properties) {
final URL gadgetUrl = getGadgetUrl(gadgetName);
+ if (gadgetName.equals(EventsToolConstants.TYPE_MEETING_DEF_GADGETNAME)) {
+ eventsCache.remove(content.getContainer());
+ }
kuneWaveManager.setGadgetProperty(KuneWaveServerUtils.getWaveRef(content),
getContentAuthor(content), gadgetUrl, properties);
}
Added: trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkCache.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkCache.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkCache.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -0,0 +1,99 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.core.server.manager.impl;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import cc.kune.common.shared.utils.Pair;
+import cc.kune.core.server.LogThis;
+import cc.kune.core.server.persist.CachedCollection;
+import cc.kune.domain.Group;
+import cc.kune.domain.SocialNetworkData;
+import cc.kune.domain.User;
+
+import com.google.inject.Singleton;
+
+/**
+ * The Class SocialNetworkCache create a cache for maker faster the retrieve of
+ * the SN of a user
+ */
+@LogThis
+@Singleton
+public class SocialNetworkCache extends CachedCollection<Pair<User, Group>, SocialNetworkData> {
+ public static final Log LOG = LogFactory.getLog(SocialNetworkCache.class);
+
+ /** The expired groups. */
+ private final Set<Group> expiredGroups;
+
+ /**
+ * Instantiates a new social network cache.
+ */
+ public SocialNetworkCache() {
+ super(100);
+ expiredGroups = Collections.synchronizedSet(new HashSet<Group>());
+ }
+
+ /**
+ * Adds a group which SN is modified, so we should not use the cache for that.
+ *
+ * @param group
+ * the group
+ */
+ public void expire(final Group group) {
+ expiredGroups.add(group);
+ }
+
+ /**
+ * Gets the SN of some user/group from the cache if available
+ *
+ * @param user
+ * the user
+ * @param group
+ * the group
+ * @return the social network data
+ */
+ public SocialNetworkData get(final User user, final Group group) {
+ final Pair<User, Group> pair = Pair.create(user, group);
+ if (expiredGroups.contains(group)) {
+ // TODO Do this in a cron job
+ final Iterator<Pair<User, Group>> iterator = super.keySet().iterator();
+ while (iterator.hasNext()) {
+ if (iterator.next().right.equals(group)) {
+ iterator.remove();
+ }
+ }
+ expiredGroups.remove(group);
+ LOG.debug("Not returning expired SN info");
+ return null;
+ }
+ return super.get(pair);
+ }
+
+ public Object put(final User user, final Group group, final SocialNetworkData data) {
+ return super.put(Pair.create(user, group), data);
+ }
+}
Added: trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkCacheClearDailyJob.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkCacheClearDailyJob.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkCacheClearDailyJob.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -0,0 +1,40 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.core.server.manager.impl;
+
+import java.text.ParseException;
+
+import org.quartz.SchedulerException;
+
+import cc.kune.core.server.persist.ClearCacheDailyJob;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class SocialNetworkCacheClearDailyJob extends ClearCacheDailyJob {
+
+ @Inject
+ public SocialNetworkCacheClearDailyJob(final SocialNetworkCache cache) throws ParseException, SchedulerException {
+ super(cache);
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -23,6 +23,9 @@
import javax.persistence.EntityManager;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
import cc.kune.core.client.errors.AccessViolationException;
import cc.kune.core.client.errors.AlreadyGroupMemberException;
import cc.kune.core.client.errors.AlreadyUserMemberException;
@@ -57,19 +60,22 @@
@Singleton
public class SocialNetworkManagerDefault extends DefaultManager<SocialNetwork, Long> implements
SocialNetworkManager {
+ public static final Log LOG = LogFactory.getLog(SocialNetworkManagerDefault.class);
private final AccessRightsService accessRightsService;
private final GroupFinder finder;
+ private final SocialNetworkCache snCache;
private final UserManager userManager;
@Inject
public SocialNetworkManagerDefault(@DataSourceKune final Provider<EntityManager> provider,
final GroupFinder finder, final AccessRightsService accessRightsService,
- final UserManager userManager) {
+ final UserManager userManager, final SocialNetworkCache snCache) {
super(provider, SocialNetwork.class);
this.finder = finder;
this.accessRightsService = accessRightsService;
this.userManager = userManager;
+ this.snCache = snCache;
}
@Override
@@ -81,6 +87,7 @@
if (pendingCollabs.contains(group)) {
sn.addCollaborator(group);
sn.removePendingCollaborator(group);
+ snCache.expire(inGroup);
} else {
throw new DefaultException("User is not a pending collaborator");
}
@@ -89,6 +96,7 @@
void addAdmin(final User newAdmin, final Group group) {
final SocialNetwork sn = group.getSocialNetwork();
sn.addAdmin(newAdmin.getUserGroup());
+ snCache.expire(group);
}
@Override
@@ -102,6 +110,7 @@
if (sn.isPendingCollab(group)) {
sn.removePendingCollaborator(group);
}
+ snCache.expire(inGroup);
}
@Override
@@ -115,6 +124,7 @@
if (sn.isPendingCollab(group)) {
sn.removePendingCollaborator(group);
}
+ snCache.expire(inGroup);
}
@Override
@@ -128,6 +138,7 @@
if (sn.isPendingCollab(group)) {
sn.removePendingCollaborator(group);
}
+ snCache.expire(inGroup);
}
private void checkGroupAddingToSelf(final Group group, final Group inGroup) throws DefaultException {
@@ -157,6 +168,7 @@
checkUserLoggedIsAdmin(userLogged, sn);
unJoinGroup(group, inGroup);
+ snCache.expire(inGroup);
}
@Override
@@ -170,6 +182,7 @@
} else {
throw new DefaultException("Person/Group is not a pending collaborator");
}
+ snCache.expire(inGroup);
}
@Override
@@ -202,10 +215,16 @@
public SocialNetworkData getSocialNetworkData(final User userLogged, final Group group) {
final SocialNetworkData socialNetData = new SocialNetworkData();
socialNetData.setGroupMembers(get(userLogged, group));
+
+ final SocialNetworkData cached = snCache.get(userLogged, group);
+ if (cached != null) {
+ LOG.debug("Returning cached SN");
+ return cached;
+ }
final AccessRights groupRights = accessRightsService.get(userLogged, group.getAccessLists());
socialNetData.setGroupRights(groupRights);
socialNetData.setUserParticipation(findParticipation(userLogged, group));
- socialNetData.setGroupMembers(get(userLogged, group));
+ // socialNetData.setGroupMembers(get(userLogged, group));
if (group.isPersonal()) {
final UserBuddiesData userBuddies = userManager.getUserBuddies(group.getShortName());
final User userGroup = userManager.findByShortname(group.getShortName());
@@ -253,6 +272,7 @@
socialNetData.setSocialNetworkVisibility(visibility);
socialNetData.setUserBuddies(UserBuddiesData.EMPTY);
}
+ snCache.put(userLogged, group, socialNetData);
return socialNetData;
}
@@ -287,6 +307,7 @@
checkGroupIsNotAlreadyAMember(userGroup, sn);
if (isModerated(admissionType)) {
sn.addPendingCollaborator(userGroup);
+ snCache.expire(inGroup);
return SocialNetworkRequestResult.moderated;
} else if (isOpen(admissionType)) {
if (inGroup.getGroupType().equals(GroupType.ORPHANED_PROJECT)) {
@@ -297,6 +318,7 @@
} else {
sn.addCollaborator(userGroup);
}
+ snCache.expire(inGroup);
return SocialNetworkRequestResult.accepted;
} else if (isClosed(admissionType)) {
return SocialNetworkRequestResult.denied;
@@ -316,6 +338,7 @@
}
sn.removeAdmin(group);
sn.addCollaborator(group);
+ snCache.expire(inGroup);
} else {
throw new InvalidSNOperationException("Person/Group is not an admin");
}
@@ -327,6 +350,7 @@
final SocialNetwork sn = inGroup.getSocialNetwork();
checkUserLoggedIsAdmin(userLogged, sn);
if (sn.isCollab(group)) {
+ snCache.expire(inGroup);
sn.removeCollaborator(group);
sn.addAdmin(group);
} else {
@@ -351,12 +375,15 @@
if (sn.getAccessLists().getEditors().getList().size() > 0) {
throw new LastAdminInGroupException();
} else {
+ snCache.expire(inGroup);
inGroup.setGroupType(GroupType.ORPHANED_PROJECT);
inGroup.setAdmissionType(AdmissionType.Open);
}
}
+ snCache.expire(inGroup);
sn.removeAdmin(groupToUnJoin);
} else if (sn.isCollab(groupToUnJoin)) {
+ snCache.expire(inGroup);
sn.removeCollaborator(groupToUnJoin);
} else {
throw new DefaultException("Person/Group is not a collaborator");
Added: trunk/src/main/java/cc/kune/core/server/persist/CachedCollection.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/persist/CachedCollection.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/persist/CachedCollection.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -0,0 +1,114 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.core.server.persist;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.collections.map.LRUMap;
+
+/**
+ * The Class CachedCollection implements some custom cache for often accessed
+ * (and costly) objects
+ *
+ * @param <K>
+ * the key type
+ * @param <V>
+ * the value type
+ */
+public class CachedCollection<K, V> implements Map<K, V> {
+
+ /** The cache. */
+ // private final Map<K, V> cache;
+ private final Map cache;
+
+ /**
+ * Instantiates a new cached collection.
+ *
+ * @param size
+ * the size of the cache
+ */
+ public CachedCollection(final int size) {
+ cache = Collections.synchronizedMap(new LRUMap(size));
+ }
+
+ @Override
+ public void clear() {
+ cache.clear();
+ }
+
+ @Override
+ public boolean containsKey(final Object key) {
+ return cache.containsKey(key);
+ }
+
+ @Override
+ public boolean containsValue(final Object value) {
+ return cache.containsKey(value);
+ }
+
+ @Override
+ public Set<java.util.Map.Entry<K, V>> entrySet() {
+ return cache.entrySet();
+ }
+
+ @Override
+ public V get(final Object key) {
+ return (V) cache.get(key);
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return cache.isEmpty();
+ }
+
+ @Override
+ public Set<K> keySet() {
+ return cache.keySet();
+ }
+
+ @Override
+ public Object put(final Object key, final Object value) {
+ return cache.put(key, value);
+ }
+
+ @Override
+ public void putAll(final Map<? extends K, ? extends V> m) {
+ cache.putAll(m);
+ }
+
+ @Override
+ public V remove(final Object key) {
+ return (V) cache.remove(key);
+ }
+
+ @Override
+ public int size() {
+ return cache.size();
+ }
+
+ @Override
+ public Collection<V> values() {
+ return cache.values();
+ }
+}
Added: trunk/src/main/java/cc/kune/core/server/persist/CachedCollectionTest.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/persist/CachedCollectionTest.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/persist/CachedCollectionTest.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -0,0 +1,54 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.core.server.persist;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class CachedCollectionTest {
+
+ private CachedCollection<String, String> cache;
+
+ @Before
+ public void before() {
+ cache = new CachedCollection<String, String>(2);
+ }
+
+ @Test
+ public void testBasicSize() {
+ assertTrue(cache.size() == 0);
+ final String first = "1";
+ cache.put(first, "1b");
+ final String snd = "2";
+ cache.put(snd, "2b");
+ final String third = "3";
+ cache.put(third, "3b");
+ assertNull(cache.get(first));
+ assertNotNull(cache.get(snd));
+ assertNotNull(cache.get(third));
+ assertTrue(cache.size() == 2);
+ }
+
+}
Added: trunk/src/main/java/cc/kune/core/server/persist/ClearCacheDailyJob.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/persist/ClearCacheDailyJob.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/persist/ClearCacheDailyJob.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -0,0 +1,46 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.server.persist;
+
+import java.text.ParseException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.quartz.SchedulerException;
+
+public abstract class ClearCacheDailyJob implements Job {
+
+ public static final Log LOG = LogFactory.getLog(ClearCacheDailyJob.class);
+ private final CachedCollection cache;
+
+ public ClearCacheDailyJob(final CachedCollection cache) throws ParseException, SchedulerException {
+ this.cache = cache;
+ }
+
+ @Override
+ public void execute(final JobExecutionContext context) throws JobExecutionException {
+ LOG.info("Daily cache clear");
+ cache.clear();
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -35,6 +35,7 @@
import cc.kune.core.client.errors.NoDefaultContentException;
import cc.kune.core.client.errors.ToolNotFoundException;
import cc.kune.core.client.rpcservices.ContentService;
+import cc.kune.core.server.LogThis;
import cc.kune.core.server.UserSessionManager;
import cc.kune.core.server.access.AccessRightsService;
import cc.kune.core.server.access.AccessService;
@@ -74,16 +75,19 @@
import cc.kune.domain.Content;
import cc.kune.domain.Group;
import cc.kune.domain.User;
+import cc.kune.events.server.utils.EventsCache;
import cc.kune.trash.shared.TrashToolConstants;
import com.google.inject.Inject;
+@LogThis
public class ContentRPC implements ContentService, RPC {
private final AccessService accessService;
private final ChatManager chatManager;
private final ContainerManager containerManager;
private final ContentManager contentManager;
private final CreationService creationService;
+ private final EventsCache eventsCache;
private final FinderService finderService;
private final GroupManager groupManager;
private final Mapper mapper;
@@ -99,7 +103,8 @@
final StateService stateService, final CreationService creationService,
final GroupManager groupManager, final ContentManager contentManager,
final ContainerManager containerManager, final TagUserContentManager tagManager,
- final Mapper mapper, final ChatManager chatManager, final KuneWaveManager waveManager) {
+ final Mapper mapper, final ChatManager chatManager, final KuneWaveManager waveManager,
+ final EventsCache eventsCache) {
this.finderService = finderService;
this.userSession = userSession;
this.accessService = accessService;
@@ -113,6 +118,7 @@
this.mapper = mapper;
this.chatManager = chatManager;
this.waveManager = waveManager;
+ this.eventsCache = eventsCache;
}
@Override
@@ -274,7 +280,6 @@
}
final Container trash = containerManager.getTrashFolder(group);
return moveContent(userHash, token, trash.getStateToken());
- // return getState(getCurrentUser(), previousParent);
}
@Override
Modified: trunk/src/main/java/cc/kune/core/server/rpc/RPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/RPC.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/core/server/rpc/RPC.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -19,8 +19,6 @@
*/
package cc.kune.core.server.rpc;
-import cc.kune.core.server.LogThis;
-
import com.google.inject.Singleton;
/**
@@ -37,7 +35,6 @@
*
*/
@Singleton
-@LogThis
public interface RPC {
}
Modified: trunk/src/main/java/cc/kune/core/server/scheduler/CronServerTasksManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/scheduler/CronServerTasksManager.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/core/server/scheduler/CronServerTasksManager.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -35,11 +35,13 @@
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
+import cc.kune.core.server.manager.impl.SocialNetworkCacheClearDailyJob;
import cc.kune.core.server.notifier.ClearUpdatedWavesHourlyJob;
import cc.kune.core.server.notifier.PendingNotificationDailyJob;
import cc.kune.core.server.notifier.PendingNotificationHourlyJob;
import cc.kune.core.server.notifier.PendingNotificationImmediateJob;
import cc.kune.core.server.rack.ContainerListener;
+import cc.kune.events.server.utils.EventsCacheClearDailyJob;
import com.google.inject.Inject;
import com.google.inject.Singleton;
@@ -78,6 +80,8 @@
scheduleJob(PendingNotificationHourlyJob.class, "0 0 * * * ?", "pendingnotifhourly");
scheduleJob(ClearUpdatedWavesHourlyJob.class, "0 0 * * * ?", "clearupdatedwaveshourly");
scheduleJob(PendingNotificationDailyJob.class, "0 5 0 * * ?", "pendingnotifdaily");
+ scheduleJob(EventsCacheClearDailyJob.class, "0 6 0 * * ?", "cleareventscachedaily");
+ scheduleJob(SocialNetworkCacheClearDailyJob.class, "0 6 0 * * ?", "clearcontentcachedaily");
} catch (final SchedulerException e) {
logError(e);
} catch (final ParseException e) {
Modified: trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -146,14 +146,15 @@
state.setContentRights(rightsService.get(userLogged, content.getAccessLists()));
state.setAccessLists(content.getAccessLists());
setCommon(state, userLogged, group, container);
- if (userLogged != User.UNKNOWN_USER) {
- state.setCurrentUserRate(contentManager.getRateContent(userLogged, content));
- }
+ // if (userLogged != User.UNKNOWN_USER) {
+ // state.setCurrentUserRate(contentManager.getRateContent(userLogged,
+ // content));
+ // }
// FIXME: user RateResult
- final Double rateAvg = contentManager.getRateAvg(content);
- state.setRate(rateAvg != null ? rateAvg : 0D);
- final Long rateByUsers = contentManager.getRateByUsers(content);
- state.setRateByUsers(rateByUsers != null ? rateByUsers.intValue() : 0);
+ // final Double rateAvg = contentManager.getRateAvg(content);
+ // state.setRate(rateAvg != null ? rateAvg : 0D);
+ // final Long rateByUsers = contentManager.getRateByUsers(content);
+ // state.setRateByUsers(rateByUsers != null ? rateByUsers.intValue() : 0);
return state;
}
Modified: trunk/src/main/java/cc/kune/domain/Container.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/Container.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/domain/Container.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -139,6 +139,28 @@
contents.add(descriptor);
}
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ final Container other = (Container) obj;
+ if (id == null) {
+ if (other.id != null) {
+ return false;
+ }
+ } else if (!id.equals(other.id)) {
+ return false;
+ }
+ return true;
+ }
+
@Transient
public List<Container> getAbsolutePath() {
ArrayList<Container> path;
@@ -230,6 +252,14 @@
return accessLists != null;
}
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((id == null) ? 0 : id.hashCode());
+ return result;
+ }
+
@Transient
public boolean isLeaf() {
return childs.size() == 0 && contents.size() == 0;
Modified: trunk/src/main/java/cc/kune/domain/Content.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/Content.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/domain/Content.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -139,6 +139,8 @@
@Version
private Integer version;
+ // TODO add index and also to debian package and liquibase
+ // @Index(name = "waveId")
private String waveId;
public Content() {
@@ -269,7 +271,8 @@
|| typeId.equals(TasksToolConstants.TYPE_TASK)
|| typeId.equals(ListsToolConstants.TYPE_POST)
|| typeId.equals(WikiToolConstants.TYPE_WIKIPAGE)
- || (typeId.equals(BlogsToolConstants.TYPE_POST) || typeId.equals(BartersToolConstants.TYPE_BARTER) || typeId.equals(EventsToolConstants.TYPE_MEETING));
+ || (typeId.equals(BlogsToolConstants.TYPE_POST)
+ || typeId.equals(BartersToolConstants.TYPE_BARTER) || typeId.equals(EventsToolConstants.TYPE_MEETING));
}
public void removeAuthor(final User user) {
Modified: trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -52,7 +52,7 @@
@Inject
public EventsClientActions(final I18nUITranslationService i18n, final Session session,
final StateManager stateManager, final ActionRegistryByType registry, final CoreResources res,
- final Provider<NewMeetingBtn> newMeetingsBtn, final Provider<GoParentFolderBtn> folderGoUp,
+ final Provider<NewEventBtn> newEventBtn, final Provider<GoParentFolderBtn> folderGoUp,
final Provider<OpenMeetingMenuItem> openContentMenuItem,
final Provider<DelMeetingMenuItem> delContentMenuItem,
final Provider<ContentViewerOptionsMenu> optionsMenuContent,
@@ -102,7 +102,7 @@
eventAddMenuItem.get();
eventRemoveMenuItem.get();
- actionsRegistry.addAction(ActionGroups.TOPBAR, newMeetingsBtn, containers);
+ actionsRegistry.addAction(ActionGroups.TOPBAR, newEventBtn, containers);
// For now, commented:
// actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem,
Copied: trunk/src/main/java/cc/kune/events/client/actions/NewEventBtn.java (from rev 1797, trunk/src/main/java/cc/kune/events/client/actions/NewMeetingBtn.java)
===================================================================
--- trunk/src/main/java/cc/kune/events/client/actions/NewEventBtn.java (rev 0)
+++ trunk/src/main/java/cc/kune/events/client/actions/NewEventBtn.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -0,0 +1,40 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.events.client.actions;
+
+import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
+import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
+import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.resources.nav.NavResources;
+import cc.kune.events.client.actions.EventAddMenuItem.EventAddAction;
+
+import com.google.inject.Inject;
+
+public class NewEventBtn extends ButtonDescriptor {
+
+ @Inject
+ public NewEventBtn(final I18nTranslationService i18n, final EventAddAction action,
+ final NavResources res, final GlobalShortcutRegister shorcutReg) {
+ super(i18n.t("New event"), action);
+ withIcon(res.calendarAdd()).withToolTip(i18n.t("Create a New Event"));
+ action.setOpenAfterCreation(true);
+ }
+
+}
Deleted: trunk/src/main/java/cc/kune/events/client/actions/NewMeetingBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/actions/NewMeetingBtn.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/events/client/actions/NewMeetingBtn.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -1,40 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.events.client.actions;
-
-import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
-import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
-import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.core.client.resources.nav.NavResources;
-import cc.kune.events.client.actions.EventAddMenuItem.EventAddAction;
-
-import com.google.inject.Inject;
-
-public class NewMeetingBtn extends ButtonDescriptor {
-
- @Inject
- public NewMeetingBtn(final I18nTranslationService i18n, final EventAddAction action,
- final NavResources res, final GlobalShortcutRegister shorcutReg) {
- super(i18n.t("New meeting"), action);
- withIcon(res.calendarAdd()).withToolTip(i18n.t("Create a New Meeting"));
- action.setOpenAfterCreation(true);
- }
-
-}
Modified: trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -81,15 +81,8 @@
final TutorialViewer tutorialViewer) {
super(gsArmor, eventBus, i18n, capabilitiesRegistry, dragController, contentDropControllerProv,
containerDropControllerProv, tutorialViewer);
- final CalendarSettings settings = new CalendarSettings();
- settings.setIntervalsPerHour(4);
- settings.setPixelsPerInterval(10);
- // With Single is very annoying
- // settings.setTimeBlockClickNumber(Click.Single);
- // settings.setOffsetHourLabels(true);
- settings.setScrollToHour(8);
calendar = new Calendar();
- calendar.setSettings(settings);
+ calendar.setSettings(setCalendarSettings());
widget = calendar;
calendar.sinkEvents(Event.ONMOUSEDOWN | Event.ONDBLCLICK | Event.KEYEVENTS | Event.ONMOUSEOVER
| Event.ONCLICK);
@@ -171,6 +164,7 @@
@Override
public void attach() {
+ calendar.setSettings(setCalendarSettings());
super.attach();
gsArmor.enableCenterScroll(false);
}
@@ -246,6 +240,17 @@
calendar.resumeLayout();
}
+ private CalendarSettings setCalendarSettings() {
+ final CalendarSettings settings = new CalendarSettings();
+ settings.setIntervalsPerHour(4);
+ settings.setPixelsPerInterval(10);
+ // With Single is very annoying
+ // settings.setTimeBlockClickNumber(Click.Single);
+ // settings.setOffsetHourLabels(true);
+ settings.setScrollToHour(8);
+ return settings;
+ }
+
@Override
public void setDate(final Date date) {
calendar.setDate(date);
Modified: trunk/src/main/java/cc/kune/events/server/EventsServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/events/server/EventsServerTool.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/events/server/EventsServerTool.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -45,21 +45,24 @@
import cc.kune.domain.Content;
import cc.kune.domain.Group;
import cc.kune.domain.User;
+import cc.kune.events.server.utils.EventsCache;
import com.google.inject.Inject;
public class EventsServerTool extends AbstractServerTool implements ServerWaveTool {
private static final String MEETING_GADGET = "http://mass-mob.appspot.com/massmob/org.ourproject.massmob.client.MassmobGa…";
+ private final EventsCache eventsCache;
private final URL gadgetUrl;
@Inject
public EventsServerTool(final ContentManager contentManager, final ContainerManager containerManager,
final ToolConfigurationManager configurationManager, final I18nTranslationService i18n,
- final CreationService creationService) {
+ final CreationService creationService, final EventsCache eventsCache) {
super(NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_MEETING), Arrays.asList(TYPE_ROOT),
Collections.<String> emptyList(), Arrays.asList(TYPE_ROOT), contentManager, containerManager,
creationService, configurationManager, i18n, ServerToolTarget.forBoth);
+ this.eventsCache = eventsCache;
gadgetUrl = UrlUtils.of(MEETING_GADGET);
}
@@ -83,6 +86,7 @@
public void onCreateContent(final Content content, final Container parent) {
content.setStatus(ContentStatus.publishedOnline);
content.setPublishedOn(new Date());
+ eventsCache.remove(parent);
}
@Override
Modified: trunk/src/main/java/cc/kune/events/server/EventsServlet.java
===================================================================
--- trunk/src/main/java/cc/kune/events/server/EventsServlet.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/events/server/EventsServlet.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -88,7 +88,7 @@
try {
final Container cnt = getContainer(userHash, token);
if (cnt != null && cnt.getTypeId().equals(EventsToolConstants.TYPE_ROOT)) {
- final List<Map<String, String>> listOfProps = EventsServerConversionUtil.getAppointments(cnt);
+ final List<Map<String, String>> listOfProps = EventsServerConversionUtil.getAppointmentsUsingCache(cnt);
for (final Map<String, String> props : listOfProps) {
try {
final VEvent vEvent = EventsServerConversionUtil.toVEvent(EventsServerConversionUtil.toApp(props));
Added: trunk/src/main/java/cc/kune/events/server/utils/EventsCache.java
===================================================================
--- trunk/src/main/java/cc/kune/events/server/utils/EventsCache.java (rev 0)
+++ trunk/src/main/java/cc/kune/events/server/utils/EventsCache.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -0,0 +1,82 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.events.server.utils;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import cc.kune.core.server.LogThis;
+import cc.kune.core.server.persist.CachedCollection;
+import cc.kune.domain.Container;
+
+import com.google.inject.Singleton;
+
+/**
+ * The Class EventsCache is used to cache events of a group. Right now is only
+ * used in the export functionality because we don't have a way to detect gadget
+ * changes (of dates, etc) to expire this elements.
+ */
+@LogThis
+@Singleton
+public class EventsCache extends CachedCollection<Container, List<Map<String, String>>> {
+
+ /** The Constant LOG. */
+ public static final Log LOG = LogFactory.getLog(EventsCache.class);
+
+ /**
+ * Instantiates a new events cache.
+ */
+ public EventsCache() {
+ super(100);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see cc.kune.core.server.persist.CachedCollection#get(java.lang.Object)
+ */
+ @Override
+ public List<Map<String, String>> get(final Object key) {
+ final List<Map<String, String>> list = super.get(key);
+ if (list != null) {
+ LOG.debug("Using events cache for " + ((Container) key).getStateToken());
+ } else {
+ LOG.debug("Events cache empty for " + ((Container) key).getStateToken());
+ }
+ return list;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.util.Map#put(java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public List<Map<String, String>> put(final Container container, final List<Map<String, String>> value) {
+ final Object put = super.put(container, value);
+ LOG.debug("Event list added for container " + container.getStateToken() + ", size " + this.size());
+ return (List<Map<String, String>>) put;
+ }
+
+}
Added: trunk/src/main/java/cc/kune/events/server/utils/EventsCacheClearDailyJob.java
===================================================================
--- trunk/src/main/java/cc/kune/events/server/utils/EventsCacheClearDailyJob.java (rev 0)
+++ trunk/src/main/java/cc/kune/events/server/utils/EventsCacheClearDailyJob.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -0,0 +1,40 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.events.server.utils;
+
+import java.text.ParseException;
+
+import org.quartz.SchedulerException;
+
+import cc.kune.core.server.persist.ClearCacheDailyJob;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class EventsCacheClearDailyJob extends ClearCacheDailyJob {
+
+ @Inject
+ public EventsCacheClearDailyJob(final EventsCache cache) throws ParseException, SchedulerException {
+ super(cache);
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/events/server/utils/EventsServerConversionUtil.java
===================================================================
--- trunk/src/main/java/cc/kune/events/server/utils/EventsServerConversionUtil.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/events/server/utils/EventsServerConversionUtil.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -60,6 +60,9 @@
public class EventsServerConversionUtil extends EventsSharedConversionUtil {
@Inject
+ static EventsCache eventsCache;
+
+ @Inject
private static EventsServerTool eventTool;
@Inject
@@ -94,9 +97,18 @@
+ waveId, e2);
}
}
+ eventsCache.put(container, list);
return list;
}
+ public static List<Map<String, String>> getAppointmentsUsingCache(final Container container) {
+ final List<Map<String, String>> cached = eventsCache.get(container);
+ if (cached != null) {
+ return cached;
+ }
+ return getAppointments(container);
+ }
+
public static Appointment to(final VEvent event) {
// http://build.mnode.org/projects/ical4j/apidocs/
final Appointment app = new Appointment();
Modified: trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java 2012-03-29 01:36:02 UTC (rev 1806)
+++ trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -66,8 +66,10 @@
break;
case DISCONNECTED:
NotifyUser.showProgress(i18n.t("Connecting"));
+ break;
case RECONNECTING:
- putValue(Action.NAME, i18n.t("Offline"));
+ NotifyUser.showProgress(i18n.t("Offline"));
+ // putValue(Action.NAME, i18n.t("Offline"));
putValue(AbstractAction.STYLES, "k-sitebar-wave-status, k-sitebar-wave-status-offline");
setVisible(true);
break;
Added: trunk/src/test/java/cc/kune/core/server/manager/impl/SocialNetworkCacheTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/impl/SocialNetworkCacheTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/core/server/manager/impl/SocialNetworkCacheTest.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -0,0 +1,73 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.core.server.manager.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import cc.kune.domain.Group;
+import cc.kune.domain.SocialNetworkData;
+import cc.kune.domain.User;
+
+public class SocialNetworkCacheTest {
+
+ private SocialNetworkCache cache;
+ private SocialNetworkData data;
+ private Group group1;
+ private Group group2;
+ private User user1;
+ private User user2;
+
+ @Before
+ public void before() {
+ cache = new SocialNetworkCache();
+ user1 = new User();
+ user2 = new User();
+ user1.setShortName("user1");
+ user2.setShortName("user2");
+ group1 = new Group("group1", "group1");
+ group2 = new Group("group2", "group2");
+ data = new SocialNetworkData();
+ }
+
+ @Test
+ public void testBasicAdd() {
+ assertNull(cache.get(user1, group1));
+ cache.put(user1, group1, data);
+ cache.expire(group2);
+ assertEquals(data, cache.get(user1, group1));
+ assertEquals(1, cache.size());
+ }
+
+ @Test
+ public void testBasicAddDirty() {
+ assertNull(cache.get(user1, group1));
+ cache.put(user1, group1, data);
+ cache.put(user2, group1, data);
+ assertEquals(2, cache.size());
+ cache.expire(group1);
+ assertNull(cache.get(user1, group1));
+ assertEquals(0, cache.size());
+ }
+}
Added: trunk/src/test/java/cc/kune/events/server/utils/EventsCacheTest.java
===================================================================
--- trunk/src/test/java/cc/kune/events/server/utils/EventsCacheTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/events/server/utils/EventsCacheTest.java 2012-03-30 11:26:03 UTC (rev 1807)
@@ -0,0 +1,60 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.events.server.utils;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import java.util.ArrayList;
+import java.util.Map;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.domain.Container;
+
+public class EventsCacheTest {
+ private EventsCache cache;
+ private Container container;
+ private ArrayList<Map<String, String>> list;
+
+ @Before
+ public void before() {
+ cache = new EventsCache();
+ container = Mockito.mock(Container.class);
+ Mockito.when(container.getStateToken()).thenReturn(new StateToken("kk"));
+ list = new ArrayList<Map<String, String>>();
+ }
+
+ @Test
+ public void testBasicAdd() {
+ assertNull(cache.get(container));
+ cache.put(container, list);
+ cache.put(container, list);
+ assertEquals(1, cache.size());
+ cache.remove(container);
+ assertNull(cache.get(container));
+ assertEquals(0, cache.size());
+ }
+
+}
1
0
29 Mar '12
Author: vjrj_
Date: 2012-03-29 03:36:02 +0200 (Thu, 29 Mar 2012)
New Revision: 1806
Added:
trunk/src/main/java/cc/kune/gspace/client/maxmin/
trunk/src/main/java/cc/kune/gspace/client/maxmin/IsMaximizable.java
trunk/src/main/java/cc/kune/gspace/client/maxmin/MaxMinWorkspace.java
trunk/src/main/java/cc/kune/gspace/client/maxmin/MaxMinWorkspacePanel.java
trunk/src/main/java/cc/kune/gspace/client/maxmin/MaxMinWorkspacePresenter.java
trunk/src/test/java/cc/kune/gspace/client/maxmin/
Modified:
trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
trunk/src/main/java/cc/kune/core/client/sitebar/MyGroupsMenu.java
trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActions.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java
trunk/src/main/java/cc/kune/core/public/ws.css
trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java
trunk/src/main/java/cc/kune/gspace/client/GSpaceGinjector.java
trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java
trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmor.java
trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.java
trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.ui.xml
trunk/src/main/java/cc/kune/gspace/client/viewers/NoHomePageViewer.java
trunk/src/main/java/cc/kune/wave/client/WaveClientView.java
trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java
trunk/src/main/java/cc/kune/wave/client/WebClient.java
trunk/src/main/java/cc/kune/wave/client/WebClientMock.java
trunk/src/main/java/com/example/client/HelloWorldActions.java
trunk/src/main/webapp/ws.html
Log:
CLOSED - # 212: Maximize/minimize action for small screen PCs
http://kune.ourproject.org/issues/ticket/212
Modified: trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -249,7 +249,7 @@
private void createActionIfNeeded() {
if (chatIcon == null) {
chatIcon = new IconLabelDescriptor(action);
- chatIcon.setParent(siteActions.getLeftToolbar());
+ chatIcon.setParent(SitebarActions.LEFT_TOOLBAR);
chatIcon.setId(CHAT_CLIENT_ICON_ID);
chatIcon.setStyles("k-no-backimage, k-btn-sitebar, k-chat-icon");
chatIcon.putValue(Action.NAME, i18n.t(CHAT_TITLE));
@@ -259,9 +259,9 @@
shorcutRegister.put(shortcut, action);
action.setShortcut(shortcut);
chatIcon.setVisible(session.isLogged());
- ToolbarSeparatorDescriptor.build(Type.spacer, siteActions.getLeftToolbar());
- ToolbarSeparatorDescriptor.build(Type.spacer, siteActions.getLeftToolbar());
- ToolbarSeparatorDescriptor.build(Type.spacer, siteActions.getLeftToolbar());
+ ToolbarSeparatorDescriptor.build(Type.spacer, SitebarActions.LEFT_TOOLBAR);
+ ToolbarSeparatorDescriptor.build(Type.spacer, SitebarActions.LEFT_TOOLBAR);
+ ToolbarSeparatorDescriptor.build(Type.spacer, SitebarActions.LEFT_TOOLBAR);
}
}
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/MyGroupsMenu.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/MyGroupsMenu.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/MyGroupsMenu.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -63,7 +63,7 @@
this.siteOptions = siteOptions;
menuShowAction.setMenu(this);
setId(MENU_ID);
- setParent(siteOptions.getRightToolbar());
+ setParent(SitebarActions.RIGHT_TOOLBAR);
setStyles("k-no-backimage, k-btn-sitebar");
this.downloadProvider = downloadProvider;
this.gotoGroupAction = gotoGroupAction;
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -97,10 +97,10 @@
private void createActions() {
LOGGED_USER_MENU.setId(LOGGED_USER_MENU_ID);
- LOGGED_USER_MENU.setParent(siteOptions.getRightToolbar());
+ LOGGED_USER_MENU.setParent(SitebarActions.RIGHT_TOOLBAR);
LOGGED_USER_MENU.setStyles("k-no-backimage, k-btn-sitebar");
LOGGED_USER_MENU.setRightIcon(res.arrowdownsitebar());
- separator = new ToolbarSeparatorDescriptor(Type.separator, siteOptions.getRightToolbar());
+ separator = new ToolbarSeparatorDescriptor(Type.separator, SitebarActions.RIGHT_TOOLBAR);
final AbstractExtendedAction userHomeAction = new AbstractExtendedAction() {
@Override
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActions.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActions.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActions.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -19,13 +19,15 @@
*/
package cc.kune.core.client.sitebar;
+import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
import cc.kune.common.client.actions.ui.descrip.ToolbarDescriptor;
public interface SitebarActions {
- ToolbarDescriptor getLeftToolbar();
+ static final ToolbarDescriptor LEFT_TOOLBAR = new ToolbarDescriptor();
+ static final MenuDescriptor MORE_MENU = new MenuDescriptor();
- ToolbarDescriptor getRightToolbar();
+ static final ToolbarDescriptor RIGHT_TOOLBAR = new ToolbarDescriptor();
void refreshActions();
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -27,7 +27,6 @@
import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuSeparatorDescriptor;
-import cc.kune.common.client.actions.ui.descrip.ToolbarDescriptor;
import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor;
import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor.Type;
import cc.kune.common.client.resources.CommonResources;
@@ -64,9 +63,7 @@
void showErrorDialog();
}
- private static final ToolbarDescriptor LEFT_TOOLBAR = new ToolbarDescriptor();
- private static final MenuDescriptor MORE_MENU = new MenuDescriptor();
- private static final ToolbarDescriptor RIGHT_TOOLBAR = new ToolbarDescriptor();
+
public static final String SITE_OPTIONS_MENU = "kune-sop-om";
private final CommonResources commonRes;
private final I18nTranslationService i18n;
@@ -105,20 +102,10 @@
return gotoKuneDevSite;
}
- @Override
- public ToolbarDescriptor getLeftToolbar() {
- return LEFT_TOOLBAR;
- }
-
public MenuDescriptor getOptionsMenu() {
return MORE_MENU;
}
- @Override
- public ToolbarDescriptor getRightToolbar() {
- return RIGHT_TOOLBAR;
- }
-
private void init() {
MORE_MENU.withId(SITE_OPTIONS_MENU);
}
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -65,7 +65,7 @@
super(newGroupAction);
this.session = session;
withId(NEW_GROUP_BTN_ID).withStyles("k-no-backimage, k-btn-sitebar, k-fl, k-noborder, k-nobackcolor");
- withParent(sitebarActions.getRightToolbar());
+ withParent(SitebarActions.RIGHT_TOOLBAR);
eventBus.addHandler(MyGroupsChangedEvent.getType(),
new MyGroupsChangedEvent.MyGroupsChangedHandler() {
@Override
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -65,15 +65,15 @@
@Inject
public SitebarSignInLink(final SitebarSignInAction action, final EventBus eventBus,
- final Session session, final SitebarActions sitebarActions) {
+ final Session session) {
super(action);
// setParent(SitebarActionsPresenter.RIGHT_TOOLBAR);
setId(SITE_SIGN_IN);
setVisible(!session.isLogged());
setStyles("k-no-backimage, k-btn-sitebar, k-fl, k-noborder, k-nobackcolor");
- setParent(sitebarActions.getRightToolbar());
+ setParent(SitebarActions.RIGHT_TOOLBAR);
final ToolbarSeparatorDescriptor separator = new ToolbarSeparatorDescriptor(Type.separator,
- sitebarActions.getRightToolbar());
+ SitebarActions.RIGHT_TOOLBAR);
session.onUserSignInOrSignOut(true, new UserSignInOrSignOutHandler() {
@Override
public void onUserSignInOrSignOut(final UserSignInOrSignOutEvent event) {
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -123,8 +123,8 @@
super(action);
setId(SITE_SIGN_OUT);
final ToolbarSeparatorDescriptor separator = new ToolbarSeparatorDescriptor(Type.separator,
- sitebarActions.getRightToolbar());
- setParent(sitebarActions.getRightToolbar());
+ SitebarActions.RIGHT_TOOLBAR);
+ setParent(SitebarActions.RIGHT_TOOLBAR);
setVisible(session.isLogged());
setStyles("k-no-backimage, k-btn-sitebar, k-fl, k-noborder, k-nobackcolor");
session.onUserSignInOrSignOut(true, new UserSignInOrSignOutHandler() {
Modified: trunk/src/main/java/cc/kune/core/public/ws.css
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.css 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/core/public/ws.css 2012-03-29 01:36:02 UTC (rev 1806)
@@ -867,7 +867,7 @@
.k-sn-mainpanel .x-btn button,.k-sn-mainpanel button,button.k-button,.gwt-FileUpload,button.gwt-Button
{
font: 14px 'Ubuntu', arial;
- border: 2px solid #CCCCCC;
+ border: 1px solid #ACACAC;
cursor: pointer;
margin: 0;
text-decoration: none;
@@ -892,7 +892,7 @@
.k-sn-mainpanel .x-btn button:hover,.k-sn-mainpanel button:hover,button.k-button:hover,button.gwt-Button:hover
{
- border: 2px orange solid;
+ border: 1px orange solid;
outline: 0 none;
/* background: #f0f0f0; */
}
@@ -962,14 +962,14 @@
border-color: #CCCCCC !important;
background: inherits !important;
kfilter: alpha(opacity =
- 60) !important;
- -moz-opacity: 0.60 !important;
- -khtml-opacity: 0.60 !important;
- opacity: 0.60 !important;
+ 50) !important;
+ -moz-opacity: 0.50 !important;
+ -khtml-opacity: 0.50 !important;
+ opacity: 0.50 !important;
}
button.k-optionsborder img.k-iconlabel-left {
- border: 2px solid #CCCCCC;
+ border: 1px solid #ACACAC;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
Modified: trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -52,6 +52,9 @@
import cc.kune.gspace.client.licensewizard.pages.LicenseWizardSndFormView;
import cc.kune.gspace.client.licensewizard.pages.LicenseWizardTrdForm;
import cc.kune.gspace.client.licensewizard.pages.LicenseWizardTrdFormView;
+import cc.kune.gspace.client.maxmin.MaxMinWorkspace;
+import cc.kune.gspace.client.maxmin.MaxMinWorkspacePanel;
+import cc.kune.gspace.client.maxmin.MaxMinWorkspacePresenter;
import cc.kune.gspace.client.options.GroupOptions;
import cc.kune.gspace.client.options.GroupOptionsCollection;
import cc.kune.gspace.client.options.GroupOptionsPanel;
@@ -160,6 +163,9 @@
FolderViewerAsTablePanel.class, FolderViewerPresenter.FolderViewerProxy.class);
bindPresenter(SitebarSearchPresenter.class, SitebarSearchPresenter.SitebarSearchView.class,
SitebarSearchPanel.class, SitebarSearchPresenter.SitebarSearchProxy.class);
+ bindPresenter(MaxMinWorkspacePresenter.class, MaxMinWorkspacePresenter.MaxMinWorkspaceView.class,
+ MaxMinWorkspacePanel.class, MaxMinWorkspacePresenter.MaxMinWorkspaceProxy.class);
+ bind(MaxMinWorkspace.class).to(MaxMinWorkspacePresenter.class).in(Singleton.class);
s(NoHomePageViewer.class);
s(TutorialViewer.class);
Modified: trunk/src/main/java/cc/kune/gspace/client/GSpaceGinjector.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/GSpaceGinjector.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/gspace/client/GSpaceGinjector.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -22,6 +22,7 @@
import cc.kune.core.client.sitebar.search.SitebarSearchPresenter;
import cc.kune.gspace.client.i18n.I18nTranslatorPresenter;
import cc.kune.gspace.client.licensewizard.LicenseWizardPresenter;
+import cc.kune.gspace.client.maxmin.MaxMinWorkspacePresenter;
import cc.kune.gspace.client.options.GroupOptionsPresenter;
import cc.kune.gspace.client.options.UserOptionsPresenter;
import cc.kune.gspace.client.tags.TagsSummaryPresenter;
@@ -52,6 +53,8 @@
AsyncProvider<LicenseWizardPresenter> getLicenseWizardPresenter();
+ AsyncProvider<MaxMinWorkspacePresenter> getMaxMinWorkspacePresenter();
+
AsyncProvider<SitebarSearchPresenter> getSitebarSearchPresenter();
AsyncProvider<TagsSummaryPresenter> getTagsSummaryPresenter();
Modified: trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -32,6 +32,7 @@
import cc.kune.gspace.client.i18n.I18nTranslator;
import cc.kune.gspace.client.i18n.I18nTranslatorTabsCollection;
import cc.kune.gspace.client.i18n.SiteOptionsI18nTranslatorAction;
+import cc.kune.gspace.client.maxmin.MaxMinWorkspace;
import cc.kune.gspace.client.options.GroupOptions;
import cc.kune.gspace.client.options.UserOptions;
import cc.kune.gspace.client.tags.TagsSummaryPresenter;
@@ -48,23 +49,14 @@
public class GSpaceParts {
@Inject
- public GSpaceParts(
- final Session session,
- final GSpaceThemeManager themeManager,
+ public GSpaceParts(final Session session, final GSpaceThemeManager themeManager,
final Provider<EntityLicensePresenter> licenseFooter,
- final Provider<TagsSummaryPresenter> tagsPresenter,
- final Provider<ToolSelector> toolSelector,
- final Provider<NoHomePageViewer> noHome,
- final Provider<ContentViewerPresenter> docsViewer,
- final Provider<FolderViewerPresenter> folderViewer,
- final Provider<GroupOptions> go,
- final Provider<UserOptions> uo, // final Provider<GroupOptionsCollection>
- // gocProv,
- // final Provider<UserOptionsCollection> uocProv,
-
- final Provider<SitebarSearchPresenter> siteSearch,
+ final Provider<TagsSummaryPresenter> tagsPresenter, final Provider<ToolSelector> toolSelector,
+ final Provider<NoHomePageViewer> noHome, final Provider<ContentViewerPresenter> docsViewer,
+ final Provider<FolderViewerPresenter> folderViewer, final Provider<GroupOptions> go,
+ final Provider<UserOptions> uo, final Provider<SitebarSearchPresenter> siteSearch,
final Provider<SiteOptionsI18nTranslatorAction> transAction,
- final Provider<GiveUsFeedbackBtn> giveUsFeedback,
+ final Provider<MaxMinWorkspace> maxMinWorkspace, final Provider<GiveUsFeedbackBtn> giveUsFeedback,
final Provider<I18nToTranslateGridPanel> toTrans,
final Provider<I18nTranslatorTabsCollection> gtranslator,
final Provider<I18nTranslator> translator, final Provider<WriteToBuddyHeaderButton> writeToBuddie,
@@ -79,7 +71,7 @@
folderViewer.get();
siteSearch.get();
noHome.get();
-
+ maxMinWorkspace.get();
// // Add User & Groups Options
// final GroupOptionsCollection goc = gocProv.get();
// final UserOptionsCollection uoc = uocProv.get();
Modified: trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmor.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmor.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmor.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -21,12 +21,13 @@
import cc.kune.common.client.actions.ui.IsActionExtensible;
import cc.kune.common.shared.utils.Pair;
+import cc.kune.gspace.client.maxmin.IsMaximizable;
import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.SimplePanel;
-public interface GSpaceArmor {
+public interface GSpaceArmor extends IsMaximizable {
void clearBackImage();
@@ -81,6 +82,4 @@
void selectUserSpace();
void setBackImage(String url);
-
- void setContentVisible(boolean visible);
}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -42,6 +42,7 @@
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.SplitLayoutPanel;
import com.google.gwt.user.client.ui.TabLayoutPanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -50,10 +51,15 @@
interface WsArmorImplUiBinder extends UiBinder<Widget, GSpaceArmorImpl> {
}
+ private static final int CENTER_NORTH_HEIGHT = 153;
+ private static final int CENTER_SOUTH_HEIGHT = 36;
+ private static final int EAST_WIDTH = 220;
private static WsArmorImplUiBinder uiBinder = GWT.create(WsArmorImplUiBinder.class);
@UiField
+ VerticalPanel centerNorth;
+ @UiField
ScrollPanel centerScroll;
@UiField
FlowPanel docContainer;
@@ -275,10 +281,35 @@
}
@Override
- public void setContentVisible(final boolean visible) {
- // FIXME: remove this?
- // NotifyUser.info("Visible: " + visible);
- // docContainer.getElement().getStyle().setOpacity(visible ? 1d : .0d);
- // docFooter.getElement().getStyle().setOpacity(visible ? 1d : .0d);
+ public void setMaximized(final boolean maximized) {
+ // setMaximized(docFooter.getParent(), maximized);
+ // setMaximized(entityFooter.getParent(), maximized);
+ // setMaximized(entityHeader.getParent(), maximized);
+ // setMaximized(entityToolsContainer, maximized);
+ // splitCenter.setWidgetSize(centerScroll, getAbsoluteLeft())
+ // setMaximized(splitCenter.getWidget(0), maximized);
+ // setMaximized(splitCenter.getWidget(2), maximized);
+ // setMaximized(splitEast, maximized);
+ groupSpace.setWidgetSize(splitEast, maximized ? 0 : EAST_WIDTH);
+ splitCenter.setWidgetSize(centerNorth, maximized ? 7 : CENTER_NORTH_HEIGHT);
+ splitCenter.setWidgetSize(entityFooter, maximized ? 7 : CENTER_SOUTH_HEIGHT);
}
+
+ private void setMaximized(final Widget widget, final boolean maximized) {
+ widget.setVisible(!maximized);
+ if (maximized) {
+ // // $((Widget) gsArmor.getHeaderToolbar()).as(Effects).
+ // $(widget).as(Effects).slideDown(new Function() {
+ // @Override
+ // public void f() {
+ // }
+ // });
+ } else {
+ // $(widget).parent().as(Effects).slideUp(new Function() {
+ // @Override
+ // public void f() {
+ // }
+ // });
+ }
+ }
}
Modified: trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.ui.xml 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.ui.xml 2012-03-29 01:36:02 UTC (rev 1806)
@@ -43,7 +43,7 @@
<g:DockLayoutPanel unit="PX" ui:field="splitCenter"
styleName="{res.style.entityCentralContainer}">
<g:north size="153">
- <g:VerticalPanel width="100%"
+ <g:VerticalPanel width="100%" ui:field="centerNorth"
height="153px">
<g:FlowPanel height="70px" width="100%"
styleName="{res.style.entityHeader}" ui:field="entityHeader">
Added: trunk/src/main/java/cc/kune/gspace/client/maxmin/IsMaximizable.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/maxmin/IsMaximizable.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/maxmin/IsMaximizable.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -0,0 +1,25 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.gspace.client.maxmin;
+
+public interface IsMaximizable {
+ void setMaximized(boolean maximized);
+}
Added: trunk/src/main/java/cc/kune/gspace/client/maxmin/MaxMinWorkspace.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/maxmin/MaxMinWorkspace.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/maxmin/MaxMinWorkspace.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -0,0 +1,9 @@
+package cc.kune.gspace.client.maxmin;
+
+public interface MaxMinWorkspace {
+
+ void maximize();
+
+ void minimize();
+
+}
Added: trunk/src/main/java/cc/kune/gspace/client/maxmin/MaxMinWorkspacePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/maxmin/MaxMinWorkspacePanel.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/maxmin/MaxMinWorkspacePanel.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -0,0 +1,43 @@
+package cc.kune.gspace.client.maxmin;
+
+import cc.kune.gspace.client.armor.GSpaceArmor;
+import cc.kune.gspace.client.maxmin.MaxMinWorkspacePresenter.MaxMinWorkspaceView;
+import cc.kune.wave.client.WaveClientProvider;
+
+import com.google.gwt.user.client.ui.Widget;
+import com.google.inject.Inject;
+
+public class MaxMinWorkspacePanel implements MaxMinWorkspaceView {
+
+ private final GSpaceArmor gsArmor;
+ private final WaveClientProvider waveClient;
+
+ @Inject
+ public MaxMinWorkspacePanel(final GSpaceArmor gsArmor, final WaveClientProvider waveClient) {
+ this.gsArmor = gsArmor;
+ this.waveClient = waveClient;
+ }
+
+ @Override
+ public void addToSlot(final Object slot, final Widget content) {
+ }
+
+ @Override
+ public Widget asWidget() {
+ return null;
+ }
+
+ @Override
+ public void removeFromSlot(final Object slot, final Widget content) {
+ }
+
+ @Override
+ public void setInSlot(final Object slot, final Widget content) {
+ }
+
+ @Override
+ public void setMaximized(final boolean maximized) {
+ gsArmor.setMaximized(maximized);
+ waveClient.get().setMaximized(maximized);
+ }
+}
Added: trunk/src/main/java/cc/kune/gspace/client/maxmin/MaxMinWorkspacePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/maxmin/MaxMinWorkspacePresenter.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/maxmin/MaxMinWorkspacePresenter.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -0,0 +1,137 @@
+package cc.kune.gspace.client.maxmin;
+
+import cc.kune.common.client.actions.AbstractExtendedAction;
+import cc.kune.common.client.actions.Action;
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.actions.KeyStroke;
+import cc.kune.common.client.actions.Shortcut;
+import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
+import cc.kune.core.client.i18n.I18n;
+import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.client.sitebar.SitebarActions;
+
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.resources.client.ImageResource;
+import com.google.inject.Inject;
+import com.gwtplatform.mvp.client.Presenter;
+import com.gwtplatform.mvp.client.View;
+import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit;
+import com.gwtplatform.mvp.client.proxy.Proxy;
+import com.gwtplatform.mvp.client.proxy.RevealRootContentEvent;
+
+public class MaxMinWorkspacePresenter
+ extends
+ Presenter<MaxMinWorkspacePresenter.MaxMinWorkspaceView, MaxMinWorkspacePresenter.MaxMinWorkspaceProxy>
+
+implements MaxMinWorkspace {
+
+ public class MaximizeAction extends AbstractExtendedAction {
+ public MaximizeAction(final String name, final ImageResource img) {
+ super();
+ putValue(Action.NAME, name);
+ putValue(Action.SMALL_ICON, img);
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ showMaximized(true);
+ }
+ }
+ @ProxyCodeSplit
+ public interface MaxMinWorkspaceProxy extends Proxy<MaxMinWorkspacePresenter> {
+ }
+
+ public interface MaxMinWorkspaceView extends View, IsMaximizable {
+
+ }
+ public class MinimizeAction extends AbstractExtendedAction {
+ public MinimizeAction(final String name, final ImageResource img) {
+ super();
+ putValue(Action.NAME, name);
+ putValue(Action.SMALL_ICON, img);
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ showMaximized(false);
+ }
+ }
+ public static final String MAX_ICON = "mmwp-max_bt";
+
+ public static final String MIN_ICON = "mmwp-min_bt";
+
+ private final CoreResources images;
+
+ private MenuItemDescriptor maximizeButton;
+
+ private boolean maximized;
+
+ private MenuItemDescriptor minimizeButton;
+
+ private final GlobalShortcutRegister shortcutReg;
+
+ @Inject
+ public MaxMinWorkspacePresenter(final EventBus eventBus, final MaxMinWorkspaceView view,
+ final MaxMinWorkspaceProxy proxy, final GlobalShortcutRegister shortcutReg,
+ final CoreResources images) {
+ super(eventBus, view, proxy);
+ this.shortcutReg = shortcutReg;
+ this.images = images;
+ maximized = false;
+ }
+
+ private void createActions() {
+ final KeyStroke shortcut = Shortcut.getShortcut(true, true, false, false, Character.valueOf('F'));
+
+ final MaximizeAction maximizeAction = new MaximizeAction(I18n.t("Maximize the workspace"),
+ images.maximize());
+ maximizeAction.setShortcut(shortcut);
+ maximizeButton = new MenuItemDescriptor(SitebarActions.MORE_MENU, maximizeAction);
+ maximizeButton.setPosition(0);
+ maximizeButton.setId(MAX_ICON);
+
+ final MinimizeAction minimizeAction = new MinimizeAction(I18n.t("Minimize the workspace"),
+ images.minimize());
+ minimizeAction.setShortcut(shortcut);
+ minimizeButton = new MenuItemDescriptor(SitebarActions.MORE_MENU, minimizeAction);
+ minimizeButton.setPosition(1);
+ minimizeButton.setVisible(false);
+ minimizeButton.setId(MIN_ICON);
+
+ shortcutReg.put(shortcut, new AbstractExtendedAction() {
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ showMaximized(!maximized);
+ }
+ });
+ }
+
+ @Override
+ public void maximize() {
+ showMaximized(true);
+ }
+
+ @Override
+ public void minimize() {
+ showMaximized(false);
+ }
+
+ @Override
+ protected void onBind() {
+ super.onBind();
+ createActions();
+ }
+
+ @Override
+ protected void revealInParent() {
+ RevealRootContentEvent.fire(this, this);
+ }
+
+ private void showMaximized(final boolean maximized) {
+ maximizeButton.setVisible(!maximized);
+ minimizeButton.setVisible(maximized);
+ this.maximized = maximized;
+ getView().setMaximized(maximized);
+ }
+}
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/NoHomePageViewer.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/NoHomePageViewer.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/NoHomePageViewer.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -45,13 +45,11 @@
@Override
public void attach() {
- gsArmor.setContentVisible(false);
}
@Override
public void detach() {
UiUtils.clear(gsArmor.getDocHeader());
- gsArmor.setContentVisible(true);
}
@Override
Modified: trunk/src/main/java/cc/kune/wave/client/WaveClientView.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveClientView.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/wave/client/WaveClientView.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -26,10 +26,12 @@
import org.waveprotocol.wave.client.common.util.AsyncHolder.Accessor;
import org.waveprotocol.wave.client.widget.common.ImplPanel;
+import cc.kune.gspace.client.maxmin.IsMaximizable;
+
import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.ui.IsWidget;
-public interface WaveClientView extends IsWidget {
+public interface WaveClientView extends IsWidget, IsMaximizable {
void clear();
Modified: trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -30,7 +30,7 @@
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
-import cc.kune.core.client.sitebar.SitebarActionsPresenter;
+import cc.kune.core.client.sitebar.SitebarActions;
import cc.kune.core.client.sn.actions.SessionAction;
import cc.kune.core.client.state.Session;
@@ -84,9 +84,9 @@
}
@Inject
- public WaveStatusIndicator(final SitebarActionsPresenter sitebar, final WaveStatusAction action) {
+ public WaveStatusIndicator(final WaveStatusAction action) {
final IconLabelDescriptor status = new IconLabelDescriptor(action);
status.setPosition(0);
- sitebar.getRightToolbar().add(status);
+ SitebarActions.RIGHT_TOOLBAR.add(status);
}
}
Modified: trunk/src/main/java/cc/kune/wave/client/WebClient.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WebClient.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/wave/client/WebClient.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -464,6 +464,11 @@
History.newItem(tokenFromWaveref, false);
}
+ @Override
+ public void setMaximized(final boolean maximized) {
+ splitPanel.setWidgetSize(searchPanel, maximized ? 0 : 400);
+ }
+
private void setupConnectionIndicator() {
ClientEvents.get().addNetworkStatusEventHandler(new NetworkStatusEventHandler() {
@@ -498,49 +503,49 @@
}
});
}
+private void setupSearchPanel() {
+ // On wave action fire an event.
+ final SearchPresenter.WaveActionHandler actionHandler =
+ new SearchPresenter.WaveActionHandler() {
+ @Override
+ public void onCreateWave() {
+ ClientEvents.get().fireEvent(WaveCreationEvent.CREATE_NEW_WAVE);
+ }
- private void setupSearchPanel() {
- // On wave action fire an event.
- final SearchPresenter.WaveActionHandler actionHandler =
- new SearchPresenter.WaveActionHandler() {
- @Override
- public void onCreateWave() {
- ClientEvents.get().fireEvent(WaveCreationEvent.CREATE_NEW_WAVE);
- }
-
- @Override
- public void onWaveSelected(final WaveId id) {
- ClientEvents.get().fireEvent(new WaveSelectionEvent(WaveRef.of(id)));
- }
- };
- final Search search = SimpleSearch.create(RemoteSearchService.create(), waveStore);
- search.addListener(inboxCount.getSearchListener());
- SearchPresenter.create(search, searchPanel, actionHandler, profiles);
+ @Override
+ public void onWaveSelected(final WaveId id) {
+ ClientEvents.get().fireEvent(new WaveSelectionEvent(WaveRef.of(id)));
+ }
+ };
+ final Search search = SimpleSearch.create(RemoteSearchService.create(), waveStore);
+ search.addListener(inboxCount.getSearchListener());
+ SearchPresenter.create(search, searchPanel, actionHandler, profiles);
+}
+ private void setupUi() {
+ // Set up UI
+ final DockLayoutPanel self = BINDER.createAndBindUi(this);
+ // kune-patch
+ // RootPanel.get("app").add(self);
+ initWidget(self);
+ waveHolder = new ImplPanel("");
+ waveHolder.addStyleName("k-waveHolder");
+ waveFrame.add(waveHolder);
+ // DockLayoutPanel forcibly conflicts with sensible layout control, and
+ // sticks inline styles on elements without permission. They must be
+ // cleared.
+ self.getElement().getStyle().clearPosition();
+ splitPanel.setWidgetMinSize(searchPanel, 300);
+
+ if (LogLevel.showDebug()) {
+ logPanel.enable();
+ } else {
+ logPanel.removeFromParent();
+ }
+
+ setupSearchPanel();
+ setupWavePanel();
}
-private void setupUi() {
- // Set up UI
- final DockLayoutPanel self = BINDER.createAndBindUi(this);
- // kune-patch
- // RootPanel.get("app").add(self);
- initWidget(self);
- waveHolder = new ImplPanel("");
- waveHolder.addStyleName("k-waveHolder");
- waveFrame.add(waveHolder);
- // DockLayoutPanel forcibly conflicts with sensible layout control, and
- // sticks inline styles on elements without permission. They must be
- // cleared.
- self.getElement().getStyle().clearPosition();
- splitPanel.setWidgetMinSize(searchPanel, 300);
- if (LogLevel.showDebug()) {
- logPanel.enable();
- } else {
- logPanel.removeFromParent();
- }
-
- setupSearchPanel();
- setupWavePanel();
-}
private void setupWavePanel() {
// Hide the frame until waves start getting opened.
UIObject.setVisible(waveFrame.getElement(), false);
Modified: trunk/src/main/java/cc/kune/wave/client/WebClientMock.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WebClientMock.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/cc/kune/wave/client/WebClientMock.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -83,4 +83,8 @@
public void logout() {
}
+ @Override
+ public void setMaximized(final boolean maximized) {
+ }
+
}
Modified: trunk/src/main/java/com/example/client/HelloWorldActions.java
===================================================================
--- trunk/src/main/java/com/example/client/HelloWorldActions.java 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/java/com/example/client/HelloWorldActions.java 2012-03-29 01:36:02 UTC (rev 1806)
@@ -23,8 +23,7 @@
}
@Inject
- public HelloWorldActions(final CommonResources res, final SitebarActions sitebarActions,
- final SiteUserOptions siteUserOptions) {
+ public HelloWorldActions(final CommonResources res, final SiteUserOptions siteUserOptions) {
// We can share the action if we don't want to create several (and for
// instance it doesn't store any value)
@@ -33,7 +32,7 @@
// An action in the sitebar
final ButtonDescriptor siteBarBtn = new ButtonDescriptor(sharedAction);
siteBarBtn.withText("HWorld!").withIcon(res.info());
- siteBarBtn.setParent(sitebarActions.getLeftToolbar());
+ siteBarBtn.setParent(SitebarActions.LEFT_TOOLBAR);
// Other action in the sitebar options menu
Modified: trunk/src/main/webapp/ws.html
===================================================================
--- trunk/src/main/webapp/ws.html 2012-03-28 23:23:29 UTC (rev 1805)
+++ trunk/src/main/webapp/ws.html 2012-03-29 01:36:02 UTC (rev 1806)
@@ -228,7 +228,7 @@
}
.k-home-toolbar-btn {
- font-size: 18px !important;
+ font-size: 16px !important;
min-height: 40px;
height: auto !important;
max-width: 150px;
1
0
Author: vjrj_
Date: 2012-03-29 01:23:29 +0200 (Thu, 29 Mar 2012)
New Revision: 1805
Added:
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java
trunk/src/main/java/cc/kune/hspace/client/HSpace.java
Removed:
trunk/src/main/java/cc/kune/core/client/auth/SignInNewForm.java
trunk/src/main/java/cc/kune/core/client/auth/SignInNewForm.ui.xml
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarGroupsLink.java
Modified:
trunk/src/main/java/cc/kune/common/public/kune-common.css
trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
trunk/src/main/java/cc/kune/core/client/CoreParts.java
trunk/src/main/java/cc/kune/core/client/auth/SignInAbstractPresenter.java
trunk/src/main/java/cc/kune/core/client/auth/SignInAbstractView.java
trunk/src/main/java/cc/kune/core/client/auth/SignInForm.java
trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java
trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupView.java
trunk/src/main/java/cc/kune/core/client/resources/CoreMessages.java
trunk/src/main/java/cc/kune/core/client/sitebar/MyGroupsMenu.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java
trunk/src/main/java/cc/kune/core/client/sitebar/auth/VerifyEmailClientManager.java
trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java
trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java
trunk/src/main/java/cc/kune/core/client/state/HistoryTokenAuthNotNeededCallback.java
trunk/src/main/java/cc/kune/core/client/state/HistoryTokenCallback.java
trunk/src/main/java/cc/kune/core/client/state/HistoryTokenMustBeAuthCallback.java
trunk/src/main/java/cc/kune/core/client/state/StateManager.java
trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java
trunk/src/main/java/cc/kune/core/public/ws.css
trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java
trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java
trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java
trunk/src/main/java/cc/kune/gspace/client/actions/ContentViewerOptionsMenu.java
trunk/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java
trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java
trunk/src/main/java/cc/kune/hspace/client/HSpacePresenter.java
trunk/src/main/webapp/ws.html
trunk/src/test/java/cc/kune/core/client/state/impl/StateManagerDefaultTest.java
trunk/src/test/java/cc/kune/core/shared/utils/SharedFileDownloadUtilsTest.java
trunk/src/test/java/cc/kune/selenium/spaces/SitePageObject.java
Log:
Several minor fixes
Modified: trunk/src/main/java/cc/kune/common/public/kune-common.css
===================================================================
--- trunk/src/main/java/cc/kune/common/public/kune-common.css 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/common/public/kune-common.css 2012-03-28 23:23:29 UTC (rev 1805)
@@ -503,6 +503,14 @@
/* margin-left: 5px; */
}
+img.k-iconlabel-left {
+ margin-top: -2px;
+}
+
+div.k-iconlabel {
+ margin-top: -2px;
+}
+
.k-menuimtem-title {
color: white;
font-size: 15px;
Modified: trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -78,7 +78,7 @@
import cc.kune.core.client.sitebar.SitebarActions;
import cc.kune.core.client.sitebar.SitebarActionsPanel;
import cc.kune.core.client.sitebar.SitebarActionsPresenter;
-import cc.kune.core.client.sitebar.SitebarGroupsLink;
+import cc.kune.core.client.sitebar.SitebarNewGroupLink;
import cc.kune.core.client.sitebar.SitebarSignInLink;
import cc.kune.core.client.sitebar.SitebarSignOutLink;
import cc.kune.core.client.sitebar.SitebarSignOutLink.BeforeSignOut;
@@ -252,7 +252,7 @@
s(MyGroupsMenu.class);
s(SiteUserOptionsPresenter.class);
s(SiteUserOptions.class, SiteUserOptionsPresenter.class);
- s(SitebarGroupsLink.class);
+ s(SitebarNewGroupLink.class);
s(SitebarSignInLink.class);
s(SitebarSignOutLink.class);
Modified: trunk/src/main/java/cc/kune/core/client/CoreParts.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/CoreParts.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/CoreParts.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -20,12 +20,14 @@
package cc.kune.core.client;
import cc.kune.common.client.shortcuts.GlobalShortcuts;
+import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.auth.AnonUsersManager;
import cc.kune.core.client.auth.Register;
import cc.kune.core.client.auth.SignIn;
import cc.kune.core.client.events.AppStartEvent;
import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.groups.newgroup.NewGroup;
+import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.sitebar.AboutKuneDialog;
import cc.kune.core.client.sitebar.SiteUserOptionsPresenter;
import cc.kune.core.client.sitebar.auth.AskForPasswordResetPanel;
@@ -68,7 +70,7 @@
final Provider<VerifyEmailClientManager> verifyManager,
final Provider<UserOptions> userOptionsDialog, final Provider<GroupOptions> groupOptionsDialog,
final Provider<PasswordResetPanel> passReset, final Provider<AskForPasswordResetPanel> askForPass,
- final GlobalShortcuts shortcuts) {
+ final GlobalShortcuts shortcuts, final I18nTranslationService i18n) {
session.onAppStart(true, new AppStartHandler() {
@Override
public void onAppStart(final AppStartEvent event) {
@@ -105,17 +107,18 @@
register.get().doRegister();
}
});
- tokenListener.put(SiteTokens.NEW_GROUP, new HistoryTokenMustBeAuthCallback() {
- @Override
- public void onHistoryToken(final String token) {
- Scheduler.get().scheduleFinally(new ScheduledCommand() {
+ tokenListener.put(SiteTokens.NEW_GROUP,
+ new HistoryTokenMustBeAuthCallback(i18n.t(CoreMessages.REGISTER_TO_CREATE_A_GROUP)) {
@Override
- public void execute() {
- newGroup.get().doNewGroup();
+ public void onHistoryToken(final String token) {
+ Scheduler.get().scheduleFinally(new ScheduledCommand() {
+ @Override
+ public void execute() {
+ newGroup.get().doNewGroup();
+ }
+ });
}
});
- }
- });
tokenListener.put(SiteTokens.SUBTITLES, new HistoryTokenAuthNotNeededCallback() {
@Override
public void onHistoryToken(final String token) {
@@ -128,15 +131,16 @@
SpaceSelectEvent.fire(eventBus, Space.homeSpace);
}
});
- tokenListener.put(SiteTokens.WAVE_INBOX, new HistoryTokenMustBeAuthCallback() {
+ tokenListener.put(SiteTokens.WAVE_INBOX,
+ new HistoryTokenMustBeAuthCallback(i18n.t(CoreMessages.SIGN_IN_TO_ACCESS_INBOX)) {
+ @Override
+ public void onHistoryToken(final String token) {
+ SpaceSelectEvent.fire(eventBus, Space.userSpace);
+ }
+ });
+ tokenListener.put(SiteTokens.PREFS, new HistoryTokenMustBeAuthCallback("") {
@Override
public void onHistoryToken(final String token) {
- SpaceSelectEvent.fire(eventBus, Space.userSpace);
- }
- });
- tokenListener.put(SiteTokens.PREFS, new HistoryTokenMustBeAuthCallback() {
- @Override
- public void onHistoryToken(final String token) {
Scheduler.get().scheduleFinally(new ScheduledCommand() {
@Override
public void execute() {
@@ -146,7 +150,7 @@
});
}
});
- tokenListener.put(SiteTokens.GROUP_PREFS, new HistoryTokenMustBeAuthCallback() {
+ tokenListener.put(SiteTokens.GROUP_PREFS, new HistoryTokenMustBeAuthCallback("") {
@Override
public void onHistoryToken(final String token) {
Scheduler.get().scheduleFinally(new ScheduledCommand() {
Modified: trunk/src/main/java/cc/kune/core/client/auth/SignInAbstractPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInAbstractPresenter.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInAbstractPresenter.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -23,6 +23,7 @@
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.client.i18n.I18nUITranslationService.I18nLanguageChangeNeeded;
import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.SiteTokens;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.I18nLanguageDTO;
@@ -65,12 +66,12 @@
public void hide() {
getView().hide();
+ getView().reset();
+ getView().hideMessages();
}
public void onCancel() {
- getView().reset();
- getView().hideMessages();
- getView().hide();
+ hide();
}
public void onClose() {
@@ -78,7 +79,9 @@
getView().hideMessages();
if (!session.isLogged()) {
if (gotoTokenOnCancel != null) {
- stateManager.gotoHistoryToken(gotoTokenOnCancel);
+ if (!gotoTokenOnCancel.equals(SiteTokens.NEW_GROUP)) {
+ stateManager.gotoHistoryToken(gotoTokenOnCancel);
+ }
gotoTokenOnCancel = null;
} else {
stateManager.redirectOrRestorePreviousToken(false);
Modified: trunk/src/main/java/cc/kune/core/client/auth/SignInAbstractView.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInAbstractView.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInAbstractView.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -28,26 +28,26 @@
public interface SignInAbstractView extends View {
- HasCloseHandlers<PopupPanel> getClose();
+ HasCloseHandlers<PopupPanel> getClose();
- HasClickHandlers getFirstBtn();
+ HasClickHandlers getFirstBtn();
- HasClickHandlers getSecondBtn();
+ HasClickHandlers getSecondBtn();
- void hide();
+ void hide();
- void hideMessages();
+ void hideMessages();
- void mask(final String message);
+ void mask(final String message);
- void maskProcessing();
+ void maskProcessing();
- void reset();
+ void reset();
- void setErrorMessage(final String message, final NotifyLevel level);
+ void setErrorMessage(final String message, final NotifyLevel level);
- void show();
+ void show();
- void unMask();
+ void unMask();
}
Modified: trunk/src/main/java/cc/kune/core/client/auth/SignInForm.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInForm.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInForm.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -68,6 +68,10 @@
}
super.onRender(target, index);
}
+
+ @Override
+ protected void setAriaState(final String stateName, final String stateValue) {
+ }
};
loginNickOrEmailField.setFieldLabel(i18n.t("Username"));
loginNickOrEmailField.setName(USER_FIELD_ID);
@@ -90,6 +94,10 @@
}
super.onRender(target, index);
}
+
+ @Override
+ protected void setAriaState(final String stateName, final String stateValue) {
+ }
};
loginPassField.setFieldLabel(i18n.t("Password"));
loginPassField.setName(PASSWORD_FIELD_ID);
Deleted: trunk/src/main/java/cc/kune/core/client/auth/SignInNewForm.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInNewForm.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInNewForm.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -1,51 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.auth;
-
-import cc.kune.common.shared.i18n.I18nTranslationService;
-
-import com.extjs.gxt.ui.client.widget.form.FormPanel;
-import com.extjs.gxt.ui.client.widget.form.TextField;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.uibinder.client.UiBinder;
-import com.google.gwt.uibinder.client.UiField;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.Widget;
-
-public class SignInNewForm extends Composite {
-
- interface SignInNewFormUiBinder extends UiBinder<Widget, SignInNewForm> {
- }
- private static SignInNewFormUiBinder uiBinder = GWT.create(SignInNewFormUiBinder.class);
-
- @UiField
- FormPanel form;
- @UiField
- TextField<String> nick;
- @UiField
- TextField<String> password;
-
- public SignInNewForm(final I18nTranslationService i18n) {
- initWidget(uiBinder.createAndBindUi(this));
- nick.setFieldLabel(i18n.t("Your nickname"));
- password.setFieldLabel(i18n.t("Password"));
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/core/client/auth/SignInNewForm.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInNewForm.ui.xml 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInNewForm.ui.xml 2012-03-28 23:23:29 UTC (rev 1805)
@@ -1,17 +0,0 @@
-<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
-<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
- xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:gxt="urn:import:com.extjs.gxt.ui.client.widget"
- xmlns:form="urn:import:com.extjs.gxt.ui.client.widget.form">
- <ui:style>
-
- </ui:style>
-
- <form:FormPanel ui:field="form" heading="Simple Form" frame="true" width="370"
- padding="10" borders="false" labelWidth="75" headerVisible="false">
- <form:TextField ui:field="nick" allowBlank="false" validationDelay="1000"
- width="100" tabIndex="100" />
- <form:TextField ui:field="password" allowBlank="false" validationDelay="1000"
- width="150" tabIndex="101" password="true" />
- </form:FormPanel>
-
-</ui:UiBinder>
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -210,7 +210,7 @@
}
@Override
- public void focusOnShorName() {
+ public void focusOnShortName() {
shortNameField.focus();
}
Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -31,7 +31,9 @@
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.GroupServiceAsync;
import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.SiteTokens;
import cc.kune.core.client.state.StateManager;
+import cc.kune.core.client.state.TokenUtils;
import cc.kune.core.shared.dto.GroupDTO;
import cc.kune.core.shared.dto.GroupType;
import cc.kune.core.shared.dto.LicenseDTO;
@@ -95,11 +97,13 @@
if (session.isLogged()) {
NotifyUser.showProgress();
getView().show();
- getView().focusOnShorName();
+ getView().focusOnShortName();
NotifyUser.hideProgress();
} else {
+ // signIn.get().showSignInDialog();
signIn.get().setErrorMessage(i18n.t(CoreMessages.REGISTER_TO_CREATE_A_GROUP), NotifyLevel.info);
- signIn.get().showSignInDialog();
+ stateManager.gotoHistoryToken(TokenUtils.addRedirect(SiteTokens.SIGN_IN,
+ session.getCurrentStateToken().toString()));
}
}
});
@@ -205,7 +209,6 @@
public void execute() {
groupOptions.showTooltip();
new Timer() {
-
@Override
public void run() {
ShowHelpContainerEvent.fire(getEventBus(), state.getStateToken().getTool());
Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupView.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupView.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupView.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -30,7 +30,7 @@
void clearData();
- void focusOnShorName();
+ void focusOnShortName();
HasCloseHandlers<PopupPanel> getClose();
Modified: trunk/src/main/java/cc/kune/core/client/resources/CoreMessages.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/resources/CoreMessages.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/resources/CoreMessages.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -35,11 +35,12 @@
public final static String NAME_IN_ALREADY_IN_USE = "This name is already in use. Please try with a different name";
public final static String NAME_IN_USE = "This name in already in use. Please try with a different name";
public final static String NAME_RESTRICTED = "This user name can not be used. Please try with a different name";
+ public final static String NEW_GROUP_TITLE = "Create New Group";
public final static String PASSWD_MUST_BE_BETWEEN_6_AND_40 = "The password must be between 6 and 40 characters";
- public final static String REGISTER_A_NEW_GROUP_TITLE = "Register a new Group";
public final static String REGISTER_TITLE = "Register";
public final static String REGISTER_TO_CREATE_A_GROUP = "Please, sign in or register to create a group";
public final static String SIGN_IN_TITLE = "Sign in";
+ public final static String SIGN_IN_TO_ACCESS_INBOX = "Sign in or create an account to access to your inbox";
public final static String USER_DOESN_T_HAVE_A_HOMEPAGE = "This user does not have a homepage";
public final static String USER_OPTIONS_DIALOG_TITLE = "User options";
public final static String YOUR_HOMEPAGE = "Your " + "homepage";
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/MyGroupsMenu.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/MyGroupsMenu.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/MyGroupsMenu.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -32,7 +32,7 @@
import cc.kune.core.client.i18n.I18n;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.services.ClientFileDownloadUtils;
-import cc.kune.core.client.sitebar.SitebarGroupsLink.SitebarNewGroupAction;
+import cc.kune.core.client.sitebar.SitebarNewGroupLink.SitebarNewGroupAction;
import cc.kune.core.client.sn.actions.GotoGroupAction;
import cc.kune.core.client.state.Session;
import cc.kune.core.shared.dto.GroupDTO;
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -71,7 +71,7 @@
private final CommonResources commonRes;
private final I18nTranslationService i18n;
private final Provider<MyGroupsMenu> myGroupsMenu;
- private final Provider<SitebarGroupsLink> newGroupLink;
+ private final Provider<SitebarNewGroupLink> newGroupLink;
private final CoreResources res;
private final Provider<SitebarSignInLink> signInLink;
private final Provider<SitebarSignOutLink> signOutLink;
@@ -79,7 +79,7 @@
@Inject
public SitebarActionsPresenter(final EventBus eventBus, final SitebarActionsView view,
final SitebarActionsProxy proxy, final I18nTranslationService i18n,
- final Provider<SitebarGroupsLink> newGroupLink, final Provider<SitebarSignOutLink> signOutLink,
+ final Provider<SitebarNewGroupLink> newGroupLink, final Provider<SitebarSignOutLink> signOutLink,
final Provider<SitebarSignInLink> signInLink, final CoreResources res,
final CommonResources commonRes, final Provider<MyGroupsMenu> myGroupsMenu) {
super(eventBus, view, proxy);
Deleted: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarGroupsLink.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarGroupsLink.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarGroupsLink.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -1,93 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.sitebar;
-
-import cc.kune.common.client.actions.AbstractExtendedAction;
-import cc.kune.common.client.actions.ActionEvent;
-import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
-import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.core.client.events.MyGroupsChangedEvent;
-import cc.kune.core.client.events.UserSignInOrSignOutEvent;
-import cc.kune.core.client.events.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
-import cc.kune.core.client.resources.CoreResources;
-import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.SiteTokens;
-import cc.kune.core.client.state.StateManager;
-
-import com.google.gwt.event.shared.EventBus;
-import com.google.inject.Inject;
-
-public class SitebarGroupsLink extends ButtonDescriptor {
- public static class SitebarNewGroupAction extends AbstractExtendedAction {
-
- private final StateManager stateManager;
-
- @Inject
- public SitebarNewGroupAction(final StateManager stateManager, final I18nTranslationService i18n) {
- super();
- this.stateManager = stateManager;
- withText(i18n.t("Create New Group"));
- withToolTip(i18n.t("Create a new group for your initiative or organization "
- + "(NGO, collective, academic group...)"));
- }
-
- @Override
- public void actionPerformed(final ActionEvent event) {
- stateManager.gotoHistoryToken(SiteTokens.NEW_GROUP);
- }
- }
-
- public static final String NEW_GROUP_BTN_ID = "k-site-newgroup-btn";
- private final Session session;
-
- @Inject
- public SitebarGroupsLink(final SitebarNewGroupAction newGroupAction,
- final SitebarActions sitebarActions, final I18nTranslationService i18n, final EventBus eventBus,
- final CoreResources coreResources, final Session session) {
- super(newGroupAction);
- this.session = session;
- withId(NEW_GROUP_BTN_ID).withStyles("k-no-backimage, k-btn-sitebar, k-fl, k-noborder, k-nobackcolor");
- withParent(sitebarActions.getRightToolbar());
- eventBus.addHandler(MyGroupsChangedEvent.getType(),
- new MyGroupsChangedEvent.MyGroupsChangedHandler() {
- @Override
- public void onMyGroupsChanged(final MyGroupsChangedEvent event) {
- recalculate(session.isNotLogged());
- }
- });
- session.onUserSignInOrSignOut(true, new UserSignInOrSignOutHandler() {
- @Override
- public void onUserSignInOrSignOut(final UserSignInOrSignOutEvent event) {
- final boolean notLogged = !event.isLogged();
- recalculate(notLogged);
- }
- });
-
- }
-
- private void recalculate(final boolean notLogged) {
- if (notLogged) {
- setVisible(true);
- } else {
- setVisible(!session.userIsJoiningGroups());
- }
- }
-
-}
Copied: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java (from rev 1797, trunk/src/main/java/cc/kune/core/client/sitebar/SitebarGroupsLink.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarNewGroupLink.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -0,0 +1,94 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.sitebar;
+
+import cc.kune.common.client.actions.AbstractExtendedAction;
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
+import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.events.MyGroupsChangedEvent;
+import cc.kune.core.client.events.UserSignInOrSignOutEvent;
+import cc.kune.core.client.events.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
+import cc.kune.core.client.resources.CoreMessages;
+import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.SiteTokens;
+import cc.kune.core.client.state.StateManager;
+
+import com.google.gwt.event.shared.EventBus;
+import com.google.inject.Inject;
+
+public class SitebarNewGroupLink extends ButtonDescriptor {
+ public static class SitebarNewGroupAction extends AbstractExtendedAction {
+
+ private final StateManager stateManager;
+
+ @Inject
+ public SitebarNewGroupAction(final StateManager stateManager, final I18nTranslationService i18n) {
+ super();
+ this.stateManager = stateManager;
+ withText(i18n.t(CoreMessages.NEW_GROUP_TITLE));
+ withToolTip(i18n.t("Create a new group for your initiative or organization "
+ + "(NGO, collective, academic group...)"));
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ stateManager.gotoHistoryToken(SiteTokens.NEW_GROUP);
+ }
+ }
+
+ public static final String NEW_GROUP_BTN_ID = "k-site-newgroup-btn";
+ private final Session session;
+
+ @Inject
+ public SitebarNewGroupLink(final SitebarNewGroupAction newGroupAction,
+ final SitebarActions sitebarActions, final I18nTranslationService i18n, final EventBus eventBus,
+ final CoreResources coreResources, final Session session) {
+ super(newGroupAction);
+ this.session = session;
+ withId(NEW_GROUP_BTN_ID).withStyles("k-no-backimage, k-btn-sitebar, k-fl, k-noborder, k-nobackcolor");
+ withParent(sitebarActions.getRightToolbar());
+ eventBus.addHandler(MyGroupsChangedEvent.getType(),
+ new MyGroupsChangedEvent.MyGroupsChangedHandler() {
+ @Override
+ public void onMyGroupsChanged(final MyGroupsChangedEvent event) {
+ recalculate(session.isNotLogged());
+ }
+ });
+ session.onUserSignInOrSignOut(true, new UserSignInOrSignOutHandler() {
+ @Override
+ public void onUserSignInOrSignOut(final UserSignInOrSignOutEvent event) {
+ final boolean notLogged = !event.isLogged();
+ recalculate(notLogged);
+ }
+ });
+
+ }
+
+ private void recalculate(final boolean notLogged) {
+ if (notLogged) {
+ setVisible(true);
+ } else {
+ setVisible(!session.userIsJoiningGroups());
+ }
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/auth/VerifyEmailClientManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/auth/VerifyEmailClientManager.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/auth/VerifyEmailClientManager.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -42,33 +42,35 @@
VerifyEmailClientManager(final Session session, final SiteTokenListeners tokens,
final Provider<UserOptGeneral> optGeneral, final I18nTranslationService i18n,
final Provider<UserServiceAsync> userService) {
- tokens.put(SiteTokens.VERIFY_EMAIL, new HistoryTokenMustBeAuthCallback() {
- @Override
- public void onHistoryToken(final String token) {
- userService.get().verifyPasswordHash(session.getUserHash(), token, new AsyncCallback<Void>() {
+ tokens.put(SiteTokens.VERIFY_EMAIL,
+ new HistoryTokenMustBeAuthCallback(i18n.t("Sign in to verify your email")) {
@Override
- public void onFailure(final Throwable caught) {
- if (caught instanceof EmailHashExpiredException) {
- NotifyUser.error(i18n.t("Email confirmation code expired"), true);
- } else if (caught instanceof EmailHashInvalidException) {
- NotifyUser.error(i18n.t("Invalid confirmation code"), true);
- } else {
- NotifyUser.error(i18n.t("Other error trying to verify your password"), true);
- }
- }
+ public void onHistoryToken(final String token) {
+ userService.get().verifyPasswordHash(session.getUserHash(), token,
+ new AsyncCallback<Void>() {
+ @Override
+ public void onFailure(final Throwable caught) {
+ if (caught instanceof EmailHashExpiredException) {
+ NotifyUser.error(i18n.t("Email confirmation code expired"), true);
+ } else if (caught instanceof EmailHashInvalidException) {
+ NotifyUser.error(i18n.t("Invalid confirmation code"), true);
+ } else {
+ NotifyUser.error(i18n.t("Other error trying to verify your password"), true);
+ }
+ }
- @Override
- public void onSuccess(final Void result) {
- NotifyUser.info("Great. Your email is now verified");
- session.getCurrentUser().setEmailVerified(true);
- // This get NPE
- // if (optGeneral.get().isVisible()) {
- // optGeneral.get().update();
- // }
+ @Override
+ public void onSuccess(final Void result) {
+ NotifyUser.info("Great. Your email is now verified");
+ session.getCurrentUser().setEmailVerified(true);
+ // This get NPE
+ // if (optGeneral.get().isVisible()) {
+ // optGeneral.get().update();
+ // }
+ }
+ });
}
});
- }
- });
}
}
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -31,6 +31,7 @@
import cc.kune.core.client.events.AppStartEvent;
import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.events.UserSignOutEvent;
+import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.SiteTokens;
import cc.kune.core.client.state.StateManager;
@@ -332,8 +333,7 @@
currentSpace = Space.userSpace;
getView().setWindowTitle(i18n.t("Inbox"));
} else {
- signIn.get().setErrorMessage(i18n.t("Sign in or create an account to access to your inbox"),
- NotifyLevel.info);
+ signIn.get().setErrorMessage(i18n.t(CoreMessages.SIGN_IN_TO_ACCESS_INBOX), NotifyLevel.info);
stateManager.gotoHistoryToken(TokenUtils.addRedirect(SiteTokens.SIGN_IN, inboxToken));
getView().setUserBtnDown(false);
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -62,7 +62,7 @@
@SuppressWarnings("serial")
public class GroupSNConfActions extends AbstractSNActionsRegistry {
- public static final String OPTIONS_STYLES = "k-sn-options-menu, k-noborder, k-nobackcolor, k-no-backimage, k-btn-min";
+ public static final String OPTIONS_STYLES = "k-sn-options-menu, k-noborder, k-optionsborder, k-nobackcolor, k-no-backimage, k-btn-min";
@Inject
public GroupSNConfActions(final SessionConstants session, final StateManager stateManager,
Modified: trunk/src/main/java/cc/kune/core/client/state/HistoryTokenAuthNotNeededCallback.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/HistoryTokenAuthNotNeededCallback.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/state/HistoryTokenAuthNotNeededCallback.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -25,13 +25,19 @@
*/
public abstract class HistoryTokenAuthNotNeededCallback implements HistoryTokenCallback {
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see cc.kune.core.client.state.HistoryTokenCallback#authMandatory()
*/
@Override
public boolean authMandatory() {
return false;
+ }
+ @Override
+ public String getInfoMessage() {
+ return "";
}
}
Modified: trunk/src/main/java/cc/kune/core/client/state/HistoryTokenCallback.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/HistoryTokenCallback.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/state/HistoryTokenCallback.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -33,6 +33,14 @@
boolean authMandatory();
/**
+ * Info message used to show some message to the user (like
+ * "sign-in to create a new group");
+ *
+ * @return the string
+ */
+ String getInfoMessage();
+
+ /**
* On history token do some action (Example #inbox, #newgroup)
*
* @param token
Modified: trunk/src/main/java/cc/kune/core/client/state/HistoryTokenMustBeAuthCallback.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/HistoryTokenMustBeAuthCallback.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/state/HistoryTokenMustBeAuthCallback.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -25,6 +25,12 @@
*/
public abstract class HistoryTokenMustBeAuthCallback implements HistoryTokenCallback {
+ private final String infoMessage;
+
+ public HistoryTokenMustBeAuthCallback(final String signInMessage) {
+ this.infoMessage = signInMessage;
+ }
+
/*
* (non-Javadoc)
*
@@ -35,4 +41,9 @@
return true;
}
+ @Override
+ public String getInfoMessage() {
+ return infoMessage;
+ }
+
}
Modified: trunk/src/main/java/cc/kune/core/client/state/StateManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateManager.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/state/StateManager.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -97,7 +97,7 @@
void resumeTokenChange();
- void setHistoryStateToken(StateToken newToken);
+ void setHistoryStateToken(String token);
void setRetrievedState(StateAbstractDTO state);
Modified: trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -28,8 +28,11 @@
import cc.kune.common.client.actions.BeforeActionCollection;
import cc.kune.common.client.actions.BeforeActionListener;
import cc.kune.common.client.log.Log;
+import cc.kune.common.client.notify.NotifyLevel;
import cc.kune.common.client.notify.ProgressHideEvent;
import cc.kune.common.shared.utils.Pair;
+import cc.kune.common.shared.utils.TextUtils;
+import cc.kune.core.client.auth.SignIn;
import cc.kune.core.client.events.AppStartEvent;
import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.events.GoHomeEvent;
@@ -64,6 +67,7 @@
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.event.shared.EventBus;
import com.google.inject.Inject;
+import com.google.inject.Provider;
public class StateManagerDefault implements StateManager, ValueChangeHandler<String> {
public interface OnFinishGetContent {
@@ -74,25 +78,29 @@
private final EventBus eventBus;
private final HistoryWrapper history;
private StateToken previousGroupToken;
+ private String previousHash;
/**
* When a historyChanged is interrupted (for instance because you are editing
* something), the new history token is stored here
*/
private String resumedHistoryToken;
private final Session session;
+ private final Provider<SignIn> signIn;
private final SiteTokenListeners siteTokens;
private final TokenMatcher tokenMatcher;
@Inject
public StateManagerDefault(final ContentCache contentProvider, final Session session,
final HistoryWrapper history, final TokenMatcher tokenMatcher, final EventBus eventBus,
- final SiteTokenListeners siteTokens) {
+ final SiteTokenListeners siteTokens, final Provider<SignIn> signIn) {
this.tokenMatcher = tokenMatcher;
this.eventBus = eventBus;
this.contentCache = contentProvider;
this.session = session;
this.history = history;
+ this.signIn = signIn;
this.previousGroupToken = null;
+ this.previousHash = null;
this.resumedHistoryToken = null;
tokenMatcher.init(GwtWaverefEncoder.INSTANCE);
this.siteTokens = siteTokens;
@@ -177,6 +185,10 @@
Log.debug("login mandatory for " + currentToken);
// Ok, we have to redirect because this token (for instance
// #translate) needs the user authenticated
+ final String infoMessage = tokenListener.getInfoMessage();
+ if (TextUtils.notEmpty(infoMessage)) {
+ signIn.get().setErrorMessage(infoMessage, NotifyLevel.info);
+ }
redirectButSignInBefore(currentToken);
} else {
// The auth is not mandatory, go ahead with the token action
@@ -213,6 +225,7 @@
SpaceConfEvent.fire(eventBus, Space.groupSpace, currentToken);
SpaceConfEvent.fire(eventBus, Space.publicSpace, TokenUtils.preview(currentToken));
if (setBrowserHistory) {
+ previousHash = history.getToken();
history.newItem(currentToken, false);
SpaceSelectEvent.fire(eventBus, Space.groupSpace);
}
@@ -245,18 +258,19 @@
@Override
public void gotoHistoryToken(final String token) {
Log.debug("StateManager: history goto-string-token: " + token);
+ previousHash = history.getToken();
history.newItem(token);
}
@Override
public void gotoHistoryTokenButRedirectToCurrent(final String token) {
gotoHistoryToken(TokenUtils.addRedirect(token, history.getToken()));
-
}
@Override
public void gotoStateToken(final StateToken newToken) {
Log.debug("StateManager: history goto-token: " + newToken + ", previous: " + previousGroupToken);
+ previousHash = history.getToken();
history.newItem(newToken.getEncoded());
}
@@ -413,7 +427,7 @@
// signin(inbox) && cancel
restorePreviousToken(fireChange);
} else {
- history.newItem(previousToken); // FIXMEKK
+ history.newItem(previousHash);
}
} else {
// No redirect then restore previous token
@@ -469,11 +483,11 @@
@Override
public void restorePreviousToken(final boolean fireChange) {
- if (previousGroupToken != null) {
+ if (previousHash != null) {
if (fireChange) {
- gotoStateToken(previousGroupToken);
+ gotoHistoryToken(previousHash);
} else {
- setHistoryStateToken(previousGroupToken);
+ setHistoryStateToken(previousHash);
}
}
}
@@ -489,9 +503,10 @@
}
@Override
- public void setHistoryStateToken(final StateToken newToken) {
+ public void setHistoryStateToken(final String newToken) {
Log.debug("StateManager: history goto-token: " + newToken + ", previous: " + previousGroupToken);
- history.newItem(newToken.getEncoded(), false);
+ previousHash = history.getToken();
+ history.newItem(newToken, false);
}
@Override
@@ -506,6 +521,7 @@
if (history.getToken().equals(token)) {
setState(newState);
}
+ previousHash = history.getToken();
history.newItem(token);
}
Modified: trunk/src/main/java/cc/kune/core/public/ws.css
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.css 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/public/ws.css 2012-03-28 23:23:29 UTC (rev 1805)
@@ -375,6 +375,14 @@
height: 17px !important;
}
+div div.siteBar table.k-sitebar img.k-iconlabel-left {
+ margin: 0px !important;
+}
+
+div div.siteBar table.k-sitebar div.k-iconlabel-left {
+ margin: 0px !important;
+}
+
.k-sitebar-wave-status {
font: 13px 'Ubuntu', arial;
/* font-weight: bold; */
@@ -862,7 +870,6 @@
border: 2px solid #CCCCCC;
cursor: pointer;
margin: 0;
- padding: 3px 0;
text-decoration: none;
background-color: #F2F2F2;
color: #A05A2C;
@@ -875,9 +882,14 @@
width: auto !IMPORTANT;
width: 50px;
min-width: 40px;
- height: 28px;
+ height: 26px;
}
+button.k-button
+{
+ padding: 0 2px;
+}
+
.k-sn-mainpanel .x-btn button:hover,.k-sn-mainpanel button:hover,button.k-button:hover,button.gwt-Button:hover
{
border: 2px orange solid;
@@ -956,6 +968,13 @@
opacity: 0.60 !important;
}
+button.k-optionsborder img.k-iconlabel-left {
+ border: 2px solid #CCCCCC;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+
/* end buttons */
.k-sn-collabslabel {
@@ -1568,3 +1587,5 @@
top: 0 !important;
width: auto !important;
}
+
+
Modified: trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/server/rpc/GroupRPC.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -161,7 +161,7 @@
final GroupDTO groupDTO) throws DefaultException {
final Group group = groupManager.findByShortName(token.getGroup());
final Long id = group.getId();
- if (!id.equals(groupDTO.getId())) {
+ if (!id.equals(groupDTO.getId()) || group.isPersonal()) {
throw new AccessViolationException();
}
final Group updatedGroup = groupManager.update(id, groupDTO);
Modified: trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -34,7 +34,12 @@
}
public SharedFileDownloadUtils(final String prefix) {
- this.prefix = prefix;
+ if (prefix.endsWith("/")) {
+ final int lastSlash = prefix.lastIndexOf("/");
+ this.prefix = prefix.substring(0, lastSlash == -1 ? prefix.length() : lastSlash);
+ } else {
+ this.prefix = prefix;
+ }
}
public String getGroupLogo(final GroupDTO group) {
Modified: trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -103,7 +103,7 @@
writeToBuddie.get();
}
});
- tokenListener.put(SiteTokens.TRANSLATE, new HistoryTokenMustBeAuthCallback() {
+ tokenListener.put(SiteTokens.TRANSLATE, new HistoryTokenMustBeAuthCallback("") {
@Override
public void onHistoryToken(final String token) {
if (session.isLogged() && session.getInitData().isTranslatorEnabled()) {
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/ContentViewerOptionsMenu.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/ContentViewerOptionsMenu.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/ContentViewerOptionsMenu.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -34,7 +34,7 @@
public ContentViewerOptionsMenu(final CoreResources res) {
super();
this.withIcon(res.arrowdownsitebar()).withStyles(
- "k-def-docbtn, k-fr, k-noborder, k-no-backimage, k-nobackcolor").withId(ID);
+ "k-def-docbtn, k-fr, k-noborder, k-optionsborder, k-no-backimage, k-nobackcolor").withId(ID);
}
Modified: trunk/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -72,6 +72,15 @@
this.img = img;
}
+ private void checkState(final StateAbstractDTO state) {
+ if (!state.getGroup().isPersonal() && state.getGroupRights().isAdministrable()) {
+ prefsItem.setVisible(true);
+ } else {
+ getView().hide();
+ prefsItem.setVisible(false);
+ }
+ }
+
private void createActions() {
final AbstractExtendedAction groupPrefsAction = new AbstractExtendedAction() {
@Override
@@ -105,12 +114,7 @@
@Override
public void onStateChanged(final StateChangedEvent event) {
final StateAbstractDTO state = event.getState();
- if (!state.getGroup().isPersonal() && state.getGroupRights().isAdministrable()) {
- prefsItem.setVisible(true);
- } else {
- getView().hide();
- prefsItem.setVisible(false);
- }
+ checkState(state);
}
});
session.onUserSignOut(false, new UserSignOutHandler() {
@@ -126,6 +130,7 @@
public void show(final String token) {
stateManager.gotoHistoryToken(token);
super.show();
+ checkState(session.getCurrentState());
}
@Override
Added: trunk/src/main/java/cc/kune/hspace/client/HSpace.java
===================================================================
--- trunk/src/main/java/cc/kune/hspace/client/HSpace.java (rev 0)
+++ trunk/src/main/java/cc/kune/hspace/client/HSpace.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -0,0 +1,27 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.hspace.client;
+
+import cc.kune.common.client.actions.ui.IsActionExtensible;
+
+public interface HSpace {
+ IsActionExtensible getToolbar();
+}
Modified: trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -23,6 +23,8 @@
import org.waveprotocol.wave.client.common.util.DateUtils;
+import cc.kune.common.client.actions.ui.ActionSimplePanel;
+import cc.kune.common.client.actions.ui.IsActionExtensible;
import cc.kune.common.client.ui.DottedTabPanel;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.state.SiteTokens;
@@ -52,10 +54,12 @@
interface HSpacePanelUiBinder extends UiBinder<Widget, HSpacePanel> {
}
+
public static final String K_HOME_GLOBAL_STATS = "k-home-global-stats";
-
public static final String K_HOME_GROUP_STATS = "k-home-group-stats";
+ public static final String K_HOME_TOOLBAR = "k-home-toolbar";
+
private static HSpacePanelUiBinder uiBinder = GWT.create(HSpacePanelUiBinder.class);
private final SharedFileDownloadUtils downUtils;
@@ -73,6 +77,8 @@
@UiField
public InlineLabel globalStatsTotalUsersTitle;
private final RootPanel groupStatsParent;
+
+ private final ActionSimplePanel homeToolbar;
@UiField
public FlowPanel lastActivityInYourGroup;
@UiField
@@ -89,6 +95,7 @@
public FlowPanel lastPublishedContents;
@UiField
public Label lastPublishedContentsTitle;
+
@UiField
FlowPanel lastPublishedPanel;
@@ -98,14 +105,15 @@
@UiField
public Hyperlink unreadInYourInbox;
-
private final Widget widget;
@Inject
public HSpacePanel(final I18nTranslationService i18n, final GSpaceArmor armor,
- final Provider<GroupContentHomeLink> linkProv, final SharedFileDownloadUtils downUtils) {
+ final Provider<GroupContentHomeLink> linkProv, final SharedFileDownloadUtils downUtils,
+ final ActionSimplePanel homeToolbar) {
this.linkProv = linkProv;
this.downUtils = downUtils;
+ this.homeToolbar = homeToolbar;
widget = uiBinder.createAndBindUi(this);
globalStatsTitle.setText(i18n.t("Stats"));
globalStatsTotalGroupsTitle.setText(i18n.t("Hosted groups:"));
@@ -120,6 +128,10 @@
unreadInYourInbox.setTargetHistoryToken(SiteTokens.WAVE_INBOX);
globalStatsParent = RootPanel.get(K_HOME_GLOBAL_STATS);
groupStatsParent = RootPanel.get(K_HOME_GROUP_STATS);
+ final RootPanel homeToolbarParent = RootPanel.get(K_HOME_TOOLBAR);
+ if (homeToolbarParent != null) {
+ homeToolbarParent.add(homeToolbar);
+ }
if (globalStatsParent != null) {
globalStatsParent.add(globalStats);
}
@@ -150,6 +162,11 @@
}
@Override
+ public IsActionExtensible getToolbar() {
+ return homeToolbar;
+ }
+
+ @Override
public HasText getUnreadInYourInbox() {
return unreadInYourInbox;
}
Modified: trunk/src/main/java/cc/kune/hspace/client/HSpacePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/hspace/client/HSpacePresenter.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/java/cc/kune/hspace/client/HSpacePresenter.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -21,12 +21,20 @@
import java.util.List;
+import cc.kune.common.client.actions.AbstractExtendedAction;
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.actions.ui.IsActionExtensible;
+import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.events.InboxUnreadUpdatedEvent;
import cc.kune.core.client.events.UserSignInOrSignOutEvent;
import cc.kune.core.client.events.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
+import cc.kune.core.client.i18n.I18n;
+import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.SiteTokens;
+import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.dto.ContentSimpleDTO;
import cc.kune.core.shared.dto.GroupDTO;
import cc.kune.core.shared.dto.HomeStatsDTO;
@@ -41,17 +49,21 @@
import com.gwtplatform.mvp.client.proxy.Proxy;
import com.gwtplatform.mvp.client.proxy.RevealRootContentEvent;
-public class HSpacePresenter extends Presenter<HSpacePresenter.HSpaceView, HSpacePresenter.HSpaceProxy> {
+public class HSpacePresenter extends Presenter<HSpacePresenter.HSpaceView, HSpacePresenter.HSpaceProxy>
+ implements HSpace {
@ProxyCodeSplit
public interface HSpaceProxy extends Proxy<HSpacePresenter> {
}
+
public interface HSpaceView extends View {
HasText getGlobalStatsTotalGroupsCount();
HasText getGlobalStatsTotalUsersCount();
+ IsActionExtensible getToolbar();
+
HasText getUnreadInYourInbox();
void setInboxUnreadVisible(boolean visible);
@@ -67,11 +79,18 @@
void setUserGroupsActivityVisible(boolean visible);
}
+ private final Session session;
+ private final StateManager stateManager;
+ private final Provider<ClientStatsServiceAsync> statsService;
+
@Inject
public HSpacePresenter(final Session session, final EventBus eventBus, final HSpaceView view,
final HSpaceProxy proxy, final Provider<ClientStatsServiceAsync> statsService,
- final I18nTranslationService i18n) {
+ final StateManager stateManager, final I18nTranslationService i18n) {
super(eventBus, view, proxy);
+ this.session = session;
+ this.statsService = statsService;
+ this.stateManager = stateManager;
eventBus.addHandler(InboxUnreadUpdatedEvent.getType(),
new InboxUnreadUpdatedEvent.InboxUnreadUpdatedHandler() {
@Override
@@ -87,6 +106,33 @@
}
}
});
+ }
+
+ @Override
+ public IsActionExtensible getToolbar() {
+ return getView().getToolbar();
+ }
+
+ @Override
+ protected void onBind() {
+ super.onBind();
+
+ final ButtonDescriptor signInHomeBtn = new ButtonDescriptor(new AbstractExtendedAction() {
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ stateManager.gotoHistoryTokenButRedirectToCurrent(SiteTokens.SIGN_IN);
+ }
+ });
+ signInHomeBtn.withText(I18n.t(CoreMessages.SIGN_IN_TITLE)).withStyles("k-home-toolbar-btn, k-fl");
+ final ButtonDescriptor newGroupHomeBtn = new ButtonDescriptor(new AbstractExtendedAction() {
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ stateManager.gotoHistoryToken(SiteTokens.NEW_GROUP);
+ }
+ });
+ newGroupHomeBtn.withText(I18n.t(CoreMessages.NEW_GROUP_TITLE)).withStyles("k-home-toolbar-btn, k-fr");
+ getView().getToolbar().add(signInHomeBtn);
+ getView().getToolbar().add(newGroupHomeBtn);
final AsyncCallbackSimple<HomeStatsDTO> callback = new AsyncCallbackSimple<HomeStatsDTO>() {
@Override
public void onSuccess(final HomeStatsDTO result) {
@@ -99,7 +145,6 @@
final boolean logged = session.isLogged();
final boolean myGroupsHasActivity = logged && lastContentsOfMyGroups != null
&& lastContentsOfMyGroups.size() > 0;
- // NotifyUser.info("" + lastContentsOfMyGroups.size(), true);
if (myGroupsHasActivity) {
getView().setLastContentsOfMyGroup(lastContentsOfMyGroups);
}
@@ -111,6 +156,7 @@
@Override
public void onUserSignInOrSignOut(final UserSignInOrSignOutEvent event) {
final boolean logged = event.isLogged();
+ signInHomeBtn.setVisible(!logged);
if (logged) {
statsService.get().getHomeStats(session.getUserHash(), callback);
} else {
Modified: trunk/src/main/webapp/ws.html
===================================================================
--- trunk/src/main/webapp/ws.html 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/main/webapp/ws.html 2012-03-28 23:23:29 UTC (rev 1805)
@@ -131,12 +131,10 @@
min-width: 320px;
}
-#k-home-ini { /* clear: both; */
- font-size: 20px;
+#k-home-ini {
+ font-size: 17px;
color: #69312f;
text-align: justify;
- /* padding: 27px 0; */
- /* line-height: 1.3em; */
}
#k-home-ini a {
@@ -191,7 +189,7 @@
line-height: 45px;
}
-#k-home-body { /* display: table-row;*/
+#k-home-body {
clear: both;
display: block;
}
@@ -211,16 +209,40 @@
}
#k-home-summary-right {
- padding-top: 42px;
- vertical-align: bottom;
+ padding-top: 45px;
+ vertical-align: top;
}
-#k-home-right { /* white-space: nowrap; */
+#k-home-right {
vertical-align: top;
padding-top: 20px;
- /* float: right; */
}
+#k-home-toolbar {
+ width: 100%;
+ padding-top: 10px;
+}
+
+div#k-home-toolbar table {
+ width: 100%;
+}
+
+.k-home-toolbar-btn {
+ font-size: 18px !important;
+ min-height: 40px;
+ height: auto !important;
+ max-width: 150px;
+ min-height: 45px;
+}
+
+div#k-home-toolbar table tbody tr td button.gwt-Button div.k-iconlabel {
+ white-space: normal !important;
+}
+
+div#k-home-toolbar table tbody tr td button.gwt-Button {
+ padding: 0px !important;
+}
+
#k-home-group-stats {
color: #c87137;
}
@@ -234,7 +256,6 @@
font-size: 18px;
font-weight: bold;
padding-top: 10px;
- /* clear: both; */
}
.k-home-normal-text {
@@ -367,11 +388,15 @@
share, collaborate with others and create your web
spaces easily</strong>. <a href="#signin">Join!</a>
</div>
- <!-- div home-ini -->
- <!-- k-home-summary-right -->
+ <!-- div k-home-ini -->
+ <div id="k-home-toolbar">
+ <!-- This id is optional for kune (you can create a different .html but preserve this id if you want the home signin/newgroup home buttons) -->
+ </div>
+ <!-- div k-home-toolbar -->
</div>
- <!-- div home-header -->
+ <!-- k-home-summary-right -->
</div>
+ <!-- div home-intro -->
<div id="k-home-body">
<div id="k-home-left">
<div id="k-home-group-stats" style="display: none;">
@@ -382,7 +407,7 @@
<!-- div k-home-left -->
<div id="k-home-right">
<div id="k-home-global-stats" style="display: none;">
- <!-- This id is optinal for kune (you can create a different .html but preserve this id if you want this stats) -->
+ <!-- This id is optional for kune (you can create a different .html but preserve this id if you want this stats) -->
</div>
</div>
<!-- div k-home-right -->
Modified: trunk/src/test/java/cc/kune/core/client/state/impl/StateManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/client/state/impl/StateManagerDefaultTest.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/test/java/cc/kune/core/client/state/impl/StateManagerDefaultTest.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -108,7 +108,7 @@
}).when(session).onAppStart(anyBoolean(), (AppStartHandler) Mockito.anyObject());
state = Mockito.mock(StateAbstractDTO.class);
stateManager = new StateManagerDefault(contentProvider, session, history, tokenMatcher, eventBus,
- siteTokens);
+ siteTokens, null);
stateChangeHandler = Mockito.mock(StateChangedHandler.class);
groupChangeHandler = Mockito.mock(GroupChangedHandler.class);
toolChangeHandler = Mockito.mock(ToolChangedHandler.class);
Modified: trunk/src/test/java/cc/kune/core/shared/utils/SharedFileDownloadUtilsTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/shared/utils/SharedFileDownloadUtilsTest.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/test/java/cc/kune/core/shared/utils/SharedFileDownloadUtilsTest.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -25,41 +25,60 @@
import org.junit.Before;
import org.junit.Test;
+import cc.kune.core.shared.FileConstants;
+
public class SharedFileDownloadUtilsTest {
private static final String GROUP = "groupname";
- private SharedFileDownloadUtils noPrefixUtils;
- private SharedFileDownloadUtils prefixUtils;
+ private SharedFileDownloadUtils[] prefixUtils;
+ private SharedFileDownloadUtils utilNoPrefix;
+ private SharedFileDownloadUtils utilPrefix;
+ private SharedFileDownloadUtils utilPrefixWithSlash;
@Before
public void before() {
- prefixUtils = new SharedFileDownloadUtils("http://example.org");
- noPrefixUtils = new SharedFileDownloadUtils("");
+ utilPrefix = new SharedFileDownloadUtils("http://example.org");
+ utilPrefixWithSlash = new SharedFileDownloadUtils("http://example.org/");
+ utilNoPrefix = new SharedFileDownloadUtils("");
+ prefixUtils = new SharedFileDownloadUtils[] { utilPrefix, utilPrefixWithSlash };
}
@Test
public void testGetLogoHtml() {
- assertTrue(prefixUtils.getLogoAvatarHtml(GROUP, false, false, 50, 5).contains(
- "'http://example.org/others/defgroup.gif"));
- assertTrue(noPrefixUtils.getLogoAvatarHtml(GROUP, false, true, 50, 5),
- prefixUtils.getLogoAvatarHtml(GROUP, false, true, 50, 5).contains("/others/unknown.jpg"));
+ for (final SharedFileDownloadUtils util : prefixUtils) {
+ assertTrue(util.getLogoAvatarHtml(GROUP, false, false, 50, 5).contains(
+ "'http://example.org/others/defgroup.gif"));
+ assertTrue(
+ util.getLogoAvatarHtml(GROUP, false, false, 50, 5),
+ util.getLogoAvatarHtml(GROUP, false, false, 50, 5).contains(
+ "http://example.org/others/defgroup.gif"));
+ assertTrue(
+ util.getLogoAvatarHtml(GROUP, false, true, 50, 5),
+ util.getLogoAvatarHtml(GROUP, false, true, 50, 5).contains(
+ "http://example.org/others/unknown.jpg"));
+ assertTrue(utilNoPrefix.getLogoAvatarHtml(GROUP, false, true, 50, 5),
+ util.getLogoAvatarHtml(GROUP, false, true, 50, 5).contains("/others/unknown.jpg"));
+ assertTrue(
+ util.getLogoAvatarHtml(GROUP, true, false, 50, 5),
+ util.getLogoAvatarHtml(GROUP, true, false, 50, 5).contains(
+ "'http://example.org/ws/servlets/EntityLogoDownloadManager?token=groupname"));
+ }
+
assertTrue(
- prefixUtils.getLogoAvatarHtml(GROUP, true, false, 50, 5),
- prefixUtils.getLogoAvatarHtml(GROUP, true, false, 50, 5).contains(
- "'http://example.org/ws/servlets/EntityLogoDownloadManager?token=groupname"));
- assertTrue(
- noPrefixUtils.getLogoAvatarHtml(GROUP, true, true, 50, 5),
- noPrefixUtils.getLogoAvatarHtml(GROUP, true, true, 50, 5).contains(
+ utilNoPrefix.getLogoAvatarHtml(GROUP, true, true, 50, 5),
+ utilNoPrefix.getLogoAvatarHtml(GROUP, true, true, 50, 5).contains(
"/ws/servlets/EntityLogoDownloadManager?token=groupname"));
- assertTrue(!noPrefixUtils.getLogoAvatarHtml(GROUP, true, true, 50, 5).contains("http"));
+ assertTrue(!utilNoPrefix.getLogoAvatarHtml(GROUP, true, true, 50, 5).contains("http"));
}
@Test
public void testUserAvatar() {
- assertEquals("http://example.org/ws/servlets/UserLogoDownloadManager?username=groupname",
- prefixUtils.getUserAvatar(GROUP));
- assertEquals("/ws/servlets/UserLogoDownloadManager?username=groupname",
- noPrefixUtils.getUserAvatar(GROUP));
+ assertEquals("http://example.org" + FileConstants.LOGODOWNLOADSERVLET + "?token=groupname",
+ utilPrefix.getUserAvatar(GROUP));
+ assertEquals("http://example.org" + FileConstants.LOGODOWNLOADSERVLET + "?token=groupname",
+ utilPrefixWithSlash.getUserAvatar(GROUP));
+ assertEquals(FileConstants.LOGODOWNLOADSERVLET + "?token=groupname",
+ utilNoPrefix.getUserAvatar(GROUP));
}
}
Modified: trunk/src/test/java/cc/kune/selenium/spaces/SitePageObject.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/spaces/SitePageObject.java 2012-03-28 17:58:28 UTC (rev 1804)
+++ trunk/src/test/java/cc/kune/selenium/spaces/SitePageObject.java 2012-03-28 23:23:29 UTC (rev 1805)
@@ -23,7 +23,7 @@
import org.openqa.selenium.support.FindBy;
import cc.kune.core.client.notify.confirm.UserConfirmPanel;
-import cc.kune.core.client.sitebar.SitebarGroupsLink;
+import cc.kune.core.client.sitebar.SitebarNewGroupLink;
import cc.kune.core.client.sitebar.search.SitebarSearchPanel;
import cc.kune.core.client.sitebar.spaces.SpaceSelectorPresenter.SpaceSelectorView;
import cc.kune.selenium.PageObject;
@@ -39,7 +39,7 @@
public WebElement groupSpaceBtn;
@FindBy(id = SeleniumConstants.GWTDEV + SpaceSelectorView.HOME_SPACE_ID)
public WebElement homeSpaceBtn;
- @FindBy(id = SeleniumConstants.GWTDEV + SitebarGroupsLink.NEW_GROUP_BTN_ID)
+ @FindBy(id = SeleniumConstants.GWTDEV + SitebarNewGroupLink.NEW_GROUP_BTN_ID)
public WebElement newGroupBtn;
@FindBy(id = SeleniumConstants.GWTDEV + SpaceSelectorView.PUBLIC_SPACE_ID)
public WebElement publicSpaceBtn;
1
0