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
November 2008
- 1 participants
- 36 discussions
Author: vjrj
Date: 2008-12-01 00:11:28 +0100 (Mon, 01 Dec 2008)
New Revision: 973
Added:
trunk/src/main/java/org/ourproject/kune/app/client/AppMessages.java
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogsMessages.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatMessages.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocsMessages.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryMessages.java
trunk/src/main/java/org/ourproject/kune/platf/client/PlatfMessages.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiMessages.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceMessages.java
Modified:
trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/nohomepage/NoHomePagePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
Log:
Messages refactorization
Added: trunk/src/main/java/org/ourproject/kune/app/client/AppMessages.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/client/AppMessages.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/app/client/AppMessages.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -0,0 +1,4 @@
+package org.ourproject.kune.app.client;
+
+public interface AppMessages {
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogsMessages.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogsMessages.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogsMessages.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -0,0 +1,4 @@
+package org.ourproject.kune.blogs.client;
+
+public interface BlogsMessages {
+}
Added: trunk/src/main/java/org/ourproject/kune/chat/client/ChatMessages.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatMessages.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatMessages.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -0,0 +1,4 @@
+package org.ourproject.kune.chat.client;
+
+public interface ChatMessages {
+}
Added: trunk/src/main/java/org/ourproject/kune/docs/client/DocsMessages.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocsMessages.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocsMessages.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -0,0 +1,4 @@
+package org.ourproject.kune.docs.client;
+
+public interface DocsMessages {
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryMessages.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryMessages.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryMessages.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -0,0 +1,4 @@
+package org.ourproject.kune.gallery.client;
+
+public interface GalleryMessages {
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/PlatfMessages.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/PlatfMessages.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/PlatfMessages.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -0,0 +1,16 @@
+package org.ourproject.kune.platf.client;
+
+public interface PlatfMessages {
+ String BUDDIES_NOT_PUBLIC = "The buddies of this user are not public";
+ String MEMBERS_NOT_PUBLIC = "The members of this group are not public";
+ String REGISTER_TITLE = "Register";
+ String SIGN_IN_TITLE = "Sign in";
+ String EMAIL_IN_USE = "This email in in use by other person, try with another.";
+ String NAME_IN_USE = "This name in already in use, try with a different name.";
+ String INCORRECT_NICKNAME_EMAIL_OR_PASSWORD = "Incorrect nickname/email or password";
+ String YOUR_HOMEPAGE = "Your homepage";
+ String USER_DON_T_HAVE_A_HOMEPAGE = "This user don't have a homepage";
+ String ENT_LOGO_SELECTOR_NORMAL_TITLE = "Select a logo for your group";
+ String ENT_LOGO_SELECTOR_PERSON_TITLE = "Select your avatar";
+
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiMessages.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiMessages.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiMessages.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -0,0 +1,4 @@
+package org.ourproject.kune.wiki.client;
+
+public interface WikiMessages {
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceMessages.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceMessages.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceMessages.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -0,0 +1,8 @@
+package org.ourproject.kune.workspace.client;
+
+public interface WorkspaceMessages {
+ String REGISTER_A_NEW_GROUP_TITLE = "Register a new Group";
+ String MUST_BE_BETWEEN_3_AND_15 = "Must be between 3 and 15 lowercase characters. Can only contain occidental characters, numbers, and dashes";
+ String NAME_IN_ALREADY_IN_USE = "This name in already in use, try with a different name.";
+ String REGISTER_TO_CREATE_A_GROUP = "Sign in or register to create a group";
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entitylogo/EntityLogoSelectorPanel.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -18,6 +18,7 @@
*
*/package org.ourproject.kune.workspace.client.entitylogo;
+import org.ourproject.kune.platf.client.PlatfMessages;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.ui.dialogs.BasicDialogExtended;
import org.ourproject.kune.platf.client.ui.download.FileParams;
@@ -39,8 +40,6 @@
public class EntityLogoSelectorPanel implements EntityLogoSelectorView {
- public static final String NORMAL_TITLE = "Select a logo for your group";
- public static final String PERSON_TITLE = "Select your avatar";
public static final String ICON_UPLOAD_SERVLET = "/kune/servlets/EntityLogoUploadManager";
public static final String SUBID = "k-elogoselp-subb";
public static final String CANCELID = "k-elogoselp-canb";
@@ -56,8 +55,8 @@
public EntityLogoSelectorPanel(final EntityLogoSelectorPresenter presenter, final WorkspaceSkeleton ws,
I18nTranslationService i18n) {
this.i18n = i18n;
- dialog = new BasicDialogExtended(i18n.t(NORMAL_TITLE), true, true, 400, 200, "", i18n.t("Select"), SUBID,
- i18n.tWithNT("Cancel", "used in button"), CANCELID, new Listener0() {
+ dialog = new BasicDialogExtended(i18n.t(PlatfMessages.ENT_LOGO_SELECTOR_NORMAL_TITLE), true, true, 400, 200,
+ "", i18n.t("Select"), SUBID, i18n.tWithNT("Cancel", "used in button"), CANCELID, new Listener0() {
public void onEvent() {
String filename = file.getValueAsString();
if (filename != null && filename.length() > 0) {
@@ -146,7 +145,7 @@
+ "For best results use a [%d]x[%d] pixel image. We will automatically resize bigger images.",
EntityLogoView.LOGO_ICON_DEFAULT_HEIGHT, EntityLogoView.LOGO_ICON_DEFAULT_HEIGHT)
+ "<br/><br/>");
- dialog.setTitle(NORMAL_TITLE);
+ dialog.setTitle(PlatfMessages.ENT_LOGO_SELECTOR_NORMAL_TITLE);
}
public void setPersonalGroupsLabels() {
@@ -154,7 +153,7 @@
+ "For best results use a [%d]x[%d] pixel image. We will automatically resize bigger images.",
EntityLogoView.LOGO_ICON_DEFAULT_HEIGHT, EntityLogoView.LOGO_ICON_DEFAULT_HEIGHT)
+ "<br/><br/>");
- dialog.setTitle(PERSON_TITLE);
+ dialog.setTitle(PlatfMessages.ENT_LOGO_SELECTOR_PERSON_TITLE);
}
public void setUploadParams(String userHash, String token) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPanel.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -26,6 +26,7 @@
import org.ourproject.kune.platf.client.ui.dialogs.MessageToolbar;
import org.ourproject.kune.platf.client.ui.dialogs.WizardDialog;
import org.ourproject.kune.platf.client.ui.dialogs.WizardListener;
+import org.ourproject.kune.workspace.client.WorkspaceMessages;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoose;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePanel;
@@ -49,8 +50,6 @@
import com.gwtext.client.widgets.layout.FitLayout;
public class NewGroupPanel extends WizardDialog implements NewGroupView {
- public static final String REGISTER_A_NEW_GROUP_TITLE = "Register a new Group";
- public static final String MUST_BE_BETWEEN_3_AND_15 = "Must be between 3 and 15 lowercase characters. Can only contain occidental characters, numbers, and dashes";
public static final String SHORTNAME_FIELD = "k-ngp-short_name";
public static final String LONGNAME_FIELD = "k-ngp-long_name";
public static final String PUBLICDESC_FIELD = "k-ngp-public_desc";
@@ -84,7 +83,7 @@
public NewGroupPanel(final NewGroupPresenter presenter, final I18nUITranslationService i18n,
final Provider<LicenseChoose> licenseChooseProvider, Images img) {
- super(i18n.t(REGISTER_A_NEW_GROUP_TITLE), true, false, 460, 430, new WizardListener() {
+ super(i18n.t(WorkspaceMessages.REGISTER_A_NEW_GROUP_TITLE), true, false, 460, 430, new WizardListener() {
public void onBack() {
presenter.onBack();
}
@@ -234,9 +233,9 @@
shortNameField.setMaxLength(15);
shortNameField.setAllowBlank(false);
shortNameField.setRegex("^[a-z0-9_\\-]+$");
- shortNameField.setMinLengthText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
- shortNameField.setMaxLengthText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
- shortNameField.setRegexText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
+ shortNameField.setMinLengthText(i18n.t(WorkspaceMessages.MUST_BE_BETWEEN_3_AND_15));
+ shortNameField.setMaxLengthText(i18n.t(WorkspaceMessages.MUST_BE_BETWEEN_3_AND_15));
+ shortNameField.setRegexText(i18n.t(WorkspaceMessages.MUST_BE_BETWEEN_3_AND_15));
shortNameField.setValidationDelay(1000);
form.add(shortNameField);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -30,6 +30,7 @@
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.WorkspaceMessages;
import org.ourproject.kune.workspace.client.site.Site;
import org.ourproject.kune.workspace.client.site.SiteToken;
@@ -39,8 +40,7 @@
import com.google.gwt.user.client.rpc.AsyncCallback;
public class NewGroupPresenter implements NewGroup {
- public static final String NAME_IN_ALREADY_IN_USE = "This name in already in use, try with a different name.";
- public static final String REGISTER_TO_CREATE_A_GROUP = "Sign in or register to create a group";
+
private NewGroupView view;
private final I18nTranslationService i18n;
private final Session session;
@@ -70,7 +70,7 @@
Site.hideProgress();
} else {
stateManager.restorePreviousToken();
- Site.info(i18n.t(REGISTER_TO_CREATE_A_GROUP));
+ Site.info(i18n.t(WorkspaceMessages.REGISTER_TO_CREATE_A_GROUP));
}
}
});
@@ -118,7 +118,7 @@
} catch (final GroupNameInUseException e) {
onBack();
view.unMask();
- setMessage(i18n.t(NAME_IN_ALREADY_IN_USE), SiteErrorType.error);
+ setMessage(i18n.t(WorkspaceMessages.NAME_IN_ALREADY_IN_USE), SiteErrorType.error);
} catch (final Throwable e) {
onBack(); // The messageP is in first page of wizard :-/
view.unMask();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/nohomepage/NoHomePagePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/nohomepage/NoHomePagePanel.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/nohomepage/NoHomePagePanel.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -18,6 +18,7 @@
*
*/package org.ourproject.kune.workspace.client.nohomepage;
+import org.ourproject.kune.platf.client.PlatfMessages;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.workspace.client.skel.EntityWorkspace;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
@@ -25,8 +26,6 @@
import com.google.gwt.user.client.ui.Label;
public class NoHomePagePanel implements NoHomePageView {
-
- public static final String USER_DON_T_HAVE_A_HOMEPAGE = "This user don't have a homepage";
public static final String NO_HOME_PAGE_LABEL = "k-nhpp-l";
private final Label noHomepageCtnLabel;
private final Label noHomepageCtxLabel;
@@ -34,7 +33,7 @@
public NoHomePagePanel(final NoHomePagePresenter presenter, final WorkspaceSkeleton ws, I18nTranslationService i18n) {
this.ws = ws;
- noHomepageCtnLabel = new Label(i18n.t(USER_DON_T_HAVE_A_HOMEPAGE));
+ noHomepageCtnLabel = new Label(i18n.t(PlatfMessages.USER_DON_T_HAVE_A_HOMEPAGE));
noHomepageCtnLabel.ensureDebugId(NO_HOME_PAGE_LABEL);
noHomepageCtnLabel.setStyleName("kune-Content-Main");
noHomepageCtnLabel.addStyleName("kune-Margin-7-trbl");
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterForm.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -20,6 +20,7 @@
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.ui.dialogs.DefaultForm;
+import org.ourproject.kune.workspace.client.WorkspaceMessages;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import com.gwtext.client.data.SimpleStore;
@@ -34,8 +35,6 @@
public class RegisterForm extends DefaultForm {
- private static final String MUST_BE_BETWEEN_3_AND_15 = "Must be between 3 and 15 lowercase characters. Can only contain characters, numbers, and dashes";
-
public static final String NICK_FIELD = "k-urf-nick-f";
public static final String EMAIL_FIELD = "k-urf-email-f";
public static final String LONGNAME_FIELD = "k-urf-long_name-f";
@@ -73,9 +72,9 @@
shortNameRegField.setMinLength(3);
shortNameRegField.setMaxLength(15);
shortNameRegField.setRegex("^[a-z0-9_\\-]+$");
- shortNameRegField.setMinLengthText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
- shortNameRegField.setMaxLengthText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
- shortNameRegField.setRegexText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
+ shortNameRegField.setMinLengthText(i18n.t(WorkspaceMessages.MUST_BE_BETWEEN_3_AND_15));
+ shortNameRegField.setMaxLengthText(i18n.t(WorkspaceMessages.MUST_BE_BETWEEN_3_AND_15));
+ shortNameRegField.setRegexText(i18n.t(WorkspaceMessages.MUST_BE_BETWEEN_3_AND_15));
shortNameRegField.setValidationEvent(false);
add(shortNameRegField);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPanel.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -1,5 +1,6 @@
package org.ourproject.kune.workspace.client.signin;
+import org.ourproject.kune.platf.client.PlatfMessages;
import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.ui.dialogs.InfoDialog;
@@ -13,7 +14,6 @@
public class RegisterPanel extends SignInAbstractPanel implements RegisterView {
- public static final String REGISTER_TITLE = "Register";
public static final String ERRMSG = "k-regp-errmsg";
static RegisterForm registerForm;
@@ -27,8 +27,9 @@
public RegisterPanel(final RegisterPresenter presenter, I18nUITranslationService i18n, final WorkspaceSkeleton ws,
Session session, Images images) {
- super(i18n, i18n.t(REGISTER_TITLE), true, true, 390, 450, "", i18n.t(REGISTER_TITLE), REGISTER_BUTTON_ID,
- i18n.tWithNT("Cancel", "used in button"), CANCEL_BUTTON_ID, new Listener0() {
+ super(i18n, i18n.t(PlatfMessages.REGISTER_TITLE), true, true, 390, 450, "",
+ i18n.t(PlatfMessages.REGISTER_TITLE), REGISTER_BUTTON_ID, i18n.tWithNT("Cancel", "used in button"),
+ CANCEL_BUTTON_ID, new Listener0() {
public void onEvent() {
registerForm.validate();
if (registerForm.isValid()) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPresenter.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/RegisterPresenter.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -1,5 +1,6 @@
package org.ourproject.kune.workspace.client.signin;
+import org.ourproject.kune.platf.client.PlatfMessages;
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.I18nCountryDTO;
import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
@@ -22,8 +23,6 @@
public class RegisterPresenter extends SignInAbstractPresenter implements Register {
- public static final String EMAIL_IN_USE = "This email in in use by other person, try with another.";
- public static final String NAME_IN_USE = "This name in already in use, try with a different name.";
private RegisterView view;
private final Provider<UserServiceAsync> userServiceProvider;
private final Provider<SignIn> signInProvider;
@@ -79,9 +78,9 @@
try {
throw caught;
} catch (final EmailAddressInUseException e) {
- view.setErrorMessage(i18n.t(EMAIL_IN_USE), SiteErrorType.error);
+ view.setErrorMessage(i18n.t(PlatfMessages.EMAIL_IN_USE), SiteErrorType.error);
} catch (final GroupNameInUseException e) {
- view.setErrorMessage(i18n.t(NAME_IN_USE), SiteErrorType.error);
+ view.setErrorMessage(i18n.t(PlatfMessages.NAME_IN_USE), SiteErrorType.error);
} catch (final Throwable e) {
view.setErrorMessage(i18n.t("Error during registration."), SiteErrorType.error);
GWT.log("Other kind of exception in user registration" + e.getMessage() + ", "
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPanel.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -1,5 +1,6 @@
package org.ourproject.kune.workspace.client.signin;
+import org.ourproject.kune.platf.client.PlatfMessages;
import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
@@ -15,7 +16,6 @@
public class SignInPanel extends SignInAbstractPanel implements SignInView {
- public static final String SIGN_IN_TITLE = "Sign in";
public static final String ERROR_MSG = "k-sigp-errmsg";
public static final String CANCEL_BUTTON_ID = "k-signinp-cb";
public static final String SIGN_IN_BUTTON_ID = "k-signinp-sib";
@@ -25,8 +25,8 @@
public SignInPanel(final SignInPresenter presenter, I18nUITranslationService i18n, final WorkspaceSkeleton ws,
Images images) {
- super(i18n, i18n.t(SIGN_IN_TITLE), true, true, 340, 240, "", i18n.t(SIGN_IN_TITLE), SIGN_IN_BUTTON_ID,
- i18n.tWithNT("Cancel", "used in button"), CANCEL_BUTTON_ID, new Listener0() {
+ super(i18n, i18n.t(PlatfMessages.SIGN_IN_TITLE), true, true, 340, 240, "", i18n.t(PlatfMessages.SIGN_IN_TITLE),
+ SIGN_IN_BUTTON_ID, i18n.tWithNT("Cancel", "used in button"), CANCEL_BUTTON_ID, new Listener0() {
public void onEvent() {
signInForm.validate();
if (signInForm.isValid()) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/signin/SignInPresenter.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -1,5 +1,6 @@
package org.ourproject.kune.workspace.client.signin;
+import org.ourproject.kune.platf.client.PlatfMessages;
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.UserDTO;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
@@ -18,7 +19,6 @@
public class SignInPresenter extends SignInAbstractPresenter implements SignIn {
- public static final String INCORRECT_NICKNAME_EMAIL_OR_PASSWORD = "Incorrect nickname/email or password";
SignInView view;
private final Provider<UserServiceAsync> userServiceProvider;
private final Provider<Register> registerProvider;
@@ -77,7 +77,8 @@
try {
throw caught;
} catch (final UserAuthException e) {
- view.setErrorMessage(i18n.t(INCORRECT_NICKNAME_EMAIL_OR_PASSWORD), SiteErrorType.error);
+ view.setErrorMessage(i18n.t(PlatfMessages.INCORRECT_NICKNAME_EMAIL_OR_PASSWORD),
+ SiteErrorType.error);
} catch (final Throwable e) {
view.setErrorMessage("Error in login", SiteErrorType.error);
Log.error("Other kind of exception in LoginFormPresenter/doLogin");
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-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserMenuPanel.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -18,6 +18,7 @@
*
*/package org.ourproject.kune.workspace.client.sitebar.siteusermenu;
+import org.ourproject.kune.platf.client.PlatfMessages;
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.ui.MenuItemCollection;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
@@ -35,7 +36,6 @@
public class SiteUserMenuPanel implements SiteUserMenuView {
- public static final String YOUR_HOMEPAGE = "Your homepage";
public static final String LOGGED_USER_MENU = "kune-sump-lum";
public static final String USER_PREFERENCES_MENU_ITEM = "kune-sump-uprmi";
public static final String USER_HOME_PAGE_MENU_ITEM = "kune-sump-hpmi";
@@ -58,7 +58,7 @@
userMenu.showAt(sender.getAbsoluteLeft(), sender.getAbsoluteTop() + 10);
}
});
- final Item userHomePage = new Item(i18n.t(YOUR_HOMEPAGE));
+ final Item userHomePage = new Item(i18n.t(PlatfMessages.YOUR_HOMEPAGE));
userHomePage.setId(USER_HOME_PAGE_MENU_ITEM);
userHomePage.setIcon("images/group-home.gif");
userHomePage.addListener(new BaseItemListenerAdapter() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -18,6 +18,7 @@
*
*/package org.ourproject.kune.workspace.client.socialnet;
+import org.ourproject.kune.platf.client.PlatfMessages;
import org.ourproject.kune.platf.client.actions.ActionItem;
import org.ourproject.kune.platf.client.actions.ActionItemCollection;
import org.ourproject.kune.platf.client.actions.ActionManager;
@@ -80,8 +81,6 @@
nick.setText(nickName);
}
}
-
- public static final String NOT_PUBLIC = "The buddies of this user are not public";
private final MenuItemsContainer<UserSimpleDTO> menuItemsContainer;
private final FlowPanel flowPanel;
private final Label otherBuddiesLabel;
@@ -107,7 +106,7 @@
vp.add(toolbar);
super.add(vp);
addInSummary();
- noBuddiesPublic = new Label(i18n.t(NOT_PUBLIC));
+ noBuddiesPublic = new Label(i18n.t(PlatfMessages.BUDDIES_NOT_PUBLIC));
noBuddiesPublic.addStyleName("kune-Margin-7-trbl");
noBuddiesPublic.addStyleName("k-text-gray");
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -18,6 +18,7 @@
*
*/package org.ourproject.kune.workspace.client.socialnet;
+import org.ourproject.kune.platf.client.PlatfMessages;
import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPanel;
import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarView;
@@ -42,7 +43,6 @@
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
public class GroupMembersSummaryPanel extends SummaryPanel implements GroupMembersSummaryView {
- public static final String NOT_PUBLIC = "The members of this group are not public";
// private static final int MAX_HEIGHT = 110;
private final GridMenuPanel<GroupDTO> gridMenuPanel;
private final I18nUITranslationService i18n;
@@ -71,7 +71,7 @@
gridMenuPanel.getBottomBar().setCls("k-blank-toolbar");
super.add(gridMenuPanel);
- noMembersPublic = new Label(i18n.t(NOT_PUBLIC));
+ noMembersPublic = new Label(i18n.t(PlatfMessages.MEMBERS_NOT_PUBLIC));
noMembersPublic.addStyleName("kune-Margin-7-trbl");
noMembersPublic.addStyleName("k-text-gray");
noMembersPublic.setVisible(false);
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/EntityLogoSeleniumTest.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -4,6 +4,7 @@
import java.io.IOException;
import org.junit.Test;
+import org.ourproject.kune.platf.client.PlatfMessages;
import org.ourproject.kune.workspace.client.entitylogo.EntityLogoPanel;
import org.ourproject.kune.workspace.client.entitylogo.EntityLogoSelectorPanel;
import org.ourproject.kune.workspace.client.entitylogo.EntityLogoView;
@@ -20,7 +21,7 @@
private void setLogo(String filename) throws Exception, IOException {
click(gid(EntityLogoPanel.PUT_YOUR_LOGO_LINK));
- waitForTextInside(EntityLogoSelectorPanel.DIALOG_ID, EntityLogoSelectorPanel.NORMAL_TITLE);
+ waitForTextInside(EntityLogoSelectorPanel.DIALOG_ID, PlatfMessages.ENT_LOGO_SELECTOR_NORMAL_TITLE);
File dir = new File(".");
type(EntityLogoView.LOGO_FORM_FIELD, dir.getCanonicalPath() + File.separator + "img" + File.separator
+ filename);
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/NewGroupSeleniumTest.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -5,9 +5,9 @@
import org.junit.Test;
import org.ourproject.kune.platf.client.dto.GroupType;
+import org.ourproject.kune.workspace.client.WorkspaceMessages;
import org.ourproject.kune.workspace.client.entitylogo.EntityLogoPanel;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPanel;
-import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
import org.ourproject.kune.workspace.client.site.SiteToken;
public class NewGroupSeleniumTest extends KuneSeleniumTestHelper {
@@ -19,17 +19,17 @@
click(NewGroupPanel.CANCEL_BUTTON);
assertFalse(selenium.isTextPresent(NewGroupPanel.NEWGROUP_WIZARD));
open(SiteToken.newgroup);
- waitForTextInside(NewGroupPanel.NEWGROUP_WIZARD, NewGroupPanel.REGISTER_A_NEW_GROUP_TITLE);
+ waitForTextInside(NewGroupPanel.NEWGROUP_WIZARD, WorkspaceMessages.REGISTER_A_NEW_GROUP_TITLE);
}
@Test
public void newGroupNotLogged() throws Exception {
openDefPage();
assertFalse(selenium.isTextPresent(NewGroupPanel.NEWGROUP_WIZARD));
- assertFalse(selenium.isTextPresent(NewGroupPresenter.REGISTER_TO_CREATE_A_GROUP));
+ assertFalse(selenium.isTextPresent(WorkspaceMessages.REGISTER_TO_CREATE_A_GROUP));
open(SiteToken.newgroup);
wait(1000);
- assertTrue(selenium.isTextPresent(NewGroupPresenter.REGISTER_TO_CREATE_A_GROUP));
+ assertTrue(selenium.isTextPresent(WorkspaceMessages.REGISTER_TO_CREATE_A_GROUP));
}
@Test
@@ -39,7 +39,7 @@
GroupType.ORGANIZATION);
click(NewGroupPanel.NEXT_BUTTON);
click(NewGroupPanel.FINISH_BUTTON);
- waitForTextInside(gid(NewGroupPanel.ERROR_MSG_BAR), NewGroupPresenter.NAME_IN_ALREADY_IN_USE);
+ waitForTextInside(gid(NewGroupPanel.ERROR_MSG_BAR), WorkspaceMessages.NAME_IN_ALREADY_IN_USE);
}
@Test
@@ -87,6 +87,6 @@
signIn();
open(SiteToken.newgroup);
verifyLoggedUserShorName("admin");
- waitForTextInside(NewGroupPanel.NEWGROUP_WIZARD, NewGroupPanel.REGISTER_A_NEW_GROUP_TITLE);
+ waitForTextInside(NewGroupPanel.NEWGROUP_WIZARD, WorkspaceMessages.REGISTER_A_NEW_GROUP_TITLE);
}
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2008-11-30 01:12:34 UTC (rev 972)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/selenium/SignInSeleniumTest.java 2008-11-30 23:11:28 UTC (rev 973)
@@ -5,12 +5,11 @@
import static org.junit.Assert.assertTrue;
import org.junit.Test;
+import org.ourproject.kune.platf.client.PlatfMessages;
import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePanel;
import org.ourproject.kune.workspace.client.signin.RegisterPanel;
-import org.ourproject.kune.workspace.client.signin.RegisterPresenter;
import org.ourproject.kune.workspace.client.signin.SignInForm;
import org.ourproject.kune.workspace.client.signin.SignInPanel;
-import org.ourproject.kune.workspace.client.signin.SignInPresenter;
import org.ourproject.kune.workspace.client.site.Site;
import org.ourproject.kune.workspace.client.site.SiteToken;
import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignInLinkPanel;
@@ -24,7 +23,7 @@
openDefPage();
register("u" + genPrefix(), "Site Administrator", "somepasswd", "somepasswd", "some" + genPrefix()
+ "@example.com", "Andorra", "Afrikaans", "MIT", true);
- waitForTextInside(gid(RegisterPanel.ERRMSG), RegisterPresenter.NAME_IN_USE);
+ waitForTextInside(gid(RegisterPanel.ERRMSG), PlatfMessages.NAME_IN_USE);
click(RegisterPanel.CANCEL_BUTTON_ID);
}
@@ -33,7 +32,7 @@
openDefPage();
register("admin", "some name" + genPrefix(), "somepasswd", "somepasswd", "some" + genPrefix() + "@example.com",
"Andorra", "Afrikaans", "MIT", true);
- waitForTextInside(gid(RegisterPanel.ERRMSG), RegisterPresenter.NAME_IN_USE);
+ waitForTextInside(gid(RegisterPanel.ERRMSG), PlatfMessages.NAME_IN_USE);
click(RegisterPanel.CANCEL_BUTTON_ID);
}
@@ -51,8 +50,8 @@
selenium.isTextPresent("Welcome");
click(RegisterPanel.WELCOME_OK_BUTTON);
clickOnPushButton(gid(SiteUserMenuPanel.LOGGED_USER_MENU));
- click(linkId(SiteUserMenuPanel.YOUR_HOMEPAGE));
- waitForTextInside(gid(NoHomePagePanel.NO_HOME_PAGE_LABEL), NoHomePagePanel.USER_DON_T_HAVE_A_HOMEPAGE);
+ click(linkId(PlatfMessages.YOUR_HOMEPAGE));
+ waitForTextInside(gid(NoHomePagePanel.NO_HOME_PAGE_LABEL), PlatfMessages.USER_DON_T_HAVE_A_HOMEPAGE);
}
@Test
@@ -81,9 +80,9 @@
@Test
public void testRegisterToken() throws Exception {
open(SiteToken.register);
- assertFalse(selenium.isTextPresent(RegisterPanel.REGISTER_TITLE));
+ assertFalse(selenium.isTextPresent(PlatfMessages.REGISTER_TITLE));
waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
- assertTrue(selenium.isTextPresent(RegisterPanel.REGISTER_TITLE));
+ assertTrue(selenium.isTextPresent(PlatfMessages.REGISTER_TITLE));
}
@Test
@@ -107,7 +106,7 @@
public void testSignInFailed() throws Exception {
openDefPage();
signIn("something", "wrong");
- waitForTextInside(gid(SignInPanel.ERROR_MSG), SignInPresenter.INCORRECT_NICKNAME_EMAIL_OR_PASSWORD);
+ waitForTextInside(gid(SignInPanel.ERROR_MSG), PlatfMessages.INCORRECT_NICKNAME_EMAIL_OR_PASSWORD);
signOut();
}
@@ -135,8 +134,8 @@
@Test
public void testSignInToken() throws Exception {
open(SiteToken.signin);
- assertFalse(selenium.isTextPresent(SignInPanel.SIGN_IN_TITLE));
+ assertFalse(selenium.isTextPresent(PlatfMessages.SIGN_IN_TITLE));
waitForTextInside(gid(EntityTitlePanel.ENTITY_TITLE_RIGHT_TITLE), "Welcome to kune");
- assertTrue(selenium.isTextPresent(SignInPanel.SIGN_IN_TITLE));
+ assertTrue(selenium.isTextPresent(PlatfMessages.SIGN_IN_TITLE));
}
}
1
0
Author: vjrj
Date: 2008-11-30 02:12:34 +0100 (Sun, 30 Nov 2008)
New Revision: 972
Modified:
trunk/pom.xml
Log:
new maven-gwt and pluginRepo
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2008-11-28 10:13:03 UTC (rev 971)
+++ trunk/pom.xml 2008-11-30 01:12:34 UTC (rev 972)
@@ -295,6 +295,12 @@
<!--
http://gwt-maven.googlecode.com/svn/docs/maven-googlewebtoolkit2-plugin/ind…
-->
+ <pluginRepositories>
+ <pluginRepository>
+ <id>gwt-maven</id>
+ <url>http://gwt-maven.googlecode.com/svn/trunk/mavenrepo</url>
+ </pluginRepository>
+ </pluginRepositories>
<repositories>
<repository>
<id>repository.jboss.org</id>
@@ -376,7 +382,7 @@
<plugin>
<groupId>com.totsp.gwt</groupId>
<artifactId>maven-googlewebtoolkit2-plugin</artifactId>
- <version>2.0-beta23</version>
+ <version>2.0-beta26</version>
<configuration>
<logLevel>INFO</logLevel>
<style>OBF</style>
1
0
Author: vjrj
Date: 2008-11-28 11:13:03 +0100 (Fri, 28 Nov 2008)
New Revision: 971
Added:
trunk/script/demo-deploy.sh
trunk/src/test/java/org/ourproject/kune/blogs/
trunk/src/test/java/org/ourproject/kune/blogs/server/
trunk/src/test/java/org/ourproject/kune/blogs/server/BlogServerToolTest.java
trunk/src/test/java/org/ourproject/kune/gallery/
trunk/src/test/java/org/ourproject/kune/gallery/server/
trunk/src/test/java/org/ourproject/kune/gallery/server/GalleryServerToolTest.java
trunk/src/test/java/org/ourproject/kune/wiki/
trunk/src/test/java/org/ourproject/kune/wiki/server/
trunk/src/test/java/org/ourproject/kune/wiki/server/WikiServerToolTest.java
Modified:
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css
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/docs/client/DocumentClientTool.java
trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
trunk/src/test/java/org/ourproject/kune/docs/server/DocumentServerToolTest.java
Log:
Complete - task UI tools & workspace refactorization
Incomplete - task New tags identation
Added: trunk/script/demo-deploy.sh
===================================================================
--- trunk/script/demo-deploy.sh 2008-11-26 13:41:04 UTC (rev 970)
+++ trunk/script/demo-deploy.sh 2008-11-28 10:13:03 UTC (rev 971)
@@ -0,0 +1,22 @@
+#!/bin/bash
+PARAM=$#
+USER=$1
+DEST=$2
+if [ $PARAM -gt 0 ]
+then
+ EXTRA=$USER@
+fi
+
+if [ $PARAM -gt 1 ]
+then
+ EXTRADEST=$DEST/
+fi
+
+ORIG=target/kune-0.0.5/org.ourproject.kune.app.Kune/
+DEST=/mnt/kunedev/var/lib/kune/www
+
+chmod -R g+rw $ORIG
+# from time to time use --delete
+rsync --progress -C -r -p $ORIG ${EXTRA}ourproject.org:$DEST/$EXTRADEST
+
+ssh ${EXTRA}ourproject.org "chgrp -R kune $DEST"
Property changes on: trunk/script/demo-deploy.sh
___________________________________________________________________
Name: svn:executable
+ *
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-11-26 13:41:04 UTC (rev 970)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-11-28 10:13:03 UTC (rev 971)
@@ -33,12 +33,12 @@
-moz-opacity: 0.2;
opacity: 0.2;
}
-*/.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;overflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.k-tp-tag{float:left;margin-right:5px;cursor:pointer;color:#00F;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
+*/.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;overflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
background-color: #FFF; */border:1px solid #4D4D4D;background-color:#FFF;margin:5px 0 5px 10px;}.gwt-RichTextToolbar{/* background-color: #F2F2F2;
- padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-bottom-color:#FFF;border-bottom-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.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 .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.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 .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA 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: 24px; */color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
+ padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-bottom-color:#FFF;border-bottom-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.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 .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.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 .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA 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: 24px; */color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
.x-tree-node a span, .x-dd-drag-ghost a span {
color:#000000;
padding: 1px 0px 1px 1px;
text-decoration:none;
}
-*/.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-bsp-buddie{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-bsp-buddie td{padding:2px 3px;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;cursor:pointer;}
\ No newline at end of file
+*/.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-bsp-buddie{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-bsp-buddie td{padding:2px 3px;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;cursor:pointer;}.k-tsp-tag{float:right;margin-right:5px;cursor:pointer;color:#00F;}.k-tsp-cloud{vertical-align:bottom;}
\ No newline at end of file
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-11-26 13:41:04 UTC (rev 970)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-11-28 10:13:03 UTC (rev 971)
@@ -798,3 +798,17 @@
margin-left: 5px;
cursor: pointer;
}
+
+
+.k-tsp-tag {
+ float: right;
+ margin-right: 5px;
+ cursor: pointer;
+ color: #0000FF;
+}
+
+
+.k-tsp-cloud {
+ vertical-align: bottom;
+}
+
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css 2008-11-26 13:41:04 UTC (rev 970)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css 2008-11-28 10:13:03 UTC (rev 971)
@@ -597,13 +597,6 @@
background-color: #EFEFEF;
}
-.k-tp-tag {
- float: left;
- margin-right: 5px;
- cursor: pointer;
- color: #0000FF;
-}
-
.kune-Content-Main {
margin: 5px;
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java 2008-11-26 13:41:04 UTC (rev 970)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java 2008-11-28 10:13:03 UTC (rev 971)
@@ -21,6 +21,7 @@
import org.ourproject.kune.blogs.client.BlogClientTool;
import org.ourproject.kune.chat.client.ctx.room.AddRoom;
import org.ourproject.kune.docs.client.DocumentClientTool;
+import org.ourproject.kune.gallery.client.GalleryClientTool;
import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarButtonSeparator;
import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
@@ -94,10 +95,12 @@
addRoom.setMustBeAuthenticated(true);
contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_DOCUMENT);
- contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_GALLERY);
+ contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_UPLOADEDFILE);
contentActionRegistry.addAction(chatAbout, WikiClientTool.TYPE_WIKIPAGE);
contentActionRegistry.addAction(chatAbout, BlogClientTool.TYPE_POST);
- contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_UPLOADEDFILE);
+ contentActionRegistry.addAction(chatAbout, WikiClientTool.TYPE_UPLOADEDFILE);
+ contentActionRegistry.addAction(chatAbout, GalleryClientTool.TYPE_UPLOADEDFILE);
+ contentActionRegistry.addAction(chatAbout, BlogClientTool.TYPE_UPLOADEDFILE);
contextActionRegistry.addAction(addRoom, ChatClientTool.TYPE_ROOT, ChatClientTool.TYPE_ROOM);
contentActionRegistry.addAction(joinRoom, ChatClientTool.TYPE_ROOM);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-11-26 13:41:04 UTC (rev 970)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-11-28 10:13:03 UTC (rev 971)
@@ -20,7 +20,6 @@
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_ROOT;
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_UPLOADEDFILE;
@@ -62,10 +61,10 @@
@Override
protected void createActions() {
- final String[] all = { TYPE_ROOT, TYPE_FOLDER, TYPE_DOCUMENT, TYPE_GALLERY, TYPE_UPLOADEDFILE };
- final String[] containers = { TYPE_ROOT, TYPE_FOLDER, TYPE_GALLERY };
+ final String[] all = { TYPE_ROOT, TYPE_FOLDER, TYPE_DOCUMENT, TYPE_UPLOADEDFILE };
+ final String[] containers = { TYPE_ROOT, TYPE_FOLDER, };
final String[] contentsModerated = { TYPE_DOCUMENT, TYPE_UPLOADEDFILE };
- final String[] containersNoRoot = { TYPE_FOLDER, TYPE_GALLERY };
+ final String[] containersNoRoot = { TYPE_FOLDER };
final String[] contents = { TYPE_DOCUMENT, TYPE_UPLOADEDFILE };
String parentMenuTitle = i18n.t("File");
@@ -73,8 +72,6 @@
createNewContainerAction(TYPE_FOLDER, "images/nav/folder_add.png", i18n.t("New folder"), parentMenuTitleCtx,
i18n.t("New"), i18n.t("New folder"), Position.ctx, TYPE_ROOT, TYPE_FOLDER);
- createNewContainerAction(TYPE_GALLERY, "images/nav/gallery_add.png", i18n.t("New gallery"), parentMenuTitleCtx,
- i18n.t("New"), i18n.t("New gallery"), Position.ctx, TYPE_ROOT);
createNewContentAction(TYPE_DOCUMENT, "images/nav/page_add.png", i18n.t("New document"), parentMenuTitleCtx,
Position.ctx, TYPE_ROOT, TYPE_FOLDER);
@@ -103,7 +100,7 @@
createEditAction(TYPE_DOCUMENT);
- createTranslateAction(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_GALLERY, TYPE_UPLOADEDFILE);
+ createTranslateAction(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE);
createDelContainerAction("Delete folder", parentMenuTitleCtx, containersNoRoot);
createDelContentAction(parentMenuTitle, i18n.t("Delete"), contents);
@@ -111,6 +108,6 @@
@Override
protected void createPostSessionInitActions() {
- super.createUploadMediaAction(TYPE_GALLERY);
+ // super.createUploadMediaAction(TYPE_GALLERY);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-11-26 13:41:04 UTC (rev 970)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-11-28 10:13:03 UTC (rev 971)
@@ -31,7 +31,6 @@
public static final String TYPE_ROOT = NAME + "." + "root";
public static final String TYPE_FOLDER = NAME + "." + "folder";
public static final String TYPE_DOCUMENT = NAME + "." + "doc";
- public static final String TYPE_GALLERY = NAME + "." + "gallery";
public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
public DocumentClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
@@ -42,10 +41,10 @@
// registerAclEditableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
registerAuthorableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
registerDragableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE);
- registerDropableTypes(TYPE_ROOT, TYPE_FOLDER, TYPE_GALLERY);
+ registerDropableTypes(TYPE_ROOT, TYPE_FOLDER);
registerPublishModerableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
registerRateableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
- registerRenamableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_GALLERY, TYPE_UPLOADEDFILE);
+ registerRenamableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE);
registerTageableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
registerTranslatableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE);
@@ -58,7 +57,6 @@
protected void registerIcons() {
registerContentTypeIcon(TYPE_FOLDER, "images/nav/folder.png");
- registerContentTypeIcon(TYPE_GALLERY, "images/nav/gallery.png");
registerContentTypeIcon(TYPE_DOCUMENT, "images/nav/page.png");
registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java 2008-11-26 13:41:04 UTC (rev 970)
+++ trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java 2008-11-28 10:13:03 UTC (rev 971)
@@ -26,12 +26,10 @@
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.server.content.ContainerManager;
import org.ourproject.kune.platf.server.content.ContentManager;
-import org.ourproject.kune.platf.server.domain.AccessLists;
import org.ourproject.kune.platf.server.domain.Container;
import org.ourproject.kune.platf.server.domain.Content;
import org.ourproject.kune.platf.server.domain.ContentStatus;
import org.ourproject.kune.platf.server.domain.Group;
-import org.ourproject.kune.platf.server.domain.GroupListMode;
import org.ourproject.kune.platf.server.domain.ToolConfiguration;
import org.ourproject.kune.platf.server.domain.User;
import org.ourproject.kune.platf.server.manager.ToolConfigurationManager;
@@ -46,14 +44,8 @@
public static final String TYPE_ROOT = NAME + "." + "root";
public static final String TYPE_FOLDER = NAME + "." + "folder";
public static final String TYPE_DOCUMENT = NAME + "." + "doc";
- public static final String TYPE_GALLERY = NAME + "." + "gallery";
public static final String TYPE_UPLOADEDFILE = NAME + "." + ServerTool.UPLOADEDFILE_SUFFIX;
- public static final String TYPE_BLOG = "docs.blog";
- public static final String TYPE_POST = "docs.post";
- public static final String TYPE_WIKI = "docs.wiki";
- public static final String TYPE_WIKIPAGE = "docs.wikipage";
-
public static final String ROOT_NAME = "documents";
private final ContentManager contentManager;
@@ -109,14 +101,6 @@
}
public void onCreateContainer(final Container container, final Container parent) {
- if (container.getTypeId().equals(TYPE_WIKI)) {
- AccessLists wikiAcl = new AccessLists();
- wikiAcl.getAdmins().setMode(GroupListMode.NORMAL);
- wikiAcl.getAdmins().add(container.getOwner());
- wikiAcl.getEditors().setMode(GroupListMode.EVERYONE);
- wikiAcl.getViewers().setMode(GroupListMode.EVERYONE);
- container.setAccessLists(wikiAcl);
- }
}
public void onCreateContent(final Content content, final Container parent) {
@@ -128,13 +112,9 @@
}
void checkContainerTypeId(final String parentTypeId, final String typeId) {
- if (typeId.equals(TYPE_FOLDER) || typeId.equals(TYPE_GALLERY) || typeId.equals(TYPE_WIKI)
- || typeId.equals(TYPE_BLOG)) {
+ if (typeId.equals(TYPE_FOLDER)) {
// ok valid container
- if ((typeId.equals(TYPE_FOLDER) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))
- || (typeId.equals(TYPE_GALLERY) && (parentTypeId.equals(TYPE_ROOT)))
- || (typeId.equals(TYPE_WIKI) && parentTypeId.equals(TYPE_ROOT))
- || (typeId.equals(TYPE_BLOG) && parentTypeId.equals(TYPE_ROOT))) {
+ if ((typeId.equals(TYPE_FOLDER) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))) {
// ok
} else {
throw new ContainerNotPermittedException();
@@ -145,14 +125,10 @@
}
void checkContentTypeId(final String parentTypeId, final String typeId) {
- if (typeId.equals(TYPE_DOCUMENT) || typeId.equals(TYPE_WIKIPAGE) || typeId.equals(TYPE_UPLOADEDFILE)
- || typeId.equals(TYPE_POST)) {
+ if (typeId.equals(TYPE_DOCUMENT) || typeId.equals(TYPE_UPLOADEDFILE)) {
// ok valid content
if ((typeId.equals(TYPE_DOCUMENT) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))
- || (typeId.equals(TYPE_UPLOADEDFILE) && (parentTypeId.equals(TYPE_ROOT)
- || parentTypeId.equals(TYPE_FOLDER) || parentTypeId.equals(TYPE_GALLERY)))
- || (typeId.equals(TYPE_WIKIPAGE) && parentTypeId.equals(TYPE_WIKI))
- || (typeId.equals(TYPE_POST) && parentTypeId.equals(TYPE_BLOG))) {
+ || (typeId.equals(TYPE_UPLOADEDFILE) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))) {
// ok
} else {
throw new ContentNotPermittedException();
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2008-11-26 13:41:04 UTC (rev 970)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2008-11-28 10:13:03 UTC (rev 971)
@@ -96,7 +96,7 @@
createGoHomeAction(containers);
- createTranslateAction(TYPE_ALBUM, TYPE_UPLOADEDFILE);
+ // createTranslateAction(TYPE_ALBUM, TYPE_UPLOADEDFILE);
createDelContainerAction("Delete folder", parentMenuTitleCtx, containersNoRoot);
createDelContentAction(parentMenuTitle, i18n.t("Delete"), contents);
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java 2008-11-26 13:41:04 UTC (rev 970)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/content/ContentManagerDefault.java 2008-11-28 10:13:03 UTC (rev 971)
@@ -19,8 +19,6 @@
*/
package org.ourproject.kune.platf.server.content;
-import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_WIKIPAGE;
-
import java.util.ArrayList;
import java.util.Date;
@@ -86,10 +84,6 @@
newContent.addAuthor(author);
newContent.setLanguage(author.getLanguage());
newContent.setTypeId(typeId);
- if (typeId.equals(TYPE_WIKIPAGE)) {
- newContent.setStatus(ContentStatus.publishedOnline);
- newContent.setPublishedOn(new Date());
- }
container.addContent(newContent);
newContent.setContainer(container);
final Revision revision = new Revision(newContent);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2008-11-26 13:41:04 UTC (rev 970)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2008-11-28 10:13:03 UTC (rev 971)
@@ -50,6 +50,7 @@
super.add(vp);
// super.setBorderStylePrimaryName("k-dropdownouter-tags");
flowPanel.addStyleName("kune-Margin-Small-trbl");
+ flowPanel.addStyleName("k-tsp-cloud");
addInSummary();
}
@@ -66,7 +67,7 @@
presenter.doSearchTag(name);
}
});
- label.addStyleName("k-tp-tag");
+ label.addStyleName("k-tsp-tag");
label.addStyleName(style);
flowPanel.add(label);
}
Added: trunk/src/test/java/org/ourproject/kune/blogs/server/BlogServerToolTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/blogs/server/BlogServerToolTest.java 2008-11-26 13:41:04 UTC (rev 970)
+++ trunk/src/test/java/org/ourproject/kune/blogs/server/BlogServerToolTest.java 2008-11-28 10:13:03 UTC (rev 971)
@@ -0,0 +1,47 @@
+package org.ourproject.kune.blogs.server;
+
+import static org.ourproject.kune.blogs.server.BlogServerTool.TYPE_BLOG;
+import static org.ourproject.kune.blogs.server.BlogServerTool.TYPE_POST;
+import static org.ourproject.kune.blogs.server.BlogServerTool.TYPE_ROOT;
+import static org.ourproject.kune.blogs.server.BlogServerTool.TYPE_UPLOADEDFILE;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException;
+import org.ourproject.kune.platf.client.errors.ContentNotPermittedException;
+
+public class BlogServerToolTest { // extends PersistenceTest {
+
+ private BlogServerTool serverTool;
+
+ @Before
+ public void before() {
+ serverTool = new BlogServerTool(null, null, null, null);
+ }
+
+ @Test
+ public void testCreateContainerInCorrectContainer() {
+ serverTool.checkContainerTypeId(TYPE_ROOT, TYPE_BLOG);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer7() {
+ serverTool.checkContainerTypeId(TYPE_BLOG, TYPE_BLOG);
+ }
+
+ @Test
+ public void testCreateContentInCorrectContainer() {
+ serverTool.checkContentTypeId(TYPE_BLOG, TYPE_POST);
+ serverTool.checkContentTypeId(TYPE_BLOG, TYPE_UPLOADEDFILE);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer1() {
+ serverTool.checkContentTypeId(TYPE_ROOT, TYPE_POST);
+ }
+
+ @Test(expected = ContentNotPermittedException.class)
+ public void testCreateContentInIncorrectContainer8() {
+ serverTool.checkContentTypeId(TYPE_ROOT, TYPE_UPLOADEDFILE);
+ }
+}
\ No newline at end of file
Modified: trunk/src/test/java/org/ourproject/kune/docs/server/DocumentServerToolTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/docs/server/DocumentServerToolTest.java 2008-11-26 13:41:04 UTC (rev 970)
+++ trunk/src/test/java/org/ourproject/kune/docs/server/DocumentServerToolTest.java 2008-11-28 10:13:03 UTC (rev 971)
@@ -1,189 +1,34 @@
package org.ourproject.kune.docs.server;
-import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_BLOG;
import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_DOCUMENT;
import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_FOLDER;
-import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_GALLERY;
-import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_POST;
import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_ROOT;
import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_UPLOADEDFILE;
-import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_WIKI;
-import static org.ourproject.kune.docs.server.DocumentServerTool.TYPE_WIKIPAGE;
import org.junit.Before;
import org.junit.Test;
-import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException;
-import org.ourproject.kune.platf.client.errors.ContentNotPermittedException;
public class DocumentServerToolTest { // extends PersistenceTest {
- private DocumentServerTool dcServerTool;
+ private DocumentServerTool serverTool;
@Before
public void before() {
- dcServerTool = new DocumentServerTool(null, null, null, null);
+ serverTool = new DocumentServerTool(null, null, null, null);
}
@Test
public void testCreateContainerInCorrectContainer() {
- dcServerTool.checkContainerTypeId(TYPE_ROOT, TYPE_FOLDER);
- dcServerTool.checkContainerTypeId(TYPE_FOLDER, TYPE_FOLDER);
- dcServerTool.checkContainerTypeId(TYPE_ROOT, TYPE_WIKI);
- dcServerTool.checkContainerTypeId(TYPE_ROOT, TYPE_BLOG);
- dcServerTool.checkContainerTypeId(TYPE_ROOT, TYPE_GALLERY);
+ serverTool.checkContainerTypeId(TYPE_ROOT, TYPE_FOLDER);
+ serverTool.checkContainerTypeId(TYPE_FOLDER, TYPE_FOLDER);
}
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer1() {
- dcServerTool.checkContainerTypeId(TYPE_FOLDER, TYPE_WIKI);
- }
-
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer10() {
- // At the moment, not permitted (create a gallery_folder)
- dcServerTool.checkContainerTypeId(TYPE_GALLERY, TYPE_FOLDER);
- }
-
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer11() {
- // At the moment, not permitted (create a wiki_folder)
- dcServerTool.checkContainerTypeId(TYPE_WIKI, TYPE_FOLDER);
- }
-
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer12() {
- dcServerTool.checkContainerTypeId(TYPE_BLOG, TYPE_FOLDER);
- }
-
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer13() {
- dcServerTool.checkContainerTypeId(TYPE_GALLERY, TYPE_WIKI);
- }
-
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer14() {
- dcServerTool.checkContainerTypeId(TYPE_WIKI, TYPE_WIKI);
- }
-
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer15() {
- dcServerTool.checkContainerTypeId(TYPE_GALLERY, TYPE_GALLERY);
- }
-
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer2() {
- dcServerTool.checkContainerTypeId(TYPE_BLOG, TYPE_WIKI);
- }
-
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer3() {
- dcServerTool.checkContainerTypeId(TYPE_FOLDER, TYPE_WIKI);
- }
-
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer4() {
- dcServerTool.checkContainerTypeId(TYPE_BLOG, TYPE_GALLERY);
- }
-
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer5() {
- dcServerTool.checkContainerTypeId(TYPE_FOLDER, TYPE_GALLERY);
- }
-
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer6() {
- dcServerTool.checkContainerTypeId(TYPE_WIKI, TYPE_GALLERY);
- }
-
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer7() {
- dcServerTool.checkContainerTypeId(TYPE_BLOG, TYPE_BLOG);
- }
-
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer8() {
- dcServerTool.checkContainerTypeId(TYPE_FOLDER, TYPE_BLOG);
- }
-
- @Test(expected = ContainerNotPermittedException.class)
- public void testCreateContainerInIncorrectContainer9() {
- dcServerTool.checkContainerTypeId(TYPE_GALLERY, TYPE_BLOG);
- }
-
@Test
public void testCreateContentInCorrectContainer() {
- dcServerTool.checkContentTypeId(TYPE_BLOG, TYPE_POST);
- dcServerTool.checkContentTypeId(TYPE_WIKI, TYPE_WIKIPAGE);
- dcServerTool.checkContentTypeId(TYPE_ROOT, TYPE_DOCUMENT);
- dcServerTool.checkContentTypeId(TYPE_FOLDER, TYPE_DOCUMENT);
- dcServerTool.checkContentTypeId(TYPE_ROOT, TYPE_UPLOADEDFILE);
- dcServerTool.checkContentTypeId(TYPE_FOLDER, TYPE_UPLOADEDFILE);
- dcServerTool.checkContentTypeId(TYPE_GALLERY, TYPE_UPLOADEDFILE);
+ serverTool.checkContentTypeId(TYPE_ROOT, TYPE_DOCUMENT);
+ serverTool.checkContentTypeId(TYPE_ROOT, TYPE_UPLOADEDFILE);
+ serverTool.checkContentTypeId(TYPE_FOLDER, TYPE_DOCUMENT);
+ serverTool.checkContentTypeId(TYPE_FOLDER, TYPE_UPLOADEDFILE);
}
- @Test(expected = ContentNotPermittedException.class)
- public void testCreateContentInIncorrectContainer1() {
- dcServerTool.checkContentTypeId(TYPE_ROOT, TYPE_POST);
- }
-
- @Test(expected = ContentNotPermittedException.class)
- public void testCreateContentInIncorrectContainer10() {
- dcServerTool.checkContentTypeId(TYPE_ROOT, TYPE_WIKIPAGE);
- }
-
- @Test(expected = ContentNotPermittedException.class)
- public void testCreateContentInIncorrectContainer11() {
- dcServerTool.checkContentTypeId(TYPE_FOLDER, TYPE_WIKIPAGE);
- }
-
- @Test(expected = ContentNotPermittedException.class)
- public void testCreateContentInIncorrectContainer12() {
- dcServerTool.checkContentTypeId(TYPE_GALLERY, TYPE_WIKIPAGE);
- }
-
- @Test(expected = ContentNotPermittedException.class)
- public void testCreateContentInIncorrectContainer13() {
- dcServerTool.checkContentTypeId(TYPE_BLOG, TYPE_WIKIPAGE);
- }
-
- @Test(expected = ContentNotPermittedException.class)
- public void testCreateContentInIncorrectContainer2() {
- dcServerTool.checkContentTypeId(TYPE_FOLDER, TYPE_POST);
- }
-
- @Test(expected = ContentNotPermittedException.class)
- public void testCreateContentInIncorrectContainer3() {
- dcServerTool.checkContentTypeId(TYPE_GALLERY, TYPE_POST);
- }
-
- @Test(expected = ContentNotPermittedException.class)
- public void testCreateContentInIncorrectContainer4() {
- dcServerTool.checkContentTypeId(TYPE_WIKI, TYPE_POST);
- }
-
- @Test(expected = ContentNotPermittedException.class)
- public void testCreateContentInIncorrectContainer5() {
- dcServerTool.checkContentTypeId(TYPE_GALLERY, TYPE_DOCUMENT);
- }
-
- @Test(expected = ContentNotPermittedException.class)
- public void testCreateContentInIncorrectContainer6() {
- dcServerTool.checkContentTypeId(TYPE_WIKI, TYPE_DOCUMENT);
- }
-
- @Test(expected = ContentNotPermittedException.class)
- public void testCreateContentInIncorrectContainer7() {
- dcServerTool.checkContentTypeId(TYPE_BLOG, TYPE_DOCUMENT);
- }
-
- @Test(expected = ContentNotPermittedException.class)
- public void testCreateContentInIncorrectContainer8() {
- dcServerTool.checkContentTypeId(TYPE_BLOG, TYPE_UPLOADEDFILE);
- }
-
- @Test(expected = ContentNotPermittedException.class)
- public void testCreateContentInIncorrectContainer9() {
- dcServerTool.checkContentTypeId(TYPE_WIKI, TYPE_UPLOADEDFILE);
- }
-
}
\ No newline at end of file
Added: trunk/src/test/java/org/ourproject/kune/gallery/server/GalleryServerToolTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/gallery/server/GalleryServerToolTest.java 2008-11-26 13:41:04 UTC (rev 970)
+++ trunk/src/test/java/org/ourproject/kune/gallery/server/GalleryServerToolTest.java 2008-11-28 10:13:03 UTC (rev 971)
@@ -0,0 +1,37 @@
+package org.ourproject.kune.gallery.server;
+
+import static org.ourproject.kune.gallery.server.GalleryServerTool.TYPE_ALBUM;
+import static org.ourproject.kune.gallery.server.GalleryServerTool.TYPE_ROOT;
+import static org.ourproject.kune.gallery.server.GalleryServerTool.TYPE_UPLOADEDFILE;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException;
+
+public class GalleryServerToolTest { // extends PersistenceTest {
+
+ private GalleryServerTool serverTool;
+
+ @Before
+ public void before() {
+ serverTool = new GalleryServerTool(null, null, null);
+ }
+
+ @Test
+ public void testCreateContainerInCorrectContainer() {
+ serverTool.checkContainerTypeId(TYPE_ROOT, TYPE_ALBUM);
+ serverTool.checkContainerTypeId(TYPE_ALBUM, TYPE_ALBUM);
+ }
+
+ @Test(expected = ContainerNotPermittedException.class)
+ public void testCreateContainerInIncorrectContainer1() {
+ serverTool.checkContainerTypeId(TYPE_ROOT, TYPE_ROOT);
+ }
+
+ @Test
+ public void testCreateContentInCorrectContainer() {
+ serverTool.checkContentTypeId(TYPE_ROOT, TYPE_UPLOADEDFILE);
+ serverTool.checkContentTypeId(TYPE_ALBUM, TYPE_UPLOADEDFILE);
+ }
+
+}
\ No newline at end of file
Added: trunk/src/test/java/org/ourproject/kune/wiki/server/WikiServerToolTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/wiki/server/WikiServerToolTest.java 2008-11-26 13:41:04 UTC (rev 970)
+++ trunk/src/test/java/org/ourproject/kune/wiki/server/WikiServerToolTest.java 2008-11-28 10:13:03 UTC (rev 971)
@@ -0,0 +1,34 @@
+package org.ourproject.kune.wiki.server;
+
+import static org.ourproject.kune.wiki.server.WikiServerTool.TYPE_FOLDER;
+import static org.ourproject.kune.wiki.server.WikiServerTool.TYPE_ROOT;
+import static org.ourproject.kune.wiki.server.WikiServerTool.TYPE_UPLOADEDFILE;
+import static org.ourproject.kune.wiki.server.WikiServerTool.TYPE_WIKIPAGE;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class WikiServerToolTest { // extends PersistenceTest {
+
+ private WikiServerTool serverTool;
+
+ @Before
+ public void before() {
+ serverTool = new WikiServerTool(null, null, null, null);
+ }
+
+ @Test
+ public void testCreateContainerInCorrectContainer() {
+ serverTool.checkContainerTypeId(TYPE_ROOT, TYPE_FOLDER);
+ serverTool.checkContainerTypeId(TYPE_FOLDER, TYPE_FOLDER);
+ }
+
+ @Test
+ public void testCreateContentInCorrectContainer() {
+ serverTool.checkContentTypeId(TYPE_ROOT, TYPE_WIKIPAGE);
+ serverTool.checkContentTypeId(TYPE_ROOT, TYPE_UPLOADEDFILE);
+ serverTool.checkContentTypeId(TYPE_FOLDER, TYPE_WIKIPAGE);
+ serverTool.checkContentTypeId(TYPE_FOLDER, TYPE_UPLOADEDFILE);
+ }
+
+}
\ No newline at end of file
1
0
Author: vjrj
Date: 2008-11-26 14:41:04 +0100 (Wed, 26 Nov 2008)
New Revision: 970
Added:
trunk/HOWTO_ADD_A_NEW_TOOL
trunk/src/main/java/org/ourproject/kune/gallery/
trunk/src/main/java/org/ourproject/kune/gallery/Kune-Gallery.gwt.xml
trunk/src/main/java/org/ourproject/kune/gallery/client/
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java
trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/
trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContent.java
trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java
trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPresenter.java
trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentView.java
trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewer.java
trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPanel.java
trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerView.java
trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/
trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContext.java
trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContextPresenter.java
trunk/src/main/java/org/ourproject/kune/gallery/public/
trunk/src/main/java/org/ourproject/kune/gallery/server/
trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerModule.java
trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerTool.java
Modified:
trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java
trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java
trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java
trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileParams.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/AbstractUploader.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/server/manager/file/EntityLogoUploadManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerAbstract.java
trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java
trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java
trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java
trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/upload/FileUploaderPresenterTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerTest.java
Log:
Gallery new tool.
Incomplete - task UI tools & workspace refactorization
Added: trunk/HOWTO_ADD_A_NEW_TOOL
===================================================================
--- trunk/HOWTO_ADD_A_NEW_TOOL 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/HOWTO_ADD_A_NEW_TOOL 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,32 @@
+Here we try to describe a easy way to add a new Tool of type "Foldeable", that is, a tool with a folder/files structure. For other kind of tools (like, for instance a rich Web Calendar tool), better start from scratch creating the NewTool{ClientTool|ClientActions|ServerTool} classes and implementing the specific functionality.
+
+The stpes (substitute 'wiki' and 'Wiki' for the new tool name):
+
+cd src/main/java/org/ourproject/kune/
+rsync -r -C docs/ wiki
+cd wiki/
+find . -name '*.java' | xargs rename 's/Document/Wiki/g'
+find . -name '*.java' | xargs rename 's/Docs/Wiki/g'
+find . -name '*.java' | xargs rename 's/Doc/Wiki/g'
+find . -name '*.xml' | xargs rename 's/Docs/Wiki/g'
+find . -name *java | xargs perl -p -i -e 's/Documents/Wiki/g'
+find . -name *java | xargs perl -p -i -e 's/Document/Wiki/g'
+find . -name *java | xargs perl -p -i -e 's/Docs/Wiki/g'
+find . -name *java | xargs perl -p -i -e 's/Doc/Wiki/g'
+find . -name *java | xargs perl -p -i -e 's/\.docs\./\.wiki\./g'
+find . -name *java | xargs perl -p -i -e 's/documents/wiki/g'
+find . -name *java | xargs perl -p -i -e 's/docs/wiki/g'
+
+Edit WikiClientTool and WikiServerTool and WikiClientActions with the specific actions and types the tool will have.
+
+Add
+ <inherits name='org.ourproject.kune.wiki.Kune-Wiki' />
+to Kune.gwt.xml
+
+Add
+ builder.use(new WikiServerModule());
+to KuneRackModule.java.
+
+Add the WikiClientModule to KuneEntryPoint.
+
+
Modified: trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2008-11-26 13:41:04 UTC (rev 970)
@@ -16,6 +16,7 @@
<inherits name='org.ourproject.kune.blogs.Kune-Blogs' />
<inherits name='org.ourproject.kune.wiki.Kune-Wiki' />
<inherits name='org.ourproject.kune.chat.Kune-Chat' />
+ <inherits name='org.ourproject.kune.gallery.Kune-Gallery' />
<!-- gwt-ext -->
<inherits name='com.gwtext.GwtExt' />
Modified: trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -22,6 +22,7 @@
import org.ourproject.kune.blogs.client.BlogClientModule;
import org.ourproject.kune.chat.client.ChatClientModule;
import org.ourproject.kune.docs.client.DocumentClientModule;
+import org.ourproject.kune.gallery.client.GalleryClientModule;
import org.ourproject.kune.platf.client.services.KuneCoreModule;
import org.ourproject.kune.platf.client.services.KuneModule;
import org.ourproject.kune.platf.client.services.KunePlatformModule;
@@ -57,6 +58,6 @@
public void onModuleLoadCont() {
Suco.install(new KuneCoreModule(), new KuneRegistryModule(), new KunePlatformModule(),
new KuneWorkspaceModule(), new EmiteUIModule(), new DocumentClientModule(), new BlogClientModule(),
- new WikiClientModule(), new ChatClientModule(), new KuneModule());
+ new WikiClientModule(), new ChatClientModule(), new GalleryClientModule(), new KuneModule());
}
}
Modified: trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -22,6 +22,7 @@
import org.ourproject.kune.blogs.server.BlogServerModule;
import org.ourproject.kune.chat.server.ChatServerModule;
import org.ourproject.kune.docs.server.DocumentServerModule;
+import org.ourproject.kune.gallery.server.GalleryServerModule;
import org.ourproject.kune.platf.client.rpc.ContentService;
import org.ourproject.kune.platf.client.rpc.GroupService;
import org.ourproject.kune.platf.client.rpc.I18nService;
@@ -114,6 +115,7 @@
builder.use(new BlogServerModule());
builder.use(new WikiServerModule());
builder.use(new ChatServerModule());
+ builder.use(new GalleryServerModule());
builder.use(new RESTServicesModule());
builder.use(configModule);
}
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -27,11 +27,11 @@
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
public class BlogClientTool extends FoldableAbstractClientTool {
- public static final String TYPE_ROOT = "blogs.root";
- public static final String TYPE_BLOG = "blogs.blog";
- public static final String TYPE_POST = "blogs.post";
- public static final String TYPE_UPLOADEDFILE = "blogs.uploaded";
public static final String NAME = "blogs";
+ public static final String TYPE_ROOT = NAME + "." + "root";
+ public static final String TYPE_BLOG = NAME + "." + "blog";
+ public static final String TYPE_POST = NAME + "." + "post";
+ public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
public BlogClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -20,7 +20,6 @@
package org.ourproject.kune.blogs.client.cnt;
import org.ourproject.kune.blogs.client.BlogClientTool;
-import org.ourproject.kune.chat.client.ChatClientTool;
import org.ourproject.kune.platf.client.actions.ActionRegistry;
import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
import org.ourproject.kune.platf.client.dto.StateContainerDTO;
@@ -48,7 +47,7 @@
@Override
protected void setState(StateContainerDTO state) {
- if (state.getTypeId().equals(ChatClientTool.TYPE_ROOT)) {
+ if (state.getTypeId().equals(BlogClientTool.TYPE_ROOT)) {
if (state.getRootContainer().getChilds().size() == 0) {
view.setInfo(i18n.t("This group has no blogs."));
} else {
Modified: trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -39,12 +39,12 @@
import com.google.inject.Inject;
public class BlogServerTool implements ServerTool {
- public static final String TYPE_ROOT = "blogs.root";
- public static final String TYPE_BLOG = "blogs.blog";
- public static final String TYPE_POST = "blogs.post";
- public static final String TYPE_UPLOADEDFILE = "blogs.uploaded";
+ public static final String NAME = "blogs";
+ public static final String TYPE_ROOT = NAME + "." + "root";
+ public static final String TYPE_BLOG = NAME + "." + "blog";
+ public static final String TYPE_POST = NAME + "." + "post";
+ public static final String TYPE_UPLOADEDFILE = NAME + "." + ServerTool.UPLOADEDFILE_SUFFIX;
- public static final String NAME = "blogs";
public static final String ROOT_NAME = "blogs";
private final ContentManager contentManager;
@@ -92,14 +92,14 @@
final Container blog = containerManager.createFolder(group, rootFolder, i18n.t("Blog sample"), language,
TYPE_BLOG);
- final Content descriptor = contentManager.createContent(i18n.t("A post sample"), "", user, blog,
+ final Content content = contentManager.createContent(i18n.t("A post sample"), "", user, blog,
BlogServerTool.TYPE_POST);
- descriptor.addAuthor(user);
- descriptor.setLanguage(language);
- descriptor.setTypeId(TYPE_POST);
- descriptor.setStatus(ContentStatus.publishedOnline);
+ content.addAuthor(user);
+ content.setLanguage(language);
+ content.setTypeId(TYPE_POST);
+ content.setStatus(ContentStatus.publishedOnline);
- contentManager.save(user, descriptor,
+ contentManager.save(user, content,
i18n.t("This is only a post sample. You can edit it, and rename this post and this blog"));
return group;
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -27,12 +27,12 @@
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
public class DocumentClientTool extends FoldableAbstractClientTool {
- public static final String TYPE_ROOT = "docs.root";
- public static final String TYPE_FOLDER = "docs.folder";
- public static final String TYPE_DOCUMENT = "docs.doc";
- public static final String TYPE_GALLERY = "docs.gallery";
- public static final String TYPE_UPLOADEDFILE = "docs.uploaded";
public static final String NAME = "docs";
+ public static final String TYPE_ROOT = NAME + "." + "root";
+ public static final String TYPE_FOLDER = NAME + "." + "folder";
+ public static final String TYPE_DOCUMENT = NAME + "." + "doc";
+ public static final String TYPE_GALLERY = NAME + "." + "gallery";
+ public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
public DocumentClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
Modified: trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -19,6 +19,8 @@
*/
package org.ourproject.kune.docs.server;
+import java.util.Date;
+
import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException;
import org.ourproject.kune.platf.client.errors.ContentNotPermittedException;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
@@ -40,17 +42,18 @@
import com.google.inject.Inject;
public class DocumentServerTool implements ServerTool {
- public static final String TYPE_ROOT = "docs.root";
- public static final String TYPE_FOLDER = "docs.folder";
- public static final String TYPE_DOCUMENT = "docs.doc";
- public static final String TYPE_GALLERY = "docs.gallery";
+ public static final String NAME = "docs";
+ public static final String TYPE_ROOT = NAME + "." + "root";
+ public static final String TYPE_FOLDER = NAME + "." + "folder";
+ public static final String TYPE_DOCUMENT = NAME + "." + "doc";
+ public static final String TYPE_GALLERY = NAME + "." + "gallery";
+ public static final String TYPE_UPLOADEDFILE = NAME + "." + ServerTool.UPLOADEDFILE_SUFFIX;
+
public static final String TYPE_BLOG = "docs.blog";
public static final String TYPE_POST = "docs.post";
public static final String TYPE_WIKI = "docs.wiki";
public static final String TYPE_WIKIPAGE = "docs.wikipage";
- public static final String TYPE_UPLOADEDFILE = "docs.uploaded";
- public static final String NAME = "docs";
public static final String ROOT_NAME = "documents";
private final ContentManager contentManager;
@@ -94,13 +97,14 @@
group.setToolConfig(NAME, config);
configurationManager.persist(config);
final String longName = group.getLongName();
- final Content descriptor = contentManager.createContent(i18n.t("About [%s]", longName), "", user, rootFolder,
+ final Content content = contentManager.createContent(i18n.t("About [%s]", longName), "", user, rootFolder,
DocumentServerTool.TYPE_DOCUMENT);
- descriptor.addAuthor(user);
- descriptor.setLanguage(user.getLanguage());
- descriptor.setTypeId(TYPE_DOCUMENT);
- descriptor.setStatus(ContentStatus.publishedOnline);
- group.setDefaultContent(descriptor);
+ content.addAuthor(user);
+ content.setLanguage(user.getLanguage());
+ content.setTypeId(TYPE_DOCUMENT);
+ content.setStatus(ContentStatus.publishedOnline);
+ content.setPublishedOn(new Date());
+ group.setDefaultContent(content);
return group;
}
Added: trunk/src/main/java/org/ourproject/kune/gallery/Kune-Gallery.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/Kune-Gallery.gwt.xml 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/Kune-Gallery.gwt.xml 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,5 @@
+<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<module>
+ <inherits name='org.ourproject.kune.platf.Kune-Platform' />
+ <inherits name='org.ourproject.kune.workspace.Kune-Workspace' />
+</module>
Added: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,109 @@
+/*
+ *
+ * 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.gallery.client;
+
+import static org.ourproject.kune.gallery.client.GalleryClientTool.TYPE_ALBUM;
+import static org.ourproject.kune.gallery.client.GalleryClientTool.TYPE_ROOT;
+import static org.ourproject.kune.gallery.client.GalleryClientTool.TYPE_UPLOADEDFILE;
+
+import org.ourproject.kune.gallery.client.cnt.GalleryViewer;
+import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
+import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
+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.platf.client.utils.DeferredCommandWrapper;
+import org.ourproject.kune.workspace.client.AbstractFoldableContentActions;
+import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
+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 com.calclab.suco.client.ioc.Provider;
+
+public class GalleryClientActions extends AbstractFoldableContentActions {
+ public GalleryClientActions(final I18nUITranslationService i18n, final ContextNavigator contextNavigator,
+ final Session session, final StateManager stateManager,
+ final DeferredCommandWrapper deferredCommandWrapper,
+ 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<TextEditor> textEditorProvider, final KuneErrorHandler errorHandler,
+ final GalleryViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider) {
+ super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
+ contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
+ contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
+ documentViewer, entityLogo);
+ }
+
+ @Override
+ protected void createActions() {
+ final String[] all = { TYPE_ROOT, TYPE_ALBUM, TYPE_UPLOADEDFILE };
+ final String[] containers = { TYPE_ROOT, TYPE_ALBUM };
+ final String[] contentsModerated = { TYPE_UPLOADEDFILE };
+ final String[] containersNoRoot = { TYPE_ALBUM };
+ final String[] contents = { TYPE_UPLOADEDFILE };
+
+ String parentMenuTitle = i18n.t("File");
+ String parentMenuTitleCtx = i18n.t("Album");
+
+ createNewContainerAction(TYPE_ALBUM, "images/nav/gallery_add.png", i18n.t("New sub-album"), parentMenuTitleCtx,
+ i18n.t("New"), i18n.t("New sub-album"), Position.ctx, TYPE_ALBUM);
+ createNewContainerAction(TYPE_ALBUM, "images/nav/gallery_add.png", i18n.t("New album"), parentMenuTitleCtx,
+ i18n.t("New"), i18n.t("New album"), Position.ctx, TYPE_ROOT);
+
+ createContentModeratedActions(parentMenuTitle, contentsModerated);
+
+ createContentRenameAction(parentMenuTitle, i18n.t("Rename"), contents);
+ createRenameContentInCtxAction(parentMenuTitleCtx, i18n.t("Rename"), containersNoRoot);
+
+ // final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCxt =
+ // createSetAsDefContent(parentMenuTitleCtx);
+
+ createRefreshCntAction(parentMenuTitle, contents);
+ createRefreshCxtAction(parentMenuTitleCtx, containers);
+
+ createSetAsDefContent(parentMenuTitle, contents);
+
+ // createUploadAction(i18n.t("Upload file"), "images/nav/upload.png",
+ // i18n.t("Upload some files (images, PDFs, ...)"), null, containers);
+
+ createDownloadActions(TYPE_UPLOADEDFILE);
+
+ createGoAction(all);
+
+ createGoHomeAction(containers);
+
+ createTranslateAction(TYPE_ALBUM, TYPE_UPLOADEDFILE);
+
+ createDelContainerAction("Delete folder", parentMenuTitleCtx, containersNoRoot);
+ createDelContentAction(parentMenuTitle, i18n.t("Delete"), contents);
+ }
+
+ @Override
+ protected void createPostSessionInitActions() {
+ super.createUploadMediaAction(TYPE_ALBUM);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,119 @@
+/*
+ *
+ * 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.gallery.client;
+
+import org.ourproject.kune.gallery.client.cnt.GalleryFolderContent;
+import org.ourproject.kune.gallery.client.cnt.GalleryFolderContentPanel;
+import org.ourproject.kune.gallery.client.cnt.GalleryFolderContentPresenter;
+import org.ourproject.kune.gallery.client.cnt.GalleryFolderContentView;
+import org.ourproject.kune.gallery.client.cnt.GalleryViewer;
+import org.ourproject.kune.gallery.client.cnt.GalleryViewerPanel;
+import org.ourproject.kune.gallery.client.cnt.GalleryViewerPresenter;
+import org.ourproject.kune.gallery.client.cnt.GalleryViewerView;
+import org.ourproject.kune.gallery.client.ctx.GalleryContext;
+import org.ourproject.kune.gallery.client.ctx.GalleryContextPresenter;
+import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
+import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
+import org.ourproject.kune.platf.client.app.ToolGroup;
+import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
+import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.tool.ToolSelector;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
+import org.ourproject.kune.platf.client.ui.upload.FileUploader;
+import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper;
+import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
+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.themes.WsThemePresenter;
+
+import com.calclab.suco.client.ioc.decorator.Singleton;
+import com.calclab.suco.client.ioc.module.AbstractModule;
+import com.calclab.suco.client.ioc.module.Factory;
+
+public class GalleryClientModule extends AbstractModule {
+
+ @Override
+ public void onInstall() {
+
+ register(ToolGroup.class, new Factory<GalleryClientTool>(GalleryClientTool.class) {
+ @Override
+ public GalleryClientTool create() {
+ $(GalleryClientActions.class);
+ return new GalleryClientTool($(I18nUITranslationService.class), $(ToolSelector.class),
+ $(WsThemePresenter.class), $(WorkspaceSkeleton.class), $(ContentCapabilitiesRegistry.class));
+ }
+ });
+
+ register(ToolGroup.class, new Factory<GalleryClientActions>(GalleryClientActions.class) {
+ @Override
+ public GalleryClientActions create() {
+ return new GalleryClientActions($(I18nUITranslationService.class), $(ContextNavigator.class),
+ $(Session.class), $(StateManager.class), $(DeferredCommandWrapper.class),
+ $$(ContentServiceAsync.class), $$(GroupServiceAsync.class), $$(FileUploader.class),
+ $(ContentActionRegistry.class), $(ContextActionRegistry.class), $$(FileDownloadUtils.class),
+ $(EntityLogo.class), $$(TextEditor.class), $(KuneErrorHandler.class), $(GalleryViewer.class),
+ $$(ContextPropEditor.class));
+ }
+ });
+
+ register(ToolGroup.class, new Factory<GalleryContext>(GalleryContext.class) {
+ @Override
+ public GalleryContext create() {
+ final GalleryContextPresenter presenter = new GalleryContextPresenter($(StateManager.class),
+ $$(ContextNavigator.class), $$(ContextPropEditor.class));
+ return presenter;
+ }
+ });
+
+ register(Singleton.class, new Factory<GalleryViewer>(GalleryViewer.class) {
+ @Override
+ public GalleryViewer create() {
+ final GalleryViewerPresenter presenter = new GalleryViewerPresenter($(StateManager.class),
+ $(Session.class), $(I18nUITranslationService.class), $(ActionContentToolbar.class),
+ $(ContentActionRegistry.class), $$(FileDownloadUtils.class));
+ final GalleryViewerView view = new GalleryViewerPanel($(WorkspaceSkeleton.class),
+ $(I18nTranslationService.class));
+ presenter.init(view);
+ return presenter;
+ }
+ });
+
+ register(ToolGroup.class, new Factory<GalleryFolderContent>(GalleryFolderContent.class) {
+ @Override
+ public GalleryFolderContent create() {
+ final GalleryFolderContentPresenter presenter = new GalleryFolderContentPresenter(
+ $(StateManager.class), $(Session.class), $(ActionContentToolbar.class),
+ $(ContentActionRegistry.class), $(I18nTranslationService.class));
+ final GalleryFolderContentView view = new GalleryFolderContentPanel($(WorkspaceSkeleton.class),
+ $(I18nTranslationService.class));
+ presenter.init(view);
+ return presenter;
+ }
+ });
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,62 @@
+/*
+ *
+ * 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.gallery.client;
+
+import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
+import org.ourproject.kune.platf.client.tool.FoldableAbstractClientTool;
+import org.ourproject.kune.platf.client.tool.ToolSelector;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+
+public class GalleryClientTool extends FoldableAbstractClientTool {
+ public static final String NAME = "gallery";
+ public static final String TYPE_ROOT = NAME + "." + "root";
+ public static final String TYPE_ALBUM = NAME + "." + "album";
+ public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
+
+ public GalleryClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
+ final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
+ ContentCapabilitiesRegistry contentCapabilitiesRegistry) {
+ super(NAME, i18n.t("gallery"), toolSelector, wsThemePresenter, ws, contentCapabilitiesRegistry);
+
+ // registerAclEditableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
+ registerAuthorableTypes(TYPE_UPLOADEDFILE);
+ registerDragableTypes(TYPE_ALBUM, TYPE_UPLOADEDFILE);
+ registerDropableTypes(TYPE_ROOT, TYPE_ALBUM);
+ registerPublishModerableTypes(TYPE_UPLOADEDFILE);
+ registerRateableTypes(TYPE_UPLOADEDFILE);
+ registerRenamableTypes(TYPE_ALBUM, TYPE_UPLOADEDFILE);
+ registerTageableTypes(TYPE_UPLOADEDFILE);
+ registerTranslatableTypes(TYPE_ALBUM, TYPE_UPLOADEDFILE);
+
+ registerIcons();
+ }
+
+ public String getName() {
+ return NAME;
+ }
+
+ protected void registerIcons() {
+ registerContentTypeIcon(TYPE_ALBUM, "images/nav/gallery.png");
+ registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContent.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContent.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContent.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,23 @@
+/*
+ *
+ * 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.gallery.client.cnt;
+
+public interface GalleryFolderContent {
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPanel.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,33 @@
+/*
+ *
+ * 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.gallery.client.cnt;
+
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.workspace.client.cnt.FoldableContentPanel;
+import org.ourproject.kune.workspace.client.site.Site;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+public class GalleryFolderContentPanel extends FoldableContentPanel implements GalleryFolderContentView {
+
+ public GalleryFolderContentPanel(WorkspaceSkeleton ws, I18nTranslationService i18n) {
+ super(ws, i18n);
+ super.setLabel("Folder properties, translations ..." + Site.IN_DEVELOPMENT);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPresenter.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentPresenter.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,63 @@
+/*
+ *
+ * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.gallery.client.cnt;
+
+import org.ourproject.kune.gallery.client.GalleryClientTool;
+import org.ourproject.kune.platf.client.actions.ActionRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
+import org.ourproject.kune.platf.client.dto.ContainerDTO;
+import org.ourproject.kune.platf.client.dto.StateContainerDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
+
+public class GalleryFolderContentPresenter extends FoldableContentPresenter implements GalleryFolderContent {
+
+ private GalleryFolderContentView view;
+ private final I18nTranslationService i18n;
+
+ public GalleryFolderContentPresenter(StateManager stateManager, Session session, ActionContentToolbar toolbar,
+ final ActionRegistry<StateToken> actionRegistry, I18nTranslationService i18n) {
+ super(GalleryClientTool.NAME, stateManager, session, toolbar, actionRegistry);
+ this.i18n = i18n;
+ }
+
+ public void init(final GalleryFolderContentView view) {
+ super.init(view);
+ this.view = view;
+ }
+
+ @Override
+ protected void setState(StateContainerDTO state) {
+ if (state.getTypeId().equals(GalleryClientTool.TYPE_ROOT)) {
+ ContainerDTO rootContainer = state.getRootContainer();
+ if (rootContainer.getChilds().size() == 0 && rootContainer.getContents().size() == 0) {
+ view.setInfo(i18n.t("This gallery has no content"));
+ } else {
+ view.setInfo("");
+ }
+ } else {
+ view.setInfo("");
+ }
+ super.setState(state);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentView.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryFolderContentView.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,25 @@
+/*
+ *
+ * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.gallery.client.cnt;
+
+import org.ourproject.kune.workspace.client.cnt.AbstractContentView;
+
+public interface GalleryFolderContentView extends AbstractContentView {
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewer.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewer.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewer.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,25 @@
+/*
+ *
+ * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.gallery.client.cnt;
+
+import org.ourproject.kune.workspace.client.cnt.FoldableContent;
+
+public interface GalleryViewer extends FoldableContent {
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPanel.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPanel.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,30 @@
+/*
+ *
+ * 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.gallery.client.cnt;
+
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.workspace.client.cnt.FoldableContentPanel;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+public class GalleryViewerPanel extends FoldableContentPanel implements GalleryViewerView {
+ public GalleryViewerPanel(final WorkspaceSkeleton ws, I18nTranslationService i18n) {
+ super(ws, i18n);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,83 @@
+/*
+ *
+ * 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.gallery.client.cnt;
+
+import org.ourproject.kune.gallery.client.GalleryClientTool;
+import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
+import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
+import org.ourproject.kune.platf.client.dto.StateContentDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+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.download.ImageSize;
+import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+
+import com.calclab.suco.client.ioc.Provider;
+
+public class GalleryViewerPresenter extends FoldableContentPresenter implements GalleryViewer {
+ private GalleryViewerView view;
+ private final Provider<FileDownloadUtils> downloadProvider;
+
+ public GalleryViewerPresenter(StateManager stateManager, Session session, I18nUITranslationService i18n,
+ ActionContentToolbar toolbar, ContentActionRegistry actionRegistry,
+ Provider<FileDownloadUtils> downloadProvider) {
+ super(GalleryClientTool.NAME, stateManager, session, toolbar, actionRegistry);
+ this.downloadProvider = downloadProvider;
+ }
+
+ public void init(GalleryViewerView view) {
+ super.init(view);
+ this.view = view;
+ }
+
+ @Override
+ protected void setState(StateContentDTO state) {
+ super.setState(state);
+ setContent(state, GalleryClientTool.TYPE_UPLOADEDFILE);
+ }
+
+ private void setContent(StateContentDTO state, String uploadedfileType) {
+ String typeId = state.getTypeId();
+ String contentBody = state.getContent();
+ StateToken token = state.getStateToken();
+ BasicMimeTypeDTO mimeType = state.getMimeType();
+ if (typeId.equals(uploadedfileType)) {
+ if (mimeType != null) {
+ FileDownloadUtils fileDownloadUtils = downloadProvider.get();
+ if (mimeType.getType().equals("image")) {
+ view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token,
+ ImageSize.sized));
+ } else if (mimeType.toString().equals("text/plain") || mimeType.toString().equals("application/pdf")) {
+ view.setContent(contentBody);
+ } else {
+ view.setContent("");
+ }
+ } else {
+ view.setContent("");
+ }
+ } else {
+ view.setContent(contentBody);
+ }
+ view.attach();
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerView.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerView.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,30 @@
+/*
+ *
+ * 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.gallery.client.cnt;
+
+import org.ourproject.kune.workspace.client.cnt.AbstractContentView;
+
+public interface GalleryViewerView extends AbstractContentView {
+
+ void setContent(String content);
+
+ void showImage(String imageUrl, String imageResizedUrl);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContext.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContext.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContext.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,24 @@
+/*
+ *
+ * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.gallery.client.ctx;
+
+public interface GalleryContext {
+
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContextPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContextPresenter.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/ctx/GalleryContextPresenter.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,36 @@
+/*
+ *
+ * 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.gallery.client.ctx;
+
+import org.ourproject.kune.gallery.client.GalleryClientTool;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
+import org.ourproject.kune.workspace.client.cxt.FoldableContextPresenter;
+
+import com.calclab.suco.client.ioc.Provider;
+
+public class GalleryContextPresenter extends FoldableContextPresenter implements GalleryContext {
+ public GalleryContextPresenter(final StateManager stateManager,
+ final Provider<ContextNavigator> contextNavigatorProvider,
+ final Provider<ContextPropEditor> contextPropEditorProvider) {
+ super(GalleryClientTool.NAME, stateManager, contextNavigatorProvider, contextPropEditorProvider);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerModule.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerModule.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,29 @@
+/*
+ *
+ * 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.gallery.server;
+
+import com.google.inject.Binder;
+import com.google.inject.Module;
+
+public class GalleryServerModule implements Module {
+ public void configure(final Binder binder) {
+ binder.bind(GalleryServerTool.class).asEagerSingleton();
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerTool.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/gallery/server/GalleryServerTool.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -0,0 +1,125 @@
+/*
+ *
+ * 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.gallery.server;
+
+import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException;
+import org.ourproject.kune.platf.client.errors.ContentNotPermittedException;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.server.content.ContainerManager;
+import org.ourproject.kune.platf.server.domain.Container;
+import org.ourproject.kune.platf.server.domain.Content;
+import org.ourproject.kune.platf.server.domain.Group;
+import org.ourproject.kune.platf.server.domain.ToolConfiguration;
+import org.ourproject.kune.platf.server.domain.User;
+import org.ourproject.kune.platf.server.manager.ToolConfigurationManager;
+import org.ourproject.kune.platf.server.tool.ServerTool;
+import org.ourproject.kune.platf.server.tool.ServerToolRegistry;
+import org.ourproject.kune.platf.server.tool.ServerToolTarget;
+
+import com.google.inject.Inject;
+
+public class GalleryServerTool implements ServerTool {
+ public static final String NAME = "gallery";
+ public static final String TYPE_ROOT = NAME + "." + "root";
+ public static final String TYPE_ALBUM = NAME + "." + "album";
+ public static final String TYPE_UPLOADEDFILE = NAME + "." + ServerTool.UPLOADEDFILE_SUFFIX;
+
+ public static final String ROOT_NAME = "gallery";
+
+ private final ToolConfigurationManager configurationManager;
+ private final ContainerManager containerManager;
+ private final I18nTranslationService i18n;
+
+ @Inject
+ public GalleryServerTool(final ContainerManager containerManager,
+ final ToolConfigurationManager configurationManager, final I18nTranslationService translationService) {
+ this.containerManager = containerManager;
+ this.configurationManager = configurationManager;
+ this.i18n = translationService;
+ }
+
+ public void checkTypesBeforeContainerCreation(String parentTypeId, String typeId) {
+ checkContainerTypeId(parentTypeId, typeId);
+ }
+
+ public void checkTypesBeforeContentCreation(String parentTypeId, String typeId) {
+ checkContentTypeId(parentTypeId, typeId);
+ }
+
+ public String getName() {
+ return NAME;
+ }
+
+ public String getRootName() {
+ return ROOT_NAME;
+ }
+
+ public ServerToolTarget getTarget() {
+ return ServerToolTarget.forBoth;
+ }
+
+ public Group initGroup(final User user, final Group group) {
+ final ToolConfiguration config = new ToolConfiguration();
+ final Container rootFolder = containerManager.createRootFolder(group, NAME, ROOT_NAME, TYPE_ROOT);
+ config.setRoot(rootFolder);
+ group.setToolConfig(NAME, config);
+ configurationManager.persist(config);
+
+ containerManager.createFolder(group, rootFolder, i18n.t("Album sample"), user.getLanguage(), TYPE_ALBUM);
+ return group;
+ }
+
+ public void onCreateContainer(final Container container, final Container parent) {
+ }
+
+ public void onCreateContent(final Content content, final Container parent) {
+ }
+
+ @Inject
+ public void register(final ServerToolRegistry registry) {
+ registry.register(this);
+ }
+
+ void checkContainerTypeId(final String parentTypeId, final String typeId) {
+ if (typeId.equals(TYPE_ALBUM)) {
+ // ok valid container
+ if ((typeId.equals(TYPE_ALBUM) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_ALBUM)))) {
+ // ok
+ } else {
+ throw new ContainerNotPermittedException();
+ }
+ } else {
+ throw new ContainerNotPermittedException();
+ }
+ }
+
+ void checkContentTypeId(final String parentTypeId, final String typeId) {
+ if (typeId.equals(TYPE_UPLOADEDFILE)) {
+ // ok valid content
+ if (typeId.equals(TYPE_UPLOADEDFILE) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_ALBUM))) {
+ // ok
+ } else {
+ throw new ContentNotPermittedException();
+ }
+ } else {
+ throw new ContentNotPermittedException();
+ }
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -6,6 +6,8 @@
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
public abstract class FoldableAbstractClientTool extends AbstractClientTool {
+ public static final String UPLOADEDFILE_SUFFIX = "uploaded";
+
protected final ContentCapabilitiesRegistry contentCapabilitiesRegistry;
public FoldableAbstractClientTool(String shortName, String longName, ToolSelector toolSelector,
@@ -71,18 +73,6 @@
contentCapabilitiesRegistry.getTranslatable().register(typeIds);
}
- protected void registerVersionableTypes(String... typeIds) {
- contentCapabilitiesRegistry.getVersionable().register(typeIds);
- }
-
- protected void registerXmppComentableTypes(String... typeIds) {
- contentCapabilitiesRegistry.getXmppComentable().register(typeIds);
- }
-
- protected void registerXmppNotifyCapableTypes(String... typeIds) {
- contentCapabilitiesRegistry.getXmppNotificyCapable().register(typeIds);
- }
-
protected void registerUploadTypesAndMimes(String typeUploadedfile) {
registerContentTypeIcon(typeUploadedfile, new BasicMimeTypeDTO("image"), "images/nav/picture.png");
registerContentTypeIcon(typeUploadedfile, new BasicMimeTypeDTO("video"), "images/nav/film.png");
@@ -98,4 +88,16 @@
"images/nav/page_pps.png");
registerContentTypeIcon(typeUploadedfile, "images/nav/page.png");
}
+
+ protected void registerVersionableTypes(String... typeIds) {
+ contentCapabilitiesRegistry.getVersionable().register(typeIds);
+ }
+
+ protected void registerXmppComentableTypes(String... typeIds) {
+ contentCapabilitiesRegistry.getXmppComentable().register(typeIds);
+ }
+
+ protected void registerXmppNotifyCapableTypes(String... typeIds) {
+ contentCapabilitiesRegistry.getXmppNotificyCapable().register(typeIds);
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileParams.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileParams.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileParams.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -24,4 +24,5 @@
String DOWNLOAD = "download";
String IMGSIZE = "imgsize";
String FILENAME = "filename";
+ String TYPE_ID = "typeid";
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/AbstractUploader.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/AbstractUploader.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/AbstractUploader.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -24,11 +24,12 @@
public class AbstractUploader {
- public UrlParam[] genUploadParams(final String userhash, final String currentStateToken) {
+ public UrlParam[] genUploadParams(final String userhash, final String currentStateToken, final String typeId) {
// Warning take into account param[size]
- final UrlParam param[] = new UrlParam[2];
+ final UrlParam param[] = new UrlParam[3];
param[0] = new UrlParam(FileParams.HASH, userhash);
param[1] = new UrlParam(FileParams.TOKEN, currentStateToken);
+ param[2] = new UrlParam(FileParams.TYPE_ID, typeId);
return param;
}
}
Modified: 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-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderDialog.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -92,8 +92,8 @@
setPermittedExtensions(exts);
}
- public void setUploadParams(final String userhash, final String currentStateToken) {
- dialog.setBaseParams(genUploadParams(userhash, currentStateToken));
+ public void setUploadParams(final String userhash, final String currentStateToken, final String typeId) {
+ dialog.setBaseParams(genUploadParams(userhash, currentStateToken, typeId));
}
public void show() {
Modified: 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-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderPresenter.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -20,6 +20,7 @@
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.tool.FoldableAbstractClientTool;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import com.calclab.suco.client.ioc.Provider;
@@ -40,14 +41,16 @@
public boolean checkFolderChange() {
final StateToken currentFolderStateToken = session.getCurrentStateToken().clone().clearDocument();
if (sameContainer()) {
- view.setUploadParams(session.getUserHash(), currentFolderStateToken.toString());
+ view.setUploadParams(session.getUserHash(), currentFolderStateToken.toString(),
+ currentFolderStateToken.getTool() + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX);
return true;
}
if (view.hasUploadingFiles()) {
return false;
} else {
currentUploadStateToken = currentFolderStateToken;
- view.setUploadParams(session.getUserHash(), currentFolderStateToken.toString());
+ view.setUploadParams(session.getUserHash(), currentFolderStateToken.toString(),
+ currentFolderStateToken.getTool() + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX);
return true;
}
}
Modified: 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-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/upload/FileUploaderView.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -30,7 +30,7 @@
void setPermittedExtensions(String extensions);
- void setUploadParams(String userhash, String currentUploadStateToken);
+ void setUploadParams(String userhash, String currentUploadStateToken, String typeId);
void show();
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -90,8 +90,8 @@
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
@Transactional(type = TransactionType.READ_WRITE)
- protected void createUploadedFile(String userHash, StateToken stateToken, String fileName, FileItem file)
- throws Exception {
+ protected void createUploadedFile(String userHash, StateToken stateToken, String fileName, FileItem file,
+ String typeId) throws Exception {
String mimeTypeS = file.getContentType();
File tmpOrigFile = File.createTempFile("logoOrig", "");
file.write(tmpOrigFile);
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManager.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -25,7 +25,6 @@
import net.sf.json.JSONObject;
import org.apache.commons.fileupload.FileItem;
-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.download.ImageSize;
@@ -92,16 +91,16 @@
}
@Override
- protected void createUploadedFile(String userHash, StateToken stateToken, String fileName, FileItem file)
- throws Exception {
- createUploadedFileWrapped(userHash, stateToken, fileName, file);
+ protected void createUploadedFile(String userHash, StateToken stateToken, String fileName, FileItem file,
+ String typeId) throws Exception {
+ createUploadedFileWrapped(userHash, stateToken, fileName, file, typeId);
}
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Editor, actionLevel = ActionLevel.container)
@Transactional(type = TransactionType.READ_WRITE)
Content createUploadedFileWrapped(final String userHash, final StateToken stateToken, final String fileName,
- final FileItem fileUploadItem) throws Exception {
+ final FileItem fileUploadItem, String typeId) throws Exception {
final String relDir = FileUtils.toDir(stateToken);
final String absDir = kuneProperties.get(KuneProperties.UPLOAD_LOCATION) + relDir;
fileManager.mkdir(absDir);
@@ -127,7 +126,7 @@
user, AccessRol.Editor);
final String preview = "Preview of this file (in development)";
final Content content = contentManager.createContent(FileUtils.getFileNameWithoutExtension(file.getName(),
- extension), preview, user, container, DocumentServerTool.TYPE_UPLOADEDFILE);
+ extension), preview, user, container, typeId);
content.setMimeType(basicMimeType);
content.setFilename(file.getName());
return content;
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerAbstract.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerAbstract.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerAbstract.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -59,8 +59,8 @@
protected void beforeRespond(final HttpServletResponse response, final Writer w) throws IOException {
}
- protected void createUploadedFile(String userHash, StateToken stateToken, String fileName, FileItem file)
- throws Exception {
+ protected void createUploadedFile(String userHash, StateToken stateToken, String fileName, FileItem file,
+ String typeId) throws Exception {
}
@Override
@@ -88,6 +88,7 @@
final List fileItems = upload.parseRequest(req);
String userHash = null;
StateToken stateToken = null;
+ String typeId = null;
String fileName = null;
FileItem file = null;
for (final Iterator iterator = fileItems.iterator(); iterator.hasNext();) {
@@ -102,13 +103,17 @@
if (name.equals(FileParams.TOKEN)) {
stateToken = new StateToken(value);
}
+ if (name.equals(FileParams.TYPE_ID)) {
+ typeId = value;
+ }
} else {
fileName = item.getName();
- log.info("file: " + fileName + " fieldName: " + item.getFieldName() + " size: " + item.getSize());
+ log.info("file: " + fileName + " fieldName: " + item.getFieldName() + " size: " + item.getSize()
+ + " typeId: " + typeId);
file = item;
}
}
- createUploadedFile(userHash, stateToken, fileName, file);
+ createUploadedFile(userHash, stateToken, fileName, file, typeId);
onSuccess(response);
} catch (final FileUploadException e) {
onFileUploadException(response);
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -32,6 +32,9 @@
*/
public interface ServerTool {
+ /* Same constant in client */
+ public static final String UPLOADEDFILE_SUFFIX = "uploaded";
+
void checkTypesBeforeContainerCreation(String parentTypeId, String typeId);
void checkTypesBeforeContentCreation(String parentTypeId, String typeId);
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -27,11 +27,11 @@
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
public class WikiClientTool extends FoldableAbstractClientTool {
- public static final String TYPE_ROOT = "wiki.root";
- public static final String TYPE_FOLDER = "wiki.folder";
- public static final String TYPE_WIKIPAGE = "wiki.wikipage";
- public static final String TYPE_UPLOADEDFILE = "wiki.uploaded";
public static final String NAME = "wiki";
+ public static final String TYPE_ROOT = NAME + "." + "root";
+ public static final String TYPE_FOLDER = NAME + "." + "folder";
+ public static final String TYPE_WIKIPAGE = NAME + "." + "wikipage";
+ public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
public WikiClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -19,7 +19,6 @@
*/
package org.ourproject.kune.wiki.client.cnt;
-import org.ourproject.kune.chat.client.ChatClientTool;
import org.ourproject.kune.platf.client.actions.ActionRegistry;
import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
import org.ourproject.kune.platf.client.dto.ContainerDTO;
@@ -49,7 +48,7 @@
@Override
protected void setState(StateContainerDTO state) {
- if (state.getTypeId().equals(ChatClientTool.TYPE_ROOT)) {
+ if (state.getTypeId().equals(WikiClientTool.TYPE_ROOT)) {
ContainerDTO rootContainer = state.getRootContainer();
if (rootContainer.getChilds().size() == 0 && rootContainer.getContents().size() == 0) {
view.setInfo(i18n.t("This wiki has no pages."));
Modified: trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -19,6 +19,8 @@
*/
package org.ourproject.kune.wiki.server;
+import java.util.Date;
+
import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException;
import org.ourproject.kune.platf.client.errors.ContentNotPermittedException;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
@@ -40,12 +42,12 @@
import com.google.inject.Inject;
public class WikiServerTool implements ServerTool {
- public static final String TYPE_ROOT = "wiki.root";
- public static final String TYPE_FOLDER = "wiki.folder";
- public static final String TYPE_WIKIPAGE = "wiki.wikipage";
- public static final String TYPE_UPLOADEDFILE = "wiki.uploaded";
+ public static final String NAME = "wiki";
+ public static final String TYPE_ROOT = NAME + "." + "root";
+ public static final String TYPE_FOLDER = NAME + "." + "folder";
+ public static final String TYPE_WIKIPAGE = NAME + "." + "wikipage";
+ public static final String TYPE_UPLOADEDFILE = NAME + "." + ServerTool.UPLOADEDFILE_SUFFIX;
- public static final String NAME = "wiki";
public static final String ROOT_NAME = "wiki";
private final ContentManager contentManager;
@@ -111,6 +113,8 @@
}
public void onCreateContent(final Content content, final Container parent) {
+ content.setStatus(ContentStatus.publishedOnline);
+ content.setPublishedOn(new Date());
}
@Inject
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -1,7 +1,5 @@
package org.ourproject.kune.workspace.client;
-import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_UPLOADEDFILE;
-
import org.ourproject.kune.platf.client.actions.ActionEnableCondition;
import org.ourproject.kune.platf.client.actions.ActionMenuItemDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarButtonAndItemDescriptor;
@@ -199,8 +197,8 @@
downloadCtx.setTextDescription(i18n.t("Download"));
downloadCtx.setIconUrl("images/nav/download.png");
- contentActionRegistry.addAction(download, TYPE_UPLOADEDFILE);
- contextActionRegistry.addAction(downloadCtx, TYPE_UPLOADEDFILE);
+ contentActionRegistry.addAction(download, typeUploadedfile);
+ contextActionRegistry.addAction(downloadCtx, typeUploadedfile);
}
protected ActionToolbarButtonDescriptor<StateToken> createEditAction(String... registerInTypes) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -80,7 +80,7 @@
anchorLayoutPanel.add(entityTools, new AnchorLayoutData("100%"));
// height: is 25 * number of tools :-( finding a way to make this
// automatic
- anchorLayoutPanel.add(entitySummary, new AnchorLayoutData("100% -" + 4 * 25));
+ anchorLayoutPanel.add(entitySummary, new AnchorLayoutData("100% -" + 5 * 25));
mainFitPanel.add(anchorLayoutPanel);
}
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-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/ui/dialogs/upload/FileUploaderPresenterTest.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -6,6 +6,7 @@
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
+import org.ourproject.kune.docs.client.DocumentClientTool;
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;
@@ -29,46 +30,53 @@
@Test
public void testFirstAddFromDocInSameContainer() {
- Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.1.1"));
+ Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.1.1"));
assertTrue(presenter.checkFolderChange());
- Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.tool.1");
+ Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.docs.1",
+ DocumentClientTool.TYPE_UPLOADEDFILE);
}
@Test
public void testFirstAddInSameContainer() {
- Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.1"));
+ Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.1"));
assertTrue(presenter.checkFolderChange());
- Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.tool.1");
+ Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.docs.1",
+ DocumentClientTool.TYPE_UPLOADEDFILE);
}
@Test
public void testSomeAddsInDiffContainersButNotUploading() {
- Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.1"));
+ Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.1"));
assertTrue(presenter.checkFolderChange());
Mockito.stub(view.hasUploadingFiles()).toReturn(false);
- Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.2"));
+ Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.2"));
assertTrue(presenter.checkFolderChange());
- Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.tool.1");
- Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.tool.2");
+ Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.docs.1",
+ DocumentClientTool.TYPE_UPLOADEDFILE);
+ Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.docs.2",
+ DocumentClientTool.TYPE_UPLOADEDFILE);
}
@Test
public void testSomeAddsInDiffContainersButUploading() {
- Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.1"));
+ Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.1"));
assertTrue(presenter.checkFolderChange());
Mockito.stub(view.hasUploadingFiles()).toReturn(true);
- Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.2"));
+ Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.2"));
assertFalse(presenter.checkFolderChange());
- Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.tool.1");
- Mockito.verify(view, Mockito.never()).setUploadParams(SOMEUSER_HASH, "group.tool.2");
+ Mockito.verify(view, Mockito.times(1)).setUploadParams(SOMEUSER_HASH, "group.docs.1",
+ DocumentClientTool.TYPE_UPLOADEDFILE);
+ Mockito.verify(view, Mockito.never()).setUploadParams(SOMEUSER_HASH, "group.docs.2",
+ DocumentClientTool.TYPE_UPLOADEDFILE);
}
@Test
public void testSomeAddsInSameContainer() {
- Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.1"));
+ Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.1"));
assertTrue(presenter.checkFolderChange());
- Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.tool.1"));
+ Mockito.stub(session.getCurrentStateToken()).toReturn(new StateToken("group.docs.1"));
assertTrue(presenter.checkFolderChange());
- Mockito.verify(view, Mockito.times(2)).setUploadParams(SOMEUSER_HASH, "group.tool.1");
+ Mockito.verify(view, Mockito.times(2)).setUploadParams(SOMEUSER_HASH, "group.docs.1",
+ DocumentClientTool.TYPE_UPLOADEDFILE);
}
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManagerTest.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -44,7 +44,7 @@
@Test(expected = SessionExpiredException.class)
public void testSessionExp() throws Exception {
- manager.createUploadedFile("otherhash", null, null, null);
+ manager.createUploadedFile("otherhash", null, null, null, null);
}
@Ignore
@@ -56,6 +56,6 @@
@Test(expected = UserMustBeLoggedException.class)
public void testUserMustBeAuth() throws Exception {
- manager.createUploadedFile(null, null, null, null);
+ manager.createUploadedFile(null, null, null, null, null);
}
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerTest.java 2008-11-25 16:52:11 UTC (rev 969)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/file/FileUploadManagerTest.java 2008-11-26 13:41:04 UTC (rev 970)
@@ -21,11 +21,11 @@
@Test(expected = SessionExpiredException.class)
public void testSessionExp() throws Exception {
- fileUploadManager.createUploadedFile("otherhash", null, null, null);
+ fileUploadManager.createUploadedFile("otherhash", null, null, null, null);
}
@Test(expected = UserMustBeLoggedException.class)
public void testUserMustBeAuth() throws Exception {
- fileUploadManager.createUploadedFile(null, null, null, null);
+ fileUploadManager.createUploadedFile(null, null, null, null, null);
}
}
1
0
Author: vjrj
Date: 2008-11-25 17:52:11 +0100 (Tue, 25 Nov 2008)
New Revision: 969
Added:
trunk/src/main/java/org/ourproject/kune/wiki/
trunk/src/main/java/org/ourproject/kune/wiki/Kune-Wiki.gwt.xml
trunk/src/main/java/org/ourproject/kune/wiki/client/
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContent.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPanel.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentView.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewer.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPanel.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerView.java
trunk/src/main/java/org/ourproject/kune/wiki/client/ctx/
trunk/src/main/java/org/ourproject/kune/wiki/client/ctx/WikiContext.java
trunk/src/main/java/org/ourproject/kune/wiki/client/ctx/WikiContextPresenter.java
trunk/src/main/java/org/ourproject/kune/wiki/public/
trunk/src/main/java/org/ourproject/kune/wiki/server/
trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerModule.java
trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java
Modified:
trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java
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/docs/client/DocumentClientTool.java
trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java
trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java
Log:
New wiki tool.
Complete - task License onOver hide/show
Incomplete - task UI tools & workspace refactorization
Modified: trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2008-11-25 16:52:11 UTC (rev 969)
@@ -14,6 +14,7 @@
<inherits name='org.ourproject.kune.platf.Kune-Platform' />
<inherits name='org.ourproject.kune.docs.Kune-Docs' />
<inherits name='org.ourproject.kune.blogs.Kune-Blogs' />
+ <inherits name='org.ourproject.kune.wiki.Kune-Wiki' />
<inherits name='org.ourproject.kune.chat.Kune-Chat' />
<!-- gwt-ext -->
Modified: trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -27,6 +27,7 @@
import org.ourproject.kune.platf.client.services.KunePlatformModule;
import org.ourproject.kune.platf.client.services.KuneRegistryModule;
import org.ourproject.kune.platf.client.services.KuneWorkspaceModule;
+import org.ourproject.kune.wiki.client.WikiClientModule;
import com.allen_sauer.gwt.log.client.Log;
import com.calclab.emiteuimodule.client.EmiteUIModule;
@@ -56,6 +57,6 @@
public void onModuleLoadCont() {
Suco.install(new KuneCoreModule(), new KuneRegistryModule(), new KunePlatformModule(),
new KuneWorkspaceModule(), new EmiteUIModule(), new DocumentClientModule(), new BlogClientModule(),
- new ChatClientModule(), new KuneModule());
+ new WikiClientModule(), new ChatClientModule(), new KuneModule());
}
}
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-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-11-25 16:52:11 UTC (rev 969)
@@ -35,10 +35,10 @@
}
*/.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;overflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.k-tp-tag{float:left;margin-right:5px;cursor:pointer;color:#00F;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
background-color: #FFF; */border:1px solid #4D4D4D;background-color:#FFF;margin:5px 0 5px 10px;}.gwt-RichTextToolbar{/* background-color: #F2F2F2;
- padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-bottom-color:#FFF;border-bottom-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.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 .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.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 .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA 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:24px;color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
+ padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-bottom-color:#FFF;border-bottom-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.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 .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.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 .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA 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: 24px; */color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
.x-tree-node a span, .x-dd-drag-ghost a span {
color:#000000;
padding: 1px 0px 1px 1px;
text-decoration:none;
}
-*/.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-bsp-buddie{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-bsp-buddie td{padding:2px 3px;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;}
\ No newline at end of file
+*/.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-bsp-buddie{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-bsp-buddie td{padding:2px 3px;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;cursor:pointer;}
\ No newline at end of file
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-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-11-25 16:52:11 UTC (rev 969)
@@ -377,12 +377,6 @@
background: #D40000;
}
-.k-entitylicensepanel-licensetext {
- cursor: pointer;
- margin-left: 5px;
- text-decoration: underline;
-}
-
.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body
{
background: #FFD09D none repeat scroll 0% 50%;
@@ -417,7 +411,7 @@
}
.k-entity-bottom div {
- line-height: 24px;
+ /* line-height: 24px; */
color: #FFF;
}
@@ -802,4 +796,5 @@
.k-elp-limg {
margin-top: 4px;
margin-left: 5px;
+ cursor: pointer;
}
Modified: trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -46,6 +46,7 @@
import org.ourproject.kune.rack.filters.LogFilter;
import org.ourproject.kune.rack.filters.RedirectFilter;
import org.ourproject.kune.rack.filters.rest.RESTServicesModule;
+import org.ourproject.kune.wiki.server.WikiServerModule;
import org.ourproject.kune.workspace.client.site.rpc.UserService;
import com.google.inject.AbstractModule;
@@ -111,6 +112,7 @@
builder.use(new PlatformServerModule());
builder.use(new DocumentServerModule());
builder.use(new BlogServerModule());
+ builder.use(new WikiServerModule());
builder.use(new ChatServerModule());
builder.use(new RESTServicesModule());
builder.use(configModule);
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -58,5 +58,6 @@
protected void registerIcons() {
registerContentTypeIcon(TYPE_BLOG, "images/nav/blog.png");
registerContentTypeIcon(TYPE_POST, "images/nav/post.png");
+ registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -29,6 +29,7 @@
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.wiki.client.WikiClientTool;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import com.calclab.suco.client.ioc.Provider;
@@ -94,7 +95,7 @@
contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_DOCUMENT);
contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_GALLERY);
- contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_WIKIPAGE);
+ contentActionRegistry.addAction(chatAbout, WikiClientTool.TYPE_WIKIPAGE);
contentActionRegistry.addAction(chatAbout, BlogClientTool.TYPE_POST);
contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_UPLOADEDFILE);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -23,8 +23,6 @@
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_GALLERY;
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.docs.client.cnt.DocumentViewer;
import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
@@ -64,12 +62,11 @@
@Override
protected void createActions() {
- final String[] all = { TYPE_ROOT, TYPE_FOLDER, TYPE_DOCUMENT, TYPE_GALLERY, TYPE_WIKI, TYPE_WIKIPAGE,
- TYPE_UPLOADEDFILE };
- final String[] containers = { TYPE_ROOT, TYPE_FOLDER, TYPE_GALLERY, TYPE_WIKI };
+ final String[] all = { TYPE_ROOT, TYPE_FOLDER, TYPE_DOCUMENT, TYPE_GALLERY, TYPE_UPLOADEDFILE };
+ final String[] containers = { TYPE_ROOT, TYPE_FOLDER, TYPE_GALLERY };
final String[] contentsModerated = { TYPE_DOCUMENT, TYPE_UPLOADEDFILE };
- final String[] containersNoRoot = { TYPE_FOLDER, TYPE_GALLERY, TYPE_WIKI };
- final String[] contents = { TYPE_DOCUMENT, TYPE_WIKIPAGE, TYPE_UPLOADEDFILE };
+ final String[] containersNoRoot = { TYPE_FOLDER, TYPE_GALLERY };
+ final String[] contents = { TYPE_DOCUMENT, TYPE_UPLOADEDFILE };
String parentMenuTitle = i18n.t("File");
String parentMenuTitleCtx = i18n.t("Folder");
@@ -78,13 +75,9 @@
i18n.t("New"), i18n.t("New folder"), Position.ctx, TYPE_ROOT, TYPE_FOLDER);
createNewContainerAction(TYPE_GALLERY, "images/nav/gallery_add.png", i18n.t("New gallery"), parentMenuTitleCtx,
i18n.t("New"), i18n.t("New gallery"), Position.ctx, TYPE_ROOT);
- createNewContainerAction(TYPE_WIKI, "images/nav/wiki_add.png", i18n.t("New wiki"), parentMenuTitleCtx,
- i18n.t("New"), i18n.t("wiki"), Position.ctx, TYPE_ROOT);
createNewContentAction(TYPE_DOCUMENT, "images/nav/page_add.png", i18n.t("New document"), parentMenuTitleCtx,
Position.ctx, TYPE_ROOT, TYPE_FOLDER);
- createNewContentAction(TYPE_WIKIPAGE, "images/nav/wikipage_add.png", parentMenuTitleCtx,
- i18n.t("New wikipage"), Position.ctx, TYPE_WIKI);
createContentModeratedActions(parentMenuTitle, contentsModerated);
@@ -105,10 +98,13 @@
createDownloadActions(TYPE_UPLOADEDFILE);
createGoAction(all);
+
createGoHomeAction(containers);
- createEditAction(TYPE_DOCUMENT, TYPE_WIKIPAGE);
- createTranslateAction(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_GALLERY, TYPE_UPLOADEDFILE, TYPE_WIKI, TYPE_WIKIPAGE);
+ createEditAction(TYPE_DOCUMENT);
+
+ createTranslateAction(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_GALLERY, TYPE_UPLOADEDFILE);
+
createDelContainerAction("Delete folder", parentMenuTitleCtx, containersNoRoot);
createDelContentAction(parentMenuTitle, i18n.t("Delete"), contents);
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -19,7 +19,6 @@
*/
package org.ourproject.kune.docs.client;
-import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
import org.ourproject.kune.platf.client.tool.FoldableAbstractClientTool;
import org.ourproject.kune.platf.client.tool.ToolSelector;
@@ -32,8 +31,6 @@
public static final String TYPE_FOLDER = "docs.folder";
public static final String TYPE_DOCUMENT = "docs.doc";
public static final String TYPE_GALLERY = "docs.gallery";
- public static final String TYPE_WIKI = "docs.wiki";
- public static final String TYPE_WIKIPAGE = "docs.wikipage";
public static final String TYPE_UPLOADEDFILE = "docs.uploaded";
public static final String NAME = "docs";
@@ -47,10 +44,10 @@
registerDragableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE);
registerDropableTypes(TYPE_ROOT, TYPE_FOLDER, TYPE_GALLERY);
registerPublishModerableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
- registerRateableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
- registerRenamableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_GALLERY, TYPE_UPLOADEDFILE, TYPE_WIKI, TYPE_WIKIPAGE);
- registerTageableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
- registerTranslatableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
+ registerRateableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
+ registerRenamableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_GALLERY, TYPE_UPLOADEDFILE);
+ registerTageableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
+ registerTranslatableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE);
registerIcons();
}
@@ -63,24 +60,7 @@
registerContentTypeIcon(TYPE_FOLDER, "images/nav/folder.png");
registerContentTypeIcon(TYPE_GALLERY, "images/nav/gallery.png");
registerContentTypeIcon(TYPE_DOCUMENT, "images/nav/page.png");
- registerContentTypeIcon(TYPE_WIKI, "images/nav/wiki.png");
- registerContentTypeIcon(TYPE_WIKIPAGE, "images/nav/wikipage.png");
- registerContentTypeIcon(TYPE_UPLOADEDFILE, new BasicMimeTypeDTO("image"), "images/nav/picture.png");
- registerContentTypeIcon(TYPE_UPLOADEDFILE, new BasicMimeTypeDTO("video"), "images/nav/film.png");
- registerContentTypeIcon(TYPE_UPLOADEDFILE, new BasicMimeTypeDTO("application", "pdf"),
- "images/nav/page_pdf.png");
- registerContentTypeIcon(TYPE_UPLOADEDFILE, new BasicMimeTypeDTO("application", "zip"),
- "images/nav/page_zip.png");
- registerContentTypeIcon(TYPE_UPLOADEDFILE, new BasicMimeTypeDTO("application", "zip"),
- "images/nav/page_zip.png");
- registerContentTypeIcon(TYPE_UPLOADEDFILE, new BasicMimeTypeDTO("text"), "images/nav/page_text.png");
- registerContentTypeIcon(TYPE_UPLOADEDFILE, new BasicMimeTypeDTO("application", "msword"),
- "images/nav/page_word.png");
- registerContentTypeIcon(TYPE_UPLOADEDFILE, new BasicMimeTypeDTO("application", "excel"),
- "images/nav/page_excel.png");
- registerContentTypeIcon(TYPE_UPLOADEDFILE, new BasicMimeTypeDTO("application", "mspowerpoint"),
- "images/nav/page_pps.png");
- registerContentTypeIcon(TYPE_UPLOADEDFILE, "images/nav/page.png");
+ registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/tool/FoldableAbstractClientTool.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -82,4 +82,20 @@
protected void registerXmppNotifyCapableTypes(String... typeIds) {
contentCapabilitiesRegistry.getXmppNotificyCapable().register(typeIds);
}
+
+ protected void registerUploadTypesAndMimes(String typeUploadedfile) {
+ registerContentTypeIcon(typeUploadedfile, new BasicMimeTypeDTO("image"), "images/nav/picture.png");
+ registerContentTypeIcon(typeUploadedfile, new BasicMimeTypeDTO("video"), "images/nav/film.png");
+ registerContentTypeIcon(typeUploadedfile, new BasicMimeTypeDTO("application", "pdf"), "images/nav/page_pdf.png");
+ registerContentTypeIcon(typeUploadedfile, new BasicMimeTypeDTO("application", "zip"), "images/nav/page_zip.png");
+ registerContentTypeIcon(typeUploadedfile, new BasicMimeTypeDTO("application", "zip"), "images/nav/page_zip.png");
+ registerContentTypeIcon(typeUploadedfile, new BasicMimeTypeDTO("text"), "images/nav/page_text.png");
+ registerContentTypeIcon(typeUploadedfile, new BasicMimeTypeDTO("application", "msword"),
+ "images/nav/page_word.png");
+ registerContentTypeIcon(typeUploadedfile, new BasicMimeTypeDTO("application", "excel"),
+ "images/nav/page_excel.png");
+ registerContentTypeIcon(typeUploadedfile, new BasicMimeTypeDTO("application", "mspowerpoint"),
+ "images/nav/page_pps.png");
+ registerContentTypeIcon(typeUploadedfile, "images/nav/page.png");
+ }
}
Added: trunk/src/main/java/org/ourproject/kune/wiki/Kune-Wiki.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/Kune-Wiki.gwt.xml 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/Kune-Wiki.gwt.xml 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,5 @@
+<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<module>
+ <inherits name='org.ourproject.kune.platf.Kune-Platform' />
+ <inherits name='org.ourproject.kune.workspace.Kune-Workspace' />
+</module>
Added: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,113 @@
+/*
+ *
+ * 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.wiki.client;
+
+import static org.ourproject.kune.wiki.client.WikiClientTool.TYPE_FOLDER;
+import static org.ourproject.kune.wiki.client.WikiClientTool.TYPE_ROOT;
+import static org.ourproject.kune.wiki.client.WikiClientTool.TYPE_UPLOADEDFILE;
+import static org.ourproject.kune.wiki.client.WikiClientTool.TYPE_WIKIPAGE;
+
+import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
+import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
+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.platf.client.utils.DeferredCommandWrapper;
+import org.ourproject.kune.wiki.client.cnt.WikiViewer;
+import org.ourproject.kune.workspace.client.AbstractFoldableContentActions;
+import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
+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 com.calclab.suco.client.ioc.Provider;
+
+public class WikiClientActions extends AbstractFoldableContentActions {
+ public WikiClientActions(final I18nUITranslationService i18n, final ContextNavigator contextNavigator,
+ final Session session, final StateManager stateManager,
+ final DeferredCommandWrapper deferredCommandWrapper,
+ 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<TextEditor> textEditorProvider, final KuneErrorHandler errorHandler,
+ final WikiViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider) {
+ super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
+ contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
+ contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
+ documentViewer, entityLogo);
+ }
+
+ @Override
+ protected void createActions() {
+ final String[] all = { TYPE_ROOT, TYPE_FOLDER, TYPE_WIKIPAGE, TYPE_UPLOADEDFILE };
+ final String[] containers = { TYPE_ROOT, TYPE_FOLDER };
+ // final String[] contentsModerated = { };
+ final String[] containersNoRoot = { TYPE_FOLDER };
+ final String[] contents = { TYPE_WIKIPAGE, TYPE_UPLOADEDFILE };
+
+ String parentMenuTitle = i18n.t("Wikipage");
+ String parentMenuTitleCtx = i18n.t("Wiki");
+
+ createNewContainerAction(TYPE_FOLDER, "images/nav/folder_add.png", i18n.t("New folder"), parentMenuTitleCtx,
+ i18n.t("New"), i18n.t("New folder"), Position.ctx, TYPE_ROOT, TYPE_FOLDER);
+
+ createNewContentAction(TYPE_WIKIPAGE, "images/nav/wikipage_add.png", i18n.t("New wikipage"),
+ parentMenuTitleCtx, Position.ctx, TYPE_ROOT, TYPE_FOLDER);
+
+ // createContentModeratedActions(parentMenuTitle, contentsModerated);
+
+ createContentRenameAction(parentMenuTitle, i18n.t("Rename"), contents);
+ createRenameContentInCtxAction(parentMenuTitleCtx, i18n.t("Rename"), containersNoRoot);
+
+ // final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCxt =
+ // createSetAsDefContent(parentMenuTitleCtx);
+
+ createRefreshCntAction(parentMenuTitle, contents);
+ createRefreshCxtAction(parentMenuTitleCtx, containers);
+
+ createSetAsDefContent(parentMenuTitle, contents);
+
+ createUploadAction(i18n.t("Upload file"), "images/nav/upload.png",
+ i18n.t("Upload some files (images, PDFs, ...)"), null, containers);
+
+ createDownloadActions(TYPE_UPLOADEDFILE);
+
+ createGoAction(all);
+
+ createGoHomeAction(containers);
+
+ createEditAction(TYPE_WIKIPAGE);
+
+ createTranslateAction(TYPE_FOLDER, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
+
+ createDelContainerAction("Delete folder", parentMenuTitleCtx, containersNoRoot);
+ createDelContentAction(parentMenuTitle, i18n.t("Delete"), contents);
+ }
+
+ @Override
+ protected void createPostSessionInitActions() {
+ // super.createUploadMediaAction();
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,119 @@
+/*
+ *
+ * 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.wiki.client;
+
+import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
+import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
+import org.ourproject.kune.platf.client.app.ToolGroup;
+import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
+import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.tool.ToolSelector;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
+import org.ourproject.kune.platf.client.ui.upload.FileUploader;
+import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper;
+import org.ourproject.kune.wiki.client.cnt.WikiFolderContent;
+import org.ourproject.kune.wiki.client.cnt.WikiFolderContentPanel;
+import org.ourproject.kune.wiki.client.cnt.WikiFolderContentPresenter;
+import org.ourproject.kune.wiki.client.cnt.WikiFolderContentView;
+import org.ourproject.kune.wiki.client.cnt.WikiViewer;
+import org.ourproject.kune.wiki.client.cnt.WikiViewerPanel;
+import org.ourproject.kune.wiki.client.cnt.WikiViewerPresenter;
+import org.ourproject.kune.wiki.client.cnt.WikiViewerView;
+import org.ourproject.kune.wiki.client.ctx.WikiContext;
+import org.ourproject.kune.wiki.client.ctx.WikiContextPresenter;
+import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
+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.themes.WsThemePresenter;
+
+import com.calclab.suco.client.ioc.decorator.Singleton;
+import com.calclab.suco.client.ioc.module.AbstractModule;
+import com.calclab.suco.client.ioc.module.Factory;
+
+public class WikiClientModule extends AbstractModule {
+
+ @Override
+ public void onInstall() {
+
+ register(ToolGroup.class, new Factory<WikiClientTool>(WikiClientTool.class) {
+ @Override
+ public WikiClientTool create() {
+ $(WikiClientActions.class);
+ return new WikiClientTool($(I18nUITranslationService.class), $(ToolSelector.class),
+ $(WsThemePresenter.class), $(WorkspaceSkeleton.class), $(ContentCapabilitiesRegistry.class));
+ }
+ });
+
+ register(ToolGroup.class, new Factory<WikiClientActions>(WikiClientActions.class) {
+ @Override
+ public WikiClientActions create() {
+ return new WikiClientActions($(I18nUITranslationService.class), $(ContextNavigator.class),
+ $(Session.class), $(StateManager.class), $(DeferredCommandWrapper.class),
+ $$(ContentServiceAsync.class), $$(GroupServiceAsync.class), $$(FileUploader.class),
+ $(ContentActionRegistry.class), $(ContextActionRegistry.class), $$(FileDownloadUtils.class),
+ $(EntityLogo.class), $$(TextEditor.class), $(KuneErrorHandler.class), $(WikiViewer.class),
+ $$(ContextPropEditor.class));
+ }
+ });
+
+ register(ToolGroup.class, new Factory<WikiContext>(WikiContext.class) {
+ @Override
+ public WikiContext create() {
+ final WikiContextPresenter presenter = new WikiContextPresenter($(StateManager.class),
+ $$(ContextNavigator.class), $$(ContextPropEditor.class));
+ return presenter;
+ }
+ });
+
+ register(Singleton.class, new Factory<WikiViewer>(WikiViewer.class) {
+ @Override
+ public WikiViewer create() {
+ final WikiViewerPresenter presenter = new WikiViewerPresenter($(StateManager.class), $(Session.class),
+ $(I18nUITranslationService.class), $(ActionContentToolbar.class),
+ $(ContentActionRegistry.class), $$(FileDownloadUtils.class));
+ final WikiViewerView view = new WikiViewerPanel($(WorkspaceSkeleton.class),
+ $(I18nTranslationService.class));
+ presenter.init(view);
+ return presenter;
+ }
+ });
+
+ register(ToolGroup.class, new Factory<WikiFolderContent>(WikiFolderContent.class) {
+ @Override
+ public WikiFolderContent create() {
+ final WikiFolderContentPresenter presenter = new WikiFolderContentPresenter($(StateManager.class),
+ $(Session.class), $(ActionContentToolbar.class), $(ContentActionRegistry.class),
+ $(I18nTranslationService.class));
+ final WikiFolderContentView view = new WikiFolderContentPanel($(WorkspaceSkeleton.class),
+ $(I18nTranslationService.class));
+ presenter.init(view);
+ return presenter;
+ }
+ });
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,65 @@
+/*
+ *
+ * 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.wiki.client;
+
+import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
+import org.ourproject.kune.platf.client.tool.FoldableAbstractClientTool;
+import org.ourproject.kune.platf.client.tool.ToolSelector;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+
+public class WikiClientTool extends FoldableAbstractClientTool {
+ public static final String TYPE_ROOT = "wiki.root";
+ public static final String TYPE_FOLDER = "wiki.folder";
+ public static final String TYPE_WIKIPAGE = "wiki.wikipage";
+ public static final String TYPE_UPLOADEDFILE = "wiki.uploaded";
+ public static final String NAME = "wiki";
+
+ public WikiClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
+ final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
+ ContentCapabilitiesRegistry contentCapabilitiesRegistry) {
+ super(NAME, i18n.t("wiki"), toolSelector, wsThemePresenter, ws, contentCapabilitiesRegistry);
+
+ // registerAclEditableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
+ registerAuthorableTypes(TYPE_WIKIPAGE, TYPE_UPLOADEDFILE);
+ registerDragableTypes(TYPE_WIKIPAGE, TYPE_FOLDER, TYPE_UPLOADEDFILE);
+ registerDropableTypes(TYPE_ROOT, TYPE_FOLDER);
+ // registerPublishModerableTypes();
+ registerRateableTypes(TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
+ registerRenamableTypes(TYPE_FOLDER, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
+ registerTageableTypes(TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
+ registerTranslatableTypes(TYPE_FOLDER, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
+
+ registerIcons();
+ }
+
+ public String getName() {
+ return NAME;
+ }
+
+ protected void registerIcons() {
+ registerContentTypeIcon(TYPE_FOLDER, "images/nav/folder.png");
+ // registerContentTypeIcon(TYPE_FOLDER, "images/nav/wiki.png");
+ registerContentTypeIcon(TYPE_WIKIPAGE, "images/nav/wikipage.png");
+ registerUploadTypesAndMimes(TYPE_UPLOADEDFILE);
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContent.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContent.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContent.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,23 @@
+/*
+ *
+ * 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.wiki.client.cnt;
+
+public interface WikiFolderContent {
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPanel.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPanel.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,32 @@
+/*
+ *
+ * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.wiki.client.cnt;
+
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.workspace.client.cnt.FoldableContentPanel;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+public class WikiFolderContentPanel extends FoldableContentPanel implements WikiFolderContentView {
+
+ public WikiFolderContentPanel(WorkspaceSkeleton ws, I18nTranslationService i18n) {
+ super(ws, i18n);
+ super.setLabel("");
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentPresenter.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,64 @@
+/*
+ *
+ * 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.wiki.client.cnt;
+
+import org.ourproject.kune.chat.client.ChatClientTool;
+import org.ourproject.kune.platf.client.actions.ActionRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
+import org.ourproject.kune.platf.client.dto.ContainerDTO;
+import org.ourproject.kune.platf.client.dto.StateContainerDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.wiki.client.WikiClientTool;
+import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
+
+public class WikiFolderContentPresenter extends FoldableContentPresenter implements WikiFolderContent {
+
+ private WikiFolderContentView view;
+ private final I18nTranslationService i18n;
+
+ public WikiFolderContentPresenter(StateManager stateManager, Session session, ActionContentToolbar toolbar,
+ final ActionRegistry<StateToken> actionRegistry, I18nTranslationService i18n) {
+ super(WikiClientTool.NAME, stateManager, session, toolbar, actionRegistry);
+ this.i18n = i18n;
+ }
+
+ public void init(final WikiFolderContentView view) {
+ super.init(view);
+ this.view = view;
+ }
+
+ @Override
+ protected void setState(StateContainerDTO state) {
+ if (state.getTypeId().equals(ChatClientTool.TYPE_ROOT)) {
+ ContainerDTO rootContainer = state.getRootContainer();
+ if (rootContainer.getChilds().size() == 0 && rootContainer.getContents().size() == 0) {
+ view.setInfo(i18n.t("This wiki has no pages."));
+ } else {
+ view.setInfo("");
+ }
+ } else {
+ view.setInfo("");
+ }
+ super.setState(state);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentView.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiFolderContentView.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,25 @@
+/*
+ *
+ * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.wiki.client.cnt;
+
+import org.ourproject.kune.workspace.client.cnt.AbstractContentView;
+
+public interface WikiFolderContentView extends AbstractContentView {
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewer.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewer.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewer.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,25 @@
+/*
+ *
+ * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.wiki.client.cnt;
+
+import org.ourproject.kune.workspace.client.cnt.FoldableContent;
+
+public interface WikiViewer extends FoldableContent {
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPanel.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPanel.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,30 @@
+/*
+ *
+ * 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.wiki.client.cnt;
+
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.workspace.client.cnt.FoldableContentPanel;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+public class WikiViewerPanel extends FoldableContentPanel implements WikiViewerView {
+ public WikiViewerPanel(final WorkspaceSkeleton ws, I18nTranslationService i18n) {
+ super(ws, i18n);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,83 @@
+/*
+ *
+ * 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.wiki.client.cnt;
+
+import org.ourproject.kune.wiki.client.WikiClientTool;
+import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
+import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
+import org.ourproject.kune.platf.client.dto.StateContentDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+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.download.ImageSize;
+import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+
+import com.calclab.suco.client.ioc.Provider;
+
+public class WikiViewerPresenter extends FoldableContentPresenter implements WikiViewer {
+ private WikiViewerView view;
+ private final Provider<FileDownloadUtils> downloadProvider;
+
+ public WikiViewerPresenter(StateManager stateManager, Session session, I18nUITranslationService i18n,
+ ActionContentToolbar toolbar, ContentActionRegistry actionRegistry,
+ Provider<FileDownloadUtils> downloadProvider) {
+ super(WikiClientTool.NAME, stateManager, session, toolbar, actionRegistry);
+ this.downloadProvider = downloadProvider;
+ }
+
+ public void init(WikiViewerView view) {
+ super.init(view);
+ this.view = view;
+ }
+
+ @Override
+ protected void setState(StateContentDTO state) {
+ super.setState(state);
+ setContent(state, WikiClientTool.TYPE_UPLOADEDFILE);
+ }
+
+ private void setContent(StateContentDTO state, String uploadedfileType) {
+ String typeId = state.getTypeId();
+ String contentBody = state.getContent();
+ StateToken token = state.getStateToken();
+ BasicMimeTypeDTO mimeType = state.getMimeType();
+ if (typeId.equals(uploadedfileType)) {
+ if (mimeType != null) {
+ FileDownloadUtils fileDownloadUtils = downloadProvider.get();
+ if (mimeType.getType().equals("image")) {
+ view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token,
+ ImageSize.sized));
+ } else if (mimeType.toString().equals("text/plain") || mimeType.toString().equals("application/pdf")) {
+ view.setContent(contentBody);
+ } else {
+ view.setContent("");
+ }
+ } else {
+ view.setContent("");
+ }
+ } else {
+ view.setContent(contentBody);
+ }
+ view.attach();
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerView.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerView.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,30 @@
+/*
+ *
+ * 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.wiki.client.cnt;
+
+import org.ourproject.kune.workspace.client.cnt.AbstractContentView;
+
+public interface WikiViewerView extends AbstractContentView {
+
+ void setContent(String content);
+
+ void showImage(String imageUrl, String imageResizedUrl);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/client/ctx/WikiContext.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/ctx/WikiContext.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/ctx/WikiContext.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,24 @@
+/*
+ *
+ * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.wiki.client.ctx;
+
+public interface WikiContext {
+
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/client/ctx/WikiContextPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/ctx/WikiContextPresenter.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/ctx/WikiContextPresenter.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,36 @@
+/*
+ *
+ * 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.wiki.client.ctx;
+
+import org.ourproject.kune.wiki.client.WikiClientTool;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
+import org.ourproject.kune.workspace.client.cxt.FoldableContextPresenter;
+
+import com.calclab.suco.client.ioc.Provider;
+
+public class WikiContextPresenter extends FoldableContextPresenter implements WikiContext {
+ public WikiContextPresenter(final StateManager stateManager,
+ final Provider<ContextNavigator> contextNavigatorProvider,
+ final Provider<ContextPropEditor> contextPropEditorProvider) {
+ super(WikiClientTool.NAME, stateManager, contextNavigatorProvider, contextPropEditorProvider);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerModule.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerModule.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,29 @@
+/*
+ *
+ * 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.wiki.server;
+
+import com.google.inject.Binder;
+import com.google.inject.Module;
+
+public class WikiServerModule implements Module {
+ public void configure(final Binder binder) {
+ binder.bind(WikiServerTool.class).asEagerSingleton();
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/wiki/server/WikiServerTool.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -0,0 +1,148 @@
+/*
+ *
+ * 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.wiki.server;
+
+import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException;
+import org.ourproject.kune.platf.client.errors.ContentNotPermittedException;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.server.content.ContainerManager;
+import org.ourproject.kune.platf.server.content.ContentManager;
+import org.ourproject.kune.platf.server.domain.AccessLists;
+import org.ourproject.kune.platf.server.domain.Container;
+import org.ourproject.kune.platf.server.domain.Content;
+import org.ourproject.kune.platf.server.domain.ContentStatus;
+import org.ourproject.kune.platf.server.domain.Group;
+import org.ourproject.kune.platf.server.domain.GroupListMode;
+import org.ourproject.kune.platf.server.domain.ToolConfiguration;
+import org.ourproject.kune.platf.server.domain.User;
+import org.ourproject.kune.platf.server.manager.ToolConfigurationManager;
+import org.ourproject.kune.platf.server.tool.ServerTool;
+import org.ourproject.kune.platf.server.tool.ServerToolRegistry;
+import org.ourproject.kune.platf.server.tool.ServerToolTarget;
+
+import com.google.inject.Inject;
+
+public class WikiServerTool implements ServerTool {
+ public static final String TYPE_ROOT = "wiki.root";
+ public static final String TYPE_FOLDER = "wiki.folder";
+ public static final String TYPE_WIKIPAGE = "wiki.wikipage";
+ public static final String TYPE_UPLOADEDFILE = "wiki.uploaded";
+
+ public static final String NAME = "wiki";
+ public static final String ROOT_NAME = "wiki";
+
+ private final ContentManager contentManager;
+ private final ToolConfigurationManager configurationManager;
+ private final ContainerManager containerManager;
+ private final I18nTranslationService i18n;
+
+ @Inject
+ public WikiServerTool(final ContentManager contentManager, final ContainerManager containerManager,
+ final ToolConfigurationManager configurationManager, final I18nTranslationService translationService) {
+ this.contentManager = contentManager;
+ this.containerManager = containerManager;
+ this.configurationManager = configurationManager;
+ this.i18n = translationService;
+ }
+
+ public void checkTypesBeforeContainerCreation(String parentTypeId, String typeId) {
+ checkContainerTypeId(parentTypeId, typeId);
+ }
+
+ public void checkTypesBeforeContentCreation(String parentTypeId, String typeId) {
+ checkContentTypeId(parentTypeId, typeId);
+ }
+
+ public String getName() {
+ return NAME;
+ }
+
+ public String getRootName() {
+ return ROOT_NAME;
+ }
+
+ public ServerToolTarget getTarget() {
+ return ServerToolTarget.forBoth;
+ }
+
+ public Group initGroup(final User user, final Group group) {
+ final ToolConfiguration config = new ToolConfiguration();
+ final Container rootFolder = containerManager.createRootFolder(group, NAME, ROOT_NAME, TYPE_ROOT);
+ config.setRoot(rootFolder);
+ group.setToolConfig(NAME, config);
+ configurationManager.persist(config);
+ final Content descriptor = contentManager.createContent(i18n.t("Wiki page sample"), "", user, rootFolder,
+ WikiServerTool.TYPE_WIKIPAGE);
+ descriptor.addAuthor(user);
+ descriptor.setLanguage(user.getLanguage());
+ descriptor.setTypeId(TYPE_WIKIPAGE);
+ descriptor.setStatus(ContentStatus.publishedOnline);
+ contentManager.save(user, descriptor,
+ i18n.t("This is only a wiki page sample. You can edit or rename it but also any other user."));
+ return group;
+ }
+
+ public void onCreateContainer(final Container container, final Container parent) {
+ if (container.getTypeId().equals(TYPE_FOLDER)) {
+ AccessLists wikiAcl = new AccessLists();
+ wikiAcl.getAdmins().setMode(GroupListMode.NORMAL);
+ wikiAcl.getAdmins().add(container.getOwner());
+ wikiAcl.getEditors().setMode(GroupListMode.EVERYONE);
+ wikiAcl.getViewers().setMode(GroupListMode.EVERYONE);
+ container.setAccessLists(wikiAcl);
+ }
+ }
+
+ public void onCreateContent(final Content content, final Container parent) {
+ }
+
+ @Inject
+ public void register(final ServerToolRegistry registry) {
+ registry.register(this);
+ }
+
+ void checkContainerTypeId(final String parentTypeId, final String typeId) {
+ if (typeId.equals(TYPE_FOLDER)) {
+ // ok valid container
+ if ((typeId.equals(TYPE_FOLDER) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))) {
+ // ok
+ } else {
+ throw new ContainerNotPermittedException();
+ }
+ } else {
+ throw new ContainerNotPermittedException();
+ }
+ }
+
+ void checkContentTypeId(final String parentTypeId, final String typeId) {
+ if (typeId.equals(TYPE_WIKIPAGE) || typeId.equals(TYPE_UPLOADEDFILE)) {
+ // ok valid content
+ boolean parentIsFolderOrRoot = parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER);
+ if ((typeId.equals(TYPE_UPLOADEDFILE) && parentIsFolderOrRoot)
+ || (typeId.equals(TYPE_WIKIPAGE) && parentIsFolderOrRoot)) {
+ // ok
+ } else {
+ throw new ContentNotPermittedException();
+ }
+ } else {
+ throw new ContentNotPermittedException();
+ }
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -327,8 +327,9 @@
register(addFolder, position, registerInTypes);
}
- protected void createNewContentAction(final String typeId, String iconUrl, final String description,
- final String parentMenuTitle, Position position, String... registerInTypes) {
+ protected ActionToolbarMenuAndItemDescriptor<StateToken> createNewContentAction(final String typeId,
+ String iconUrl, final String description, final String parentMenuTitle, Position position,
+ String... registerInTypes) {
final ActionToolbarMenuAndItemDescriptor<StateToken> addContent = new ActionToolbarMenuAndItemDescriptor<StateToken>(
AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken token) {
@@ -348,6 +349,7 @@
addContent.setParentSubMenuTitle(i18n.t("New"));
addContent.setIconUrl(iconUrl);
register(addContent, position, registerInTypes);
+ return addContent;
}
protected void createPostSessionInitActions() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -6,4 +6,6 @@
void detach();
+ void setInfo(String info);
+
}
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-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -29,13 +29,13 @@
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.MouseListenerAdapter;
+import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.core.Ext;
import com.gwtext.client.core.Function;
import com.gwtext.client.core.FxConfig;
public class EntityLicensePanel implements EntityLicenseView {
- private final Label copyright;
private final Image licenseImage;
private final Label licenseLabel;
private final I18nTranslationService i18n;
@@ -46,14 +46,12 @@
final WorkspaceSkeleton ws) {
this.i18n = i18n;
this.ws = ws;
- copyright = new Label();
licenseImage = new Image();
licenseLabel = new Label();
licenseBar = new SimpleToolbar();
licenseBar.addSpacer();
- licenseBar.add(licenseImage);
- licenseBar.add(copyright);
+ licenseBar.add(licenseImage, VerticalPanel.ALIGN_TOP);
licenseBar.add(licenseLabel);
final ClickListener clickListener = new ClickListener() {
@@ -64,7 +62,6 @@
licenseLabel.addClickListener(clickListener);
licenseImage.addClickListener(clickListener);
- copyright.setVisible(false);
licenseLabel.setVisible(false);
MouseListenerAdapter mouseListenerAdapter = new MouseListenerAdapter() {
@@ -75,16 +72,15 @@
@Override
public void onMouseLeave(Widget sender) {
- fade(false);
+ // fade(false);
}
};
licenseImage.addMouseListener(mouseListenerAdapter);
- copyright.addMouseListener(mouseListenerAdapter);
licenseLabel.addMouseListener(mouseListenerAdapter);
- copyright.addStyleName("kune-Margin-Large-l");
- licenseLabel.setStyleName("k-entitylicensepanel-licensetext");
+ licenseLabel.addStyleName("kune-Margin-Large-l");
+ licenseLabel.setStyleName("k-elp-limg");
licenseImage.setStyleName("k-elp-limg");
}
@@ -105,33 +101,24 @@
}
public void showLicense(final String groupName, final LicenseDTO licenseDTO) {
- copyright.setText(i18n.t("© [%s], under license: ", groupName));
- licenseLabel.setText(licenseDTO.getLongName());
+ licenseLabel.setText(i18n.t("© [%s], under license: [%s]", groupName, licenseDTO.getLongName()));
licenseImage.setUrl(licenseDTO.getImageUrl());
fade(false);
}
private void fade(final boolean in) {
- if (copyright.isVisible() != in) {
- FxConfig fxConfig = new FxConfig(2);
- FxConfig fxConfigVisible = new FxConfig(2);
+ if (licenseLabel.isVisible() != in) {
+ FxConfig fxConfigVisible = new FxConfig(1);
fxConfigVisible.setAfterStyle(new Function() {
public void execute() {
- setVisible(in);
+ licenseLabel.setVisible(in);
}
});
if (in) {
- Ext.get(copyright.getElement()).fadeIn(fxConfig);
Ext.get(licenseLabel.getElement()).fadeIn(fxConfigVisible);
} else {
- Ext.get(copyright.getElement()).fadeOut(fxConfig);
Ext.get(licenseLabel.getElement()).fadeOut(fxConfigVisible);
}
}
}
-
- private void setVisible(boolean visible) {
- copyright.setVisible(visible);
- licenseLabel.setVisible(visible);
- }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -80,7 +80,7 @@
anchorLayoutPanel.add(entityTools, new AnchorLayoutData("100%"));
// height: is 25 * number of tools :-( finding a way to make this
// automatic
- anchorLayoutPanel.add(entitySummary, new AnchorLayoutData("100% -75"));
+ anchorLayoutPanel.add(entitySummary, new AnchorLayoutData("100% -" + 4 * 25));
mainFitPanel.add(anchorLayoutPanel);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java 2008-11-25 13:33:20 UTC (rev 968)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java 2008-11-25 16:52:11 UTC (rev 969)
@@ -23,6 +23,7 @@
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.user.client.ui.HasVerticalAlignment.VerticalAlignmentConstant;
public class SimpleToolbar extends Composite {
@@ -42,6 +43,11 @@
childPanel.setCellVerticalAlignment(widget, VerticalPanel.ALIGN_MIDDLE);
}
+ public void add(final Widget widget, VerticalAlignmentConstant valign) {
+ childPanel.add(widget);
+ childPanel.setCellVerticalAlignment(widget, valign);
+ }
+
public Widget addFill() {
final Label emptyLabel = new Label("");
this.add(emptyLabel);
1
0
r968 - in trunk/src/main/java/org/ourproject/kune: app/public/css blogs/client docs/client workspace/client workspace/client/licensefoot
by vjrj 25 Nov '08
by vjrj 25 Nov '08
25 Nov '08
Author: vjrj
Date: 2008-11-25 14:33:20 +0100 (Tue, 25 Nov 2008)
New Revision: 968
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/blogs/client/BlogClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java
Log:
Incomplete - task UI tools & workspace refactorization
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-11-25 00:51:20 UTC (rev 967)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-11-25 13:33:20 UTC (rev 968)
@@ -41,4 +41,4 @@
padding: 1px 0px 1px 1px;
text-decoration:none;
}
-*/.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-bsp-buddie{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-bsp-buddie td{padding:2px 3px;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;}
\ No newline at end of file
+*/.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-bsp-buddie{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-bsp-buddie td{padding:2px 3px;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;}
\ No newline at end of file
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-11-25 00:51:20 UTC (rev 967)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-11-25 13:33:20 UTC (rev 968)
@@ -801,4 +801,5 @@
.k-elp-limg {
margin-top: 4px;
+ margin-left: 5px;
}
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2008-11-25 00:51:20 UTC (rev 967)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2008-11-25 13:33:20 UTC (rev 968)
@@ -24,12 +24,8 @@
import static org.ourproject.kune.blogs.client.BlogClientTool.TYPE_UPLOADEDFILE;
import org.ourproject.kune.blogs.client.cnt.BlogViewer;
-import org.ourproject.kune.platf.client.actions.ActionToolbarButtonAndItemDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionToolbarMenuAndItemDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
-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;
@@ -65,6 +61,12 @@
@Override
protected void createActions() {
+ final String[] all = { TYPE_ROOT, TYPE_BLOG, TYPE_POST, TYPE_UPLOADEDFILE };
+ final String[] contentsModerated = { TYPE_POST, TYPE_UPLOADEDFILE };
+ final String[] containers = { TYPE_ROOT, TYPE_BLOG };
+ final String[] containersNoRoot = { TYPE_BLOG };
+ final String[] contents = { TYPE_POST, TYPE_UPLOADEDFILE };
+
String parentMenuTitle = i18n.t("Post");
String parentMenuTitleCtx = i18n.t("Blog");
@@ -73,56 +75,30 @@
createNewContentAction(TYPE_POST, "images/nav/post_add.png", i18n.t("New post"), parentMenuTitleCtx,
Position.ctx, TYPE_BLOG);
- final ActionToolbarMenuAndItemDescriptor<StateToken> delContainer = createDelContainerAction("Delete blog",
- parentMenuTitleCtx);
+ createContentModeratedActions(parentMenuTitle, contentsModerated);
- final ActionToolbarMenuAndItemDescriptor<StateToken> delContent = createDelContentAction(parentMenuTitle,
- i18n.t("Delete"));
+ createContentRenameAction(parentMenuTitle, i18n.t("Rename"), contents);
+ createRenameContentInCtxAction(parentMenuTitleCtx, i18n.t("Rename"), containersNoRoot);
- final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtn = createContentRenameAction(parentMenuTitle,
- i18n.t("Rename"));
-
- final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtx = createRenameContentInCtxAction(
- parentMenuTitleCtx, i18n.t("Rename"));
-
- final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCnt = createSetAsDefContent(parentMenuTitle);
-
// final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCxt =
// createSetAsDefContent(parentMenuTitleCtx);
- final ActionToolbarMenuDescriptor<StateToken> refreshCnt = createRefreshCntAction(parentMenuTitle);
+ createRefreshCntAction(parentMenuTitle, contents);
+ createRefreshCxtAction(parentMenuTitleCtx, containers);
- final ActionToolbarMenuDescriptor<StateToken> refreshCtx = createRefreshCxtAction(parentMenuTitleCtx);
- final ActionToolbarButtonAndItemDescriptor<StateToken> uploadFile = createUploadAction(i18n.t("Upload file"),
- "images/nav/upload.png", i18n.t("Upload some files (images, PDFs, ...)"), null);
+ createUploadAction(i18n.t("Upload file"), "images/nav/upload.png",
+ i18n.t("Upload some files (images, PDFs, ...)"), null, containersNoRoot);
- final String[] all = { TYPE_ROOT, TYPE_BLOG, TYPE_POST, TYPE_UPLOADEDFILE };
- final String[] contentsModerated = { TYPE_POST, TYPE_UPLOADEDFILE };
- final String[] containersNoRoot = { TYPE_BLOG };
- final String[] containers = { TYPE_ROOT, TYPE_BLOG };
- final String[] contents = { TYPE_POST, TYPE_UPLOADEDFILE };
+ createSetAsDefContent(parentMenuTitle, contents);
- createContentModeratedActions(parentMenuTitle, contentsModerated);
+ createGoAction(all);
+ createGoHomeAction(containers);
+ createEditAction(TYPE_POST);
- contextActionRegistry.addAction(go, all);
- contentActionRegistry.addAction(renameCtn, contents);
- contextActionRegistry.addAction(renameCtx, containersNoRoot);
- contextActionRegistry.addAction(refreshCtx, containers);
- contentActionRegistry.addAction(refreshCnt, contents);
- contextActionRegistry.addAction(uploadFile, TYPE_BLOG);
- contentActionRegistry.addAction(delContent, contents);
- contextActionRegistry.addAction(delContainer, containersNoRoot);
- contentActionRegistry.addAction(setAsDefGroupCnt, TYPE_POST, TYPE_UPLOADEDFILE);
// ContentRPC Authorized must permit folders
// contentActionRegistry.addAction(setAsDefGroupCxt, TYPE_BLOG);
- contextActionRegistry.addAction(goGroupHome, containers);
- contentActionRegistry.addAction(editContent, TYPE_POST);
- // contentActionRegistry.addAction(translateContent, );
+ createDelContainerAction("Delete blog", parentMenuTitleCtx, containersNoRoot);
+ createDelContentAction(parentMenuTitle, i18n.t("Delete"), contents);
}
-
- @Override
- protected void createPostSessionInitActions() {
- // contextActionRegistry.addAction(uploadMedia, 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-11-25 00:51:20 UTC (rev 967)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-11-25 13:33:20 UTC (rev 968)
@@ -27,12 +27,8 @@
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_WIKIPAGE;
import org.ourproject.kune.docs.client.cnt.DocumentViewer;
-import org.ourproject.kune.platf.client.actions.ActionToolbarButtonAndItemDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionToolbarMenuAndItemDescriptor;
-import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
-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;
@@ -68,11 +64,18 @@
@Override
protected void createActions() {
+ final String[] all = { TYPE_ROOT, TYPE_FOLDER, TYPE_DOCUMENT, TYPE_GALLERY, TYPE_WIKI, TYPE_WIKIPAGE,
+ TYPE_UPLOADEDFILE };
+ final String[] containers = { TYPE_ROOT, TYPE_FOLDER, TYPE_GALLERY, TYPE_WIKI };
+ final String[] contentsModerated = { TYPE_DOCUMENT, TYPE_UPLOADEDFILE };
+ final String[] containersNoRoot = { TYPE_FOLDER, TYPE_GALLERY, TYPE_WIKI };
+ final String[] contents = { TYPE_DOCUMENT, TYPE_WIKIPAGE, TYPE_UPLOADEDFILE };
+
String parentMenuTitle = i18n.t("File");
String parentMenuTitleCtx = i18n.t("Folder");
createNewContainerAction(TYPE_FOLDER, "images/nav/folder_add.png", i18n.t("New folder"), parentMenuTitleCtx,
- i18n.t("New"), i18n.t("New folder"), Position.ctx, TYPE_FOLDER);
+ i18n.t("New"), i18n.t("New folder"), Position.ctx, TYPE_ROOT, TYPE_FOLDER);
createNewContainerAction(TYPE_GALLERY, "images/nav/gallery_add.png", i18n.t("New gallery"), parentMenuTitleCtx,
i18n.t("New"), i18n.t("New gallery"), Position.ctx, TYPE_ROOT);
createNewContainerAction(TYPE_WIKI, "images/nav/wiki_add.png", i18n.t("New wiki"), parentMenuTitleCtx,
@@ -83,58 +86,35 @@
createNewContentAction(TYPE_WIKIPAGE, "images/nav/wikipage_add.png", parentMenuTitleCtx,
i18n.t("New wikipage"), Position.ctx, TYPE_WIKI);
- final ActionToolbarMenuAndItemDescriptor<StateToken> delContainer = createDelContainerAction("Delete folder",
- parentMenuTitleCtx);
+ createContentModeratedActions(parentMenuTitle, contentsModerated);
- final ActionToolbarMenuAndItemDescriptor<StateToken> delContent = createDelContentAction(parentMenuTitle,
- i18n.t("Delete"));
+ createContentRenameAction(parentMenuTitle, i18n.t("Rename"), contents);
+ createRenameContentInCtxAction(parentMenuTitleCtx, i18n.t("Rename"), containersNoRoot);
- final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtn = createContentRenameAction(parentMenuTitle,
- i18n.t("Rename"));
-
- final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtx = createRenameContentInCtxAction(
- parentMenuTitleCtx, i18n.t("Rename"));
-
- final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCnt = createSetAsDefContent(parentMenuTitle);
-
// final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCxt =
// createSetAsDefContent(parentMenuTitleCtx);
- final ActionToolbarMenuDescriptor<StateToken> refreshCnt = createRefreshCntAction(parentMenuTitle);
+ createRefreshCntAction(parentMenuTitle, contents);
+ createRefreshCxtAction(parentMenuTitleCtx, containers);
- final ActionToolbarMenuDescriptor<StateToken> refreshCtx = createRefreshCxtAction(parentMenuTitleCtx);
+ createSetAsDefContent(parentMenuTitle, contents);
- final ActionToolbarButtonAndItemDescriptor<StateToken> uploadFile = createUploadAction(i18n.t("Upload file"),
- "images/nav/upload.png", i18n.t("Upload some files (images, PDFs, ...)"), null);
+ createUploadAction(i18n.t("Upload file"), "images/nav/upload.png",
+ i18n.t("Upload some files (images, PDFs, ...)"), null, containers);
- final String[] all = { TYPE_ROOT, TYPE_FOLDER, TYPE_DOCUMENT, TYPE_GALLERY, TYPE_WIKI, TYPE_WIKIPAGE,
- TYPE_UPLOADEDFILE };
- final String[] containersNoRoot = { TYPE_FOLDER, TYPE_GALLERY, TYPE_WIKI };
- final String[] containers = { TYPE_ROOT, TYPE_FOLDER, TYPE_GALLERY, TYPE_WIKI };
- final String[] contents = { TYPE_DOCUMENT, TYPE_WIKIPAGE, TYPE_UPLOADEDFILE };
- final String[] contentsModerated = { TYPE_DOCUMENT, TYPE_UPLOADEDFILE };
-
- createContentModeratedActions(parentMenuTitle, contentsModerated);
createDownloadActions(TYPE_UPLOADEDFILE);
- contextActionRegistry.addAction(go, all);
- contentActionRegistry.addAction(renameCtn, contents);
- contextActionRegistry.addAction(renameCtx, containersNoRoot);
- contextActionRegistry.addAction(refreshCtx, containers);
- contentActionRegistry.addAction(refreshCnt, contents);
- contextActionRegistry.addAction(uploadFile, TYPE_ROOT, TYPE_FOLDER);
- contentActionRegistry.addAction(delContent, contents);
- contextActionRegistry.addAction(delContainer, containersNoRoot);
- contentActionRegistry.addAction(setAsDefGroupCnt, TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
- // contentActionRegistry.addAction(setAsDefGroupCxt,);
- contextActionRegistry.addAction(goGroupHome, containers);
- contentActionRegistry.addAction(editContent, TYPE_DOCUMENT, TYPE_WIKIPAGE);
- contentActionRegistry.addAction(translateContent, TYPE_DOCUMENT, TYPE_FOLDER, TYPE_GALLERY, TYPE_UPLOADEDFILE,
- TYPE_WIKI, TYPE_WIKIPAGE);
+ createGoAction(all);
+ createGoHomeAction(containers);
+ createEditAction(TYPE_DOCUMENT, TYPE_WIKIPAGE);
+ createTranslateAction(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_GALLERY, TYPE_UPLOADEDFILE, TYPE_WIKI, TYPE_WIKIPAGE);
+
+ createDelContainerAction("Delete folder", parentMenuTitleCtx, containersNoRoot);
+ createDelContentAction(parentMenuTitle, i18n.t("Delete"), contents);
}
@Override
protected void createPostSessionInitActions() {
- contextActionRegistry.addAction(uploadMedia, TYPE_GALLERY);
+ super.createUploadMediaAction(TYPE_GALLERY);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-11-25 00:51:20 UTC (rev 967)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-11-25 13:33:20 UTC (rev 968)
@@ -66,11 +66,6 @@
protected final FoldableContent foldableContent;
protected final DeferredCommandWrapper deferredCommandWrapper;
protected final EntityLogo entityLogo;
- protected ActionMenuItemDescriptor<StateToken> go;
- protected ActionToolbarButtonDescriptor<StateToken> goGroupHome;
- protected ActionToolbarButtonAndItemDescriptor<StateToken> uploadMedia;
- protected ActionToolbarButtonDescriptor<StateToken> translateContent;
- protected ActionToolbarButtonDescriptor<StateToken> editContent;
public AbstractFoldableContentActions(Session session, StateManager stateManager, I18nUITranslationService i18n,
KuneErrorHandler errorHandler, DeferredCommandWrapper deferredCommandWrapper,
@@ -96,11 +91,9 @@
this.contextPropEditorProvider = contextPropEditorProvider;
this.foldableContent = foldableContent;
this.entityLogo = entityLogo;
- createCommonActions();
createActions();
session.onInitDataReceived(new Listener<InitDataDTO>() {
public void onEvent(InitDataDTO parameter) {
- createCommonPostSessionInitActions();
createPostSessionInitActions();
}
});
@@ -130,8 +123,7 @@
contentActionRegistry.addAction(setInTheDustBinStatus, contentsModerated);
}
- protected ActionToolbarMenuAndItemDescriptor<StateToken> createContentRenameAction(String parentMenuTitle,
- String textDescription) {
+ protected void createContentRenameAction(String parentMenuTitle, String textDescription, String... registerInTypes) {
final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtn = new ActionToolbarMenuAndItemDescriptor<StateToken>(
AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
@@ -140,11 +132,10 @@
});
renameCtn.setTextDescription(textDescription);
renameCtn.setParentMenuTitle(parentMenuTitle);
- return renameCtn;
+ contentActionRegistry.addAction(renameCtn, registerInTypes);
}
- protected ActionToolbarMenuAndItemDescriptor<StateToken> createDelContainerAction(String text,
- String parentMenuTitle) {
+ protected void createDelContainerAction(String text, String parentMenuTitle, String... registerInTypes) {
final ActionToolbarMenuAndItemDescriptor<StateToken> delContainer = new ActionToolbarMenuAndItemDescriptor<StateToken>(
AccessRolDTO.Administrator, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken token) {
@@ -156,11 +147,10 @@
delContainer.setMustBeConfirmed(true);
delContainer.setConfirmationTitle(i18n.t("Please confirm"));
delContainer.setConfirmationText(i18n.t("You will delete it and also all its contents. Are you sure?"));
- return delContainer;
+ contextActionRegistry.addAction(delContainer, registerInTypes);
}
- protected ActionToolbarMenuAndItemDescriptor<StateToken> createDelContentAction(String parentMenuTitle,
- String textDescription) {
+ protected void createDelContentAction(String parentMenuTitle, String textDescription, String... registerInTypes) {
final ActionToolbarMenuAndItemDescriptor<StateToken> delContent = new ActionToolbarMenuAndItemDescriptor<StateToken>(
AccessRolDTO.Administrator, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken token) {
@@ -184,7 +174,7 @@
return !itemToken.equals(defContentToken);
}
});
- return delContent;
+ contentActionRegistry.addAction(delContent, registerInTypes);
}
protected void createDownloadActions(String typeUploadedfile) {
@@ -213,6 +203,106 @@
contextActionRegistry.addAction(downloadCtx, TYPE_UPLOADEDFILE);
}
+ protected ActionToolbarButtonDescriptor<StateToken> createEditAction(String... registerInTypes) {
+ 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();
+ foldableContent.detach();
+ contextNavigator.detach();
+ contextPropEditorProvider.get().attach();
+ editor.editContent(session.getContentState().getContent(), new Listener<String>() {
+ public void onEvent(final String html) {
+ Site.showProgressSaving();
+ contentServiceProvider.get().save(session.getUserHash(), stateToken, html,
+ new AsyncCallback<Object>() {
+ 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(Object param) {
+ Site.hideProgress();
+ session.getContentState().setContent(html);
+ editor.onSaved();
+ }
+ });
+ }
+ }, new Listener0() {
+ public void onEvent() {
+ // onClose
+ deferredCommandWrapper.addCommand(new Listener0() {
+ public void onEvent() {
+ foldableContent.attach();
+ contextPropEditorProvider.get().detach();
+ contextNavigator.attach();
+ if (session.getCurrentStateToken().equals(stateToken)) {
+ foldableContent.refreshState();
+ }
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+ });
+ editContent.setTextDescription(i18n.tWithNT("Edit", "used in button"));
+ editContent.setIconUrl("images/content_edit.png");
+ editContent.setLeftSeparator(ActionToolbarButtonSeparator.spacer);
+ contentActionRegistry.addAction(editContent, registerInTypes);
+ return editContent;
+ }
+
+ protected ActionMenuItemDescriptor<StateToken> createGoAction(String... registerInTypes) {
+ ActionMenuItemDescriptor<StateToken> go = new ActionMenuItemDescriptor<StateToken>(AccessRolDTO.Viewer,
+ new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ stateManager.gotoToken(token);
+ }
+ });
+ go.setMustBeAuthenticated(false);
+ go.setTextDescription(i18n.t("Open"));
+ go.setIconUrl("images/nav/go.png");
+ go.setEnableCondition(new ActionEnableCondition<StateToken>() {
+ public boolean mustBeEnabled(final StateToken itemToken) {
+ return !contextNavigator.isSelected(itemToken);
+ }
+ });
+ contextActionRegistry.addAction(go, registerInTypes);
+ return go;
+ }
+
+ protected ActionToolbarButtonDescriptor<StateToken> createGoHomeAction(String... registerInTypes) {
+ ActionToolbarButtonDescriptor<StateToken> goGroupHome = new ActionToolbarButtonDescriptor<StateToken>(
+ AccessRolDTO.Viewer, ActionToolbarPosition.topbar, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ stateManager.gotoToken(token.getGroup());
+ }
+ });
+ goGroupHome.setMustBeAuthenticated(false);
+ goGroupHome.setIconUrl("images/group-home.png");
+ goGroupHome.setEnableCondition(new ActionEnableCondition<StateToken>() {
+ public boolean mustBeEnabled(final StateToken itemToken) {
+ final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent().getStateToken();
+ return !itemToken.equals(defContentToken);
+ }
+ });
+ goGroupHome.setLeftSeparator(ActionToolbarButtonSeparator.fill);
+ contextActionRegistry.addAction(goGroupHome, registerInTypes);
+ return goGroupHome;
+ }
+
protected void createNewContainerAction(final String contentTypeId, final String iconUrl,
final String textDescription, final String parentMenuTitle, final String parentMenuSubtitle,
final String defaultName, Position position, String... registerInTypes) {
@@ -263,7 +353,8 @@
protected void createPostSessionInitActions() {
}
- protected ActionToolbarMenuDescriptor<StateToken> createRefreshCntAction(String parentMenuTitle) {
+ protected ActionToolbarMenuDescriptor<StateToken> createRefreshCntAction(String parentMenuTitle,
+ String... registerInTypes) {
final ActionToolbarMenuDescriptor<StateToken> refreshCnt = new ActionToolbarMenuDescriptor<StateToken>(
AccessRolDTO.Viewer, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
@@ -275,10 +366,12 @@
refreshCnt.setParentMenuTitle(parentMenuTitle);
refreshCnt.setTextDescription(i18n.t("Refresh"));
refreshCnt.setIconUrl("images/nav/refresh.png");
+ contentActionRegistry.addAction(refreshCnt, registerInTypes);
return refreshCnt;
}
- protected ActionToolbarMenuDescriptor<StateToken> createRefreshCxtAction(String parentMenuTitleCtx) {
+ protected ActionToolbarMenuDescriptor<StateToken> createRefreshCxtAction(String parentMenuTitleCtx,
+ String... registerInTypes) {
final ActionToolbarMenuDescriptor<StateToken> refreshCtx = new ActionToolbarMenuDescriptor<StateToken>(
AccessRolDTO.Viewer, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
@@ -290,11 +383,12 @@
refreshCtx.setParentMenuTitle(parentMenuTitleCtx);
refreshCtx.setTextDescription(i18n.t("Refresh"));
refreshCtx.setIconUrl("images/nav/refresh.png");
+ contextActionRegistry.addAction(refreshCtx, registerInTypes);
return refreshCtx;
}
protected ActionToolbarMenuAndItemDescriptor<StateToken> createRenameContentInCtxAction(String parentMenuTitleCtx,
- String textDescription) {
+ String textDescription, String... registerInTypes) {
final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtx = new ActionToolbarMenuAndItemDescriptor<StateToken>(
AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
@@ -303,10 +397,12 @@
});
renameCtx.setTextDescription(textDescription);
renameCtx.setParentMenuTitle(parentMenuTitleCtx);
+ contextActionRegistry.addAction(renameCtx, registerInTypes);
return renameCtx;
}
- protected ActionToolbarMenuDescriptor<StateToken> createSetAsDefContent(String parentMenuTitle) {
+ protected ActionToolbarMenuDescriptor<StateToken> createSetAsDefContent(String parentMenuTitle,
+ String... registerInTypes) {
final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupContent;
setAsDefGroupContent = new ActionToolbarMenuDescriptor<StateToken>(AccessRolDTO.Administrator,
ActionToolbarPosition.topbar, new Listener<StateToken>() {
@@ -331,6 +427,7 @@
}
});
setAsDefGroupContent.setParentMenuTitle(parentMenuTitle);
+ contentActionRegistry.addAction(setAsDefGroupContent, registerInTypes);
return setAsDefGroupContent;
}
@@ -359,8 +456,23 @@
return action;
}
+ protected ActionToolbarButtonDescriptor<StateToken> createTranslateAction(String... registerInTypes) {
+ 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"));
+ }
+ });
+ translateContent.setTextDescription(i18n.tWithNT("Translate", "used in button"));
+ translateContent.setToolTip(i18n.t("Translate this document to other languages"));
+ translateContent.setIconUrl("images/language.gif");
+ translateContent.setLeftSeparator(ActionToolbarButtonSeparator.spacer);
+ contentActionRegistry.addAction(translateContent, registerInTypes);
+ return translateContent;
+ }
+
protected ActionToolbarButtonAndItemDescriptor<StateToken> createUploadAction(final String textDescription,
- final String iconUrl, final String toolTip, final String permitedExtensions) {
+ final String iconUrl, final String toolTip, final String permitedExtensions, String... registerInTypes) {
final ActionToolbarButtonAndItemDescriptor<StateToken> uploadFile;
uploadFile = new ActionToolbarButtonAndItemDescriptor<StateToken>(AccessRolDTO.Editor,
ActionToolbarPosition.bottombar, new Listener<StateToken>() {
@@ -378,119 +490,22 @@
uploadFile.setTextDescription(textDescription);
uploadFile.setIconUrl(iconUrl);
uploadFile.setToolTip(toolTip);
+ contextActionRegistry.addAction(uploadFile, registerInTypes);
return uploadFile;
}
+ protected ActionToolbarButtonAndItemDescriptor<StateToken> createUploadMediaAction(String... registerInTypes) {
+ ActionToolbarButtonAndItemDescriptor<StateToken> uploadMedia = createUploadAction(i18n.t("Upload media"),
+ "images/nav/upload.png", i18n.t("Upload some media (images, videos)"),
+ session.getGalleryPermittedExtensions());
+ contextActionRegistry.addAction(uploadMedia, registerInTypes);
+ return uploadMedia;
+ }
+
protected void downloadContent(final StateToken token) {
fileDownloadProvider.get().downloadFile(token);
}
- private void createCommonActions() {
- go = new ActionMenuItemDescriptor<StateToken>(AccessRolDTO.Viewer, new Listener<StateToken>() {
- public void onEvent(final StateToken token) {
- stateManager.gotoToken(token);
- }
- });
- go.setMustBeAuthenticated(false);
- go.setTextDescription(i18n.t("Open"));
- go.setIconUrl("images/nav/go.png");
- go.setEnableCondition(new ActionEnableCondition<StateToken>() {
- public boolean mustBeEnabled(final StateToken itemToken) {
- return !contextNavigator.isSelected(itemToken);
- }
- });
-
- goGroupHome = new ActionToolbarButtonDescriptor<StateToken>(AccessRolDTO.Viewer, ActionToolbarPosition.topbar,
- new Listener<StateToken>() {
- public void onEvent(final StateToken token) {
- stateManager.gotoToken(token.getGroup());
- }
- });
- goGroupHome.setMustBeAuthenticated(false);
- goGroupHome.setIconUrl("images/group-home.png");
- goGroupHome.setEnableCondition(new ActionEnableCondition<StateToken>() {
- public boolean mustBeEnabled(final StateToken itemToken) {
- final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent().getStateToken();
- return !itemToken.equals(defContentToken);
- }
- });
- goGroupHome.setLeftSeparator(ActionToolbarButtonSeparator.fill);
-
- 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"));
- }
- });
- translateContent.setTextDescription(i18n.tWithNT("Translate", "used in button"));
- translateContent.setToolTip(i18n.t("Translate this document to other languages"));
- translateContent.setIconUrl("images/language.gif");
- translateContent.setLeftSeparator(ActionToolbarButtonSeparator.spacer);
-
- 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();
- foldableContent.detach();
- contextNavigator.detach();
- contextPropEditorProvider.get().attach();
- editor.editContent(session.getContentState().getContent(), new Listener<String>() {
- public void onEvent(final String html) {
- Site.showProgressSaving();
- contentServiceProvider.get().save(session.getUserHash(), stateToken, html,
- new AsyncCallback<Object>() {
- 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(Object param) {
- Site.hideProgress();
- session.getContentState().setContent(html);
- editor.onSaved();
- }
- });
- }
- }, new Listener0() {
- public void onEvent() {
- // onClose
- deferredCommandWrapper.addCommand(new Listener0() {
- public void onEvent() {
- foldableContent.attach();
- contextPropEditorProvider.get().detach();
- contextNavigator.attach();
- if (session.getCurrentStateToken().equals(stateToken)) {
- foldableContent.refreshState();
- }
- }
- });
- }
- });
- }
- });
- }
- });
- editContent.setTextDescription(i18n.tWithNT("Edit", "used in button"));
- editContent.setIconUrl("images/content_edit.png");
- editContent.setLeftSeparator(ActionToolbarButtonSeparator.spacer);
-
- }
-
- private void createCommonPostSessionInitActions() {
- uploadMedia = createUploadAction(i18n.t("Upload media"), "images/nav/upload.png",
- i18n.t("Upload some media (images, videos)"), session.getGalleryPermittedExtensions());
- }
-
/**
* For future use contentActionRegistry.addAction(setGroupLogo,
* TYPE_UPLOADEDFILE);
@@ -529,11 +544,12 @@
String... registerInTypes) {
switch (position) {
case ctx:
- contentActionRegistry.addAction(action, registerInTypes);
+ contextActionRegistry.addAction(action, registerInTypes);
break;
case cnt:
- contextActionRegistry.addAction(action, registerInTypes);
+ contentActionRegistry.addAction(action, registerInTypes);
break;
}
}
+
}
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-11-25 00:51:20 UTC (rev 967)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java 2008-11-25 13:33:20 UTC (rev 968)
@@ -30,6 +30,9 @@
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.MouseListenerAdapter;
import com.google.gwt.user.client.ui.Widget;
+import com.gwtext.client.core.Ext;
+import com.gwtext.client.core.Function;
+import com.gwtext.client.core.FxConfig;
public class EntityLicensePanel implements EntityLicenseView {
private final Label copyright;
@@ -48,11 +51,10 @@
licenseLabel = new Label();
licenseBar = new SimpleToolbar();
+ licenseBar.addSpacer();
+ licenseBar.add(licenseImage);
licenseBar.add(copyright);
licenseBar.add(licenseLabel);
- licenseBar.addSpacer();
- licenseBar.addSpacer();
- licenseBar.add(licenseImage);
final ClickListener clickListener = new ClickListener() {
public void onClick(Widget arg0) {
@@ -68,15 +70,18 @@
MouseListenerAdapter mouseListenerAdapter = new MouseListenerAdapter() {
@Override
public void onMouseEnter(Widget sender) {
- copyright.setVisible(true);
- licenseLabel.setVisible(true);
+ fade(true);
}
@Override
public void onMouseLeave(Widget sender) {
+ fade(false);
}
};
+
licenseImage.addMouseListener(mouseListenerAdapter);
+ copyright.addMouseListener(mouseListenerAdapter);
+ licenseLabel.addMouseListener(mouseListenerAdapter);
copyright.addStyleName("kune-Margin-Large-l");
licenseLabel.setStyleName("k-entitylicensepanel-licensetext");
@@ -102,8 +107,31 @@
public void showLicense(final String groupName, final LicenseDTO licenseDTO) {
copyright.setText(i18n.t("© [%s], under license: ", groupName));
licenseLabel.setText(licenseDTO.getLongName());
- copyright.setVisible(false);
- licenseLabel.setVisible(false);
licenseImage.setUrl(licenseDTO.getImageUrl());
+ fade(false);
}
+
+ private void fade(final boolean in) {
+ if (copyright.isVisible() != in) {
+ FxConfig fxConfig = new FxConfig(2);
+ FxConfig fxConfigVisible = new FxConfig(2);
+ fxConfigVisible.setAfterStyle(new Function() {
+ public void execute() {
+ setVisible(in);
+ }
+ });
+ if (in) {
+ Ext.get(copyright.getElement()).fadeIn(fxConfig);
+ Ext.get(licenseLabel.getElement()).fadeIn(fxConfigVisible);
+ } else {
+ Ext.get(copyright.getElement()).fadeOut(fxConfig);
+ Ext.get(licenseLabel.getElement()).fadeOut(fxConfigVisible);
+ }
+ }
+ }
+
+ private void setVisible(boolean visible) {
+ copyright.setVisible(visible);
+ licenseLabel.setVisible(visible);
+ }
}
1
0
r967 - in trunk/src/main/java/org/ourproject/kune: app/public/css blogs/client docs/client workspace/client workspace/client/licensefoot
by vjrj 25 Nov '08
by vjrj 25 Nov '08
25 Nov '08
Author: vjrj
Date: 2008-11-25 01:51:20 +0100 (Tue, 25 Nov 2008)
New Revision: 967
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/blogs/client/BlogClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java
Log:
Complete - task License onOver show details
Incomplete - task UI tools & workspace refactorization
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-11-24 20:24:03 UTC (rev 966)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-11-25 00:51:20 UTC (rev 967)
@@ -41,4 +41,4 @@
padding: 1px 0px 1px 1px;
text-decoration:none;
}
-*/.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-bsp-buddie{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-bsp-buddie td{padding:2px 3px;}.k-text-gray{color:gray;}
\ No newline at end of file
+*/.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-bsp-buddie{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-bsp-buddie td{padding:2px 3px;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;}
\ No newline at end of file
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-11-24 20:24:03 UTC (rev 966)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-11-25 00:51:20 UTC (rev 967)
@@ -797,4 +797,8 @@
.k-text-gray {
color: gray;
-}
\ No newline at end of file
+}
+
+.k-elp-limg {
+ margin-top: 4px;
+}
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2008-11-24 20:24:03 UTC (rev 966)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2008-11-25 00:51:20 UTC (rev 967)
@@ -29,8 +29,6 @@
import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
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.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
@@ -70,10 +68,10 @@
String parentMenuTitle = i18n.t("Post");
String parentMenuTitleCtx = i18n.t("Blog");
- final ActionToolbarMenuAndItemDescriptor<StateToken> addBlog = createContainerAction(TYPE_BLOG,
- "images/nav/blog_add.png", i18n.t("New blog"), parentMenuTitleCtx, i18n.t("New"), i18n.t("New blog"));
- final ActionToolbarMenuAndItemDescriptor<StateToken> addPost = createContentAction("images/nav/post_add.png",
- i18n.t("New post"), parentMenuTitleCtx, TYPE_POST);
+ createNewContainerAction(TYPE_BLOG, "images/nav/blog_add.png", i18n.t("New blog"), parentMenuTitleCtx,
+ i18n.t("New"), i18n.t("New blog"), Position.ctx, TYPE_ROOT);
+ createNewContentAction(TYPE_POST, "images/nav/post_add.png", i18n.t("New post"), parentMenuTitleCtx,
+ Position.ctx, TYPE_BLOG);
final ActionToolbarMenuAndItemDescriptor<StateToken> delContainer = createDelContainerAction("Delete blog",
parentMenuTitleCtx);
@@ -95,51 +93,30 @@
final ActionToolbarMenuDescriptor<StateToken> refreshCnt = createRefreshCntAction(parentMenuTitle);
final ActionToolbarMenuDescriptor<StateToken> refreshCtx = createRefreshCxtAction(parentMenuTitleCtx);
-
final ActionToolbarButtonAndItemDescriptor<StateToken> uploadFile = createUploadAction(i18n.t("Upload file"),
"images/nav/upload.png", i18n.t("Upload some files (images, PDFs, ...)"), null);
- final ActionToolbarMenuDescriptor<StateToken> setPublishStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("Published online"), parentMenuTitle,
- ContentStatusDTO.publishedOnline);
- final ActionToolbarMenuDescriptor<StateToken> setEditionInProgressStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("Editing in progress"), parentMenuTitle,
- ContentStatusDTO.editingInProgress);
- final ActionToolbarMenuDescriptor<StateToken> setRejectStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("Rejected"), parentMenuTitle, ContentStatusDTO.rejected);
- final ActionToolbarMenuDescriptor<StateToken> setSubmittedForPublishStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("Submitted for publish"), parentMenuTitle,
- ContentStatusDTO.publishedOnline);
- final ActionToolbarMenuDescriptor<StateToken> setInTheDustBinStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("In the dustbin"), parentMenuTitle, ContentStatusDTO.inTheDustbin);
-
final String[] all = { TYPE_ROOT, TYPE_BLOG, TYPE_POST, TYPE_UPLOADEDFILE };
+ final String[] contentsModerated = { TYPE_POST, TYPE_UPLOADEDFILE };
final String[] containersNoRoot = { TYPE_BLOG };
final String[] containers = { TYPE_ROOT, TYPE_BLOG };
final String[] contents = { TYPE_POST, TYPE_UPLOADEDFILE };
- final String[] contentsModerated = { TYPE_POST, TYPE_UPLOADEDFILE };
- contentActionRegistry.addAction(setPublishStatus, contentsModerated);
- contentActionRegistry.addAction(setEditionInProgressStatus, contentsModerated);
- contentActionRegistry.addAction(setRejectStatus, contentsModerated);
- contentActionRegistry.addAction(setSubmittedForPublishStatus, contentsModerated);
- contentActionRegistry.addAction(setInTheDustBinStatus, contentsModerated);
- contextActionRegistry.addAction(addBlog, TYPE_ROOT);
- contextActionRegistry.addAction(addPost, TYPE_BLOG);
+ createContentModeratedActions(parentMenuTitle, contentsModerated);
+
contextActionRegistry.addAction(go, all);
contentActionRegistry.addAction(renameCtn, contents);
contextActionRegistry.addAction(renameCtx, containersNoRoot);
contextActionRegistry.addAction(refreshCtx, containers);
contentActionRegistry.addAction(refreshCnt, contents);
contextActionRegistry.addAction(uploadFile, TYPE_BLOG);
- contentActionRegistry.addAction(download, TYPE_UPLOADEDFILE);
contentActionRegistry.addAction(delContent, contents);
contextActionRegistry.addAction(delContainer, containersNoRoot);
contentActionRegistry.addAction(setAsDefGroupCnt, TYPE_POST, TYPE_UPLOADEDFILE);
// ContentRPC Authorized must permit folders
// contentActionRegistry.addAction(setAsDefGroupCxt, TYPE_BLOG);
+
contextActionRegistry.addAction(goGroupHome, containers);
- contextActionRegistry.addAction(downloadCtx, TYPE_UPLOADEDFILE);
contentActionRegistry.addAction(editContent, TYPE_POST);
// contentActionRegistry.addAction(translateContent, );
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-11-24 20:24:03 UTC (rev 966)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-11-25 00:51:20 UTC (rev 967)
@@ -32,8 +32,6 @@
import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
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.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
@@ -73,19 +71,17 @@
String parentMenuTitle = i18n.t("File");
String parentMenuTitleCtx = i18n.t("Folder");
- final ActionToolbarMenuAndItemDescriptor<StateToken> addFolder = createContainerAction(TYPE_FOLDER,
- "images/nav/folder_add.png", i18n.t("New folder"), parentMenuTitleCtx, i18n.t("New"),
- i18n.t("New folder"));
- final ActionToolbarMenuAndItemDescriptor<StateToken> addGallery = createContainerAction(TYPE_GALLERY,
- "images/nav/gallery_add.png", i18n.t("New gallery"), parentMenuTitleCtx, i18n.t("New"),
- i18n.t("New gallery"));
- final ActionToolbarMenuAndItemDescriptor<StateToken> addWiki = createContainerAction(TYPE_WIKI,
- "images/nav/wiki_add.png", i18n.t("New wiki"), parentMenuTitleCtx, i18n.t("New"), i18n.t("wiki"));
+ createNewContainerAction(TYPE_FOLDER, "images/nav/folder_add.png", i18n.t("New folder"), parentMenuTitleCtx,
+ i18n.t("New"), i18n.t("New folder"), Position.ctx, TYPE_FOLDER);
+ createNewContainerAction(TYPE_GALLERY, "images/nav/gallery_add.png", i18n.t("New gallery"), parentMenuTitleCtx,
+ i18n.t("New"), i18n.t("New gallery"), Position.ctx, TYPE_ROOT);
+ createNewContainerAction(TYPE_WIKI, "images/nav/wiki_add.png", i18n.t("New wiki"), parentMenuTitleCtx,
+ i18n.t("New"), i18n.t("wiki"), Position.ctx, TYPE_ROOT);
- final ActionToolbarMenuAndItemDescriptor<StateToken> addDoc = createContentAction("images/nav/page_add.png",
- i18n.t("New document"), parentMenuTitleCtx, TYPE_DOCUMENT);
- final ActionToolbarMenuAndItemDescriptor<StateToken> addWikiPage = createContentAction(
- "images/nav/wikipage_add.png", parentMenuTitleCtx, i18n.t("New wikipage"), TYPE_WIKIPAGE);
+ createNewContentAction(TYPE_DOCUMENT, "images/nav/page_add.png", i18n.t("New document"), parentMenuTitleCtx,
+ Position.ctx, TYPE_ROOT, TYPE_FOLDER);
+ createNewContentAction(TYPE_WIKIPAGE, "images/nav/wikipage_add.png", parentMenuTitleCtx,
+ i18n.t("New wikipage"), Position.ctx, TYPE_WIKI);
final ActionToolbarMenuAndItemDescriptor<StateToken> delContainer = createDelContainerAction("Delete folder",
parentMenuTitleCtx);
@@ -111,20 +107,6 @@
final ActionToolbarButtonAndItemDescriptor<StateToken> uploadFile = createUploadAction(i18n.t("Upload file"),
"images/nav/upload.png", i18n.t("Upload some files (images, PDFs, ...)"), null);
- final ActionToolbarMenuDescriptor<StateToken> setPublishStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("Published online"), parentMenuTitle,
- ContentStatusDTO.publishedOnline);
- final ActionToolbarMenuDescriptor<StateToken> setEditionInProgressStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("Editing in progress"), parentMenuTitle,
- ContentStatusDTO.editingInProgress);
- final ActionToolbarMenuDescriptor<StateToken> setRejectStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("Rejected"), parentMenuTitle, ContentStatusDTO.rejected);
- final ActionToolbarMenuDescriptor<StateToken> setSubmittedForPublishStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("Submitted for publish"), parentMenuTitle,
- ContentStatusDTO.publishedOnline);
- final ActionToolbarMenuDescriptor<StateToken> setInTheDustBinStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("In the dustbin"), parentMenuTitle, ContentStatusDTO.inTheDustbin);
-
final String[] all = { TYPE_ROOT, TYPE_FOLDER, TYPE_DOCUMENT, TYPE_GALLERY, TYPE_WIKI, TYPE_WIKIPAGE,
TYPE_UPLOADEDFILE };
final String[] containersNoRoot = { TYPE_FOLDER, TYPE_GALLERY, TYPE_WIKI };
@@ -132,29 +114,20 @@
final String[] contents = { TYPE_DOCUMENT, TYPE_WIKIPAGE, TYPE_UPLOADEDFILE };
final String[] contentsModerated = { TYPE_DOCUMENT, TYPE_UPLOADEDFILE };
- 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(addWikiPage, TYPE_WIKI);
- contextActionRegistry.addAction(addFolder, TYPE_ROOT, TYPE_FOLDER);
- contextActionRegistry.addAction(addWiki, TYPE_ROOT);
- contextActionRegistry.addAction(addGallery, TYPE_ROOT);
+ createContentModeratedActions(parentMenuTitle, contentsModerated);
+ createDownloadActions(TYPE_UPLOADEDFILE);
+
contextActionRegistry.addAction(go, all);
contentActionRegistry.addAction(renameCtn, contents);
contextActionRegistry.addAction(renameCtx, containersNoRoot);
contextActionRegistry.addAction(refreshCtx, containers);
contentActionRegistry.addAction(refreshCnt, contents);
contextActionRegistry.addAction(uploadFile, TYPE_ROOT, TYPE_FOLDER);
- contentActionRegistry.addAction(download, TYPE_UPLOADEDFILE);
contentActionRegistry.addAction(delContent, contents);
contextActionRegistry.addAction(delContainer, containersNoRoot);
contentActionRegistry.addAction(setAsDefGroupCnt, TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
// contentActionRegistry.addAction(setAsDefGroupCxt,);
contextActionRegistry.addAction(goGroupHome, containers);
- contextActionRegistry.addAction(downloadCtx, TYPE_UPLOADEDFILE);
contentActionRegistry.addAction(editContent, TYPE_DOCUMENT, TYPE_WIKIPAGE);
contentActionRegistry.addAction(translateContent, TYPE_DOCUMENT, TYPE_FOLDER, TYPE_GALLERY, TYPE_UPLOADEDFILE,
TYPE_WIKI, TYPE_WIKIPAGE);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-11-24 20:24:03 UTC (rev 966)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-11-25 00:51:20 UTC (rev 967)
@@ -1,5 +1,7 @@
package org.ourproject.kune.workspace.client;
+import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_UPLOADEDFILE;
+
import org.ourproject.kune.platf.client.actions.ActionEnableCondition;
import org.ourproject.kune.platf.client.actions.ActionMenuItemDescriptor;
import org.ourproject.kune.platf.client.actions.ActionToolbarButtonAndItemDescriptor;
@@ -44,6 +46,10 @@
public abstract class AbstractFoldableContentActions {
+ protected enum Position {
+ cnt, ctx
+ }
+
protected final Session session;
protected final StateManager stateManager;
protected final I18nUITranslationService i18n;
@@ -63,8 +69,6 @@
protected ActionMenuItemDescriptor<StateToken> go;
protected ActionToolbarButtonDescriptor<StateToken> goGroupHome;
protected ActionToolbarButtonAndItemDescriptor<StateToken> uploadMedia;
- protected ActionToolbarButtonDescriptor<StateToken> download;
- protected ActionMenuItemDescriptor<StateToken> downloadCtx;
protected ActionToolbarButtonDescriptor<StateToken> translateContent;
protected ActionToolbarButtonDescriptor<StateToken> editContent;
@@ -105,53 +109,27 @@
protected void createActions() {
}
- protected ActionToolbarMenuAndItemDescriptor<StateToken> createContainerAction(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,
- contentTypeId, new AsyncCallbackSimple<StateContainerDTO>() {
- public void onSuccess(final StateContainerDTO state) {
- contextNavigator.setEditOnNextStateChange(true);
- stateManager.setRetrievedState(state);
- }
- });
- }
- });
- addFolder.setTextDescription(textDescription);
- addFolder.setParentMenuTitle(parentMenuTitle);
- addFolder.setParentSubMenuTitle(parentMenuSubtitle);
- addFolder.setIconUrl(iconUrl);
- return addFolder;
+ protected void createContentModeratedActions(String parentMenuTitle, final String... contentsModerated) {
+ final ActionToolbarMenuDescriptor<StateToken> setPublishStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("Published online"), parentMenuTitle,
+ ContentStatusDTO.publishedOnline);
+ final ActionToolbarMenuDescriptor<StateToken> setEditionInProgressStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("Editing in progress"), parentMenuTitle,
+ ContentStatusDTO.editingInProgress);
+ final ActionToolbarMenuDescriptor<StateToken> setRejectStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("Rejected"), parentMenuTitle, ContentStatusDTO.rejected);
+ final ActionToolbarMenuDescriptor<StateToken> setSubmittedForPublishStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("Submitted for publish"), parentMenuTitle,
+ ContentStatusDTO.publishedOnline);
+ final ActionToolbarMenuDescriptor<StateToken> setInTheDustBinStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("In the dustbin"), parentMenuTitle, ContentStatusDTO.inTheDustbin);
+ contentActionRegistry.addAction(setPublishStatus, contentsModerated);
+ contentActionRegistry.addAction(setEditionInProgressStatus, contentsModerated);
+ contentActionRegistry.addAction(setRejectStatus, contentsModerated);
+ contentActionRegistry.addAction(setSubmittedForPublishStatus, contentsModerated);
+ contentActionRegistry.addAction(setInTheDustBinStatus, contentsModerated);
}
- protected ActionToolbarMenuAndItemDescriptor<StateToken> createContentAction(String iconUrl,
- final String description, final String parentMenuTitle, final String typeId) {
- 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(),
- session.getCurrentState().getStateToken(), description, typeId,
- new AsyncCallbackSimple<StateContentDTO>() {
- public void onSuccess(final StateContentDTO state) {
- contextNavigator.setEditOnNextStateChange(true);
- stateManager.setRetrievedState(state);
- }
- });
- }
- });
- addDoc.setTextDescription(description);
- addDoc.setParentMenuTitle(parentMenuTitle);
- addDoc.setParentSubMenuTitle(i18n.t("New"));
- addDoc.setIconUrl(iconUrl);
- return addDoc;
- }
-
protected ActionToolbarMenuAndItemDescriptor<StateToken> createContentRenameAction(String parentMenuTitle,
String textDescription) {
final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtn = new ActionToolbarMenuAndItemDescriptor<StateToken>(
@@ -209,6 +187,79 @@
return delContent;
}
+ protected void createDownloadActions(String typeUploadedfile) {
+ ActionToolbarButtonDescriptor<StateToken> download = new ActionToolbarButtonDescriptor<StateToken>(
+ AccessRolDTO.Viewer, ActionToolbarPosition.topbar, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ downloadContent(token);
+ }
+ });
+ download.setMustBeAuthenticated(false);
+ download.setTextDescription(i18n.t("Download"));
+ download.setToolTip(i18n.t("Download this file"));
+ download.setIconUrl("images/nav/download.png");
+
+ ActionMenuItemDescriptor<StateToken> downloadCtx = new ActionMenuItemDescriptor<StateToken>(
+ AccessRolDTO.Viewer, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ downloadContent(token);
+ }
+ });
+ downloadCtx.setMustBeAuthenticated(false);
+ downloadCtx.setTextDescription(i18n.t("Download"));
+ downloadCtx.setIconUrl("images/nav/download.png");
+
+ contentActionRegistry.addAction(download, TYPE_UPLOADEDFILE);
+ contextActionRegistry.addAction(downloadCtx, TYPE_UPLOADEDFILE);
+ }
+
+ protected void createNewContainerAction(final String contentTypeId, final String iconUrl,
+ final String textDescription, final String parentMenuTitle, final String parentMenuSubtitle,
+ final String defaultName, Position position, String... registerInTypes) {
+ 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,
+ contentTypeId, new AsyncCallbackSimple<StateContainerDTO>() {
+ public void onSuccess(final StateContainerDTO state) {
+ contextNavigator.setEditOnNextStateChange(true);
+ stateManager.setRetrievedState(state);
+ }
+ });
+ }
+ });
+ addFolder.setTextDescription(textDescription);
+ addFolder.setParentMenuTitle(parentMenuTitle);
+ addFolder.setParentSubMenuTitle(parentMenuSubtitle);
+ addFolder.setIconUrl(iconUrl);
+ register(addFolder, position, registerInTypes);
+ }
+
+ protected void createNewContentAction(final String typeId, String iconUrl, final String description,
+ final String parentMenuTitle, Position position, String... registerInTypes) {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addContent = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ Site.showProgressProcessing();
+ contentServiceProvider.get().addContent(session.getUserHash(),
+ session.getCurrentState().getStateToken(), description, typeId,
+ new AsyncCallbackSimple<StateContentDTO>() {
+ public void onSuccess(final StateContentDTO state) {
+ contextNavigator.setEditOnNextStateChange(true);
+ stateManager.setRetrievedState(state);
+ }
+ });
+ }
+ });
+ addContent.setTextDescription(description);
+ addContent.setParentMenuTitle(parentMenuTitle);
+ addContent.setParentSubMenuTitle(i18n.t("New"));
+ addContent.setIconUrl(iconUrl);
+ register(addContent, position, registerInTypes);
+ }
+
protected void createPostSessionInitActions() {
}
@@ -365,26 +416,6 @@
});
goGroupHome.setLeftSeparator(ActionToolbarButtonSeparator.fill);
- download = new ActionToolbarButtonDescriptor<StateToken>(AccessRolDTO.Viewer, ActionToolbarPosition.topbar,
- new Listener<StateToken>() {
- public void onEvent(final StateToken token) {
- downloadContent(token);
- }
- });
- download.setMustBeAuthenticated(false);
- download.setTextDescription(i18n.t("Download"));
- download.setToolTip(i18n.t("Download this file"));
- download.setIconUrl("images/nav/download.png");
-
- downloadCtx = new ActionMenuItemDescriptor<StateToken>(AccessRolDTO.Viewer, new Listener<StateToken>() {
- public void onEvent(final StateToken token) {
- downloadContent(token);
- }
- });
- downloadCtx.setMustBeAuthenticated(false);
- downloadCtx.setTextDescription(i18n.t("Download"));
- downloadCtx.setIconUrl("images/nav/download.png");
-
translateContent = new ActionToolbarButtonDescriptor<StateToken>(AccessRolDTO.Editor,
ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
@@ -493,4 +524,16 @@
});
return setGroupLogo;
}
+
+ private void register(ActionToolbarMenuAndItemDescriptor<StateToken> action, Position position,
+ String... registerInTypes) {
+ switch (position) {
+ case ctx:
+ contentActionRegistry.addAction(action, registerInTypes);
+ break;
+ case cnt:
+ contextActionRegistry.addAction(action, registerInTypes);
+ break;
+ }
+ }
}
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-11-24 20:24:03 UTC (rev 966)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensefoot/EntityLicensePanel.java 2008-11-25 00:51:20 UTC (rev 967)
@@ -28,6 +28,7 @@
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.MouseListenerAdapter;
import com.google.gwt.user.client.ui.Widget;
public class EntityLicensePanel implements EntityLicenseView {
@@ -63,10 +64,23 @@
licenseImage.addClickListener(clickListener);
copyright.setVisible(false);
licenseLabel.setVisible(false);
- licenseImage.setVisible(false);
+ MouseListenerAdapter mouseListenerAdapter = new MouseListenerAdapter() {
+ @Override
+ public void onMouseEnter(Widget sender) {
+ copyright.setVisible(true);
+ licenseLabel.setVisible(true);
+ }
+
+ @Override
+ public void onMouseLeave(Widget sender) {
+ }
+ };
+ licenseImage.addMouseListener(mouseListenerAdapter);
+
copyright.addStyleName("kune-Margin-Large-l");
licenseLabel.setStyleName("k-entitylicensepanel-licensetext");
+ licenseImage.setStyleName("k-elp-limg");
}
public void attach() {
@@ -88,9 +102,8 @@
public void showLicense(final String groupName, final LicenseDTO licenseDTO) {
copyright.setText(i18n.t("© [%s], under license: ", groupName));
licenseLabel.setText(licenseDTO.getLongName());
- copyright.setVisible(true);
- licenseLabel.setVisible(true);
- licenseImage.setVisible(true);
+ copyright.setVisible(false);
+ licenseLabel.setVisible(false);
licenseImage.setUrl(licenseDTO.getImageUrl());
}
}
1
0
Author: vjrj
Date: 2008-11-24 21:24:03 +0100 (Mon, 24 Nov 2008)
New Revision: 966
Added:
trunk/src/main/java/org/ourproject/kune/blogs/
trunk/src/main/java/org/ourproject/kune/blogs/Kune-Blogs.gwt.xml
trunk/src/main/java/org/ourproject/kune/blogs/client/
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContent.java
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPanel.java
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentView.java
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewer.java
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPanel.java
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerView.java
trunk/src/main/java/org/ourproject/kune/blogs/client/ctx/
trunk/src/main/java/org/ourproject/kune/blogs/client/ctx/BlogContext.java
trunk/src/main/java/org/ourproject/kune/blogs/client/ctx/BlogContextPresenter.java
trunk/src/main/java/org/ourproject/kune/blogs/public/
trunk/src/main/java/org/ourproject/kune/blogs/server/
trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerModule.java
trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java
Modified:
trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java
trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java
trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPanel.java
trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java
trunk/src/main/java/org/ourproject/kune/platf/client/tool/ToolSelectorPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/GroupManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java
Log:
New blog tool.
Incomplete - task UI tools & workspace refactorization
Modified: trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2008-11-24 20:24:03 UTC (rev 966)
@@ -13,6 +13,7 @@
<inherits name='org.ourproject.kune.platf.Kune-Platform' />
<inherits name='org.ourproject.kune.docs.Kune-Docs' />
+ <inherits name='org.ourproject.kune.blogs.Kune-Blogs' />
<inherits name='org.ourproject.kune.chat.Kune-Chat' />
<!-- gwt-ext -->
Modified: trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/app/client/KuneEntryPoint.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -19,6 +19,7 @@
*/
package org.ourproject.kune.app.client;
+import org.ourproject.kune.blogs.client.BlogClientModule;
import org.ourproject.kune.chat.client.ChatClientModule;
import org.ourproject.kune.docs.client.DocumentClientModule;
import org.ourproject.kune.platf.client.services.KuneCoreModule;
@@ -54,7 +55,7 @@
public void onModuleLoadCont() {
Suco.install(new KuneCoreModule(), new KuneRegistryModule(), new KunePlatformModule(),
- new KuneWorkspaceModule(), new EmiteUIModule(), new DocumentClientModule(), new ChatClientModule(),
- new KuneModule());
+ new KuneWorkspaceModule(), new EmiteUIModule(), new DocumentClientModule(), new BlogClientModule(),
+ new ChatClientModule(), new KuneModule());
}
}
Modified: trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/app/server/KuneRackModule.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -19,6 +19,7 @@
*/
package org.ourproject.kune.app.server;
+import org.ourproject.kune.blogs.server.BlogServerModule;
import org.ourproject.kune.chat.server.ChatServerModule;
import org.ourproject.kune.docs.server.DocumentServerModule;
import org.ourproject.kune.platf.client.rpc.ContentService;
@@ -109,6 +110,7 @@
builder.use(new ServletModule());
builder.use(new PlatformServerModule());
builder.use(new DocumentServerModule());
+ builder.use(new BlogServerModule());
builder.use(new ChatServerModule());
builder.use(new RESTServicesModule());
builder.use(configModule);
Added: trunk/src/main/java/org/ourproject/kune/blogs/Kune-Blogs.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/Kune-Blogs.gwt.xml 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/Kune-Blogs.gwt.xml 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,5 @@
+<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<module>
+ <inherits name='org.ourproject.kune.platf.Kune-Platform' />
+ <inherits name='org.ourproject.kune.workspace.Kune-Workspace' />
+</module>
Added: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,151 @@
+/*
+ *
+ * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */package org.ourproject.kune.blogs.client;
+
+import static org.ourproject.kune.blogs.client.BlogClientTool.TYPE_BLOG;
+import static org.ourproject.kune.blogs.client.BlogClientTool.TYPE_POST;
+import static org.ourproject.kune.blogs.client.BlogClientTool.TYPE_ROOT;
+import static org.ourproject.kune.blogs.client.BlogClientTool.TYPE_UPLOADEDFILE;
+
+import org.ourproject.kune.blogs.client.cnt.BlogViewer;
+import org.ourproject.kune.platf.client.actions.ActionToolbarButtonAndItemDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarMenuAndItemDescriptor;
+import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor;
+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.ContentStatusDTO;
+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;
+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.platf.client.utils.DeferredCommandWrapper;
+import org.ourproject.kune.workspace.client.AbstractFoldableContentActions;
+import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
+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 com.calclab.suco.client.ioc.Provider;
+
+public class BlogClientActions extends AbstractFoldableContentActions {
+ public BlogClientActions(final I18nUITranslationService i18n, final ContextNavigator contextNavigator,
+ final Session session, final StateManager stateManager,
+ final DeferredCommandWrapper deferredCommandWrapper,
+ 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<TextEditor> textEditorProvider, final KuneErrorHandler errorHandler,
+ final BlogViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider) {
+ super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
+ contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
+ contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
+ documentViewer, entityLogo);
+ }
+
+ @Override
+ protected void createActions() {
+ String parentMenuTitle = i18n.t("Post");
+ String parentMenuTitleCtx = i18n.t("Blog");
+
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addBlog = createContainerAction(TYPE_BLOG,
+ "images/nav/blog_add.png", i18n.t("New blog"), parentMenuTitleCtx, i18n.t("New"), i18n.t("New blog"));
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addPost = createContentAction("images/nav/post_add.png",
+ i18n.t("New post"), parentMenuTitleCtx, TYPE_POST);
+
+ final ActionToolbarMenuAndItemDescriptor<StateToken> delContainer = createDelContainerAction("Delete blog",
+ parentMenuTitleCtx);
+
+ final ActionToolbarMenuAndItemDescriptor<StateToken> delContent = createDelContentAction(parentMenuTitle,
+ i18n.t("Delete"));
+
+ final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtn = createContentRenameAction(parentMenuTitle,
+ i18n.t("Rename"));
+
+ final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtx = createRenameContentInCtxAction(
+ parentMenuTitleCtx, i18n.t("Rename"));
+
+ final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCnt = createSetAsDefContent(parentMenuTitle);
+
+ // final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCxt =
+ // createSetAsDefContent(parentMenuTitleCtx);
+
+ final ActionToolbarMenuDescriptor<StateToken> refreshCnt = createRefreshCntAction(parentMenuTitle);
+
+ final ActionToolbarMenuDescriptor<StateToken> refreshCtx = createRefreshCxtAction(parentMenuTitleCtx);
+
+ final ActionToolbarButtonAndItemDescriptor<StateToken> uploadFile = createUploadAction(i18n.t("Upload file"),
+ "images/nav/upload.png", i18n.t("Upload some files (images, PDFs, ...)"), null);
+
+ final ActionToolbarMenuDescriptor<StateToken> setPublishStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("Published online"), parentMenuTitle,
+ ContentStatusDTO.publishedOnline);
+ final ActionToolbarMenuDescriptor<StateToken> setEditionInProgressStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("Editing in progress"), parentMenuTitle,
+ ContentStatusDTO.editingInProgress);
+ final ActionToolbarMenuDescriptor<StateToken> setRejectStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("Rejected"), parentMenuTitle, ContentStatusDTO.rejected);
+ final ActionToolbarMenuDescriptor<StateToken> setSubmittedForPublishStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("Submitted for publish"), parentMenuTitle,
+ ContentStatusDTO.publishedOnline);
+ final ActionToolbarMenuDescriptor<StateToken> setInTheDustBinStatus = createSetStatusAction(
+ AccessRolDTO.Administrator, i18n.t("In the dustbin"), parentMenuTitle, ContentStatusDTO.inTheDustbin);
+
+ final String[] all = { TYPE_ROOT, TYPE_BLOG, TYPE_POST, TYPE_UPLOADEDFILE };
+ final String[] containersNoRoot = { TYPE_BLOG };
+ final String[] containers = { TYPE_ROOT, TYPE_BLOG };
+ final String[] contents = { TYPE_POST, TYPE_UPLOADEDFILE };
+ final String[] contentsModerated = { TYPE_POST, TYPE_UPLOADEDFILE };
+
+ contentActionRegistry.addAction(setPublishStatus, contentsModerated);
+ contentActionRegistry.addAction(setEditionInProgressStatus, contentsModerated);
+ contentActionRegistry.addAction(setRejectStatus, contentsModerated);
+ contentActionRegistry.addAction(setSubmittedForPublishStatus, contentsModerated);
+ contentActionRegistry.addAction(setInTheDustBinStatus, contentsModerated);
+ contextActionRegistry.addAction(addBlog, TYPE_ROOT);
+ contextActionRegistry.addAction(addPost, TYPE_BLOG);
+ contextActionRegistry.addAction(go, all);
+ contentActionRegistry.addAction(renameCtn, contents);
+ contextActionRegistry.addAction(renameCtx, containersNoRoot);
+ contextActionRegistry.addAction(refreshCtx, containers);
+ contentActionRegistry.addAction(refreshCnt, contents);
+ contextActionRegistry.addAction(uploadFile, TYPE_BLOG);
+ contentActionRegistry.addAction(download, TYPE_UPLOADEDFILE);
+ contentActionRegistry.addAction(delContent, contents);
+ contextActionRegistry.addAction(delContainer, containersNoRoot);
+ contentActionRegistry.addAction(setAsDefGroupCnt, TYPE_POST, TYPE_UPLOADEDFILE);
+ // ContentRPC Authorized must permit folders
+ // contentActionRegistry.addAction(setAsDefGroupCxt, TYPE_BLOG);
+ contextActionRegistry.addAction(goGroupHome, containers);
+ contextActionRegistry.addAction(downloadCtx, TYPE_UPLOADEDFILE);
+ contentActionRegistry.addAction(editContent, TYPE_POST);
+ // contentActionRegistry.addAction(translateContent, );
+ }
+
+ @Override
+ protected void createPostSessionInitActions() {
+ // contextActionRegistry.addAction(uploadMedia, TYPE_GALLERY);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,119 @@
+/*
+ *
+ * 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.blogs.client;
+
+import org.ourproject.kune.blogs.client.cnt.BlogFolderContent;
+import org.ourproject.kune.blogs.client.cnt.BlogFolderContentPanel;
+import org.ourproject.kune.blogs.client.cnt.BlogFolderContentPresenter;
+import org.ourproject.kune.blogs.client.cnt.BlogFolderContentView;
+import org.ourproject.kune.blogs.client.cnt.BlogViewer;
+import org.ourproject.kune.blogs.client.cnt.BlogViewerPanel;
+import org.ourproject.kune.blogs.client.cnt.BlogViewerPresenter;
+import org.ourproject.kune.blogs.client.cnt.BlogViewerView;
+import org.ourproject.kune.blogs.client.ctx.BlogContext;
+import org.ourproject.kune.blogs.client.ctx.BlogContextPresenter;
+import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
+import org.ourproject.kune.platf.client.actions.ContextActionRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
+import org.ourproject.kune.platf.client.app.ToolGroup;
+import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
+import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.tool.ToolSelector;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
+import org.ourproject.kune.platf.client.ui.upload.FileUploader;
+import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper;
+import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
+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.themes.WsThemePresenter;
+
+import com.calclab.suco.client.ioc.decorator.Singleton;
+import com.calclab.suco.client.ioc.module.AbstractModule;
+import com.calclab.suco.client.ioc.module.Factory;
+
+public class BlogClientModule extends AbstractModule {
+
+ @Override
+ public void onInstall() {
+
+ register(ToolGroup.class, new Factory<BlogClientTool>(BlogClientTool.class) {
+ @Override
+ public BlogClientTool create() {
+ $(BlogClientActions.class);
+ return new BlogClientTool($(I18nUITranslationService.class), $(ToolSelector.class),
+ $(WsThemePresenter.class), $(WorkspaceSkeleton.class), $(ContentCapabilitiesRegistry.class));
+ }
+ });
+
+ register(ToolGroup.class, new Factory<BlogClientActions>(BlogClientActions.class) {
+ @Override
+ public BlogClientActions create() {
+ return new BlogClientActions($(I18nUITranslationService.class), $(ContextNavigator.class),
+ $(Session.class), $(StateManager.class), $(DeferredCommandWrapper.class),
+ $$(ContentServiceAsync.class), $$(GroupServiceAsync.class), $$(FileUploader.class),
+ $(ContentActionRegistry.class), $(ContextActionRegistry.class), $$(FileDownloadUtils.class),
+ $(EntityLogo.class), $$(TextEditor.class), $(KuneErrorHandler.class), $(BlogViewer.class),
+ $$(ContextPropEditor.class));
+ }
+ });
+
+ register(ToolGroup.class, new Factory<BlogContext>(BlogContext.class) {
+ @Override
+ public BlogContext create() {
+ final BlogContextPresenter presenter = new BlogContextPresenter($(StateManager.class),
+ $$(ContextNavigator.class), $$(ContextPropEditor.class));
+ return presenter;
+ }
+ });
+
+ register(Singleton.class, new Factory<BlogViewer>(BlogViewer.class) {
+ @Override
+ public BlogViewer create() {
+ final BlogViewerPresenter presenter = new BlogViewerPresenter($(StateManager.class), $(Session.class),
+ $(I18nUITranslationService.class), $(ActionContentToolbar.class),
+ $(ContentActionRegistry.class), $$(FileDownloadUtils.class));
+ final BlogViewerView view = new BlogViewerPanel($(WorkspaceSkeleton.class),
+ $(I18nTranslationService.class));
+ presenter.init(view);
+ return presenter;
+ }
+ });
+
+ register(ToolGroup.class, new Factory<BlogFolderContent>(BlogFolderContent.class) {
+ @Override
+ public BlogFolderContent create() {
+ final BlogFolderContentPresenter presenter = new BlogFolderContentPresenter($(StateManager.class),
+ $(Session.class), $(ActionContentToolbar.class), $(ContentActionRegistry.class),
+ $(I18nTranslationService.class));
+ final BlogFolderContentView view = new BlogFolderContentPanel($(WorkspaceSkeleton.class),
+ $(I18nTranslationService.class));
+ presenter.init(view);
+ return presenter;
+ }
+ });
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,62 @@
+/*
+ *
+ * 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.blogs.client;
+
+import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
+import org.ourproject.kune.platf.client.tool.FoldableAbstractClientTool;
+import org.ourproject.kune.platf.client.tool.ToolSelector;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+
+public class BlogClientTool extends FoldableAbstractClientTool {
+ public static final String TYPE_ROOT = "blogs.root";
+ public static final String TYPE_BLOG = "blogs.blog";
+ public static final String TYPE_POST = "blogs.post";
+ public static final String TYPE_UPLOADEDFILE = "blogs.uploaded";
+ public static final String NAME = "blogs";
+
+ public BlogClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
+ final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
+ ContentCapabilitiesRegistry contentCapabilitiesRegistry) {
+ super(NAME, i18n.t("blogs"), toolSelector, wsThemePresenter, ws, contentCapabilitiesRegistry);
+
+ // registerAclEditableTypes();
+ registerAuthorableTypes(TYPE_POST, TYPE_UPLOADEDFILE);
+ registerDragableTypes(TYPE_UPLOADEDFILE);
+ registerDropableTypes(TYPE_ROOT);
+ registerPublishModerableTypes(TYPE_POST, TYPE_UPLOADEDFILE);
+ registerRateableTypes(TYPE_POST, TYPE_UPLOADEDFILE);
+ registerRenamableTypes(TYPE_BLOG, TYPE_POST, TYPE_UPLOADEDFILE);
+ registerTageableTypes(TYPE_BLOG, TYPE_UPLOADEDFILE, TYPE_POST);
+ // registerTranslatableTypes();
+
+ registerIcons();
+ }
+
+ public String getName() {
+ return NAME;
+ }
+
+ protected void registerIcons() {
+ registerContentTypeIcon(TYPE_BLOG, "images/nav/blog.png");
+ registerContentTypeIcon(TYPE_POST, "images/nav/post.png");
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContent.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContent.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContent.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,23 @@
+/*
+ *
+ * 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.blogs.client.cnt;
+
+public interface BlogFolderContent {
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPanel.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPanel.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,31 @@
+/*
+ *
+ * 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.blogs.client.cnt;
+
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.workspace.client.cnt.FoldableContentPanel;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+public class BlogFolderContentPanel extends FoldableContentPanel implements BlogFolderContentView {
+
+ public BlogFolderContentPanel(WorkspaceSkeleton ws, I18nTranslationService i18n) {
+ super(ws, i18n);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentPresenter.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,62 @@
+/*
+ *
+ * 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.blogs.client.cnt;
+
+import org.ourproject.kune.blogs.client.BlogClientTool;
+import org.ourproject.kune.chat.client.ChatClientTool;
+import org.ourproject.kune.platf.client.actions.ActionRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
+import org.ourproject.kune.platf.client.dto.StateContainerDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
+
+public class BlogFolderContentPresenter extends FoldableContentPresenter implements BlogFolderContent {
+
+ private BlogFolderContentView view;
+ private final I18nTranslationService i18n;
+
+ public BlogFolderContentPresenter(StateManager stateManager, Session session, ActionContentToolbar toolbar,
+ final ActionRegistry<StateToken> actionRegistry, I18nTranslationService i18n) {
+ super(BlogClientTool.NAME, stateManager, session, toolbar, actionRegistry);
+ this.i18n = i18n;
+ }
+
+ public void init(final BlogFolderContentView view) {
+ super.init(view);
+ this.view = view;
+ }
+
+ @Override
+ protected void setState(StateContainerDTO state) {
+ if (state.getTypeId().equals(ChatClientTool.TYPE_ROOT)) {
+ if (state.getRootContainer().getChilds().size() == 0) {
+ view.setInfo(i18n.t("This group has no blogs."));
+ } else {
+ view.setInfo("");
+ }
+ } else {
+ view.setInfo("");
+ }
+ super.setState(state);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentView.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogFolderContentView.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,27 @@
+/*
+ *
+ * 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.blogs.client.cnt;
+
+import org.ourproject.kune.workspace.client.cnt.AbstractContentView;
+
+public interface BlogFolderContentView extends AbstractContentView {
+
+ void setInfo(String info);
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewer.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewer.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewer.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,25 @@
+/*
+ *
+ * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.blogs.client.cnt;
+
+import org.ourproject.kune.workspace.client.cnt.FoldableContent;
+
+public interface BlogViewer extends FoldableContent {
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPanel.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPanel.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,30 @@
+/*
+ *
+ * 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.blogs.client.cnt;
+
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.workspace.client.cnt.FoldableContentPanel;
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+public class BlogViewerPanel extends FoldableContentPanel implements BlogViewerView {
+ public BlogViewerPanel(final WorkspaceSkeleton ws, I18nTranslationService i18n) {
+ super(ws, i18n);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,83 @@
+/*
+ *
+ * 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.blogs.client.cnt;
+
+import org.ourproject.kune.blogs.client.BlogClientTool;
+import org.ourproject.kune.platf.client.actions.ContentActionRegistry;
+import org.ourproject.kune.platf.client.actions.toolbar.ActionContentToolbar;
+import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
+import org.ourproject.kune.platf.client.dto.StateContentDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+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.download.ImageSize;
+import org.ourproject.kune.workspace.client.cnt.FoldableContentPresenter;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+
+import com.calclab.suco.client.ioc.Provider;
+
+public class BlogViewerPresenter extends FoldableContentPresenter implements BlogViewer {
+ private BlogViewerView view;
+ private final Provider<FileDownloadUtils> downloadProvider;
+
+ public BlogViewerPresenter(StateManager stateManager, Session session, I18nUITranslationService i18n,
+ ActionContentToolbar toolbar, ContentActionRegistry actionRegistry,
+ Provider<FileDownloadUtils> downloadProvider) {
+ super(BlogClientTool.NAME, stateManager, session, toolbar, actionRegistry);
+ this.downloadProvider = downloadProvider;
+ }
+
+ public void init(BlogViewerView view) {
+ super.init(view);
+ this.view = view;
+ }
+
+ @Override
+ protected void setState(StateContentDTO state) {
+ super.setState(state);
+ setContent(state, BlogClientTool.TYPE_UPLOADEDFILE);
+ }
+
+ private void setContent(StateContentDTO state, String uploadedfileType) {
+ String typeId = state.getTypeId();
+ String contentBody = state.getContent();
+ StateToken token = state.getStateToken();
+ BasicMimeTypeDTO mimeType = state.getMimeType();
+ if (typeId.equals(uploadedfileType)) {
+ if (mimeType != null) {
+ FileDownloadUtils fileDownloadUtils = downloadProvider.get();
+ if (mimeType.getType().equals("image")) {
+ view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token,
+ ImageSize.sized));
+ } else if (mimeType.toString().equals("text/plain") || mimeType.toString().equals("application/pdf")) {
+ view.setContent(contentBody);
+ } else {
+ view.setContent("");
+ }
+ } else {
+ view.setContent("");
+ }
+ } else {
+ view.setContent(contentBody);
+ }
+ view.attach();
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerView.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerView.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,30 @@
+/*
+ *
+ * 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.blogs.client.cnt;
+
+import org.ourproject.kune.workspace.client.cnt.AbstractContentView;
+
+public interface BlogViewerView extends AbstractContentView {
+
+ void setContent(String content);
+
+ void showImage(String imageUrl, String imageResizedUrl);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/client/ctx/BlogContext.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/ctx/BlogContext.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/ctx/BlogContext.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,24 @@
+/*
+ *
+ * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.blogs.client.ctx;
+
+public interface BlogContext {
+
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/client/ctx/BlogContextPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/ctx/BlogContextPresenter.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/ctx/BlogContextPresenter.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,36 @@
+/*
+ *
+ * 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.blogs.client.ctx;
+
+import org.ourproject.kune.blogs.client.BlogClientTool;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
+import org.ourproject.kune.workspace.client.cxt.FoldableContextPresenter;
+
+import com.calclab.suco.client.ioc.Provider;
+
+public class BlogContextPresenter extends FoldableContextPresenter implements BlogContext {
+ public BlogContextPresenter(final StateManager stateManager,
+ final Provider<ContextNavigator> contextNavigatorProvider,
+ final Provider<ContextPropEditor> contextPropEditorProvider) {
+ super(BlogClientTool.NAME, stateManager, contextNavigatorProvider, contextPropEditorProvider);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerModule.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerModule.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,29 @@
+/*
+ *
+ * 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.blogs.server;
+
+import com.google.inject.Binder;
+import com.google.inject.Module;
+
+public class BlogServerModule implements Module {
+ public void configure(final Binder binder) {
+ binder.bind(BlogServerTool.class).asEagerSingleton();
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/blogs/server/BlogServerTool.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -0,0 +1,145 @@
+/*
+ *
+ * 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.blogs.server;
+
+import org.ourproject.kune.platf.client.errors.ContainerNotPermittedException;
+import org.ourproject.kune.platf.client.errors.ContentNotPermittedException;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.server.content.ContainerManager;
+import org.ourproject.kune.platf.server.content.ContentManager;
+import org.ourproject.kune.platf.server.domain.Container;
+import org.ourproject.kune.platf.server.domain.Content;
+import org.ourproject.kune.platf.server.domain.ContentStatus;
+import org.ourproject.kune.platf.server.domain.Group;
+import org.ourproject.kune.platf.server.domain.I18nLanguage;
+import org.ourproject.kune.platf.server.domain.ToolConfiguration;
+import org.ourproject.kune.platf.server.domain.User;
+import org.ourproject.kune.platf.server.manager.ToolConfigurationManager;
+import org.ourproject.kune.platf.server.tool.ServerTool;
+import org.ourproject.kune.platf.server.tool.ServerToolRegistry;
+import org.ourproject.kune.platf.server.tool.ServerToolTarget;
+
+import com.google.inject.Inject;
+
+public class BlogServerTool implements ServerTool {
+ public static final String TYPE_ROOT = "blogs.root";
+ public static final String TYPE_BLOG = "blogs.blog";
+ public static final String TYPE_POST = "blogs.post";
+ public static final String TYPE_UPLOADEDFILE = "blogs.uploaded";
+
+ public static final String NAME = "blogs";
+ public static final String ROOT_NAME = "blogs";
+
+ private final ContentManager contentManager;
+ private final ToolConfigurationManager configurationManager;
+ private final ContainerManager containerManager;
+ private final I18nTranslationService i18n;
+
+ @Inject
+ public BlogServerTool(final ContentManager contentManager, final ContainerManager containerManager,
+ final ToolConfigurationManager configurationManager, final I18nTranslationService translationService) {
+ this.contentManager = contentManager;
+ this.containerManager = containerManager;
+ this.configurationManager = configurationManager;
+ this.i18n = translationService;
+ }
+
+ public void checkTypesBeforeContainerCreation(String parentTypeId, String typeId) {
+ checkContainerTypeId(parentTypeId, typeId);
+ }
+
+ public void checkTypesBeforeContentCreation(String parentTypeId, String typeId) {
+ checkContentTypeId(parentTypeId, typeId);
+ }
+
+ public String getName() {
+ return NAME;
+ }
+
+ public String getRootName() {
+ return ROOT_NAME;
+ }
+
+ public ServerToolTarget getTarget() {
+ return ServerToolTarget.forBoth;
+ }
+
+ public Group initGroup(final User user, final Group group) {
+ final ToolConfiguration config = new ToolConfiguration();
+ final Container rootFolder = containerManager.createRootFolder(group, NAME, ROOT_NAME, TYPE_ROOT);
+ config.setRoot(rootFolder);
+ group.setToolConfig(NAME, config);
+ configurationManager.persist(config);
+
+ I18nLanguage language = user.getLanguage();
+ final Container blog = containerManager.createFolder(group, rootFolder, i18n.t("Blog sample"), language,
+ TYPE_BLOG);
+
+ final Content descriptor = contentManager.createContent(i18n.t("A post sample"), "", user, blog,
+ BlogServerTool.TYPE_POST);
+ descriptor.addAuthor(user);
+ descriptor.setLanguage(language);
+ descriptor.setTypeId(TYPE_POST);
+ descriptor.setStatus(ContentStatus.publishedOnline);
+
+ contentManager.save(user, descriptor,
+ i18n.t("This is only a post sample. You can edit it, and rename this post and this blog"));
+ return group;
+ }
+
+ public void onCreateContainer(final Container container, final Container parent) {
+ }
+
+ public void onCreateContent(final Content content, final Container parent) {
+ }
+
+ @Inject
+ public void register(final ServerToolRegistry registry) {
+ registry.register(this);
+ }
+
+ void checkContainerTypeId(final String parentTypeId, final String typeId) {
+ if (typeId.equals(TYPE_BLOG)) {
+ // ok valid container
+ if ((typeId.equals(TYPE_BLOG) && parentTypeId.equals(TYPE_ROOT))) {
+ // ok
+ } else {
+ throw new ContainerNotPermittedException();
+ }
+ } else {
+ throw new ContainerNotPermittedException();
+ }
+ }
+
+ void checkContentTypeId(final String parentTypeId, final String typeId) {
+ if (typeId.equals(TYPE_UPLOADEDFILE) || typeId.equals(TYPE_POST)) {
+ // ok valid content
+ if ((typeId.equals(TYPE_UPLOADEDFILE) && parentTypeId.equals(TYPE_BLOG))
+ || (typeId.equals(TYPE_POST) && parentTypeId.equals(TYPE_BLOG))) {
+ // ok
+ } else {
+ throw new ContentNotPermittedException();
+ }
+
+ } else {
+ throw new ContentNotPermittedException();
+ }
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientActions.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -18,6 +18,7 @@
*
*/package org.ourproject.kune.chat.client;
+import org.ourproject.kune.blogs.client.BlogClientTool;
import org.ourproject.kune.chat.client.ctx.room.AddRoom;
import org.ourproject.kune.docs.client.DocumentClientTool;
import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor;
@@ -94,7 +95,7 @@
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, BlogClientTool.TYPE_POST);
contentActionRegistry.addAction(chatAbout, DocumentClientTool.TYPE_UPLOADEDFILE);
contextActionRegistry.addAction(addRoom, ChatClientTool.TYPE_ROOT, ChatClientTool.TYPE_ROOM);
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPanel.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPanel.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -28,8 +28,4 @@
public ChatRoomPanel(final WorkspaceSkeleton ws, I18nTranslationService i18n) {
super(ws, i18n);
}
-
- public void setInfo(String info) {
- setLabel(info);
- }
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/cnt/ChatRoomPresenter.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -52,7 +52,7 @@
if (state.getRootContainer().getChilds().size() == 0) {
view.setInfo(i18n.t("This group has no chat rooms."));
} else {
- view.setInfo("");
+ view.setInfo(i18n.t("Select a chat room"));
}
} else {
view.setInfo("History of room conversations ..." + Site.IN_DEVELOPMENT);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -18,11 +18,9 @@
*
*/package org.ourproject.kune.docs.client;
-import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_BLOG;
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;
@@ -75,23 +73,19 @@
String parentMenuTitle = i18n.t("File");
String parentMenuTitleCtx = i18n.t("Folder");
- final ActionToolbarMenuAndItemDescriptor<StateToken> addFolder = createFolderAction(TYPE_FOLDER,
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addFolder = createContainerAction(TYPE_FOLDER,
"images/nav/folder_add.png", i18n.t("New folder"), parentMenuTitleCtx, i18n.t("New"),
i18n.t("New folder"));
- final ActionToolbarMenuAndItemDescriptor<StateToken> addGallery = createFolderAction(TYPE_GALLERY,
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addGallery = createContainerAction(TYPE_GALLERY,
"images/nav/gallery_add.png", i18n.t("New gallery"), parentMenuTitleCtx, i18n.t("New"),
i18n.t("New gallery"));
- final ActionToolbarMenuAndItemDescriptor<StateToken> addWiki = createFolderAction(TYPE_WIKI,
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addWiki = createContainerAction(TYPE_WIKI,
"images/nav/wiki_add.png", i18n.t("New wiki"), parentMenuTitleCtx, i18n.t("New"), i18n.t("wiki"));
- final ActionToolbarMenuAndItemDescriptor<StateToken> addBlog = createFolderAction(TYPE_BLOG,
- "images/nav/blog_add.png", i18n.t("New blog"), parentMenuTitleCtx, i18n.t("New"), i18n.t("New blog"));
- final ActionToolbarMenuAndItemDescriptor<StateToken> addDoc = createDocAction("images/nav/page_add.png",
- i18n.t("New document"), TYPE_DOCUMENT);
- final ActionToolbarMenuAndItemDescriptor<StateToken> addWikiPage = createDocAction(
- "images/nav/wikipage_add.png", i18n.t("New wikipage"), TYPE_WIKIPAGE);
- final ActionToolbarMenuAndItemDescriptor<StateToken> addPost = createDocAction("images/nav/post_add.png",
- i18n.t("New post"), TYPE_POST);
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addDoc = createContentAction("images/nav/page_add.png",
+ i18n.t("New document"), parentMenuTitleCtx, TYPE_DOCUMENT);
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addWikiPage = createContentAction(
+ "images/nav/wikipage_add.png", parentMenuTitleCtx, i18n.t("New wikipage"), TYPE_WIKIPAGE);
final ActionToolbarMenuAndItemDescriptor<StateToken> delContainer = createDelContainerAction("Delete folder",
parentMenuTitleCtx);
@@ -107,7 +101,8 @@
final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCnt = createSetAsDefContent(parentMenuTitle);
- final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCxt = createSetAsDefContent(parentMenuTitleCtx);
+ // final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCxt =
+ // createSetAsDefContent(parentMenuTitleCtx);
final ActionToolbarMenuDescriptor<StateToken> refreshCnt = createRefreshCntAction(parentMenuTitle);
@@ -117,22 +112,25 @@
"images/nav/upload.png", i18n.t("Upload some files (images, PDFs, ...)"), null);
final ActionToolbarMenuDescriptor<StateToken> setPublishStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("Published online"), ContentStatusDTO.publishedOnline);
+ AccessRolDTO.Administrator, i18n.t("Published online"), parentMenuTitle,
+ ContentStatusDTO.publishedOnline);
final ActionToolbarMenuDescriptor<StateToken> setEditionInProgressStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("Editing in progress"), ContentStatusDTO.editingInProgress);
+ AccessRolDTO.Administrator, i18n.t("Editing in progress"), parentMenuTitle,
+ ContentStatusDTO.editingInProgress);
final ActionToolbarMenuDescriptor<StateToken> setRejectStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("Rejected"), ContentStatusDTO.rejected);
+ AccessRolDTO.Administrator, i18n.t("Rejected"), parentMenuTitle, ContentStatusDTO.rejected);
final ActionToolbarMenuDescriptor<StateToken> setSubmittedForPublishStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("Submitted for publish"), ContentStatusDTO.publishedOnline);
+ AccessRolDTO.Administrator, i18n.t("Submitted for publish"), parentMenuTitle,
+ ContentStatusDTO.publishedOnline);
final ActionToolbarMenuDescriptor<StateToken> setInTheDustBinStatus = createSetStatusAction(
- AccessRolDTO.Administrator, i18n.t("In the dustbin"), ContentStatusDTO.inTheDustbin);
+ AccessRolDTO.Administrator, i18n.t("In the dustbin"), parentMenuTitle, ContentStatusDTO.inTheDustbin);
- 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 };
+ final String[] all = { TYPE_ROOT, TYPE_FOLDER, TYPE_DOCUMENT, TYPE_GALLERY, TYPE_WIKI, TYPE_WIKIPAGE,
+ TYPE_UPLOADEDFILE };
+ final String[] containersNoRoot = { TYPE_FOLDER, TYPE_GALLERY, TYPE_WIKI };
+ final String[] containers = { TYPE_ROOT, TYPE_FOLDER, TYPE_GALLERY, TYPE_WIKI };
+ final String[] contents = { TYPE_DOCUMENT, TYPE_WIKIPAGE, TYPE_UPLOADEDFILE };
+ final String[] contentsModerated = { TYPE_DOCUMENT, TYPE_UPLOADEDFILE };
contentActionRegistry.addAction(setPublishStatus, contentsModerated);
contentActionRegistry.addAction(setEditionInProgressStatus, contentsModerated);
@@ -140,10 +138,8 @@
contentActionRegistry.addAction(setSubmittedForPublishStatus, contentsModerated);
contentActionRegistry.addAction(setInTheDustBinStatus, contentsModerated);
contextActionRegistry.addAction(addDoc, TYPE_ROOT, TYPE_FOLDER);
- contextActionRegistry.addAction(addPost, TYPE_BLOG);
contextActionRegistry.addAction(addWikiPage, TYPE_WIKI);
contextActionRegistry.addAction(addFolder, TYPE_ROOT, TYPE_FOLDER);
- contextActionRegistry.addAction(addBlog, TYPE_ROOT);
contextActionRegistry.addAction(addWiki, TYPE_ROOT);
contextActionRegistry.addAction(addGallery, TYPE_ROOT);
contextActionRegistry.addAction(go, all);
@@ -151,15 +147,15 @@
contextActionRegistry.addAction(renameCtx, containersNoRoot);
contextActionRegistry.addAction(refreshCtx, containers);
contentActionRegistry.addAction(refreshCnt, contents);
- contextActionRegistry.addAction(uploadFile, TYPE_ROOT, TYPE_FOLDER, TYPE_BLOG);
+ contextActionRegistry.addAction(uploadFile, TYPE_ROOT, TYPE_FOLDER);
contentActionRegistry.addAction(download, TYPE_UPLOADEDFILE);
contentActionRegistry.addAction(delContent, contents);
contextActionRegistry.addAction(delContainer, containersNoRoot);
contentActionRegistry.addAction(setAsDefGroupCnt, TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
- contentActionRegistry.addAction(setAsDefGroupCxt, TYPE_BLOG);
+ // contentActionRegistry.addAction(setAsDefGroupCxt,);
contextActionRegistry.addAction(goGroupHome, containers);
contextActionRegistry.addAction(downloadCtx, TYPE_UPLOADEDFILE);
- contentActionRegistry.addAction(editContent, TYPE_DOCUMENT, TYPE_POST, TYPE_WIKIPAGE);
+ contentActionRegistry.addAction(editContent, TYPE_DOCUMENT, TYPE_WIKIPAGE);
contentActionRegistry.addAction(translateContent, TYPE_DOCUMENT, TYPE_FOLDER, TYPE_GALLERY, TYPE_UPLOADEDFILE,
TYPE_WIKI, TYPE_WIKIPAGE);
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -32,8 +32,6 @@
public static final String TYPE_FOLDER = "docs.folder";
public static final String TYPE_DOCUMENT = "docs.doc";
public static final String TYPE_GALLERY = "docs.gallery";
- public static final String TYPE_BLOG = "docs.blog";
- public static final String TYPE_POST = "docs.post";
public static final String TYPE_WIKI = "docs.wiki";
public static final String TYPE_WIKIPAGE = "docs.wikipage";
public static final String TYPE_UPLOADEDFILE = "docs.uploaded";
@@ -49,10 +47,9 @@
registerDragableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE);
registerDropableTypes(TYPE_ROOT, TYPE_FOLDER, TYPE_GALLERY);
registerPublishModerableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE);
- registerRateableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE, TYPE_POST);
- registerRenamableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_BLOG, TYPE_GALLERY, TYPE_POST, TYPE_UPLOADEDFILE,
- TYPE_WIKI, TYPE_WIKIPAGE);
- registerTageableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE, TYPE_POST);
+ registerRateableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
+ registerRenamableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_GALLERY, TYPE_UPLOADEDFILE, TYPE_WIKI, TYPE_WIKIPAGE);
+ registerTageableTypes(TYPE_DOCUMENT, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
registerTranslatableTypes(TYPE_DOCUMENT, TYPE_FOLDER, TYPE_UPLOADEDFILE, TYPE_WIKIPAGE);
registerIcons();
@@ -64,10 +61,8 @@
protected void registerIcons() {
registerContentTypeIcon(TYPE_FOLDER, "images/nav/folder.png");
- registerContentTypeIcon(TYPE_BLOG, "images/nav/blog.png");
registerContentTypeIcon(TYPE_GALLERY, "images/nav/gallery.png");
registerContentTypeIcon(TYPE_DOCUMENT, "images/nav/page.png");
- registerContentTypeIcon(TYPE_POST, "images/nav/post.png");
registerContentTypeIcon(TYPE_WIKI, "images/nav/wiki.png");
registerContentTypeIcon(TYPE_WIKIPAGE, "images/nav/wikipage.png");
registerContentTypeIcon(TYPE_UPLOADEDFILE, new BasicMimeTypeDTO("image"), "images/nav/picture.png");
Modified: trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -89,12 +89,12 @@
public Group initGroup(final User user, final Group group) {
final ToolConfiguration config = new ToolConfiguration();
- final Container container = containerManager.createRootFolder(group, NAME, ROOT_NAME, TYPE_ROOT);
- config.setRoot(container);
+ final Container rootFolder = containerManager.createRootFolder(group, NAME, ROOT_NAME, TYPE_ROOT);
+ config.setRoot(rootFolder);
group.setToolConfig(NAME, config);
configurationManager.persist(config);
final String longName = group.getLongName();
- final Content descriptor = contentManager.createContent(i18n.t("About [%s]", longName), "", user, container,
+ final Content descriptor = contentManager.createContent(i18n.t("About [%s]", longName), "", user, rootFolder,
DocumentServerTool.TYPE_DOCUMENT);
descriptor.addAuthor(user);
descriptor.setLanguage(user.getLanguage());
@@ -105,9 +105,7 @@
}
public void onCreateContainer(final Container container, final Container parent) {
- String typeId = container.getTypeId();
- container.setTypeId(typeId);
- if (typeId.equals(TYPE_WIKI)) {
+ if (container.getTypeId().equals(TYPE_WIKI)) {
AccessLists wikiAcl = new AccessLists();
wikiAcl.getAdmins().setMode(GroupListMode.NORMAL);
wikiAcl.getAdmins().add(container.getOwner());
@@ -145,7 +143,7 @@
void checkContentTypeId(final String parentTypeId, final String typeId) {
if (typeId.equals(TYPE_DOCUMENT) || typeId.equals(TYPE_WIKIPAGE) || typeId.equals(TYPE_UPLOADEDFILE)
|| typeId.equals(TYPE_POST)) {
- // ok valid container
+ // ok valid content
if ((typeId.equals(TYPE_DOCUMENT) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))
|| (typeId.equals(TYPE_UPLOADEDFILE) && (parentTypeId.equals(TYPE_ROOT)
|| parentTypeId.equals(TYPE_FOLDER) || parentTypeId.equals(TYPE_GALLERY)))
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-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/tool/ToolSelectorPresenter.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -25,6 +25,7 @@
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import com.allen_sauer.gwt.log.client.Log;
import com.calclab.suco.client.listener.Listener;
import com.calclab.suco.client.listener.Listener2;
@@ -77,6 +78,7 @@
}
void onToolChanged(final String oldTool, final String newTool) {
+ Log.debug("Registered tools: " + tools.keySet().toString());
if (!oldTool.equals("")) {
tools.get(oldTool).setSelected(false);
}
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-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/GroupManager.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -49,8 +49,6 @@
List<String> findEnabledTools(Long id);
- Group getSiteDefaultGroup();
-
/**
* IMPORTANT: returns null if userId is null
*
@@ -59,6 +57,8 @@
*/
Group getGroupOfUserWithId(Long userId);
+ Group getSiteDefaultGroup();
+
void reIndex();
SearchResult<Group> search(String search);
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-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -344,6 +344,18 @@
return mapper.map(content, ContentSimpleDTO.class);
}
+ // @Authenticated
+ // @Authorizated(accessRolRequired = AccessRol.Administrator,
+ // actionLevel=ActionLevel.container)
+ // @Transactional(type = TransactionType.READ_WRITE)
+ // public ContentSimpleDTO setFolderAsDefaultContent(final String userHash,
+ // final StateToken token) {
+ // Container container =
+ // containerManager.find(ContentUtils.parseId(token.getFolder()));
+ // groupManager.setDefaultContent(token.getGroup(), container);
+ // return mapper.map(content, ContentSimpleDTO.class);
+ // }
+
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Editor)
@Transactional(type = TransactionType.READ_WRITE)
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -105,6 +105,53 @@
protected void createActions() {
}
+ protected ActionToolbarMenuAndItemDescriptor<StateToken> createContainerAction(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,
+ contentTypeId, new AsyncCallbackSimple<StateContainerDTO>() {
+ public void onSuccess(final StateContainerDTO state) {
+ contextNavigator.setEditOnNextStateChange(true);
+ stateManager.setRetrievedState(state);
+ }
+ });
+ }
+ });
+ addFolder.setTextDescription(textDescription);
+ addFolder.setParentMenuTitle(parentMenuTitle);
+ addFolder.setParentSubMenuTitle(parentMenuSubtitle);
+ addFolder.setIconUrl(iconUrl);
+ return addFolder;
+ }
+
+ protected ActionToolbarMenuAndItemDescriptor<StateToken> createContentAction(String iconUrl,
+ final String description, final String parentMenuTitle, final String typeId) {
+ 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(),
+ session.getCurrentState().getStateToken(), description, typeId,
+ new AsyncCallbackSimple<StateContentDTO>() {
+ public void onSuccess(final StateContentDTO state) {
+ contextNavigator.setEditOnNextStateChange(true);
+ stateManager.setRetrievedState(state);
+ }
+ });
+ }
+ });
+ addDoc.setTextDescription(description);
+ addDoc.setParentMenuTitle(parentMenuTitle);
+ addDoc.setParentSubMenuTitle(i18n.t("New"));
+ addDoc.setIconUrl(iconUrl);
+ return addDoc;
+ }
+
protected ActionToolbarMenuAndItemDescriptor<StateToken> createContentRenameAction(String parentMenuTitle,
String textDescription) {
final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtn = new ActionToolbarMenuAndItemDescriptor<StateToken>(
@@ -162,53 +209,6 @@
return delContent;
}
- protected ActionToolbarMenuAndItemDescriptor<StateToken> createDocAction(String iconUrl, final String description,
- final String typeId) {
- 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(),
- session.getCurrentState().getStateToken(), description, typeId,
- new AsyncCallbackSimple<StateContentDTO>() {
- public void onSuccess(final StateContentDTO state) {
- contextNavigator.setEditOnNextStateChange(true);
- stateManager.setRetrievedState(state);
- }
- });
- }
- });
- addDoc.setTextDescription(description);
- addDoc.setParentMenuTitle(i18n.t("Folder"));
- addDoc.setParentSubMenuTitle(i18n.t("New"));
- addDoc.setIconUrl(iconUrl);
- return addDoc;
- }
-
- protected 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,
- contentTypeId, new AsyncCallbackSimple<StateContainerDTO>() {
- public void onSuccess(final StateContainerDTO state) {
- contextNavigator.setEditOnNextStateChange(true);
- stateManager.setRetrievedState(state);
- }
- });
- }
- });
- addFolder.setTextDescription(textDescription);
- addFolder.setParentMenuTitle(parentMenuTitle);
- addFolder.setParentSubMenuTitle(parentMenuSubtitle);
- addFolder.setIconUrl(iconUrl);
- return addFolder;
- }
-
protected void createPostSessionInitActions() {
}
@@ -266,7 +266,7 @@
public void onSuccess(final ContentSimpleDTO defContent) {
session.getCurrentState().getGroup().setDefaultContent(defContent);
Site.hideProgress();
- Site.info(i18n.t("Document selected as the group homepage"));
+ Site.info(i18n.t("Content selected as the group homepage"));
}
});
}
@@ -284,7 +284,7 @@
}
protected ActionToolbarMenuAndItemDescriptor<StateToken> createSetStatusAction(final AccessRolDTO rol,
- final String textDescription, final ContentStatusDTO status) {
+ final String textDescription, String parentMenuTitle, final ContentStatusDTO status) {
final ActionToolbarMenuAndItemDescriptor<StateToken> action = new ActionToolbarMenuAndItemDescriptor<StateToken>(
rol, ActionToolbarPosition.topbar, new Listener<StateToken>() {
public void onEvent(final StateToken stateToken) {
@@ -303,7 +303,7 @@
}
});
action.setTextDescription(textDescription);
- action.setParentMenuTitle(i18n.t("File"));
+ action.setParentMenuTitle(parentMenuTitle);
action.setParentSubMenuTitle(i18n.t("Change the status"));
return action;
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -26,6 +26,10 @@
attach();
}
+ public void setInfo(String info) {
+ setLabel(info);
+ }
+
public void setLabel(String text) {
Label label = new Label(text);
setDefStyle(label);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java 2008-11-24 18:14:39 UTC (rev 965)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java 2008-11-24 20:24:03 UTC (rev 966)
@@ -78,7 +78,9 @@
mainFitPanel.setBottomToolbar(trayBar);
anchorLayoutPanel.add(entityTools, new AnchorLayoutData("100%"));
- anchorLayoutPanel.add(entitySummary, new AnchorLayoutData("100% -50"));
+ // height: is 25 * number of tools :-( finding a way to make this
+ // automatic
+ anchorLayoutPanel.add(entitySummary, new AnchorLayoutData("100% -75"));
mainFitPanel.add(anchorLayoutPanel);
}
1
0
24 Nov '08
Author: vjrj
Date: 2008-11-24 19:14:39 +0100 (Mon, 24 Nov 2008)
New Revision: 965
Added:
trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContent.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/DocumentViewer.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.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/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Toolbar.java
Log:
Incomplete - task UI tools & workspace refactorization
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-11-24 11:49:57 UTC (rev 964)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2008-11-24 18:14:39 UTC (rev 965)
@@ -29,27 +29,14 @@
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_WIKIPAGE;
import org.ourproject.kune.docs.client.cnt.DocumentViewer;
-import org.ourproject.kune.platf.client.actions.ActionEnableCondition;
-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.ActionToolbarButtonSeparator;
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;
-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.StateContainerDTO;
-import org.ourproject.kune.platf.client.dto.StateContentDTO;
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;
@@ -57,75 +44,47 @@
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.platf.client.utils.DeferredCommandWrapper;
+import org.ourproject.kune.workspace.client.AbstractFoldableContentActions;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
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.Command;
-import com.google.gwt.user.client.DeferredCommand;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-public class DocumentClientActions {
-
- private final I18nUITranslationService i18n;
- private final ContextNavigator contextNavigator;
- private final Session session;
- private final StateManager stateManager;
- private final Provider<FileUploader> fileUploaderProvider;
- private final ContentActionRegistry contentActionRegistry;
- private final ContextActionRegistry contextActionRegistry;
- private final Provider<ContentServiceAsync> contentServiceProvider;
- private final Provider<GroupServiceAsync> groupServiceProvider;
- private final Provider<FileDownloadUtils> fileDownloadProvider;
- private final EntityLogo entityLogo;
- private final Provider<TextEditor> textEditorProvider;
- private final KuneErrorHandler errorHandler;
- private final DocumentViewer documentViewer;
- private final Provider<ContextPropEditor> contextPropEditorProvider;
-
+public class DocumentClientActions extends AbstractFoldableContentActions {
public DocumentClientActions(final I18nUITranslationService i18n, final ContextNavigator contextNavigator,
final Session session, final StateManager stateManager,
+ final DeferredCommandWrapper deferredCommandWrapper,
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<TextEditor> textEditorProvider, final KuneErrorHandler errorHandler,
final DocumentViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider) {
- this.i18n = i18n;
- this.contextNavigator = contextNavigator;
- this.session = session;
- this.stateManager = stateManager;
- this.contentServiceProvider = contentServiceProvider;
- this.groupServiceProvider = groupServiceProvider;
- this.fileUploaderProvider = fileUploaderProvider;
- this.contextActionRegistry = contextActionRegistry;
- this.contentActionRegistry = contentActionRegistry;
- this.fileDownloadProvider = fileDownloadProvider;
- this.entityLogo = entityLogo;
- this.textEditorProvider = textEditorProvider;
- this.errorHandler = errorHandler;
- this.documentViewer = documentViewer;
- this.contextPropEditorProvider = contextProvEditorProvider;
- createActions();
+ super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
+ contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
+ contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
+ documentViewer, entityLogo);
}
- private void createActions() {
+ @Override
+ protected void createActions() {
+ String parentMenuTitle = i18n.t("File");
+ String parentMenuTitleCtx = i18n.t("Folder");
+
final ActionToolbarMenuAndItemDescriptor<StateToken> addFolder = createFolderAction(TYPE_FOLDER,
- "images/nav/folder_add.png", i18n.t("New folder"), i18n.t("Folder"), i18n.t("New"),
+ "images/nav/folder_add.png", i18n.t("New folder"), parentMenuTitleCtx, 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"),
+ "images/nav/gallery_add.png", i18n.t("New gallery"), parentMenuTitleCtx, i18n.t("New"),
i18n.t("New gallery"));
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"));
+ "images/nav/wiki_add.png", i18n.t("New wiki"), parentMenuTitleCtx, i18n.t("New"), i18n.t("wiki"));
final ActionToolbarMenuAndItemDescriptor<StateToken> addBlog = createFolderAction(TYPE_BLOG,
- "images/nav/blog_add.png", i18n.t("New blog"), i18n.t("Folder"), i18n.t("New"), i18n.t("New blog"));
+ "images/nav/blog_add.png", i18n.t("New blog"), parentMenuTitleCtx, i18n.t("New"), i18n.t("New blog"));
final ActionToolbarMenuAndItemDescriptor<StateToken> addDoc = createDocAction("images/nav/page_add.png",
i18n.t("New document"), TYPE_DOCUMENT);
@@ -134,181 +93,29 @@
final ActionToolbarMenuAndItemDescriptor<StateToken> addPost = createDocAction("images/nav/post_add.png",
i18n.t("New post"), TYPE_POST);
- 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");
- }
- });
- delContainer.setParentMenuTitle(i18n.t("Folder"));
- delContainer.setTextDescription(i18n.t("Delete folder"));
- delContainer.setMustBeConfirmed(true);
- delContainer.setConfirmationTitle(i18n.t("Please confirm"));
- delContainer.setConfirmationText(i18n.t("You will delete it and also all its contents. Are you sure?"));
+ final ActionToolbarMenuAndItemDescriptor<StateToken> delContainer = createDelContainerAction("Delete folder",
+ parentMenuTitleCtx);
- 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>() {
- public void onSuccess(final String result) {
- final StateToken parent = token.clone().clearDocument();
- stateManager.gotoToken(parent);
- }
- });
- }
- });
- delContent.setParentMenuTitle(i18n.t("File"));
- delContent.setTextDescription(i18n.t("Delete"));
- delContent.setMustBeConfirmed(true);
- delContent.setConfirmationTitle(i18n.t("Please confirm"));
- delContent.setConfirmationText(i18n.t("Are you sure?"));
- delContent.setEnableCondition(new ActionEnableCondition<StateToken>() {
- public boolean mustBeEnabled(final StateToken itemToken) {
- final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent().getStateToken();
- return !itemToken.equals(defContentToken);
- }
- });
+ final ActionToolbarMenuAndItemDescriptor<StateToken> delContent = createDelContentAction(parentMenuTitle,
+ i18n.t("Delete"));
- final ActionMenuItemDescriptor<StateToken> go = new ActionMenuItemDescriptor<StateToken>(AccessRolDTO.Viewer,
- new Listener<StateToken>() {
- public void onEvent(final StateToken token) {
- stateManager.gotoToken(token);
- }
- });
- go.setMustBeAuthenticated(false);
- go.setTextDescription(i18n.t("Open"));
- go.setIconUrl("images/nav/go.png");
- go.setEnableCondition(new ActionEnableCondition<StateToken>() {
- public boolean mustBeEnabled(final StateToken itemToken) {
- return !contextNavigator.isSelected(itemToken);
- }
- });
+ final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtn = createContentRenameAction(parentMenuTitle,
+ i18n.t("Rename"));
- final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtn = new ActionToolbarMenuAndItemDescriptor<StateToken>(
- AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
- public void onEvent(final StateToken stateToken) {
- contextNavigator.editItem(stateToken);
- }
- });
- renameCtn.setTextDescription(i18n.t("Rename"));
- renameCtn.setParentMenuTitle(i18n.t("File"));
+ final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtx = createRenameContentInCtxAction(
+ parentMenuTitleCtx, i18n.t("Rename"));
- final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtx = new ActionToolbarMenuAndItemDescriptor<StateToken>(
- AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
- public void onEvent(final StateToken stateToken) {
- contextNavigator.editItem(stateToken);
- }
- });
- renameCtx.setTextDescription(i18n.t("Rename"));
- renameCtx.setParentMenuTitle(i18n.t("Folder"));
+ final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCnt = createSetAsDefContent(parentMenuTitle);
- final ActionToolbarButtonDescriptor<StateToken> goGroupHome = new ActionToolbarButtonDescriptor<StateToken>(
- AccessRolDTO.Viewer, ActionToolbarPosition.topbar, new Listener<StateToken>() {
- public void onEvent(final StateToken token) {
- stateManager.gotoToken(token.getGroup());
- }
- });
- goGroupHome.setMustBeAuthenticated(false);
- goGroupHome.setIconUrl("images/group-home.png");
- goGroupHome.setEnableCondition(new ActionEnableCondition<StateToken>() {
- public boolean mustBeEnabled(final StateToken itemToken) {
- final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent().getStateToken();
- return !itemToken.equals(defContentToken);
- }
- });
+ final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCxt = createSetAsDefContent(parentMenuTitleCtx);
- final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCnt;
- setAsDefGroupCnt = createSetAsDefContent();
- setAsDefGroupCnt.setParentMenuTitle(i18n.t("File"));
+ final ActionToolbarMenuDescriptor<StateToken> refreshCnt = createRefreshCntAction(parentMenuTitle);
- final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupCxt;
- setAsDefGroupCxt = createSetAsDefContent();
- setAsDefGroupCxt.setParentMenuTitle(i18n.t("Folder"));
+ final ActionToolbarMenuDescriptor<StateToken> refreshCtx = createRefreshCxtAction(parentMenuTitleCtx);
- 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);
- }
- });
- refreshCtx.setMustBeAuthenticated(false);
- refreshCtx.setParentMenuTitle(i18n.t("Folder"));
- refreshCtx.setTextDescription(i18n.t("Refresh"));
- refreshCtx.setIconUrl("images/nav/refresh.png");
-
- 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);
- }
- });
- refreshCnt.setMustBeAuthenticated(false);
- refreshCnt.setParentMenuTitle(i18n.t("File"));
- refreshCnt.setTextDescription(i18n.t("Refresh"));
- refreshCnt.setIconUrl("images/nav/refresh.png");
-
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 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 ActionToolbarButtonDescriptor<StateToken> download = new ActionToolbarButtonDescriptor<StateToken>(
- AccessRolDTO.Viewer, ActionToolbarPosition.topbar, new Listener<StateToken>() {
- public void onEvent(final StateToken token) {
- downloadContent(token);
- }
- });
- download.setMustBeAuthenticated(false);
- download.setTextDescription(i18n.t("Download"));
- download.setToolTip(i18n.t("Download this file"));
- download.setIconUrl("images/nav/download.png");
-
- final ActionMenuItemDescriptor<StateToken> downloadCtx = new ActionMenuItemDescriptor<StateToken>(
- AccessRolDTO.Viewer, new Listener<StateToken>() {
- public void onEvent(final StateToken token) {
- downloadContent(token);
- }
- });
- downloadCtx.setMustBeAuthenticated(false);
- downloadCtx.setTextDescription(i18n.t("Download"));
- downloadCtx.setIconUrl("images/nav/download.png");
-
- final ActionToolbarMenuAndItemDescriptor<StateToken> setGroupLogo = new ActionToolbarMenuAndItemDescriptor<StateToken>(
- AccessRolDTO.Administrator, ActionToolbarPosition.topbar, new Listener<StateToken>() {
- public void onEvent(final StateToken token) {
- groupServiceProvider.get().setGroupFullLogo(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 itemToken) {
- final BasicMimeTypeDTO mime = session.getContentState().getMimeType();
- return mime != null && mime.getType().equals("image");
- }
- });
-
final ActionToolbarMenuDescriptor<StateToken> setPublishStatus = createSetStatusAction(
AccessRolDTO.Administrator, i18n.t("Published online"), ContentStatusDTO.publishedOnline);
final ActionToolbarMenuDescriptor<StateToken> setEditionInProgressStatus = createSetStatusAction(
@@ -320,74 +127,6 @@
final ActionToolbarMenuDescriptor<StateToken> setInTheDustBinStatus = createSetStatusAction(
AccessRolDTO.Administrator, i18n.t("In the dustbin"), ContentStatusDTO.inTheDustbin);
- 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"));
- }
- });
- translateContent.setTextDescription(i18n.tWithNT("Translate", "used in button"));
- translateContent.setToolTip(i18n.t("Translate this document to other languages"));
- translateContent.setIconUrl("images/language.gif");
- translateContent.setLeftSeparator(ActionToolbarButtonSeparator.spacer);
-
- 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();
- documentViewer.detach();
- contextNavigator.detach();
- contextPropEditorProvider.get().attach();
- editor.editContent(session.getContentState().getContent(), new Listener<String>() {
- public void onEvent(final String html) {
- Site.showProgressSaving();
- contentServiceProvider.get().save(session.getUserHash(), stateToken, html,
- new AsyncCallback<Object>() {
- 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(Object param) {
- Site.hideProgress();
- session.getContentState().setContent(html);
- editor.onSaved();
- }
- });
- }
- }, new Listener0() {
- public void onEvent() {
- // onClose
- DeferredCommand.addCommand(new Command() {
- public void execute() {
- documentViewer.attach();
- contextPropEditorProvider.get().detach();
- contextNavigator.attach();
- if (session.getCurrentStateToken().equals(stateToken)) {
- documentViewer.refreshState();
- }
- }
- });
- }
- });
- }
- });
- }
- });
- editContent.setTextDescription(i18n.tWithNT("Edit", "used in button"));
- editContent.setIconUrl("images/content_edit.png");
- editContent.setLeftSeparator(ActionToolbarButtonSeparator.spacer);
-
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 };
@@ -419,135 +158,14 @@
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);
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 ActionToolbarMenuAndItemDescriptor<StateToken> createDocAction(String iconUrl, final String description,
- final String typeId) {
- 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(),
- session.getCurrentState().getStateToken(), description, typeId,
- new AsyncCallbackSimple<StateContentDTO>() {
- public void onSuccess(final StateContentDTO state) {
- contextNavigator.setEditOnNextStateChange(true);
- stateManager.setRetrievedState(state);
- }
- });
- }
- });
- addDoc.setTextDescription(description);
- addDoc.setParentMenuTitle(i18n.t("Folder"));
- addDoc.setParentSubMenuTitle(i18n.t("New"));
- addDoc.setIconUrl(iconUrl);
- return addDoc;
+ @Override
+ protected void createPostSessionInitActions() {
+ contextActionRegistry.addAction(uploadMedia, TYPE_GALLERY);
}
-
- 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,
- contentTypeId, new AsyncCallbackSimple<StateContainerDTO>() {
- public void onSuccess(final StateContainerDTO state) {
- contextNavigator.setEditOnNextStateChange(true);
- stateManager.setRetrievedState(state);
- }
- });
- }
- });
- addFolder.setTextDescription(textDescription);
- addFolder.setParentMenuTitle(parentMenuTitle);
- addFolder.setParentSubMenuTitle(parentMenuSubtitle);
- addFolder.setIconUrl(iconUrl);
- return addFolder;
- }
-
- 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 itemToken) {
- final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent().getStateToken();
- return !itemToken.equals(defContentToken);
- }
- });
- return setAsDefGroupContent;
- }
-
- private ActionToolbarMenuAndItemDescriptor<StateToken> createSetStatusAction(final AccessRolDTO rol,
- final String textDescription, final ContentStatusDTO status) {
- 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) {
- session.getContentState().setStatus(status);
- contextNavigator.setItemStatus(stateToken, 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 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();
- }
- });
- uploadFile.setTextDescription(textDescription);
- uploadFile.setIconUrl(iconUrl);
- uploadFile.setToolTip(toolTip);
- return uploadFile;
- }
-
- private void downloadContent(final StateToken token) {
- 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-11-24 11:49:57 UTC (rev 964)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2008-11-24 18:14:39 UTC (rev 965)
@@ -36,27 +36,20 @@
import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.services.Images;
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.download.FileDownloadUtils;
import org.ourproject.kune.platf.client.ui.upload.FileUploader;
+import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditorPanel;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditorPresenter;
-import org.ourproject.kune.workspace.client.cxt.ContextPropEditorView;
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.i18n.LanguageSelector;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.tags.TagsSummary;
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
-import org.ourproject.kune.workspace.client.title.EntitySubTitle;
-import org.ourproject.kune.workspace.client.title.EntityTitle;
import com.calclab.suco.client.ioc.decorator.Singleton;
import com.calclab.suco.client.ioc.module.AbstractModule;
@@ -80,28 +73,14 @@
@Override
public DocumentClientActions create() {
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),
- $$(TextEditor.class), $(KuneErrorHandler.class), $(DocumentViewer.class),
+ $(Session.class), $(StateManager.class), $(DeferredCommandWrapper.class),
+ $$(ContentServiceAsync.class), $$(GroupServiceAsync.class), $$(FileUploader.class),
+ $(ContentActionRegistry.class), $(ContextActionRegistry.class), $$(FileDownloadUtils.class),
+ $(EntityLogo.class), $$(TextEditor.class), $(KuneErrorHandler.class), $(DocumentViewer.class),
$$(ContextPropEditor.class));
}
});
- register(Singleton.class, new Factory<ContextPropEditor>(ContextPropEditor.class) {
- @Override
- public ContextPropEditor create() {
- final ContextPropEditorPresenter presenter = new ContextPropEditorPresenter($(Session.class),
- $(StateManager.class), $(ContentCapabilitiesRegistry.class), $$(TagsSummary.class),
- $$(ContentServiceAsync.class), $(EntityTitle.class), $(EntitySubTitle.class));
- final ContextPropEditorView view = new ContextPropEditorPanel(presenter,
- $(I18nUITranslationService.class), $(WorkspaceSkeleton.class), $$(LanguageSelector.class),
- $(Images.class));
- presenter.init(view);
- return presenter;
- }
- });
-
register(ToolGroup.class, new Factory<DocumentContext>(DocumentContext.class) {
@Override
public DocumentContext create() {
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewer.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewer.java 2008-11-24 11:49:57 UTC (rev 964)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewer.java 2008-11-24 18:14:39 UTC (rev 965)
@@ -19,12 +19,7 @@
*/
package org.ourproject.kune.docs.client.cnt;
-public interface DocumentViewer {
+import org.ourproject.kune.workspace.client.cnt.FoldableContent;
- void attach();
-
- void detach();
-
- void refreshState();
-
+public interface DocumentViewer extends FoldableContent {
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java 2008-11-24 11:49:57 UTC (rev 964)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java 2008-11-24 18:14:39 UTC (rev 965)
@@ -50,10 +50,6 @@
this.view = view;
}
- public void refreshState() {
- setState(session.getContentState());
- }
-
@Override
protected void setState(StateContentDTO state) {
super.setState(state);
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-11-24 11:49:57 UTC (rev 964)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ActionRegistry.java 2008-11-24 18:14:39 UTC (rev 965)
@@ -22,6 +22,8 @@
import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
+import com.allen_sauer.gwt.log.client.Log;
+
public class ActionRegistry<T> {
private static final String GENERIC = "kgenacts";
@@ -36,8 +38,10 @@
}
public void addAction(final ActionDescriptor<T> action, String... typeIds) {
- for (final String contentTypeId : typeIds) {
- final ActionCollection<T> actionColl = getActions(contentTypeId);
+ assert (action != null);
+ for (final String typeId : typeIds) {
+ Log.debug("Registering action '" + action.getText() + "' for " + typeId);
+ final ActionCollection<T> actionColl = getActions(typeId);
actionColl.add(action);
}
}
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-11-24 11:49:57 UTC (rev 964)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2008-11-24 18:14:39 UTC (rev 965)
@@ -40,6 +40,8 @@
this.ws = ws;
topbar = new SimpleToolbar();
bottombar = new SimpleToolbar();
+ topbar.setWidth("100%");
+ bottombar.setWidth("100%");
this.actionManagerProvider = actionManagerProvider;
toolbarMenus = new HashMap<String, Menu>();
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-11-24 11:49:57 UTC (rev 964)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-11-24 18:14:39 UTC (rev 965)
@@ -71,6 +71,10 @@
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigatorPanel;
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigatorPresenter;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditorPanel;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditorPresenter;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditorView;
import org.ourproject.kune.workspace.client.editor.TextEditor;
import org.ourproject.kune.workspace.client.editor.TextEditorPanel;
import org.ourproject.kune.workspace.client.editor.TextEditorPresenter;
@@ -118,7 +122,9 @@
import org.ourproject.kune.workspace.client.site.rpc.UserServiceAsync;
import org.ourproject.kune.workspace.client.sitebar.sitesign.SiteSignOutLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.tags.TagsSummary;
import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.title.EntitySubTitle;
import org.ourproject.kune.workspace.client.title.EntityTitle;
import com.calclab.suco.client.ioc.decorator.NoDecoration;
@@ -495,6 +501,20 @@
}
});
+ register(Singleton.class, new Factory<ContextPropEditor>(ContextPropEditor.class) {
+ @Override
+ public ContextPropEditor create() {
+ final ContextPropEditorPresenter presenter = new ContextPropEditorPresenter($(Session.class),
+ $(StateManager.class), $(ContentCapabilitiesRegistry.class), $$(TagsSummary.class),
+ $$(ContentServiceAsync.class), $(EntityTitle.class), $(EntitySubTitle.class));
+ final ContextPropEditorView view = new ContextPropEditorPanel(presenter,
+ $(I18nUITranslationService.class), $(WorkspaceSkeleton.class), $$(LanguageSelector.class),
+ $(Images.class));
+ presenter.init(view);
+ return presenter;
+ }
+ });
+
register(Singleton.class, new Factory<FileDownloadUtils>(FileDownloadUtils.class) {
@Override
public FileDownloadUtils create() {
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java 2008-11-24 11:49:57 UTC (rev 964)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java 2008-11-24 18:14:39 UTC (rev 965)
@@ -182,6 +182,7 @@
}
private Object[][] mapCountries() {
+ assert (initData != null);
final Object[][] objs = new Object[initData.getCountries().size()][1];
int i = 0;
for (I18nCountryDTO country : initData.getCountries()) {
@@ -192,6 +193,7 @@
}
private Object[][] mapLangs() {
+ assert (initData != null);
final Object[][] objs = new Object[initData.getLanguages().size()][1];
int i = 0;
for (I18nLanguageSimpleDTO language : initData.getLanguages()) {
@@ -202,6 +204,7 @@
}
private void mapTimezones() {
+ assert (initData != null);
timezonesArray = new Object[initData.getTimezones().length][1];
for (int i = 0; i < getTimezones().length; i++) {
final Object[] obj = new Object[] { initData.getTimezones()[i] };
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-11-24 11:49:57 UTC (rev 964)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2008-11-24 18:14:39 UTC (rev 965)
@@ -0,0 +1,496 @@
+package org.ourproject.kune.workspace.client;
+
+import org.ourproject.kune.platf.client.actions.ActionEnableCondition;
+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.ActionToolbarButtonSeparator;
+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;
+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.StateContainerDTO;
+import org.ourproject.kune.platf.client.dto.StateContentDTO;
+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.platf.client.utils.DeferredCommandWrapper;
+import org.ourproject.kune.workspace.client.cnt.FoldableContent;
+import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
+import org.ourproject.kune.workspace.client.cxt.ContextPropEditor;
+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 abstract class AbstractFoldableContentActions {
+
+ protected final Session session;
+ protected final StateManager stateManager;
+ protected final I18nUITranslationService i18n;
+ protected final Provider<ContentServiceAsync> contentServiceProvider;
+ protected final Provider<FileUploader> fileUploaderProvider;
+ protected final ContextNavigator contextNavigator;
+ protected final KuneErrorHandler errorHandler;
+ protected final Provider<GroupServiceAsync> groupServiceProvider;
+ protected final ContentActionRegistry contentActionRegistry;
+ protected final ContextActionRegistry contextActionRegistry;
+ protected final Provider<FileDownloadUtils> fileDownloadProvider;
+ protected final Provider<TextEditor> textEditorProvider;
+ protected final Provider<ContextPropEditor> contextPropEditorProvider;
+ protected final FoldableContent foldableContent;
+ protected final DeferredCommandWrapper deferredCommandWrapper;
+ protected final EntityLogo entityLogo;
+ protected ActionMenuItemDescriptor<StateToken> go;
+ protected ActionToolbarButtonDescriptor<StateToken> goGroupHome;
+ protected ActionToolbarButtonAndItemDescriptor<StateToken> uploadMedia;
+ protected ActionToolbarButtonDescriptor<StateToken> download;
+ protected ActionMenuItemDescriptor<StateToken> downloadCtx;
+ protected ActionToolbarButtonDescriptor<StateToken> translateContent;
+ protected ActionToolbarButtonDescriptor<StateToken> editContent;
+
+ public AbstractFoldableContentActions(Session session, StateManager stateManager, I18nUITranslationService i18n,
+ KuneErrorHandler errorHandler, DeferredCommandWrapper deferredCommandWrapper,
+ Provider<GroupServiceAsync> groupServiceProvider, Provider<ContentServiceAsync> contentServiceProvider,
+ Provider<FileUploader> fileUploaderProvider, ContextNavigator contextNavigator,
+ ContentActionRegistry contentActionRegistry, ContextActionRegistry contextActionRegistry,
+ Provider<FileDownloadUtils> fileDownloadProvider, Provider<TextEditor> textEditorProvider,
+ Provider<ContextPropEditor> contextPropEditorProvider, FoldableContent foldableContent,
+ EntityLogo entityLogo) {
+ this.session = session;
+ this.stateManager = stateManager;
+ this.i18n = i18n;
+ this.errorHandler = errorHandler;
+ this.deferredCommandWrapper = deferredCommandWrapper;
+ this.groupServiceProvider = groupServiceProvider;
+ this.contentServiceProvider = contentServiceProvider;
+ this.fileUploaderProvider = fileUploaderProvider;
+ this.contextNavigator = contextNavigator;
+ this.contentActionRegistry = contentActionRegistry;
+ this.contextActionRegistry = contextActionRegistry;
+ this.fileDownloadProvider = fileDownloadProvider;
+ this.textEditorProvider = textEditorProvider;
+ this.contextPropEditorProvider = contextPropEditorProvider;
+ this.foldableContent = foldableContent;
+ this.entityLogo = entityLogo;
+ createCommonActions();
+ createActions();
+ session.onInitDataReceived(new Listener<InitDataDTO>() {
+ public void onEvent(InitDataDTO parameter) {
+ createCommonPostSessionInitActions();
+ createPostSessionInitActions();
+ }
+ });
+ }
+
+ protected void createActions() {
+ }
+
+ protected ActionToolbarMenuAndItemDescriptor<StateToken> createContentRenameAction(String parentMenuTitle,
+ String textDescription) {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtn = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
+ public void onEvent(final StateToken stateToken) {
+ contextNavigator.editItem(stateToken);
+ }
+ });
+ renameCtn.setTextDescription(textDescription);
+ renameCtn.setParentMenuTitle(parentMenuTitle);
+ return renameCtn;
+ }
+
+ protected ActionToolbarMenuAndItemDescriptor<StateToken> createDelContainerAction(String text,
+ String parentMenuTitle) {
+ 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");
+ }
+ });
+ delContainer.setParentMenuTitle(parentMenuTitle);
+ delContainer.setTextDescription(i18n.t(text));
+ delContainer.setMustBeConfirmed(true);
+ delContainer.setConfirmationTitle(i18n.t("Please confirm"));
+ delContainer.setConfirmationText(i18n.t("You will delete it and also all its contents. Are you sure?"));
+ return delContainer;
+ }
+
+ protected ActionToolbarMenuAndItemDescriptor<StateToken> createDelContentAction(String parentMenuTitle,
+ String textDescription) {
+ 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>() {
+ public void onSuccess(final String result) {
+ final StateToken parent = token.clone().clearDocument();
+ stateManager.gotoToken(parent);
+ }
+ });
+ }
+ });
+ delContent.setParentMenuTitle(parentMenuTitle);
+ delContent.setTextDescription(textDescription);
+ 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 itemToken) {
+ final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent().getStateToken();
+ return !itemToken.equals(defContentToken);
+ }
+ });
+ return delContent;
+ }
+
+ protected ActionToolbarMenuAndItemDescriptor<StateToken> createDocAction(String iconUrl, final String description,
+ final String typeId) {
+ 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(),
+ session.getCurrentState().getStateToken(), description, typeId,
+ new AsyncCallbackSimple<StateContentDTO>() {
+ public void onSuccess(final StateContentDTO state) {
+ contextNavigator.setEditOnNextStateChange(true);
+ stateManager.setRetrievedState(state);
+ }
+ });
+ }
+ });
+ addDoc.setTextDescription(description);
+ addDoc.setParentMenuTitle(i18n.t("Folder"));
+ addDoc.setParentSubMenuTitle(i18n.t("New"));
+ addDoc.setIconUrl(iconUrl);
+ return addDoc;
+ }
+
+ protected 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,
+ contentTypeId, new AsyncCallbackSimple<StateContainerDTO>() {
+ public void onSuccess(final StateContainerDTO state) {
+ contextNavigator.setEditOnNextStateChange(true);
+ stateManager.setRetrievedState(state);
+ }
+ });
+ }
+ });
+ addFolder.setTextDescription(textDescription);
+ addFolder.setParentMenuTitle(parentMenuTitle);
+ addFolder.setParentSubMenuTitle(parentMenuSubtitle);
+ addFolder.setIconUrl(iconUrl);
+ return addFolder;
+ }
+
+ protected void createPostSessionInitActions() {
+ }
+
+ protected ActionToolbarMenuDescriptor<StateToken> createRefreshCntAction(String parentMenuTitle) {
+ 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);
+ }
+ });
+ refreshCnt.setMustBeAuthenticated(false);
+ refreshCnt.setParentMenuTitle(parentMenuTitle);
+ refreshCnt.setTextDescription(i18n.t("Refresh"));
+ refreshCnt.setIconUrl("images/nav/refresh.png");
+ return refreshCnt;
+ }
+
+ protected ActionToolbarMenuDescriptor<StateToken> createRefreshCxtAction(String parentMenuTitleCtx) {
+ 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);
+ }
+ });
+ refreshCtx.setMustBeAuthenticated(false);
+ refreshCtx.setParentMenuTitle(parentMenuTitleCtx);
+ refreshCtx.setTextDescription(i18n.t("Refresh"));
+ refreshCtx.setIconUrl("images/nav/refresh.png");
+ return refreshCtx;
+ }
+
+ protected ActionToolbarMenuAndItemDescriptor<StateToken> createRenameContentInCtxAction(String parentMenuTitleCtx,
+ String textDescription) {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtx = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Editor, ActionToolbarPosition.topbar, new Listener<StateToken>() {
+ public void onEvent(final StateToken stateToken) {
+ contextNavigator.editItem(stateToken);
+ }
+ });
+ renameCtx.setTextDescription(textDescription);
+ renameCtx.setParentMenuTitle(parentMenuTitleCtx);
+ return renameCtx;
+ }
+
+ protected ActionToolbarMenuDescriptor<StateToken> createSetAsDefContent(String parentMenuTitle) {
+ 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 itemToken) {
+ final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent().getStateToken();
+ return !itemToken.equals(defContentToken);
+ }
+ });
+ setAsDefGroupContent.setParentMenuTitle(parentMenuTitle);
+ return setAsDefGroupContent;
+ }
+
+ protected ActionToolbarMenuAndItemDescriptor<StateToken> createSetStatusAction(final AccessRolDTO rol,
+ final String textDescription, final ContentStatusDTO status) {
+ 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) {
+ session.getContentState().setStatus(status);
+ contextNavigator.setItemStatus(stateToken, 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;
+ }
+
+ protected 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();
+ }
+ });
+ uploadFile.setTextDescription(textDescription);
+ uploadFile.setIconUrl(iconUrl);
+ uploadFile.setToolTip(toolTip);
+ return uploadFile;
+ }
+
+ protected void downloadContent(final StateToken token) {
+ fileDownloadProvider.get().downloadFile(token);
+ }
+
+ private void createCommonActions() {
+ go = new ActionMenuItemDescriptor<StateToken>(AccessRolDTO.Viewer, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ stateManager.gotoToken(token);
+ }
+ });
+ go.setMustBeAuthenticated(false);
+ go.setTextDescription(i18n.t("Open"));
+ go.setIconUrl("images/nav/go.png");
+ go.setEnableCondition(new ActionEnableCondition<StateToken>() {
+ public boolean mustBeEnabled(final StateToken itemToken) {
+ return !contextNavigator.isSelected(itemToken);
+ }
+ });
+
+ goGroupHome = new ActionToolbarButtonDescriptor<StateToken>(AccessRolDTO.Viewer, ActionToolbarPosition.topbar,
+ new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ stateManager.gotoToken(token.getGroup());
+ }
+ });
+ goGroupHome.setMustBeAuthenticated(false);
+ goGroupHome.setIconUrl("images/group-home.png");
+ goGroupHome.setEnableCondition(new ActionEnableCondition<StateToken>() {
+ public boolean mustBeEnabled(final StateToken itemToken) {
+ final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent().getStateToken();
+ return !itemToken.equals(defContentToken);
+ }
+ });
+ goGroupHome.setLeftSeparator(ActionToolbarButtonSeparator.fill);
+
+ download = new ActionToolbarButtonDescriptor<StateToken>(AccessRolDTO.Viewer, ActionToolbarPosition.topbar,
+ new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ downloadContent(token);
+ }
+ });
+ download.setMustBeAuthenticated(false);
+ download.setTextDescription(i18n.t("Download"));
+ download.setToolTip(i18n.t("Download this file"));
+ download.setIconUrl("images/nav/download.png");
+
+ downloadCtx = new ActionMenuItemDescriptor<StateToken>(AccessRolDTO.Viewer, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ downloadContent(token);
+ }
+ });
+ downloadCtx.setMustBeAuthenticated(false);
+ downloadCtx.setTextDescription(i18n.t("Download"));
+ downloadCtx.setIconUrl("images/nav/download.png");
+
+ 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"));
+ }
+ });
+ translateContent.setTextDescription(i18n.tWithNT("Translate", "used in button"));
+ translateContent.setToolTip(i18n.t("Translate this document to other languages"));
+ translateContent.setIconUrl("images/language.gif");
+ translateContent.setLeftSeparator(ActionToolbarButtonSeparator.spacer);
+
+ 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();
+ foldableContent.detach();
+ contextNavigator.detach();
+ contextPropEditorProvider.get().attach();
+ editor.editContent(session.getContentState().getContent(), new Listener<String>() {
+ public void onEvent(final String html) {
+ Site.showProgressSaving();
+ contentServiceProvider.get().save(session.getUserHash(), stateToken, html,
+ new AsyncCallback<Object>() {
+ 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(Object param) {
+ Site.hideProgress();
+ session.getContentState().setContent(html);
+ editor.onSaved();
+ }
+ });
+ }
+ }, new Listener0() {
+ public void onEvent() {
+ // onClose
+ deferredCommandWrapper.addCommand(new Listener0() {
+ public void onEvent() {
+ foldableContent.attach();
+ contextPropEditorProvider.get().detach();
+ contextNavigator.attach();
+ if (session.getCurrentStateToken().equals(stateToken)) {
+ foldableContent.refreshState();
+ }
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+ });
+ editContent.setTextDescription(i18n.tWithNT("Edit", "used in button"));
+ editContent.setIconUrl("images/content_edit.png");
+ editContent.setLeftSeparator(ActionToolbarButtonSeparator.spacer);
+
+ }
+
+ private void createCommonPostSessionInitActions() {
+ uploadMedia = createUploadAction(i18n.t("Upload media"), "images/nav/upload.png",
+ i18n.t("Upload some media (images, videos)"), session.getGalleryPermittedExtensions());
+ }
+
+ /**
+ * For future use contentActionRegistry.addAction(setGroupLogo,
+ * TYPE_UPLOADEDFILE);
+ */
+ @SuppressWarnings("unused")
+ private ActionToolbarMenuAndItemDescriptor<StateToken> createSetGroupLogoAction(String parentMenuTitle) {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> setGroupLogo = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Administrator, ActionToolbarPosition.topbar, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ groupServiceProvider.get().setGroupFullLogo(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(parentMenuTitle);
+ 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 itemToken) {
+ final BasicMimeTypeDTO mime = session.getContentState().getMimeType();
+ return mime != null && mime.getType().equals("image");
+ }
+ });
+ return setGroupLogo;
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContent.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContent.java 2008-11-24 11:49:57 UTC (rev 964)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContent.java 2008-11-24 18:14:39 UTC (rev 965)
@@ -0,0 +1,11 @@
+package org.ourproject.kune.workspace.client.cnt;
+
+public interface FoldableContent {
+
+ void attach();
+
+ void detach();
+
+ void refreshState();
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java 2008-11-24 11:49:57 UTC (rev 964)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java 2008-11-24 18:14:39 UTC (rev 965)
@@ -13,7 +13,7 @@
import com.calclab.suco.client.listener.Listener;
-public abstract class FoldableContentPresenter extends AbstractContentPresenter {
+public abstract class FoldableContentPresenter extends AbstractContentPresenter implements FoldableContent {
private final String toolName;
private final ActionRegistry<StateToken> actionRegistry;
@@ -37,6 +37,10 @@
return toolName;
}
+ public void refreshState() {
+ setState(session.getContentState());
+ }
+
protected void setState(StateAbstractDTO state) {
toolbar.detach();
if (state instanceof StateContainerDTO) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Toolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Toolbar.java 2008-11-24 11:49:57 UTC (rev 964)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/Toolbar.java 2008-11-24 18:14:39 UTC (rev 965)
@@ -42,6 +42,10 @@
public void add(final Widget widget) {
childPanel.add(widget);
+ if (widget instanceof SimpleToolbar) {
+ widget.setWidth("100%");
+ childPanel.setCellWidth(widget, "100%");
+ }
doLayoutIfNeeded();
}
1
0
24 Nov '08
Author: vjrj
Date: 2008-11-24 12:49:57 +0100 (Mon, 24 Nov 2008)
New Revision: 964
Modified:
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePresenter.java
Log:
Incomplete - task Use of new ActionDescriptionClass in SocialNetwork
SiteSearch adjusts, EntitySummary UI expand fixes
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-11-22 19:18:43 UTC (rev 963)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java 2008-11-24 11:49:57 UTC (rev 964)
@@ -178,7 +178,7 @@
}
break;
case yourbuddies:
- if (!userBuddies.contains(userLogged.getShortName())) {
+ if (userLogged != userGroup && !userBuddies.contains(userLogged.getShortName())) {
socialNetData.setIsBuddiesVisible(false);
socialNetData.setUserBuddies(UserBuddiesData.EMPTY);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPanel.java 2008-11-22 19:18:43 UTC (rev 963)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPanel.java 2008-11-24 11:49:57 UTC (rev 964)
@@ -35,6 +35,7 @@
import com.calclab.suco.client.ioc.Provider;
import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
+import com.gwtext.client.core.EventObject;
import com.gwtext.client.data.Record;
import com.gwtext.client.widgets.form.ComboBox;
import com.gwtext.client.widgets.form.DateField;
@@ -66,9 +67,8 @@
private ContextPropertyPanel aclComponent;
private AccessListsPanel accessListsPanel;
- public ContextPropEditorPanel(final ContextPropEditorPresenter presenter,
- final I18nTranslationService i18n, WorkspaceSkeleton ws, Provider<LanguageSelector> langSelectorProv,
- Images images) {
+ public ContextPropEditorPanel(final ContextPropEditorPresenter presenter, final I18nTranslationService i18n,
+ WorkspaceSkeleton ws, Provider<LanguageSelector> langSelectorProv, Images images) {
this.i18n = i18n;
this.ws = ws;
this.presenter = presenter;
@@ -243,19 +243,24 @@
tagsField = new TextArea();
tagsField.setWidth(FORMS_WIDTH - 10);
tagsField.setHeight("3em");
+ tagsField.setEnterIsSpecial(true);
tagsField.addListener(new FieldListenerAdapter() {
@Override
public void onChange(final Field field, final Object newVal, final Object oldVal) {
presenter.setTags((String) newVal);
}
});
+ tagsField.addListener(new FieldListenerAdapter() {
+ @Override
+ public void onSpecialKey(final Field field, final EventObject e) {
+ if (e.getKey() == 13) {
+ presenter.setTags(tagsField.getRawValue());
+ e.stopEvent();
+ }
+ }
+ });
form.add(tagsField);
return new ContextPropertyPanel(i18n.t("Tags"), i18n.t("Keywords or terms associated with this work"), true,
TAGS_PROP, form);
}
-
- // private void removeComponent(final String header) {
- // options.removeStackItem(header);
- // }
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPanel.java 2008-11-22 19:18:43 UTC (rev 963)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPanel.java 2008-11-24 11:49:57 UTC (rev 964)
@@ -32,19 +32,21 @@
import com.google.gwt.user.client.ui.Widget;
public class SiteSearchPanel implements SiteSearchView {
- private static final String SEARCH_TEXT_WIDTH_SMALL = "120";
- private static final String SEARCH_TEXT_WIDTH_BIG = "180";
- private static final String SITE_SEARCH_BUTTON = "kune-ssp-bt";
- private static final String SITE_SEARCH_TEXTBOX = "kune-ssp-tb";
+ private static final int SEARCH_TEXT_HEIGHT = 15;
+ private static final int SEARCH_TEXT_WIDTH_SMALL = 120;
+ private static final int SEARCH_TEXT_WIDTH_BIG = 180;
+ public static final String SITE_SEARCH_BUTTON = "kune-ssp-searchbt";
+ public static final String SITE_SEARCH_TEXTBOX = "kune-ssp-tbox";
private final PushButton searchButton;
private final TextBox searchTextBox;
private final I18nUITranslationService i18n;
+ private final SimpleToolbar siteBar;
public SiteSearchPanel(final SiteSearchPresenter presenter, final WorkspaceSkeleton ws,
final I18nUITranslationService i18n, Images img) {
this.i18n = i18n;
- final SimpleToolbar siteBar = ws.getSiteBar();
+ siteBar = ws.getSiteBar();
siteBar.addSpacer();
siteBar.addSpacer();
searchButton = new PushButton(img.kuneSearchIco().createImage(), img.kuneSearchIcoPush().createImage());
@@ -98,6 +100,10 @@
searchTextBox.setText("");
}
+ public void selectSearchText() {
+ searchTextBox.selectAll();
+ }
+
public void setDefaultTextSearch() {
searchTextBox.setText(i18n.t("Search"));
}
@@ -107,10 +113,10 @@
}
public void setTextSearchBig() {
- searchTextBox.setWidth(SEARCH_TEXT_WIDTH_BIG);
+ searchTextBox.setPixelSize(SEARCH_TEXT_WIDTH_BIG, 15);
}
public void setTextSearchSmall() {
- searchTextBox.setWidth(SEARCH_TEXT_WIDTH_SMALL);
+ searchTextBox.setPixelSize(SEARCH_TEXT_WIDTH_SMALL, SEARCH_TEXT_HEIGHT);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPresenter.java 2008-11-22 19:18:43 UTC (rev 963)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchPresenter.java 2008-11-24 11:49:57 UTC (rev 964)
@@ -34,6 +34,7 @@
public void doSearch(final String termToSearch) {
provider.get().doSearch(termToSearch);
+ view.setTextSearchSmall();
}
public View getView() {
@@ -46,7 +47,7 @@
public void onSearchFocus() {
view.setTextSearchBig();
- view.clearSearchText();
+ view.selectSearchText();
}
public void onSearchLostFocus(final String search) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchView.java 2008-11-22 19:18:43 UTC (rev 963)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/sitesearch/SiteSearchView.java 2008-11-24 11:49:57 UTC (rev 964)
@@ -24,6 +24,8 @@
void clearSearchText();
+ void selectSearchText();
+
void setDefaultTextSearch();
void setTextSearchBig();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java 2008-11-22 19:18:43 UTC (rev 963)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SimpleToolbar.java 2008-11-24 11:49:57 UTC (rev 964)
@@ -72,6 +72,10 @@
childPanel.clear();
}
+ public void setCellWidth(Widget widget, String width) {
+ childPanel.setCellWidth(widget, width);
+ }
+
public void setCleanStyle() {
setStyleName("x-toolbar");
addStyleName("x-panel");
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SummaryPanel.java 2008-11-22 19:18:43 UTC (rev 963)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SummaryPanel.java 2008-11-24 11:49:57 UTC (rev 964)
@@ -53,7 +53,6 @@
public void addInSummary() {
ws.addInSummary(this);
- // this.expand();
doLayoutIfNeeded();
}
@@ -65,6 +64,11 @@
}
@Override
+ public void expand() {
+ super.expand();
+ }
+
+ @Override
public void setVisible(final boolean visible) {
super.setVisible(visible);
doLayoutIfNeeded();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java 2008-11-22 19:18:43 UTC (rev 963)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java 2008-11-24 11:49:57 UTC (rev 964)
@@ -81,6 +81,7 @@
public void setGroupTags(final TagCloudResultDTO tagCloud) {
setCloud(tagCloud);
+ view.expand();
}
void setState(final StateContainerDTO state) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java 2008-11-22 19:18:43 UTC (rev 963)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java 2008-11-24 11:49:57 UTC (rev 964)
@@ -28,6 +28,8 @@
void clear();
+ void expand();
+
void setTheme(WsTheme oldTheme, WsTheme newTheme);
void setVisible(boolean visible);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePresenter.java 2008-11-22 19:18:43 UTC (rev 963)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/title/EntityTitlePresenter.java 2008-11-24 11:49:57 UTC (rev 964)
@@ -88,17 +88,22 @@
}
public void setContentDate(final Date publishedOn) {
- String dateFormat = session.getCurrentLanguage().getDateFormat();
- final DateTimeFormat fmt;
- if (dateFormat == null) {
- fmt = DateTimeFormat.getFormat("M/d/yyyy h:mm a");
+ if (publishedOn != null) {
+ String dateFormat = session.getCurrentLanguage().getDateFormat();
+ final DateTimeFormat fmt;
+ if (dateFormat == null) {
+ fmt = DateTimeFormat.getFormat("M/d/yyyy h:mm a");
+ } else {
+ String abrevMonthInEnglish = DateTimeFormat.getFormat("MMM").format(publishedOn);
+ String monthToTranslate = abrevMonthInEnglish + " [%NT abbreviated month]";
+ dateFormat = dateFormat.replaceFirst("MMM", "'" + i18n.t(monthToTranslate) + "'");
+ fmt = DateTimeFormat.getFormat(dateFormat + " h:mm a");
+ }
+ view.setContentDate(i18n.t("Published on: [%s]", fmt.format(publishedOn)));
+ setContentDateVisible(true);
} else {
- String abrevMonthInEnglish = DateTimeFormat.getFormat("MMM").format(publishedOn);
- String monthToTranslate = abrevMonthInEnglish + " [%NT abbreviated month]";
- dateFormat = dateFormat.replaceFirst("MMM", "'" + i18n.t(monthToTranslate) + "'");
- fmt = DateTimeFormat.getFormat(dateFormat + " h:mm a");
+ setContentDateVisible(false);
}
- view.setContentDate(i18n.t("Published on: [%s]", fmt.format(publishedOn)));
}
/**
@@ -164,12 +169,7 @@
setContentTitle(state.getTitle(), state.getContentRights().isEditable()
&& renamableContentRegistry.contains(state.getTypeId()));
Date publishedOn = state.getPublishedOn();
- if (publishedOn != null) {
- setContentDateVisible(true);
- setContentDate(publishedOn);
- } else {
- setContentDateVisible(false);
- }
+ setContentDate(publishedOn);
final String contentTypeIcon = iconsRegistry.getContentTypeIcon(state.getTypeId(), state.getMimeType());
setIcon(contentTypeIcon);
view.setContentTitleVisible(true);
1
0