r1694 - in trunk/src/main/java/cc/kune: core/client/actions events/client/actions events/client/viewer
Author: vjrj_ Date: 2012-02-22 15:33:28 +0100 (Wed, 22 Feb 2012) New Revision: 1694 Added: trunk/src/main/java/cc/kune/events/client/actions/CalendarRolAction.java Modified: trunk/src/main/java/cc/kune/core/client/actions/RolActionAutoUpdated.java trunk/src/main/java/cc/kune/events/client/actions/CalendarOnOverMenu.java trunk/src/main/java/cc/kune/events/client/actions/EventAddMenuItem.java trunk/src/main/java/cc/kune/events/client/actions/EventEditMenuItem.java trunk/src/main/java/cc/kune/events/client/actions/EventRemoveMenuItem.java trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPresenter.java Log: NEW - # 158: Add a Calendar view to event tool http://kune.ourproject.org/issues/ticket/158 Modified: trunk/src/main/java/cc/kune/core/client/actions/RolActionAutoUpdated.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/actions/RolActionAutoUpdated.java 2012-02-22 10:54:28 UTC (rev 1693) +++ trunk/src/main/java/cc/kune/core/client/actions/RolActionAutoUpdated.java 2012-02-22 14:33:28 UTC (rev 1694) @@ -59,25 +59,23 @@ public void refreshStatus(final AccessRolDTO rolRequired, final boolean authNeed, final boolean isLogged, final boolean visibleForMembers, final boolean visibleForNonMemb, final AccessRights newRights) { - boolean newVisibility = false; boolean newEnabled = false; if (authNeed && !isLogged) { - newVisibility = newEnabled = false; + newEnabled = false; } else { // Auth ok newEnabled = RolComparator.isEnabled(rolRequired, newRights); if (newEnabled) { final boolean isMember = RolComparator.isMember(newRights); - newEnabled = newVisibility = isMember && visibleForMembers || !isMember && visibleForNonMemb; - } else { - newVisibility = false; + newEnabled = isMember && visibleForMembers || !isMember && visibleForNonMemb; } } setEnabled(!newEnabled); setEnabled(newEnabled); + // Workaround to force change ... - putValue(GuiActionDescrip.VISIBLE, !newVisibility); - putValue(GuiActionDescrip.VISIBLE, newVisibility); + putValue(GuiActionDescrip.VISIBLE, !newEnabled); + putValue(GuiActionDescrip.VISIBLE, newEnabled); // NotifyUser.info("Set '" + getValue(Action.NAME) + "' visible: " + // newVisibility, true); } Modified: trunk/src/main/java/cc/kune/events/client/actions/CalendarOnOverMenu.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/actions/CalendarOnOverMenu.java 2012-02-22 10:54:28 UTC (rev 1693) +++ trunk/src/main/java/cc/kune/events/client/actions/CalendarOnOverMenu.java 2012-02-22 14:33:28 UTC (rev 1694) @@ -4,7 +4,9 @@ import cc.kune.gspace.client.actions.StandaloneMenuProvider; import com.google.inject.Inject; +import com.google.inject.Singleton; +@Singleton public class CalendarOnOverMenu extends StandaloneMenuProvider { @Inject Added: trunk/src/main/java/cc/kune/events/client/actions/CalendarRolAction.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/actions/CalendarRolAction.java (rev 0) +++ trunk/src/main/java/cc/kune/events/client/actions/CalendarRolAction.java 2012-02-22 14:33:28 UTC (rev 1694) @@ -0,0 +1,36 @@ +package cc.kune.events.client.actions; + +import cc.kune.core.client.actions.RolAction; +import cc.kune.core.client.actions.RolComparator; +import cc.kune.core.client.state.Session; +import cc.kune.core.shared.domain.utils.AccessRights; +import cc.kune.core.shared.dto.AccessRolDTO; +import cc.kune.events.client.viewer.CalendarStateChangeEvent; +import cc.kune.events.client.viewer.CalendarViewer; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Provider; + +public abstract class CalendarRolAction extends RolAction { + + public CalendarRolAction(final EventBus eventBus, final Session session, + final Provider<CalendarViewer> calendar, final AccessRolDTO rolRequired, final boolean authNeed, + final boolean onlyOnApp) { + super(rolRequired, authNeed); + eventBus.addHandler(CalendarStateChangeEvent.getType(), + new CalendarStateChangeEvent.CalendarStateChangeHandler() { + @Override + public void onCalendarStateChange(final CalendarStateChangeEvent event) { + // if the calendar is not selecting a appointment don't show this + final AccessRights rights = session.getContainerState().getContainerRights(); + final boolean isEnabled = RolComparator.isEnabled(AccessRolDTO.Editor, rights); + final boolean isMember = RolComparator.isMember(rights); + final boolean isOnApp = !calendar.get().getAppToEdit().equals(CalendarViewer.NO_APPOINT); + final boolean newEnabled = isMember && isEnabled && (!onlyOnApp || isOnApp); + setEnabled(!newEnabled); + setEnabled(newEnabled); + } + }); + } + +} Modified: trunk/src/main/java/cc/kune/events/client/actions/EventAddMenuItem.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/actions/EventAddMenuItem.java 2012-02-22 10:54:28 UTC (rev 1693) +++ trunk/src/main/java/cc/kune/events/client/actions/EventAddMenuItem.java 2012-02-22 14:33:28 UTC (rev 1694) @@ -7,11 +7,11 @@ import cc.kune.common.client.ui.dialogs.PromptTopDialog; import cc.kune.common.client.ui.dialogs.PromptTopDialog.Builder; import cc.kune.common.shared.i18n.I18nTranslationService; -import cc.kune.core.client.actions.RolAction; import cc.kune.core.client.resources.nav.NavResources; import cc.kune.core.client.rpcservices.AsyncCallbackSimple; import cc.kune.core.client.rpcservices.ContentServiceAsync; import cc.kune.core.client.state.Session; +import cc.kune.core.client.state.StateManager; import cc.kune.core.shared.SessionConstants; import cc.kune.core.shared.dto.AccessRolDTO; import cc.kune.core.shared.dto.StateContentDTO; @@ -23,13 +23,14 @@ import com.bradrydzewski.gwt.calendar.client.AppointmentStyle; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.shared.EventBus; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; @Singleton public class EventAddMenuItem extends MenuItemDescriptor { - public static class EventAddAction extends RolAction { + public static class EventAddAction extends CalendarRolAction { private final Provider<CalendarViewer> calendar; private final Provider<ContentServiceAsync> contService; private PromptTopDialog dialog; @@ -39,8 +40,8 @@ @Inject public EventAddAction(final NavResources res, final I18nTranslationService i18n, final Provider<CalendarViewer> calendar, final Provider<ContentServiceAsync> contService, - final Session session) { - super(AccessRolDTO.Editor, true); + final Session session, final StateManager stateManager, final EventBus eventBus) { + super(eventBus, session, calendar, AccessRolDTO.Editor, true, false); this.i18n = i18n; this.calendar = calendar; this.contService = contService; Modified: trunk/src/main/java/cc/kune/events/client/actions/EventEditMenuItem.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/actions/EventEditMenuItem.java 2012-02-22 10:54:28 UTC (rev 1693) +++ trunk/src/main/java/cc/kune/events/client/actions/EventEditMenuItem.java 2012-02-22 14:33:28 UTC (rev 1694) @@ -2,13 +2,12 @@ import cc.kune.common.client.actions.ActionEvent; import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor; -import cc.kune.common.client.ui.dialogs.PromptTopDialog; import cc.kune.common.shared.i18n.I18nTranslationService; -import cc.kune.core.client.actions.RolAction; import cc.kune.core.client.resources.nav.NavResources; +import cc.kune.core.client.state.AccessRightsClientManager; +import cc.kune.core.client.state.Session; import cc.kune.core.client.state.StateManager; import cc.kune.core.shared.dto.AccessRolDTO; -import cc.kune.events.client.viewer.CalendarStateChangeEvent; import cc.kune.events.client.viewer.CalendarViewer; import com.google.gwt.event.shared.EventBus; @@ -18,28 +17,18 @@ @Singleton public class EventEditMenuItem extends MenuItemDescriptor { - public static class EventEditAction extends RolAction { + public static class EventEditAction extends CalendarRolAction { private final Provider<CalendarViewer> calendar; - private PromptTopDialog dialog; - private final I18nTranslationService i18n; private final StateManager stateManager; @Inject public EventEditAction(final NavResources res, final I18nTranslationService i18n, - final Provider<CalendarViewer> calendar, final EventBus eventBus, final StateManager stateManager) { - super(AccessRolDTO.Administrator, true); - this.i18n = i18n; + final Provider<CalendarViewer> calendar, final EventBus eventBus, + final StateManager stateManager, final Session session, final AccessRightsClientManager rightsMan) { + super(eventBus, session, calendar, AccessRolDTO.Editor, true, true); this.calendar = calendar; this.stateManager = stateManager; withText(i18n.t("Edit the appointment")).withIcon(res.go()); - eventBus.addHandler(CalendarStateChangeEvent.getType(), - new CalendarStateChangeEvent.CalendarStateChangeHandler() { - @Override - public void onCalendarStateChange(final CalendarStateChangeEvent event) { - // if the calendar is not selecting a appointment don't show this - setEnabled(!calendar.get().getAppToEdit().equals(CalendarViewer.NO_APPOINT)); - } - }); } @Override Modified: trunk/src/main/java/cc/kune/events/client/actions/EventRemoveMenuItem.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/actions/EventRemoveMenuItem.java 2012-02-22 10:54:28 UTC (rev 1693) +++ trunk/src/main/java/cc/kune/events/client/actions/EventRemoveMenuItem.java 2012-02-22 14:33:28 UTC (rev 1694) @@ -6,10 +6,11 @@ import cc.kune.common.client.ui.dialogs.PromptTopDialog; import cc.kune.common.shared.i18n.I18nTranslationService; import cc.kune.common.shared.utils.TextUtils; -import cc.kune.core.client.actions.RolAction; import cc.kune.core.client.resources.CoreResources; +import cc.kune.core.client.state.AccessRightsClientManager; +import cc.kune.core.client.state.Session; +import cc.kune.core.client.state.StateManager; import cc.kune.core.shared.dto.AccessRolDTO; -import cc.kune.events.client.viewer.CalendarStateChangeEvent; import cc.kune.events.client.viewer.CalendarViewer; import com.google.gwt.event.shared.EventBus; @@ -19,25 +20,19 @@ @Singleton public class EventRemoveMenuItem extends MenuItemDescriptor { - public static class EventEditAction extends RolAction { + public static class EventEditAction extends CalendarRolAction { private final Provider<CalendarViewer> calendar; private PromptTopDialog dialog; private final I18nTranslationService i18n; @Inject public EventEditAction(final CoreResources res, final I18nTranslationService i18n, - final Provider<CalendarViewer> calendar, final EventBus eventBus) { - super(AccessRolDTO.Editor, true); + final Provider<CalendarViewer> calendar, final EventBus eventBus, final Session session, + final StateManager stateManager, final AccessRightsClientManager rightsMan) { + super(eventBus, session, calendar, AccessRolDTO.Administrator, true, true); this.i18n = i18n; this.calendar = calendar; withText(i18n.t("Remove this appointment")).withIcon(res.cancel()); - eventBus.addHandler(CalendarStateChangeEvent.getType(), - new CalendarStateChangeEvent.CalendarStateChangeHandler() { - @Override - public void onCalendarStateChange(final CalendarStateChangeEvent event) { - setEnabled(!calendar.get().getAppToEdit().equals(CalendarViewer.NO_APPOINT)); - } - }); } @Override Modified: trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java 2012-02-22 10:54:28 UTC (rev 1693) +++ trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java 2012-02-22 14:33:28 UTC (rev 1694) @@ -73,6 +73,14 @@ // On over calendar menu actionsRegistry.addAction(ActionGroups.TOOLBAR, onOverMenu, containers); + + // actionsRegistry.addAction(ActionGroups.TOOLBAR, eventAddMenuItem, + // containers); + // actionsRegistry.addAction(ActionGroups.TOOLBAR, eventEditMenuItem, + // containers); + // actionsRegistry.addAction(ActionGroups.TOOLBAR, eventRemoveMenuItem, + // containers); + eventAddMenuItem.get(); eventEditMenuItem.get(); eventRemoveMenuItem.get(); Modified: trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPresenter.java 2012-02-22 10:54:28 UTC (rev 1693) +++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPresenter.java 2012-02-22 14:33:28 UTC (rev 1694) @@ -150,6 +150,8 @@ @Override public void onOpen(final OpenEvent<Appointment> event) { // NotifyUser.info("open handler"); + updateMenuItems(); + showMenu(); } }); getView().addSelectionHandler(new SelectionHandler<Appointment>() { @@ -158,8 +160,10 @@ appToEdit = event.getSelectedItem(); onOverDate = event.getSelectedItem().getStart(); // NotifyUser.info("on selection"); - updateMenuItems(); - showMenu(); + + // This is not very usable: + // updateMenuItems(); + // showMenu(); } }); } @@ -235,6 +239,7 @@ @Override public void setContent(@Nonnull final HasContent state) { folderViewerUtils.setContent(getView(), state); + updateMenuItems(); } @Override
participants (1)
-
Vicente J. Ruiz Jurado