[kune-commits] 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
Vicente J. Ruiz Jurado
vjrj_ at ourproject.org
Wed Dec 21 17:48:52 CET 2011
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;
+ }
+
+}
More information about the kune-commits
mailing list