kune-commits
Threads by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
July 2009
- 1 participants
- 6 discussions
Author: vjrj
Date: 2009-07-22 22:31:08 +0200 (Wed, 22 Jul 2009)
New Revision: 1138
Added:
trunk/src/main/java/com/
trunk/src/main/java/com/google/
trunk/src/main/java/com/google/gwt/
trunk/src/main/java/com/google/gwt/wave/
trunk/src/main/java/com/google/gwt/wave/Wave.gwt.xml
trunk/src/main/java/com/google/gwt/wave/client/
trunk/src/main/java/com/google/gwt/wave/client/WaveEmbed.java
trunk/src/main/java/com/google/gwt/wave/client/WaveWidget.java
trunk/src/main/java/com/google/gwt/wave/client/WaveWidgetTest.java
trunk/src/main/java/com/google/gwt/wave/client/event/
trunk/src/main/java/com/google/gwt/wave/client/event/HasWaveLoadHandlers.java
trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadEvent.java
trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadHandler.java
trunk/src/main/java/com/google/gwt/wave/client/package.html
trunk/src/main/java/com/google/gwt/wave/public/
trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js
trunk/war/ws-aux/
Modified:
trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java
trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java
trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java
trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java
trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java
Log:
Incomplete - taskwave simple integration
Added: trunk/src/main/java/com/google/gwt/wave/Wave.gwt.xml
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/Wave.gwt.xml 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/Wave.gwt.xml 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.6.4//EN"
+ "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/…">
+<!-- -->
+<!-- Copyright 2009 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 -->
+<!-- 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. License for the specific language governing permissions and -->
+<!-- limitations under the License. -->
+<module rename-to="wave">
+ <inherits name='com.google.gwt.user.User'/>
+<!--
+ <entry-point class="com.google.gwt.wave.client.WaveWidgetTest"/>
+ -->
+
+ <script src="wave_embed.js"/>
+</module>
Added: trunk/src/main/java/com/google/gwt/wave/client/WaveEmbed.java
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/WaveEmbed.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/client/WaveEmbed.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,136 @@
+package com.google.gwt.wave.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.core.client.GWT.UncaughtExceptionHandler;
+import com.google.gwt.user.client.Element;
+import com.google.gwt.wave.client.event.HasWaveLoadHandlers;
+import com.google.gwt.wave.client.event.WaveLoadEvent;
+
+final class WaveEmbed extends JavaScriptObject {
+
+ protected WaveEmbed() {
+ // Required by JavaScriptObject types
+ }
+
+ // Undocumented:
+ // loadSearch
+ // setContactProvider
+ // provideContacts
+
+ // Not yet available:
+ // addParticipant
+ // addReply
+
+ /**
+ * Creates a new WaveEmbed using the default Wave server URL:
+ * <code>http://wave-devel.corp.google.com/a/google.com/</code>
+ */
+ public static native WaveEmbed newInstance() /*-{
+ return new $wnd.WavePanel();
+ }-*/;
+
+ /**
+ * Creates a new WaveEmbed using the specified Wave server URL.
+ *
+ * @param serverURL The URL of the Wave server to use
+ */
+ public static native WaveEmbed newInstance(String serverURL) /*-{
+ return new $wnd.WavePanel(serverURL);
+ }-*/;
+
+ /**
+ * Set the UI configuration for the wave. This must be done before init() is
+ * called. Note that fontSize must be expressed in points, such as "12pts".
+ *
+ * @param bgColor
+ * @param color
+ * @param font
+ * @param fontSize
+ */
+ public native void setUIConfig(String bgColor, String color, String font,
+ String fontSize) /*-{
+ this.setUIConfig(bgColor, color, font, fontSize);
+ }-*/;
+
+ /**
+ * Actually creates the wave >iframe> inside the given container. This is
+ * not done in the constructor so the caller can set various initialization
+ * options before the creation.
+ *
+ * @param container The container element which will hold the Wave >IFRAME>
+ */
+ public native void init(Element container) /*-{
+ this.init(container);
+ }-*/;
+
+ /**
+ * Loads the given wave into the wavePanel. This can be called before or after
+ * init.
+ *
+ * @param waveId The Id of the Wave to load
+ */
+ public native void loadWave(String waveId) /*-{
+ this.loadWave(waveId);
+ }-*/;
+
+ /**
+ * Loads the given wave into the wavePanel. This can be called before or after
+ * init.
+ *
+ * @param source An instance of HasWaveLoadHandlers where the WaveLoadEvent
+ * will be dispatched from
+ * @param waveId The Id of the Wave to load
+ */
+ public native void loadWave(HasWaveLoadHandlers source, String waveId) /*-{
+ this.loadWave(waveId, function() {
+ @com.google.gwt.wave.client.WaveEmbed::fireWaveLoadEvent(Lcom/google/gwt/wave/client/event/HasWaveLoadHandlers;Ljava/lang/String;)(source, waveId);
+ })
+ }-*/;
+
+ // Called from JSNI
+ @SuppressWarnings("unused")
+ private static void fireWaveLoadEvent(HasWaveLoadHandlers source,
+ String waveId) {
+ UncaughtExceptionHandler ueh = GWT.getUncaughtExceptionHandler();
+ WaveLoadEvent event = new WaveLoadEvent(waveId);
+
+ if (ueh != null) {
+ try {
+ source.fireEvent(event);
+ } catch (Exception ex) {
+ ueh.onUncaughtException(ex);
+ }
+ } else {
+ source.fireEvent(event);
+ }
+ }
+
+ /**
+ * Returns the ID of the created <iframe>
+ *
+ * @return the ID of the created <iframe>
+ */
+ public native String getFrameId() /*-{
+ return this.getFrameId();
+ }-*/;
+
+ /**
+ * Adds the current user as a participant to the wave.
+ * <p>
+ * NOTE: Not yet functional in developer sandbox!
+ */
+ public native void addParticipant() /*-{
+ this.addParticipant();
+ }-*/;
+
+ /**
+ * Adds a reply to the currently loaded wave. An empty reply will be added to
+ * the wave.
+ * <p>
+ * NOTE: Not yet functional in developer sandbox!
+ */
+ public native void addReply() /*-{
+ this.addReply();
+ }-*/;
+}
Added: trunk/src/main/java/com/google/gwt/wave/client/WaveWidget.java
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/WaveWidget.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/client/WaveWidget.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,65 @@
+package com.google.gwt.wave.client;
+
+import com.google.gwt.dom.client.Document;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.wave.client.event.HasWaveLoadHandlers;
+import com.google.gwt.wave.client.event.WaveLoadEvent;
+import com.google.gwt.wave.client.event.WaveLoadHandler;
+
+public class WaveWidget extends Widget implements HasWaveLoadHandlers {
+
+ private static final String UICONFIG_ERROR = "setUIConfig must be called before the widget is attached.";
+
+ private final WaveEmbed waveEmbed;
+
+ public WaveWidget(final String waveServer) {
+ setElement(Document.get().createDivElement());
+ this.waveEmbed = WaveEmbed.newInstance(waveServer);
+ }
+
+ public HandlerRegistration addWaveLoadHandler(final WaveLoadHandler handler) {
+ return addHandler(handler, WaveLoadEvent.getType());
+ }
+
+ /**
+ * Loads the given wave into the WaveWidget. This method may be called at
+ * any time.
+ */
+ public void loadWave(final String waveId) {
+ waveEmbed.loadWave(this, waveId);
+ }
+
+ @Override
+ public void onLoad() {
+ waveEmbed.init(getElement());
+ }
+
+ /**
+ * Set the UI configuration for the wave. This must be done before the panel
+ * is attached to the page.
+ *
+ * @param bgColor
+ * An HTML color for the background, like "#ffffff"
+ * @param color
+ * A color for the text, like "#000000"
+ * @param font
+ * A font style, like "sans"
+ * @param fontSize
+ * The font size, which must be expressed in points, as in "12pt"
+ */
+ public void setUIConfig(final String bgColor, final String color, final String font, final String fontSize) {
+ assert (!isAttached()) : UICONFIG_ERROR;
+ waveEmbed.setUIConfig(bgColor, color, font, fontSize);
+ }
+
+ // Package protected until this is functional on the developer sandbox
+ void addParticipant() {
+ waveEmbed.addParticipant();
+ }
+
+ // Package protected until this is functional on the developer sandbox
+ void addReply() {
+ waveEmbed.addReply();
+ }
+}
Added: trunk/src/main/java/com/google/gwt/wave/client/WaveWidgetTest.java
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/WaveWidgetTest.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/client/WaveWidgetTest.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,31 @@
+package com.google.gwt.wave.client;
+
+import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.GWT.UncaughtExceptionHandler;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.RootPanel;
+import com.google.gwt.wave.client.event.WaveLoadEvent;
+import com.google.gwt.wave.client.event.WaveLoadHandler;
+
+public class WaveWidgetTest implements EntryPoint {
+
+ public void onModuleLoad() {
+ GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
+ public void onUncaughtException(final Throwable e) {
+ Window.alert("Uncaught exception: " + e.getMessage());
+ }
+ });
+ final WaveWidget ww = new WaveWidget("http://wave.google.com/a/wavesandbox.com/");
+ ww.setUIConfig("#333", "#ccc", "sans", "12pt");
+
+ RootPanel.get().add(ww);
+ ww.addWaveLoadHandler(new WaveLoadHandler() {
+ public void onWaveLoad(final WaveLoadEvent event) {
+ Window.alert("Wave '" + event.getWaveId() + "' loaded!");
+ }
+ });
+ ww.loadWave("???");
+ }
+
+}
Added: trunk/src/main/java/com/google/gwt/wave/client/event/HasWaveLoadHandlers.java
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/event/HasWaveLoadHandlers.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/client/event/HasWaveLoadHandlers.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,8 @@
+package com.google.gwt.wave.client.event;
+
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public interface HasWaveLoadHandlers extends HasHandlers {
+ HandlerRegistration addWaveLoadHandler(WaveLoadHandler handler);
+}
Added: trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadEvent.java
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadEvent.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadEvent.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,88 @@
+/*
+ * 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 com.google.gwt.wave.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+/**
+ * Represents a selection event.
+ *
+ * @param <I>
+ * the type being selected
+ */
+public class WaveLoadEvent extends GwtEvent<WaveLoadHandler> {
+
+ /**
+ * Handler type.
+ */
+ private static Type<WaveLoadHandler> type;
+
+ /**
+ * Fires a selection event on all registered handlers in the handler
+ * manager.If no such handlers exist, this method will do nothing.
+ *
+ * @param <I>
+ * the selected item type
+ * @param source
+ * the source of the handlers
+ * @param selectedItem
+ * the selected item
+ */
+ public static <I> void fire(final HasWaveLoadHandlers source, final String waveId) {
+ if (type != null) {
+ final WaveLoadEvent event = new WaveLoadEvent(waveId);
+ source.fireEvent(event);
+ }
+ }
+
+ /**
+ * Gets the type associated with this event.
+ *
+ * @return returns the handler type
+ */
+ public static Type<WaveLoadHandler> getType() {
+ if (type == null) {
+ type = new Type<WaveLoadHandler>();
+ }
+ return type;
+ }
+
+ private final String waveId;
+
+ /**
+ * Creates a new selection event.
+ *
+ * @param selectedItem
+ * selected item
+ */
+ public WaveLoadEvent(final String waveId) {
+ this.waveId = waveId;
+ }
+
+ @Override
+ public final Type<WaveLoadHandler> getAssociatedType() {
+ return type;
+ }
+
+ public String getWaveId() {
+ return waveId;
+ }
+
+ @Override
+ protected void dispatch(final WaveLoadHandler handler) {
+ handler.onWaveLoad(this);
+ }
+}
Added: trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadHandler.java
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadHandler.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/client/event/WaveLoadHandler.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,7 @@
+package com.google.gwt.wave.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+public interface WaveLoadHandler extends EventHandler {
+ void onWaveLoad(WaveLoadEvent event);
+}
Added: trunk/src/main/java/com/google/gwt/wave/client/package.html
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/client/package.html 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/client/package.html 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,5 @@
+<html>
+<body>
+Core classes used in the Google Wave Embed API Library for GWT
+</body>
+</html>
Added: trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js
===================================================================
--- trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/com/google/gwt/wave/public/wave_embed.js 2009-07-22 20:31:08 UTC (rev 1138)
@@ -0,0 +1,149 @@
+// embed.js retreived from http://wave-api.appspot.com/public/embed.js on 2009-06-02
+var a, WAVEPANEL_nextId = 0;
+if(typeof gadgets == "undefined" || !gadgets.rpc)document.write('<script src="http://wave.google.com/gadgets/js/core:rpc?debug=1&c=1" type="text/javascript"><\/script>');
+function WavePanel(b) {
+ this.id_ = WAVEPANEL_nextId++;
+ this.frameId_ = "iframe_panel_" + this.id_;
+ this.eventListeners_ = {};
+ this.init_ = false;
+ this.waveRootUrl = b || "http://wave-devel.corp.google.com/a/google.com/"
+}
+WavePanel.prototype.getId = function() {
+ return this.id_
+};
+WavePanel.prototype.setContactProvider = function(b) {
+ if(this.init_)throw"Can only set contact provider before calling init";this.contactProvider_ = b
+};
+WavePanel.prototype.init = function(b, c) {
+ this.init_ = true;
+ if(this.initWaveId_ && this.initSearch_)throw"Both an initial wave ID and a search were specified";this.setupRpc_(c);
+ this.createFrame_(b, this.contactProvider_, this.initWaveId_, this.initSearch_, this.uiConfig_);
+ gadgets.rpc.setRelayUrl(this.getFrameId(), this.getRelayUrl_(), false);
+ delete this.initSearch_;
+ delete this.initWaveId_
+};
+WavePanel.rpcSetup_ = false;
+WavePanel.callbackQueue_ = {};
+WavePanel.nextCallbackId = 0;
+WavePanel.pushCallback_ = function(b) {
+ if(!b)return"";
+ var c = "" + WavePanel.nextCallbackId;
+ WavePanel.nextCallbackId++;
+ WavePanel.callbackQueue_[c] = b;
+ return c
+};
+WavePanel.popCallback_ = function(b) {
+ if(b == "")return null;
+ var c = WavePanel.callbackQueue_[b];
+ delete WavePanel.callbackQueue_[b];
+ return c
+};
+a = WavePanel.prototype;
+a.setupRpc_ = function(b) {
+ if(!this.rpcSetup_) {
+ this.rpcSetup_ = true;
+ var c = this;
+ gadgets.rpc.register("load_done", function() {
+ b && b()
+ });
+ var e = function(d) {
+ var f = WavePanel.popCallback_(d.a[0]);
+ f && f(d.a[1])
+ };
+ gadgets.rpc.register("load_wave_done", function() {
+ e(this)
+ });
+ gadgets.rpc.register("request_contacts", function() {
+ if(!c.contactProvider_)throw"Got a contacts request but no contact provider is set.";c.contactProvider_(this.a[0])
+ });
+ gadgets.rpc.registerDefault(function() {
+ var d = this.s, f = this.a[0], h = c.eventListeners_[d];
+ if(h)for(var g in h)h[g](f)
+ })
+ }
+};
+a.createFrame_ = function(b, c, e, d, f) {
+ var h = document.createElement("div");
+ h.innerHTML = '<iframe name="' + this.frameId_ + '" >';
+ var g = h.firstChild;
+ g.id = this.frameId_;
+ g.width = "100%";
+ g.height = "100%";
+ g.frameBorder = "no";
+ g.scrolling = "no";
+ g.marginHeight = 0;
+ g.marginWidth = 0;
+ g.className = "embed-iframe";
+ g.src = this.iframeUrl_(c, e, d, f);
+ b = b || document.body;
+ b.appendChild(g);
+ return g
+};
+a.iframeUrl_ = function(b, c, e, d) {
+ var f = [];
+ f.push("client.type=embedded");
+ f.push("parent=" + escape("http://" + window.location.host + window.location.pathname));
+ b && f.push("ext_contacts=1");
+ c && f.push("wave_id=" + encodeURIComponent(c));
+ e && f.push("search_query=" + encodeURIComponent(e));
+ if(d) {
+ d.bgcolor && f.push("bgcolor=" + encodeURIComponent(d.bgcolor));
+ d.color && f.push("color=" + encodeURIComponent(d.color));
+ d.font && f.push("font=" + encodeURIComponent(d.font));
+ d.fontsize && f.push("fontsize=" + encodeURIComponent(d.fontsize))
+ }return this.waveRootUrl + "?" + f.join("&")
+};
+a.addListener = function(b, c) {
+ var e = this.eventListeners_, d = e[b];
+ if(!d) {
+ d = [];
+ e[b] = d
+ }d.push(c)
+};
+a.getFrameId = function() {
+ return this.frameId_
+};
+a.getRelayUrl_ = function() {
+ var b = this.waveRootUrl, c = b.split("://");
+ if(c && c.length > 0) {
+ var e = c[c.length - 1];
+ b = c[0] + "://";
+ for(var d = 0;d < e.length;++d) {
+ if(e[d] == "/")break;
+ b += e[d]
+ }b += "/"
+ }return b + "gadgets/files/container/rpc_relay.html"
+};
+a.loadWave = function(b, c) {
+ if(this.init_) {
+ var e = WavePanel.pushCallback_(c);
+ gadgets.rpc.call(this.getFrameId(), "load_wave", null, e, b)
+ }else this.initWaveId_ = b
+};
+a.loadSearch = function(b, c) {
+ if(this.init_) {
+ var e = WavePanel.pushCallback_(c);
+ gadgets.rpc.call(this.getFrameId(), "digest_search", null, e, b)
+ }else this.initSearch_ = b
+};
+a.setUIConfig = function(b, c, e, d) {
+ if(this.init_)throw"Cannot change the UIConfig after Init has been called.";else this.uiConfig_ = {bgcolor:b, color:c, font:e, fontsize:d}
+};
+a.addParticipant = function() {
+ if(!this.init_)throw"Init not called.";gadgets.rpc.call(this.getFrameId(), "add_participant", null, "")
+};
+a.addReply = function(b, c) {
+ if(!this.init_)throw"Init not called.";var e = WavePanel.pushCallback_(c);
+ gadgets.rpc.call(this.getFrameId(), "add_reply", null, e, b)
+};
+a.provideContacts = function(b) {
+ if(!this.init_)throw"Init not called.";var c = [];
+ for(var e in b) {
+ var d = b[e];
+ c.push(e);
+ c.push(d.firstName);
+ c.push(d.lastName);
+ c.push(d.photoUrl)
+ }c.unshift(c.length / 4);
+ gadgets.rpc.call(this.getFrameId(), "provide_contacts", null, c)
+};
Modified: trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2009-07-22 20:31:08 UTC (rev 1138)
@@ -56,4 +56,6 @@
<!-- <set-property name="user.agent" value="gecko" /> -->
+ <inherits name='com.google.gwt.wave.Wave' />
+
</module>
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/cnt/BlogViewerPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -39,6 +39,7 @@
final ContentActionRegistry actionRegistry, final Provider<FileDownloadUtils> downloadProvider,
final Provider<MediaUtils> mediaUtils) {
super(BlogClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider, i18n, mediaUtils);
+ setUploadType(BlogClientTool.TYPE_UPLOADEDFILE);
}
public void init(final BlogViewerView view) {
@@ -48,7 +49,7 @@
@Override
protected void setState(final StateContentDTO state) {
super.setState(state);
- super.setContent(state, BlogClientTool.TYPE_UPLOADEDFILE);
+ super.setContent(state);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -23,6 +23,7 @@
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_FOLDER;
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_ROOT;
import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_UPLOADEDFILE;
+import static org.ourproject.kune.docs.client.DocumentClientTool.TYPE_WAVE;
import org.ourproject.kune.docs.client.cnt.DocumentViewer;
import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
@@ -80,6 +81,8 @@
createNewContentAction(TYPE_DOCUMENT, "images/nav/page_add.png", i18n.t("New document"), parentMenuTitleCtx,
Position.ctx, TYPE_ROOT, TYPE_FOLDER);
+ createWaveAction(TYPE_WAVE, parentMenuTitleCtx, Position.ctx, TYPE_ROOT, TYPE_FOLDER);
+
createTranslateAction(parentMenuTitle, TYPE_DOCUMENT, TYPE_FOLDER);
createContentRenameAction(parentMenuTitle, i18n.t("Rename"), contents);
createEditAction(parentMenuTitle, TYPE_DOCUMENT);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -32,6 +32,7 @@
public static final String TYPE_FOLDER = NAME + "." + "folder";
public static final String TYPE_DOCUMENT = NAME + "." + "doc";
public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
+ public static final String TYPE_WAVE = NAME + "." + FoldableAbstractClientTool.WAVE_SUFFIX;
public DocumentClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
final WsThemeManager wsThemePresenter, final WorkspaceSkeleton ws,
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentViewerPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -40,6 +40,8 @@
final Provider<MediaUtils> mediaUtils) {
super(DocumentClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider, i18n,
mediaUtils);
+ setUploadType(DocumentClientTool.TYPE_UPLOADEDFILE);
+ setWaveType(DocumentClientTool.TYPE_WAVE);
}
public void init(final DocumentViewerView view) {
@@ -49,6 +51,6 @@
@Override
protected void setState(final StateContentDTO state) {
super.setState(state);
- setContent(state, DocumentClientTool.TYPE_UPLOADEDFILE);
+ setContent(state);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/docs/server/DocumentServerTool.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -45,6 +45,7 @@
public static final String TYPE_FOLDER = NAME + "." + "folder";
public static final String TYPE_DOCUMENT = NAME + "." + "doc";
public static final String TYPE_UPLOADEDFILE = NAME + "." + ServerTool.UPLOADEDFILE_SUFFIX;
+ public static final String TYPE_WAVE = NAME + "." + ServerTool.WAVE_SUFFIX;
public static final String ROOT_NAME = "documents";
@@ -62,11 +63,11 @@
this.i18n = translationService;
}
- public void checkTypesBeforeContainerCreation(String parentTypeId, String typeId) {
+ public void checkTypesBeforeContainerCreation(final String parentTypeId, final String typeId) {
checkContainerTypeId(parentTypeId, typeId);
}
- public void checkTypesBeforeContentCreation(String parentTypeId, String typeId) {
+ public void checkTypesBeforeContentCreation(final String parentTypeId, final String typeId) {
checkContentTypeId(parentTypeId, typeId);
}
@@ -125,9 +126,10 @@
}
void checkContentTypeId(final String parentTypeId, final String typeId) {
- if (typeId.equals(TYPE_DOCUMENT) || typeId.equals(TYPE_UPLOADEDFILE)) {
+ if (typeId.equals(TYPE_DOCUMENT) || typeId.equals(TYPE_UPLOADEDFILE) || typeId.equals(TYPE_WAVE)) {
// ok valid content
if ((typeId.equals(TYPE_DOCUMENT) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))
+ || (typeId.equals(TYPE_WAVE) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))
|| (typeId.equals(TYPE_UPLOADEDFILE) && (parentTypeId.equals(TYPE_ROOT) || parentTypeId.equals(TYPE_FOLDER)))) {
// ok
} else {
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/cnt/GalleryViewerPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -40,6 +40,7 @@
final Provider<MediaUtils> mediaUtils) {
super(GalleryClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider, i18n,
mediaUtils);
+ setUploadType(GalleryClientTool.TYPE_UPLOADEDFILE);
}
public void init(final GalleryViewerView view) {
@@ -49,7 +50,7 @@
@Override
protected void setState(final StateContentDTO state) {
super.setState(state);
- setContent(state, GalleryClientTool.TYPE_UPLOADEDFILE);
+ setContent(state);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -51,6 +51,8 @@
StateContainerDTO addRoom(String user, StateToken parentToken, String name) throws DefaultException;
+ StateContentDTO addWave(String userHash, StateToken parentToken, String waveFileType, String waveId);
+
StateContentDTO delContent(String userHash, StateToken token) throws DefaultException;
StateAbstractDTO getContent(String userHash, StateToken token) throws DefaultException;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -51,6 +51,9 @@
void addRoom(String user, StateToken parentToken, String name, AsyncCallback<StateContainerDTO> callback);
+ void addWave(String userHash, StateToken parentToken, String waveFileType, String waveId,
+ AsyncCallback<StateContentDTO> asyncCallbackSimple);
+
void delContent(String userHash, StateToken token, AsyncCallback<StateContentDTO> asyncCallback);
void getContent(String user, StateToken newState, AsyncCallback<StateAbstractDTO> callback);
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Content.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -95,6 +95,7 @@
@Basic(optional = true)
private Date publishedOn;
+ // @NotNull??
private String typeId;
@OneToMany(cascade = CascadeType.ALL)
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -98,7 +98,7 @@
private final FinderService finderService;
@Inject
- public ContentRPC(FinderService finderService, final Provider<UserSession> userSessionProvider,
+ public ContentRPC(final FinderService finderService, final Provider<UserSession> userSessionProvider,
final AccessService accessService, final AccessRightsService rightsService,
final StateService stateService, final CreationService creationService, final GroupManager groupManager,
final XmppManager xmppManager, final ContentManager contentManager,
@@ -156,11 +156,8 @@
@Transactional(type = TransactionType.READ_WRITE)
public StateContentDTO addContent(final String userHash, final StateToken parentToken, final String title,
final String typeId) throws DefaultException {
- final User user = getCurrentUser();
- final Container container = accessService.accessToContainer(ContentUtils.parseId(parentToken.getFolder()),
- user, AccessRol.Editor);
- final Content addedContent = creationService.createContent(title, "", user, container, typeId);
- return getState(user, addedContent);
+ final String body = "";
+ return createContent(parentToken, title, typeId, body);
}
@Authenticated
@@ -202,6 +199,14 @@
}
@Authenticated
+ @Authorizated(actionLevel = ActionLevel.container, accessRolRequired = AccessRol.Editor, mustCheckMembership = false)
+ @Transactional(type = TransactionType.READ_WRITE)
+ public StateContentDTO addWave(final String userHash, final StateToken parentToken, final String typeId,
+ final String waveId) throws DefaultException {
+ return createContent(parentToken, "Wave embeded test", typeId, waveId);
+ }
+
+ @Authenticated
@Authorizated(accessRolRequired = AccessRol.Administrator)
@Transactional(type = TransactionType.READ_WRITE)
public StateContentDTO delContent(final String userHash, final StateToken token) throws DefaultException {
@@ -263,7 +268,7 @@
final Long contentId = ContentUtils.parseId(token.getDocument());
if (isUserLoggedIn()) {
- RateResult result = contentManager.rateContent(rater, contentId, value);
+ final RateResult result = contentManager.rateContent(rater, contentId, value);
return mapper.map(result, RateResultDTO.class);
} else {
throw new AccessViolationException();
@@ -352,7 +357,7 @@
|| status.equals(ContentStatusDTO.inTheDustbin)) {
throw new AccessViolationException();
}
- Content content = contentManager.setStatus(ContentUtils.parseId(token.getDocument()),
+ final Content content = contentManager.setStatus(ContentUtils.parseId(token.getDocument()),
ContentStatus.valueOf(status.toString()));
return getState(getCurrentUser(), content);
}
@@ -362,7 +367,7 @@
@Transactional(type = TransactionType.READ_WRITE)
public StateAbstractDTO setStatusAsAdmin(final String userHash, final StateToken token,
final ContentStatusDTO status) {
- Content content = contentManager.setStatus(ContentUtils.parseId(token.getDocument()),
+ final Content content = contentManager.setStatus(ContentUtils.parseId(token.getDocument()),
ContentStatus.valueOf(status.toString()));
return getState(getCurrentUser(), content);
}
@@ -390,6 +395,15 @@
return mapper.map(comment, CommentDTO.class);
}
+ private StateContentDTO createContent(final StateToken parentToken, final String title, final String typeId,
+ final String body) {
+ final User user = getCurrentUser();
+ final Container container = accessService.accessToContainer(ContentUtils.parseId(parentToken.getFolder()),
+ user, AccessRol.Editor);
+ final Content addedContent = creationService.createContent(title, body, user, container, typeId);
+ return getState(user, addedContent);
+ }
+
private Container createFolder(final String groupShortName, final Long parentFolderId, final String title,
final String typeId) throws DefaultException {
final User user = getCurrentUser();
@@ -401,9 +415,9 @@
@Authenticated(mandatory = false)
@Authorizated(accessRolRequired = AccessRol.Viewer)
- private StateAbstractDTO getContentOrDefContent(String userHash, StateToken stateToken, final User user,
- final Content content) {
- Long id = content.getId();
+ private StateAbstractDTO getContentOrDefContent(final String userHash, final StateToken stateToken,
+ final User user, final Content content) {
+ final Long id = content.getId();
if (id != null) {
// Content
return mapState(stateService.create(user, content), user);
@@ -418,18 +432,18 @@
return getUserSession().getUser();
}
- private StateContainerDTO getState(User user, Container container) {
- StateContainer state = stateService.create(user, container);
+ private StateContainerDTO getState(final User user, final Container container) {
+ final StateContainer state = stateService.create(user, container);
return mapState(state, user);
}
- private StateContentDTO getState(User user, Content content) {
- StateContent state = stateService.create(user, content);
+ private StateContentDTO getState(final User user, final Content content) {
+ final StateContent state = stateService.create(user, content);
return mapState(state, user);
}
private TagCloudResultDTO getSummaryTags(final Group group) {
- TagCloudResult result = tagManager.getTagCloudResultByGroup(group);
+ final TagCloudResult result = tagManager.getTagCloudResultByGroup(group);
return new TagCloudResultDTO(mapper.mapList(result.getTagCountList(), TagCountDTO.class), result.getMaxValue(),
result.getMinValue());
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/tool/ServerTool.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -34,6 +34,7 @@
/* Same constant in client */
public static final String UPLOADEDFILE_SUFFIX = "uploaded";
+ public static final String WAVE_SUFFIX = "wave";
void checkTypesBeforeContainerCreation(String parentTypeId, String typeId);
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/cnt/WikiViewerPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -39,6 +39,7 @@
final ContentActionRegistry actionRegistry, final Provider<FileDownloadUtils> downloadProvider,
final Provider<MediaUtils> mediaUtils) {
super(WikiClientTool.NAME, stateManager, session, toolbar, actionRegistry, downloadProvider, i18n, mediaUtils);
+ setUploadType(WikiClientTool.UPLOADEDFILE_SUFFIX);
}
public void init(final WikiViewerView view) {
@@ -48,6 +49,5 @@
@Override
protected void setState(final StateContentDTO state) {
super.setState(state);
- setContent(state, WikiClientTool.TYPE_UPLOADEDFILE);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -581,6 +581,28 @@
return uploadMedia;
}
+ protected ActionToolbarMenuAndItemDescriptor<StateToken> createWaveAction(final String waveFileType,
+ final String parentMenuTitle, final Position position, final String... registerInTypes) {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> addWave = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Editor, CONTEXT_TOPBAR, new Listener<StateToken>() {
+ public void onEvent(final StateToken parentToken) {
+ contentServiceProvider.get().addWave(session.getUserHash(), parentToken, waveFileType,
+ "wavesandbox.com!w+NdlzA9PU%B", new AsyncCallbackSimple<StateContentDTO>() {
+ public void onSuccess(final StateContentDTO state) {
+ stateManager.setRetrievedState(state);
+ }
+ });
+ }
+ });
+ addWave.setTextDescription(i18n.t("Add Wave"));
+ addWave.setParentMenuTitle(parentMenuTitle);
+ addWave.setMustBeAuthenticated(true);
+ addWave.setParentSubMenuTitle(i18n.t("New"));
+ // addContent.setIconUrl(iconUrl);
+ register(addWave, position, registerInTypes);
+ return addWave;
+ }
+
protected void downloadContent(final StateToken token) {
fileDownloadProvider.get().downloadFile(token);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/AbstractContentView.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -19,12 +19,15 @@
*/
package org.ourproject.kune.workspace.client.cnt;
+import com.calclab.suco.client.events.Listener0;
import com.google.gwt.user.client.ui.Widget;
public interface AbstractContentView {
public void setRawContent(final String content);
+ public void setWave(String waveId, Listener0 onLoaded);
+
void attach();
void detach();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPanel.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -26,6 +26,8 @@
import org.ourproject.kune.platf.client.ui.RoundedPanel;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import com.allen_sauer.gwt.log.client.Log;
+import com.calclab.suco.client.events.Listener0;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.HTML;
@@ -33,6 +35,9 @@
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.wave.client.WaveWidget;
+import com.google.gwt.wave.client.event.WaveLoadEvent;
+import com.google.gwt.wave.client.event.WaveLoadHandler;
public abstract class FoldableContentPanel extends AbstractContentPanel implements AbstractContentView {
@@ -86,6 +91,20 @@
setContent(html);
}
+ public void setWave(final String waveId, final Listener0 onLoaded) {
+ final WaveWidget waveWidget = new WaveWidget("http://wave.google.com/a/wavesandbox.com/");
+ waveWidget.setUIConfig("white", "black", "arial, sans", "10pt");
+ waveWidget.setHeight("100%");
+ waveWidget.addWaveLoadHandler(new WaveLoadHandler() {
+ public void onWaveLoad(final WaveLoadEvent event) {
+ Log.info("Wave '" + event.getWaveId() + "' loaded!");
+ onLoaded.onEvent();
+ }
+ });
+ waveWidget.loadWave(waveId);
+ setContent(waveWidget);
+ }
+
public void setWidgetAsContent(final Widget widget, final boolean setDefMargins) {
if (setDefMargins) {
widget.addStyleName(DEF_CONTENT_MARGINS_STYLE);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cnt/FoldableContentPresenter.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -32,10 +32,12 @@
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
import org.ourproject.kune.platf.client.ui.download.ImageSize;
+import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia.MediaUtils;
import org.ourproject.kune.workspace.client.AbstractFoldableContentActions;
import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.events.Listener0;
import com.calclab.suco.client.ioc.Provider;
public abstract class FoldableContentPresenter extends AbstractContentPresenter implements FoldableContent {
@@ -47,6 +49,9 @@
private final Provider<FileDownloadUtils> downloadProvider;
private final I18nTranslationService i18n;
private final Provider<MediaUtils> mediaUtils;
+ private String uploadType;
+ private String waveType;
+ private final Listener0 onWaveLoaded;
public FoldableContentPresenter(final String toolName, final StateManager stateManager, final Session session,
final ActionContentToolbar toolbar, final ActionRegistry<StateToken> actionRegistry,
@@ -64,56 +69,46 @@
setState(state);
}
});
+ onWaveLoaded = new Listener0() {
+ public void onEvent() {
+ NotifyUser.hideProgress();
+ NotifyUser.info("Wave loaded");
+ }
+ };
}
public String getToolName() {
return toolName;
}
+ public String getUploadType() {
+ return uploadType;
+ }
+
+ public String getWaveType() {
+ return waveType;
+ }
+
public void refreshState() {
setState(session.getContentState());
}
- protected void setContent(final StateContentDTO state, final String uploadedfileType) {
- String typeId = state.getTypeId();
- String contentBody = state.getContent();
- StateToken token = state.getStateToken();
- BasicMimeTypeDTO mimeType = state.getMimeType();
- if (typeId.equals(uploadedfileType)) {
- if (mimeType != null) {
- FileDownloadUtils fileDownloadUtils = downloadProvider.get();
- if (mimeType.isImage()) {
- view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token,
- ImageSize.sized), false);
- } else if (mimeType.isPdf()) {
- view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token,
- ImageSize.sized), true);
- } else if (mimeType.isMp3()) {
- view.setRawContent(mediaUtils.get().getMp3Embed(token));
- } else if (mimeType.isOgg()) {
- view.setRawContent(mediaUtils.get().getOggEmbed(token));
- } else if (mimeType.isFlv()) {
- view.setRawContent(mediaUtils.get().getFlvEmbed(token));
- } else if (mimeType.isAvi()) {
- view.setRawContent(mediaUtils.get().getAviEmbed(token));
- } else if (mimeType.isText()) {
- view.setContent(contentBody, true);
- } else {
- view.setNoPreview();
- }
- } else {
- view.setNoPreview();
- }
+ public void setUploadType(final String uploadType) {
+ this.uploadType = uploadType;
+ }
+
+ public void setWaveType(final String waveType) {
+ this.waveType = waveType;
+ }
+
+ protected void setContent(final StateContentDTO state) {
+ final String typeId = state.getTypeId();
+ if (typeId.equals(getUploadType())) {
+ setUploadedContent(state);
+ } else if (typeId.equals(getWaveType())) {
+ setWaveContent(state);
} else {
- if ((contentBody == null || contentBody.length() == 0)) {
- if (state.getContentRights().isEditable()) {
- view.setInfoMessage(i18n.t("There is no text in this page. Feel free to edit this page"));
- } else {
- view.setInfoMessage(i18n.t("There is no text in this page"));
- }
- } else {
- view.setRawContent(contentBody);
- }
+ setNormalContent(state);
}
view.attach();
}
@@ -121,7 +116,7 @@
protected void setState(final StateAbstractDTO state) {
toolbar.detach();
if (state instanceof StateContainerDTO) {
- StateContainerDTO stateCntCtx = (StateContainerDTO) state;
+ final StateContainerDTO stateCntCtx = (StateContainerDTO) state;
if (stateCntCtx.getToolName().equals(toolName)) {
// This tool
if (stateCntCtx instanceof StateContentDTO) {
@@ -134,13 +129,13 @@
}
protected void setState(final StateContainerDTO state) {
- ActionItemCollection<StateToken> collection = getActionCollection(state, state.getContainerRights());
+ final ActionItemCollection<StateToken> collection = getActionCollection(state, state.getContainerRights());
setToolbar(collection);
attach();
}
protected void setState(final StateContentDTO state) {
- ActionItemCollection<StateToken> collection = getActionCollection(state, state.getContentRights());
+ final ActionItemCollection<StateToken> collection = getActionCollection(state, state.getContentRights());
setToolbar(collection);
}
@@ -150,11 +145,63 @@
true);
}
+ private String getContentBody(final StateContentDTO state) {
+ final String contentBody = state.getContent();
+ return contentBody;
+ }
+
+ private void setNormalContent(final StateContentDTO state) {
+ final String contentBody = getContentBody(state);
+ if ((contentBody == null || contentBody.length() == 0)) {
+ if (state.getContentRights().isEditable()) {
+ view.setInfoMessage(i18n.t("There is no text in this page. Feel free to edit this page"));
+ } else {
+ view.setInfoMessage(i18n.t("There is no text in this page"));
+ }
+ } else {
+ view.setRawContent(contentBody);
+ }
+ }
+
private void setToolbar(final ActionItemCollection<StateToken> collection) {
toolbar.disableMenusAndClearButtons();
toolbar.addActions(collection, AbstractFoldableContentActions.CONTENT_TOPBAR);
- ;
toolbar.attach();
}
+ private void setUploadedContent(final StateContentDTO state) {
+ final String contentBody = state.getContent();
+ final StateToken token = state.getStateToken();
+ final BasicMimeTypeDTO mimeType = state.getMimeType();
+ if (mimeType != null) {
+ final FileDownloadUtils fileDownloadUtils = downloadProvider.get();
+ if (mimeType.isImage()) {
+ view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token,
+ ImageSize.sized), false);
+ } else if (mimeType.isPdf()) {
+ view.showImage(fileDownloadUtils.getImageUrl(token), fileDownloadUtils.getImageResizedUrl(token,
+ ImageSize.sized), true);
+ } else if (mimeType.isMp3()) {
+ view.setRawContent(mediaUtils.get().getMp3Embed(token));
+ } else if (mimeType.isOgg()) {
+ view.setRawContent(mediaUtils.get().getOggEmbed(token));
+ } else if (mimeType.isFlv()) {
+ view.setRawContent(mediaUtils.get().getFlvEmbed(token));
+ } else if (mimeType.isAvi()) {
+ view.setRawContent(mediaUtils.get().getAviEmbed(token));
+ } else if (mimeType.isText()) {
+ view.setContent(contentBody, true);
+ } else {
+ view.setNoPreview();
+ }
+ } else {
+ view.setNoPreview();
+ }
+ }
+
+ private void setWaveContent(final StateContentDTO state) {
+ NotifyUser.showProgressLoading();
+ final String waveId = getContentBody(state);
+ view.setWave(waveId, onWaveLoaded);
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntityWorkspace.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -61,8 +61,9 @@
mainFitPanel = new Panel();
mainFitPanel.setLayout(new FitLayout());
mainFitPanel.setBorder(false);
+ mainFitPanel.setAutoScroll(false);
- Panel mainAnchorLayout = new Panel();
+ final Panel mainAnchorLayout = new Panel();
mainAnchorLayout.setLayout(new AnchorLayout());
mainAnchorLayout.setBorder(false);
@@ -133,7 +134,7 @@
contentWrap.add(contentBottomBar.getPanel(), new BorderLayoutData(RegionPosition.SOUTH));
contextWrap.add(contextBottomBar.getPanel(), new BorderLayoutData(RegionPosition.SOUTH));
- BorderLayoutData eastData = new BorderLayoutData(RegionPosition.EAST);
+ final BorderLayoutData eastData = new BorderLayoutData(RegionPosition.EAST);
contextWrap.setWidth(175);
eastData.setUseSplitTips(true);
eastData.setCollapseModeMini(true);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -26,6 +26,7 @@
public abstract class FoldableAbstractClientTool extends AbstractClientTool {
public static final String UPLOADEDFILE_SUFFIX = "uploaded";
+ public static final String WAVE_SUFFIX = "wave";
protected final ContentCapabilitiesRegistry contentCapabilitiesRegistry;
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java 2009-07-22 15:12:39 UTC (rev 1137)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/IntegrationTestHelper.java 2009-07-22 20:31:08 UTC (rev 1138)
@@ -28,7 +28,7 @@
// memory
// test_db: use
// mysql
- bindConstant().annotatedWith(JpaUnit.class).to("test");
+ bindConstant().annotatedWith(JpaUnit.class).to("test_db");
bindConstant().annotatedWith(PropertiesFileName.class).to("kune.properties");
bind(HttpServletRequest.class).to(HttpServletRequestMocked.class);
}
1
0
Author: vjrj
Date: 2009-07-22 17:12:39 +0200 (Wed, 22 Jul 2009)
New Revision: 1137
Modified:
trunk/TODO
trunk/pom.xml
Log:
Complete - task Hibernate upgraded (delete test dbs and indexes)
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2009-07-22 11:56:12 UTC (rev 1136)
+++ trunk/TODO 2009-07-22 15:12:39 UTC (rev 1137)
@@ -11,6 +11,9 @@
Use org-mode in emacs to easy manage this file
* SHORT-TERM (URGENT)
+** Use hibernate cache
+ http://ehcache.sourceforge.net/documentation/openjpa_provider.html
+ http://ehcache.sourceforge.net/documentation/hibernate.html
** Do something with jetty/jruby alias issue
http://jetty.mortbay.org/jetty5/faq/faq_s_400-Security_t_Aliases.html
** Use of webdriver instead of plain selenium
@@ -171,6 +174,7 @@
2007-12-21 10:35:16,197 [btpool0-5] DEBUG - ContentManagerDefault.createContent EXCEPTION => javax.persistence.Entity
** vjrj <v> IconHyperlink.java and IconLabel.java to gwt1.5
+
* MID-TERM
** TODO <v> karma, reputation, trust metrics:
http://wiki.couchsurfing.com/en/Trust
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-07-22 11:56:12 UTC (rev 1136)
+++ trunk/pom.xml 2009-07-22 15:12:39 UTC (rev 1137)
@@ -157,13 +157,13 @@
<!-- hibernate JPA -->
<dependency>
<groupId>org.hibernate</groupId>
- <artifactId>hibernate-search</artifactId>
- <version>3.1.0.GA</version>
+ <artifactId>hibernate-core</artifactId>
+ <version>3.3.1.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
- <artifactId>hibernate</artifactId>
- <version>3.2.6.ga</version>
+ <artifactId>hibernate-validator</artifactId>
+ <version>3.1.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
@@ -172,11 +172,21 @@
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
- <artifactId>hibernate-validator</artifactId>
- <version>3.0.0.ga</version>
+ <artifactId>hibernate-commons-annotations</artifactId>
+ <version>3.3.0.ga</version>
</dependency>
+ <!--
+ <dependency> <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-ehcache</artifactId>
+ <version>3.3.1.GA</version> </dependency>
+ -->
<dependency>
<groupId>org.hibernate</groupId>
+ <artifactId>hibernate-search</artifactId>
+ <version>3.1.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
</dependency>
1
0
22 Jul '09
Author: vjrj
Date: 2009-07-22 13:56:12 +0200 (Wed, 22 Jul 2009)
New Revision: 1136
Added:
trunk/pom.xml.net
Modified:
trunk/TROUBLESHOOT
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java
trunk/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java
trunk/war/WEB-INF/lib/gwt-servlet.jar
Log:
Incomplete - task Entity Properties (Group/User preferences)
Modified: trunk/TROUBLESHOOT
===================================================================
--- trunk/TROUBLESHOOT 2009-07-19 18:10:48 UTC (rev 1135)
+++ trunk/TROUBLESHOOT 2009-07-22 11:56:12 UTC (rev 1136)
@@ -46,3 +46,9 @@
Connections could not be acquired from the underlying database
We have problems testing all test together from eclipse and using real db (not the h2 memory db)
+
+=== Too many files open ===
+
+If running all the Kune test you get errors about "Too many files open" see:
+http://code.google.com/p/gwt-examples/wiki/gwtEclipseFaqs
+about how to fix it in your system.
\ No newline at end of file
Added: trunk/pom.xml.net
===================================================================
--- trunk/pom.xml.net 2009-07-19 18:10:48 UTC (rev 1135)
+++ trunk/pom.xml.net 2009-07-22 11:56:12 UTC (rev 1136)
@@ -0,0 +1,826 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.ourproject</groupId>
+ <artifactId>kune</artifactId>
+ <packaging>jar</packaging>
+ <version>0.0.6</version>
+ <description>
+ kune free/open/libre collaboration platform
+ </description>
+ <name>kune</name>
+ <url>http://kune.ourproject.org</url>
+ <properties>
+ <gwtVersion>1.7.0</gwtVersion>
+ </properties>
+ <dependencies>
+ <!-- guice -->
+ <dependency>
+ <groupId>com.google.code.guice</groupId>
+ <artifactId>guice</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.guice</groupId>
+ <artifactId>guice-servlet</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>aopalliance</groupId>
+ <artifactId>aopalliance</artifactId>
+ <version>1.0</version>
+ </dependency>
+
+ <!-- G WT deps (from central repo) -->
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-servlet</artifactId>
+ <version>${gwtVersion}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-user</artifactId>
+ <version>${gwtVersion}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-dev</artifactId>
+ <version>${gwtVersion}</version>
+ <classifier>${platform}-libs</classifier>
+ <type>zip</type>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-dev</artifactId>
+ <version>${gwtVersion}</version>
+ <classifier>${platform}</classifier>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-incubator</artifactId>
+ <version>march-02-2009</version>
+ <scope>provided</scope>
+ </dependency>
+ <!--
+ <dependency> <groupId>com.extjs</groupId>
+ <artifactId>gxt</artifactId> <version>1.0-beta2</version>
+ </dependency>
+ -->
+ <dependency>
+ <groupId>org.cobogw</groupId>
+ <artifactId>gwt</artifactId>
+ <version>1.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>com.gwtext</groupId>
+ <artifactId>gwtext</artifactId>
+ <version>2.0.5</version>
+ </dependency>
+ <dependency>
+ <groupId>com.gwtextux</groupId>
+ <artifactId>gwtextux</artifactId>
+ <version>0.4.0.924</version>
+ </dependency>
+ <dependency>
+ <groupId>com.allen_sauer.gwt.log.gwt-log</groupId>
+ <artifactId>gwt-log</artifactId>
+ <version>2.6.2</version>
+ </dependency>
+ <dependency>
+ <groupId>com.allen_sauer.gwt.voices.gwt-voices</groupId>
+ <artifactId>gwt-voices</artifactId>
+ <version>1.6.0</version>
+ </dependency>
+
+ <!-- utilities -->
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.dozer</groupId>
+ <artifactId>dozer</artifactId>
+ <version>4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.calclab</groupId>
+ <artifactId>suco</artifactId>
+ <version>0.6.1</version>
+ </dependency>
+ <dependency>
+ <groupId>jmagick</groupId>
+ <artifactId>jmagick</artifactId>
+ <version>6.2.6-0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.xwiki.platform</groupId>
+ <artifactId>xwiki-web-gwt-dom</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <!-- <version>2.0-SNAPSHOT-g164</version> -->
+ </dependency>
+
+ <!-- xmpp -->
+ <dependency>
+ <groupId>com.calclab.emite</groupId>
+ <artifactId>emite</artifactId>
+ <version>0.4.7</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jivesoftware.smack</groupId>
+ <artifactId>smack</artifactId>
+ <version>3.0.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jivesoftware.smackx</groupId>
+ <artifactId>smackx</artifactId>
+ <version>3.0.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jivesoftware.smackx.debugger</groupId>
+ <artifactId>smackx-debugger</artifactId>
+ <version>3.0.4</version>
+ </dependency>
+
+ <!-- mysql -->
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>5.0.5</version>
+ </dependency>
+
+ <!-- hibernate JPA -->
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-search</artifactId>
+ <version>3.1.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate</artifactId>
+ <version>3.2.6.ga</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-annotations</artifactId>
+ <version>3.4.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>3.0.0.ga</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <version>3.4.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-tools</artifactId>
+ <version>3.2.3.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>c3p0</groupId>
+ <artifactId>c3p0</artifactId>
+ <version>0.9.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.wideplay</groupId>
+ <artifactId>warp-persist</artifactId>
+ <version>1.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.5.2</version>
+ </dependency>
+
+ <!-- REST: xml and json (stax) -->
+ <dependency>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ <version>1.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ <version>1.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.jettison</groupId>
+ <artifactId>jettison</artifactId>
+ <version>1.0-RC2</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.json-lib</groupId>
+ <artifactId>json-lib</artifactId>
+ <version>2.1</version>
+ <classifier>jdk15</classifier>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2</version>
+ </dependency>
+
+ <!-- File upload -->
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ <version>1.7.0</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-fileupload</groupId>
+ <artifactId>commons-fileupload</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+
+ <!-- db upgrades -->
+ <dependency>
+ <groupId>org.liquibase</groupId>
+ <artifactId>liquibase-core</artifactId>
+ <version>1.7.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.liquibase</groupId>
+ <artifactId>liquibase-plugin</artifactId>
+ <version>1.7.0.0</version>
+ </dependency>
+
+ <!-- jetty dependencies -->
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>6.1.5</version>
+ <!--
+ <version>7.0.0.pre5</version>
+ -->
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>maven-jetty-plugin</artifactId>
+ <!--
+ <artifactId>jetty-maven-plugin</artifactId>
+ <version>7.0.0.1beta0</version>
+ -->
+ <version>6.1.5</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.4</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- testing dependencies -->
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <version>1.6</version>
+ </dependency>
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <version>1.0.20070617</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.4</version>
+ <!--
+ <scope>test</scope>
+ -->
+ </dependency>
+ <dependency>
+ <groupId>org.openqa.selenium.client-drivers</groupId>
+ <artifactId>selenium-java-client-driver</artifactId>
+ <version>1.0-beta-1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- public side -->
+ <dependency>
+ <groupId>org.jruby.rack</groupId>
+ <artifactId>jruby-rack</artifactId>
+ <version>0.9.4</version>
+ </dependency>
+ </dependencies>
+ <!--
+ http://gwt-maven.googlecode.com/svn/docs/maven-googlewebtoolkit2-plugin/ind…
+ -->
+ <pluginRepositories>
+ <pluginRepository>
+ <id>gwt-maven</id>
+ <url>http://gwt-maven.googlecode.com/svn/trunk/mavenrepo</url>
+ </pluginRepository>
+ <pluginRepository>
+ <id>Codehaus Snapshots</id>
+ <url>http://snapshots.repository.codehaus.org/</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled> <!-- Workaround for MNG-2974, see note below -->
+ </releases>
+ </pluginRepository>
+ </pluginRepositories>
+ <repositories>
+ <repository>
+ <id>Codehaus Snapshots</id>
+ <url>http://snapshots.repository.codehaus.org/</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ <repository>
+ <id>repository.jboss.org</id>
+ <name>JBoss Maven Repository</name>
+ <url>http://repository.jboss.org/maven2</url>
+ <layout>default</layout>
+ </repository>
+ <repository>
+ <id>dyndns-repo</id>
+ <url>http://maven.dyndns.org/2</url>
+ </repository>
+ <repository>
+ <id>gwt-maven</id>
+ <url>
+ http://gwt-maven.googlecode.com/svn/trunk/mavenrepo/
+ </url>
+ </repository>
+ <repository>
+ <id>kune-maven</id>
+ <url>http://kune.ourproject.org/mavenrepo/</url>
+ </repository>
+ <repository>
+ <id>gwtext</id>
+ <url>http://www.gwt-ext.com/maven2/</url>
+ </repository>
+ <repository>
+ <id>openqa.org</id>
+ <name>Openqa Release Repository</name>
+ <url>http://archiva.openqa.org/repository/releases</url>
+ <layout>default</layout>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </repository>
+ <repository>
+ <id>openqa.org</id>
+ <name>Openqa Snapshot Repository</name>
+ <url>http://archiva.openqa.org/repository/snapshots</url>
+ <layout>default</layout>
+ <snapshots>
+ <enabled>true</enabled>
+ <updatePolicy>daily</updatePolicy>
+ <checksumPolicy>ignore</checksumPolicy>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ <repository>
+ <id>xwiki</id>
+ <name>XWiki Repository</name>
+ <url>http://maven.xwiki.org/snapshots</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ <updatePolicy>daily</updatePolicy>
+ <checksumPolicy>warn</checksumPolicy>
+ </snapshots>
+ </repository>
+ </repositories>
+ <issueManagement>
+ <system>kune issues list at ourproject.org</system>
+ <url>http://ourproject.org/tracker/?group_id=407</url>
+ </issueManagement>
+ <developers>
+ <developer>
+ <id>dani</id>
+ <name>Daniel Gómez Blasco</name>
+ <email>danigb(a)gmail.com</email>
+ </developer>
+ <developer>
+ <name>Samer Hassan</name>
+ <email>samer2004(a)gmail.com</email>
+ </developer>
+ <developer>
+ <name>Vicente J. Ruiz Jurado</name>
+ <email>vjrj(a)ourproject.org</email>
+ </developer>
+ </developers>
+ <scm>
+ <url>svn://scm.ourproject.org/svnroot/kune/trunk</url>
+ </scm>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <forkMode>pertest</forkMode>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ <!--
+ Uncomment and run mvn with -X -e if we have same compile
+ problems <compilerArgument>-verbose</compilerArgument>
+ <fork>true</fork> <verbose>true</verbose>
+ -->
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>com.totsp.gwt</groupId>
+ <artifactId>maven-googlewebtoolkit2-plugin</artifactId>
+ <version>2.0-RC1</version>
+ <configuration>
+ <logLevel>INFO</logLevel>
+ <!-- <style>OBF or PRETTY</style> -->
+ <style>PRETTY</style>
+ <!--
+ <output>${project.build.directory}/gwt/www</output>
+ -->
+ <logLevel>INFO</logLevel>
+ <noServer>true</noServer>
+ <extraJvmArgs>-Xmx640m</extraJvmArgs>
+ <gwtVersion>${gwtVersion}</gwtVersion>
+ <output>war/</output>
+ <runTarget>ws/Kune.html</runTarget>
+ <compileTargets>
+ <compileTarget>org.ourproject.kune.app.Kune</compileTarget>
+ </compileTargets>
+ <generatorRootClasses>
+ <value>org.ourproject.kune.MyBean</value>
+ </generatorRootClasses>
+ <generatorDestinationPackage> org.ourproject.kune.app.Kune </generatorDestinationPackage>
+ <generateGettersAndSetters> true </generateGettersAndSetters>
+ <generatePropertyChangeSupport> true </generatePropertyChangeSupport>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <!-- <goal>mergewebxml</goal> -->
+ <!-- <goal>compile</goal> -->
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.0</version>
+ <configuration>
+ <webXml>${project.build.directory}/WEB-INF/web.xml</webXml>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <downloadSources>true</downloadSources>
+ <downloadJavadocs>true</downloadJavadocs>
+ <wtpversion>1.5</wtpversion>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>maven-jetty-plugin</artifactId>
+ <version>6.1.5</version>
+ <!--
+ <artifactId>jetty-maven-plugin</artifactId>
+ <version>7.0.0.1beta0</version>
+ -->
+ <configuration>
+ <contextPath>/</contextPath>
+ <webAppSourceDirectory>war</webAppSourceDirectory>
+ <reload>manual</reload>
+ <scanIntervalSeconds>0</scanIntervalSeconds>
+ </configuration>
+ </plugin>
+ <!--
+ <plugin> <groupId>org.codehaus.mojo</groupId>
+ <artifactId>deb-maven-plugin</artifactId>
+ <version>1.0-SNAPSHOT</version> <configuration>
+ <description>kune free/open/libre collaboration
+ platform</description> <maintainer>Kune Development Team
+ <kune-devel(a)lists.ourproject.org></maintainer>
+ <section>web</section> <priority>optional</priority>
+ <architecture>all</architecture> </configuration> <executions>
+ <execution> <goals> <goal>deb</goal> </goals> </execution>
+ </executions> </plugin>
+ -->
+ <plugin>
+ <groupId>org.liquibase</groupId>
+ <artifactId>liquibase-plugin</artifactId>
+ <version>1.7.0.0</version>
+ <executions>
+ <execution>
+ <phase>process-resources</phase>
+ <configuration>
+ <changeLogFile>
+ src/main/resources/db/liquibase_changelog.xml </changeLogFile>
+ <driver>com.mysql.jdbc.Driver</driver>
+ <url>jdbc:mysql://localhost/kune_dev</url>
+ <username>kune</username>
+ <password>db4kune</password>
+ <verbose>true</verbose>
+ </configuration>
+ <!--
+ <configuration> <verbose>true</verbose> <propertiesFile>
+ src/main/resources/db/liquibase.properties
+ </propertiesFile> </configuration>
+ -->
+ <goals>
+ <goal>update</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.2</version>
+ <executions>
+ <execution>
+ <id>core</id>
+ <phase>package</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ <configuration>
+ <classifier>core</classifier>
+ <includes>
+ <include>**/KunePlatform.gwt.xml**</include>
+ <include>**/i18n/I18nTranslationService.**</include>
+ <include>**/i18n/I18nTranslationServiceMocked.**</include>
+ <include>**/TextUtils.**</include>
+ <include>**/IconLabelEditable.**</include>
+ <include>**/QuickTipsHelper.**</include>
+ <include>**/RichText.gwt.xml**</include>
+ <include>**/BasicDialog.**</include>
+ <include>**/HorizontalLine.**</include>
+ <include>**/AbstractLabel.**</include>
+ <include>**/IconLabel.**</include>
+ <include> **/EditableIconLabel.** </include>
+ <include> **/EditableClickListener.** </include>
+ <include>**/KuneStringUtils.**</include>
+ <include>**/IconHyperlink*.**</include>
+ <include>**/LabelWrapper*.**</include>
+ <include>**/KuneUiUtils.**</include>
+ <include>**/View.**</include>
+ <!--
+ <include>**/platf/**</include>
+ <include>**/platf/client/extend/**</include>
+ <include>**/platf/client/*java</include>
+ <include>**/platf/client/app/**</include>
+ <include>**/platf/client/dispatch/**</include>
+ -->
+ </includes>
+ </configuration>
+ </execution>
+ <execution>
+ <id>helloworldmodule</id>
+ <phase>package</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ <configuration>
+ <classifier>helloworldmodule</classifier>
+ <includes>
+ <include>**/HelloWorld*</include>
+ </includes>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>selenium-maven-plugin</artifactId>
+ <configuration>
+ <port>4441</port>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>start-server</goal>
+ </goals>
+ <configuration>
+ <background>true</background>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <forkMode>pertest</forkMode>
+ <!--
+ Skip the normal tests, we'll run them in the
+ integration-test phase
+ -->
+ <skip>true</skip>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <skip>false</skip>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <!--
+ <plugin> <artifactId>maven-clean-plugin</artifactId>
+ <version>2.2</version> <configuration> <filesets> <fileset>
+ <directory>src/main/webapp/gwt/</directory> <includes>
+ <include>**/org.ourproject.kune.app.Kune*</include>
+ <followSymlinks>false</followSymlinks> </includes> </fileset>
+ </filesets> </configuration> </plugin>
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-dev</artifactId>
+ <version>${gwtVersion}</version>
+ <classifier>${platform}-libs</classifier>
+ <type>zip</type>
+ <overWrite>false</overWrite>
+ <outputDirectory>${settings.localRepository}/com/google/gwt/gwt-dev/${gwtVersion}</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ <outputDirectory>war/WEB-INF/classes</outputDirectory>
+ <testOutputDirectory>war/WEB-INF/test-classes</testOutputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ </resource>
+ <resource>
+ <directory>src/main/java</directory>
+ </resource>
+ </resources>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jxr-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <linkXref>true</linkXref>
+ <sourceEncoding>utf-8</sourceEncoding>
+ <minimumTokens>100</minimumTokens>
+ <targetJdk>1.5</targetJdk>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <systemProperties>
+ <property>
+ <name> net.sourceforge.cobertura.datafile </name>
+ <value>
+ ${project.reporting.directory}/cobertura/cobertura.ser </value>
+ </property>
+ </systemProperties>
+ <forkMode>pertest</forkMode>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jdepend-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </reporting>
+
+ <!-- profiles (with activation per platform) -->
+ <profiles>
+ <profile>
+ <id>gwt-dev-windows</id>
+ <properties>
+ <platform>windows</platform>
+ </properties>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ <os>
+ <family>windows</family>
+ </os>
+ </activation>
+ <!-- FIXME: put here a similar temp directory to linux/unix systems -->
+ <build>
+ <directory>target/</directory>
+ </build>
+ <reporting>
+ <outputDirectory>target/</outputDirectory>
+ </reporting>
+ </profile>
+ <profile>
+ <id>gwt-dev-mac</id>
+ <properties>
+ <platform>mac</platform>
+ </properties>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ <os>
+ <family>mac</family>
+ </os>
+ </activation>
+ <build>
+ <directory>/var/tmp/kune-target/</directory>
+ </build>
+ <reporting>
+ <outputDirectory>/var/tmp/kune-target/</outputDirectory>
+ </reporting>
+ </profile>
+ <profile>
+ <id>gwt-dev-linux</id>
+ <properties>
+ <platform>linux</platform>
+ </properties>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ <os>
+ <name>linux</name>
+ </os>
+ </activation>
+ <build>
+ <directory>/var/tmp/kune-target/</directory>
+ </build>
+ <reporting>
+ <outputDirectory>/var/tmp/kune-target/</outputDirectory>
+ </reporting>
+ </profile>
+ </profiles>
+</project>
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java 2009-07-22 11:56:12 UTC (rev 1136)
@@ -30,6 +30,7 @@
import org.apache.lucene.queryParser.MultiFieldQueryParser;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.search.Query;
+import org.hibernate.exception.ConstraintViolationException;
import org.ourproject.kune.platf.client.dto.GroupType;
import org.ourproject.kune.platf.client.errors.AccessViolationException;
import org.ourproject.kune.platf.client.errors.DefaultException;
@@ -153,7 +154,7 @@
initGroup(user, userGroup, wantPersonalHomepage ? serverToolRegistry.getToolsForUserKeys()
: ServerToolRegistry.emptyToolList);
super.persist(user, User.class);
- } catch (final EntityExistsException e) {
+ } catch (final ConstraintViolationException e) {
throw new GroupNameInUseException();
}
return userGroup;
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java 2009-07-22 11:56:12 UTC (rev 1136)
@@ -43,6 +43,7 @@
import org.ourproject.kune.platf.server.domain.User;
import org.ourproject.kune.platf.server.manager.I18nCountryManager;
import org.ourproject.kune.platf.server.manager.I18nLanguageManager;
+import org.ourproject.kune.platf.server.manager.PropertiesManager;
import org.ourproject.kune.platf.server.manager.PropertyGroupManager;
import org.ourproject.kune.platf.server.manager.UserManager;
import org.ourproject.kune.platf.server.properties.ChatProperties;
@@ -62,12 +63,13 @@
private final I18nTranslationService i18n;
private final PropertyGroupManager propGroupManager;
private PropertyGroup userPropGroup;
+ private final PropertiesManager propManager;
@Inject
public UserManagerDefault(final Provider<EntityManager> provider, final User finder,
final I18nLanguageManager languageManager, final I18nCountryManager countryManager,
final XmppManager xmppManager, final ChatProperties properties, final I18nTranslationService i18n,
- final PropertyGroupManager propGroupManager) {
+ final PropertyGroupManager propGroupManager, final PropertiesManager propManager) {
super(provider, User.class);
this.finder = finder;
this.languageManager = languageManager;
@@ -76,23 +78,29 @@
this.properties = properties;
this.i18n = i18n;
this.propGroupManager = propGroupManager;
+ this.propManager = propManager;
}
public User createUser(final String shortName, final String longName, final String email, final String passwd,
final String langCode, final String countryCode, final String timezone) throws I18nNotFoundException {
+ I18nLanguage language;
+ I18nCountry country;
+ TimeZone tz;
try {
- final I18nLanguage language = languageManager.findByCode(langCode);
- final I18nCountry country = countryManager.findByCode(countryCode);
- final TimeZone tz = TimeZone.getTimeZone(timezone);
- if (userPropGroup == null) {
- userPropGroup = propGroupManager.find(User.PROPS_ID);
- }
- final User user = new User(shortName, longName, email, passwd, language, country, tz, new Properties(
- userPropGroup));
- return user;
+ language = languageManager.findByCode(langCode);
+ country = countryManager.findByCode(countryCode);
+ tz = TimeZone.getTimeZone(timezone);
} catch (final NoResultException e) {
throw new I18nNotFoundException();
}
+ if (userPropGroup == null) {
+ userPropGroup = propGroupManager.find(User.PROPS_ID);
+ }
+ final Properties userProp = new Properties(userPropGroup);
+ propManager.persist(userProp);
+ final User user = new User(shortName, longName, email, passwd, language, country, tz, userProp);
+ return user;
+
}
@Override
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java 2009-07-19 18:10:48 UTC (rev 1135)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/PersistencePreLoadedDataTest.java 2009-07-22 11:56:12 UTC (rev 1136)
@@ -15,11 +15,13 @@
import org.ourproject.kune.platf.server.domain.I18nCountry;
import org.ourproject.kune.platf.server.domain.I18nLanguage;
import org.ourproject.kune.platf.server.domain.License;
+import org.ourproject.kune.platf.server.domain.PropertyGroup;
import org.ourproject.kune.platf.server.domain.User;
import org.ourproject.kune.platf.server.manager.GroupManager;
import org.ourproject.kune.platf.server.manager.I18nCountryManager;
import org.ourproject.kune.platf.server.manager.I18nLanguageManager;
import org.ourproject.kune.platf.server.manager.LicenseManager;
+import org.ourproject.kune.platf.server.manager.PropertyGroupManager;
import org.ourproject.kune.platf.server.manager.UserManager;
import com.google.inject.Inject;
@@ -50,6 +52,8 @@
protected I18nLanguageManager languageManager;
@Inject
protected I18nCountryManager countryManager;
+ @Inject
+ protected PropertyGroupManager propGroupManager;
protected User user;
protected License defLicense;
@@ -77,6 +81,10 @@
assertEquals(0, userFinder.getAll().size());
assertEquals(0, groupFinder.getAll().size());
assertEquals(0, licenseFinder.getAll().size());
+ final PropertyGroup groupProps = new PropertyGroup(Group.PROPS_ID);
+ final PropertyGroup userProps = new PropertyGroup(User.PROPS_ID);
+ propGroupManager.persist(userProps);
+ propGroupManager.persist(groupProps);
english = new I18nLanguage(Long.valueOf(1819), "English", "English", "en");
languageManager.persist(english);
gb = new I18nCountry(Long.valueOf(75), "GB", "GBP", ".", "£%n", "", ".", "United Kingdom", "western", ",");
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java 2009-07-19 18:10:48 UTC (rev 1135)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/UserManagerTest.java 2009-07-22 11:56:12 UTC (rev 1136)
@@ -6,7 +6,7 @@
import java.util.TimeZone;
-import javax.persistence.EntityExistsException;
+import javax.persistence.PersistenceException;
import org.apache.lucene.queryParser.ParseException;
import org.hibernate.validator.InvalidStateException;
@@ -65,7 +65,7 @@
persist(user);
}
- @Test(expected = EntityExistsException.class)
+ @Test(expected = PersistenceException.class)
public void testUserExist() throws I18nNotFoundException {
final User user1 = userManager.createUser("test", "test 1 name", "test1(a)example.com", "some password", "en",
"GB", "GMT");
Modified: trunk/war/WEB-INF/lib/gwt-servlet.jar
===================================================================
(Binary files differ)
1
0
Author: vjrj
Date: 2009-07-19 20:10:48 +0200 (Sun, 19 Jul 2009)
New Revision: 1135
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/errors/UnknownPropertyException.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Properties.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Property.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertyGroup.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySetted.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySubgroup.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertiesManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyGroupManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySettedManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySubgroupManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertiesManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyGroupManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySubgroupManagerDefault.java
trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefaultTest.java
Modified:
trunk/TODO
trunk/TROUBLESHOOT
trunk/pom.xml
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/server/KuneContainerListener.java
trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerModule.java
trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerTool.java
trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml
trunk/src/main/java/org/ourproject/kune/platf/RichText.gwt.xml
trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java
trunk/src/main/java/org/ourproject/kune/platf/server/domain/User.java
trunk/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/Manager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/DefaultManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java
trunk/src/main/resources/META-INF/persistence.xml
trunk/src/test/java/org/ourproject/kune/platf/client/actions/KeyStrokeTest.java
trunk/src/test/java/org/ourproject/kune/platf/client/ui/rte/saving/RTESavingEditorPresenterTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java
trunk/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java
trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerTest.java
trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java
Log:
Incomplete - task Entity Properties (Group/User preferences)
Complete - task Hibernate, gwt-log, gwt-voices, gwt updated
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/TODO 2009-07-19 18:10:48 UTC (rev 1135)
@@ -74,6 +74,30 @@
"Because the Preferences API is back-end neutral, you need not care whether the data are stored in files, database tables, or a platform-specific storage such as the Windows Registry. In fact, you don't want to care, because the situation may differ across varying platforms, or even across implementations on the same platform."
More links:
http://stackoverflow.com/questions/194349/what-is-the-proper-way-to-store-a…
+
+ Property
+ name
+ PropertyGroup pGroup
+ PropertySubgroup sGroup
+
+ PropertyGroup implements HasId
+ String name
+
+ PropertySubGroup implements HasId
+ String name
+
+ PropertySetted extends Property
+ String value
+
+ Properties
+ List<PropertySetted> list
+
+ User
+ Properties
+
+ Group
+ Properties
+
** vjrj Styling braimstorming
*** layouts
- name :: greenforrest
Modified: trunk/TROUBLESHOOT
===================================================================
--- trunk/TROUBLESHOOT 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/TROUBLESHOOT 2009-07-19 18:10:48 UTC (rev 1135)
@@ -1,24 +1,24 @@
=TROUBLESHOOTING=
-==Server debug==
+== Server debug ==
Server: debug with jetty in eclipse:
http://docs.codehaus.org/display/JETTY/Debugging+with+the+Maven+Jetty+Plugi…
-==Client debug==
+== Client debug ==
Client code: you can debug with gwt hosted mode in eclipse (see DEV-GUIDE for hosted mode instructions).
-==Firebug and client log levels==
+== Firebug and client log levels ==
To increase client logging add ?log_level=DEBUG# to the url and use firebug firefox extension to see the output.
-==Emite troubleshooting==
+== Emite troubleshooting ==
See:
http://code.google.com/p/emite/wiki/Troubleshooting
-==Liquibase==
+== Liquibase ==
=== Checksum errors ===
@@ -26,3 +26,23 @@
Don't try to update the liquibase changelogs you have already use. Better create new ones to delete, update, and so on. If you are developing and want to clear the checksums, you can use the command "clearCheckSums". See script/liquibase-* and http://www.liquibase.org/manual/command_line
+== Lucene ==
+
+=== Indexes problems during upgrades ===
+
+If you get errors like:
+
+org.ourproject.kune.platf.server.ServerException: Error starting persistence service
+(...)
+Caused by: org.hibernate.search.SearchException: Unable to open IndexWriter for class org.ourproject.kune.platf.server.domain.User
+(...)
+Caused by: org.apache.lucene.index.CorruptIndexException: Unknown format version: -7
+
+The indexes in /var/lib/kune/lucen/kune*/indexes/ are not compatible. For the moment the only workaround we now it's to delete the indexes.
+
+== JUnit ==
+
+Running all the Kune test from eclipse I get connection pool exceptions like:
+ Connections could not be acquired from the underlying database
+
+We have problems testing all test together from eclipse and using real db (not the h2 memory db)
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/pom.xml 2009-07-19 18:10:48 UTC (rev 1135)
@@ -12,7 +12,7 @@
<name>kune</name>
<url>http://kune.ourproject.org</url>
<properties>
- <gwtVersion>1.6.4</gwtVersion>
+ <gwtVersion>1.7.0</gwtVersion>
</properties>
<dependencies>
<!-- guice -->
@@ -66,7 +66,6 @@
<version>march-02-2009</version>
<scope>provided</scope>
</dependency>
-
<!--
<dependency> <groupId>com.extjs</groupId>
<artifactId>gxt</artifactId> <version>1.0-beta2</version>
@@ -90,12 +89,12 @@
<dependency>
<groupId>com.allen_sauer.gwt.log.gwt-log</groupId>
<artifactId>gwt-log</artifactId>
- <version>2.6.0</version>
+ <version>2.6.2</version>
</dependency>
<dependency>
<groupId>com.allen_sauer.gwt.voices.gwt-voices</groupId>
<artifactId>gwt-voices</artifactId>
- <version>1.5.5</version>
+ <version>1.6.0</version>
</dependency>
<!-- utilities -->
@@ -121,9 +120,9 @@
</dependency>
<dependency>
<groupId>org.xwiki.platform</groupId>
- <!-- https://yui-ext.com/forum/showthread.php?t=5762 -->
<artifactId>xwiki-web-gwt-dom</artifactId>
- <version>2.0-SNAPSHOT-g164</version>
+ <version>2.0-SNAPSHOT</version>
+ <!-- <version>2.0-SNAPSHOT-g164</version> -->
</dependency>
<!-- xmpp -->
@@ -159,27 +158,32 @@
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search</artifactId>
- <version>3.0.0.GA</version>
+ <version>3.1.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
- <version>3.2.5.ga</version>
+ <version>3.2.6.ga</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
- <version>3.3.0.ga</version>
+ <version>3.4.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>3.0.0.ga</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
- <version>3.3.1.ga</version>
+ <version>3.4.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-tools</artifactId>
- <version>3.2.0.beta9a</version>
+ <version>3.2.3.GA</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
@@ -196,6 +200,11 @@
<artifactId>warp-persist</artifactId>
<version>1.0.1</version>
</dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.5.2</version>
+ </dependency>
<!-- REST: xml and json (stax) -->
<dependency>
@@ -219,7 +228,6 @@
<version>2.1</version>
<classifier>jdk15</classifier>
</dependency>
-
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
@@ -249,7 +257,6 @@
</dependency>
<!-- db upgrades -->
-
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
@@ -273,7 +280,7 @@
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
- <artifactId>maven-jetty-plugin</artifactId>
+ <artifactId>maven-jetty-plugin</artifactId>
<!--
<artifactId>jetty-maven-plugin</artifactId>
<version>7.0.0.1beta0</version>
@@ -281,7 +288,6 @@
<version>6.1.5</version>
<scope>provided</scope>
</dependency>
-
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
@@ -323,7 +329,6 @@
<version>0.9.4</version>
</dependency>
</dependencies>
-
<!--
http://gwt-maven.googlecode.com/svn/docs/maven-googlewebtoolkit2-plugin/ind…
-->
@@ -343,7 +348,6 @@
</releases>
</pluginRepository>
</pluginRepositories>
-
<repositories>
<repository>
<id>Codehaus Snapshots</id>
@@ -487,15 +491,9 @@
<generatorRootClasses>
<value>org.ourproject.kune.MyBean</value>
</generatorRootClasses>
- <generatorDestinationPackage>
- org.ourproject.kune.app.Kune
- </generatorDestinationPackage>
- <generateGettersAndSetters>
- true
- </generateGettersAndSetters>
- <generatePropertyChangeSupport>
- true
- </generatePropertyChangeSupport>
+ <generatorDestinationPackage> org.ourproject.kune.app.Kune </generatorDestinationPackage>
+ <generateGettersAndSetters> true </generateGettersAndSetters>
+ <generatePropertyChangeSupport> true </generatePropertyChangeSupport>
</configuration>
<executions>
<execution>
@@ -525,11 +523,11 @@
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
- <artifactId>maven-jetty-plugin</artifactId>
- <version>6.1.5</version>
+ <artifactId>maven-jetty-plugin</artifactId>
+ <version>6.1.5</version>
<!--
- <artifactId>jetty-maven-plugin</artifactId>
- <version>7.0.0.1beta0</version>
+ <artifactId>jetty-maven-plugin</artifactId>
+ <version>7.0.0.1beta0</version>
-->
<configuration>
<contextPath>/</contextPath>
@@ -559,8 +557,7 @@
<phase>process-resources</phase>
<configuration>
<changeLogFile>
- src/main/resources/db/liquibase_changelog.xml
- </changeLogFile>
+ src/main/resources/db/liquibase_changelog.xml </changeLogFile>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost/kune_dev</url>
<username>kune</username>
@@ -603,12 +600,8 @@
<include>**/HorizontalLine.**</include>
<include>**/AbstractLabel.**</include>
<include>**/IconLabel.**</include>
- <include>
- **/EditableIconLabel.**
- </include>
- <include>
- **/EditableClickListener.**
- </include>
+ <include> **/EditableIconLabel.** </include>
+ <include> **/EditableClickListener.** </include>
<include>**/KuneStringUtils.**</include>
<include>**/IconHyperlink*.**</include>
<include>**/LabelWrapper*.**</include>
@@ -639,7 +632,6 @@
</execution>
</executions>
</plugin>
-
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
@@ -682,21 +674,12 @@
</executions>
</plugin>
<!--
- <plugin>
- <artifactId>maven-clean-plugin</artifactId>
- <version>2.2</version>
- <configuration>
- <filesets>
- <fileset>
- <directory>src/main/webapp/gwt/</directory>
- <includes>
- <include>**/org.ourproject.kune.app.Kune*</include>
- <followSymlinks>false</followSymlinks>
- </includes>
- </fileset>
- </filesets>
- </configuration>
- </plugin>
+ <plugin> <artifactId>maven-clean-plugin</artifactId>
+ <version>2.2</version> <configuration> <filesets> <fileset>
+ <directory>src/main/webapp/gwt/</directory> <includes>
+ <include>**/org.ourproject.kune.app.Kune*</include>
+ <followSymlinks>false</followSymlinks> </includes> </fileset>
+ </filesets> </configuration> </plugin>
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -736,7 +719,6 @@
</resource>
</resources>
</build>
-
<reporting>
<plugins>
<plugin>
@@ -764,12 +746,9 @@
<configuration>
<systemProperties>
<property>
- <name>
- net.sourceforge.cobertura.datafile
- </name>
+ <name> net.sourceforge.cobertura.datafile </name>
<value>
- ${project.reporting.directory}/cobertura/cobertura.ser
- </value>
+ ${project.reporting.directory}/cobertura/cobertura.ser </value>
</property>
</systemProperties>
<forkMode>pertest</forkMode>
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2009-07-19 18:10:48 UTC (rev 1135)
@@ -35,7 +35,7 @@
}
*/.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;overflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.kune-Content-Main blockquote{border:1px dashed #DDD;padding:10px;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
background-color: #FFF; */border:1px solid #4D4D4D;background-color:#FFF;margin:5px 0 5px 10px;}.gwt-RichTextToolbar{/* background-color: #F2F2F2;
- padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette-popup{z-index:9999!important;background-color:#FFF;border:1px solid gray;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:transparent none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:1px;color:#B3B3B3;background:transparent;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:transparent;border-left-width:5px;border-bottom-color:transparent;border-bottom-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-content{background:#FFF;}.k-entity-bottom div{/* line-height: 24px; */color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
+ padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette-popup{z-index:9999!important;background-color:#FFF;border:1px solid gray;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:transparent none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:1px;color:#B3B3B3;background:transparent;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:transparent;border-left-width:5px;border-bottom-color:transparent;border-bottom-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:5px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-content{background:#FFF;}.k-entity-bottom div{/* line-height: 24px; */color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
.x-tree-node a span, .x-dd-drag-ghost a span {
color:#000000;
padding: 1px 0px 1px 1px;
Modified: trunk/src/main/java/org/ourproject/kune/app/server/KuneContainerListener.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/server/KuneContainerListener.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/app/server/KuneContainerListener.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -30,50 +30,45 @@
import java.util.logging.Logger;
import org.apache.log4j.PropertyConfigurator;
-import org.ourproject.kune.docs.server.DocumentServerTool;
import org.ourproject.kune.platf.server.KunePersistenceService;
-import org.ourproject.kune.platf.server.tool.ServerToolRegistry;
import org.ourproject.kune.rack.ContainerListener;
import com.google.inject.Inject;
-class KuneContainerListener implements ContainerListener {
- KunePersistenceService persistenceService;
- ServerToolRegistry toolRegistry;
- DocumentServerTool documentTool;
- // @PMD:REVIEWED:LoggerIsNotStaticFinal: by vjrj on 21/05/09 16:55
- Logger logger;
+public class KuneContainerListener implements ContainerListener {
+ private final KunePersistenceService persistenceService;
+ private final Logger logger; // NOPMD by vjrj on 16/07/09 22:38
@Inject
- public KuneContainerListener(final KunePersistenceService persistenceService,
- final ServerToolRegistry toolRegistry, final DocumentServerTool documentTool, final Logger logger) {
+ public KuneContainerListener(final KunePersistenceService persistenceService, final Logger logger) {
this.persistenceService = persistenceService;
- this.toolRegistry = toolRegistry;
- this.documentTool = documentTool;
this.logger = logger;
}
+ public Logger getLogger() {
+ return logger;
+ }
+
public void start() {
configureLog4j();
logger.log(Level.INFO, "starting Kune...");
- toolRegistry.register(documentTool);
persistenceService.start();
logger.log(Level.INFO, "Kune server started");
}
public void stop() {
- logger.log(Level.INFO, "stoping Kune...");
- logger.log(Level.INFO, "Kune server stoped");
+ logger.log(Level.INFO, "stopping Kune...");
+ logger.log(Level.INFO, "Kune server stopped");
}
private void configureLog4j() {
try {
- Properties properties = new Properties();
- InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream(
+ final Properties properties = new Properties();
+ final InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream(
"log4j.dev.properties");
properties.load(input);
PropertyConfigurator.configure(properties);
- } catch (IOException e) {
+ } catch (final IOException e) {
e.printStackTrace();
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerModule.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerModule.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -23,12 +23,13 @@
public class ChatServerModule extends AbstractModule {
+ @Override
public void configure() {
// To debug Smack, descomment this
// XMPPConnection.DEBUG_ENABLED = true;
- // FIXME: Dani: check this please
bind(ChatServerTool.class).asEagerSingleton();
+
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerTool.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/chat/server/ChatServerTool.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -49,11 +49,11 @@
this.containerManager = containerManager;
}
- public void checkTypesBeforeContainerCreation(String parentTypeId, String typeId) {
+ public void checkTypesBeforeContainerCreation(final String parentTypeId, final String typeId) {
checkContainerTypeId(parentTypeId, typeId);
}
- public void checkTypesBeforeContentCreation(String parentTypeId, String typeId) {
+ public void checkTypesBeforeContentCreation(final String parentTypeId, final String typeId) {
if (!parentTypeId.equals(TYPE_ROOM)) {
throw new ContainerNotPermittedException();
}
@@ -85,7 +85,6 @@
}
public void onCreateContent(final Content content, final Container parent) {
-
}
@Inject
Modified: trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml 2009-07-19 18:10:48 UTC (rev 1135)
@@ -18,6 +18,7 @@
<when-type-is
class="org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl" />
<when-property-is name="user.agent" value="ie6" />
+ <when-property-is name="user.agent" value="ie8" />
</replace-with>
<!-- Mozilla-specific implementation -->
Modified: trunk/src/main/java/org/ourproject/kune/platf/RichText.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/RichText.gwt.xml 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/RichText.gwt.xml 2009-07-19 18:10:48 UTC (rev 1135)
@@ -24,6 +24,7 @@
<when-type-is
class="org.ourproject.kune.platf.client.ui.rte.impl.RichTextAreaImpl" />
<when-property-is name="user.agent" value="ie6" />
+ <when-property-is name="user.agent" value="ie8" />
</replace-with>
<!-- Mozilla-specific implementation -->
Added: trunk/src/main/java/org/ourproject/kune/platf/client/errors/UnknownPropertyException.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/errors/UnknownPropertyException.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/errors/UnknownPropertyException.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,28 @@
+/*
+ *
+ * Copyright (C) 2007-2009 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 org.ourproject.kune.platf.client.errors;
+
+public class UnknownPropertyException extends DefaultException {
+ private static final long serialVersionUID = -5921396887476497824L;
+
+ public UnknownPropertyException(final String message) {
+ super(message);
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/PlatformServerModule.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -59,6 +59,11 @@
import org.ourproject.kune.platf.server.manager.I18nLanguageManager;
import org.ourproject.kune.platf.server.manager.I18nTranslationManager;
import org.ourproject.kune.platf.server.manager.LicenseManager;
+import org.ourproject.kune.platf.server.manager.PropertiesManager;
+import org.ourproject.kune.platf.server.manager.PropertyGroupManager;
+import org.ourproject.kune.platf.server.manager.PropertyManager;
+import org.ourproject.kune.platf.server.manager.PropertySettedManager;
+import org.ourproject.kune.platf.server.manager.PropertySubgroupManager;
import org.ourproject.kune.platf.server.manager.RateManager;
import org.ourproject.kune.platf.server.manager.SocialNetworkManager;
import org.ourproject.kune.platf.server.manager.TagManager;
@@ -77,6 +82,11 @@
import org.ourproject.kune.platf.server.manager.impl.I18nLanguageManagerDefault;
import org.ourproject.kune.platf.server.manager.impl.I18nTranslationManagerDefault;
import org.ourproject.kune.platf.server.manager.impl.LicenseManagerDefault;
+import org.ourproject.kune.platf.server.manager.impl.PropertiesManagerDefault;
+import org.ourproject.kune.platf.server.manager.impl.PropertyGroupManagerDefault;
+import org.ourproject.kune.platf.server.manager.impl.PropertyManagerDefault;
+import org.ourproject.kune.platf.server.manager.impl.PropertySettedManagerDefault;
+import org.ourproject.kune.platf.server.manager.impl.PropertySubgroupManagerDefault;
import org.ourproject.kune.platf.server.manager.impl.RateManagerDefault;
import org.ourproject.kune.platf.server.manager.impl.SocialNetworkManagerDefault;
import org.ourproject.kune.platf.server.manager.impl.TagManagerDefault;
@@ -143,6 +153,11 @@
bind(CommentManager.class).to(CommentManagerDefault.class);
bind(FileManager.class).to(FileManagerDefault.class);
bind(ExtMediaDescripManager.class).to(ExtMediaDescripManagerDefault.class);
+ bind(PropertyManager.class).to(PropertyManagerDefault.class);
+ bind(PropertySettedManager.class).to(PropertySettedManagerDefault.class);
+ bind(PropertyGroupManager.class).to(PropertyGroupManagerDefault.class);
+ bind(PropertySubgroupManager.class).to(PropertySubgroupManagerDefault.class);
+ bind(PropertiesManager.class).to(PropertiesManagerDefault.class);
}
private void bindRPC() {
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -59,6 +59,7 @@
// see: http://docs.codehaus.org/display/PICO/Good+Citizen:
// Never expect or return null
public static final Group NO_GROUP = null;
+ public static final String PROPS_ID = "groupprops";
@Id
@DocumentId
Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Properties.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Properties.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Properties.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,79 @@
+package org.ourproject.kune.platf.server.domain;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.MapKey;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+import org.hibernate.validator.NotNull;
+
+/**
+ * Properties defined for some elements (identified by the group)
+ *
+ */
+@Entity
+@Table(name = "properties")
+public class Properties implements HasId {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ /**
+ * Every list of properties are from a unique PropertyGroup (like User
+ * properties, or Group properties)
+ *
+ */
+ @NotNull
+ @ManyToOne
+ private final PropertyGroup pgroup;
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @MapKey(name = "property")
+ // @Cascade( { org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
+ // @OnDelete(action = OnDeleteAction.CASCADE)
+ private Map<Property, PropertySetted> list;
+
+ public Properties() {
+ this(null);
+ }
+
+ public Properties(final PropertyGroup group) {
+ pgroup = group;
+ list = new HashMap<Property, PropertySetted>();
+ }
+
+ // @Finder(query =
+ // "SELECT p FROM Properties ps JOIN ps.list p WHERE p.property.name = :pname")
+ // public PropertySetted find(@Named("pname") final String key) {
+ // return null;
+ // }
+
+ public Long getId() {
+ return id;
+ }
+
+ public Map<Property, PropertySetted> getList() {
+ return list;
+ }
+
+ public PropertyGroup getPgroup() {
+ return pgroup;
+ }
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ public void setList(final Map<Property, PropertySetted> list) {
+ this.list = list;
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Property.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Property.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Property.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,215 @@
+package org.ourproject.kune.platf.server.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.Index;
+import org.hibernate.validator.NotNull;
+import org.hibernate.validator.Pattern;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+import com.google.inject.name.Named;
+import com.wideplay.warp.persist.dao.Finder;
+
+@Entity
+@Table(name = "property")
+// @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
+public class Property implements HasId {
+
+ public enum Type implements IsSerializable {
+ STRING, ENUM, BOOL, LIST, HIDDEN
+ }
+
+ @Id
+ @GeneratedValue
+ // (strategy = GenerationType.TABLE)
+ private Long id;
+
+ /**
+ * Required "symbolic" name of the user preference; displayed to the user
+ * during editing if no display_name is defined. Must contain only letters,
+ * number and underscores, i.e. the regular expression ^[a-zA-Z0-9_]+$. Must
+ * be unique.
+ **/
+ @Index(name = "propname")
+ @Column(unique = true)
+ @Pattern(regex = "^[a-zA-Z0-9_]+$", message = "The name can only contain Western characters, numbers, and dashes")
+ private String name;
+
+ /**
+ * Optional string to display alongside the user preferences in the edit
+ * window (in google gadgets must be unique).
+ **/
+ private String displayName;
+
+ /**
+ * Optional string that indicates the data type of this attribute. Can be
+ * string, bool, enum, hidden (final a string that is not visible or user
+ * editable), or list (final dynamic array generated from user input). The
+ * default is string.
+ **/
+ @Enumerated(EnumType.STRING)
+ @Column(nullable = false)
+ private Type datatype;
+
+ /**
+ * Optional boolean argument (true or false) indicating whether this user
+ * preference is required. The default is false.
+ **/
+ @Basic
+ private boolean required;
+
+ /**
+ * Optional string that indicates a user preference's default value.
+ **/
+ private String defaultValue;
+
+ /**
+ * Optional string list that indicates enum valid values.
+ **/
+ @Basic
+ private ArrayList<String> enumValues;
+
+ @NotNull
+ @ManyToOne
+ private PropertyGroup pgroup;
+
+ @NotNull
+ @ManyToOne
+ private PropertySubgroup sgroup;
+
+ public Property() {
+ this(null, null, Type.STRING, false, null, new ArrayList<String>(), null, null);
+ }
+
+ public Property(final Property prop) {
+ this.name = prop.getName();
+ this.required = prop.getRequired();
+ this.datatype = prop.getDatatype();
+ this.defaultValue = prop.getDefaultValue();
+ this.displayName = prop.getDisplayName();
+ this.enumValues = prop.getEnumValues();
+ this.pgroup = prop.getPgroup();
+ this.sgroup = prop.getSgroup();
+ }
+
+ public Property(final String name, final String displayName, final Type datatype, final boolean required,
+ final String defaultValue, final ArrayList<String> enumValues, final PropertyGroup pgroup,
+ final PropertySubgroup sgroup) {
+ this.name = name;
+ this.displayName = displayName;
+ this.datatype = datatype;
+ this.required = required;
+ this.defaultValue = defaultValue;
+ this.enumValues = enumValues;
+ this.pgroup = pgroup;
+ this.sgroup = sgroup;
+ }
+
+ public Property(final String name, final String displayName, final Type datatype, final boolean required,
+ final String defaultValue, final PropertyGroup pgroup, final PropertySubgroup sgroup) {
+ this(name, displayName, datatype, required, defaultValue, new ArrayList<String>(), pgroup, sgroup);
+ }
+
+ @Finder(query = "SELECT p FROM Property p JOIN p.pgroup g WHERE g = :pgroup")
+ public List<Property> find(@Named("pgroup") final PropertyGroup pGroup) {
+ return null;
+ }
+
+ @Finder(query = "SELECT p.name FROM Property p JOIN p.sgroup g WHERE g = :sgroup")
+ public List<String> find(@Named("sgroup") final PropertySubgroup sGroup) {
+ return null;
+ }
+
+ @Finder(query = "FROM Property p WHERE p.name = :name")
+ public Property find(@Named("name") final String name) {
+ return null;
+ }
+
+ @Finder(query = "FROM Property")
+ public List<Property> getAll() {
+ return null;
+ }
+
+ public Type getDatatype() {
+ return datatype;
+ }
+
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ public ArrayList<String> getEnumValues() {
+ return enumValues;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public PropertyGroup getPgroup() {
+ return pgroup;
+ }
+
+ public boolean getRequired() {
+ return required;
+ }
+
+ public PropertySubgroup getSgroup() {
+ return sgroup;
+ }
+
+ public void setDatatype(final Type datatype) {
+ this.datatype = datatype;
+ }
+
+ public void setDefaultValue(final String defaultValue) {
+ this.defaultValue = defaultValue;
+ }
+
+ public void setDisplayName(final String displayName) {
+ this.displayName = displayName;
+ }
+
+ public void setEnumValues(final ArrayList<String> enumValues) {
+ this.enumValues = enumValues;
+ }
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ public void setPgroup(final PropertyGroup pgroup) {
+ this.pgroup = pgroup;
+ }
+
+ public void setRequired(final boolean required) {
+ this.required = required;
+ }
+
+ public void setSgroup(final PropertySubgroup sgroup) {
+ this.sgroup = sgroup;
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertyGroup.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertyGroup.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertyGroup.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,92 @@
+package org.ourproject.kune.platf.server.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.OnDelete;
+import org.hibernate.annotations.OnDeleteAction;
+import org.hibernate.validator.NotNull;
+
+import com.google.inject.name.Named;
+import com.wideplay.warp.persist.dao.Finder;
+
+@Entity
+@Table(name = "property_group")
+public class PropertyGroup implements HasId {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ @OneToMany(mappedBy = "pgroup")
+ @OnDelete(action = OnDeleteAction.CASCADE)
+ private List<Property> propertyList;
+
+ @OneToMany(mappedBy = "pgroup")
+ @OnDelete(action = OnDeleteAction.CASCADE)
+ private List<Properties> propertiesList;
+
+ @NotNull
+ @Column(unique = true)
+ private String name;
+
+ public PropertyGroup() {
+ this(null);
+ }
+
+ public PropertyGroup(final String name) {
+ this.name = name;
+ propertyList = new ArrayList<Property>();
+ propertiesList = new ArrayList<Properties>();
+ }
+
+ @Finder(query = "FROM PropertyGroup pg WHERE pg.name = :groupname")
+ public PropertyGroup find(@Named("groupname") final String groupName) {
+ return null;
+ }
+
+ @Finder(query = "FROM PropertyGroup")
+ public List<PropertyGroup> getAll() {
+ return null;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public List<Properties> getPropertiesList() {
+ return propertiesList;
+ }
+
+ public List<Property> getPropertyList() {
+ return propertyList;
+ }
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ public void setPropertiesList(final List<Properties> propertiesList) {
+ this.propertiesList = propertiesList;
+ }
+
+ public void setPropertyList(final List<Property> propertyList) {
+ this.propertyList = propertyList;
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySetted.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySetted.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySetted.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,96 @@
+package org.ourproject.kune.platf.server.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+import org.hibernate.validator.NotNull;
+import org.ourproject.kune.platf.server.domain.Property.Type;
+
+import com.wideplay.warp.persist.dao.Finder;
+
+@Entity
+@Table(name = "property_setted")
+public class PropertySetted implements HasId {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ private String value;
+
+ @NotNull
+ @ManyToOne
+ private final Property property;
+
+ public PropertySetted() {
+ this(null, null);
+ }
+
+ public PropertySetted(final Property property, final String value) {
+ this.value = value;
+ this.property = property;
+ }
+
+ @Finder(query = "FROM PropertySetted")
+ public List<PropertySetted> getAll() {
+ return null;
+ }
+
+ public Type getDatatype() {
+ return property.getDatatype();
+ }
+
+ public String getDefaultValue() {
+ return property.getDefaultValue();
+ }
+
+ public String getDisplayName() {
+ return property.getDisplayName();
+ }
+
+ public ArrayList<String> getEnumValues() {
+ return property.getEnumValues();
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return property.getName();
+ }
+
+ public PropertyGroup getPgroup() {
+ return property.getPgroup();
+ }
+
+ public Property getProperty() {
+ return property;
+ }
+
+ public boolean getRequired() {
+ return property.getRequired();
+ }
+
+ public PropertySubgroup getSgroup() {
+ return property.getSgroup();
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ public void setValue(final String value) {
+ this.value = value;
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySubgroup.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySubgroup.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/PropertySubgroup.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,72 @@
+package org.ourproject.kune.platf.server.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+import org.hibernate.annotations.OnDelete;
+import org.hibernate.annotations.OnDeleteAction;
+import org.hibernate.validator.NotNull;
+
+import com.wideplay.warp.persist.dao.Finder;
+
+@Entity
+@Table(name = "property_subgroup")
+public class PropertySubgroup implements HasId {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ @NotNull
+ @Column(unique = true)
+ private String name;
+
+ @OneToMany(mappedBy = "sgroup")
+ @OnDelete(action = OnDeleteAction.CASCADE)
+ private List<Property> properties;
+
+ public PropertySubgroup() {
+ this.name = null;
+ this.properties = new ArrayList<Property>();
+ }
+
+ public PropertySubgroup(final String name) {
+ this.name = name;
+ }
+
+ @Finder(query = "FROM PropertySubgroup")
+ public List<PropertySubgroup> getAll() {
+ return null;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public List<Property> getProperties() {
+ return properties;
+ }
+
+ public void setId(final Long id) {
+ this.id = id;
+ }
+
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ public void setProperties(final List<Property> properties) {
+ this.properties = properties;
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/User.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/User.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/User.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -33,6 +33,8 @@
import javax.persistence.Table;
import javax.persistence.Transient;
+import org.hibernate.annotations.OnDelete;
+import org.hibernate.annotations.OnDeleteAction;
import org.hibernate.search.annotations.DocumentId;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Index;
@@ -55,6 +57,7 @@
// see: http://docs.codehaus.org/display/PICO/Good+Citizen:
// Never expect or return null
public static final User UNKNOWN_USER = new User();
+ public static final String PROPS_ID = "userprops";
public static boolean isKnownUser(final User user) {
return !user.equals(UNKNOWN_USER);
@@ -111,12 +114,21 @@
@Basic
private Long lastLogin;
+ @OneToOne
+ @OnDelete(action = OnDeleteAction.CASCADE)
+ private Properties properties;
+
public User() {
- this(null, null, null, null, null, null, null);
+ this(null, null, null, null, null, null, null, null);
}
public User(final String shortName, final String longName, final String email, final String passwd,
final I18nLanguage language, final I18nCountry country, final TimeZone timezone) {
+ this(shortName, longName, email, passwd, language, country, timezone, null);
+ }
+
+ public User(final String shortName, final String longName, final String email, final String passwd,
+ final I18nLanguage language, final I18nCountry country, final TimeZone timezone, final Properties properties) {
this.shortName = shortName;
this.name = longName;
this.email = email;
@@ -129,6 +141,7 @@
buddiesVisibility = UserBuddiesVisibility.anyone;
this.createdOn = System.currentTimeMillis();
this.lastLogin = null;
+ this.properties = properties;
}
@Finder(query = "from User")
@@ -190,6 +203,10 @@
return password;
}
+ public Properties getProperties() {
+ return properties;
+ }
+
public String getShortName() {
return shortName;
}
@@ -246,6 +263,10 @@
// Use UnixCrypt (jetty)
}
+ public void setProperties(final Properties properties) {
+ this.properties = properties;
+ }
+
public void setShortName(final String shortName) {
this.shortName = shortName;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/init/DatabaseInitializer.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -1,5 +1,6 @@
package org.ourproject.kune.platf.server.init;
+import java.util.ArrayList;
import java.util.TimeZone;
import javax.persistence.NoResultException;
@@ -14,15 +15,22 @@
import org.ourproject.kune.platf.server.domain.I18nLanguage;
import org.ourproject.kune.platf.server.domain.I18nTranslation;
import org.ourproject.kune.platf.server.domain.License;
+import org.ourproject.kune.platf.server.domain.Property;
+import org.ourproject.kune.platf.server.domain.PropertyGroup;
+import org.ourproject.kune.platf.server.domain.PropertySubgroup;
import org.ourproject.kune.platf.server.domain.User;
import org.ourproject.kune.platf.server.manager.GroupManager;
import org.ourproject.kune.platf.server.manager.I18nCountryManager;
import org.ourproject.kune.platf.server.manager.I18nLanguageManager;
import org.ourproject.kune.platf.server.manager.I18nTranslationManager;
import org.ourproject.kune.platf.server.manager.LicenseManager;
+import org.ourproject.kune.platf.server.manager.PropertyGroupManager;
+import org.ourproject.kune.platf.server.manager.PropertyManager;
+import org.ourproject.kune.platf.server.manager.PropertySubgroupManager;
import org.ourproject.kune.platf.server.manager.UserManager;
import org.ourproject.kune.platf.server.properties.DatabaseProperties;
+import com.calclab.emiteuimodule.client.SubscriptionMode;
import com.google.inject.Inject;
import com.wideplay.warp.persist.TransactionType;
import com.wideplay.warp.persist.Transactional;
@@ -36,12 +44,17 @@
private final I18nCountryManager countryManager;
private final I18nTranslationManager translationManager;
private final ContentManager contentManager;
+ private final PropertyManager propertyManager;
+ private final PropertyGroupManager propGroupManager;
+ private final PropertySubgroupManager propSubgroupManager;
@Inject
public DatabaseInitializer(final DatabaseProperties properties, final UserManager userManager,
final GroupManager groupManager, final LicenseManager licenseManager,
final I18nLanguageManager languageManager, final I18nCountryManager countryManager,
- final I18nTranslationManager translationManager, final ContentManager contentManager) {
+ final I18nTranslationManager translationManager, final ContentManager contentManager,
+ final PropertyManager propertyManager, final PropertyGroupManager propGroupManager,
+ final PropertySubgroupManager propSubgroupManager) {
this.properties = properties;
this.userManager = userManager;
this.groupManager = groupManager;
@@ -50,6 +63,9 @@
this.countryManager = countryManager;
this.translationManager = translationManager;
this.contentManager = contentManager;
+ this.propertyManager = propertyManager;
+ this.propGroupManager = propGroupManager;
+ this.propSubgroupManager = propSubgroupManager;
}
public void createOthers() {
@@ -78,6 +94,7 @@
public void initDatabase() throws Exception {
createOthers();
createLicenses();
+ createProperties();
createDefUsersGroup();
}
@@ -180,4 +197,27 @@
"http://www.gnu.org/licenses/gpl.html", false, true, false, "", "images/lic/gnu-gpl.gif");
licenseManager.persist(license);
}
+
+ private void createProperties() {
+ final PropertyGroup groupProps = new PropertyGroup(Group.PROPS_ID);
+ final PropertyGroup userProps = new PropertyGroup(User.PROPS_ID);
+ propGroupManager.persist(userProps);
+ propGroupManager.persist(groupProps);
+ final PropertySubgroup userXmppProps = new PropertySubgroup("user-xmpp");
+ propSubgroupManager.persist(userXmppProps);
+
+ final Property colorProp = new Property("xmpp_color", "Choose your color", Property.Type.STRING, true, "blue",
+ userProps, userXmppProps);
+ final ArrayList<String> subValues = new ArrayList<String>();
+ subValues.add(SubscriptionMode.autoAcceptAll.toString());
+ subValues.add(SubscriptionMode.autoRejectAll.toString());
+ subValues.add(SubscriptionMode.manual.toString());
+ final Property subProp = new Property("xmpp_subcriptionmode", "New buddies options", Property.Type.ENUM, true,
+ SubscriptionMode.manual.toString(), subValues, userProps, userXmppProps);
+ final Property unanavProp = new Property("xmpp_unanavailableitemsvisible", "Show unavailable buddies",
+ Property.Type.BOOL, true, Boolean.toString(true), userProps, userXmppProps);
+ propertyManager.persist(colorProp);
+ propertyManager.persist(subProp);
+ propertyManager.persist(unanavProp);
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/Manager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/Manager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/Manager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -24,6 +24,8 @@
public interface Manager<T, X> {
+ void clear();
+
T find(X id);
T merge(T entity);
@@ -32,6 +34,8 @@
void reIndex();
+ void remove(T entity);
+
SearchResult<T> search(final String query, final String[] fields, final BooleanClause.Occur[] flags,
final Integer firstResult, final Integer maxResults);
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertiesManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertiesManager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertiesManager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,16 @@
+package org.ourproject.kune.platf.server.manager;
+
+import java.util.HashMap;
+
+import org.ourproject.kune.platf.server.domain.Properties;
+import org.ourproject.kune.platf.server.domain.PropertySetted;
+
+public interface PropertiesManager extends Manager<Properties, Long> {
+
+ HashMap<String, PropertySetted> get(Properties properties);
+
+ PropertySetted get(Properties properties, String key);
+
+ void set(Properties properties, String key, String value);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyGroupManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyGroupManager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyGroupManager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,9 @@
+package org.ourproject.kune.platf.server.manager;
+
+import org.ourproject.kune.platf.server.domain.PropertyGroup;
+
+public interface PropertyGroupManager extends Manager<PropertyGroup, Long> {
+
+ PropertyGroup find(String groupName);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyManager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertyManager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,7 @@
+package org.ourproject.kune.platf.server.manager;
+
+import org.ourproject.kune.platf.server.domain.Property;
+
+public interface PropertyManager extends Manager<Property, Long> {
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySettedManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySettedManager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySettedManager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,7 @@
+package org.ourproject.kune.platf.server.manager;
+
+import org.ourproject.kune.platf.server.domain.PropertySetted;
+
+public interface PropertySettedManager extends Manager<PropertySetted, Long> {
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySubgroupManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySubgroupManager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/PropertySubgroupManager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,7 @@
+package org.ourproject.kune.platf.server.manager;
+
+import org.ourproject.kune.platf.server.domain.PropertySubgroup;
+
+public interface PropertySubgroupManager extends Manager<PropertySubgroup, Long> {
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/file/EntityLogoUploadManager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -49,10 +49,10 @@
private static final long serialVersionUID = -4281058427935636238L;
@Inject
- GroupManager groupManager;
+ transient GroupManager groupManager;
@Inject
- I18nTranslationService i18n;
+ transient I18nTranslationService i18n;
@Override
protected void beforePostStart() {
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/DefaultManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/DefaultManager.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/DefaultManager.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -47,6 +47,10 @@
log = LogFactory.getLog(entityClass);
}
+ public void clear() {
+ getEntityManager().clear();
+ }
+
public T find(final Long primaryKey) {
return getEntityManager().find(entityClass, primaryKey);
}
@@ -83,6 +87,10 @@
fullTextEm.getSearchFactory().optimize(entityClass);
}
+ public void remove(final T entity) {
+ getEntityManager().remove(entity);
+ }
+
public SearchResult<T> search(final Query query) {
return search(query, null, null);
}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertiesManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertiesManagerDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertiesManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,86 @@
+package org.ourproject.kune.platf.server.manager.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+
+import org.ourproject.kune.platf.client.errors.UnknownPropertyException;
+import org.ourproject.kune.platf.server.domain.Properties;
+import org.ourproject.kune.platf.server.domain.Property;
+import org.ourproject.kune.platf.server.domain.PropertySetted;
+import org.ourproject.kune.platf.server.manager.PropertiesManager;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+@Singleton
+public class PropertiesManagerDefault extends DefaultManager<Properties, Long> implements PropertiesManager {
+
+ private final Property propFinder;
+ private final Properties propsFinder;
+
+ @Inject
+ public PropertiesManagerDefault(final Provider<EntityManager> provider, final Property propFinder,
+ final Properties propsFinder) {
+ super(provider, Properties.class);
+ this.propFinder = propFinder;
+ this.propsFinder = propsFinder;
+ }
+
+ public HashMap<String, PropertySetted> get(final Properties properties) {
+ final List<Property> defProperties = propFinder.find(properties.getPgroup());
+ final Map<Property, PropertySetted> propSetted = properties.getList();
+ final HashMap<String, PropertySetted> result = new HashMap<String, PropertySetted>();
+ for (final Property prop : defProperties) {
+ final PropertySetted setted = propSetted.get(prop);
+ if (setted == null) {
+ result.put(prop.getName(), createPropSettedFromDefault(prop));
+ } else {
+ result.put(prop.getName(), setted);
+ }
+ }
+ return result;
+ }
+
+ public PropertySetted get(final Properties properties, final String key) {
+ final Property prop = getDefProp(key);
+ PropertySetted propSet = properties.getList().get(prop);
+ if (propSet == null) {
+ propSet = createPropSettedFromDefault(prop);
+ }
+ return propSet;
+ }
+
+ public void set(final Properties properties, final String key, final String value) {
+ final PropertySetted propertySetted = get(properties, key);
+ propertySetted.setValue(value);
+ if (properties.getList().get(getDefProp(key)) == null) {
+ properties.getList().put(propertySetted.getProperty(), propertySetted);
+ }
+ persist(properties);
+ }
+
+ private PropertySetted createPropSettedFromDefault(final Property prop) {
+ return new PropertySetted(prop, prop.getDefaultValue());
+ }
+
+ private Property getDefProp(final String key) {
+ final Property prop = propFinder.find(key);
+ if (prop == null) {
+ throw new UnknownPropertyException("Unknown property: " + key);
+ }
+ return prop;
+ }
+
+ // @Override
+ // public void remove(final Properties properties) {
+ // for (final Entry<Property, PropertySetted> prop :
+ // properties.getList().entrySet()) {
+ // }
+ // super.remove(properties);
+ // }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyGroupManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyGroupManagerDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyGroupManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,40 @@
+package org.ourproject.kune.platf.server.manager.impl;
+
+import javax.persistence.EntityManager;
+
+import org.ourproject.kune.platf.server.domain.Properties;
+import org.ourproject.kune.platf.server.domain.PropertyGroup;
+import org.ourproject.kune.platf.server.manager.PropertiesManager;
+import org.ourproject.kune.platf.server.manager.PropertyGroupManager;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+@Singleton
+public class PropertyGroupManagerDefault extends DefaultManager<PropertyGroup, Long> implements PropertyGroupManager {
+
+ private final PropertyGroup finder;
+ private final PropertiesManager propertiesManager;
+
+ @Inject
+ public PropertyGroupManagerDefault(final Provider<EntityManager> provider, final PropertyGroup finder,
+ final PropertiesManager propertiesManager) {
+ super(provider, PropertyGroup.class);
+ this.finder = finder;
+ this.propertiesManager = propertiesManager;
+ }
+
+ public PropertyGroup find(final String groupName) {
+ return finder.find(groupName);
+ }
+
+ @Override
+ public void remove(final PropertyGroup pGroup) {
+ for (final Properties properties : pGroup.getPropertiesList()) {
+ propertiesManager.remove(properties);
+ }
+ super.remove(pGroup);
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyManagerDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertyManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,20 @@
+package org.ourproject.kune.platf.server.manager.impl;
+
+import javax.persistence.EntityManager;
+
+import org.ourproject.kune.platf.server.domain.Property;
+import org.ourproject.kune.platf.server.manager.PropertyManager;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+@Singleton
+public class PropertyManagerDefault extends DefaultManager<Property, Long> implements PropertyManager {
+
+ @Inject
+ public PropertyManagerDefault(final Provider<EntityManager> provider) {
+ super(provider, Property.class);
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,20 @@
+package org.ourproject.kune.platf.server.manager.impl;
+
+import javax.persistence.EntityManager;
+
+import org.ourproject.kune.platf.server.domain.PropertySetted;
+import org.ourproject.kune.platf.server.manager.PropertySettedManager;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+@Singleton
+public class PropertySettedManagerDefault extends DefaultManager<PropertySetted, Long> implements PropertySettedManager {
+
+ @Inject
+ public PropertySettedManagerDefault(final Provider<EntityManager> provider) {
+ super(provider, PropertySetted.class);
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySubgroupManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySubgroupManagerDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/PropertySubgroupManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,21 @@
+package org.ourproject.kune.platf.server.manager.impl;
+
+import javax.persistence.EntityManager;
+
+import org.ourproject.kune.platf.server.domain.PropertySubgroup;
+import org.ourproject.kune.platf.server.manager.PropertySubgroupManager;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+@Singleton
+public class PropertySubgroupManagerDefault extends DefaultManager<PropertySubgroup, Long> implements
+ PropertySubgroupManager {
+
+ @Inject
+ public PropertySubgroupManagerDefault(final Provider<EntityManager> provider) {
+ super(provider, PropertySubgroup.class);
+ }
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -38,9 +38,12 @@
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.server.domain.I18nCountry;
import org.ourproject.kune.platf.server.domain.I18nLanguage;
+import org.ourproject.kune.platf.server.domain.Properties;
+import org.ourproject.kune.platf.server.domain.PropertyGroup;
import org.ourproject.kune.platf.server.domain.User;
import org.ourproject.kune.platf.server.manager.I18nCountryManager;
import org.ourproject.kune.platf.server.manager.I18nLanguageManager;
+import org.ourproject.kune.platf.server.manager.PropertyGroupManager;
import org.ourproject.kune.platf.server.manager.UserManager;
import org.ourproject.kune.platf.server.properties.ChatProperties;
import org.ourproject.kune.platf.server.sn.UserBuddiesData;
@@ -57,11 +60,14 @@
private final XmppManager xmppManager;
private final ChatProperties properties;
private final I18nTranslationService i18n;
+ private final PropertyGroupManager propGroupManager;
+ private PropertyGroup userPropGroup;
@Inject
public UserManagerDefault(final Provider<EntityManager> provider, final User finder,
final I18nLanguageManager languageManager, final I18nCountryManager countryManager,
- final XmppManager xmppManager, final ChatProperties properties, final I18nTranslationService i18n) {
+ final XmppManager xmppManager, final ChatProperties properties, final I18nTranslationService i18n,
+ final PropertyGroupManager propGroupManager) {
super(provider, User.class);
this.finder = finder;
this.languageManager = languageManager;
@@ -69,17 +75,22 @@
this.xmppManager = xmppManager;
this.properties = properties;
this.i18n = i18n;
+ this.propGroupManager = propGroupManager;
}
public User createUser(final String shortName, final String longName, final String email, final String passwd,
final String langCode, final String countryCode, final String timezone) throws I18nNotFoundException {
try {
- I18nLanguage language = languageManager.findByCode(langCode);
- I18nCountry country = countryManager.findByCode(countryCode);
- TimeZone tz = TimeZone.getTimeZone(timezone);
- User user = new User(shortName, longName, email, passwd, language, country, tz);
+ final I18nLanguage language = languageManager.findByCode(langCode);
+ final I18nCountry country = countryManager.findByCode(countryCode);
+ final TimeZone tz = TimeZone.getTimeZone(timezone);
+ if (userPropGroup == null) {
+ userPropGroup = propGroupManager.find(User.PROPS_ID);
+ }
+ final User user = new User(shortName, longName, email, passwd, language, country, tz, new Properties(
+ userPropGroup));
return user;
- } catch (NoResultException e) {
+ } catch (final NoResultException e) {
throw new I18nNotFoundException();
}
}
@@ -108,21 +119,21 @@
// independent.
// In the future cache this.
final String domain = "@" + properties.getDomain();
- UserBuddiesData buddiesData = new UserBuddiesData();
- User user = finder.getByShortName(shortName);
- ChatConnection connection = xmppManager.login(user.getShortName() + domain, user.getPassword(), "kserver");
- Collection<RosterEntry> roster = xmppManager.getRoster(connection);
+ final UserBuddiesData buddiesData = new UserBuddiesData();
+ final User user = finder.getByShortName(shortName);
+ final ChatConnection connection = xmppManager.login(user.getShortName() + domain, user.getPassword(), "kserver");
+ final Collection<RosterEntry> roster = xmppManager.getRoster(connection);
xmppManager.disconnect(connection);
- for (RosterEntry entry : roster) {
+ for (final RosterEntry entry : roster) {
if (entry.getType().equals(ItemType.both)) {
// only show buddies with subscription 'both'
- int index = entry.getUser().indexOf(domain);
+ final int index = entry.getUser().indexOf(domain);
if (index > 0) {
// local user
try {
- User buddie = finder.getByShortName(entry.getUser().substring(0, index));
+ final User buddie = finder.getByShortName(entry.getUser().substring(0, index));
buddiesData.getBuddies().add(buddie);
- } catch (NoResultException e) {
+ } catch (final NoResultException e) {
// No existent buddie, skip
}
} else {
@@ -138,10 +149,10 @@
User user;
try {
user = finder.getByShortName(nickOrEmail);
- } catch (NoResultException e) {
+ } catch (final NoResultException e) {
try {
user = finder.getByEmail(nickOrEmail);
- } catch (NoResultException e2) {
+ } catch (final NoResultException e2) {
return null;
}
}
@@ -166,12 +177,12 @@
}
public SearchResult<User> search(final String search, final Integer firstResult, final Integer maxResults) {
- MultiFieldQueryParser parser = new MultiFieldQueryParser(new String[] { "name", "shortName" },
+ final MultiFieldQueryParser parser = new MultiFieldQueryParser(new String[] { "name", "shortName" },
new StandardAnalyzer());
Query query;
try {
query = parser.parse(search);
- } catch (ParseException e) {
+ } catch (final ParseException e) {
throw new ServerManagerException("Error parsing search", e);
}
return super.search(query, firstResult, maxResults);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -35,7 +35,7 @@
public class SiteOptionsPresenter extends AbstractActionExtensiblePresenter implements SiteOptions {
private SiteOptionsView view;
- private MenuDescriptor menuDescriptor;
+ private final MenuDescriptor menuDescriptor;
private final I18nTranslationService i18n;
private final ImgResources img;
@@ -43,6 +43,8 @@
super();
this.i18n = i18n;
this.img = img;
+ menuDescriptor = new MenuDescriptor();
+ menuDescriptor.setStandalone(true);
}
@Override
@@ -61,8 +63,6 @@
}
private void createActions() {
- menuDescriptor = new MenuDescriptor();
- menuDescriptor.setStandalone(true);
view.addAction(menuDescriptor);
view.setMenu(menuDescriptor);
final MenuSeparatorDescriptor sep = new MenuSeparatorDescriptor(menuDescriptor);
Modified: trunk/src/main/resources/META-INF/persistence.xml
===================================================================
--- trunk/src/main/resources/META-INF/persistence.xml 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/main/resources/META-INF/persistence.xml 2009-07-19 18:10:48 UTC (rev 1135)
@@ -14,7 +14,7 @@
<property name="hibernate.format_sql" value="false" />
<property name="use_sql_comments" value="true" />
<property name="hibernate.dialect"
- value="org.hibernate.dialect.MySQL5Dialect" />
+ value="org.hibernate.dialect.MySQLInnoDBDialect" />
<property name="hibernate.connection.driver_class"
value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url"
@@ -22,10 +22,11 @@
<property name="hibernate.connection.username" value="kune" />
<property name="hibernate.connection.password" value="db4kune" />
<property name="hibernate.hbm2ddl.auto" value="update" />
+ <!-- https://www.hibernate.org/214.html -->
<property name="hibernate.c3p0.min_size" value="5" />
- <property name="hibernate.c3p0.max_size" value="20" />
- <property name="hibernate.c3p0.timeout" value="300" />
- <property name="hibernate.c3p0.max_statements" value="50" />
+ <property name="hibernate.c3p0.max_size" value="50" />
+ <property name="hibernate.c3p0.timeout" value="100" />
+ <property name="hibernate.c3p0.max_statements" value="0" />
<property name="hibernate.c3p0.idle_test_period" value="3000" />
<property name="hibernate.search.default.directory_provider"
value="org.hibernate.search.store.FSDirectoryProvider" />
@@ -43,7 +44,7 @@
<property name="hibernate.format_sql" value="false" />
<property name="use_sql_comments" value="false" />
<property name="hibernate.dialect"
- value="org.hibernate.dialect.MySQL5Dialect" />
+ value="org.hibernate.dialect.MySQLInnoDBDialect" />
<property name="hibernate.connection.driver_class"
value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url"
@@ -52,9 +53,9 @@
<property name="hibernate.connection.password" value="db4kune" />
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="hibernate.c3p0.min_size" value="5" />
- <property name="hibernate.c3p0.max_size" value="20" />
- <property name="hibernate.c3p0.timeout" value="300" />
- <property name="hibernate.c3p0.max_statements" value="50" />
+ <property name="hibernate.c3p0.max_size" value="50" />
+ <property name="hibernate.c3p0.timeout" value="100" />
+ <property name="hibernate.c3p0.max_statements" value="0" />
<property name="hibernate.c3p0.idle_test_period" value="3000" />
<property name="hibernate.search.default.directory_provider"
value="org.hibernate.search.store.FSDirectoryProvider" />
Modified: trunk/src/test/java/org/ourproject/kune/platf/client/actions/KeyStrokeTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/actions/KeyStrokeTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/actions/KeyStrokeTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -14,7 +14,7 @@
@Test
public void altS() {
- final KeyStroke key = KeyStroke.getKeyStroke('S', Keyboard.MODIFIER_ALT);
+ final KeyStroke key = KeyStroke.getKeyStroke(Character.valueOf('S'), Keyboard.MODIFIER_ALT);
assertEquals(" (Alt+S)", key.toString());
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/client/ui/rte/saving/RTESavingEditorPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/ui/rte/saving/RTESavingEditorPresenterTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/ui/rte/saving/RTESavingEditorPresenterTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -41,6 +41,8 @@
final ImageResource img = Mockito.mock(ImageResource.class);
Mockito.when(img.getName()).thenReturn("save");
Mockito.when(imgResources.save()).thenReturn(img);
+ Mockito.when(imgResources.fontheight()).thenReturn(img);
+ Mockito.when(imgResources.charfontname()).thenReturn(img);
timer = Mockito.mock(TimerWrapper.class);
view = Mockito.mock(RTESavingEditorView.class);
@@ -95,7 +97,6 @@
@Test
public void initialEditWithEditionAndSave() {
presenter.edit("Text to edit", saveListener, cancelListener);
- final String textModified = "Text modified";
presenter.onEdit();
presenter.onDoSave();
presenter.onSavedSuccessful();
@@ -106,7 +107,6 @@
@Test
public void testSavePendingAndCancel() {
presenter.edit("Text to edit", saveListener, cancelListener);
- final String textModified = "Text modified";
presenter.onEdit();
presenter.onCancel();
presenter.onCancelConfirmed();
@@ -117,7 +117,6 @@
@Test
public void testSavePendingAndSaveFails() {
presenter.edit("Text to edit", saveListener, cancelListener);
- final String textModified = "Text modified";
presenter.onEdit();
presenter.onDoSave();
presenter.onSaveFailed();
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/DatabaseInitializationTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -23,6 +23,7 @@
import org.ourproject.kune.platf.server.manager.LicenseManager;
import com.google.inject.Inject;
+import com.wideplay.warp.persist.Transactional;
public class DatabaseInitializationTest {
@Inject
@@ -52,12 +53,13 @@
*/
@Test
public void caseSensitive() {
- Content defaultContent = defaultGroup.getDefaultContent();
+ final Content defaultContent = defaultGroup.getDefaultContent();
assertTrue(contentManager.findIfExistsTitle(defaultContent.getContainer(), "Welcome to kune demo"));
assertTrue(!contentManager.findIfExistsTitle(defaultContent.getContainer(), "welcome to kune Demo"));
assertTrue(!contentManager.findIfExistsTitle(defaultContent.getContainer(), "Welcome to kune demo "));
}
+ @Transactional
@Before
public void init() {
new IntegrationTestHelper(this);
@@ -95,7 +97,7 @@
final ToolConfiguration chatToolConfig = defaultGroup.getToolConfiguration(ChatServerTool.NAME);
assertNotNull(chatToolConfig);
assertTrue(chatToolConfig.isEnabled());
- List<String> enabledTools = groupManager.findEnabledTools(defaultGroup.getId());
+ final List<String> enabledTools = groupManager.findEnabledTools(defaultGroup.getId());
assertNotNull(enabledTools);
assertTrue(enabledTools.size() > 0);
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkMembersTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -14,6 +14,7 @@
import org.ourproject.kune.platf.server.manager.SocialNetworkManager;
import com.google.inject.Inject;
+import com.wideplay.warp.persist.Transactional;
public class SocialNetworkMembersTest extends IntegrationTest {
@Inject
@@ -25,6 +26,7 @@
private Group group;
+ @Transactional
@Before
public void init() {
new IntegrationTestHelper(this);
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -9,6 +9,7 @@
import com.google.inject.Injector;
import com.google.inject.Provider;
import com.wideplay.warp.persist.PersistenceService;
+import com.wideplay.warp.persist.Transactional;
public abstract class PersistenceTest {
@Inject
@@ -48,6 +49,7 @@
}
}
+ @Transactional
@Before
public void prepare() {
final Injector injector = TestHelper.create(new PlatformServerModule(), persistenceUnit, propetiesFileName);
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/auth/AuthorizatedMethodInterceptorTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -13,12 +13,15 @@
import org.ourproject.kune.platf.integration.IntegrationTestHelper;
import org.ourproject.kune.platf.server.access.AccessRol;
+import com.wideplay.warp.persist.Transactional;
+
public class AuthorizatedMethodInterceptorTest extends IntegrationTest {
private AuthorizatedMethodInterceptor auth;
private MethodInvocation invocation;
private Authorizated authAnnotation;
+ @Transactional
@Before
public void before() {
auth = new AuthorizatedMethodInterceptor();
Added: trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefaultTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/PropertySettedManagerDefaultTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -0,0 +1,172 @@
+package org.ourproject.kune.platf.server.manager.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.HashMap;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.ourproject.kune.platf.server.PersistenceTest;
+import org.ourproject.kune.platf.server.domain.Properties;
+import org.ourproject.kune.platf.server.domain.Property;
+import org.ourproject.kune.platf.server.domain.PropertyGroup;
+import org.ourproject.kune.platf.server.domain.PropertySetted;
+import org.ourproject.kune.platf.server.domain.PropertySubgroup;
+import org.ourproject.kune.platf.server.manager.PropertiesManager;
+import org.ourproject.kune.platf.server.manager.PropertyGroupManager;
+import org.ourproject.kune.platf.server.manager.PropertyManager;
+import org.ourproject.kune.platf.server.manager.PropertySubgroupManager;
+
+import com.google.inject.Inject;
+
+public class PropertySettedManagerDefaultTest extends PersistenceTest {
+
+ private static final String NAME1 = "name1";
+ private static final String DISPLAYNAME1 = "display test name 1";
+ private static final String DEFVALUE1 = "def value 1";
+ private static final String NAME2 = "name2";
+ private static final String DISPLAYNAME2 = "display test name 2";
+ private static final String DEFVALUE2 = "def value 2";
+ private static final String NAME3 = "name3";
+ private static final String DISPLAYNAME3 = "display test name 3";
+ private static final String DEFVALUE3 = "def value 3";
+ private static final String SOME_NEW_VALUE = "some new value";
+ private static final String SOME_OTHER_NEW_VALUE = "some new value";
+
+ @Inject
+ PropertyManager propertyManager;
+
+ @Inject
+ PropertiesManager propertiesManager;
+
+ @Inject
+ PropertyGroupManager propGroupManager;
+
+ @Inject
+ PropertySubgroupManager propSubgroupManager;
+
+ @Inject
+ Property propFinder;
+
+ @Inject
+ PropertySetted propSettedFinder;
+
+ @Inject
+ PropertyGroup propGroupFinder;
+
+ @Inject
+ PropertySubgroup propSubgroupFinder;
+
+ private Property prop1;
+ private Property prop2;
+ private Property prop3;
+ private PropertyGroup somegroup;
+ private PropertySubgroup somesubgroup;
+ private PropertyGroup othergroup;
+
+ @Before
+ public void before() {
+ openTransaction();
+ somegroup = new PropertyGroup("somegroup");
+ othergroup = new PropertyGroup("othergroup");
+ somesubgroup = new PropertySubgroup("somesubgroup");
+ propGroupManager.persist(somegroup);
+ propGroupManager.persist(othergroup);
+ propSubgroupManager.persist(somesubgroup);
+ prop1 = new Property(NAME1, DISPLAYNAME1, Property.Type.STRING, true, DEFVALUE1, somegroup, somesubgroup);
+ prop2 = new Property(NAME2, DISPLAYNAME2, Property.Type.STRING, false, DEFVALUE2, somegroup, somesubgroup);
+ prop3 = new Property(NAME3, DISPLAYNAME3, Property.Type.STRING, false, DEFVALUE3, somegroup, somesubgroup);
+ propertyManager.persist(prop1);
+ propertyManager.persist(prop2);
+ propertyManager.persist(prop3);
+ assertEquals(3, propFinder.getAll().size());
+ }
+
+ @After
+ public void close() {
+ if (getTransaction().isActive()) {
+ rollbackTransaction();
+ }
+ }
+
+ @Test
+ public void setProperty() {
+ final Properties prop = new Properties(somegroup);
+ assertEquals(DEFVALUE1, propertiesManager.get(prop, NAME1).getValue());
+ assertEquals(0, prop.getList().size());
+ propertiesManager.set(prop, NAME1, SOME_NEW_VALUE);
+ assertNotNull(prop.getId());
+ assertEquals(1, prop.getList().size());
+ assertEquals(SOME_NEW_VALUE, propertiesManager.get(prop, NAME1).getValue());
+ propertiesManager.set(prop, NAME1, SOME_OTHER_NEW_VALUE);
+ assertEquals(1, prop.getList().size());
+ assertEquals(SOME_OTHER_NEW_VALUE, propertiesManager.get(prop, NAME1).getValue());
+ }
+
+ @Test
+ public void setTwoProps() {
+ final Properties prop1 = new Properties(somegroup);
+ final Properties prop2 = new Properties(somegroup);
+ propertiesManager.persist(prop1);
+ propertiesManager.persist(prop2);
+ propertiesManager.set(prop1, NAME1, SOME_NEW_VALUE);
+ propertiesManager.set(prop2, NAME1, SOME_OTHER_NEW_VALUE);
+ assertEquals(2, propSettedFinder.getAll().size());
+ assertEquals(SOME_NEW_VALUE, propertiesManager.get(prop1, NAME1).getValue());
+ assertEquals(SOME_OTHER_NEW_VALUE, propertiesManager.get(prop2, NAME1).getValue());
+ }
+
+ @Test
+ public void testGroupFinder() {
+ assertEquals(3, propFinder.find(somegroup).size());
+ assertEquals(0, propFinder.find(othergroup).size());
+ assertEquals(3, propFinder.find(somesubgroup).size());
+ }
+
+ @Test
+ public void testGroupRemove() {
+ final Properties prop = new Properties(somegroup);
+ propertiesManager.set(prop, NAME1, SOME_NEW_VALUE);
+ assertEquals(1, propSettedFinder.getAll().size());
+
+ assertNotNull(somegroup.getId());
+ propGroupManager.remove(somegroup);
+ closeTransaction();
+ assertEquals(0, propFinder.getAll().size());
+ assertEquals(0, propFinder.find(somegroup).size());
+ assertEquals(1, propGroupFinder.getAll().size());
+ assertEquals(0, propSettedFinder.getAll().size());
+ }
+
+ @Test
+ public void testPropertiesRemove() {
+ final Properties prop = new Properties(somegroup);
+ propertiesManager.set(prop, NAME1, SOME_NEW_VALUE);
+ assertEquals(1, propSettedFinder.getAll().size());
+ propertiesManager.remove(prop);
+ closeTransaction();
+ assertEquals(0, propSettedFinder.getAll().size());
+ }
+
+ @Test
+ public void testPropertyGet() {
+ final Properties prop = new Properties(somegroup);
+ propertiesManager.set(prop, NAME1, SOME_NEW_VALUE);
+ final HashMap<String, PropertySetted> result = propertiesManager.get(prop);
+ assertEquals(3, result.size());
+ assertEquals(SOME_NEW_VALUE, result.get(NAME1).getValue());
+ }
+
+ @Test
+ public void testSubgroupRemove() {
+ assertNotNull(somesubgroup.getId());
+ propSubgroupManager.remove(somesubgroup);
+ closeTransaction();
+ assertEquals(0, propFinder.getAll().size());
+ assertEquals(2, propGroupFinder.getAll().size());
+ assertEquals(0, propSubgroupFinder.getAll().size());
+ }
+
+}
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -21,6 +21,7 @@
import org.ourproject.kune.testhelper.ctx.DomainContext;
import com.google.inject.Inject;
+import com.wideplay.warp.persist.Transactional;
public class SocialNetworkManagerTest extends PersistenceTest {
@Inject
@@ -163,6 +164,7 @@
socialNetworkManager.requestToJoin(user, group);
}
+ @Transactional
@Before
public void init() {
openTransaction();
Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java 2009-07-13 11:36:33 UTC (rev 1134)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java 2009-07-19 18:10:48 UTC (rev 1135)
@@ -11,7 +11,6 @@
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.search.SiteSearcher;
-import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import com.calclab.suco.client.ioc.Provider;
@@ -25,7 +24,6 @@
public void before() {
final Session session = Mockito.mock(Session.class);
final StateManager stateManager = Mockito.mock(StateManager.class);
- final WsThemeManager theme = Mockito.mock(WsThemeManager.class);
final SiteSearcher searcher = Mockito.mock(SiteSearcher.class);
final Provider searcherProvider = Mockito.mock(Provider.class);
Mockito.when(searcherProvider.get()).thenReturn(searcher);
@@ -44,7 +42,7 @@
@Test
public void withTagsViewFalse() {
final StateContainerDTO state = new StateContainerDTO();
- ArrayList<TagCountDTO> list = new ArrayList<TagCountDTO>();
+ final ArrayList<TagCountDTO> list = new ArrayList<TagCountDTO>();
state.setTagCloudResult(new TagCloudResultDTO(list, 0, 0));
tagsSummaryPresenter.setState(state);
Mockito.verify(view).setVisible(false);
@@ -53,7 +51,7 @@
@Test
public void withTagsViewVisible() {
final StateContainerDTO state = new StateContainerDTO();
- ArrayList<TagCountDTO> list = new ArrayList<TagCountDTO>();
+ final ArrayList<TagCountDTO> list = new ArrayList<TagCountDTO>();
list.add(new TagCountDTO("abc", 1L));
state.setTagCloudResult(new TagCloudResultDTO(list, 0, 0));
tagsSummaryPresenter.setState(state);
1
0
Author: vjrj
Date: 2009-07-13 13:36:33 +0200 (Mon, 13 Jul 2009)
New Revision: 1134
Added:
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManager.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManagerImpl.java
Modified:
trunk/TODO
trunk/img/icons-base.svg
trunk/img/ui-drafts.svg
trunk/script/css-compact-and-tidy.sh
trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/AbstractToolbar.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/FlowToolbar.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/SimpleToolbar.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/tabbed/AbstractTabbedDialogPanel.java
trunk/src/main/java/org/ourproject/kune/platf/public/images/arrowdown.png
trunk/src/main/java/org/ourproject/kune/platf/public/images/kune-search-ico.png
trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/GroupManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConf.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java
Log:
Complete - task Group background image (styling)
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/TODO 2009-07-13 11:36:33 UTC (rev 1134)
@@ -11,6 +11,8 @@
Use org-mode in emacs to easy manage this file
* SHORT-TERM (URGENT)
+** Do something with jetty/jruby alias issue
+ http://jetty.mortbay.org/jetty5/faq/faq_s_400-Security_t_Aliases.html
** Use of webdriver instead of plain selenium
http://code.google.com/p/webdriver/
** New Action class
@@ -103,6 +105,12 @@
- value :: red
*** logos
*** caching
+*** backgrounds
+ A big one select from context
+ body {
+ background: #352726 url('http://some.jpg') fixed no-repeat top left;
+ }
+
** danigb,vjrj URLs public/workspace braimstorming
Nowadays:
- ws: #group.tool.container.content
Modified: trunk/img/icons-base.svg
===================================================================
--- trunk/img/icons-base.svg 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/img/icons-base.svg 2009-07-13 11:36:33 UTC (rev 1134)
@@ -27,17 +27,17 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="1.4119877"
- inkscape:cx="342.50815"
- inkscape:cy="727.92005"
+ inkscape:zoom="1.3545976"
+ inkscape:cx="372.04724"
+ inkscape:cy="526.18109"
inkscape:document-units="px"
inkscape:current-layer="layer1"
- inkscape:window-width="1270"
- inkscape:window-height="773"
- inkscape:window-x="1280"
- inkscape:window-y="25"
+ inkscape:window-width="1280"
+ inkscape:window-height="730"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
showgrid="false"
- showguides="false"
+ showguides="true"
inkscape:guide-bbox="true"
inkscape:grid-points="true"
inkscape:guide-points="true">
@@ -2463,93 +2463,6 @@
id="image10688"
x="522"
y="784.36218" />
- <g
- inkscape:export-ydpi="90.000000"
- inkscape:export-xdpi="90.000000"
- inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-org-home-draft-0.5.png"
- transform="translate(-156.9822,555.56514)"
- id="g4822"
- style="opacity:0.5;display:inline">
- <rect
- ry="3.7996395"
- rx="3.7996395"
- y="8.8522816"
- x="405.52979"
- height="15.999997"
- width="15.999997"
- id="rect4824"
- style="fill:#dd8a3d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:12.63039398pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <g
- id="g4826"
- transform="matrix(1.635216,0,0,1.635216,-260.6467,-12.57016)">
- <path
- id="path4828"
- d="M 409.34583,20.876719 L 413.22395,17.041177"
- style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.74907231;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.37500004;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
- <g
- id="g4830">
- <path
- sodipodi:type="arc"
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="path4832"
- sodipodi:cx="250.53525"
- sodipodi:cy="332.62314"
- sodipodi:rx="26.82268"
- sodipodi:ry="26.82268"
- d="M 277.35793 332.62314 A 26.82268 26.82268 0 1 1 223.71257,332.62314 A 26.82268 26.82268 0 1 1 277.35793 332.62314 z"
- transform="matrix(0.102065,0,0,0.102065,387.7515,-17.05636)" />
- <path
- sodipodi:type="arc"
- style="fill:#dd8a3d;fill-opacity:1;fill-rule:evenodd;stroke:#dd8a3d;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
- id="path4834"
- sodipodi:cx="250.53525"
- sodipodi:cy="332.62314"
- sodipodi:rx="26.82268"
- sodipodi:ry="26.82268"
- d="M 277.35793 332.62314 A 26.82268 26.82268 0 1 1 223.71257,332.62314 A 26.82268 26.82268 0 1 1 277.35793 332.62314 z"
- transform="matrix(5.245387e-2,0,0,5.245387e-2,400.1808,-0.554549)" />
- </g>
- </g>
- </g>
- <g
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/icons/kune-search-ico-push.png"
- id="g3316">
- <rect
- ry="3.7996395"
- rx="3.7996395"
- y="564.36218"
- x="311"
- height="15.999997"
- width="15.999997"
- id="rect3279"
- style="opacity:1;fill:#eec59e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:12.63039398pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:type="arc"
- style="opacity:1;fill:#a02c2c;fill-opacity:1;fill-rule:evenodd;stroke:#a02c2c;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- id="path3287"
- sodipodi:cx="250.53525"
- sodipodi:cy="332.62314"
- sodipodi:rx="26.82268"
- sodipodi:ry="26.82268"
- d="M 277.35793 332.62314 A 26.82268 26.82268 0 1 1 223.71257,332.62314 A 26.82268 26.82268 0 1 1 277.35793 332.62314 z"
- transform="matrix(0.1668983,0,0,0.1668983,278.88098,515.04891)" />
- <path
- style="opacity:1;color:#000000;fill:#800000;fill-opacity:1;fill-rule:nonzero;stroke:#a02c2c;stroke-width:2.860111;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.37500004;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
- d="M 314.19237,577.07768 L 320.53393,570.80575"
- id="path3283" />
- <path
- sodipodi:type="arc"
- style="opacity:1;fill:#eec59e;fill-opacity:1;fill-rule:evenodd;stroke:#dd8a3d;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
- id="path3289"
- sodipodi:cx="250.53525"
- sodipodi:cy="332.62314"
- sodipodi:rx="26.82268"
- sodipodi:ry="26.82268"
- d="M 277.35793 332.62314 A 26.82268 26.82268 0 1 1 223.71257,332.62314 A 26.82268 26.82268 0 1 1 277.35793 332.62314 z"
- transform="matrix(8.5773407e-2,0,0,8.5773407e-2,299.20557,542.03293)" />
- </g>
<rect
style="opacity:1;color:#000000;fill:#592704;fill-opacity:1;fill-rule:evenodd;stroke-width:1.90017545;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect17021"
@@ -4515,5 +4428,164 @@
width="14"
id="rect2884"
style="opacity:1;fill:#ffe6d5;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <g
+ id="g3700"
+ inkscape:export-filename="//home/vjrj/proyectos/dev/kune/trunk/src/main/java/org/ourproject/kune/platf/public/images/arrowdown.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ transform="translate(-2.7252744,2.5494502)">
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/icons/menu-arrow-down.png"
+ transform="translate(-1437.9102,-6.8473347)"
+ d="M 1563.0192,677.96995 L 1559.716,672.3151 L 1566.2648,672.28185 L 1563.0192,677.96995 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="2.6129171"
+ sodipodi:arg1="1.5657195"
+ sodipodi:r2="0.90551758"
+ sodipodi:r1="3.7810335"
+ sodipodi:cy="674.18896"
+ sodipodi:cx="1563"
+ sodipodi:sides="3"
+ id="path2918"
+ style="fill:#9b9b9b;fill-opacity:1;fill-rule:evenodd;stroke:#2b0000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="star" />
+ <rect
+ y="660.27856"
+ x="117.08018"
+ height="16"
+ width="16"
+ id="rect2920"
+ style="opacity:0.35;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ </g>
+ <g
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/icons/kune-search-ico-push.png"
+ id="g3316"
+ transform="translate(-11.754839,-13.799158)">
+ <rect
+ ry="3.7996395"
+ rx="3.7996395"
+ y="564.36218"
+ x="311"
+ height="15.999997"
+ width="15.999997"
+ id="rect3279"
+ style="opacity:1;fill:#eec59e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:12.63039398pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#a02c2c;fill-opacity:1;fill-rule:evenodd;stroke:#a02c2c;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3287"
+ sodipodi:cx="250.53525"
+ sodipodi:cy="332.62314"
+ sodipodi:rx="26.82268"
+ sodipodi:ry="26.82268"
+ d="M 277.35793,332.62314 A 26.82268,26.82268 0 1 1 223.71257,332.62314 A 26.82268,26.82268 0 1 1 277.35793,332.62314 z"
+ transform="matrix(0.1668983,0,0,0.1668983,278.88098,515.04891)" />
+ <path
+ style="opacity:1;fill:#800000;fill-opacity:1;fill-rule:nonzero;stroke:#a02c2c;stroke-width:2.860111;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.37500004;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 314.19237,577.07768 L 320.53393,570.80575"
+ id="path3283" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#eec59e;fill-opacity:1;fill-rule:evenodd;stroke:#dd8a3d;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ id="path3289"
+ sodipodi:cx="250.53525"
+ sodipodi:cy="332.62314"
+ sodipodi:rx="26.82268"
+ sodipodi:ry="26.82268"
+ d="M 277.35793,332.62314 A 26.82268,26.82268 0 1 1 223.71257,332.62314 A 26.82268,26.82268 0 1 1 277.35793,332.62314 z"
+ transform="matrix(8.5773407e-2,0,0,8.5773407e-2,299.20557,542.03293)" />
+ </g>
+ <rect
+ ry="3.7996395"
+ rx="3.7996395"
+ y="552.33008"
+ x="272.48584"
+ height="15.999997"
+ width="15.999997"
+ id="rect3712"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:12.63039398pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:export-filename="//home/vjrj/proyectos/dev/kune/trunk/src/main/java/org/ourproject/kune/platf/public/images/kune-search-ico.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <g
+ inkscape:export-ydpi="90.000000"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-filename="//home/vjrj/proyectos/dev/kune/trunk/src/main/java/org/ourproject/kune/platf/public/images/kune-search-ico.png"
+ transform="translate(-133.04393,543.47778)"
+ id="g4822"
+ style="opacity:0.5;display:inline">
+ <rect
+ ry="3.7996395"
+ rx="3.7996395"
+ y="8.8522816"
+ x="405.52979"
+ height="15.999997"
+ width="15.999997"
+ id="rect4824"
+ style="fill:#dd8a3d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:12.63039398pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <g
+ id="g4826"
+ transform="matrix(1.635216,0,0,1.635216,-260.6467,-12.57016)">
+ <path
+ id="path4828"
+ d="M 409.34583,20.876719 L 413.22395,17.041177"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.74907231;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.37500004;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ <g
+ id="g4830">
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4832"
+ sodipodi:cx="250.53525"
+ sodipodi:cy="332.62314"
+ sodipodi:rx="26.82268"
+ sodipodi:ry="26.82268"
+ d="M 277.35793,332.62314 A 26.82268,26.82268 0 1 1 223.71257,332.62314 A 26.82268,26.82268 0 1 1 277.35793,332.62314 z"
+ transform="matrix(0.102065,0,0,0.102065,387.7515,-17.05636)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#dd8a3d;fill-opacity:1;fill-rule:evenodd;stroke:#dd8a3d;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ id="path4834"
+ sodipodi:cx="250.53525"
+ sodipodi:cy="332.62314"
+ sodipodi:rx="26.82268"
+ sodipodi:ry="26.82268"
+ d="M 277.35793,332.62314 A 26.82268,26.82268 0 1 1 223.71257,332.62314 A 26.82268,26.82268 0 1 1 277.35793,332.62314 z"
+ transform="matrix(5.245387e-2,0,0,5.245387e-2,400.1808,-0.554549)" />
+ </g>
+ </g>
+ </g>
+ <use
+ style="display:inline"
+ x="0"
+ y="0"
+ xlink:href="#g28384"
+ id="use28983"
+ transform="translate(-878.08802,-538.70921)"
+ width="2104.7244"
+ height="1488.189"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-org-members-draft-0.3.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <use
+ style="display:inline"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img/kune-org-members-draft-0.3.png"
+ height="1488.189"
+ width="2104.7244"
+ transform="translate(-1042.2138,-568.35984)"
+ id="use14410"
+ xlink:href="#g28384"
+ y="0"
+ x="0"
+ inkscape:transform-center-x="-156.01159"
+ inkscape:transform-center-y="41.742437" />
</g>
</svg>
Modified: trunk/img/ui-drafts.svg
===================================================================
--- trunk/img/ui-drafts.svg 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/img/ui-drafts.svg 2009-07-13 11:36:33 UTC (rev 1134)
@@ -3,7 +3,7 @@
<svg
xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://web.resource.org/cc/"
+ xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
@@ -14,7 +14,7 @@
height="1488.189"
id="svg2"
sodipodi:version="0.32"
- inkscape:version="0.45.1"
+ inkscape:version="0.46"
sodipodi:docbase="/home/vjrj/proyectos/ourproject.org/kune/svn/trunk/img"
sodipodi:docname="ui-drafts.svg"
version="1.0"
@@ -27,7 +27,7 @@
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
- inkscape:pageopacity="1"
+ inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="0.50128043"
inkscape:cx="1052.3622"
@@ -42,7 +42,6 @@
inkscape:object-paths="true"
guidetolerance="3.9"
showgrid="true"
- gridempspacing="0"
inkscape:window-width="1379"
inkscape:window-height="936"
inkscape:window-x="61"
@@ -51,9 +50,31 @@
height="2104.7244px"
inkscape:grid-bbox="false"
inkscape:guide-bbox="true"
- showguides="true" />
+ showguides="true">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="1px"
+ spacingy="1px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.2"
+ empopacity="0.4"
+ empspacing="0"
+ visible="true"
+ enabled="true" />
+ </sodipodi:namedview>
<defs
id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 744.09448 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="2104.7244 : 744.09448 : 1"
+ inkscape:persp3d-origin="1052.3622 : 496.06299 : 1"
+ id="perspective13699" />
<linearGradient
inkscape:collect="always"
xlink:href="#RSSg"
@@ -25089,6 +25110,20 @@
sodipodi:role="line">from: <tspan
id="tspan29289"
style="fill:#803300">Luther Blissett</tspan></tspan></text>
+ <use
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/Imágenes/yellow-logo.png"
+ height="1488.189"
+ width="2104.7244"
+ transform="matrix(1.237931,0,0,1.237931,-857.42313,-63.496407)"
+ id="use14410"
+ xlink:href="#g28384"
+ y="0"
+ x="0"
+ inkscape:transform-center-x="-193.13157"
+ inkscape:transform-center-y="51.674258"
+ style="fill:#241c1c" />
</g>
<g
inkscape:label="orange-circles"
Modified: trunk/script/css-compact-and-tidy.sh
===================================================================
--- trunk/script/css-compact-and-tidy.sh 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/script/css-compact-and-tidy.sh 2009-07-13 11:36:33 UTC (rev 1134)
@@ -62,3 +62,5 @@
tidy $DEST2
rm $EXTTMPFILE
+rm $CATTMPFILE
+rm $CSSTMPFILE
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2009-07-13 11:36:33 UTC (rev 1134)
@@ -35,10 +35,10 @@
}
*/.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;overflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.kune-Content-Main blockquote{border:1px dashed #DDD;padding:10px;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
background-color: #FFF; */border:1px solid #4D4D4D;background-color:#FFF;margin:5px 0 5px 10px;}.gwt-RichTextToolbar{/* background-color: #F2F2F2;
- padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette-popup{z-index:9999!important;background-color:#FFF;border:1px solid gray;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:1px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-bottom-color:#FFF;border-bottom-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-bottom div{/* line-height: 24px; */color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
+ padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette-popup{z-index:9999!important;background-color:#FFF;border:1px solid gray;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:transparent none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:1px;color:#B3B3B3;background:transparent;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:transparent;border-left-width:5px;border-bottom-color:transparent;border-bottom-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-content{background:#FFF;}.k-entity-bottom div{/* line-height: 24px; */color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
.x-tree-node a span, .x-dd-drag-ghost a span {
color:#000000;
padding: 1px 0px 1px 1px;
text-decoration:none;
}
-*/.x-tree-node .k-ctn-status-normal a span{}.x-tree-node .k-ctn-status-deleted a span{text-decoration:line-through;color:gray;}.x-tree-node .k-ctn-status-rejected a span{text-decoration:line-through;/* color: #FF6633; */color:#F30;}.x-tree-node .k-ctn-status-editing a span{font-style:italic;color:gray;}.x-tree-node .k-ctn-status-submitted a span{color:green;}.k-info-links{text-decoration:underline;color:gray;cursor:pointer;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-basic-thumb{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-basic-thumb td{padding:2px 3px;border:none;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;cursor:pointer;overflow:hidden;}.k-tsp-tag{float:left;padding:3px;cursor:pointer;color:#00F;}.k-tsp-cloud{line-height:1.5em;text-align:center;}.k-link-icon{background-image:url(img/link.gif)!important;}.k-options-icon{background-image:url(img/emblem-system.gif)!important;}.k-copyleft-icon{background-image:url(img/copyleft.png)!important;}.k-picture-icon{background-image:url(img/picture.png)!important;}.k-film-icon{background-image:url(img/film.png)!important;}.k-specialchars-icon{background-image:url(img/specialchars.png)!important;}.k-info-icon{background-image:url(img/info.gif)!important;}.k-newgroup-icon{background-image:url(img/kune-icon16.png)!important;}.k-colors-icon{background-image:url(img/colors.gif)!important;}.x-toolbar-body table{/* width: 100%; */}.k-preview-msg{background:#FCA;}.k-preview-msg-lab{background:#FCA;padding:0 5px;}.k-eil-edit{border:thin solid #000;}/* duplicated in rte.css */.k-rte-comment{border:1px dashed silver;line-height:1.4;padding:1px;background-color:#D7FFD7;}.k-specialchar-grid{border:1px solid #ACA899;}.k-specialchar-grid table{}.k-specialchar-grid div{line-height:22px;}.k-specialchar-grid td{padding:1px;}.k-specialchar-pb{border:1px solid #EBE8D7;cursor:pointer;font-size:108%!important;text-align:center;vertical-align:middle;width:18px;height:18px;}.k-specialchar-pb-up{}.k-specialchar-big{padding:3px;line-height:22px;font-size:197%!important;}.k-specialchar-adv-label{margin-left:-10px;}.k-specialchar-popup,{border:1px px solid silver;z-index:9999!important;background-color:#FFF;}.k-specialchar-pb-down{color:#161616;}.k-specialchar-pb-up-hovering{border:thin solid #ACA899;}.k-specialchar-pb-down-hovering{color:#161616;}.k-preview-panel{border:dashed 1px gray;padding:5px;}.k-rte-changelink{white-space:nowrap;color:navy;cursor:pointer;text-decoration:underline;margin:5px;}.k-rte-changelink-popup{border:1px solid silver;z-index:9999!important;background-color:#ECECEC;}.e-ui-room{height:27px;line-height:22px;}.e-ui-room input{font-size:100%;margin-left:0;margin-top:0;}.k-def-popup{z-index:9999!important;background-color:#FFF;border:1px solid gray;}#k-mshortcut{position:absolute;right:10px;}#k-mshortcut-hidden{visibility:hidden;}#k-mshortcut a{text-decoration:none;color:#000;}.k-plain-iframe iframe{border:1px solid gray;}
\ No newline at end of file
+*/.x-tree-node .k-ctn-status-normal a span{}.x-tree-node .k-ctn-status-deleted a span{text-decoration:line-through;color:gray;}.x-tree-node .k-ctn-status-rejected a span{text-decoration:line-through;/* color: #FF6633; */color:#F30;}.x-tree-node .k-ctn-status-editing a span{font-style:italic;color:gray;}.x-tree-node .k-ctn-status-submitted a span{color:green;}.k-info-links{text-decoration:underline;color:gray;cursor:pointer;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-basic-thumb{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-basic-thumb td{padding:2px 3px;border:none;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;cursor:pointer;overflow:hidden;}.k-tsp-tag{float:left;padding:3px;cursor:pointer;color:#00F;}.k-tsp-cloud{line-height:1.5em;text-align:center;}.k-link-icon{background-image:url(img/link.gif)!important;}.k-options-icon{background-image:url(img/emblem-system.gif)!important;}.k-copyleft-icon{background-image:url(img/copyleft.png)!important;}.k-picture-icon{background-image:url(img/picture.png)!important;}.k-film-icon{background-image:url(img/film.png)!important;}.k-specialchars-icon{background-image:url(img/specialchars.png)!important;}.k-info-icon{background-image:url(img/info.gif)!important;}.k-newgroup-icon{background-image:url(img/kune-icon16.png)!important;}.k-colors-icon{background-image:url(img/colors.gif)!important;}.x-toolbar-body table{/* width: 100%; */}.k-preview-msg{background:#FCA;}.k-preview-msg-lab{background:#FCA;padding:0 5px;}.k-eil-edit{border:thin solid #000;}/* duplicated in rte.css */.k-rte-comment{border:1px dashed silver;line-height:1.4;padding:1px;background-color:#D7FFD7;}.k-specialchar-grid{border:1px solid #ACA899;}.k-specialchar-grid table{}.k-specialchar-grid div{line-height:22px;}.k-specialchar-grid td{padding:1px;}.k-specialchar-pb{border:1px solid #EBE8D7;cursor:pointer;font-size:108%!important;text-align:center;vertical-align:middle;width:18px;height:18px;}.k-specialchar-pb-up{}.k-specialchar-big{padding:3px;line-height:22px;font-size:197%!important;}.k-specialchar-adv-label{margin-left:-10px;}.k-specialchar-popup,{border:1px px solid silver;z-index:9999!important;background-color:#FFF;}.k-specialchar-pb-down{color:#161616;}.k-specialchar-pb-up-hovering{border:thin solid #ACA899;}.k-specialchar-pb-down-hovering{color:#161616;}.k-preview-panel{border:dashed 1px gray;padding:5px;}.k-rte-changelink{white-space:nowrap;color:navy;cursor:pointer;text-decoration:underline;margin:5px;}.k-rte-changelink-popup{border:1px solid silver;z-index:9999!important;background-color:#ECECEC;}.e-ui-room{height:27px;line-height:22px;}.e-ui-room input{font-size:100%;margin-left:0;margin-top:0;}.k-def-popup{z-index:9999!important;background-color:#FFF;border:1px solid gray;}#k-mshortcut{position:absolute;right:10px;}#k-mshortcut-hidden{visibility:hidden;}#k-mshortcut a{text-decoration:none;color:#000;}.k-plain-iframe iframe{border:1px solid gray;}.k-transp .x-panel-body{background:transparent;}.k-transp{background:transparent;}.k-blank{background:#FFF;}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2009-07-13 11:36:33 UTC (rev 1134)
@@ -1,5 +1,5 @@
.k-site-traybar {
- background: #FFF none repeat scroll 0% 50%;
+ background: transparent none repeat scroll 0% 50%;
}
.k-blank-toolbar {
@@ -34,7 +34,6 @@
.k-sitebar {
margin-right: 10px;
height: 16px;
- background: #FFF;
}
.k-sitebar .gwt-TextBox {
@@ -42,6 +41,7 @@
margin: 0 15px 0 3px;
padding-left: 1px;
color: #B3B3B3;
+ background: transparent;
}
.k-sitebar .gwt-Hyperlink a {
@@ -63,9 +63,9 @@
}
.k-entity-summary {
- border-left-color: #FFF;
+ border-left-color: transparent;
border-left-width: 5px;
- border-bottom-color: #FFF;
+ border-bottom-color: transparent;
border-bottom-width: 5px;
}
@@ -205,7 +205,7 @@
.k-entity-title {
border-left-style: solid;
- border-left-width: 2px;
+ border-left-width: 5px;
}
.k-entity-title div {
@@ -411,6 +411,10 @@
background: #DDAFE9 none repeat scroll 0% 50%;
}
+.k-entity-content {
+ background: #FFF;
+}
+
.k-entity-bottom div { /* line-height: 24px; */
color: #FFF;
}
@@ -933,46 +937,68 @@
border
+
+
:
+
+
1
px
+
+
solid
+
+
#C0C0C0
+
+
;
z-index
+
+
:
+
+
9999
!
important
+
+
;
background-color
+
+
:
+
+
#FFF
+
+
;
}
.k-specialchar-pb-down {
@@ -1039,4 +1065,16 @@
.k-plain-iframe iframe {
border: 1px solid gray;
-}
\ No newline at end of file
+}
+
+.k-transp .x-panel-body {
+ background: transparent;
+}
+
+.k-transp {
+ background: transparent;
+}
+
+.k-blank {
+ background: #FFF;
+}
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientActions.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -41,6 +41,7 @@
import org.ourproject.kune.workspace.client.editor.ContentEditor;
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
import com.calclab.suco.client.ioc.Provider;
@@ -55,11 +56,11 @@
final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
final BlogViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
- final SitePublicSpaceLink publicLink) {
+ final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
- documentViewer, entityLogo, publicLink);
+ documentViewer, entityLogo, publicLink, wsBackManager);
}
@Override
@@ -93,6 +94,7 @@
null, containersNoRoot);
createSetAsDefContent(parentMenuTitle, contents);
+ createSetGroupBackImageAction(parentMenuTitle, TYPE_UPLOADEDFILE);
createGoAction(all);
createGoHomeAction(containers);
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -51,6 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -80,7 +81,7 @@
p(ContentServiceAsync.class), p(GroupServiceAsync.class), p(FileUploader.class),
i(ContentActionRegistry.class), i(ContextActionRegistry.class), p(FileDownloadUtils.class),
i(EntityHeader.class), p(ContentEditor.class), i(ErrorHandler.class), i(BlogViewer.class),
- p(ContextPropEditor.class), i(SitePublicSpaceLink.class));
+ p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -41,6 +41,7 @@
import org.ourproject.kune.workspace.client.editor.ContentEditor;
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
import com.calclab.suco.client.ioc.Provider;
@@ -55,11 +56,11 @@
final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
final DocumentViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
- final SitePublicSpaceLink publicLink) {
+ final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
- documentViewer, entityLogo, publicLink);
+ documentViewer, entityLogo, publicLink, wsBackManager);
}
@Override
@@ -93,6 +94,8 @@
createSetAsDefContent(parentMenuTitle, contents);
+ createSetGroupBackImageAction(parentMenuTitle, TYPE_UPLOADEDFILE);
+
createUploadAction(i18n.t("Upload file"), "images/nav/upload.png", i18n.t("Upload files (images, PDFs...)"),
null, containers);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -51,6 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -80,7 +81,7 @@
p(ContentServiceAsync.class), p(GroupServiceAsync.class), p(FileUploader.class),
i(ContentActionRegistry.class), i(ContextActionRegistry.class), p(FileDownloadUtils.class),
i(EntityHeader.class), p(ContentEditor.class), i(ErrorHandler.class), i(DocumentViewer.class),
- p(ContextPropEditor.class), i(SitePublicSpaceLink.class));
+ p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientActions.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -40,6 +40,7 @@
import org.ourproject.kune.workspace.client.editor.ContentEditor;
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
import com.calclab.suco.client.ioc.Provider;
@@ -54,11 +55,11 @@
final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
final GalleryViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
- final SitePublicSpaceLink publicLink) {
+ final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
- documentViewer, entityLogo, publicLink);
+ documentViewer, entityLogo, publicLink, wsBackManager);
}
@Override
@@ -88,6 +89,7 @@
createRefreshCxtAction(parentMenuTitleCtx, containers);
createSetAsDefContent(parentMenuTitle, contents);
+ createSetGroupBackImageAction(parentMenuTitle, TYPE_UPLOADEDFILE);
// createUploadAction(i18n.t("Upload file"), "images/nav/upload.png",
// i18n.t("Upload some files (images, PDFs, ...)"), null, containers);
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -51,6 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -80,7 +81,7 @@
p(ContentServiceAsync.class), p(GroupServiceAsync.class), p(FileUploader.class),
i(ContentActionRegistry.class), i(ContextActionRegistry.class), p(FileDownloadUtils.class),
i(EntityHeader.class), p(ContentEditor.class), i(ErrorHandler.class), i(GalleryViewer.class),
- p(ContextPropEditor.class), i(SitePublicSpaceLink.class));
+ p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -154,7 +154,7 @@
}
public void setCleanStyle() {
- toolbar.setCleanStyle();
+ toolbar.setBlankStyle();
}
public void setNormalStyle() {
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ComplexToolbar.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -26,10 +26,10 @@
}
/**
- * Set the blank/clean style
+ * Set the blank style
*/
public void setCleanStyle() {
- toolbar.setCleanStyle();
+ toolbar.setBlankStyle();
}
/**
@@ -39,6 +39,13 @@
toolbar.setNormalStyle();
}
+ /**
+ * Set the blank style
+ */
+ public void setTranspStyle() {
+ toolbar.setTranspStyle();
+ }
+
@Override
protected void add(final AbstractGuiItem item) {
item.addStyleName("kune-floatleft");
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/GroupDTO.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -28,7 +28,7 @@
private String longName;
private GroupType groupType;
private ContentSimpleDTO defaultContent;
- private ContentSimpleDTO groupFullLogo;
+ private ContentSimpleDTO groupBackImage;
private LicenseDTO defaultLicense;
private String workspaceTheme;
private boolean hasLogo;
@@ -79,8 +79,8 @@
return defaultLicense;
}
- public ContentSimpleDTO getGroupFullLogo() {
- return groupFullLogo;
+ public ContentSimpleDTO getGroupBackImage() {
+ return groupBackImage;
}
public GroupType getGroupType() {
@@ -146,8 +146,8 @@
this.defaultLicense = defaultLicense;
}
- public void setGroupFullLogo(final ContentSimpleDTO groupFullLogo) {
- this.groupFullLogo = groupFullLogo;
+ public void setGroupBackImage(final ContentSimpleDTO groupBackImage) {
+ this.groupBackImage = groupBackImage;
}
public void setGroupType(final GroupType groupType) {
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -34,12 +34,14 @@
void changeGroupWsTheme(String userHash, StateToken groupToken, String theme) throws DefaultException;
+ GroupDTO clearGroupBackImage(String userHash, StateToken token);
+
StateToken createNewGroup(String userHash, GroupDTO group, String publicDesc, String tags, String[] enabledTools)
throws DefaultException;
GroupDTO getGroup(String userHash, StateToken token);
- GroupDTO setGroupFullLogo(String userHash, StateToken token);
+ GroupDTO setGroupBackImage(String userHash, StateToken token);
void setGroupNewMembersJoiningPolicy(String userHash, StateToken groupToken, AdmissionTypeDTO admissionPolicy);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupServiceAsync.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -34,12 +34,14 @@
void changeGroupWsTheme(String userHash, StateToken groupToken, String theme, AsyncCallback<?> callback);
+ void clearGroupBackImage(String userHash, StateToken token, AsyncCallback<GroupDTO> asyncCallback);
+
void createNewGroup(String userHash, GroupDTO group, String publicDesc, String tags, String[] enabledTools,
AsyncCallback<StateToken> callback);
void getGroup(String userHash, StateToken token, AsyncCallback<GroupDTO> asyncCallback);
- void setGroupFullLogo(String userHash, StateToken token, AsyncCallback<GroupDTO> asyncCallback);
+ void setGroupBackImage(String userHash, StateToken token, AsyncCallback<GroupDTO> asyncCallback);
void setGroupNewMembersJoiningPolicy(String userHash, StateToken groupToken, AdmissionTypeDTO admissionPolicy,
AsyncCallback<?> asyncCallback);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -123,6 +123,8 @@
Collection<ToolSimpleDTO> getUserTools();
+ boolean isInCurrentUserSpace();
+
boolean inSameToken(StateToken token);
boolean isCurrentStateAContent();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -189,6 +189,16 @@
return initData.getUserTools();
}
+ public boolean isInCurrentUserSpace() {
+ if (!isLogged()) {
+ return false;
+ }
+ if (getCurrentStateToken().getGroup().equals(getCurrentUser().getShortName())) {
+ return true;
+ }
+ return false;
+ }
+
public boolean inSameToken(final StateToken token) {
return getCurrentStateToken().equals(token);
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/AbstractToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/AbstractToolbar.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/AbstractToolbar.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -25,7 +25,7 @@
void removeAll();
- void setCleanStyle();
+ void setBlankStyle();
void setHeight(String height);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/FlowToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/FlowToolbar.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/FlowToolbar.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -84,9 +84,9 @@
}
/**
- * Set the blank/clean style
+ * Set the blank style
*/
- public void setCleanStyle() {
+ public void setBlankStyle() {
setBasicStyle();
addStyleName("k-blank-toolbar");
}
@@ -105,6 +105,14 @@
addStyleName("k-toolbar-bottom-line");
}
+ /**
+ * Set the transparent style
+ */
+ public void setTranspStyle() {
+ setBasicStyle();
+ addStyleName("k-transp");
+ }
+
private void setBasicStyle() {
setStyleName("x-toolbar");
addStyleName("x-panel");
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/SimpleToolbar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/SimpleToolbar.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/SimpleToolbar.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -84,7 +84,7 @@
childPanel.clear();
}
- public void setCleanStyle() {
+ public void setBlankStyle() {
setBasicStyle();
addStyleName("k-blank-toolbar");
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/tabbed/AbstractTabbedDialogPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/tabbed/AbstractTabbedDialogPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/tabbed/AbstractTabbedDialogPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -113,7 +113,9 @@
public void hide() {
if (dialog != null) {
- dialog.hide();
+ if (dialog.isVisible()) {
+ dialog.hide();
+ }
}
}
@@ -206,7 +208,7 @@
if (onHideListener != null) {
addHideListener();
}
- for (Button button : buttons) {
+ for (final Button button : buttons) {
dialog.addButton(button);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/public/images/arrowdown.png
===================================================================
(Binary files differ)
Modified: trunk/src/main/java/org/ourproject/kune/platf/public/images/kune-search-ico.png
===================================================================
(Binary files differ)
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Group.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -88,7 +88,7 @@
private Content defaultContent;
@OneToOne
- private Content groupFullLogo;
+ private Content groupBackImage;
@OneToOne(cascade = CascadeType.ALL)
private SocialNetwork socialNetwork;
@@ -201,8 +201,8 @@
return defaultLicense;
}
- public Content getGroupFullLogo() {
- return groupFullLogo;
+ public Content getGroupBackImage() {
+ return groupBackImage;
}
public GroupType getGroupType() {
@@ -287,8 +287,8 @@
this.defaultLicense = defaultLicense;
}
- public void setGroupFullLogo(final Content groupFullLogo) {
- this.groupFullLogo = groupFullLogo;
+ public void setGroupBackImage(final Content groupBackImage) {
+ this.groupBackImage = groupBackImage;
}
public void setGroupType(final GroupType groupType) {
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/GroupManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/GroupManager.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/GroupManager.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -36,6 +36,8 @@
void changeWsTheme(User user, Group group, String theme) throws AccessViolationException;
+ void clearGroupBackImage(Group group);
+
Group createGroup(Group group, User user) throws GroupNameInUseException, UserMustBeLoggedException;
Group createUserGroup(User user) throws GroupNameInUseException, EmailAddressInUseException;
@@ -67,7 +69,7 @@
void setDefaultContent(String groupShortName, Content content);
- void setGroupLogo(Group group, Content content);
+ void setGroupBackImage(Group group, Content content);
void setToolEnabled(User userLogged, String groupShortName, String toolName, boolean enabled);
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/GroupManagerDefault.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -97,6 +97,10 @@
group.setWorkspaceTheme(theme);
}
+ public void clearGroupBackImage(final Group group) {
+ group.setGroupBackImage(null);
+ }
+
public Group createGroup(final Group group, final User user) throws GroupNameInUseException,
UserMustBeLoggedException {
final String defaultSiteWorkspaceTheme = kuneProperties.get(KuneProperties.WS_THEMES_DEF);
@@ -201,9 +205,9 @@
group.setDefaultContent(content);
}
- public void setGroupLogo(final Group group, final Content content) {
- if (content.getMimeType().getType().equals("image")) {
- group.setGroupFullLogo(content);
+ public void setGroupBackImage(final Group group, final Content content) {
+ if (content.getMimeType().isImage()) {
+ group.setGroupBackImage(content);
} else {
throw new DefaultException("Trying to set not a image as group logo");
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/rpc/GroupRPC.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -83,9 +83,18 @@
}
@Authenticated
+ @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
+ @Transactional(type = TransactionType.READ_WRITE)
+ public GroupDTO clearGroupBackImage(final String userHash, final StateToken token) {
+ final Group group = groupManager.findByShortName(token.getGroup());
+ groupManager.clearGroupBackImage(group);
+ return mapper.map(group, GroupDTO.class);
+ }
+
+ @Authenticated
@Transactional(type = TransactionType.READ_WRITE, rollbackOn = DefaultException.class)
- public StateToken createNewGroup(final String userHash, final GroupDTO groupDTO, String publicDesc, String tags,
- String[] enabledTools) throws DefaultException {
+ public StateToken createNewGroup(final String userHash, final GroupDTO groupDTO, final String publicDesc,
+ final String tags, final String[] enabledTools) throws DefaultException {
final User user = getUserLogged();
final Group group = mapper.map(groupDTO, Group.class);
final Group newGroup = groupManager.createGroup(group, user);
@@ -93,30 +102,30 @@
contentManager.save(user, newGroup.getDefaultContent(), publicDesc);
contentManager.setTags(user, defContentId, tags);
return newGroup.getDefaultContent().getStateToken();
- }
+ };
@Authenticated(mandatory = false)
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Viewer)
- public GroupDTO getGroup(String userHash, StateToken groupToken) {
+ public GroupDTO getGroup(final String userHash, final StateToken groupToken) {
final Group group = groupManager.findByShortName(groupToken.getGroup());
return mapper.map(group, GroupDTO.class);
- };
+ }
@Authenticated
@Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator)
@Transactional(type = TransactionType.READ_WRITE)
- public GroupDTO setGroupFullLogo(final String userHash, final StateToken token) {
+ public GroupDTO setGroupBackImage(final String userHash, final StateToken token) {
final Group group = groupManager.findByShortName(token.getGroup());
final Content content = contentManager.find(ContentUtils.parseId(token.getDocument()));
- groupManager.setGroupLogo(group, content);
+ groupManager.setGroupBackImage(group, content);
return mapper.map(group, GroupDTO.class);
}
@Authenticated(mandatory = true)
@Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
@Transactional(type = TransactionType.READ_WRITE)
- public void setGroupNewMembersJoiningPolicy(final String userHash, StateToken token,
- AdmissionTypeDTO admissionPolicy) {
+ public void setGroupNewMembersJoiningPolicy(final String userHash, final StateToken token,
+ final AdmissionTypeDTO admissionPolicy) {
final Group group = groupManager.findByShortName(token.getGroup());
group.setAdmissionType(AdmissionType.valueOf(admissionPolicy.toString()));
}
@@ -124,8 +133,8 @@
@Authenticated(mandatory = true)
@Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.group)
@Transactional(type = TransactionType.READ_WRITE)
- public void setSocialNetworkVisibility(final String userHash, StateToken token,
- SocialNetworkVisibilityDTO visibility) {
+ public void setSocialNetworkVisibility(final String userHash, final StateToken token,
+ final SocialNetworkVisibilityDTO visibility) {
final Group group = groupManager.findByShortName(token.getGroup());
group.getSocialNetwork().setVisibility(SocialNetworkVisibility.valueOf(visibility.toString()));
}
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -41,6 +41,7 @@
import org.ourproject.kune.workspace.client.editor.ContentEditor;
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
import com.calclab.suco.client.ioc.Provider;
@@ -55,11 +56,11 @@
final Provider<FileDownloadUtils> fileDownloadProvider, final EntityHeader entityLogo,
final Provider<ContentEditor> textEditorProvider, final ErrorHandler errorHandler,
final WikiViewer documentViewer, final Provider<ContextPropEditor> contextProvEditorProvider,
- final SitePublicSpaceLink publicLink) {
+ final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
super(session, stateManager, i18n, errorHandler, deferredCommandWrapper, groupServiceProvider,
contentServiceProvider, fileUploaderProvider, contextNavigator, contentActionRegistry,
contextActionRegistry, fileDownloadProvider, textEditorProvider, contextProvEditorProvider,
- documentViewer, entityLogo, publicLink);
+ documentViewer, entityLogo, publicLink, wsBackManager);
}
@Override
@@ -92,6 +93,7 @@
createRefreshCxtAction(parentMenuTitleCtx, containers);
createSetAsDefContent(parentMenuTitle, contents);
+ createSetGroupBackImageAction(parentMenuTitle, TYPE_UPLOADEDFILE);
createUploadAction(i18n.t("Upload file"), "images/nav/upload.png",
i18n.t("Upload some files (images, PDFs, ...)"), null, containers);
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -51,6 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -80,7 +81,7 @@
p(ContentServiceAsync.class), p(GroupServiceAsync.class), p(FileUploader.class),
i(ContentActionRegistry.class), i(ContextActionRegistry.class), p(FileDownloadUtils.class),
i(EntityHeader.class), p(ContentEditor.class), i(ErrorHandler.class), i(WikiViewer.class),
- p(ContextPropEditor.class), i(SitePublicSpaceLink.class));
+ p(ContextPropEditor.class), i(SitePublicSpaceLink.class), i(WsBackManager.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -32,7 +32,6 @@
import org.ourproject.kune.platf.client.actions.ActionToolbarPosition;
import org.ourproject.kune.platf.client.actions.RadioMustBeChecked;
import org.ourproject.kune.platf.client.dto.AccessRolDTO;
-import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.ContentStatusDTO;
import org.ourproject.kune.platf.client.dto.GroupDTO;
@@ -60,6 +59,7 @@
import org.ourproject.kune.workspace.client.editor.ContentEditor;
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.upload.FileUploader;
import com.calclab.suco.client.events.Listener;
@@ -98,6 +98,8 @@
protected final EntityHeader entityLogo;
private final SitePublicSpaceLink publicLink;
+ private final WsBackManager wsBackManager;
+
public AbstractFoldableContentActions(final Session session, final StateManager stateManager,
final I18nUITranslationService i18n, final ErrorHandler errorHandler,
final DeferredCommandWrapper deferredCommandWrapper,
@@ -107,7 +109,7 @@
final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry,
final Provider<FileDownloadUtils> fileDownloadProvider, final Provider<ContentEditor> textEditorProvider,
final Provider<ContextPropEditor> contextPropEditorProvider, final FoldableContent foldableContent,
- final EntityHeader entityLogo, final SitePublicSpaceLink publicLink) {
+ final EntityHeader entityLogo, final SitePublicSpaceLink publicLink, final WsBackManager wsBackManager) {
this.session = session;
this.stateManager = stateManager;
this.i18n = i18n;
@@ -125,6 +127,7 @@
this.foldableContent = foldableContent;
this.entityLogo = entityLogo;
this.publicLink = publicLink;
+ this.wsBackManager = wsBackManager;
createActions();
session.onInitDataReceived(new Listener<InitDataDTO>() {
public void onEvent(final InitDataDTO parameter) {
@@ -455,6 +458,34 @@
return setAsDefGroupContent;
}
+ protected void createSetGroupBackImageAction(final String parentMenuTitle, final String... registerInTypes) {
+ final ActionToolbarMenuAndItemDescriptor<StateToken> setGroupBackImage = new ActionToolbarMenuAndItemDescriptor<StateToken>(
+ AccessRolDTO.Administrator, CONTENT_TOPBAR, new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ groupServiceProvider.get().setGroupBackImage(session.getUserHash(), token,
+ new AsyncCallbackSimple<GroupDTO>() {
+ public void onSuccess(final GroupDTO newGroup) {
+ if (session.getCurrentState().getGroup().getShortName().equals(
+ newGroup.getShortName())) {
+ session.getCurrentState().setGroup(newGroup);
+ wsBackManager.clearBackImage();
+ wsBackManager.setBackImage(newGroup.getGroupBackImage().getStateToken());
+ }
+ }
+ });
+ }
+ });
+ setGroupBackImage.setParentMenuTitle(parentMenuTitle);
+ setGroupBackImage.setTextDescription(i18n.t("Set this as the group background image"));
+ setGroupBackImage.setIconUrl("images/nav/picture.png");
+ setGroupBackImage.setEnableCondition(new ActionEnableCondition<StateToken>() {
+ public boolean mustBeEnabled(final StateToken token) {
+ return session.getContentState().getMimeType().isImage();
+ }
+ });
+ contentActionRegistry.addAction(setGroupBackImage, registerInTypes);
+ }
+
protected void createSetStatusAction(final AccessRolDTO rol, final String textDescription,
final ContentStatusDTO status, final String[] contentsModerated) {
final ActionToolbarMenuRadioDescriptor<StateToken> action = new ActionToolbarMenuRadioDescriptor<StateToken>(
@@ -554,40 +585,6 @@
fileDownloadProvider.get().downloadFile(token);
}
- /**
- * For future use contentActionRegistry.addAction(setGroupLogo,
- * TYPE_UPLOADEDFILE);
- */
- @SuppressWarnings("unused")
- private ActionToolbarMenuAndItemDescriptor<StateToken> createSetGroupLogoAction(final String parentMenuTitle) {
- final ActionToolbarMenuAndItemDescriptor<StateToken> setGroupLogo = new ActionToolbarMenuAndItemDescriptor<StateToken>(
- AccessRolDTO.Administrator, CONTENT_TOPBAR, new Listener<StateToken>() {
- public void onEvent(final StateToken token) {
- groupServiceProvider.get().setGroupFullLogo(session.getUserHash(), token,
- new AsyncCallbackSimple<GroupDTO>() {
- public void onSuccess(final GroupDTO newGroup) {
- NotifyUser.info("Logo selected");
- if (session.getCurrentState().getGroup().getShortName().equals(
- newGroup.getShortName())) {
- session.getCurrentState().setGroup(newGroup);
- }
- entityLogo.refreshGroupLogo();
- }
- });
- }
- });
- setGroupLogo.setParentMenuTitle(parentMenuTitle);
- setGroupLogo.setTextDescription(i18n.t("Set this as the group logo"));
- setGroupLogo.setIconUrl("images/nav/picture.png");
- setGroupLogo.setEnableCondition(new ActionEnableCondition<StateToken>() {
- public boolean mustBeEnabled(final StateToken token) {
- final BasicMimeTypeDTO mime = session.getContentState().getMimeType();
- return mime != null && mime.getType().equals("image");
- }
- });
- return setGroupLogo;
- }
-
private ActionEnableCondition<StateToken> notDefAndNotDeleted() {
return new ActionEnableCondition<StateToken>() {
public boolean mustBeEnabled(final StateToken token) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -236,6 +236,8 @@
import org.ourproject.kune.workspace.client.tags.TagsSummary;
import org.ourproject.kune.workspace.client.tags.TagsSummaryPanel;
import org.ourproject.kune.workspace.client.tags.TagsSummaryPresenter;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
+import org.ourproject.kune.workspace.client.themes.WsBackManagerImpl;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.themes.WsThemeManagerPanel;
import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
@@ -435,11 +437,18 @@
}
});
+ register(Singleton.class, new Factory<WsBackManager>(WsBackManager.class) {
+ @Override
+ public WsBackManager create() {
+ return new WsBackManagerImpl(i(FileDownloadUtils.class));
+ }
+ });
+
register(ApplicationComponentGroup.class, new Factory<WsThemeManager>(WsThemeManager.class) {
@Override
public WsThemeManager create() {
final WsThemeManager presenter = new WsThemeManager(i(Session.class), p(GroupServiceAsync.class),
- i(StateManager.class));
+ i(StateManager.class), i(WsBackManager.class));
new WsThemeManagerPanel(presenter, i(WorkspaceSkeleton.class));
return presenter;
}
@@ -641,7 +650,8 @@
@Override
public UserOptions create() {
final UserOptionsPresenter presenter = new UserOptionsPresenter(i(Session.class),
- i(I18nTranslationService.class), i(ImgResources.class), i(SiteUserOptions.class));
+ i(StateManager.class), i(I18nTranslationService.class), i(ImgResources.class),
+ i(SiteUserOptions.class));
final UserOptionsPanel panel = new UserOptionsPanel(presenter, i(EntityHeader.class),
i(I18nTranslationService.class), i(Images.class), i(UserOptionsCollection.class));
presenter.init(panel);
@@ -733,9 +743,10 @@
final WsThemeSelector themeSelector = i(WsThemeSelector.class);
final GroupOptionsPublicSpaceConfPresenter presenter = new GroupOptionsPublicSpaceConfPresenter(
i(Session.class), i(StateManager.class), i(GroupOptions.class), i(WsThemeManager.class),
- themeSelector);
+ themeSelector, p(GroupServiceAsync.class), i(WsBackManager.class));
final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(presenter,
- i(WorkspaceSkeleton.class), i(I18nTranslationService.class), themeSelector);
+ i(WorkspaceSkeleton.class), i(I18nTranslationService.class), themeSelector,
+ i(FileDownloadUtils.class));
presenter.init(panel);
return presenter;
}
@@ -747,9 +758,11 @@
public UserOptionsPublicSpaceConf create() {
final WsThemeSelector themeSelector = i(WsThemeSelector.class);
final UserOptionsPublicSpaceConfPresenter presenter = new UserOptionsPublicSpaceConfPresenter(
- i(Session.class), i(UserOptions.class), i(WsThemeManager.class), themeSelector);
+ i(Session.class), i(StateManager.class), i(UserOptions.class), i(WsThemeManager.class),
+ themeSelector, p(GroupServiceAsync.class), i(WsBackManager.class));
final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(
- presenter, i(WorkspaceSkeleton.class), i(I18nTranslationService.class), themeSelector);
+ presenter, i(WorkspaceSkeleton.class), i(I18nTranslationService.class), themeSelector,
+ i(FileDownloadUtils.class));
presenter.init(panel);
return presenter;
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -59,7 +59,7 @@
entityTextLogo = new EntityTextLogo();
add(entityTextLogo);
toolbar = new ComplexToolbar(bindings);
- toolbar.setCleanStyle();
+ toolbar.setTranspStyle();
vpanel.add(toolbar);
add(vpanel);
wskel.addToEntityMainHeader(this);
@@ -79,6 +79,7 @@
+ new Date().getTime());
}
+ @Deprecated
public void setFullLogo(final StateToken stateToken, final boolean clipped) {
clear();
final String imageUrl = downloadProvider.get().getImageUrl(stateToken);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -21,7 +21,6 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.actions.ui.GuiActionDescrip;
-import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
@@ -73,10 +72,7 @@
}
void setGroupLogo(final GroupDTO group) {
- final ContentSimpleDTO groupFullLogo = group.getGroupFullLogo();
- if (groupFullLogo != null) {
- view.setFullLogo(groupFullLogo.getStateToken(), true);
- } else if (group.hasLogo()) {
+ if (group.hasLogo()) {
setLogoText(group.getLongName());
view.setLogoImage(group.getStateToken());
view.setLogoImageVisible(true);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderView.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -33,8 +33,6 @@
void reloadImage(GroupDTO group);
- void setFullLogo(StateToken stateToken, boolean clipped);
-
void setLargeFont();
void setLogoImage(StateToken stateToken);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/UserOptionsPresenter.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -25,6 +25,7 @@
import org.ourproject.kune.platf.client.actions.ui.MenuItemDescriptor;
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.dialogs.tabbed.AbstractTabbedDialogPresenter;
import org.ourproject.kune.platf.client.ui.img.ImgResources;
import org.ourproject.kune.workspace.client.sitebar.siteusermenu.SiteUserOptions;
@@ -37,9 +38,13 @@
private final ImgResources img;
private final I18nTranslationService i18n;
private final SiteUserOptions userOptions;
+ private final Session session;
+ private final StateManager stateManager;
- public UserOptionsPresenter(final Session session, final I18nTranslationService i18n, final ImgResources img,
- final SiteUserOptions userOptions) {
+ public UserOptionsPresenter(final Session session, final StateManager stateManager,
+ final I18nTranslationService i18n, final ImgResources img, final SiteUserOptions userOptions) {
+ this.session = session;
+ this.stateManager = stateManager;
this.i18n = i18n;
this.img = img;
this.userOptions = userOptions;
@@ -59,6 +64,9 @@
private void createActions() {
final AbstractExtendedAction userPrefsAction = new AbstractExtendedAction() {
public void actionPerformed(final ActionEvent event) {
+ if (!session.isInCurrentUserSpace()) {
+ stateManager.gotoToken(session.getCurrentUser().getStateToken());
+ }
show();
}
};
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConf.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConf.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConf.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -19,6 +19,6 @@
*/
package org.ourproject.kune.workspace.client.options.pscape;
+
public interface EntityOptionsPublicSpaceConf {
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -19,9 +19,12 @@
*/
package org.ourproject.kune.workspace.client.options.pscape;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.client.ui.BasicThumb;
import org.ourproject.kune.platf.client.ui.TextUtils;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
+import org.ourproject.kune.platf.client.ui.download.ImageSize;
import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import org.ourproject.kune.workspace.client.options.EntityOptionsView;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
@@ -29,16 +32,28 @@
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
public class EntityOptionsPublicSpaceConfPanel extends Panel implements EntityOptionsPublicSpaceConfView {
+ private final Image backImage;
+ private final FileDownloadUtils downUtils;
+ private final Label currentBackLabel;
+ private final Label noBackLabel;
+ private final Button clearBtn;
+
public EntityOptionsPublicSpaceConfPanel(final EntityOptionsPublicSpaceConfPresenter presenter,
- final WorkspaceSkeleton ws, final I18nTranslationService i18n, final WsThemeSelector wsSelector) {
+ final WorkspaceSkeleton ws, final I18nTranslationService i18n, final WsThemeSelector wsSelector,
+ final FileDownloadUtils downUtils) {
+ this.downUtils = downUtils;
super.setTitle(i18n.t("Style"));
super.setIconCls("k-colors-icon");
super.setAutoScroll(true);
@@ -54,21 +69,57 @@
wsHP.add(wsThemeInfo);
wsHP.add(toolbarWsChange);
add(wsHP);
+ final VerticalPanel backPanel = new VerticalPanel();
+ currentBackLabel = new Label(i18n.t("Current background image: "));
+ noBackLabel = new Label(i18n.t("Also you can upload any image and select it later as background."));
+ backImage = new Image();
+ backImage.addStyleName("kune-Margin-Medium-trbl");
+ noBackLabel.addStyleName("kune-Margin-Medium-tb");
+ clearBtn = new Button(i18n.t("Clear"));
+ clearBtn.setTooltip(i18n.t("Remove current background image"));
+ clearBtn.addListener(new ButtonListenerAdapter() {
+ @Override
+ public void onClick(final Button button, final EventObject event) {
+ presenter.clearBackImage();
+ }
+ });
+ backPanel.add(noBackLabel);
+ backPanel.add(currentBackLabel);
+ backPanel.add(backImage);
+ backPanel.add(clearBtn);
+ add(backPanel);
final Label wsInfo = new Label(i18n.t("Select and configure the public space theme of this group:"));
wsInfo.addStyleName("kune-Margin-Medium-tb");
add(wsInfo);
- final FlowPanel stylesPanel = new FlowPanel();
+ final Panel stylesPanel = new Panel();
+ final ClickHandler clickHandler = new ClickHandler() {
+ public void onClick(final ClickEvent event) {
+ NotifyUser.info(TextUtils.IN_DEVELOPMENT_P);
+ }
+ };
for (int i = 1; i <= 6; i++) {
- final BasicThumb thumb = new BasicThumb("images/styles/styl" + i + ".png", "Style " + i,
- new ClickHandler() {
- public void onClick(final ClickEvent event) {
- NotifyUser.info(TextUtils.IN_DEVELOPMENT_P);
- }
- });
+ final BasicThumb thumb = new BasicThumb("images/styles/styl" + i + ".png", "Style " + i, clickHandler);
thumb.setTooltip(i18n.t("Click to select and configure this theme"));
add(thumb);
}
add(stylesPanel);
+ setBackImageVisibleImpl(false);
}
+
+ public void clearBackImage() {
+ setBackImageVisibleImpl(false);
+ }
+
+ public void setBackImage(final StateToken token) {
+ backImage.setUrl(downUtils.getImageResizedUrl(token, ImageSize.thumb));
+ setBackImageVisibleImpl(true);
+ }
+
+ private void setBackImageVisibleImpl(final boolean visible) {
+ backImage.setVisible(visible);
+ currentBackLabel.setVisible(visible);
+ clearBtn.setVisible(visible);
+ noBackLabel.setVisible(!visible);
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -1,16 +1,49 @@
package org.ourproject.kune.workspace.client.options.pscape;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.options.EntityOptions;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
-public abstract class EntityOptionsPublicSpaceConfPresenter {
+import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.events.Listener0;
+import com.calclab.suco.client.ioc.Provider;
+
+public abstract class EntityOptionsPublicSpaceConfPresenter implements EntityOptionsPublicSpaceConf {
private EntityOptionsPublicSpaceConfView view;
private final EntityOptions entityOptions;
+ private final Provider<GroupServiceAsync> groupService;
+ private final Session session;
+ private final WsBackManager backManager;
+ private final StateManager stateManager;
- public EntityOptionsPublicSpaceConfPresenter(final EntityOptions entityOptions) {
+ protected EntityOptionsPublicSpaceConfPresenter(final Session session, final StateManager stateManager,
+ final EntityOptions entityOptions, final Provider<GroupServiceAsync> groupService,
+ final WsBackManager backManager) {
+ this.session = session;
+ this.stateManager = stateManager;
this.entityOptions = entityOptions;
+ this.groupService = groupService;
+ this.backManager = backManager;
}
+ public void clearBackImage() {
+ groupService.get().clearGroupBackImage(session.getUserHash(), session.getCurrentStateToken(),
+ new AsyncCallbackSimple<GroupDTO>() {
+ public void onSuccess(final GroupDTO result) {
+ view.clearBackImage();
+ backManager.clearBackImage();
+ }
+ });
+ }
+
public View getView() {
return view;
}
@@ -18,6 +51,30 @@
public void init(final EntityOptionsPublicSpaceConfView view) {
this.view = view;
entityOptions.addTab(view);
+ setBackImage(session.getContainerState().getGroup().getGroupBackImage());
+ stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
+ public void onEvent(final StateAbstractDTO state) {
+ final ContentSimpleDTO backImage = state.getGroup().getGroupBackImage();
+ setBackImage(backImage);
+ }
+ });
+ backManager.addSetBackImage(new Listener<StateToken>() {
+ public void onEvent(final StateToken token) {
+ view.setBackImage(token);
+ }
+ });
+ backManager.addBackClear(new Listener0() {
+ public void onEvent() {
+ view.clearBackImage();
+ }
+ });
}
+ private void setBackImage(final ContentSimpleDTO backImage) {
+ if (backImage == null) {
+ view.clearBackImage();
+ } else {
+ view.setBackImage(backImage.getStateToken());
+ }
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfView.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfView.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -20,7 +20,12 @@
package org.ourproject.kune.workspace.client.options.pscape;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.StateToken;
public interface EntityOptionsPublicSpaceConfView extends View {
+
+ public void clearBackImage();
+
+ public void setBackImage(final StateToken token);
+
}
-
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConfPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConfPresenter.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -20,21 +20,25 @@
package org.ourproject.kune.workspace.client.options.pscape;
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.options.EntityOptions;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.themes.WsTheme;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.ioc.Provider;
public class GroupOptionsPublicSpaceConfPresenter extends EntityOptionsPublicSpaceConfPresenter implements
GroupOptionsPublicSpaceConf {
public GroupOptionsPublicSpaceConfPresenter(final Session session, final StateManager stateManager,
- final EntityOptions entityOptions, final WsThemeManager themeManager, final WsThemeSelector themeSelector) {
- super(entityOptions);
+ final EntityOptions entityOptions, final WsThemeManager themeManager, final WsThemeSelector themeSelector,
+ final Provider<GroupServiceAsync> groupService, final WsBackManager backManager) {
+ super(session, stateManager, entityOptions, groupService, backManager);
themeSelector.addThemeSelected(new Listener<WsTheme>() {
public void onEvent(final WsTheme theme) {
themeManager.changeTheme(session.getCurrentStateToken(), theme);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -20,22 +20,27 @@
package org.ourproject.kune.workspace.client.options.pscape;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.options.EntityOptions;
+import org.ourproject.kune.workspace.client.themes.WsBackManager;
import org.ourproject.kune.workspace.client.themes.WsTheme;
import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.ioc.Provider;
public class UserOptionsPublicSpaceConfPresenter extends EntityOptionsPublicSpaceConfPresenter implements
UserOptionsPublicSpaceConf {
private final WsThemeSelector themeSelector;
- public UserOptionsPublicSpaceConfPresenter(final Session session, final EntityOptions entityOptions,
- final WsThemeManager themeManager, final WsThemeSelector themeSelector) {
- super(entityOptions);
+ public UserOptionsPublicSpaceConfPresenter(final Session session, final StateManager stateManager,
+ final EntityOptions entityOptions, final WsThemeManager themeManager, final WsThemeSelector themeSelector,
+ final Provider<GroupServiceAsync> groupService, final WsBackManager backManager) {
+ super(session, stateManager, entityOptions, groupService, backManager);
this.themeSelector = themeSelector;
themeSelector.addThemeSelected(new Listener<WsTheme>() {
public void onEvent(final WsTheme theme) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SummaryPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/SummaryPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -32,9 +32,10 @@
private final String collapsedTitle;
private final String expandedTitle;
- public SummaryPanel(final String title, final String titleTooltip, WorkspaceSkeleton ws) {
+ public SummaryPanel(final String title, final String titleTooltip, final WorkspaceSkeleton ws) {
this.ws = ws;
super.setBorder(false);
+ super.addStyleName("k-blank");
super.setAutoScroll(true);
collapsedTitle = KuneUiUtils.genQuickTipLabel(title, null, titleTooltip,
Images.App.getInstance().arrowRightWhite(), IconPosition.left);
@@ -43,12 +44,12 @@
setTitle(expandedTitle);
super.addListener(new PanelListenerAdapter() {
@Override
- public void onCollapse(Panel panel) {
+ public void onCollapse(final Panel panel) {
setTitle(collapsedTitle);
}
@Override
- public void onExpand(Panel panel) {
+ public void onExpand(final Panel panel) {
setTitle(expandedTitle);
}
});
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/WorkspaceSkeleton.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -51,13 +51,16 @@
container.setLayout(new FitLayout());
container.setBorder(false);
container.setPaddings(5);
+ container.addStyleName("k-transp");
final Panel mainPanel = new Panel();
mainPanel.setLayout(new AnchorLayout());
mainPanel.setBorder(false);
+ mainPanel.addStyleName("k-transp");
sitebar = new SimpleToolbar();
sitebar.setStyleName("k-sitebar");
+ sitebar.addStyleName("k-transp");
sitebar.setHeight(String.valueOf(DEF_BAR_HEIGHT));
entity = new Entity();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -67,7 +67,7 @@
vp.add(flowPanel);
vp.add(otherBuddiesLabel);
toolbar = ((ActionToolbarPanel<UserSimpleDTO>) actionToolbarView).getToolbar();
- toolbar.setCleanStyle();
+ toolbar.setBlankStyle();
vp.add((Widget) toolbar);
super.add(vp);
addInSummary();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -78,7 +78,7 @@
super.add(noMembersPublic);
toolbar = ((ActionToolbarPanel<StateToken>) actionToolbarView).getToolbar();
- toolbar.setCleanStyle();
+ toolbar.setBlankStyle();
super.add((Widget) toolbar);
super.addInSummary();
ws.addListenerInEntitySummary(new ContainerListenerAdapter() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -54,7 +54,7 @@
gridMenuPanel.onDoubleClick(go);
super.add(gridMenuPanel);
toolbar = ((ActionToolbarPanel<StateToken>) actionToolbarView).getToolbar();
- toolbar.setCleanStyle();
+ toolbar.setBlankStyle();
super.add((Widget) toolbar);
addInSummary();
ws.addListenerInEntitySummary(new ContainerListenerAdapter() {
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManager.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManager.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -0,0 +1,18 @@
+package org.ourproject.kune.workspace.client.themes;
+
+import org.ourproject.kune.platf.client.dto.StateToken;
+
+import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.events.Listener0;
+
+public interface WsBackManager {
+
+ void addBackClear(Listener0 listener);
+
+ void addSetBackImage(Listener<StateToken> listener);
+
+ void clearBackImage();
+
+ void setBackImage(StateToken token);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManagerImpl.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManagerImpl.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsBackManagerImpl.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -0,0 +1,53 @@
+package org.ourproject.kune.workspace.client.themes;
+
+import org.cobogw.gwt.user.client.CSS;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
+
+import com.calclab.suco.client.events.Event;
+import com.calclab.suco.client.events.Event0;
+import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.events.Listener0;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.ui.RootPanel;
+
+public class WsBackManagerImpl implements WsBackManager {
+
+ private static final StateToken NO_TOKEN = new StateToken("none.none.0.0");
+ private final FileDownloadUtils downloadUtils;
+ private StateToken lastToken;
+ private final Event0 onBackClear;
+ private final Event<StateToken> onSetBackImage;
+
+ public WsBackManagerImpl(final FileDownloadUtils downloadUtils) {
+ this.downloadUtils = downloadUtils;
+ lastToken = NO_TOKEN;
+ this.onBackClear = new Event0("onBackClear");
+ this.onSetBackImage = new Event<StateToken>("onSetBackImage");
+ }
+
+ public void addBackClear(final Listener0 listener) {
+ onBackClear.add(listener);
+ }
+
+ public void addSetBackImage(final Listener<StateToken> listener) {
+ onSetBackImage.add(listener);
+ }
+
+ public void clearBackImage() {
+ onBackClear.fire();
+ if (!lastToken.equals(NO_TOKEN)) {
+ DOM.setStyleAttribute(RootPanel.getBodyElement(), CSS.A.BACKGROUND, "transparent");
+ lastToken = NO_TOKEN;
+ }
+ }
+
+ public void setBackImage(final StateToken token) {
+ onSetBackImage.fire(token);
+ if (!token.equals(lastToken)) {
+ final String bodyProp = "#FFFFFF url('" + downloadUtils.getImageUrl(token) + "') fixed no-repeat top left";
+ DOM.setStyleAttribute(RootPanel.getBodyElement(), CSS.A.BACKGROUND, bodyProp);
+ lastToken = token;
+ }
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java 2009-07-01 23:06:27 UTC (rev 1133)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java 2009-07-13 11:36:33 UTC (rev 1134)
@@ -19,6 +19,7 @@
\*/
package org.ourproject.kune.workspace.client.themes;
+import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
@@ -40,11 +41,13 @@
private final Provider<GroupServiceAsync> groupServiceProvider;
private final Session session;
private WsTheme defTheme;
+ private final WsBackManager wsBackManager;
public WsThemeManager(final Session session, final Provider<GroupServiceAsync> groupServiceProvider,
- final StateManager stateManager) {
+ final StateManager stateManager, final WsBackManager wsBackManager) {
this.session = session;
this.groupServiceProvider = groupServiceProvider;
+ this.wsBackManager = wsBackManager;
this.onThemeChanged = new Event2<WsTheme, WsTheme>("onThemeChanged");
session.onInitDataReceived(new Listener<InitDataDTO>() {
public void onEvent(final InitDataDTO initData) {
@@ -59,6 +62,10 @@
});
}
+ public void addOnThemeChanged(final Listener2<WsTheme, WsTheme> listener) {
+ onThemeChanged.add(listener);
+ }
+
public void changeTheme(final StateToken token, final WsTheme newTheme) {
NotifyUser.showProgressProcessing();
groupServiceProvider.get().changeGroupWsTheme(session.getUserHash(), token, newTheme.getName(),
@@ -72,10 +79,6 @@
});
}
- public void addOnThemeChanged(final Listener2<WsTheme, WsTheme> listener) {
- onThemeChanged.add(listener);
- }
-
protected void onChangeGroupWsTheme(final WsTheme newTheme) {
NotifyUser.showProgressProcessing();
groupServiceProvider.get().changeGroupWsTheme(session.getUserHash(), session.getCurrentState().getStateToken(),
@@ -93,6 +96,12 @@
private void setState(final StateAbstractDTO state) {
setTheme(new WsTheme(state.getGroup().getWorkspaceTheme()));
+ final ContentSimpleDTO groupBackImage = state.getGroup().getGroupBackImage();
+ if (groupBackImage == null) {
+ wsBackManager.clearBackImage();
+ } else {
+ wsBackManager.setBackImage(groupBackImage.getStateToken());
+ }
}
private void setTheme(final WsTheme newTheme) {
1
0
Author: vjrj
Date: 2009-07-02 01:06:27 +0200 (Thu, 02 Jul 2009)
New Revision: 1133
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ActionExtensibleView.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/CssStyleDescriptor.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SimpleGuiItem.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/bug.png
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/site/DefCssResource.java
trunk/src/main/java/org/ourproject/kune/workspace/client/site/defCssResource.css
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManagerPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelector.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelectorPresenter.java
Removed:
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeView.java
Modified:
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/common/GotoGroupAction.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SubMenuGui.java
trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserInfoDTO.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java
trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfo.java
trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfoServiceDefault.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensewizard/LicenseChangeAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/EntityOptionsDefLicensePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicensePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicensePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/site/SiteResources.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tool/AbstractClientTool.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorItemPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenter.java
trunk/src/test/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPresenterTest.java
trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java
trunk/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java
Log:
Complete - task User/GroupOptions cleanup
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -51,7 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -68,7 +68,7 @@
public BlogClientTool create() {
i(BlogClientActions.class);
return new BlogClientTool(i(I18nUITranslationService.class), i(ToolSelector.class),
- i(WsThemePresenter.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
+ i(WsThemeManager.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/blogs/client/BlogClientTool.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.FoldableAbstractClientTool;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
@@ -34,7 +34,7 @@
public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
public BlogClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
- final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
+ final WsThemeManager wsThemePresenter, final WorkspaceSkeleton ws,
final ContentCapabilitiesRegistry cntCapReg) {
super(NAME, i18n.t("blogs"), toolSelector, wsThemePresenter, ws, cntCapReg);
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -45,7 +45,7 @@
import org.ourproject.kune.workspace.client.ctxnav.ContextNavigator;
import org.ourproject.kune.workspace.client.cxt.ContextActionRegistry;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import com.calclab.emiteuimodule.client.EmiteUIDialog;
@@ -70,7 +70,7 @@
@Override
public ChatClientTool create() {
return new ChatClientTool(i(I18nUITranslationService.class), i(WorkspaceSkeleton.class),
- i(ToolSelector.class), i(WsThemePresenter.class), i(ContentCapabilitiesRegistry.class));
+ i(ToolSelector.class), i(WsThemeManager.class), i(ContentCapabilitiesRegistry.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.FoldableAbstractClientTool;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
@@ -33,7 +33,7 @@
public static final String TYPE_CHAT = "chat.chat";
public ChatClientTool(final I18nTranslationService i18n, final WorkspaceSkeleton ws,
- final ToolSelector toolSelector, final WsThemePresenter wsThemePresenter,
+ final ToolSelector toolSelector, final WsThemeManager wsThemePresenter,
ContentCapabilitiesRegistry contentCapabilitiesRegistry) {
super(NAME, i18n.t("chat rooms"), toolSelector, wsThemePresenter, ws, contentCapabilitiesRegistry);
registerContentTypeIcon(TYPE_ROOM, "images/emite-room.png");
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -51,7 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -68,7 +68,7 @@
public DocumentClientTool create() {
i(DocumentClientActions.class);
return new DocumentClientTool(i(I18nUITranslationService.class), i(ToolSelector.class),
- i(WsThemePresenter.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
+ i(WsThemeManager.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientTool.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.FoldableAbstractClientTool;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
@@ -34,7 +34,7 @@
public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
public DocumentClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
- final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
+ final WsThemeManager wsThemePresenter, final WorkspaceSkeleton ws,
final ContentCapabilitiesRegistry cntCapRegistry) {
super(NAME, i18n.t("documents"), toolSelector, wsThemePresenter, ws, cntCapRegistry);
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -51,7 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -68,7 +68,7 @@
public GalleryClientTool create() {
i(GalleryClientActions.class);
return new GalleryClientTool(i(I18nUITranslationService.class), i(ToolSelector.class),
- i(WsThemePresenter.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
+ i(WsThemeManager.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/gallery/client/GalleryClientTool.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.FoldableAbstractClientTool;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
@@ -33,7 +33,7 @@
public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
public GalleryClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
- final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
+ final WsThemeManager wsThemePresenter, final WorkspaceSkeleton ws,
final ContentCapabilitiesRegistry cntCapabReg) {
super(NAME, i18n.t("gallery"), toolSelector, wsThemePresenter, ws, cntCapabReg);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/common/GotoGroupAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/common/GotoGroupAction.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/common/GotoGroupAction.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -9,12 +9,13 @@
private final String name;
private final StateManager stateManager;
- public GotoGroupAction(final String logoImageUrl, final String name, final StateManager stateManager) {
+ public GotoGroupAction(final String logoImageUrl, final String name, final String longName,
+ final StateManager stateManager) {
super();
this.name = name;
this.stateManager = stateManager;
putValue(Action.SMALL_ICON, logoImageUrl);
- putValue(Action.NAME, name);
+ putValue(Action.NAME, longName);
}
public void actionPerformed(final ActionEvent event) {
Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,9 +0,0 @@
-package org.ourproject.kune.platf.client.actions.ui;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface AbstractActionExtensibleView extends View {
-
- void addAction(GuiActionDescrip descriptor);
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractButtonGui.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -3,9 +3,7 @@
import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.ActionEvent;
import org.ourproject.kune.platf.client.actions.KeyStroke;
-import org.ourproject.kune.platf.client.ui.img.ImgConstants;
-import com.google.gwt.libideas.resources.client.ImageResource;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
@@ -69,8 +67,8 @@
}
@Override
- protected void setIcon(final ImageResource imageResource) {
- button.setIconCls(ImgConstants.CSS_SUFFIX + imageResource.getName());
+ protected void setIconStyle(final String style) {
+ button.setIconCls(style);
}
@Override
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractGuiItem.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -5,6 +5,7 @@
import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.PropertyChangeEvent;
import org.ourproject.kune.platf.client.actions.PropertyChangeListener;
+import org.ourproject.kune.platf.client.ui.img.ImgConstants;
import com.google.gwt.libideas.resources.client.ImageResource;
import com.google.gwt.user.client.ui.Composite;
@@ -73,7 +74,7 @@
protected abstract void setEnabled(boolean enabled);
- protected abstract void setIcon(ImageResource imageResource);
+ protected abstract void setIconStyle(String style);
protected abstract void setIconUrl(String iconUrl);
@@ -112,8 +113,10 @@
}
private void setIcon(final Object icon) {
- if (icon instanceof ImageResource) {
- setIcon((ImageResource) icon);
+ if (icon instanceof CssStyleDescriptor) {
+ setIconStyle(((CssStyleDescriptor) icon).getName());
+ } else if (icon instanceof ImageResource) {
+ setIconStyle((ImgConstants.CSS_SUFFIX + ((ImageResource) icon).getName()));
} else if (icon instanceof String) {
setIconUrl((String) icon);
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractMenuItemGui.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -5,9 +5,7 @@
import org.ourproject.kune.platf.client.actions.KeyStroke;
import org.ourproject.kune.platf.client.actions.PropertyChangeEvent;
import org.ourproject.kune.platf.client.actions.PropertyChangeListener;
-import org.ourproject.kune.platf.client.ui.img.ImgConstants;
-import com.google.gwt.libideas.resources.client.ImageResource;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.Widget;
@@ -77,8 +75,8 @@
}
@Override
- protected void setIcon(final ImageResource imageResource) {
- item.setIconCls(ImgConstants.CSS_SUFFIX + imageResource.getName());
+ protected void setIconStyle(final String style) {
+ item.setIconCls(style);
}
@Override
Copied: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ActionExtensibleView.java (from rev 1128, trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/AbstractActionExtensibleView.java 2009-06-13 00:43:29 UTC (rev 1128)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/ActionExtensibleView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,9 @@
+package org.ourproject.kune.platf.client.actions.ui;
+
+import org.ourproject.kune.platf.client.View;
+
+public interface ActionExtensibleView extends View {
+
+ void addAction(GuiActionDescrip descriptor);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/CssStyleDescriptor.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/CssStyleDescriptor.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/CssStyleDescriptor.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,18 @@
+package org.ourproject.kune.platf.client.actions.ui;
+
+public class CssStyleDescriptor {
+
+ public static CssStyleDescriptor create(final String name) {
+ return new CssStyleDescriptor(name);
+ }
+
+ private final String name;
+
+ public CssStyleDescriptor(final String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/MenuGui.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -3,9 +3,7 @@
import org.ourproject.kune.platf.client.actions.Action;
import org.ourproject.kune.platf.client.actions.PropertyChangeEvent;
import org.ourproject.kune.platf.client.actions.PropertyChangeListener;
-import org.ourproject.kune.platf.client.ui.img.ImgConstants;
-import com.google.gwt.libideas.resources.client.ImageResource;
import com.google.gwt.user.client.ui.UIObject;
import com.gwtext.client.widgets.ToolbarButton;
@@ -59,9 +57,9 @@
}
@Override
- public void setIcon(final ImageResource imageResource) {
+ public void setIconStyle(final String style) {
if (notStandAlone) {
- button.setIconCls(ImgConstants.CSS_SUFFIX + imageResource.getName());
+ button.setIconCls(style);
}
}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SimpleGuiItem.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SimpleGuiItem.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SimpleGuiItem.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,25 @@
+package org.ourproject.kune.platf.client.actions.ui;
+
+import com.google.gwt.user.client.ui.HorizontalPanel;
+
+public class SimpleGuiItem extends AbstractComposedGuiItem implements ActionExtensibleView {
+
+ private final HorizontalPanel hpanel;
+
+ public SimpleGuiItem(final GuiBindingsRegister bindings) {
+ super(bindings);
+ hpanel = new HorizontalPanel();
+ initWidget(hpanel);
+ }
+
+ @Override
+ protected void add(final AbstractGuiItem item) {
+ hpanel.add(item);
+ }
+
+ @Override
+ protected void insert(final AbstractGuiItem item, final int position) {
+ hpanel.insert(item, position);
+ }
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SubMenuGui.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SubMenuGui.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/ui/SubMenuGui.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,8 +1,5 @@
package org.ourproject.kune.platf.client.actions.ui;
-import org.ourproject.kune.platf.client.ui.img.ImgConstants;
-
-import com.google.gwt.libideas.resources.client.ImageResource;
import com.gwtext.client.widgets.menu.MenuItem;
public class SubMenuGui extends AbstractMenuGui {
@@ -31,8 +28,8 @@
}
@Override
- public void setIcon(final ImageResource imageResource) {
- item.setIconCls(ImgConstants.CSS_SUFFIX + imageResource.getName());
+ public void setIconStyle(final String style) {
+ item.setIconCls(style);
}
@Override
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserInfoDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserInfoDTO.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserInfoDTO.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -33,6 +33,7 @@
private List<GroupDTO> groupsIsCollab;
private boolean showDeletedContent;
private List<String> enabledTools;
+ private GroupDTO userGroup;
public String getChatName() {
return chatName;
@@ -82,6 +83,10 @@
return user;
}
+ public GroupDTO getUserGroup() {
+ return userGroup;
+ }
+
public String getUserHash() {
return userHash;
}
@@ -119,6 +124,10 @@
this.user = user;
}
+ public void setUserGroup(final GroupDTO userGroup) {
+ this.userGroup = userGroup;
+ }
+
public void setUserHash(final String userHash) {
this.userHash = userHash;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/ImgResources.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -9,6 +9,9 @@
@Resource("add-green.png")
ImageResource addGreen();
+ @Resource("bug.png")
+ ImageResource bug();
+
@Resource("kimg.css")
CssResource css();
@@ -32,4 +35,5 @@
@Resource("prefs.png")
ImageResource prefs();
+
}
\ No newline at end of file
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/bug.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/bug.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css 2009-07-01 23:06:27 UTC (rev 1133)
@@ -10,6 +10,10 @@
gwt-image: 'kuneIcon16';
}
+@sprite div .k-icon-bug {
+ gwt-image: 'bug';
+}
+
@sprite div .k-icon-prefs {
gwt-image: 'prefs';
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -887,7 +887,6 @@
}
private void createBasicActions() {
-
final MenuSeparatorDescriptor editMenuSep = new MenuSeparatorDescriptor(editMenu);
final MenuSeparatorDescriptor insertMenuSep = new MenuSeparatorDescriptor(insertMenu);
final MenuSeparatorDescriptor formatMenuSep = new MenuSeparatorDescriptor(formatMenu);
@@ -1147,7 +1146,7 @@
menus.add(insertMenu = new MenuDescriptor(i18n.t("Insert")));
menus.add(formatMenu = new MenuDescriptor(i18n.t("Format")));
menus.add(linkCtxMenu = new MenuDescriptor(i18n.t("Change Link")));
- menus.add(fontMenu = new MenuDescriptor(NO_TEXT, i18n.t("Font"),
+ menus.add(fontMenu = new MenuDescriptor(" ", i18n.t("Font"),
ImgConstants.toPath(imgResources.charfontname())));
menus.add(fontSizeMenu = new MenuDescriptor(NO_TEXT, i18n.t("Font size"),
ImgConstants.toPath(imgResources.fontheight())));
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -2,11 +2,11 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.actions.InputMap;
-import org.ourproject.kune.platf.client.actions.ui.AbstractActionExtensibleView;
+import org.ourproject.kune.platf.client.actions.ui.ActionExtensibleView;
import org.ourproject.kune.platf.client.ui.rte.RichTextArea.FontSize;
import org.ourproject.kune.platf.client.ui.rte.insertlink.LinkInfo;
-public interface RTEditorView extends AbstractActionExtensibleView {
+public interface RTEditorView extends ActionExtensibleView {
void adjustSize(int height);
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfo.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfo.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfo.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -36,6 +36,7 @@
private String userHash;
private boolean showDeletedContent;
private List<String> enabledTools;
+ private Group userGroup;
public String getChatName() {
return chatName;
@@ -85,6 +86,10 @@
return user;
}
+ public Group getUserGroup() {
+ return userGroup;
+ }
+
public String getUserHash() {
return userHash;
}
@@ -121,6 +126,10 @@
this.user = user;
}
+ public void setUserGroup(final Group userGroup) {
+ this.userGroup = userGroup;
+ }
+
public void setUserHash(final String userHash) {
this.userHash = userHash;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfoServiceDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfoServiceDefault.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/users/UserInfoServiceDefault.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -43,28 +43,29 @@
}
public UserInfo buildInfo(final User user, final String userHash) throws DefaultException {
- UserInfo info = null;
+ UserInfo userInfo = null;
if (User.isKnownUser(user)) {
- info = new UserInfo();
+ userInfo = new UserInfo();
- info.setUser(user);
- info.setChatName(user.getShortName());
- info.setChatPassword(user.getPassword());
- info.setUserHash(userHash);
+ userInfo.setUser(user);
+ userInfo.setChatName(user.getShortName());
+ userInfo.setChatPassword(user.getPassword());
+ userInfo.setUserHash(userHash);
// FIXME: save this in user properties
- info.setShowDeletedContent(false);
+ userInfo.setShowDeletedContent(false);
final Group userGroup = user.getUserGroup();
final ParticipationData participation = socialNetworkManager.findParticipation(user, userGroup);
- info.setGroupsIsAdmin(participation.getGroupsIsAdmin());
- info.setGroupsIsCollab(participation.getGroupsIsCollab());
- info.setEnabledTools(groupManager.findEnabledTools(userGroup.getId()));
+ userInfo.setGroupsIsAdmin(participation.getGroupsIsAdmin());
+ userInfo.setGroupsIsCollab(participation.getGroupsIsCollab());
+ userInfo.setEnabledTools(groupManager.findEnabledTools(userGroup.getId()));
final Content defaultContent = userGroup.getDefaultContent();
+ userInfo.setUserGroup(userGroup);
if (defaultContent != null) {
- info.setHomePage(defaultContent.getStateToken().toString());
+ userInfo.setHomePage(defaultContent.getStateToken().toString());
}
}
- return info;
+ return userInfo;
}
}
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientModule.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -51,7 +51,7 @@
import org.ourproject.kune.workspace.client.entityheader.EntityHeader;
import org.ourproject.kune.workspace.client.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
import org.ourproject.kune.workspace.client.upload.FileUploader;
@@ -68,7 +68,7 @@
public WikiClientTool create() {
i(WikiClientActions.class);
return new WikiClientTool(i(I18nUITranslationService.class), i(ToolSelector.class),
- i(WsThemePresenter.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
+ i(WsThemeManager.class), i(WorkspaceSkeleton.class), i(ContentCapabilitiesRegistry.class));
}
});
Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientTool.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.FoldableAbstractClientTool;
import org.ourproject.kune.workspace.client.tool.ToolSelector;
@@ -34,7 +34,7 @@
public static final String TYPE_UPLOADEDFILE = NAME + "." + FoldableAbstractClientTool.UPLOADEDFILE_SUFFIX;
public WikiClientTool(final I18nUITranslationService i18n, final ToolSelector toolSelector,
- final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
+ final WsThemeManager wsThemePresenter, final WorkspaceSkeleton ws,
final ContentCapabilitiesRegistry cntCapabReg) {
super(NAME, i18n.t("wiki"), toolSelector, wsThemePresenter, ws, cntCapabReg);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -23,6 +23,7 @@
import org.ourproject.kune.platf.client.actions.ActionManager;
import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarPanel;
import org.ourproject.kune.platf.client.actions.ui.GuiBindingsRegister;
+import org.ourproject.kune.platf.client.actions.ui.SimpleGuiItem;
import org.ourproject.kune.platf.client.app.ApplicationComponentGroup;
import org.ourproject.kune.platf.client.app.GroupOptionsCollection;
import org.ourproject.kune.platf.client.app.UserOptionsCollection;
@@ -126,7 +127,6 @@
import org.ourproject.kune.workspace.client.nohomepage.NoHomePage;
import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePanel;
import org.ourproject.kune.workspace.client.nohomepage.NoHomePagePresenter;
-import org.ourproject.kune.workspace.client.options.EntityOptions;
import org.ourproject.kune.workspace.client.options.GroupOptions;
import org.ourproject.kune.workspace.client.options.GroupOptionsPanel;
import org.ourproject.kune.workspace.client.options.GroupOptionsPresenter;
@@ -146,9 +146,10 @@
import org.ourproject.kune.workspace.client.options.logo.UserOptionsLogoPanel;
import org.ourproject.kune.workspace.client.options.logo.UserOptionsLogoPresenter;
import org.ourproject.kune.workspace.client.options.pscape.EntityOptionsPublicSpaceConfPanel;
-import org.ourproject.kune.workspace.client.options.pscape.EntityOptionsPublicSpaceConfPresenter;
import org.ourproject.kune.workspace.client.options.pscape.GroupOptionsPublicSpaceConf;
+import org.ourproject.kune.workspace.client.options.pscape.GroupOptionsPublicSpaceConfPresenter;
import org.ourproject.kune.workspace.client.options.pscape.UserOptionsPublicSpaceConf;
+import org.ourproject.kune.workspace.client.options.pscape.UserOptionsPublicSpaceConfPresenter;
import org.ourproject.kune.workspace.client.options.tools.EntityOptionsToolsConf;
import org.ourproject.kune.workspace.client.options.tools.EntityOptionsToolsConfPanel;
import org.ourproject.kune.workspace.client.options.tools.GroupOptionsToolsConfPresenter;
@@ -235,8 +236,10 @@
import org.ourproject.kune.workspace.client.tags.TagsSummary;
import org.ourproject.kune.workspace.client.tags.TagsSummaryPanel;
import org.ourproject.kune.workspace.client.tags.TagsSummaryPresenter;
-import org.ourproject.kune.workspace.client.themes.WsThemePanel;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
+import org.ourproject.kune.workspace.client.themes.WsThemeManagerPanel;
+import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
+import org.ourproject.kune.workspace.client.themes.WsThemeSelectorPresenter;
import org.ourproject.kune.workspace.client.title.EntitySubTitle;
import org.ourproject.kune.workspace.client.title.EntitySubTitlePanel;
import org.ourproject.kune.workspace.client.title.EntitySubTitlePresenter;
@@ -343,8 +346,8 @@
@Override
public SiteUserOptions create() {
final SiteUserOptionsPresenter presenter = new SiteUserOptionsPresenter(i(Session.class),
- i(StateManager.class), p(UserOptions.class), p(FileDownloadUtils.class),
- $(I18nTranslationService.class), $(ImgResources.class));
+ i(StateManager.class), p(FileDownloadUtils.class), $(I18nTranslationService.class),
+ $(ImgResources.class));
final SiteUserOptionsPanel panel = new SiteUserOptionsPanel(presenter, i(WorkspaceSkeleton.class),
$(GuiBindingsRegister.class));
presenter.init(panel);
@@ -424,7 +427,7 @@
@Override
public EntityHeader create() {
final EntityHeaderPresenter presenter = new EntityHeaderPresenter(i(StateManager.class),
- i(WsThemePresenter.class), i(Session.class));
+ i(WsThemeManager.class), i(Session.class));
final EntityHeaderPanel panel = new EntityHeaderPanel(i(WorkspaceSkeleton.class),
p(FileDownloadUtils.class), i(Images.class), i(GuiBindingsRegister.class));
presenter.init(panel);
@@ -432,18 +435,26 @@
}
});
- register(ApplicationComponentGroup.class, new Factory<WsThemePresenter>(WsThemePresenter.class) {
+ register(ApplicationComponentGroup.class, new Factory<WsThemeManager>(WsThemeManager.class) {
@Override
- public WsThemePresenter create() {
- final WsThemePresenter presenter = new WsThemePresenter(i(Session.class), p(GroupServiceAsync.class),
+ public WsThemeManager create() {
+ final WsThemeManager presenter = new WsThemeManager(i(Session.class), p(GroupServiceAsync.class),
i(StateManager.class));
- final WsThemePanel panel = new WsThemePanel(i(WorkspaceSkeleton.class), presenter,
- i(I18nUITranslationService.class));
- presenter.init(panel);
+ new WsThemeManagerPanel(presenter, i(WorkspaceSkeleton.class));
return presenter;
}
});
+ register(NoDecoration.class, new Factory<WsThemeSelector>(WsThemeSelector.class) {
+ @Override
+ public WsThemeSelector create() {
+ final WsThemeSelectorPresenter presenter = new WsThemeSelectorPresenter(i(Session.class),
+ i(I18nTranslationService.class));
+ presenter.init(new SimpleGuiItem(i(GuiBindingsRegister.class)));
+ return presenter;
+ }
+ });
+
register(ApplicationComponentGroup.class, new Factory<EntityTitle>(EntityTitle.class) {
@Override
public EntityTitle create() {
@@ -541,8 +552,8 @@
final GroupMembersSummaryPresenter presenter = new GroupMembersSummaryPresenter(
i(I18nUITranslationService.class), i(StateManager.class), i(ImageUtils.class),
i(Session.class), p(SocialNetworkServiceAsync.class), p(GroupServiceAsync.class),
- p(GroupLiveSearcher.class), i(WsThemePresenter.class), p(ChatEngine.class),
- i(GroupActionRegistry.class), i(ActionGroupSummaryToolbar.class), p(FileDownloadUtils.class));
+ p(GroupLiveSearcher.class), p(ChatEngine.class), i(GroupActionRegistry.class),
+ i(ActionGroupSummaryToolbar.class), p(FileDownloadUtils.class));
final GroupMembersSummaryView view = new GroupMembersSummaryPanel(presenter,
i(I18nUITranslationService.class), i(WorkspaceSkeleton.class), i(
ActionGroupSummaryToolbar.class).getView());
@@ -580,8 +591,8 @@
public ParticipationSummary create() {
final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(
i(I18nUITranslationService.class), i(StateManager.class), i(ImageUtils.class),
- i(Session.class), p(SocialNetworkServiceAsync.class), i(WsThemePresenter.class),
- i(GroupActionRegistry.class), i(ActionParticipationToolbar.class), p(FileDownloadUtils.class));
+ i(Session.class), p(SocialNetworkServiceAsync.class), i(GroupActionRegistry.class),
+ i(ActionParticipationToolbar.class), p(FileDownloadUtils.class));
final ParticipationSummaryView view = new ParticipationSummaryPanel(presenter,
i(I18nUITranslationService.class), i(WorkspaceSkeleton.class), i(
ActionParticipationToolbar.class).getView());
@@ -594,7 +605,7 @@
@Override
public TagsSummary create() {
final TagsSummaryPresenter presenter = new TagsSummaryPresenter(i(Session.class),
- p(SiteSearcher.class), i(StateManager.class), i(WsThemePresenter.class));
+ p(SiteSearcher.class), i(StateManager.class));
final TagsSummaryPanel panel = new TagsSummaryPanel(presenter, i(I18nUITranslationService.class),
i(WorkspaceSkeleton.class));
presenter.init(panel);
@@ -719,7 +730,14 @@
GroupOptionsPublicSpaceConf.class) {
@Override
public GroupOptionsPublicSpaceConf create() {
- return createEntityOptionsPublicSpace(i(GroupOptions.class));
+ final WsThemeSelector themeSelector = i(WsThemeSelector.class);
+ final GroupOptionsPublicSpaceConfPresenter presenter = new GroupOptionsPublicSpaceConfPresenter(
+ i(Session.class), i(StateManager.class), i(GroupOptions.class), i(WsThemeManager.class),
+ themeSelector);
+ final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(presenter,
+ i(WorkspaceSkeleton.class), i(I18nTranslationService.class), themeSelector);
+ presenter.init(panel);
+ return presenter;
}
});
@@ -727,7 +745,13 @@
new Factory<UserOptionsPublicSpaceConf>(UserOptionsPublicSpaceConf.class) {
@Override
public UserOptionsPublicSpaceConf create() {
- return createEntityOptionsPublicSpace(i(UserOptions.class));
+ final WsThemeSelector themeSelector = i(WsThemeSelector.class);
+ final UserOptionsPublicSpaceConfPresenter presenter = new UserOptionsPublicSpaceConfPresenter(
+ i(Session.class), i(UserOptions.class), i(WsThemeManager.class), themeSelector);
+ final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(
+ presenter, i(WorkspaceSkeleton.class), i(I18nTranslationService.class), themeSelector);
+ presenter.init(panel);
+ return presenter;
}
});
@@ -897,7 +921,7 @@
@Override
public ToolSelector create() {
final ToolSelectorPresenter presenter = new ToolSelectorPresenter(i(StateManager.class),
- i(WsThemePresenter.class));
+ i(WsThemeManager.class));
return presenter;
}
});
@@ -1071,11 +1095,4 @@
i(GlobalShortcutRegister.class).enable();
}
- private EntityOptionsPublicSpaceConfPresenter createEntityOptionsPublicSpace(final EntityOptions entityOptions) {
- final EntityOptionsPublicSpaceConfPresenter presenter = new EntityOptionsPublicSpaceConfPresenter(entityOptions);
- final EntityOptionsPublicSpaceConfPanel panel = new EntityOptionsPublicSpaceConfPanel(presenter,
- i(WorkspaceSkeleton.class), i(I18nTranslationService.class), i(WsThemePresenter.class));
- presenter.init(panel);
- return presenter;
- }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -26,7 +26,7 @@
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.themes.WsTheme;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import com.calclab.suco.client.events.Listener2;
@@ -37,7 +37,7 @@
private EntityHeaderView view;
private final Session session;
- public EntityHeaderPresenter(final StateManager stateManager, final WsThemePresenter theme, final Session session) {
+ public EntityHeaderPresenter(final StateManager stateManager, final WsThemeManager theme, final Session session) {
this.session = session;
stateManager.onGroupChanged(new Listener2<String, String>() {
@@ -45,7 +45,7 @@
setGroupLogo(session.getCurrentState().getGroup());
}
});
- theme.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
+ theme.addOnThemeChanged(new Listener2<WsTheme, WsTheme>() {
public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
view.setTheme(oldTheme, newTheme);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/licensewizard/LicenseChangeAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/licensewizard/LicenseChangeAction.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensewizard/LicenseChangeAction.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -20,6 +20,7 @@
package org.ourproject.kune.workspace.client.licensewizard;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.state.Session;
@@ -36,27 +37,26 @@
private final Session session;
private final I18nTranslationService i18n;
- public LicenseChangeAction(Provider<GroupServiceAsync> groupService, Session session, I18nTranslationService i18n,
- StateManager stateManager) {
+ public LicenseChangeAction(final Provider<GroupServiceAsync> groupService, final Session session,
+ final I18nTranslationService i18n, final StateManager stateManager) {
this.groupService = groupService;
this.session = session;
this.i18n = i18n;
this.stateManager = stateManager;
}
- public void changeLicense(final LicenseDTO license, final Listener0 onSuccess) {
+ public void changeLicense(final StateToken token, final LicenseDTO license, final Listener0 onSuccess) {
NotifyUser.showProgressProcessing();
- groupService.get().changeDefLicense(session.getUserHash(), session.getCurrentStateToken(), license,
- new AsyncCallback<Object>() {
- public void onFailure(Throwable caught) {
- NotifyUser.hideProgress();
- NotifyUser.error(i18n.t("Error changing default group license"));
- }
+ groupService.get().changeDefLicense(session.getUserHash(), token, license, new AsyncCallback<Object>() {
+ public void onFailure(final Throwable caught) {
+ NotifyUser.hideProgress();
+ NotifyUser.error(i18n.t("Error changing default group license"));
+ }
- public void onSuccess(Object result) {
- stateManager.reload();
- onSuccess.onEvent();
- }
- });
+ public void onSuccess(final Object result) {
+ stateManager.reload();
+ onSuccess.onEvent();
+ }
+ });
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/EntityOptionsDefLicensePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/EntityOptionsDefLicensePresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/EntityOptionsDefLicensePresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -21,6 +21,7 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.workspace.client.licensewizard.LicenseChangeAction;
import org.ourproject.kune.workspace.client.licensewizard.LicenseWizard;
@@ -60,7 +61,7 @@
public void onChange() {
licenseWizard.get().start(new Listener<LicenseDTO>() {
public void onEvent(final LicenseDTO license) {
- licChangeAction.get().changeLicense(license, new Listener0() {
+ licChangeAction.get().changeLicense(getOperationToken(), license, new Listener0() {
public void onEvent() {
setLicense(license);
}
@@ -77,6 +78,8 @@
protected abstract LicenseDTO getCurrentDefLicense();
+ protected abstract StateToken getOperationToken();
+
protected void setState() {
if (applicable()) {
setLicense(getCurrentDefLicense());
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicensePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicensePresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/GroupOptionsDefLicensePresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,6 +1,7 @@
package org.ourproject.kune.workspace.client.options.license;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.licensewizard.LicenseChangeAction;
@@ -32,4 +33,9 @@
protected LicenseDTO getCurrentDefLicense() {
return session.getCurrentState().getGroup().getDefaultLicense();
}
+
+ @Override
+ protected StateToken getOperationToken() {
+ return session.getCurrentStateToken();
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicensePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicensePresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/license/UserOptionsDefLicensePresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,6 +1,7 @@
package org.ourproject.kune.workspace.client.options.license;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.workspace.client.licensewizard.LicenseChangeAction;
@@ -24,11 +25,16 @@
@Override
protected boolean applicable() {
- return session.isCurrentStateAGroup();
+ return session.isLogged();
}
@Override
protected LicenseDTO getCurrentDefLicense() {
return session.getCurrentState().getGroup().getDefaultLicense();
}
+
+ @Override
+ protected StateToken getOperationToken() {
+ return session.getCurrentUser().getStateToken();
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -25,20 +25,20 @@
import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import org.ourproject.kune.workspace.client.options.EntityOptionsView;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.widgets.Panel;
-import com.gwtext.client.widgets.ToolbarButton;
public class EntityOptionsPublicSpaceConfPanel extends Panel implements EntityOptionsPublicSpaceConfView {
public EntityOptionsPublicSpaceConfPanel(final EntityOptionsPublicSpaceConfPresenter presenter,
- final WorkspaceSkeleton ws, final I18nTranslationService i18n, final WsThemePresenter wsPresenter) {
+ final WorkspaceSkeleton ws, final I18nTranslationService i18n, final WsThemeSelector wsSelector) {
super.setTitle(i18n.t("Style"));
super.setIconCls("k-colors-icon");
super.setAutoScroll(true);
@@ -49,7 +49,7 @@
final HorizontalPanel wsHP = new HorizontalPanel();
final Label wsThemeInfo = new Label(i18n.t("Change this workspace theme:"));
- final ToolbarButton toolbarWsChange = (ToolbarButton) wsPresenter.getView();
+ final Widget toolbarWsChange = (Widget) wsSelector.getView();
toolbarWsChange.addStyleName("kune-Margin-Medium-l");
wsHP.add(wsThemeInfo);
wsHP.add(toolbarWsChange);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,29 +1,9 @@
-/*
- *
- * Copyright (C) 2007-2009 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 org.ourproject.kune.workspace.client.options.pscape;
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.workspace.client.options.EntityOptions;
-public class EntityOptionsPublicSpaceConfPresenter implements GroupOptionsPublicSpaceConf, UserOptionsPublicSpaceConf {
-
+public abstract class EntityOptionsPublicSpaceConfPresenter {
private EntityOptionsPublicSpaceConfView view;
private final EntityOptions entityOptions;
@@ -39,4 +19,5 @@
this.view = view;
entityOptions.addTab(view);
}
+
}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConfPresenter.java (from rev 1131, trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/EntityOptionsPublicSpaceConfPresenter.java 2009-06-27 22:41:14 UTC (rev 1131)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/GroupOptionsPublicSpaceConfPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,51 @@
+/*
+ *
+ * Copyright (C) 2007-2009 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 org.ourproject.kune.workspace.client.options.pscape;
+
+import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.options.EntityOptions;
+import org.ourproject.kune.workspace.client.themes.WsTheme;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
+import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
+
+import com.calclab.suco.client.events.Listener;
+
+public class GroupOptionsPublicSpaceConfPresenter extends EntityOptionsPublicSpaceConfPresenter implements
+ GroupOptionsPublicSpaceConf {
+
+ public GroupOptionsPublicSpaceConfPresenter(final Session session, final StateManager stateManager,
+ final EntityOptions entityOptions, final WsThemeManager themeManager, final WsThemeSelector themeSelector) {
+ super(entityOptions);
+ themeSelector.addThemeSelected(new Listener<WsTheme>() {
+ public void onEvent(final WsTheme theme) {
+ themeManager.changeTheme(session.getCurrentStateToken(), theme);
+ }
+ });
+ stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
+ public void onEvent(final StateAbstractDTO state) {
+ final String theme = state.getGroup().getWorkspaceTheme();
+ themeSelector.select(theme);
+ }
+ });
+ }
+
+}
\ No newline at end of file
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/pscape/UserOptionsPublicSpaceConfPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,60 @@
+/*
+ *
+ * Copyright (C) 2007-2009 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 org.ourproject.kune.workspace.client.options.pscape;
+
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.workspace.client.options.EntityOptions;
+import org.ourproject.kune.workspace.client.themes.WsTheme;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
+import org.ourproject.kune.workspace.client.themes.WsThemeSelector;
+
+import com.calclab.suco.client.events.Listener;
+
+public class UserOptionsPublicSpaceConfPresenter extends EntityOptionsPublicSpaceConfPresenter implements
+ UserOptionsPublicSpaceConf {
+
+ private final WsThemeSelector themeSelector;
+
+ public UserOptionsPublicSpaceConfPresenter(final Session session, final EntityOptions entityOptions,
+ final WsThemeManager themeManager, final WsThemeSelector themeSelector) {
+ super(entityOptions);
+ this.themeSelector = themeSelector;
+ themeSelector.addThemeSelected(new Listener<WsTheme>() {
+ public void onEvent(final WsTheme theme) {
+ themeManager.changeTheme(session.getCurrentUser().getStateToken(), theme);
+ }
+ });
+ final UserInfoDTO userInfo = session.getCurrentUserInfo();
+ if (userInfo != null) {
+ setSelector(userInfo);
+ }
+ session.onUserSignIn(new Listener<UserInfoDTO>() {
+ public void onEvent(final UserInfoDTO parameter) {
+ setSelector(userInfo);
+ }
+ });
+ }
+
+ private void setSelector(final UserInfoDTO userInfo) {
+ themeSelector.select(userInfo.getUserGroup().getWorkspaceTheme());
+ }
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/tools/EntityOptionsToolsConfPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -21,18 +21,18 @@
private EntityOptionsToolsConfView view;
private final EntityOptions entityOptions;
protected final Session session;
- private final Provider<GroupServiceAsync> groupServiceProvider;
+ private final Provider<GroupServiceAsync> groupService;
protected final I18nTranslationService i18n;
protected final StateManager stateManager;
public EntityOptionsToolsConfPresenter(final Session session, final StateManager stateManager,
final I18nTranslationService i18n, final EntityOptions entityOptions,
- final Provider<GroupServiceAsync> groupServiceProvider) {
+ final Provider<GroupServiceAsync> groupService) {
this.session = session;
this.stateManager = stateManager;
this.i18n = i18n;
this.entityOptions = entityOptions;
- this.groupServiceProvider = groupServiceProvider;
+ this.groupService = groupService;
}
public View getView() {
@@ -51,8 +51,6 @@
if (checked) {
if (!(enabledTools.contains(toolName))) {
setToolCheckedInServer(checked, toolName);
- } else {
- // do nothing
}
} else {
if (enabledTools.contains(toolName)) {
@@ -103,7 +101,7 @@
}
protected void setToolCheckedInServer(final boolean checked, final String toolName) {
- groupServiceProvider.get().setToolEnabled(session.getUserHash(), getOperationToken(), toolName, checked,
+ groupService.get().setToolEnabled(session.getUserHash(), getOperationToken(), toolName, checked,
new AsyncCallback<Object>() {
public void onFailure(final Throwable caught) {
view.setChecked(toolName, !checked);
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/site/DefCssResource.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/DefCssResource.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/DefCssResource.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,11 @@
+package org.ourproject.kune.workspace.client.site;
+
+import com.google.gwt.libideas.resources.client.CssResource;
+import com.google.gwt.libideas.resources.client.ImmutableResourceBundle;
+
+public interface DefCssResource extends ImmutableResourceBundle {
+
+ @Resource("defCssResource.css")
+ CssResource css();
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/site/SiteResources.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/site/SiteResources.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/site/SiteResources.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,12 +1,13 @@
package org.ourproject.kune.workspace.client.site;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.libideas.resources.client.ImmutableResourceBundle;
import com.google.gwt.libideas.resources.client.TextResource;
public interface SiteResources extends ImmutableResourceBundle {
- public static final SiteResources INSTANCE = GWT.create(SiteResources.class);
+ @Deprecated
+ // not used now, only here for future use
@Resource("about.html")
public TextResource aboutKune();
+
}
\ No newline at end of file
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/site/defCssResource.css
===================================================================
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -74,7 +74,7 @@
}
};
bugsAction.putValue(Action.NAME, i18n.t("Report Kune issues/problems"));
- bugsAction.putValue(Action.SMALL_ICON, img.info());
+ bugsAction.putValue(Action.SMALL_ICON, img.bug());
final MenuItemDescriptor item = new MenuItemDescriptor(bugsAction);
addAction(item);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteoptions/SiteOptionsView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -19,10 +19,10 @@
\*/
package org.ourproject.kune.workspace.client.sitebar.siteoptions;
-import org.ourproject.kune.platf.client.actions.ui.AbstractActionExtensibleView;
+import org.ourproject.kune.platf.client.actions.ui.ActionExtensibleView;
import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor;
-public interface SiteOptionsView extends AbstractActionExtensibleView {
+public interface SiteOptionsView extends ActionExtensibleView {
void setMenu(MenuDescriptor menuDescriptor);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -38,7 +38,6 @@
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
import org.ourproject.kune.platf.client.ui.img.ImgResources;
-import org.ourproject.kune.workspace.client.options.UserOptions;
import com.calclab.suco.client.events.Listener;
import com.calclab.suco.client.events.Listener0;
@@ -49,7 +48,6 @@
private SiteUserOptionsView view;
private final StateManager stateManager;
private final Session session;
- private final Provider<UserOptions> userOptions;
private final Provider<FileDownloadUtils> downloadProvider;
private MenuDescriptor menuDescriptor;
private final I18nTranslationService i18n;
@@ -58,12 +56,11 @@
private MenuDescriptor partiMenu;;
public SiteUserOptionsPresenter(final Session session, final StateManager stateManager,
- final Provider<UserOptions> userOptions, final Provider<FileDownloadUtils> downloadProvider,
- final I18nTranslationService i18n, final ImgResources img) {
+ final Provider<FileDownloadUtils> downloadProvider, final I18nTranslationService i18n,
+ final ImgResources img) {
super();
this.session = session;
this.stateManager = stateManager;
- this.userOptions = userOptions;
this.downloadProvider = downloadProvider;
this.i18n = i18n;
this.img = img;
@@ -99,7 +96,8 @@
private void addPartipation(final GroupDTO group) {
final String logoImageUrl = group.hasLogo() ? downloadProvider.get().getLogoImageUrl(group.getStateToken())
: "images/group-def-icon.gif";
- final GotoGroupAction gotoGroupAction = new GotoGroupAction(logoImageUrl, group.getLongName(), stateManager);
+ final GotoGroupAction gotoGroupAction = new GotoGroupAction(logoImageUrl, group.getShortName(),
+ group.getLongName(), stateManager);
view.addAction(new MenuItemDescriptor(partiMenu, gotoGroupAction));
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/siteusermenu/SiteUserOptionsView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -19,10 +19,10 @@
\*/
package org.ourproject.kune.workspace.client.sitebar.siteusermenu;
-import org.ourproject.kune.platf.client.actions.ui.AbstractActionExtensibleView;
+import org.ourproject.kune.platf.client.actions.ui.ActionExtensibleView;
import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor;
-public interface SiteUserOptionsView extends AbstractActionExtensibleView {
+public interface SiteUserOptionsView extends ActionExtensibleView {
void setLoggedUserName(String name);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -31,7 +31,6 @@
import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuPanel;
import org.ourproject.kune.workspace.client.skel.SummaryPanel;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
import com.calclab.emiteuimodule.client.users.UserGridPanel;
import com.calclab.suco.client.events.Listener;
@@ -52,7 +51,7 @@
private final Label noMembersPublic;
public GroupMembersSummaryPanel(final GroupMembersSummaryPresenter presenter, final I18nUITranslationService i18n,
- final WorkspaceSkeleton ws, ActionToolbarView<StateToken> actionToolbarView) {
+ final WorkspaceSkeleton ws, final ActionToolbarView<StateToken> actionToolbarView) {
super(i18n.t("Group members"), i18n.t("People and groups collaborating in this group"), ws);
this.presenter = presenter;
this.i18n = i18n;
@@ -62,7 +61,7 @@
+ i18n.t("Drop into a room to invite the user to join the chat room"));
gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This is an orphaned project, if you are interested "
+ "please request to join to work on it"), dragConf, true, true, false, true, false);
- Listener<String> go = new Listener<String>() {
+ final Listener<String> go = new Listener<String>() {
public void onEvent(final String groupShortName) {
presenter.onDoubleClick(groupShortName);
}
@@ -126,10 +125,6 @@
// gridMenuPanel.setDraggable(draggable);
}
- public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
- // super.setTheme(oldTheme, newTheme);
- }
-
public void showMembersNotVisible() {
noMembersPublic.setVisible(true);
gridMenuPanel.setVisible(false);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -52,12 +52,9 @@
import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
import org.ourproject.kune.workspace.client.search.GroupLiveSearcher;
import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionGroupSummaryToolbar;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
import com.calclab.emite.core.client.xmpp.stanzas.XmppURI;
import com.calclab.suco.client.events.Listener;
-import com.calclab.suco.client.events.Listener2;
import com.calclab.suco.client.ioc.Provider;
public class GroupMembersSummaryPresenter extends SocialNetworkPresenter implements GroupMembersSummary {
@@ -81,9 +78,9 @@
final ImageUtils imageUtils, final Session session,
final Provider<SocialNetworkServiceAsync> snServiceProvider,
final Provider<GroupServiceAsync> groupServiceProvider,
- final Provider<GroupLiveSearcher> liveSearcherProvider, final WsThemePresenter wsThemePresenter,
- final Provider<ChatEngine> chatEngineProvider, final GroupActionRegistry groupActionRegistry,
- final ActionGroupSummaryToolbar toolbar, final Provider<FileDownloadUtils> downloadProvider) {
+ final Provider<GroupLiveSearcher> liveSearcherProvider, final Provider<ChatEngine> chatEngineProvider,
+ final GroupActionRegistry groupActionRegistry, final ActionGroupSummaryToolbar toolbar,
+ final Provider<FileDownloadUtils> downloadProvider) {
super(i18n, stateManager, session, snServiceProvider, groupActionRegistry, downloadProvider);
this.i18n = i18n;
this.stateManager = stateManager;
@@ -93,7 +90,7 @@
this.liveSearcherProvider = liveSearcherProvider;
this.groupActionRegistry = groupActionRegistry;
final Listener<StateAbstractDTO> setStateListener = new Listener<StateAbstractDTO>() {
- public void onEvent(StateAbstractDTO state) {
+ public void onEvent(final StateAbstractDTO state) {
setState(state);
toolbar.disableMenusAndClearButtons();
toolbar.addActions(groupActionRegistry.getCurrentActions(state.getGroup().getStateToken(),
@@ -103,11 +100,6 @@
};
stateManager.onStateChanged(setStateListener);
stateManager.onSocialNetworkChanged(setStateListener);
- wsThemePresenter.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
- public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
- view.setTheme(oldTheme, newTheme);
- }
- });
session.onInitDataReceived(new Listener<InitDataDTO>() {
public void onEvent(final InitDataDTO initData) {
addUserOperation(new MenuItem<GroupDTO>("images/new-chat.gif", i18n.t("Start a chat with this member"),
@@ -156,9 +148,9 @@
}
private void createActions() {
- ActionToolbarMenuDescriptor<StateToken> addMember = new ActionToolbarMenuDescriptor<StateToken>(
+ final ActionToolbarMenuDescriptor<StateToken> addMember = new ActionToolbarMenuDescriptor<StateToken>(
AccessRolDTO.Administrator, membersBottom, new Listener<StateToken>() {
- public void onEvent(StateToken parameter) {
+ public void onEvent(final StateToken parameter) {
liveSearcherProvider.get().onSelection(new Listener<LinkDTO>() {
public void onEvent(final LinkDTO link) {
view.confirmAddCollab(link.getShortName(), link.getLongName());
@@ -183,21 +175,21 @@
createNewMembersPolicyAction(i18n.t("auto accept request to join"), AdmissionTypeDTO.Open);
}
- private void createNewMembersPolicyAction(String textDescription, final AdmissionTypeDTO admissionPolicy) {
- ActionToolbarMenuRadioDescriptor<StateToken> newMembersPolicy = new ActionToolbarMenuRadioDescriptor<StateToken>(
+ private void createNewMembersPolicyAction(final String textDescription, final AdmissionTypeDTO admissionPolicy) {
+ final ActionToolbarMenuRadioDescriptor<StateToken> newMembersPolicy = new ActionToolbarMenuRadioDescriptor<StateToken>(
AccessRolDTO.Administrator, membersBottom, new Listener<StateToken>() {
- public void onEvent(StateToken parameter) {
+ public void onEvent(final StateToken parameter) {
groupServiceProvider.get().setGroupNewMembersJoiningPolicy(session.getUserHash(),
session.getCurrentState().getGroup().getStateToken(), admissionPolicy,
new AsyncCallbackSimple<Object>() {
- public void onSuccess(Object result) {
+ public void onSuccess(final Object result) {
NotifyUser.info(i18n.t("Members joining policy changed"));
}
});
}
}, NEW_MEMBERS_POLICY_GROUP, new RadioMustBeChecked() {
public boolean mustBeChecked() {
- StateAbstractDTO currentState = session.getCurrentState();
+ final StateAbstractDTO currentState = session.getCurrentState();
return currentState.getGroup().getAdmissionType().equals(admissionPolicy);
}
});
@@ -207,23 +199,24 @@
groupActionRegistry.addAction(newMembersPolicy);
}
- private void createSetMembersVisibilityAction(String textDescription, final SocialNetworkVisibilityDTO visibility) {
- ActionToolbarMenuRadioDescriptor<StateToken> showMembers = new ActionToolbarMenuRadioDescriptor<StateToken>(
+ private void createSetMembersVisibilityAction(final String textDescription,
+ final SocialNetworkVisibilityDTO visibility) {
+ final ActionToolbarMenuRadioDescriptor<StateToken> showMembers = new ActionToolbarMenuRadioDescriptor<StateToken>(
AccessRolDTO.Administrator, membersBottom, new Listener<StateToken>() {
- public void onEvent(StateToken parameter) {
+ public void onEvent(final StateToken parameter) {
groupServiceProvider.get().setSocialNetworkVisibility(session.getUserHash(),
session.getCurrentState().getGroup().getStateToken(), visibility,
new AsyncCallbackSimple<Object>() {
- public void onSuccess(Object result) {
+ public void onSuccess(final Object result) {
NotifyUser.info(i18n.t("Members visibility changed"));
}
});
}
}, MEMBERS_VISIBILITY_GROUP, new RadioMustBeChecked() {
public boolean mustBeChecked() {
- StateAbstractDTO currentState = session.getCurrentState();
+ final StateAbstractDTO currentState = session.getCurrentState();
if (!currentState.getGroup().isPersonal()) {
- SocialNetworkDataDTO socialNetworkData = currentState.getSocialNetworkData();
+ final SocialNetworkDataDTO socialNetworkData = currentState.getSocialNetworkData();
return socialNetworkData.getSocialNetworkVisibility().equals(visibility);
}
return false;
@@ -245,7 +238,7 @@
// final int numAdmins = adminsList.size();
- boolean userIsAdmin = rights.isAdministrable();
+ final boolean userIsAdmin = rights.isAdministrable();
final boolean userCanView = rights.isVisible();
view.clear();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -21,7 +21,6 @@
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
public interface GroupMembersSummaryView {
@@ -33,8 +32,6 @@
void setDraggable(boolean draggable);
- void setTheme(WsTheme oldTheme, WsTheme newTheme);
-
void setVisible(boolean visible);
void showMembersNotVisible();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -29,7 +29,6 @@
import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuPanel;
import org.ourproject.kune.workspace.client.skel.SummaryPanel;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
import com.calclab.suco.client.events.Listener;
import com.google.gwt.user.client.ui.Widget;
@@ -42,11 +41,11 @@
private final AbstractToolbar toolbar;
public ParticipationSummaryPanel(final ParticipationSummaryPresenter presenter, final I18nTranslationService i18n,
- final WorkspaceSkeleton ws, ActionToolbarView<StateToken> actionToolbarView) {
+ final WorkspaceSkeleton ws, final ActionToolbarView<StateToken> actionToolbarView) {
super(i18n.t("Participates in"), i18n.t("Groups in which the user participates"), ws);
gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This user does not belong to any group"), false, false,
false, false, false);
- Listener<String> go = new Listener<String>() {
+ final Listener<String> go = new Listener<String>() {
public void onEvent(final String groupShortName) {
presenter.onDoubleClick(groupShortName);
}
@@ -77,8 +76,4 @@
toolbar.removeAll();
}
- public void setTheme(WsTheme oldTheme, WsTheme newTheme) {
- // TODO Auto-generated method stub
- }
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -33,11 +33,8 @@
import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
import org.ourproject.kune.workspace.client.socialnet.toolbar.ActionParticipationToolbar;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
import com.calclab.suco.client.events.Listener;
-import com.calclab.suco.client.events.Listener2;
import com.calclab.suco.client.ioc.Provider;
public class ParticipationSummaryPresenter extends SocialNetworkPresenter implements ParticipationSummary {
@@ -49,9 +46,8 @@
public ParticipationSummaryPresenter(final I18nUITranslationService i18n, final StateManager stateManager,
final ImageUtils imageUtils, final Session session,
- final Provider<SocialNetworkServiceAsync> snServiceProvider, final WsThemePresenter wsThemePresenter,
- GroupActionRegistry groupActionRegistry, ActionParticipationToolbar actionParticipationToolbar,
- final Provider<FileDownloadUtils> downloadProvider) {
+ final Provider<SocialNetworkServiceAsync> snServiceProvider, final GroupActionRegistry groupActionRegistry,
+ final ActionParticipationToolbar actionParticipationToolbar, final Provider<FileDownloadUtils> downloadProvider) {
super(i18n, stateManager, session, snServiceProvider, groupActionRegistry, downloadProvider);
adminCategory = new GridGroup("admin in:", " ", i18n.tWithNT("Administrate these groups",
"talking about a person"), false);
@@ -61,17 +57,12 @@
false);
super.addGroupOperation(gotoGroupMenuItem, false);
final Listener<StateAbstractDTO> setStateListener = new Listener<StateAbstractDTO>() {
- public void onEvent(StateAbstractDTO state) {
+ public void onEvent(final StateAbstractDTO state) {
setState(state);
}
};
stateManager.onStateChanged(setStateListener);
stateManager.onSocialNetworkChanged(setStateListener);
- wsThemePresenter.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
- public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
- view.setTheme(oldTheme, newTheme);
- }
- });
}
public void init(final ParticipationSummaryView view) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,6 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
public interface ParticipationSummaryView extends View {
@@ -30,8 +29,6 @@
void clear();
- void setTheme(WsTheme oldTheme, WsTheme newTheme);
-
void setVisible(boolean b);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -23,7 +23,6 @@
import org.ourproject.kune.platf.client.ui.KuneUiUtils;
import org.ourproject.kune.workspace.client.skel.SummaryPanel;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
@@ -76,8 +75,4 @@
public void clear() {
flowPanel.clear();
}
-
- public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
- // TODO Auto-generated method stub
- }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -28,12 +28,9 @@
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.search.SiteSearcher;
import org.ourproject.kune.workspace.client.search.SiteSearcherType;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
import com.allen_sauer.gwt.log.client.Log;
import com.calclab.suco.client.events.Listener;
-import com.calclab.suco.client.events.Listener2;
import com.calclab.suco.client.ioc.Provider;
public class TagsSummaryPresenter implements TagsSummary {
@@ -46,7 +43,7 @@
private final Session session;
public TagsSummaryPresenter(final Session session, final Provider<SiteSearcher> searcherProvider,
- final StateManager stateManager, final WsThemePresenter wsThemePresenter) {
+ final StateManager stateManager) {
this.session = session;
this.searcherProvider = searcherProvider;
stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
@@ -58,11 +55,6 @@
}
}
});
- wsThemePresenter.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
- public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
- view.setTheme(oldTheme, newTheme);
- }
- });
}
public void doSearchTag(final String name) {
@@ -101,7 +93,7 @@
final int min = tagCloudResult.getMinValue();
final int diff = max - min;
final int step = (MAXSIZE - MINSIZE) / (diff == 0 ? 1 : diff);
- for (TagCountDTO tagCount : tagCloudResult.getTagCountList()) {
+ for (final TagCountDTO tagCount : tagCloudResult.getTagCountList()) {
final int size = Math.round((MINSIZE + (tagCount.getCount().floatValue() - min) * step));
view.addTag(tagCount.getName(), tagCount.getCount(), "kune-ft" + size + "px");
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -20,7 +20,6 @@
package org.ourproject.kune.workspace.client.tags;
import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.workspace.client.themes.WsTheme;
public interface TagsSummaryView extends View {
@@ -30,8 +29,6 @@
void expand();
- void setTheme(WsTheme oldTheme, WsTheme newTheme);
-
void setVisible(boolean visible);
}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java (from rev 1121, trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java 2009-06-08 14:18:03 UTC (rev 1121)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManager.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,105 @@
+/*
+ *
+ * Copyright (C) 2007-2009 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 org.ourproject.kune.workspace.client.themes;
+
+import org.ourproject.kune.platf.client.dto.InitDataDTO;
+import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
+
+import com.calclab.suco.client.events.Event2;
+import com.calclab.suco.client.events.Listener;
+import com.calclab.suco.client.events.Listener2;
+import com.calclab.suco.client.ioc.Provider;
+
+public class WsThemeManager {
+
+ private WsTheme previousTheme;
+ private final Event2<WsTheme, WsTheme> onThemeChanged;
+ private final Provider<GroupServiceAsync> groupServiceProvider;
+ private final Session session;
+ private WsTheme defTheme;
+
+ public WsThemeManager(final Session session, final Provider<GroupServiceAsync> groupServiceProvider,
+ final StateManager stateManager) {
+ this.session = session;
+ this.groupServiceProvider = groupServiceProvider;
+ this.onThemeChanged = new Event2<WsTheme, WsTheme>("onThemeChanged");
+ session.onInitDataReceived(new Listener<InitDataDTO>() {
+ public void onEvent(final InitDataDTO initData) {
+ setDefTheme(initData);
+ setTheme(defTheme);
+ }
+ });
+ stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
+ public void onEvent(final StateAbstractDTO state) {
+ setState(state);
+ }
+ });
+ }
+
+ public void changeTheme(final StateToken token, final WsTheme newTheme) {
+ NotifyUser.showProgressProcessing();
+ groupServiceProvider.get().changeGroupWsTheme(session.getUserHash(), token, newTheme.getName(),
+ new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ if (session.getCurrentState().getStateToken().getGroup().equals(token.getGroup())) {
+ setTheme(newTheme);
+ }
+ NotifyUser.hideProgress();
+ }
+ });
+ }
+
+ public void addOnThemeChanged(final Listener2<WsTheme, WsTheme> listener) {
+ onThemeChanged.add(listener);
+ }
+
+ protected void onChangeGroupWsTheme(final WsTheme newTheme) {
+ NotifyUser.showProgressProcessing();
+ groupServiceProvider.get().changeGroupWsTheme(session.getUserHash(), session.getCurrentState().getStateToken(),
+ newTheme.getName(), new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ setTheme(newTheme);
+ NotifyUser.hideProgress();
+ }
+ });
+ }
+
+ private void setDefTheme(final InitDataDTO initData) {
+ defTheme = new WsTheme(initData.getWsThemes()[0]);
+ }
+
+ private void setState(final StateAbstractDTO state) {
+ setTheme(new WsTheme(state.getGroup().getWorkspaceTheme()));
+ }
+
+ private void setTheme(final WsTheme newTheme) {
+ if (previousTheme == null || !previousTheme.equals(newTheme)) {
+ onThemeChanged.fire(previousTheme, newTheme);
+ }
+ previousTheme = newTheme;
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManagerPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManagerPanel.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeManagerPanel.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,15 @@
+package org.ourproject.kune.workspace.client.themes;
+
+import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
+
+import com.calclab.suco.client.events.Listener2;
+
+public class WsThemeManagerPanel {
+ public WsThemeManagerPanel(final WsThemeManager presenter, final WorkspaceSkeleton wskel) {
+ presenter.addOnThemeChanged(new Listener2<WsTheme, WsTheme>() {
+ public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
+ wskel.setTheme(oldTheme, newTheme);
+ }
+ });
+ }
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePanel.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePanel.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,73 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 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 org.ourproject.kune.workspace.client.themes;
-
-import org.ourproject.kune.platf.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-
-import com.calclab.suco.client.events.Listener2;
-import com.gwtext.client.core.EventObject;
-import com.gwtext.client.widgets.ToolbarButton;
-import com.gwtext.client.widgets.menu.BaseItem;
-import com.gwtext.client.widgets.menu.Menu;
-import com.gwtext.client.widgets.menu.MenuItem;
-import com.gwtext.client.widgets.menu.event.BaseItemListenerAdapter;
-
-public class WsThemePanel extends ToolbarButton implements WsThemeView {
-
- private final Menu menu;
- private final WsThemePresenter presenter;
- private final I18nUITranslationService i18n;
-
- public WsThemePanel(final WorkspaceSkeleton ws, final WsThemePresenter presenter,
- final I18nUITranslationService i18n) {
- this.presenter = presenter;
- this.i18n = i18n;
- menu = new Menu();
-
- menu.setDefaultAlign("br-tr");
- super.setMenu(menu);
- super.setIcon("images/colors.gif");
- // super.setTooltip(i18n.t("Select Workspace theme for this group"));
- // ws.getSiteTraybar().addButton(this);
- presenter.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
- public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
- ws.setTheme(oldTheme, newTheme);
- }
- });
- }
-
- public void setThemes(final String[] themes) {
- for (String theme2 : themes) {
- final WsTheme theme = new WsTheme(theme2);
- final MenuItem item = new MenuItem();
- final String name = theme.getName();
- item.setIconCls("k-wstheme-icon-" + name);
- item.setText(i18n.t(name));
- menu.addItem(item);
- item.addListener(new BaseItemListenerAdapter() {
- @Override
- public void onClick(final BaseItem item, final EventObject e) {
- presenter.onChangeGroupWsTheme(theme);
- }
- });
- }
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemePresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,102 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 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 org.ourproject.kune.workspace.client.themes;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dto.InitDataDTO;
-import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
-
-import com.calclab.suco.client.events.Event2;
-import com.calclab.suco.client.events.Listener;
-import com.calclab.suco.client.events.Listener2;
-import com.calclab.suco.client.ioc.Provider;
-
-public class WsThemePresenter {
-
- private WsThemeView view;
- private WsTheme previousTheme;
- private final Event2<WsTheme, WsTheme> onThemeChanged;
- private final Provider<GroupServiceAsync> groupServiceProvider;
- private final Session session;
- private WsTheme defTheme;
-
- public WsThemePresenter(final Session session, final Provider<GroupServiceAsync> groupServiceProvider,
- final StateManager stateManager) {
- this.session = session;
- this.groupServiceProvider = groupServiceProvider;
- this.onThemeChanged = new Event2<WsTheme, WsTheme>("onThemeChanged");
- session.onInitDataReceived(new Listener<InitDataDTO>() {
- public void onEvent(final InitDataDTO initData) {
- view.setThemes(initData.getWsThemes());
- setDefTheme(initData);
- setTheme(defTheme);
- }
- });
- stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
- public void onEvent(final StateAbstractDTO state) {
- setState(state);
- }
- });
- }
-
- public View getView() {
- return view;
- }
-
- public void init(final WsThemeView view) {
- this.view = view;
- }
-
- public void onThemeChanged(final Listener2<WsTheme, WsTheme> listener) {
- onThemeChanged.add(listener);
- }
-
- protected void onChangeGroupWsTheme(final WsTheme newTheme) {
- NotifyUser.showProgressProcessing();
- groupServiceProvider.get().changeGroupWsTheme(session.getUserHash(), session.getCurrentState().getStateToken(),
- newTheme.getName(), new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- setTheme(newTheme);
- NotifyUser.hideProgress();
- }
- });
- }
-
- private void setDefTheme(final InitDataDTO initData) {
- defTheme = new WsTheme(initData.getWsThemes()[0]);
- }
-
- private void setState(final StateAbstractDTO state) {
- setTheme(new WsTheme(state.getGroup().getWorkspaceTheme()));
- }
-
- private void setTheme(final WsTheme newTheme) {
- if (previousTheme == null || !previousTheme.equals(newTheme)) {
- onThemeChanged.fire(previousTheme, newTheme);
- }
- previousTheme = newTheme;
- }
-
-}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelector.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelector.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelector.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,15 @@
+package org.ourproject.kune.workspace.client.themes;
+
+import org.ourproject.kune.platf.client.View;
+
+import com.calclab.suco.client.events.Listener;
+
+public interface WsThemeSelector {
+
+ void addThemeSelected(Listener<WsTheme> listener);
+
+ View getView();
+
+ void select(String theme);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelectorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelectorPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeSelectorPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -0,0 +1,108 @@
+package org.ourproject.kune.workspace.client.themes;
+
+import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.actions.AbstractExtendedAction;
+import org.ourproject.kune.platf.client.actions.Action;
+import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.ui.ActionExtensibleView;
+import org.ourproject.kune.platf.client.actions.ui.CssStyleDescriptor;
+import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor;
+import org.ourproject.kune.platf.client.actions.ui.MenuItemDescriptor;
+import org.ourproject.kune.platf.client.dto.InitDataDTO;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
+import org.ourproject.kune.platf.client.state.Session;
+
+import com.calclab.suco.client.events.Event;
+import com.calclab.suco.client.events.Listener;
+
+public class WsThemeSelectorPresenter implements WsThemeSelector {
+
+ class ThemeAction extends AbstractExtendedAction {
+
+ private final String theme;
+
+ public ThemeAction(final String theme) {
+ super();
+ this.theme = theme;
+ putValue(NAME, i18n.t(theme));
+ putValue(SMALL_ICON, CssStyleDescriptor.create("k-wstheme-icon-" + theme));
+ }
+
+ public void actionPerformed(final ActionEvent event) {
+ themeSelected.fire(new WsTheme(theme));
+ menu.setText(i18n.t(theme));
+ }
+ }
+
+ private final Event<WsTheme> themeSelected;
+ private final Event<String> selectItemInUI;
+ private final I18nTranslationService i18n;
+ private MenuDescriptor menu;
+ private ActionExtensibleView view;
+ private final Session session;
+
+ public WsThemeSelectorPresenter(final Session session, final I18nTranslationService i18n) {
+ this.session = session;
+ this.i18n = i18n;
+ this.themeSelected = new Event<WsTheme>("themeSelected");
+ this.selectItemInUI = new Event<String>("selectItemInUI");
+ }
+
+ public void addThemeSelected(final Listener<WsTheme> listener) {
+ themeSelected.add(listener);
+ }
+
+ public View getView() {
+ return view;
+ }
+
+ public void init(final ActionExtensibleView view) {
+ this.view = view;
+ createActions();
+ }
+
+ public void select(final String theme) {
+ selectItemInUI.fire(theme);
+ }
+
+ private void createActions() {
+ createMenu();
+ final InitDataDTO initData = session.getInitData();
+ if (initData == null) {
+ session.onInitDataReceived(new Listener<InitDataDTO>() {
+ public void onEvent(final InitDataDTO initData) {
+ setThemes(initData);
+ }
+ });
+ } else {
+ setThemes(initData);
+ }
+ }
+
+ private void createMenu() {
+ menu = new MenuDescriptor(" ");
+ menu.putValue(Action.SMALL_ICON, "images/colors.gif");
+ }
+
+ private void createTheme(final String theme) {
+ final ThemeAction action = new ThemeAction(theme);
+ final MenuItemDescriptor themeItem = new MenuItemDescriptor(menu, action);
+ selectItemInUI.add(new Listener<String>() {
+ public void onEvent(final String themeToSelect) {
+ if (theme.equals(themeToSelect)) {
+ menu.setText(i18n.t(theme));
+ // themeItem.setChecked(true);
+ }
+ }
+ });
+ view.addAction(themeItem);
+ }
+
+ private void setThemes(final InitDataDTO initData) {
+ view.addAction(menu);
+ for (final String theme : initData.getWsThemes()) {
+ createTheme(theme);
+ }
+ }
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeView.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/themes/WsThemeView.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -1,30 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 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 org.ourproject.kune.workspace.client.themes;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface WsThemeView extends View {
-
- void setThemes(String[] themes);
-
- void setVisible(boolean visible);
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tool/AbstractClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tool/AbstractClientTool.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tool/AbstractClientTool.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -20,12 +20,12 @@
package org.ourproject.kune.workspace.client.tool;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
public abstract class AbstractClientTool implements ClientTool {
public AbstractClientTool(final String shortName, final String longName, final ToolSelector toolSelector,
- final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws) {
+ final WsThemeManager wsThemePresenter, final WorkspaceSkeleton ws) {
final ToolSelectorItemPresenter presenter = new ToolSelectorItemPresenter(shortName, longName, toolSelector,
wsThemePresenter);
final ToolSelectorItemPanel panel = new ToolSelectorItemPanel(presenter, ws);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tool/FoldableAbstractClientTool.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.dto.BasicMimeTypeDTO;
import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
public abstract class FoldableAbstractClientTool extends AbstractClientTool {
public static final String UPLOADEDFILE_SUFFIX = "uploaded";
@@ -30,7 +30,7 @@
protected final ContentCapabilitiesRegistry contentCapabilitiesRegistry;
public FoldableAbstractClientTool(final String shortName, final String longName, final ToolSelector toolSelector,
- final WsThemePresenter wsThemePresenter, final WorkspaceSkeleton ws,
+ final WsThemeManager wsThemePresenter, final WorkspaceSkeleton ws,
final ContentCapabilitiesRegistry contentCapabilitiesRegistry) {
super(shortName, longName, toolSelector, wsThemePresenter, ws);
this.contentCapabilitiesRegistry = contentCapabilitiesRegistry;
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorItemPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorItemPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorItemPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -22,7 +22,7 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.workspace.client.themes.WsTheme;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import com.calclab.suco.client.events.Listener2;
@@ -30,12 +30,12 @@
private ToolSelectorItemView view;
private final ToolSelector toolSelector;
- private final WsThemePresenter wsThemePresenter;
+ private final WsThemeManager wsThemePresenter;
private final String shortName;
private final String longName;
public ToolSelectorItemPresenter(final String shortName, final String longName, final ToolSelector toolSelector,
- final WsThemePresenter wsThemePresenter) {
+ final WsThemeManager wsThemePresenter) {
this.shortName = shortName;
this.longName = longName;
this.toolSelector = toolSelector;
@@ -53,7 +53,7 @@
public void init(final ToolSelectorItemView view) {
this.view = view;
toolSelector.addTool(this);
- wsThemePresenter.onThemeChanged(new Listener2<WsTheme, WsTheme>() {
+ wsThemePresenter.addOnThemeChanged(new Listener2<WsTheme, WsTheme>() {
public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
setTheme(oldTheme, newTheme);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenter.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenter.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -25,7 +25,7 @@
import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
import org.ourproject.kune.platf.client.errors.UIException;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import com.allen_sauer.gwt.log.client.Log;
import com.calclab.suco.client.events.Listener;
@@ -35,7 +35,7 @@
private final HashMap<String, ToolSelectorItem> tools;
- public ToolSelectorPresenter(final StateManager stateManager, final WsThemePresenter wsThemePresenter) {
+ public ToolSelectorPresenter(final StateManager stateManager, final WsThemeManager wsThemePresenter) {
tools = new HashMap<String, ToolSelectorItem>();
stateManager.onStateChanged(new Listener<StateAbstractDTO>() {
public void onEvent(final StateAbstractDTO state) {
Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPresenterTest.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/entityheader/EntityLogoPresenterTest.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -8,7 +8,7 @@
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
public class EntityLogoPresenterTest {
@@ -21,7 +21,7 @@
public void before() {
stateManager = Mockito.mock(StateManager.class);
session = Mockito.mock(Session.class);
- WsThemePresenter theme = Mockito.mock(WsThemePresenter.class);
+ WsThemeManager theme = Mockito.mock(WsThemeManager.class);
entityLogoPresenter = new EntityHeaderPresenter(stateManager, theme, session);
view = Mockito.mock(EntityHeaderView.class);
entityLogoPresenter.init(view);
Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -11,7 +11,7 @@
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.search.SiteSearcher;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import com.calclab.suco.client.ioc.Provider;
@@ -25,12 +25,12 @@
public void before() {
final Session session = Mockito.mock(Session.class);
final StateManager stateManager = Mockito.mock(StateManager.class);
- final WsThemePresenter theme = Mockito.mock(WsThemePresenter.class);
+ final WsThemeManager theme = Mockito.mock(WsThemeManager.class);
final SiteSearcher searcher = Mockito.mock(SiteSearcher.class);
final Provider searcherProvider = Mockito.mock(Provider.class);
Mockito.when(searcherProvider.get()).thenReturn(searcher);
view = Mockito.mock(TagsSummaryView.class);
- tagsSummaryPresenter = new TagsSummaryPresenter(session, searcherProvider, stateManager, theme);
+ tagsSummaryPresenter = new TagsSummaryPresenter(session, searcherProvider, stateManager);
tagsSummaryPresenter.init(view);
}
Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java 2009-06-29 19:41:17 UTC (rev 1132)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/tool/ToolSelectorPresenterTest.java 2009-07-01 23:06:27 UTC (rev 1133)
@@ -4,7 +4,7 @@
import org.junit.Test;
import org.mockito.Mockito;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
+import org.ourproject.kune.workspace.client.themes.WsThemeManager;
import org.ourproject.kune.workspace.client.tool.ToolSelectorItem;
import org.ourproject.kune.workspace.client.tool.ToolSelectorPresenter;
@@ -50,7 +50,7 @@
@Before
public void begin() {
final StateManager stateManager = Mockito.mock(StateManager.class);
- final WsThemePresenter themePresenter = Mockito.mock(WsThemePresenter.class);
+ final WsThemeManager themePresenter = Mockito.mock(WsThemeManager.class);
toolSelector = new ToolSelectorPresenter(stateManager, themePresenter);
toolSelectorItem1 = Mockito.mock(ToolSelectorItem.class);
toolSelectorItem2 = Mockito.mock(ToolSelectorItem.class);
1
0