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
September 2008
- 2 participants
- 54 discussions
Author: vjrj
Date: 2008-09-30 03:49:58 +0200 (Tue, 30 Sep 2008)
New Revision: 897
Modified:
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ContentActionRegistry.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbar.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarView.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java
Log:
Complete - task 62: ContextNav tree scroll problem
Actions now has an option to enable/disble it if the user is logged or not
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-09-30 01:49:58 UTC (rev 897)
@@ -3171,30 +3171,36 @@
text-decoration: underline;
}
-.k-entity-context-default div {
+.k-entity-context-default div, .k-entity-context-default .x-tree .x-panel-body {
background: #FFD09D none repeat scroll 0% 50%;
}
-.k-entity-context-green div {
+.k-entity-context-green div, .k-entity-context-green .x-tree .x-panel-body {
background: #CFA none repeat scroll 0% 50%;
}
-.k-entity-context-blue div {
+.k-entity-context-blue div, .k-entity-context-blue .x-tree .x-panel-body {
background: #AACCFF none repeat scroll 0% 50%;
}
-.k-entity-context-grey div {
+.k-entity-context-grey div, .k-entity-context-grey .x-tree .x-panel-body {
background: #B3B3B3 none repeat scroll 0% 50%;
}
-.k-entity-context-purple div {
+.k-entity-context-purple div, .k-entity-context-purple .x-tree .x-panel-body {
background: #DDAFE9 none repeat scroll 0% 50%;
}
-.k-entity-context-red div {
+.k-entity-context-red div, .k-entity-context-purple .x-tree .x-panel-body {
background: #FFAAAA none repeat scroll 0% 50%;
}
+
+.k-entity-context-purple .x-tree .x-panel-body {
+ background: #DDAFE9 none repeat scroll 0% 50%;
+}
+
+
.k-entity-bottom div {
line-height: 2em;
color: #FFF;
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-09-30 01:49:58 UTC (rev 897)
@@ -336,30 +336,36 @@
text-decoration: underline;
}
-.k-entity-context-default div {
+.k-entity-context-default div, .k-entity-context-default .x-tree .x-panel-body {
background: #FFD09D none repeat scroll 0% 50%;
}
-.k-entity-context-green div {
+.k-entity-context-green div, .k-entity-context-green .x-tree .x-panel-body {
background: #CFA none repeat scroll 0% 50%;
}
-.k-entity-context-blue div {
+.k-entity-context-blue div, .k-entity-context-blue .x-tree .x-panel-body {
background: #AACCFF none repeat scroll 0% 50%;
}
-.k-entity-context-grey div {
+.k-entity-context-grey div, .k-entity-context-grey .x-tree .x-panel-body {
background: #B3B3B3 none repeat scroll 0% 50%;
}
-.k-entity-context-purple div {
+.k-entity-context-purple div, .k-entity-context-purple .x-tree .x-panel-body {
background: #DDAFE9 none repeat scroll 0% 50%;
}
-.k-entity-context-red div {
+.k-entity-context-red div, .k-entity-context-red .x-tree .x-panel-body {
background: #FFAAAA none repeat scroll 0% 50%;
}
+
+.k-entity-context-purple .x-tree .x-panel-body {
+ background: #DDAFE9 none repeat scroll 0% 50%;
+}
+
+
.k-entity-bottom div {
line-height: 2em;
color: #FFF;
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -148,6 +148,7 @@
stateManager.gotoToken(token);
}
});
+ go.setMustBeAuthenticated(false);
go.setTextDescription(i18n.t("Open"));
go.setIconUrl("images/nav/go.png");
go.setEnableCondition(new ActionEnableCondition<StateToken>() {
@@ -180,6 +181,7 @@
stateManager.gotoToken(token.getGroup());
}
});
+ goGroupHome.setMustBeAuthenticated(false);
goGroupHome.setIconUrl("images/group-home.png");
goGroupHome.setEnableCondition(new ActionEnableCondition<StateToken>() {
public boolean mustBeEnabled(final StateToken currentStateToken) {
@@ -204,6 +206,7 @@
contextNavigator.selectItem(stateToken);
}
});
+ refreshCtx.setMustBeAuthenticated(false);
refreshCtx.setParentMenuTitle(i18n.t("Folder"));
refreshCtx.setTextDescription(i18n.t("Refresh"));
refreshCtx.setIconUrl("images/nav/refresh.png");
@@ -215,6 +218,7 @@
contextNavigator.selectItem(stateToken);
}
});
+ refreshCnt.setMustBeAuthenticated(false);
refreshCnt.setParentMenuTitle(i18n.t("File"));
refreshCnt.setTextDescription(i18n.t("Refresh"));
refreshCnt.setIconUrl("images/nav/refresh.png");
@@ -237,6 +241,7 @@
downloadContent(token);
}
});
+ download.setMustBeAuthenticated(false);
download.setTextDescription(i18n.t("Download"));
download.setToolTip(i18n.t("Download this file"));
download.setIconUrl("images/nav/download.png");
@@ -247,6 +252,7 @@
downloadContent(token);
}
});
+ downloadCtx.setMustBeAuthenticated(false);
downloadCtx.setTextDescription(i18n.t("Download"));
downloadCtx.setIconUrl("images/nav/download.png");
@@ -322,12 +328,12 @@
contextActionRegistry.addAction(addGallery, TYPE_ROOT);
contextActionRegistry.addAction(addWiki, TYPE_ROOT);
contextActionRegistry.addAction(go, all);
- contextActionRegistry.addAction(uploadFile, TYPE_ROOT, TYPE_FOLDER, TYPE_BLOG);
- contentActionRegistry.addAction(download, TYPE_UPLOADEDFILE);
+ contentActionRegistry.addAction(renameCtn, contents);
contextActionRegistry.addAction(renameCtx, containersNoRoot);
- contentActionRegistry.addAction(renameCtn, contents);
contextActionRegistry.addAction(refreshCtx, containers);
contentActionRegistry.addAction(refreshCnt, contents);
+ contextActionRegistry.addAction(uploadFile, TYPE_ROOT, TYPE_FOLDER, TYPE_BLOG);
+ contentActionRegistry.addAction(download, TYPE_UPLOADEDFILE);
contentActionRegistry.addAction(delContent, contents);
contextActionRegistry.addAction(delContainer, containersNoRoot);
contentActionRegistry.addAction(setAsDefGroupCnt, TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -27,6 +27,7 @@
import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPanel;
import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPresenter;
import org.ourproject.kune.platf.client.app.ToolGroup;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.services.KuneErrorHandler;
@@ -79,10 +80,10 @@
register(ToolGroup.class, new Factory<DocumentContent>(DocumentContent.class) {
public DocumentContent create() {
- final ActionToolbarPanel contentNavigatorToolbar = new ActionToolbarPanel(
+ final ActionToolbarPanel<StateToken> contentNavigatorToolbar = new ActionToolbarPanel<StateToken>(
ActionToolbarPanel.Position.content, $$(ActionManager.class), $(WorkspaceSkeleton.class));
- final ActionToolbar toolbar = new ActionToolbarPresenter(contentNavigatorToolbar,
- $(ContentActionRegistry.class));
+ final ActionToolbar<StateToken> toolbar = new ActionToolbarPresenter<StateToken>(
+ contentNavigatorToolbar, $(ContentActionRegistry.class));
final DocumentContentPresenter presenter = new DocumentContentPresenter($(StateManager.class),
$(I18nUITranslationService.class), $(KuneErrorHandler.class), $(Session.class),
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -61,14 +61,14 @@
private final Provider<ContentServiceAsync> contentServiceProvider;
private final I18nUITranslationService i18n;
private final KuneErrorHandler errorHandler;
- private final ActionToolbar toolbar;
+ private final ActionToolbar<StateToken> toolbar;
private final ActionRegistry<StateToken> actionRegistry;
public DocumentContentPresenter(final StateManager stateManager, final I18nUITranslationService i18n,
final KuneErrorHandler errorHandler, final Session session, final RateIt rateIt,
final Provider<DocumentReader> docReaderProvider, final Provider<TextEditor> textEditorProvider,
final Provider<FolderViewer> folderViewerProvider,
- final Provider<ContentServiceAsync> contentServiceProvider, final ActionToolbar toolbar,
+ final Provider<ContentServiceAsync> contentServiceProvider, final ActionToolbar<StateToken> toolbar,
final ActionRegistry<StateToken> actionRegistry) {
this.stateManager = stateManager;
this.i18n = i18n;
@@ -192,11 +192,11 @@
final String typeId = content.getTypeId();
ActionItemCollection<StateToken> collection;
if (content.hasDocument()) {
- collection = actionRegistry.getCurrentActions(content.getStateToken(), typeId, content.getContentRights(),
- true);
+ collection = actionRegistry.getCurrentActions(content.getStateToken(), typeId, session.isLogged(), content
+ .getContentRights(), true);
} else {
- collection = actionRegistry.getCurrentActions(content.getStateToken(), typeId,
- content.getContainerRights(), true);
+ collection = actionRegistry.getCurrentActions(content.getStateToken(), typeId, session.isLogged(), content
+ .getContainerRights(), true);
}
toolbar.disableMenusAndClearButtons();
toolbar.showActions(collection, true);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -19,23 +19,26 @@
private final Listener<T> onPerformCall;
private final Listener<T> onNotConfirmed;
+ private boolean mustBeAuthenticated;
+
private AccessRolDTO accessRol;
private ActionEnableCondition<T> enableCondition;
+ public ActionDescriptor(final AccessRolDTO accessRolDTO, final Listener<T> onPerformCall) {
+ this.accessRol = accessRolDTO;
+ this.onPerformCall = onPerformCall;
+ this.mustBeConfirmed = false;
+ this.onNotConfirmed = null;
+ this.mustBeAuthenticated = true;
+ }
+
public ActionDescriptor(final AccessRolDTO accessRolDTO, final Listener<T> onPerformCall,
final ActionEnableCondition<T> enableCondition) {
this(accessRolDTO, onPerformCall);
this.enableCondition = enableCondition;
}
- public ActionDescriptor(final AccessRolDTO accessRolDTO, final Listener<T> onPerformCall) {
- accessRol = accessRolDTO;
- this.onPerformCall = onPerformCall;
- mustBeConfirmed = false;
- onNotConfirmed = null;
- }
-
@SuppressWarnings("unchecked")
public void fireOnNotConfirmed(final Object parameter) {
if (onNotConfirmed != null) {
@@ -84,6 +87,10 @@
return mustBeConfirmed;
}
+ public boolean mustBeAuthenticated() {
+ return mustBeAuthenticated;
+ }
+
public void setAccessRol(final AccessRolDTO accessRol) {
this.accessRol = accessRol;
}
@@ -108,6 +115,10 @@
this.iconUrl = iconUrl;
}
+ public void setMustBeAuthenticated(final boolean mustBeAuthenticated) {
+ this.mustBeAuthenticated = mustBeAuthenticated;
+ }
+
public void setMustBeConfirmed(final boolean mustBeConfirmed) {
this.mustBeConfirmed = mustBeConfirmed;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -24,18 +24,20 @@
return enableCondition != null ? enableCondition.mustBeEnabled(T) : true;
}
- public ActionItemCollection<T> getCurrentActions(final T item, final String contentTypeId,
+ public ActionItemCollection<T> getCurrentActions(final T item, final String contentTypeId, final boolean isLogged,
final AccessRightsDTO rights, final boolean toolbarItems) {
final ActionItemCollection<T> collection = new ActionItemCollection<T>();
for (final ActionDescriptor<T> action : getActions(contentTypeId)) {
- if (mustAdd(rights, action)) {
+ if (mustAdd(isLogged, rights, action)) {
if (toolbarItems) {
- if (action instanceof ActionToolbarButtonDescriptor<?> || action instanceof ActionToolbarMenuDescriptor<?>) {
+ if (action instanceof ActionToolbarButtonDescriptor<?>
+ || action instanceof ActionToolbarMenuDescriptor<?>) {
collection.add(new ActionItem<T>(action, item));
}
} else {
- if (action instanceof ActionMenuItemDescriptor<?> || action instanceof ActionToolbarMenuAndItemDescriptor<?>
+ if (action instanceof ActionMenuItemDescriptor<?>
+ || action instanceof ActionToolbarMenuAndItemDescriptor<?>
|| action instanceof ActionToolbarButtonAndItemDescriptor<?>) {
collection.add(new ActionItem<T>(action, item));
}
@@ -58,7 +60,12 @@
return actionColl;
}
- private boolean mustAdd(final AccessRightsDTO rights, final ActionDescriptor<T> action) {
+ private boolean mustAdd(final boolean isLogged, final AccessRightsDTO rights, final ActionDescriptor<T> action) {
+ if (action.mustBeAuthenticated()) {
+ if (!isLogged) {
+ return false;
+ }
+ }
switch (action.getAccessRol()) {
case Administrator:
return rights.isAdministrable();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ContentActionRegistry.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ContentActionRegistry.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ContentActionRegistry.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -3,5 +3,4 @@
import org.ourproject.kune.platf.client.dto.StateToken;
public class ContentActionRegistry extends ActionRegistry<StateToken> {
-
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbar.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbar.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -1,9 +1,8 @@
package org.ourproject.kune.platf.client.actions.toolbar;
import org.ourproject.kune.platf.client.actions.ActionItemCollection;
-import org.ourproject.kune.platf.client.dto.StateToken;
-public interface ActionToolbar {
+public interface ActionToolbar<T> {
void attach();
@@ -13,6 +12,6 @@
void disableMenusAndClearButtons();
- void showActions(ActionItemCollection<StateToken> actionItemCollection, boolean isItemSelected);
+ void showActions(ActionItemCollection<T> actionItemCollection, boolean isItemSelected);
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -3,13 +3,12 @@
import java.util.ArrayList;
import java.util.HashMap;
-import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionToolbarButtonSeparator;
import org.ourproject.kune.platf.client.actions.ActionItem;
import org.ourproject.kune.platf.client.actions.ActionManager;
+import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarButtonSeparator;
import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
-import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.workspace.client.skel.SimpleToolbar;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
@@ -25,7 +24,7 @@
import com.gwtext.client.widgets.menu.MenuItem;
import com.gwtext.client.widgets.menu.event.BaseItemListenerAdapter;
-public class ActionToolbarPanel implements ActionToolbarView {
+public class ActionToolbarPanel<T> implements ActionToolbarView<T> {
public enum Position {
content, context
@@ -53,8 +52,8 @@
menuItems = new HashMap<String, Item>();
}
- public void addButtonAction(final ActionItem<StateToken> actionItem) {
- final ActionToolbarButtonDescriptor<StateToken> action = (ActionToolbarButtonDescriptor<StateToken>) actionItem.getAction();
+ public void addButtonAction(final ActionItem<T> actionItem) {
+ final ActionToolbarButtonDescriptor<T> action = (ActionToolbarButtonDescriptor<T>) actionItem.getAction();
final ActionToolbarPosition pos = action.getActionPosition();
final ToolbarButton button = new ToolbarButton();
final String text = action.getText();
@@ -84,8 +83,8 @@
removableToolbarItems.add(button);
}
- public void addMenuAction(final ActionItem<StateToken> actionItem, final boolean enable) {
- final ActionToolbarMenuDescriptor<StateToken> action = (ActionToolbarMenuDescriptor<StateToken>) actionItem.getAction();
+ public void addMenuAction(final ActionItem<T> actionItem, final boolean enable) {
+ final ActionToolbarMenuDescriptor<T> action = (ActionToolbarMenuDescriptor<T>) actionItem.getAction();
final String menuTitle = action.getParentMenuTitle();
final String menuSubTitle = action.getParentSubMenuTitle();
final ActionToolbarPosition pos = action.getActionPosition();
@@ -171,9 +170,9 @@
}
}
- private Item createToolbarMenu(final ActionToolbarPosition toolBarPos, final String menuTitle, final String menuSubTitle,
- final ActionItem<StateToken> actionItem) {
- final ActionToolbarMenuDescriptor<StateToken> action = (ActionToolbarMenuDescriptor<StateToken>) actionItem.getAction();
+ private Item createToolbarMenu(final ActionToolbarPosition toolBarPos, final String menuTitle,
+ final String menuSubTitle, final ActionItem<T> actionItem) {
+ final ActionToolbarMenuDescriptor<T> action = (ActionToolbarMenuDescriptor<T>) actionItem.getAction();
final Item item = new Item(action.getText(), new BaseItemListenerAdapter() {
@Override
public void onClick(BaseItem item, EventObject e) {
@@ -208,8 +207,8 @@
return item;
}
- private Menu createToolbarMenu(final ActionToolbarPosition barPosition, final String iconUrl, final String menuTitle,
- final String menuKey) {
+ private Menu createToolbarMenu(final ActionToolbarPosition barPosition, final String iconUrl,
+ final String menuTitle, final String menuKey) {
final Menu menu = new Menu();
final ToolbarButton toolbarMenu = new ToolbarButton(menuTitle);
toolbarMenu.setMenu(menu);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -8,15 +8,14 @@
import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarMenuAndItemDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
-import org.ourproject.kune.platf.client.dto.StateToken;
import com.allen_sauer.gwt.log.client.Log;
-public class ActionToolbarPresenter implements ActionToolbar {
- private final ActionToolbarView toolbar;
- private final ActionRegistry<StateToken> actionRegistry;
+public class ActionToolbarPresenter<T> implements ActionToolbar<T> {
+ private final ActionToolbarView<T> toolbar;
+ private final ActionRegistry<T> actionRegistry;
- public ActionToolbarPresenter(final ActionToolbarView toolbar, final ActionRegistry<StateToken> actionRegistry) {
+ public ActionToolbarPresenter(final ActionToolbarView<T> toolbar, final ActionRegistry<T> actionRegistry) {
this.toolbar = toolbar;
this.actionRegistry = actionRegistry;
}
@@ -40,9 +39,9 @@
// toolbar.disableAllMenuItems();
}
- public void showActions(final ActionItemCollection<StateToken> actions, final boolean isItemSelected) {
- for (final ActionItem<StateToken> actionItem : actions) {
- final ActionDescriptor<StateToken> action = actionItem.getAction();
+ public void showActions(final ActionItemCollection<T> actions, final boolean isItemSelected) {
+ for (final ActionItem<T> actionItem : actions) {
+ final ActionDescriptor<T> action = actionItem.getAction();
if (action instanceof ActionToolbarMenuDescriptor || action instanceof ActionToolbarMenuAndItemDescriptor) {
toolbar.addMenuAction(actionItem, isItemSelected
&& actionRegistry.checkEnabling(action, actionItem.getItem()));
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarView.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarView.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -1,13 +1,12 @@
package org.ourproject.kune.platf.client.actions.toolbar;
import org.ourproject.kune.platf.client.actions.ActionItem;
-import org.ourproject.kune.platf.client.dto.StateToken;
-public interface ActionToolbarView {
+public interface ActionToolbarView<T> {
- void addButtonAction(ActionItem<StateToken> action);
+ void addButtonAction(ActionItem<T> action);
- void addMenuAction(ActionItem<StateToken> action, boolean enable);
+ void addMenuAction(ActionItem<T> action, boolean enable);
void attach();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -331,17 +331,17 @@
register(Singleton.class, new Factory<ContextNavigator>(ContextNavigator.class) {
public ContextNavigator create() {
- final ActionToolbarPanel contextNavigatorToolbar = new ActionToolbarPanel(
+ final ActionToolbarPanel<StateToken> contextNavigatorToolbar = new ActionToolbarPanel<StateToken>(
ActionToolbarPanel.Position.context, $$(ActionManager.class), $(WorkspaceSkeleton.class));
- final ActionToolbar toolbar = new ActionToolbarPresenter(contextNavigatorToolbar,
- $(ContextActionRegistry.class));
+ final ActionToolbar<StateToken> toolbar = new ActionToolbarPresenter<StateToken>(
+ contextNavigatorToolbar, $(ContentActionRegistry.class));
final ContextNavigatorPresenter presenter = new ContextNavigatorPresenter($(StateManager.class),
$(Session.class), $$(ContentServiceAsync.class), i18n, $(EntityTitle.class),
- $(ContentIconsRegistry.class), $(DragDropContentRegistry.class),
- $(ContextActionRegistry.class), toolbar);
+ $(ContentIconsRegistry.class), $(DragDropContentRegistry.class), toolbar,
+ $(ContextActionRegistry.class));
final ContextNavigatorPanel panel = new ContextNavigatorPanel(presenter, i18n,
- $(WorkspaceSkeleton.class), $(ActionManager.class));
+ $(WorkspaceSkeleton.class), $(ActionManager.class), $(WsThemePresenter.class));
presenter.init(panel);
return presenter;
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -30,17 +30,21 @@
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.workspace.client.site.Site;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.themes.WsTheme;
+import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
import com.allen_sauer.gwt.log.client.Log;
+import com.calclab.suco.client.listener.Listener2;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DeferredCommand;
-import com.google.gwt.user.client.ui.ScrollPanel;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.ExtElement;
import com.gwtext.client.data.Node;
import com.gwtext.client.dd.DragData;
import com.gwtext.client.dd.DragDrop;
+import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Editor;
+import com.gwtext.client.widgets.event.ContainerListenerAdapter;
import com.gwtext.client.widgets.event.EditorListenerAdapter;
import com.gwtext.client.widgets.form.TextField;
import com.gwtext.client.widgets.menu.BaseItem;
@@ -67,14 +71,20 @@
private final ContextNavigatorPresenter presenter;
public ContextNavigatorPanel(final ContextNavigatorPresenter presenter, final I18nTranslationService i18n,
- final WorkspaceSkeleton ws, final ActionManager actionManager) {
+ final WorkspaceSkeleton ws, final ActionManager actionManager, final WsThemePresenter wsTheme) {
this.presenter = presenter;
this.ws = ws;
this.actionManager = actionManager;
+ wsTheme.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
+ public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
+ setTheme(oldTheme, newTheme);
+ }
+ });
contextMenus = new HashMap<String, Menu>();
fireOnTextChange = true;
isEditable = false;
+
}
public void addItem(final ContextNavigatorItem item) {
@@ -193,6 +203,16 @@
}
}
+ public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
+ if (treePanel != null) {
+ if (oldTheme != null) {
+ final String previousThemeS = oldTheme.toString();
+ treePanel.removeStyleName("k-entity-context-" + previousThemeS);
+ }
+ treePanel.addStyleName("k-entity-context-" + newTheme);
+ }
+ }
+
private void createItemMenu(final String nodeId, final ActionItemCollection<StateToken> actionCollection) {
DeferredCommand.addCommand(new Command() {
public void execute() {
@@ -222,11 +242,16 @@
clear();
}
treePanel = new TreePanel();
+ treePanel.setHeight("100%");
+ treePanel.setAutoScroll(true);
+ treePanel.setRootVisible(false);
+ treePanel.setContainerScroll(true);
treePanel.setAnimate(true);
treePanel.setBorder(false);
- treePanel.setRootVisible(false);
treePanel.setUseArrows(true);
treePanel.setSelectionModel(new MultiSelectionModel());
+ // treePanel.setBufferResize(true;)
+ // treePanel.setId(CTX_NAVIGATOR_TREEPANEL);
final TreeNode root = new TreeNode();
root.setAllowDrag(false);
root.setExpanded(true);
@@ -254,9 +279,7 @@
treePanel.setLines(false);
treePanel.setEnableDD(isEditable);
treePanel.setRootNode(root);
- // treePanel.setAutoScroll(true);
- treePanel.setContainerScroll(true);
- treePanel.setAutoWidth(true);
+ // treePanel.expand();
final TextField field = new TextField();
treeEditor = new TreeEditor(treePanel, field);
@@ -265,18 +288,27 @@
return isEditable;
}
});
+ // test !?
+ treeEditor.setAutosize(false);
- final ScrollPanel panel = new ScrollPanel();
- // final Panel panel = new Panel();
- // panel.setLayout(new FitLayout());
- // panel.setBorder(false);
- // panel.setAutoScroll(true);
- // new ScrollPanel
- panel.setWidth("100%");
- panel.setHeight("100%");
- panel.add(treePanel);
+ treePanel.addListener(new ContainerListenerAdapter() {
+ public void onResize(final BoxComponent component, final int adjWidth, final int adjHeight,
+ final int rawWidth, final int rawHeight) {
+ // Log.debug("tree-------w: " + adjWidth + " h: " + adjHeight);
+ treePanel.doLayout(false);
+ }
+ });
- ws.getEntityWorkspace().setContext(panel);
+ ws.getEntityWorkspace().addContextListener(new ContainerListenerAdapter() {
+ @Override
+ public void onResize(final BoxComponent component, final int adjWidth, final int adjHeight,
+ final int rawWidth, final int rawHeight) {
+ // Log.debug("-------w: " + adjWidth + " h: " + adjHeight);
+ // Log.debug("---r---w: " + rawWidth + " h: " + rawHeight);
+ }
+ });
+
+ ws.getEntityWorkspace().setContext(treePanel);
}
private void doAction(final ActionItem<StateToken> actionItem) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -65,13 +65,13 @@
private final ContentIconsRegistry contentIconsRegistry;
private final DragDropContentRegistry dragDropContentRegistry;
private final ActionRegistry<StateToken> actionRegistry;
- private final ActionToolbar toolbar;
+ private final ActionToolbar<StateToken> toolbar;
public ContextNavigatorPresenter(final StateManager stateManager, final Session session,
final Provider<ContentServiceAsync> contentServiceProvider, final I18nUITranslationService i18n,
final EntityTitle entityTitle, final ContentIconsRegistry contentIconsRegistry,
- final DragDropContentRegistry dragDropContentRegistry, final ActionRegistry<StateToken> actionRegistry,
- final ActionToolbar toolbar) {
+ final DragDropContentRegistry dragDropContentRegistry, final ActionToolbar<StateToken> toolbar,
+ final ActionRegistry<StateToken> actionRegistry) {
this.stateManager = stateManager;
this.session = session;
this.contentServiceProvider = contentServiceProvider;
@@ -205,7 +205,7 @@
final ActionItemCollection<StateToken> contentActions = addItem(state.getTitle(), state.getTypeId(), state
.getMimeType(), state.getStatus(), stateToken, container.getStateToken(), rights, false);
final ActionItemCollection<StateToken> containerActions = actionRegistry.getCurrentActions(container
- .getStateToken(), container.getTypeId(), containerRights, true);
+ .getStateToken(), container.getTypeId(), session.isLogged(), containerRights, true);
actionItems.addAll(containerActions);
actionItems.addAll(contentActions);
@@ -246,14 +246,15 @@
final StateToken parentStateToken, final AccessRightsDTO rights, final boolean isNodeSelected) {
final ActionItemCollection<StateToken> toolbarActions = actionRegistry.getCurrentActions(stateToken,
- contentTypeId, rights, true);
+ contentTypeId, session.isLogged(), rights, true);
final String contentTypeIcon = contentTypeId.equals(TYPE_FOLDER) ? "" : contentIconsRegistry
.getContentTypeIcon(contentTypeId, mimeType);
final ContextNavigatorItem item = new ContextNavigatorItem(genId(stateToken), genId(parentStateToken),
contentTypeIcon, title, status, stateToken, dragDropContentRegistry.isDraggable(contentTypeId, rights
.isAdministrable()), dragDropContentRegistry.isDroppable(contentTypeId, rights
- .isAdministrable()), actionRegistry.getCurrentActions(stateToken, contentTypeId, rights, false));
+ .isAdministrable()), actionRegistry.getCurrentActions(stateToken, contentTypeId, session
+ .isLogged(), rights, false));
view.addItem(item);
return toolbarActions;
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -6,8 +6,10 @@
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.event.ContainerListener;
import com.gwtext.client.widgets.layout.AnchorLayout;
import com.gwtext.client.widgets.layout.AnchorLayoutData;
+import com.gwtext.client.widgets.layout.FitLayout;
public class EntityWorkspace extends DefaultBorderLayout {
private static final String ENTITY_TITLE = "k-entity-title";
@@ -63,12 +65,13 @@
context = new Panel();
content.setCls(ENTITY_CONTENT);
context.setCls(ENTITY_CONTEXT);
+ context.setLayout(new FitLayout());
content.setBorder(false);
context.setBorder(false);
context.setCollapsible(true);
content.setPaddings(7);
content.setAutoScroll(true);
- context.setAutoScroll(true);
+ // context.setAutoScroll(true);
contentTopBar = new Toolbar();
contentBottomBar = new Toolbar();
@@ -80,8 +83,8 @@
contextBottomBar.addStyleName("k-toolbar-top-line");
contentWrap.add(contentTopBar.getPanel(), Position.NORTH, false, DEF_TOOLBAR_HEIGHT);
contextWrap.add(contextTopBar.getPanel(), Position.NORTH, false, DEF_TOOLBAR_HEIGHT);
- contentWrap.add(content, Position.CENTER);
- contextWrap.add(context, Position.CENTER);
+ contentWrap.add(content, Position.CENTER, -1);
+ contextWrap.add(context, Position.CENTER, -1);
contentWrap.add(contentBottomBar.getPanel(), Position.SOUTH, false, DEF_TOOLBAR_HEIGHT);
contextWrap.add(contextBottomBar.getPanel(), Position.SOUTH, false, DEF_TOOLBAR_HEIGHT);
@@ -91,6 +94,14 @@
add(bottomPanel, DefaultBorderLayout.Position.SOUTH, DEF_TOOLBAR_HEIGHT + 2);
}
+ public void addContentListener(final ContainerListener listener) {
+ content.addListener(listener);
+ }
+
+ public void addContextListener(final ContainerListener listener) {
+ context.addListener(listener);
+ }
+
public SimpleToolbar getBottomTitle() {
return bottom;
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java 2008-09-29 11:58:55 UTC (rev 896)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java 2008-09-30 01:49:58 UTC (rev 897)
@@ -5,9 +5,11 @@
import org.junit.Before;
import org.junit.Test;
+import org.mockito.Mockito;
import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
import org.ourproject.kune.platf.client.dto.AccessRolDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.state.Session;
import com.calclab.suco.client.listener.Listener;
@@ -17,10 +19,12 @@
private ActionRegistry<StateToken> registry;
private ActionToolbarMenuAndItemDescriptor<StateToken> adminAction;
private ActionToolbarMenuAndItemDescriptor<StateToken> editorAction;
- private ActionToolbarMenuAndItemDescriptor<StateToken> viewerAction;
+ private ActionMenuItemDescriptor<StateToken> viewerAction;
+ private Session session;
@Test
public void actionsEmptyButNeverNull() {
+ Mockito.stub(session.isLogged()).toReturn(true);
checkActionLists(0, new AccessRightsDTO(true, true, true), true);
checkActionLists(0, new AccessRightsDTO(true, true, true), false);
checkActionLists(0, new AccessRightsDTO(false, true, true), true);
@@ -31,48 +35,61 @@
@Before
public void before() {
+ session = Mockito.mock(Session.class);
registry = new ActionRegistry<StateToken>();
- adminAction = new ActionToolbarMenuAndItemDescriptor<StateToken>(AccessRolDTO.Administrator, ActionToolbarPosition.topbar,
- new Listener<StateToken>() {
+ adminAction = new ActionToolbarMenuAndItemDescriptor<StateToken>(AccessRolDTO.Administrator,
+ ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken parameter) {
}
});
- editorAction = new ActionToolbarMenuAndItemDescriptor<StateToken>(AccessRolDTO.Editor, ActionToolbarPosition.topbar,
- new Listener<StateToken>() {
+ editorAction = new ActionToolbarMenuAndItemDescriptor<StateToken>(AccessRolDTO.Editor,
+ ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken parameter) {
}
});
- viewerAction = new ActionToolbarMenuAndItemDescriptor<StateToken>(AccessRolDTO.Viewer, ActionToolbarPosition.topbar,
- new Listener<StateToken>() {
- public void onEvent(final StateToken parameter) {
- }
- });
+ viewerAction = new ActionMenuItemDescriptor<StateToken>(AccessRolDTO.Viewer, new Listener<StateToken>() {
+ public void onEvent(final StateToken parameter) {
+ }
+ });
+ viewerAction.setMustBeAuthenticated(false);
}
@Test
+ public void mustBeAuthFalse() {
+ Mockito.stub(session.isLogged()).toReturn(false);
+ addDefActions();
+ checkActionLists(0, new AccessRightsDTO(false, true, true), true);
+ checkActionLists(1, new AccessRightsDTO(false, true, true), false);
+ }
+
+ @Test
public void testAddWhenAdmin() {
+ Mockito.stub(session.isLogged()).toReturn(true);
addDefActions();
- checkActionLists(3, new AccessRightsDTO(true, true, true), true);
+ checkActionLists(2, new AccessRightsDTO(true, true, true), true);
checkActionLists(3, new AccessRightsDTO(true, true, true), false);
}
@Test
public void testAddWhenEditor() {
+ Mockito.stub(session.isLogged()).toReturn(true);
addDefActions();
- checkActionLists(2, new AccessRightsDTO(false, true, true), true);
+ checkActionLists(1, new AccessRightsDTO(false, true, true), true);
checkActionLists(2, new AccessRightsDTO(false, true, true), false);
}
@Test
public void testAddWhenViewer() {
+ Mockito.stub(session.isLogged()).toReturn(true);
addDefActions();
- checkActionLists(1, new AccessRightsDTO(false, false, true), true);
+ checkActionLists(0, new AccessRightsDTO(false, false, true), true);
checkActionLists(1, new AccessRightsDTO(false, false, true), false);
}
@Test
public void testEnablingFalse() {
+ Mockito.stub(session.isLogged()).toReturn(true);
adminAction.setEnableCondition(new ActionEnableCondition<StateToken>() {
public boolean mustBeEnabled(final StateToken param) {
return false;
@@ -84,6 +101,7 @@
@Test
public void testEnablingTrue() {
+ Mockito.stub(session.isLogged()).toReturn(true);
adminAction.setEnableCondition(new ActionEnableCondition<StateToken>() {
public boolean mustBeEnabled(final StateToken param) {
return true;
@@ -102,6 +120,6 @@
private void checkActionLists(final int expectedActions, final AccessRightsDTO accessRightsDTO,
final boolean toolbarActions) {
assertEquals(expectedActions, registry.getCurrentActions(new StateToken(), DEF_CONTENT_TYPE_ID,
- accessRightsDTO, toolbarActions).size());
+ session.isLogged(), accessRightsDTO, toolbarActions).size());
}
}
1
0
Author: vjrj
Date: 2008-09-29 13:58:55 +0200 (Mon, 29 Sep 2008)
New Revision: 896
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionMenuItemDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarButtonAndItemDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarButtonDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarButtonSeparator.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarMenuAndItemDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarMenuDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarPosition.java
Removed:
trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditAction.java
trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditInProgressAction.java
trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentPublishAction.java
trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentRejectAction.java
trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSetStatusAction.java
trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSubmitForPublishAction.java
trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTranslationAction.java
trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTrashAction.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonSeparator.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionCollectionSet.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionMenuDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionPosition.java
Modified:
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java
trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java
Log:
Complete - task 75: ActionDescription cleanup
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,9 +1,9 @@
package org.ourproject.kune.chat.client;
import org.ourproject.kune.docs.client.DocumentClientTool;
-import org.ourproject.kune.platf.client.actions.ActionButtonDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionButtonSeparator;
-import org.ourproject.kune.platf.client.actions.ActionPosition;
+import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarButtonSeparator;
+import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
import org.ourproject.kune.platf.client.dto.AccessRolDTO;
@@ -30,8 +30,8 @@
}
private void createActions() {
- final ActionButtonDescriptor<StateToken> chatAbout = new ActionButtonDescriptor<StateToken>(
- AccessRolDTO.Viewer, ActionPosition.topbar, new Listener<StateToken>() {
+ final ActionToolbarButtonDescriptor<StateToken> chatAbout = new ActionToolbarButtonDescriptor<StateToken>(
+ AccessRolDTO.Viewer, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken token) {
chatClientToolProvider.get().getChat().joinRoom(token.toString().replaceAll("\\.", "-"),
session.getCurrentUserInfo().getShortName());
@@ -41,7 +41,7 @@
// chatAbout.setTextDescription(i18n.t("Chat about"));
chatAbout.setIconUrl("images/emite-room.png");
chatAbout.setToolTip("Chat and comment this");
- chatAbout.setLeftSeparator(ActionButtonSeparator.fill);
+ chatAbout.setLeftSeparator(ActionToolbarButtonSeparator.fill);
contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_DOCUMENT);
contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_GALLERY);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -10,11 +10,13 @@
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_WIKI;
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_WIKIPAGE;
-import org.ourproject.kune.platf.client.actions.ActionButtonDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionDescriptor;
import org.ourproject.kune.platf.client.actions.ActionEnableCondition;
-import org.ourproject.kune.platf.client.actions.ActionMenuDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionPosition;
+import org.ourproject.kune.platf.client.actions.ActionMenuItemDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarButtonAndItemDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarMenuAndItemDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
import org.ourproject.kune.platf.client.dto.AccessRolDTO;
@@ -75,16 +77,17 @@
}
private void createActions() {
- final ActionMenuDescriptor<StateToken> addFolder = createFolderAction(TYPE_FOLDER, "images/nav/folder_add.png",
- i18n.t("New folder"), i18n.t("Folder"), i18n.t("New"), i18n.t("New folder"));
- final ActionMenuDescriptor<StateToken> addGallery = createFolderAction(TYPE_GALLERY,
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addFolder = createFolderAction(TYPE_FOLDER,
+ "images/nav/folder_add.png", i18n.t("New folder"), i18n.t("Folder"), i18n.t("New"), i18n
+ .t("New folder"));
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addGallery = createFolderAction(TYPE_GALLERY,
"images/nav/gallery_add.png", i18n.t("New gallery"), i18n.t("Folder"), i18n.t("New"), i18n
.t("New gallery"));
- final ActionMenuDescriptor<StateToken> addWiki = createFolderAction(TYPE_WIKI, "images/nav/wiki_add.png", i18n
- .t("New wiki"), i18n.t("Folder"), i18n.t("New"), i18n.t("wiki"));
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addWiki = createFolderAction(TYPE_WIKI,
+ "images/nav/wiki_add.png", i18n.t("New wiki"), i18n.t("Folder"), i18n.t("New"), i18n.t("wiki"));
- final ActionMenuDescriptor<StateToken> addDoc = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Editor,
- ActionPosition.topbarAndItemMenu, new Listener<StateToken>() {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addDoc = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken token) {
Site.showProgressProcessing();
contentServiceProvider.get().addContent(session.getUserHash(),
@@ -102,8 +105,8 @@
addDoc.setParentSubMenuTitle(i18n.t("New"));
addDoc.setIconUrl("images/nav/page_add.png");
- final ActionMenuDescriptor<StateToken> delContainer = new ActionMenuDescriptor<StateToken>(
- AccessRolDTO.Administrator, ActionPosition.topbarAndItemMenu, new Listener<StateToken>() {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> delContainer = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Administrator, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken token) {
Site.info("Sorry, in development");
}
@@ -114,8 +117,8 @@
delContainer.setConfirmationTitle(i18n.t("Please confirm"));
delContainer.setConfirmationText(i18n.t("You will delete it and also all its contents. Are you sure?"));
- final ActionMenuDescriptor<StateToken> delContent = new ActionMenuDescriptor<StateToken>(
- AccessRolDTO.Administrator, ActionPosition.topbarAndItemMenu, new Listener<StateToken>() {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> delContent = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Administrator, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken token) {
contentServiceProvider.get().delContent(session.getUserHash(), token,
new AsyncCallbackSimple<String>() {
@@ -131,9 +134,16 @@
delContent.setMustBeConfirmed(true);
delContent.setConfirmationTitle(i18n.t("Please confirm"));
delContent.setConfirmationText(i18n.t("Are you sure?"));
+ delContent.setEnableCondition(new ActionEnableCondition<StateToken>() {
+ public boolean mustBeEnabled(final StateToken currentStateToken) {
+ final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent()
+ .getStateToken();
+ return !currentStateToken.equals(defContentToken);
+ }
+ });
- final ActionDescriptor<StateToken> go = new ActionDescriptor<StateToken>(AccessRolDTO.Viewer,
- ActionPosition.itemMenu, new Listener<StateToken>() {
+ final ActionMenuItemDescriptor<StateToken> go = new ActionMenuItemDescriptor<StateToken>(AccessRolDTO.Viewer,
+ new Listener<StateToken>() {
public void onEvent(final StateToken token) {
stateManager.gotoToken(token);
}
@@ -146,8 +156,8 @@
}
});
- final ActionMenuDescriptor<StateToken> renameCtn = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Editor,
- ActionPosition.topbarAndItemMenu, new Listener<StateToken>() {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtn = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
contextNavigator.editItem(stateToken);
}
@@ -155,8 +165,8 @@
renameCtn.setTextDescription(i18n.t("Rename"));
renameCtn.setParentMenuTitle(i18n.t("File"));
- final ActionMenuDescriptor<StateToken> renameCtx = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Editor,
- ActionPosition.topbarAndItemMenu, new Listener<StateToken>() {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtx = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
contextNavigator.editItem(stateToken);
}
@@ -164,8 +174,8 @@
renameCtx.setTextDescription(i18n.t("Rename"));
renameCtx.setParentMenuTitle(i18n.t("Folder"));
- final ActionButtonDescriptor<StateToken> goGroupHome = new ActionButtonDescriptor<StateToken>(
- AccessRolDTO.Viewer, ActionPosition.topbar, new Listener<StateToken>() {
+ final ActionToolbarButtonDescriptor<StateToken> goGroupHome = new ActionToolbarButtonDescriptor<StateToken>(
+ AccessRolDTO.Viewer, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken token) {
stateManager.gotoToken(token.getGroup());
}
@@ -179,32 +189,16 @@
}
});
- final ActionMenuDescriptor<StateToken> setAsDefGroupContent = new ActionMenuDescriptor<StateToken>(
- AccessRolDTO.Administrator, ActionPosition.itemMenu, new Listener<StateToken>() {
- public void onEvent(final StateToken token) {
- Site.showProgressProcessing();
- contentServiceProvider.get().setAsDefaultContent(session.getUserHash(), token,
- new AsyncCallbackSimple<ContentSimpleDTO>() {
- public void onSuccess(final ContentSimpleDTO defContent) {
- session.getCurrentState().getGroup().setDefaultContent(defContent);
- Site.hideProgress();
- Site.info(i18n.t("Document selected as the group homepage"));
- }
- });
- }
- });
- setAsDefGroupContent.setTextDescription(i18n.t("Set this as the group default page"));
- setAsDefGroupContent.setIconUrl("images/group-home.png");
- setAsDefGroupContent.setEnableCondition(new ActionEnableCondition<StateToken>() {
- public boolean mustBeEnabled(final StateToken currentStateToken) {
- final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent()
- .getStateToken();
- return !contextNavigator.isSelected(defContentToken);
- }
- });
+ final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCnt;
+ setAsDefGroupCnt = createSetAsDefContent();
+ setAsDefGroupCnt.setParentMenuTitle(i18n.t("File"));
- final ActionMenuDescriptor<StateToken> refreshCtx = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Viewer,
- ActionPosition.topbar, new Listener<StateToken>() {
+ final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCxt;
+ setAsDefGroupCxt = createSetAsDefContent();
+ setAsDefGroupCxt.setParentMenuTitle(i18n.t("Folder"));
+
+ final ActionToolbarMenuDescriptor<StateToken> refreshCtx = new ActionToolbarMenuDescriptor<StateToken>(
+ AccessRolDTO.Viewer, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
stateManager.reload();
contextNavigator.selectItem(stateToken);
@@ -214,8 +208,8 @@
refreshCtx.setTextDescription(i18n.t("Refresh"));
refreshCtx.setIconUrl("images/nav/refresh.png");
- final ActionMenuDescriptor<StateToken> refreshCnt = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Viewer,
- ActionPosition.topbar, new Listener<StateToken>() {
+ final ActionToolbarMenuDescriptor<StateToken> refreshCnt = new ActionToolbarMenuDescriptor<StateToken>(
+ AccessRolDTO.Viewer, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
stateManager.reload();
contextNavigator.selectItem(stateToken);
@@ -225,20 +219,20 @@
refreshCnt.setTextDescription(i18n.t("Refresh"));
refreshCnt.setIconUrl("images/nav/refresh.png");
- final ActionDescriptor<StateToken> uploadFile = createUploadAction(i18n.t("Upload file"),
+ final ActionToolbarButtonAndItemDescriptor<StateToken> uploadFile = createUploadAction(i18n.t("Upload file"),
"images/nav/upload.png", i18n.t("Upload some files (images, PDFs, ...)"), null);
session.onInitDataReceived(new Listener<InitDataDTO>() {
public void onEvent(final InitDataDTO parameter) {
- final ActionDescriptor<StateToken> uploadMedia = createUploadAction(i18n.t("Upload media"),
- "images/nav/upload.png", i18n.t("Upload some media (images, videos)"), session
- .getGalleryPermittedExtensions());
+ final ActionToolbarButtonAndItemDescriptor<StateToken> uploadMedia = createUploadAction(i18n
+ .t("Upload media"), "images/nav/upload.png", i18n.t("Upload some media (images, videos)"),
+ session.getGalleryPermittedExtensions());
contextActionRegistry.addAction(uploadMedia, TYPE_GALLERY);
}
});
- final ActionButtonDescriptor<StateToken> download = new ActionButtonDescriptor<StateToken>(AccessRolDTO.Viewer,
- ActionPosition.topbar, new Listener<StateToken>() {
+ final ActionToolbarButtonDescriptor<StateToken> download = new ActionToolbarButtonDescriptor<StateToken>(
+ AccessRolDTO.Viewer, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken token) {
downloadContent(token);
}
@@ -247,8 +241,8 @@
download.setToolTip(i18n.t("Download this file"));
download.setIconUrl("images/nav/download.png");
- final ActionDescriptor<StateToken> downloadCtx = new ActionDescriptor<StateToken>(AccessRolDTO.Viewer,
- ActionPosition.itemMenu, new Listener<StateToken>() {
+ final ActionMenuItemDescriptor<StateToken> downloadCtx = new ActionMenuItemDescriptor<StateToken>(
+ AccessRolDTO.Viewer, new Listener<StateToken>() {
public void onEvent(final StateToken token) {
downloadContent(token);
}
@@ -256,8 +250,8 @@
downloadCtx.setTextDescription(i18n.t("Download"));
downloadCtx.setIconUrl("images/nav/download.png");
- final ActionMenuDescriptor<StateToken> setGroupLogo = new ActionMenuDescriptor<StateToken>(
- AccessRolDTO.Administrator, ActionPosition.topbarAndItemMenu, new Listener<StateToken>() {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> setGroupLogo = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Administrator, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken token) {
groupServiceProvider.get().setGroupLogo(session.getUserHash(), token,
new AsyncCallbackSimple<GroupDTO>() {
@@ -282,19 +276,19 @@
}
});
- final ActionMenuDescriptor<StateToken> setPublishStatus = createSetStatusAction(AccessRolDTO.Administrator,
- i18n.t("Published online"), ContentStatusDTO.publishedOnline);
- final ActionMenuDescriptor<StateToken> setEditionInProgressStatus = createSetStatusAction(
+ final ActionToolbarMenuDescriptor<StateToken> setPublishStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("Published online"), ContentStatusDTO.publishedOnline);
+ final ActionToolbarMenuDescriptor<StateToken> setEditionInProgressStatus = createSetStatusAction(
AccessRolDTO.Administrator, i18n.t("Editing in progress"), ContentStatusDTO.editingInProgress);
- final ActionMenuDescriptor<StateToken> setRejectStatus = createSetStatusAction(AccessRolDTO.Administrator, i18n
- .t("Rejected"), ContentStatusDTO.rejected);
- final ActionMenuDescriptor<StateToken> setSubmittedForPublishStatus = createSetStatusAction(
+ final ActionToolbarMenuDescriptor<StateToken> setRejectStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("Rejected"), ContentStatusDTO.rejected);
+ final ActionToolbarMenuDescriptor<StateToken> setSubmittedForPublishStatus = createSetStatusAction(
AccessRolDTO.Administrator, i18n.t("Submitted for publish"), ContentStatusDTO.publishedOnline);
- final ActionMenuDescriptor<StateToken> setInTheDustBinStatus = createSetStatusAction(
+ final ActionToolbarMenuDescriptor<StateToken> setInTheDustBinStatus = createSetStatusAction(
AccessRolDTO.Administrator, i18n.t("In the dustbin"), ContentStatusDTO.inTheDustbin);
- final ActionButtonDescriptor<StateToken> translateContent = new ActionButtonDescriptor<StateToken>(
- AccessRolDTO.Editor, ActionPosition.topbar, new Listener<StateToken>() {
+ final ActionToolbarButtonDescriptor<StateToken> translateContent = new ActionToolbarButtonDescriptor<StateToken>(
+ AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
Site.important(i18n.t("Sorry, this functionality is currently in development"));
}
@@ -303,8 +297,8 @@
translateContent.setToolTip(i18n.t("Translate this document to other languages"));
translateContent.setIconUrl("images/language.gif");
- final ActionButtonDescriptor<StateToken> editContent = new ActionButtonDescriptor<StateToken>(
- AccessRolDTO.Editor, ActionPosition.topbar, new Listener<StateToken>() {
+ final ActionToolbarButtonDescriptor<StateToken> editContent = new ActionToolbarButtonDescriptor<StateToken>(
+ AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
}
});
@@ -336,7 +330,8 @@
contentActionRegistry.addAction(refreshCnt, contents);
contentActionRegistry.addAction(delContent, contents);
contextActionRegistry.addAction(delContainer, containersNoRoot);
- contextActionRegistry.addAction(setAsDefGroupContent, TYPE_BLOG, TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
+ contentActionRegistry.addAction(setAsDefGroupCnt, TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
+ contentActionRegistry.addAction(setAsDefGroupCxt, TYPE_BLOG);
contextActionRegistry.addAction(goGroupHome, containers);
contentActionRegistry.addAction(setGroupLogo, TYPE_UPLOADEDFILE);
contextActionRegistry.addAction(downloadCtx, TYPE_UPLOADEDFILE);
@@ -345,12 +340,12 @@
TYPE_WIKI, TYPE_WIKIPAGE);
}
- private ActionMenuDescriptor<StateToken> createFolderAction(final String contentTypeId, final String iconUrl,
- final String textDescription, final String parentMenuTitle, final String parentMenuSubtitle,
- final String defaultName) {
- final ActionMenuDescriptor<StateToken> addFolder;
- addFolder = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Editor, ActionPosition.topbarAndItemMenu,
- new Listener<StateToken>() {
+ private ActionToolbarMenuAndItemDescriptor<StateToken> createFolderAction(final String contentTypeId,
+ final String iconUrl, final String textDescription, final String parentMenuTitle,
+ final String parentMenuSubtitle, final String defaultName) {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addFolder;
+ addFolder = new ActionToolbarMenuAndItemDescriptor<StateToken>(AccessRolDTO.Editor,
+ ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
Site.showProgressProcessing();
contentServiceProvider.get().addFolder(session.getUserHash(), stateToken, defaultName,
@@ -369,10 +364,38 @@
return addFolder;
}
- private ActionMenuDescriptor<StateToken> createSetStatusAction(final AccessRolDTO rol,
+ private ActionToolbarMenuDescriptor<StateToken> createSetAsDefContent() {
+ final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupContent;
+ setAsDefGroupContent = new ActionToolbarMenuDescriptor<StateToken>(AccessRolDTO.Administrator,
+ ActionToolbarPosition.topbar, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ Site.showProgressProcessing();
+ contentServiceProvider.get().setAsDefaultContent(session.getUserHash(), token,
+ new AsyncCallbackSimple<ContentSimpleDTO>() {
+ public void onSuccess(final ContentSimpleDTO defContent) {
+ session.getCurrentState().getGroup().setDefaultContent(defContent);
+ Site.hideProgress();
+ Site.info(i18n.t("Document selected as the group homepage"));
+ }
+ });
+ }
+ });
+ setAsDefGroupContent.setTextDescription(i18n.t("Set this as the group default page"));
+ setAsDefGroupContent.setIconUrl("images/group-home.png");
+ setAsDefGroupContent.setEnableCondition(new ActionEnableCondition<StateToken>() {
+ public boolean mustBeEnabled(final StateToken currentStateToken) {
+ final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent()
+ .getStateToken();
+ return !currentStateToken.equals(defContentToken);
+ }
+ });
+ return setAsDefGroupContent;
+ }
+
+ private ActionToolbarMenuAndItemDescriptor<StateToken> createSetStatusAction(final AccessRolDTO rol,
final String textDescription, final ContentStatusDTO status) {
- final ActionMenuDescriptor<StateToken> action = new ActionMenuDescriptor<StateToken>(rol,
- ActionPosition.topbarAndItemMenu, new Listener<StateToken>() {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> action = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ rol, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
final AsyncCallbackSimple<Object> callback = new AsyncCallbackSimple<Object>() {
public void onSuccess(final Object result) {
@@ -393,15 +416,17 @@
return action;
}
- private ActionButtonDescriptor<StateToken> createUploadAction(final String textDescription, final String iconUrl,
- final String toolTip, final String permitedExtensions) {
- final ActionButtonDescriptor<StateToken> uploadFile;
- uploadFile = new ActionButtonDescriptor<StateToken>(AccessRolDTO.Editor, ActionPosition.bootombarAndItemMenu,
- new Listener<StateToken>() {
+ private ActionToolbarButtonAndItemDescriptor<StateToken> createUploadAction(final String textDescription,
+ final String iconUrl, final String toolTip, final String permitedExtensions) {
+ final ActionToolbarButtonAndItemDescriptor<StateToken> uploadFile;
+ uploadFile = new ActionToolbarButtonAndItemDescriptor<StateToken>(AccessRolDTO.Editor,
+ ActionToolbarPosition.bottombar, new Listener<StateToken>() {
public void onEvent(final StateToken token) {
if (permitedExtensions != null) {
+ // FIXME: can't be reset ...
// fileUploaderProvider.get().setPermittedExtensions(permitedExtensions);
} else {
+ // FIXME: can't be reset ...
// fileUploaderProvider.get().resetPermittedExtensions();
}
fileUploaderProvider.get().show();
Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditAction.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditAction.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,21 +0,0 @@
-package org.ourproject.kune.docs.client.actions;
-
-import org.ourproject.kune.platf.client.actions.ActionButtonDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionPosition;
-import org.ourproject.kune.platf.client.dto.AccessRolDTO;
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-
-import com.calclab.suco.client.listener.Listener;
-
-public class ContentEditAction extends ActionButtonDescriptor<StateToken> {
-
- public ContentEditAction(final I18nUITranslationService i18n) {
- super(AccessRolDTO.Editor, ActionPosition.topbar, new Listener<StateToken>() {
- public void onEvent(final StateToken stateToken) {
- }
- });
- this.setTextDescription(i18n.tWithNT("Edit", "used in button"));
- // this.setIconUrl("images/");
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditInProgressAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditInProgressAction.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentEditInProgressAction.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,20 +0,0 @@
-/**
- *
- */
-package org.ourproject.kune.docs.client.actions;
-
-import org.ourproject.kune.platf.client.dto.AccessRolDTO;
-import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
-import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-
-import com.calclab.suco.client.ioc.Provider;
-
-public class ContentEditInProgressAction extends ContentSetStatusAction {
- public ContentEditInProgressAction(final Session session, final Provider<ContentServiceAsync> provider,
- final I18nUITranslationService i18n) {
- super(session, provider, i18n, AccessRolDTO.Administrator, i18n.t("Editing in progress"),
- ContentStatusDTO.editingInProgress);
- }
-}
\ No newline at end of file
Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentPublishAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentPublishAction.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentPublishAction.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,20 +0,0 @@
-/**
- *
- */
-package org.ourproject.kune.docs.client.actions;
-
-import org.ourproject.kune.platf.client.dto.AccessRolDTO;
-import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
-import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-
-import com.calclab.suco.client.ioc.Provider;
-
-public class ContentPublishAction extends ContentSetStatusAction {
- public ContentPublishAction(final Session session, final Provider<ContentServiceAsync> provider,
- final I18nUITranslationService i18n) {
- super(session, provider, i18n, AccessRolDTO.Administrator, i18n.t("Published online"),
- ContentStatusDTO.publishedOnline);
- }
-}
\ No newline at end of file
Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentRejectAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentRejectAction.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentRejectAction.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,19 +0,0 @@
-/**
- *
- */
-package org.ourproject.kune.docs.client.actions;
-
-import org.ourproject.kune.platf.client.dto.AccessRolDTO;
-import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
-import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-
-import com.calclab.suco.client.ioc.Provider;
-
-public class ContentRejectAction extends ContentSetStatusAction {
- public ContentRejectAction(final Session session, final Provider<ContentServiceAsync> provider,
- final I18nUITranslationService i18n) {
- super(session, provider, i18n, AccessRolDTO.Administrator, i18n.t("Rejected"), ContentStatusDTO.rejected);
- }
-}
\ No newline at end of file
Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSetStatusAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSetStatusAction.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSetStatusAction.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,39 +0,0 @@
-package org.ourproject.kune.docs.client.actions;
-
-import org.ourproject.kune.platf.client.actions.ActionMenuDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionPosition;
-import org.ourproject.kune.platf.client.dto.AccessRolDTO;
-import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-
-import com.calclab.suco.client.ioc.Provider;
-import com.calclab.suco.client.listener.Listener;
-
-public abstract class ContentSetStatusAction extends ActionMenuDescriptor<StateToken> {
-
- public ContentSetStatusAction(final Session session, final Provider<ContentServiceAsync> contentServiceProvider,
- final I18nUITranslationService i18n, final AccessRolDTO rol, final String textDescription,
- final ContentStatusDTO status) {
- super(rol, ActionPosition.topbarAndItemMenu, new Listener<StateToken>() {
- public void onEvent(final StateToken stateToken) {
- final AsyncCallbackSimple<Object> callback = new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- session.getCurrentState().setStatus(status);
- }
- };
- if (status.equals(ContentStatusDTO.publishedOnline) || status.equals(ContentStatusDTO.rejected)) {
- contentServiceProvider.get().setStatusAsAdmin(session.getUserHash(), stateToken, status, callback);
- } else {
- contentServiceProvider.get().setStatus(session.getUserHash(), stateToken, status, callback);
- }
- }
- });
- this.setTextDescription(textDescription);
- this.setParentMenuTitle(i18n.t("File"));
- this.setParentSubMenuTitle(i18n.t("Change the status"));
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSubmitForPublishAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSubmitForPublishAction.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentSubmitForPublishAction.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,20 +0,0 @@
-/**
- *
- */
-package org.ourproject.kune.docs.client.actions;
-
-import org.ourproject.kune.platf.client.dto.AccessRolDTO;
-import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
-import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-
-import com.calclab.suco.client.ioc.Provider;
-
-public class ContentSubmitForPublishAction extends ContentSetStatusAction {
- public ContentSubmitForPublishAction(final Session session, final Provider<ContentServiceAsync> provider,
- final I18nUITranslationService i18n) {
- super(session, provider, i18n, AccessRolDTO.Administrator, i18n.t("Submitted for publish"),
- ContentStatusDTO.publishedOnline);
- }
-}
\ No newline at end of file
Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTranslationAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTranslationAction.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTranslationAction.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,24 +0,0 @@
-package org.ourproject.kune.docs.client.actions;
-
-import org.ourproject.kune.platf.client.actions.ActionButtonDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionPosition;
-import org.ourproject.kune.platf.client.dto.AccessRolDTO;
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.site.Site;
-
-import com.calclab.suco.client.listener.Listener;
-
-public class ContentTranslationAction extends ActionButtonDescriptor<StateToken> {
-
- public ContentTranslationAction(final I18nUITranslationService i18n) {
- super(AccessRolDTO.Editor, ActionPosition.topbar, new Listener<StateToken>() {
- public void onEvent(final StateToken stateToken) {
- Site.important(i18n.t("Sorry, this functionality is currently in development"));
- }
- });
- this.setTextDescription(i18n.tWithNT("Translate", "used in button"));
- this.setToolTip(i18n.t("Translate this document to other languages"));
- // this.setIconUrl("images/");
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTrashAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTrashAction.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/ContentTrashAction.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,20 +0,0 @@
-/**
- *
- */
-package org.ourproject.kune.docs.client.actions;
-
-import org.ourproject.kune.platf.client.dto.AccessRolDTO;
-import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
-import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-
-import com.calclab.suco.client.ioc.Provider;
-
-public class ContentTrashAction extends ContentSetStatusAction {
- public ContentTrashAction(final Session session, final Provider<ContentServiceAsync> provider,
- final I18nUITranslationService i18n) {
- super(session, provider, i18n, AccessRolDTO.Administrator, i18n.t("In the dustbin"),
- ContentStatusDTO.inTheDustbin);
- }
-}
\ No newline at end of file
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonDescriptor.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonDescriptor.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,40 +0,0 @@
-package org.ourproject.kune.platf.client.actions;
-
-import org.ourproject.kune.platf.client.dto.AccessRolDTO;
-
-import com.calclab.suco.client.listener.Listener;
-
-public class ActionButtonDescriptor<T> extends ActionDescriptor<T> {
-
- private ActionButtonSeparator leftSeparator;
- private ActionButtonSeparator rightSeparator;
-
- public ActionButtonDescriptor(final AccessRolDTO accessRolDTO, final ActionPosition actionPosition,
- final Listener<T> onPerformCall) {
- super(accessRolDTO, actionPosition, onPerformCall);
- }
-
- public ActionButtonSeparator getLeftSeparator() {
- return leftSeparator;
- }
-
- public ActionButtonSeparator getRightSeparator() {
- return rightSeparator;
- }
-
- public boolean hasLeftSeparator() {
- return leftSeparator != null;
- }
-
- public boolean hasRightSeparator() {
- return rightSeparator != null;
- }
-
- public void setLeftSeparator(final ActionButtonSeparator leftSeparator) {
- this.leftSeparator = leftSeparator;
- }
-
- public void setRightSeparator(final ActionButtonSeparator rightSeparator) {
- this.rightSeparator = rightSeparator;
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonSeparator.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonSeparator.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonSeparator.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,5 +0,0 @@
-package org.ourproject.kune.platf.client.actions;
-
-public enum ActionButtonSeparator {
- spacer, separator, fill
-}
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionCollectionSet.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionCollectionSet.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionCollectionSet.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,21 +0,0 @@
-package org.ourproject.kune.platf.client.actions;
-
-
-public class ActionCollectionSet<T> {
-
- private final ActionCollection<T> toolbarActions;
- private final ActionCollection<T> itemActions;
-
- public ActionCollectionSet() {
- toolbarActions = new ActionCollection<T>();
- itemActions = new ActionCollection<T>();
- }
-
- public ActionCollection<T> getItemActions() {
- return itemActions;
- }
-
- public ActionCollection<T> getToolbarActions() {
- return toolbarActions;
- }
-}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionDescriptor.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -5,7 +5,7 @@
import com.calclab.suco.client.listener.Listener;
-public class ActionDescriptor<T> {
+public abstract class ActionDescriptor<T> {
private String iconUrl;
private ImageDescriptor iconDescriptor;
@@ -21,25 +21,21 @@
private AccessRolDTO accessRol;
- private ActionPosition actionPosition;
-
private ActionEnableCondition<T> enableCondition;
- public ActionDescriptor(final AccessRolDTO accessRolDTO, final ActionPosition actionPosition,
- final Listener<T> onPerformCall) {
+ public ActionDescriptor(final AccessRolDTO accessRolDTO, final Listener<T> onPerformCall,
+ final ActionEnableCondition<T> enableCondition) {
+ this(accessRolDTO, onPerformCall);
+ this.enableCondition = enableCondition;
+ }
+
+ public ActionDescriptor(final AccessRolDTO accessRolDTO, final Listener<T> onPerformCall) {
accessRol = accessRolDTO;
- this.actionPosition = actionPosition;
this.onPerformCall = onPerformCall;
mustBeConfirmed = false;
onNotConfirmed = null;
}
- public ActionDescriptor(final AccessRolDTO accessRolDTO, final ActionPosition actionPosition,
- final Listener<T> onPerformCall, final ActionEnableCondition<T> enableCondition) {
- this(accessRolDTO, actionPosition, onPerformCall);
- this.enableCondition = enableCondition;
- }
-
@SuppressWarnings("unchecked")
public void fireOnNotConfirmed(final Object parameter) {
if (onNotConfirmed != null) {
@@ -56,10 +52,6 @@
return accessRol;
}
- public ActionPosition getActionPosition() {
- return actionPosition;
- }
-
public String getConfirmationText() {
return confirmationText;
}
@@ -96,10 +88,6 @@
this.accessRol = accessRol;
}
- public void setActionPosition(final ActionPosition actionPosition) {
- this.actionPosition = actionPosition;
- }
-
public void setConfirmationText(final String confirmationText) {
this.confirmationText = confirmationText;
}
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionMenuDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionMenuDescriptor.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionMenuDescriptor.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,45 +0,0 @@
-package org.ourproject.kune.platf.client.actions;
-
-import org.ourproject.kune.platf.client.dto.AccessRolDTO;
-
-import com.allen_sauer.gwt.log.client.Log;
-import com.calclab.suco.client.listener.Listener;
-
-public class ActionMenuDescriptor<T> extends ActionDescriptor<T> {
-
- private String parentMenuTitle;
- private String parentMenuIconUrl;
- private String parentSubMenuTitle;
-
- public ActionMenuDescriptor(final AccessRolDTO accessRolDTO, final ActionPosition actionPosition,
- final Listener<T> onPerformCall) {
- super(accessRolDTO, actionPosition, onPerformCall);
- }
-
- public String getParentMenuIconUrl() {
- return parentMenuIconUrl;
- }
-
- public String getParentMenuTitle() {
- return parentMenuTitle;
- }
-
- public String getParentSubMenuTitle() {
- return parentSubMenuTitle;
- }
-
- public void setParentMenuIconUrl(final String parentMenuIconUrl) {
- this.parentMenuIconUrl = parentMenuIconUrl;
- }
-
- public void setParentMenuTitle(final String parentMenuTitle) {
- this.parentMenuTitle = parentMenuTitle;
- }
-
- public void setParentSubMenuTitle(final String parentSubMenuTitle) {
- if (parentMenuTitle == null) {
- Log.warn("Please set parentMenuTitle before");
- }
- this.parentSubMenuTitle = parentSubMenuTitle;
- }
-}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionMenuItemDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionMenuItemDescriptor.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionMenuItemDescriptor.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -0,0 +1,18 @@
+package org.ourproject.kune.platf.client.actions;
+
+import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+
+import com.calclab.suco.client.listener.Listener;
+
+public class ActionMenuItemDescriptor<T> extends ActionDescriptor<T> {
+
+ public ActionMenuItemDescriptor(final AccessRolDTO accessRolDTO, final Listener<T> onPerformCall) {
+ super(accessRolDTO, onPerformCall);
+ }
+
+ public ActionMenuItemDescriptor(final AccessRolDTO accessRolDTO, final Listener<T> onPerformCall,
+ final ActionEnableCondition<T> enableCondition) {
+ super(accessRolDTO, onPerformCall, enableCondition);
+ }
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionPosition.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionPosition.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionPosition.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,5 +0,0 @@
-package org.ourproject.kune.platf.client.actions;
-
-public enum ActionPosition {
- topbar, bottombar, itemMenu, topbarAndItemMenu, bootombarAndItemMenu
-}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -31,21 +31,13 @@
for (final ActionDescriptor<T> action : getActions(contentTypeId)) {
if (mustAdd(rights, action)) {
if (toolbarItems) {
- switch (action.getActionPosition()) {
- case topbarAndItemMenu:
- case topbar:
- case bootombarAndItemMenu:
- case bottombar:
+ if (action instanceof ActionToolbarButtonDescriptor<?> || action instanceof ActionToolbarMenuDescriptor<?>) {
collection.add(new ActionItem<T>(action, item));
- break;
}
} else {
- switch (action.getActionPosition()) {
- case itemMenu:
- case topbarAndItemMenu:
- case bootombarAndItemMenu:
+ if (action instanceof ActionMenuItemDescriptor<?> || action instanceof ActionToolbarMenuAndItemDescriptor<?>
+ || action instanceof ActionToolbarButtonAndItemDescriptor<?>) {
collection.add(new ActionItem<T>(action, item));
- break;
}
}
}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarButtonAndItemDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarButtonAndItemDescriptor.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarButtonAndItemDescriptor.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -0,0 +1,19 @@
+package org.ourproject.kune.platf.client.actions;
+
+import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+
+import com.calclab.suco.client.listener.Listener;
+
+public class ActionToolbarButtonAndItemDescriptor<T> extends ActionToolbarButtonDescriptor<T> {
+
+ public ActionToolbarButtonAndItemDescriptor(final AccessRolDTO accessRolDTO, final ActionToolbarPosition actionToolbarPosition,
+ final Listener<T> onPerformCall) {
+ super(accessRolDTO, actionToolbarPosition, onPerformCall);
+ }
+
+ public ActionToolbarButtonAndItemDescriptor(final AccessRolDTO accessRolDTO, final ActionToolbarPosition actionToolbarPosition,
+ final Listener<T> onPerformCall, final ActionEnableCondition<T> enableCondition) {
+ super(accessRolDTO, actionToolbarPosition, onPerformCall, enableCondition);
+ }
+
+}
Copied: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarButtonDescriptor.java (from rev 890, trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonDescriptor.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonDescriptor.java 2008-09-27 20:03:56 UTC (rev 890)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarButtonDescriptor.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -0,0 +1,45 @@
+package org.ourproject.kune.platf.client.actions;
+
+import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+
+import com.calclab.suco.client.listener.Listener;
+
+public class ActionToolbarButtonDescriptor<T> extends ActionToolbarDescriptor<T> {
+
+ private ActionToolbarButtonSeparator leftSeparator;
+ private ActionToolbarButtonSeparator rightSeparator;
+
+ public ActionToolbarButtonDescriptor(final AccessRolDTO accessRolDTO, final ActionToolbarPosition actionToolbarPosition,
+ final Listener<T> onPerformCall) {
+ super(accessRolDTO, actionToolbarPosition, onPerformCall);
+ }
+
+ public ActionToolbarButtonDescriptor(final AccessRolDTO accessRolDTO, final ActionToolbarPosition actionToolbarPosition,
+ final Listener<T> onPerformCall, final ActionEnableCondition<T> enableCondition) {
+ super(accessRolDTO, actionToolbarPosition, onPerformCall, enableCondition);
+ }
+
+ public ActionToolbarButtonSeparator getLeftSeparator() {
+ return leftSeparator;
+ }
+
+ public ActionToolbarButtonSeparator getRightSeparator() {
+ return rightSeparator;
+ }
+
+ public boolean hasLeftSeparator() {
+ return leftSeparator != null;
+ }
+
+ public boolean hasRightSeparator() {
+ return rightSeparator != null;
+ }
+
+ public void setLeftSeparator(final ActionToolbarButtonSeparator leftSeparator) {
+ this.leftSeparator = leftSeparator;
+ }
+
+ public void setRightSeparator(final ActionToolbarButtonSeparator rightSeparator) {
+ this.rightSeparator = rightSeparator;
+ }
+}
Copied: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarButtonSeparator.java (from rev 890, trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonSeparator.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionButtonSeparator.java 2008-09-27 20:03:56 UTC (rev 890)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarButtonSeparator.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.platf.client.actions;
+
+public enum ActionToolbarButtonSeparator {
+ spacer, separator, fill
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarDescriptor.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarDescriptor.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -0,0 +1,31 @@
+package org.ourproject.kune.platf.client.actions;
+
+import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+
+import com.calclab.suco.client.listener.Listener;
+
+public abstract class ActionToolbarDescriptor<T> extends ActionDescriptor<T> {
+
+ private ActionToolbarPosition actionToolbarPosition;
+
+ public ActionToolbarDescriptor(final AccessRolDTO accessRolDTO, final ActionToolbarPosition actionToolbarPosition,
+ final Listener<T> onPerformCall) {
+ super(accessRolDTO, onPerformCall);
+ this.actionToolbarPosition = actionToolbarPosition;
+ }
+
+ public ActionToolbarDescriptor(final AccessRolDTO accessRolDTO, final ActionToolbarPosition actionToolbarPosition,
+ final Listener<T> onPerformCall, final ActionEnableCondition<T> enableCondition) {
+ super(accessRolDTO, onPerformCall, enableCondition);
+ this.actionToolbarPosition = actionToolbarPosition;
+ }
+
+ public ActionToolbarPosition getActionPosition() {
+ return actionToolbarPosition;
+ }
+
+ public void setActionPosition(final ActionToolbarPosition actionToolbarPosition) {
+ this.actionToolbarPosition = actionToolbarPosition;
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarMenuAndItemDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarMenuAndItemDescriptor.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarMenuAndItemDescriptor.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -0,0 +1,19 @@
+package org.ourproject.kune.platf.client.actions;
+
+import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+
+import com.calclab.suco.client.listener.Listener;
+
+public class ActionToolbarMenuAndItemDescriptor<T> extends ActionToolbarMenuDescriptor<T> {
+
+ public ActionToolbarMenuAndItemDescriptor(final AccessRolDTO accessRolDTO, final ActionToolbarPosition actionToolbarPosition,
+ final Listener<T> onPerformCall) {
+ super(accessRolDTO, actionToolbarPosition, onPerformCall);
+ }
+
+ public ActionToolbarMenuAndItemDescriptor(final AccessRolDTO accessRolDTO, final ActionToolbarPosition actionToolbarPosition,
+ final Listener<T> onPerformCall, final ActionEnableCondition<T> enableCondition) {
+ super(accessRolDTO, actionToolbarPosition, onPerformCall, enableCondition);
+ }
+
+}
Copied: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarMenuDescriptor.java (from rev 890, trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionMenuDescriptor.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionMenuDescriptor.java 2008-09-27 20:03:56 UTC (rev 890)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarMenuDescriptor.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -0,0 +1,50 @@
+package org.ourproject.kune.platf.client.actions;
+
+import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.calclab.suco.client.listener.Listener;
+
+public class ActionToolbarMenuDescriptor<T> extends ActionToolbarDescriptor<T> {
+
+ private String parentMenuTitle;
+ private String parentMenuIconUrl;
+ private String parentSubMenuTitle;
+
+ public ActionToolbarMenuDescriptor(final AccessRolDTO accessRolDTO, final ActionToolbarPosition actionToolbarPosition,
+ final Listener<T> onPerformCall) {
+ super(accessRolDTO, actionToolbarPosition, onPerformCall);
+ }
+
+ public ActionToolbarMenuDescriptor(final AccessRolDTO accessRolDTO, final ActionToolbarPosition actionToolbarPosition,
+ final Listener<T> onPerformCall, final ActionEnableCondition<T> enableCondition) {
+ super(accessRolDTO, actionToolbarPosition, onPerformCall, enableCondition);
+ }
+
+ public String getParentMenuIconUrl() {
+ return parentMenuIconUrl;
+ }
+
+ public String getParentMenuTitle() {
+ return parentMenuTitle;
+ }
+
+ public String getParentSubMenuTitle() {
+ return parentSubMenuTitle;
+ }
+
+ public void setParentMenuIconUrl(final String parentMenuIconUrl) {
+ this.parentMenuIconUrl = parentMenuIconUrl;
+ }
+
+ public void setParentMenuTitle(final String parentMenuTitle) {
+ this.parentMenuTitle = parentMenuTitle;
+ }
+
+ public void setParentSubMenuTitle(final String parentSubMenuTitle) {
+ if (parentMenuTitle == null) {
+ Log.warn("Please set parentMenuTitle before");
+ }
+ this.parentSubMenuTitle = parentSubMenuTitle;
+ }
+}
Copied: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarPosition.java (from rev 890, trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionPosition.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionPosition.java 2008-09-27 20:03:56 UTC (rev 890)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionToolbarPosition.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.platf.client.actions;
+
+public enum ActionToolbarPosition {
+ topbar, bottombar
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -3,12 +3,12 @@
import java.util.ArrayList;
import java.util.HashMap;
-import org.ourproject.kune.platf.client.actions.ActionButtonDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionButtonSeparator;
+import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarButtonSeparator;
import org.ourproject.kune.platf.client.actions.ActionItem;
import org.ourproject.kune.platf.client.actions.ActionManager;
-import org.ourproject.kune.platf.client.actions.ActionMenuDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionPosition;
+import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.workspace.client.skel.SimpleToolbar;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
@@ -54,8 +54,8 @@
}
public void addButtonAction(final ActionItem<StateToken> actionItem) {
- final ActionButtonDescriptor<StateToken> action = (ActionButtonDescriptor<StateToken>) actionItem.getAction();
- final ActionPosition pos = action.getActionPosition();
+ final ActionToolbarButtonDescriptor<StateToken> action = (ActionToolbarButtonDescriptor<StateToken>) actionItem.getAction();
+ final ActionToolbarPosition pos = action.getActionPosition();
final ToolbarButton button = new ToolbarButton();
final String text = action.getText();
final String iconUrl = action.getIconUrl();
@@ -85,10 +85,10 @@
}
public void addMenuAction(final ActionItem<StateToken> actionItem, final boolean enable) {
- final ActionMenuDescriptor<StateToken> action = (ActionMenuDescriptor<StateToken>) actionItem.getAction();
+ final ActionToolbarMenuDescriptor<StateToken> action = (ActionToolbarMenuDescriptor<StateToken>) actionItem.getAction();
final String menuTitle = action.getParentMenuTitle();
final String menuSubTitle = action.getParentSubMenuTitle();
- final ActionPosition pos = action.getActionPosition();
+ final ActionToolbarPosition pos = action.getActionPosition();
final String itemKey = genMenuKey(pos, menuTitle, menuSubTitle, action.getText());
Item item = menuItems.get(itemKey);
if (item == null) {
@@ -123,8 +123,8 @@
removableToolbarItems.clear();
topbar.removeAll();
bottombar.removeAll();
- getToolbar(ActionPosition.topbar).removeAll();
- getToolbar(ActionPosition.bottombar).removeAll();
+ getToolbar(ActionToolbarPosition.topbar).removeAll();
+ getToolbar(ActionToolbarPosition.bottombar).removeAll();
}
public void clearRemovableActions() {
@@ -155,11 +155,11 @@
}
}
- private void add(final ActionPosition toolbar, final Widget widget) {
+ private void add(final ActionToolbarPosition toolbar, final Widget widget) {
getToolbar(toolbar).add(widget);
}
- private Widget add(final SimpleToolbar toolbar, final ActionButtonSeparator separator) {
+ private Widget add(final SimpleToolbar toolbar, final ActionToolbarButtonSeparator separator) {
switch (separator) {
case fill:
return toolbar.addFill();
@@ -171,9 +171,9 @@
}
}
- private Item createToolbarMenu(final ActionPosition toolBarPos, final String menuTitle, final String menuSubTitle,
+ private Item createToolbarMenu(final ActionToolbarPosition toolBarPos, final String menuTitle, final String menuSubTitle,
final ActionItem<StateToken> actionItem) {
- final ActionMenuDescriptor<StateToken> action = (ActionMenuDescriptor<StateToken>) actionItem.getAction();
+ final ActionToolbarMenuDescriptor<StateToken> action = (ActionToolbarMenuDescriptor<StateToken>) actionItem.getAction();
final Item item = new Item(action.getText(), new BaseItemListenerAdapter() {
@Override
public void onClick(BaseItem item, EventObject e) {
@@ -208,7 +208,7 @@
return item;
}
- private Menu createToolbarMenu(final ActionPosition barPosition, final String iconUrl, final String menuTitle,
+ private Menu createToolbarMenu(final ActionToolbarPosition barPosition, final String iconUrl, final String menuTitle,
final String menuKey) {
final Menu menu = new Menu();
final ToolbarButton toolbarMenu = new ToolbarButton(menuTitle);
@@ -221,7 +221,7 @@
return menu;
}
- private String genMenuKey(final ActionPosition pos, final String menuTitle, final String menuSubTitle,
+ private String genMenuKey(final ActionToolbarPosition pos, final String menuTitle, final String menuSubTitle,
final String actionText) {
final String basePart = "km-ctx-" + pos.toString().substring(0, 2) + "-" + menuTitle;
@@ -230,13 +230,11 @@
return basePart + subMenuPart + itemPart;
}
- private SimpleToolbar getToolbar(final ActionPosition pos) {
+ private SimpleToolbar getToolbar(final ActionToolbarPosition pos) {
switch (pos) {
- case bootombarAndItemMenu:
case bottombar:
return bottombar;
case topbar:
- case topbarAndItemMenu:
default:
return topbar;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -1,11 +1,13 @@
package org.ourproject.kune.platf.client.actions.toolbar;
-import org.ourproject.kune.platf.client.actions.ActionButtonDescriptor;
import org.ourproject.kune.platf.client.actions.ActionDescriptor;
import org.ourproject.kune.platf.client.actions.ActionItem;
import org.ourproject.kune.platf.client.actions.ActionItemCollection;
-import org.ourproject.kune.platf.client.actions.ActionMenuDescriptor;
import org.ourproject.kune.platf.client.actions.ActionRegistry;
+import org.ourproject.kune.platf.client.actions.ActionToolbarButtonAndItemDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarMenuAndItemDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
import org.ourproject.kune.platf.client.dto.StateToken;
import com.allen_sauer.gwt.log.client.Log;
@@ -41,17 +43,17 @@
public void showActions(final ActionItemCollection<StateToken> actions, final boolean isItemSelected) {
for (final ActionItem<StateToken> actionItem : actions) {
final ActionDescriptor<StateToken> action = actionItem.getAction();
- if (action instanceof ActionMenuDescriptor) {
+ if (action instanceof ActionToolbarMenuDescriptor || action instanceof ActionToolbarMenuAndItemDescriptor) {
toolbar.addMenuAction(actionItem, isItemSelected
&& actionRegistry.checkEnabling(action, actionItem.getItem()));
} else {
- if (action instanceof ActionButtonDescriptor) {
+ if (action instanceof ActionToolbarButtonDescriptor
+ || action instanceof ActionToolbarButtonAndItemDescriptor) {
if (isItemSelected && actionRegistry.checkEnabling(action, actionItem.getItem())) {
toolbar.addButtonAction(actionItem);
}
} else {
- // Code smell
- Log.error("Not an ActionMenuDescriptor or ActionButtonDescriptor: " + action.getText());
+ Log.error("Code error: Not an ActionMenuDescriptor or ActionButtonDescriptor: " + action.getText());
}
}
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java 2008-09-29 08:55:01 UTC (rev 895)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java 2008-09-29 11:58:55 UTC (rev 896)
@@ -15,9 +15,9 @@
private static final String DEF_CONTENT_TYPE_ID = "test";
private ActionRegistry<StateToken> registry;
- private ActionDescriptor<StateToken> adminAction;
- private ActionDescriptor<StateToken> editorAction;
- private ActionDescriptor<StateToken> viewerAction;
+ private ActionToolbarMenuAndItemDescriptor<StateToken> adminAction;
+ private ActionToolbarMenuAndItemDescriptor<StateToken> editorAction;
+ private ActionToolbarMenuAndItemDescriptor<StateToken> viewerAction;
@Test
public void actionsEmptyButNeverNull() {
@@ -32,18 +32,18 @@
@Before
public void before() {
registry = new ActionRegistry<StateToken>();
- adminAction = new ActionDescriptor<StateToken>(AccessRolDTO.Administrator, ActionPosition.topbarAndItemMenu,
+ adminAction = new ActionToolbarMenuAndItemDescriptor<StateToken>(AccessRolDTO.Administrator, ActionToolbarPosition.topbar,
new Listener<StateToken>() {
public void onEvent(final StateToken parameter) {
}
});
- editorAction = new ActionDescriptor<StateToken>(AccessRolDTO.Editor, ActionPosition.topbarAndItemMenu,
+ editorAction = new ActionToolbarMenuAndItemDescriptor<StateToken>(AccessRolDTO.Editor, ActionToolbarPosition.topbar,
new Listener<StateToken>() {
public void onEvent(final StateToken parameter) {
}
});
- viewerAction = new ActionDescriptor<StateToken>(AccessRolDTO.Viewer, ActionPosition.topbarAndItemMenu,
+ viewerAction = new ActionToolbarMenuAndItemDescriptor<StateToken>(AccessRolDTO.Viewer, ActionToolbarPosition.topbar,
new Listener<StateToken>() {
public void onEvent(final StateToken parameter) {
}
1
0
Author: vjrj
Date: 2008-09-29 10:55:01 +0200 (Mon, 29 Sep 2008)
New Revision: 895
Added:
trunk/img/icons/content_edit.png
trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploader.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderView.java
trunk/src/main/java/org/ourproject/kune/platf/public/images/content_edit.png
Modified:
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java
trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/tool/ToolSelectorPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/GroupManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogo.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java
trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java
trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java
trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/upload/FileUploaderPresenterTest.java
Log:
ya estamos con errores en el svn y si la abuela fuma
Added: trunk/img/icons/content_edit.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/icons/content_edit.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -16,7 +16,6 @@
public class ChatClientActions {
- private final I18nUITranslationService i18n;
private final Session session;
private final Provider<ChatClientTool> chatClientToolProvider;
private final ContentActionRegistry contentActionRegistry;
@@ -24,7 +23,6 @@
public ChatClientActions(final I18nUITranslationService i18n, final Session session,
final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry,
final Provider<ChatClientTool> chatClientToolProvider) {
- this.i18n = i18n;
this.session = session;
this.contentActionRegistry = contentActionRegistry;
this.chatClientToolProvider = chatClientToolProvider;
@@ -42,13 +40,13 @@
});
// chatAbout.setTextDescription(i18n.t("Chat about"));
chatAbout.setIconUrl("images/emite-room.png");
- chatAbout.setToolTip("Chat online about this");
+ chatAbout.setToolTip("Chat and comment this");
chatAbout.setLeftSeparator(ActionButtonSeparator.fill);
- contentActionRegistry.addAction(DocumentClientTool.TYPE_DOCUMENT, chatAbout);
- contentActionRegistry.addAction(DocumentClientTool.TYPE_GALLERY, chatAbout);
- contentActionRegistry.addAction(DocumentClientTool.TYPE_WIKIPAGE, chatAbout);
- contentActionRegistry.addAction(DocumentClientTool.TYPE_POST, chatAbout);
- contentActionRegistry.addAction(DocumentClientTool.TYPE_UPLOADEDFILE, chatAbout);
+ contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_DOCUMENT);
+ contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_GALLERY);
+ contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_WIKIPAGE);
+ contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_POST);
+ contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_UPLOADEDFILE);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -12,9 +12,11 @@
actions = new HashMap<String, ActionCollection<T>>();
}
- public void addAction(final String contentTypeId, final ActionDescriptor<T> action) {
- final ActionCollection<T> actionColl = getActions(contentTypeId);
- actionColl.add(action);
+ public void addAction(final ActionDescriptor<T> action, final String... contentTypeIds) {
+ for (final String contentTypeId : contentTypeIds) {
+ final ActionCollection<T> actionColl = getActions(contentTypeId);
+ actionColl.add(action);
+ }
}
public boolean checkEnabling(final ActionDescriptor<T> action, final T T) {
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -49,10 +49,10 @@
this.onApplicationStop = new Event0("onApplicationStop");
Window.addWindowCloseListener(new WindowCloseListener() {
public void onWindowClosed() {
- stop();
}
public String onWindowClosing() {
+ stop();
return null;
}
});
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -30,6 +30,7 @@
private String publicDesc;
private GroupType type;
private ContentSimpleDTO defaultContent;
+ private ContentSimpleDTO groupLogo;
private LicenseDTO defaultLicense;
private String workspaceTheme;
private String tags;
@@ -102,6 +103,10 @@
return defaultLicense;
}
+ public ContentSimpleDTO getGroupLogo() {
+ return groupLogo;
+ }
+
public Long getId() {
return id;
}
@@ -150,6 +155,10 @@
this.defaultLicense = defaultLicense;
}
+ public void setGroupLogo(final ContentSimpleDTO groupLogo) {
+ this.groupLogo = groupLogo;
+ }
+
public void setId(final Long id) {
this.id = id;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -32,4 +32,6 @@
StateToken createNewGroup(String userHash, GroupDTO group) throws DefaultException;
+ GroupDTO setGroupLogo(String userHash, StateToken token);
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -31,4 +31,6 @@
void createNewGroup(String userHash, GroupDTO group, AsyncCallback<StateToken> callback);
+ void setGroupLogo(String userHash, StateToken token, AsyncCallback<GroupDTO> asyncCallback);
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -32,9 +32,10 @@
import org.ourproject.kune.platf.client.state.StateManagerDefault;
import org.ourproject.kune.platf.client.tool.ToolSelector;
import org.ourproject.kune.platf.client.tool.ToolSelectorPresenter;
-import org.ourproject.kune.platf.client.ui.dialogs.upload.FileUploader;
-import org.ourproject.kune.platf.client.ui.dialogs.upload.FileUploaderDialog;
-import org.ourproject.kune.platf.client.ui.dialogs.upload.FileUploaderPresenter;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
+import org.ourproject.kune.platf.client.ui.upload.FileUploader;
+import org.ourproject.kune.platf.client.ui.upload.FileUploaderDialog;
+import org.ourproject.kune.platf.client.ui.upload.FileUploaderPresenter;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigatorPanel;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigatorPresenter;
@@ -356,6 +357,12 @@
}
});
+ register(Singleton.class, new Factory<FileDownloadUtils>(FileDownloadUtils.class) {
+ public FileDownloadUtils create() {
+ return new FileDownloadUtils($(Session.class));
+ }
+ });
+
// Register of tokens like "signin", "newgroup", "translate" etcetera
$(StateManager.class).addSiteToken(SiteToken.signin.toString(), new Listener<StateToken>() {
public void onEvent(final StateToken previousStateToken) {
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -8,6 +8,7 @@
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.QuickTipsHelper;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
import org.ourproject.kune.platf.client.ui.rate.RateIt;
import org.ourproject.kune.platf.client.ui.rate.RateItPanel;
import org.ourproject.kune.platf.client.ui.rate.RateItPresenter;
@@ -209,9 +210,9 @@
register(ApplicationComponentGroup.class, new Factory<EntityLogo>(EntityLogo.class) {
public EntityLogo create() {
final EntityLogoPresenter presenter = new EntityLogoPresenter($(StateManager.class),
- $(WsThemePresenter.class));
+ $(WsThemePresenter.class), $(Session.class));
final EntityLogoPanel panel = new EntityLogoPanel($(I18nUITranslationService.class),
- $(WorkspaceSkeleton.class));
+ $(WorkspaceSkeleton.class), $$(FileDownloadUtils.class));
presenter.init(panel);
return presenter;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -20,6 +20,7 @@
package org.ourproject.kune.platf.client.state;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
@@ -38,7 +39,7 @@
void gotoToken(String token);
- void onGroupChanged(Listener2<String, String> listener);
+ void onGroupChanged(Listener2<GroupDTO, GroupDTO> listener);
void onSocialNetworkChanged(Listener<StateDTO> listener);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -23,6 +23,7 @@
import java.util.HashMap;
import org.ourproject.kune.platf.client.app.HistoryWrapper;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.ParticipationDataDTO;
import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
@@ -48,7 +49,7 @@
private final Event<StateDTO> onStateChanged;
private final Event<StateDTO> onSocialNetworkChanged;
private final Event2<String, String> onToolChanged;
- private final Event2<String, String> onGroupChanged;
+ private final Event2<GroupDTO, GroupDTO> onGroupChanged;
public StateManagerDefault(final ContentProvider contentProvider, final Session session,
final HistoryWrapper history) {
@@ -57,7 +58,7 @@
this.history = history;
this.oldState = null;
this.onStateChanged = new Event<StateDTO>("onStateChanged");
- this.onGroupChanged = new Event2<String, String>("onGroupChanged");
+ this.onGroupChanged = new Event2<GroupDTO, GroupDTO>("onGroupChanged");
this.onToolChanged = new Event2<String, String>("onToolChanged");
this.onSocialNetworkChanged = new Event<StateDTO>("onSocialNetworkChanged");
session.onUserSignIn(new Listener<UserInfoDTO>() {
@@ -92,7 +93,7 @@
gotoToken(new StateToken(token));
}
- public void onGroupChanged(final Listener2<String, String> listener) {
+ public void onGroupChanged(final Listener2<GroupDTO, GroupDTO> listener) {
onGroupChanged.add(listener);
}
@@ -159,12 +160,12 @@
}
private void checkGroupAndToolChange(final StateDTO oldState, final StateDTO newState) {
- final String oldGroupName = oldState != null ? oldState.getGroup().getShortName() : null;
- final String newGroupName = newState.getGroup().getShortName();
+ final GroupDTO oldGroup = oldState != null ? oldState.getGroup() : null;
+ final GroupDTO newGroup = newState.getGroup();
final String oldToolName = oldState != null ? oldState.getToolName() : null;
final String newToolName = newState.getToolName();
- if (oldState == null || !oldGroupName.equals(newGroupName)) {
- onGroupChanged.fire(oldGroupName, newGroupName);
+ if (oldState == null || !oldGroup.equals(newGroup)) {
+ onGroupChanged.fire(oldGroup, newGroup);
}
if (oldState == null || !oldToolName.equals(newToolName)) {
onToolChanged.fire(oldToolName, newToolName);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/tool/ToolSelectorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/tool/ToolSelectorPresenter.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/tool/ToolSelectorPresenter.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -2,6 +2,7 @@
import java.util.HashMap;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
@@ -13,9 +14,9 @@
public ToolSelectorPresenter(final StateManager stateManager, final WsThemePresenter wsThemePresenter) {
tools = new HashMap<String, ToolSelectorItem>();
- stateManager.onGroupChanged(new Listener2<String, String>() {
- public void onEvent(final String oldGroupName, final String newGroupName) {
- onGroupChanged(newGroupName);
+ stateManager.onGroupChanged(new Listener2<GroupDTO, GroupDTO>() {
+ public void onEvent(final GroupDTO oldGroup, final GroupDTO newGroup) {
+ onGroupChanged(newGroup.getShortName());
}
});
stateManager.onToolChanged(new Listener2<String, String>() {
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploader.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploader.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploader.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -0,0 +1,19 @@
+package org.ourproject.kune.platf.client.ui.upload;
+
+public interface FileUploader {
+
+ public static final String USERHASH = "userhash";
+ public static final String CURRENT_STATE_TOKEN = "currentStateToken";
+ public static final String FILENAME = "filename";
+
+ boolean hasUploadingFiles();
+
+ void hide();
+
+ void resetPermittedExtensions();
+
+ void setPermittedExtensions(String extensions);
+
+ void show();
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -0,0 +1,179 @@
+package org.ourproject.kune.platf.client.ui.upload;
+
+import org.ourproject.kune.platf.client.ui.KuneStringUtils;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.site.Site;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.DeferredCommand;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.core.UrlParam;
+import com.gwtext.client.widgets.Button;
+import com.gwtext.client.widgets.ToolbarButton;
+import com.gwtext.client.widgets.Window;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
+import com.gwtextux.client.widgets.upload.UploadDialog;
+import com.gwtextux.client.widgets.upload.UploadDialogListenerAdapter;
+
+public class FileUploaderDialog implements FileUploaderView {
+
+ protected static final String SITE_FILE_UPLOADER = "k-site-file-uploader";
+
+ private static final String URL = "/kune/servlets/FileUploadManager";
+
+ private UploadDialog dialog;
+ private ToolbarButton traybarButton;
+ private final I18nUITranslationService i18n;
+ private final WorkspaceSkeleton ws;
+ private final FileUploaderPresenter presenter;
+
+ public FileUploaderDialog(final FileUploaderPresenter presenter, final I18nUITranslationService i18n,
+ final WorkspaceSkeleton ws) {
+ this.presenter = presenter;
+ this.i18n = i18n;
+ this.ws = ws;
+ createDialog(false);
+ }
+
+ public void destroy() {
+ if (hasUploadingFiles()) {
+ dialog.stopUpload();
+ Site.important(i18n.t("Upload canceled after sign out"));
+ }
+ if (dialog != null) {
+ dialog.destroy();
+ dialog = null;
+ }
+ if (traybarButton != null) {
+ traybarButton.destroy();
+ traybarButton = null;
+ }
+ }
+
+ public boolean hasUploadingFiles() {
+ return dialog.hasUnuploadedFiles();
+ }
+
+ public void hide() {
+ dialog.hide();
+ }
+
+ public void resetPermittedExtensions() {
+ final String[] extensions = {};
+ setPermittedExtensions(extensions);
+ }
+
+ public void setPermittedExtensions(final String extensions) {
+ final Object[] objs = KuneStringUtils.splitTags(extensions).toArray();
+ final String[] exts = new String[objs.length];
+ for (int i = 0; i < objs.length; i++) {
+ exts[i] = (String) objs[i];
+ }
+ setPermittedExtensions(exts);
+ }
+
+ public void setUploadParams(final String userhash, final String currentStateToken) {
+ // Warning take into account param[size]
+ final UrlParam param[] = new UrlParam[2];
+ param[0] = new UrlParam(FileUploader.USERHASH, userhash);
+ param[1] = new UrlParam(FileUploader.CURRENT_STATE_TOKEN, currentStateToken);
+ dialog.setBaseParams(param);
+ }
+
+ public void show() {
+ if (traybarButton == null) {
+ traybarButton = new ToolbarButton();
+ traybarButton.setTooltip(i18n.t("Show/hide uploader window"));
+ traybarButton.setIcon("images/nav/upload.png");
+ traybarButton.addListener(new ButtonListenerAdapter() {
+ @Override
+ public void onClick(final Button button, final EventObject e) {
+ if (dialog.isVisible()) {
+ dialog.hide();
+ } else {
+ dialog.show();
+ }
+ }
+ });
+ ws.getSiteTraybar().addButton(traybarButton);
+ }
+ if (dialog == null) {
+ createDialog(true);
+ } else {
+ dialog.show();
+ }
+ }
+
+ private void createDialog(final boolean show) {
+ dialog = new UploadDialog(i18n.t("File uploader"), false, true);
+ dialog.setId(SITE_FILE_UPLOADER);
+ dialog.setAllowCloseOnUpload(true);
+ dialog.setResetOnHide(false);
+ dialog.setClosable(true);
+ dialog.setCloseAction(Window.HIDE);
+ dialog.setMinimizable(true);
+ dialog.setUploadAutostart(false);
+
+ dialog.addListener(new UploadDialogListenerAdapter() {
+ @Override
+ public boolean onBeforeAdd(final UploadDialog source, final String filename) {
+ boolean mustAdd = presenter.checkFolderChange();
+ if (!mustAdd) {
+ Site.important(i18n.t("Wait until current uploads finish to upload files in other location"));
+ }
+ return mustAdd;
+ }
+
+ @Override
+ public void onMinimize(final Window source) {
+ dialog.hide();
+ }
+
+ @Override
+ public void onUploadComplete(final UploadDialog source) {
+ if (!dialog.isVisible()) {
+ Site.info(i18n.t("Upload completed"));
+ traybarButton.destroy();
+ traybarButton = null;
+ }
+ presenter.onUploadComplete();
+ }
+
+ @Override
+ public void onUploadError(final UploadDialog source, final String filename, final JavaScriptObject data) {
+ showError();
+ }
+
+ @Override
+ public void onUploadFailed(final UploadDialog source, final String filename) {
+ showError();
+ }
+
+ private void showError() {
+ if (!dialog.isVisible()) {
+ Site.veryImportant(i18n.t("Error uploading"));
+ }
+ }
+
+ });
+ dialog.setUrl(URL);
+ if (show) {
+ dialog.show();
+ }
+ }
+
+ private void setPermittedExtensions(final String[] extensions) {
+ DeferredCommand.addCommand(new Command() {
+ public void execute() {
+ if (dialog == null) {
+ createDialog(false);
+ }
+ Log.info("PermittedExtensions: " + extensions.toString() + " length: " + extensions.length);
+ dialog.setPermittedExtensions(extensions);
+ }
+ });
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderPresenter.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderPresenter.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -0,0 +1,75 @@
+package org.ourproject.kune.platf.client.ui.upload;
+
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
+
+import com.calclab.suco.client.ioc.Provider;
+import com.calclab.suco.client.listener.Listener0;
+
+public class FileUploaderPresenter implements FileUploader {
+
+ private FileUploaderView view;
+ private final Session session;
+ private StateToken currentUploadStateToken;
+ private final Provider<ContextNavigator> navProvider;
+
+ public FileUploaderPresenter(final Session session, final Provider<ContextNavigator> navProvider) {
+ this.session = session;
+ this.navProvider = navProvider;
+ }
+
+ public boolean checkFolderChange() {
+ final StateToken currentFolderStateToken = session.getCurrentStateToken().clone().clearDocument();
+ if (sameContainer()) {
+ view.setUploadParams(session.getUserHash(), currentFolderStateToken.toString());
+ return true;
+ }
+ if (view.hasUploadingFiles()) {
+ return false;
+ } else {
+ currentUploadStateToken = currentFolderStateToken;
+ view.setUploadParams(session.getUserHash(), currentFolderStateToken.toString());
+ return true;
+ }
+ }
+
+ public boolean hasUploadingFiles() {
+ return view.hasUploadingFiles();
+ }
+
+ public void hide() {
+ view.hide();
+ }
+
+ public void init(final FileUploaderView view) {
+ this.view = view;
+ session.onUserSignOut(new Listener0() {
+ public void onEvent() {
+ view.destroy();
+ }
+ });
+ }
+
+ public void onUploadComplete() {
+ navProvider.get().refresh(currentUploadStateToken);
+ }
+
+ public void resetPermittedExtensions() {
+ view.resetPermittedExtensions();
+ }
+
+ public void setPermittedExtensions(final String extensions) {
+ view.setPermittedExtensions(extensions);
+ }
+
+ public void show() {
+ view.show();
+ }
+
+ private boolean sameContainer() {
+ final StateToken currentStateToken = session.getCurrentStateToken();
+ currentUploadStateToken = currentUploadStateToken == null ? currentStateToken : currentUploadStateToken;
+ return currentUploadStateToken.equals(currentStateToken);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderView.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderView.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -0,0 +1,19 @@
+package org.ourproject.kune.platf.client.ui.upload;
+
+public interface FileUploaderView {
+
+ void destroy();
+
+ boolean hasUploadingFiles();
+
+ void hide();
+
+ void resetPermittedExtensions();
+
+ void setPermittedExtensions(String extensions);
+
+ void setUploadParams(String userhash, String currentUploadStateToken);
+
+ void show();
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/public/images/content_edit.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/public/images/content_edit.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -56,6 +56,14 @@
// Never expect or return null
public static Group NO_GROUP = null;
+ @Enumerated(EnumType.STRING)
+ @Column(nullable = false)
+ AdmissionType admissionType;
+
+ @Enumerated(EnumType.STRING)
+ @Column(nullable = false)
+ GroupType type;
+
@Id
@DocumentId
@GeneratedValue
@@ -76,17 +84,12 @@
@Length(max = 255, message = "Public desc max 255 chars of lenght")
private String publicDesc;
- @Enumerated(EnumType.STRING)
- @Column(nullable = false)
- AdmissionType admissionType;
-
- @Enumerated(EnumType.STRING)
- @Column(nullable = false)
- GroupType type;
-
@OneToOne
private Content defaultContent;
+ @OneToOne
+ private Content groupLogo;
+
@OneToOne(cascade = CascadeType.ALL)
private SocialNetwork socialNetwork;
@@ -99,175 +102,183 @@
private String workspaceTheme;
public Group() {
- this(null, null, null, null);
+ this(null, null, null, null);
}
public Group(final String shortName, final String longName) {
- this(shortName, longName, null, GroupType.PROJECT);
+ this(shortName, longName, null, GroupType.PROJECT);
}
public Group(final String shortName, final String longName, final License defaultLicense, final GroupType type) {
- this.shortName = shortName;
- this.longName = longName;
- this.toolsConfig = new HashMap<String, ToolConfiguration>();
- this.socialNetwork = new SocialNetwork();
- this.defaultLicense = defaultLicense;
- this.type = type;
- this.admissionType = AdmissionType.Moderated;
+ this.shortName = shortName;
+ this.longName = longName;
+ this.toolsConfig = new HashMap<String, ToolConfiguration>();
+ this.socialNetwork = new SocialNetwork();
+ this.defaultLicense = defaultLicense;
+ this.type = type;
+ this.admissionType = AdmissionType.Moderated;
}
- @Finder(query = "FROM Group")
- public List<Group> getAll() {
- return null;
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ final Group other = (Group) obj;
+ if (shortName == null) {
+ if (other.shortName != null) {
+ return false;
+ }
+ } else if (!shortName.equals(other.shortName)) {
+ return false;
+ }
+ return true;
}
- @Finder(query = "FROM Group g WHERE g.shortName = :shortName")
- public Group findByShortName(@Named("shortName")
- final String shortName) {
- return null;
+ public boolean existToolConfig(final String toolName) {
+ return toolsConfig.get(toolName) != null;
}
@Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id FROM g.socialNetwork.accessLists.admins.list adm WHERE adm.id = :groupid)")
public List<Group> findAdminInGroups(@Named("groupid")
final Long groupId) {
- return null;
+ return null;
}
+ @Finder(query = "FROM Group g WHERE g.shortName = :shortName")
+ public Group findByShortName(@Named("shortName")
+ final String shortName) {
+ return null;
+ }
+
@Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id FROM g.socialNetwork.accessLists.editors.list AS ed WHERE ed.id = :groupid)")
public List<Group> findCollabInGroups(@Named("groupid")
final Long groupId) {
- return null;
+ return null;
}
- public String getShortName() {
- return shortName;
+ public AdmissionType getAdmissionType() {
+ return admissionType;
}
- public void setShortName(final String shortName) {
- this.shortName = shortName;
+ @Finder(query = "FROM Group")
+ public List<Group> getAll() {
+ return null;
}
- public AdmissionType getAdmissionType() {
- return admissionType;
+ public Content getDefaultContent() {
+ return defaultContent;
}
- public void setAdmissionType(final AdmissionType admissionType) {
- this.admissionType = admissionType;
+ public License getDefaultLicense() {
+ return defaultLicense;
}
- public Long getId() {
- return id;
+ public Content getGroupLogo() {
+ return groupLogo;
}
- public void setId(final Long id) {
- this.id = id;
+ public Long getId() {
+ return id;
}
public String getLongName() {
- return longName;
+ return longName;
}
- public void setLongName(final String longName) {
- this.longName = longName;
+ public String getPublicDesc() {
+ return publicDesc;
}
- public Content getDefaultContent() {
- return defaultContent;
+ public Container getRoot(final String toolName) {
+ return toolsConfig.get(toolName).getRoot();
}
- public void setDefaultContent(final Content defaultContent) {
- this.defaultContent = defaultContent;
+ public String getShortName() {
+ return shortName;
}
public SocialNetwork getSocialNetwork() {
- return socialNetwork;
+ return socialNetwork;
}
- public void setSocialNetwork(final SocialNetwork socialNetwork) {
- this.socialNetwork = socialNetwork;
+ public ToolConfiguration getToolConfiguration(final String name) {
+ return toolsConfig.get(name);
}
- public Container getRoot(final String toolName) {
- return toolsConfig.get(toolName).getRoot();
+ public Map<String, ToolConfiguration> getToolsConfig() {
+ return toolsConfig;
}
- public boolean existToolConfig(final String toolName) {
- return toolsConfig.get(toolName) != null;
+ public GroupType getType() {
+ return type;
}
- public Map<String, ToolConfiguration> getToolsConfig() {
- return toolsConfig;
+ public String getWorkspaceTheme() {
+ return workspaceTheme;
}
- public ToolConfiguration getToolConfiguration(final String name) {
- return toolsConfig.get(name);
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + (shortName == null ? 0 : shortName.hashCode());
+ return result;
}
- public ToolConfiguration setToolConfig(final String name, final ToolConfiguration config) {
- toolsConfig.put(name, config);
- return config;
+ public void setAdmissionType(final AdmissionType admissionType) {
+ this.admissionType = admissionType;
}
- public String getPublicDesc() {
- return publicDesc;
+ public void setDefaultContent(final Content defaultContent) {
+ this.defaultContent = defaultContent;
}
- public void setPublicDesc(final String publicDesc) {
- this.publicDesc = publicDesc;
+ public void setDefaultLicense(final License defaultLicense) {
+ this.defaultLicense = defaultLicense;
}
- public License getDefaultLicense() {
- return defaultLicense;
+ public void setGroupLogo(final Content groupLogo) {
+ this.groupLogo = groupLogo;
}
- public void setDefaultLicense(final License defaultLicense) {
- this.defaultLicense = defaultLicense;
+ public void setId(final Long id) {
+ this.id = id;
}
- public GroupType getType() {
- return type;
+ public void setLongName(final String longName) {
+ this.longName = longName;
}
- public void setType(final GroupType type) {
- this.type = type;
+ public void setPublicDesc(final String publicDesc) {
+ this.publicDesc = publicDesc;
}
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + (shortName == null ? 0 : shortName.hashCode());
- return result;
+ public void setShortName(final String shortName) {
+ this.shortName = shortName;
}
- @Override
- public boolean equals(final Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- final Group other = (Group) obj;
- if (shortName == null) {
- if (other.shortName != null) {
- return false;
- }
- } else if (!shortName.equals(other.shortName)) {
- return false;
- }
- return true;
+ public void setSocialNetwork(final SocialNetwork socialNetwork) {
+ this.socialNetwork = socialNetwork;
}
- public String getWorkspaceTheme() {
- return workspaceTheme;
+ public ToolConfiguration setToolConfig(final String name, final ToolConfiguration config) {
+ toolsConfig.put(name, config);
+ return config;
}
+ public void setType(final GroupType type) {
+ this.type = type;
+ }
+
public void setWorkspaceTheme(final String workspaceTheme) {
- this.workspaceTheme = workspaceTheme;
+ this.workspaceTheme = workspaceTheme;
}
}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/GroupManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/GroupManager.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/GroupManager.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -63,4 +63,6 @@
void setDefaultContent(String groupShortName, Content content);
+ void setGroupLogo(Group group, Content content);
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -23,7 +23,7 @@
import org.ourproject.kune.docs.server.DocumentServerTool;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.ui.dialogs.upload.FileUploader;
+import org.ourproject.kune.platf.client.ui.upload.FileUploader;
import org.ourproject.kune.platf.server.UserSession;
import org.ourproject.kune.platf.server.access.AccessRol;
import org.ourproject.kune.platf.server.access.AccessService;
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -32,6 +32,7 @@
import org.apache.lucene.search.Query;
import org.ourproject.kune.platf.client.dto.GroupType;
import org.ourproject.kune.platf.client.errors.AccessViolationException;
+import org.ourproject.kune.platf.client.errors.DefaultException;
import org.ourproject.kune.platf.client.errors.EmailAddressInUseException;
import org.ourproject.kune.platf.client.errors.GroupNameInUseException;
import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException;
@@ -176,6 +177,14 @@
group.setDefaultContent(content);
}
+ public void setGroupLogo(final Group group, final Content content) {
+ if (content.getMimeType().getType().equals("image")) {
+ group.setGroupLogo(content);
+ } else {
+ new DefaultException("Trying to set not a image as group logo");
+ }
+ }
+
private void initGroup(final User user, final Group group) throws GroupNameInUseException {
try {
persist(group);
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -32,6 +32,8 @@
import org.ourproject.kune.platf.server.auth.Authenticated;
import org.ourproject.kune.platf.server.auth.Authorizated;
import org.ourproject.kune.platf.server.content.ContentManager;
+import org.ourproject.kune.platf.server.content.ContentUtils;
+import org.ourproject.kune.platf.server.domain.Content;
import org.ourproject.kune.platf.server.domain.Group;
import org.ourproject.kune.platf.server.domain.User;
import org.ourproject.kune.platf.server.manager.GroupManager;
@@ -62,7 +64,7 @@
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
- @Transactional(type = TransactionType.READ_WRITE, rollbackOn = DefaultException.class)
+ @Transactional(type = TransactionType.READ_WRITE)
public void changeGroupWsTheme(final String userHash, final StateToken groupToken, final String theme)
throws DefaultException {
final UserSession userSession = getUserSession();
@@ -85,6 +87,16 @@
return newGroup.getDefaultContent().getStateToken();
}
+ @Authenticated
+ @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
+ @Transactional(type = TransactionType.READ_WRITE)
+ public GroupDTO setGroupLogo(final String userHash, final StateToken token) {
+ final Group group = groupManager.findByShortName(token.getGroup());
+ final Content content = contentManager.find(ContentUtils.parseId(token.getDocument()));
+ groupManager.setGroupLogo(group, content);
+ return mapper.map(group, GroupDTO.class);
+ }
+
private UserSession getUserSession() {
return userSessionProvider.get();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogo.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogo.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogo.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -1,6 +1,7 @@
package org.ourproject.kune.workspace.client.entitylogo;
-
public interface EntityLogo {
+ void refreshGroupLogo();
+
}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPanel.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -20,11 +20,16 @@
package org.ourproject.kune.workspace.client.entitylogo;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.ui.dialogs.InfoDialog;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.themes.WsTheme;
+import com.calclab.suco.client.ioc.Provider;
import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Hyperlink;
@@ -32,6 +37,7 @@
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
public class EntityLogoPanel extends SimplePanel implements EntityLogoView {
class EntityTextLogo extends VerticalPanel {
@@ -58,8 +64,17 @@
putYourLogoHP.add(defTextPutYourLogoHL);
// Set properties
- // TODO: Put your logo here functionality
defTextPutYourLogoHL.setText(i18n.t("Put Your Logo Here"));
+ defTextPutYourLogoHL.addClickListener(new ClickListener() {
+ public void onClick(final Widget sender) {
+ final InfoDialog infoDialog = new InfoDialog(
+ "Configure your group logo",
+ "Howto configure your group logo",
+ "For configure your group's logo just add an image to your group contents and select it as your group's logo (see menu 'File'). Whe are working into a more direct way to do that.",
+ i18n.t("Ok"), false, false, 300, 200);
+ infoDialog.show();
+ }
+ });
expandCell.setWidth("100%");
putYourLogoHP.setCellWidth(expandCell, "100%");
// TODO: link to configure the logo
@@ -83,17 +98,33 @@
}
+ private static final int LOGO_ICON_DEFAULT_WIDTH = 468;
+ private static final int LOGO_ICON_DEFAULT_HEIGHT = 60;
+
private EntityTextLogo entityTextLogo;
private final I18nTranslationService i18n;
+ private final Provider<FileDownloadUtils> dowloadProvider;
- public EntityLogoPanel(final I18nTranslationService i18n, final WorkspaceSkeleton ws) {
+ public EntityLogoPanel(final I18nTranslationService i18n, final WorkspaceSkeleton ws,
+ final Provider<FileDownloadUtils> dowloadProvider) {
this.i18n = i18n;
+ this.dowloadProvider = dowloadProvider;
ws.addToEntityMainHeader(this);
}
- public void setLogo(final Image image) {
+ public void setLogo(final StateToken stateToken, final boolean clipped) {
clear();
- add(image);
+ final String imageUrl = dowloadProvider.get().getImageUrl(stateToken);
+ Image logo;
+ if (clipped) {
+ logo = new Image(imageUrl, 0, 0, LOGO_ICON_DEFAULT_WIDTH, LOGO_ICON_DEFAULT_HEIGHT);
+ } else {
+
+ logo = new Image(imageUrl);
+ logo.setWidth("" + LOGO_ICON_DEFAULT_WIDTH);
+ logo.setHeight("" + LOGO_ICON_DEFAULT_HEIGHT);
+ }
+ add(logo);
}
public void setLogo(final String groupName) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPresenter.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoPresenter.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -1,7 +1,9 @@
package org.ourproject.kune.workspace.client.entitylogo;
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.themes.WsTheme;
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
@@ -11,14 +13,18 @@
public class EntityLogoPresenter implements EntityLogo {
private EntityLogoView view;
+ private final Session session;
- public EntityLogoPresenter(final StateManager stateManager, final WsThemePresenter theme) {
+ public EntityLogoPresenter(final StateManager stateManager, final WsThemePresenter theme, final Session session) {
+ this.session = session;
+ stateManager.onGroupChanged(new Listener2<GroupDTO, GroupDTO>() {
+ public void onEvent(final GroupDTO oldGroup, final GroupDTO newGroup) {
+ setGroupLogo(newGroup);
+ }
+ });
stateManager.onStateChanged(new Listener<StateDTO>() {
public void onEvent(final StateDTO state) {
- final GroupDTO group = state.getGroup();
final boolean isAdmin = state.getGroupRights().isAdministrable();
-
- view.setLogo(group.getLongName());
view.setPutYourLogoVisible(isAdmin);
}
});
@@ -31,7 +37,19 @@
public void init(final EntityLogoView view) {
this.view = view;
+ }
+ public void refreshGroupLogo() {
+ setGroupLogo(session.getCurrentState().getGroup());
}
+ private void setGroupLogo(final GroupDTO group) {
+ final ContentSimpleDTO groupLogo = group.getGroupLogo();
+ if (groupLogo != null) {
+ view.setLogo(groupLogo.getStateToken(), true);
+ } else {
+ view.setLogo(group.getLongName());
+ }
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoView.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoView.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -1,17 +1,15 @@
package org.ourproject.kune.workspace.client.entitylogo;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.workspace.client.themes.WsTheme;
-import com.google.gwt.user.client.ui.Image;
-
public interface EntityLogoView {
- // FIXME: Don' use Image
- public abstract void setLogo(final Image image);
+ void setLogo(StateToken stateToken, boolean clipped);
- public abstract void setLogo(final String groupName);
+ void setLogo(final String groupName);
- public abstract void setPutYourLogoVisible(final boolean visible);
+ void setPutYourLogoVisible(final boolean visible);
- public abstract void setTheme(final WsTheme oldTheme, WsTheme newTheme);
+ void setTheme(final WsTheme oldTheme, WsTheme newTheme);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -5,7 +5,6 @@
import com.calclab.suco.client.listener.Listener0;
import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
@@ -83,16 +82,6 @@
extRootBody.mask(message, "x-mask-loading");
}
- public void openUrl(final String url) {
- // final Frame urlFrame = new Frame(url);
- // final Window window = new Window();
- // window.add(urlFrame);
- // window.show();
- // window.close();
- // Window.open(url, "", "_blank");
- DOM.setElementAttribute(RootPanel.get("__download").getElement(), "src", url);
- }
-
public void promptMessage(final String title, final String message, final Listener0 onEnter) {
MessageBox.prompt(title, message, new MessageBox.PromptCallback() {
public void execute(final String btnID, final String text) {
Modified: trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -78,7 +78,7 @@
return false;
}
});
- registry.addAction(DEF_CONTENT_TYPE_ID, adminAction);
+ registry.addAction(adminAction, DEF_CONTENT_TYPE_ID);
assertTrue(!registry.checkEnabling(adminAction, new StateToken()));
}
@@ -89,14 +89,14 @@
return true;
}
});
- registry.addAction(DEF_CONTENT_TYPE_ID, adminAction);
+ registry.addAction(adminAction, DEF_CONTENT_TYPE_ID);
assertTrue(registry.checkEnabling(adminAction, new StateToken()));
}
private void addDefActions() {
- registry.addAction(DEF_CONTENT_TYPE_ID, adminAction);
- registry.addAction(DEF_CONTENT_TYPE_ID, editorAction);
- registry.addAction(DEF_CONTENT_TYPE_ID, viewerAction);
+ registry.addAction(adminAction, DEF_CONTENT_TYPE_ID);
+ registry.addAction(editorAction, DEF_CONTENT_TYPE_ID);
+ registry.addAction(viewerAction, DEF_CONTENT_TYPE_ID);
}
private void checkActionLists(final int expectedActions, final AccessRightsDTO accessRightsDTO,
Modified: trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -4,6 +4,7 @@
import org.junit.Test;
import org.mockito.Mockito;
import org.ourproject.kune.platf.client.app.HistoryWrapper;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.workspace.client.site.SiteToken;
@@ -23,7 +24,7 @@
@SuppressWarnings("unchecked")
@Test
public void changeStateWithDifferentGroupsMustFireListener() {
- final Listener2<String, String> groupListener = Mockito.mock(Listener2.class);
+ final Listener2<GroupDTO, GroupDTO> groupListener = Mockito.mock(Listener2.class);
stateManager.onGroupChanged(groupListener);
stateManager.onHistoryChanged("group1.tool1");
stateManager.onHistoryChanged("group2.tool1");
Modified: trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/upload/FileUploaderPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/upload/FileUploaderPresenterTest.java 2008-09-29 08:54:12 UTC (rev 894)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/upload/FileUploaderPresenterTest.java 2008-09-29 08:55:01 UTC (rev 895)
@@ -8,6 +8,8 @@
import org.mockito.Mockito;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.ui.upload.FileUploaderPresenter;
+import org.ourproject.kune.platf.client.ui.upload.FileUploaderView;
public class FileUploaderPresenterTest {
1
0
Author: vjrj
Date: 2008-09-29 10:54:12 +0200 (Mon, 29 Sep 2008)
New Revision: 894
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/
Log:
ya estamos con errores en el svn y si la abuela fuma
1
0
29 Sep '08
Author: vjrj
Date: 2008-09-29 10:47:43 +0200 (Mon, 29 Sep 2008)
New Revision: 893
Removed:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/upload/
Log:
ya estamos con errores en el svn y si la abuela fuma
1
0
29 Sep '08
Author: vjrj
Date: 2008-09-29 10:47:04 +0200 (Mon, 29 Sep 2008)
New Revision: 892
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/
trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileDownloadUtils.java
Log:
ya estamos con errores en el svn y si la abuela fuma
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileDownloadUtils.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileDownloadUtils.java 2008-09-29 08:35:20 UTC (rev 891)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileDownloadUtils.java 2008-09-29 08:47:04 UTC (rev 892)
@@ -0,0 +1,34 @@
+package org.ourproject.kune.platf.client.ui.download;
+
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.state.Session;
+
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.ui.RootPanel;
+
+public class FileDownloadUtils {
+
+ private static final String DOWNLOADSERVLET = "/kune/servlets/FileDownloadManager";
+
+ private final Session session;
+
+ public FileDownloadUtils(final Session session) {
+ this.session = session;
+ }
+
+ public void downloadFile(final StateToken token) {
+ final String url = calculateUrl(token, true);
+ DOM.setElementAttribute(RootPanel.get("__download").getElement(), "src", url);
+ }
+
+ public String getImageUrl(final StateToken token) {
+ return calculateUrl(token, false);
+ }
+
+ private String calculateUrl(final StateToken token, final boolean download) {
+ final String url = DOWNLOADSERVLET + "?token=" + token + "&hash=" + session.getUserHash() + "&download="
+ + (download ? "true" : "false");
+ return url;
+ }
+
+}
1
0
Author: vjrj
Date: 2008-09-29 10:35:20 +0200 (Mon, 29 Sep 2008)
New Revision: 891
Modified:
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
Log:
ya estamos con errores en el svn y si la abuela fuma
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-09-27 20:03:56 UTC (rev 890)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-09-29 08:35:20 UTC (rev 891)
@@ -4,9 +4,11 @@
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_DOCUMENT;
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_FOLDER;
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_GALLERY;
+import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_POST;
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_ROOT;
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_UPLOADEDFILE;
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_WIKI;
+import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_WIKIPAGE;
import org.ourproject.kune.platf.client.actions.ActionButtonDescriptor;
import org.ourproject.kune.platf.client.actions.ActionDescriptor;
@@ -16,19 +18,24 @@
import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
+import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.platf.client.ui.dialogs.upload.FileUploader;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
+import org.ourproject.kune.platf.client.ui.upload.FileUploader;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
+import org.ourproject.kune.workspace.client.entitylogo.EntityLogo;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.site.Site;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import com.calclab.suco.client.ioc.Provider;
import com.calclab.suco.client.listener.Listener;
@@ -43,22 +50,27 @@
private final ContentActionRegistry contentActionRegistry;
private final ContextActionRegistry contextActionRegistry;
private final Provider<ContentServiceAsync> contentServiceProvider;
- private final WorkspaceSkeleton ws;
+ private final Provider<GroupServiceAsync> groupServiceProvider;
+ private final Provider<FileDownloadUtils> fileDownloadProvider;
+ private final EntityLogo entityLogo;
public DocumentClientActions(final I18nUITranslationService i18n, final ContextNavigator contextNavigator,
- final Session session, final StateManager stateManager, final WorkspaceSkeleton ws,
+ final Session session, final StateManager stateManager,
final Provider<ContentServiceAsync> contentServiceProvider,
- final Provider<FileUploader> fileUploaderProvider, final ContentActionRegistry contentActionRegistry,
- final ContextActionRegistry contextActionRegistry) {
+ final Provider<GroupServiceAsync> groupServiceProvider, final Provider<FileUploader> fileUploaderProvider,
+ final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry,
+ final Provider<FileDownloadUtils> fileDownloadProvider, final EntityLogo entityLogo) {
this.i18n = i18n;
this.contextNavigator = contextNavigator;
this.session = session;
this.stateManager = stateManager;
- this.ws = ws;
this.contentServiceProvider = contentServiceProvider;
+ this.groupServiceProvider = groupServiceProvider;
this.fileUploaderProvider = fileUploaderProvider;
this.contextActionRegistry = contextActionRegistry;
this.contentActionRegistry = contentActionRegistry;
+ this.fileDownloadProvider = fileDownloadProvider;
+ this.entityLogo = entityLogo;
createActions();
}
@@ -134,14 +146,14 @@
}
});
- final ActionMenuDescriptor<StateToken> rename = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Editor,
+ final ActionMenuDescriptor<StateToken> renameCtn = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Editor,
ActionPosition.topbarAndItemMenu, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
contextNavigator.editItem(stateToken);
}
});
- rename.setTextDescription(i18n.t("Rename"));
- rename.setParentMenuTitle(i18n.t("File"));
+ renameCtn.setTextDescription(i18n.t("Rename"));
+ renameCtn.setParentMenuTitle(i18n.t("File"));
final ActionMenuDescriptor<StateToken> renameCtx = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Editor,
ActionPosition.topbarAndItemMenu, new Listener<StateToken>() {
@@ -221,7 +233,7 @@
final ActionDescriptor<StateToken> uploadMedia = createUploadAction(i18n.t("Upload media"),
"images/nav/upload.png", i18n.t("Upload some media (images, videos)"), session
.getGalleryPermittedExtensions());
- contextActionRegistry.addAction(TYPE_GALLERY, uploadMedia);
+ contextActionRegistry.addAction(uploadMedia, TYPE_GALLERY);
}
});
@@ -244,49 +256,93 @@
downloadCtx.setTextDescription(i18n.t("Download"));
downloadCtx.setIconUrl("images/nav/download.png");
- contextActionRegistry.addAction(TYPE_FOLDER, go);
- contextActionRegistry.addAction(TYPE_FOLDER, addDoc);
- contextActionRegistry.addAction(TYPE_FOLDER, addFolder);
- contextActionRegistry.addAction(TYPE_FOLDER, renameCtx);
- contextActionRegistry.addAction(TYPE_FOLDER, refreshCtx);
- contextActionRegistry.addAction(TYPE_FOLDER, delContainer);
- contextActionRegistry.addAction(TYPE_FOLDER, goGroupHome);
- contextActionRegistry.addAction(TYPE_FOLDER, uploadFile);
+ final ActionMenuDescriptor<StateToken> setGroupLogo = new ActionMenuDescriptor<StateToken>(
+ AccessRolDTO.Administrator, ActionPosition.topbarAndItemMenu, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ groupServiceProvider.get().setGroupLogo(session.getUserHash(), token,
+ new AsyncCallbackSimple<GroupDTO>() {
+ public void onSuccess(GroupDTO newGroup) {
+ Site.info("Logo selected");
+ if (session.getCurrentState().getGroup().getShortName().equals(
+ newGroup.getShortName())) {
+ session.getCurrentState().setGroup(newGroup);
+ }
+ entityLogo.refreshGroupLogo();
+ }
+ });
+ }
+ });
+ setGroupLogo.setParentMenuTitle(i18n.t("File"));
+ setGroupLogo.setTextDescription(i18n.t("Set this as the group logo"));
+ setGroupLogo.setIconUrl("images/nav/picture.png");
+ setGroupLogo.setEnableCondition(new ActionEnableCondition<StateToken>() {
+ public boolean mustBeEnabled(final StateToken param) {
+ final BasicMimeTypeDTO mime = session.getCurrentState().getMimeType();
+ return mime != null && mime.getType().equals("image");
+ }
+ });
- contextActionRegistry.addAction(TYPE_BLOG, go);
- contextActionRegistry.addAction(TYPE_BLOG, uploadFile);
- contextActionRegistry.addAction(TYPE_BLOG, refreshCtx);
- contextActionRegistry.addAction(TYPE_BLOG, setAsDefGroupContent);
+ final ActionMenuDescriptor<StateToken> setPublishStatus = createSetStatusAction(AccessRolDTO.Administrator,
+ i18n.t("Published online"), ContentStatusDTO.publishedOnline);
+ final ActionMenuDescriptor<StateToken> setEditionInProgressStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("Editing in progress"), ContentStatusDTO.editingInProgress);
+ final ActionMenuDescriptor<StateToken> setRejectStatus = createSetStatusAction(AccessRolDTO.Administrator, i18n
+ .t("Rejected"), ContentStatusDTO.rejected);
+ final ActionMenuDescriptor<StateToken> setSubmittedForPublishStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("Submitted for publish"), ContentStatusDTO.publishedOnline);
+ final ActionMenuDescriptor<StateToken> setInTheDustBinStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("In the dustbin"), ContentStatusDTO.inTheDustbin);
- contextActionRegistry.addAction(TYPE_GALLERY, go);
- contextActionRegistry.addAction(TYPE_GALLERY, goGroupHome);
- contextActionRegistry.addAction(TYPE_GALLERY, refreshCtx);
+ final ActionButtonDescriptor<StateToken> translateContent = new ActionButtonDescriptor<StateToken>(
+ AccessRolDTO.Editor, ActionPosition.topbar, new Listener<StateToken>() {
+ public void onEvent(final StateToken stateToken) {
+ Site.important(i18n.t("Sorry, this functionality is currently in development"));
+ }
+ });
+ translateContent.setTextDescription(i18n.tWithNT("Translate", "used in button"));
+ translateContent.setToolTip(i18n.t("Translate this document to other languages"));
+ translateContent.setIconUrl("images/language.gif");
- contextActionRegistry.addAction(TYPE_UPLOADEDFILE, go);
- contextActionRegistry.addAction(TYPE_UPLOADEDFILE, setAsDefGroupContent);
- contentActionRegistry.addAction(TYPE_UPLOADEDFILE, rename);
- contentActionRegistry.addAction(TYPE_UPLOADEDFILE, refreshCnt);
- contentActionRegistry.addAction(TYPE_UPLOADEDFILE, delContent);
- contentActionRegistry.addAction(TYPE_UPLOADEDFILE, download);
- contextActionRegistry.addAction(TYPE_UPLOADEDFILE, downloadCtx);
+ final ActionButtonDescriptor<StateToken> editContent = new ActionButtonDescriptor<StateToken>(
+ AccessRolDTO.Editor, ActionPosition.topbar, new Listener<StateToken>() {
+ public void onEvent(final StateToken stateToken) {
+ }
+ });
+ editContent.setTextDescription(i18n.tWithNT("Edit", "used in button"));
+ editContent.setIconUrl("images/content_edit.png");
- contextActionRegistry.addAction(TYPE_WIKI, go);
- contextActionRegistry.addAction(TYPE_WIKI, goGroupHome);
- contextActionRegistry.addAction(TYPE_WIKI, refreshCtx);
+ final String[] all = { TYPE_ROOT, TYPE_FOLDER, TYPE_DOCUMENT, TYPE_GALLERY, TYPE_BLOG, TYPE_POST, TYPE_WIKI,
+ TYPE_WIKIPAGE, TYPE_UPLOADEDFILE };
+ final String[] containersNoRoot = { TYPE_FOLDER, TYPE_GALLERY, TYPE_BLOG, TYPE_WIKI };
+ final String[] containers = { TYPE_ROOT, TYPE_FOLDER, TYPE_GALLERY, TYPE_BLOG, TYPE_WIKI };
+ final String[] contents = { TYPE_DOCUMENT, TYPE_POST, TYPE_WIKIPAGE, TYPE_UPLOADEDFILE };
+ final String[] contentsModerated = { TYPE_DOCUMENT, TYPE_POST, TYPE_UPLOADEDFILE };
- contextActionRegistry.addAction(TYPE_ROOT, addDoc);
- contextActionRegistry.addAction(TYPE_ROOT, addFolder);
- contextActionRegistry.addAction(TYPE_ROOT, addGallery);
- contextActionRegistry.addAction(TYPE_ROOT, addWiki);
- contextActionRegistry.addAction(TYPE_ROOT, refreshCtx);
- contextActionRegistry.addAction(TYPE_ROOT, goGroupHome);
- contextActionRegistry.addAction(TYPE_ROOT, uploadFile);
-
- contextActionRegistry.addAction(TYPE_DOCUMENT, go);
- contextActionRegistry.addAction(TYPE_DOCUMENT, setAsDefGroupContent);
- contentActionRegistry.addAction(TYPE_DOCUMENT, rename);
- contentActionRegistry.addAction(TYPE_DOCUMENT, refreshCnt);
- contentActionRegistry.addAction(TYPE_DOCUMENT, delContent);
+ contentActionRegistry.addAction(setPublishStatus, contentsModerated);
+ contentActionRegistry.addAction(setEditionInProgressStatus, contentsModerated);
+ contentActionRegistry.addAction(setRejectStatus, contentsModerated);
+ contentActionRegistry.addAction(setSubmittedForPublishStatus, contentsModerated);
+ contentActionRegistry.addAction(setInTheDustBinStatus, contentsModerated);
+ contextActionRegistry.addAction(addDoc, TYPE_ROOT, TYPE_FOLDER);
+ contextActionRegistry.addAction(addFolder, TYPE_ROOT, TYPE_FOLDER);
+ contextActionRegistry.addAction(addGallery, TYPE_ROOT);
+ contextActionRegistry.addAction(addWiki, TYPE_ROOT);
+ contextActionRegistry.addAction(go, all);
+ contextActionRegistry.addAction(uploadFile, TYPE_ROOT, TYPE_FOLDER, TYPE_BLOG);
+ contentActionRegistry.addAction(download, TYPE_UPLOADEDFILE);
+ contextActionRegistry.addAction(renameCtx, containersNoRoot);
+ contentActionRegistry.addAction(renameCtn, contents);
+ contextActionRegistry.addAction(refreshCtx, containers);
+ contentActionRegistry.addAction(refreshCnt, contents);
+ contentActionRegistry.addAction(delContent, contents);
+ contextActionRegistry.addAction(delContainer, containersNoRoot);
+ contextActionRegistry.addAction(setAsDefGroupContent, TYPE_BLOG, TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
+ contextActionRegistry.addAction(goGroupHome, containers);
+ contentActionRegistry.addAction(setGroupLogo, TYPE_UPLOADEDFILE);
+ contextActionRegistry.addAction(downloadCtx, TYPE_UPLOADEDFILE);
+ contentActionRegistry.addAction(editContent, TYPE_DOCUMENT, TYPE_POST, TYPE_WIKIPAGE);
+ contentActionRegistry.addAction(translateContent, TYPE_DOCUMENT, TYPE_FOLDER, TYPE_GALLERY, TYPE_UPLOADEDFILE,
+ TYPE_WIKI, TYPE_WIKIPAGE);
}
private ActionMenuDescriptor<StateToken> createFolderAction(final String contentTypeId, final String iconUrl,
@@ -313,6 +369,30 @@
return addFolder;
}
+ private ActionMenuDescriptor<StateToken> createSetStatusAction(final AccessRolDTO rol,
+ final String textDescription, final ContentStatusDTO status) {
+ final ActionMenuDescriptor<StateToken> action = new ActionMenuDescriptor<StateToken>(rol,
+ ActionPosition.topbarAndItemMenu, new Listener<StateToken>() {
+ public void onEvent(final StateToken stateToken) {
+ final AsyncCallbackSimple<Object> callback = new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ session.getCurrentState().setStatus(status);
+ }
+ };
+ if (status.equals(ContentStatusDTO.publishedOnline) || status.equals(ContentStatusDTO.rejected)) {
+ contentServiceProvider.get().setStatusAsAdmin(session.getUserHash(), stateToken, status,
+ callback);
+ } else {
+ contentServiceProvider.get().setStatus(session.getUserHash(), stateToken, status, callback);
+ }
+ }
+ });
+ action.setTextDescription(textDescription);
+ action.setParentMenuTitle(i18n.t("File"));
+ action.setParentSubMenuTitle(i18n.t("Change the status"));
+ return action;
+ }
+
private ActionButtonDescriptor<StateToken> createUploadAction(final String textDescription, final String iconUrl,
final String toolTip, final String permitedExtensions) {
final ActionButtonDescriptor<StateToken> uploadFile;
@@ -334,8 +414,6 @@
}
private void downloadContent(final StateToken token) {
- final String url = "/kune/servlets/FileDownloadManager?token=" + token + "&hash=" + session.getUserHash()
- + "&download=true";
- ws.openUrl(url);
+ fileDownloadProvider.get().downloadFile(token);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-09-27 20:03:56 UTC (rev 890)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-09-29 08:35:20 UTC (rev 891)
@@ -1,12 +1,5 @@
package org.ourproject.kune.docs.client;
-import org.ourproject.kune.docs.client.actions.ContentEditAction;
-import org.ourproject.kune.docs.client.actions.ContentEditInProgressAction;
-import org.ourproject.kune.docs.client.actions.ContentPublishAction;
-import org.ourproject.kune.docs.client.actions.ContentRejectAction;
-import org.ourproject.kune.docs.client.actions.ContentSubmitForPublishAction;
-import org.ourproject.kune.docs.client.actions.ContentTranslationAction;
-import org.ourproject.kune.docs.client.actions.ContentTrashAction;
import org.ourproject.kune.docs.client.cnt.DocumentContent;
import org.ourproject.kune.docs.client.cnt.DocumentContentPanel;
import org.ourproject.kune.docs.client.cnt.DocumentContentPresenter;
@@ -35,14 +28,17 @@
import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPresenter;
import org.ourproject.kune.platf.client.app.ToolGroup;
import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.services.KuneErrorHandler;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.tool.ToolSelector;
-import org.ourproject.kune.platf.client.ui.dialogs.upload.FileUploader;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
import org.ourproject.kune.platf.client.ui.rate.RateIt;
+import org.ourproject.kune.platf.client.ui.upload.FileUploader;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.editor.TextEditor;
+import org.ourproject.kune.workspace.client.entitylogo.EntityLogo;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.tags.TagsSummary;
@@ -72,49 +68,12 @@
}
});
- register(Singleton.class, new Factory<ContentPublishAction>(ContentPublishAction.class) {
- public ContentPublishAction create() {
- return new ContentPublishAction($(Session.class), $$(ContentServiceAsync.class),
- $(I18nUITranslationService.class));
- }
- }, new Factory<ContentRejectAction>(ContentRejectAction.class) {
- public ContentRejectAction create() {
- return new ContentRejectAction($(Session.class), $$(ContentServiceAsync.class),
- $(I18nUITranslationService.class));
- }
- }, new Factory<ContentEditInProgressAction>(ContentEditInProgressAction.class) {
- public ContentEditInProgressAction create() {
- return new ContentEditInProgressAction($(Session.class), $$(ContentServiceAsync.class),
- $(I18nUITranslationService.class));
- }
- }, new Factory<ContentSubmitForPublishAction>(ContentSubmitForPublishAction.class) {
- public ContentSubmitForPublishAction create() {
- return new ContentSubmitForPublishAction($(Session.class), $$(ContentServiceAsync.class),
- $(I18nUITranslationService.class));
- }
- }, new Factory<ContentTrashAction>(ContentTrashAction.class) {
- public ContentTrashAction create() {
- return new ContentTrashAction($(Session.class), $$(ContentServiceAsync.class),
- $(I18nUITranslationService.class));
- }
- });
-
- register(Singleton.class, new Factory<ContentEditAction>(ContentEditAction.class) {
- public ContentEditAction create() {
- return new ContentEditAction($(I18nUITranslationService.class));
- }
- }, new Factory<ContentTranslationAction>(ContentTranslationAction.class) {
- public ContentTranslationAction create() {
- return new ContentTranslationAction($(I18nUITranslationService.class));
- }
- });
-
register(ToolGroup.class, new Factory<DocumentClientActions>(DocumentClientActions.class) {
public DocumentClientActions create() {
return new DocumentClientActions($(I18nUITranslationService.class), $(ContextNavigator.class),
- $(Session.class), $(StateManager.class), $(WorkspaceSkeleton.class),
- $$(ContentServiceAsync.class), $$(FileUploader.class), $(ContentActionRegistry.class),
- $(ContextActionRegistry.class));
+ $(Session.class), $(StateManager.class), $$(ContentServiceAsync.class),
+ $$(GroupServiceAsync.class), $$(FileUploader.class), $(ContentActionRegistry.class),
+ $(ContextActionRegistry.class), $$(FileDownloadUtils.class), $(EntityLogo.class));
}
});
@@ -130,20 +89,6 @@
$(RateIt.class), $$(DocumentReader.class), $$(TextEditor.class), $$(FolderViewer.class),
$$(ContentServiceAsync.class), toolbar, $(ContentActionRegistry.class));
final DocumentContentPanel panel = new DocumentContentPanel($(WorkspaceSkeleton.class));
-
- $(ContentActionRegistry.class).addAction(DocumentClientTool.TYPE_DOCUMENT,
- $(ContentPublishAction.class));
- $(ContentActionRegistry.class)
- .addAction(DocumentClientTool.TYPE_DOCUMENT, $(ContentRejectAction.class));
- $(ContentActionRegistry.class).addAction(DocumentClientTool.TYPE_DOCUMENT,
- $(ContentSubmitForPublishAction.class));
- $(ContentActionRegistry.class).addAction(DocumentClientTool.TYPE_DOCUMENT,
- $(ContentEditInProgressAction.class));
- $(ContentActionRegistry.class).addAction(DocumentClientTool.TYPE_DOCUMENT, $(ContentTrashAction.class));
-
- $(ContentActionRegistry.class).addAction(DocumentClientTool.TYPE_DOCUMENT, $(ContentEditAction.class));
- $(ContentActionRegistry.class).addAction(DocumentClientTool.TYPE_DOCUMENT,
- $(ContentTranslationAction.class));
presenter.init(panel);
return presenter;
}
1
0
Author: vjrj
Date: 2008-09-27 22:03:56 +0200 (Sat, 27 Sep 2008)
New Revision: 890
Added:
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/ContentSimpleDTO.java
trunk/src/main/java/org/ourproject/kune/platf/public/images/emite-room.png
trunk/src/main/java/org/ourproject/kune/platf/public/images/new-chat.gif
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java
Removed:
trunk/src/main/java/org/ourproject/kune/platf/client/dto/ContentDTO.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/TitleBar.java
Modified:
trunk/pom.xml
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbar.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarView.java
trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationComponentGroup.java
trunk/src/main/java/org/ourproject/kune/platf/client/app/ToolGroup.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/ContainerDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneCoreModule.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileDownloadManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUtils.java
trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SiteBar.java
trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePanel.java
trunk/src/main/resources/dozerBeanMapping.xml
trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceAddTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/FileUtilsTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/mapper/MapperTest.java
Log:
Up/Download refactor and db adjusts. ActionToolbar attach/detach and bug fixes. New "chat about" ;) action:
chatAbout.setIconUrl("images/emite-room.png");
chatAbout.setToolTip("Chat online about this");
chatAbout.setLeftSeparator(ActionButtonSeparator.fill);
contentActionRegistry.addAction(DocumentClientTool.TYPE_DOCUMENT, chatAbout);
contentActionRegistry.addAction(DocumentClientTool.TYPE_GALLERY, chatAbout);
contentActionRegistry.addAction(DocumentClientTool.TYPE_WIKIPAGE, chatAbout);
contentActionRegistry.addAction(DocumentClientTool.TYPE_POST, chatAbout);
contentActionRegistry.addAction(DocumentClientTool.TYPE_UPLOADEDFILE, chatAbout);
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/pom.xml 2008-09-27 20:03:56 UTC (rev 890)
@@ -83,7 +83,7 @@
<dependency>
<groupId>com.calclab</groupId>
<artifactId>suco</artifactId>
- <version>0.5.02</version>
+ <version>0.5.06</version>
</dependency>
<!-- xmpp -->
Added: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -0,0 +1,54 @@
+package org.ourproject.kune.chat.client;
+
+import org.ourproject.kune.docs.client.DocumentClientTool;
+import org.ourproject.kune.platf.client.actions.ActionButtonDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionButtonSeparator;
+import org.ourproject.kune.platf.client.actions.ActionPosition;
+import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
+import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
+import org.ourproject.kune.platf.client.dto.AccessRolDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+
+import com.calclab.suco.client.ioc.Provider;
+import com.calclab.suco.client.listener.Listener;
+
+public class ChatClientActions {
+
+ private final I18nUITranslationService i18n;
+ private final Session session;
+ private final Provider<ChatClientTool> chatClientToolProvider;
+ private final ContentActionRegistry contentActionRegistry;
+
+ public ChatClientActions(final I18nUITranslationService i18n, final Session session,
+ final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry,
+ final Provider<ChatClientTool> chatClientToolProvider) {
+ this.i18n = i18n;
+ this.session = session;
+ this.contentActionRegistry = contentActionRegistry;
+ this.chatClientToolProvider = chatClientToolProvider;
+ createActions();
+ }
+
+ private void createActions() {
+ final ActionButtonDescriptor<StateToken> chatAbout = new ActionButtonDescriptor<StateToken>(
+ AccessRolDTO.Viewer, ActionPosition.topbar, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ chatClientToolProvider.get().getChat().joinRoom(token.toString().replaceAll("\\.", "-"),
+ session.getCurrentUserInfo().getShortName());
+ chatClientToolProvider.get().getChat().show();
+ }
+ });
+ // chatAbout.setTextDescription(i18n.t("Chat about"));
+ chatAbout.setIconUrl("images/emite-room.png");
+ chatAbout.setToolTip("Chat online about this");
+ chatAbout.setLeftSeparator(ActionButtonSeparator.fill);
+
+ contentActionRegistry.addAction(DocumentClientTool.TYPE_DOCUMENT, chatAbout);
+ contentActionRegistry.addAction(DocumentClientTool.TYPE_GALLERY, chatAbout);
+ contentActionRegistry.addAction(DocumentClientTool.TYPE_WIKIPAGE, chatAbout);
+ contentActionRegistry.addAction(DocumentClientTool.TYPE_POST, chatAbout);
+ contentActionRegistry.addAction(DocumentClientTool.TYPE_UPLOADEDFILE, chatAbout);
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -14,6 +14,8 @@
import org.ourproject.kune.chat.client.ctx.ChatContextPresenter;
import org.ourproject.kune.chat.client.ctx.rooms.RoomsAdmin;
import org.ourproject.kune.chat.client.ctx.rooms.RoomsAdminPresenter;
+import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
+import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
import org.ourproject.kune.platf.client.app.Application;
import org.ourproject.kune.platf.client.app.ToolGroup;
import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
@@ -46,6 +48,13 @@
}
});
+ register(ToolGroup.class, new Factory<ChatClientActions>(ChatClientActions.class) {
+ public ChatClientActions create() {
+ return new ChatClientActions($(I18nUITranslationService.class), $(Session.class),
+ $(ContentActionRegistry.class), $(ContextActionRegistry.class), $$(ChatClientTool.class));
+ }
+ });
+
register(Singleton.class, new Factory<ChatContent>(ChatContent.class) {
public ChatContent create() {
final WorkspaceDeckPanel panel = new WorkspaceDeckPanel();
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -28,5 +28,7 @@
void logout();
+ void show();
+
void stop();
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -82,7 +82,6 @@
} else {
emiteDialog.setEnableStatusUI(true);
emiteDialog.refreshUserInfo(chatOptions.userOptions);
-
}
emiteDialog.show(OwnStatus.online);
if (traybarButton == null) {
@@ -134,8 +133,12 @@
}
}
+ public void show() {
+ emiteDialog.show();
+ }
+
public void stop() {
- // emiteDialog.destroy();
+ emiteDialog.destroy();
emiteDialog.getSession().logout();
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -16,7 +16,7 @@
import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
import org.ourproject.kune.platf.client.dto.AccessRolDTO;
-import org.ourproject.kune.platf.client.dto.ContentDTO;
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
@@ -172,8 +172,8 @@
public void onEvent(final StateToken token) {
Site.showProgressProcessing();
contentServiceProvider.get().setAsDefaultContent(session.getUserHash(), token,
- new AsyncCallbackSimple<ContentDTO>() {
- public void onSuccess(final ContentDTO defContent) {
+ new AsyncCallbackSimple<ContentSimpleDTO>() {
+ public void onSuccess(final ContentSimpleDTO defContent) {
session.getCurrentState().getGroup().setDefaultContent(defContent);
Site.hideProgress();
Site.info(i18n.t("Document selected as the group homepage"));
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -87,6 +87,7 @@
public void onEvent(final StateDTO state) {
if (state.getToolName().equals(DocumentClientTool.NAME)) {
setState(state);
+ toolbar.attach();
}
}
});
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbar.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbar.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -5,8 +5,12 @@
public interface ActionToolbar {
+ void attach();
+
void clear();
+ void detach();
+
void disableMenusAndClearButtons();
void showActions(ActionItemCollection<StateToken> actionItemCollection, boolean isItemSelected);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -10,7 +10,7 @@
import org.ourproject.kune.platf.client.actions.ActionMenuDescriptor;
import org.ourproject.kune.platf.client.actions.ActionPosition;
import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.workspace.client.skel.Toolbar;
+import org.ourproject.kune.workspace.client.skel.SimpleToolbar;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import com.calclab.suco.client.ioc.Provider;
@@ -34,19 +34,23 @@
private final HashMap<String, Menu> toolbarMenus;
private final ArrayList<Widget> removableToolbarItems;
private final HashMap<String, Item> menuItems;
- private final WorkspaceSkeleton ws;
private final Provider<ActionManager> actionManagerProvider;
private final Position position;
+ private final SimpleToolbar topbar;
+ private final SimpleToolbar bottombar;
+ private final WorkspaceSkeleton ws;
public ActionToolbarPanel(final Position position, final Provider<ActionManager> actionManagerProvider,
final WorkspaceSkeleton ws) {
+ this.ws = ws;
+ topbar = new SimpleToolbar();
+ bottombar = new SimpleToolbar();
this.position = position;
this.actionManagerProvider = actionManagerProvider;
- this.ws = ws;
+
toolbarMenus = new HashMap<String, Menu>();
removableToolbarItems = new ArrayList<Widget>();
menuItems = new HashMap<String, Item>();
-
}
public void addButtonAction(final ActionItem<StateToken> actionItem) {
@@ -69,7 +73,7 @@
}
button.setTooltip(action.getToolTip());
- final Toolbar toolbar = getToolbar(pos);
+ final SimpleToolbar toolbar = getToolbar(pos);
if (action.hasLeftSeparator()) {
removableToolbarItems.add(add(toolbar, action.getLeftSeparator()));
}
@@ -96,13 +100,29 @@
} else {
item.disable();
}
- doLayoutIfNeeded(pos);
}
+ public void attach() {
+ if (!topbar.isAttached()) {
+ switch (position) {
+ case content:
+ ws.getEntityWorkspace().getContentTopBar().add(topbar);
+ ws.getEntityWorkspace().getContentBottomBar().add(bottombar);
+ break;
+ case context:
+ default:
+ ws.getEntityWorkspace().getContextTopBar().add(topbar);
+ ws.getEntityWorkspace().getContextBottomBar().add(bottombar);
+ }
+ }
+ }
+
public void clear() {
toolbarMenus.clear();
menuItems.clear();
removableToolbarItems.clear();
+ topbar.removeAll();
+ bottombar.removeAll();
getToolbar(ActionPosition.topbar).removeAll();
getToolbar(ActionPosition.bottombar).removeAll();
}
@@ -112,21 +132,34 @@
widget.removeFromParent();
}
removableToolbarItems.clear();
- doLayoutIfNeeded();
}
+ public void detach() {
+ if (topbar.isAttached()) {
+ switch (position) {
+ case content:
+ ws.getEntityWorkspace().getContentTopBar().remove(topbar);
+ ws.getEntityWorkspace().getContentBottomBar().remove(bottombar);
+ break;
+ case context:
+ default:
+ ws.getEntityWorkspace().getContextTopBar().remove(topbar);
+ ws.getEntityWorkspace().getContextBottomBar().remove(bottombar);
+ }
+ }
+ }
+
public void disableAllMenuItems() {
for (final Item item : menuItems.values()) {
item.disable();
}
- doLayoutIfNeeded();
}
private void add(final ActionPosition toolbar, final Widget widget) {
getToolbar(toolbar).add(widget);
}
- private Widget add(final Toolbar toolbar, final ActionButtonSeparator separator) {
+ private Widget add(final SimpleToolbar toolbar, final ActionButtonSeparator separator) {
switch (separator) {
case fill:
return toolbar.addFill();
@@ -172,7 +205,6 @@
}
menu.addItem(item);
}
- doLayoutIfNeeded(toolBarPos);
return item;
}
@@ -189,15 +221,6 @@
return menu;
}
- private void doLayoutIfNeeded() {
- doLayoutIfNeeded(ActionPosition.topbar);
- doLayoutIfNeeded(ActionPosition.bottombar);
- }
-
- private void doLayoutIfNeeded(final ActionPosition pos) {
- getToolbar(pos).doLayoutIfNeeded();
- }
-
private String genMenuKey(final ActionPosition pos, final String menuTitle, final String menuSubTitle,
final String actionText) {
@@ -207,27 +230,15 @@
return basePart + subMenuPart + itemPart;
}
- private Toolbar getToolbar(final ActionPosition pos) {
+ private SimpleToolbar getToolbar(final ActionPosition pos) {
switch (pos) {
case bootombarAndItemMenu:
case bottombar:
- switch (position) {
- case content:
- return ws.getEntityWorkspace().getContentBottomBar();
- case context:
- default:
- return ws.getEntityWorkspace().getContextBottomBar();
- }
+ return bottombar;
case topbar:
case topbarAndItemMenu:
default:
- switch (position) {
- case content:
- return ws.getEntityWorkspace().getContentTopBar();
- case context:
- default:
- return ws.getEntityWorkspace().getContextTopBar();
- }
+ return topbar;
}
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -19,10 +19,18 @@
this.actionRegistry = actionRegistry;
}
+ public void attach() {
+ toolbar.attach();
+ }
+
public void clear() {
toolbar.clear();
}
+ public void detach() {
+ toolbar.detach();
+ }
+
public void disableMenusAndClearButtons() {
toolbar.clear();
// With action-item, this must be redesigned
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarView.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarView.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -9,10 +9,14 @@
void addMenuAction(ActionItem<StateToken> action, boolean enable);
+ void attach();
+
void clear();
void clearRemovableActions();
+ void detach();
+
void disableAllMenuItems();
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationComponentGroup.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationComponentGroup.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationComponentGroup.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -1,7 +1,19 @@
package org.ourproject.kune.platf.client.app;
-import com.calclab.suco.client.ioc.decorator.GroupedSingleton;
+import com.calclab.suco.client.ioc.Container;
+import com.calclab.suco.client.ioc.Provider;
+import com.calclab.suco.client.ioc.decorator.ProviderCollection;
+import com.calclab.suco.client.ioc.decorator.Singleton;
-public class ApplicationComponentGroup extends GroupedSingleton {
+public class ApplicationComponentGroup extends ProviderCollection {
+ public ApplicationComponentGroup(final Container container) {
+ super(container, Singleton.instance);
+ }
+
+ public void createAll() {
+ for (final Provider<?> p : getProviders()) {
+ p.get();
+ }
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/ToolGroup.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ToolGroup.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ToolGroup.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -1,6 +1,19 @@
package org.ourproject.kune.platf.client.app;
-import com.calclab.suco.client.ioc.decorator.GroupedSingleton;
+import com.calclab.suco.client.ioc.Container;
+import com.calclab.suco.client.ioc.Provider;
+import com.calclab.suco.client.ioc.decorator.ProviderCollection;
+import com.calclab.suco.client.ioc.decorator.Singleton;
-public class ToolGroup extends GroupedSingleton {
+public class ToolGroup extends ProviderCollection {
+
+ public ToolGroup(final Container container) {
+ super(container, Singleton.instance);
+ }
+
+ public void createAll() {
+ for (final Provider<?> p : getProviders()) {
+ p.get();
+ }
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/ContainerDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/ContainerDTO.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/ContainerDTO.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -32,7 +32,7 @@
private Long parentFolderId;
private ContainerSimpleDTO[] absolutePath;
private List<ContainerSimpleDTO> childs;
- private List<ContentDTO> contents;
+ private List<ContentSimpleDTO> contents;
public ContainerDTO() {
}
@@ -45,7 +45,7 @@
return childs;
}
- public List<ContentDTO> getContents() {
+ public List<ContentSimpleDTO> getContents() {
return contents;
}
@@ -77,7 +77,7 @@
this.childs = childs;
}
- public void setContents(final List<ContentDTO> contents) {
+ public void setContents(final List<ContentSimpleDTO> contents) {
this.contents = contents;
}
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/dto/ContentDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/ContentDTO.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/ContentDTO.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -1,92 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-package org.ourproject.kune.platf.client.dto;
-
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
-public class ContentDTO implements IsSerializable {
-
- private Long id;
- private String title;
- private String typeId;
- private StateToken stateToken;
- private ContentStatusDTO status;
- private AccessRightsDTO rights;
- private BasicMimeTypeDTO mimeType;
-
- public Long getId() {
- return id;
- }
-
- public BasicMimeTypeDTO getMimeType() {
- return mimeType;
- }
-
- public AccessRightsDTO getRights() {
- return rights;
- }
-
- public StateToken getStateToken() {
- return stateToken;
- }
-
- public ContentStatusDTO getStatus() {
- return status;
- }
-
- public String getTitle() {
- return title;
- }
-
- public String getTypeId() {
- return typeId;
- }
-
- public void setId(final Long id) {
- this.id = id;
- }
-
- public void setMimeType(final BasicMimeTypeDTO mimeType) {
- this.mimeType = mimeType;
- }
-
- public void setRights(final AccessRightsDTO rights) {
- this.rights = rights;
- }
-
- public void setStateToken(final StateToken stateToken) {
- this.stateToken = stateToken;
- }
-
- public void setStatus(final ContentStatusDTO status) {
- this.status = status;
- }
-
- public void setTitle(final String title) {
- this.title = title;
- }
-
- public void setTypeId(final String typeId) {
- this.typeId = typeId;
- }
-
-}
Copied: trunk/src/main/java/org/ourproject/kune/platf/client/dto/ContentSimpleDTO.java (from rev 885, trunk/src/main/java/org/ourproject/kune/platf/client/dto/ContentDTO.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/ContentDTO.java 2008-09-26 01:40:25 UTC (rev 885)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/ContentSimpleDTO.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -0,0 +1,91 @@
+/*
+ *
+ * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package org.ourproject.kune.platf.client.dto;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+public class ContentSimpleDTO implements IsSerializable {
+
+ private Long id;
+ private String title;
+ private String typeId;
+ private StateToken stateToken;
+ private ContentStatusDTO status;
+ private AccessRightsDTO rights;
+ private BasicMimeTypeDTO mimeType;
+
+ public Long getId() {
+ return id;
+ }
+
+ public BasicMimeTypeDTO getMimeType() {
+ return mimeType;
+ }
+
+ public AccessRightsDTO getRights() {
+ return rights;
+ }
+
+ public StateToken getStateToken() {
+ return stateToken;
+ }
+
+ public ContentStatusDTO getStatus() {
+ return status;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getTypeId() {
+ return typeId;
+ }
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ public void setMimeType(final BasicMimeTypeDTO mimeType) {
+ this.mimeType = mimeType;
+ }
+
+ public void setRights(final AccessRightsDTO rights) {
+ this.rights = rights;
+ }
+
+ public void setStateToken(final StateToken stateToken) {
+ this.stateToken = stateToken;
+ }
+
+ public void setStatus(final ContentStatusDTO status) {
+ this.status = status;
+ }
+
+ public void setTitle(final String title) {
+ this.title = title;
+ }
+
+ public void setTypeId(final String typeId) {
+ this.typeId = typeId;
+ }
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -29,7 +29,7 @@
private String longName;
private String publicDesc;
private GroupType type;
- private ContentDTO defaultContent;
+ private ContentSimpleDTO defaultContent;
private LicenseDTO defaultLicense;
private String workspaceTheme;
private String tags;
@@ -94,7 +94,7 @@
return true;
}
- public ContentDTO getDefaultContent() {
+ public ContentSimpleDTO getDefaultContent() {
return defaultContent;
}
@@ -142,7 +142,7 @@
return result;
}
- public void setDefaultContent(final ContentDTO defaultContent) {
+ public void setDefaultContent(final ContentSimpleDTO defaultContent) {
this.defaultContent = defaultContent;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -24,7 +24,7 @@
import java.util.List;
import org.ourproject.kune.platf.client.dto.CommentDTO;
-import org.ourproject.kune.platf.client.dto.ContentDTO;
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
@@ -67,7 +67,7 @@
Integer save(String user, StateToken token, String content) throws DefaultException;
- ContentDTO setAsDefaultContent(String userHash, StateToken token);
+ ContentSimpleDTO setAsDefaultContent(String userHash, StateToken token);
I18nLanguageDTO setLanguage(String userHash, StateToken token, String languageCode) throws DefaultException;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -24,7 +24,7 @@
import java.util.List;
import org.ourproject.kune.platf.client.dto.CommentDTO;
-import org.ourproject.kune.platf.client.dto.ContentDTO;
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
@@ -66,7 +66,7 @@
void save(String user, StateToken token, String content, AsyncCallback<Integer> asyncCallback);
- void setAsDefaultContent(String userHash, StateToken token, AsyncCallback<ContentDTO> asyncCallback);
+ void setAsDefaultContent(String userHash, StateToken token, AsyncCallback<ContentSimpleDTO> asyncCallback);
void setLanguage(String userHash, StateToken token, String languageCode,
AsyncCallback<I18nLanguageDTO> asyncCallback);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneCoreModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneCoreModule.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneCoreModule.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -9,7 +9,7 @@
@Override
public void onLoad() {
- registerDecorator(ApplicationComponentGroup.class, new ApplicationComponentGroup());
- registerDecorator(ToolGroup.class, new ToolGroup());
+ registerDecorator(ApplicationComponentGroup.class, new ApplicationComponentGroup(container));
+ registerDecorator(ToolGroup.class, new ToolGroup(container));
}
}
Added: trunk/src/main/java/org/ourproject/kune/platf/public/images/emite-room.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/public/images/emite-room.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/java/org/ourproject/kune/platf/public/images/new-chat.gif
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/public/images/new-chat.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -122,6 +122,11 @@
@Embedded
private BasicMimeType mimeType;
+ /**
+ * filename if is an uploaded content
+ */
+ private String filename;
+
public Content() {
translations = new ArrayList<ContentTranslation>();
authors = new ArrayList<User>();
@@ -179,6 +184,10 @@
return deletedOn;
}
+ public String getFilename() {
+ return filename;
+ }
+
public Long getId() {
return id;
}
@@ -285,6 +294,10 @@
this.deletedOn = date;
}
+ public void setFilename(final String filename) {
+ this.filename = filename;
+ }
+
public void setId(final Long id) {
this.id = id;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileDownloadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileDownloadManager.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileDownloadManager.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -68,7 +68,7 @@
final Content cnt = getContentForDownload(userHash, stateToken);
final String absDir = kuneProperties.get(KuneProperties.UPLOAD_LOCATION) + FileUtils.toDir(stateToken);
- final String filename = new String(cnt.getLastRevision().getBody());
+ final String filename = cnt.getFilename();
final String absFilename = absDir + filename;
doBuildResp(resp, absFilename, cnt.getTitle(), cnt.getMimeType(), FileUtils
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -148,10 +148,12 @@
final User user = userSession.getUser();
final Container container = accessService.accessToContainer(ContentUtils.parseId(stateToken.getFolder()),
user, AccessRol.Editor);
+ final String preview = "Preview of this file (in development)";
final Content content = contentManager.createContent(FileUtils.getFileNameWithoutExtension(file.getName(),
- extension), filenameUTF8, user, container);
+ extension), preview, user, container);
content.setTypeId(DocumentServerTool.TYPE_UPLOADEDFILE);
content.setMimeType(new BasicMimeType(mimetype));
+ content.setFilename(filenameUTF8);
return content;
} catch (final Exception e) {
if (file != null && file.exists()) {
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUtils.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUtils.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUtils.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -12,20 +12,23 @@
* For filename extension info see:
* http://en.wikipedia.org/wiki/File_name_extension
*
- * @param fileName
+ * @param filename
* @return
*/
- public static String getFileNameExtension(final String fileName, final boolean withDot) {
+ public static String getFileNameExtension(final String filename, final boolean withDot) {
// also we can use FilenameUtils
- final int dotIndex = fileName.lastIndexOf(".");
+ if (filename == null) {
+ return "";
+ }
+ final int dotIndex = filename.lastIndexOf(".");
if (dotIndex == -1 || dotIndex == 0) {
return "";
} else {
if (withDot) {
- final String ext = fileName.substring(dotIndex);
+ final String ext = filename.substring(dotIndex);
return ext.length() == 1 ? "" : ext;
} else {
- return fileName.substring(dotIndex + 1);
+ return filename.substring(dotIndex + 1);
}
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -30,7 +30,7 @@
import org.ourproject.kune.chat.server.managers.XmppManager;
import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
import org.ourproject.kune.platf.client.dto.CommentDTO;
-import org.ourproject.kune.platf.client.dto.ContentDTO;
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
@@ -337,10 +337,10 @@
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Administrator)
@Transactional(type = TransactionType.READ_WRITE)
- public ContentDTO setAsDefaultContent(final String userHash, final StateToken token) {
+ public ContentSimpleDTO setAsDefaultContent(final String userHash, final StateToken token) {
final Content content = contentManager.find(ContentUtils.parseId(token.getDocument()));
groupManager.setDefaultContent(token.getGroup(), content);
- return mapper.map(content, ContentDTO.class);
+ return mapper.map(content, ContentSimpleDTO.class);
}
@Authenticated
@@ -446,7 +446,7 @@
return userSessionProvider.get();
}
- private void mapContentRightsInstate(final User user, final AccessLists groupAccessList, final ContentDTO siblingDTO) {
+ private void mapContentRightsInstate(final User user, final AccessLists groupAccessList, final ContentSimpleDTO siblingDTO) {
final Content sibling = contentManager.find(siblingDTO.getId());
final AccessLists lists = sibling.hasAccessList() ? sibling.getAccessLists() : groupAccessList;
siblingDTO.setRights(mapper.map(rightsService.get(user, lists), AccessRightsDTO.class));
@@ -455,10 +455,10 @@
private StateDTO mapState(final State state, final User user, final Group group) {
final StateDTO stateDTO = mapper.map(state, StateDTO.class);
final AccessLists groupAccessList = group.getSocialNetwork().getAccessLists();
- for (final ContentDTO siblingDTO : stateDTO.getRootContainer().getContents()) {
+ for (final ContentSimpleDTO siblingDTO : stateDTO.getRootContainer().getContents()) {
mapContentRightsInstate(user, groupAccessList, siblingDTO);
}
- for (final ContentDTO siblingDTO : stateDTO.getContainer().getContents()) {
+ for (final ContentSimpleDTO siblingDTO : stateDTO.getContainer().getContents()) {
mapContentRightsInstate(user, groupAccessList, siblingDTO);
}
return stateDTO;
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -34,7 +34,7 @@
import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
import org.ourproject.kune.platf.client.dto.ContainerDTO;
import org.ourproject.kune.platf.client.dto.ContainerSimpleDTO;
-import org.ourproject.kune.platf.client.dto.ContentDTO;
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
@@ -232,6 +232,7 @@
selectItem(stateToken);
}
}
+ toolbar.attach();
}
protected void clear() {
@@ -258,7 +259,7 @@
}
private void createChildItems(final ContainerDTO container, final AccessRightsDTO containerRights) {
- for (final ContentDTO content : container.getContents()) {
+ for (final ContentSimpleDTO content : container.getContents()) {
addItem(content.getTitle(), content.getTypeId(), content.getMimeType(), content.getStatus(), content
.getStateToken(), content.getStateToken().clone().clearDocument(), content.getRights(), false);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -21,7 +21,7 @@
import org.ourproject.kune.platf.client.dto.LicenseDTO;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.workspace.client.skel.TitleBar;
+import org.ourproject.kune.workspace.client.skel.SimpleToolbar;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.Window;
@@ -42,7 +42,7 @@
copyright = new Label();
image = new Image();
license = new Label();
- final TitleBar bottomTitle = ws.getEntityWorkspace().getBottomTitle();
+ final SimpleToolbar bottomTitle = ws.getEntityWorkspace().getBottomTitle();
bottomTitle.add(copyright);
bottomTitle.add(license);
bottomTitle.addSpacer();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -17,9 +17,9 @@
private static final String ENTITY_CONTEXT = "k-entity-context";
private final Panel content;
private final Panel context;
- private final TitleBar title;
- private final TitleBar subTitle;
- private final TitleBar bottom;
+ private final SimpleToolbar title;
+ private final SimpleToolbar subTitle;
+ private final SimpleToolbar bottom;
private final Toolbar contentTopBar;
private final Toolbar contentBottomBar;
private final Toolbar contextTopBar;
@@ -36,14 +36,14 @@
bottomPanel.setBorder(false);
bottomPanel.setLayout(new AnchorLayout());
- title = new TitleBar();
+ title = new SimpleToolbar();
title.setHeight("" + (DEF_TOOLBAR_HEIGHT - 2));
title.setStylePrimaryName(ENTITY_TITLE);
title.ensureDebugId(ENTITY_TITLE);
- subTitle = new TitleBar();
+ subTitle = new SimpleToolbar();
subTitle.setStylePrimaryName(ENTITY_SUBTITLE);
subTitle.ensureDebugId(ENTITY_SUBTITLE);
- bottom = new TitleBar();
+ bottom = new SimpleToolbar();
bottom.setHeight("" + (DEF_TOOLBAR_HEIGHT - 2));
bottom.setStylePrimaryName(ENTITY_BOTTOM);
bottom.ensureDebugId(ENTITY_BOTTOM);
@@ -91,7 +91,7 @@
add(bottomPanel, DefaultBorderLayout.Position.SOUTH, DEF_TOOLBAR_HEIGHT + 2);
}
- public TitleBar getBottomTitle() {
+ public SimpleToolbar getBottomTitle() {
return bottom;
}
@@ -111,11 +111,11 @@
return contextTopBar;
}
- public TitleBar getSubTitle() {
+ public SimpleToolbar getSubTitle() {
return subTitle;
}
- public TitleBar getTitle() {
+ public SimpleToolbar getTitle() {
return title;
}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java (from rev 878, trunk/src/main/java/org/ourproject/kune/workspace/client/skel/TitleBar.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/TitleBar.java 2008-09-22 11:53:01 UTC (rev 878)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -0,0 +1,52 @@
+package org.ourproject.kune.workspace.client.skel;
+
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+public class SimpleToolbar extends Composite {
+
+ private final HorizontalPanel childPanel;
+ private final HorizontalPanel mainPanel;
+
+ public SimpleToolbar() {
+ mainPanel = new HorizontalPanel();
+ childPanel = new HorizontalPanel();
+ mainPanel.add(childPanel);
+ initWidget(mainPanel);
+ mainPanel.setWidth("100%");
+ }
+
+ public void add(final Widget widget) {
+ childPanel.add(widget);
+ childPanel.setCellVerticalAlignment(widget, VerticalPanel.ALIGN_MIDDLE);
+ }
+
+ public Widget addFill() {
+ final Label emptyLabel = new Label("");
+ this.add(emptyLabel);
+ childPanel.setCellWidth(emptyLabel, "100%");
+ return emptyLabel;
+ }
+
+ public Widget addSeparator() {
+ final Label emptyLabel = new Label("");
+ emptyLabel.setStyleName("ytb-sep");
+ emptyLabel.addStyleName("k-toolbar-sep");
+ this.add(emptyLabel);
+ return emptyLabel;
+ }
+
+ public Widget addSpacer() {
+ final Label emptyLabel = new Label("");
+ emptyLabel.setStyleName("ytb-spacer");
+ this.add(emptyLabel);
+ return emptyLabel;
+ }
+
+ public void removeAll() {
+ childPanel.clear();
+ }
+}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SiteBar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SiteBar.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SiteBar.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -5,29 +5,29 @@
public class SiteBar extends Panel {
- private final TitleBar titleBar;
+ private final SimpleToolbar simpleToolbar;
public SiteBar() {
super.setBorder(false);
- titleBar = new TitleBar();
- titleBar.setStyleName("k-sitebar");
- super.add(titleBar);
+ simpleToolbar = new SimpleToolbar();
+ simpleToolbar.setStyleName("k-sitebar");
+ super.add(simpleToolbar);
}
public void add(final Widget widget) {
- titleBar.add(widget);
+ simpleToolbar.add(widget);
}
public Widget addFill() {
- return titleBar.addFill();
+ return simpleToolbar.addFill();
}
public Widget addSeparator() {
- return titleBar.addSeparator();
+ return simpleToolbar.addSeparator();
}
public Widget addSpacer() {
- return titleBar.addSpacer();
+ return simpleToolbar.addSpacer();
}
}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/TitleBar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/TitleBar.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/TitleBar.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -1,48 +0,0 @@
-package org.ourproject.kune.workspace.client.skel;
-
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.Widget;
-
-public class TitleBar extends Composite {
-
- private final HorizontalPanel childPanel;
- private final HorizontalPanel mainPanel;
-
- public TitleBar() {
- mainPanel = new HorizontalPanel();
- childPanel = new HorizontalPanel();
- mainPanel.add(childPanel);
- initWidget(mainPanel);
- mainPanel.setWidth("100%");
- }
-
- public void add(final Widget widget) {
- childPanel.add(widget);
- childPanel.setCellVerticalAlignment(widget, VerticalPanel.ALIGN_MIDDLE);
- }
-
- public Widget addFill() {
- final Label emptyLabel = new Label("");
- this.add(emptyLabel);
- childPanel.setCellWidth(emptyLabel, "100%");
- return emptyLabel;
- }
-
- public Widget addSeparator() {
- final Label emptyLabel = new Label("");
- emptyLabel.setStyleName("ytb-sep");
- emptyLabel.addStyleName("k-toolbar-sep");
- this.add(emptyLabel);
- return emptyLabel;
- }
-
- public Widget addSpacer() {
- final Label emptyLabel = new Label("");
- emptyLabel.setStyleName("ytb-spacer");
- this.add(emptyLabel);
- return emptyLabel;
- }
-}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePanel.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntitySubTitlePanel.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -21,7 +21,7 @@
package org.ourproject.kune.workspace.client.title;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.workspace.client.skel.TitleBar;
+import org.ourproject.kune.workspace.client.skel.SimpleToolbar;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.ui.Label;
@@ -35,7 +35,7 @@
subTitleLeftLabel = new Label();
subTitleRightLabel = new Label();
- final TitleBar wsSubTitle = ws.getEntityWorkspace().getSubTitle();
+ final SimpleToolbar wsSubTitle = ws.getEntityWorkspace().getSubTitle();
wsSubTitle.add(subTitleLeftLabel);
wsSubTitle.addFill();
wsSubTitle.add(subTitleRightLabel);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePanel.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePanel.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.ui.EditableClickListener;
import org.ourproject.kune.platf.client.ui.EditableIconLabel;
-import org.ourproject.kune.workspace.client.skel.TitleBar;
+import org.ourproject.kune.workspace.client.skel.SimpleToolbar;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.ui.Image;
@@ -42,7 +42,7 @@
});
dateLabel = new Label();
- final TitleBar wsTitle = ws.getEntityWorkspace().getTitle();
+ final SimpleToolbar wsTitle = ws.getEntityWorkspace().getTitle();
wsTitle.add(icon);
wsTitle.add(titleLabel);
wsTitle.addFill();
Modified: trunk/src/main/resources/dozerBeanMapping.xml
===================================================================
--- trunk/src/main/resources/dozerBeanMapping.xml 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/main/resources/dozerBeanMapping.xml 2008-09-27 20:03:56 UTC (rev 890)
@@ -193,7 +193,7 @@
<mapping>
<class-a>
- org.ourproject.kune.platf.client.dto.ContentDTO
+ org.ourproject.kune.platf.client.dto.ContentSimpleDTO
</class-a>
<class-b>
org.ourproject.kune.platf.server.domain.Content
@@ -238,7 +238,7 @@
<a>contents</a>
<b>contents</b>
<a-hint>
- org.ourproject.kune.platf.client.dto.ContentDTO
+ org.ourproject.kune.platf.client.dto.ContentSimpleDTO
</a-hint>
<b-hint>
org.ourproject.kune.platf.server.domain.Content
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceAddTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceAddTest.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceAddTest.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -11,7 +11,7 @@
import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
import org.ourproject.kune.platf.client.dto.ContainerDTO;
import org.ourproject.kune.platf.client.dto.ContainerSimpleDTO;
-import org.ourproject.kune.platf.client.dto.ContentDTO;
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.errors.ContentNotFoundException;
@@ -48,7 +48,7 @@
final StateDTO added = contentService.addContent(session.getHash(), defaultContent.getContainer()
.getStateToken(), title);
assertNotNull(added);
- final List<ContentDTO> contents = added.getContainer().getContents();
+ final List<ContentSimpleDTO> contents = added.getContainer().getContents();
assertEquals(title, added.getTitle());
assertEquals(2, contents.size());
assertEquals(cntRights, added.getContentRights());
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -10,7 +10,7 @@
import org.junit.Test;
import org.ourproject.kune.docs.client.DocumentClientTool;
import org.ourproject.kune.platf.client.dto.ContainerDTO;
-import org.ourproject.kune.platf.client.dto.ContentDTO;
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.dto.TagResultDTO;
@@ -173,7 +173,7 @@
"New Content Title");
assertNotNull(added);
- final ContentDTO newDefContent = contentService.setAsDefaultContent(session.getHash(), added.getStateToken());
+ final ContentSimpleDTO newDefContent = contentService.setAsDefaultContent(session.getHash(), added.getStateToken());
assertTrue(!defaultContent.getStateToken().equals(newDefContent.getStateToken()));
assertTrue(added.getStateToken().equals(newDefContent.getStateToken()));
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/FileUtilsTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/FileUtilsTest.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/FileUtilsTest.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -60,6 +60,11 @@
}
@Test
+ public void testGetFilenameExtNull() {
+ assertEquals("", FileUtils.getFileNameExtension(null, true));
+ }
+
+ @Test
public void testIfSeq101return102() {
assertEquals(SIMPLE_FILE_NAME + " 102", FileUtils.getNextSequentialFileName(SIMPLE_FILE_NAME + " 101"));
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/mapper/MapperTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/mapper/MapperTest.java 2008-09-27 13:01:41 UTC (rev 889)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/mapper/MapperTest.java 2008-09-27 20:03:56 UTC (rev 890)
@@ -13,7 +13,7 @@
import org.ourproject.kune.platf.client.dto.CommentDTO;
import org.ourproject.kune.platf.client.dto.ContainerDTO;
import org.ourproject.kune.platf.client.dto.ContainerSimpleDTO;
-import org.ourproject.kune.platf.client.dto.ContentDTO;
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.GroupListDTO;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
@@ -92,7 +92,7 @@
final StateToken expectedToken = new StateToken(TESTGROUPSHORTNAME, TESTTOOL, "1", "1");
assertEquals(expectedToken, d.getStateToken());
- final ContentDTO dto = mapper.map(d, ContentDTO.class);
+ final ContentSimpleDTO dto = mapper.map(d, ContentSimpleDTO.class);
assertEquals(1, (long) dto.getId());
assertEquals("title", dto.getTitle());
assertEquals(expectedToken, dto.getStateToken());
@@ -151,7 +151,7 @@
final ContainerDTO dto = mapper.map(container, ContainerDTO.class);
assertEquals(3, dto.getChilds().size());
assertEquals(3, dto.getContents().size());
- assertTrue(dto.getContents().get(0) instanceof ContentDTO);
+ assertTrue(dto.getContents().get(0) instanceof ContentSimpleDTO);
assertTrue(dto.getChilds().get(0) instanceof ContainerSimpleDTO);
assertEquals(new StateToken(TESTGROUPSHORTNAME, TESTTOOL), dto.getChilds().get(0).getStateToken().clone()
.clearFolder());
@@ -212,8 +212,8 @@
public void testMimeMapping() {
final Content d = createDefContent();
d.setMimeType(new BasicMimeType("application/pdf"));
- final ContentDTO contentDTO = mapper.map(d, ContentDTO.class);
- assertEquals("application/pdf", contentDTO.getMimeType().toString());
+ final ContentSimpleDTO contentSimpleDTO = mapper.map(d, ContentSimpleDTO.class);
+ assertEquals("application/pdf", contentSimpleDTO.getMimeType().toString());
}
@Test
1
0
r889 - in trunk/src/main/java/org/ourproject/kune: app/public docs/client platf/server/manager/impl workspace/client/skel
by vjrj 27 Sep '08
by vjrj 27 Sep '08
27 Sep '08
Author: vjrj
Date: 2008-09-27 15:01:41 +0200 (Sat, 27 Sep 2008)
New Revision: 889
Modified:
trunk/src/main/java/org/ourproject/kune/app/public/Kune.html
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileDownloadManager.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java
Log:
Download in hidden iframe instead of Window.open. Download of images and/or inline show with &download=true|false param
Modified: trunk/src/main/java/org/ourproject/kune/app/public/Kune.html
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/Kune.html 2008-09-27 11:14:37 UTC (rev 888)
+++ trunk/src/main/java/org/ourproject/kune/app/public/Kune.html 2008-09-27 13:01:41 UTC (rev 889)
@@ -47,6 +47,7 @@
<script type="text/javascript" language="javascript"
src="org.ourproject.kune.app.Kune.nocache.js"></script>
<iframe id="__gwt_historyFrame" style="width: 0; height: 0; border: 0"></iframe>
+<iframe src="" id="__download" style="width:0;height:0;border:0"></iframe>
<div id="kuneprogresspanel" class="k-sitebar">
<table cellspacing="0" summary="Starting" cellpadding="0" border="0"
style="height: 16px; margin-top: 5px; margin-left: 5px;">
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-09-27 11:14:37 UTC (rev 888)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-09-27 13:01:41 UTC (rev 889)
@@ -334,7 +334,8 @@
}
private void downloadContent(final StateToken token) {
- final String url = "/kune/servlets/FileDownloadManager?token=" + token + "&hash=" + session.getUserHash();
+ final String url = "/kune/servlets/FileDownloadManager?token=" + token + "&hash=" + session.getUserHash()
+ + "&download=true";
ws.openUrl(url);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileDownloadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileDownloadManager.java 2008-09-27 11:14:37 UTC (rev 888)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileDownloadManager.java 2008-09-27 13:01:41 UTC (rev 889)
@@ -63,6 +63,8 @@
final String userHash = req.getParameter("hash");
final StateToken stateToken = new StateToken(req.getParameter("token"));
+ final String downloadS = req.getParameter("download");
+ final boolean download = downloadS != null && downloadS.equals("true") ? true : false;
final Content cnt = getContentForDownload(userHash, stateToken);
final String absDir = kuneProperties.get(KuneProperties.UPLOAD_LOCATION) + FileUtils.toDir(stateToken);
@@ -70,15 +72,16 @@
final String absFilename = absDir + filename;
doBuildResp(resp, absFilename, cnt.getTitle(), cnt.getMimeType(), FileUtils
- .getFileNameExtension(filename, true));
+ .getFileNameExtension(filename, true), download);
}
private void doBuildResp(final HttpServletResponse resp, final String filename, final String otherName,
- final BasicMimeType mimeType, final String extension) throws FileNotFoundException, IOException {
+ final BasicMimeType mimeType, final String extension, final boolean download) throws FileNotFoundException,
+ IOException {
final File file = new File(filename);
resp.setContentLength((int) file.length());
- if (mimeType == null) {
+ if (mimeType == null || download) {
resp.setContentType("application/x-download");
} else if (mimeType.getType().equals("image") || mimeType.toString().equals("text/plain")) {
resp.setContentType(mimeType.toString());
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java 2008-09-27 11:14:37 UTC (rev 888)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java 2008-09-27 13:01:41 UTC (rev 889)
@@ -5,8 +5,8 @@
import com.calclab.suco.client.listener.Listener0;
import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.DeferredCommand;
-import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.core.ExtElement;
@@ -89,7 +89,8 @@
// window.add(urlFrame);
// window.show();
// window.close();
- Window.open(url, "", "_blank");
+ // Window.open(url, "", "_blank");
+ DOM.setElementAttribute(RootPanel.get("__download").getElement(), "src", url);
}
public void promptMessage(final String title, final String message, final Listener0 onEnter) {
1
0
27 Sep '08
Author: vjrj
Date: 2008-09-27 13:14:37 +0200 (Sat, 27 Sep 2008)
New Revision: 888
Added:
trunk/img/nav-icons/download.png
trunk/src/main/java/org/ourproject/kune/platf/public/images/nav/download.png
Modified:
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java
Log:
Complete - task 67: Root can be edited / make notVisible / add Folder Actions to menu of contents
Action reorganization. Download button.
Added: trunk/img/nav-icons/download.png
===================================================================
(Binary files differ)
Property changes on: trunk/img/nav-icons/download.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-09-27 03:22:43 UTC (rev 887)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-09-27 11:14:37 UTC (rev 888)
@@ -13,6 +13,7 @@
import org.ourproject.kune.platf.client.actions.ActionEnableCondition;
import org.ourproject.kune.platf.client.actions.ActionMenuDescriptor;
import org.ourproject.kune.platf.client.actions.ActionPosition;
+import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
import org.ourproject.kune.platf.client.dto.AccessRolDTO;
import org.ourproject.kune.platf.client.dto.ContentDTO;
@@ -27,6 +28,7 @@
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.site.Site;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import com.calclab.suco.client.ioc.Provider;
import com.calclab.suco.client.listener.Listener;
@@ -38,20 +40,25 @@
private final Session session;
private final StateManager stateManager;
private final Provider<FileUploader> fileUploaderProvider;
+ private final ContentActionRegistry contentActionRegistry;
private final ContextActionRegistry contextActionRegistry;
private final Provider<ContentServiceAsync> contentServiceProvider;
+ private final WorkspaceSkeleton ws;
public DocumentClientActions(final I18nUITranslationService i18n, final ContextNavigator contextNavigator,
- final Session session, final StateManager stateManager,
+ final Session session, final StateManager stateManager, final WorkspaceSkeleton ws,
final Provider<ContentServiceAsync> contentServiceProvider,
- final Provider<FileUploader> fileUploaderProvider, final ContextActionRegistry contextActionRegistry) {
+ final Provider<FileUploader> fileUploaderProvider, final ContentActionRegistry contentActionRegistry,
+ final ContextActionRegistry contextActionRegistry) {
this.i18n = i18n;
this.contextNavigator = contextNavigator;
this.session = session;
this.stateManager = stateManager;
+ this.ws = ws;
this.contentServiceProvider = contentServiceProvider;
this.fileUploaderProvider = fileUploaderProvider;
this.contextActionRegistry = contextActionRegistry;
+ this.contentActionRegistry = contentActionRegistry;
createActions();
}
@@ -107,8 +114,8 @@
});
}
});
- delContent.setParentMenuTitle(i18n.t("Folder"));
- delContent.setTextDescription(i18n.t("Delete document"));
+ delContent.setParentMenuTitle(i18n.t("File"));
+ delContent.setTextDescription(i18n.t("Delete"));
delContent.setMustBeConfirmed(true);
delContent.setConfirmationTitle(i18n.t("Please confirm"));
delContent.setConfirmationText(i18n.t("Are you sure?"));
@@ -127,14 +134,24 @@
}
});
- final ActionDescriptor<StateToken> rename = new ActionDescriptor<StateToken>(AccessRolDTO.Editor,
- ActionPosition.itemMenu, new Listener<StateToken>() {
+ final ActionMenuDescriptor<StateToken> rename = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Editor,
+ ActionPosition.topbarAndItemMenu, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
contextNavigator.editItem(stateToken);
}
});
rename.setTextDescription(i18n.t("Rename"));
+ rename.setParentMenuTitle(i18n.t("File"));
+ final ActionMenuDescriptor<StateToken> renameCtx = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Editor,
+ ActionPosition.topbarAndItemMenu, new Listener<StateToken>() {
+ public void onEvent(final StateToken stateToken) {
+ contextNavigator.editItem(stateToken);
+ }
+ });
+ renameCtx.setTextDescription(i18n.t("Rename"));
+ renameCtx.setParentMenuTitle(i18n.t("Folder"));
+
final ActionButtonDescriptor<StateToken> goGroupHome = new ActionButtonDescriptor<StateToken>(
AccessRolDTO.Viewer, ActionPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken token) {
@@ -174,17 +191,28 @@
}
});
- final ActionMenuDescriptor<StateToken> refresh = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Viewer,
+ final ActionMenuDescriptor<StateToken> refreshCtx = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Viewer,
ActionPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
stateManager.reload();
contextNavigator.selectItem(stateToken);
}
});
- refresh.setParentMenuTitle(i18n.t("Folder"));
- refresh.setTextDescription(i18n.t("Refresh"));
- refresh.setIconUrl("images/nav/refresh.png");
+ refreshCtx.setParentMenuTitle(i18n.t("Folder"));
+ refreshCtx.setTextDescription(i18n.t("Refresh"));
+ refreshCtx.setIconUrl("images/nav/refresh.png");
+ final ActionMenuDescriptor<StateToken> refreshCnt = new ActionMenuDescriptor<StateToken>(AccessRolDTO.Viewer,
+ ActionPosition.topbar, new Listener<StateToken>() {
+ public void onEvent(final StateToken stateToken) {
+ stateManager.reload();
+ contextNavigator.selectItem(stateToken);
+ }
+ });
+ refreshCnt.setParentMenuTitle(i18n.t("File"));
+ refreshCnt.setTextDescription(i18n.t("Refresh"));
+ refreshCnt.setIconUrl("images/nav/refresh.png");
+
final ActionDescriptor<StateToken> uploadFile = createUploadAction(i18n.t("Upload file"),
"images/nav/upload.png", i18n.t("Upload some files (images, PDFs, ...)"), null);
@@ -197,49 +225,68 @@
}
});
+ final ActionButtonDescriptor<StateToken> download = new ActionButtonDescriptor<StateToken>(AccessRolDTO.Viewer,
+ ActionPosition.topbar, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ downloadContent(token);
+ }
+ });
+ download.setTextDescription(i18n.t("Download"));
+ download.setToolTip(i18n.t("Download this file"));
+ download.setIconUrl("images/nav/download.png");
+
+ final ActionDescriptor<StateToken> downloadCtx = new ActionDescriptor<StateToken>(AccessRolDTO.Viewer,
+ ActionPosition.itemMenu, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ downloadContent(token);
+ }
+ });
+ downloadCtx.setTextDescription(i18n.t("Download"));
+ downloadCtx.setIconUrl("images/nav/download.png");
+
contextActionRegistry.addAction(TYPE_FOLDER, go);
contextActionRegistry.addAction(TYPE_FOLDER, addDoc);
contextActionRegistry.addAction(TYPE_FOLDER, addFolder);
+ contextActionRegistry.addAction(TYPE_FOLDER, renameCtx);
+ contextActionRegistry.addAction(TYPE_FOLDER, refreshCtx);
contextActionRegistry.addAction(TYPE_FOLDER, delContainer);
- contextActionRegistry.addAction(TYPE_FOLDER, refresh);
- contextActionRegistry.addAction(TYPE_FOLDER, rename);
contextActionRegistry.addAction(TYPE_FOLDER, goGroupHome);
contextActionRegistry.addAction(TYPE_FOLDER, uploadFile);
contextActionRegistry.addAction(TYPE_BLOG, go);
contextActionRegistry.addAction(TYPE_BLOG, uploadFile);
- contextActionRegistry.addAction(TYPE_BLOG, refresh);
+ contextActionRegistry.addAction(TYPE_BLOG, refreshCtx);
contextActionRegistry.addAction(TYPE_BLOG, setAsDefGroupContent);
contextActionRegistry.addAction(TYPE_GALLERY, go);
contextActionRegistry.addAction(TYPE_GALLERY, goGroupHome);
- contextActionRegistry.addAction(TYPE_GALLERY, refresh);
+ contextActionRegistry.addAction(TYPE_GALLERY, refreshCtx);
contextActionRegistry.addAction(TYPE_UPLOADEDFILE, go);
- contextActionRegistry.addAction(TYPE_UPLOADEDFILE, delContent);
- contextActionRegistry.addAction(TYPE_UPLOADEDFILE, rename);
- // contextActionRegistry.addAction(TYPE_UPLOADEDFILE, goGroupHome);
- // contextActionRegistry.addAction(TYPE_UPLOADEDFILE, refresh);
contextActionRegistry.addAction(TYPE_UPLOADEDFILE, setAsDefGroupContent);
+ contentActionRegistry.addAction(TYPE_UPLOADEDFILE, rename);
+ contentActionRegistry.addAction(TYPE_UPLOADEDFILE, refreshCnt);
+ contentActionRegistry.addAction(TYPE_UPLOADEDFILE, delContent);
+ contentActionRegistry.addAction(TYPE_UPLOADEDFILE, download);
+ contextActionRegistry.addAction(TYPE_UPLOADEDFILE, downloadCtx);
contextActionRegistry.addAction(TYPE_WIKI, go);
contextActionRegistry.addAction(TYPE_WIKI, goGroupHome);
- contextActionRegistry.addAction(TYPE_WIKI, refresh);
+ contextActionRegistry.addAction(TYPE_WIKI, refreshCtx);
contextActionRegistry.addAction(TYPE_ROOT, addDoc);
contextActionRegistry.addAction(TYPE_ROOT, addFolder);
contextActionRegistry.addAction(TYPE_ROOT, addGallery);
contextActionRegistry.addAction(TYPE_ROOT, addWiki);
- contextActionRegistry.addAction(TYPE_ROOT, refresh);
+ contextActionRegistry.addAction(TYPE_ROOT, refreshCtx);
contextActionRegistry.addAction(TYPE_ROOT, goGroupHome);
contextActionRegistry.addAction(TYPE_ROOT, uploadFile);
contextActionRegistry.addAction(TYPE_DOCUMENT, go);
- contextActionRegistry.addAction(TYPE_DOCUMENT, delContent);
- contextActionRegistry.addAction(TYPE_DOCUMENT, rename);
- // contextActionRegistry.addAction(TYPE_DOCUMENT, goGroupHome);
- // contextActionRegistry.addAction(TYPE_DOCUMENT, refresh);
contextActionRegistry.addAction(TYPE_DOCUMENT, setAsDefGroupContent);
+ contentActionRegistry.addAction(TYPE_DOCUMENT, rename);
+ contentActionRegistry.addAction(TYPE_DOCUMENT, refreshCnt);
+ contentActionRegistry.addAction(TYPE_DOCUMENT, delContent);
}
private ActionMenuDescriptor<StateToken> createFolderAction(final String contentTypeId, final String iconUrl,
@@ -285,4 +332,9 @@
uploadFile.setToolTip(toolTip);
return uploadFile;
}
+
+ private void downloadContent(final StateToken token) {
+ final String url = "/kune/servlets/FileDownloadManager?token=" + token + "&hash=" + session.getUserHash();
+ ws.openUrl(url);
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-09-27 03:22:43 UTC (rev 887)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-09-27 11:14:37 UTC (rev 888)
@@ -112,7 +112,8 @@
register(ToolGroup.class, new Factory<DocumentClientActions>(DocumentClientActions.class) {
public DocumentClientActions create() {
return new DocumentClientActions($(I18nUITranslationService.class), $(ContextNavigator.class),
- $(Session.class), $(StateManager.class), $$(ContentServiceAsync.class), $$(FileUploader.class),
+ $(Session.class), $(StateManager.class), $(WorkspaceSkeleton.class),
+ $$(ContentServiceAsync.class), $$(FileUploader.class), $(ContentActionRegistry.class),
$(ContextActionRegistry.class));
}
});
Added: trunk/src/main/java/org/ourproject/kune/platf/public/images/nav/download.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/public/images/nav/download.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java 2008-09-27 03:22:43 UTC (rev 887)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java 2008-09-27 11:14:37 UTC (rev 888)
@@ -6,6 +6,7 @@
import com.calclab.suco.client.listener.Listener0;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DeferredCommand;
+import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.core.ExtElement;
@@ -41,7 +42,8 @@
entity.addToEntityMainHeader(widget);
}
- public void askConfirmation(final String title, final String message, final Listener0 onConfirmed, final Listener0 onCancel) {
+ public void askConfirmation(final String title, final String message, final Listener0 onConfirmed,
+ final Listener0 onCancel) {
MessageBox.confirm(title, message, new MessageBox.ConfirmCallback() {
public void execute(final String btnID) {
if (btnID.equals("yes")) {
@@ -81,6 +83,15 @@
extRootBody.mask(message, "x-mask-loading");
}
+ public void openUrl(final String url) {
+ // final Frame urlFrame = new Frame(url);
+ // final Window window = new Window();
+ // window.add(urlFrame);
+ // window.show();
+ // window.close();
+ Window.open(url, "", "_blank");
+ }
+
public void promptMessage(final String title, final String message, final Listener0 onEnter) {
MessageBox.prompt(title, message, new MessageBox.PromptCallback() {
public void execute(final String btnID, final String text) {
1
0