kune-commits
Threads by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1587 discussions
Author: vjrj_
Date: 2012-02-23 00:48:59 +0100 (Thu, 23 Feb 2012)
New Revision: 1698
Added:
trunk/src/main/java/cc/kune/core/server/state/StateEventContainer.java
trunk/src/main/java/cc/kune/core/shared/dto/StateEventContainerDTO.java
trunk/src/main/java/cc/kune/events/server/DateServerUtils.java
trunk/src/main/java/cc/kune/events/server/EventsServerConversionUtil.java
trunk/src/main/java/cc/kune/events/shared/EventsClientConversionUtil.java
trunk/src/main/java/cc/kune/events/shared/EventsSharedConversionUtil.java
trunk/src/test/java/cc/kune/events/shared/EventsServerConversionUtilTest.java
Removed:
trunk/src/main/java/cc/kune/events/shared/EventsConversionUtil.java
trunk/src/test/java/cc/kune/events/shared/EventsConversionUtilTest.java
Modified:
trunk/src/main/java/cc/kune/common/shared/res/ICalConstants.java
trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java
trunk/src/main/java/cc/kune/events/client/actions/EventAddMenuItem.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/events/server/CalendarServerUtils.java
trunk/src/main/java/cc/kune/events/shared/DateUtils.java
trunk/src/main/java/cc/kune/wave/server/kspecific/KuneAgent.java
trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveService.java
trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveServiceDefault.java
trunk/src/main/resources/dozerBeanMapping.xml
trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.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/common/shared/res/ICalConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/common/shared/res/ICalConstants.java 2012-02-22 20:45:30 UTC (rev 1697)
+++ trunk/src/main/java/cc/kune/common/shared/res/ICalConstants.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -1,8 +1,10 @@
package cc.kune.common.shared.res;
public class ICalConstants {
+
/* Note that all day events is not supported by ICalendar */
public static final String _ALL_DAY = "ALLDAY";
+ public static final String _INTERNAL_ID = "INTERNALID";
// VTIMEZONE ?? See: TimeZoneConstants in GWT for names and values
public static final String DATE_TIME_END = "DTEND";
public static final String DATE_TIME_START = "DTSTART";
@@ -10,4 +12,6 @@
public static final String LOCATION = "LOCATION";
public static final String ORGANIZER = "ORGANIZER";
public static final String SUMMARY = "SUMMARY";
+ public static final String[] TOTAL_LIST = new String[] { DATE_TIME_START, DATE_TIME_END, DESCRIPTION,
+ LOCATION, ORGANIZER, SUMMARY, _ALL_DAY, _INTERNAL_ID };
}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2012-02-22 20:45:30 UTC (rev 1697)
+++ trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -59,6 +59,7 @@
import cc.kune.core.server.rest.UserJSONService;
import cc.kune.core.server.scheduler.CronServerTasksManager;
import cc.kune.docs.server.DocumentServerModule;
+import cc.kune.events.server.CalendarServerUtils;
import cc.kune.events.server.EventsServerModule;
import cc.kune.hspace.client.ClientStatsService;
import cc.kune.lists.client.rpc.ListsService;
@@ -121,7 +122,11 @@
if (sessionScope != null) {
bindScope(SessionScoped.class, sessionScope);
}
+
+ // This can be used also in Gin:
+ // http://code.google.com/p/google-gin/issues/detail?id=60
requestStaticInjection(KuneWaveServerUtils.class);
+ requestStaticInjection(CalendarServerUtils.class);
}
};
}
Modified: trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2012-02-22 20:45:30 UTC (rev 1697)
+++ trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -50,6 +50,7 @@
import cc.kune.core.server.mapper.Mapper;
import cc.kune.core.server.state.StateContainer;
import cc.kune.core.server.state.StateContent;
+import cc.kune.core.server.state.StateEventContainer;
import cc.kune.core.server.state.StateService;
import cc.kune.core.shared.domain.AccessRol;
import cc.kune.core.shared.domain.ContentStatus;
@@ -62,6 +63,7 @@
import cc.kune.core.shared.dto.StateAbstractDTO;
import cc.kune.core.shared.dto.StateContainerDTO;
import cc.kune.core.shared.dto.StateContentDTO;
+import cc.kune.core.shared.dto.StateEventContainerDTO;
import cc.kune.core.shared.dto.StateNoContentDTO;
import cc.kune.domain.AccessLists;
import cc.kune.domain.Container;
@@ -322,7 +324,9 @@
}
private StateContainerDTO mapState(final StateContainer state, final User user) {
- final StateContainerDTO stateDTO = mapper.map(state, StateContainerDTO.class);
+ final StateContainerDTO stateDTO = state instanceof StateEventContainer ? mapper.map(state,
+ StateEventContainerDTO.class) : mapper.map(state, StateContainerDTO.class);
+
final AccessLists groupAccessList = state.getGroup().getSocialNetwork().getAccessLists();
for (final ContentSimpleDTO siblingDTO : stateDTO.getRootContainer().getContents()) {
mapContentRightsInstate(user, groupAccessList, siblingDTO);
Added: trunk/src/main/java/cc/kune/core/server/state/StateEventContainer.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/state/StateEventContainer.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/state/StateEventContainer.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -0,0 +1,21 @@
+package cc.kune.core.server.state;
+
+import java.util.List;
+import java.util.Map;
+
+public class StateEventContainer extends StateContainer {
+
+ private List<Map<String, String>> appointments;
+
+ public StateEventContainer() {
+ }
+
+ public List<Map<String, String>> getAppointments() {
+ return appointments;
+ }
+
+ public void setAppointments(final List<Map<String, String>> appointments) {
+ this.appointments = appointments;
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2012-02-22 20:45:30 UTC (rev 1697)
+++ trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -35,6 +35,8 @@
import cc.kune.domain.License;
import cc.kune.domain.Revision;
import cc.kune.domain.User;
+import cc.kune.events.server.CalendarServerUtils;
+import cc.kune.events.shared.EventsConstants;
import cc.kune.wave.server.kspecific.KuneWaveService;
import com.google.inject.Inject;
@@ -72,7 +74,8 @@
@Override
public StateContainer create(final User userLogged, final Container container) {
- final StateContainer state = new StateContainer();
+ final boolean isCalendar = container.getTypeId().equals(EventsConstants.TYPE_ROOT);
+ final StateContainer state = isCalendar ? new StateEventContainer() : new StateContainer();
state.setTitle(container.getName());
state.setTypeId(container.getTypeId());
state.setLanguage(container.getLanguage());
@@ -82,6 +85,9 @@
state.setAccessLists(container.getAccessLists());
final Group group = container.getOwner();
setCommon(state, userLogged, group, container);
+ if (isCalendar) {
+ ((StateEventContainer) state).setAppointments(CalendarServerUtils.getAppointments(container));
+ }
return state;
}
Added: trunk/src/main/java/cc/kune/core/shared/dto/StateEventContainerDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/StateEventContainerDTO.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/shared/dto/StateEventContainerDTO.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -0,0 +1,21 @@
+package cc.kune.core.shared.dto;
+
+import java.util.List;
+import java.util.Map;
+
+public class StateEventContainerDTO extends StateContainerDTO {
+
+ private List<Map<String, String>> appointments;
+
+ public StateEventContainerDTO() {
+ }
+
+ public List<Map<String, String>> getAppointments() {
+ return appointments;
+ }
+
+ public void setAppointments(final List<Map<String, String>> appointments) {
+ this.appointments = appointments;
+ }
+
+}
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 20:45:30 UTC (rev 1697)
+++ trunk/src/main/java/cc/kune/events/client/actions/EventAddMenuItem.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -17,7 +17,7 @@
import cc.kune.core.shared.dto.StateContentDTO;
import cc.kune.events.client.viewer.CalendarViewer;
import cc.kune.events.shared.EventsConstants;
-import cc.kune.events.shared.EventsConversionUtil;
+import cc.kune.events.shared.EventsClientConversionUtil;
import com.bradrydzewski.gwt.calendar.client.Appointment;
import com.bradrydzewski.gwt.calendar.client.AppointmentStyle;
@@ -75,7 +75,7 @@
contService.get().addNewContentWithGadgetAndState(session.getUserHash(),
session.getContainerState().getStateToken(),
EventsConstants.TYPE_MEETING_DEF_GADGETNAME, EventsConstants.TYPE_MEETING, title,
- title, EventsConversionUtil.toMap(appt), new AsyncCallbackSimple<StateContentDTO>() {
+ title, EventsClientConversionUtil.toMap(appt), new AsyncCallbackSimple<StateContentDTO>() {
@Override
public void onFailure(final Throwable caught) {
super.onFailure(caught);
Modified: trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2012-02-22 20:45:30 UTC (rev 1697)
+++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -262,8 +262,8 @@
final String dateFormatted = fmt.format(currentDate);
final ForIsWidget docHeader = gsArmor.getDocHeader();
UiUtils.clear(docHeader);
- contentTitle.setTitle(i18n.tWithNT("Events in [%s]", dateFormatted), EventsConstants.TYPE_ROOT,
- null, false);
+ contentTitle.setTitle(i18n.t("Events in [%s]", dateFormatted), EventsConstants.TYPE_ROOT, null,
+ false);
docHeader.add(contentTitle);
}
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 20:45:30 UTC (rev 1697)
+++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPresenter.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -1,20 +1,26 @@
package cc.kune.events.client.viewer;
import java.util.Date;
+import java.util.Map;
import javax.annotation.Nonnull;
import cc.kune.common.client.actions.ui.descrip.Position;
+import cc.kune.common.client.log.Log;
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.res.ICalConstants;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.dto.HasContent;
+import cc.kune.core.shared.dto.StateEventContainerDTO;
import cc.kune.events.client.actions.CalendarOnOverMenu;
+import cc.kune.events.shared.EventsClientConversionUtil;
import cc.kune.gspace.client.viewers.AbstractFolderViewerView;
import cc.kune.gspace.client.viewers.FolderViewerUtils;
import com.bradrydzewski.gwt.calendar.client.Appointment;
+import com.bradrydzewski.gwt.calendar.client.AppointmentStyle;
import com.bradrydzewski.gwt.calendar.client.CalendarViews;
import com.bradrydzewski.gwt.calendar.client.HasAppointments;
import com.bradrydzewski.gwt.calendar.client.HasLayout;
@@ -233,6 +239,10 @@
updateTitle();
}
+ private boolean isValid(final Appointment app) {
+ return app.getStart() != null && app.getEnd() != null;
+ }
+
@Override
public void removeAppointment(final Appointment app) {
getView().removeAppointment(app);
@@ -246,7 +256,22 @@
@Override
public void setContent(@Nonnull final HasContent state) {
folderViewerUtils.setContent(getView(), state);
+ final StateEventContainerDTO eventState = (StateEventContainerDTO) state;
updateMenuItems();
+ getView().clearAppointments();
+ getView().suspendLayout();
+ for (final Map<String, String> map : eventState.getAppointments()) {
+ final Appointment app = EventsClientConversionUtil.toApp(map);
+ app.setId(map.get(ICalConstants._INTERNAL_ID));
+ app.setStyle(AppointmentStyle.GREEN);
+ if (isValid(app)) {
+ getView().addAppointment(app);
+
+ } else {
+ Log.error("Appointment is not valid: " + app);
+ }
+ }
+ getView().resumeLayout();
}
@Override
Modified: trunk/src/main/java/cc/kune/events/server/CalendarServerUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/events/server/CalendarServerUtils.java 2012-02-22 20:45:30 UTC (rev 1697)
+++ trunk/src/main/java/cc/kune/events/server/CalendarServerUtils.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -1,5 +1,12 @@
package cc.kune.events.server;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
import net.fortuna.ical4j.model.Date;
import net.fortuna.ical4j.model.DateTime;
import net.fortuna.ical4j.model.Property;
@@ -12,10 +19,27 @@
import net.fortuna.ical4j.model.property.Location;
import net.fortuna.ical4j.model.property.Summary;
+import org.waveprotocol.wave.model.waveref.InvalidWaveRefException;
+import org.waveprotocol.wave.util.escapers.jvm.JavaWaverefEncoder;
+
+import cc.kune.common.shared.res.ICalConstants;
+import cc.kune.domain.Container;
+import cc.kune.domain.Content;
+import cc.kune.wave.server.kspecific.KuneWaveService;
+
import com.bradrydzewski.gwt.calendar.client.Appointment;
+import com.google.inject.Inject;
+import com.google.wave.api.Gadget;
public class CalendarServerUtils {
+ @Inject
+ private static EventsServerTool eventTool;
+
+ @Inject
+ private static KuneWaveService kuneWaveService;
+ private static final Logger LOG = Logger.getLogger(CalendarServerUtils.class.getName());
+
public static VEvent from(final Appointment app) {
// final TimeZoneRegistry registry =
// TimeZoneRegistryFactory.getInstance().createRegistry();
@@ -52,6 +76,31 @@
return event;
}
+ public static List<Map<String, String>> getAppointments(final Container container) {
+ final List<Map<String, String>> list = new ArrayList<Map<String, String>>();
+ for (final Content content : container.getContents()) {
+ final String waveId = content.getWaveId();
+ try {
+ final Gadget gadget = kuneWaveService.getGadget(
+ JavaWaverefEncoder.decodeWaveRefFromPath(waveId),
+ content.getAuthors().get(0).getShortName(), eventTool.getGadgetUrl());
+ final Map<String, String> gadgetProps = gadget.getProperties();
+ final HashMap<String, String> map = new HashMap<String, String>();
+ for (final String var : ICalConstants.TOTAL_LIST) {
+ final String value = gadgetProps.get(var);
+ if (value != null) {
+ map.put(var, value);
+ }
+ }
+ map.put(ICalConstants._INTERNAL_ID, content.getStateToken().toString());
+ list.add(map);
+ } catch (final InvalidWaveRefException e) {
+ LOG.log(Level.SEVERE, "Invalid Waveref", e);
+ }
+ }
+ return list;
+ }
+
public static Appointment to(final VEvent event) {
final Appointment app = new Appointment();
Added: trunk/src/main/java/cc/kune/events/server/DateServerUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/events/server/DateServerUtils.java (rev 0)
+++ trunk/src/main/java/cc/kune/events/server/DateServerUtils.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -0,0 +1,26 @@
+package cc.kune.events.server;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * The Class DateUtils try to follow RFC 2445 date-time formats.
+ *
+ * DTSTART;TZID=US-Eastern:19970714T133000 ;Local time and time ; zone reference
+ */
+public class DateServerUtils {
+
+ private static String RFC_DATE_TIME_FORMAT = "'DTSTART':yyyyMMdd'T'hhmmss";
+ // This is not tested: better use some class conversion util...
+ private static String RFC_DATE_TIME_FORMAT_TZ = "'DTSTART;TZID='z:yyyyMMdd'T'hhmmss";
+ private static SimpleDateFormat rfcDateFormat = new SimpleDateFormat(RFC_DATE_TIME_FORMAT);
+
+ public static Date toDate(final String date) throws ParseException {
+ return rfcDateFormat.parse(date);
+ }
+
+ public static String toString(final Date date) {
+ return rfcDateFormat.format(date);
+ }
+}
Added: trunk/src/main/java/cc/kune/events/server/EventsServerConversionUtil.java
===================================================================
--- trunk/src/main/java/cc/kune/events/server/EventsServerConversionUtil.java (rev 0)
+++ trunk/src/main/java/cc/kune/events/server/EventsServerConversionUtil.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -0,0 +1,44 @@
+package cc.kune.events.server;
+
+import java.text.ParseException;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import cc.kune.common.shared.res.ICalConstants;
+import cc.kune.events.shared.EventsSharedConversionUtil;
+
+import com.bradrydzewski.gwt.calendar.client.Appointment;
+
+/**
+ * The Class EventsConversionUtil is used to convert Appointments to Gadgets
+ * properties and viceversa
+ */
+public class EventsServerConversionUtil extends EventsSharedConversionUtil {
+ private static final Logger LOG = Logger.getLogger(EventsServerConversionUtil.class.getName());
+
+ public static Appointment toApp(final Map<String, String> properties) {
+ final Appointment app = EventsSharedConversionUtil.toApp(properties);
+ try {
+ final String start = properties.get(ICalConstants.DATE_TIME_START);
+ if (start != null) {
+ app.setStart(DateServerUtils.toDate(start));
+ }
+ final String end = properties.get(ICalConstants.DATE_TIME_END);
+ if (end != null) {
+ app.setEnd(DateServerUtils.toDate(end));
+ }
+ } catch (final ParseException e) {
+ LOG.log(Level.SEVERE, "Error parsing event", e);
+ }
+ return app;
+ }
+
+ public static Map<String, String> toMap(final Appointment app) {
+ final Map<String, String> properties = EventsSharedConversionUtil.toMap(app);
+ properties.put(ICalConstants.DATE_TIME_START, DateServerUtils.toString(app.getStart()));
+ properties.put(ICalConstants.DATE_TIME_END, DateServerUtils.toString(app.getEnd()));
+ return properties;
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/events/shared/DateUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/events/shared/DateUtils.java 2012-02-22 20:45:30 UTC (rev 1697)
+++ trunk/src/main/java/cc/kune/events/shared/DateUtils.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -12,9 +12,9 @@
public class DateUtils {
private static String RFC_DATE_TIME_FORMAT = "'DTSTART':yyyyMMdd'T'hhmmss";
+ // This is not tested
private static String RFC_DATE_TIME_FORMAT_TZ = "'DTSTART;TZID='v:yyyyMMdd'T'hhmmss";
private static DateTimeFormat rfcDateFormat = DateTimeFormat.getFormat(RFC_DATE_TIME_FORMAT);
- private static DateTimeFormat rfcDateFormatTz = DateTimeFormat.getFormat(RFC_DATE_TIME_FORMAT_TZ);
public static Date toDate(final String date) {
return rfcDateFormat.parse(date);
Copied: trunk/src/main/java/cc/kune/events/shared/EventsClientConversionUtil.java (from rev 1691, trunk/src/main/java/cc/kune/events/shared/EventsConversionUtil.java)
===================================================================
--- trunk/src/main/java/cc/kune/events/shared/EventsClientConversionUtil.java (rev 0)
+++ trunk/src/main/java/cc/kune/events/shared/EventsClientConversionUtil.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -0,0 +1,35 @@
+package cc.kune.events.shared;
+
+import java.util.Map;
+
+import cc.kune.common.shared.res.ICalConstants;
+
+import com.bradrydzewski.gwt.calendar.client.Appointment;
+
+/**
+ * The Class EventsConversionUtil is used to convert Appointments to Gadgets
+ * properties and viceversa
+ */
+public class EventsClientConversionUtil extends EventsSharedConversionUtil {
+
+ public static Appointment toApp(final Map<String, String> properties) {
+ final Appointment app = EventsSharedConversionUtil.toApp(properties);
+ final String start = properties.get(ICalConstants.DATE_TIME_START);
+ if (start != null) {
+ app.setStart(DateUtils.toDate(start));
+ }
+ final String end = properties.get(ICalConstants.DATE_TIME_END);
+ if (end != null) {
+ app.setEnd(DateUtils.toDate(end));
+ }
+ return app;
+ }
+
+ public static Map<String, String> toMap(final Appointment app) {
+ final Map<String, String> properties = EventsSharedConversionUtil.toMap(app);
+ properties.put(ICalConstants.DATE_TIME_START, DateUtils.toString(app.getStart()));
+ properties.put(ICalConstants.DATE_TIME_END, DateUtils.toString(app.getEnd()));
+ return properties;
+ }
+
+}
Deleted: trunk/src/main/java/cc/kune/events/shared/EventsConversionUtil.java
===================================================================
--- trunk/src/main/java/cc/kune/events/shared/EventsConversionUtil.java 2012-02-22 20:45:30 UTC (rev 1697)
+++ trunk/src/main/java/cc/kune/events/shared/EventsConversionUtil.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -1,38 +0,0 @@
-package cc.kune.events.shared;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import cc.kune.common.shared.res.ICalConstants;
-
-import com.bradrydzewski.gwt.calendar.client.Appointment;
-
-/**
- * The Class EventsConversionUtil is used to convert Appointments to Gadgets
- * properties and viceversa
- */
-public class EventsConversionUtil {
-
- public static Appointment toApp(final Map<String, String> properties) {
- final Appointment app = new Appointment();
- app.setStart(DateUtils.toDate(properties.get(ICalConstants.DATE_TIME_START)));
- app.setEnd(DateUtils.toDate(properties.get(ICalConstants.DATE_TIME_END)));
- app.setDescription(properties.get(ICalConstants.DESCRIPTION));
- app.setTitle(properties.get(ICalConstants.SUMMARY));
- app.setLocation(properties.get(ICalConstants.LOCATION));
- app.setCreatedBy(properties.get(ICalConstants.ORGANIZER));
- return app;
- }
-
- public static Map<String, String> toMap(final Appointment app) {
- final Map<String, String> properties = new HashMap<String, String>();
- properties.put(ICalConstants.DATE_TIME_START, DateUtils.toString(app.getStart()));
- properties.put(ICalConstants.DATE_TIME_END, DateUtils.toString(app.getEnd()));
- properties.put(ICalConstants.SUMMARY, app.getTitle());
- properties.put(ICalConstants.DESCRIPTION, app.getDescription());
- properties.put(ICalConstants.LOCATION, app.getLocation());
- properties.put(ICalConstants.ORGANIZER, app.getCreatedBy());
- return properties;
- }
-
-}
Added: trunk/src/main/java/cc/kune/events/shared/EventsSharedConversionUtil.java
===================================================================
--- trunk/src/main/java/cc/kune/events/shared/EventsSharedConversionUtil.java (rev 0)
+++ trunk/src/main/java/cc/kune/events/shared/EventsSharedConversionUtil.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -0,0 +1,34 @@
+package cc.kune.events.shared;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import cc.kune.common.shared.res.ICalConstants;
+
+import com.bradrydzewski.gwt.calendar.client.Appointment;
+
+/**
+ * The Class EventsSharedConversionUtil is used to convert Appointments to
+ * Gadgets properties and viceversa
+ */
+public abstract class EventsSharedConversionUtil {
+
+ public static Appointment toApp(final Map<String, String> properties) {
+ final Appointment app = new Appointment();
+ app.setDescription(properties.get(ICalConstants.DESCRIPTION));
+ app.setTitle(properties.get(ICalConstants.SUMMARY));
+ app.setLocation(properties.get(ICalConstants.LOCATION));
+ app.setCreatedBy(properties.get(ICalConstants.ORGANIZER));
+ return app;
+ }
+
+ public static Map<String, String> toMap(final Appointment app) {
+ final Map<String, String> properties = new HashMap<String, String>();
+ properties.put(ICalConstants.SUMMARY, app.getTitle());
+ properties.put(ICalConstants.DESCRIPTION, app.getDescription());
+ properties.put(ICalConstants.LOCATION, app.getLocation());
+ properties.put(ICalConstants.ORGANIZER, app.getCreatedBy());
+ return properties;
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/wave/server/kspecific/KuneAgent.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/kspecific/KuneAgent.java 2012-02-22 20:45:30 UTC (rev 1697)
+++ trunk/src/main/java/cc/kune/wave/server/kspecific/KuneAgent.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -37,6 +37,7 @@
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Singleton;
+import com.google.wave.api.Gadget;
import com.google.wave.api.Participants;
import com.google.wave.api.Wavelet;
@@ -168,6 +169,12 @@
}
@Override
+ public Gadget getGadget(final WaveRef waveletName, final String author, final URL gadgetUrl) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
public Participants getParticipants(final WaveRef waveref, final String author) {
// TODO Auto-generated method stub
return null;
Modified: trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveService.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveService.java 2012-02-22 20:45:30 UTC (rev 1697)
+++ trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveService.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -29,6 +29,7 @@
import cc.kune.common.shared.utils.SimpleArgCallback;
+import com.google.wave.api.Gadget;
import com.google.wave.api.Participants;
import com.google.wave.api.Wavelet;
@@ -74,6 +75,8 @@
Wavelet fetchWave(WaveRef waveRef, String author);
+ Gadget getGadget(WaveRef waveletName, String author, URL gadgetUrl);
+
Participants getParticipants(WaveRef waveref, String author);
String getTitle(WaveRef waveName, String author);
Modified: trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveServiceDefault.java 2012-02-22 20:45:30 UTC (rev 1697)
+++ trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveServiceDefault.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -452,6 +452,21 @@
}
@Override
+ public Gadget getGadget(final WaveRef waveletName, final String author, final URL gadgetUrl) {
+ final Wavelet wavelet = fetchWave(waveletName, author);
+ final Blip rootBlip = wavelet.getRootBlip();
+ for (final Element elem : rootBlip.getElements().values()) {
+ if (elem.isGadget()) {
+ final Map<String, String> properties = elem.getProperties();
+ if (properties.get(Gadget.URL).equals(gadgetUrl.toString())) {
+ return (Gadget) elem;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
public Participants getParticipants(final WaveRef waveref, final String author) {
return fetchWave(waveref, author).getParticipants();
}
Modified: trunk/src/main/resources/dozerBeanMapping.xml
===================================================================
--- trunk/src/main/resources/dozerBeanMapping.xml 2012-02-22 20:45:30 UTC (rev 1697)
+++ trunk/src/main/resources/dozerBeanMapping.xml 2012-02-22 23:48:59 UTC (rev 1698)
@@ -94,6 +94,16 @@
<class-b>cc.kune.core.server.state.StateContainer</class-b>
</mapping>
<mapping>
+ <class-a>cc.kune.core.shared.dto.StateEventContainerDTO</class-a>
+ <class-b>cc.kune.core.server.state.StateEventContainer</class-b>
+ <field>
+ <a>appointments</a>
+ <b>appointments</b>
+ <a-hint>java.util.HashMap</a-hint>
+ <b-hint>java.util.HashMap</b-hint>
+ </field>
+ </mapping>
+ <mapping>
<class-a>cc.kune.core.shared.dto.StateAbstractDTO</class-a>
<class-b>cc.kune.core.server.state.StateAbstract</class-b>
</mapping>
@@ -237,7 +247,7 @@
<class-a> cc.kune.core.shared.dto.SocialNetworkDataDTO </class-a>
<class-b> cc.kune.domain.SocialNetworkData </class-b>
</mapping>
- <mapping>
+ <mapping>
<class-a> cc.kune.core.shared.dto.HomeStatsDTO </class-a>
<class-b> cc.kune.core.server.stats.HomeStats </class-b>
<field>
@@ -252,5 +262,5 @@
<a-hint> cc.kune.core.shared.dto.ContentSimpleDTO </a-hint>
<b-hint> cc.kune.domain.Content </b-hint>
</field>
- </mapping>
+ </mapping>
</mappings>
\ No newline at end of file
Modified: trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java 2012-02-22 20:45:30 UTC (rev 1697)
+++ trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -28,6 +28,7 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import org.junit.Before;
@@ -39,6 +40,7 @@
import cc.kune.core.server.TestHelper;
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.state.StateContent;
+import cc.kune.core.server.state.StateEventContainer;
import cc.kune.core.shared.domain.GroupListMode;
import cc.kune.core.shared.domain.SocialNetworkVisibility;
import cc.kune.core.shared.domain.UserSNetVisibility;
@@ -55,6 +57,7 @@
import cc.kune.core.shared.dto.LinkDTO;
import cc.kune.core.shared.dto.SocialNetworkDataDTO;
import cc.kune.core.shared.dto.StateContentDTO;
+import cc.kune.core.shared.dto.StateEventContainerDTO;
import cc.kune.domain.BasicMimeType;
import cc.kune.domain.Container;
import cc.kune.domain.Content;
@@ -172,6 +175,20 @@
}
@Test
+ public void mapEventContainer() {
+ final StateEventContainer c = new StateEventContainer();
+ final HashMap<String, String> map = new HashMap<String, String>();
+ map.put("prop", "value");
+ map.put("prop2", "value2");
+ final List<Map<String, String>> list = new ArrayList<Map<String, String>>();
+ list.add(map);
+ c.setAppointments(list);
+ final StateEventContainerDTO dto = mapper.map(c, StateEventContainerDTO.class);
+ assertEquals(dto.getAppointments().get(0).get("prop"), "value");
+ assertEquals(dto.getAppointments().get(0).get("prop2"), "value2");
+ }
+
+ @Test
public void testContentDescriptorMapping() {
final Content d = createDefContent();
final StateToken expectedToken = new StateToken(TESTGROUPSHORTNAME, TESTTOOL, "1", "1");
Deleted: trunk/src/test/java/cc/kune/events/shared/EventsConversionUtilTest.java
===================================================================
--- trunk/src/test/java/cc/kune/events/shared/EventsConversionUtilTest.java 2012-02-22 20:45:30 UTC (rev 1697)
+++ trunk/src/test/java/cc/kune/events/shared/EventsConversionUtilTest.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -1,28 +0,0 @@
-package cc.kune.events.shared;
-
-import static org.junit.Assert.assertEquals;
-
-import java.util.Map;
-
-import org.junit.Test;
-
-import com.bradrydzewski.gwt.calendar.client.Appointment;
-import com.google.gwt.editor.client.Editor.Ignore;
-
-public class EventsConversionUtilTest extends BasicCalendarTest {
-
- @Test
- @Ignore
- public void testToMap() {
- final Appointment app = createAppointment(false);
- final Map<String, String> map = EventsConversionUtil.toMap(app);
- final Appointment appReConverted = EventsConversionUtil.toApp(map);
- assertEquals(app.getStart(), appReConverted.getStart());
- assertEquals(app.getEnd(), appReConverted.getEnd());
- assertEquals(app.getDescription(), appReConverted.getDescription());
- assertEquals(app.getTitle(), appReConverted.getTitle());
- assertEquals(app.getLocation(), appReConverted.getLocation());
- assertEquals(app.getCreatedBy(), appReConverted.getCreatedBy());
- }
-
-}
Copied: trunk/src/test/java/cc/kune/events/shared/EventsServerConversionUtilTest.java (from rev 1691, trunk/src/test/java/cc/kune/events/shared/EventsConversionUtilTest.java)
===================================================================
--- trunk/src/test/java/cc/kune/events/shared/EventsServerConversionUtilTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/events/shared/EventsServerConversionUtilTest.java 2012-02-22 23:48:59 UTC (rev 1698)
@@ -0,0 +1,28 @@
+package cc.kune.events.shared;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Map;
+
+import org.junit.Test;
+
+import com.bradrydzewski.gwt.calendar.client.Appointment;
+import com.google.gwt.editor.client.Editor.Ignore;
+
+public class EventsServerConversionUtilTest extends BasicCalendarTest {
+
+ @Test
+ @Ignore
+ public void testToMap() {
+ final Appointment app = createAppointment(false);
+ final Map<String, String> map = EventsClientConversionUtil.toMap(app);
+ final Appointment appReConverted = EventsClientConversionUtil.toApp(map);
+ assertEquals(app.getStart(), appReConverted.getStart());
+ assertEquals(app.getEnd(), appReConverted.getEnd());
+ assertEquals(app.getDescription(), appReConverted.getDescription());
+ assertEquals(app.getTitle(), appReConverted.getTitle());
+ assertEquals(app.getLocation(), appReConverted.getLocation());
+ assertEquals(app.getCreatedBy(), appReConverted.getCreatedBy());
+ }
+
+}
1
0
22 Feb '12
Author: vjrj_
Date: 2012-02-22 21:45:30 +0100 (Wed, 22 Feb 2012)
New Revision: 1697
Modified:
trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.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/events/client/viewer/CalendarViewerPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2012-02-22 19:41:12 UTC (rev 1696)
+++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2012-02-22 20:45:30 UTC (rev 1697)
@@ -4,14 +4,17 @@
import java.util.Date;
import cc.kune.common.client.actions.ui.GuiProvider;
+import cc.kune.common.client.ui.UiUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.dnd.FolderViewerDropController;
import cc.kune.core.client.dnd.KuneDragController;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.events.client.viewer.CalendarViewerPresenter.CalendarViewerView;
+import cc.kune.events.shared.EventsConstants;
import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.gspace.client.viewers.AbstractFolderViewerPanel;
+import cc.kune.gspace.client.viewers.ContentTitleWidget;
import cc.kune.gspace.client.viewers.items.FolderItemDescriptor;
import com.bradrydzewski.gwt.calendar.client.Appointment;
@@ -31,9 +34,11 @@
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.i18n.client.DateTimeFormat;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Event.NativePreviewEvent;
import com.google.gwt.user.client.Event.NativePreviewHandler;
+import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -42,6 +47,7 @@
private final Calendar calendar;
private int clientX;
private int clientY;
+ private ContentTitleWidget contentTitle;
@Inject
public CalendarViewerPanel(final GSpaceArmor gsArmor, final I18nTranslationService i18n,
@@ -65,6 +71,7 @@
}
}
});
+ contentTitle = new ContentTitleWidget(i18n, gsArmor, capabilitiesRegistry.getIconsRegistry());
}
@Override
@@ -166,6 +173,11 @@
}
@Override
+ public Date getCurrentDate() {
+ return calendar.getDate();
+ }
+
+ @Override
public Date getDate() {
return calendar.getDate();
}
@@ -232,4 +244,27 @@
calendar.suspendLayout();
}
+ @Override
+ public void updateTitle(final CalendarViews currentCalView) {
+ final Date currentDate = getDate();
+ DateTimeFormat fmt = null;
+ // More info about formats:
+ // http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/…
+ switch (currentCalView) {
+ case DAY:
+ case AGENDA:
+ fmt = DateTimeFormat.getFormat("EEEE, MMMM dd, yyyy");
+ break;
+ case MONTH:
+ fmt = DateTimeFormat.getFormat("MMMM yyyy");
+ break;
+ }
+ final String dateFormatted = fmt.format(currentDate);
+ final ForIsWidget docHeader = gsArmor.getDocHeader();
+ UiUtils.clear(docHeader);
+ contentTitle.setTitle(i18n.tWithNT("Events in [%s]", dateFormatted), EventsConstants.TYPE_ROOT,
+ null, false);
+ docHeader.add(contentTitle);
+ }
+
}
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 19:41:12 UTC (rev 1696)
+++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPresenter.java 2012-02-22 20:45:30 UTC (rev 1697)
@@ -70,6 +70,8 @@
int getClientY();
+ Date getCurrentDate();
+
Date getDate();
void goToday();
@@ -82,6 +84,8 @@
void setView(CalendarViews view);
void setView(CalendarViews view, int days);
+
+ void updateTitle(CalendarViews currentCalView);
}
private static final CalendarViews DEF_VIEW = CalendarViews.DAY;
@@ -171,6 +175,7 @@
@Override
public void attach() {
getView().attach();
+ updateTitle();
}
@Override
@@ -201,6 +206,7 @@
@Override
public void goToday() {
getView().goToday();
+ updateTitle();
}
private void hideMenu() {
@@ -224,6 +230,7 @@
break;
}
setDate(date);
+ updateTitle();
}
@Override
@@ -265,12 +272,14 @@
this.currentCalView = calView;
this.currentDaysView = 1;
getView().setView(calView);
+ updateTitle();
}
private void setViewImpl(final CalendarViews calView, final int days) {
this.currentCalView = calView;
this.currentDaysView = days;
getView().setView(calView, days);
+ updateTitle();
}
private void showMenu() {
@@ -281,4 +290,8 @@
private void updateMenuItems() {
CalendarStateChangeEvent.fire(getEventBus());
}
+
+ private void updateTitle() {
+ getView().updateTitle(currentCalView);
+ }
}
1
0
r1696 - in trunk: . src/main/java/cc/kune/core/client/sitebar/search src/main/java/cc/kune/core/client/sn src/main/java/cc/kune/core/shared/dto src/main/java/cc/kune/events/client/actions
by Vicente J. Ruiz Jurado 22 Feb '12
by Vicente J. Ruiz Jurado 22 Feb '12
22 Feb '12
Author: vjrj_
Date: 2012-02-22 20:41:12 +0100 (Wed, 22 Feb 2012)
New Revision: 1696
Added:
trunk/src/main/java/cc/kune/events/client/actions/EventOpenMenuItem.java
Removed:
trunk/src/main/java/cc/kune/events/client/actions/EventEditMenuItem.java
Modified:
trunk/INSTALL
trunk/src/main/java/cc/kune/core/client/sitebar/search/MultivalueSuggestBox.java
trunk/src/main/java/cc/kune/core/client/sn/GroupSNPanel.java
trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java
trunk/src/main/java/cc/kune/core/client/sn/UserSNPanel.java
trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java
trunk/src/main/java/cc/kune/core/shared/dto/GroupDTO.java
trunk/src/main/java/cc/kune/core/shared/dto/UserSimpleDTO.java
trunk/src/main/java/cc/kune/events/client/actions/CalendarRolAction.java
trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java
Log:
NEW - # 158: Add a Calendar view to event tool
http://kune.ourproject.org/issues/ticket/158
Modified: trunk/INSTALL
===================================================================
--- trunk/INSTALL 2012-02-22 15:27:06 UTC (rev 1695)
+++ trunk/INSTALL 2012-02-22 19:41:12 UTC (rev 1696)
@@ -245,10 +245,6 @@
This is used to set the database of users of openfire to kune users database table. When you do that you have to follow the next step (or you will get authentication problems).
-Edit the openfire.xml in a terminal:
-* In debian (with a .deb installation) you can to edit the configuration in /etc/openfire directory.
-* In Mac: /usr/local/openfire/conf
-
Also in 'Server > Server Manager > System Properties' set (verify that the mysql connection user and password is the same as the password you choose to configure your database):
jdbcProvider.driver = com.mysql.jdbc.Driver
@@ -266,7 +262,10 @@
jdbcUserProvider.usernameField = shortName
admin.authorizedJIDs = admin@PUT_HERE_YOUR_DOMAIN
-Or, alternatively (if is more easy for you), add these lines to conf/openfire.xml. Again check that the user/passwd of the db is the same here and in kune.properties (the ones configured before):
+Or, alternatively (if is more easy for you), add these lines to conf/openfire.xml
+* In debian (with a .deb installation) you can to edit the configuration in /etc/openfire directory.
+* In Mac: /usr/local/openfire/conf
+(Again check that the user/passwd of the db is the same here and in kune.properties the ones configured before):
<pre>
<jive>
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/search/MultivalueSuggestBox.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/search/MultivalueSuggestBox.java 2012-02-22 15:27:06 UTC (rev 1695)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/search/MultivalueSuggestBox.java 2012-02-22 19:41:12 UTC (rev 1696)
@@ -880,8 +880,10 @@
final JSONObject jsonOpt = optionsArray.get(i).isObject();
final Option option = new Option();
- option.setName(jsonOpt.get(OptionResultSet.DISPLAY_NAME).isString().stringValue() + " ("
- + jsonOpt.get(OptionResultSet.VALUE).isString().stringValue() + ")");
+
+ final String longName = jsonOpt.get(OptionResultSet.DISPLAY_NAME).isString().stringValue();
+ final String shortName = jsonOpt.get(OptionResultSet.VALUE).isString().stringValue();
+ option.setName(!longName.equals(shortName) ? longName + " (" + shortName + ")" : shortName);
option.setValue(jsonOpt.get(OptionResultSet.VALUE).isString().stringValue());
options.addOption(option);
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/GroupSNPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/GroupSNPanel.java 2012-02-22 15:27:06 UTC (rev 1695)
+++ trunk/src/main/java/cc/kune/core/client/sn/GroupSNPanel.java 2012-02-22 19:41:12 UTC (rev 1696)
@@ -65,8 +65,8 @@
@Override
public void addAdmin(final GroupDTO group, final String avatarUrl, final String tooltip,
final String tooltipTitle, final GuiActionDescCollection menu) {
- final BasicDragableThumb thumb = createThumb(group.getShortName(), avatarUrl, tooltip, tooltipTitle,
- menu);
+ final BasicDragableThumb thumb = createThumb(group.getCompoundName(), avatarUrl, tooltip,
+ tooltipTitle, menu);
firstCategoryFlow.add(group.isPersonal() ? (Widget) decorateAvatarWithXmppStatus(
group.getShortName(), thumb) : thumb);
}
@@ -74,8 +74,8 @@
@Override
public void addCollab(final GroupDTO group, final String avatarUrl, final String tooltip,
final String tooltipTitle, final GuiActionDescCollection menu) {
- final BasicDragableThumb thumb = createThumb(group.getShortName(), avatarUrl, tooltip, tooltipTitle,
- menu);
+ final BasicDragableThumb thumb = createThumb(group.getCompoundName(), avatarUrl, tooltip,
+ tooltipTitle, menu);
sndCategoryFlow.add(group.isPersonal() ? (Widget) decorateAvatarWithXmppStatus(group.getShortName(),
thumb) : thumb);
}
@@ -83,8 +83,8 @@
@Override
public void addPending(final GroupDTO group, final String avatarUrl, final String tooltip,
final String tooltipTitle, final GuiActionDescCollection menu) {
- final BasicDragableThumb thumb = createThumb(group.getShortName(), avatarUrl, tooltip, tooltipTitle,
- menu);
+ final BasicDragableThumb thumb = createThumb(group.getCompoundName(), avatarUrl, tooltip,
+ tooltipTitle, menu);
trdCategoryFlow.add(thumb);
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java 2012-02-22 15:27:06 UTC (rev 1695)
+++ trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java 2012-02-22 19:41:12 UTC (rev 1696)
@@ -26,8 +26,8 @@
import cc.kune.core.client.events.SocialNetworkChangedEvent;
import cc.kune.core.client.events.StateChangedEvent;
import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
import cc.kune.core.client.events.UserSignOutEvent;
-import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
import cc.kune.core.client.events.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.sn.actions.registry.GroupSNAdminsMenuItemsRegistry;
@@ -204,21 +204,26 @@
if (userCanView) {
for (final GroupDTO admin : adminsList) {
final String avatar = getAvatar(admin);
- getView().addAdmin(admin, avatar, admin.getLongName(), "",
- createMenuItems(admin, adminsMenuItemsRegistry, admin.getLongName()));
+ getView().addAdmin(admin, avatar, admin.getCompoundName(), "",
+ createMenuItems(admin, adminsMenuItemsRegistry, admin.getCompoundName()));
}
getView().setCollabsVisible(numCollabs > 0, areMany(numCollabs));
for (final GroupDTO collab : collabList) {
final String avatar = getAvatar(collab);
- getView().addCollab(collab, avatar, collab.getLongName(), "",
- createMenuItems(collab, collabsMenuItemsRegistry, collab.getLongName()));
+ getView().addCollab(collab, avatar, collab.getCompoundName(), "",
+ createMenuItems(collab, collabsMenuItemsRegistry, collab.getCompoundName()));
}
if (userIsAdmin) {
getView().setPendingVisible(numPendings > 0, areMany(numPendings));
for (final GroupDTO pendingCollab : pendingCollabsList) {
final String avatar = getAvatar(pendingCollab);
- getView().addPending(pendingCollab, avatar, pendingCollab.getLongName(), "",
- createMenuItems(pendingCollab, pendingsMenuItemsRegistry, pendingCollab.getLongName()));
+ getView().addPending(
+ pendingCollab,
+ avatar,
+ pendingCollab.getCompoundName(),
+ "",
+ createMenuItems(pendingCollab, pendingsMenuItemsRegistry,
+ pendingCollab.getCompoundName()));
}
} else {
getView().setPendingVisible(false, false);
Modified: trunk/src/main/java/cc/kune/core/client/sn/UserSNPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/UserSNPanel.java 2012-02-22 15:27:06 UTC (rev 1695)
+++ trunk/src/main/java/cc/kune/core/client/sn/UserSNPanel.java 2012-02-22 19:41:12 UTC (rev 1696)
@@ -84,7 +84,7 @@
@Override
public void addParticipation(final GroupDTO group, final String avatarUrl, final String tooltip,
final String tooltipTitle, final GuiActionDescCollection menu) {
- sndCategoryFlow.add(createThumb(group.getShortName(), avatarUrl, tooltip, tooltipTitle, menu));
+ sndCategoryFlow.add(createThumb(group.getCompoundName(), avatarUrl, tooltip, tooltipTitle, menu));
}
@Override
Modified: trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java 2012-02-22 15:27:06 UTC (rev 1695)
+++ trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java 2012-02-22 19:41:12 UTC (rev 1696)
@@ -27,8 +27,8 @@
import cc.kune.core.client.events.SocialNetworkChangedEvent;
import cc.kune.core.client.events.StateChangedEvent;
import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
import cc.kune.core.client.events.UserSignOutEvent;
-import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
import cc.kune.core.client.events.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.sn.UserSNPresenter.UserSNProxy;
@@ -179,8 +179,8 @@
final List<UserSimpleDTO> buddies = userBuddiesData.getBuddies();
for (final UserSimpleDTO user : buddies) {
final String avatarUrl = downloadProvider.get().getUserAvatar(user);
- getView().addBuddie(user, avatarUrl, user.getName(), "",
- createMenuItems(user, userMenuItemsRegistry, user.getName()));
+ getView().addBuddie(user, avatarUrl, user.getCompoundName(), "",
+ createMenuItems(user, userMenuItemsRegistry, user.getCompoundName()));
}
final boolean hasLocalBuddies = buddies.size() > 0;
final int numExtBuddies = userBuddiesData.getOtherExtBuddies();
@@ -211,12 +211,12 @@
final int numAdmins = groupsIsAdmin.size();
final int numCollaborators = groupsIsCollab.size();
for (final GroupDTO group : groupsIsAdmin) {
- getView().addParticipation(group, getAvatar(group), group.getLongName(), "",
- createMenuItems(group, userMenuItemsRegistry, group.getLongName()));
+ getView().addParticipation(group, getAvatar(group), group.getCompoundName(), "",
+ createMenuItems(group, userMenuItemsRegistry, group.getCompoundName()));
}
for (final GroupDTO group : groupsIsCollab) {
- getView().addParticipation(group, getAvatar(group), group.getLongName(), "",
- createMenuItems(group, userMenuItemsRegistry, group.getLongName()));
+ getView().addParticipation(group, getAvatar(group), group.getCompoundName(), "",
+ createMenuItems(group, userMenuItemsRegistry, group.getCompoundName()));
}
final int totalGroups = numAdmins + numCollaborators;
// getView().setParticipationCount(totalGroups);
Modified: trunk/src/main/java/cc/kune/core/shared/dto/GroupDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/GroupDTO.java 2012-02-22 15:27:06 UTC (rev 1695)
+++ trunk/src/main/java/cc/kune/core/shared/dto/GroupDTO.java 2012-02-22 19:41:12 UTC (rev 1696)
@@ -28,6 +28,7 @@
AdmissionType admissionType;
private String backgroundImage;
+ private String compoundName;
private Long createdOn;
private ContentSimpleDTO defaultContent;
private LicenseDTO defaultLicense;
@@ -79,6 +80,13 @@
return backgroundImage;
}
+ public String getCompoundName() {
+ if (compoundName == null) {
+ compoundName = !longName.equals(shortName) ? longName + " (" + shortName + ")" : shortName;
+ }
+ return compoundName;
+ }
+
public Long getCreatedOn() {
return createdOn;
}
Modified: trunk/src/main/java/cc/kune/core/shared/dto/UserSimpleDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/UserSimpleDTO.java 2012-02-22 15:27:06 UTC (rev 1695)
+++ trunk/src/main/java/cc/kune/core/shared/dto/UserSimpleDTO.java 2012-02-22 19:41:12 UTC (rev 1696)
@@ -25,6 +25,7 @@
import com.google.gwt.user.client.rpc.IsSerializable;
public class UserSimpleDTO implements IsSerializable {
+ private String compoundName;
private I18nCountryDTO country;
private EmailNotificationFrequency emailNotifFreq;
private boolean emailVerified;
@@ -47,6 +48,7 @@
this.language = language;
this.country = country;
this.timezone = timezone;
+
}
@Override
@@ -78,6 +80,13 @@
return true;
}
+ public String getCompoundName() {
+ if (compoundName == null) {
+ compoundName = !name.equals(shortName) ? name + " (" + shortName + ")" : shortName;
+ }
+ return compoundName;
+ }
+
public I18nCountryDTO getCountry() {
return country;
}
Modified: trunk/src/main/java/cc/kune/events/client/actions/CalendarRolAction.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/actions/CalendarRolAction.java 2012-02-22 15:27:06 UTC (rev 1695)
+++ trunk/src/main/java/cc/kune/events/client/actions/CalendarRolAction.java 2012-02-22 19:41:12 UTC (rev 1696)
@@ -23,7 +23,7 @@
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 isEnabled = RolComparator.isEnabled(rolRequired, rights);
final boolean isMember = RolComparator.isMember(rights);
final boolean isOnApp = !calendar.get().getAppToEdit().equals(CalendarViewer.NO_APPOINT);
final boolean newEnabled = isMember && isEnabled && (!onlyOnApp || isOnApp);
Deleted: 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 15:27:06 UTC (rev 1695)
+++ trunk/src/main/java/cc/kune/events/client/actions/EventEditMenuItem.java 2012-02-22 19:41:12 UTC (rev 1696)
@@ -1,45 +0,0 @@
-package cc.kune.events.client.actions;
-
-import cc.kune.common.client.actions.ActionEvent;
-import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
-import cc.kune.common.shared.i18n.I18nTranslationService;
-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.CalendarViewer;
-
-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 EventEditMenuItem extends MenuItemDescriptor {
- public static class EventEditAction extends CalendarRolAction {
- private final Provider<CalendarViewer> calendar;
- private final StateManager stateManager;
-
- @Inject
- public EventEditAction(final NavResources res, final I18nTranslationService 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());
- }
-
- @Override
- public void actionPerformed(final ActionEvent event) {
- stateManager.gotoHistoryToken(calendar.get().getAppToEdit().getId());
- }
- }
-
- @Inject
- public EventEditMenuItem(final EventEditAction action, final CalendarOnOverMenu cal) {
- super(action);
- setParent(cal.get());
- }
-}
Copied: trunk/src/main/java/cc/kune/events/client/actions/EventOpenMenuItem.java (from rev 1694, trunk/src/main/java/cc/kune/events/client/actions/EventEditMenuItem.java)
===================================================================
--- trunk/src/main/java/cc/kune/events/client/actions/EventOpenMenuItem.java (rev 0)
+++ trunk/src/main/java/cc/kune/events/client/actions/EventOpenMenuItem.java 2012-02-22 19:41:12 UTC (rev 1696)
@@ -0,0 +1,45 @@
+package cc.kune.events.client.actions;
+
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.common.shared.i18n.I18nTranslationService;
+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.CalendarViewer;
+
+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 EventOpenMenuItem extends MenuItemDescriptor {
+ public static class EventEditAction extends CalendarRolAction {
+ private final Provider<CalendarViewer> calendar;
+ private final StateManager stateManager;
+
+ @Inject
+ public EventEditAction(final NavResources res, final I18nTranslationService i18n,
+ final Provider<CalendarViewer> calendar, final EventBus eventBus,
+ final StateManager stateManager, final Session session, final AccessRightsClientManager rightsMan) {
+ super(eventBus, session, calendar, AccessRolDTO.Viewer, false, true);
+ this.calendar = calendar;
+ this.stateManager = stateManager;
+ withText(i18n.t("Open the appointment")).withIcon(res.go());
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ stateManager.gotoHistoryToken(calendar.get().getAppToEdit().getId());
+ }
+ }
+
+ @Inject
+ public EventOpenMenuItem(final EventEditAction action, final CalendarOnOverMenu cal) {
+ super(action);
+ setParent(cal.get());
+ }
+}
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 15:27:06 UTC (rev 1695)
+++ trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java 2012-02-22 19:41:12 UTC (rev 1696)
@@ -55,7 +55,7 @@
final Provider<CalendarMonthViewSelectBtn> calMonthBtn,
final Provider<EventAddMenuItem> eventAddMenuItem,
final Provider<EventRemoveMenuItem> eventRemoveMenuItem,
- final Provider<EventEditMenuItem> eventEditMenuItem, final Provider<CalendarGoPrevBtn> calPrevBtn,
+ final Provider<EventOpenMenuItem> eventOpenMenuItem, final Provider<CalendarGoPrevBtn> calPrevBtn,
final Provider<CalendarGoNextBtn> calNextBtn, final CalendarOnOverMenu onOverMenu,
final Provider<CalendarGoTodayBtn> goToday, final Provider<RefreshContentMenuItem> refresh) {
super(session, stateManager, i18n, registry);
@@ -74,15 +74,8 @@
// 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();
+ eventOpenMenuItem.get();
eventRemoveMenuItem.get();
// For now, commented:
1
0
Author: vjrj_
Date: 2012-02-22 16:27:06 +0100 (Wed, 22 Feb 2012)
New Revision: 1695
Modified:
trunk/script/server.sh
Log:
server memory params
Modified: trunk/script/server.sh
===================================================================
--- trunk/script/server.sh 2012-02-22 14:33:28 UTC (rev 1694)
+++ trunk/script/server.sh 2012-02-22 15:27:06 UTC (rev 1695)
@@ -11,6 +11,8 @@
or adding -Dgwt.compiler.skip=true to skip compilation
-a: run as a daemon (only root user)
-l LOGLEVEL : IGNORE|DEBUG|INFO|WARN
+-x: -Xmx memory value
+-m: -Xms memory value
Debug Options:
-d: debug
@@ -40,8 +42,10 @@
LOG_LEVEL="INFO"
LOGFILE=/var/log/kune.log
PIDFILE=/var/run/kune.pid
+MX=""
+MS=""
-while getopts “hj:k:w:s:up:l:da” OPTION
+while getopts “hm:x:j:k:w:s:up:l:da” OPTION
do
case $OPTION in
h)
@@ -60,6 +64,12 @@
s)
JAAS_CONFIG=$OPTARG
;;
+ x)
+ MX="-Xmx"$OPTARG
+ ;;
+ m)
+ MS="-Xms"$OPTARG
+ ;;
p)
# Debug port
PORT=$OPTARG
@@ -124,6 +134,8 @@
-Djava.security.auth.login.config=$JAAS_CONFIG \
-Dkune.server.config=$KUNE_CONFIG \
-Dwave.server.config=$WAVE_CONFIG \
+ $MS \
+ $MX \
-jar $JAR </dev/null > $LOGFILE 2>&1 &
echo $! > $PIDFILE
else
@@ -132,6 +144,8 @@
-Djava.security.auth.login.config=$JAAS_CONFIG \
-Dkune.server.config=$KUNE_CONFIG \
-Dwave.server.config=$WAVE_CONFIG \
+ $MS \
+ $MX \
-jar $JAR
fi
fi
1
0
r1694 - in trunk/src/main/java/cc/kune: core/client/actions events/client/actions events/client/viewer
by Vicente J. Ruiz Jurado 22 Feb '12
by Vicente J. Ruiz Jurado 22 Feb '12
22 Feb '12
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
1
0
Author: vjrj_
Date: 2012-02-22 11:54:28 +0100 (Wed, 22 Feb 2012)
New Revision: 1693
Modified:
trunk/INSTALL
Log:
INSTALL update to help W$ openfire instalation
Modified: trunk/INSTALL
===================================================================
--- trunk/INSTALL 2012-02-22 01:51:24 UTC (rev 1692)
+++ trunk/INSTALL 2012-02-22 10:54:28 UTC (rev 1693)
@@ -249,8 +249,25 @@
* In debian (with a .deb installation) you can to edit the configuration in /etc/openfire directory.
* In Mac: /usr/local/openfire/conf
-Add these lines to conf/openfire.xml and check that the user/passwd of the db is the same here and in kune.properties (the ones configured before):
+Also in 'Server > Server Manager > System Properties' set (verify that the mysql connection user and password is the same as the password you choose to configure your database):
+jdbcProvider.driver = com.mysql.jdbc.Driver
+jdbcProvider.connectionString = jdbc:mysql://localhost/kune_dev?user=kune&password=db4kune&useUnicode=true&characterEncoding=utf-8
+provider.auth.className = org.jivesoftware.openfire.auth.JDBCAuthProvider
+provider.user.className = org.jivesoftware.openfire.user.JDBCUserProvider
+jdbcAuthProvider.passwordSQL = SELECT password FROM kune_dev.kusers WHERE shortName=?
+jdbcAuthProvider.passwordType = plain
+jdbcUserProvider.allUsersSQL = SELECT shortName FROM kune_dev.kusers
+jdbcUserProvider.emailField = email
+jdbcUserProvider.loadUserSQL = SELECT shortName,email FROM kune_dev.kusers WHERE shortName=?
+jdbcUserProvider.nameField = name
+jdbcUserProvider.searchSQL = SELECT shortName FROM kune_dev.kusers WHERE
+jdbcUserProvider.userCountSQL = SELECT COUNT(*) FROM kune_dev.kusers
+jdbcUserProvider.usernameField = shortName
+admin.authorizedJIDs = admin@PUT_HERE_YOUR_DOMAIN
+
+Or, alternatively (if is more easy for you), add these lines to conf/openfire.xml. Again check that the user/passwd of the db is the same here and in kune.properties (the ones configured before):
+
<pre>
<jive>
...
@@ -291,7 +308,7 @@
<jdbcUserProvider/>
<admin/>
-(Be sure that the password matches if you changed de default password 'db4kune', also the database name if you use another different like production one).
+(Be sure that the user and the password matches if you changed de default password 'db4kune', also the database name if you use another different like production one).
When you add this to the configuration and you restart, openfire will import (and remove) this part of the configuration to its database so you will see it in 'Server > Server Manager > System Properties'.
1
0
Author: vjrj_
Date: 2012-02-22 02:51:24 +0100 (Wed, 22 Feb 2012)
New Revision: 1692
Added:
trunk/docs/tutorials/
trunk/docs/tutorials/docs.svg
trunk/docs/tutorials/lang.js
Log:
svg tool tutorials
Added: trunk/docs/tutorials/docs.svg
===================================================================
--- trunk/docs/tutorials/docs.svg (rev 0)
+++ trunk/docs/tutorials/docs.svg 2012-02-22 01:51:24 UTC (rev 1692)
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:ns1="http://sozi.baierouge.fr"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="210mm"
+ height="297mm"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ sodipodi:docname="docs.svg">
+ <!-- Start kune i18n part -->
+ <script
+ id="kunelangtable">
+ var idLangList = [
+ {id: "layer2", layer: "es"},
+ {id: "layer3", layer: "en"},
+ {id: "layer4", layer: "fr"}
+ ];
+ </script>
+ <script xlink:href="lang.js" id="kunelang" />
+ <!-- End kune i18n part -->
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.8796948"
+ inkscape:cx="63.9286"
+ inkscape:cy="1076.99"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer4"
+ showgrid="true"
+ inkscape:window-width="1078"
+ inkscape:window-height="919"
+ inkscape:window-x="0"
+ inkscape:window-y="972"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3100" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ style="display:inline"
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:#231f20"
+ d="m 42.01,12.423183 -22.016,0 0,32.023001 c 13,0 19,0 32,0 l 0,-22.015 z m 5.984,28.023001 c -10.90757,0 -10.78344,0 -24,0 0,0 0.006,-21.441 0.006,-24.084001 2.1,0 7.807,0 12.006,0 l 0,12.010001 12.01,0 c -10e-4,2.733 -0.022,12.074 -0.022,12.074 z m -7.984,-16.078 c 0,-1.543 0,-5.918 0,-8.006001 1.615,1.619001 6.402,6.404001 8.006,8.006001 -2.047,0 -6.454,0 -8.006,0 z"
+ id="path3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <path
+ sodipodi:nodetypes="ccccccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path3175"
+ d="m 91.004,48.423183 -22.016,0 0,32.023001 c 13,0 19,0 32,0 l 0,-22.015 z m 5.984,28.023001 c -10.90757,0 -10.78344,0 -24,0 0,0 0.006,-21.441 0.006,-24.084001 2.1,0 7.807,0 12.006,0 l 0,12.010001 12.01,0 c -0.001,2.733 -0.022,12.074 -0.022,12.074 z m -7.984,-16.078 c 0,-1.543 0,-5.918 0,-8.006001 1.615,1.619001 6.402,6.404001 8.006,8.006001 -2.047,0 -6.454,0 -8.006,0 z"
+ style="fill:#231f20" />
+ <rect
+ style="opacity:0.5;fill:none;stroke:#008080;stroke-width:0.66635472;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect3001"
+ width="56.241726"
+ height="67.671463"
+ x="5"
+ y="-2.6378174" />
+ <rect
+ y="35.362183"
+ x="56"
+ height="67.671463"
+ width="56.241726"
+ id="rect3276"
+ style="opacity:1;fill:none;stroke:#008080;stroke-width:0.66635471999999996;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ ry="17" />
+ </g>
+ <g
+ style="display:none"
+ inkscape:label="es"
+ id="layer2"
+ inkscape:groupmode="layer">
+ <text
+ sodipodi:linespacing="125%"
+ id="text3119"
+ y="7.3621826"
+ x="10"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.5;color:#000000;fill:#782121;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:24;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
+ xml:space="preserve"><tspan
+ y="7.3621826"
+ x="10"
+ id="tspan3121"
+ sodipodi:role="line">es</tspan></text>
+ </g>
+ <g
+ style="display:none"
+ inkscape:label="en"
+ id="layer3"
+ inkscape:groupmode="layer">
+ <text
+ sodipodi:linespacing="125%"
+ id="text3124"
+ y="7.3621826"
+ x="25"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.5;color:#000000;fill:#782121;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:24;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
+ xml:space="preserve"><tspan
+ y="7.3621826"
+ x="25"
+ id="tspan3126"
+ sodipodi:role="line">en</tspan></text>
+ </g>
+ <g
+ style="display:none"
+ inkscape:label="fr"
+ id="layer4"
+ inkscape:groupmode="layer">
+ <path
+ inkscape:connector-curvature="0"
+ id="text3129"
+ d="m 50.948,-0.63782138 c 0.537205,-0.0046 1.070215,0.114515 1.572,0.3 -0.116,0.476 -0.232,0.952 -0.348,1.42799998 C 51.613058,0.87912662 50.921322,0.73761062 50.380998,1.0721886 49.966084,1.3666146 49.997619,1.9100776 50,2.3621826 c 0.736,0 1.472,0 2.208,0 0,0.496 0,0.992 0,1.488 -0.736,0 -1.472,0 -2.208,0 0,1.608 0,3.216 0,4.824 -0.596,0 -1.192,0 -1.788,0 0.0039,-2.290989 -0.0079,-4.582254 0.006,-6.873068 0.01855,-0.94143498 0.550605,-1.91820198 1.475506,-2.23572098 0.399242,-0.151413 0.829593,-0.202827 1.254482,-0.20321 z m 6.1305,4.58399998 c -0.655876,-0.17256 -1.349659,-0.27002 -2.016,-0.096 0,1.608 0,3.216 0,4.824 -0.596,0 -1.192,0 -1.788,0 0,-1.992 0,-3.984 0,-5.976 1.230297,-0.427964 2.573771,-0.627408 3.854248,-0.304497 0.365762,-0.02758 0.195311,0.276744 0.166469,0.486252 -0.07224,0.355415 -0.144478,0.71083 -0.216717,1.066245 z"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.5;color:#000000;fill:#782121;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:24;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold" />
+ </g>
+ <script
+ id="sozi-script"
+ ns1:version="11.11-07001323">var sozi=sozi||{};(function(){var a=sozi.events=sozi.events||{},b={};a.listen=function(d,e){var c=b[d];if(!c){c=b[d]=[]}c.push(e)};a.fire=function(g){var d=b[g],c,f,e=Array.prototype.slice.call(arguments,1);if(d){c=d.length;for(f=0;f<c;f+=1){d[f].apply(null,e)}}}}());var sozi=sozi||{};(function(){var w=sozi.framelist=sozi.framelist||{},k=this,r=k.document,q,m,c,j=0,d=5,i,u,b… h(A){return function(B){sozi.player.previewFrame(A);B.stopPropagation()}}function l(A){A.stopPropagation()}function p(B){var A=B.relatedTarget;while(A!==m&&A!==q){A=A.parentNode}if(A===q){w.hide();sozi.player.restart();B.stopPropagation()}}function t(B){var A=c.getCTM().f;if(A<=-k.innerHeight/2){A+=k.innerHeight/2}else{if(A<0){A=0}}c.setAttribute("transform","translate(0,"+A+")");B.stopPropagation()}function e(B){var A=c.getCTM().f;if(A+j>=k.innerHeight*3/2){A-=k.innerHeight/2}else{if(A+j>k.innerHeight+2*d){A=k.innerHeight-j-4*d}}c.setAttribute("transform","translate(0,"+A+")");B.stopPropagation()}function s(A){var C=sozi.animation.profiles[g](A),B=1-C;z=y*C+b*B;m.setAttribute("transform","translate("+z+",0)")}function x(){}function o(){var G=r.createElementNS(a,"rect"),A=r.createElementNS(a,"path"),E=r.createElementNS(a,"path"),H=0,F,C=sozi.document.frames.length,B=sozi.location.getFrameIndex(),D,I;q=r.documentElement;m=r.createElementNS(a,"g");m.setAttribute("id","sozi-toc");q.appendChild(m);c=r.createElementNS(a,"g");m.appendChild(c);G.setAttribute("id","sozi-toc-background");G.setAttribute("x",d);G.setAttribute("y",d);G.setAttribute("rx",d);G.setAttribute("ry",d);G.addEventListener("click",l,false);G.addEventListener("mousedown",l,false);G.addEventListener("mouseout",p,false);c.appendChild(G);for(D=0;D<C;D+=1){I=r.createElementNS(a,"text");I.appendChild(r.createTextNode(sozi.document.frames[D].title));c.appendChild(I);if(D===B){I.setAttribute("class","sozi-toc-current")}F=I.getBBox().width;j+=I.getBBox().height;if(F>H){H=F}I.setAttribute("x",2*d);I.setAttribute("y",j+d);I.addEventListener("click",h(D),false);I.addEventListener("mousedown",l,false)}A.setAttribute("class","sozi-toc-arrow");A.setAttribute("d","M"+(H+3*d)+","+(5*d)+" l"+(4*d)+",0 l-"+(2*d)+",-"+(3*d)+" z");A.addEventListener("click",t,false);A.addEventListener("mousedown",l,false);m.appendChild(A);E.setAttribute("class","sozi-toc-arrow");E.setAttribute("d","M"+(H+3*d)+","+(7*d)+" l"+(4*d)+",0 l-"+(2*d)+","+(3*d)+" z");E.addEventListener("click",e,false);E.addEventListener("mousedown",l,false);m.appendChild(E);G.setAttribute("width",H+7*d);G.setAttribute("height",j+2*d);i=-H-9*d;u=0;z=y=i;m.setAttribute("transform","translate("+i+",0)");v=new sozi.animation.Animator(s,x)}function n(A){var D=r.getElementsByClassName("sozi-toc-current"),C=c.getElementsByTagName("text"),B;for(B=0;B<D.length;B+=1){D[B].removeAttribute("class")}C[A].setAttribute("class","sozi-toc-current")}w.show=function(){b=z;y=u;v.start(f)};w.hide=function(){b=z;y=i;v.start(f)};w.isVisible=function(){return y===u};sozi.events.listen("displayready",o);sozi.events.listen("cleanup",w.hide);sozi.events.listen("framechange",n)}());var sozi=sozi||{};(function(){var t=sozi.player=sozi.player||{},u=sozi.display=sozi.display||{},j=this,o=j.document,p=0,v=1,s=1.05,x=5,c=false,l=false,g=0,e=0;function a(A,z,B){t.stop();u.zoom(A>0?s:1/s,z,B)}function w(y){t.stop();u.rotate(y>0?x:-x)}function r(){if(sozi.framelist.isVisible()){sozi.framelist.hide();t.restart()}else{t.stop();sozi.framelist.show()}}function i(y){if(y.button===p){c=true;l=false;g=y.clientX;e=y.clientY}else{if(y.button===v){r()}}y.stopPropagation()}function m(y){if(c){t.stop();l=true;sozi.events.fire("cleanup");u.drag(y.clientX-g,y.clientY-e);g=y.clientX;e=y.clientY}y.stopPropagation()}function f(y){if(y.button===p){c=false}y.stopPropagation()}function q(y){t.moveToPrevious();y.stopPropagation();y.preventDefault()}function h(y){if(!l&&y.button!==v){t.moveToNext()}y.stopPropagation()}function k(y){var z=0;if(!y){y=j.event}if(y.wheelDelta){z=y.wheelDelta;if(j.opera){z=-z}}else{if(y.detail){z=-y.detail}}if(z!==0){if(y.shiftKey){w(z)}else{a(z,y.clientX,y.clientY)}}y.stopPropagation();y.preventDefault()}function n(y){switch(y.charCode){case 43:a(1,j.innerWidth/2,j.innerHeight/2);break;case 45:a(-1,j.innerWidth/2,j.innerHeight/2);break;case 61:t.moveToCurrent();break;case 70:case 102:t.showAll();break;case 84:case 116:r();break;case 82:w(-1);break;case 114:w(1);break}y.stopPropagation()}function d(y){switch(y.keyCode){case 36:t.moveToFirst();break;case 35:t.moveToLast();break;case 38:t.jumpToPrevious();break;case 33:case 37:t.moveToPrevious();break;case 40:t.jumpToNext();break;case 34:case 39:case 13:case 32:t.moveToNext();break}y.stopPropagation()}function b(){confLang();var y=o.documentElement;y.addEventListener("click",h,false);y.addEventListener("mousedown",i,false);y.addEventListener("mouseup",f,false);y.addEventListener("mousemove",m,false);y.addEventListener("keypress",n,false);y.addEventListener("keydown",d,false);y.addEventListener("contextmenu",q,false);y.addEventListener("DOMMouseScroll",k,false);j.onmousewheel=k}j.addEventListener("load",b,false)}());var sozi=sozi||{};(function(){var e=sozi.animation=sozi.animation||{},h=this,j=40,d=[],b,i=h.mozRequestAnimationFrame||h.webkitRequestAnimationFrame||h.msRequestAnimationFrame||h.oRequestAnimationFrame;function c(){if(i){i(f)}else{b=h.setInterval(function(){f(Date.now())},j)}}function f(l){var k;if(d.length>0){if(i){i(f)}for(k=0;k<d.length;k+=1){d[k].step(l)}}else{if(!i){h.clearInterval(b)}}}function a(k){d.push(k);if(d.length===1){c()}}function g(k){d.splice(d.indexOf(k),1)}e.Animator=function(k,l){this.onStep=k;this.onDone=l;this.durationMs=0;this.data={};this.initialTime=0;this.started=false};e.Animator.prototype.start=function(k,l){this.durationMs=k;this.data=l;this.initialTime=Date.now();this.onStep(0,this.data);if(!this.started){this.started=true;a(this)}};e.Animator.prototype.stop=function(){if(this.started){g(this);this.started=false}};e.Animator.prototype.step=function(l){var k=l-this.initialTime;if(k>=this.durationMs){this.stop();this.onStep(1,this.data);this.onDone()}else{this.onStep(k/this.durationMs,this.data)}};e.profiles={linear:function(k){return k},accelerate:function(k){return Math.pow(k,3)},"strong-accelerate":function(k){return Math.pow(k,5)},decelerate:function(k){return 1-Math.pow(1-k,3)},"strong-decelerate":function(k){return 1-Math.pow(1-k,5)},"accelerate-decelerate":function(k){var l=k<=0.5?k:1-k,m=Math.pow(2*l,3)/2;return k<=0.5?m:1-m},"strong-accelerate-decelerate":function(k){var l=k<=0.5?k:1-k,m=Math.pow(2*l,5)/2;return k<=0.5?m:1-m},"decelerate-accelerate":function(k){var l=k<=0.5?k:1-k,m=(1-Math.pow(1-2*l,2))/2;return k<=0.5?m:1-m},"strong-decelerate-accelerate":function(k){var l=k<=0.5?k:1-k,m=(1-Math.pow(1-2*l,3))/2;return k<=0.5?m:1-m}}}());var sozi=sozi||{};(function(){var d=sozi.player=sozi.player||{},j=sozi.display=sozi.display||{},h=this,c,k,e=500,q=-10,l="linear",g=0,n=0,o=false,p=false;function f(t,w){var v=1-t,u=w.profile(t),s=1-u,r,x;for(r in w.initialState){if(w.initialState.hasOwnProperty(r)){if(typeof w.initialState[r]==="number"&&typeof w.finalState[r]==="number"){j.geometry[r]=w.finalState[r]*u+w.initialState[r]*s}}}if(w.zoomWidth&&w.zoomWidth.k!==0){x=t-w.zoomWidth.ts;j.geometry.width=w.zoomWidth.k*x*x+w.zoomWidth.ss}if(w.zoomHeight&&w.zoomHeight.k!==0){x=t-w.zoomHeight.ts;j.geometry.height=w.zoomHeight.k*x*x+w.zoomHeight.ss}j.clip=w.finalState.clip;j.update()}function i(){var r;if(sozi.document.frames[n].timeoutEnable){p=true;r=(n+1)%sozi.document.frames.length;k=h.setTimeout(function(){d.moveToFrame(r)},sozi.document.frames[n].timeoutMs)}}function m(){g=n;if(o){i()}}d.startFromIndex=function(r){o=true;p=false;g=r;n=r;j.showFrame(sozi.document.frames[r]);i()};d.restart=function(){d.startFromIndex(n)};d.stop=function(){c.stop();if(p){h.clearTimeout(k);p=false}o=false;g=n};function b(r,B,z){var C={ss:((r<0)?Math.max(B,z):Math.min(B,z))*(100-r)/100,ts:0.5,k:0},x,w,t,s,A,y;if(r!==0){x=B-z;w=B-C.ss;t=z-C.ss;if(x!==0){s=Math.sqrt(w*t);A=(w-s)/x;y=(w+s)/x;C.ts=(A>0&&A<=1)?A:y}C.k=w/C.ts/C.ts}return C}d.jumpToFrame=function(r){d.stop();sozi.events.fire("cleanup");g=r;n=r;j.showFrame(sozi.document.frames[r]);sozi.events.fire("framechange",r)};d.previewFrame=function(s){var u=sozi.document.frames[s].geometry,r,t;if(q!==0){r=b(q,j.geometry.width,u.width);t=b(q,j.geometry.height,u.height)}n=s;c.start(e,{initialState:j.getCurrentGeometry(),finalState:u,profile:sozi.animation.profiles[l],zoomWidth:r,zoomHeight:t});sozi.events.fire("framechange",s)};d.moveToFrame=function(t){var s=e,w=q,u=sozi.animation.profiles[l],r,v;if(p){h.clearTimeout(k);p=false}if(t===(n+1)%sozi.document.frames.length){s=sozi.document.frames[t].transitionDurationMs;w=sozi.document.frames[t].transitionZoomPercent;u=sozi.document.frames[t].transitionProfile}sozi.events.fire("cleanup");if(w!==0){r=b(w,j.geometry.width,sozi.document.frames[t].geometry.width);v=b(w,j.geometry.height,sozi.document.frames[t].geometry.height)}o=true;n=t;c.start(s,{initialState:j.getCurrentGeometry(),finalState:sozi.document.frames[n].geometry,profile:u,zoomWidth:r,zoomHeight:v});sozi.events.fire("framechange",t)};d.moveToFirst=function(){d.moveToFrame(0)};d.jumpToPrevious=function(){var r=n;if(!c.started||g<=n){r-=1}if(r>=0){d.jumpToFrame(r)}};d.moveToPrevious=function(){var r=n,s;for(r-=1;r>=0;r-=1){s=sozi.document.frames[r];if(!s.timeoutEnable||s.timeoutMs!==0){d.moveToFrame(r);break}}};d.jumpToNext=function(){var r=n;if(!c.started||g>=n){r+=1}if(r<sozi.document.frames.length){d.jumpToFrame(r)}};d.moveToNext=function(){if(n<sozi.document.frames.length-1||sozi.document.frames[n].timeoutEnable){d.moveToFrame((n+1)%sozi.document.frames.length)}};d.moveToLast=function(){d.moveToFrame(sozi.document.frames.length-1)};d.moveToCurrent=function(){d.moveToFrame(n)};d.showAll=function(){d.stop();sozi.events.fire("cleanup");c.start(e,{initialState:j.getCurrentGeometry(),finalState:j.getDocumentGeometry(),profile:sozi.animation.profiles[l]})};function a(){d.startFromIndex(sozi.location.getFrameIndex())}c=new sozi.animation.Animator(f,m);sozi.events.listen("displayready",a)}());var sozi=sozi||{};(function(){var d=sozi.display=sozi.display||{},h=this,i=h.document,j,c,k,a,g="http://… f(){var o,l=i.createElementNS(g,"g"),m=i.createElementNS(g,"clipPath");j=i.documentElement;k=j.getBBox();a=i.createElementNS(g,"g");while(true){o=j.firstChild;if(!o){break}j.removeChild(o);a.appendChild(o)}c=i.createElementNS(g,"rect");c.setAttribute("id","sozi-clip-rect");m.setAttribute("id","sozi-clip-path");m.appendChild(c);j.appendChild(m);l.setAttribute("clip-path","url(#sozi-clip-path)");l.appendChild(a);j.appendChild(l);j.setAttribute("width",h.innerWidth);j.setAttribute("height",h.innerHeight);sozi.events.fire("displayready")}function b(){j.setAttribute("width",h.innerWidth);j.setAttribute("height",h.innerHeight);d.update()}function e(){var l={};l.scale=Math.min(h.innerWidth/d.geometry.width,h.innerHeight/d.geometry.height);l.width=d.geometry.width*l.scale;l.height=d.geometry.height*l.scale;l.x=(h.innerWidth-l.width)/2;l.y=(h.innerHeight-l.height)/2;return l}d.getElementGeometry=function(l){var s,p,t,n,q,o,r=l.getCTM(),m=Math.sqrt(r.a*r.a+r.b*r.b);if(l.nodeName==="rect"){s=l.x.baseVal.value;p=l.y.baseVal.value;t=l.width.baseVal.value;n=l.height.baseVal.value}else{q=l.getBBox();s=q.x;p=q.y;t=q.width;n=q.height}o=i.documentElement.createSVGPoint();o.x=s+t/2;o.y=p+n/2;o=o.matrixTransform(r);return{cx:o.x,cy:o.y,width:t*m,height:n*m,rotate:Math.atan2(r.b,r.a)*180/Math.PI}};d.getDocumentGeometry=function(){return{cx:k.x+k.width/2,cy:k.y+k.height/2,width:k.width,height:k.height,rotate:0,clip:false}};d.getCurrentGeometry=function(){return{cx:d.geometry.cx,cy:d.geometry.cy,width:d.geometry.width,height:d.geometry.height,rotate:d.geometry.rotate,clip:d.geometry.clip}};d.update=function(){var l=e(),n=-d.geometry.cx+d.geometry.width/2+l.x/l.scale,m=-d.geometry.cy+d.geometry.height/2+l.y/l.scale;a.setAttribute("transform","scale("+l.scale+")translate("+n+","+m+")rotate("+(-d.geometry.rotate)+","+d.geometry.cx+","+d.geometry.cy+")");c.setAttribute("x",d.geometry.clip?l.x:0);c.setAttribute("y",d.geometry.clip?l.y:0);c.setAttribute("width",d.geometry.clip?l.width:h.innerWidth);c.setAttribute("height",d.geometry.clip?l.height:h.innerHeight)};d.showFrame=function(m){var l;for(l in m.geometry){if(m.geometry.hasOwnProperty(l)){d.geometry[l]=m.geometry[l]}}d.update()};d.drag=function(m,l){var n=e(),o=d.geometry.rotate*Math.PI/180;d.geometry.cx-=(m*Math.cos(o)-l*Math.sin(o))/n.scale;d.geometry.cy-=(m*Math.sin(o)+l*Math.cos(o))/n.scale;d.geometry.clip=false;d.update()};d.zoom=function(o,m,p){var n=(1-o)*(m-h.innerWidth/2),l=(1-o)*(p-h.innerHeight/2);d.geometry.width/=o;d.geometry.height/=o;d.drag(n,l)};d.rotate=function(l){d.geometry.rotate+=l;d.geometry.rotate%=360;d.update()};sozi.events.listen("documentready",f);h.addEventListener("resize",b,false)}());var sozi=sozi||{};(function(){var c=sozi.document=sozi.document||{},g=this,a=g.document,f="http://sozi.baierouge.fr",d={title:"Untitled",sequence:"0",hide:"true",clip:"true","timeout-enable":"false","timeout-ms":"5000","transition-duration-ms":"1000","transition-zoom-percent":"0","transition-profile":"linear"};c.frames=[];function h(j,i){var k=j.getAttributeNS(f,i);return k===""?d[i]:k}function b(){var j=a.getElementsByTagNameNS(f,"frame"),k=j.length,m,l,n;for(l=0;l<k;l+=1){m=a.getElementById(j[l].getAttributeNS(f,"refid"));if(m){n={geometry:sozi.display.getElementGeometry(m),title:h(j[l],"title"),sequence:parseInt(h(j[l],"sequence"),10),hide:h(j[l],"hide")==="true",timeoutEnable:h(j[l],"timeout-enable")==="true",timeoutMs:parseInt(h(j[l],"timeout-ms"),10),transitionDurationMs:parseInt(h(j[l],"transition-duration-ms"),10),transitionZoomPercent:parseInt(h(j[l],"transition-zoom-percent"),10),transitionProfile:sozi.animation.profiles[h(j[l],"transition-profile")||"linear"]};if(n.hide){m.setAttribute("visibility","hidden")}n.geometry.clip=h(j[l],"clip")==="true";c.frames.push(n)}}c.frames.sort(function(o,i){return o.sequence-i.sequence})}function e(){a.documentElement.removeAttribute("viewBox");b();sozi.events.fire("documentready")}g.addEventListener("load",e,false)}());var sozi=sozi||{};(function(){var a=sozi.location=sozi.location||{},e=this,c=false;a.getFrameIndex=function(){var g=e.location.hash?parseInt(e.location.hash.slice(1),10)-1:0;if(isNaN(g)||g<0){return 0}else{if(g>=sozi.document.frames.length){return sozi.document.frames.length-1}else{return g}}};function f(){confLang();var g=a.getFrameIndex();if(!c){sozi.player.moveToFrame(g)}c=false}function d(g){c=true;e.location.hash="#"+(g+1)}function b(){sozi.events.listen("framechange",d)}e.addEventListener("hashchange",f,false);e.addEventListener("load",b,false)}());</script>
+ <style
+ id="sozi-style"
+ ns1:version="11.11-07001323">#sozi-toc text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}#sozi-toc text:hover{fill:#0cf;cursor:pointer}#sozi-toc text.sozi-toc-current{fill:#fa4}#sozi-toc-background{stroke:#222;stroke-opacity:.1;stroke-width:10;fill:#222;fill-opacity:.9}.sozi-toc-arrow{fill:#eff;fill-opacity:.75;stroke:none}.sozi-toc-arrow:hover{fill:#0cf}</style>
+ <ns1:frame
+ ns1:refid="rect3001"
+ ns1:sequence="1"
+ ns1:transition-duration-ms="1000"
+ ns1:hide="true"
+ ns1:clip="true"
+ ns1:title="f1"
+ ns1:transition-zoom-percent="0"
+ ns1:timeout-ms="5000"
+ ns1:timeout-enable="false"
+ ns1:transition-profile="linear" />
+ <ns1:frame
+ ns1:transition-profile="linear"
+ ns1:timeout-enable="false"
+ ns1:timeout-ms="5000"
+ ns1:transition-zoom-percent="0"
+ ns1:title="f2"
+ ns1:clip="true"
+ ns1:hide="true"
+ ns1:transition-duration-ms="1000"
+ ns1:sequence="2"
+ ns1:refid="rect3276" />
+</svg>
Added: trunk/docs/tutorials/lang.js
===================================================================
--- trunk/docs/tutorials/lang.js (rev 0)
+++ trunk/docs/tutorials/lang.js 2012-02-22 01:51:24 UTC (rev 1692)
@@ -0,0 +1,17 @@
+// NOTE: add confLang() in each SVG like in: function f(){confLang();var g=a.getFrameIndex();
+// Also see the idLangList array defined in each SVG. Is a list of ids/langs
+
+function confLang() {
+ var hs = window.location.hash;
+ if (typeof(hs)=='string') {
+ lang = hs.slice(1)
+ if (isNaN(lang)) {
+ for (var i = 0; i < idLangList.length; i ++) {
+ // We show the layer id that match that lang
+ document.getElementById(idLangList[i].id).style.display =
+ idLangList[i].layer === lang ? 'inline' : 'none';
+ }
+ window.location.hash = "";
+ }
+ }
+}
1
0
21 Feb '12
Author: vjrj_
Date: 2012-02-21 17:49:14 +0100 (Tue, 21 Feb 2012)
New Revision: 1691
Modified:
trunk/src/main/java/cc/kune/gspace/client/actions/ParticipateInContentBtn.java
Log:
minor i18n change
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/ParticipateInContentBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/ParticipateInContentBtn.java 2012-02-21 01:03:05 UTC (rev 1690)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/ParticipateInContentBtn.java 2012-02-21 16:49:14 UTC (rev 1691)
@@ -76,7 +76,7 @@
final IsCurrentStateEditableCondition isEditable,
final IsNotParticipantOfCurrentStateCondition isNotParticipant, final CoreResources res) {
super(action);
- this.withText(i18n.t("Participate")).withToolTip("Participate in the edition of this page").withIcon(
+ this.withText(i18n.t("Participate")).withToolTip(i18n.t("Participate in the edition of this page")).withIcon(
res.contentEdit()).withStyles("k-def-docbtn, k-fl");
super.add(isLogged);
super.add(isEditable);
1
0
r1690 - in trunk/src/main/java/cc/kune: core/client/errors core/client/rpcservices events/client/actions events/client/viewer
by Vicente J. Ruiz Jurado 21 Feb '12
by Vicente J. Ruiz Jurado 21 Feb '12
21 Feb '12
Author: vjrj_
Date: 2012-02-21 02:03:05 +0100 (Tue, 21 Feb 2012)
New Revision: 1690
Modified:
trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java
trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.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/CalendarViewer.java
trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.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/errors/ErrorHandler.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java 2012-02-20 23:38:46 UTC (rev 1689)
+++ trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java 2012-02-21 01:03:05 UTC (rev 1690)
@@ -131,6 +131,9 @@
logException(caught);
eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.info,
i18n.t("You are trying to move this to the same location")));
+ } else if (caught instanceof NameNotPermittedException) {
+ logException(caught);
+ eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.info, i18n.t("This name is not permitted")));
} else if (caught instanceof UnderDevelopmentException) {
logException(caught);
eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.info, i18n.t(TextUtils.IN_DEVELOPMENT)));
Modified: trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java 2012-02-20 23:38:46 UTC (rev 1689)
+++ trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java 2012-02-21 01:03:05 UTC (rev 1690)
@@ -47,13 +47,15 @@
StateContainerDTO addFolder(String hash, StateToken parentToken, String typeId, String title)
throws DefaultException;
- void addGadgetToContent(String userHash, StateToken currentStateToken, String gadgetName);
+ void addGadgetToContent(String userHash, StateToken currentStateToken, String gadgetName)
+ throws DefaultException;;
StateContentDTO addNewContentWithGadget(String userHash, StateToken currentStateToken,
- String gadgetName, String typeId, String title, String body);
+ String gadgetName, String typeId, String title, String body) throws DefaultException;;
StateContentDTO addNewContentWithGadgetAndState(String userHash, StateToken currentStateToken,
- String gadgetName, String typeId, String tile, String body, Map<String, String> gadgetState);
+ String gadgetName, String typeId, String tile, String body, Map<String, String> gadgetState)
+ throws DefaultException;
void addParticipant(String userHash, StateToken token, String participant) throws DefaultException;
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-20 23:38:46 UTC (rev 1689)
+++ trunk/src/main/java/cc/kune/events/client/actions/EventAddMenuItem.java 2012-02-21 01:03:05 UTC (rev 1690)
@@ -1,5 +1,7 @@
package cc.kune.events.client.actions;
+import java.util.Date;
+
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.client.ui.dialogs.PromptTopDialog;
@@ -10,6 +12,7 @@
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.shared.SessionConstants;
import cc.kune.core.shared.dto.AccessRolDTO;
import cc.kune.core.shared.dto.StateContentDTO;
import cc.kune.events.client.viewer.CalendarViewer;
@@ -17,11 +20,14 @@
import cc.kune.events.shared.EventsConversionUtil;
import com.bradrydzewski.gwt.calendar.client.Appointment;
+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.inject.Inject;
import com.google.inject.Provider;
+import com.google.inject.Singleton;
+@Singleton
public class EventAddMenuItem extends MenuItemDescriptor {
public static class EventAddAction extends RolAction {
private final Provider<CalendarViewer> calendar;
@@ -54,21 +60,31 @@
@Override
public void onClick(final ClickEvent event) {
if (dialog.isValid()) {
+
final String title = dialog.getTextFieldValue();
- final Appointment app = calendar.get().addAppointment(title,
- calendar.get().getOnOverDate());
+ final Date onOverDate = calendar.get().getOnOverDate();
+ final Appointment appt = new Appointment();
+ appt.setStart(onOverDate);
+ // http://stackoverflow.com/questions/2527845/how-to-do-calendar-operations-in…
+ final Date endDate = new Date(onOverDate.getTime() + SessionConstants._AN_HOUR);
+ appt.setEnd(endDate);
+ appt.setTitle(title);
+ appt.setStyle(AppointmentStyle.ORANGE);
+
contService.get().addNewContentWithGadgetAndState(session.getUserHash(),
session.getContainerState().getStateToken(),
- EventsConstants.TYPE_MEETING_DEF_GADGETNAME, EventsConstants.TYPE_MEETING, "", title,
- EventsConversionUtil.toMap(app), new AsyncCallbackSimple<StateContentDTO>() {
+ EventsConstants.TYPE_MEETING_DEF_GADGETNAME, EventsConstants.TYPE_MEETING, title,
+ title, EventsConversionUtil.toMap(appt), new AsyncCallbackSimple<StateContentDTO>() {
@Override
public void onFailure(final Throwable caught) {
super.onFailure(caught);
- // FIXME, remove appointment
}
@Override
public void onSuccess(final StateContentDTO result) {
+ appt.setId(result.getStateToken().toString());
+ // Should this be used or serialize from server side?
+ calendar.get().addAppointment(appt);
}
});
dialog.hide();
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-20 23:38:46 UTC (rev 1689)
+++ trunk/src/main/java/cc/kune/events/client/actions/EventEditMenuItem.java 2012-02-21 01:03:05 UTC (rev 1690)
@@ -2,12 +2,11 @@
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.shared.i18n.I18nTranslationService;
-import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.actions.RolAction;
import cc.kune.core.client.resources.nav.NavResources;
+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;
@@ -15,19 +14,23 @@
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 EventEditMenuItem extends MenuItemDescriptor {
public static class EventEditAction extends RolAction {
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 Provider<CalendarViewer> calendar, final EventBus eventBus, final StateManager stateManager) {
super(AccessRolDTO.Administrator, true);
this.i18n = i18n;
this.calendar = calendar;
+ this.stateManager = stateManager;
withText(i18n.t("Edit the appointment")).withIcon(res.go());
eventBus.addHandler(CalendarStateChangeEvent.getType(),
new CalendarStateChangeEvent.CalendarStateChangeHandler() {
@@ -41,7 +44,7 @@
@Override
public void actionPerformed(final ActionEvent event) {
- NotifyUser.info(i18n.t(TextUtils.IN_DEVELOPMENT));
+ stateManager.gotoHistoryToken(calendar.get().getAppToEdit().getId());
}
}
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-20 23:38:46 UTC (rev 1689)
+++ trunk/src/main/java/cc/kune/events/client/actions/EventRemoveMenuItem.java 2012-02-21 01:03:05 UTC (rev 1690)
@@ -15,7 +15,9 @@
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 EventRemoveMenuItem extends MenuItemDescriptor {
public static class EventEditAction extends RolAction {
private final Provider<CalendarViewer> calendar;
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-20 23:38:46 UTC (rev 1689)
+++ trunk/src/main/java/cc/kune/events/client/actions/EventsClientActions.java 2012-02-21 01:03:05 UTC (rev 1690)
@@ -68,6 +68,8 @@
actionsRegistry.addAction(ActionGroups.TOOLBAR, cal7DaysBtn, containers);
actionsRegistry.addAction(ActionGroups.TOOLBAR, calMonthBtn, containers);
actionsRegistry.addAction(ActionGroups.TOOLBAR, calNextBtn, containers);
+ actionsRegistry.addAction(ActionGroups.TOOLBAR, participateBtn, contents);
+ actionsRegistry.addAction(ActionGroups.TOOLBAR, folderGoUp, contents);
// On over calendar menu
actionsRegistry.addAction(ActionGroups.TOOLBAR, onOverMenu, containers);
@@ -78,9 +80,6 @@
// For now, commented:
// actionsRegistry.addAction(ActionGroups.TOOLBAR, newMeetingsBtn,
// containers);
- // actionsRegistry.addAction(ActionGroups.TOOLBAR, participateBtn,
- // contents);
- // actionsRegistry.addAction(ActionGroups.TOOLBAR, folderGoUp, all);
// actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem,
// contents);
// actionsRegistry.addAction(ActionGroups.ITEM_MENU, openContentMenuItem,
Modified: trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewer.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewer.java 2012-02-20 23:38:46 UTC (rev 1689)
+++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewer.java 2012-02-21 01:03:05 UTC (rev 1690)
@@ -10,7 +10,7 @@
public interface CalendarViewer extends ContentViewer {
public static final Appointment NO_APPOINT = new Appointment();
- Appointment addAppointment(String description, Date onDate);
+ void addAppointment(Appointment appt);
void decrement();
@@ -32,6 +32,8 @@
void increment();
+ void removeAppointment(Appointment app);
+
void setDate(Date date);
void setView(CalendarViews view);
Modified: trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2012-02-20 23:38:46 UTC (rev 1689)
+++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2012-02-21 01:03:05 UTC (rev 1690)
@@ -9,14 +9,12 @@
import cc.kune.core.client.dnd.KuneDragController;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.client.resources.CoreResources;
-import cc.kune.core.shared.SessionConstants;
import cc.kune.events.client.viewer.CalendarViewerPresenter.CalendarViewerView;
import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.gspace.client.viewers.AbstractFolderViewerPanel;
import cc.kune.gspace.client.viewers.items.FolderItemDescriptor;
import com.bradrydzewski.gwt.calendar.client.Appointment;
-import com.bradrydzewski.gwt.calendar.client.AppointmentStyle;
import com.bradrydzewski.gwt.calendar.client.Calendar;
import com.bradrydzewski.gwt.calendar.client.CalendarViews;
import com.bradrydzewski.gwt.calendar.client.event.CreateHandler;
@@ -75,21 +73,6 @@
}
@Override
- public Appointment addAppointment(final String title, final Date date) {
- // Should this be used or serialize from server side?
- final Appointment appt = new Appointment();
- appt.setStart(date);
- // http://stackoverflow.com/questions/2527845/how-to-do-calendar-operations-in…
- final Date endDate = new Date(date.getTime() + SessionConstants._AN_HOUR + SessionConstants._AN_HOUR
- / 2);
- appt.setEnd(endDate);
- appt.setTitle(title);
- appt.setStyle(AppointmentStyle.ORANGE);
- calendar.addAppointment(appt);
- return appt;
- }
-
- @Override
public void addAppointments(final ArrayList<Appointment> appointments) {
calendar.addAppointments(appointments);
}
@@ -157,6 +140,12 @@
}
@Override
+ public void detach() {
+ super.detach();
+
+ }
+
+ @Override
public void doLayout() {
calendar.doLayout();
}
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-20 23:38:46 UTC (rev 1689)
+++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPresenter.java 2012-02-21 01:03:05 UTC (rev 1690)
@@ -59,7 +59,8 @@
HasUpdateHandlers<Appointment>, HasDateRequestHandlers<Date>, HasMouseOverHandlers<Appointment>,
HasLayout, HasAppointments, AbstractFolderViewerView {
- Appointment addAppointment(String title, Date date);
+ @Override
+ void addAppointment(Appointment app);
HandlerRegistration addClickHandler(ClickHandler clickHandler);
@@ -73,6 +74,9 @@
void goToday();
+ @Override
+ void removeAppointment(Appointment app);
+
void setDate(Date date);
void setView(CalendarViews view);
@@ -108,8 +112,8 @@
}
@Override
- public Appointment addAppointment(final String description, final Date onDate) {
- return getView().addAppointment(description, onDate);
+ public void addAppointment(final Appointment app) {
+ getView().addAppointment(app);
}
private void addListeners() {
@@ -219,6 +223,11 @@
}
@Override
+ public void removeAppointment(final Appointment app) {
+ getView().removeAppointment(app);
+ }
+
+ @Override
protected void revealInParent() {
RevealRootContentEvent.fire(this, this);
}
1
0
Author: vjrj_
Date: 2012-02-21 00:38:46 +0100 (Tue, 21 Feb 2012)
New Revision: 1689
Added:
trunk/src/main/java/cc/kune/common/shared/res/
trunk/src/main/java/cc/kune/common/shared/res/ICalConstants.java
trunk/src/main/java/cc/kune/common/shared/utils/Pair.java
trunk/src/main/java/cc/kune/common/shared/utils/SimpleArgCallback.java
trunk/src/main/java/cc/kune/common/shared/utils/SimpleCallback.java
trunk/src/main/java/cc/kune/common/shared/utils/SimpleResponseCallback.java
trunk/src/main/java/cc/kune/events/shared/DateUtils.java
trunk/src/main/java/cc/kune/events/shared/EventsConversionUtil.java
trunk/src/test/java/cc/kune/events/shared/
trunk/src/test/java/cc/kune/events/shared/BasicCalendarTest.java
trunk/src/test/java/cc/kune/events/shared/EventsConversionUtilTest.java
trunk/war/
Removed:
trunk/src/main/java/cc/kune/common/client/utils/Pair.java
trunk/src/main/java/cc/kune/common/client/utils/SimpleCallback.java
trunk/src/main/java/cc/kune/common/client/utils/SimpleResponseCallback.java
Modified:
trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
trunk/src/main/java/cc/kune/chat/client/actions/ChatAboutContentBtn.java
trunk/src/main/java/cc/kune/chat/client/actions/StartAssemblyWithMembersAction.java
trunk/src/main/java/cc/kune/common/client/notify/ConfirmAskEvent.java
trunk/src/main/java/cc/kune/common/client/notify/NotifyUser.java
trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java
trunk/src/main/java/cc/kune/common/client/tooltip/TooltipPositionCalculator.java
trunk/src/main/java/cc/kune/common/client/ui/EditableLabel.java
trunk/src/main/java/cc/kune/common/client/utils/OnAcceptCallback.java
trunk/src/main/java/cc/kune/common/shared/i18n/I18nTranslationService.java
trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java
trunk/src/main/java/cc/kune/core/client/init/AppStarterDefault.java
trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java
trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java
trunk/src/main/java/cc/kune/core/client/sn/actions/AddEntityToThisGroupAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/AddNewBuddiesAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/JoinGroupAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToAction.java
trunk/src/main/java/cc/kune/core/client/state/TokenMatcher.java
trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java
trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java
trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java
trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
trunk/src/main/java/cc/kune/core/server/content/CreationService.java
trunk/src/main/java/cc/kune/core/server/content/CreationServiceDefault.java
trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/KuneWaveManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
trunk/src/main/java/cc/kune/core/server/notifier/NotificationSenderDefault.java
trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
trunk/src/main/java/cc/kune/events/KuneEvents.gwt.xml
trunk/src/main/java/cc/kune/events/client/actions/EventAddMenuItem.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/events/server/CalendarServerUtils.java
trunk/src/main/java/cc/kune/events/shared/EventsConstants.java
trunk/src/main/java/cc/kune/gspace/client/actions/GiveUsFeedbackAction.java
trunk/src/main/java/cc/kune/gspace/client/i18n/AbstractLanguageSelectorPanel.java
trunk/src/main/java/cc/kune/gspace/client/i18n/I18nCellList.java
trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslationDataProvider.java
trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslatorPanel.java
trunk/src/main/java/cc/kune/gspace/client/licensewizard/LicenseChangeAction.java
trunk/src/main/java/cc/kune/gspace/client/licensewizard/LicenseWizardPresenter.java
trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFirstForm.java
trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFirstFormView.java
trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFrdForm.java
trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFrdFormView.java
trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardTrdForm.java
trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardTrdFormView.java
trunk/src/main/java/cc/kune/gspace/client/options/license/EntityOptDefLicensePresenter.java
trunk/src/main/java/cc/kune/wave/server/kspecific/KuneAgent.java
trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveService.java
trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveServiceDefault.java
trunk/src/main/resources/wave-server-testing.properties
trunk/src/main/resources/wave-server.properties
trunk/src/test/java/cc/kune/events/server/CalendarServerUtilsTest.java
trunk/src/test/java/cc/kune/wave/server/KuneAgentTest.java
trunk/src/test/java/cc/kune/wave/server/KuneWaveServiceDefaultTest.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/chat/client/ChatClientDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -36,9 +36,9 @@
import cc.kune.common.client.log.Log;
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
-import cc.kune.common.client.utils.SimpleResponseCallback;
import cc.kune.common.client.utils.WindowUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.SimpleResponseCallback;
import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.events.AppStartEvent;
import cc.kune.core.client.events.AppStopEvent;
Modified: trunk/src/main/java/cc/kune/chat/client/actions/ChatAboutContentBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/ChatAboutContentBtn.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/chat/client/actions/ChatAboutContentBtn.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -23,8 +23,8 @@
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.utils.SimpleResponseCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.SimpleResponseCallback;
import cc.kune.core.client.actions.RolAction;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.state.Session;
Modified: trunk/src/main/java/cc/kune/chat/client/actions/StartAssemblyWithMembersAction.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/StartAssemblyWithMembersAction.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/chat/client/actions/StartAssemblyWithMembersAction.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -26,8 +26,8 @@
import cc.kune.chat.client.resources.ChatResources;
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.SimpleResponseCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.SimpleResponseCallback;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.ContentServiceAsync;
import cc.kune.core.client.state.AccessRightsClientManager;
Modified: trunk/src/main/java/cc/kune/common/client/notify/ConfirmAskEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/notify/ConfirmAskEvent.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/common/client/notify/ConfirmAskEvent.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -45,7 +45,7 @@
final java.lang.String message, final java.lang.String acceptBtnMsg,
final java.lang.String cancelBtnMsg, final java.lang.String acceptBtnTooltip,
final java.lang.String cancelBtnTooltip,
- final cc.kune.common.client.utils.SimpleResponseCallback callback) {
+ final cc.kune.common.shared.utils.SimpleResponseCallback callback) {
source.fireEvent(new ConfirmAskEvent(title, message, acceptBtnMsg, cancelBtnMsg, acceptBtnTooltip,
cancelBtnTooltip, callback));
}
@@ -56,7 +56,7 @@
java.lang.String acceptBtnMsg;
java.lang.String acceptBtnTooltip;
- cc.kune.common.client.utils.SimpleResponseCallback callback;
+ cc.kune.common.shared.utils.SimpleResponseCallback callback;
java.lang.String cancelBtnMsg;
java.lang.String cancelBtnTooltip;
ImageResource icon;
@@ -70,7 +70,7 @@
public ConfirmAskEvent(final ImageResource icon, final java.lang.String title,
final java.lang.String message, final java.lang.String acceptBtnMsg,
final java.lang.String cancelBtnMsg,
- final cc.kune.common.client.utils.SimpleResponseCallback callback) {
+ final cc.kune.common.shared.utils.SimpleResponseCallback callback) {
this(title, message, acceptBtnMsg, cancelBtnMsg, acceptBtnMsg, cancelBtnMsg, callback);
this.icon = icon;
}
@@ -79,7 +79,7 @@
final java.lang.String message, final java.lang.String acceptBtnMsg,
final java.lang.String cancelBtnMsg, final java.lang.String acceptBtnTooltip,
final java.lang.String cancelBtnTooltip,
- final cc.kune.common.client.utils.SimpleResponseCallback callback) {
+ final cc.kune.common.shared.utils.SimpleResponseCallback callback) {
this(title, message, acceptBtnMsg, cancelBtnMsg, acceptBtnTooltip, cancelBtnTooltip, callback);
this.icon = icon;
}
@@ -90,7 +90,7 @@
public ConfirmAskEvent(final java.lang.String title, final java.lang.String message,
final java.lang.String acceptBtnMsg, final java.lang.String cancelBtnMsg,
- final cc.kune.common.client.utils.SimpleResponseCallback callback) {
+ final cc.kune.common.shared.utils.SimpleResponseCallback callback) {
this.title = title;
this.message = message;
this.acceptBtnMsg = acceptBtnMsg;
@@ -101,7 +101,7 @@
public ConfirmAskEvent(final java.lang.String title, final java.lang.String message,
final java.lang.String acceptBtnMsg, final java.lang.String cancelBtnMsg,
final java.lang.String acceptBtnTooltip, final java.lang.String cancelBtnTooltip,
- final cc.kune.common.client.utils.SimpleResponseCallback callback) {
+ final cc.kune.common.shared.utils.SimpleResponseCallback callback) {
this(title, message, acceptBtnMsg, cancelBtnMsg, callback);
this.acceptBtnTooltip = acceptBtnTooltip;
this.cancelBtnTooltip = cancelBtnTooltip;
@@ -189,7 +189,7 @@
return TYPE;
}
- public cc.kune.common.client.utils.SimpleResponseCallback getCallback() {
+ public cc.kune.common.shared.utils.SimpleResponseCallback getCallback() {
return callback;
}
Modified: trunk/src/main/java/cc/kune/common/client/notify/NotifyUser.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/notify/NotifyUser.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/common/client/notify/NotifyUser.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -19,8 +19,8 @@
*/
package cc.kune.common.client.notify;
-import cc.kune.common.client.utils.SimpleResponseCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.SimpleResponseCallback;
import cc.kune.common.shared.utils.TextUtils;
import com.google.gwt.event.dom.client.ClickHandler;
Modified: trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -62,10 +62,7 @@
}
}
- public static Tooltip to(final Widget widget, final String text) {
- final Tooltip tip = new Tooltip();
- tip.to(widget);
- tip.setText(text);
+ private static void setHideOnDetachListener(final Widget widget, final Tooltip tip) {
widget.addAttachHandler(new Handler() {
@Override
public void onAttachOrDetach(final AttachEvent event) {
@@ -73,8 +70,14 @@
tip.hide();
}
}
+ });
+ }
- });
+ public static Tooltip to(final Widget widget, final String text) {
+ final Tooltip tip = new Tooltip();
+ tip.to(widget);
+ tip.setText(text);
+ setHideOnDetachListener(widget, tip);
return tip;
}
@@ -82,8 +85,10 @@
final Tooltip tip = new Tooltip();
tip.to(widget);
tip.setContent(withContent);
+ setHideOnDetachListener(widget, tip);
return tip;
}
+
@UiField
HTMLPanel arrow;
@UiField
@@ -96,13 +101,10 @@
private Widget ofWidget;
private final Label textLabel;
private final TooltipTimers timers;
-
@UiField
InlineLabel title;
-
@UiField
HTMLPanel tooltip;
-
private int width = WIDTH_NOT_DEFINED;
public Tooltip() {
@@ -131,6 +133,12 @@
textLabel = new Label();
}
+ private TooltipPosition calculatePosition() {
+ return TooltipPositionCalculator.calculate(Window.getClientWidth(), Window.getClientHeight(),
+ ofWidget.getAbsoluteLeft(), ofWidget.getAbsoluteTop(), ofWidget.getOffsetWidth(),
+ ofWidget.getOffsetHeight(), Tooltip.this.getWidth(), Tooltip.this.getHeight());
+ }
+
protected int getHeight() {
return tooltip.getElement().getOffsetHeight();
}
@@ -193,10 +201,7 @@
}
private void showAt() {
- Tooltip.this.showAt(TooltipPositionCalculator.calculate(Window.getClientWidth(),
- Window.getClientHeight(), ofWidget.getAbsoluteLeft(), ofWidget.getAbsoluteTop(),
- ofWidget.getOffsetWidth(), ofWidget.getOffsetHeight(), Tooltip.this.getWidth(),
- Tooltip.this.getHeight()));
+ Tooltip.this.showAt(calculatePosition());
}
protected void showAt(final TooltipPosition position) {
Modified: trunk/src/main/java/cc/kune/common/client/tooltip/TooltipPositionCalculator.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/tooltip/TooltipPositionCalculator.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/common/client/tooltip/TooltipPositionCalculator.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -26,15 +26,9 @@
public static TooltipPosition calculate(final int windowWitdh, final int windowHeight,
final int widgetLeft, final int widgetTop, final int widgetWidth, final int widgetHeight,
final int tooltipWidth, final int tooltipHeight) {
- // GWT.log("ww: " + windowWitdh + " wh: " + windowHeight + " widL: " +
- // widgetLeft + " widT: " + widgetTop
- // + " widW: " + widgetWidth + " widH: " + widgetHeight + " tW: " +
- // tooltipWidth + " tH: " + tooltipHeight);
final boolean overflowsWidth = overflowsWidth(windowWitdh, widgetLeft, tooltipWidth);
final boolean overflowsHeight = overflowsHeight(windowHeight, widgetTop, tooltipHeight);
- // GWT.log("ow: " + overflowsWidth + " oH: " + overflowsHeight);
if (overflowsWidth && overflowsHeight) {
- // esta es mezcla de las anteriores (y falta)
return new TooltipPosition(leftOverflow(widgetLeft, widgetWidth, tooltipWidth), widgetTop
- tooltipHeight - TooltipPosition.TOOLTIP_DISTANCE, ArrowPosition.SE,
leftArrowOverflow(tooltipWidth), -2 * TooltipPosition.ARROW_SIZE);
@@ -46,13 +40,6 @@
return new TooltipPosition(leftOverflow(widgetLeft, widgetWidth, tooltipWidth), topNoOverflow(
widgetTop, widgetHeight), ArrowPosition.NE, leftArrowOverflow(tooltipWidth), -2
* TooltipPosition.ARROW_SIZE - 1);
- // 10 in the border width
- // } else if (overflowsHeight) {
- //
- // return new TooltipPosition(onTopPositionTop(widgetLeft, widgetWidth),
- // widgetTop - tooltipHeight
- // - TooltipPosition.TOOLTIP_DISTANCE, ArrowPosition.SW,
- // TooltipPosition.ARROW_DEF_MARGIN, 0);
} else {
// Don't overflow
return new TooltipPosition(leftNoOverflow(widgetLeft), topNoOverflow(widgetTop, widgetHeight),
@@ -72,10 +59,6 @@
return widgetLeft + widgetWidth - tooltipWidth - TooltipPosition.TOOLTIP_DISTANCE;
}
- private static int onTopPositionTop(final int widgetTop, final int widgetHeight) {
- return topNoOverflow(widgetTop, widgetHeight);
- }
-
private static boolean overflowsHeight(final int windowHeight, final int widgetTop,
final int tooltipHeight) {
return widgetTop + TooltipPosition.TOOLTIP_DISTANCE + tooltipHeight > windowHeight;
Modified: trunk/src/main/java/cc/kune/common/client/ui/EditableLabel.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/EditableLabel.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/common/client/ui/EditableLabel.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -21,7 +21,7 @@
import cc.kune.common.client.tooltip.Tooltip;
import cc.kune.common.client.ui.EditEvent.EditHandler;
-import cc.kune.common.client.utils.SimpleCallback;
+import cc.kune.common.shared.utils.SimpleCallback;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.BlurEvent;
Modified: trunk/src/main/java/cc/kune/common/client/utils/OnAcceptCallback.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/utils/OnAcceptCallback.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/common/client/utils/OnAcceptCallback.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -20,6 +20,7 @@
package cc.kune.common.client.utils;
import cc.kune.common.client.log.Log;
+import cc.kune.common.shared.utils.SimpleResponseCallback;
public abstract class OnAcceptCallback implements SimpleResponseCallback {
Deleted: trunk/src/main/java/cc/kune/common/client/utils/Pair.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/utils/Pair.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/common/client/utils/Pair.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -1,86 +0,0 @@
-/*
- * Copyright 2008 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package cc.kune.common.client.utils;
-
-/**
- * @param <L>
- * @param <R>
- */
-public final class Pair<L, R> {
- public static <L, R> Pair<L, R> create(final L l, final R r) {
- return new Pair<L, R>(l, r);
- }
-
- public final L left;
- public final R right;
-
- private Pair(final L left, final R right) {
- this.left = left;
- this.right = right;
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public boolean equals(final Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- final Pair other = (Pair) obj;
- if (left == null) {
- if (other.left != null) {
- return false;
- }
- } else if (!left.equals(other.left)) {
- return false;
- }
- if (right == null) {
- if (other.right != null) {
- return false;
- }
- } else if (!right.equals(other.right)) {
- return false;
- }
- return true;
- }
-
- public L getLeft() {
- return left;
- }
-
- public R getRight() {
- return right;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((left == null) ? 0 : left.hashCode());
- result = prime * result + ((right == null) ? 0 : right.hashCode());
- return result;
- }
-
- @Override
- public String toString() {
- return "(" + left + "," + right + ")";
- }
-}
Deleted: trunk/src/main/java/cc/kune/common/client/utils/SimpleCallback.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/utils/SimpleCallback.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/common/client/utils/SimpleCallback.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -1,27 +0,0 @@
-/*
- *
- * 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.common.client.utils;
-
-public interface SimpleCallback {
- /**
- * Notifies this callback
- */
- void onCallback();
-}
Deleted: trunk/src/main/java/cc/kune/common/client/utils/SimpleResponseCallback.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/utils/SimpleResponseCallback.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/common/client/utils/SimpleResponseCallback.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -1,32 +0,0 @@
-/*
- *
- * 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.common.client.utils;
-
-public interface SimpleResponseCallback {
- /**
- * Notifies this callback of an accept response.
- */
- void onSuccess();
-
- /**
- * Notifies this callback of a cancel.
- */
- void onCancel();
-}
Modified: trunk/src/main/java/cc/kune/common/shared/i18n/I18nTranslationService.java
===================================================================
--- trunk/src/main/java/cc/kune/common/shared/i18n/I18nTranslationService.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/common/shared/i18n/I18nTranslationService.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -19,7 +19,7 @@
*/
package cc.kune.common.shared.i18n;
-import cc.kune.common.client.utils.Pair;
+import cc.kune.common.shared.utils.Pair;
import com.google.gwt.i18n.client.HasDirection.Direction;
Added: trunk/src/main/java/cc/kune/common/shared/res/ICalConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/common/shared/res/ICalConstants.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/shared/res/ICalConstants.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -0,0 +1,13 @@
+package cc.kune.common.shared.res;
+
+public class ICalConstants {
+ /* Note that all day events is not supported by ICalendar */
+ public static final String _ALL_DAY = "ALLDAY";
+ // VTIMEZONE ?? See: TimeZoneConstants in GWT for names and values
+ public static final String DATE_TIME_END = "DTEND";
+ public static final String DATE_TIME_START = "DTSTART";
+ public static final String DESCRIPTION = "DESCRIPTION";
+ public static final String LOCATION = "LOCATION";
+ public static final String ORGANIZER = "ORGANIZER";
+ public static final String SUMMARY = "SUMMARY";
+}
\ No newline at end of file
Copied: trunk/src/main/java/cc/kune/common/shared/utils/Pair.java (from rev 1676, trunk/src/main/java/cc/kune/common/client/utils/Pair.java)
===================================================================
--- trunk/src/main/java/cc/kune/common/shared/utils/Pair.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/shared/utils/Pair.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package cc.kune.common.shared.utils;
+
+/**
+ * @param <L>
+ * @param <R>
+ */
+public final class Pair<L, R> {
+ public static <L, R> Pair<L, R> create(final L l, final R r) {
+ return new Pair<L, R>(l, r);
+ }
+
+ public final L left;
+ public final R right;
+
+ private Pair(final L left, final R right) {
+ this.left = left;
+ this.right = right;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ final Pair other = (Pair) obj;
+ if (left == null) {
+ if (other.left != null) {
+ return false;
+ }
+ } else if (!left.equals(other.left)) {
+ return false;
+ }
+ if (right == null) {
+ if (other.right != null) {
+ return false;
+ }
+ } else if (!right.equals(other.right)) {
+ return false;
+ }
+ return true;
+ }
+
+ public L getLeft() {
+ return left;
+ }
+
+ public R getRight() {
+ return right;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((left == null) ? 0 : left.hashCode());
+ result = prime * result + ((right == null) ? 0 : right.hashCode());
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return "(" + left + "," + right + ")";
+ }
+}
Added: trunk/src/main/java/cc/kune/common/shared/utils/SimpleArgCallback.java
===================================================================
--- trunk/src/main/java/cc/kune/common/shared/utils/SimpleArgCallback.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/shared/utils/SimpleArgCallback.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -0,0 +1,9 @@
+package cc.kune.common.shared.utils;
+
+public interface SimpleArgCallback<T> {
+
+ /**
+ * Notifies this callback
+ */
+ void onCallback(T arg);
+}
Copied: trunk/src/main/java/cc/kune/common/shared/utils/SimpleCallback.java (from rev 1676, trunk/src/main/java/cc/kune/common/client/utils/SimpleCallback.java)
===================================================================
--- trunk/src/main/java/cc/kune/common/shared/utils/SimpleCallback.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/shared/utils/SimpleCallback.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.common.shared.utils;
+
+public interface SimpleCallback {
+
+ public static final SimpleCallback DO_NOTHING = new SimpleCallback() {
+ @Override
+ public void onCallback() {
+ }
+ };
+
+ /**
+ * Notifies this callback
+ */
+ void onCallback();
+}
Copied: trunk/src/main/java/cc/kune/common/shared/utils/SimpleResponseCallback.java (from rev 1676, trunk/src/main/java/cc/kune/common/client/utils/SimpleResponseCallback.java)
===================================================================
--- trunk/src/main/java/cc/kune/common/shared/utils/SimpleResponseCallback.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/shared/utils/SimpleResponseCallback.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -0,0 +1,32 @@
+/*
+ *
+ * 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.common.shared.utils;
+
+public interface SimpleResponseCallback {
+ /**
+ * Notifies this callback of an accept response.
+ */
+ void onSuccess();
+
+ /**
+ * Notifies this callback of a cancel.
+ */
+ void onCancel();
+}
Modified: trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -30,10 +30,10 @@
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.client.utils.Location;
import cc.kune.common.client.utils.MetaUtils;
-import cc.kune.common.client.utils.Pair;
-import cc.kune.common.client.utils.SimpleResponseCallback;
import cc.kune.common.client.utils.WindowUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.Pair;
+import cc.kune.common.shared.utils.SimpleResponseCallback;
import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.events.UserSignInEvent;
import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
Modified: trunk/src/main/java/cc/kune/core/client/init/AppStarterDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/init/AppStarterDefault.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/client/init/AppStarterDefault.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -25,7 +25,7 @@
import cc.kune.common.client.notify.ProgressHideEvent;
import cc.kune.common.client.notify.UserNotifyEvent;
import cc.kune.common.client.resources.CommonResources;
-import cc.kune.common.client.utils.SimpleResponseCallback;
+import cc.kune.common.shared.utils.SimpleResponseCallback;
import cc.kune.core.client.events.AppStartEvent;
import cc.kune.core.client.events.AppStopEvent;
import cc.kune.core.client.rpcservices.SiteServiceAsync;
Modified: trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/client/rpcservices/ContentService.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -20,6 +20,7 @@
package cc.kune.core.client.rpcservices;
import java.util.Date;
+import java.util.Map;
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.shared.domain.ContentStatus;
@@ -51,6 +52,9 @@
StateContentDTO addNewContentWithGadget(String userHash, StateToken currentStateToken,
String gadgetName, String typeId, String title, String body);
+ StateContentDTO addNewContentWithGadgetAndState(String userHash, StateToken currentStateToken,
+ String gadgetName, String typeId, String tile, String body, Map<String, String> gadgetState);
+
void addParticipant(String userHash, StateToken token, String participant) throws DefaultException;
StateContainerDTO addRoom(String user, StateToken parentToken, String name) throws DefaultException;
Modified: trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/client/rpcservices/ContentServiceAsync.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -20,6 +20,7 @@
package cc.kune.core.client.rpcservices;
import java.util.Date;
+import java.util.Map;
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.shared.domain.ContentStatus;
@@ -51,6 +52,10 @@
void addNewContentWithGadget(String userHash, StateToken currentStateToken, String gadgetName,
String typeId, String title, String body, AsyncCallback<StateContentDTO> asyncCallback);
+ void addNewContentWithGadgetAndState(String userHash, StateToken currentStateToken, String gadgetName,
+ String typeId, String title, String body, Map<String, String> gadgetState,
+ AsyncCallback<StateContentDTO> callback);
+
void addParticipant(String userHash, StateToken token, String authorShortName,
AsyncCallback<Void> asyncCallback) throws DefaultException;
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/AddEntityToThisGroupAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/AddEntityToThisGroupAction.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/AddEntityToThisGroupAction.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -22,8 +22,8 @@
import cc.kune.common.client.actions.Action;
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.SimpleResponseCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.SimpleResponseCallback;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.SocialNetworkServiceAsync;
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/AddNewBuddiesAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/AddNewBuddiesAction.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/AddNewBuddiesAction.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -23,8 +23,8 @@
import cc.kune.common.client.actions.Action;
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.SimpleResponseCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.SimpleResponseCallback;
import cc.kune.core.client.contacts.SimpleContactManager;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.sitebar.search.EntitySearchPanel;
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/JoinGroupAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/JoinGroupAction.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/JoinGroupAction.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -23,8 +23,8 @@
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.notify.NotifyLevel;
import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.SimpleResponseCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.SimpleResponseCallback;
import cc.kune.core.client.auth.SignIn;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToAction.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToAction.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -23,8 +23,8 @@
import cc.kune.common.client.actions.AbstractExtendedAction;
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.SimpleResponseCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.SimpleResponseCallback;
import cc.kune.core.client.resources.nav.NavResources;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.ContentServiceAsync;
Modified: trunk/src/main/java/cc/kune/core/client/state/TokenMatcher.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/TokenMatcher.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/client/state/TokenMatcher.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -22,7 +22,7 @@
import org.waveprotocol.wave.model.waveref.InvalidWaveRefException;
import org.waveprotocol.wave.model.waveref.WaverefEncoder;
-import cc.kune.common.client.utils.Pair;
+import cc.kune.common.shared.utils.Pair;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.ReservedWordsRegistryDTO;
Modified: trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -29,7 +29,7 @@
import cc.kune.common.client.actions.BeforeActionListener;
import cc.kune.common.client.log.Log;
import cc.kune.common.client.notify.ProgressHideEvent;
-import cc.kune.common.client.utils.Pair;
+import cc.kune.common.shared.utils.Pair;
import cc.kune.core.client.events.AppStartEvent;
import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.events.GoHomeEvent;
Modified: trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -20,7 +20,7 @@
package cc.kune.core.client.sub;
import cc.kune.common.client.utils.Base64Utils;
-import cc.kune.common.client.utils.SimpleCallback;
+import cc.kune.common.shared.utils.SimpleCallback;
import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.state.StateManager;
Modified: trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -24,7 +24,7 @@
import org.adamtacy.client.ui.effects.examples.Show;
import org.adamtacy.client.ui.effects.examples.SlideRight;
-import cc.kune.common.client.utils.SimpleCallback;
+import cc.kune.common.shared.utils.SimpleCallback;
import cc.kune.core.client.sub.SubtitlesManager.SubtitlesView;
import com.google.gwt.core.client.GWT;
Modified: trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -20,8 +20,10 @@
package cc.kune.core.server.content;
import java.net.URL;
+import java.util.Collections;
import java.util.Date;
import java.util.List;
+import java.util.Map;
import javax.persistence.EntityManager;
@@ -119,11 +121,13 @@
protected Content createContent(final String title, final String body, final User author,
final Container container, final String typeId) {
- return createContent(title, body, author, container, typeId, KuneWaveService.WITHOUT_GADGET);
+ return createContent(title, body, author, container, typeId, KuneWaveService.WITHOUT_GADGET,
+ Collections.<String, String> emptyMap());
}
protected Content createContent(final String title, final String body, final User author,
- final Container container, final String typeId, final URL gadgetUrl) {
+ final Container container, final String typeId, final URL gadgetUrl,
+ final Map<String, String> gadgetProperties) {
FilenameUtils.checkBasicFilename(title);
final String newtitle = findInexistentTitle(container, title);
final Content newContent = new Content();
@@ -136,8 +140,9 @@
revision.setTitle(newtitle);
// Duplicate in StateServiceDefault
if (newContent.isWave()) {
- final WaveRef waveRef = kuneWaveManager.createWave(newtitle, body, gadgetUrl,
- participantUtils.of(author.getShortName()));
+ final String authorName = author.getShortName();
+ final WaveRef waveRef = kuneWaveManager.createWave(newtitle, body,
+ KuneWaveService.DO_NOTHING_CBACK, gadgetUrl, gadgetProperties, participantUtils.of(authorName));
newContent.setWaveId(JavaWaverefEncoder.encodeToUriPathSegment(waveRef));
newContent.setModifiedOn((new Date()).getTime());
}
Modified: trunk/src/main/java/cc/kune/core/server/content/CreationService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/CreationService.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/server/content/CreationService.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -19,6 +19,8 @@
*/
package cc.kune.core.server.content;
+import java.util.Map;
+
import cc.kune.domain.Container;
import cc.kune.domain.Content;
import cc.kune.domain.Group;
@@ -35,7 +37,7 @@
String contentTypeId);
Content createGadget(User user, Container container, String gadgetname, String typeId, String title,
- String body);
+ String body, Map<String, String> gadgetProperties);
Container createRootFolder(Group group, String name, String rootName, String typeRoot);
Modified: trunk/src/main/java/cc/kune/core/server/content/CreationServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/CreationServiceDefault.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/server/content/CreationServiceDefault.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -21,6 +21,8 @@
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.Collections;
+import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -72,7 +74,8 @@
tool.checkTypesBeforeContentCreation(container.getTypeId(), typeId);
final URL gagdetUrl = tool instanceof ServerWaveTool ? ((ServerWaveTool) tool).getGadgetUrl()
: KuneWaveService.WITHOUT_GADGET;
- final Content content = contentManager.createContent(title, body, user, container, typeId, gagdetUrl);
+ final Content content = contentManager.createContent(title, body, user, container, typeId,
+ gagdetUrl, Collections.<String, String> emptyMap());
tool.onCreateContent(content, container);
return content;
}
@@ -90,12 +93,13 @@
@Override
public Content createGadget(final User user, final Container container, final String gadgetname,
- final String typeIdChild, final String title, final String body) {
+ final String typeIdChild, final String title, final String body,
+ final Map<String, String> gadgetProperties) {
final String toolName = container.getToolName();
final ServerTool tool = tools.get(toolName);
tool.checkTypesBeforeContentCreation(container.getTypeId(), typeIdChild);
final Content content = contentManager.createContent(title, body, user, container, typeIdChild,
- getGadgetUrl(gadgetname));
+ getGadgetUrl(gadgetname), gadgetProperties);
tool.onCreateContent(content, container);
return content;
}
Modified: trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -19,8 +19,8 @@
*/
package cc.kune.core.server.i18n.impl;
-import cc.kune.common.client.utils.Pair;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.Pair;
import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.server.UserSessionManager;
import cc.kune.core.server.i18n.I18nTranslationServiceMultiLang;
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/KuneWaveManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/KuneWaveManagerDefault.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/KuneWaveManagerDefault.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -71,7 +71,7 @@
for (final String part : participants) {
partIds.add(participantUtils.of(part));
}
- return KuneWaveServerUtils.getUrl(waveService.createWave(title, body,
+ return KuneWaveServerUtils.getUrl(waveService.createWave(title, body, KuneWaveService.DO_NOTHING_CBACK,
partIds.toArray(new ParticipantId[0])));
}
@@ -104,6 +104,7 @@
toList.addAll(group.getSocialNetwork().getAccessLists().getEditors().getList());
}
}
- return KuneWaveServerUtils.getUrl(waveService.createWave(title, message, participantUtils.listFrom(toList)));
+ return KuneWaveServerUtils.getUrl(waveService.createWave(title, message, KuneWaveService.DO_NOTHING_CBACK,
+ participantUtils.listFrom(toList)));
}
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -45,6 +45,7 @@
import org.waveprotocol.wave.model.wave.ParticipantId;
import org.waveprotocol.wave.model.waveref.WaveRef;
+import cc.kune.common.shared.utils.SimpleArgCallback;
import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.client.errors.EmailAddressInUseException;
@@ -266,13 +267,17 @@
if (defWave != null) {
welcome = kuneWaveManager.createWave(
ContentConstants.WELCOME_WAVE_CONTENT_TITLE.replaceAll("\\[%s\\]",
- properties.getDefaultSiteName()), "", defWave, null,
- participantUtils.of(properties.getAdminShortName()), participantUtils.of(shortName));
+ properties.getDefaultSiteName()), "", defWave, new SimpleArgCallback<WaveRef>() {
+ @Override
+ public void onCallback(final WaveRef arg) {
+ // Is this necessary? try to remove (used when we were setting
+ // the def
+ // content
+ // contentManager.save(userGroup.getDefaultContent());
+ askForEmailConfirmation(user, EmailConfirmationType.emailVerification);
+ }
+ }, null, participantUtils.of(properties.getAdminShortName()), participantUtils.of(shortName));
}
- // Is this necessary? try to remove (used when we were setting the def
- // content
- // contentManager.save(userGroup.getDefaultContent());
- askForEmailConfirmation(user, EmailConfirmationType.emailVerification);
return user;
} catch (final RuntimeException e) {
try {
Modified: trunk/src/main/java/cc/kune/core/server/notifier/NotificationSenderDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotificationSenderDefault.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotificationSenderDefault.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -104,7 +104,8 @@
if (isHtml) {
LOG.error("Wave html messages not supported yet");
}
- waveService.createWave(subject.getString(), body.getString(), username);
+ waveService.createWave(subject.getString(), body.getString(), KuneWaveService.DO_NOTHING_CBACK,
+ username);
break;
}
}
Modified: trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -19,7 +19,9 @@
*/
package cc.kune.core.server.rpc;
+import java.util.Collections;
import java.util.Date;
+import java.util.Map;
import javax.persistence.NoResultException;
@@ -158,11 +160,22 @@
public StateContentDTO addNewContentWithGadget(final String userHash, final StateToken parentToken,
final String gadgetname, final String typeId, final String title, final String body)
throws DefaultException {
+ return addNewContentWithGadgetAndState(userHash, parentToken, gadgetname, typeId, title, body,
+ Collections.<String, String> emptyMap());
+ }
+
+ @Override
+ @Authenticated
+ @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
+ @Transactional
+ public StateContentDTO addNewContentWithGadgetAndState(final String userHash,
+ final StateToken parentToken, final String gadgetname, final String typeId, final String title,
+ final String body, final Map<String, String> gadgetProperties) throws DefaultException {
final User user = getCurrentUser();
final Container container = accessService.accessToContainer(
ContentUtils.parseId(parentToken.getFolder()), user, AccessRol.Editor);
final Content addedContent = creationService.createGadget(user, container, gadgetname, typeId,
- title, body);
+ title, body, gadgetProperties);
return getState(user, addedContent);
}
Modified: trunk/src/main/java/cc/kune/events/KuneEvents.gwt.xml
===================================================================
--- trunk/src/main/java/cc/kune/events/KuneEvents.gwt.xml 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/events/KuneEvents.gwt.xml 2012-02-20 23:38:46 UTC (rev 1689)
@@ -5,5 +5,9 @@
<source path="shared"/>
<inherits name='com.bradrydzewski.gwt.calendar.Calendar'/>
<inherits name='com.bradrydzewski.gwt.calendar.theme.google.Google'/>
- <inherits name='com.allen_sauer.gwt.dnd.gwt-dnd'/>
+ <inherits name='com.allen_sauer.gwt.dnd.gwt-dnd'/>
+ <source path='client'
+ excludes="**/*Test.java,**/*Tests.java,**/*MockProvider.java" />
+ <source path='shared'
+ excludes="**/*Test.java,**/*Tests.java,**/*MockProvider.java" />
</module>
\ No newline at end of file
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-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/events/client/actions/EventAddMenuItem.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -2,15 +2,21 @@
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.client.rpcservices.AsyncCallbackSimple;
+import cc.kune.core.client.rpcservices.ContentServiceAsync;
+import cc.kune.core.client.state.Session;
import cc.kune.core.shared.dto.AccessRolDTO;
+import cc.kune.core.shared.dto.StateContentDTO;
import cc.kune.events.client.viewer.CalendarViewer;
+import cc.kune.events.shared.EventsConstants;
+import cc.kune.events.shared.EventsConversionUtil;
+import com.bradrydzewski.gwt.calendar.client.Appointment;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.inject.Inject;
@@ -19,15 +25,20 @@
public class EventAddMenuItem extends MenuItemDescriptor {
public static class EventAddAction extends RolAction {
private final Provider<CalendarViewer> calendar;
+ private final Provider<ContentServiceAsync> contService;
private PromptTopDialog dialog;
private final I18nTranslationService i18n;
+ private final Session session;
@Inject
public EventAddAction(final NavResources res, final I18nTranslationService i18n,
- final Provider<CalendarViewer> calendar) {
+ final Provider<CalendarViewer> calendar, final Provider<ContentServiceAsync> contService,
+ final Session session) {
super(AccessRolDTO.Editor, true);
this.i18n = i18n;
this.calendar = calendar;
+ this.contService = contService;
+ this.session = session;
withText(i18n.t("Add an appointment")).withIcon(res.calendarAdd());
}
@@ -43,8 +54,23 @@
@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)");
+ final String title = dialog.getTextFieldValue();
+ final Appointment app = calendar.get().addAppointment(title,
+ calendar.get().getOnOverDate());
+ contService.get().addNewContentWithGadgetAndState(session.getUserHash(),
+ session.getContainerState().getStateToken(),
+ EventsConstants.TYPE_MEETING_DEF_GADGETNAME, EventsConstants.TYPE_MEETING, "", title,
+ EventsConversionUtil.toMap(app), new AsyncCallbackSimple<StateContentDTO>() {
+ @Override
+ public void onFailure(final Throwable caught) {
+ super.onFailure(caught);
+ // FIXME, remove appointment
+ }
+
+ @Override
+ public void onSuccess(final StateContentDTO result) {
+ }
+ });
dialog.hide();
}
}
Modified: trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewer.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewer.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewer.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -10,7 +10,7 @@
public interface CalendarViewer extends ContentViewer {
public static final Appointment NO_APPOINT = new Appointment();
- void addAppointment(String description, Date onDate);
+ Appointment addAppointment(String description, Date onDate);
void decrement();
Modified: trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -9,6 +9,7 @@
import cc.kune.core.client.dnd.KuneDragController;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.shared.SessionConstants;
import cc.kune.events.client.viewer.CalendarViewerPresenter.CalendarViewerView;
import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.gspace.client.viewers.AbstractFolderViewerPanel;
@@ -74,15 +75,18 @@
}
@Override
- public void addAppointment(final String title, final Date date) {
+ public Appointment addAppointment(final String title, final Date date) {
// Should this be used or serialize from server side?
final Appointment appt = new Appointment();
appt.setStart(date);
- appt.setEnd(date);
+ // http://stackoverflow.com/questions/2527845/how-to-do-calendar-operations-in…
+ final Date endDate = new Date(date.getTime() + SessionConstants._AN_HOUR + SessionConstants._AN_HOUR
+ / 2);
+ appt.setEnd(endDate);
appt.setTitle(title);
appt.setStyle(AppointmentStyle.ORANGE);
calendar.addAppointment(appt);
- // FIXME NotiUser
+ return appt;
}
@Override
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-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPresenter.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -59,7 +59,7 @@
HasUpdateHandlers<Appointment>, HasDateRequestHandlers<Date>, HasMouseOverHandlers<Appointment>,
HasLayout, HasAppointments, AbstractFolderViewerView {
- void addAppointment(String title, Date date);
+ Appointment addAppointment(String title, Date date);
HandlerRegistration addClickHandler(ClickHandler clickHandler);
@@ -108,8 +108,8 @@
}
@Override
- public void addAppointment(final String description, final Date onDate) {
- getView().addAppointment(description, onDate);
+ public Appointment addAppointment(final String description, final Date onDate) {
+ return getView().addAppointment(description, onDate);
}
private void addListeners() {
Modified: trunk/src/main/java/cc/kune/events/server/CalendarServerUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/events/server/CalendarServerUtils.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/events/server/CalendarServerUtils.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -4,10 +4,7 @@
import net.fortuna.ical4j.model.DateTime;
import net.fortuna.ical4j.model.Property;
import net.fortuna.ical4j.model.TimeZone;
-import net.fortuna.ical4j.model.TimeZoneRegistry;
-import net.fortuna.ical4j.model.TimeZoneRegistryFactory;
import net.fortuna.ical4j.model.component.VEvent;
-import net.fortuna.ical4j.model.component.VTimeZone;
import net.fortuna.ical4j.model.parameter.Value;
import net.fortuna.ical4j.model.property.Description;
import net.fortuna.ical4j.model.property.DtEnd;
@@ -20,20 +17,26 @@
public class CalendarServerUtils {
public static VEvent from(final Appointment app) {
- final TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
- final TimeZone timezone = registry.getTimeZone("GMT");
- final VTimeZone tz = timezone.getVTimeZone();
+ // final TimeZoneRegistry registry =
+ // TimeZoneRegistryFactory.getInstance().createRegistry();
+ // final TimeZone timezone = registry.getTimeZone("GMT");
+ // final VTimeZone tz = timezone.getVTimeZone();
+ // FIXME here v timezone!!!
- // FIXME here v timezone!!!
final DateTime start = new DateTime(app.getStart().getTime());
- start.setTimeZone(timezone);
+ final TimeZone timezone = start.getTimeZone();
+ // start.setTimeZone(timezone);
final DateTime end = new DateTime(app.getEnd().getTime());
- end.setTimeZone(timezone);
+ // end.setTimeZone(timezone);
VEvent event;
if (app.isAllDay()) {
event = new VEvent();
- event.getProperties().add(new DtStart(new Date(app.getStart().getTime())));
- event.getProperties().add(new DtEnd(new Date(app.getEnd().getTime())));
+ final DtStart eventStart = new DtStart(new Date(app.getStart().getTime()));
+ eventStart.setTimeZone(timezone);
+ event.getProperties().add(eventStart);
+ final DtEnd eventEnd = new DtEnd(new Date(app.getEnd().getTime()));
+ eventStart.setTimeZone(timezone);
+ event.getProperties().add(eventEnd);
event.getProperties().getProperty(Property.DTSTART).getParameters().add(Value.DATE);
event.getProperties().getProperty(Property.DTEND).getParameters().add(Value.DATE);
} else {
Added: trunk/src/main/java/cc/kune/events/shared/DateUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/events/shared/DateUtils.java (rev 0)
+++ trunk/src/main/java/cc/kune/events/shared/DateUtils.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -0,0 +1,26 @@
+package cc.kune.events.shared;
+
+import java.util.Date;
+
+import com.google.gwt.i18n.client.DateTimeFormat;
+
+/**
+ * The Class DateUtils try to follow RFC 2445 date-time formats.
+ *
+ * DTSTART;TZID=US-Eastern:19970714T133000 ;Local time and time ; zone reference
+ */
+public class DateUtils {
+
+ private static String RFC_DATE_TIME_FORMAT = "'DTSTART':yyyyMMdd'T'hhmmss";
+ private static String RFC_DATE_TIME_FORMAT_TZ = "'DTSTART;TZID='v:yyyyMMdd'T'hhmmss";
+ private static DateTimeFormat rfcDateFormat = DateTimeFormat.getFormat(RFC_DATE_TIME_FORMAT);
+ private static DateTimeFormat rfcDateFormatTz = DateTimeFormat.getFormat(RFC_DATE_TIME_FORMAT_TZ);
+
+ public static Date toDate(final String date) {
+ return rfcDateFormat.parse(date);
+ }
+
+ public static String toString(final Date date) {
+ return rfcDateFormat.format(date);
+ }
+}
Modified: trunk/src/main/java/cc/kune/events/shared/EventsConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/events/shared/EventsConstants.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/events/shared/EventsConstants.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -24,6 +24,7 @@
public static final String NAME = "events";
public static final String ROOT_NAME = "events";
public static final String TYPE_MEETING = NAME + "." + "meeting";
+ public static final String TYPE_MEETING_DEF_GADGETNAME = "massmob";
public static final String TYPE_ROOT = NAME + "." + "root";
private EventsConstants() {
Added: trunk/src/main/java/cc/kune/events/shared/EventsConversionUtil.java
===================================================================
--- trunk/src/main/java/cc/kune/events/shared/EventsConversionUtil.java (rev 0)
+++ trunk/src/main/java/cc/kune/events/shared/EventsConversionUtil.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -0,0 +1,38 @@
+package cc.kune.events.shared;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import cc.kune.common.shared.res.ICalConstants;
+
+import com.bradrydzewski.gwt.calendar.client.Appointment;
+
+/**
+ * The Class EventsConversionUtil is used to convert Appointments to Gadgets
+ * properties and viceversa
+ */
+public class EventsConversionUtil {
+
+ public static Appointment toApp(final Map<String, String> properties) {
+ final Appointment app = new Appointment();
+ app.setStart(DateUtils.toDate(properties.get(ICalConstants.DATE_TIME_START)));
+ app.setEnd(DateUtils.toDate(properties.get(ICalConstants.DATE_TIME_END)));
+ app.setDescription(properties.get(ICalConstants.DESCRIPTION));
+ app.setTitle(properties.get(ICalConstants.SUMMARY));
+ app.setLocation(properties.get(ICalConstants.LOCATION));
+ app.setCreatedBy(properties.get(ICalConstants.ORGANIZER));
+ return app;
+ }
+
+ public static Map<String, String> toMap(final Appointment app) {
+ final Map<String, String> properties = new HashMap<String, String>();
+ properties.put(ICalConstants.DATE_TIME_START, DateUtils.toString(app.getStart()));
+ properties.put(ICalConstants.DATE_TIME_END, DateUtils.toString(app.getEnd()));
+ properties.put(ICalConstants.SUMMARY, app.getTitle());
+ properties.put(ICalConstants.DESCRIPTION, app.getDescription());
+ properties.put(ICalConstants.LOCATION, app.getLocation());
+ properties.put(ICalConstants.ORGANIZER, app.getCreatedBy());
+ return properties;
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/GiveUsFeedbackAction.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/GiveUsFeedbackAction.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/GiveUsFeedbackAction.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -23,7 +23,7 @@
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.notify.NotifyLevel;
import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.SimpleResponseCallback;
+import cc.kune.common.shared.utils.SimpleResponseCallback;
import cc.kune.core.client.auth.SignIn;
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
Modified: trunk/src/main/java/cc/kune/gspace/client/i18n/AbstractLanguageSelectorPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/i18n/AbstractLanguageSelectorPanel.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/gspace/client/i18n/AbstractLanguageSelectorPanel.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -20,8 +20,8 @@
package cc.kune.gspace.client.i18n;
import cc.kune.common.client.errors.UIException;
-import cc.kune.common.client.utils.SimpleCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.SimpleCallback;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.ui.DefaultForm;
import cc.kune.core.shared.dto.I18nLanguageSimpleDTO;
Modified: trunk/src/main/java/cc/kune/gspace/client/i18n/I18nCellList.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/i18n/I18nCellList.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/gspace/client/i18n/I18nCellList.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -18,7 +18,7 @@
package cc.kune.gspace.client.i18n;
import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.SimpleCallback;
+import cc.kune.common.shared.utils.SimpleCallback;
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.shared.dto.I18nLanguageSimpleDTO;
import cc.kune.core.shared.dto.I18nTranslationDTO;
Modified: trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslationDataProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslationDataProvider.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslationDataProvider.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -18,7 +18,7 @@
import java.util.List;
import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.SimpleCallback;
+import cc.kune.common.shared.utils.SimpleCallback;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.I18nServiceAsync;
import cc.kune.core.client.state.Session;
Modified: trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslatorPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslatorPanel.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslatorPanel.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -20,8 +20,8 @@
package cc.kune.gspace.client.i18n;
import cc.kune.common.client.notify.NotifyLevelImages;
-import cc.kune.common.client.utils.SimpleCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.SimpleCallback;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.ui.dialogs.tabbed.AbstractTabbedDialogPanel;
import cc.kune.core.shared.dto.I18nLanguageSimpleDTO;
Modified: trunk/src/main/java/cc/kune/gspace/client/licensewizard/LicenseChangeAction.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/licensewizard/LicenseChangeAction.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/gspace/client/licensewizard/LicenseChangeAction.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -20,8 +20,8 @@
package cc.kune.gspace.client.licensewizard;
import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.SimpleResponseCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.SimpleResponseCallback;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.GroupServiceAsync;
import cc.kune.core.client.state.Session;
Modified: trunk/src/main/java/cc/kune/gspace/client/licensewizard/LicenseWizardPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/licensewizard/LicenseWizardPresenter.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/gspace/client/licensewizard/LicenseWizardPresenter.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -24,7 +24,7 @@
import cc.kune.common.client.log.Log;
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.client.ui.dialogs.wizard.WizardListener;
-import cc.kune.common.client.utils.SimpleCallback;
+import cc.kune.common.shared.utils.SimpleCallback;
import cc.kune.core.client.state.Session;
import cc.kune.core.shared.dto.LicenseDTO;
import cc.kune.gspace.client.licensewizard.pages.LicenseWizardFirstFormView;
Modified: trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFirstForm.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFirstForm.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFirstForm.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -19,8 +19,8 @@
*/
package cc.kune.gspace.client.licensewizard.pages;
-import cc.kune.common.client.utils.SimpleCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.SimpleCallback;
import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.ui.DefaultForm;
import cc.kune.core.client.ui.DefaultFormUtils;
Modified: trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFirstFormView.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFirstFormView.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFirstFormView.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -19,7 +19,7 @@
*/
package cc.kune.gspace.client.licensewizard.pages;
-import cc.kune.common.client.utils.SimpleCallback;
+import cc.kune.common.shared.utils.SimpleCallback;
import com.google.gwt.user.client.ui.IsWidget;
Modified: trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFrdForm.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFrdForm.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFrdForm.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -19,8 +19,8 @@
*/
package cc.kune.gspace.client.licensewizard.pages;
-import cc.kune.common.client.utils.SimpleCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.SimpleCallback;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.ui.DefaultForm;
import cc.kune.core.shared.dto.LicenseDTO;
Modified: trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFrdFormView.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFrdFormView.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFrdFormView.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -19,7 +19,7 @@
*/
package cc.kune.gspace.client.licensewizard.pages;
-import cc.kune.common.client.utils.SimpleCallback;
+import cc.kune.common.shared.utils.SimpleCallback;
import com.google.gwt.user.client.ui.IsWidget;
Modified: trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardTrdForm.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardTrdForm.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardTrdForm.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -21,8 +21,8 @@
import cc.kune.common.client.resources.CommonResources;
import cc.kune.common.client.tooltip.Tooltip;
-import cc.kune.common.client.utils.SimpleCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.SimpleCallback;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.ui.DefaultForm;
Modified: trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardTrdFormView.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardTrdFormView.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardTrdFormView.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -19,7 +19,7 @@
*/
package cc.kune.gspace.client.licensewizard.pages;
-import cc.kune.common.client.utils.SimpleCallback;
+import cc.kune.common.shared.utils.SimpleCallback;
import com.google.gwt.user.client.ui.IsWidget;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/license/EntityOptDefLicensePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/license/EntityOptDefLicensePresenter.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/gspace/client/options/license/EntityOptDefLicensePresenter.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -19,7 +19,7 @@
*/
package cc.kune.gspace.client.options.license;
-import cc.kune.common.client.utils.SimpleResponseCallback;
+import cc.kune.common.shared.utils.SimpleResponseCallback;
import cc.kune.core.client.state.Session;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.LicenseDTO;
Modified: trunk/src/main/java/cc/kune/wave/server/kspecific/KuneAgent.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/kspecific/KuneAgent.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/wave/server/kspecific/KuneAgent.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -21,6 +21,7 @@
import java.net.URL;
import java.util.HashSet;
+import java.util.Map;
import java.util.logging.Logger;
import javax.annotation.Nonnull;
@@ -31,6 +32,8 @@
import org.waveprotocol.wave.model.wave.ParticipantId;
import org.waveprotocol.wave.model.waveref.WaveRef;
+import cc.kune.common.shared.utils.SimpleArgCallback;
+
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Singleton;
@@ -71,31 +74,35 @@
}
@Override
- public WaveRef createWave(final String message, final ParticipantId... participants) {
- return createWave(NO_TITLE, message, participants);
+ public WaveRef createWave(final String message, final SimpleArgCallback<WaveRef> onCreate,
+ final ParticipantId... participants) {
+ return createWave(NO_TITLE, message, onCreate, participants);
}
@Override
public WaveRef createWave(@Nonnull final String title, final String message,
- @Nonnull final ParticipantId... participantsArray) {
- return createWave(title, message, WITHOUT_GADGET, participantsArray);
+ final SimpleArgCallback<WaveRef> onCreate, @Nonnull final ParticipantId... participantsArray) {
+ return createWave(title, message, onCreate, WITHOUT_GADGET, participantsArray);
}
@Override
- public WaveRef createWave(final String title, final String message, final String... participantsArray) {
+ public WaveRef createWave(final String title, final String message,
+ final SimpleArgCallback<WaveRef> onCreate, final String... participantsArray) {
// TODO Auto-generated method stub
return null;
}
@Override
- public WaveRef createWave(final String title, final String message, final String waveIdToCopy,
- final URL gadgetUrl, final ParticipantId... participantsArray) {
+ public WaveRef createWave(final String newtitle, final String body,
+ final SimpleArgCallback<WaveRef> simpleArgCallback, final URL gadgetUrl,
+ final Map<String, String> gadgetProperties, final ParticipantId... participantsArray) {
// TODO Auto-generated method stub
return null;
}
@Override
- public WaveRef createWave(final String title, final String message, final URL gadgetUrl,
+ public WaveRef createWave(final String title, final String message,
+ final SimpleArgCallback<WaveRef> onCreate, final URL gadgetUrl,
final ParticipantId... participantsArray) {
// super.newWave(getWaveDomain(), participantsArray);
final HashSet<String> parts = new HashSet<String>();
@@ -103,10 +110,25 @@
parts.add(part.getAddress());
}
final Wavelet wave = newWave(getWaveDomain(), parts);
- return WaveRef.of(wave.getWaveId(), wave.getWaveletId());
+ return null;
}
@Override
+ public WaveRef createWave(final String title, final String message, final String waveIdToCopy,
+ final SimpleArgCallback<WaveRef> onCreate, final URL gadgetUrl,
+ final Map<String, String> gadgetProperties, final ParticipantId... participantsArray) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public WaveRef createWave(final String title, final String message, final String waveIdToCopy,
+ final SimpleArgCallback<WaveRef> onCreate, final URL gadgetUrl,
+ final ParticipantId... participantsArray) {
+ return null;
+ }
+
+ @Override
public void delParticipants(final WaveRef waveName, final String whoDel, final String... participants) {
// TODO Auto-generated method stub
@@ -192,7 +214,7 @@
@Override
public void setGadgetProperty(final WaveRef waveletName, final String author, final URL gadgetUrl,
- final String someProperty, final String someValue) {
+ final Map<String, String> newProperties) {
// TODO Auto-generated method stub
}
Modified: trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveService.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveService.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveService.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -20,16 +20,25 @@
package cc.kune.wave.server.kspecific;
import java.net.URL;
+import java.util.Map;
import org.waveprotocol.wave.model.id.WaveId;
import org.waveprotocol.wave.model.id.WaveletId;
import org.waveprotocol.wave.model.wave.ParticipantId;
import org.waveprotocol.wave.model.waveref.WaveRef;
+import cc.kune.common.shared.utils.SimpleArgCallback;
+
import com.google.wave.api.Participants;
import com.google.wave.api.Wavelet;
public interface KuneWaveService {
+ public static final SimpleArgCallback<WaveRef> DO_NOTHING_CBACK = new SimpleArgCallback<WaveRef>() {
+ @Override
+ public void onCallback(final WaveRef arg) {
+ // Do nothing
+ }
+ };
public static final String NO_MESSAGE = "";
public static final String NO_TITLE = "";
public static final URL WITHOUT_GADGET = null;
@@ -38,17 +47,27 @@
void addParticipants(WaveRef waveName, String author, String userWhoAdd, String... newParticipants);
- WaveRef createWave(String message, ParticipantId... participants);
+ WaveRef createWave(String message, SimpleArgCallback<WaveRef> onCreate, ParticipantId... participants);
- WaveRef createWave(String title, String message, ParticipantId... participantsArray);
+ WaveRef createWave(String title, String message, SimpleArgCallback<WaveRef> onCreate,
+ ParticipantId... participantsArray);
- WaveRef createWave(String title, String message, String... participantsArray);
+ WaveRef createWave(String title, String message, SimpleArgCallback<WaveRef> onCreate,
+ String... participantsArray);
- WaveRef createWave(String title, String message, String waveIdToCopy, URL gadgetUrl,
+ WaveRef createWave(String newtitle, String body, SimpleArgCallback<WaveRef> simpleArgCallback,
+ URL gadgetUrl, Map<String, String> gadgetProperties, ParticipantId... participantsArray);
+
+ WaveRef createWave(String title, String message, SimpleArgCallback<WaveRef> onCreate, URL gadgetUrl,
ParticipantId... participantsArray);
- WaveRef createWave(String title, String message, URL gadgetUrl, ParticipantId... participantsArray);
+ WaveRef createWave(String title, String message, String waveIdToCopy,
+ SimpleArgCallback<WaveRef> onCreate, URL gadgetUrl, Map<String, String> gadgetProperties,
+ ParticipantId... participantsArray);
+ WaveRef createWave(String title, String message, String waveIdToCopy,
+ SimpleArgCallback<WaveRef> onCreate, URL gadgetUrl, ParticipantId... participantsArray);
+
void delParticipants(WaveRef waveName, String whoDel, String... participants);
Wavelet fetchWave(WaveId waveId, WaveletId waveletId, String author);
@@ -65,8 +84,9 @@
String render(WaveRef waveRef, String author);
- void setGadgetProperty(WaveRef waveletName, String author, URL gadgetUrl, String someProperty,
- String someValue);
+ void setGadgetProperty(WaveRef waveletName, String author, URL gadgetUrl,
+ Map<String, String> newProperties);
void setTitle(WaveRef waveName, String title, String author);
+
}
Modified: trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveServiceDefault.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveServiceDefault.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -48,6 +48,7 @@
import org.waveprotocol.wave.model.wave.ParticipantId;
import org.waveprotocol.wave.model.waveref.WaveRef;
+import cc.kune.common.shared.utils.SimpleArgCallback;
import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.errors.DefaultException;
import cc.kune.wave.server.ParticipantUtils;
@@ -211,24 +212,42 @@
}
@Override
- public WaveRef createWave(final String message, final ParticipantId... participants) {
- return createWave(NO_TITLE, message, participants);
+ public WaveRef createWave(final String message, final SimpleArgCallback<WaveRef> onCreate,
+ final ParticipantId... participants) {
+ return createWave(NO_TITLE, message, onCreate, participants);
}
@Override
public WaveRef createWave(@Nonnull final String title, final String message,
- @Nonnull final ParticipantId... participantsArray) {
- return createWave(title, message, WITHOUT_GADGET, participantsArray);
+ final SimpleArgCallback<WaveRef> onCreate, @Nonnull final ParticipantId... participantsArray) {
+ return createWave(title, message, onCreate, WITHOUT_GADGET, participantsArray);
}
@Override
- public WaveRef createWave(final String title, final String message, final String... participantsArray) {
- return createWave(title, message, participantUtils.listFrom(participantsArray));
+ public WaveRef createWave(final String title, final String message,
+ final SimpleArgCallback<WaveRef> onCreate, final String... participantsArray) {
+ return createWave(title, message, onCreate, participantUtils.listFrom(participantsArray));
}
@Override
+ public WaveRef createWave(final String title, final String message,
+ final SimpleArgCallback<WaveRef> onCreate, final URL gadgetUrl,
+ final Map<String, String> gadgetProperties, final ParticipantId... participantsArray) {
+ return createWave(title, message, NO_WAVE_TO_COPY, onCreate, gadgetUrl, gadgetProperties,
+ participantsArray);
+ }
+
+ @Override
public WaveRef createWave(@Nonnull final String title, final String message,
- final String waveIdToCopy, final URL gadgetUrl, @Nonnull final ParticipantId... participantsArray) {
+ final SimpleArgCallback<WaveRef> onCreate, final URL gadgetUrl,
+ @Nonnull final ParticipantId... participantsArray) {
+ return createWave(title, message, NO_WAVE_TO_COPY, onCreate, gadgetUrl, participantsArray);
+ }
+
+ @Override
+ public WaveRef createWave(@Nonnull final String title, final String message,
+ final String waveIdToCopy, final SimpleArgCallback<WaveRef> onCreate, final URL gadgetUrl,
+ final Map<String, String> gadgetProperties, @Nonnull final ParticipantId... participantsArray) {
String newWaveId = null;
String newWaveletId = null;
final Set<String> participants = new HashSet<String>();
@@ -259,7 +278,13 @@
}
if (gadgetUrl != WITHOUT_GADGET) {
- final Gadget gadget = new Gadget(gadgetUrl.toString());
+ Gadget gadget;
+ if (gadgetProperties.size() > 0) {
+ gadgetProperties.put(Gadget.URL, gadgetUrl.toString());
+ gadget = new Gadget(gadgetProperties);
+ } else {
+ gadget = new Gadget(gadgetUrl.toString());
+ }
rootBlip.append(gadget);
}
@@ -285,18 +310,6 @@
}
}
}
- OperationUtil.submitDeltas(context, waveletProvider, new SubmitRequestListener() {
- @Override
- public void onFailure(final String arg0) {
- KuneWaveServiceDefault.this.onFailure("Wave creation failed, onFailure: " + arg0);
- }
-
- @Override
- public void onSuccess(final int arg0, final HashedVersion arg1, final long arg2) {
- LOG.info("Wave creation success: " + arg1);
- }
- });
- LOG.info("WaveId: " + newWaveId + " waveletId: " + newWaveletId);
WaveRef wavename;
try {
wavename = WaveRef.of(ApiIdSerializer.instance().deserialiseWaveId(newWaveId),
@@ -304,13 +317,17 @@
} catch (final InvalidIdException e) {
throw new DefaultException("Error getting wave id");
}
+ doSubmit(onCreate, context, wavename);
+ LOG.info("WaveId: " + newWaveId + " waveletId: " + newWaveletId);
return wavename;
}
@Override
- public WaveRef createWave(@Nonnull final String title, final String message, final URL gadgetUrl,
+ public WaveRef createWave(@Nonnull final String title, final String message,
+ final String waveIdToCopy, final SimpleArgCallback<WaveRef> onCreate, final URL gadgetUrl,
@Nonnull final ParticipantId... participantsArray) {
- return createWave(title, message, NO_WAVE_TO_COPY, gadgetUrl, participantsArray);
+ return createWave(title, message, waveIdToCopy, onCreate, gadgetUrl,
+ Collections.<String, String> emptyMap(), participantsArray);
}
@Override
@@ -369,6 +386,22 @@
OperationUtil.submitDeltas(context, waveletProvider, listener);
}
+ private void doSubmit(final SimpleArgCallback<WaveRef> onCreate, final OperationContextImpl context,
+ final WaveRef wavename) {
+ OperationUtil.submitDeltas(context, waveletProvider, new SubmitRequestListener() {
+ @Override
+ public void onFailure(final String arg0) {
+ KuneWaveServiceDefault.this.onFailure("Wave creation failed, onFailure: " + arg0);
+ }
+
+ @Override
+ public void onSuccess(final int arg0, final HashedVersion arg1, final long arg2) {
+ LOG.info("Wave creation success: " + arg1);
+ onCreate.onCallback(wavename);
+ }
+ });
+ }
+
@Override
public Wavelet fetchWave(final WaveId waveId, final WaveletId waveletId, final String author) {
final OperationQueue opQueue = new OperationQueue();
@@ -454,11 +487,9 @@
@Override
public void setGadgetProperty(final WaveRef waveletName, final String author, final URL gadgetUrl,
- final String someProperty, final String someValue) {
- // See BlipContentRefs DocumentModifyService
+ final Map<String, String> newProperties) {
+ // Note: See BlipContentRefs DocumentModifyService
final Wavelet wavelet = fetchWave(waveletName, author);
- // FIXME
- final OperationQueue opQueue = new OperationQueue();
final Blip rootBlip = wavelet.getRootBlip();
for (final Element elem : rootBlip.getElements().values()) {
if (elem.isGadget()) {
@@ -466,11 +497,15 @@
if (properties.get(Gadget.URL).equals(gadgetUrl.toString())) {
// This is the gadget we want to modify (the first of that type)
final List<Element> updatedElementsIn = Lists.newArrayListWithCapacity(1);
- properties.put(someProperty, someValue);
- // properties.put(propertyNameToDelete, null);
final Gadget gadget = (Gadget) elem;
- gadget.setProperty(someProperty, someValue);
- // updatedElementsIn.add(new Gadget(properties));
+ final OperationQueue opQueue = new OperationQueue();
+ for (final String propKey : newProperties.keySet()) {
+ final String value = newProperties.get(propKey);
+ properties.put(propKey, value);
+ // properties.put(propertyNameToDelete, null);
+ gadget.setProperty(propKey, value);
+ // updatedElementsIn.add(new Gadget(properties));
+ }
updatedElementsIn.add(gadget);
final OperationRequest operationRequest = opQueue.modifyDocument(rootBlip);
operationRequest.addParameter(Parameter.of(ParamsProperty.MODIFY_ACTION,
@@ -479,7 +514,7 @@
operationRequest.addParameter(Parameter.of(
ParamsProperty.MODIFY_QUERY,
new DocumentModifyQuery(ElementType.GADGET, ImmutableMap.of(Gadget.URL,
- gadgetUrl.toString()), 1)));
+ gadgetUrl.toString()), -1)));
doOperation(author, opQueue, "set gadget property");
break;
}
@@ -500,4 +535,5 @@
set.addAll(Arrays.asList(array));
return set;
}
+
}
Modified: trunk/src/main/resources/wave-server-testing.properties
===================================================================
--- trunk/src/main/resources/wave-server-testing.properties 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/resources/wave-server-testing.properties 2012-02-20 23:38:46 UTC (rev 1689)
@@ -1,28 +1,36 @@
# Core Configuration for the Wave in a Box server
#
-# Domain name of the wave server
+# Domain name of the wave server
+# Default value: local.net (without .domain zone some things will be broken)
wave_server_domain = localhost
# A comma separated list of address on which to listen for connections.
# Each address is a comma separated host:port pair.
+# Default value: localhost:9898
http_frontend_public_address = localhost:9898
+
+# Default value: values passed to http_frontend_public_address.
http_frontend_addresses = ${http_frontend_public_address}
-http_baseurl = /
-resource_base = ./target/kune-0.0.7/
+# A comma separated list of webApp source directories
+# Default value: ./war
+resource_bases = /var/www/kune/,target/kune-0.1.0-SNAPSHOT/,src/main/webapp/
+
### Server-specific variables
###
-# Settings for the different persistence stores. Currently supported: file, file, mongodb
+# Settings for the different persistence stores. Currently supported: memory, file, mongodb
signer_info_store_type = memory
# The location where signer info certificate data is stored on disk. This should be changed.
# Note: This is only used when using the file signer info store. It is ignored
# for other data store types.
+# Default value: _certificates
signer_info_store_directory = _certificates
# Currently supported attachment types: mongodb, disk
+# Default value: disk
attachment_store_type = disk
# The location where attachments are stored on disk. This should be changed.
@@ -44,12 +52,39 @@
# The location where deltas are stored on disk. This should be changed.
# Note: This is only used when using the file delta store. It is ignored
# for other data store types.
+# Default value: _deltas
delta_store_directory = _deltas
-# Set true to use Socket.IO instead of raw WebSockets in the webclient.
+# The location where user sessions are persisted on disk. This allow to restore user sessions
+# between restarts.
+# Default value: _sessions
+sessions_store_directory = _sessions
+
+# Set false to use raw WebSockets instead of Socket.IO (still a bit experimental) in the webclient
+# Default value: true
use_socketio = true
-# To enable federation, edit the server.federation.config file and uncomment the line below
+# Note: the default value for admin is an invalid user id that cannot be registered.
+# To become an admin: Register a user and set its address as the value below.
+# Admin has a privilege to change passwords of other users using an agent robot.
+# Default value: @${wave_server_domain}
+admin_user = @local.net
+
+# The wave id of the welcome template wave. (Without domain, for example: w+Fxjs_-ZPmmA).
+# If filled in then a copy of this wave (actually only the root blip) will be
+# automatically added to the inbox of every new user.
+# Default value: "" (empty)
+welcome_wave_id =
+
+# Thread counts
+#The number of threads to listen on wavelet updates. Default value: 1
+listener_executor_thread_count = 1
+#The number of threads for loading wavelets. Default value: 1
+wavelet_load_executor_thread_count = 1
+#The number of threads to persist deltas. Default value: 1
+delta_persist_executor_thread_count = 1
+
+# To enable federation, edit the server.federation.config file and include it here.
#include = server.federation.config
# These two parameters MUST appear in this file AFTER the above include of the
@@ -61,3 +96,17 @@
# Set true to disable the verification of signers (certificates)
waveserver_disable_signer_verification = true
+
+# Set true to prevent anyone registering on your server.
+# When true, only the admin user can use the RegistrationRobot to add new accounts
+# Default value: false
+disable_registration = false
+
+# Enable SSL for all address/port combinations listed (makes the next 2 settings non-optional)
+enable_ssl = false
+
+# Path to keystore containg the ssl certificates to server
+ssl_keystore_path = src/main/resources/wiab.ks
+
+#Password to the keystore
+ssl_keystore_password = fafafa
Modified: trunk/src/main/resources/wave-server.properties
===================================================================
--- trunk/src/main/resources/wave-server.properties 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/main/resources/wave-server.properties 2012-02-20 23:38:46 UTC (rev 1689)
@@ -2,7 +2,7 @@
#
# Domain name of the wave server
-# Default value: local.net
+# Default value: local.net (without .domain zone some things will be broken)
wave_server_domain = localhost
# A comma separated list of address on which to listen for connections.
@@ -103,7 +103,7 @@
disable_registration = false
# Enable SSL for all address/port combinations listed (makes the next 2 settings non-optional)
-enable_ssl = true
+enable_ssl = false
# Path to keystore containg the ssl certificates to server
ssl_keystore_path = src/main/resources/wiab.ks
Modified: trunk/src/test/java/cc/kune/events/server/CalendarServerUtilsTest.java
===================================================================
--- trunk/src/test/java/cc/kune/events/server/CalendarServerUtilsTest.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/test/java/cc/kune/events/server/CalendarServerUtilsTest.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -7,19 +7,16 @@
import net.fortuna.ical4j.model.DateTime;
import net.fortuna.ical4j.model.component.VEvent;
-import net.fortuna.ical4j.util.Dates;
import org.junit.Ignore;
import org.junit.Test;
+import cc.kune.events.shared.BasicCalendarTest;
+
import com.bradrydzewski.gwt.calendar.client.Appointment;
-public class CalendarServerUtilsTest {
+public class CalendarServerUtilsTest extends BasicCalendarTest {
- private static final String DESCRIPTION = "some description";
- private static final String ID = "some id";
- private static final String TITLE = "some title";
-
private void checkConversionFromAndTo(final Appointment initialApp, final boolean allDay) {
final VEvent vevent = CalendarServerUtils.from(initialApp);
assertEquals(initialApp.getDescription(), vevent.getDescription().getValue());
@@ -51,30 +48,17 @@
@Test
public void testFromToFrom() {
- final Appointment initialApp = new Appointment();
- initialApp.setTitle(TITLE);
- initialApp.setDescription(DESCRIPTION);
- initialApp.setStart(new Date(Dates.getCurrentTimeRounded()));
- initialApp.setEnd(new Date(Dates.getCurrentTimeRounded()));
- initialApp.setId(ID);
final boolean allDay = false;
+ final Appointment initialApp = createAppointment(allDay);
initialApp.setAllDay(allDay);
-
checkConversionFromAndTo(initialApp, allDay);
}
@Ignore
@Test
public void testFromToFromAllDay() {
- final Appointment initialApp = new Appointment();
- initialApp.setTitle(TITLE);
- initialApp.setDescription(DESCRIPTION);
- initialApp.setStart(new Date(Dates.getCurrentTimeRounded()));
- initialApp.setEnd(new Date(Dates.getCurrentTimeRounded()));
- initialApp.setId(ID);
final boolean allDay = true;
- initialApp.setAllDay(allDay);
-
+ final Appointment initialApp = createAppointment(allDay);
checkConversionFromAndTo(initialApp, allDay);
}
Added: trunk/src/test/java/cc/kune/events/shared/BasicCalendarTest.java
===================================================================
--- trunk/src/test/java/cc/kune/events/shared/BasicCalendarTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/events/shared/BasicCalendarTest.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -0,0 +1,30 @@
+package cc.kune.events.shared;
+
+import net.fortuna.ical4j.model.Date;
+import net.fortuna.ical4j.util.Dates;
+
+import com.bradrydzewski.gwt.calendar.client.Appointment;
+
+public class BasicCalendarTest {
+
+ protected static final String DESCRIPTION = "some description";
+ protected static final String ID = "some id";
+ protected static final String TITLE = "some title";
+
+ protected Appointment createAppointment(final boolean allDay) {
+ final Appointment initialApp = new Appointment();
+ initialApp.setTitle(TITLE);
+ initialApp.setDescription(DESCRIPTION);
+ initialApp.setStart(getNow());
+ initialApp.setEnd(getNow());
+ initialApp.setId(ID);
+ initialApp.setAllDay(allDay);
+ return initialApp;
+ }
+
+ protected Date getNow() {
+ final Date date = new Date(Dates.getCurrentTimeRounded());
+ return date;
+ }
+
+}
Added: trunk/src/test/java/cc/kune/events/shared/EventsConversionUtilTest.java
===================================================================
--- trunk/src/test/java/cc/kune/events/shared/EventsConversionUtilTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/events/shared/EventsConversionUtilTest.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -0,0 +1,28 @@
+package cc.kune.events.shared;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Map;
+
+import org.junit.Test;
+
+import com.bradrydzewski.gwt.calendar.client.Appointment;
+import com.google.gwt.editor.client.Editor.Ignore;
+
+public class EventsConversionUtilTest extends BasicCalendarTest {
+
+ @Test
+ @Ignore
+ public void testToMap() {
+ final Appointment app = createAppointment(false);
+ final Map<String, String> map = EventsConversionUtil.toMap(app);
+ final Appointment appReConverted = EventsConversionUtil.toApp(map);
+ assertEquals(app.getStart(), appReConverted.getStart());
+ assertEquals(app.getEnd(), appReConverted.getEnd());
+ assertEquals(app.getDescription(), appReConverted.getDescription());
+ assertEquals(app.getTitle(), appReConverted.getTitle());
+ assertEquals(app.getLocation(), appReConverted.getLocation());
+ assertEquals(app.getCreatedBy(), appReConverted.getCreatedBy());
+ }
+
+}
Modified: trunk/src/test/java/cc/kune/wave/server/KuneAgentTest.java
===================================================================
--- trunk/src/test/java/cc/kune/wave/server/KuneAgentTest.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/test/java/cc/kune/wave/server/KuneAgentTest.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -19,10 +19,6 @@
*/
package cc.kune.wave.server;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
@@ -35,12 +31,10 @@
import org.waveprotocol.wave.model.id.TokenGenerator;
import org.waveprotocol.wave.model.wave.InvalidParticipantAddress;
import org.waveprotocol.wave.model.wave.ParticipantId;
-import org.waveprotocol.wave.model.waveref.WaveRef;
import cc.kune.wave.server.kspecific.KuneAgent;
import com.google.common.collect.Lists;
-import com.google.wave.api.Wavelet;
public class KuneAgentTest {
private static final String MESSAGE = "testing";
@@ -81,13 +75,14 @@
@Ignore
@Test
public void testBasicCreation() throws InvalidParticipantAddress {
- final WaveRef waveletName = manager.createWave(RICHTEXT_MESSAGE,
- ParticipantId.of(getSiteAdminShortName()));
- assertNotNull(waveletName);
- final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
- assertNotNull(fetchWavelet);
- assertTrue(fetchWavelet.getRootBlip().getAnnotations().size() > 0);
- assertEquals("", fetchWavelet.getRootBlip().getContent());
- assertTrue(fetchWavelet.getRootBlip().getContent().contains(MESSAGE));
+ // final WaveRef waveletName = manager.createWave(RICHTEXT_MESSAGE, null,
+ // ParticipantId.of(getSiteAdminShortName()));
+ // assertNotNull(waveletName);
+ // final Wavelet fetchWavelet = manager.fetchWave(waveletName,
+ // getSiteAdminShortName());
+ // assertNotNull(fetchWavelet);
+ // assertTrue(fetchWavelet.getRootBlip().getAnnotations().size() > 0);
+ // assertEquals("", fetchWavelet.getRootBlip().getContent());
+ // assertTrue(fetchWavelet.getRootBlip().getContent().contains(MESSAGE));
}
}
Modified: trunk/src/test/java/cc/kune/wave/server/KuneWaveServiceDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/wave/server/KuneWaveServiceDefaultTest.java 2012-02-14 13:04:48 UTC (rev 1688)
+++ trunk/src/test/java/cc/kune/wave/server/KuneWaveServiceDefaultTest.java 2012-02-20 23:38:46 UTC (rev 1689)
@@ -28,7 +28,9 @@
import java.net.URL;
import java.util.Arrays;
import java.util.Collection;
+import java.util.HashMap;
import java.util.Iterator;
+import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
@@ -37,6 +39,7 @@
import org.junit.Test;
import org.waveprotocol.wave.model.waveref.WaveRef;
+import cc.kune.common.shared.utils.SimpleArgCallback;
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.server.integration.IntegrationTest;
import cc.kune.core.server.integration.IntegrationTestHelper;
@@ -53,6 +56,8 @@
private static final String NEW_PARTICIPANT = "newparti";
private static final String NEW_PARTICIPANT2 = "newparti2";
private static final String RICHTEXT_MESSAGE = "<b>" + MESSAGE + "</b>";
+ private static final String SOME_OTHER_PROPERTY = "someOtherProperty";
+ private static final String SOME_OTHER_VALUE = "someOtherValue";
private static final String SOME_PROPERTY = "someProperty";
private static final String SOME_VALUE = "someValue";
private static final String TEST_GADGET = "http://wave-api.appspot.com/public/gadgets/areyouin/gadget.xml";
@@ -67,98 +72,132 @@
@Ignore
public void addAndDelMainParticipant() throws IOException {
doLogin();
- final WaveRef waveletName = createTestWave();
- assertNotNull(waveletName);
- manager.addParticipants(waveletName, getSiteAdminShortName(), NEW_PARTICIPANT);
+ createTestWave(new SimpleArgCallback<WaveRef>() {
+ @Override
+ public void onCallback(final WaveRef waveletName) {
+ assertNotNull(waveletName);
+ manager.addParticipants(waveletName, getSiteAdminShortName(), NEW_PARTICIPANT);
- final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
- assertNotNull(fetchWavelet);
- assertEquals(2, fetchWavelet.getParticipants().size());
- assertTrue(manager.isParticipant(fetchWavelet, NEW_PARTICIPANT));
- assertTrue(manager.isParticipant(fetchWavelet, getSiteAdminShortName()));
- // Del all
- manager.delParticipants(waveletName, getSiteAdminShortName(), getSiteAdminShortName());
- // This fails because we don't have a way to access to than wave now ...
- // @domain don't work neither
- final Wavelet fetchedAfterDeleted = manager.fetchWave(waveletName, "");
- assertNotNull(fetchedAfterDeleted);
+ final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
+ assertNotNull(fetchWavelet);
+ assertEquals(2, fetchWavelet.getParticipants().size());
+ assertTrue(manager.isParticipant(fetchWavelet, NEW_PARTICIPANT));
+ assertTrue(manager.isParticipant(fetchWavelet, getSiteAdminShortName()));
+ // Del all
+ manager.delParticipants(waveletName, getSiteAdminShortName(), getSiteAdminShortName());
+ // This fails because we don't have a way to access to than wave now ...
+ // @domain don't work neither
+ final Wavelet fetchedAfterDeleted = manager.fetchWave(waveletName, "");
+ assertNotNull(fetchedAfterDeleted);
+ }
+ });
}
@Test
public void addAndDelParticipantTwice() throws IOException {
doLogin();
- final WaveRef waveletName = createTestWave();
- assertNotNull(waveletName);
- manager.addParticipants(waveletName, getSiteAdminShortName(), getSiteAdminShortName(),
- NEW_PARTICIPANT);
- manager.addParticipants(waveletName, getSiteAdminShortName(), getSiteAdminShortName(),
- NEW_PARTICIPANT, NEW_PARTICIPANT);
- manager.addParticipants(waveletName, getSiteAdminShortName(), getSiteAdminShortName(),
- NEW_PARTICIPANT, NEW_PARTICIPANT, NEW_PARTICIPANT);
- final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
- assertNotNull(fetchWavelet);
- assertEquals(2, fetchWavelet.getParticipants().size());
- assertTrue(manager.isParticipant(fetchWavelet, NEW_PARTICIPANT));
- assertTrue(manager.isParticipant(fetchWavelet, getSiteAdminShortName()));
- // Del main editor
- manager.delParticipants(waveletName, getSiteAdminShortName(), NEW_PARTICIPANT, NEW_PARTICIPANT,
- getSiteAdminShortName(), getSiteAdminShortName());
+ createTestWave(new SimpleArgCallback<WaveRef>() {
+ @Override
+ public void onCallback(final WaveRef waveletName) {
+ assertNotNull(waveletName);
+ manager.addParticipants(waveletName, getSiteAdminShortName(), getSiteAdminShortName(),
+ NEW_PARTICIPANT);
+ manager.addParticipants(waveletName, getSiteAdminShortName(), getSiteAdminShortName(),
+ NEW_PARTICIPANT, NEW_PARTICIPANT);
+ manager.addParticipants(waveletName, getSiteAdminShortName(), getSiteAdminShortName(),
+ NEW_PARTICIPANT, NEW_PARTICIPANT, NEW_PARTICIPANT);
+ final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
+ assertNotNull(fetchWavelet);
+ assertEquals(2, fetchWavelet.getParticipants().size());
+ assertTrue(manager.isParticipant(fetchWavelet, NEW_PARTICIPANT));
+ assertTrue(manager.isParticipant(fetchWavelet, getSiteAdminShortName()));
+ // Del main editor
+ manager.delParticipants(waveletName, getSiteAdminShortName(), NEW_PARTICIPANT, NEW_PARTICIPANT,
+ getSiteAdminShortName(), getSiteAdminShortName());
+ }
+ });
}
@Test
public void addAndRemoveParticipant() throws IOException {
doLogin();
final String whoDels = getSiteAdminShortName();
- final WaveRef waveletName = createTestWave();
- assertNotNull(waveletName);
- manager.addParticipants(waveletName, getSiteAdminShortName(), whoDels, NEW_PARTICIPANT,
- NEW_PARTICIPANT2);
- final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
- assertNotNull(fetchWavelet);
- assertEquals(3, fetchWavelet.getParticipants().size());
- assertTrue(manager.isParticipant(fetchWavelet, NEW_PARTICIPANT));
- assertTrue(manager.isParticipant(fetchWavelet, NEW_PARTICIPANT2));
- assertTrue(manager.isParticipant(fetchWavelet, getSiteAdminShortName()));
- manager.delParticipants(waveletName, whoDels, NEW_PARTICIPANT, NEW_PARTICIPANT2);
- final Wavelet fetchDelWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
- assertNotNull(fetchDelWavelet);
- assertEquals(1, fetchDelWavelet.getParticipants().size());
- assertTrue(manager.isParticipant(fetchDelWavelet, getSiteAdminShortName()));
- assertFalse(manager.isParticipant(fetchDelWavelet, NEW_PARTICIPANT));
- assertFalse(manager.isParticipant(fetchDelWavelet, NEW_PARTICIPANT2));
- manager.addParticipants(waveletName, getSiteAdminShortName(), getSiteAdminShortName(),
- NEW_PARTICIPANT);
- // Del all (the last, the whoDels...)
- manager.delParticipants(waveletName, whoDels, NEW_PARTICIPANT, getSiteAdminShortName());
+ createTestWave(new SimpleArgCallback<WaveRef>() {
+ @Override
+ public void onCallback(final WaveRef waveletName) {
+ assertNotNull(waveletName);
+ manager.addParticipants(waveletName, getSiteAdminShortName(), whoDels, NEW_PARTICIPANT,
+ NEW_PARTICIPANT2);
+ final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
+ assertNotNull(fetchWavelet);
+ assertEquals(3, fetchWavelet.getParticipants().size());
+ assertTrue(manager.isParticipant(fetchWavelet, NEW_PARTICIPANT));
+ assertTrue(manager.isParticipant(fetchWavelet, NEW_PARTICIPANT2));
+ assertTrue(manager.isParticipant(fetchWavelet, getSiteAdminShortName()));
+ manager.delParticipants(waveletName, whoDels, NEW_PARTICIPANT, NEW_PARTICIPANT2);
+ final Wavelet fetchDelWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
+ assertNotNull(fetchDelWavelet);
+ assertEquals(1, fetchDelWavelet.getParticipants().size());
+ assertTrue(manager.isParticipant(fetchDelWavelet, getSiteAdminShortName()));
+ assertFalse(manager.isParticipant(fetchDelWavelet, NEW_PARTICIPANT));
+ assertFalse(manager.isParticipant(fetchDelWavelet, NEW_PARTICIPANT2));
+ manager.addParticipants(waveletName, getSiteAdminShortName(), getSiteAdminShortName(),
+ NEW_PARTICIPANT);
+ // Del all (the last, the whoDels...)
+ manager.delParticipants(waveletName, whoDels, NEW_PARTICIPANT, getSiteAdminShortName());
+ }
+ });
}
@Test
public void addGadget() throws DefaultException, IOException {
doLogin();
- final WaveRef waveletName = createTestWave();
- assertNotNull(waveletName);
- manager.addGadget(waveletName, getSiteAdminShortName(), new URL(TEST_GADGET));
+ final URL gadgetUrl = new URL(TEST_GADGET);
+ createTestWave(new SimpleArgCallback<WaveRef>() {
+ @Override
+ public void onCallback(final WaveRef waveletName) {
+ assertNotNull(waveletName);
+ manager.addGadget(waveletName, getSiteAdminShortName(), gadgetUrl);
+ }
+ });
}
@Test
public void addGadgetAndCheckProperties() throws DefaultException, IOException {
doLogin();
- final WaveRef waveletName = createTestWave();
- assertNotNull(waveletName);
final URL gadgetUrl = new URL(TEST_GADGET);
- manager.addGadget(waveletName, getSiteAdminShortName(), gadgetUrl);
- final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
- final Gadget gadget = getFirstGadget(fetchWavelet, TEST_GADGET);
- assertEquals(gadget.getUrl(), TEST_GADGET);
- assertEquals(2, gadget.getProperties().size());
- assertEquals(3, fetchWavelet.getRootBlip().getElements().size());
- manager.setGadgetProperty(waveletName, getSiteAdminShortName(), gadgetUrl, SOME_PROPERTY, SOME_VALUE);
- final Wavelet updatedWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
- final Gadget gadgetUpdated = getFirstGadget(updatedWavelet, TEST_GADGET);
- assertEquals(gadgetUpdated.getUrl(), TEST_GADGET);
- assertEquals(3, updatedWavelet.getRootBlip().getElements().size());
- assertEquals(3, gadgetUpdated.getProperties().size());
- assertEquals(SOME_VALUE, gadgetUpdated.getProperties().get(SOME_PROPERTY));
+ createTestWave(new SimpleArgCallback<WaveRef>() {
+ @Override
+ public void onCallback(final WaveRef waveletName) {
+ assertNotNull(waveletName);
+ manager.addGadget(waveletName, getSiteAdminShortName(), gadgetUrl);
+ final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
+ final Gadget gadget = getFirstGadget(fetchWavelet, TEST_GADGET);
+ assertEquals(gadget.getUrl(), TEST_GADGET);
+ assertEquals(2, gadget.getProperties().size());
+ assertEquals(3, fetchWavelet.getRootBlip().getElements().size());
+ final Map<String, String> newProps = new HashMap<String, String>();
+ newProps.put(SOME_PROPERTY, SOME_VALUE);
+ newProps.put(SOME_OTHER_PROPERTY, SOME_OTHER_VALUE);
+ final int numberProp = 50;
+ for (int i = 1; i < numberProp; i++) {
+ newProps.put(SOME_OTHER_PROPERTY + i, SOME_OTHER_VALUE + i);
+ }
+ // Removing some property
+ newProps.put(SOME_PROPERTY, null);
+ manager.setGadgetProperty(waveletName, getSiteAdminShortName(), gadgetUrl, newProps);
+ final Wavelet updatedWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
+ final Gadget gadgetUpdated = getFirstGadget(updatedWavelet, TEST_GADGET);
+ assertEquals(gadgetUpdated.getUrl(), TEST_GADGET);
+ assertEquals(3, updatedWavelet.getRootBlip().getElements().size());
+ assertEquals(numberProp + 2, gadgetUpdated.getProperties().size());
+ assertEquals(null, gadgetUpdated.getProperties().get(SOME_PROPERTY));
+ assertEquals(SOME_OTHER_VALUE, gadgetUpdated.getProperties().get(SOME_OTHER_PROPERTY));
+ for (int i = 1; i < numberProp; i++) {
+ assertEquals(SOME_OTHER_VALUE + i, gadgetUpdated.getProperties().get(SOME_OTHER_PROPERTY + i));
+ }
+ }
+ });
}
@Test
@@ -174,14 +213,18 @@
private void addParticipant(final String whoAdds) throws IOException {
doLogin();
- final WaveRef waveletName = createTestWave();
- assertNotNull(waveletName);
- manager.addParticipants(waveletName, getSiteAdminShortName(), whoAdds, NEW_PARTICIPANT);
- final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
- assertNotNull(fetchWavelet);
- assertEquals(2, fetchWavelet.getParticipants().size());
- assertTrue(manager.isParticipant(fetchWavelet, NEW_PARTICIPANT));
- assertTrue(manager.isParticipant(fetchWavelet, getSiteAdminShortName()));
+ createTestWave(new SimpleArgCallback<WaveRef>() {
+ @Override
+ public void onCallback(final WaveRef waveletName) {
+ assertNotNull(waveletName);
+ manager.addParticipants(waveletName, getSiteAdminShortName(), whoAdds, NEW_PARTICIPANT);
+ final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
+ assertNotNull(fetchWavelet);
+ assertEquals(2, fetchWavelet.getParticipants().size());
+ assertTrue(manager.isParticipant(fetchWavelet, NEW_PARTICIPANT));
+ assertTrue(manager.isParticipant(fetchWavelet, getSiteAdminShortName()));
+ }
+ });
}
@Test
@@ -195,42 +238,52 @@
new IntegrationTestHelper(this);
}
- private WaveRef createTestWave() {
- return manager.createWave(TITLE, RICHTEXT_MESSAGE, participantUtils.of(getSiteAdminShortName()));
+ private void createTestWave(final SimpleArgCallback<WaveRef> callback) {
+ manager.createWave(TITLE, RICHTEXT_MESSAGE, callback, participantUtils.of(getSiteAdminShortName()));
}
@Test
public void createWave() throws DefaultException, IOException {
doLogin();
- final WaveRef waveletName = manager.createWave(RICHTEXT_MESSAGE,
- participantUtils.of(getSiteAdminShortName()));
- assertNotNull(waveletName);
- final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
- assertNotNull(fetchWavelet);
- assertTrue(fetchWavelet.getRootBlip().getAnnotations().size() > 0);
- assertTrue(fetchWavelet.getRootBlip().getContent().contains(MESSAGE));
+ manager.createWave(RICHTEXT_MESSAGE, new SimpleArgCallback<WaveRef>() {
+ @Override
+ public void onCallback(final WaveRef waveletName) {
+ assertNotNull(waveletName);
+ final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
+ assertNotNull(fetchWavelet);
+ assertTrue(fetchWavelet.getRootBlip().getAnnotations().size() > 0);
+ assertTrue(fetchWavelet.getRootBlip().getContent().contains(MESSAGE));
+ }
+ }, participantUtils.of(getSiteAdminShortName()));
}
@Test
public void createWaveWithGadget() throws DefaultException, IOException {
doLogin();
- final WaveRef waveletName = manager.createWave(TITLE, RICHTEXT_MESSAGE, new URL(TEST_GADGET),
- participantUtils.of(getSiteAdminShortName()));
- assertNotNull(waveletName);
- final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
- assertNotNull(fetchWavelet);
- assertTrue(fetchWavelet.getRootBlip().getContent().contains(MESSAGE));
+ manager.createWave(TITLE, RICHTEXT_MESSAGE, new SimpleArgCallback<WaveRef>() {
+ @Override
+ public void onCallback(final WaveRef waveletName) {
+ assertNotNull(waveletName);
+ final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
+ assertNotNull(fetchWavelet);
+ assertTrue(fetchWavelet.getRootBlip().getContent().contains(MESSAGE));
+ }
+ }, new URL(TEST_GADGET), participantUtils.of(getSiteAdminShortName()));
}
@Test
public void createWaveWithTitle() throws DefaultException, IOException {
doLogin();
- final WaveRef waveletName = createTestWave();
- assertNotNull(waveletName);
- final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
- assertNotNull(fetchWavelet);
- assertTrue(fetchWavelet.getRootBlip().getContent().contains(MESSAGE));
- assertEquals(TITLE, fetchWavelet.getTitle());
+ createTestWave(new SimpleArgCallback<WaveRef>() {
+ @Override
+ public void onCallback(final WaveRef waveletName) {
+ assertNotNull(waveletName);
+ final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
+ assertNotNull(fetchWavelet);
+ assertTrue(fetchWavelet.getRootBlip().getContent().contains(MESSAGE));
+ assertEquals(TITLE, fetchWavelet.getTitle());
+ }
+ });
}
private Gadget getFirstGadget(final Wavelet fetchWavelet, final String testGadget) {
@@ -253,20 +306,28 @@
@Test
public void renderWave() throws DefaultException, IOException {
doLogin();
- final WaveRef waveletName = createTestWave();
- assertNotNull(manager.render(waveletName, getSiteAdminShortName()));
+ createTestWave(new SimpleArgCallback<WaveRef>() {
+ @Override
+ public void onCallback(final WaveRef waveletName) {
+ assertNotNull(manager.render(waveletName, getSiteAdminShortName()));
+ }
+ });
}
@Test
public void setTitle() throws DefaultException, IOException {
doLogin();
- final WaveRef waveletName = createTestWave();
- assertNotNull(waveletName);
- manager.setTitle(waveletName, TITLENEW, getSiteAdminShortName());
- final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
- assertNotNull(fetchWavelet);
- assertTrue(fetchWavelet.getRootBlip().getContent().contains(MESSAGE));
- assertEquals(TITLENEW, fetchWavelet.getTitle());
+ createTestWave(new SimpleArgCallback<WaveRef>() {
+ @Override
+ public void onCallback(final WaveRef waveletName) {
+ assertNotNull(waveletName);
+ manager.setTitle(waveletName, TITLENEW, getSiteAdminShortName());
+ final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
+ assertNotNull(fetchWavelet);
+ assertTrue(fetchWavelet.getRootBlip().getContent().contains(MESSAGE));
+ assertEquals(TITLENEW, fetchWavelet.getTitle());
+ }
+ });
}
}
1
0