[kune-commits] r897 - in trunk/src:
main/java/org/ourproject/kune/app/public/css
main/java/org/ourproject/kune/docs/client
main/java/org/ourproject/kune/docs/client/cnt
main/java/org/ourproject/kune/platf/client/actions
main/java/org/ourproject/kune/platf/client/actions/toolbar
main/java/org/ourproject/kune/platf/client/services
main/java/org/ourproject/kune/workspace/client/ctxnav
main/java/org/ourproject/kune/workspace/client/skel
test/java/org/ourproject/kune/platf/client/actions
vjrj
vjrj at ourproject.org
Tue Sep 30 03:50:11 CEST 2008
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());
}
}
More information about the kune-commits
mailing list