r1689 - in trunk: . src/main/java/cc/kune/chat/client src/main/java/cc/kune/chat/client/actions src/main/java/cc/kune/common/client/notify src/main/java/cc/kune/common/client/tooltip src/main/java/cc/kune/common/client/ui src/main/java/cc/kune/common/client/utils src/main/java/cc/kune/common/shared src/main/java/cc/kune/common/shared/i18n src/main/java/cc/kune/common/shared/res src/main/java/cc/kune/common/shared/utils src/main/java/cc/kune/core/client/i18n src/main/java/cc/kune/core/client/i
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()); + } + }); } }
participants (1)
-
Vicente J. Ruiz Jurado