r1645 - in trunk: . src/main/java/cc/kune/common/client/actions src/main/java/cc/kune/common/client/ui/dialogs src/main/java/cc/kune/common/client/utils src/main/java/cc/kune/events/client src/main/java/cc/kune/events/client/actions src/main/java/cc/kune/events/client/viewer src/main/java/cc/kune/gspace/client/actions
Author: vjrj_ Date: 2011-12-21 17:48:51 +0100 (Wed, 21 Dec 2011) New Revision: 1645 Added: trunk/src/main/java/cc/kune/events/client/actions/CalendarOnOverMenu.java trunk/src/main/java/cc/kune/events/client/viewer/CalendarStateChangeEvent.java trunk/src/main/java/cc/kune/events/client/viewer/EventAddMenuItem.java trunk/src/main/java/cc/kune/events/client/viewer/EventEditMenuItem.java trunk/src/main/java/cc/kune/events/client/viewer/EventRemoveMenuItem.java trunk/src/main/java/cc/kune/gspace/client/actions/AbstractEditorsMenu.java trunk/src/main/java/cc/kune/gspace/client/actions/AbstractStandaloneMenu.java trunk/src/main/java/cc/kune/gspace/client/actions/StandaloneMenuProvider.java Modified: trunk/pom.xml trunk/src/main/java/cc/kune/common/client/actions/AbstractExtendedAction.java trunk/src/main/java/cc/kune/common/client/ui/dialogs/PromptTopDialog.java trunk/src/main/java/cc/kune/common/client/utils/WindowUtils.java trunk/src/main/java/cc/kune/events/client/EventsGinModule.java trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewer.java trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPresenter.java trunk/src/main/java/cc/kune/gspace/client/actions/AbstractNewMenu.java Log: Calendar tool updated Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-12-21 09:41:22 UTC (rev 1644) +++ trunk/pom.xml 2011-12-21 16:48:51 UTC (rev 1645) @@ -917,26 +917,29 @@ <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> + <descriptors> + <descriptor>src/main/resources/assembly.xml</descriptor> + </descriptors> <archive> <manifest> <mainClass>cc.kune.wave.server.WaveMain</mainClass> </manifest> </archive> - <descriptorRefs> - <descriptorRef>jar-with-dependencies</descriptorRef> - </descriptorRefs> +<!-- <descriptorRefs> --> +<!-- <descriptorRef>jar-with-dependencies</descriptorRef> --> +<!-- </descriptorRefs> --> <dependencySets> <dependencySet> <outputDirectory>/</outputDirectory> <scope>runtime</scope> <unpackOptions> - <excludes> - <!-- FIXME this is needed? --> - <exclude>**/gxt/**</exclude> - <exclude>**/extjs/**</exclude> - <exclude>**extjs**</exclude> - <exclude>**gxt**</exclude> - </excludes> +<!-- <excludes> --> +<!-- FIXME this is needed? --> +<!-- <exclude>**/gxt/**</exclude> --> +<!-- <exclude>**/extjs/**</exclude> --> +<!-- <exclude>**extjs**</exclude> --> +<!-- <exclude>**gxt**</exclude> --> +<!-- </excludes> --> <includes> <include>${basedir}/target/kune-0.1.0-SNAPSHOT/ws/**</include> <include>${basedir}/src/main/webapp/**</include> Modified: trunk/src/main/java/cc/kune/common/client/actions/AbstractExtendedAction.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/actions/AbstractExtendedAction.java 2011-12-21 09:41:22 UTC (rev 1644) +++ trunk/src/main/java/cc/kune/common/client/actions/AbstractExtendedAction.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -22,45 +22,45 @@ import com.google.gwt.resources.client.ImageResource; public abstract class AbstractExtendedAction extends AbstractAction { - public static final String NO_ICON = null; - public static final String NO_TEXT = null; + public static final String NO_ICON = null; + public static final String NO_TEXT = null; - public AbstractExtendedAction() { - super(); - } + public AbstractExtendedAction() { + super(); + } - public AbstractExtendedAction(final String text) { - this(text, null, null); - } + public AbstractExtendedAction(final String text) { + this(text, null, null); + } - public AbstractExtendedAction(final String text, final String iconCls) { - this(text, null, iconCls); - } + public AbstractExtendedAction(final String text, final String iconCls) { + this(text, null, iconCls); + } - public AbstractExtendedAction(final String text, final String tooltip, final String iconCls) { - super(); - super.putValue(Action.NAME, text); - super.putValue(Action.TOOLTIP, tooltip); - super.putValue(Action.SMALL_ICON, iconCls); - } + public AbstractExtendedAction(final String text, final String tooltip, final String iconCls) { + super(); + super.putValue(Action.NAME, text); + super.putValue(Action.TOOLTIP, tooltip); + super.putValue(Action.SMALL_ICON, iconCls); + } - public AbstractExtendedAction withIcon(final ImageResource icon) { - super.putValue(Action.TOOLTIP, icon); - return this; - } + public AbstractExtendedAction withIcon(final ImageResource icon) { + super.putValue(Action.SMALL_ICON, icon); + return this; + } - public AbstractExtendedAction withIconCls(final String icon) { - super.putValue(Action.TOOLTIP, icon); - return this; - } + public AbstractExtendedAction withIconCls(final String icon) { + super.putValue(Action.TOOLTIP, icon); + return this; + } - public AbstractExtendedAction withText(final String text) { - super.putValue(Action.NAME, text); - return this; - } + public AbstractExtendedAction withText(final String text) { + super.putValue(Action.NAME, text); + return this; + } - public AbstractExtendedAction withToolTip(final String tooltip) { - super.putValue(Action.TOOLTIP, tooltip); - return this; - } + public AbstractExtendedAction withToolTip(final String tooltip) { + super.putValue(Action.TOOLTIP, tooltip); + return this; + } } \ No newline at end of file Modified: trunk/src/main/java/cc/kune/common/client/ui/dialogs/PromptTopDialog.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/ui/dialogs/PromptTopDialog.java 2011-12-21 09:41:22 UTC (rev 1644) +++ trunk/src/main/java/cc/kune/common/client/ui/dialogs/PromptTopDialog.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -125,6 +125,10 @@ super.getInnerPanel().add(textField); } + public void clearTextFieldValue() { + textField.reset(); + } + public void focusOnTextBox() { textField.focus(); } Modified: trunk/src/main/java/cc/kune/common/client/utils/WindowUtils.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/utils/WindowUtils.java 2011-12-21 09:41:22 UTC (rev 1644) +++ trunk/src/main/java/cc/kune/common/client/utils/WindowUtils.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -15,51 +15,52 @@ */ package cc.kune.common.client.utils; + public class WindowUtils { - public static Location getLocation() { - Location result = new Location(); - result.setHash(getHash()); - result.setHost(getHost()); - result.setHostName(getHostName()); - result.setHref(getHref()); - result.setPath(getPath()); - result.setPort(getPort()); - result.setProtocol(getProtocol()); - result.setQueryString(getQueryString()); - return result; - } + private static native String getHash() /*-{ + return $wnd.location.hash; + }-*/; - private static native String getHash() /*-{ - return $wnd.location.hash; - }-*/; + private static native String getHost() /*-{ + return $wnd.location.host; + }-*/; - private static native String getHost() /*-{ - return $wnd.location.host; - }-*/; + private static native String getHostName() /*-{ + return $wnd.location.hostname; + }-*/; - private static native String getHostName() /*-{ - return $wnd.location.hostname; - }-*/; + private static native String getHref() /*-{ + return $wnd.location.href; + }-*/; - private static native String getHref() /*-{ - return $wnd.location.href; - }-*/; + public static Location getLocation() { + final Location result = new Location(); + result.setHash(getHash()); + result.setHost(getHost()); + result.setHostName(getHostName()); + result.setHref(getHref()); + result.setPath(getPath()); + result.setPort(getPort()); + result.setProtocol(getProtocol()); + result.setQueryString(getQueryString()); + return result; + } - private static native String getPath() /*-{ - return $wnd.location.pathname; - }-*/; + private static native String getPath() /*-{ + return $wnd.location.pathname; + }-*/; - private static native String getPort() /*-{ - return $wnd.location.port; - }-*/; + private static native String getPort() /*-{ + return $wnd.location.port; + }-*/; - private static native String getProtocol() /*-{ - return $wnd.location.protocol; - }-*/; + private static native String getProtocol() /*-{ + return $wnd.location.protocol; + }-*/; - private static native String getQueryString() /*-{ - return $wnd.location.search; - }-*/; + private static native String getQueryString() /*-{ + return $wnd.location.search; + }-*/; } \ No newline at end of file Modified: trunk/src/main/java/cc/kune/events/client/EventsGinModule.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/EventsGinModule.java 2011-12-21 09:41:22 UTC (rev 1644) +++ trunk/src/main/java/cc/kune/events/client/EventsGinModule.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -27,6 +27,7 @@ import cc.kune.events.client.actions.CalendarGoPrevBtn; import cc.kune.events.client.actions.CalendarGoTodayBtn; import cc.kune.events.client.actions.CalendarMonthViewSelectBtn; +import cc.kune.events.client.actions.CalendarOnOverMenu; import cc.kune.events.client.actions.EventsClientActions; import cc.kune.events.client.viewer.CalendarViewer; import cc.kune.events.client.viewer.CalendarViewerPanel; @@ -47,6 +48,7 @@ s(CalendarGoPrevBtn.class); s(CalendarGoNextBtn.class); s(CalendarGoTodayBtn.class); + s(CalendarOnOverMenu.class); bindPresenter(CalendarViewerPresenter.class, CalendarViewerPresenter.CalendarViewerView.class, CalendarViewerPanel.class, CalendarViewerPresenter.CalendarViewerProxy.class); bind(CalendarViewer.class).to(CalendarViewerPresenter.class).in(Singleton.class); Added: trunk/src/main/java/cc/kune/events/client/actions/CalendarOnOverMenu.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/actions/CalendarOnOverMenu.java (rev 0) +++ trunk/src/main/java/cc/kune/events/client/actions/CalendarOnOverMenu.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -0,0 +1,14 @@ +package cc.kune.events.client.actions; + +import cc.kune.gspace.client.actions.AbstractStandaloneMenu; +import cc.kune.gspace.client.actions.StandaloneMenuProvider; + +import com.google.inject.Inject; + +public class CalendarOnOverMenu extends StandaloneMenuProvider { + + @Inject + public CalendarOnOverMenu(final AbstractStandaloneMenu menu) { + super(menu); + } +} Modified: trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java 2011-12-21 09:41:22 UTC (rev 1644) +++ trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -26,6 +26,8 @@ import cc.kune.core.client.resources.CoreResources; import cc.kune.core.client.state.Session; import cc.kune.core.client.state.StateManager; +import cc.kune.events.client.viewer.EventAddMenuItem; +import cc.kune.events.client.viewer.EventEditMenuItem; import cc.kune.gspace.client.actions.AbstractFoldableToolActions; import cc.kune.gspace.client.actions.ActionGroups; import cc.kune.gspace.client.actions.ContentViewerOptionsMenu; @@ -53,7 +55,9 @@ final Provider<Calendar3DaysViewSelectBtn> cal3DaysBtn, final Provider<Calendar7DaysViewSelectBtn> cal7DaysBtn, final Provider<CalendarMonthViewSelectBtn> calMonthBtn, - final Provider<CalendarGoPrevBtn> calPrevBtn, final Provider<CalendarGoNextBtn> calNextBtn, + final Provider<EventAddMenuItem> eventAddMenuItem, + final Provider<EventEditMenuItem> eventEditMenuItem, final Provider<CalendarGoPrevBtn> calPrevBtn, + final Provider<CalendarGoNextBtn> calNextBtn, final CalendarOnOverMenu onOverMenu, final Provider<CalendarGoTodayBtn> goToday, final Provider<RefreshContentMenuItem> refresh) { super(session, stateManager, i18n, registry); actionsRegistry.addAction(ActionGroups.TOOLBAR, optionsMenuContent, all); @@ -66,6 +70,11 @@ actionsRegistry.addAction(ActionGroups.TOOLBAR, calMonthBtn, containers); actionsRegistry.addAction(ActionGroups.TOOLBAR, calNextBtn, containers); + // On over calendar menu + actionsRegistry.addAction(ActionGroups.TOOLBAR, onOverMenu, containers); + eventAddMenuItem.get(); + eventEditMenuItem.get(); + // For now, commented: // actionsRegistry.addAction(ActionGroups.TOOLBAR, newMeetingsBtn, // containers); Added: trunk/src/main/java/cc/kune/events/client/viewer/CalendarStateChangeEvent.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/viewer/CalendarStateChangeEvent.java (rev 0) +++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarStateChangeEvent.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -0,0 +1,56 @@ +package cc.kune.events.client.viewer; + +import com.google.gwt.event.shared.EventHandler; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.event.shared.HasHandlers; + +public class CalendarStateChangeEvent extends + GwtEvent<CalendarStateChangeEvent.CalendarStateChangeHandler> { + + public interface CalendarStateChangeHandler extends EventHandler { + public void onCalendarStateChange(CalendarStateChangeEvent event); + } + + public interface HasCalendarStateChangeHandlers extends HasHandlers { + HandlerRegistration addCalendarStateChangeHandler(CalendarStateChangeHandler handler); + } + + private static final Type<CalendarStateChangeHandler> TYPE = new Type<CalendarStateChangeHandler>(); + + public static void fire(final HasHandlers source) { + source.fireEvent(new CalendarStateChangeEvent()); + } + + public static Type<CalendarStateChangeHandler> getType() { + return TYPE; + } + + public CalendarStateChangeEvent() { + } + + @Override + protected void dispatch(final CalendarStateChangeHandler handler) { + handler.onCalendarStateChange(this); + } + + @Override + public boolean equals(final Object obj) { + return super.equals(obj); + } + + @Override + public Type<CalendarStateChangeHandler> getAssociatedType() { + return TYPE; + } + + @Override + public int hashCode() { + return super.hashCode(); + } + + @Override + public String toString() { + return "CalendarStateChangeEvent[" + "]"; + } +} Modified: trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewer.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewer.java 2011-12-21 09:41:22 UTC (rev 1644) +++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewer.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -4,13 +4,30 @@ import cc.kune.gspace.client.tool.ContentViewer; +import com.bradrydzewski.gwt.calendar.client.Appointment; import com.bradrydzewski.gwt.calendar.client.CalendarViews; public interface CalendarViewer extends ContentViewer { + public static final Appointment NO_APPOINT = new Appointment(); + + void addAppointment(String description, Date onDate); + void decrement(); + /** + * Gets the current Appointment that can be edit. + * + * @return the appointment to edit + */ + Appointment getAppToEdit(); + Date getDate(); + /** + * @return if you click on the calendar, this get the date you clicked + */ + Date getOnOverDate(); + void goToday(); void increment(); Modified: trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2011-12-21 09:41:22 UTC (rev 1644) +++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -24,12 +24,14 @@ import com.bradrydzewski.gwt.calendar.client.event.MouseOverHandler; import com.bradrydzewski.gwt.calendar.client.event.TimeBlockClickHandler; import com.bradrydzewski.gwt.calendar.client.event.UpdateHandler; +import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.DoubleClickHandler; import com.google.gwt.event.logical.shared.OpenHandler; import com.google.gwt.event.logical.shared.SelectionHandler; import com.google.gwt.event.shared.GwtEvent; import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.user.client.Event; import com.google.inject.Inject; import com.google.inject.Provider; @@ -47,6 +49,9 @@ // calendar.setWidth("auto"); // calendar.setHeight("auto"); widget = calendar; + calendar.sinkEvents(Event.ONMOUSEDOWN | Event.ONDBLCLICK | Event.KEYEVENTS | Event.ONMOUSEOVER + | Event.ONCLICK); + } @Override @@ -72,6 +77,11 @@ } @Override + public HandlerRegistration addClickHandler(final ClickHandler clickHandler) { + return calendar.addHandler(clickHandler, ClickEvent.getType()); + } + + @Override public HandlerRegistration addCreateHandler(final CreateHandler<Appointment> handler) { return calendar.addCreateHandler(handler); } Modified: trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPresenter.java 2011-12-21 09:41:22 UTC (rev 1644) +++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPresenter.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -4,11 +4,10 @@ import javax.annotation.Nonnull; +import cc.kune.common.client.actions.ui.descrip.Position; import cc.kune.common.client.notify.NotifyUser; -import cc.kune.common.client.tooltip.Tooltip; -import cc.kune.common.client.utils.SimpleResponseCallback; -import cc.kune.common.shared.i18n.I18nTranslationService; import cc.kune.core.shared.dto.HasContent; +import cc.kune.events.client.actions.CalendarOnOverMenu; import cc.kune.gspace.client.viewers.AbstractFolderViewerView; import cc.kune.gspace.client.viewers.FolderViewerUtils; @@ -28,6 +27,8 @@ import com.bradrydzewski.gwt.calendar.client.event.TimeBlockClickHandler; import com.bradrydzewski.gwt.calendar.client.event.UpdateEvent; import com.bradrydzewski.gwt.calendar.client.event.UpdateHandler; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.logical.shared.HasOpenHandlers; import com.google.gwt.event.logical.shared.HasSelectionHandlers; import com.google.gwt.event.logical.shared.OpenEvent; @@ -36,7 +37,6 @@ import com.google.gwt.event.logical.shared.SelectionHandler; import com.google.gwt.event.shared.EventBus; import com.google.gwt.event.shared.HandlerRegistration; -import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.datepicker.client.CalendarUtil; import com.google.inject.Inject; import com.gwtplatform.mvp.client.Presenter; @@ -59,6 +59,8 @@ void addAppointment(String title, Date date); + HandlerRegistration addClickHandler(ClickHandler clickHandler); + HandlerRegistration addCreateHandler(CreateHandler<Appointment> handler); Date getDate(); @@ -74,45 +76,51 @@ } private static final CalendarViews DEF_VIEW = CalendarViews.DAY; + public Appointment appToEdit = NO_APPOINT; + private CalendarViews currentCalView; private int currentDaysView = 7; private final FolderViewerUtils folderViewerUtils; - private final I18nTranslationService i18n; + private Date onOverDate; + private final CalendarOnOverMenu onOverMenu; @Inject public CalendarViewerPresenter(final EventBus eventBus, final CalendarViewerView view, final CalendarViewerProxy proxy, final FolderViewerUtils folderViewerUtils, - final I18nTranslationService i18n) { + final CalendarOnOverMenu onOverMenu) { super(eventBus, view, proxy); this.folderViewerUtils = folderViewerUtils; - this.i18n = i18n; + this.onOverMenu = onOverMenu; addListeners(); setViewImpl(DEF_VIEW, currentDaysView); } + @Override + public void addAppointment(final String description, final Date onDate) { + getView().addAppointment(description, onDate); + } + private void addListeners() { getView().addTimeBlockClickHandler(new TimeBlockClickHandler<Date>() { @Override public void onTimeBlockClick(final TimeBlockClickEvent<Date> event) { - NotifyUser.askConfirmation(i18n.t("Confirm, please"), i18n.t("Add a new appointment?"), - new SimpleResponseCallback() { - @Override - public void onCancel() { - // do nothing - } - - @Override - public void onSuccess() { - getView().addAppointment("Only a test", event.getTarget()); - NotifyUser.info("Appointment added but not yet saved (this is under development)"); - } - }); + NotifyUser.info("on time block"); + appToEdit = NO_APPOINT; + onOverDate = event.getTarget(); + updateMenuItems(); } }); + getView().addClickHandler(new ClickHandler() { + @Override + public void onClick(final ClickEvent event) { + onOverMenu.get().show(new Position(event.getClientX(), event.getClientY())); + } + }); getView().addMouseOverHandler(new MouseOverHandler<Appointment>() { @Override public void onMouseOver(final MouseOverEvent<Appointment> event) { - Tooltip.to((Widget) event.getSource(), "kk"); + NotifyUser.info("on mouse over"); + // Tooltip.to((Widget) event.getSource(), "kk"); // final Tooltip tooltip = new Tooltip(); // tooltip.setText("lalala"); // tooltip.setPopupPosition(, currentDaysView) @@ -134,7 +142,10 @@ getView().addSelectionHandler(new SelectionHandler<Appointment>() { @Override public void onSelection(final SelectionEvent<Appointment> event) { + appToEdit = event.getSelectedItem(); + onOverDate = event.getSelectedItem().getStart(); NotifyUser.info("on selection"); + updateMenuItems(); // getView().removeAppointment(event.getSelectedItem()); } }); @@ -156,11 +167,21 @@ } @Override + public Appointment getAppToEdit() { + return appToEdit; + } + + @Override public Date getDate() { return getView().getDate(); } @Override + public Date getOnOverDate() { + return onOverDate; + } + + @Override public void goToday() { getView().goToday(); } @@ -220,4 +241,8 @@ this.currentDaysView = days; getView().setView(calView, days); } + + private void updateMenuItems() { + CalendarStateChangeEvent.fire(getEventBus()); + } } Added: trunk/src/main/java/cc/kune/events/client/viewer/EventAddMenuItem.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/viewer/EventAddMenuItem.java (rev 0) +++ trunk/src/main/java/cc/kune/events/client/viewer/EventAddMenuItem.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -0,0 +1,74 @@ +package cc.kune.events.client.viewer; + +import cc.kune.common.client.actions.ActionEvent; +import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor; +import cc.kune.common.client.notify.NotifyUser; +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.shared.dto.AccessRolDTO; +import cc.kune.events.client.actions.CalendarOnOverMenu; + +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.inject.Inject; +import com.google.inject.Provider; + +public class EventAddMenuItem extends MenuItemDescriptor { + public static class EventAddAction extends RolAction { + private final Provider<CalendarViewer> calendar; + private PromptTopDialog dialog; + private final I18nTranslationService i18n; + + @Inject + public EventAddAction(final NavResources res, final I18nTranslationService i18n, + final Provider<CalendarViewer> calendar) { + super(AccessRolDTO.Editor, true); + this.i18n = i18n; + this.calendar = calendar; + withText(i18n.t("Add a appointment")).withIcon(res.calendarAdd()); + } + + @Override + public void actionPerformed(final ActionEvent event) { + if (dialog == null) { + final Builder builder = new PromptTopDialog.Builder(CREATE_APP_ID, + i18n.t("Description of the appointment"), true, true, i18n.getDirection()); + builder.firstButtonTitle(i18n.t("Add")).firstButtonId(CREATE_APP_ADD_ID); + builder.sndButtonTitle(i18n.t("Cancel")).sndButtonId(CREATE_APP_CANCEL_ID); + dialog = builder.build(); + dialog.getFirstBtn().addClickHandler(new ClickHandler() { + @Override + public void onClick(final ClickEvent event) { + if (dialog.isValid()) { + calendar.get().addAppointment(dialog.getTextFieldValue(), calendar.get().getOnOverDate()); + NotifyUser.info("Appointment added but not yet saved (this is under development)"); + dialog.hide(); + } + } + }); + dialog.getSecondBtn().addClickHandler(new ClickHandler() { + @Override + public void onClick(final ClickEvent event) { + dialog.hide(); + } + }); + } + dialog.clearTextFieldValue(); + dialog.showCentered(); + dialog.focusOnTextBox(); + } + } + + public static final String CREATE_APP_ADD_ID = "event-add-menu-item-add-btn"; + public static final String CREATE_APP_CANCEL_ID = "event-add-menu-item-add-btn"; + public static final String CREATE_APP_ID = "event-add-menu-item-form"; + + @Inject + public EventAddMenuItem(final EventAddAction action, final CalendarOnOverMenu cal) { + super(action); + setParent(cal.get()); + } +} Added: trunk/src/main/java/cc/kune/events/client/viewer/EventEditMenuItem.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/viewer/EventEditMenuItem.java (rev 0) +++ trunk/src/main/java/cc/kune/events/client/viewer/EventEditMenuItem.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -0,0 +1,48 @@ +package cc.kune.events.client.viewer; + +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.shared.dto.AccessRolDTO; +import cc.kune.events.client.actions.CalendarOnOverMenu; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; +import com.google.inject.Provider; + +public class EventEditMenuItem extends MenuItemDescriptor { + public static class EventEditAction extends RolAction { + private final Provider<CalendarViewer> calendar; + private PromptTopDialog dialog; + private final I18nTranslationService i18n; + + @Inject + public EventEditAction(final NavResources res, final I18nTranslationService i18n, + final Provider<CalendarViewer> calendar, final EventBus eventBus) { + super(AccessRolDTO.Administrator, true); + this.i18n = i18n; + this.calendar = calendar; + withText(i18n.t("Edit the appointment")).withIcon(res.calendarAdd()); + eventBus.addHandler(CalendarStateChangeEvent.getType(), + new CalendarStateChangeEvent.CalendarStateChangeHandler() { + @Override + public void onCalendarStateChange(final CalendarStateChangeEvent event) { + setEnabled(!calendar.get().getAppToEdit().equals(CalendarViewer.NO_APPOINT)); + } + }); + } + + @Override + public void actionPerformed(final ActionEvent event) { + } + } + + @Inject + public EventEditMenuItem(final EventEditAction action, final CalendarOnOverMenu cal) { + super(action); + setParent(cal.get()); + } +} Added: trunk/src/main/java/cc/kune/events/client/viewer/EventRemoveMenuItem.java =================================================================== --- trunk/src/main/java/cc/kune/events/client/viewer/EventRemoveMenuItem.java (rev 0) +++ trunk/src/main/java/cc/kune/events/client/viewer/EventRemoveMenuItem.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -0,0 +1,83 @@ +package cc.kune.events.client.viewer; + +import cc.kune.common.client.actions.ActionEvent; +import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor; +import cc.kune.common.client.notify.NotifyUser; +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.shared.dto.AccessRolDTO; +import cc.kune.events.client.actions.CalendarOnOverMenu; + +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; + +public class EventRemoveMenuItem extends MenuItemDescriptor { + public static class EventEditAction extends RolAction { + private final Provider<CalendarViewer> calendar; + private PromptTopDialog dialog; + private final I18nTranslationService i18n; + + @Inject + public EventEditAction(final NavResources res, final I18nTranslationService i18n, + final Provider<CalendarViewer> calendar, final EventBus eventBus) { + super(AccessRolDTO.Editor, true); + this.i18n = i18n; + this.calendar = calendar; + withText(i18n.t("Edit the appointment")).withIcon(res.calendarAdd()); + eventBus.addHandler(CalendarStateChangeEvent.getType(), + new CalendarStateChangeEvent.CalendarStateChangeHandler() { + + @Override + public void onCalendarStateChange(final CalendarStateChangeEvent event) { + setEnabled(!calendar.get().getAppToEdit().equals(CalendarViewer.NO_APPOINT)); + } + }); + } + + @Override + public void actionPerformed(final ActionEvent event) { + if (dialog == null) { + final Builder builder = new PromptTopDialog.Builder(CREATE_APP_ID, + i18n.t("Description of the appointment"), true, true, i18n.getDirection()); + builder.firstButtonTitle(i18n.t("Add")).firstButtonId(CREATE_APP_ADD_ID); + builder.sndButtonTitle(i18n.t("Cancel")).sndButtonId(CREATE_APP_CANCEL_ID); + dialog = builder.build(); + dialog.getFirstBtn().addClickHandler(new ClickHandler() { + @Override + public void onClick(final ClickEvent event) { + if (dialog.isValid()) { + calendar.get().addAppointment(dialog.getTextFieldValue(), calendar.get().getOnOverDate()); + NotifyUser.info("Appointment should be edited (this is under development)"); + dialog.hide(); + } + } + }); + dialog.getSecondBtn().addClickHandler(new ClickHandler() { + @Override + public void onClick(final ClickEvent event) { + dialog.hide(); + } + }); + } + dialog.clearTextFieldValue(); + dialog.showCentered(); + dialog.focusOnTextBox(); + } + } + + public static final String CREATE_APP_ADD_ID = "event-add-menu-item-add-btn"; + public static final String CREATE_APP_CANCEL_ID = "event-add-menu-item-add-btn"; + public static final String CREATE_APP_ID = "event-add-menu-item-form"; + + @Inject + public EventRemoveMenuItem(final EventEditAction action, final CalendarOnOverMenu cal) { + super(action); + setParent(cal.get()); + } +} Added: trunk/src/main/java/cc/kune/gspace/client/actions/AbstractEditorsMenu.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/actions/AbstractEditorsMenu.java (rev 0) +++ trunk/src/main/java/cc/kune/gspace/client/actions/AbstractEditorsMenu.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -0,0 +1,39 @@ +/* + * + * Copyright (C) 2007-2011 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 cc.kune.gspace.client.actions; + +import cc.kune.common.client.actions.ui.descrip.MenuDescriptor; +import cc.kune.core.client.state.AccessRightsChangedEvent; +import cc.kune.core.client.state.AccessRightsChangedEvent.AccessRightsChangedHandler; +import cc.kune.core.client.state.AccessRightsClientManager; + +public class AbstractEditorsMenu extends MenuDescriptor { + + public AbstractEditorsMenu(final AccessRightsClientManager rightsManager) { + super(); + this.withStyles("k-button, k-btn, k-5corners, k-def-docbtn, k-fl"); + rightsManager.onRightsChanged(true, new AccessRightsChangedHandler() { + @Override + public void onAccessRightsChanged(final AccessRightsChangedEvent event) { + AbstractEditorsMenu.this.setVisible(event.getCurrentRights().isEditable()); + } + }); + } +} Modified: trunk/src/main/java/cc/kune/gspace/client/actions/AbstractNewMenu.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/actions/AbstractNewMenu.java 2011-12-21 09:41:22 UTC (rev 1644) +++ trunk/src/main/java/cc/kune/gspace/client/actions/AbstractNewMenu.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -19,29 +19,18 @@ */ package cc.kune.gspace.client.actions; -import cc.kune.common.client.actions.ui.descrip.MenuDescriptor; import cc.kune.common.shared.i18n.I18nTranslationService; import cc.kune.core.client.resources.CoreResources; -import cc.kune.core.client.state.AccessRightsChangedEvent; -import cc.kune.core.client.state.AccessRightsChangedEvent.AccessRightsChangedHandler; import cc.kune.core.client.state.AccessRightsClientManager; import com.google.inject.Inject; -public class AbstractNewMenu extends MenuDescriptor { +public class AbstractNewMenu extends AbstractEditorsMenu { @Inject public AbstractNewMenu(final CoreResources res, final I18nTranslationService i18n, final AccessRightsClientManager rightsManager) { - super(); - this.withIcon(res.addGreen()).withStyles("k-button, k-btn, k-5corners, k-def-docbtn, k-fl").withText( - i18n.t("More")); - - rightsManager.onRightsChanged(true, new AccessRightsChangedHandler() { - @Override - public void onAccessRightsChanged(final AccessRightsChangedEvent event) { - AbstractNewMenu.this.setVisible(event.getCurrentRights().isEditable()); - } - }); + super(rightsManager); + withText(i18n.t("More")).withIcon(res.addGreen()); } } Added: trunk/src/main/java/cc/kune/gspace/client/actions/AbstractStandaloneMenu.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/actions/AbstractStandaloneMenu.java (rev 0) +++ trunk/src/main/java/cc/kune/gspace/client/actions/AbstractStandaloneMenu.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -0,0 +1,33 @@ +/* + * + * Copyright (C) 2007-2011 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 cc.kune.gspace.client.actions; + +import cc.kune.core.client.state.AccessRightsClientManager; + +import com.google.inject.Inject; + +public class AbstractStandaloneMenu extends AbstractEditorsMenu { + + @Inject + public AbstractStandaloneMenu(final AccessRightsClientManager rightsManager) { + super(rightsManager); + setStandalone(true); + } +} Added: trunk/src/main/java/cc/kune/gspace/client/actions/StandaloneMenuProvider.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/actions/StandaloneMenuProvider.java (rev 0) +++ trunk/src/main/java/cc/kune/gspace/client/actions/StandaloneMenuProvider.java 2011-12-21 16:48:51 UTC (rev 1645) @@ -0,0 +1,45 @@ +/* + * + * Copyright (C) 2007-2011 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 cc.kune.gspace.client.actions; + +import cc.kune.common.client.actions.ui.descrip.MenuDescriptor; + +import com.google.inject.Provider; + +/** + * The Class StandAloneMenuProvider is a way to create a kind of singletons for + * menu entries. This can be register in a list of Providers<GuiDescriptor> but + * in fact only references one item and can be used to select the parent of some + * menu items + */ +public abstract class StandaloneMenuProvider implements Provider<MenuDescriptor> { + + private final AbstractStandaloneMenu menu; + + public StandaloneMenuProvider(final AbstractStandaloneMenu menu) { + this.menu = menu; + } + + @Override + public MenuDescriptor get() { + return menu; + } + +}
participants (1)
-
Vicente J. Ruiz Jurado