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
- 1587 discussions
Author: vjrj
Date: 2008-10-01 23:12:10 +0200 (Wed, 01 Oct 2008)
New Revision: 899
Removed:
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbarView.java
Modified:
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune.css
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/docs/client/cnt/reader/ui/DocumentReaderPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionEnableCondition.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionItem.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/dto/GroupListDTO.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/GroupList.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplMozilla.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java
Log:
more editors refactorization and some fixes
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-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-10-01 21:12:10 UTC (rev 899)
@@ -1729,6 +1729,41 @@
margin-left: 10px;
}
+.kune-Margin-7-trbl {
+ margin: 7px;
+}
+
+.kune-Margin-7-lr {
+ margin-left: 7px;
+ margin-right: 7px;
+}
+
+.kune-Margin-7-tl {
+ margin-top: 7px;
+ margin-left: 7px;
+}
+
+.kune-Margin-7-tb {
+ margin-top: 7px;
+ margin-bottom: 7px;
+}
+
+.kune-Margin-7-t {
+ margin-top: 7px;
+}
+
+.kune-Margin-7-r {
+ margin-right: 7px;
+}
+
+.kune-Margin-7-b {
+ margin-bottom: 7px;
+}
+
+.kune-Margin-7-l {
+ margin-left: 7px;
+}
+
.kune-Margin-Medium-trbl {
margin: 5px;
}
@@ -3191,7 +3226,7 @@
background: #DDAFE9 none repeat scroll 0% 50%;
}
-.k-entity-context-red div, .k-entity-context-purple .x-tree .x-panel-body {
+.k-entity-context-red div, .k-entity-context-red .x-tree .x-panel-body {
background: #FFAAAA none repeat scroll 0% 50%;
}
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune.css 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune.css 2008-10-01 21:12:10 UTC (rev 899)
@@ -411,6 +411,41 @@
margin-left: 10px;
}
+.kune-Margin-7-trbl {
+ margin: 7px;
+}
+
+.kune-Margin-7-lr {
+ margin-left: 7px;
+ margin-right: 7px;
+}
+
+.kune-Margin-7-tl {
+ margin-top: 7px;
+ margin-left: 7px;
+}
+
+.kune-Margin-7-tb {
+ margin-top: 7px;
+ margin-bottom: 7px;
+}
+
+.kune-Margin-7-t {
+ margin-top: 7px;
+}
+
+.kune-Margin-7-r {
+ margin-right: 7px;
+}
+
+.kune-Margin-7-b {
+ margin-bottom: 7px;
+}
+
+.kune-Margin-7-l {
+ margin-left: 7px;
+}
+
.kune-Margin-Medium-trbl {
margin: 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-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -149,10 +149,10 @@
delContent.setConfirmationTitle(i18n.t("Please confirm"));
delContent.setConfirmationText(i18n.t("Are you sure?"));
delContent.setEnableCondition(new ActionEnableCondition<StateToken>() {
- public boolean mustBeEnabled(final StateToken currentStateToken) {
+ public boolean mustBeEnabled(final StateToken itemToken) {
final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent()
.getStateToken();
- return !currentStateToken.equals(defContentToken);
+ return !itemToken.equals(defContentToken);
}
});
@@ -166,8 +166,8 @@
go.setTextDescription(i18n.t("Open"));
go.setIconUrl("images/nav/go.png");
go.setEnableCondition(new ActionEnableCondition<StateToken>() {
- public boolean mustBeEnabled(final StateToken currentStateToken) {
- return !contextNavigator.isSelected(currentStateToken);
+ public boolean mustBeEnabled(final StateToken itemToken) {
+ return !contextNavigator.isSelected(itemToken);
}
});
@@ -198,10 +198,10 @@
goGroupHome.setMustBeAuthenticated(false);
goGroupHome.setIconUrl("images/group-home.png");
goGroupHome.setEnableCondition(new ActionEnableCondition<StateToken>() {
- public boolean mustBeEnabled(final StateToken currentStateToken) {
+ public boolean mustBeEnabled(final StateToken itemToken) {
final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent()
.getStateToken();
- return !currentStateToken.equals(defContentToken);
+ return !itemToken.equals(defContentToken);
}
});
@@ -290,7 +290,7 @@
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) {
+ public boolean mustBeEnabled(final StateToken itemToken) {
final BasicMimeTypeDTO mime = session.getCurrentState().getMimeType();
return mime != null && mime.getType().equals("image");
}
@@ -344,19 +344,18 @@
public void onSuccess(final Integer newVersion) {
Site.hideProgress();
+ session.getCurrentState().setVersion(newVersion);
+ session.getCurrentState().setContent(html);
editor.onSaved();
- if (session.getCurrentStateToken().equals(stateToken)) {
- session.getCurrentState().setVersion(newVersion);
- session.getCurrentState().setContent(html);
- documentContent.refreshState();
- }
}
});
}
}, new Listener0() {
public void onEvent() {
// onClose
- documentContent.refreshState();
+ if (session.getCurrentStateToken().equals(stateToken)) {
+ documentContent.refreshState();
+ }
}
});
}
@@ -444,10 +443,10 @@
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) {
+ public boolean mustBeEnabled(final StateToken itemToken) {
final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent()
.getStateToken();
- return !currentStateToken.equals(defContentToken);
+ return !itemToken.equals(defContentToken);
}
});
return setAsDefGroupContent;
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-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -96,7 +96,7 @@
.getContainerRights(), true);
}
toolbar.disableMenusAndClearButtons();
- toolbar.showActions(collection, true);
+ toolbar.setActions(collection);
toolbar.attach();
showContent();
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/ui/DocumentReaderPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/ui/DocumentReaderPanel.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/ui/DocumentReaderPanel.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -34,6 +34,9 @@
}
public void setContent(final String content) {
- ws.getEntityWorkspace().setContent(new HTML(content));
+ final HTML html = new HTML(content);
+ html.setStyleName("kune-Content-Main");
+ html.addStyleName("kune-Margin-7-trbl");
+ ws.getEntityWorkspace().setContent(html);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionEnableCondition.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionEnableCondition.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionEnableCondition.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -1,5 +1,5 @@
package org.ourproject.kune.platf.client.actions;
public interface ActionEnableCondition<T> {
- boolean mustBeEnabled(T param);
+ boolean mustBeEnabled(T item);
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionItem.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionItem.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionItem.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -16,6 +16,11 @@
this.item = item;
}
+ public boolean checkEnabling() {
+ final ActionEnableCondition<T> enableCondition = action.getEnableCondition();
+ return enableCondition != null ? enableCondition.mustBeEnabled(getItem()) : true;
+ }
+
public ActionDescriptor<T> getAction() {
return action;
}
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-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbar.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -1,6 +1,7 @@
package org.ourproject.kune.platf.client.actions.toolbar;
import org.ourproject.kune.platf.client.actions.ActionItemCollection;
+import org.ourproject.kune.platf.client.actions.ActionToolbarDescriptor;
public interface ActionToolbar<T> {
@@ -12,6 +13,8 @@
void disableMenusAndClearButtons();
- void showActions(ActionItemCollection<T> actionItemCollection, boolean isItemSelected);
+ void setActions(ActionItemCollection<T> actionItemCollection);
+ void setEnableAction(ActionToolbarDescriptor<T> action, boolean enable);
+
}
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-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -1,17 +1,19 @@
package org.ourproject.kune.platf.client.actions.toolbar;
-import java.util.ArrayList;
import java.util.HashMap;
+import org.ourproject.kune.platf.client.actions.ActionDescriptor;
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.ActionToolbarDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
import org.ourproject.kune.workspace.client.skel.SimpleToolbar;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import com.allen_sauer.gwt.log.client.Log;
import com.calclab.suco.client.ioc.Provider;
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.core.EventObject;
@@ -31,7 +33,7 @@
}
private final HashMap<String, Menu> toolbarMenus;
- private final ArrayList<Widget> removableToolbarItems;
+ private final HashMap<String, ToolbarButton> toolbarButtons;
private final HashMap<String, Item> menuItems;
private final Provider<ActionManager> actionManagerProvider;
private final Position position;
@@ -48,11 +50,11 @@
this.actionManagerProvider = actionManagerProvider;
toolbarMenus = new HashMap<String, Menu>();
- removableToolbarItems = new ArrayList<Widget>();
+ toolbarButtons = new HashMap<String, ToolbarButton>();
menuItems = new HashMap<String, Item>();
}
- public void addButtonAction(final ActionItem<T> actionItem) {
+ public void addButtonAction(final ActionItem<T> actionItem, final boolean enable) {
final ActionToolbarButtonDescriptor<T> action = (ActionToolbarButtonDescriptor<T>) actionItem.getAction();
final ActionToolbarPosition pos = action.getActionPosition();
final ToolbarButton button = new ToolbarButton();
@@ -72,15 +74,16 @@
}
button.setTooltip(action.getToolTip());
+ setEnableButton(button, enable);
final SimpleToolbar toolbar = getToolbar(pos);
if (action.hasLeftSeparator()) {
- removableToolbarItems.add(add(toolbar, action.getLeftSeparator()));
+ add(toolbar, action.getLeftSeparator());
}
toolbar.add(button);
if (action.hasRightSeparator()) {
- removableToolbarItems.add(add(toolbar, action.getRightSeparator()));
+ add(toolbar, action.getRightSeparator());
}
- removableToolbarItems.add(button);
+ toolbarButtons.put(genButtonKey(pos, text), button);
}
public void addMenuAction(final ActionItem<T> actionItem, final boolean enable) {
@@ -94,11 +97,7 @@
item = createToolbarMenu(pos, menuTitle, menuSubTitle, actionItem);
menuItems.put(itemKey, item);
}
- if (enable) {
- item.enable();
- } else {
- item.disable();
- }
+ setEnableMenuItem(item, enable);
}
public void attach() {
@@ -119,20 +118,13 @@
public void clear() {
toolbarMenus.clear();
menuItems.clear();
- removableToolbarItems.clear();
+ toolbarButtons.clear();
topbar.removeAll();
bottombar.removeAll();
getToolbar(ActionToolbarPosition.topbar).removeAll();
getToolbar(ActionToolbarPosition.bottombar).removeAll();
}
- public void clearRemovableActions() {
- for (final Widget widget : removableToolbarItems) {
- widget.removeFromParent();
- }
- removableToolbarItems.clear();
- }
-
public void detach() {
if (topbar.isAttached()) {
switch (position) {
@@ -154,6 +146,25 @@
}
}
+ public void setButtonEnable(final ActionDescriptor<T> action, final boolean enable) {
+ final ActionToolbarPosition pos = ((ActionToolbarDescriptor<T>) action).getActionPosition();
+ final ToolbarButton button = toolbarButtons.get(genButtonKey(pos, action.getText()));
+ if (button != null) {
+ setEnableButton(button, enable);
+ } else {
+ Log.error("Tryng to enable/disable a non existent toolbar button");
+ }
+ }
+
+ public void setMenuEnable(final ActionDescriptor<T> action, final boolean enable) {
+ final Item item = menuItems.get(genMenuKey((ActionToolbarMenuDescriptor<T>) action));
+ if (item != null) {
+ setEnableMenuItem(item, enable);
+ } else {
+ Log.error("Tryng to enable/disable a non existent toolbar menu item");
+ }
+ }
+
private void add(final ActionToolbarPosition toolbar, final Widget widget) {
getToolbar(toolbar).add(widget);
}
@@ -220,10 +231,20 @@
return menu;
}
+ private String genButtonKey(final ActionToolbarPosition pos, final String actionText) {
+ final String basePart = "km-ctx-btn-" + pos.toString().substring(0, 2) + "-" + actionText;
+ return basePart;
+ }
+
+ private String genMenuKey(final ActionToolbarMenuDescriptor<T> action) {
+ return genMenuKey(action.getActionPosition(), action.getParentMenuTitle(), action.getParentSubMenuTitle(),
+ action.getText());
+ }
+
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;
+ final String basePart = "km-ctx-menu-" + pos.toString().substring(0, 2) + "-" + menuTitle;
final String subMenuPart = menuSubTitle != null ? "-subm-" + menuSubTitle : "";
final String itemPart = actionText != null ? "-item-" + actionText : "";
return basePart + subMenuPart + itemPart;
@@ -238,4 +259,20 @@
return topbar;
}
}
+
+ private void setEnableButton(final ToolbarButton button, final boolean enable) {
+ if (enable) {
+ button.enable();
+ } else {
+ button.disable();
+ }
+ }
+
+ private void setEnableMenuItem(final Item item, final boolean enable) {
+ if (enable) {
+ item.enable();
+ } else {
+ item.disable();
+ }
+ }
}
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-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -1,59 +1,71 @@
package org.ourproject.kune.platf.client.actions.toolbar;
import org.ourproject.kune.platf.client.actions.ActionDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionEnableCondition;
import org.ourproject.kune.platf.client.actions.ActionItem;
import org.ourproject.kune.platf.client.actions.ActionItemCollection;
import org.ourproject.kune.platf.client.actions.ActionToolbarButtonAndItemDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarMenuAndItemDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
import com.allen_sauer.gwt.log.client.Log;
public class ActionToolbarPresenter<T> implements ActionToolbar<T> {
- private final ActionToolbarView<T> toolbar;
+ private final ActionToolbarView<T> view;
public ActionToolbarPresenter(final ActionToolbarView<T> toolbar) {
- this.toolbar = toolbar;
+ this.view = toolbar;
}
public void attach() {
- toolbar.attach();
+ view.attach();
}
- public boolean checkEnabling(final ActionDescriptor<T> action, final T T) {
- final ActionEnableCondition<T> enableCondition = action.getEnableCondition();
- return enableCondition != null ? enableCondition.mustBeEnabled(T) : true;
- }
-
public void clear() {
- toolbar.clear();
+ view.clear();
}
public void detach() {
- toolbar.detach();
+ view.detach();
}
public void disableMenusAndClearButtons() {
- toolbar.clear();
+ view.clear();
}
- public void showActions(final ActionItemCollection<T> actions, final boolean isItemSelected) {
+ public void setActions(final ActionItemCollection<T> actions) {
for (final ActionItem<T> actionItem : actions) {
final ActionDescriptor<T> action = actionItem.getAction();
- if (action instanceof ActionToolbarMenuDescriptor || action instanceof ActionToolbarMenuAndItemDescriptor) {
- toolbar.addMenuAction(actionItem, isItemSelected && checkEnabling(action, actionItem.getItem()));
+ if (isToolbarMenu(action)) {
+ view.addMenuAction(actionItem, actionItem.checkEnabling());
} else {
- if (action instanceof ActionToolbarButtonDescriptor
- || action instanceof ActionToolbarButtonAndItemDescriptor) {
- if (isItemSelected && checkEnabling(action, actionItem.getItem())) {
- toolbar.addButtonAction(actionItem);
- }
+ if (isToolbarButton(action)) {
+ view.addButtonAction(actionItem, actionItem.checkEnabling());
} else {
Log.error("Code error: Not an ActionMenuDescriptor or ActionButtonDescriptor: " + action.getText());
}
}
}
}
+
+ public void setEnableAction(final ActionToolbarDescriptor<T> action, final boolean enable) {
+ if (isToolbarMenu(action)) {
+ view.setMenuEnable(action, enable);
+ } else {
+ if (isToolbarButton(action)) {
+ view.setButtonEnable(action, enable);
+ }
+ }
+
+ }
+
+ private boolean isToolbarButton(final ActionDescriptor<T> action) {
+ return action instanceof ActionToolbarButtonDescriptor
+ || action instanceof ActionToolbarButtonAndItemDescriptor;
+ }
+
+ private boolean isToolbarMenu(final ActionDescriptor<T> action) {
+ return action instanceof ActionToolbarMenuDescriptor || action instanceof ActionToolbarMenuAndItemDescriptor;
+ }
}
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-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarView.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -1,21 +1,24 @@
package org.ourproject.kune.platf.client.actions.toolbar;
+import org.ourproject.kune.platf.client.actions.ActionDescriptor;
import org.ourproject.kune.platf.client.actions.ActionItem;
public interface ActionToolbarView<T> {
- void addButtonAction(ActionItem<T> action);
+ void addButtonAction(ActionItem<T> actionItem, boolean enable);
- void addMenuAction(ActionItem<T> action, boolean enable);
+ void addMenuAction(ActionItem<T> actionItem, boolean enable);
void attach();
void clear();
- void clearRemovableActions();
-
void detach();
void disableAllMenuItems();
+ void setButtonEnable(ActionDescriptor<T> action, boolean enable);
+
+ void setMenuEnable(ActionDescriptor<T> action, boolean enable);
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupListDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupListDTO.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupListDTO.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -55,10 +55,6 @@
}
public String toString() {
- String groupString = "";
- for (final GroupDTO group : list) {
- groupString = groupString + group.getShortName() + ", ";
- }
- return "GroupDTO[(" + mode + "): " + groupString + "]";
+ return "GroupListDTO[(" + mode + "): " + list + "]";
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/GroupList.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/GroupList.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/GroupList.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -116,11 +116,7 @@
}
public String toString() {
- String groupString = "";
- for (final Group group : list) {
- groupString = groupString + group.getShortName() + ", ";
- }
- return "Group[(" + mode + "): " + groupString + "]";
+ return "GroupList[(" + mode + "): " + list + "]";
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -132,7 +132,10 @@
final Long groupId = group.getId();
final List<Group> adminInGroups = finder.findAdminInGroups(groupId);
// Don't show self user group
- adminInGroups.remove(userLogged.getUserGroup());
+ if (group.getType().equals(GroupType.PERSONAL)) {
+ adminInGroups.remove(group);
+ }
+ // adminInGroups.remove(userLogged.getUserGroup());
final List<Group> collabInGroups = finder.findCollabInGroups(groupId);
return new ParticipationData(adminInGroups, collabInGroups);
}
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-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPresenter.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -163,7 +163,7 @@
public void selectItem(final StateToken stateToken) {
view.selectItem(genId(stateToken));
toolbar.disableMenusAndClearButtons();
- toolbar.showActions(actionsByItem.get(stateToken), true);
+ toolbar.setActions(actionsByItem.get(stateToken));
}
public void setEditOnNextStateChange(final boolean edit) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -20,7 +20,6 @@
package org.ourproject.kune.workspace.client.editor;
-import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.ui.DefaultBorderLayout;
import org.ourproject.kune.workspace.client.skel.Toolbar;
@@ -28,12 +27,11 @@
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Timer;
-import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.WindowResizeListener;
import com.google.gwt.user.client.ui.RichTextArea;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.MessageBox;
-import com.gwtext.client.widgets.Panel;
-import com.gwtext.client.widgets.layout.FitLayout;
+import com.gwtext.client.widgets.event.ContainerListenerAdapter;
public class TextEditorPanel implements TextEditorView {
private static final String BACKCOLOR_ENABLED = "#FFF";
@@ -43,7 +41,7 @@
private final TextEditorPresenter presenter;
private final Timer saveTimer;
private final I18nTranslationService i18n;
- private final DefaultBorderLayout mainPanel;
+ private final VerticalPanel mainPanel;
private final WorkspaceSkeleton ws;
public TextEditorPanel(final TextEditorPresenter presenter, final I18nTranslationService i18n,
@@ -51,29 +49,30 @@
this.presenter = presenter;
this.i18n = i18n;
this.ws = ws;
- mainPanel = new DefaultBorderLayout();
- final Panel centerPanel = new Panel();
- centerPanel.setLayout(new FitLayout());
+ mainPanel = new VerticalPanel();
+ mainPanel.setWidth("100%");
+
gwtRTarea = new RichTextArea();
- // centerPanel.add(gwtRTarea);
gwtRTarea.setWidth("97%");
gwtRTarea.addStyleName("kune-TexEditorPanel-TextArea");
final Toolbar editorTopBar = new Toolbar();
+ editorTopBar.getPanel().setWidth("auto");
textEditorToolbar = new TextEditorToolbar(gwtRTarea, presenter, i18n);
editorTopBar.add(textEditorToolbar);
editorTopBar.addStyleName("k-toolbar-bottom-line");
- // mainPanel.add(editorTopBar.getPanel(), Position.NORTH, false,
- // DefaultBorderLayout.DEF_TOOLBAR_HEIGHT);
- mainPanel.add(centerPanel, DefaultBorderLayout.Position.CENTER);
+ mainPanel.add(editorTopBar.getPanel());
+ mainPanel.add(gwtRTarea);
- adjustSize("" + (Window.getClientHeight() - 265));
- Window.addWindowResizeListener(new WindowResizeListener() {
- public void onWindowResized(final int arg0, final int arg1) {
- adjustSize("" + (Window.getClientHeight() - 265));
+ ws.getEntityWorkspace().addContentListener(new ContainerListenerAdapter() {
+ @Override
+ public void onResize(final BoxComponent component, final int adjWidth, final int adjHeight,
+ final int rawWidth, final int rawHeight) {
+ adjustSize(adjHeight);
}
});
+
saveTimer = new Timer() {
public void run() {
presenter.onSave();
@@ -82,12 +81,11 @@
}
public void attach() {
- // ws.getEntityWorkspace().setContent(mainPanel.getPanel());
- ws.getEntityWorkspace().setContent(gwtRTarea);
+ ws.getEntityWorkspace().setContent(mainPanel);
}
public void detach() {
- mainPanel.getPanel().removeFromParent();
+ mainPanel.removeFromParent();
}
public void editHTML(final boolean edit) {
@@ -102,10 +100,6 @@
return gwtRTarea.getText();
}
- public View getToolBar() {
- return this.textEditorToolbar;
- }
-
public void saveTimerCancel() {
saveTimer.cancel();
}
@@ -120,14 +114,6 @@
gwtRTarea.setEnabled(enabled);
}
- public void setEnabledCancelButton(final boolean enabled) {
- textEditorToolbar.setEnabledCloseButton(enabled);
- }
-
- public void setEnabledSaveButton(final boolean enabled) {
- textEditorToolbar.setEnabledSaveButton(enabled);
- }
-
public void setHeight(final String height) {
gwtRTarea.setHeight(height);
}
@@ -140,10 +126,6 @@
gwtRTarea.setText(text);
}
- public void setTextSaveButton(final String text) {
- textEditorToolbar.setTextSaveButton(text);
- }
-
public void showSaveBeforeDialog() {
MessageBox.confirm(i18n.t("Save confirmation"), i18n.t("Save before close?"), new MessageBox.ConfirmCallback() {
public void execute(final String btnID) {
@@ -157,9 +139,8 @@
}
- @Deprecated
- private void adjustSize(final String height) {
- // While refactoring
- // gwtRTarea.setHeight(height);
+ private void adjustSize(final int height) {
+ gwtRTarea.setHeight(""
+ + (height - DefaultBorderLayout.DEF_TOOLBAR_HEIGHT - DefaultBorderLayout.DEF_TOOLBAR_HEIGHT - 5));
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -75,14 +75,14 @@
public void init(final TextEditorView view) {
this.view = view;
- this.view.setEnabledSaveButton(false);
+ toolbar.setEnableAction(save, false);
this.view.setEnabled(true);
}
public void onEdit() {
if (!savePending) {
savePending = true;
- view.setEnabledSaveButton(true);
+ toolbar.setEnableAction(save, true);
if (autoSave) {
view.scheduleSave(10000);
}
@@ -113,9 +113,7 @@
view.saveTimerCancel();
savePending = false;
saveAndCloseConfirmed = false;
- view.setEnabledSaveButton(false);
- view.detach();
- toolbar.detach();
+ toolbar.setEnableAction(save, false);
}
protected void onCancel() {
@@ -129,6 +127,8 @@
protected void onCancelConfirmed() {
reset();
+ view.detach();
+ toolbar.detach();
onEditCancelled.onEvent();
}
@@ -174,7 +174,7 @@
final ActionItemCollection<StateToken> collection = new ActionItemCollection<StateToken>();
collection.add(new ActionItem<StateToken>(save, null));
collection.add(new ActionItem<StateToken>(close, null));
- toolbar.showActions(collection, true);
+ toolbar.setActions(collection);
}
private void setContent(final String html) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -30,6 +30,7 @@
import org.ourproject.kune.platf.client.ui.palette.ColorSelectListener;
import org.ourproject.kune.platf.client.ui.palette.WebSafePalettePanel;
import org.ourproject.kune.platf.client.ui.palette.WebSafePalettePresenter;
+import org.ourproject.kune.workspace.client.site.Site;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Command;
@@ -46,7 +47,6 @@
import com.google.gwt.user.client.ui.ToggleButton;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
-import com.gwtext.client.core.EventObject;
import com.gwtext.client.data.ArrayReader;
import com.gwtext.client.data.DateFieldDef;
import com.gwtext.client.data.FieldDef;
@@ -55,18 +55,15 @@
import com.gwtext.client.data.RecordDef;
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
-import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.MessageBox;
-import com.gwtext.client.widgets.ToolbarButton;
import com.gwtext.client.widgets.MessageBox.PromptCallback;
-import com.gwtext.client.widgets.event.ButtonListenerAdapter;
/**
* A sample toolbar for use with {@link RichTextArea}. It provides a simple UI
* for all rich text formatting, dynamically displayed only for the available
* functionality.
*/
-public class TextEditorToolbar extends Composite implements TextEditorToolbarView {
+public class TextEditorToolbar extends Composite {
/**
* We use an inner EventListener class to avoid exposing event methods on
@@ -230,7 +227,7 @@
ic = new ImageChooser("Image Chooser", 515, 400, store);
}
-
+ Site.important("This is in development and very experimental...");
ic.show(new ImageChooserCallback() {
public void onImageSelection(final ImageData data) {
// Element el = DomHelper.append("images",
@@ -290,10 +287,8 @@
private PushButton fontColor;
private MenuBar fonts;
private MenuBar fontSizes;
- private final ToolbarButton save;
- private final ToolbarButton close;
private WebSafePalettePanel palettePanel;
- private final TextEditorPresenter panelListener;
+ private final TextEditorPresenter presenter;
private PopupPanel popupPalette;
private WebSafePalettePresenter palettePresenter;
private final I18nTranslationService i18n;
@@ -304,43 +299,20 @@
* @param richText
* the rich text area to be controlled
*/
- public TextEditorToolbar(final RichTextArea richText, final TextEditorPresenter panelListener,
+ public TextEditorToolbar(final RichTextArea richText, final TextEditorPresenter presenter,
final I18nTranslationService i18n) {
this.richText = richText;
this.i18n = i18n;
this.basic = richText.getBasicFormatter();
this.extended = richText.getExtendedFormatter();
+ this.presenter = presenter;
- this.panelListener = panelListener;
-
initWidget(outer);
outer.add(topPanel);
outer.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE);
setStyleName("gwt-RichTextToolbar");
- save = new ToolbarButton(i18n.tWithNT("Save", "used in button"), new ButtonListenerAdapter() {
- @Override
- public void onClick(final Button button, final EventObject e) {
- if (!save.isDisabled()) {
- fireSave();
- }
- }
- });
-
- close = new ToolbarButton(i18n.tWithNT("Close", "used in button"), new ButtonListenerAdapter() {
- @Override
- public void onClick(final Button button, final EventObject e) {
- if (!close.isDisabled()) {
- fireCancel();
- }
- }
- });
-
- close.addStyleName("kune-Button-Large-lrSpace");
- topPanel.add(save);
- topPanel.add(close);
-
if (basic != null) {
topPanel.add(bold = createToggleButton(images.bold(), i18n.t("Toggle Bold")));
topPanel.add(italic = createToggleButton(images.italic(), i18n.t("Toggle Italic")));
@@ -422,26 +394,6 @@
}
}
- public void setEnabledCloseButton(final boolean enabled) {
- if (enabled) {
- close.enable();
- } else {
- close.disable();
- }
- }
-
- public void setEnabledSaveButton(final boolean enabled) {
- if (enabled) {
- save.enable();
- } else {
- save.disable();
- }
- }
-
- public void setTextSaveButton(final String text) {
- save.setText(text);
- }
-
public void showPalette(final Widget sender, final int left, final int top) {
if (palettePanel == null) {
palettePresenter = new WebSafePalettePresenter();
@@ -513,22 +465,14 @@
return tb;
}
- private void fireCancel() {
- panelListener.onCancel();
- }
-
private void fireEdit() {
- panelListener.onEdit();
+ presenter.onEdit();
}
private void fireEditHTML() {
- panelListener.onEditHTML();
+ presenter.onEditHTML();
}
- private void fireSave() {
- panelListener.onSave();
- }
-
/**
* Updates the status of all the stateful buttons.
*/
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbarView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbarView.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbarView.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -1,26 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package org.ourproject.kune.workspace.client.editor;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface TextEditorToolbarView extends View {
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorView.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorView.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -34,26 +34,18 @@
String getText();
- View getToolBar();
-
void saveTimerCancel();
void scheduleSave(int delayMillis);
void setEnabled(boolean enabled);
- void setEnabledCancelButton(boolean enabled);
-
- void setEnabledSaveButton(boolean enabled);
-
void setHeight(String height);
void setHTML(String html);
void setText(String text);
- void setTextSaveButton(String text);
-
void showSaveBeforeDialog();
}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplMozilla.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplMozilla.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplMozilla.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -31,50 +31,51 @@
*/
public class WrappedRichTextAreaImplMozilla extends RichTextAreaImplMozilla {
- @Override
- public native void initElement() /*-{
- // Mozilla doesn't allow designMode to be set reliably until the iframe is
- // fully loaded.
- var _this = this;
- var iframe = [email protected]::elem;
- _this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::initializing = true;
+ @Override
+ public native void initElement() /*-{
+ // Mozilla doesn't allow designMode to be set reliably until the iframe is
+ // fully loaded.
+ var _this = this;
+ var iframe = [email protected]::elem;
+ _this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::initializing = true;
- iframe.onload = function() {
- // Some Mozillae have the nasty habit of calling onload again when you set
- // designMode, so let's avoid doing it more than once.
- iframe.onload = null;
+ iframe.onload = function() {
+ // Some Mozillae have the nasty habit of calling onload again when you set
+ // designMode, so let's avoid doing it more than once.
+ iframe.onload = null;
- // patch ccs inject:
+ // patch ccs inject:
- var doc = [email protected]::elem.contentWindow.document;
- head=doc.getElementsByTagName('head')[0];
- link=document.createElement('link');
- link.setAttribute('rel',"stylesheet");
- link.setAttribute('type',"text/css");
- link.setAttribute('href',"css/richtext.css" );
- head.appendChild(link);
+ var doc = [email protected]::elem.contentWindow.document;
+ head=doc.getElementsByTagName('head')[0];
+ link=document.createElement('link');
+ link.setAttribute('rel',"stylesheet");
+ link.setAttribute('type',"text/css");
+ link.setAttribute('href',"css/richtext.css" );
+ head.appendChild(link);
- var styles = document.createElement('style');
- styles.setAttribute('type', 'text/css');
- var newStyle = document.createTextNode('\n<!--\nbody{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:400;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400;}q:before,q:after{content:\'\';}abbr,acronym{border:0;font-variant:normal;}sup,sub{line-height:-1px;vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}body{font:13px/1.22 arial,helvetica,clean,sans-serif;font-size:small;font:x-small;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;font-size:108%;line-height:99%;}h1{font-size:138.5%;}h2{font-size:123.1%;}h3{font-size:108%;}h1,h2,h3{margin:1em 0;}h1,h2,h3,h4,h5,h6,strong{font-weight:700;}abbr,acronym{border-bottom:1px dotted #000;cursor:help;}em{font-style:italic;}blockquote,ul,ol,dl{margin:1em;}ol,ul,dl{margin-left:2em;}ol li{list-style:decimal outside;}ul li{list-style:disc outside;}dl dd{margin-left:1em;}th,td{border:1px solid #000;padding:.5em;}th{font-weight:700;text-align:center;}caption{margin-bottom:.5em;text-align:center;}p,fieldset,table,pre{margin-bottom:1em;}input[type=text],input[type=password],textarea{width:12.25em;width:11.9em;}body{font-family:arial, sans;margin:5px}\n-->\n');
- styles.appendChild(newStyle);
- head.appendChild(styles);
+ var styles = document.createElement('style');
+ styles.setAttribute('type', 'text/css');
+ var newStyle = document.createTextNode('\n<!--\nbody{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:400;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400;}q:before,q:after{content:\'\';}abbr,acronym{border:0;font-variant:normal;}sup,sub{line-height:-1px;vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}body{font:13px/1.22 arial,helvetica,clean,sans-serif;font-size:small;font:x-small;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;font-size:108%;line-height:99%;}h1{font-size:138.5%;}h2{font-size:123.1%;}h3{font-size:108%;}h1,h2,h3{margin:1em 0;}h1,h2,h3,h4,h5,h6,strong{font-weight:700;}abbr,acronym{border-bottom:1px dotted #000;cursor:help;}em{font-style:italic;}blockquote,ul,ol,dl{margin:1em;}ol,ul,dl{margin-left:2em;}ol li{list-style:decimal outside;}ul li{list-style:disc outside;}dl dd{margin-left:1em;}th,td{border:1px solid #000;padding:.5em;}th{font-weight:700;text-align:center;}caption{margin-bottom:.5em;text-align:center;}p,fieldset,table,pre{margin-bottom:1em;}input[type=text],input[type=password],textarea{width:12.25em;width:11.9em;}body{font-family:arial, sans;margin:5px}\n-->\n');
+ styles.appendChild(newStyle);
+ head.appendChild(styles);
- // -- patch
+ // -- patch
- // Send notification that the iframe has finished loading.
- _this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::onElementInitialized()();
+ // Send notification that the iframe has finished loading.
+ _this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::onElementInitialized()();
- // Don't set designMode until the RTA actually gets focused. This is
- // necessary because editing won't work on Mozilla if the iframe is
- // *hidden, but attached*. Waiting for focus gets around this issue.
- //
- // Note: This onfocus will not conflict with the addEventListener('focus',
- // ...) // in RichTextAreaImplStandard.
- iframe.contentWindow.onfocus = function() {
- iframe.contentWindow.onfocus = null;
- iframe.contentWindow.document.designMode = 'On';
-
+ // Don't set designMode until the RTA actually gets focused. This is
+ // necessary because editing won't work on Mozilla if the iframe is
+ // *hidden, but attached*. Waiting for focus gets around this issue.
+ //
+ // Note: This onfocus will not conflict with the addEventListener('focus',
+ // ...) // in RichTextAreaImplStandard.
+ iframe.contentWindow.onfocus = function() {
+ iframe.contentWindow.onfocus = null;
+ iframe.contentWindow.document.designMode = 'On';
};
- }-*/;
+ };
+ }-*/;
}
+
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -41,7 +41,6 @@
});
final Item userHomePage = new Item(i18n.t("Your homepage"));
userHomePage.setIcon("images/group-home.gif");
- userHomePage.ensureDebugId(USER_HOME_PAGE_MENU_ITEM);
userHomePage.addListener(new BaseItemListenerAdapter() {
@Override
public void onClick(final BaseItem item, final EventObject e) {
@@ -49,9 +48,10 @@
presenter.onUserHomePage();
}
});
+ userHomePage.setId(USER_HOME_PAGE_MENU_ITEM);
userMenu.addItem(userHomePage);
final Item userPreferences = new Item(i18n.t("Your preferences"));
- userPreferences.ensureDebugId(USER_PREFERENCES_MENU_ITEM);
+ userPreferences.setId(USER_PREFERENCES_MENU_ITEM);
userPreferences.setIcon("images/kune-preferences.gif");
userPreferences.addListener(new BaseItemListenerAdapter() {
@Override
@@ -62,7 +62,7 @@
});
userMenu.addItem(userPreferences);
userParticipation = new Menu();
- userParticipation.ensureDebugId(USER_PARTICIPATION_MENU_ITEM);
+ userParticipation.setId(USER_PARTICIPATION_MENU_ITEM);
final MenuItem userParticipationItem = new MenuItem(i18n.t("Your groups"), userParticipation);
userParticipationItem.setIcon("");
userMenu.addItem(userParticipationItem);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -28,7 +28,6 @@
private final Toolbar contextBottomBar;
private final RoundedPanel roundedTitle;
private final RoundedPanel roundedBottom;
- private final DefaultBorderLayout contextWrap;
public EntityWorkspace() {
final Panel titles = new Panel();
@@ -58,7 +57,7 @@
bottomPanel.add(roundedBottom, new AnchorLayoutData("100% -" + DEF_TOOLBAR_HEIGHT));
final DefaultBorderLayout contentWrap = new DefaultBorderLayout();
- contextWrap = new DefaultBorderLayout();
+ final DefaultBorderLayout contextWrap = new DefaultBorderLayout();
contentWrap.setBorder(true);
contextWrap.setBorder(true);
content = new Panel();
@@ -69,7 +68,7 @@
content.setBorder(false);
context.setBorder(false);
context.setCollapsible(true);
- content.setPaddings(7);
+ // content.setPaddings(7);
content.setAutoScroll(true);
// context.setAutoScroll(true);
Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java 2008-10-01 01:29:01 UTC (rev 898)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java 2008-10-01 21:12:10 UTC (rev 899)
@@ -17,7 +17,7 @@
@Test
public void testSave() {
viewInit();
- view.setEnabledSaveButton(true);
+ // view.setEnabledSaveButton(true);
view.scheduleSave(10000);
EasyMock.expect(view.getHTML()).andReturn("foo");
viewReset();
@@ -35,7 +35,7 @@
@Test
public void testSavePending() {
viewInit();
- view.setEnabledSaveButton(true);
+ // view.setEnabledSaveButton(true);
view.scheduleSave(10000);
EasyMock.replay(view);
presenter.init(view);
@@ -46,7 +46,7 @@
@Test
public void testSavePendingCancel() {
viewInit();
- view.setEnabledSaveButton(true);
+ // view.setEnabledSaveButton(true);
view.scheduleSave(10000);
view.saveTimerCancel();
view.showSaveBeforeDialog();
@@ -68,7 +68,7 @@
@Test
public void testSavePendingCancelSaveFails() {
viewInit();
- view.setEnabledSaveButton(true);
+ // view.setEnabledSaveButton(true);
view.scheduleSave(10000);
view.saveTimerCancel();
view.showSaveBeforeDialog();
@@ -95,12 +95,12 @@
}
private void viewInit() {
- view.setEnabledSaveButton(false);
+ // view.setEnabledSaveButton(false);
view.setEnabled(true);
}
private void viewReset() {
view.saveTimerCancel();
- view.setEnabledSaveButton(false);
+ // view.setEnabledSaveButton(false);
}
}
1
0
Author: vjrj
Date: 2008-10-01 03:29:01 +0200 (Wed, 01 Oct 2008)
New Revision: 898
Added:
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplOpera.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplSafari.java
Removed:
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorListener.java
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/docs/client/cnt/DocumentContent.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/AccessListsDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/AccessRightsDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupListDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/LinkDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/ParticipationDataDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkResultDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagResultDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserSimpleDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.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/server/access/AccessRights.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/AccessLists.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/GroupList.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/I18nLanguage.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/I18nTranslation.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/SocialNetwork.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/User.java
trunk/src/main/java/org/ourproject/kune/platf/server/state/State.java
trunk/src/main/java/org/ourproject/kune/workspace/Kune-Workspace.gwt.xml
trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditor.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplIE6.java
trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplMozilla.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java
trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java
Log:
Editor refactorization (not finished)
RichTextArea css injets.
toStrings in DTOs for better logs.
Complete - task 62: ContextNav tree scroll problem
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-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -10,6 +10,7 @@
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_WIKI;
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_WIKIPAGE;
+import org.ourproject.kune.docs.client.cnt.DocumentContent;
import org.ourproject.kune.platf.client.actions.ActionEnableCondition;
import org.ourproject.kune.platf.client.actions.ActionMenuItemDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarButtonAndItemDescriptor;
@@ -27,20 +28,25 @@
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.errors.SessionExpiredException;
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.services.KuneErrorHandler;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
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.editor.TextEditor;
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 com.calclab.suco.client.ioc.Provider;
import com.calclab.suco.client.listener.Listener;
+import com.calclab.suco.client.listener.Listener0;
+import com.google.gwt.user.client.rpc.AsyncCallback;
public class DocumentClientActions {
@@ -55,13 +61,18 @@
private final Provider<GroupServiceAsync> groupServiceProvider;
private final Provider<FileDownloadUtils> fileDownloadProvider;
private final EntityLogo entityLogo;
+ private final Provider<TextEditor> textEditorProvider;
+ private final KuneErrorHandler errorHandler;
+ private final DocumentContent documentContent;
public DocumentClientActions(final I18nUITranslationService i18n, final ContextNavigator contextNavigator,
final Session session, final StateManager stateManager,
final Provider<ContentServiceAsync> contentServiceProvider,
final Provider<GroupServiceAsync> groupServiceProvider, final Provider<FileUploader> fileUploaderProvider,
final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry,
- final Provider<FileDownloadUtils> fileDownloadProvider, final EntityLogo entityLogo) {
+ final Provider<FileDownloadUtils> fileDownloadProvider, final EntityLogo entityLogo,
+ final Provider<TextEditor> textEditorProvider, final KuneErrorHandler errorHandler,
+ final DocumentContent documentContent) {
this.i18n = i18n;
this.contextNavigator = contextNavigator;
this.session = session;
@@ -73,6 +84,9 @@
this.contentActionRegistry = contentActionRegistry;
this.fileDownloadProvider = fileDownloadProvider;
this.entityLogo = entityLogo;
+ this.textEditorProvider = textEditorProvider;
+ this.errorHandler = errorHandler;
+ this.documentContent = documentContent;
createActions();
}
@@ -306,6 +320,47 @@
final ActionToolbarButtonDescriptor<StateToken> editContent = new ActionToolbarButtonDescriptor<StateToken>(
AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
+ session.check(new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ final TextEditor editor = textEditorProvider.get();
+ documentContent.detach();
+ editor.editContent(session.getCurrentState().getContent(), new Listener<String>() {
+ public void onEvent(final String html) {
+ Site.showProgressSaving();
+ contentServiceProvider.get().save(session.getUserHash(), stateToken, html,
+ new AsyncCallback<Integer>() {
+ public void onFailure(final Throwable caught) {
+ Site.hideProgress();
+ try {
+ throw caught;
+ } catch (final SessionExpiredException e) {
+ errorHandler.doSessionExpired();
+ } catch (final Throwable e) {
+ Site.error(i18n.t("Error saving document. Retrying..."));
+ errorHandler.process(caught);
+ editor.onSaveFailed();
+ }
+ }
+
+ public void onSuccess(final Integer newVersion) {
+ Site.hideProgress();
+ editor.onSaved();
+ if (session.getCurrentStateToken().equals(stateToken)) {
+ session.getCurrentState().setVersion(newVersion);
+ session.getCurrentState().setContent(html);
+ documentContent.refreshState();
+ }
+ }
+ });
+ }
+ }, new Listener0() {
+ public void onEvent() {
+ // onClose
+ documentContent.refreshState();
+ }
+ });
+ }
+ });
}
});
editContent.setTextDescription(i18n.tWithNT("Edit", "used in button"));
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-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -35,7 +35,6 @@
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.tool.ToolSelector;
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;
@@ -74,7 +73,8 @@
return new DocumentClientActions($(I18nUITranslationService.class), $(ContextNavigator.class),
$(Session.class), $(StateManager.class), $$(ContentServiceAsync.class),
$$(GroupServiceAsync.class), $$(FileUploader.class), $(ContentActionRegistry.class),
- $(ContextActionRegistry.class), $$(FileDownloadUtils.class), $(EntityLogo.class));
+ $(ContextActionRegistry.class), $$(FileDownloadUtils.class), $(EntityLogo.class),
+ $$(TextEditor.class), $(KuneErrorHandler.class), $(DocumentContent.class));
}
});
@@ -83,12 +83,11 @@
final ActionToolbarPanel<StateToken> contentNavigatorToolbar = new ActionToolbarPanel<StateToken>(
ActionToolbarPanel.Position.content, $$(ActionManager.class), $(WorkspaceSkeleton.class));
final ActionToolbar<StateToken> toolbar = new ActionToolbarPresenter<StateToken>(
- contentNavigatorToolbar, $(ContentActionRegistry.class));
+ contentNavigatorToolbar);
final DocumentContentPresenter presenter = new DocumentContentPresenter($(StateManager.class),
- $(I18nUITranslationService.class), $(KuneErrorHandler.class), $(Session.class),
- $(RateIt.class), $$(DocumentReader.class), $$(TextEditor.class), $$(FolderViewer.class),
- $$(ContentServiceAsync.class), toolbar, $(ContentActionRegistry.class));
+ $(Session.class), $$(DocumentReader.class), $$(TextEditor.class), $$(FolderViewer.class),
+ toolbar, $(ContentActionRegistry.class));
final DocumentContentPanel panel = new DocumentContentPanel($(WorkspaceSkeleton.class));
presenter.init(panel);
return presenter;
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContent.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContent.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContent.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -20,20 +20,10 @@
package org.ourproject.kune.docs.client.cnt;
-import com.calclab.suco.client.listener.Listener0;
-
public interface DocumentContent {
- void onEditCancelled(Listener0 listener);
+ void detach();
- void onDeleteClicked();
+ void refreshState();
- void onEditClicked();
-
- void onEditing(Listener0 listener);
-
- void onSaved();
-
- void onSaveFailed();
-
}
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-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -28,165 +28,62 @@
import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.errors.SessionExpiredException;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
-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.ui.rate.RateIt;
import org.ourproject.kune.workspace.client.editor.TextEditor;
-import org.ourproject.kune.workspace.client.editor.TextEditorListener;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.site.Site;
import com.calclab.suco.client.ioc.Provider;
-import com.calclab.suco.client.listener.Event0;
import com.calclab.suco.client.listener.Listener;
-import com.calclab.suco.client.listener.Listener0;
import com.calclab.suco.client.listener.Listener2;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-public class DocumentContentPresenter implements DocumentContent, TextEditorListener {
+public class DocumentContentPresenter implements DocumentContent {
private DocumentContentView view;
- private final StateManager stateManager;
private StateDTO content;
private final Session session;
- private final RateIt rateIt;
private final Provider<DocumentReader> docReaderProvider;
private final Provider<TextEditor> textEditorProvider;
private final Provider<FolderViewer> folderViewerProvider;
- private final Event0 onEditing;
- private final Event0 onEditCancelled;
- private final Provider<ContentServiceAsync> contentServiceProvider;
- private final I18nUITranslationService i18n;
- private final KuneErrorHandler errorHandler;
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,
+ public DocumentContentPresenter(final StateManager stateManager, final Session session,
final Provider<DocumentReader> docReaderProvider, final Provider<TextEditor> textEditorProvider,
- final Provider<FolderViewer> folderViewerProvider,
- final Provider<ContentServiceAsync> contentServiceProvider, final ActionToolbar<StateToken> toolbar,
+ final Provider<FolderViewer> folderViewerProvider, final ActionToolbar<StateToken> toolbar,
final ActionRegistry<StateToken> actionRegistry) {
- this.stateManager = stateManager;
- this.i18n = i18n;
- this.errorHandler = errorHandler;
this.session = session;
- this.rateIt = rateIt;
this.docReaderProvider = docReaderProvider;
this.textEditorProvider = textEditorProvider;
this.folderViewerProvider = folderViewerProvider;
- this.contentServiceProvider = contentServiceProvider;
this.toolbar = toolbar;
this.actionRegistry = actionRegistry;
- this.onEditing = new Event0("onEditing");
- this.onEditCancelled = new Event0("onEditCancelled");
stateManager.onStateChanged(new Listener<StateDTO>() {
public void onEvent(final StateDTO state) {
if (state.getToolName().equals(DocumentClientTool.NAME)) {
setState(state);
- toolbar.attach();
}
}
});
stateManager.onToolChanged(new Listener2<String, String>() {
public void onEvent(final String oldTool, final String newTool) {
if (oldTool != null && oldTool.equals(DocumentClientTool.NAME)) {
- // Detach
+ toolbar.detach();
}
}
});
}
+ public void detach() {
+ toolbar.detach();
+ }
+
public void init(final DocumentContentView view) {
this.view = view;
}
- public void onDeleteClicked() {
- Site.showProgressProcessing();
- contentServiceProvider.get().delContent(session.getUserHash(), content.getStateToken(),
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- Site.hideProgress();
- stateManager.reload();
- }
- });
+ public void refreshState() {
+ setState(session.getCurrentState());
}
- public void onEditCancelled() {
- showContent();
- onEditCancelled.fire();
- // Re-enable rateIt widget
- rateIt.setVisible(true);
- textEditorProvider.get().setToolbarVisible(false);
- }
-
- public void onEditCancelled(final Listener0 listener) {
- onEditCancelled.add(listener);
- }
-
- public void onEditClicked() {
- session.check(new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- if (content.hasDocument()) {
- // Don't permit rate content while your are editing
- rateIt.setVisible(false);
- final TextEditor editor = textEditorProvider.get();
- editor.setContent(content.getContent());
- editor.setToolbarVisible(true);
- view.setContent(editor.getView());
- } else {
- // final FolderEditor editor = folderEditorProvider.get();
- // editor.setFolder(content.getContainer());
- // view.setContent(editor.getView());
- }
- onEditing.fire();
- }
- });
- }
-
- public void onEditing(final Listener0 listener) {
- onEditing.add(listener);
- }
-
- public void onSave(final String text) {
- content.setContent(text);
- Site.showProgressSaving();
- contentServiceProvider.get().save(session.getUserHash(), content.getStateToken(), content.getContent(),
- new AsyncCallback<Integer>() {
- public void onFailure(final Throwable caught) {
- Site.hideProgress();
- try {
- throw caught;
- } catch (final SessionExpiredException e) {
- errorHandler.doSessionExpired();
- } catch (final Throwable e) {
- Site.error(i18n.t("Error saving document. Retrying..."));
- errorHandler.process(caught);
- onSaveFailed();
- }
- }
-
- public void onSuccess(final Integer result) {
- Site.hideProgress();
- onSaved();
- }
- });
- }
-
- public void onSaved() {
- textEditorProvider.get().onSaved();
- }
-
- public void onSaveFailed() {
- textEditorProvider.get().onSaveFailed();
- }
-
- public void onTranslate() {
- }
-
private void setState(final StateDTO state) {
content = state;
final String typeId = content.getTypeId();
@@ -200,11 +97,12 @@
}
toolbar.disableMenusAndClearButtons();
toolbar.showActions(collection, true);
+ toolbar.attach();
showContent();
}
private void showContent() {
- textEditorProvider.get().setToolbarVisible(false);
+ // textEditorProvider.get().setToolbarVisible(false);
if (content.hasDocument()) {
docReaderProvider.get().showDocument(content.getStateToken(), content.getContent(), content.getTypeId(),
content.getMimeType());
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-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -19,11 +19,6 @@
}
}
- public boolean checkEnabling(final ActionDescriptor<T> action, final T T) {
- final ActionEnableCondition<T> enableCondition = action.getEnableCondition();
- return enableCondition != null ? enableCondition.mustBeEnabled(T) : true;
- }
-
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>();
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-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -1,9 +1,9 @@
package org.ourproject.kune.platf.client.actions.toolbar;
import org.ourproject.kune.platf.client.actions.ActionDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionEnableCondition;
import org.ourproject.kune.platf.client.actions.ActionItem;
import org.ourproject.kune.platf.client.actions.ActionItemCollection;
-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;
@@ -13,17 +13,20 @@
public class ActionToolbarPresenter<T> implements ActionToolbar<T> {
private final ActionToolbarView<T> toolbar;
- private final ActionRegistry<T> actionRegistry;
- public ActionToolbarPresenter(final ActionToolbarView<T> toolbar, final ActionRegistry<T> actionRegistry) {
+ public ActionToolbarPresenter(final ActionToolbarView<T> toolbar) {
this.toolbar = toolbar;
- this.actionRegistry = actionRegistry;
}
public void attach() {
toolbar.attach();
}
+ public boolean checkEnabling(final ActionDescriptor<T> action, final T T) {
+ final ActionEnableCondition<T> enableCondition = action.getEnableCondition();
+ return enableCondition != null ? enableCondition.mustBeEnabled(T) : true;
+ }
+
public void clear() {
toolbar.clear();
}
@@ -34,21 +37,17 @@
public void disableMenusAndClearButtons() {
toolbar.clear();
- // With action-item, this must be redesigned
- // toolbar.clearRemovableActions();
- // toolbar.disableAllMenuItems();
}
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()));
+ toolbar.addMenuAction(actionItem, isItemSelected && checkEnabling(action, actionItem.getItem()));
} else {
if (action instanceof ActionToolbarButtonDescriptor
|| action instanceof ActionToolbarButtonAndItemDescriptor) {
- if (isItemSelected && actionRegistry.checkEnabling(action, actionItem.getItem())) {
+ if (isItemSelected && checkEnabling(action, actionItem.getItem())) {
toolbar.addButtonAction(actionItem);
}
} else {
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/AccessListsDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/AccessListsDTO.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/AccessListsDTO.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -28,37 +28,42 @@
private GroupListDTO viewers;
public AccessListsDTO() {
- this(null, null, null);
+ this(null, null, null);
}
public AccessListsDTO(final GroupListDTO admins, final GroupListDTO editors, final GroupListDTO viewers) {
- this.admins = admins;
- this.editors = editors;
- this.viewers = viewers;
+ this.admins = admins;
+ this.editors = editors;
+ this.viewers = viewers;
}
public GroupListDTO getAdmins() {
- return admins;
+ return admins;
}
- public void setAdmins(final GroupListDTO admins) {
- this.admins = admins;
+ public GroupListDTO getEditors() {
+ return editors;
}
- public GroupListDTO getEditors() {
- return editors;
+ public GroupListDTO getViewers() {
+ return viewers;
}
- public void setEditors(final GroupListDTO editors) {
- this.editors = editors;
+ public void setAdmins(final GroupListDTO admins) {
+ this.admins = admins;
}
- public GroupListDTO getViewers() {
- return viewers;
+ public void setEditors(final GroupListDTO editors) {
+ this.editors = editors;
}
public void setViewers(final GroupListDTO viewers) {
- this.viewers = viewers;
+ this.viewers = viewers;
}
+ @Override
+ public String toString() {
+ return "AccessListDTO[admins :" + admins + "; editors: " + editors + "; viewers: " + viewers + "]";
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/AccessRightsDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/AccessRightsDTO.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/AccessRightsDTO.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -27,63 +27,62 @@
private boolean isEditable;
private boolean isVisible;
+ public AccessRightsDTO() {
+ this(false, false, false);
+ }
+
public AccessRightsDTO(final boolean isAdministrable, final boolean isEditable, final boolean isVisible) {
- this.isAdministrable = isAdministrable;
- this.isEditable = isEditable;
- this.isVisible = isVisible;
+ this.isAdministrable = isAdministrable;
+ this.isEditable = isEditable;
+ this.isVisible = isVisible;
}
- public AccessRightsDTO() {
- this(false, false, false);
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ final AccessRightsDTO other = (AccessRightsDTO) obj;
+ if (isAdministrable != other.isAdministrable) {
+ return false;
+ }
+ if (isEditable != other.isEditable) {
+ return false;
+ }
+ if (isVisible != other.isVisible) {
+ return false;
+ }
+ return true;
}
public boolean isAdministrable() {
- return isAdministrable;
+ return isAdministrable;
}
- public void setAdministrable(final boolean isAdministrable) {
- this.isAdministrable = isAdministrable;
+ public boolean isEditable() {
+ return isEditable;
}
- public boolean isEditable() {
- return isEditable;
+ public boolean isVisible() {
+ return isVisible;
}
- public void setEditable(final boolean isEditable) {
- this.isEditable = isEditable;
+ public void setAdministrable(final boolean isAdministrable) {
+ this.isAdministrable = isAdministrable;
}
- public boolean isVisible() {
- return isVisible;
+ public void setEditable(final boolean isEditable) {
+ this.isEditable = isEditable;
}
public void setVisible(final boolean isVisible) {
- this.isVisible = isVisible;
+ this.isVisible = isVisible;
}
public String toString() {
- return "[" + isAdministrable + ", " + isEditable + ", " + isVisible + "]";
+ return "AccessRightsDTO[a: " + isAdministrable + ", e: " + isEditable + ", v: " + isVisible + "]";
}
-
- @Override
- public boolean equals(final Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- final AccessRightsDTO other = (AccessRightsDTO) obj;
- if (isAdministrable != other.isAdministrable) {
- return false;
- }
- if (isEditable != other.isEditable) {
- return false;
- }
- if (isVisible != other.isVisible) {
- return false;
- }
- return true;
- }
-
}
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-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -54,34 +54,6 @@
return false;
}
final GroupDTO other = (GroupDTO) obj;
- if (defaultLicense == null) {
- if (other.defaultLicense != null) {
- return false;
- }
- } else if (!defaultLicense.equals(other.defaultLicense)) {
- return false;
- }
- if (id == null) {
- if (other.id != null) {
- return false;
- }
- } else if (!id.equals(other.id)) {
- return false;
- }
- if (longName == null) {
- if (other.longName != null) {
- return false;
- }
- } else if (!longName.equals(other.longName)) {
- return false;
- }
- if (publicDesc == null) {
- if (other.publicDesc != null) {
- return false;
- }
- } else if (!publicDesc.equals(other.publicDesc)) {
- return false;
- }
if (shortName == null) {
if (other.shortName != null) {
return false;
@@ -89,9 +61,6 @@
} else if (!shortName.equals(other.shortName)) {
return false;
}
- if (type != other.type) {
- return false;
- }
return true;
}
@@ -187,4 +156,7 @@
this.workspaceTheme = workspaceTheme;
}
+ public String toString() {
+ return "GroupDTO[" + shortName + "]";
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupListDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupListDTO.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupListDTO.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -31,27 +31,34 @@
private String mode;
public GroupListDTO() {
- this(null);
+ this(null);
}
public GroupListDTO(final List<GroupDTO> list) {
- this.list = list;
+ this.list = list;
}
public List<GroupDTO> getList() {
- return list;
+ return list;
}
- public void setList(final List<GroupDTO> list) {
- this.list = list;
+ public String getMode() {
+ return mode;
}
- public String getMode() {
- return mode;
+ public void setList(final List<GroupDTO> list) {
+ this.list = list;
}
public void setMode(final String mode) {
- this.mode = mode;
+ this.mode = mode;
}
+ public String toString() {
+ String groupString = "";
+ for (final GroupDTO group : list) {
+ groupString = groupString + group.getShortName() + ", ";
+ }
+ return "GroupDTO[(" + mode + "): " + groupString + "]";
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/LinkDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/LinkDTO.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/LinkDTO.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -32,62 +32,62 @@
private List<TagDTO> tags;
public LinkDTO() {
- this(null, null, null, null);
+ this(null, null, null, null);
}
public LinkDTO(final String shortName, final String longName, final String iconUrl, final String link) {
- this.shortName = shortName;
- this.longName = longName;
- this.iconUrl = iconUrl;
- this.link = link;
+ this.shortName = shortName;
+ this.longName = longName;
+ this.iconUrl = iconUrl;
+ this.link = link;
}
- public String getShortName() {
- return shortName;
+ public String getIconUrl() {
+ return iconUrl;
}
- public void setShortName(final String shortName) {
- this.shortName = shortName;
- }
-
public String getLink() {
- return link;
+ return link;
}
- public void setLink(final String link) {
- this.link = link;
+ public String getLongName() {
+ return longName;
}
- public String getLongName() {
- return longName;
+ public Double getRate() {
+ return rate;
}
- public void setLongName(final String longName) {
- this.longName = longName;
+ public String getShortName() {
+ return shortName;
}
- public String getIconUrl() {
- return iconUrl;
+ public List<TagDTO> getTags() {
+ return tags;
}
public void setIconUrl(final String iconUrl) {
- this.iconUrl = iconUrl;
+ this.iconUrl = iconUrl;
}
- public Double getRate() {
- return rate;
+ public void setLink(final String link) {
+ this.link = link;
}
+ public void setLongName(final String longName) {
+ this.longName = longName;
+ }
+
public void setRate(final Double rate) {
- this.rate = rate;
+ this.rate = rate;
}
- public List<TagDTO> getTags() {
- return tags;
+ public void setShortName(final String shortName) {
+ this.shortName = shortName;
}
public void setTags(final List<TagDTO> tags) {
- this.tags = tags;
+ this.tags = tags;
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/ParticipationDataDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/ParticipationDataDTO.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/ParticipationDataDTO.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -53,4 +53,9 @@
this.groupsIsCollab = groupsIsCollab;
}
+ @Override
+ public String toString() {
+ return "ParticipationDataDTO[admin in: " + groupsIsAdmin.toString() + ", collab in: "
+ + groupsIsCollab.toString() + "]";
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkDTO.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkDTO.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -48,4 +48,8 @@
this.pendingCollaborators = pendingCollaborators;
}
+ public String toString() {
+ return "SocialNetworkDTO[accessList: " + accessLists + "; pendingsCollabs: " + pendingCollaborators + "]";
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkResultDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkResultDTO.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkResultDTO.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -28,28 +28,31 @@
ParticipationDataDTO userParticipation;
public SocialNetworkResultDTO() {
- this(null, null);
+ this(null, null);
}
public SocialNetworkResultDTO(final SocialNetworkDTO groupMembers, final ParticipationDataDTO userParticipation) {
- this.groupMembers = groupMembers;
- this.userParticipation = userParticipation;
+ this.groupMembers = groupMembers;
+ this.userParticipation = userParticipation;
}
public SocialNetworkDTO getGroupMembers() {
- return groupMembers;
+ return groupMembers;
}
- public void setGroupMembers(final SocialNetworkDTO groupMembers) {
- this.groupMembers = groupMembers;
+ public ParticipationDataDTO getUserParticipation() {
+ return userParticipation;
}
- public ParticipationDataDTO getUserParticipation() {
- return userParticipation;
+ public void setGroupMembers(final SocialNetworkDTO groupMembers) {
+ this.groupMembers = groupMembers;
}
public void setUserParticipation(final ParticipationDataDTO userParticipation) {
- this.userParticipation = userParticipation;
+ this.userParticipation = userParticipation;
}
+ public String toString() {
+ return "SocialNetworkResultDTO[members: " + groupMembers + "; participation: " + userParticipation + "]";
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateDTO.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateDTO.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -23,7 +23,6 @@
import java.util.Date;
import java.util.List;
-
import com.google.gwt.user.client.rpc.IsSerializable;
public class StateDTO implements IsSerializable {
@@ -304,4 +303,8 @@
this.version = version;
}
+ public String toString() {
+ return "StateDTO[" + stateToken + "/" + typeId + "]";
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagDTO.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagDTO.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -26,19 +26,23 @@
private String name;
public TagDTO() {
- this(null);
+ this(null);
}
public TagDTO(final String name) {
- this.name = name;
+ this.name = name;
}
public String getName() {
- return name;
+ return name;
}
public void setName(final String name) {
- this.name = name;
+ this.name = name;
}
+ public String toString() {
+ return name;
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagResultDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagResultDTO.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagResultDTO.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -27,28 +27,32 @@
private Long count;
public TagResultDTO() {
- this(null, null);
+ this(null, null);
}
public TagResultDTO(final String name, final Long count) {
- this.name = name;
- this.count = count;
+ this.name = name;
+ this.count = count;
}
public Long getCount() {
- return count;
+ return count;
}
- public void setCount(final Long count) {
- this.count = count;
+ public String getName() {
+ return name;
}
- public String getName() {
- return name;
+ public void setCount(final Long count) {
+ this.count = count;
}
public void setName(final String name) {
- this.name = name;
+ this.name = name;
}
+ public String toString() {
+ return name + "(" + count + ")";
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserDTO.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserDTO.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -153,4 +153,8 @@
this.timezone = timezone;
}
+ public String toString() {
+ return "UserDTO[" + shortName + "]";
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserSimpleDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserSimpleDTO.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserSimpleDTO.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -22,41 +22,35 @@
import com.google.gwt.user.client.rpc.IsSerializable;
public class UserSimpleDTO implements IsSerializable {
-
private Long id;
-
private String name;
-
private String shortName;
-
private I18nLanguageDTO language;
-
private I18nCountryDTO country;
-
private TimeZoneDTO timezone;
public UserSimpleDTO() {
- this(null, null, null, null, null);
+ this(null, null, null, null, null);
}
public UserSimpleDTO(final String name, final String shortName, final I18nLanguageDTO language,
- final I18nCountryDTO country, final TimeZoneDTO timezone) {
- this.name = name;
- this.shortName = shortName;
- this.language = language;
- this.country = country;
- this.timezone = timezone;
+ final I18nCountryDTO country, final TimeZoneDTO timezone) {
+ this.name = name;
+ this.shortName = shortName;
+ this.language = language;
+ this.country = country;
+ this.timezone = timezone;
}
@Override
public boolean equals(final Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- final UserSimpleDTO other = (UserSimpleDTO) obj;
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ final UserSimpleDTO other = (UserSimpleDTO) obj;
if (id == null) {
if (other.id != null) {
return false;
@@ -64,71 +58,75 @@
} else if (!id.equals(other.id)) {
return false;
}
- if (shortName == null) {
- if (other.shortName != null) {
- return false;
- }
- } else if (!shortName.equals(other.shortName)) {
- return false;
- }
- return true;
+ if (shortName == null) {
+ if (other.shortName != null) {
+ return false;
+ }
+ } else if (!shortName.equals(other.shortName)) {
+ return false;
+ }
+ return true;
}
public I18nCountryDTO getCountry() {
- return country;
+ return country;
}
public Long getId() {
- return id;
+ return id;
}
public I18nLanguageDTO getLanguage() {
- return language;
+ return language;
}
public String getName() {
- return name;
+ return name;
}
public String getShortName() {
- return shortName;
+ return shortName;
}
public TimeZoneDTO getTimezone() {
- return timezone;
+ return timezone;
}
@Override
public int hashCode() {
- final int prime = 31;
- int result = 1;
+ final int prime = 31;
+ int result = 1;
result = prime * result + (id == null ? 0 : id.hashCode());
- result = prime * result + (shortName == null ? 0 : shortName.hashCode());
- return result;
+ result = prime * result + (shortName == null ? 0 : shortName.hashCode());
+ return result;
}
public void setCountry(final I18nCountryDTO country) {
- this.country = country;
+ this.country = country;
}
public void setId(final Long id) {
- this.id = id;
+ this.id = id;
}
public void setLanguage(final I18nLanguageDTO language) {
- this.language = language;
+ this.language = language;
}
public void setName(final String name) {
- this.name = name;
+ this.name = name;
}
public void setShortName(final String shortName) {
- this.shortName = shortName;
+ this.shortName = shortName;
}
public void setTimezone(final TimeZoneDTO timezone) {
- this.timezone = timezone;
+ this.timezone = timezone;
}
+ public String toString() {
+ return "UserSimpleDTO(" + shortName + ")";
+ }
+
}
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-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -283,7 +283,12 @@
register(Singleton.class, new Factory<TextEditor>(TextEditor.class) {
public TextEditor create() {
- final TextEditorPresenter presenter = new TextEditorPresenter(null, true);
+ final ActionToolbarPanel<StateToken> contentNavigatorToolbar = new ActionToolbarPanel<StateToken>(
+ ActionToolbarPanel.Position.content, $$(ActionManager.class), $(WorkspaceSkeleton.class));
+ final ActionToolbar<StateToken> toolbar = new ActionToolbarPresenter<StateToken>(
+ contentNavigatorToolbar);
+ final TextEditorPresenter presenter = new TextEditorPresenter(true, toolbar,
+ $(I18nUITranslationService.class));
final TextEditorPanel panel = new TextEditorPanel(presenter, i18n, $(WorkspaceSkeleton.class));
presenter.init(panel);
return presenter;
@@ -334,14 +339,14 @@
final ActionToolbarPanel<StateToken> contextNavigatorToolbar = new ActionToolbarPanel<StateToken>(
ActionToolbarPanel.Position.context, $$(ActionManager.class), $(WorkspaceSkeleton.class));
final ActionToolbar<StateToken> toolbar = new ActionToolbarPresenter<StateToken>(
- contextNavigatorToolbar, $(ContentActionRegistry.class));
+ contextNavigatorToolbar);
final ContextNavigatorPresenter presenter = new ContextNavigatorPresenter($(StateManager.class),
$(Session.class), $$(ContentServiceAsync.class), i18n, $(EntityTitle.class),
$(ContentIconsRegistry.class), $(DragDropContentRegistry.class), toolbar,
$(ContextActionRegistry.class));
final ContextNavigatorPanel panel = new ContextNavigatorPanel(presenter, i18n,
- $(WorkspaceSkeleton.class), $(ActionManager.class), $(WsThemePresenter.class));
+ $(WorkspaceSkeleton.class), $(ActionManager.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-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -33,8 +33,6 @@
void addSiteToken(String token, Listener<StateToken> whenToken);
- void gotoContainer(Long containerId);
-
void gotoToken(StateToken state);
void gotoToken(String token);
@@ -51,7 +49,7 @@
void removeSiteToken(String token);
- void setRetrievedState(StateDTO content);
+ void setRetrievedState(StateDTO state);
void setSocialNetwork(SocialNetworkResultDTO socialNet);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -63,7 +63,11 @@
this.onSocialNetworkChanged = new Event<StateDTO>("onSocialNetworkChanged");
session.onUserSignIn(new Listener<UserInfoDTO>() {
public void onEvent(final UserInfoDTO parameter) {
- restorePreviousState();
+ if (oldState != null) {
+ restorePreviousState();
+ } else {
+ reload();
+ }
}
});
session.onUserSignOut(new Listener0() {
@@ -78,14 +82,8 @@
siteTokens.put(token, listener);
}
- public void gotoContainer(final Long containerId) {
- final StateToken newStateToken = session.getCurrentState().getStateToken().clone();
- newStateToken.clearDocument();
- newStateToken.setFolder(containerId);
- gotoToken(newStateToken);
- }
-
public void gotoToken(final StateToken state) {
+ Log.debug("StateManager: history goto-token newItem (" + state + ")");
history.newItem(state.getEncoded());
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/access/AccessRights.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/access/AccessRights.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/access/AccessRights.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -25,38 +25,41 @@
boolean isEditable;
boolean isVisible;
+ public AccessRights() {
+ this(false, false, false);
+ }
+
public AccessRights(final boolean isAdministrable, final boolean isEditable, final boolean isVisible) {
this.isAdministrable = isAdministrable;
this.isEditable = isEditable;
this.isVisible = isVisible;
}
- public AccessRights() {
- this(false, false, false);
- }
-
public boolean isAdministrable() {
return isAdministrable;
}
+ public boolean isEditable() {
+ return isEditable;
+ }
+
+ public boolean isVisible() {
+ return isVisible;
+ }
+
public void setAdministrable(final boolean isAdministrable) {
this.isAdministrable = isAdministrable;
}
- public boolean isEditable() {
- return isEditable;
- }
-
public void setEditable(final boolean isEditable) {
this.isEditable = isEditable;
}
- public boolean isVisible() {
- return isVisible;
- }
-
public void setVisible(final boolean isVisible) {
this.isVisible = isVisible;
}
+ public String toString() {
+ return "AccessRights[a: " + isAdministrable + ", e: " + isEditable + ", v: " + isVisible + "]";
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/AccessLists.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/AccessLists.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/AccessLists.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -32,16 +32,16 @@
@Entity
@Table(name = "access_lists")
public class AccessLists {
- @Id
- @GeneratedValue
- private Long id;
-
@OneToOne(cascade = CascadeType.ALL)
protected GroupList admins;
+
@OneToOne(cascade = CascadeType.ALL)
protected GroupList editors;
@OneToOne(cascade = CascadeType.ALL)
protected GroupList viewers;
+ @Id
+ @GeneratedValue
+ private Long id;
public AccessLists() {
this.admins = new GroupList();
@@ -49,14 +49,6 @@
this.viewers = new GroupList();
}
- public Long getId() {
- return id;
- }
-
- public void setId(final Long id) {
- this.id = id;
- }
-
public void addAdmin(final Group group) {
admins.add(group);
}
@@ -69,6 +61,18 @@
viewers.add(group);
}
+ public GroupList getAdmins() {
+ return admins;
+ }
+
+ public GroupList getEditors() {
+ return editors;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
public GroupList getList(final AccessRol rol) {
if (rol == AccessRol.Administrator) {
return getAdmins();
@@ -79,14 +83,6 @@
}
}
- public GroupList getAdmins() {
- return admins;
- }
-
- public GroupList getEditors() {
- return editors;
- }
-
public GroupList getViewers() {
return viewers;
}
@@ -102,4 +98,13 @@
public void removeViewer(final Group group) {
viewers.remove(group);
}
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ @Override
+ public String toString() {
+ return "AccessList[admins :" + admins + "; editors: " + editors + "; viewers: " + viewers + "]";
+ }
}
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-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -281,4 +281,7 @@
this.workspaceTheme = workspaceTheme;
}
+ public String toString() {
+ return "Group[" + shortName + "]";
+ }
}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/GroupList.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/GroupList.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/GroupList.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -39,80 +39,88 @@
@Table(name = "group_list")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class GroupList {
+ @ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE })
+ List<Group> list;
+
@Id
@GeneratedValue
private Long id;
- @ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE })
- List<Group> list;
-
@Enumerated(EnumType.ORDINAL)
@Basic
private GroupListMode mode;
public GroupList() {
- this(new ArrayList<Group>());
- this.mode = GroupListMode.NORMAL;
+ this(new ArrayList<Group>());
+ this.mode = GroupListMode.NORMAL;
}
public GroupList(final List<Group> list) {
- this.list = list;
+ this.list = list;
}
- public Long getId() {
- return id;
+ public void add(final Group group) {
+ // No group duplicate
+ // TODO: Get this outside Domain?
+ if (!list.contains(group)) {
+ list.add(group);
+ }
+ // TODO: Get this outside Domain?
+ if (getMode() == GroupListMode.NOBODY) {
+ setMode(GroupListMode.NORMAL);
+ }
}
- public void setId(final Long id) {
- this.id = id;
+ public ArrayList<Group> duplicate() {
+ return new ArrayList<Group>(list);
}
- public List<Group> getList() {
- return list;
+ public Long getId() {
+ return id;
}
- public void setList(final List<Group> list) {
- this.list = list;
+ public List<Group> getList() {
+ return list;
}
- public void add(final Group group) {
- // No group duplicate
- // TODO: Get this outside Domain?
- if (!list.contains(group)) {
- list.add(group);
- }
- // TODO: Get this outside Domain?
- if (getMode() == GroupListMode.NOBODY) {
- setMode(GroupListMode.NORMAL);
- }
+ public GroupListMode getMode() {
+ return mode;
}
public boolean includes(final Group group) {
- return mode.checkIfIncludes(group, this.list);
+ return mode.checkIfIncludes(group, this.list);
}
- public ArrayList<Group> duplicate() {
- return new ArrayList<Group>(list);
+ public boolean isEmpty() {
+ return list.size() == 0;
}
- public boolean isEmpty() {
- return list.size() == 0;
+ public void remove(final Group group) {
+ list.remove(group);
+ // TODO: Get this outside Domain?
+ if (list.isEmpty()) {
+ setMode(GroupListMode.NOBODY);
+ }
}
- public GroupListMode getMode() {
- return mode;
+ public void setId(final Long id) {
+ this.id = id;
}
+ public void setList(final List<Group> list) {
+ this.list = list;
+ }
+
public void setMode(final GroupListMode mode) {
- this.mode = mode;
+ this.mode = mode;
}
- public void remove(final Group group) {
- list.remove(group);
- // TODO: Get this outside Domain?
- if (list.isEmpty()) {
- setMode(GroupListMode.NOBODY);
- }
+ public String toString() {
+ String groupString = "";
+ for (final Group group : list) {
+ groupString = groupString + group.getShortName() + ", ";
+ }
+ return "Group[(" + mode + "): " + groupString + "]";
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/I18nLanguage.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/I18nLanguage.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/I18nLanguage.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -103,179 +103,184 @@
private String scope;
public I18nLanguage() {
- this(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
+ this(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
}
+ // Only for tests
+ public I18nLanguage(final Long id, final String englishName, final String nativeName, final String code) {
+ this.id = id;
+ this.englishName = englishName;
+ this.nativeName = nativeName;
+ this.code = code;
+ }
+
// code is iso6391 || iso6392 || rfc3306 (see DatabaInicializer)
public I18nLanguage(final Long id, final String code, final String direction, final String englishName,
- final String englishNameLocale, final String englishNameModifier, final String iso6391,
- final String iso6392, final String iso6393, final Boolean macroLanguage, final String nativeName,
- final String nativeNameLocale, final String nativeNameModifier, final String pluralization,
- final String rfc3066, final String scope) {
- this.id = id;
- this.iso6391 = iso6391;
- this.iso6392 = iso6392;
- this.iso6393 = iso6393;
- this.rfc3066 = rfc3066;
- this.englishName = englishName;
- this.englishNameLocale = englishNameLocale;
- this.englishNameModifier = englishNameModifier;
- this.nativeName = nativeName;
- this.nativeNameLocale = nativeNameLocale;
- this.nativeNameModifier = nativeNameModifier;
- this.macroLanguage = macroLanguage;
- this.direction = direction;
- this.pluralization = pluralization;
- this.scope = scope;
- this.code = code;
+ final String englishNameLocale, final String englishNameModifier, final String iso6391,
+ final String iso6392, final String iso6393, final Boolean macroLanguage, final String nativeName,
+ final String nativeNameLocale, final String nativeNameModifier, final String pluralization,
+ final String rfc3066, final String scope) {
+ this.id = id;
+ this.iso6391 = iso6391;
+ this.iso6392 = iso6392;
+ this.iso6393 = iso6393;
+ this.rfc3066 = rfc3066;
+ this.englishName = englishName;
+ this.englishNameLocale = englishNameLocale;
+ this.englishNameModifier = englishNameModifier;
+ this.nativeName = nativeName;
+ this.nativeNameLocale = nativeNameLocale;
+ this.nativeNameModifier = nativeNameModifier;
+ this.macroLanguage = macroLanguage;
+ this.direction = direction;
+ this.pluralization = pluralization;
+ this.scope = scope;
+ this.code = code;
}
- // Only for tests
- public I18nLanguage(final Long id, final String englishName, final String nativeName, final String code) {
- this.id = id;
- this.englishName = englishName;
- this.nativeName = nativeName;
- this.code = code;
+ @Finder(query = "FROM I18nLanguage l WHERE code = :language")
+ public I18nLanguage findByCode(@Named("language")
+ final String language) {
+ return null;
}
- public Long getId() {
- return this.id;
+ @Finder(query = "FROM I18nLanguage")
+ public List<I18nLanguage> getAll() {
+ return null;
}
- public void setId(final Long id) {
- this.id = id;
+ public String getCode() {
+ return code;
}
- public String getIso6391() {
- return this.iso6391;
+ public String getDirection() {
+ return this.direction;
}
- public void setIso6391(final String iso6391) {
- this.iso6391 = iso6391;
+ public String getEnglishName() {
+ return this.englishName;
}
- public String getIso6392() {
- return this.iso6392;
+ public String getEnglishNameLocale() {
+ return this.englishNameLocale;
}
- public void setIso6392(final String iso6392) {
- this.iso6392 = iso6392;
+ public String getEnglishNameModifier() {
+ return this.englishNameModifier;
}
- public String getIso6393() {
- return this.iso6393;
+ public Long getId() {
+ return this.id;
}
- public void setIso6393(final String iso6393) {
- this.iso6393 = iso6393;
+ public String getIso6391() {
+ return this.iso6391;
}
- public String getRfc3066() {
- return this.rfc3066;
+ public String getIso6392() {
+ return this.iso6392;
}
- public void setRfc3066(final String rfc3066) {
- this.rfc3066 = rfc3066;
+ public String getIso6393() {
+ return this.iso6393;
}
- public String getEnglishName() {
- return this.englishName;
+ public Boolean getMacroLanguage() {
+ return this.macroLanguage;
}
- public void setEnglishName(final String englishName) {
- this.englishName = englishName;
+ public String getNativeName() {
+ return this.nativeName;
}
- public String getEnglishNameLocale() {
- return this.englishNameLocale;
+ public String getNativeNameLocale() {
+ return this.nativeNameLocale;
}
- public void setEnglishNameLocale(final String englishNameLocale) {
- this.englishNameLocale = englishNameLocale;
+ public String getNativeNameModifier() {
+ return this.nativeNameModifier;
}
- public String getEnglishNameModifier() {
- return this.englishNameModifier;
+ public String getPluralization() {
+ return this.pluralization;
}
- public void setEnglishNameModifier(final String englishNameModifier) {
- this.englishNameModifier = englishNameModifier;
+ public String getRfc3066() {
+ return this.rfc3066;
}
- public String getNativeName() {
- return this.nativeName;
+ public String getScope() {
+ return this.scope;
}
- public void setNativeName(final String nativeName) {
- this.nativeName = nativeName;
+ @Column(unique = true)
+ public void setCode(final String code) {
+ this.code = code;
}
- public String getNativeNameLocale() {
- return this.nativeNameLocale;
+ public void setDirection(final String direction) {
+ this.direction = direction;
}
- public void setNativeNameLocale(final String nativeNameLocale) {
- this.nativeNameLocale = nativeNameLocale;
+ public void setEnglishName(final String englishName) {
+ this.englishName = englishName;
}
- public String getNativeNameModifier() {
- return this.nativeNameModifier;
+ public void setEnglishNameLocale(final String englishNameLocale) {
+ this.englishNameLocale = englishNameLocale;
}
- public void setNativeNameModifier(final String nativeNameModifier) {
- this.nativeNameModifier = nativeNameModifier;
+ public void setEnglishNameModifier(final String englishNameModifier) {
+ this.englishNameModifier = englishNameModifier;
}
- public Boolean getMacroLanguage() {
- return this.macroLanguage;
+ public void setId(final Long id) {
+ this.id = id;
}
- public void setMacroLanguage(final Boolean macroLanguage) {
- this.macroLanguage = macroLanguage;
+ public void setIso6391(final String iso6391) {
+ this.iso6391 = iso6391;
}
- public String getDirection() {
- return this.direction;
+ public void setIso6392(final String iso6392) {
+ this.iso6392 = iso6392;
}
- public void setDirection(final String direction) {
- this.direction = direction;
+ public void setIso6393(final String iso6393) {
+ this.iso6393 = iso6393;
}
- public String getPluralization() {
- return this.pluralization;
+ public void setMacroLanguage(final Boolean macroLanguage) {
+ this.macroLanguage = macroLanguage;
}
- public void setPluralization(final String pluralization) {
- this.pluralization = pluralization;
+ public void setNativeName(final String nativeName) {
+ this.nativeName = nativeName;
}
- public String getScope() {
- return this.scope;
+ public void setNativeNameLocale(final String nativeNameLocale) {
+ this.nativeNameLocale = nativeNameLocale;
}
- public void setScope(final String scope) {
- this.scope = scope;
+ public void setNativeNameModifier(final String nativeNameModifier) {
+ this.nativeNameModifier = nativeNameModifier;
}
- @Finder(query = "FROM I18nLanguage l WHERE code = :language")
- public I18nLanguage findByCode(@Named("language")
- final String language) {
- return null;
+ public void setPluralization(final String pluralization) {
+ this.pluralization = pluralization;
}
- public String getCode() {
- return code;
+ public void setRfc3066(final String rfc3066) {
+ this.rfc3066 = rfc3066;
}
- @Column(unique = true)
- public void setCode(final String code) {
- this.code = code;
+ public void setScope(final String scope) {
+ this.scope = scope;
}
- @Finder(query = "FROM I18nLanguage")
- public List<I18nLanguage> getAll() {
- return null;
+ @Override
+ public String toString() {
+ return "I18nLanguage[" + englishName + "]";
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/I18nTranslation.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/I18nTranslation.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/I18nTranslation.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -49,20 +49,20 @@
@Indexed
@Table(name = "globalize_translations")
@NamedQueries( {
- @NamedQuery(name = "untranslated", query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :language and text=null"),
- @NamedQuery(name = "translated", query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :language and text!=null"),
- @NamedQuery(name = "untranslatedcount", query = "SELECT COUNT(gt.id) FROM I18nTranslation gt WHERE gt.language = :language and text=null"),
- @NamedQuery(name = "translatedcount", query = "SELECT COUNT(gt.id) FROM I18nTranslation gt WHERE gt.language = :language and text!=null") })
+ @NamedQuery(name = "untranslated", query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :language and text=null"),
+ @NamedQuery(name = "translated", query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :language and text!=null"),
+ @NamedQuery(name = "untranslatedcount", query = "SELECT COUNT(gt.id) FROM I18nTranslation gt WHERE gt.language = :language and text=null"),
+ @NamedQuery(name = "translatedcount", query = "SELECT COUNT(gt.id) FROM I18nTranslation gt WHERE gt.language = :language and text!=null") })
public class I18nTranslation implements HasId {
+ public static final String DEF_NAMESPACE = "kune_core";
+ public static final Integer DEF_PLUR_INDEX = 1;
+ public static final String DEFAULT_LANG = "en";
+ public static final String UNTRANSLATED_VALUE = null;
private static final String TRANSLATED_QUERY = "translated";
private static final String UNTRANSLATED_QUERY = "untranslated";
private static final String TRANSLATED_COUNT_QUERY = "translatedcount";
private static final String UNTRANSLATED_COUNT_QUERY = "untranslatedcount";
- public static final String DEF_NAMESPACE = "kune_core";
- public static final Integer DEF_PLUR_INDEX = 1;
- public static final String DEFAULT_LANG = "en";
- public static final String UNTRANSLATED_VALUE = null;
@Id
@GeneratedValue
@@ -96,115 +96,112 @@
private String text;
public I18nTranslation() {
- this(null, null, null, null, null, null, null, null);
+ this(null, null, null, null, null, null, null, null);
}
- public I18nTranslation(final String facet, final Integer itemId, final Integer pluralizationIndex,
- final String tableName, final String text, final String trKey, final String type,
- final I18nLanguage language) {
- this.type = type;
- this.trKey = trKey;
- this.tableName = tableName;
- this.itemId = itemId;
- this.facet = facet;
- this.language = language;
- this.pluralizationIndex = pluralizationIndex;
- this.text = text;
- }
-
public I18nTranslation(final String trKey, final I18nLanguage language, final String text) {
- this("", null, DEF_PLUR_INDEX, "", text, trKey, DEF_NAMESPACE, language);
+ this("", null, DEF_PLUR_INDEX, "", text, trKey, DEF_NAMESPACE, language);
}
- public Long getId() {
- return this.id;
+ public I18nTranslation(final String facet, final Integer itemId, final Integer pluralizationIndex,
+ final String tableName, final String text, final String trKey, final String type,
+ final I18nLanguage language) {
+ this.type = type;
+ this.trKey = trKey;
+ this.tableName = tableName;
+ this.itemId = itemId;
+ this.facet = facet;
+ this.language = language;
+ this.pluralizationIndex = pluralizationIndex;
+ this.text = text;
}
- public void setId(final Long id) {
- this.id = id;
+ public I18nTranslation cloneForNewLanguage() {
+ final I18nTranslation clone = new I18nTranslation();
+ clone.type = type;
+ clone.trKey = trKey;
+ clone.tableName = tableName;
+ clone.itemId = itemId;
+ clone.facet = facet;
+ clone.language = null;
+ clone.pluralizationIndex = pluralizationIndex;
+ clone.text = null;
+ return clone;
}
- public String getType() {
- return this.type;
+ @Finder(query = "SELECT gt FROM I18nTranslation gt JOIN gt.language gl WHERE gl.code = :language")
+ public List<I18nTranslation> findByLanguage(@Named("language")
+ final String language) {
+ return null;
}
- public void setType(final String type) {
- this.type = type;
+ public String getFacet() {
+ return this.facet;
}
- public String getTrKey() {
- return this.trKey;
+ public Long getId() {
+ return this.id;
}
- public void setTrKey(final String trKey) {
- this.trKey = trKey;
- }
-
- public String getTableName() {
- return this.tableName;
- }
-
- public void setTableName(final String tableName) {
- this.tableName = tableName;
- }
-
public Integer getItemId() {
- return this.itemId;
+ return this.itemId;
}
- public void setItemId(final Integer itemId) {
- this.itemId = itemId;
+ public I18nLanguage getLanguage() {
+ return language;
}
- public String getFacet() {
- return this.facet;
+ @Finder(query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :deflanguage AND gt.trKey NOT IN (SELECT gt.trKey FROM I18nTranslation gt WHERE gt.language = :language)")
+ public List<I18nTranslation> getNonExistentFromDefault(@Named("deflanguage")
+ final I18nLanguage deflanguage, @Named("language")
+ final I18nLanguage language) {
+ return null;
}
- public void setFacet(final String facet) {
- this.facet = facet;
- }
-
public Integer getPluralizationIndex() {
- return this.pluralizationIndex;
+ return this.pluralizationIndex;
}
- public void setPluralizationIndex(final Integer pluralizationIndex) {
- this.pluralizationIndex = pluralizationIndex;
+ public String getTableName() {
+ return this.tableName;
}
public String getText() {
- return this.text;
+ return this.text;
}
- public void setText(final String text) {
- this.text = text;
+ @Finder(namedQuery = TRANSLATED_QUERY)
+ public List<I18nTranslation> getTranslatedLexicon(@Named("language")
+ final I18nLanguage language) {
+ return null;
}
- public I18nLanguage getLanguage() {
- return language;
+ @Finder(namedQuery = TRANSLATED_QUERY)
+ public List<I18nTranslation> getTranslatedLexicon(@Named("language")
+ final I18nLanguage language, @FirstResult
+ final int first, @MaxResults
+ final int max) {
+ return null;
}
- public void setLanguage(final I18nLanguage language) {
- this.language = language;
+ @Finder(namedQuery = TRANSLATED_COUNT_QUERY)
+ public Long getTranslatedLexiconCount(@Named("language")
+ final I18nLanguage language) {
+ return null;
}
- @Finder(query = "SELECT gt FROM I18nTranslation gt JOIN gt.language gl WHERE gl.code = :language")
- public List<I18nTranslation> findByLanguage(@Named("language")
- final String language) {
- return null;
+ public String getTrKey() {
+ return this.trKey;
}
- @Finder(query = "SELECT gt FROM I18nTranslation gt WHERE gt.language = :deflanguage AND gt.trKey NOT IN (SELECT gt.trKey FROM I18nTranslation gt WHERE gt.language = :language)")
- public List<I18nTranslation> getNonExistentFromDefault(@Named("deflanguage")
- final I18nLanguage deflanguage, @Named("language")
- final I18nLanguage language) {
- return null;
+ public String getType() {
+ return this.type;
}
@Finder(namedQuery = UNTRANSLATED_QUERY)
public List<I18nTranslation> getUnstranslatedLexicon(@Named("language")
final I18nLanguage language) {
- return null;
+ return null;
}
@Finder(namedQuery = UNTRANSLATED_QUERY)
@@ -212,46 +209,54 @@
final I18nLanguage language, @FirstResult
final int first, @MaxResults
final int max) {
- return null;
+ return null;
}
@Finder(namedQuery = UNTRANSLATED_COUNT_QUERY)
public Long getUnstranslatedLexiconCount(@Named("language")
final I18nLanguage language) {
- return null;
+ return null;
}
- @Finder(namedQuery = TRANSLATED_QUERY)
- public List<I18nTranslation> getTranslatedLexicon(@Named("language")
- final I18nLanguage language) {
- return null;
+ public void setFacet(final String facet) {
+ this.facet = facet;
}
- @Finder(namedQuery = TRANSLATED_QUERY)
- public List<I18nTranslation> getTranslatedLexicon(@Named("language")
- final I18nLanguage language, @FirstResult
- final int first, @MaxResults
- final int max) {
- return null;
+ public void setId(final Long id) {
+ this.id = id;
}
- @Finder(namedQuery = TRANSLATED_COUNT_QUERY)
- public Long getTranslatedLexiconCount(@Named("language")
- final I18nLanguage language) {
- return null;
+ public void setItemId(final Integer itemId) {
+ this.itemId = itemId;
}
- public I18nTranslation cloneForNewLanguage() {
- I18nTranslation clone = new I18nTranslation();
- clone.type = type;
- clone.trKey = trKey;
- clone.tableName = tableName;
- clone.itemId = itemId;
- clone.facet = facet;
- clone.language = null;
- clone.pluralizationIndex = pluralizationIndex;
- clone.text = null;
- return clone;
+ public void setLanguage(final I18nLanguage language) {
+ this.language = language;
}
+ public void setPluralizationIndex(final Integer pluralizationIndex) {
+ this.pluralizationIndex = pluralizationIndex;
+ }
+
+ public void setTableName(final String tableName) {
+ this.tableName = tableName;
+ }
+
+ public void setText(final String text) {
+ this.text = text;
+ }
+
+ public void setTrKey(final String trKey) {
+ this.trKey = trKey;
+ }
+
+ public void setType(final String type) {
+ this.type = type;
+ }
+
+ @Override
+ public String toString() {
+ return "I18nTranslation[" + trKey + " (" + language + ") " + text + "]";
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/SocialNetwork.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/SocialNetwork.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/SocialNetwork.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -41,80 +41,83 @@
GroupList pendingCollaborators;
public SocialNetwork() {
- accessLists = new AccessLists();
- pendingCollaborators = new GroupList();
+ accessLists = new AccessLists();
+ pendingCollaborators = new GroupList();
}
- public Long getId() {
- return id;
+ public void addAdmin(final Group group) {
+ accessLists.addAdmin(group);
}
- public GroupList getPendingCollaborators() {
- return pendingCollaborators;
+ public void addCollaborator(final Group group) {
+ accessLists.addEditor(group);
}
- public void setPendingCollaborators(final GroupList pendingCollaborators) {
- this.pendingCollaborators = pendingCollaborators;
+ public void addPendingCollaborator(final Group group) {
+ pendingCollaborators.add(group);
}
- public void setAccessLists(final AccessLists accessList) {
- this.accessLists = accessList;
+ public void addViewer(final Group group) {
+ accessLists.addViewer(group);
}
- public void setId(final Long id) {
- this.id = id;
+ public AccessLists getAccessLists() {
+ return accessLists;
}
- public void addAdmin(final Group group) {
- accessLists.addAdmin(group);
+ public Long getId() {
+ return id;
}
- public void addCollaborator(final Group group) {
- accessLists.addEditor(group);
+ public GroupList getPendingCollaborators() {
+ return pendingCollaborators;
}
- public void addViewer(final Group group) {
- accessLists.addViewer(group);
+ public boolean isAdmin(final Group group) {
+ return accessLists.getAdmins().includes(group);
}
- public void addPendingCollaborator(final Group group) {
- pendingCollaborators.add(group);
+ public boolean isCollab(final Group group) {
+ return accessLists.getEditors().includes(group);
}
+ public boolean isPendingCollab(final Group group) {
+ return pendingCollaborators.getList().contains(group);
+ }
+
+ public boolean isViewer(final Group group) {
+ return accessLists.getViewers().includes(group);
+ }
+
public void removeAdmin(final Group group) {
- accessLists.removeAdmin(group);
+ accessLists.removeAdmin(group);
}
public void removeCollaborator(final Group group) {
- accessLists.removeEditor(group);
+ accessLists.removeEditor(group);
}
- public void removeViewer(final Group group) {
- accessLists.removeViewer(group);
- }
-
public void removePendingCollaborator(final Group group) {
- pendingCollaborators.getList().remove(group);
+ pendingCollaborators.getList().remove(group);
}
- public AccessLists getAccessLists() {
- return accessLists;
+ public void removeViewer(final Group group) {
+ accessLists.removeViewer(group);
}
- public boolean isAdmin(final Group group) {
- return accessLists.getAdmins().includes(group);
+ public void setAccessLists(final AccessLists accessList) {
+ this.accessLists = accessList;
}
- public boolean isCollab(final Group group) {
- return accessLists.getEditors().includes(group);
+ public void setId(final Long id) {
+ this.id = id;
}
- public boolean isViewer(final Group group) {
- return accessLists.getViewers().includes(group);
+ public void setPendingCollaborators(final GroupList pendingCollaborators) {
+ this.pendingCollaborators = pendingCollaborators;
}
- public boolean isPendingCollab(final Group group) {
- return pendingCollaborators.getList().contains(group);
+ public String toString() {
+ return "SocialNetwork[accessList: " + accessLists + "; pendingsCollabs: " + pendingCollaborators + "]";
}
-
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/User.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/User.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/User.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -213,4 +213,7 @@
this.userGroup = userGroup;
}
+ public String toString() {
+ return "User[" + shortName + "]";
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/state/State.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/state/State.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/state/State.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -293,4 +293,7 @@
this.typeId = typeId;
}
+ public String toString() {
+ return "State[" + stateToken + "/" + typeId + "]";
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/Kune-Workspace.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/Kune-Workspace.gwt.xml 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/workspace/Kune-Workspace.gwt.xml 2008-10-01 01:29:01 UTC (rev 898)
@@ -1,27 +1,47 @@
<module>
- <inherits name='org.ourproject.kune.platf.Kune-Platform' />
- <inherits name="com.google.gwt.core.Core" />
- <inherits name="com.google.gwt.user.UserAgent" />
- <!-- RTE css inject -->
+ <inherits name='org.ourproject.kune.platf.Kune-Platform' />
+ <inherits name="com.google.gwt.core.Core" />
+ <inherits name="com.google.gwt.user.UserAgent" />
+ <!-- RTE css inject -->
+ <!-- See gwt-user: com/google/gwt/user/RichText.gwt.xml -->
- <replace-with
- class="org.ourproject.kune.workspace.client.editor.WrappedRichTextAreaImplIE6">
- <when-type-is
- class="com.google.gwt.user.client.ui.impl.RichTextAreaImpl" />
- <when-property-is name="user.agent" value="ie6" />
- </replace-with>
+ <!-- IE-specific implementation -->
+ <replace-with
+ class="org.ourproject.kune.workspace.client.editor.WrappedRichTextAreaImplIE6">
+ <when-type-is
+ class="com.google.gwt.user.client.ui.impl.RichTextAreaImpl" />
+ <when-property-is name="user.agent" value="ie6" />
+ </replace-with>
- <replace-with
- class="org.ourproject.kune.workspace.client.editor.WrappedRichTextAreaImplMozilla">
- <when-type-is
- class="com.google.gwt.user.client.ui.impl.RichTextAreaImpl" />
- <any>
- <when-property-is name="user.agent" value="gecko1_8" />
- <when-property-is name="user.agent" value="gecko" />
- </any>
- </replace-with>
+ <!-- Mozilla-specific implementation -->
+ <replace-with
+ class="org.ourproject.kune.workspace.client.editor.WrappedRichTextAreaImplMozilla">
+ <when-type-is
+ class="com.google.gwt.user.client.ui.impl.RichTextAreaImpl" />
+ <any>
+ <when-property-is name="user.agent" value="gecko1_8" />
+ <when-property-is name="user.agent" value="gecko" />
+ </any>
+ </replace-with>
- <!--
- TODO: .... same for Safari and Opera.
- -->
+ <!-- Safari-specific implementation -->
+ <replace-with
+ class="org.ourproject.kune.workspace.client.editor.WrappedRichTextAreaImplSafari">
+ <when-type-is
+ class="com.google.gwt.user.client.ui.impl.RichTextAreaImpl" />
+ <any>
+ <when-property-is name="user.agent" value="safari" />
+ </any>
+ </replace-with>
+
+ <!-- Opera-specific implementation -->
+ <replace-with
+ class="org.ourproject.kune.workspace.client.editor.WrappedRichTextAreaImplOpera">
+ <when-type-is
+ class="com.google.gwt.user.client.ui.impl.RichTextAreaImpl" />
+ <any>
+ <when-property-is name="user.agent" value="opera" />
+ </any>
+ </replace-with>
+
</module>
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-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ctxnav/ContextNavigatorPanel.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -30,11 +30,8 @@
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.gwtext.client.core.EventObject;
@@ -71,15 +68,10 @@
private final ContextNavigatorPresenter presenter;
public ContextNavigatorPanel(final ContextNavigatorPresenter presenter, final I18nTranslationService i18n,
- final WorkspaceSkeleton ws, final ActionManager actionManager, final WsThemePresenter wsTheme) {
+ final WorkspaceSkeleton ws, final ActionManager actionManager) {
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;
@@ -203,16 +195,6 @@
}
}
- 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() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditor.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditor.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -20,22 +20,17 @@
package org.ourproject.kune.workspace.client.editor;
-import org.ourproject.kune.platf.client.View;
+import com.calclab.suco.client.listener.Listener;
+import com.calclab.suco.client.listener.Listener0;
public interface TextEditor {
- public String getContent();
+ void editContent(String content, Listener<String> onSave, Listener0 onEditCancelled);
- public View getView();
+ void onSaved();
- public void onSaved();
+ void onSaveFailed();
- public void onSaveFailed();
+ void reset();
- public void reset();
-
- public void setContent(String content);
-
- public void setToolbarVisible(boolean visible);
-
}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorListener.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorListener.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorListener.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -1,29 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-package org.ourproject.kune.workspace.client.editor;
-
-public interface TextEditorListener {
-
- void onEditCancelled();
-
- void onSave(String text);
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPanel.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -22,17 +22,20 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.ui.DefaultBorderLayout;
+import org.ourproject.kune.workspace.client.skel.Toolbar;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.WindowResizeListener;
-import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.RichTextArea;
import com.gwtext.client.widgets.MessageBox;
+import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.layout.FitLayout;
-public class TextEditorPanel extends Composite implements TextEditorView {
+public class TextEditorPanel implements TextEditorView {
private static final String BACKCOLOR_ENABLED = "#FFF";
private static final String BACKCOLOR_DISABLED = "#CCC";
private final RichTextArea gwtRTarea;
@@ -40,18 +43,31 @@
private final TextEditorPresenter presenter;
private final Timer saveTimer;
private final I18nTranslationService i18n;
+ private final DefaultBorderLayout mainPanel;
+ private final WorkspaceSkeleton ws;
public TextEditorPanel(final TextEditorPresenter presenter, final I18nTranslationService i18n,
final WorkspaceSkeleton ws) {
-
this.presenter = presenter;
this.i18n = i18n;
+ this.ws = ws;
+ mainPanel = new DefaultBorderLayout();
+ final Panel centerPanel = new Panel();
+ centerPanel.setLayout(new FitLayout());
gwtRTarea = new RichTextArea();
- textEditorToolbar = new TextEditorToolbar(gwtRTarea, presenter, i18n, ws);
- initWidget(gwtRTarea);
-
+ // centerPanel.add(gwtRTarea);
gwtRTarea.setWidth("97%");
gwtRTarea.addStyleName("kune-TexEditorPanel-TextArea");
+
+ final Toolbar editorTopBar = new Toolbar();
+ textEditorToolbar = new TextEditorToolbar(gwtRTarea, presenter, i18n);
+ editorTopBar.add(textEditorToolbar);
+ editorTopBar.addStyleName("k-toolbar-bottom-line");
+
+ // mainPanel.add(editorTopBar.getPanel(), Position.NORTH, false,
+ // DefaultBorderLayout.DEF_TOOLBAR_HEIGHT);
+ mainPanel.add(centerPanel, DefaultBorderLayout.Position.CENTER);
+
adjustSize("" + (Window.getClientHeight() - 265));
Window.addWindowResizeListener(new WindowResizeListener() {
public void onWindowResized(final int arg0, final int arg1) {
@@ -65,6 +81,15 @@
};
}
+ public void attach() {
+ // ws.getEntityWorkspace().setContent(mainPanel.getPanel());
+ ws.getEntityWorkspace().setContent(gwtRTarea);
+ }
+
+ public void detach() {
+ mainPanel.getPanel().removeFromParent();
+ }
+
public void editHTML(final boolean edit) {
textEditorToolbar.editHTML(edit);
}
@@ -119,10 +144,6 @@
textEditorToolbar.setTextSaveButton(text);
}
- public void setToolBarVisible(final boolean visible) {
- textEditorToolbar.setVisible(visible);
- }
-
public void showSaveBeforeDialog() {
MessageBox.confirm(i18n.t("Save confirmation"), i18n.t("Save before close?"), new MessageBox.ConfirmCallback() {
public void execute(final String btnID) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenter.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -21,23 +21,50 @@
package org.ourproject.kune.workspace.client.editor;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.actions.ActionItem;
+import org.ourproject.kune.platf.client.actions.ActionItemCollection;
+import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbar;
+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;
+import com.calclab.suco.client.listener.Listener0;
+
public class TextEditorPresenter implements TextEditor {
private boolean editingHtml;
private TextEditorView view;
private boolean savePending;
private final boolean autoSave;
- private final TextEditorListener listener;
private boolean saveAndCloseConfirmed;
+ private Listener<String> onSave;
+ private Listener0 onEditCancelled;
+ private final ActionToolbar<StateToken> toolbar;
+ private ActionToolbarButtonDescriptor<StateToken> save;
+ private ActionToolbarButtonDescriptor<StateToken> close;
+ private final I18nUITranslationService i18n;
- public TextEditorPresenter(final TextEditorListener listener, final boolean isAutoSave) {
- this.listener = listener;
+ public TextEditorPresenter(final boolean isAutoSave, final ActionToolbar<StateToken> toolbar,
+ final I18nUITranslationService i18n) {
+ this.toolbar = toolbar;
autoSave = isAutoSave;
+ this.i18n = i18n;
savePending = false;
editingHtml = false;
saveAndCloseConfirmed = false;
+ createActions();
}
+ public void editContent(final String content, final Listener<String> onSave, final Listener0 onEditCancelled) {
+ this.onSave = onSave;
+ this.onEditCancelled = onEditCancelled;
+ toolbar.attach();
+ view.attach();
+ setContent(content);
+ }
+
public String getContent() {
return view.getHTML();
}
@@ -87,16 +114,10 @@
savePending = false;
saveAndCloseConfirmed = false;
view.setEnabledSaveButton(false);
+ view.detach();
+ toolbar.detach();
}
- public void setContent(final String html) {
- this.view.setHTML(html);
- }
-
- public void setToolbarVisible(final boolean visible) {
- view.setToolBarVisible(visible);
- }
-
protected void onCancel() {
if (savePending) {
view.saveTimerCancel();
@@ -108,7 +129,7 @@
protected void onCancelConfirmed() {
reset();
- listener.onEditCancelled();
+ onEditCancelled.onEvent();
}
protected void onEditHTML() {
@@ -128,6 +149,35 @@
}
protected void onSave() {
- listener.onSave(view.getHTML());
+ onSave.onEvent(view.getHTML());
}
+
+ private void createActions() {
+ save = new ActionToolbarButtonDescriptor<StateToken>(AccessRolDTO.Viewer, ActionToolbarPosition.topbar,
+ new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ onSave();
+ }
+ });
+ save.setTextDescription(i18n.tWithNT("Save", "used in button"));
+ // save.setIconUrl("images/");
+
+ close = new ActionToolbarButtonDescriptor<StateToken>(AccessRolDTO.Viewer, ActionToolbarPosition.topbar,
+ new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ onCancel();
+ }
+ });
+ close.setTextDescription(i18n.tWithNT("Close", "used in button"));
+ // close.setIconUrl("images/");
+
+ final ActionItemCollection<StateToken> collection = new ActionItemCollection<StateToken>();
+ collection.add(new ActionItem<StateToken>(save, null));
+ collection.add(new ActionItem<StateToken>(close, null));
+ toolbar.showActions(collection, true);
+ }
+
+ private void setContent(final String html) {
+ this.view.setHTML(html);
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorToolbar.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -30,7 +30,6 @@
import org.ourproject.kune.platf.client.ui.palette.ColorSelectListener;
import org.ourproject.kune.platf.client.ui.palette.WebSafePalettePanel;
import org.ourproject.kune.platf.client.ui.palette.WebSafePalettePresenter;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Command;
@@ -264,11 +263,9 @@
private final TextEditorImages images = (TextEditorImages) GWT.create(TextEditorImages.class);
private final EventListener listener = new EventListener();
-
private final RichTextArea richText;
private final RichTextArea.BasicFormatter basic;
private final RichTextArea.ExtendedFormatter extended;
-
private final VerticalPanel outer = new VerticalPanel();
private final HorizontalPanel topPanel = new HorizontalPanel();
private ToggleButton bold;
@@ -308,7 +305,7 @@
* the rich text area to be controlled
*/
public TextEditorToolbar(final RichTextArea richText, final TextEditorPresenter panelListener,
- final I18nTranslationService i18n, final WorkspaceSkeleton ws) {
+ final I18nTranslationService i18n) {
this.richText = richText;
this.i18n = i18n;
this.basic = richText.getBasicFormatter();
@@ -392,8 +389,7 @@
// i18n.t("Edit HTML")));
// }
- ws.getEntityWorkspace().getContentTopBar().add(this);
- super.setVisible(false);
+ // super.setVisible(false);
}
public void editHTML(final boolean edit) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorView.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/TextEditorView.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -24,34 +24,36 @@
public interface TextEditorView extends View {
- public void editHTML(boolean edit);
+ void attach();
- public String getHTML();
+ void detach();
- public String getText();
+ void editHTML(boolean edit);
- public View getToolBar();
+ String getHTML();
- public void saveTimerCancel();
+ String getText();
- public void scheduleSave(int delayMillis);
+ View getToolBar();
- public void setEnabled(boolean enabled);
+ void saveTimerCancel();
- public void setEnabledCancelButton(boolean enabled);
+ void scheduleSave(int delayMillis);
- public void setEnabledSaveButton(boolean enabled);
+ void setEnabled(boolean enabled);
- public void setHeight(String height);
+ void setEnabledCancelButton(boolean enabled);
- public void setHTML(String html);
+ void setEnabledSaveButton(boolean enabled);
- public void setText(String text);
+ void setHeight(String height);
- public void setTextSaveButton(String text);
+ void setHTML(String html);
- public void setToolBarVisible(boolean visible);
+ void setText(String text);
- public void showSaveBeforeDialog();
+ void setTextSaveButton(String text);
+ void showSaveBeforeDialog();
+
}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplIE6.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplIE6.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplIE6.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -31,17 +31,35 @@
*/
public class WrappedRichTextAreaImplIE6 extends RichTextAreaImplIE6 {
- public native void initElement()
- /*-{
+ @Override
+ public native void initElement() /*-{
var _this = this;
- window.setTimeout(function() {
+ _this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::initializing = true;
+
+ setTimeout(function() {
+ if (_this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::initializing == false) {
+ return;
+ }
+
+ // Attempt to set the iframe document's body to 'contentEditable' mode.
+ // There's no way to know when the body will actually be available, so
+ // keep trying every so often until it is.
+ // Note: The body seems to be missing only rarely, so please don't remove
+ // this retry loop just because it's hard to reproduce.
var elem = [email protected]::elem;
var doc = elem.contentWindow.document;
+ if (!doc.body) {
+ // Retry in 50 ms. Faster would run the risk of pegging the CPU. Slower
+ // would increase the probability of a user-visible delay.
+ setTimeout(arguments.callee, 50);
+ return;
+ }
var ct = "<html><head><style>@import url('" + "css/richtext.css" + "');</style></head><body CONTENTEDITABLE='true'></body></html>" ;
doc.write( ct );
+ doc.body.contentEditable = true;
// Send notification that the iframe has reached design mode.
_this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::onElementInitialized()();
}, 1);
- }-*/;
-}
\ No newline at end of file
+ }-*/;
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplMozilla.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplMozilla.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplMozilla.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -31,51 +31,50 @@
*/
public class WrappedRichTextAreaImplMozilla extends RichTextAreaImplMozilla {
- public native void initElement()
- /*-{
- // Mozilla doesn't allow designMode to be set reliably until the iframe is
- // fully loaded.
- var _this = this;
- var iframe = [email protected]::elem;
+ @Override
+ public native void initElement() /*-{
+ // Mozilla doesn't allow designMode to be set reliably until the iframe is
+ // fully loaded.
+ var _this = this;
+ var iframe = [email protected]::elem;
+ _this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::initializing = true;
- iframe.onload = function() {
- // Some Mozillae have the nasty habit of calling onload again when you set
- // designMode, so let's avoid doing it more than once.
- iframe.onload = null;
+ iframe.onload = function() {
+ // Some Mozillae have the nasty habit of calling onload again when you set
+ // designMode, so let's avoid doing it more than once.
+ iframe.onload = null;
- // patch ccs inject:
+ // patch ccs inject:
- var doc = [email protected]::elem.contentWindow.document;
- head=doc.getElementsByTagName('head')[0];
- link=document.createElement('link');
- link.setAttribute('rel',"stylesheet");
- link.setAttribute('type',"text/css");
- link.setAttribute('href',"css/richtext.css" );
- head.appendChild(link);
+ var doc = [email protected]::elem.contentWindow.document;
+ head=doc.getElementsByTagName('head')[0];
+ link=document.createElement('link');
+ link.setAttribute('rel',"stylesheet");
+ link.setAttribute('type',"text/css");
+ link.setAttribute('href',"css/richtext.css" );
+ head.appendChild(link);
- var styles = document.createElement('style');
- styles.setAttribute('type', 'text/css');
- var newStyle = document.createTextNode('\n<!--\nbody{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:400;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400;}q:before,q:after{content:\'\';}abbr,acronym{border:0;font-variant:normal;}sup,sub{line-height:-1px;vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}body{font:13px/1.22 arial,helvetica,clean,sans-serif;font-size:small;font:x-small;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;font-size:108%;line-height:99%;}h1{font-size:138.5%;}h2{font-size:123.1%;}h3{font-size:108%;}h1,h2,h3{margin:1em 0;}h1,h2,h3,h4,h5,h6,strong{font-weight:700;}abbr,acronym{border-bottom:1px dotted #000;cursor:help;}em{font-style:italic;}blockquote,ul,ol,dl{margin:1em;}ol,ul,dl{margin-left:2em;}ol li{list-style:decimal outside;}ul li{list-style:disc outside;}dl dd{margin-left:1em;}th,td{border:1px solid #000;padding:.5em;}th{font-weight:700;text-align:center;}caption{margin-bottom:.5em;text-align:center;}p,fieldset,table,pre{margin-bottom:1em;}input[type=text],input[type=password],textarea{width:12.25em;width:11.9em;}body{font-family:arial, sans;margin:5px}\n-->\n');
- styles.appendChild(newStyle);
- head.appendChild(styles);
+ var styles = document.createElement('style');
+ styles.setAttribute('type', 'text/css');
+ var newStyle = document.createTextNode('\n<!--\nbody{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:400;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400;}q:before,q:after{content:\'\';}abbr,acronym{border:0;font-variant:normal;}sup,sub{line-height:-1px;vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}body{font:13px/1.22 arial,helvetica,clean,sans-serif;font-size:small;font:x-small;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;font-size:108%;line-height:99%;}h1{font-size:138.5%;}h2{font-size:123.1%;}h3{font-size:108%;}h1,h2,h3{margin:1em 0;}h1,h2,h3,h4,h5,h6,strong{font-weight:700;}abbr,acronym{border-bottom:1px dotted #000;cursor:help;}em{font-style:italic;}blockquote,ul,ol,dl{margin:1em;}ol,ul,dl{margin-left:2em;}ol li{list-style:decimal outside;}ul li{list-style:disc outside;}dl dd{margin-left:1em;}th,td{border:1px solid #000;padding:.5em;}th{font-weight:700;text-align:center;}caption{margin-bottom:.5em;text-align:center;}p,fieldset,table,pre{margin-bottom:1em;}input[type=text],input[type=password],textarea{width:12.25em;width:11.9em;}body{font-family:arial, sans;margin:5px}\n-->\n');
+ styles.appendChild(newStyle);
+ head.appendChild(styles);
- // -- patch
+ // -- patch
- // Send notification that the iframe has finished loading.
- _this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::onElementInitialized()();
+ // Send notification that the iframe has finished loading.
+ _this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::onElementInitialized()();
- // Don't set designMode until the RTA actually gets focused. This is
- // necessary because editing won't work on Mozilla if the iframe is
- // *hidden, but attached*. Waiting for focus gets around this issue.
- //
- // Note: This onfocus will not conflict with the addEventListener('focus',
- // ...) // in RichTextAreaImplStandard.
- iframe.contentWindow.onfocus = function() {
- iframe.contentWindow.onfocus = null;
- iframe.contentWindow.document.designMode = 'On';
- };
+ // Don't set designMode until the RTA actually gets focused. This is
+ // necessary because editing won't work on Mozilla if the iframe is
+ // *hidden, but attached*. Waiting for focus gets around this issue.
+ //
+ // Note: This onfocus will not conflict with the addEventListener('focus',
+ // ...) // in RichTextAreaImplStandard.
+ iframe.contentWindow.onfocus = function() {
+ iframe.contentWindow.onfocus = null;
+ iframe.contentWindow.document.designMode = 'On';
- };
- }-*/;
-
+ };
+ }-*/;
}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplOpera.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplOpera.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplOpera.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -0,0 +1,29 @@
+package org.ourproject.kune.workspace.client.editor;
+
+import com.google.gwt.user.client.ui.impl.RichTextAreaImplOpera;
+
+public class WrappedRichTextAreaImplOpera extends RichTextAreaImplOpera {
+
+ @Override
+ public native void initElement() /*-{
+ // Most browsers don't like setting designMode until slightly _after_
+ // the iframe becomes attached to the DOM. Any non-zero timeout will do
+ // just fine.
+ var _this = this;
+ _this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::initializing = true;
+ setTimeout(function() {
+ // Turn on design mode.
+ [email protected]::elem.contentWindow.document.designMode = 'On';
+ // patch css inject:
+ var elem = [email protected]::elem;
+ var doc = elem.contentWindow.document;
+ var ct = "<html><head><style>@import url('" + "css/richtext.css" + "');</style></head><body CONTENTEDITABLE='true'></body></html>" ;
+ doc.write( ct );
+ // -- patch
+
+ // Send notification that the iframe has reached design mode.
+ _this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::onElementInitialized()();
+ }, 1);
+ }-*/;
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplSafari.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplSafari.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/WrappedRichTextAreaImplSafari.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -0,0 +1,30 @@
+package org.ourproject.kune.workspace.client.editor;
+
+import com.google.gwt.user.client.ui.impl.RichTextAreaImplSafari;
+
+public class WrappedRichTextAreaImplSafari extends RichTextAreaImplSafari {
+
+ @Override
+ public native void initElement() /*-{
+ // Most browsers don't like setting designMode until slightly _after_
+ // the iframe becomes attached to the DOM. Any non-zero timeout will do
+ // just fine.
+ var _this = this;
+ _this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::initializing = true;
+ setTimeout(function() {
+ // Turn on design mode.
+ [email protected]::elem.contentWindow.document.designMode = 'On';
+
+ // patch css inject:
+ var elem = [email protected]::elem;
+ var doc = elem.contentWindow.document;
+ var ct = "<html><head><style>@import url('" + "css/richtext.css" + "');</style></head><body CONTENTEDITABLE='true'></body></html>" ;
+ doc.write( ct );
+ // -- patch
+
+ // Send notification that the iframe has reached design mode.
+ _this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::onElementInitialized()();
+ }, 1);
+ }-*/;
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -86,6 +86,7 @@
view.clear();
final List<GroupDTO> groupsIsAdmin = participation.getGroupsIsAdmin();
final List<GroupDTO> groupsIsCollab = participation.getGroupsIsCollab();
+ Log.info(participation.toString());
Log.info("Is admin in " + groupsIsAdmin.size() + " groups.");
Log.info("Is collab in " + groupsIsCollab.size() + " groups.");
final int numAdmins = groupsIsAdmin.size();
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-30 01:49:58 UTC (rev 897)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionRegistryTest.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -1,7 +1,6 @@
package org.ourproject.kune.platf.client.actions;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;
@@ -87,30 +86,6 @@
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;
- }
- });
- registry.addAction(adminAction, DEF_CONTENT_TYPE_ID);
- assertTrue(!registry.checkEnabling(adminAction, new StateToken()));
- }
-
- @Test
- public void testEnablingTrue() {
- Mockito.stub(session.isLogged()).toReturn(true);
- adminAction.setEnableCondition(new ActionEnableCondition<StateToken>() {
- public boolean mustBeEnabled(final StateToken param) {
- return true;
- }
- });
- registry.addAction(adminAction, DEF_CONTENT_TYPE_ID);
- assertTrue(registry.checkEnabling(adminAction, new StateToken()));
- }
-
private void addDefActions() {
registry.addAction(adminAction, DEF_CONTENT_TYPE_ID);
registry.addAction(editorAction, DEF_CONTENT_TYPE_ID);
Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java 2008-09-30 01:49:58 UTC (rev 897)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/editor/TextEditorPresenterTest.java 2008-10-01 01:29:01 UTC (rev 898)
@@ -5,105 +5,102 @@
import org.junit.Test;
public class TextEditorPresenterTest {
- private TextEditorListener listener;
private TextEditorPresenter presenter;
private TextEditorView view;
@Before
public void createObjects() {
- listener = EasyMock.createStrictMock(TextEditorListener.class);
- presenter = new TextEditorPresenter(listener, true);
- view = EasyMock.createStrictMock(TextEditorView.class);
+ presenter = new TextEditorPresenter(true, null, null);
+ view = EasyMock.createStrictMock(TextEditorView.class);
}
@Test
- public void testViewInitialization() {
- viewInit();
- EasyMock.replay(view);
- presenter.init(view);
- EasyMock.verify(view);
+ public void testSave() {
+ viewInit();
+ view.setEnabledSaveButton(true);
+ view.scheduleSave(10000);
+ EasyMock.expect(view.getHTML()).andReturn("foo");
+ viewReset();
+ EasyMock.replay(view);
+ // listener.onSave("foo");
+ // EasyMock.replay(listener);
+ presenter.init(view);
+ presenter.onEdit();
+ presenter.onSave();
+ presenter.onSaved();
+ EasyMock.verify(view);
+ // EasyMock.verify(listener);
}
@Test
public void testSavePending() {
- viewInit();
- view.setEnabledSaveButton(true);
- view.scheduleSave(10000);
- EasyMock.replay(view);
- presenter.init(view);
- presenter.onEdit();
- EasyMock.verify(view);
+ viewInit();
+ view.setEnabledSaveButton(true);
+ view.scheduleSave(10000);
+ EasyMock.replay(view);
+ presenter.init(view);
+ presenter.onEdit();
+ EasyMock.verify(view);
}
@Test
- public void testSave() {
- viewInit();
- view.setEnabledSaveButton(true);
- view.scheduleSave(10000);
- EasyMock.expect(view.getHTML()).andReturn("foo");
- viewReset();
- EasyMock.replay(view);
- listener.onSave("foo");
- EasyMock.replay(listener);
- presenter.init(view);
- presenter.onEdit();
- presenter.onSave();
- presenter.onSaved();
- EasyMock.verify(view);
- EasyMock.verify(listener);
+ public void testSavePendingCancel() {
+ viewInit();
+ view.setEnabledSaveButton(true);
+ view.scheduleSave(10000);
+ view.saveTimerCancel();
+ view.showSaveBeforeDialog();
+ EasyMock.expect(view.getHTML()).andReturn("foo");
+ viewReset();
+ EasyMock.replay(view);
+ // listener.onSave("foo");
+ // listener.onEditCancelled();
+ // EasyMock.replay(listener);
+ presenter.init(view);
+ presenter.onEdit();
+ presenter.onCancel();
+ presenter.onSaveAndClose();
+ presenter.onSaved();
+ EasyMock.verify(view);
+ // EasyMock.verify(listener);
}
@Test
- public void testSavePendingCancel() {
- viewInit();
- view.setEnabledSaveButton(true);
- view.scheduleSave(10000);
- view.saveTimerCancel();
- view.showSaveBeforeDialog();
- EasyMock.expect(view.getHTML()).andReturn("foo");
- viewReset();
- EasyMock.replay(view);
- listener.onSave("foo");
- listener.onEditCancelled();
- EasyMock.replay(listener);
- presenter.init(view);
- presenter.onEdit();
- presenter.onCancel();
- presenter.onSaveAndClose();
- presenter.onSaved();
- EasyMock.verify(view);
- EasyMock.verify(listener);
+ public void testSavePendingCancelSaveFails() {
+ viewInit();
+ view.setEnabledSaveButton(true);
+ view.scheduleSave(10000);
+ view.saveTimerCancel();
+ view.showSaveBeforeDialog();
+ EasyMock.expect(view.getHTML()).andReturn("foo");
+ view.scheduleSave(20000);
+ EasyMock.replay(view);
+ // listener.onSave("foo");
+ // EasyMock.replay(listener);
+ presenter.init(view);
+ presenter.onEdit();
+ presenter.onCancel();
+ presenter.onSaveAndClose();
+ presenter.onSaveFailed();
+ EasyMock.verify(view);
+ // EasyMock.verify(listener);
}
@Test
- public void testSavePendingCancelSaveFails() {
- viewInit();
- view.setEnabledSaveButton(true);
- view.scheduleSave(10000);
- view.saveTimerCancel();
- view.showSaveBeforeDialog();
- EasyMock.expect(view.getHTML()).andReturn("foo");
- view.scheduleSave(20000);
- EasyMock.replay(view);
- listener.onSave("foo");
- EasyMock.replay(listener);
- presenter.init(view);
- presenter.onEdit();
- presenter.onCancel();
- presenter.onSaveAndClose();
- presenter.onSaveFailed();
- EasyMock.verify(view);
- EasyMock.verify(listener);
+ public void testViewInitialization() {
+ viewInit();
+ EasyMock.replay(view);
+ presenter.init(view);
+ EasyMock.verify(view);
}
private void viewInit() {
- view.setEnabledSaveButton(false);
- view.setEnabled(true);
+ view.setEnabledSaveButton(false);
+ view.setEnabled(true);
}
private void viewReset() {
- view.saveTimerCancel();
- view.setEnabledSaveButton(false);
+ view.saveTimerCancel();
+ view.setEnabledSaveButton(false);
}
-
}
1
0
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