Author: vjrj_ Date: 2011-05-12 19:01:06 +0200 (Thu, 12 May 2011) New Revision: 1384 Added: tags/0.0.8/ tags/0.0.8/COPYRIGHT tags/0.0.8/img/webtemplate/web_template-public.svg tags/0.0.8/pom.xml tags/0.0.8/src/main/java/cc/kune/Kune.gwt.xml tags/0.0.8/src/main/java/cc/kune/common/client/notify/ConfirmAskEvent.java tags/0.0.8/src/main/java/cc/kune/common/client/notify/NotifyUser.java tags/0.0.8/src/main/java/cc/kune/common/client/ui/IconLabel.java tags/0.0.8/src/main/java/cc/kune/core/client/init/AppStarterDefault.java tags/0.0.8/src/main/java/cc/kune/core/client/init/NavigatorSupport.java tags/0.0.8/src/main/java/cc/kune/core/client/init/PrefetchUtilities.java tags/0.0.8/src/main/java/cc/kune/core/client/notify/confirm/UserConfirmPanel.java tags/0.0.8/src/main/java/cc/kune/core/public/about.html tags/0.0.8/src/main/java/cc/kune/core/public/ws.css tags/0.0.8/src/main/java/cc/kune/core/server/state/StateServiceDefault.java tags/0.0.8/src/main/java/cc/kune/gspace/client/licensewizard/LicenseChangeAction.java tags/0.0.8/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java tags/0.0.8/src/main/java/cc/kune/gspace/client/options/license/EntityOptionsDefLicensePanel.java tags/0.0.8/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorItemPanel.java tags/0.0.8/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePresenter.java tags/0.0.8/src/main/java/cc/kune/gspace/client/ui/footer/license/LicenseChangedEvent.java tags/0.0.8/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java tags/0.0.8/src/main/java/cc/kune/msgs/client/UserMessage.java tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.java tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.ui.xml tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePanel.java tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePanel.ui.xml tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePresenter.java tags/0.0.8/src/main/java/cc/kune/pspace/client/back-ps.jpg tags/0.0.8/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java tags/0.0.8/src/test/java/cc/kune/core/server/manager/file/ImageUtilsDefaultTest.java Removed: tags/0.0.8/COPYRIGHT tags/0.0.8/pom.xml tags/0.0.8/src/main/java/cc/kune/Kune.gwt.xml tags/0.0.8/src/main/java/cc/kune/common/client/notify/ConfirmAskEvent.java tags/0.0.8/src/main/java/cc/kune/common/client/notify/NotifyUser.java tags/0.0.8/src/main/java/cc/kune/common/client/ui/IconLabel.java tags/0.0.8/src/main/java/cc/kune/core/client/init/AppStarterDefault.java tags/0.0.8/src/main/java/cc/kune/core/client/init/PrefetchUtilities.java tags/0.0.8/src/main/java/cc/kune/core/client/notify/confirm/UserConfirmPanel.java tags/0.0.8/src/main/java/cc/kune/core/public/about.html tags/0.0.8/src/main/java/cc/kune/core/public/ws.css tags/0.0.8/src/main/java/cc/kune/core/server/state/StateServiceDefault.java tags/0.0.8/src/main/java/cc/kune/gspace/client/licensewizard/LicenseChangeAction.java tags/0.0.8/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java tags/0.0.8/src/main/java/cc/kune/gspace/client/options/license/EntityOptionsDefLicensePanel.java tags/0.0.8/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorItemPanel.java tags/0.0.8/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePresenter.java tags/0.0.8/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java tags/0.0.8/src/main/java/cc/kune/msgs/client/UserMessage.java tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePanel.java tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePanel.ui.xml tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePresenter.java tags/0.0.8/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java tags/0.0.8/src/test/java/cc/kune/core/server/manager/file/ImageUtilsDefaultTest.java Log: tagging Copied: tags/0.0.8 (from rev 1377, trunk) Deleted: tags/0.0.8/COPYRIGHT =================================================================== --- trunk/COPYRIGHT 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/COPYRIGHT 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,179 +0,0 @@ -LICENSES --------------------------------------------------------------------------------- - -All programs are either under the AGPL, GPL, LGPL, Artistic or BSD licenses, see -below for details. - -On Debian systems, the complete text of these licenses can be found in: - -/usr/share/common-licenses/AGPL -/usr/share/common-licenses/GPL-3 -/usr/share/common-licenses/Artistic -/usr/share/common-licenses/BSD -/usr/share/common-licenses/LGPL - -When in doubt, check the individual file, they should all have license -headings and other identifying marks. - -kune software --------------------------------------------------------------------------------- - -Copyright - -(c) 2007-2011 The kune development team (see CREDITS for details) - -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/>. - -See COPYRIGHT-AGPLv3 for a complete text. - -other stuff (libraries, etc) --------------------------------------------------------------------------------- - -#wave / wave in a box# - -* http://www.waveprotocol.org -* http://www.apache.org/licenses/LICENSE-2.0 -* http://www.waveprotocol.org/patent-license - -#emite libray# - -http://emite.googlecode.com - -Copyright: under GNU Lesser General Public License -http://www.gnu.org/licenses/lgpl.html - -#fonts-min.css and reset.css# - -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt - -#ext-gwt gxt library# - -http://www.sencha.com/products/extgwt/ - -Copyright: under GNU General Public License -http://www.gnu.org/copyleft/gpl.html - -#gwt-ext (use deprecated) library# - -http://code.google.com/p/gwt-ext/ - -Copyright under GNU Lesser General Public License -http://www.gnu.org/licenses/lgpl.html - -#google-gin library# - -https://code.google.com/p/google-gin/ - -Copyright under Apache License 2.0 -http://www.apache.org/licenses/LICENSE-2.0 - -#gwt-platform library# - -https://code.google.com/p/gwt-platform/ - -Copyright under Apache License 2.0 -http://www.apache.org/licenses/LICENSE-2.0 - -#dom region library# - -XWiki Platform http://www.xwiki.org/ - -Copyright under GNU Lesser General Public License -http://www.gnu.org/licenses/lgpl.html - -#cortado applet# - -A video player java applet (Ogg Theora, Ogg Vorbis) -http://www.flumotion.net/cortado/ -Copyright: (C) 2004 Fluendo S.L under GNU General Public License - -#video embed dialog# - -Some ideas and embedded video code from - * http://www.jovelstefan.de/embedded-video/ (GPL) - * http://www.daburna.de/blog/2006/12/13/wordpress-video-plugin/ - -#some license descriptions# - -from Wikipedia (English) http://en.wikipedia.org/ -Copyright under GFDL http://www.gnu.org/copyleft/fdl.html - -#some Action classes# - -from GNU Classpath -Copyright under GNU General Public License -http://www.gnu.org/licenses/gpl.html - -kune documentation --------------------------------------------------------------------------------- - -Copyright - -(c) The kune development team (see CREDITS an individual docs for details) -This work is licensed under the Creative Commons Attribution-Share Alike 3.0 -License. To view a copy of this license, visit -http://creativecommons.org/licenses/by-sa/3.0/ -or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San -Francisco, California, 94105, USA. - -kune graphics --------------------------------------------------------------------------------- - -Copyright - -(c) Vicente J. Ruiz Jurado <[email protected]> -This work is licensed under the Creative Commons Attribution-Share Alike 3.0 -License. To view a copy of this license, visit -http://creativecommons.org/licenses/by-sa/3.0/ -or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San -Francisco, California, 94105, USA. - -other icons --------------------------------------------------------------------------------- - -#some from Tango# - -http://tango.freedesktop.org/ - -Creative Commons Attribution-ShareAlike 2.5 License Agreement -http://creativecommons.org/licenses/by-sa/2.5/ - -#others from famfamfam# - -http://www.famfamfam.com/lab/icons/silk/ - -Creative Commons Attribution 2.5 License Agreement -http://creativecommons.org/licenses/by/2.5/ - -#some xmpp icons from pidgin# - -Purple/Pidgin/Finch is the legal property of its developers. -Copyright (C) 1998-2007 under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of -the License, or (at your option) any later version. - -#emoticons from Adium and Kopete theme# - -kopete adium theme by robotangel and original "Adiumicons" by Oscar Gruno -under GNU GPL license -http://www.gnu.org/copyleft/gpl.html - -#and other icons from openoffice.org-style-human debian package# - -Copyright 2002-2007 Sun Microsystems, Inc. -This product is made available subject to the terms of GNU Lesser General -Public License Version 2.1. A copy of the LGPL license can be found -http://www.openoffice.org/project/www/license.html Copied: tags/0.0.8/COPYRIGHT (from rev 1383, trunk/COPYRIGHT) =================================================================== --- tags/0.0.8/COPYRIGHT (rev 0) +++ tags/0.0.8/COPYRIGHT 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,188 @@ +LICENSES +-------------------------------------------------------------------------------- + +All programs are either under the AGPL, GPL, LGPL, Artistic or BSD licenses, see +below for details. + +On Debian systems, the complete text of these licenses can be found in: + +/usr/share/common-licenses/AGPL +/usr/share/common-licenses/GPL-3 +/usr/share/common-licenses/Artistic +/usr/share/common-licenses/BSD +/usr/share/common-licenses/LGPL + +When in doubt, check the individual file, they should all have license +headings and other identifying marks. + +kune software +-------------------------------------------------------------------------------- + +Copyright + +(c) 2007-2011 The kune development team (see CREDITS for details) + +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/>. + +See COPYRIGHT-AGPLv3 for a complete text. + +other stuff (libraries, etc) +-------------------------------------------------------------------------------- + +#wave / wave in a box# + +* http://www.waveprotocol.org +* http://www.apache.org/licenses/LICENSE-2.0 +* http://www.waveprotocol.org/patent-license + +#emite libray# + +http://emite.googlecode.com + +Copyright: under GNU Lesser General Public License +http://www.gnu.org/licenses/lgpl.html + +#fonts-min.css and reset.css# + +Copyright (c) 2007, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt + +#ext-gwt gxt library# + +http://www.sencha.com/products/extgwt/ + +Copyright: under GNU General Public License +http://www.gnu.org/copyleft/gpl.html + +#gwt-ext (use deprecated) library# + +http://code.google.com/p/gwt-ext/ + +Copyright under GNU Lesser General Public License +http://www.gnu.org/licenses/lgpl.html + +#google-gin library# + +https://code.google.com/p/google-gin/ + +Copyright under Apache License 2.0 +http://www.apache.org/licenses/LICENSE-2.0 + +#gwt-platform library# + +https://code.google.com/p/gwt-platform/ + +Copyright under Apache License 2.0 +http://www.apache.org/licenses/LICENSE-2.0 + +#dom region library# + +XWiki Platform http://www.xwiki.org/ + +Copyright under GNU Lesser General Public License +http://www.gnu.org/licenses/lgpl.html + +#cortado applet# + +A video player java applet (Ogg Theora, Ogg Vorbis) +http://www.flumotion.net/cortado/ +Copyright: (C) 2004 Fluendo S.L under GNU General Public License + +#video embed dialog# + +Some ideas and embedded video code from + * http://www.jovelstefan.de/embedded-video/ (GPL) + * http://www.daburna.de/blog/2006/12/13/wordpress-video-plugin/ + +#some license descriptions# + +from Wikipedia (English) http://en.wikipedia.org/ +Copyright under GFDL http://www.gnu.org/copyleft/fdl.html + +#some Action classes# + +from GNU Classpath +Copyright under GNU General Public License +http://www.gnu.org/licenses/gpl.html + +kune documentation +-------------------------------------------------------------------------------- + +Copyright + +(c) The kune development team (see CREDITS an individual docs for details) +This work is licensed under the Creative Commons Attribution-Share Alike 3.0 +License. To view a copy of this license, visit +http://creativecommons.org/licenses/by-sa/3.0/ +or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San +Francisco, California, 94105, USA. + +kune graphics +-------------------------------------------------------------------------------- + +Copyright + +(c) Vicente J. Ruiz Jurado <[email protected]> +This work is licensed under the Creative Commons Attribution-Share Alike 3.0 +License. To view a copy of this license, visit +http://creativecommons.org/licenses/by-sa/3.0/ +or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San +Francisco, California, 94105, USA. + +other icons +-------------------------------------------------------------------------------- + +#some from Tango# + +http://tango.freedesktop.org/ + +Creative Commons Attribution-ShareAlike 2.5 License Agreement +http://creativecommons.org/licenses/by-sa/2.5/ + +#others from famfamfam# + +http://www.famfamfam.com/lab/icons/silk/ + +Creative Commons Attribution 2.5 License Agreement +http://creativecommons.org/licenses/by/2.5/ + +#some xmpp icons from pidgin# + +Purple/Pidgin/Finch is the legal property of its developers. +Copyright (C) 1998-2007 under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of +the License, or (at your option) any later version. + +#emoticons from Adium and Kopete theme# + +kopete adium theme by robotangel and original "Adiumicons" by Oscar Gruno +under GNU GPL license +http://www.gnu.org/copyleft/gpl.html + +#and other icons from openoffice.org-style-human debian package# + +Copyright 2002-2007 Sun Microsystems, Inc. +This product is made available subject to the terms of GNU Lesser General +Public License Version 2.1. A copy of the LGPL license can be found +http://www.openoffice.org/project/www/license.html + +#Default background of Public Space# + +Jean-Pol GRANDMONT +http://creativecommons.org/licenses/by/3.0/deed.en +Creative Commons Attribution 3.0 Unported license +https://secure.wikimedia.org/wikipedia/commons/wiki/File:Acer_japonicum_Viti... + + Copied: tags/0.0.8/img/webtemplate/web_template-public.svg (from rev 1383, trunk/img/webtemplate/web_template-public.svg) =================================================================== --- tags/0.0.8/img/webtemplate/web_template-public.svg (rev 0) +++ tags/0.0.8/img/webtemplate/web_template-public.svg 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,2605 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="1488.189" + height="1052.3622" + id="svg2" + version="1.1" + inkscape:version="0.48.1 r9760" + sodipodi:docname="web_template-public.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.90372737" + inkscape:cx="695.40723" + inkscape:cy="517.32886" + inkscape:document-units="px" + inkscape:current-layer="layer2" + showgrid="false" + inkscape:window-width="1080" + inkscape:window-height="1847" + inkscape:window-x="0" + inkscape:window-y="21" + inkscape:window-maximized="1" + inkscape:showpageshadow="false" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Capa 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,2.2302535e-5)" + style="display:inline" + sodipodi:insensitive="true"> + <g + id="g11803" + transform="translate(215.74053,-33.748578)"> + <path + style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + d="m 17.751956,286.64789 c 341.308214,0 682.616434,0 1023.924644,0 10.9858,23.75843 2.5303,52.05808 5,77.95526 0,190.44348 0,380.88696 0,571.33044 -23.7584,10.98576 -52.05805,2.53029 -77.95522,5 -316.98981,0 -633.97962,0 -950.969424,0 -10.9857498,-23.75846 -2.530294,-52.05808 -5,-77.95526 0,-190.44348 0,-380.88696 0,-571.33044 0.473798,-3.10628 2.158957,-4.26631 5,-5 z" + id="rect5254" + inkscape:connector-curvature="0" /> + <g + id="g5439" + style="display:inline" + transform="translate(11.714352,176.26704)"> + <path + style="fill:#000000;stroke:none" + d="m 1.9999,2.03929 c -4.3621349,12.763662 12.118339,-3.1645283 0,0 z" + id="path11164" + inkscape:connector-curvature="0" /> + <path + style="fill:#7579ba;stroke:none" + d="M 4.9809,3.03295 C 342.78074,3.4793547 680.64943,2.2187321 1018.4574,3.6445255 905.27866,-0.13842909 791.5739,3.0764202 678.18931,2.0327939 468.34598,1.2551079 258.41651,3.8118757 48.628142,0.53501515 34.061461,-0.14117968 19.28711,-0.1874434 4.9809,3.03295 z" + id="path11166" + inkscape:connector-curvature="0" /> + <path + style="fill:#000000;stroke:none" + d="m 1020.5027,2.03929 c 3.0209,13.68332 9.6336,-4.2062044 0,0 z" + id="path11168" + inkscape:connector-curvature="0" /> + <path + style="fill:#a0d4a1;stroke:none" + d="m 6.9682,3.03295 c 260.70607,2.0641042 521.49094,0.5092853 782.23162,0.99366 77.10096,0 154.20192,0 231.30288,0 C 682.67548,1.9425495 344.80745,3.5112853 6.9682,3.03295 z" + id="path11170" + inkscape:connector-curvature="0" /> + <path + style="fill:#8fcc8f;stroke:none" + d="m 3.9872,4.02661 c 260.70607,2.064125 521.49094,0.5092904 782.23162,0.99367 79.08829,0 158.17659,0 237.26488,0 C 683.66645,2.9383184 343.81531,4.5041387 3.9872,4.02661 z" + id="path11172" + inkscape:connector-curvature="0" /> + <path + style="fill:#7579ba;stroke:none" + d="M 2.9936,5.02028 C 0.82589068,267.33824 2.4828131,529.67344 1.9999,792 c 341.15703,0 682.31407,0 1023.4711,0 -0.3838,-259.89309 0.7743,-519.78921 -0.5918,-779.680053 0.1894,147.529353 -0.9152,295.283303 -0.4347,442.920523 0.046,111.92197 0.1374,223.84397 0.033,335.76593 -340.4946,0 -680.9892,0 -1021.4838,0 -2e-4,-261.99527 4e-4,-523.99135 -3e-4,-785.98612 z" + id="path11174" + inkscape:connector-curvature="0" /> + <path + style="fill:#7ac37b;stroke:none" + d="m 3.9872,5.02028 c 260.70607,2.0641042 521.49094,0.5092853 782.23162,0.99366 79.08829,0 158.17659,0 237.26488,0 C 683.66645,3.9319993 343.81531,5.4978039 3.9872,5.02028 z" + id="path11176" + inkscape:connector-curvature="0" /> + <path + style="fill:#67ba68;stroke:none" + d="M 2.9936,7.0076 C 263.70138,8.793452 524.48408,6.9603317 785.22478,7.1664343 834.83458,7.1134895 884.44439,7.0605448 934.0542,7.0076 627.88063,3.9467289 321.54043,8.2248862 15.436977,4.7194199 L 9.1850744,5.6027723 2.9936,7.0076 z" + id="path11178" + inkscape:connector-curvature="0" /> + <path + style="fill:#5f9860;stroke:none" + d="m 934.0542,6.01394 c 19.93613,3.2754484 102.313,3.0637088 84.9366,1.2627525 C 990.7715,4.0638897 962.35133,7.06519 934.0542,6.01394 z" + id="path11180" + inkscape:connector-curvature="0" /> + <path + style="fill:#48607f;stroke:none" + d="m 10.9429,8.99491 c 6.21874,13.295427 10.504516,-3.9637485 0,0 z" + id="path11182" + inkscape:connector-curvature="0" /> + <path + style="fill:#58b359;stroke:none" + d="m 16.9048,7.0076 c 23.351953,4.811752 48.319819,-0.9310857 72.520003,0.99365 281.211897,0 562.423797,0 843.635697,0 C 627.69273,5.8813916 322.2849,7.496296 16.9048,7.0076 z" + id="path11184" + inkscape:connector-curvature="0" /> + <path + style="fill:#48ac49;stroke:none" + d="M 933.0605,7.0076 C 859.68753,10.948237 786.03648,6.3403834 712.51737,8.0278898 482.97345,8.0517576 253.42933,7.7929655 23.885598,8.1977509 180.97087,10.488016 339.37124,7.2995279 495.63585,10.248537 640.69844,6.1665946 786.41518,12.194414 931.60855,7.1237552 L 933.0605,7.0076 z" + id="path11186" + inkscape:connector-curvature="0" /> + <path + style="fill:#77c177;stroke:none" + d="m 934.0542,7.0076 c 24.22033,5.799151 31.50844,-2.6204738 0,0 z" + id="path11188" + inkscape:connector-curvature="0" /> + <path + style="fill:#95cf96;stroke:none" + d="m 935.0478,7.0076 c 19.18621,2.3631736 22.79905,-0.1753876 0,0 z" + id="path11190" + inkscape:connector-curvature="0" /> + <path + style="fill:#77c177;stroke:none" + d="m 961.8767,7.0076 c 11.2856,4.78648 36.73095,1.4874437 9.6142,-0.6047836 L 961.8767,7.0076 z" + id="path11192" + inkscape:connector-curvature="0" /> + <path + style="fill:#94ce95;stroke:none" + d="m 962.8704,7.0076 c 18.50265,2.363698 23.44447,-0.162661 0.40913,0.017047 L 962.8704,7.0076 z" + id="path11194" + inkscape:connector-curvature="0" /> + <path + style="fill:#77c177;stroke:none" + d="m 993.6739,7.0076 c 24.2193,5.799116 31.5085,-2.6206035 0,0 z" + id="path11196" + inkscape:connector-curvature="0" /> + <path + style="fill:#94ce95;stroke:none" + d="m 994.6675,7.0076 c 19.1862,2.3631734 22.799,-0.1753875 0,0 z" + id="path11198" + inkscape:connector-curvature="0" /> + <path + style="fill:#0c720d;stroke:none" + d="m 1019.509,7.0076 c -25.27137,19.136886 -59.9208,1.9436593 -87.93489,6.95562 -136.62977,0 -273.25954,0 -409.88931,0 61.32148,4.038706 123.43836,1.067556 185.1214,1.98733 75.4181,0 150.8362,0 226.2543,0 20.64379,10.600471 48.3232,1.964335 72.1322,5.488589 13.111,2.878225 30.8842,-0.755535 14.3163,-14.431539 z" + id="path11200" + inkscape:connector-curvature="0" /> + <path + style="fill:#3aa63c;stroke:none" + d="m 2.9936,8.00125 c 2.1080073,10.150873 15.752581,-4.1178499 0,0 z" + id="path11202" + inkscape:connector-curvature="0" /> + <path + style="fill:#3497d1;stroke:none" + d="m 14.9175,8.00125 c -5.3928154,11.843806 7.652134,-0.8505191 0,0 z" + id="path11204" + inkscape:connector-curvature="0" /> + <path + style="fill:#da6a15;stroke:none" + d="m 9.9492,8.99491 c 2.725449,20.12761 17.596542,3.382206 0,0 z" + id="path11206" + inkscape:connector-curvature="0" /> + <path + style="fill:#eec030;stroke:none" + d="m 18.8922,8.99491 c -2.219166,17.270229 8.671258,4.928721 0,0 z" + id="path11208" + inkscape:connector-curvature="0" /> + <path + style="fill:#31a233;stroke:none" + d="m 21.8731,8.99491 c 129.01646,3.854765 258.22,1.192854 387.32527,1.98733 47.04281,0.709924 -2.67127,-3.6043742 -26.09541,-1.98733 -120.40995,0 -240.81991,0 -361.22986,0 z" + id="path11210" + inkscape:connector-curvature="0" /> + <path + style="fill:#ebf6eb;stroke:none" + d="m 435.2362,8.99491 c -0.35276,12.587431 15.98185,-2.9943335 0,0 z" + id="path11212" + inkscape:connector-curvature="0" /> + <path + style="fill:#c2e0c2;stroke:none" + d="m 443.1855,8.99491 c 0.12968,2.688886 0.12968,2.688886 0,0 z" + id="path11214" + inkscape:connector-curvature="0" /> + <path + style="fill:#31a233;stroke:none" + d="m 444.1792,8.99491 c 2.81261,17.544294 23.02055,-8.86583863 0,0 z" + id="path11216" + inkscape:connector-curvature="0" /> + <path + style="fill:#d8edd8;stroke:none" + d="m 459.7469,9.32611 c 0.2206,0.11042 0.2206,0.11042 0,0 z" + id="path11218" + inkscape:connector-curvature="0" /> + <path + style="fill:#0d800f;stroke:none" + d="m 461.0714,8.99491 c -16.21545,13.395135 -54.85392,5.827493 -81.19953,7.9493 -119.00169,0 -238.00338,0 -357.00507,0 260.70607,2.064104 521.49094,0.509285 782.23162,0.99366 42.65403,0 85.30805,0 127.96208,0 C 865.74238,13.429291 797.49223,17.171207 729.79591,15.953165 652.61248,15.750593 575.08238,16.460677 498.13331,15.437679 488.15805,10.332491 463.98749,19.691848 461.0714,8.99491 z" + id="path11220" + inkscape:connector-curvature="0" /> + <path + style="fill:#d2ebd3;stroke:none" + d="m 464.0524,8.99491 0.38905,8.066657 -0.38905,-8.066657 z m 3.9746,0 0.38905,8.066657 L 468.027,8.99491 z" + id="path11222" + inkscape:connector-curvature="0" /> + <path + style="fill:#31a233;stroke:none" + d="m 469.0207,11.9759 c 15.28349,6.684729 16.24025,-10.7451441 0,0 z" + id="path11224" + inkscape:connector-curvature="0" /> + <path + style="fill:#d8edd8;stroke:none" + d="m 489.5567,9.32611 c 0.2206,0.11042 0.2206,0.11042 0,0 z" + id="path11226" + inkscape:connector-curvature="0" /> + <path + style="fill:#31a233;stroke:none" + d="m 490.8813,8.99491 c 7.96394,13.4448 20.03458,-8.17499788 0,0 z m 15.8985,0.99366 c 35.51921,5.223908 73.42338,-1.0717239 109.9329,1.044816 105.44912,-0.301714 210.89858,0.139367 316.3478,-0.05115 C 866.48547,6.4893587 798.97508,10.47474 732.02152,8.9541675 656.9402,8.786613 581.85297,8.6988282 506.7798,9.98857 z" + id="path11228" + inkscape:connector-curvature="0" /> + <path + style="fill:#1f9a21;stroke:none" + d="M 933.0605,8.99491 C 806.15587,13.835463 678.93242,9.2920783 551.90228,11.192524 526.46744,8.0157188 516.85577,17.674201 547.71424,14.456349 685.05431,13.489817 822.50629,13.68141 959.8894,12.96956 955.61184,4.3459559 940.51127,12.305044 933.0605,8.99491 z" + id="path11230" + inkscape:connector-curvature="0" /> + <path + style="fill:#57b358;stroke:none" + d="m 934.0542,8.99491 c 19.52854,2.400021 27.00785,0.017491 0,0 z" + id="path11232" + inkscape:connector-curvature="0" /> + <path + style="fill:#588858;stroke:none" + d="m 961.8767,8.99491 c 14.07968,7.865636 26.06509,8.890317 10.30349,8.008122 C 971.23404,15.24918 966.79663,3.9452773 961.8767,8.99491 z" + id="path11234" + inkscape:connector-curvature="0" /> + <path + style="fill:#1e9920;stroke:none" + d="m 980.7563,9.98857 c 16.34729,13.587007 35.6927,-5.1881093 0,0 z" + id="path11236" + inkscape:connector-curvature="0" /> + <path + style="fill:#57b358;stroke:none" + d="m 993.6739,8.99491 c 19.527,2.400006 27.0102,0.017723 0,0 z" + id="path11238" + inkscape:connector-curvature="0" /> + <path + style="fill:#2071ab;stroke:none" + d="m 17.8985,9.98857 c -8.221473,12.663047 6.431008,-0.7958551 0,0 z" + id="path11240" + inkscape:connector-curvature="0" /> + <path + style="fill:#88c989;stroke:none" + d="m 459.7469,10.31977 c 0.2206,0.110427 0.2206,0.110427 0,0 z" + id="path11242" + inkscape:connector-curvature="0" /> + <path + style="fill:#9cd29d;stroke:none" + d="m 483.9256,9.98857 c -0.16871,4.489364 7.28538,-2.0619149 0,0 z" + id="path11244" + inkscape:connector-curvature="0" /> + <path + style="fill:#88c989;stroke:none" + d="m 489.5567,10.31977 c 0.2206,0.110427 0.2206,0.110427 0,0 z" + id="path11246" + inkscape:connector-curvature="0" /> + <path + style="fill:#289e29;stroke:none" + d="m 961.8767,9.98857 c -0.71446,10.63982 17.87039,-5.3849442 0,0 z" + id="path11248" + inkscape:connector-curvature="0" /> + <path + style="fill:#eaf5ea;stroke:none" + d="m 969.826,9.98857 c -2.30864,22.937454 23.96464,-6.4377382 0,0 z" + id="path11250" + inkscape:connector-curvature="0" /> + <path + style="fill:#37a539;stroke:none" + d="m 993.6739,9.98857 c 27.8571,9.829099 31.5716,-3.0151342 0,0 z" + id="path11252" + inkscape:connector-curvature="0" /> + <path + style="fill:#0f9111;stroke:none" + d="m 2.9936,10.98224 c 5.6458954,23.297485 44.491275,5.923218 65.175512,10.93028 288.628358,0 577.256728,0 865.885088,0 C 658.61915,19.868961 383.09655,21.24074 107.6261,21.063475 72.780902,16.864035 34.014641,32.289174 2.9936,10.98224 z" + id="path11254" + inkscape:connector-curvature="0" /> + <path + style="fill:#90995f;stroke:none" + d="m 19.8858,10.98224 c -2.160346,3.933966 3.718838,3.669696 0,0 z" + id="path11256" + inkscape:connector-curvature="0" /> + <path + style="fill:#1f9a21;stroke:none" + d="m 22.8668,10.98224 c 61.321486,4.038686 123.43836,1.06755 185.1214,1.98732 75.74933,0 151.49867,0 227.248,0 -61.32149,-4.0386859 -123.43836,-1.06755 -185.1214,-1.98732 -75.74933,0 -151.498667,0 -227.248,0 z" + id="path11258" + inkscape:connector-curvature="0" /> + <path + style="fill:#cee4cf;stroke:none" + d="m 460.0778,10.98224 c 0.13083,1.7906 0.13083,1.7906 0,0 z" + id="path11260" + inkscape:connector-curvature="0" /> + <path + style="fill:#f4faf4;stroke:none" + d="m 471.008,10.98224 c 1.07688,1.691276 1.07688,1.691276 0,0 z" + id="path11262" + inkscape:connector-curvature="0" /> + <path + style="fill:#cee4cf;stroke:none" + d="m 489.8876,10.98224 c 0.13085,1.790605 0.13085,1.790605 0,0 z" + id="path11264" + inkscape:connector-curvature="0" /> + <path + style="fill:#bbe0bb;stroke:none" + d="m 493.8622,10.98224 c 0.46682,6.374145 6.32583,-3.7082989 0,0 z" + id="path11266" + inkscape:connector-curvature="0" /> + <path + style="fill:#6abb6b;stroke:none" + d="m 496.8432,10.98224 c -5.57071,8.715699 6.96175,0.271602 0,0 z" + id="path11268" + inkscape:connector-curvature="0" /> + <path + style="fill:#fcfefc;stroke:none" + d="m 502.8052,16.94421 c 0.2411,-4.680457 -5.56137,-5.020407 0,0 z" + id="path11270" + inkscape:connector-curvature="0" /> + <path + style="fill:#e7f1e7;stroke:none" + d="m 516.7164,10.98224 c -3.83724,12.496081 13.7696,-2.0900298 0,0 z" + id="path11272" + inkscape:connector-curvature="0" /> + <path + style="fill:#3a8d3b;stroke:none" + d="m 441.1982,11.9759 c 0.17123,1.693017 0.17123,1.693017 0,0 z" + id="path11274" + inkscape:connector-curvature="0" /> + <path + style="fill:#99d19a;stroke:none" + d="m 457.0968,11.9759 c 0.3312,0.33122 0.3312,0.33122 0,0 z" + id="path11276" + inkscape:connector-curvature="0" /> + <path + style="fill:#a4d1a5;stroke:none" + d="m 471.3389,12.63838 c 0.11063,0.220787 0.11063,0.220787 0,0 z" + id="path11278" + inkscape:connector-curvature="0" /> + <path + style="fill:#5cb55d;stroke:none" + d="m 472.6645,12.30709 c 0.22057,0.11043 0.22057,0.11043 0,0 z" + id="path11280" + inkscape:connector-curvature="0" /> + <path + style="fill:#73b074;stroke:none" + d="m 475.9763,11.9759 c 0.17123,1.693017 0.17123,1.693017 0,0 z" + id="path11282" + inkscape:connector-curvature="0" /> + <path + style="fill:#96cf97;stroke:none" + d="m 500.487,12.30709 c 0.2206,0.11043 0.2206,0.11043 0,0 z" + id="path11284" + inkscape:connector-curvature="0" /> + <path + style="fill:#0e7810;stroke:none" + d="m 515.7228,11.9759 c 0.1789,1.371848 0.1789,1.371848 0,0 z" + id="path11286" + inkscape:connector-curvature="0" /> + <path + style="fill:#578558;stroke:none" + d="m 942.0035,11.9759 c 3.29763,18.181273 22.77675,-9.0046206 0,0 z" + id="path11288" + inkscape:connector-curvature="0" /> + <path + style="fill:#e7f2e7;stroke:none" + d="m 1002.6168,11.9759 c 0.6099,14.12054 19.2369,-3.9905477 0,0 z" + id="path11290" + inkscape:connector-curvature="0" /> + <path + style="fill:#0d7b0e;stroke:none" + d="m 22.8668,12.96956 c 137.09072,1.958363 274.25171,0.572133 411.3758,0.99366 -61.32148,4.038706 -123.43836,1.067556 -185.1214,1.98733 -75.41813,0 -150.836267,0 -226.2544,0 137.42191,1.958262 274.91412,0.572206 412.3694,0.99366 -22.10052,-9.2644081 -48.81258,-1.632539 -72.99518,-3.97465 -113.12474,0 -226.24948,0 -339.37422,0 z" + id="path11292" + inkscape:connector-curvature="0" /> + <path + style="fill:#81b682;stroke:none" + d="m 445.5037,13.63204 c 0.11063,0.220787 0.11063,0.220787 0,0 z" + id="path11294" + inkscape:connector-curvature="0" /> + <path + style="fill:#84b885;stroke:none" + d="m 447.491,13.63204 c 0.11063,0.220787 0.11063,0.220787 0,0 z" + id="path11296" + inkscape:connector-curvature="0" /> + <path + style="fill:#217e22;stroke:none" + d="m 448.1538,12.96956 c -1.50423,6.300159 6.30014,-1.504183 0,0 z" + id="path11298" + inkscape:connector-curvature="0" /> + <path + style="fill:#92c893;stroke:none" + d="m 483.9256,12.96956 c -0.1687,4.489351 7.28537,-2.061935 0,0 z" + id="path11300" + inkscape:connector-curvature="0" /> + <path + style="fill:#81b682;stroke:none" + d="m 509.098,13.63204 c 0.11063,0.220787 0.11063,0.220787 0,0 z" + id="path11302" + inkscape:connector-curvature="0" /> + <path + style="fill:#84b885;stroke:none" + d="m 511.0854,13.63204 c 0.11063,0.220787 0.11063,0.220787 0,0 z" + id="path11304" + inkscape:connector-curvature="0" /> + <path + style="fill:#217f22;stroke:none" + d="m 511.7481,12.96956 c -1.50417,6.300282 6.30034,-1.504317 0,0 z" + id="path11306" + inkscape:connector-curvature="0" /> + <path + style="fill:#e7f1e7;stroke:none" + d="m 942.9971,12.96956 c 2.00008,11.335424 18.22728,-6.3540992 0,0 z" + id="path11308" + inkscape:connector-curvature="0" /> + <path + style="fill:#578558;stroke:none" + d="m 970.8197,12.96956 c 2.09674,11.483066 14.60735,-4.3565124 0,0 z" + id="path11310" + inkscape:connector-curvature="0" /> + <path + style="fill:#827948;stroke:none" + d="m 19.2233,14.6257 c 0.110433,0.220793 0.110433,0.220793 0,0 z" + id="path11312" + inkscape:connector-curvature="0" /> + <path + style="fill:#0c760e;stroke:none" + d="m 22.8668,13.96322 c 61.321482,4.038706 123.43836,1.067556 185.1214,1.98733 75.41813,0 150.83627,0 226.2544,0 -61.32148,-4.038706 -123.43836,-1.067556 -185.1214,-1.98733 -75.41813,0 -150.836267,0 -226.2544,0 z" + id="path11314" + inkscape:connector-curvature="0" /> + <path + style="fill:#88ba88;stroke:none" + d="m 438.2172,13.96322 c 0.33123,0.33122 0.33123,0.33122 0,0 z" + id="path11316" + inkscape:connector-curvature="0" /> + <path + style="fill:#7cb57e;stroke:none" + d="m 470.3453,14.6257 c 0.1106,0.220793 0.1106,0.220793 0,0 z" + id="path11318" + inkscape:connector-curvature="0" /> + <path + style="fill:#97c498;stroke:none" + d="m 472.3326,14.6257 c 0.11063,0.220793 0.11063,0.220793 0,0 z" + id="path11320" + inkscape:connector-curvature="0" /> + <path + style="fill:#378e39;stroke:none" + d="m 473.3262,14.6257 c 0.11063,0.220793 0.11063,0.220793 0,0 z" + id="path11322" + inkscape:connector-curvature="0" /> + <path + style="fill:#0c760e;stroke:none" + d="m 971.8133,13.96322 c 1.35193,0.434849 1.35193,0.434849 0,0 z" + id="path11324" + inkscape:connector-curvature="0" /> + <path + style="fill:#578358;stroke:none" + d="m 1003.9384,14.6257 0.3378,0.66238 -0.3378,-0.66238 z m 5.9619,0 0.3379,0.66238 -0.3379,-0.66238 z" + id="path11326" + inkscape:connector-curvature="0" /> + <path + style="fill:#27203a;stroke:none" + d="m 14.9175,15.95055 c 1.013209,-0.17836 1.013209,-0.17836 0,0 z" + id="path11328" + inkscape:connector-curvature="0" /> + <path + style="fill:#0e840f;stroke:none" + d="m 21.8731,14.95688 c 21.327551,9.388173 48.217079,1.558322 72.001582,3.97465 279.728608,0 559.457208,0 839.185818,0 C 648.32971,16.827348 363.51083,18.341309 78.744482,18.046433 60.396061,15.807724 38.844135,22.553237 21.8731,14.95688 z" + id="path11330" + inkscape:connector-curvature="0" /> + <path + style="fill:#b2d3b2;stroke:none" + d="m 448.8166,15.28808 c 0.2206,0.110427 0.2206,0.110427 0,0 z" + id="path11332" + inkscape:connector-curvature="0" /> + <path + style="fill:#60a561;stroke:none" + d="m 455.1094,14.95688 c -0.16871,4.489364 7.28538,-2.061915 0,0 z" + id="path11334" + inkscape:connector-curvature="0" /> + <path + style="fill:#80b881;stroke:none" + d="m 501.8115,14.95688 c 0.91174,6.392104 4.27831,-2.484838 0,0 z" + id="path11336" + inkscape:connector-curvature="0" /> + <path + style="fill:#b2d4b2;stroke:none" + d="m 512.4109,15.28808 c 0.2206,0.110427 0.2206,0.110427 0,0 z" + id="path11338" + inkscape:connector-curvature="0" /> + <path + style="fill:#7eb77f;stroke:none" + d="m 518.7038,14.95688 c 0.3312,0.331223 0.3312,0.331223 0,0 z" + id="path11340" + inkscape:connector-curvature="0" /> + <path + style="fill:#82bb82;stroke:none" + d="m 515.7228,15.95055 0.9936,0.99366 -0.9936,-0.99366 0,0 z" + id="path11342" + inkscape:connector-curvature="0" /> + <path + style="fill:#86bd87;stroke:none" + d="m 517.7101,15.95055 0.9937,0.99366 -0.9937,-0.99366 0,0 z" + id="path11344" + inkscape:connector-curvature="0" /> + <path + style="fill:#76b477;stroke:none" + d="m 521.6848,15.95055 0.9936,0.99366 -0.9936,-0.99366 0,0 z" + id="path11346" + inkscape:connector-curvature="0" /> + <path + style="fill:#ab130d;stroke:none" + d="m 10.9429,17.93787 c 1.617188,0.643444 1.617188,0.643444 0,0 z" + id="path11348" + inkscape:connector-curvature="0" /> + <path + style="fill:#588858;stroke:none" + d="m 1002.6168,17.93787 c -0.1687,4.489355 7.2854,-2.061943 0,0 z m 5.962,0 c -0.1687,4.489355 7.2854,-2.061943 0,0 z" + id="path11350" + inkscape:connector-curvature="0" /> + <path + style="fill:#0e8c10;stroke:none" + d="m 16.9048,19.92519 c 260.70607,2.064104 521.49094,0.509285 782.23162,0.99366 44.64136,0 89.28272,0 133.92408,0 C 627.69186,18.803429 322.28539,20.418114 16.9048,19.92519 z" + id="path11352" + inkscape:connector-curvature="0" /> + <path + style="fill:#0e8810;stroke:none" + d="m 20.8795,18.93153 c 260.70607,2.064104 521.49094,0.509285 782.23162,0.99366 43.31646,0 86.63292,0 129.94938,0 C 629.0167,17.807921 324.93525,19.424314 20.8795,18.93153 z" + id="path11354" + inkscape:connector-curvature="0" /> + <path + style="fill:#644323;stroke:none" + d="m 12.9302,19.92519 c 0.994019,3.924526 10.344769,-2.090465 0,0 z" + id="path11356" + inkscape:connector-curvature="0" /> + <path + style="fill:#289e29;stroke:none" + d="m 934.0542,19.92519 c -23.37205,7.037738 -49.85697,1.136761 -74.60919,2.98099 -285.4838,0 -570.96761,0 -856.45141,0 260.70607,2.064104 521.49094,0.509285 782.23162,0.99366 79.75073,0 159.50145,0 239.25218,0 -29.5862,-4.931959 -60.3624,-2.303885 -90.4232,-3.97465 z" + id="path11358" + inkscape:connector-curvature="0" /> + <path + style="fill:#4fae50;stroke:none" + d="m 935.0478,20.91885 c 19.1862,2.363223 22.79906,-0.175394 0,0 z m 27.8226,0 c 19.18612,2.363226 22.79899,-0.175397 0,0 z m 31.7971,0 c 19.1862,2.363222 22.7991,-0.175393 0,0 z" + id="path11360" + inkscape:connector-curvature="0" /> + <path + style="fill:#179619;stroke:none" + d="m 2.9936,21.91252 c 260.70607,2.064104 521.49094,0.509285 782.23162,0.99366 49.94086,0 99.88172,0 149.82258,0 C 624.379,20.793689 313.67394,22.399957 2.9936,21.91252 z" + id="path11362" + inkscape:connector-curvature="0" /> + <path + style="fill:#38a539;stroke:none" + d="m 2.9936,23.89984 c 260.70608,2.064083 521.49094,0.50928 782.23162,0.99365 79.75073,0 159.50145,0 239.25218,0 C 683.99907,22.812358 343.48337,24.377682 2.9936,23.89984 z" + id="path11364" + inkscape:connector-curvature="0" /> + <path + style="fill:#48ac49;stroke:none" + d="m 2.9936,24.89349 c 260.70607,2.064104 521.49094,0.509285 782.23162,0.99366 79.75073,0 159.50145,0 239.25218,0 C 683.99907,23.805997 343.48337,25.371337 2.9936,24.89349 z" + id="path11366" + inkscape:connector-curvature="0" /> + <path + style="fill:#0e9210;stroke:none" + d="m 2.9936,25.88715 c 0,255.03975 0,510.0795 0,765.11925 340.4946,0 680.9892,0 1021.4838,0 0,-255.03975 0,-510.0795 0,-765.11925 -4.0389,61.321446 -1.0676,123.43836 -1.9874,185.1214 0,192.67018 0,385.34037 0,578.01055 -339.1697,0 -678.3394,0 -1017.5091,0 0,-254.37732 0,-508.75463 0,-763.13195 l -1.9873,0 0,0 z" + id="path11368" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 4.9809,25.88715 c 0,18.87957 0,37.75914 0,56.63871 339.1697,0 678.3394,0 1017.5091,0 0,-18.87957 0,-37.75914 0,-56.63871 -339.1697,0 -678.3394,0 -1017.5091,0 z" + id="path11370" + inkscape:connector-curvature="0" /> + <path + style="fill:#b2b2b2;stroke:none" + d="m 1008.5788,28.86814 c -22.15806,23.855218 26.6785,14.310219 0,0 z" + id="path11372" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 1007.5851,31.84912 c -15.05845,19.308024 24.6714,5.114744 0,0 z" + id="path11374" + inkscape:connector-curvature="0" /> + <path + style="fill:#0a0a0a;stroke:none" + d="m 18.8922,32.84279 c -5.300945,20.954412 9.41237,-3.01181 0,0 z" + id="path11376" + inkscape:connector-curvature="0" /> + <path + style="fill:#818181;stroke:none" + d="m 22.8668,32.84279 c 0.331233,0.33122 0.331233,0.33122 0,0 z" + id="path11378" + inkscape:connector-curvature="0" /> + <path + style="fill:#070707;stroke:none" + d="m 24.8541,32.84279 0.9937,0.99366 -0.9937,-0.99366 z m 2.981,0 0.389056,8.066652 L 27.8351,32.84279 z" + id="path11380" + inkscape:connector-curvature="0" /> + <path + style="fill:#0a0a0a;stroke:none" + d="m 57.6449,32.84279 c 2.383546,19.225083 13.506043,-0.852557 0,0 z" + id="path11382" + inkscape:connector-curvature="0" /> + <path + style="fill:#303030;stroke:none" + d="m 68.5752,32.84279 c 0.129685,2.688884 0.129685,2.688884 0,0 z" + id="path11384" + inkscape:connector-curvature="0" /> + <path + style="fill:#070707;stroke:none" + d="m 71.5562,32.84279 c 0.331233,0.33122 0.331233,0.33122 0,0 z" + id="path11386" + inkscape:connector-curvature="0" /> + <path + style="fill:#7a7a7a;stroke:none" + d="m 74.5372,32.84279 c 0.3312,0.33122 0.3312,0.33122 0,0 z" + id="path11388" + inkscape:connector-curvature="0" /> + <path + style="fill:#3f3f3f;stroke:none" + d="m 97.3914,32.84279 c 0.331233,0.33122 0.331233,0.33122 0,0 z" + id="path11390" + inkscape:connector-curvature="0" /> + <path + style="fill:#979797;stroke:none" + d="m 98.3851,32.84279 c 0.3312,0.33122 0.3312,0.33122 0,0 z" + id="path11392" + inkscape:connector-curvature="0" /> + <path + style="fill:#545454;stroke:none" + d="m 103.3534,32.84279 c -5.103007,2.787607 5.10278,2.787805 0,0 z" + id="path11394" + inkscape:connector-curvature="0" /> + <path + style="fill:#070707;stroke:none" + d="m 105.3407,32.84279 0.9936,0.99366 -0.9936,-0.99366 z m 38.7528,0 c -4.3046,14.10422 15.24058,1.24254 0,0 z m 7.9493,0 0.9936,0.99366 -0.9936,-0.99366 z" + id="path11396" + inkscape:connector-curvature="0" /> + <path + style="fill:#7a7a7a;stroke:none" + d="m 160.9857,32.84279 c 0.33123,0.33122 0.33123,0.33122 0,0 z" + id="path11398" + inkscape:connector-curvature="0" /> + <path + style="fill:#0a0a0a;stroke:none" + d="m 207.6878,32.84279 c -3.61225,16.555864 9.61609,3.561876 0,0 z" + id="path11400" + inkscape:connector-curvature="0" /> + <path + style="fill:#727272;stroke:none" + d="m 211.6624,32.84279 c 0.33123,0.33122 0.33123,0.33122 0,0 z" + id="path11402" + inkscape:connector-curvature="0" /> + <path + style="fill:#0e0e0e;stroke:none" + d="m 228.5547,32.84279 0.38901,8.066672 -0.38901,-8.066672 z m 26.8288,0 0.38905,8.066652 -0.38905,-8.066652 z" + id="path11404" + inkscape:connector-curvature="0" /> + <path + style="fill:#343434;stroke:none" + d="m 292.149,32.84279 c 1.39156,8.137815 10.81742,5.451455 0,0 z" + id="path11406" + inkscape:connector-curvature="0" /> + <path + style="fill:#7b7b7b;stroke:none" + d="m 298.111,32.84279 c 0.3312,0.33122 0.3312,0.33122 0,0 z" + id="path11408" + inkscape:connector-curvature="0" /> + <path + style="fill:#070707;stroke:none" + d="m 314.0095,32.84279 0.38905,8.066652 -0.38905,-8.066652 z m 28.8162,0 c -4.30452,14.104251 15.24066,1.242501 0,0 z m 14.9049,0 0.38905,8.066652 -0.38905,-8.066652 z" + id="path11410" + inkscape:connector-curvature="0" /> + <path + style="fill:#0a0a0a;stroke:none" + d="m 74.5372,33.83645 c -2.739708,7.207221 9.673068,11.323711 0,0 z" + id="path11412" + inkscape:connector-curvature="0" /> + <path + style="fill:#0e0e0e;stroke:none" + d="m 98.7162,34.49893 c 0.110433,0.220787 0.110433,0.220787 0,0 z" + id="path11414" + inkscape:connector-curvature="0" /> + <path + style="fill:#0a0a0a;stroke:none" + d="m 160.9857,33.83645 c -2.74263,7.202139 9.68366,11.340692 0,0 z" + id="path11416" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 208.6815,33.83645 c -1.02902,7.271947 8.66428,-2.799217 0,0 z" + id="path11418" + inkscape:connector-curvature="0" /> + <path + style="fill:#acacac;stroke:none" + d="m 294.1363,33.83645 c 0.15337,2.322653 0.15337,2.322653 0,0 z" + id="path11420" + inkscape:connector-curvature="0" /> + <path + style="fill:#070707;stroke:none" + d="m 24.8541,34.83011 c 0.105461,1.878309 0.105461,1.878309 0,0 z" + id="path11422" + inkscape:connector-curvature="0" /> + <path + style="fill:#292929;stroke:none" + d="m 31.8097,34.83011 c -0.168698,4.489351 7.285372,-2.061935 0,0 z" + id="path11424" + inkscape:connector-curvature="0" /> + <path + style="fill:#919191;stroke:none" + d="m 64.6006,34.83011 c 0.3312,0.33122 0.3312,0.33122 0,0 z" + id="path11426" + inkscape:connector-curvature="0" /> + <path + style="fill:#5f5f5f;stroke:none" + d="m 65.5942,34.83011 c -0.578547,4.70057 7.704885,-0.0081 0,0 z" + id="path11428" + inkscape:connector-curvature="0" /> + <path + style="fill:#070707;stroke:none" + d="m 71.5562,34.83011 c 0.105461,1.878309 0.105461,1.878309 0,0 z" + id="path11430" + inkscape:connector-curvature="0" /> + <path + style="fill:#6d6d6d;stroke:none" + d="m 73.5435,34.83011 c 0.331233,0.33122 0.331233,0.33122 0,0 z" + id="path11432" + inkscape:connector-curvature="0" /> + <path + style="fill:#494949;stroke:none" + d="m 76.1933,35.16129 c 0.2208,0.110433 0.2208,0.110433 0,0 z" + id="path11434" + inkscape:connector-curvature="0" /> + <path + style="fill:#191919;stroke:none" + d="m 102.6906,35.49259 c 0.11063,0.220787 0.11063,0.220787 0,0 z" + id="path11436" + inkscape:connector-curvature="0" /> + <path + style="fill:#070707;stroke:none" + d="m 105.3407,34.83011 c 0.10545,1.878307 0.10545,1.878307 0,0 z" + id="path11438" + inkscape:connector-curvature="0" /> + <path + style="fill:#292929;stroke:none" + d="m 109.3153,34.83011 c -0.1687,4.489351 7.28537,-2.061935 0,0 z" + id="path11440" + inkscape:connector-curvature="0" /> + <path + style="fill:#707070;stroke:none" + d="m 114.9464,35.16129 c 0.2206,0.110433 0.2206,0.110433 0,0 z" + id="path11442" + inkscape:connector-curvature="0" /> + <path + style="fill:#404040;stroke:none" + d="m 117.2646,37.81109 c -6.77411,-4.418601 7.63979,2.077709 0,0 z" + id="path11444" + inkscape:connector-curvature="0" /> + <path + style="fill:#1d1d1d;stroke:none" + d="m 121.5702,35.49259 c 0.1106,0.220787 0.1106,0.220787 0,0 z" + id="path11446" + inkscape:connector-curvature="0" /> + <path + style="fill:#070707;stroke:none" + d="m 152.0428,34.83011 c 0.10545,1.878307 0.10545,1.878307 0,0 z" + id="path11448" + inkscape:connector-curvature="0" /> + <path + style="fill:#545454;stroke:none" + d="m 157.0111,37.81109 c 7.28071,-2.403238 -5.48318,-3.311885 0,0 z" + id="path11450" + inkscape:connector-curvature="0" /> + <path + style="fill:#6d6d6d;stroke:none" + d="m 159.992,34.83011 c 0.33123,0.33122 0.33123,0.33122 0,0 z" + id="path11452" + inkscape:connector-curvature="0" /> + <path + style="fill:#494949;stroke:none" + d="m 162.6421,35.16129 c 0.2206,0.110433 0.2206,0.110433 0,0 z" + id="path11454" + inkscape:connector-curvature="0" /> + <path + style="fill:#999999;stroke:none" + d="m 164.9604,34.83011 c 0.3312,0.33122 0.3312,0.33122 0,0 z" + id="path11456" + inkscape:connector-curvature="0" /> + <path + style="fill:#575757;stroke:none" + d="m 165.954,34.83011 c 1.80461,4.755686 8.04609,-1.045166 0,0 z" + id="path11458" + inkscape:connector-curvature="0" /> + <path + style="fill:#0e0e0e;stroke:none" + d="m 171.916,34.83011 c 0.10546,1.878309 0.10546,1.878309 0,0 z" + id="path11460" + inkscape:connector-curvature="0" /> + <path + style="fill:#444444;stroke:none" + d="m 172.9097,34.83011 c 0.23314,6.372799 7.51168,-0.463574 0,0 z" + id="path11462" + inkscape:connector-curvature="0" /> + <path + style="fill:#343434;stroke:none" + d="m 179.8653,34.83011 c 0.3312,0.33122 0.3312,0.33122 0,0 z" + id="path11464" + inkscape:connector-curvature="0" /> + <path + style="fill:#999999;stroke:none" + d="m 214.6434,34.83011 c 0.33123,0.33122 0.33123,0.33122 0,0 z" + id="path11466" + inkscape:connector-curvature="0" /> + <path + style="fill:#575757;stroke:none" + d="m 215.6371,34.83011 c 1.80454,4.755708 8.0459,-1.045175 0,0 z" + id="path11468" + inkscape:connector-curvature="0" /> + <path + style="fill:#999999;stroke:none" + d="m 221.5991,34.83011 c 0.3312,0.33122 0.3312,0.33122 0,0 z" + id="path11470" + inkscape:connector-curvature="0" /> + <path + style="fill:#575757;stroke:none" + d="m 222.5927,34.83011 c 1.80461,4.755686 8.04609,-1.045166 0,0 z" + id="path11472" + inkscape:connector-curvature="0" /> + <path + style="fill:#5c5c5c;stroke:none" + d="m 231.5357,34.83011 c -5.01886,16.119665 8.19794,-0.02675 0,0 z" + id="path11474" + inkscape:connector-curvature="0" /> + <path + style="fill:#0e0e0e;stroke:none" + d="m 234.5166,34.83011 c 0.10546,1.878309 0.10546,1.878309 0,0 z" + id="path11476" + inkscape:connector-curvature="0" /> + <path + style="fill:#a4a4a4;stroke:none" + d="m 235.8412,35.49259 c 0.11063,0.220787 0.11063,0.220787 0,0 z" + id="path11478" + inkscape:connector-curvature="0" /> + <path + style="fill:#2a2a2a;stroke:none" + d="m 237.1667,35.16129 c 0.2206,0.110433 0.2206,0.110433 0,0 z" + id="path11480" + inkscape:connector-curvature="0" /> + <path + style="fill:#464646;stroke:none" + d="m 239.485,34.83011 c -0.57865,4.700639 7.70465,-0.0081 0,0 z" + id="path11482" + inkscape:connector-curvature="0" /> + <path + style="fill:#686868;stroke:none" + d="m 244.4533,34.83011 c 1.54475,1.553261 1.54475,1.553261 0,0 z" + id="path11484" + inkscape:connector-curvature="0" /> + <path + style="fill:#0e0e0e;stroke:none" + d="m 251.4089,34.83011 c 0.10545,1.878307 0.10545,1.878307 0,0 z" + id="path11486" + inkscape:connector-curvature="0" /> + <path + style="fill:#444444;stroke:none" + d="m 253.0653,35.16129 c 0.2206,0.110433 0.2206,0.110433 0,0 z" + id="path11488" + inkscape:connector-curvature="0" /> + <path + style="fill:#5c5c5c;stroke:none" + d="m 258.3645,34.83011 c -5.01873,16.119608 8.19787,-0.02675 0,0 z" + id="path11490" + inkscape:connector-curvature="0" /> + <path + style="fill:#545454;stroke:none" + d="m 263.3328,37.81109 c 7.2807,-2.403224 -5.48321,-3.311947 0,0 z" + id="path11492" + inkscape:connector-curvature="0" /> + <path + style="fill:#999999;stroke:none" + d="m 300.0983,34.83011 c 0.33123,0.33122 0.33123,0.33122 0,0 z" + id="path11494" + inkscape:connector-curvature="0" /> + <path + style="fill:#575757;stroke:none" + d="m 301.092,34.83011 c 1.80454,4.755708 8.0459,-1.045175 0,0 z" + id="path11496" + inkscape:connector-curvature="0" /> + <path + style="fill:#999999;stroke:none" + d="m 307.0539,34.83011 c 0.33123,0.33122 0.33123,0.33122 0,0 z" + id="path11498" + inkscape:connector-curvature="0" /> + <path + style="fill:#575757;stroke:none" + d="m 308.0476,34.83011 c 1.80454,4.755708 8.0459,-1.045175 0,0 z" + id="path11500" + inkscape:connector-curvature="0" /> + <path + style="fill:#545454;stroke:none" + d="m 318.9779,37.81109 c 7.28071,-2.403288 -5.48334,-3.311895 0,0 z" + id="path11502" + inkscape:connector-curvature="0" /> + <path + style="fill:#292929;stroke:none" + d="m 351.7687,34.83011 c -0.1687,4.489351 7.28537,-2.061935 0,0 z" + id="path11504" + inkscape:connector-curvature="0" /> + <path + style="fill:#030303;stroke:none" + d="m 360.7116,34.83011 c 0.12968,2.688882 0.12968,2.688882 0,0 z" + id="path11506" + inkscape:connector-curvature="0" /> + <path + style="fill:#4e4e4e;stroke:none" + d="m 361.7053,34.83011 c -0.1687,4.489351 7.28537,-2.061935 0,0 z" + id="path11508" + inkscape:connector-curvature="0" /> + <path + style="fill:#161616;stroke:none" + d="m 30.8161,35.82377 c 0.178901,1.371848 0.178901,1.371848 0,0 z" + id="path11510" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 31.8097,35.82377 c -0.168698,4.489351 7.285372,-2.061935 0,0 z" + id="path11512" + inkscape:connector-curvature="0" /> + <path + style="fill:#3b3b3b;stroke:none" + d="m 34.7907,35.82377 c -1.041902,0.55839 -1.041902,0.55839 0,0 z" + id="path11514" + inkscape:connector-curvature="0" /> + <path + style="fill:#515151;stroke:none" + d="m 64.6006,35.82377 c 0.08259,6.224978 4.580442,4.838836 0,0 z" + id="path11516" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 65.5942,35.82377 c -3.341644,8.543245 8.244574,-0.461479 0,0 z" + id="path11518" + inkscape:connector-curvature="0" /> + <path + style="fill:#808080;stroke:none" + d="m 98.3851,35.82377 c -2.452001,5.550615 5.44013,-2.42492 0,0 z" + id="path11520" + inkscape:connector-curvature="0" /> + <path + style="fill:#161616;stroke:none" + d="m 108.3217,35.82377 c 0.1789,1.371848 0.1789,1.371848 0,0 z" + id="path11522" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 109.3153,35.82377 c -0.1687,4.489351 7.28537,-2.061935 0,0 z" + id="path11524" + inkscape:connector-curvature="0" /> + <path + style="fill:#3b3b3b;stroke:none" + d="m 112.2963,35.82377 c -1.0419,0.55839 -1.0419,0.55839 0,0 z" + id="path11526" + inkscape:connector-curvature="0" /> + <path + style="fill:#525252;stroke:none" + d="m 164.9604,35.82377 c 0.17121,1.693015 0.17121,1.693015 0,0 z" + id="path11528" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 165.954,35.82377 c -3.34163,8.543195 8.24455,-0.461407 0,0 z" + id="path11530" + inkscape:connector-curvature="0" /> + <path + style="fill:#686868;stroke:none" + d="m 177.878,38.80476 c 0.82853,-0.828556 0.82853,-0.828556 0,0 z" + id="path11532" + inkscape:connector-curvature="0" /> + <path + style="fill:#707070;stroke:none" + d="m 214.6434,35.82377 c -9.2231,6.340549 5.56649,7.201529 0,0 z" + id="path11534" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 215.6371,35.82377 c -3.34163,8.543195 8.24455,-0.461407 0,0 z" + id="path11536" + inkscape:connector-curvature="0" /> + <path + style="fill:#525252;stroke:none" + d="m 221.5991,35.82377 c 0.17121,1.693015 0.17121,1.693015 0,0 z" + id="path11538" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 222.5927,35.82377 c -3.34163,8.543195 8.24455,-0.461407 0,0 z" + id="path11540" + inkscape:connector-curvature="0" /> + <path + style="fill:#afafaf;stroke:none" + d="m 237.4976,35.82377 c 0.17123,1.693017 0.17123,1.693017 0,0 z" + id="path11542" + inkscape:connector-curvature="0" /> + <path + style="fill:#464646;stroke:none" + d="m 238.4913,35.82377 c 0.17123,1.693017 0.17123,1.693017 0,0 z" + id="path11544" + inkscape:connector-curvature="0" /> + <path + style="fill:#7b7b7b;stroke:none" + d="m 242.4659,35.82377 c -5.27768,7.734987 6.36145,4.88232 0,0 z" + id="path11546" + inkscape:connector-curvature="0" /> + <path + style="fill:#525252;stroke:none" + d="m 300.0983,35.82377 c 0.17123,1.693017 0.17123,1.693017 0,0 z" + id="path11548" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 301.092,35.82377 c -3.34167,8.543118 8.24438,-0.461295 0,0 z" + id="path11550" + inkscape:connector-curvature="0" /> + <path + style="fill:#525252;stroke:none" + d="m 307.0539,35.82377 c 0.17123,1.693017 0.17123,1.693017 0,0 z" + id="path11552" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 308.0476,35.82377 c -3.34163,8.543195 8.24455,-0.461407 0,0 z" + id="path11554" + inkscape:connector-curvature="0" /> + <path + style="fill:#161616;stroke:none" + d="m 350.775,35.82377 c 0.17892,1.371849 0.17892,1.371849 0,0 z" + id="path11556" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 351.7687,35.82377 c -0.1687,4.489351 7.28537,-2.061935 0,0 z" + id="path11558" + inkscape:connector-curvature="0" /> + <path + style="fill:#3b3b3b;stroke:none" + d="m 354.7497,35.82377 c -1.0419,0.55839 -1.0419,0.55839 0,0 z" + id="path11560" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 361.7053,35.82377 c 2.59236,12.311527 5.8804,-3.41158 0,0 z" + id="path11562" + inkscape:connector-curvature="0" /> + <path + style="fill:#1d1d1d;stroke:none" + d="m 364.6863,35.82377 c 0.1789,1.371848 0.1789,1.371848 0,0 z" + id="path11564" + inkscape:connector-curvature="0" /> + <path + style="fill:#999999;stroke:none" + d="m 30.1536,37.4799 c 0.110433,0.220793 0.110433,0.220793 0,0 z" + id="path11566" + inkscape:connector-curvature="0" /> + <path + style="fill:#989898;stroke:none" + d="m 63.9381,37.4799 0.3313,0.66238 -0.3313,-0.66238 0,0 z" + id="path11568" + inkscape:connector-curvature="0" /> + <path + style="fill:#2f2f2f;stroke:none" + d="m 99.3787,36.81743 c -1.737162,9.962079 7.42367,-0.596902 0,0 z" + id="path11570" + inkscape:connector-curvature="0" /> + <path + style="fill:#707070;stroke:none" + d="m 102.0288,37.14862 c 0.2206,0.110427 0.2206,0.110427 0,0 z" + id="path11572" + inkscape:connector-curvature="0" /> + <path + style="fill:#999999;stroke:none" + d="m 107.6589,37.4799 c 0.11063,0.220793 0.11063,0.220793 0,0 z" + id="path11574" + inkscape:connector-curvature="0" /> + <path + style="fill:#686868;stroke:none" + d="m 118.2583,36.81743 c 1.02349,3.52642 9.47667,1.28165 0,0 z" + id="path11576" + inkscape:connector-curvature="0" /> + <path + style="fill:#989898;stroke:none" + d="m 164.2976,37.4799 c 0.11063,0.220793 0.11063,0.220793 0,0 z" + id="path11578" + inkscape:connector-curvature="0" /> + <path + style="fill:#242424;stroke:none" + d="m 168.935,36.81743 c -1.01585,1.201374 -1.01585,1.201374 0,0 z" + id="path11580" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 208.6815,36.81743 c -2.11577,9.516301 8.99062,-2.059965 0,0 z" + id="path11582" + inkscape:connector-curvature="0" /> + <path + style="fill:#242424;stroke:none" + d="m 218.6181,36.81743 c -1.01585,1.201374 -1.01585,1.201374 0,0 z" + id="path11584" + inkscape:connector-curvature="0" /> + <path + style="fill:#989898;stroke:none" + d="m 220.9363,37.4799 c 0.11063,0.220793 0.11063,0.220793 0,0 z" + id="path11586" + inkscape:connector-curvature="0" /> + <path + style="fill:#242424;stroke:none" + d="m 225.5737,36.81743 c -1.01585,1.201374 -1.01585,1.201374 0,0 z" + id="path11588" + inkscape:connector-curvature="0" /> + <path + style="fill:#484848;stroke:none" + d="m 244.4533,36.81743 c -3.33192,6.308954 14.99064,5.59907 0,0 z" + id="path11590" + inkscape:connector-curvature="0" /> + <path + style="fill:#989898;stroke:none" + d="m 299.4355,37.4799 c 0.11063,0.220793 0.11063,0.220793 0,0 z" + id="path11592" + inkscape:connector-curvature="0" /> + <path + style="fill:#242424;stroke:none" + d="m 304.0729,36.81743 c -1.01581,1.201375 -1.01581,1.201375 0,0 z" + id="path11594" + inkscape:connector-curvature="0" /> + <path + style="fill:#989898;stroke:none" + d="m 306.3911,37.4799 c 0.11063,0.220793 0.11063,0.220793 0,0 z" + id="path11596" + inkscape:connector-curvature="0" /> + <path + style="fill:#242424;stroke:none" + d="m 311.0286,36.81743 c -1.01585,1.201374 -1.01585,1.201374 0,0 z" + id="path11598" + inkscape:connector-curvature="0" /> + <path + style="fill:#999999;stroke:none" + d="m 350.1123,37.4799 c 0.1106,0.220793 0.1106,0.220793 0,0 z" + id="path11600" + inkscape:connector-curvature="0" /> + <path + style="fill:#1d1d1d;stroke:none" + d="m 119.2519,37.81109 c 0.57069,0.855998 0.57069,0.855998 0,0 z" + id="path11602" + inkscape:connector-curvature="0" /> + <path + style="fill:#393939;stroke:none" + d="m 157.0111,37.81109 c 0.91157,6.39217 4.27823,-2.484725 0,0 z" + id="path11604" + inkscape:connector-curvature="0" /> + <path + style="fill:#474747;stroke:none" + d="m 176.8843,37.81109 c -4.30344,7.128894 3.28335,5.053795 0,0 z" + id="path11606" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 245.4469,37.81109 c -1.50423,6.300179 6.30016,-1.504179 0,0 z" + id="path11608" + inkscape:connector-curvature="0" /> + <path + style="fill:#393939;stroke:none" + d="m 263.3328,37.81109 c 0.91157,6.39217 4.27823,-2.484725 0,0 z m 55.6451,0 c 0.91157,6.39217 4.27823,-2.484725 0,0 z" + id="path11610" + inkscape:connector-curvature="0" /> + <path + style="fill:#000000;stroke:none" + d="m 116.6018,39.46723 c 0.11063,0.22079 0.11063,0.22079 0,0 z" + id="path11612" + inkscape:connector-curvature="0" /> + <path + style="fill:#6b6b6b;stroke:none" + d="m 362.0362,39.46723 c 0.11063,0.22079 0.11063,0.22079 0,0 z" + id="path11614" + inkscape:connector-curvature="0" /> + <path + style="fill:#262626;stroke:none" + d="m 31.8097,39.79842 c 1.90799,3.048689 5.753159,-0.633162 0,0 z" + id="path11616" + inkscape:connector-curvature="0" /> + <path + style="fill:#8b8b8b;stroke:none" + d="m 101.366,39.79842 c 0.33123,0.33122 0.33123,0.33122 0,0 z" + id="path11618" + inkscape:connector-curvature="0" /> + <path + style="fill:#262626;stroke:none" + d="m 109.3153,39.79842 c 1.90799,3.048689 5.75316,-0.633163 0,0 z" + id="path11620" + inkscape:connector-curvature="0" /> + <path + style="fill:#2c2c2c;stroke:none" + d="m 155.0237,39.79842 c -0.1687,4.489351 7.28537,-2.061935 0,0 z" + id="path11622" + inkscape:connector-curvature="0" /> + <path + style="fill:#919191;stroke:none" + d="m 158.0047,39.79842 c 0.33123,0.33122 0.33123,0.33122 0,0 z" + id="path11624" + inkscape:connector-curvature="0" /> + <path + style="fill:#2c2c2c;stroke:none" + d="m 261.3455,39.79842 c -0.1687,4.489351 7.28537,-2.061935 0,0 z" + id="path11626" + inkscape:connector-curvature="0" /> + <path + style="fill:#919191;stroke:none" + d="m 264.3265,39.79842 c 0.3312,0.33122 0.3312,0.33122 0,0 z" + id="path11628" + inkscape:connector-curvature="0" /> + <path + style="fill:#2c2c2c;stroke:none" + d="m 316.9905,39.79842 c -0.1687,4.489351 7.28537,-2.061935 0,0 z" + id="path11630" + inkscape:connector-curvature="0" /> + <path + style="fill:#919191;stroke:none" + d="m 319.9715,39.79842 c 0.33123,0.33122 0.33123,0.33122 0,0 z" + id="path11632" + inkscape:connector-curvature="0" /> + <path + style="fill:#262626;stroke:none" + d="m 351.7687,39.79842 c 1.90791,3.048707 5.75308,-0.633185 0,0 z" + id="path11634" + inkscape:connector-curvature="0" /> + <path + style="fill:#252525;stroke:none" + d="m 363.3617,40.1296 c 0.2206,0.11043 0.2206,0.11043 0,0 z" + id="path11636" + inkscape:connector-curvature="0" /> + <path + style="fill:#000000;stroke:none" + d="M 17.8985,41.78574 22.634796,42.823377 17.8985,41.78574 z m 38.7528,0 5.347106,1.037769 L 56.6513,41.78574 z m 40.7401,0 5.34711,1.037769 -5.34711,-1.037769 z m 56.6387,0 4.73623,1.037638 -4.73623,-1.037638 z m 52.664,0 5.34717,1.03777 -5.34717,-1.03777 z m 85.4549,0 5.34711,1.037769 -5.34711,-1.037769 z m 49.6831,0 6.44934,1.043464 -6.44934,-1.043464 z" + id="path11638" + inkscape:connector-curvature="0" /> + <path + style="fill:#c0c0c0;stroke:none" + d="m 151.0491,53.70967 c 2.68444,0.385088 2.68444,0.385088 0,0 z" + id="path11640" + inkscape:connector-curvature="0" /> + <path + style="fill:#96969d;stroke:none" + d="m 212.6561,53.70967 c -8.87945,34.518081 34.99355,18.673445 54.74929,21.86055 180.4825,0 360.96501,0 541.44751,0 C 780.9635,85.087928 779.01775,45.679445 803.23436,54.386858 606.41558,52.826013 409.50238,54.146886 212.6561,53.70967 z m 606.1334,0 c -8.87945,34.518081 34.99355,18.673445 54.74929,21.86055 46.3382,0 92.67641,0 139.01461,0 -23.55984,10.326879 -34.89265,-28.977359 -5.4801,-21.1385 -62.72541,-1.556979 -125.52997,-0.332474 -188.2838,-0.72205 z" + id="path11642" + inkscape:connector-curvature="0" /> + <path + style="fill:#c7c7c7;stroke:none" + d="m 119.2519,54.70334 c -22.647819,16.217676 14.22243,11.176553 0,0 z" + id="path11644" + inkscape:connector-curvature="0" /> + <path + style="fill:#979797;stroke:none" + d="m 144.0935,70.60191 c 22.5409,-18.48027 12.29275,-28.652119 0,0 z" + id="path11646" + inkscape:connector-curvature="0" /> + <path + style="fill:#fdf453;stroke:none" + d="m 196.995,55.87178 c -9.49394,13.803628 14.48052,1.713277 0,0 z" + id="path11648" + inkscape:connector-curvature="0" /> + <path + style="fill:#96969d;stroke:none" + d="m 768.1127,54.70334 c 7.08661,33.198631 -37.72644,16.01912 -57.35584,19.87322 -165.70235,0 -331.40471,0 -497.10706,0 -7.08661,-33.198631 37.72644,-16.01912 57.35584,-19.87322 165.70235,0 331.40471,0 497.10706,0 z" + id="path11650" + inkscape:connector-curvature="0" /> + <path + style="fill:#f0f0f0;stroke:none" + d="m 769.1064,54.70334 c -12.07781,38.165632 38.18699,6.369115 6.87209,0.0034 l -6.87209,-0.0034 z" + id="path11652" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 819.7831,54.70334 c -13.36786,39.464787 62.25538,11.268486 16.25553,-1.000361 -5.50562,-0.71165 -10.77533,1.46423 -16.25553,1.000361 z" + id="path11654" + inkscape:connector-curvature="0" /> + <path + style="fill:#96969d;stroke:none" + d="m 988.7056,54.70334 c 7.08661,33.198631 -37.72644,16.01912 -57.35584,19.87322 -26.92105,0 -53.84211,0 -80.76316,0 -7.08661,-33.198631 37.72644,-16.01912 57.35584,-19.87322 26.92105,0 53.84211,0 80.76316,0 z M 809.8465,55.697 c -0.61699,16.113438 1.79294,21.546747 0,0 z m 203.7006,0 c -0.6169,16.113396 1.7928,21.546799 0,0 z" + id="path11656" + inkscape:connector-curvature="0" /> + <path + style="fill:#bbbeb7;stroke:none" + d="m 200.7322,62.65262 c 2.60853,27.750074 -37.00813,-3.976197 -9.40584,-5.498095 -24.46092,16.56615 14.21988,28.724542 9.40584,5.498095 z" + id="path11658" + inkscape:connector-curvature="0" /> + <path + style="fill:#828282;stroke:none" + d="m 216.6307,56.69066 c -4.88594,33.012402 14.51792,-9.538263 0,0 z" + id="path11660" + inkscape:connector-curvature="0" /> + <path + style="fill:#bcd3df;stroke:none" + d="m 1001.6231,66.62727 c -3.26306,-21.343136 -8.96699,4.800131 0,0 z" + id="path11662" + inkscape:connector-curvature="0" /> + <path + style="fill:#e48b40;stroke:none" + d="m 23.8605,57.68432 c -10.327928,8.208118 -2.62505,16.412456 0,0 z" + id="path11664" + inkscape:connector-curvature="0" /> + <path + style="fill:#d86c00;stroke:none" + d="m 24.8541,57.68432 c 3.42811,13.405355 19.323117,5.319351 0,0 z" + id="path11666" + inkscape:connector-curvature="0" /> + <path + style="fill:#b9b9b9;stroke:none" + d="m 73.5435,57.68432 c -26.974365,11.686123 20.391826,22.262804 0,0 z" + id="path11668" + inkscape:connector-curvature="0" /> + <path + style="fill:#ececec;stroke:none" + d="m 183.8399,57.68432 c -8.91125,30.658569 37.07381,4.891693 -0.65405,3.652629 4.23502,-2.669912 22.70851,-3.394062 0.65405,-3.652629 z" + id="path11670" + inkscape:connector-curvature="0" /> + <path + style="fill:#d5deea;stroke:none" + d="m 217.6244,57.68432 c 0.0425,30.265277 26.50478,-4.210319 0,0 z" + id="path11672" + inkscape:connector-curvature="0" /> + <path + style="fill:#5e7ca6;stroke:none" + d="m 229.5483,57.68432 c -10.80482,7.078001 1.0232,9.724329 0,0 z" + id="path11674" + inkscape:connector-curvature="0" /> + <path + style="fill:#f6f6f6;stroke:none" + d="m 149.0618,58.67798 c -6.42893,25.945397 29.23861,-1.090285 0,0 z" + id="path11676" + inkscape:connector-curvature="0" /> + <path + style="fill:#777777;stroke:none" + d="m 160.9857,71.59558 c -34.10743,0.994018 22.42928,0.771005 -2.28473,-9.539032 l -0.70023,3.265824 2.98496,6.273208 z" + id="path11678" + inkscape:connector-curvature="0" /> + <path + style="fill:#fdb03d;stroke:none" + d="m 184.8336,58.67798 c 2.68445,0.38508 2.68445,0.38508 0,0 z" + id="path11680" + inkscape:connector-curvature="0" /> + <path + style="fill:#fffaac;stroke:none" + d="m 197.7512,58.67798 c -1.50423,6.300179 6.30016,-1.504179 0,0 z" + id="path11682" + inkscape:connector-curvature="0" /> + <path + style="fill:#246740;stroke:none" + d="m 793.9479,58.67798 c -3.07302,19.692342 7.38084,9.937837 0,0 z" + id="path11684" + inkscape:connector-curvature="0" /> + <path + style="fill:#fab46e;stroke:none" + d="m 23.8605,59.67163 c -15.3357113,17.377045 25.439386,-1.238833 0,0 z" + id="path11686" + inkscape:connector-curvature="0" /> + <path + style="fill:#dd7613;stroke:none" + d="m 184.8336,59.67163 c 2.84023,0.368808 2.84023,0.368808 0,0 z" + id="path11688" + inkscape:connector-curvature="0" /> + <path + style="fill:#c7c7c7;stroke:none" + d="m 219.6117,59.67163 c 2.14978,0.347832 2.14978,0.347832 0,0 z" + id="path11690" + inkscape:connector-curvature="0" /> + <path + style="fill:#191819;stroke:none" + d="m 823.7578,59.67163 c 0.88142,1.822251 0.88142,1.822251 0,0 z" + id="path11692" + inkscape:connector-curvature="0" /> + <path + style="fill:#b9bab9;stroke:none" + d="m 825.7451,59.67163 c -2.16031,3.933983 3.71881,3.669705 0,0 z" + id="path11694" + inkscape:connector-curvature="0" /> + <path + style="fill:#191819;stroke:none" + d="m 828.7261,59.67163 c 0.88142,1.822251 0.88142,1.822251 0,0 z" + id="path11696" + inkscape:connector-curvature="0" /> + <path + style="fill:#c8c7c8;stroke:none" + d="m 830.7134,59.67163 c 0.98969,1.319575 0.98969,1.319575 0,0 z" + id="path11698" + inkscape:connector-curvature="0" /> + <path + style="fill:#848384;stroke:none" + d="m 832.7007,59.67163 c -3.68368,7.22804 5.52836,-1.556008 0,0 z" + id="path11700" + inkscape:connector-curvature="0" /> + <path + style="fill:#7a7b7a;stroke:none" + d="m 836.6754,59.67163 c -4.32703,15.134105 -4.81676,-3.075762 0,0 z" + id="path11702" + inkscape:connector-curvature="0" /> + <path + style="fill:#c7c7c7;stroke:none" + d="m 165.954,60.66531 c 0.13725,2.878358 0.13725,2.878358 0,0 z" + id="path11704" + inkscape:connector-curvature="0" /> + <path + style="fill:#8ecaa2;stroke:none" + d="m 794.9416,60.66531 c -5.94572,15.573804 10.51289,1.996883 0,0 z" + id="path11706" + inkscape:connector-curvature="0" /> + <path + style="fill:#5c9a4d;stroke:none" + d="m 796.9289,60.66531 c -5.59901,12.522534 18.11687,1.10784 0,0 z" + id="path11708" + inkscape:connector-curvature="0" /> + <path + style="fill:#e5e5e5;stroke:none" + d="m 853.5676,60.66531 c 5.51199,10.69159 10.31626,2.927059 0,0 z" + id="path11710" + inkscape:connector-curvature="0" /> + <path + style="fill:#c7c7c7;stroke:none" + d="m 862.5106,60.66531 c -0.5364,2.662919 -0.5364,2.662919 0,0 z" + id="path11712" + inkscape:connector-curvature="0" /> + <path + style="fill:#dddddd;stroke:none" + d="m 868.4725,60.66531 c -3.53385,17.34622 10.82271,2.764284 0,0 z" + id="path11714" + inkscape:connector-curvature="0" /> + <path + style="fill:#dadada;stroke:none" + d="m 895.3014,60.66531 c -9.25048,5.611285 5.59245,14.834497 0,0 z" + id="path11716" + inkscape:connector-curvature="0" /> + <path + style="fill:#c9c9c9;stroke:none" + d="m 911.2,61.65897 c -1.94252,11.194027 9.37638,3.638319 0,0 z" + id="path11718" + inkscape:connector-curvature="0" /> + <path + style="fill:#d1d1d1;stroke:none" + d="M 34.7907,62.65262 C 29.238969,75.853493 9.3001627,70.77701 33.288394,70.05617 L 35.847204,67.68813 34.7907,62.65262 z" + id="path11720" + inkscape:connector-curvature="0" /> + <path + style="fill:#adadad;stroke:none" + d="m 111.3027,62.65262 c 2.4355,24.364265 30.90035,2.335949 0,0 z" + id="path11722" + inkscape:connector-curvature="0" /> + <path + style="fill:#949494;stroke:none" + d="m 119.2519,62.65262 c -3.47054,5.800916 6.35392,0.64552 0,0 z" + id="path11724" + inkscape:connector-curvature="0" /> + <path + style="fill:#7b94b6;stroke:none" + d="m 230.542,62.65262 c 0.91158,6.392166 4.27822,-2.484734 0,0 z" + id="path11726" + inkscape:connector-curvature="0" /> + <path + style="fill:#636363;stroke:none" + d="m 774.0747,62.65262 c 2.33413,9.910908 11.10361,-3.522375 0,0 z" + id="path11728" + inkscape:connector-curvature="0" /> + <path + style="fill:#c9c9c9;stroke:none" + d="m 865.4915,62.65262 0.31638,5.634927 -0.31638,-5.634927 z m 8.943,0 0.31638,5.634927 -0.31638,-5.634927 z" + id="path11730" + inkscape:connector-curvature="0" /> + <path + style="fill:#c8c8c8;stroke:none" + d="m 877.4155,62.65262 c -5.76848,16.045957 10.96426,1.833479 0,0 z" + id="path11732" + inkscape:connector-curvature="0" /> + <path + style="fill:#c9c9c9;stroke:none" + d="m 898.2824,62.65262 c 0.13083,1.7906 0.13083,1.7906 0,0 z" + id="path11734" + inkscape:connector-curvature="0" /> + <path + style="fill:#d8d8d8;stroke:none" + d="m 901.2634,62.65262 c 0.79599,1.599609 0.79599,1.599609 0,0 z" + id="path11736" + inkscape:connector-curvature="0" /> + <path + style="fill:#dadada;stroke:none" + d="m 916.4694,63.8165 c -5.80231,9.40343 10.2162,0.273258 0,0 z" + id="path11738" + inkscape:connector-curvature="0" /> + <path + style="fill:#c8c8c8;stroke:none" + d="m 922.1303,62.65262 c -5.76852,16.045963 10.96425,1.833462 0,0 z" + id="path11740" + inkscape:connector-curvature="0" /> + <path + style="fill:#c9c9c9;stroke:none" + d="m 929.0859,62.65262 c 0.13083,1.7906 0.13083,1.7906 0,0 z" + id="path11742" + inkscape:connector-curvature="0" /> + <path + style="fill:#000000;stroke:none" + d="m 46.7147,63.64628 c 1.968029,8.252524 8.104527,-4.526442 0,0 z" + id="path11744" + inkscape:connector-curvature="0" /> + <path + style="fill:#7f7f7f;stroke:none" + d="m 93.4167,63.64628 c 2.046113,8.916994 9.45713,-5.290852 0,0 z" + id="path11746" + inkscape:connector-curvature="0" /> + <path + style="fill:#484748;stroke:none" + d="m 826.7388,63.64628 c 0.89994,2.099923 0.89994,2.099923 0,0 z" + id="path11748" + inkscape:connector-curvature="0" /> + <path + style="fill:#3c3a3c;stroke:none" + d="m 831.7071,63.64628 c -0.87264,11.061867 5.99849,5.745604 0,0 z" + id="path11750" + inkscape:connector-curvature="0" /> + <path + style="fill:#000000;stroke:none" + d="m 841.6437,63.64628 c 1.96804,8.252538 8.10456,-4.526421 0,0 z" + id="path11752" + inkscape:connector-curvature="0" /> + <path + style="fill:#cecece;stroke:none" + d="m 881.3901,63.64628 c 0.17892,1.371849 0.17892,1.371849 0,0 z" + id="path11754" + inkscape:connector-curvature="0" /> + <path + style="fill:#d5d5d5;stroke:none" + d="m 884.3711,63.64628 c -3.06723,10.450113 11.19952,-4.827006 0,0 z" + id="path11756" + inkscape:connector-curvature="0" /> + <path + style="fill:#dadada;stroke:none" + d="m 893.3141,63.64628 c 2.09575,2.40449 -3.85136,5.517247 0,0 z m 23.8478,0 c 2.09614,2.404428 -3.85153,5.517357 0,0 z" + id="path11758" + inkscape:connector-curvature="0" /> + <path + style="fill:#cecece;stroke:none" + d="m 926.1049,63.64628 c 0.17892,1.371849 0.17892,1.371849 0,0 z" + id="path11760" + inkscape:connector-curvature="0" /> + <path + style="fill:#8894a0;stroke:none" + d="m 1002.6168,63.64628 c -0.797,11.670986 11.8087,5.277728 0,0 z" + id="path11762" + inkscape:connector-curvature="0" /> + <path + style="fill:#f88700;stroke:none" + d="m 19.8858,67.62093 c 9.831497,14.074788 19.582003,-11.938878 0,0 z" + id="path11764" + inkscape:connector-curvature="0" /> + <path + style="fill:#5b7aa5;stroke:none" + d="m 221.5991,64.63994 c 0.32914,2.633295 0.32914,2.633295 0,0 z" + id="path11766" + inkscape:connector-curvature="0" /> + <path + style="fill:#c3c4c6;stroke:none" + d="m 1003.6105,64.63994 c 1.2314,1.67267 1.2314,1.67267 0,0 z" + id="path11768" + inkscape:connector-curvature="0" /> + <path + style="fill:#c4c4c4;stroke:none" + d="m 795.9353,69.60825 c 3.6013,1.376826 10.41751,-5.388533 0,0 z" + id="path11770" + inkscape:connector-curvature="0" /> + <path + style="fill:#a9a8a9;stroke:none" + d="m 829.7197,66.62727 c 0.29889,0.896622 0.29889,0.896622 0,0 z" + id="path11772" + inkscape:connector-curvature="0" /> + <path + style="fill:#bebebe;stroke:none" + d="m 154.6929,67.95212 c 0.22057,0.11043 0.22057,0.11043 0,0 z" + id="path11774" + inkscape:connector-curvature="0" /> + <path + style="fill:#a9a8a9;stroke:none" + d="m 827.0697,68.28341 c 0.1106,0.220787 0.1106,0.220787 0,0 z" + id="path11776" + inkscape:connector-curvature="0" /> + <path + style="fill:#b9bab9;stroke:none" + d="m 832.038,68.28341 c 0.1106,0.220787 0.1106,0.220787 0,0 z" + id="path11778" + inkscape:connector-curvature="0" /> + <path + style="fill:#d0d0d0;stroke:none" + d="m 885.3648,67.62093 c 1.90791,3.048707 5.75308,-0.633185 0,0 z" + id="path11780" + inkscape:connector-curvature="0" /> + <path + style="fill:#959595;stroke:none" + d="m 25.8478,69.60825 c 2.684445,0.385084 2.684445,0.385084 0,0 z" + id="path11782" + inkscape:connector-curvature="0" /> + <path + style="fill:#9dbee1;stroke:none" + d="m 227.561,69.60825 c -3.72929,-0.609251 -1.22348,5.303196 0,0 z" + id="path11784" + inkscape:connector-curvature="0" /> + <path + style="fill:#6c97c6;stroke:none" + d="m 226.5674,71.59558 c 2.40444,2.095968 5.51725,-3.851532 0,0 z" + id="path11786" + inkscape:connector-curvature="0" /> + <path + style="fill:#c8c7c8;stroke:none" + d="m 828.3952,70.93311 c 0.2206,0.110423 0.2206,0.110423 0,0 z" + id="path11788" + inkscape:connector-curvature="0" /> + <path + style="fill:#b9bab9;stroke:none" + d="m 833.3635,70.93311 c 0.2206,0.110423 0.2206,0.110423 0,0 z" + id="path11790" + inkscape:connector-curvature="0" /> + <path + style="fill:#cbcbcb;stroke:none" + d="m 4.9809,82.52586 c 260.70608,2.064083 521.49094,0.50928 782.23162,0.99365 78.42583,0 156.85165,0 235.27748,0 C 683.33522,81.436781 344.14654,83.003609 4.9809,82.52586 z" + id="path11792" + inkscape:connector-curvature="0" /> + <path + style="fill:#cdcdcd;stroke:none" + d="m 4.9809,83.51951 c 15.733096,21.85429 3.5607798,-1.100015 29.17654,3.324543 35.660978,-4.996143 72.80667,-0.987728 109.14977,-2.218102 285.11167,0.293626 570.22333,0.587253 855.33499,0.880879 -4.18073,26.34763 22.0799,-7.771141 18.0406,15.34877 17.674,-28.422483 -25.33185,-13.832943 -41.12555,-17.33609 -323.52545,0 -647.0509,0 -970.57635,0 z" + id="path11794" + inkscape:connector-curvature="0" /> + <path + style="fill:#9b9b9b;stroke:none" + d="m 33.7971,84.51317 c 81.4454,2.129437 162.96115,0.508911 244.4406,0.99366 C 196.77369,83.289873 115.27496,85.103152 33.7971,84.51317 z" + id="path11796" + inkscape:connector-curvature="0" /> + <path + style="fill:#cfcfcf;stroke:none" + d="m 278.2377,87.49415 c 107.18071,-4.344891 214.54694,-0.951675 321.81562,-1.98732 127.23219,0 254.46439,0 381.69658,0 -3.13296,38.06671 11.56462,-13.647221 -18.40256,-1.545259 -227.81478,1.743574 -456.05653,-0.709278 -683.68726,1.215694 l -1.36428,2.222246 -0.0581,0.09464 0,0 z" + id="path11798" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 34.7907,85.50683 c 80.78301,2.132904 161.63633,0.508434 242.4534,0.99366 8.49208,41.75567 -57.74309,9.979384 -86.04427,19.63219 -51.03666,1.23246 -102.715411,0.0312 -153.264239,0.41918 -3.59703,-28.671443 1.438493,-11.285048 -12.574595,3.54732 -41.113089,-1.20788 29.290279,0.9825 44.794362,0.24919 317.444882,0 634.889762,0 952.334642,0 -61.32148,-4.0387 -123.43836,-1.06756 -185.1214,-1.98733 -186.04573,0 -372.09147,0 -558.1372,0 7.07642,-33.983337 -35.00356,-20.359385 -55.00855,-22.85421 -63.14405,0 -126.2881,0 -189.43215,0 z" + id="path11800" + inkscape:connector-curvature="0" /> + <path + style="fill:#d1d1d1;stroke:none" + d="m 279.2314,85.50683 c 234.13569,2.037334 468.34844,0.526474 702.5185,0.99366 C 747.59789,84.315939 513.39841,86.020468 279.2314,85.50683 z" + id="path11802" + inkscape:connector-curvature="0" /> + <path + style="fill:#e2e2e2;stroke:none" + d="m 981.7499,107.36738 c 13.18461,-2.51813 47.8539,9.14078 39.324,-15.049004 -14.2513,32.533494 -32.8467,-32.977623 -40.60665,7.319084 l 1.28265,7.72992 z" + id="path11804" + inkscape:connector-curvature="0" /> + <path + style="fill:#a7a7a7;stroke:none" + d="M 31.8097,86.50049 C 47.551842,115.93561 -19.428393,106.7246 25.599898,108.57323 39.734731,106.93552 31.1398,94.995569 31.8097,86.50049 z" + id="path11806" + inkscape:connector-curvature="0" /> + <path + style="fill:#f8f8f8;stroke:none" + d="m 33.7971,88.48782 c 36.900341,2.949752 78.48172,1.136737 117.29087,2.500485 41.05635,0.462187 82.11634,0.715608 123.17513,0.480495 C 243.48264,79.749865 201.3357,90.323781 166.25792,86.535578 122.12591,86.475094 77.826634,85.238999 33.7971,88.48782 z" + id="path11808" + inkscape:connector-curvature="0" /> + <path + style="fill:#a7a7a7;stroke:none" + d="m 279.2314,86.50049 c -8.87945,34.51808 34.99355,18.67345 54.74929,21.86055 229.5031,0 459.00621,0 688.50931,0 -247.38415,-2.05098 -494.84625,-0.51777 -742.2649,-0.99366 -0.33123,-6.95563 -0.66247,-13.91126 -0.9937,-20.86689 z" + id="path11810" + inkscape:connector-curvature="0" /> + <path + style="fill:#d3d3d3;stroke:none" + d="m 280.2251,86.50049 c 233.47327,2.036638 467.02356,0.526914 700.5312,0.99366 C 747.26149,85.307049 513.73239,87.015354 280.2251,86.50049 z" + id="path11812" + inkscape:connector-curvature="0" /> + <path + style="fill:#a5a5a5;stroke:none" + d="m 11.9365,87.49415 c 3.435943,0.367969 3.435943,0.367969 0,0 z" + id="path11814" + inkscape:connector-curvature="0" /> + <path + style="fill:#d5d5d5;stroke:none" + d="m 280.2251,87.49415 c 233.47327,2.036659 467.02356,0.52692 700.5312,0.99367 -233.49481,-2.187123 -467.02391,-0.4788 -700.5312,-0.99367 z" + id="path11816" + inkscape:connector-curvature="0" /> + <path + style="fill:#e5e5e5;stroke:none" + d="M 4.9809,88.48782 C -9.2046046,114.71577 49.085994,114.51517 29.033063,90.870703 10.859674,122.55338 13.294605,96.560485 4.9809,88.48782 z" + id="path11818" + inkscape:connector-curvature="0" /> + <path + style="fill:#f3f3f3;stroke:none" + d="m 11.9365,93.45613 c 18.190096,2.575271 9.673517,-15.584852 0,0 z" + id="path11820" + inkscape:connector-curvature="0" /> + <path + style="fill:#d8d8d8;stroke:none" + d="m 280.2251,88.48782 c 233.47327,2.036638 467.02356,0.526914 700.5312,0.99366 C 747.26149,87.294379 513.73239,89.002684 280.2251,88.48782 z" + id="path11822" + inkscape:connector-curvature="0" /> + <path + style="fill:#f04f00;stroke:none" + d="m 1004.6041,88.48782 c 3.1697,0.360381 3.1697,0.360381 0,0 z" + id="path11824" + inkscape:connector-curvature="0" /> + <path + style="fill:#f9a465;stroke:none" + d="m 1004.6041,90.47514 c 5.2762,12.02068 18.9718,-9.929581 0,0 z" + id="path11826" + inkscape:connector-curvature="0" /> + <path + style="fill:#828282;stroke:none" + d="m 40.7527,89.48148 c -4.885932,33.01198 14.51791,-9.538005 0,0 z" + id="path11828" + inkscape:connector-curvature="0" /> + <path + style="fill:#dadada;stroke:none" + d="m 280.2251,89.48148 c 233.47327,2.036638 467.02356,0.526914 700.5312,0.99366 C 747.26149,88.288039 513.73239,89.996344 280.2251,89.48148 z" + id="path11830" + inkscape:connector-curvature="0" /> + <path + style="fill:#f46600;stroke:none" + d="m 1003.6105,89.48148 c -1.8644,20.42743 24.8272,2.042431 1.721,6.237732 l -1.721,-6.237732 z" + id="path11832" + inkscape:connector-curvature="0" /> + <path + style="fill:#fccca9;stroke:none" + d="m 1004.6041,89.48148 c 2.6844,0.385081 2.6844,0.385081 0,0 z" + id="path11834" + inkscape:connector-curvature="0" /> + <path + style="fill:#96a38a;stroke:none" + d="m 19.8858,91.4688 c 1.038108,12.22359 10.875599,-6.241605 0,0 z" + id="path11836" + inkscape:connector-curvature="0" /> + <path + style="fill:#ebebeb;stroke:none" + d="m 41.7464,90.47514 c -9.599622,25.48138 28.538231,-11.547756 0,0 z" + id="path11838" + inkscape:connector-curvature="0" /> + <path + style="fill:#5e7ca6;stroke:none" + d="m 53.6703,90.47514 c -15.632601,6.180067 9.83402,12.91353 0,0 z" + id="path11840" + inkscape:connector-curvature="0" /> + <path + style="fill:#f04f00;stroke:none" + d="m 258.3645,90.47514 c 3.1697,0.360381 3.1697,0.360381 0,0 z" + id="path11842" + inkscape:connector-curvature="0" /> + <path + style="fill:#f9a465;stroke:none" + d="m 258.3645,92.46246 c 0.79764,11.15279 24.86199,-11.080493 0,0 z" + id="path11844" + inkscape:connector-curvature="0" /> + <path + style="fill:#dddddd;stroke:none" + d="M 280.2251,90.47514 C 513.69837,92.511778 747.24866,91.002054 980.7563,91.4688 747.26149,89.281699 513.73239,90.990004 280.2251,90.47514 z" + id="path11846" + inkscape:connector-curvature="0" /> + <path + style="fill:#498f00;stroke:none" + d="m 24.8541,91.4688 c 0.673763,2.021209 0.673763,2.021209 0,0 z" + id="path11848" + inkscape:connector-curvature="0" /> + <path + style="fill:#f6f6f6;stroke:none" + d="m 54.664,91.4688 c 33.983809,24.06459 75.57109,-3.627131 113.3967,4.96831 29.43884,0 58.87767,0 88.3165,0 -19.86792,-11.646594 -48.34323,-2.033109 -72.00148,-4.96831 -43.23724,0 -86.47448,0 -129.71172,0 z" + id="path11850" + inkscape:connector-curvature="0" /> + <path + style="fill:#f46600;stroke:none" + d="m 257.3709,91.4688 c 0.45967,20.86795 20.17823,9.37345 0,0 z" + id="path11852" + inkscape:connector-curvature="0" /> + <path + style="fill:#fccca9;stroke:none" + d="m 258.3645,91.4688 c 2.68445,0.385081 2.68445,0.385081 0,0 z" + id="path11854" + inkscape:connector-curvature="0" /> + <path + style="fill:#dfdfdf;stroke:none" + d="m 280.2251,91.4688 c 233.47327,2.036638 467.02356,0.526914 700.5312,0.99366 C 747.26149,90.275359 513.73239,91.983664 280.2251,91.4688 z" + id="path11856" + inkscape:connector-curvature="0" /> + <path + style="fill:#6bae22;stroke:none" + d="m 19.8858,92.46246 c -4.163291,9.75994 14.659067,7.182941 0,0 z" + id="path11858" + inkscape:connector-curvature="0" /> + <path + style="fill:#c7c7c7;stroke:none" + d="m 43.7337,92.46246 c 2.14978,0.347828 2.14978,0.347828 0,0 z" + id="path11860" + inkscape:connector-curvature="0" /> + <path + style="fill:#3333ff;stroke:none" + d="m 62.6133,92.46246 c -1.749177,25.64855 92.78485,-0.255038 32.333568,9.03907 -12.743578,-1.27518 -29.00497,4.35282 -32.333568,-9.03907 z" + id="path11862" + inkscape:connector-curvature="0" /> + <path + style="fill:#4040fd;stroke:none" + d="m 66.5879,92.46246 c 10.195124,10.2172 1.641749,-0.191122 0,0 z" + id="path11864" + inkscape:connector-curvature="0" /> + <path + style="fill:#b5b5f8;stroke:none" + d="m 70.5625,92.46246 c 0.105461,1.878309 0.105461,1.878309 0,0 z" + id="path11866" + inkscape:connector-curvature="0" /> + <path + style="fill:#7272fc;stroke:none" + d="m 72.5499,92.46246 c 0.105448,1.878307 0.105448,1.878307 0,0 z" + id="path11868" + inkscape:connector-curvature="0" /> + <path + style="fill:#9999fa;stroke:none" + d="m 84.1426,92.79365 c 0.2208,0.110427 0.2208,0.110427 0,0 z" + id="path11870" + inkscape:connector-curvature="0" /> + <path + style="fill:#6363fd;stroke:none" + d="m 89.1109,92.79365 c 0.2208,0.110427 0.2208,0.110427 0,0 z" + id="path11872" + inkscape:connector-curvature="0" /> + <path + style="fill:#9999fa;stroke:none" + d="m 93.0856,92.79365 c 0.220767,0.110427 0.220767,0.110427 0,0 z" + id="path11874" + inkscape:connector-curvature="0" /> + <path + style="fill:#3333ff;stroke:none" + d="m 97.3914,92.46246 c 0.129685,2.688884 0.129685,2.688884 0,0 z" + id="path11876" + inkscape:connector-curvature="0" /> + <path + style="fill:#5f5ff9;stroke:none" + d="m 98.3851,92.46246 c 0.129671,2.68889 0.129671,2.68889 0,0 z" + id="path11878" + inkscape:connector-curvature="0" /> + <path + style="fill:#3333ff;stroke:none" + d="m 112.2963,92.46246 c -8.73466,4.379899 2.981,12.37278 0,0 z" + id="path11880" + inkscape:connector-curvature="0" /> + <path + style="fill:#6363f9;stroke:none" + d="m 113.29,92.46246 c 0.12967,2.68889 0.12967,2.68889 0,0 z" + id="path11882" + inkscape:connector-curvature="0" /> + <path + style="fill:#cacaca;stroke:none" + d="m 256.3772,92.46246 c -0.77986,13.09071 2.11358,12.70614 0,0 z m 14.9049,0 c -1.82189,13.01136 1.05189,14.94397 0,0 z" + id="path11884" + inkscape:connector-curvature="0" /> + <path + style="fill:#e0e0e0;stroke:none" + d="m 280.2251,92.46246 c 233.47327,2.036659 467.02356,0.52692 700.5312,0.99367 -233.49481,-2.187123 -467.02391,-0.4788 -700.5312,-0.99367 z" + id="path11886" + inkscape:connector-curvature="0" /> + <path + style="fill:#91ac72;stroke:none" + d="m 18.8922,93.45613 c 0.178902,1.371841 0.178902,1.371841 0,0 z" + id="path11888" + inkscape:connector-curvature="0" /> + <path + style="fill:#fdfdfd;stroke:none" + d="m 22.8668,93.45613 c -5.47318,5.053127 8.132636,2.139286 0,0 z" + id="path11890" + inkscape:connector-curvature="0" /> + <path + style="fill:#3e3efe;stroke:none" + d="m 82.4865,94.44979 c 1.412183,11.38218 12.48575,-0.525162 0,0 z" + id="path11892" + inkscape:connector-curvature="0" /> + <path + style="fill:#a7a7f9;stroke:none" + d="m 89.1109,93.78731 c 0.2208,0.110427 0.2208,0.110427 0,0 z" + id="path11894" + inkscape:connector-curvature="0" /> + <path + style="fill:#3e3efe;stroke:none" + d="m 91.4294,94.44979 c 1.412183,11.38218 12.48575,-0.525161 0,0 z" + id="path11896" + inkscape:connector-curvature="0" /> + <path + style="fill:#e2e2e2;stroke:none" + d="m 280.2251,93.45613 c 233.47327,2.036638 467.02356,0.526914 700.5312,0.99366 C 747.26149,92.262689 513.73239,93.970994 280.2251,93.45613 z" + id="path11898" + inkscape:connector-curvature="0" /> + <path + style="fill:#9d9d9d;stroke:none" + d="m 8.9555,94.44979 c -2.2372434,19.69807 35.671638,-0.05801 2.426314,8.00404 L 9.2748559,100.35877 8.9555,94.44979 z" + id="path11900" + inkscape:connector-curvature="0" /> + <path + style="fill:#ededed;stroke:none" + d="m 9.9492,94.44979 c -0.081405,21.11677 29.800412,-3.954106 1.12333,0 l -1.12333,0 z" + id="path11902" + inkscape:connector-curvature="0" /> + <path + style="fill:#cbd6e0;stroke:none" + d="m 43.7337,94.44979 c -1.692067,18.34031 27.160753,-0.162909 0,0 z" + id="path11904" + inkscape:connector-curvature="0" /> + <path + style="fill:#5252fd;stroke:none" + d="m 75.5308,94.44979 c -4.219371,14.06695 11.984479,-0.825331 0,0 z" + id="path11906" + inkscape:connector-curvature="0" /> + <path + style="fill:#3333ff;stroke:none" + d="m 88.4484,94.44979 c 0.105461,1.87831 0.105461,1.87831 0,0 z" + id="path11908" + inkscape:connector-curvature="0" /> + <path + style="fill:#5f5ff9;stroke:none" + d="m 89.4421,94.44979 c 0.105461,1.87831 0.105461,1.87831 0,0 z" + id="path11910" + inkscape:connector-curvature="0" /> + <path + style="fill:#8181f8;stroke:none" + d="m 102.3597,94.44979 c 1.07488,0.539298 1.07488,0.539298 0,0 z" + id="path11912" + inkscape:connector-curvature="0" /> + <path + style="fill:#3333ff;stroke:none" + d="m 103.3534,94.44979 c -7.693128,-4.356411 8.15495,10.64652 0,0 z" + id="path11914" + inkscape:connector-curvature="0" /> + <path + style="fill:#e3e3e3;stroke:none" + d="m 280.2251,94.44979 c 233.47327,2.036638 467.02356,0.526914 700.5312,0.99366 C 747.26149,93.256349 513.73239,94.964654 280.2251,94.44979 z" + id="path11916" + inkscape:connector-curvature="0" /> + <path + style="fill:#e4e4e4;stroke:none" + d="m 280.2251,95.44345 c 233.47327,2.036638 467.02356,0.526914 700.5312,0.99366 C 747.26149,94.250009 513.73239,95.958314 280.2251,95.44345 z" + id="path11918" + inkscape:connector-curvature="0" /> + <path + style="fill:#000000;stroke:none" + d="m 987.7119,95.44345 c 1.96806,8.25249 8.10455,-4.526425 0,0 z" + id="path11920" + inkscape:connector-curvature="0" /> + <path + style="fill:#ececec;stroke:none" + d="m 33.7971,96.43711 c 16.254575,27.0426 74.15726,3.304002 106.60406,10.9249 44.62062,-0.11447 89.24132,0.12184 133.86194,0.005 -72.82563,-2.50056 -145.73804,-1.16956 -218.6055,-1.98732 -6.074432,-2.61141 -11.941086,-4.0147 -21.8605,-8.94295 z" + id="path11922" + inkscape:connector-curvature="0" /> + <path + style="fill:#ebebeb;stroke:none" + d="m 54.664,96.43711 c 22.223438,20.52411 69.52553,3.547022 101.49714,8.90078 40.70225,-0.40857 81.50547,-0.80982 122.07656,3.02315 -6.0497,-18.068048 -54.68628,1.438 -79.12219,-5.96376 -46.1632,-0.0457 -92.32641,0.0473 -138.48961,0.002 L 60.974167,96.594174 54.664,96.43711 z" + id="path11924" + inkscape:connector-curvature="0" /> + <path + style="fill:#8e8ef3;stroke:none" + d="m 100.7036,97.09958 c 0.1104,0.220793 0.1104,0.220793 0,0 z" + id="path11926" + inkscape:connector-curvature="0" /> + <path + style="fill:#9494f2;stroke:none" + d="m 109.6462,97.09958 c 0.11063,0.220793 0.11063,0.220793 0,0 z" + id="path11928" + inkscape:connector-curvature="0" /> + <path + style="fill:#c5c5ec;stroke:none" + d="m 110.309,96.43711 c -3.68369,7.22797 5.52815,-1.555787 0,0 z" + id="path11930" + inkscape:connector-curvature="0" /> + <path + style="fill:#e8e8e8;stroke:none" + d="m 119.2519,96.43711 c 31.39091,12.74355 72.5823,2.588664 107.8072,5.95904 25.17395,5.44527 38.46,-9.262002 5.5572,-6.027955 -37.64517,0.32166 -75.58752,-0.08917 -113.3644,0.06892 z" + id="path11932" + inkscape:connector-curvature="0" /> + <path + style="fill:#e6e6e6;stroke:none" + d="m 280.2251,96.43711 c 233.47327,2.036618 467.02356,0.526909 700.5312,0.99365 C 747.26149,95.243682 513.73239,96.951969 280.2251,96.43711 z" + id="path11934" + inkscape:connector-curvature="0" /> + <path + style="fill:#fab481;stroke:none" + d="m 1010.2382,96.76829 c 0.2186,0.11043 0.2186,0.11043 0,0 z" + id="path11936" + inkscape:connector-curvature="0" /> + <path + style="fill:#5b7aa5;stroke:none" + d="m 45.721,97.43076 c 0.329174,2.63329 0.329174,2.63329 0,0 z" + id="path11938" + inkscape:connector-curvature="0" /> + <path + style="fill:#e7e7e7;stroke:none" + d="m 280.2251,97.43076 c 233.47327,2.036638 467.02356,0.526914 700.5312,0.99366 C 747.26149,96.237319 513.73239,97.945624 280.2251,97.43076 z" + id="path11940" + inkscape:connector-curvature="0" /> + <path + style="fill:#f79044;stroke:none" + d="m 1015.5344,97.43076 c -22.70393,-3.970943 -1.4776,11.83786 0,0 z" + id="path11942" + inkscape:connector-curvature="0" /> + <path + style="fill:#819d63;stroke:none" + d="m 20.8795,98.42442 c 1.907875,3.04876 5.753121,-0.633199 0,0 z" + id="path11944" + inkscape:connector-curvature="0" /> + <path + style="fill:#7878f6;stroke:none" + d="m 111.6335,99.0869 c 0.11063,0.220793 0.11063,0.220793 0,0 z" + id="path11946" + inkscape:connector-curvature="0" /> + <path + style="fill:#fab481;stroke:none" + d="m 263.9956,98.75562 c 0.2206,0.110427 0.2206,0.110427 0,0 z" + id="path11948" + inkscape:connector-curvature="0" /> + <path + style="fill:#e8e8e8;stroke:none" + d="M 280.2251,98.42442 C 513.69837,100.4611 747.24866,98.951345 980.7563,99.4181 747.26149,97.230955 513.73239,98.939295 280.2251,98.42442 z" + id="path11950" + inkscape:connector-curvature="0" /> + <path + style="fill:#f79044;stroke:none" + d="m 269.2948,99.4181 c -17.74177,-1.640219 -3.84821,9.30626 0,0 z" + id="path11952" + inkscape:connector-curvature="0" /> + <path + style="fill:#e9e9e9;stroke:none" + d="m 280.2251,99.4181 c 233.47327,2.03662 467.02356,0.526909 700.5312,0.99365 C 747.26149,98.224667 513.73239,99.93296 280.2251,99.4181 z" + id="path11954" + inkscape:connector-curvature="0" /> + <path + style="fill:#eaeaea;stroke:none" + d="m 280.2251,100.41175 c 233.47327,2.03664 467.02356,0.52691 700.5312,0.99366 -233.49481,-2.187103 -467.02391,-0.47879 -700.5312,-0.99366 z" + id="path11956" + inkscape:connector-curvature="0" /> + <path + style="fill:#e9e9e9;stroke:none" + d="m 280.2251,101.40541 c 233.47327,2.03664 467.02356,0.52691 700.5312,0.99366 -233.49481,-2.1871 -467.02391,-0.4788 -700.5312,-0.99366 z" + id="path11958" + inkscape:connector-curvature="0" /> + <path + style="fill:#9dbee1;stroke:none" + d="m 51.683,102.39907 c -3.729334,-0.60914 -1.22376,5.30291 0,0 z" + id="path11960" + inkscape:connector-curvature="0" /> + <path + style="fill:#e7e7e7;stroke:none" + d="m 280.2251,102.39907 c 233.47327,2.03664 467.02356,0.52691 700.5312,0.99366 -233.49481,-2.1871 -467.02391,-0.4788 -700.5312,-0.99366 z" + id="path11962" + inkscape:connector-curvature="0" /> + <path + style="fill:#909090;stroke:none" + d="m 1004.6041,102.39907 c 3.4085,0.36028 3.4085,0.36028 0,0 z" + id="path11964" + inkscape:connector-curvature="0" /> + <path + style="fill:#6c97c6;stroke:none" + d="m 50.6893,104.3864 c 2.404485,2.09596 5.517357,-3.85149 0,0 z" + id="path11966" + inkscape:connector-curvature="0" /> + <path + style="fill:#e5e5e5;stroke:none" + d="m 280.2251,103.39273 c 233.47327,2.03666 467.02356,0.52692 700.5312,0.99367 -233.49481,-2.18712 -467.02391,-0.4788 -700.5312,-0.99367 z" + id="path11968" + inkscape:connector-curvature="0" /> + <path + style="fill:#929292;stroke:none" + d="m 258.3645,104.3864 c 3.40846,0.36028 3.40846,0.36028 0,0 z" + id="path11970" + inkscape:connector-curvature="0" /> + <path + style="fill:#e2e2e2;stroke:none" + d="m 280.2251,104.3864 c 233.47327,2.03664 467.02356,0.52691 700.5312,0.99366 -233.49481,-2.1871 -467.02391,-0.4788 -700.5312,-0.99366 z" + id="path11972" + inkscape:connector-curvature="0" /> + <path + style="fill:#e0e0e0;stroke:none" + d="m 280.2251,105.38006 c 233.47327,2.03664 467.02356,0.52691 700.5312,0.99366 -233.49481,-2.1871 -467.02391,-0.4788 -700.5312,-0.99366 z" + id="path11974" + inkscape:connector-curvature="0" /> + <path + style="fill:#dddddd;stroke:none" + d="m 280.2251,106.37372 c 233.47327,2.03664 467.02356,0.52691 700.5312,0.99366 -233.49481,-2.1871 -467.02391,-0.4788 -700.5312,-0.99366 z" + id="path11976" + inkscape:connector-curvature="0" /> + <path + style="fill:#a7a7a7;stroke:none" + d="m 4.9809,110.34837 c 260.70607,2.0641 521.49094,0.50928 782.23162,0.99366 78.42583,0 156.85165,0 235.27748,0 C 683.33522,109.25928 344.14654,110.82612 4.9809,110.34837 z" + id="path11978" + inkscape:connector-curvature="0" /> + <path + style="fill:#868686;stroke:none" + d="m 4.9809,789.0191 c 338.50727,0 677.01453,0 1015.5218,0 -267.2379,-2.00642 -534.56459,-0.63408 -801.83814,-0.96515 -57.27438,0.0866 -114.54869,0.23253 -171.822662,0.4667 -24.455172,20.38502 -60.212048,-29.36718 -15.536172,-20.36845 328.548454,0.0549 657.096944,-0.10977 985.645374,0.0822 16.2987,29.92847 -2.8059,-16.26568 -25.13309,-0.61163 C 664.1212,766.68941 336.4116,767.32615 8.708925,767.2109 0.41716393,771.74225 5.8577299,781.94745 4.9809,789.0191 z" + id="path11980" + inkscape:connector-curvature="0" /> + <path + style="fill:#bebebe;stroke:none" + d="m 5.9746,787.0317 c -2.7398093,-31.04183 38.939947,-13.81648 58.349442,-17.8859 318.726218,0 637.452438,0 956.178658,0 C 712.84317,766.95511 405.15896,768.65283 97.490058,768.30236 74.213823,778.13448 1.29632,747.72367 5.9746,787.0317 z" + id="path11982" + inkscape:connector-curvature="0" /> + <path + style="fill:#efefef;stroke:none" + d="m 6.9682,769.1458 c -4.7825533,31.64526 40.15719,13.46891 59.962399,17.8859 318.188601,0 636.377201,0 954.565801,0 4.7825,-31.64526 -40.15719,-13.46891 -59.9624,-17.8859 -318.1886,0 -636.3772,0 -954.5658,0 z" + id="path11984" + inkscape:connector-curvature="0" /> + <path + style="fill:#f8f8f8;stroke:none" + d="m 6.9682,787.0317 c 260.70606,2.06439 521.49094,0.50936 782.23162,0.9938 77.10096,0 154.20192,0 231.30288,0 C 682.67549,785.94114 344.80745,787.5101 6.9682,787.0317 z" + id="path11986" + inkscape:connector-curvature="0" /> + <path + style="fill:#b6b6b6;stroke:none" + d="m 1020.5027,787.0317 c -1.5043,6.30032 6.3003,-1.50415 0,0 z" + id="path11988" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Capa"> + <rect + style="color:#000000;fill:#f8e2e5;fill-opacity:1;stroke:#801c03;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect13143" + width="791.16772" + height="657.54028" + x="334.17157" + y="265.94623" + ry="3" + rx="3" /> + <rect + style="color:#000000;fill:#c91d08;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect2985" + width="720.9303" + height="161.59273" + x="360.52539" + y="353.2215" + ry="0" /> + <image + style="display:inline" + y="-847.50403" + x="480.54413" + id="image5379" + xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAFWBkADASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+kNL TWNAm7DWAPFKqBaQKaf0FFkhK7I3bCmuA8XXAx5Y6k12Op3yW0LHcAcV5dq98by8Yg5UGvHzCom1 BHv5Nh5Sqc72RngkUE96CD1pvSvPsfWIkB4zSkfnUa+1PDGk7CaGkZFU7qAOhyO1XScGon5GO30p OxcHZnH3ts0MhOOM0y2Yo4Oa6K7tVlBz1rnpYTDMR054NaRlpYuStqjpbG4BUetaQmwBXK2lz5WM 1ppeggVMtAcVLU2TPx1oWUscCscXDSHAzWxpNu8z7n6DtWPMY1FGEbmzaIVTcafcSkKFFSECJKoy SF2JrGpK+h50fflcikbdUWcVIcYPFROAehpxR1RIjJg9aljfJFQspzT0yBSk76GjSsaEIDMOK6qy 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 e9T28pA4zjNFFTLVG1JvmP/Z " + height="115.76289" + width="541.58075" /> + <flowRoot + xml:space="preserve" + id="flowRoot13135" + style="-inkscape-font-specification:Ubuntu;font-family:Ubuntu;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:28px;text-anchor:start;text-align:start;writing-mode:lr-tb;line-height:125%;text-indent:0;text-decoration:none;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;opacity:1;color:#000000;fill-opacity:1;fill-rule:nonzero;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;stroke:none;stroke-opacity:1;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;fill:#e63519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dashoffset:0;baseline-shift:baseline"><flowRegion + id="flowRegion13137"><rect + id="rect13139" + width="838.74854" + height="205.81429" + x="309.82794" + y="275.57925" /></flowRegion><flowPara + id="flowPara13141" /></flowRoot> <text + xml:space="preserve" + style="font-size:33.71040726px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#912312;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold" + x="444.53888" + y="315.80386" + id="text13145" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan13147" + x="444.53888" + y="315.80386">Group Name</tspan></text> + <rect + style="color:#000000;fill:#552200;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + id="rect13149" + width="63.072121" + height="59.752533" + x="360.40866" + y="278.7923" /> + <flowRoot + xml:space="preserve" + id="flowRoot13172" + style="-inkscape-font-specification:Ubuntu Bold;font-family:Ubuntu;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal;font-size:28px;text-anchor:start;text-align:start;writing-mode:lr-tb;line-height:125%;text-indent:0;text-decoration:none;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;opacity:1;color:#000000;fill-opacity:1;fill-rule:nonzero;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;stroke:#f79c49;stroke-opacity:1;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;fill:#f8e2e5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dashoffset:0;baseline-shift:baseline"><flowRegion + id="flowRegion13174"><rect + id="rect13176" + width="608.59064" + height="202.49469" + x="440.39832" + y="636.3075" /></flowRegion><flowPara + id="flowPara13178" /></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot13180" + style="font-size:32.27070618px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:justify;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#c92106;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ubuntu;-inkscape-font-specification:Ubuntu" + transform="matrix(0.9916114,0,0,0.9916114,147.45425,-64.767219)"><flowRegion + id="flowRegion13182"><rect + id="rect13184" + width="519.88116" + height="238.16574" + x="421.58731" + y="620.8161" + style="font-size:32.27070618px;font-weight:normal;text-align:justify;text-anchor:start;fill:#c92106;fill-opacity:1;stroke:none;-inkscape-font-specification:Ubuntu" /></flowRegion><flowPara + id="flowPara13186">Right now, the public web space of this group, it's under construction</flowPara><flowPara + id="flowPara13192" /><flowPara + id="flowPara13194">Please support the development</flowPara><flowPara + id="flowPara13188" /><flowPara + id="flowPara13190" /></flowRoot> <image + y="353.7063" + x="540.76575" + id="image3492" + xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a +HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy +MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACgAhwDASIA +AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA +AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 +ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm +p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA +AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx +BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK +U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 +uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDxe2TJ +FdDDa7LdWAJPU47VnQWawgfNuNXCzkYLHHpmvLrS5nofR4OKox95al63eCN9067x/dzircWpJBdM +9pM9op4/du1YmB/eNSQiNZlaWJpEByUDbSfxrndNbs6JYhtWR3K+NPstqI4rqaZ+7SID+p/wqCPx +tdvcq8twscIIyqxgsR7defrVKz1fQtyxz6FDFGTgyeaXx78jJrctrnwtcyCGP+zw3bfFtH/fTKOa +4akYLem/wJir9TSt/G1ley7Yrfy4V+9LcSBQPw5JNXxr+jSqWF7CAvXJ2/z61m2I8O3N21tax2tz +Koyxgt96r9WAx+tbK2sUSbI4I1TsMD+VedVjTi7KLRvTj1TuVz4j05MKuoQgH+EuDT4/EVhJ8ivu +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 +1nVpt7HA68n8Wp//2Q== +" + height="160" + width="540" /> + </g> +</svg> Deleted: tags/0.0.8/pom.xml =================================================================== --- trunk/pom.xml 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/pom.xml 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,1170 +0,0 @@ -<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>cc.kune</groupId> - <artifactId>kune</artifactId> - <packaging>jar</packaging> - <version>0.0.7</version> - <name>kune</name> - <description> kune free/open/libre collaboration platform </description> - <url>http://kune.ourproject.org</url> - <properties> - <!-- Available versions: http://repo1.maven.org/maven2/com/google/gwt/gwt-dev/ --> - <gwt.version>2.1.1</gwt.version> - <!-- <gwtmaven.version>2.2.0</gwtmaven.version> --> - <gwtmaven.version>2.1.0-1</gwtmaven.version> - <maven.compiler.source>1.6</maven.compiler.source> - <maven.compiler.target>1.6</maven.compiler.target> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <slf4j.version>1.6.1</slf4j.version> - <openjpa.version>2.0.1</openjpa.version> - <skipTests>true</skipTests> - </properties> - <repositories> - <repository> - <id>kune-maven</id> - <url>http://kune.ourproject.org/mavenrepo/</url> - </repository> - <repository> - <id>guice-maven</id> - <name>guice maven</name> - <url>http://guice-maven.googlecode.com/svn/trunk</url> - </repository> - <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>jboss-public-repository-group</id> - <name>JBoss Public Maven Repository Group</name> - <url>https://repository.jboss.org/nexus/content/groups/public-jboss/ - </url> - <layout>default</layout> - <releases> - <enabled>true</enabled> - <updatePolicy>never</updatePolicy> - </releases> - <snapshots> - <enabled>true</enabled> - <updatePolicy>never</updatePolicy> - </snapshots> - </repository> - <repository> - <id>ext-gxt</id> - <name>ext-gxt at jahia</name> - <url>http://maven.jahia.org/maven2/</url> - </repository> - <repository> - <id>cobogw</id> - <name>Cobogw repository at googlecode</name> - <url>http://cobogw.googlecode.com/svn/maven2</url> - </repository> - <repository> - <id>gwt-repo</id> - <url>http://google-web-toolkit.googlecode.com/svn/2.1.0/gwt/maven/</url> - <name>Google Web Toolkit Repository</name> - </repository> - <repository> - <id>gwt-maven-rewraps</id> - <url>http://gwt-maven-rewraps.googlecode.com/hg/</url> - </repository> - <!-- cc --> - <repository> - <id>dyndns-repo</id> - <url>http://maven.dyndns.org/2</url> - </repository> - <repository> - <id>google-maven-snapshot-repository</id> - <name>Google Maven Snapshot Repository</name> - <url>https://oss.sonatype.org/content/repositories/google-snapshots/ - </url> - <snapshots> - <enabled>true</enabled> - </snapshots> - </repository> - <repository> - <id>gwtplatform.snapshot.repo</id> - <name>Gwtplatform snapshot repository</name> - <url>https://oss.sonatype.org/content/repositories/snapshots/</url> - <layout>default</layout> - </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 snapshots</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-releases</id> - <name>XWiki Maven2 Remote Repository for Releases</name> - <url>http://maven.xwiki.org/releases</url> - <releases> - <enabled>true</enabled> - </releases> - <snapshots> - <enabled>false</enabled> - </snapshots> - </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> - <pluginRepositories> - <!-- cc --> - <pluginRepository> - <id>jboss-public-repository-group</id> - <name>JBoss Public Maven Repository Group</name> - <url>https://repository.jboss.org/nexus/content/groups/public-jboss/ - </url> - <layout>default</layout> - <releases> - <enabled>true</enabled> - <updatePolicy>never</updatePolicy> - </releases> - <snapshots> - <enabled>true</enabled> - <updatePolicy>never</updatePolicy> - </snapshots> - </pluginRepository> - <!-- cc --> - <!-- <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>true</enabled> - </snapshots> - <releases> - <enabled>true</enabled> <!-- Workaround for MNG-2974, see note below --> - </releases> - </pluginRepository> - <pluginRepository> - <id>maven2-repository.dev.java.net</id> - <name>Java.net Repository for Maven</name> - <url>http://download.java.net/maven/2/</url> - <layout>default</layout> - </pluginRepository> - <pluginRepository> - <id>gwt-plugin-repo</id> - <url>http://google-web-toolkit.googlecode.com/svn/2.1.0/gwt/maven/</url> - <name>Google Web Toolkit Plugin Repository</name> - </pluginRepository> - <pluginRepository> - <id>onejar-maven-plugin.googlecode.com</id> - <url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url> - </pluginRepository> - </pluginRepositories> - <dependencies> - <dependency> - <groupId>com.google.gwt</groupId> - <artifactId>gwt-servlet</artifactId> - <version>${gwt.version}</version> - </dependency> - <dependency> - <groupId>com.google.gwt</groupId> - <artifactId>gwt-user</artifactId> - <version>${gwt.version}</version> - <scope>provided</scope> - </dependency> - <!-- guice --> - <dependency> - <groupId>com.google.inject</groupId> - <artifactId>guice</artifactId> - <!-- <version>2.1-SNAPSHOT-r1160</version> --> - <version>3.0-rc2</version> - </dependency> - <!-- <dependency> <groupId>com.googlecode.gwt.inject</groupId> <artifactId>gin</artifactId> - <version>gin-1.1-SNAPSHOT</version> </dependency> --> - <dependency> - <groupId>com.google.inject.extensions</groupId> - <artifactId>guice-servlet</artifactId> - <version>3.0-rc2</version> - </dependency> - <dependency> - <groupId>com.google.inject.extensions</groupId> - <artifactId>guice-persist</artifactId> - <version>3.0-rc2</version> - </dependency> - <dependency> - <groupId>com.extjs</groupId> - <artifactId>gxt</artifactId> - <version>2.2.1</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.cobogw.gwt</groupId> - <artifactId>cobogw</artifactId> - <version>1.3.1</version> - </dependency> - <dependency> - <groupId>com.gwtplatform</groupId> - <artifactId>gwtp-all</artifactId> - <version>0.5</version> - <!-- <version>0.6-SNAPSHOT</version> --> - <exclusions> - <exclusion> - <groupId>org.springframework</groupId> - <artifactId>spring-core</artifactId> - </exclusion> - <exclusion> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - </exclusion> - <exclusion> - <groupId>org.springframework</groupId> - <artifactId>spring-beans</artifactId> - </exclusion> - <exclusion> - <groupId>org.springframework</groupId> - <artifactId>spring-web</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.adamtacy</groupId> - <artifactId>gwt-fx</artifactId> - <version>r464</version> - </dependency> - <!-- <dependency> <groupId>com.jhickman.web.gwt</groupId> <artifactId>gwt-customuibinder</artifactId> - <version>0.1</version> </dependency> <dependency> <groupId>com.jhickman.web.gwt</groupId> - <artifactId>gxt-uibinder</artifactId> <version>0.6</version> </dependency> --> - <!-- cc --> - <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>3.0.1</version> - </dependency> - <dependency> - <groupId>com.allen_sauer.gwt.voices.gwt-voices</groupId> - <artifactId>gwt-voices</artifactId> - <version>2.0.0</version> - </dependency> - <!-- utilities --> - <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.5</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.3-rc-1</version> - <!-- <version>2.0-SNAPSHOT-g164</version> --> - <!-- <version>2.0-SNAPSHOT</version> --> - <!-- <version>2.0-SNAPSHOT-g20s</version> --> - </dependency> - <!-- xmpp --> - <dependency> - <groupId>com.calclab.emite</groupId> - <artifactId>emite</artifactId> - <version>r1694</version> - </dependency> - <dependency> - <groupId>com.calclab.emite</groupId> - <artifactId>emite-proxy</artifactId> - <version>0.1</version> - </dependency> - <dependency> - <groupId>com.calclab.emite</groupId> - <artifactId>hablar</artifactId> - <version>r1697</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.1.13</version> - </dependency> - <!-- hibernate JPA --> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-core</artifactId> - <version>3.3.1.GA</version> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-validator</artifactId> - <version>3.1.0.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-commons-annotations</artifactId> - <version>3.3.0.ga</version> - <!-- http://stackoverflow.com/questions/882338/hibernate-preinsertevent-getsource... --> - <exclusions> - <exclusion> - <groupId>org.hibernate</groupId> - <artifactId>hibernate</artifactId> - </exclusion> - </exclusions> - </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> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-tools</artifactId> - <version>3.2.3.GA</version> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-c3p0</artifactId> - <version>3.3.1.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> - <!-- wave use 2.5 --> - <version>2.5</version> - </dependency> - <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - <version>1.2.16</version> - <!-- =roo --> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - <version>${slf4j.version}</version> - <!-- =roo --> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>jcl-over-slf4j</artifactId> - <version>${slf4j.version}</version> - <!-- =roo --> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> - <version>${slf4j.version}</version> - <!-- =roo --> - </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.3.1</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.2</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> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>servlet-api</artifactId> - <version>2.5</version> - <scope>provided</scope> - </dependency> - <!-- testing dependencies --> - <dependency> - <groupId>org.jukito</groupId> - <artifactId>jukito</artifactId> - <version>1.0</version> - <scope>test</scope> - </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.8.1</version> - <!-- =roo --> - <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>1.0.3</version> --> - <version>0.9.4</version> - </dependency> - <!-- wave --> - <dependency> - <groupId>org.waveprotocol</groupId> - <artifactId>waveinabox-server-0.3</artifactId> - <version>0.3.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.waveprotocol</groupId> - <artifactId>proto-msg</artifactId> - <version>0.3.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.waveprotocol</groupId> - <artifactId>gwt-util-src</artifactId> - <version>0.3.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>com.google.guava</groupId> - <artifactId>guava-gwt</artifactId> - <version>r07</version> - </dependency> - <dependency> - <groupId>org.waveprotocol</groupId> - <artifactId>box-src</artifactId> - <version>0.3.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.waveprotocol</groupId> - <artifactId>model-src</artifactId> - <version>0.3.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.waveprotocol</groupId> - <artifactId>client-src</artifactId> - <version>0.3.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.waveprotocol</groupId> - <artifactId>client-common-src</artifactId> - <version>0.3.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.waveprotocol</groupId> - <artifactId>common-src</artifactId> - <version>0.3.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.waveprotocol</groupId> - <artifactId>util-src</artifactId> - <version>0.3.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.waveprotocol</groupId> - <artifactId>concurrencycontrol-src</artifactId> - <version>0.3.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.waveprotocol</groupId> - <artifactId>client-scheduler-src</artifactId> - <version>0.3.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.waveprotocol</groupId> - <artifactId>media-src</artifactId> - <version>0.3.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.waveprotocol</groupId> - <artifactId>communication-src</artifactId> - <version>0.3.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>net.sourceforge.findbugs</groupId> - <artifactId>jsr-305</artifactId> - <version>v0r47</version> - </dependency> - <!-- end wave --> - <dependency> - <groupId>commons-cli</groupId> - <artifactId>commons-cli</artifactId> - <version>1.2</version> - <type>jar</type> - </dependency> - <dependency> - <groupId>commons-codec</groupId> - <artifactId>commons-codec</artifactId> - <version>1.4</version> - <type>jar</type> - </dependency> - <!-- gwtupload --> - <dependency> - <groupId>com.googlecode.gwtupload</groupId> - <artifactId>gwtupload</artifactId> - <version>0.6.3-compat</version> - </dependency> - <!-- end gwtupload --> - </dependencies> - - <!-- <dependency> --> - <!-- <groupId>dom4j</groupId> --> - <!-- <artifactId>dom4j</artifactId> --> - <!-- <version>1.6.1</version> --> - <!-- <type>jar</type> --> - <!-- </dependency> --> - <!-- <dependency> --> - <!-- <groupId>com.google.code.guice</groupId> --> - <!-- <artifactId>guice-assistedinject</artifactId> --> - <!-- <version>2.0</version> --> - <!-- </dependency> --> - <!-- <dependency> --> - <!-- <groupId>jline<!/groupId> --> - <!-- <artifactId>jline</artifactId> --> - <!-- <version>0.9.94</version> --> - <!-- <type>jar</type> --> - <!-- </dependency> --> - <!-- <dependency> --> - <!-- <groupId>org.gnu.inet</groupId> --> - <!-- <artifactId>libidn</artifactId> --> - <!-- <version>1.15</version> --> - <!-- <type>jar</type> --> - <!-- </dependency> --> - <!-- <dependency> --> - <!-- <groupId>com.google.protobuf</groupId> --> - <!-- <artifactId>protobuf-java</artifactId> --> - <!-- <version>2.3.0</version> --> - <!-- <type>jar</type> --> - <!-- </dependency> --> - <!-- <dependency> --> - <!-- <groupId>xpp3</groupId> --> - <!-- <artifactId>xpp3</artifactId> --> - <!-- <version>1.1.4c</version> --> - <!-- <type>jar</type> --> - <!-- </dependency> --> - <!-- <dependency> --> - <!-- <groupId>xpp3</groupId> --> - <!-- <artifactId>xpp3_xpath</artifactId> --> - <!-- <version>1.1.4c</version> --> - <!-- <type>jar</type> --> - <!-- </dependency> --> - <!-- <dependency> --> - <!-- <groupId>aopalliance</groupId> --> - <!-- <artifactId>aopalliance</artifactId> --> - <!-- <version>1.0</version> --> - <!-- <type>jar</type> --> - <!-- </dependency> --> - <!-- <dependency> --> - <!-- <groupId>org.wave-protocol</groupId> --> - <!-- <artifactId>xmpp</artifactId> --> - <!-- <version>1.0.0</version> --> - <!-- </dependency> --> - <!-- <dependency> --> - <!-- <groupId>org.wave-protocol</groupId> --> - <!-- <artifactId>whack</artifactId> --> - <!-- <version>1.0.0</version> --> - <!-- </dependency> --> - <distributionManagement> - <repository> - <id>kune.ourproject.org</id> - <url>scpexe://kune.ourproject.org/home/groups/kune/htdocs/mavenrepo/ </url> - </repository> - </distributionManagement> - <issueManagement> - <system>kune issues list at ourproject.org</system> - <url>http://kune.ourproject.org/issues/</url> - </issueManagement> - <developers> - <developer> - <id>dani</id> - <name>Daniel Gómez Blasco</name> - <email>[email protected]</email> - </developer> - <developer> - <name>Samer Hassan</name> - <email>[email protected]</email> - </developer> - <developer> - <name>Vicente J. Ruiz Jurado</name> - <email>[email protected]</email> - </developer> - </developers> - <scm> - <url>svn://scm.ourproject.org/svnroot/kune/trunk</url> - </scm> - <build> - <plugins> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>exec-maven-plugin</artifactId> - <version>1.1.1</version> - <executions> - <execution> - <phase>exec</phase> - <goals> - <goal>java</goal> - </goals> - </execution> - </executions> - <configuration> - <mainClass>cc.kune.wave.server.WaveMain</mainClass> - <commandlineArgs>-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8001</commandlineArgs> - <systemProperties> - <systemProperty> - <key>wave.server.config</key> - <value>src/main/resources/wave-server.properties</value> - </systemProperty> - <systemProperty> - <key>org.eclipse.jetty.util.resource.FileResource.checkAliases</key> - <!-- <key>org.mortbay.util.FileResource.checkAliases</key> --> - <value>False</value> - </systemProperty> - <systemProperty> - <key>java.security.auth.login.config</key> - <value>src/main/resources/jaas.config</value> - </systemProperty> - <systemProperty> - <key>DEBUG</key> - <value>true</value> - </systemProperty> - <systemProperty> - <!-- <key>org.eclipse.jetty.util.log.DEBUG</key> --> - <key>org.eclipse.jetty.util.log.INFO</key> - <value>true</value> - </systemProperty> - </systemProperties> - <classpathScope>runtime</classpathScope> - </configuration> - </plugin> - <plugin> - <!-- =roo --> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-war-plugin</artifactId> - <version>2.1-beta-1</version> - <!-- <configuration> <webXml>target/web.xml</webXml> </configuration> --> - </plugin> - <plugin> - <!-- =roo --> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.1</version> - <configuration> - <source>1.6</source> - <target>1.6</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> - <!-- =roo --> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-resources-plugin</artifactId> - <version>2.4.2</version> - <configuration> - <encoding>UTF-8</encoding> - </configuration> - </plugin> - <plugin> - <!-- =roo + custom --> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <version>2.8</version> - <configuration> - <excludes> - <exclude>**/*_Roo_*</exclude> - </excludes> - <forkMode>pertest</forkMode> - <!-- Skip the normal tests, we'll run them in the integration-test - phase --> - <skipTests>${skipTests}</skipTests> - </configuration> - <executions> - <execution> - <phase>integration-test</phase> - <goals> - <goal>test</goal> - </goals> - <configuration> - <skip>false</skip> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <!-- =roo --> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-assembly-plugin</artifactId> - <configuration> - <descriptorRefs> - <descriptorRef>jar-with-dependencies</descriptorRef> - </descriptorRefs> - <dependencySets> - <dependencySet> - <scope>runtime</scope> - <unpackOptions> - <excludes> - <exclude>**/gxt/**</exclude> - <exclude>**/extjs/**</exclude> - <exclude>**extjs**</exclude> - <exclude>**gxt**</exclude> - </excludes> - </unpackOptions> - </dependencySet> - </dependencySets> - </configuration> - </plugin> - <plugin> - <!-- =roo sin spring executions --> - <artifactId>maven-eclipse-plugin</artifactId> - <version>2.8</version> - <configuration> - <downloadSources>true</downloadSources> - <downloadJavadocs>false</downloadJavadocs> - <wtpversion>2.0</wtpversion> - <additionalBuildcommands> - <buildCommand> - <name>com.google.gwt.eclipse.core.gwtProjectValidator </name> - </buildCommand> - </additionalBuildcommands> - <workspaceCodeStylesURL>http://kune.ourproject.org/kune.formatter.eclipse.preferences.xml</workspaceCodeStylesURL> - <additionalProjectnatures> - <!-- <projectnature>org.eclipse.ajdt.ui.ajnature</projectnature> --> - <projectnature>com.google.gwt.eclipse.core.gwtNature </projectnature> - </additionalProjectnatures> - </configuration> - </plugin> - <plugin> - <!-- =roo --> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-deploy-plugin</artifactId> - <version>2.5</version> - </plugin> - <plugin> - <!-- =roo --> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-idea-plugin</artifactId> - <version>2.2</version> - <configuration> - <downloadSources>true</downloadSources> - <dependenciesAsLibraries>true</dependenciesAsLibraries> - </configuration> - </plugin> - <plugin> - <!-- =roo --> - <groupId>org.codehaus.mojo</groupId> - <artifactId>tomcat-maven-plugin</artifactId> - <version>1.0</version> - <configuration> - <path>/</path> - </configuration> - </plugin> - <plugin> - <!-- =roo --> - <groupId>org.mortbay.jetty</groupId> - <artifactId>jetty-maven-plugin</artifactId> - <version>7.1.2.v20100523</version> - <!-- <version>7.2.1.v20101111</version> --> - <configuration> - <webAppConfig> - <!-- <contextPath>/${project.name}</contextPath> --> - <contextPath>/</contextPath> - </webAppConfig> - <webAppSourceDirectory>${project.build.directory}/${project.build.finalName}</webAppSourceDirectory> - <!-- <reload>manual</reload> <scanIntervalSeconds>0</scanIntervalSeconds> --> - </configuration> - </plugin> - <!-- pensar/probar: openjpa-maven-plugin --> - <!-- gwtp & GenEvent need this plugin --> - <!-- maybe test: http://mojo.codehaus.org/apt-maven-plugin/index.html --> - <!-- instead of this: https://code.google.com/p/maven-annotation-plugin/ --> - <!-- <plugin> <groupId>org.bsc.maven</groupId> <artifactId>maven-processor-plugin</artifactId> - <version>1.3.7</version> <executions> <execution> <id>process</id> <goals> - <goal>process</goal> </goals> <phase>generate-sources</phase> </execution> - </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>apt-maven-plugin</artifactId> - <version>1.0-alpha-4</version> <executions> <execution> <goals> <goal>process</goal> - <goal>test-process</goal> </goals> </execution> </executions> </plugin> --> - <!-- BETTER user: http://code.google.com/p/acris/wiki/AnnotationProcessing --> - <plugin> - <!-- =roo --> - <groupId>org.codehaus.mojo</groupId> - <artifactId>gwt-maven-plugin</artifactId> - <version>${gwtmaven.version}</version> - <configuration> - <compileReport>true</compileReport> - <logLevel>INFO</logLevel> - <style>OBF</style> - <noServer>true</noServer> - <gwtVersion>${gwt.version}</gwtVersion> - <runTarget>/ws/ws.html?log_level=DEBUG</runTarget> - <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp> - <modules> - <module>${project.groupId}.Kune</module> - </modules> - <copyWebapp>true</copyWebapp> - <soyc>false</soyc> - <extraJvmArgs>-Xmx1024m -Xss1024k</extraJvmArgs> - </configuration> - <executions> - <execution> - <configuration> - <extraJvmArgs>-Xmx1024M</extraJvmArgs> - </configuration> - <id>gwtcompile</id> - <phase>prepare-package</phase> - <goals> - <goal>compile</goal> - <!-- http://mojo.codehaus.org/gwt-maven-plugin/user-guide/library.html --> - <!-- <goal>resources</goal> --> - </goals> - </execution> - </executions> - <dependencies> - <dependency> - <groupId>com.google.gwt</groupId> - <artifactId>gwt-dev</artifactId> - <version>${gwt.version}</version> - </dependency> - <dependency> - <groupId>com.google.gwt</groupId> - <artifactId>gwt-user</artifactId> - <version>${gwt.version}</version> - </dependency> - </dependencies> - </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 <[email protected]></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> - <configuration> - <archive> - <manifest> - <addClasspath>true</addClasspath> - <mainClass>cc.kune.wave.server.WaveMain</mainClass> - <!-- <classpathPrefix>~/.m2/repository/</classpathPrefix> --> - <!-- <classpathLayoutType>repository</classpathLayoutType> --> - <!-- NOTE: Deprecated in version 2.4. Use 'classpathLayoutType' - instead. --> - <classpathMavenRepositoryLayout>true</classpathMavenRepositoryLayout> - <!-- <packageName>cc.kune.wave.server</packageName> --> - </manifest> - <manifestEntries> - <mode>development</mode> - <url>${project.url}</url> - </manifestEntries> - </archive> - </configuration> - <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.dstovall</groupId> - <artifactId>onejar-maven-plugin</artifactId> - <version>1.4.4</version> - <executions> - <execution> - <configuration> - <!-- Optional --> - <!-- <onejarVersion>0.97</onejarVersion> --> - <!-- Optional, use only if you need to include native libraries - (dll's) --> - <!-- <binlibs> --> - <!-- <fileSet> --> - <!-- <directory>${project.build.directory}/${project.build.finalName}</directory> --> - <!-- <includes> --> - <!-- <include>**</include> --> - <!-- </includes> --> - <!-- </fileSet> --> - <!-- </binlibs> --> - <!-- Optional, default is false --> - <attachToBuild>true</attachToBuild> - <!-- Optional, default is "onejar" --> - <classifier>onejar</classifier> - </configuration> - <goals> - <goal>one-jar</goal> - </goals> - </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> <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> --> - </plugins> - <!-- <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory> --> - <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory> - <!-- <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> --> - <extensions> - <extension> - <groupId>org.apache.maven.wagon</groupId> - <artifactId>wagon-ssh-external</artifactId> - <version>1.0-beta-2</version> - </extension> - </extensions> - </build> - <reporting> - <plugins> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>gwt-maven-plugin</artifactId> - <version>${gwtmaven.version}</version> - <reportSets> - <reportSet> - <reports> - <report>compile-report</report> - </reports> - </reportSet> - </reportSets> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jxr-plugin</artifactId> - <version>2.2</version> - </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> - <version>2.4</version> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>jdepend-maven-plugin</artifactId> - <version>2.0-beta-2</version> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>findbugs-maven-plugin</artifactId> - <version>2.3.2</version> - </plugin> - </plugins> - </reporting> -</project> Copied: tags/0.0.8/pom.xml (from rev 1383, trunk/pom.xml) =================================================================== --- tags/0.0.8/pom.xml (rev 0) +++ tags/0.0.8/pom.xml 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,1170 @@ +<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>cc.kune</groupId> + <artifactId>kune</artifactId> + <packaging>jar</packaging> + <version>0.0.8</version> + <name>kune</name> + <description> kune free/open/libre collaboration platform </description> + <url>http://kune.ourproject.org</url> + <properties> + <!-- Available versions: http://repo1.maven.org/maven2/com/google/gwt/gwt-dev/ --> + <gwt.version>2.1.1</gwt.version> + <!-- <gwtmaven.version>2.2.0</gwtmaven.version> --> + <gwtmaven.version>2.1.0-1</gwtmaven.version> + <maven.compiler.source>1.6</maven.compiler.source> + <maven.compiler.target>1.6</maven.compiler.target> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <slf4j.version>1.6.1</slf4j.version> + <openjpa.version>2.0.1</openjpa.version> + <skipTests>true</skipTests> + </properties> + <repositories> + <repository> + <id>kune-maven</id> + <url>http://kune.ourproject.org/mavenrepo/</url> + </repository> + <repository> + <id>guice-maven</id> + <name>guice maven</name> + <url>http://guice-maven.googlecode.com/svn/trunk</url> + </repository> + <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>jboss-public-repository-group</id> + <name>JBoss Public Maven Repository Group</name> + <url>https://repository.jboss.org/nexus/content/groups/public-jboss/ + </url> + <layout>default</layout> + <releases> + <enabled>true</enabled> + <updatePolicy>never</updatePolicy> + </releases> + <snapshots> + <enabled>true</enabled> + <updatePolicy>never</updatePolicy> + </snapshots> + </repository> + <repository> + <id>ext-gxt</id> + <name>ext-gxt at jahia</name> + <url>http://maven.jahia.org/maven2/</url> + </repository> + <repository> + <id>cobogw</id> + <name>Cobogw repository at googlecode</name> + <url>http://cobogw.googlecode.com/svn/maven2</url> + </repository> + <repository> + <id>gwt-repo</id> + <url>http://google-web-toolkit.googlecode.com/svn/2.1.0/gwt/maven/</url> + <name>Google Web Toolkit Repository</name> + </repository> + <repository> + <id>gwt-maven-rewraps</id> + <url>http://gwt-maven-rewraps.googlecode.com/hg/</url> + </repository> + <!-- cc --> + <repository> + <id>dyndns-repo</id> + <url>http://maven.dyndns.org/2</url> + </repository> + <repository> + <id>google-maven-snapshot-repository</id> + <name>Google Maven Snapshot Repository</name> + <url>https://oss.sonatype.org/content/repositories/google-snapshots/ + </url> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + <repository> + <id>gwtplatform.snapshot.repo</id> + <name>Gwtplatform snapshot repository</name> + <url>https://oss.sonatype.org/content/repositories/snapshots/</url> + <layout>default</layout> + </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 snapshots</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-releases</id> + <name>XWiki Maven2 Remote Repository for Releases</name> + <url>http://maven.xwiki.org/releases</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>false</enabled> + </snapshots> + </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> + <pluginRepositories> + <!-- cc --> + <pluginRepository> + <id>jboss-public-repository-group</id> + <name>JBoss Public Maven Repository Group</name> + <url>https://repository.jboss.org/nexus/content/groups/public-jboss/ + </url> + <layout>default</layout> + <releases> + <enabled>true</enabled> + <updatePolicy>never</updatePolicy> + </releases> + <snapshots> + <enabled>true</enabled> + <updatePolicy>never</updatePolicy> + </snapshots> + </pluginRepository> + <!-- cc --> + <!-- <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>true</enabled> + </snapshots> + <releases> + <enabled>true</enabled> <!-- Workaround for MNG-2974, see note below --> + </releases> + </pluginRepository> + <pluginRepository> + <id>maven2-repository.dev.java.net</id> + <name>Java.net Repository for Maven</name> + <url>http://download.java.net/maven/2/</url> + <layout>default</layout> + </pluginRepository> + <pluginRepository> + <id>gwt-plugin-repo</id> + <url>http://google-web-toolkit.googlecode.com/svn/2.1.0/gwt/maven/</url> + <name>Google Web Toolkit Plugin Repository</name> + </pluginRepository> + <pluginRepository> + <id>onejar-maven-plugin.googlecode.com</id> + <url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url> + </pluginRepository> + </pluginRepositories> + <dependencies> + <dependency> + <groupId>com.google.gwt</groupId> + <artifactId>gwt-servlet</artifactId> + <version>${gwt.version}</version> + </dependency> + <dependency> + <groupId>com.google.gwt</groupId> + <artifactId>gwt-user</artifactId> + <version>${gwt.version}</version> + <scope>provided</scope> + </dependency> + <!-- guice --> + <dependency> + <groupId>com.google.inject</groupId> + <artifactId>guice</artifactId> + <!-- <version>2.1-SNAPSHOT-r1160</version> --> + <version>3.0-rc2</version> + </dependency> + <!-- <dependency> <groupId>com.googlecode.gwt.inject</groupId> <artifactId>gin</artifactId> + <version>gin-1.1-SNAPSHOT</version> </dependency> --> + <dependency> + <groupId>com.google.inject.extensions</groupId> + <artifactId>guice-servlet</artifactId> + <version>3.0-rc2</version> + </dependency> + <dependency> + <groupId>com.google.inject.extensions</groupId> + <artifactId>guice-persist</artifactId> + <version>3.0-rc2</version> + </dependency> + <dependency> + <groupId>com.extjs</groupId> + <artifactId>gxt</artifactId> + <version>2.2.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.cobogw.gwt</groupId> + <artifactId>cobogw</artifactId> + <version>1.3.1</version> + </dependency> + <dependency> + <groupId>com.gwtplatform</groupId> + <artifactId>gwtp-all</artifactId> + <version>0.5</version> + <!-- <version>0.6-SNAPSHOT</version> --> + <exclusions> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-beans</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-web</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.adamtacy</groupId> + <artifactId>gwt-fx</artifactId> + <version>r464</version> + </dependency> + <!-- <dependency> <groupId>com.jhickman.web.gwt</groupId> <artifactId>gwt-customuibinder</artifactId> + <version>0.1</version> </dependency> <dependency> <groupId>com.jhickman.web.gwt</groupId> + <artifactId>gxt-uibinder</artifactId> <version>0.6</version> </dependency> --> + <!-- cc --> + <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>3.0.1</version> + </dependency> + <dependency> + <groupId>com.allen_sauer.gwt.voices.gwt-voices</groupId> + <artifactId>gwt-voices</artifactId> + <version>2.0.0</version> + </dependency> + <!-- utilities --> + <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.5</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.3-rc-1</version> + <!-- <version>2.0-SNAPSHOT-g164</version> --> + <!-- <version>2.0-SNAPSHOT</version> --> + <!-- <version>2.0-SNAPSHOT-g20s</version> --> + </dependency> + <!-- xmpp --> + <dependency> + <groupId>com.calclab.emite</groupId> + <artifactId>emite</artifactId> + <version>r1694</version> + </dependency> + <dependency> + <groupId>com.calclab.emite</groupId> + <artifactId>emite-proxy</artifactId> + <version>0.1</version> + </dependency> + <dependency> + <groupId>com.calclab.emite</groupId> + <artifactId>hablar</artifactId> + <version>r1697</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.1.13</version> + </dependency> + <!-- hibernate JPA --> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-core</artifactId> + <version>3.3.1.GA</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-validator</artifactId> + <version>3.1.0.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-commons-annotations</artifactId> + <version>3.3.0.ga</version> + <!-- http://stackoverflow.com/questions/882338/hibernate-preinsertevent-getsource... --> + <exclusions> + <exclusion> + <groupId>org.hibernate</groupId> + <artifactId>hibernate</artifactId> + </exclusion> + </exclusions> + </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> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-tools</artifactId> + <version>3.2.3.GA</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-c3p0</artifactId> + <version>3.3.1.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> + <!-- wave use 2.5 --> + <version>2.5</version> + </dependency> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.16</version> + <!-- =roo --> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>${slf4j.version}</version> + <!-- =roo --> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>jcl-over-slf4j</artifactId> + <version>${slf4j.version}</version> + <!-- =roo --> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>${slf4j.version}</version> + <!-- =roo --> + </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.3.1</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.2</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> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <version>2.5</version> + <scope>provided</scope> + </dependency> + <!-- testing dependencies --> + <dependency> + <groupId>org.jukito</groupId> + <artifactId>jukito</artifactId> + <version>1.0</version> + <scope>test</scope> + </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.8.1</version> + <!-- =roo --> + <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>1.0.3</version> --> + <version>0.9.4</version> + </dependency> + <!-- wave --> + <dependency> + <groupId>org.waveprotocol</groupId> + <artifactId>waveinabox-server-0.3</artifactId> + <version>0.3.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.waveprotocol</groupId> + <artifactId>proto-msg</artifactId> + <version>0.3.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.waveprotocol</groupId> + <artifactId>gwt-util-src</artifactId> + <version>0.3.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>com.google.guava</groupId> + <artifactId>guava-gwt</artifactId> + <version>r07</version> + </dependency> + <dependency> + <groupId>org.waveprotocol</groupId> + <artifactId>box-src</artifactId> + <version>0.3.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.waveprotocol</groupId> + <artifactId>model-src</artifactId> + <version>0.3.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.waveprotocol</groupId> + <artifactId>client-src</artifactId> + <version>0.3.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.waveprotocol</groupId> + <artifactId>client-common-src</artifactId> + <version>0.3.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.waveprotocol</groupId> + <artifactId>common-src</artifactId> + <version>0.3.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.waveprotocol</groupId> + <artifactId>util-src</artifactId> + <version>0.3.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.waveprotocol</groupId> + <artifactId>concurrencycontrol-src</artifactId> + <version>0.3.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.waveprotocol</groupId> + <artifactId>client-scheduler-src</artifactId> + <version>0.3.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.waveprotocol</groupId> + <artifactId>media-src</artifactId> + <version>0.3.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.waveprotocol</groupId> + <artifactId>communication-src</artifactId> + <version>0.3.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>net.sourceforge.findbugs</groupId> + <artifactId>jsr-305</artifactId> + <version>v0r47</version> + </dependency> + <!-- end wave --> + <dependency> + <groupId>commons-cli</groupId> + <artifactId>commons-cli</artifactId> + <version>1.2</version> + <type>jar</type> + </dependency> + <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + <version>1.4</version> + <type>jar</type> + </dependency> + <!-- gwtupload --> + <dependency> + <groupId>com.googlecode.gwtupload</groupId> + <artifactId>gwtupload</artifactId> + <version>0.6.3-compat</version> + </dependency> + <!-- end gwtupload --> + </dependencies> + + <!-- <dependency> --> + <!-- <groupId>dom4j</groupId> --> + <!-- <artifactId>dom4j</artifactId> --> + <!-- <version>1.6.1</version> --> + <!-- <type>jar</type> --> + <!-- </dependency> --> + <!-- <dependency> --> + <!-- <groupId>com.google.code.guice</groupId> --> + <!-- <artifactId>guice-assistedinject</artifactId> --> + <!-- <version>2.0</version> --> + <!-- </dependency> --> + <!-- <dependency> --> + <!-- <groupId>jline<!/groupId> --> + <!-- <artifactId>jline</artifactId> --> + <!-- <version>0.9.94</version> --> + <!-- <type>jar</type> --> + <!-- </dependency> --> + <!-- <dependency> --> + <!-- <groupId>org.gnu.inet</groupId> --> + <!-- <artifactId>libidn</artifactId> --> + <!-- <version>1.15</version> --> + <!-- <type>jar</type> --> + <!-- </dependency> --> + <!-- <dependency> --> + <!-- <groupId>com.google.protobuf</groupId> --> + <!-- <artifactId>protobuf-java</artifactId> --> + <!-- <version>2.3.0</version> --> + <!-- <type>jar</type> --> + <!-- </dependency> --> + <!-- <dependency> --> + <!-- <groupId>xpp3</groupId> --> + <!-- <artifactId>xpp3</artifactId> --> + <!-- <version>1.1.4c</version> --> + <!-- <type>jar</type> --> + <!-- </dependency> --> + <!-- <dependency> --> + <!-- <groupId>xpp3</groupId> --> + <!-- <artifactId>xpp3_xpath</artifactId> --> + <!-- <version>1.1.4c</version> --> + <!-- <type>jar</type> --> + <!-- </dependency> --> + <!-- <dependency> --> + <!-- <groupId>aopalliance</groupId> --> + <!-- <artifactId>aopalliance</artifactId> --> + <!-- <version>1.0</version> --> + <!-- <type>jar</type> --> + <!-- </dependency> --> + <!-- <dependency> --> + <!-- <groupId>org.wave-protocol</groupId> --> + <!-- <artifactId>xmpp</artifactId> --> + <!-- <version>1.0.0</version> --> + <!-- </dependency> --> + <!-- <dependency> --> + <!-- <groupId>org.wave-protocol</groupId> --> + <!-- <artifactId>whack</artifactId> --> + <!-- <version>1.0.0</version> --> + <!-- </dependency> --> + <distributionManagement> + <repository> + <id>kune.ourproject.org</id> + <url>scpexe://kune.ourproject.org/home/groups/kune/htdocs/mavenrepo/ </url> + </repository> + </distributionManagement> + <issueManagement> + <system>kune issues list at ourproject.org</system> + <url>http://kune.ourproject.org/issues/</url> + </issueManagement> + <developers> + <developer> + <id>dani</id> + <name>Daniel Gómez Blasco</name> + <email>[email protected]</email> + </developer> + <developer> + <name>Samer Hassan</name> + <email>[email protected]</email> + </developer> + <developer> + <name>Vicente J. Ruiz Jurado</name> + <email>[email protected]</email> + </developer> + </developers> + <scm> + <url>svn://scm.ourproject.org/svnroot/kune/trunk</url> + </scm> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <version>1.1.1</version> + <executions> + <execution> + <phase>exec</phase> + <goals> + <goal>java</goal> + </goals> + </execution> + </executions> + <configuration> + <mainClass>cc.kune.wave.server.WaveMain</mainClass> + <commandlineArgs>-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8001</commandlineArgs> + <systemProperties> + <systemProperty> + <key>wave.server.config</key> + <value>src/main/resources/wave-server.properties</value> + </systemProperty> + <systemProperty> + <key>org.eclipse.jetty.util.resource.FileResource.checkAliases</key> + <!-- <key>org.mortbay.util.FileResource.checkAliases</key> --> + <value>False</value> + </systemProperty> + <systemProperty> + <key>java.security.auth.login.config</key> + <value>src/main/resources/jaas.config</value> + </systemProperty> + <systemProperty> + <key>DEBUG</key> + <value>true</value> + </systemProperty> + <systemProperty> + <!-- <key>org.eclipse.jetty.util.log.DEBUG</key> --> + <key>org.eclipse.jetty.util.log.INFO</key> + <value>true</value> + </systemProperty> + </systemProperties> + <classpathScope>runtime</classpathScope> + </configuration> + </plugin> + <plugin> + <!-- =roo --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-war-plugin</artifactId> + <version>2.1-beta-1</version> + <!-- <configuration> <webXml>target/web.xml</webXml> </configuration> --> + </plugin> + <plugin> + <!-- =roo --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>2.1</version> + <configuration> + <source>1.6</source> + <target>1.6</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> + <!-- =roo --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-resources-plugin</artifactId> + <version>2.4.2</version> + <configuration> + <encoding>UTF-8</encoding> + </configuration> + </plugin> + <plugin> + <!-- =roo + custom --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.8</version> + <configuration> + <excludes> + <exclude>**/*_Roo_*</exclude> + </excludes> + <forkMode>pertest</forkMode> + <!-- Skip the normal tests, we'll run them in the integration-test + phase --> + <skipTests>${skipTests}</skipTests> + </configuration> + <executions> + <execution> + <phase>integration-test</phase> + <goals> + <goal>test</goal> + </goals> + <configuration> + <skip>false</skip> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <!-- =roo --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + <configuration> + <descriptorRefs> + <descriptorRef>jar-with-dependencies</descriptorRef> + </descriptorRefs> + <dependencySets> + <dependencySet> + <scope>runtime</scope> + <unpackOptions> + <excludes> + <exclude>**/gxt/**</exclude> + <exclude>**/extjs/**</exclude> + <exclude>**extjs**</exclude> + <exclude>**gxt**</exclude> + </excludes> + </unpackOptions> + </dependencySet> + </dependencySets> + </configuration> + </plugin> + <plugin> + <!-- =roo sin spring executions --> + <artifactId>maven-eclipse-plugin</artifactId> + <version>2.8</version> + <configuration> + <downloadSources>true</downloadSources> + <downloadJavadocs>false</downloadJavadocs> + <wtpversion>2.0</wtpversion> + <additionalBuildcommands> + <buildCommand> + <name>com.google.gwt.eclipse.core.gwtProjectValidator </name> + </buildCommand> + </additionalBuildcommands> + <workspaceCodeStylesURL>http://kune.ourproject.org/kune.formatter.eclipse.preferences.xml</workspaceCodeStylesURL> + <additionalProjectnatures> + <!-- <projectnature>org.eclipse.ajdt.ui.ajnature</projectnature> --> + <projectnature>com.google.gwt.eclipse.core.gwtNature </projectnature> + </additionalProjectnatures> + </configuration> + </plugin> + <plugin> + <!-- =roo --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + <version>2.5</version> + </plugin> + <plugin> + <!-- =roo --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-idea-plugin</artifactId> + <version>2.2</version> + <configuration> + <downloadSources>true</downloadSources> + <dependenciesAsLibraries>true</dependenciesAsLibraries> + </configuration> + </plugin> + <plugin> + <!-- =roo --> + <groupId>org.codehaus.mojo</groupId> + <artifactId>tomcat-maven-plugin</artifactId> + <version>1.0</version> + <configuration> + <path>/</path> + </configuration> + </plugin> + <plugin> + <!-- =roo --> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty-maven-plugin</artifactId> + <version>7.1.2.v20100523</version> + <!-- <version>7.2.1.v20101111</version> --> + <configuration> + <webAppConfig> + <!-- <contextPath>/${project.name}</contextPath> --> + <contextPath>/</contextPath> + </webAppConfig> + <webAppSourceDirectory>${project.build.directory}/${project.build.finalName}</webAppSourceDirectory> + <!-- <reload>manual</reload> <scanIntervalSeconds>0</scanIntervalSeconds> --> + </configuration> + </plugin> + <!-- pensar/probar: openjpa-maven-plugin --> + <!-- gwtp & GenEvent need this plugin --> + <!-- maybe test: http://mojo.codehaus.org/apt-maven-plugin/index.html --> + <!-- instead of this: https://code.google.com/p/maven-annotation-plugin/ --> + <!-- <plugin> <groupId>org.bsc.maven</groupId> <artifactId>maven-processor-plugin</artifactId> + <version>1.3.7</version> <executions> <execution> <id>process</id> <goals> + <goal>process</goal> </goals> <phase>generate-sources</phase> </execution> + </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>apt-maven-plugin</artifactId> + <version>1.0-alpha-4</version> <executions> <execution> <goals> <goal>process</goal> + <goal>test-process</goal> </goals> </execution> </executions> </plugin> --> + <!-- BETTER user: http://code.google.com/p/acris/wiki/AnnotationProcessing --> + <plugin> + <!-- =roo --> + <groupId>org.codehaus.mojo</groupId> + <artifactId>gwt-maven-plugin</artifactId> + <version>${gwtmaven.version}</version> + <configuration> + <compileReport>true</compileReport> + <logLevel>INFO</logLevel> + <style>OBF</style> + <noServer>true</noServer> + <gwtVersion>${gwt.version}</gwtVersion> + <runTarget>/ws/ws.html?log_level=DEBUG</runTarget> + <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp> + <modules> + <module>${project.groupId}.Kune</module> + </modules> + <copyWebapp>true</copyWebapp> + <soyc>false</soyc> + <extraJvmArgs>-Xmx1024m -Xss1024k</extraJvmArgs> + </configuration> + <executions> + <execution> + <configuration> + <extraJvmArgs>-Xmx1024M</extraJvmArgs> + </configuration> + <id>gwtcompile</id> + <phase>prepare-package</phase> + <goals> + <goal>compile</goal> + <!-- http://mojo.codehaus.org/gwt-maven-plugin/user-guide/library.html --> + <!-- <goal>resources</goal> --> + </goals> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>com.google.gwt</groupId> + <artifactId>gwt-dev</artifactId> + <version>${gwt.version}</version> + </dependency> + <dependency> + <groupId>com.google.gwt</groupId> + <artifactId>gwt-user</artifactId> + <version>${gwt.version}</version> + </dependency> + </dependencies> + </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 <[email protected]></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> + <configuration> + <archive> + <manifest> + <addClasspath>true</addClasspath> + <mainClass>cc.kune.wave.server.WaveMain</mainClass> + <!-- <classpathPrefix>~/.m2/repository/</classpathPrefix> --> + <!-- <classpathLayoutType>repository</classpathLayoutType> --> + <!-- NOTE: Deprecated in version 2.4. Use 'classpathLayoutType' + instead. --> + <classpathMavenRepositoryLayout>true</classpathMavenRepositoryLayout> + <!-- <packageName>cc.kune.wave.server</packageName> --> + </manifest> + <manifestEntries> + <mode>development</mode> + <url>${project.url}</url> + </manifestEntries> + </archive> + </configuration> + <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.dstovall</groupId> + <artifactId>onejar-maven-plugin</artifactId> + <version>1.4.4</version> + <executions> + <execution> + <configuration> + <!-- Optional --> + <!-- <onejarVersion>0.97</onejarVersion> --> + <!-- Optional, use only if you need to include native libraries + (dll's) --> + <!-- <binlibs> --> + <!-- <fileSet> --> + <!-- <directory>${project.build.directory}/${project.build.finalName}</directory> --> + <!-- <includes> --> + <!-- <include>**</include> --> + <!-- </includes> --> + <!-- </fileSet> --> + <!-- </binlibs> --> + <!-- Optional, default is false --> + <attachToBuild>true</attachToBuild> + <!-- Optional, default is "onejar" --> + <classifier>onejar</classifier> + </configuration> + <goals> + <goal>one-jar</goal> + </goals> + </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> <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> --> + </plugins> + <!-- <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory> --> + <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory> + <!-- <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> --> + <extensions> + <extension> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-ssh-external</artifactId> + <version>1.0-beta-2</version> + </extension> + </extensions> + </build> + <reporting> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>gwt-maven-plugin</artifactId> + <version>${gwtmaven.version}</version> + <reportSets> + <reportSet> + <reports> + <report>compile-report</report> + </reports> + </reportSet> + </reportSets> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jxr-plugin</artifactId> + <version>2.2</version> + </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> + <version>2.4</version> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>jdepend-maven-plugin</artifactId> + <version>2.0-beta-2</version> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>findbugs-maven-plugin</artifactId> + <version>2.3.2</version> + </plugin> + </plugins> + </reporting> +</project> Deleted: tags/0.0.8/src/main/java/cc/kune/Kune.gwt.xml =================================================================== --- trunk/src/main/java/cc/kune/Kune.gwt.xml 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/Kune.gwt.xml 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,61 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.0.1//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.0.1/distro-source/core/src/gwt-module.dtd"> -<module rename-to="ws"> - <inherits name="com.google.gwt.user.User" /> - <inherits name='com.google.gwt.logging.Logging' /> - <inherits name="cc.kune.core.KuneCore" /> - <inherits name="cc.kune.wave.KuneWave" /> - <inherits name="cc.kune.barters.KuneBarters" /> - <inherits name="cc.kune.blogs.KuneBlogs" /> - <inherits name="cc.kune.chat.KuneChat" /> - <inherits name="cc.kune.docs.KuneDocs" /> - <inherits name="cc.kune.wiki.KuneWiki" /> - <inherits name="cc.kune.meets.KuneMeets" /> - <inherits name="cc.kune.pspace.PSpace" /> - <inherits name="com.calclab.suco.Suco" /> - <inherits name="org.adamtacy.GWTEffects"></inherits> - <source path='client' - excludes="**/*Test.java,**/*Tests.java,**/*MockProvider.java" /> - <!-- <source path='shared'/> --> - <!-- <public path="public"/> --> - <!-- Logging Configuration --> - <set-property name="gwt.logging.enabled" value="TRUE" /> - <set-property name="gwt.logging.logLevel" value="INFO" /> - <set-property name="gwt.logging.consoleHandler" value="ENABLED" /> - <set-property name="gwt.logging.developmentModeHandler" - value="ENABLED" /> - <set-property name="gwt.logging.firebugHandler" value="ENABLED" /> - <set-property name="gwt.logging.hasWidgetsHandler" value="DISABLED" /> - <set-property name="gwt.logging.popupHandler" value="DISABLED" /> - <set-property name="gwt.logging.systemHandler" value="ENABLED" /> - <set-property name="gwt.logging.simpleRemoteHandler" - value="DISABLED" /> - <!-- Uncomment if you are enabling server side deobfuscation of StackTraces - <set-property name="compiler.emulatedStack" value="true" /> <set-configuration-property - name="compiler.emulatedStack.recordLineNumbers" value="true" /> <set-configuration-property - name="compiler.emulatedStack.recordFileNames" value="true" /> --> - <!-- NOTE: this only compiles for chromium/safari ============= --> - <!--http://code.google.com/p/google-web-toolkit/issues/detail?id=42 --> - <!-- <set-property name="user.agent" value="gecko1_8" /> --> - <set-property name="user.agent" value="safari,gecko1_8" /> - <!-- gwt-platform ============================================= --> - <inherits name='com.gwtplatform.mvp.Mvp' /> - <define-configuration-property name="gin.ginjector" - is-multi-valued="false" /> - <set-configuration-property name="gin.ginjector" - value="cc.kune.client.KuneGinjector" /> - <!-- Debugging ================================================ --> - <!-- for add ensureDebugIds (debugId in UIBinder), remove/comment in production - see UIObject.ensureDebugId()) --> - <inherits name="com.google.gwt.user.Debug" /> - <!-- Hardcoded locale (to override emite italian support) ===== --> - <extend-property name="locale" values="en" /> - <set-property name="locale" value="en" /> - <!-- Hardcoded log level ====================================== --> - <!-- Turn off logging in wave --> - <set-property name="loglevel" value="none" /> - <!-- <set-property name="loglevel" value="debug" /> --> - <!-- Entrypoint =============================================== --> - <entry-point class="cc.kune.client.KuneEntryPoint" /> - <!-- <entry-point class="cc.kune.common.client.SampleEntryPoint" /> --> -</module> Copied: tags/0.0.8/src/main/java/cc/kune/Kune.gwt.xml (from rev 1378, trunk/src/main/java/cc/kune/Kune.gwt.xml) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/Kune.gwt.xml (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/Kune.gwt.xml 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.0.1//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.0.1/distro-source/core/src/gwt-module.dtd"> +<module rename-to="ws"> + <inherits name="com.google.gwt.user.User" /> + <inherits name='com.google.gwt.logging.Logging' /> + <inherits name="cc.kune.core.KuneCore" /> + <inherits name="cc.kune.wave.KuneWave" /> + <inherits name="cc.kune.barters.KuneBarters" /> + <inherits name="cc.kune.blogs.KuneBlogs" /> + <inherits name="cc.kune.chat.KuneChat" /> + <inherits name="cc.kune.docs.KuneDocs" /> + <inherits name="cc.kune.wiki.KuneWiki" /> + <inherits name="cc.kune.meets.KuneMeets" /> + <inherits name="cc.kune.pspace.PSpace" /> + <inherits name="com.calclab.suco.Suco" /> + <inherits name="org.adamtacy.GWTEffects"></inherits> + <source path='client' + excludes="**/*Test.java,**/*Tests.java,**/*MockProvider.java" /> + <!-- <source path='shared'/> --> + <!-- <public path="public"/> --> + <!-- Logging Configuration --> + <set-property name="gwt.logging.enabled" value="TRUE" /> + <set-property name="gwt.logging.logLevel" value="INFO" /> + <set-property name="gwt.logging.consoleHandler" value="ENABLED" /> + <set-property name="gwt.logging.developmentModeHandler" + value="ENABLED" /> + <set-property name="gwt.logging.firebugHandler" value="ENABLED" /> + <set-property name="gwt.logging.hasWidgetsHandler" value="DISABLED" /> + <set-property name="gwt.logging.popupHandler" value="DISABLED" /> + <set-property name="gwt.logging.systemHandler" value="ENABLED" /> + <set-property name="gwt.logging.simpleRemoteHandler" + value="DISABLED" /> + <!-- Uncomment if you are enabling server side deobfuscation of StackTraces + <set-property name="compiler.emulatedStack" value="true" /> <set-configuration-property + name="compiler.emulatedStack.recordLineNumbers" value="true" /> <set-configuration-property + name="compiler.emulatedStack.recordFileNames" value="true" /> --> + <!-- NOTE: this only compiles for chromium/safari ============= --> + <!--http://code.google.com/p/google-web-toolkit/issues/detail?id=42 --> + <!-- <set-property name="user.agent" value="gecko1_8" /> --> + <set-property name="user.agent" value="safari,gecko1_8,ie6" /> + <!-- gwt-platform ============================================= --> + <inherits name='com.gwtplatform.mvp.Mvp' /> + <define-configuration-property name="gin.ginjector" + is-multi-valued="false" /> + <set-configuration-property name="gin.ginjector" + value="cc.kune.client.KuneGinjector" /> + <!-- Debugging ================================================ --> + <!-- for add ensureDebugIds (debugId in UIBinder), remove/comment in production + see UIObject.ensureDebugId()) --> + <inherits name="com.google.gwt.user.Debug" /> + <!-- Hardcoded locale (to override emite italian support) ===== --> + <extend-property name="locale" values="en" /> + <set-property name="locale" value="en" /> + <!-- Hardcoded log level ====================================== --> + <!-- Turn off logging in wave --> + <set-property name="loglevel" value="none" /> + <!-- <set-property name="loglevel" value="debug" /> --> + <!-- Entrypoint =============================================== --> + <entry-point class="cc.kune.client.KuneEntryPoint" /> + <!-- <entry-point class="cc.kune.common.client.SampleEntryPoint" /> --> +</module> Deleted: tags/0.0.8/src/main/java/cc/kune/common/client/notify/ConfirmAskEvent.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/notify/ConfirmAskEvent.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/common/client/notify/ConfirmAskEvent.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,214 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.common.client.notify; - -import com.google.gwt.event.shared.EventHandler; -import com.google.gwt.event.shared.GwtEvent; -import com.google.gwt.event.shared.HandlerRegistration; -import com.google.gwt.event.shared.HasHandlers; - -public class ConfirmAskEvent extends GwtEvent<ConfirmAskEvent.ConfirmAskHandler> { - - public interface ConfirmAskHandler extends EventHandler { - public void onConfirmAsk(ConfirmAskEvent event); - } - - public interface HasConfirmAskHandlers extends HasHandlers { - HandlerRegistration addConfirmAskHandler(ConfirmAskHandler handler); - } - - private static final Type<ConfirmAskHandler> TYPE = new Type<ConfirmAskHandler>(); - - public static void fire(final HasHandlers source, final java.lang.String message) { - source.fireEvent(new ConfirmAskEvent(message)); - } - - public static void fire(final HasHandlers source, final java.lang.String title, final java.lang.String message, - final java.lang.String acceptBtnMsg, final java.lang.String cancelBtnMsg, - final java.lang.String acceptBtnTooltip, final java.lang.String cancelBtnTooltip, - final cc.kune.common.client.utils.SimpleResponseCallback callback) { - source.fireEvent(new ConfirmAskEvent(title, message, acceptBtnMsg, cancelBtnMsg, acceptBtnTooltip, - cancelBtnTooltip, callback)); - } - - public static Type<ConfirmAskHandler> getType() { - return TYPE; - } - - java.lang.String acceptBtnMsg; - java.lang.String acceptBtnTooltip; - cc.kune.common.client.utils.SimpleResponseCallback callback; - java.lang.String cancelBtnMsg; - java.lang.String cancelBtnTooltip; - java.lang.String message; - java.lang.String title; - - protected ConfirmAskEvent() { - // Possibly for serialization. - } - - public ConfirmAskEvent(final java.lang.String message) { - this.message = message; - } - - public ConfirmAskEvent(final java.lang.String title, final java.lang.String message, - final java.lang.String acceptBtnMsg, final java.lang.String cancelBtnMsg, - final cc.kune.common.client.utils.SimpleResponseCallback callback) { - this.title = title; - this.message = message; - this.acceptBtnMsg = acceptBtnMsg; - this.cancelBtnMsg = cancelBtnMsg; - this.callback = callback; - } - - public ConfirmAskEvent(final java.lang.String title, final java.lang.String message, - final java.lang.String acceptBtnMsg, final java.lang.String cancelBtnMsg, - final java.lang.String acceptBtnTooltip, final java.lang.String cancelBtnTooltip, - final cc.kune.common.client.utils.SimpleResponseCallback callback) { - this.title = title; - this.message = message; - this.acceptBtnMsg = acceptBtnMsg; - this.cancelBtnMsg = cancelBtnMsg; - this.acceptBtnTooltip = acceptBtnTooltip; - this.cancelBtnTooltip = cancelBtnTooltip; - this.callback = callback; - } - - @Override - protected void dispatch(final ConfirmAskHandler handler) { - handler.onConfirmAsk(this); - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final ConfirmAskEvent other = (ConfirmAskEvent) obj; - if (title == null) { - if (other.title != null) { - return false; - } - } else if (!title.equals(other.title)) { - return false; - } - if (message == null) { - if (other.message != null) { - return false; - } - } else if (!message.equals(other.message)) { - return false; - } - if (acceptBtnMsg == null) { - if (other.acceptBtnMsg != null) { - return false; - } - } else if (!acceptBtnMsg.equals(other.acceptBtnMsg)) { - return false; - } - if (cancelBtnMsg == null) { - if (other.cancelBtnMsg != null) { - return false; - } - } else if (!cancelBtnMsg.equals(other.cancelBtnMsg)) { - return false; - } - if (acceptBtnTooltip == null) { - if (other.acceptBtnTooltip != null) { - return false; - } - } else if (!acceptBtnTooltip.equals(other.acceptBtnTooltip)) { - return false; - } - if (cancelBtnTooltip == null) { - if (other.cancelBtnTooltip != null) { - return false; - } - } else if (!cancelBtnTooltip.equals(other.cancelBtnTooltip)) { - return false; - } - if (callback == null) { - if (other.callback != null) { - return false; - } - } else if (!callback.equals(other.callback)) { - return false; - } - return true; - } - - public java.lang.String getAcceptBtnMsg() { - return acceptBtnMsg; - } - - public java.lang.String getAcceptBtnTooltip() { - return acceptBtnTooltip; - } - - @Override - public Type<ConfirmAskHandler> getAssociatedType() { - return TYPE; - } - - public cc.kune.common.client.utils.SimpleResponseCallback getCallback() { - return callback; - } - - public java.lang.String getCancelBtnMsg() { - return cancelBtnMsg; - } - - public java.lang.String getCancelBtnTooltip() { - return cancelBtnTooltip; - } - - public java.lang.String getMessage() { - return message; - } - - public java.lang.String getTitle() { - return title; - } - - @Override - public int hashCode() { - int hashCode = 23; - hashCode = (hashCode * 37) + (title == null ? 1 : title.hashCode()); - hashCode = (hashCode * 37) + (message == null ? 1 : message.hashCode()); - hashCode = (hashCode * 37) + (acceptBtnMsg == null ? 1 : acceptBtnMsg.hashCode()); - hashCode = (hashCode * 37) + (cancelBtnMsg == null ? 1 : cancelBtnMsg.hashCode()); - hashCode = (hashCode * 37) + (acceptBtnTooltip == null ? 1 : acceptBtnTooltip.hashCode()); - hashCode = (hashCode * 37) + (cancelBtnTooltip == null ? 1 : cancelBtnTooltip.hashCode()); - hashCode = (hashCode * 37) + (callback == null ? 1 : callback.hashCode()); - return hashCode; - } - - @Override - public String toString() { - return "ConfirmAskEvent[" + title + "," + message + "," + acceptBtnMsg + "," + cancelBtnMsg + "," - + acceptBtnTooltip + "," + cancelBtnTooltip + "," + callback + "]"; - } -} Copied: tags/0.0.8/src/main/java/cc/kune/common/client/notify/ConfirmAskEvent.java (from rev 1381, trunk/src/main/java/cc/kune/common/client/notify/ConfirmAskEvent.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/common/client/notify/ConfirmAskEvent.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/common/client/notify/ConfirmAskEvent.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,234 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.common.client.notify; + +import com.google.gwt.event.shared.EventHandler; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.event.shared.HasHandlers; +import com.google.gwt.resources.client.ImageResource; + +public class ConfirmAskEvent extends GwtEvent<ConfirmAskEvent.ConfirmAskHandler> { + + public interface ConfirmAskHandler extends EventHandler { + public void onConfirmAsk(ConfirmAskEvent event); + } + + public interface HasConfirmAskHandlers extends HasHandlers { + HandlerRegistration addConfirmAskHandler(ConfirmAskHandler handler); + } + + private static final Type<ConfirmAskHandler> TYPE = new Type<ConfirmAskHandler>(); + + public static void fire(final HasHandlers source, final java.lang.String message) { + source.fireEvent(new ConfirmAskEvent(message)); + } + + public static void fire(final HasHandlers source, final java.lang.String title, + final java.lang.String message, final java.lang.String acceptBtnMsg, + final java.lang.String cancelBtnMsg, final java.lang.String acceptBtnTooltip, + final java.lang.String cancelBtnTooltip, + final cc.kune.common.client.utils.SimpleResponseCallback callback) { + source.fireEvent(new ConfirmAskEvent(title, message, acceptBtnMsg, cancelBtnMsg, acceptBtnTooltip, + cancelBtnTooltip, callback)); + } + + public static Type<ConfirmAskHandler> getType() { + return TYPE; + } + + java.lang.String acceptBtnMsg; + java.lang.String acceptBtnTooltip; + cc.kune.common.client.utils.SimpleResponseCallback callback; + java.lang.String cancelBtnMsg; + java.lang.String cancelBtnTooltip; + ImageResource icon; + java.lang.String message; + java.lang.String title; + + protected ConfirmAskEvent() { + // Possibly for serialization. + } + + public ConfirmAskEvent(final ImageResource icon, final java.lang.String title, + final java.lang.String message, final java.lang.String acceptBtnMsg, + final java.lang.String cancelBtnMsg, + final cc.kune.common.client.utils.SimpleResponseCallback callback) { + this(title, message, acceptBtnMsg, cancelBtnMsg, acceptBtnMsg, cancelBtnMsg, callback); + this.icon = icon; + } + + public ConfirmAskEvent(final ImageResource icon, final java.lang.String title, + final java.lang.String message, final java.lang.String acceptBtnMsg, + final java.lang.String cancelBtnMsg, final java.lang.String acceptBtnTooltip, + final java.lang.String cancelBtnTooltip, + final cc.kune.common.client.utils.SimpleResponseCallback callback) { + this(title, message, acceptBtnMsg, cancelBtnMsg, acceptBtnTooltip, cancelBtnTooltip, callback); + this.icon = icon; + } + + public ConfirmAskEvent(final java.lang.String message) { + this.message = message; + } + + public ConfirmAskEvent(final java.lang.String title, final java.lang.String message, + final java.lang.String acceptBtnMsg, final java.lang.String cancelBtnMsg, + final cc.kune.common.client.utils.SimpleResponseCallback callback) { + this.title = title; + this.message = message; + this.acceptBtnMsg = acceptBtnMsg; + this.cancelBtnMsg = cancelBtnMsg; + this.callback = callback; + } + + public ConfirmAskEvent(final java.lang.String title, final java.lang.String message, + final java.lang.String acceptBtnMsg, final java.lang.String cancelBtnMsg, + final java.lang.String acceptBtnTooltip, final java.lang.String cancelBtnTooltip, + final cc.kune.common.client.utils.SimpleResponseCallback callback) { + this(title, message, acceptBtnMsg, cancelBtnMsg, callback); + this.acceptBtnTooltip = acceptBtnTooltip; + this.cancelBtnTooltip = cancelBtnTooltip; + } + + @Override + protected void dispatch(final ConfirmAskHandler handler) { + handler.onConfirmAsk(this); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final ConfirmAskEvent other = (ConfirmAskEvent) obj; + if (title == null) { + if (other.title != null) { + return false; + } + } else if (!title.equals(other.title)) { + return false; + } + if (message == null) { + if (other.message != null) { + return false; + } + } else if (!message.equals(other.message)) { + return false; + } + if (acceptBtnMsg == null) { + if (other.acceptBtnMsg != null) { + return false; + } + } else if (!acceptBtnMsg.equals(other.acceptBtnMsg)) { + return false; + } + if (cancelBtnMsg == null) { + if (other.cancelBtnMsg != null) { + return false; + } + } else if (!cancelBtnMsg.equals(other.cancelBtnMsg)) { + return false; + } + if (acceptBtnTooltip == null) { + if (other.acceptBtnTooltip != null) { + return false; + } + } else if (!acceptBtnTooltip.equals(other.acceptBtnTooltip)) { + return false; + } + if (cancelBtnTooltip == null) { + if (other.cancelBtnTooltip != null) { + return false; + } + } else if (!cancelBtnTooltip.equals(other.cancelBtnTooltip)) { + return false; + } + if (callback == null) { + if (other.callback != null) { + return false; + } + } else if (!callback.equals(other.callback)) { + return false; + } + return true; + } + + public java.lang.String getAcceptBtnMsg() { + return acceptBtnMsg; + } + + public java.lang.String getAcceptBtnTooltip() { + return acceptBtnTooltip; + } + + @Override + public Type<ConfirmAskHandler> getAssociatedType() { + return TYPE; + } + + public cc.kune.common.client.utils.SimpleResponseCallback getCallback() { + return callback; + } + + public java.lang.String getCancelBtnMsg() { + return cancelBtnMsg; + } + + public java.lang.String getCancelBtnTooltip() { + return cancelBtnTooltip; + } + + public ImageResource getIcon() { + return icon; + } + + public java.lang.String getMessage() { + return message; + } + + public java.lang.String getTitle() { + return title; + } + + @Override + public int hashCode() { + int hashCode = 23; + hashCode = (hashCode * 37) + (title == null ? 1 : title.hashCode()); + hashCode = (hashCode * 37) + (message == null ? 1 : message.hashCode()); + hashCode = (hashCode * 37) + (acceptBtnMsg == null ? 1 : acceptBtnMsg.hashCode()); + hashCode = (hashCode * 37) + (cancelBtnMsg == null ? 1 : cancelBtnMsg.hashCode()); + hashCode = (hashCode * 37) + (acceptBtnTooltip == null ? 1 : acceptBtnTooltip.hashCode()); + hashCode = (hashCode * 37) + (cancelBtnTooltip == null ? 1 : cancelBtnTooltip.hashCode()); + hashCode = (hashCode * 37) + (callback == null ? 1 : callback.hashCode()); + return hashCode; + } + + @Override + public String toString() { + return "ConfirmAskEvent[" + title + "," + message + "," + acceptBtnMsg + "," + cancelBtnMsg + "," + + acceptBtnTooltip + "," + cancelBtnTooltip + "," + callback + "]"; + } +} Deleted: tags/0.0.8/src/main/java/cc/kune/common/client/notify/NotifyUser.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/notify/NotifyUser.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/common/client/notify/NotifyUser.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,122 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.common.client.notify; - -import cc.kune.common.client.utils.SimpleResponseCallback; -import cc.kune.core.client.notify.msgs.UserNotifyEvent; -import cc.kune.core.client.notify.spiner.ProgressHideEvent; -import cc.kune.core.client.notify.spiner.ProgressShowEvent; -import cc.kune.core.shared.i18n.I18nTranslationService; - -import com.google.gwt.event.shared.EventBus; - -public class NotifyUser { - private static EventBus eventBus; - private static I18nTranslationService i18n; - private static SimpleResponseCallback onOk; - - public static void askConfirmation(final String tittle, final String message, final SimpleResponseCallback callback) { - eventBus.fireEvent(new ConfirmAskEvent(tittle, message, i18n.t("Yes"), i18n.t("No"), callback)); - } - - public static void error(final String message) { - eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.error, message)); - } - - public static void error(final String message, final boolean closeable) { - eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.error, message, closeable)); - } - - public static void error(final String message, final String title, final boolean closeable) { - eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.error, message, title, closeable)); - } - - public static void error(final String message, final String title, final String id, final boolean closeable) { - final UserNotifyEvent event = new UserNotifyEvent(NotifyLevel.error, message, id, closeable); - event.setId(id); - eventBus.fireEvent(event); - } - - public static void hideProgress() { - eventBus.fireEvent(new ProgressHideEvent()); - } - - public static void important(final String message) { - eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.important, message)); - } - - public static void info(final String message) { - eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.info, message)); - } - - public static void info(final String message, final boolean closeable) { - eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.info, message, closeable)); - } - - public static void init(final EventBus eventBus, final I18nTranslationService i18n) { - NotifyUser.eventBus = eventBus; - NotifyUser.i18n = i18n; - onOk = new SimpleResponseCallback() { - - @Override - public void onCancel() { - // Do nothing - } - - @Override - public void onSuccess() { - // Do nothing - } - }; - - } - - public static void logError(final String message) { - eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.log, message)); - } - - public static void showAlertMessage(final String title, final String message) { - showAlertMessage(title, message, onOk); - } - - public static void showAlertMessage(final String title, final String message, final SimpleResponseCallback callback) { - eventBus.fireEvent(new ConfirmAskEvent(title, message, i18n.t("Ok"), "", callback)); - } - - public static void showProgress() { - eventBus.fireEvent(new ProgressShowEvent("")); - } - - public static void showProgress(final String text) { - eventBus.fireEvent(new ProgressShowEvent(text)); - } - - public static void showProgressLoading() { - eventBus.fireEvent(new ProgressShowEvent()); - } - - public static void showProgressProcessing() { - eventBus.fireEvent(new ProgressShowEvent()); - } - - public static void veryImportant(final String message) { - eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.veryImportant, message)); - } -} Copied: tags/0.0.8/src/main/java/cc/kune/common/client/notify/NotifyUser.java (from rev 1381, trunk/src/main/java/cc/kune/common/client/notify/NotifyUser.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/common/client/notify/NotifyUser.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/common/client/notify/NotifyUser.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,132 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.common.client.notify; + +import cc.kune.common.client.utils.SimpleResponseCallback; +import cc.kune.core.client.notify.msgs.UserNotifyEvent; +import cc.kune.core.client.notify.spiner.ProgressHideEvent; +import cc.kune.core.client.notify.spiner.ProgressShowEvent; +import cc.kune.core.shared.i18n.I18nTranslationService; + +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.resources.client.ImageResource; + +public class NotifyUser { + private static EventBus eventBus; + private static I18nTranslationService i18n; + private static SimpleResponseCallback onOk; + + public static void askConfirmation(final ImageResource icon, final String title, final String message, + final SimpleResponseCallback callback) { + eventBus.fireEvent(new ConfirmAskEvent(icon, title, message, i18n.t("Yes"), i18n.t("No"), callback)); + } + + public static void askConfirmation(final String title, final String message, + final SimpleResponseCallback callback) { + askConfirmation(null, title, message, callback); + } + + public static void error(final String message) { + eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.error, message)); + } + + public static void error(final String message, final boolean closeable) { + eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.error, message, closeable)); + } + + public static void error(final String message, final String title, final boolean closeable) { + eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.error, message, title, closeable)); + } + + public static void error(final String message, final String title, final String id, + final boolean closeable) { + final UserNotifyEvent event = new UserNotifyEvent(NotifyLevel.error, message, id, closeable); + event.setId(id); + eventBus.fireEvent(event); + } + + public static void hideProgress() { + eventBus.fireEvent(new ProgressHideEvent()); + } + + public static void important(final String message) { + eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.important, message)); + } + + public static void info(final String message) { + eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.info, message)); + } + + public static void info(final String message, final boolean closeable) { + eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.info, message, closeable)); + } + + public static void init(final EventBus eventBus, final I18nTranslationService i18n) { + NotifyUser.eventBus = eventBus; + NotifyUser.i18n = i18n; + onOk = new SimpleResponseCallback() { + + @Override + public void onCancel() { + // Do nothing + } + + @Override + public void onSuccess() { + // Do nothing + } + }; + + } + + public static void logError(final String message) { + eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.log, message)); + } + + public static void showAlertMessage(final String title, final String message) { + showAlertMessage(title, message, onOk); + } + + public static void showAlertMessage(final String title, final String message, + final SimpleResponseCallback callback) { + eventBus.fireEvent(new ConfirmAskEvent(title, message, i18n.t("Ok"), "", callback)); + } + + public static void showProgress() { + eventBus.fireEvent(new ProgressShowEvent("")); + } + + public static void showProgress(final String text) { + eventBus.fireEvent(new ProgressShowEvent(text)); + } + + public static void showProgressLoading() { + eventBus.fireEvent(new ProgressShowEvent()); + } + + public static void showProgressProcessing() { + eventBus.fireEvent(new ProgressShowEvent()); + } + + public static void veryImportant(final String message) { + eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.veryImportant, message)); + } + +} Deleted: tags/0.0.8/src/main/java/cc/kune/common/client/ui/IconLabel.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/ui/IconLabel.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/common/client/ui/IconLabel.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,188 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.common.client.ui; - -import java.util.Iterator; - -import cc.kune.common.client.tooltip.Tooltip; - -import com.google.gwt.core.client.GWT; -import com.google.gwt.event.dom.client.HasClickHandlers; -import com.google.gwt.i18n.client.HasDirection.Direction; -import com.google.gwt.resources.client.ImageResource; -import com.google.gwt.uibinder.client.UiBinder; -import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.user.client.ui.Composite; -import com.google.gwt.user.client.ui.FlowPanel; -import com.google.gwt.user.client.ui.FocusPanel; -import com.google.gwt.user.client.ui.HasDirectionalText; -import com.google.gwt.user.client.ui.HasWidgets; -import com.google.gwt.user.client.ui.Image; -import com.google.gwt.user.client.ui.Label; -import com.google.gwt.user.client.ui.Widget; - -public class IconLabel extends Composite implements HasWidgets, HasDirectionalText { - - interface IconTitleUiBinder extends UiBinder<Widget, IconLabel> { - } - - private static final String DEF = "16px"; - - private static IconTitleUiBinder uiBinder = GWT.create(IconTitleUiBinder.class); - - @UiField - FlowPanel flow; - @UiField - Image iconLeft; - @UiField - Image iconRight; - @UiField - Label label; - @UiField - FocusPanel self; - - public IconLabel() { - this(""); - } - - public IconLabel(final ImageResource imgRes, final String text) { - this(text); - if (imgRes != null) { - iconLeft.setResource(imgRes); - } - } - - public IconLabel(final String text) { - initWidget(uiBinder.createAndBindUi(this)); - label.setText(text); - label.addStyleName("k-space-nowrap"); - label.addStyleName("k-iconlabel-text"); - } - - @Override - public void add(final Widget w) { - flow.add(w); - } - - public void addRightIconStyle(final String style) { - iconRight.addStyleName(style); - } - - @Override - public void addStyleName(final String style) { - flow.addStyleName(style); - } - - public void addTextStyleName(final String style) { - label.addStyleName(style); - } - - @Override - public void clear() { - flow.clear(); - } - - public HasClickHandlers getFocus() { - return self; - } - - @Override - public String getText() { - return label.getText(); - } - - @Override - public Direction getTextDirection() { - return label.getTextDirection(); - } - - @Override - public Iterator<Widget> iterator() { - return flow.iterator(); - } - - @Override - public boolean remove(final Widget w) { - return flow.remove(w); - } - - public void setLabelText(final String text) { - label.setText(text); - } - - public void setLeftIcon(final String imgCss) { - iconLeft.setUrl("images/clear.gif"); - iconLeft.setStyleName(imgCss); - iconLeft.addStyleName("k-iconlabel-left"); - iconLeft.addStyleName("oc-ico-pad"); - } - - public void setLeftIconResource(final ImageResource res) { - iconLeft.setResource(res); - iconLeft.addStyleName("k-iconlabel-left"); - } - - public void setLeftIconUrl(final String url) { - iconLeft.setUrl(url); - iconLeft.setSize(DEF, DEF); - iconLeft.addStyleName("k-iconlabel-left"); - } - - public void setRightIcon(final String imgCss) { - iconRight.setUrl("images/clear.gif"); - iconRight.setStyleName(imgCss); - iconRight.addStyleName("oc-ico-pad"); - iconRight.addStyleName("k-iconlabel-right"); - } - - public void setRightIconResource(final ImageResource res) { - iconRight.setResource(res); - iconRight.addStyleName("k-iconlabel-right"); - } - - public void setRightIconUrl(final String url) { - iconRight.setUrl(url); - iconRight.setSize(DEF, DEF); - iconRight.addStyleName("k-iconlabel-right"); - } - - @Override - public void setStyleName(final String style) { - flow.setStyleName(style); - } - - @Override - public void setText(final String text) { - label.setText(text); - } - - @Override - public void setText(final String text, final Direction dir) { - label.setText(text, dir); - } - - public void setTooltip(final String text) { - Tooltip.to(label, text); - } - - public void setWordWrap(final boolean wordWrap) { - label.setWordWrap(wordWrap); - } -} Copied: tags/0.0.8/src/main/java/cc/kune/common/client/ui/IconLabel.java (from rev 1380, trunk/src/main/java/cc/kune/common/client/ui/IconLabel.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/common/client/ui/IconLabel.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/common/client/ui/IconLabel.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,200 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.common.client.ui; + +import java.util.Iterator; + +import cc.kune.common.client.tooltip.Tooltip; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.HasClickHandlers; +import com.google.gwt.i18n.client.HasDirection.Direction; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.FocusPanel; +import com.google.gwt.user.client.ui.HasDirectionalText; +import com.google.gwt.user.client.ui.HasWidgets; +import com.google.gwt.user.client.ui.Image; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.Widget; + +public class IconLabel extends Composite implements HasWidgets, HasDirectionalText { + + interface IconTitleUiBinder extends UiBinder<Widget, IconLabel> { + } + + private static final String DEF = "16px"; + + private static IconTitleUiBinder uiBinder = GWT.create(IconTitleUiBinder.class); + + @UiField + FlowPanel flow; + @UiField + Image iconLeft; + @UiField + Image iconRight; + @UiField + Label label; + @UiField + FocusPanel self; + + public IconLabel() { + this(""); + } + + public IconLabel(final ImageResource imgRes, final String text) { + this(text); + if (imgRes != null) { + setLeftIconResourceImpl(imgRes); + } + } + + public IconLabel(final String text) { + initWidget(uiBinder.createAndBindUi(this)); + label.setText(text); + label.addStyleName("k-space-nowrap"); + label.addStyleName("k-iconlabel-text"); + iconLeft.setVisible(false); + iconRight.setVisible(false); + } + + @Override + public void add(final Widget w) { + flow.add(w); + } + + public void addRightIconStyle(final String style) { + iconRight.addStyleName(style); + } + + @Override + public void addStyleName(final String style) { + flow.addStyleName(style); + } + + public void addTextStyleName(final String style) { + label.addStyleName(style); + } + + @Override + public void clear() { + flow.clear(); + } + + public HasClickHandlers getFocus() { + return self; + } + + @Override + public String getText() { + return label.getText(); + } + + @Override + public Direction getTextDirection() { + return label.getTextDirection(); + } + + @Override + public Iterator<Widget> iterator() { + return flow.iterator(); + } + + @Override + public boolean remove(final Widget w) { + return flow.remove(w); + } + + public void setLabelText(final String text) { + label.setText(text); + } + + public void setLeftIcon(final String imgCss) { + iconLeft.setUrl("images/clear.gif"); + iconLeft.setStyleName(imgCss); + iconLeft.addStyleName("k-iconlabel-left"); + iconLeft.addStyleName("oc-ico-pad"); + iconLeft.setVisible(true); + } + + public void setLeftIconResource(final ImageResource res) { + setLeftIconResourceImpl(res); + } + + private void setLeftIconResourceImpl(final ImageResource res) { + iconLeft.setResource(res); + iconLeft.addStyleName("k-iconlabel-left"); + iconLeft.setVisible(true); + } + + public void setLeftIconUrl(final String url) { + iconLeft.setUrl(url); + iconLeft.setSize(DEF, DEF); + iconLeft.addStyleName("k-iconlabel-left"); + iconLeft.setVisible(true); + } + + public void setRightIcon(final String imgCss) { + iconRight.setUrl("images/clear.gif"); + iconRight.setStyleName(imgCss); + iconRight.addStyleName("oc-ico-pad"); + iconRight.addStyleName("k-iconlabel-right"); + iconRight.setVisible(true); + } + + public void setRightIconResource(final ImageResource res) { + iconRight.setResource(res); + iconRight.addStyleName("k-iconlabel-right"); + iconRight.setVisible(true); + } + + public void setRightIconUrl(final String url) { + iconRight.setUrl(url); + iconRight.setSize(DEF, DEF); + iconRight.addStyleName("k-iconlabel-right"); + iconRight.setVisible(true); + } + + @Override + public void setStyleName(final String style) { + flow.setStyleName(style); + } + + @Override + public void setText(final String text) { + label.setText(text); + } + + @Override + public void setText(final String text, final Direction dir) { + label.setText(text, dir); + } + + public void setTooltip(final String text) { + Tooltip.to(label, text); + } + + public void setWordWrap(final boolean wordWrap) { + label.setWordWrap(wordWrap); + } +} Deleted: tags/0.0.8/src/main/java/cc/kune/core/client/init/AppStarterDefault.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/init/AppStarterDefault.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/core/client/init/AppStarterDefault.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,104 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.core.client.init; - -import cc.kune.common.client.log.Log; -import cc.kune.common.client.notify.NotifyLevel; -import cc.kune.core.client.notify.msgs.UserNotifyEvent; -import cc.kune.core.client.notify.spiner.ProgressHideEvent; -import cc.kune.core.client.rpcservices.SiteServiceAsync; -import cc.kune.core.client.state.Session; -import cc.kune.core.shared.dto.InitDataDTO; - -import com.google.gwt.core.client.Scheduler; -import com.google.gwt.core.client.Scheduler.ScheduledCommand; -import com.google.gwt.event.shared.EventBus; -import com.google.gwt.user.client.Timer; -import com.google.gwt.user.client.Window; -import com.google.gwt.user.client.Window.ClosingEvent; -import com.google.gwt.user.client.Window.ClosingHandler; -import com.google.gwt.user.client.rpc.AsyncCallback; -import com.google.gwt.user.client.ui.RootPanel; -import com.google.inject.Inject; - -public class AppStarterDefault implements AppStarter { - private final EventBus eventBus; - private final PrefetchUtilities prefetchUtilities; - private final Session session; - private final SiteServiceAsync siteService; - - @Inject - public AppStarterDefault(final Session session, final SiteServiceAsync siteService, - final EventBus eventBus, final PrefetchUtilities prefetchUtilities) { - this.session = session; - this.siteService = siteService; - this.eventBus = eventBus; - this.prefetchUtilities = prefetchUtilities; - Window.addWindowClosingHandler(new ClosingHandler() { - @Override - public void onWindowClosing(final ClosingEvent event) { - eventBus.fireEvent(new AppStopEvent()); - } - }); - } - - private void getInitData() { - siteService.getInitData(session.getUserHash(), new AsyncCallback<InitDataDTO>() { - private void hideInitialPanels() { - RootPanel.get("kuneloading").setVisible(false); - } - - @Override - public void onFailure(final Throwable error) { - eventBus.fireEvent(new ProgressHideEvent()); - eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.error, - "Error fetching initial data from Kune server")); - Log.debug(error.getMessage()); - hideInitialPanels(); - } - - @Override - public void onSuccess(final InitDataDTO initData) { - session.setInitData(initData); - session.setCurrentUserInfo(initData.getUserInfo()); - eventBus.fireEvent(new AppStartEvent(initData)); - Scheduler.get().scheduleDeferred(new ScheduledCommand() { - @Override - public void execute() { - hideInitialPanels(); - } - }); - } - }); - } - - @Override - public void start() { - prefetchUtilities.preFetchImpImages(); - getInitData(); - final Timer prefetchTimer = new Timer() { - @Override - public void run() { - prefetchUtilities.doTasksDeferred(); - } - }; - prefetchTimer.schedule(20000); - } -} Copied: tags/0.0.8/src/main/java/cc/kune/core/client/init/AppStarterDefault.java (from rev 1382, trunk/src/main/java/cc/kune/core/client/init/AppStarterDefault.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/core/client/init/AppStarterDefault.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/core/client/init/AppStarterDefault.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,146 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.core.client.init; + +import cc.kune.common.client.log.Log; +import cc.kune.common.client.notify.NotifyLevel; +import cc.kune.common.client.notify.NotifyUser; +import cc.kune.common.client.utils.SimpleResponseCallback; +import cc.kune.core.client.notify.msgs.UserNotifyEvent; +import cc.kune.core.client.notify.spiner.ProgressHideEvent; +import cc.kune.core.client.resources.CoreResources; +import cc.kune.core.client.rpcservices.SiteServiceAsync; +import cc.kune.core.client.state.Session; +import cc.kune.core.shared.dto.InitDataDTO; + +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.core.client.Scheduler.ScheduledCommand; +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.user.client.Timer; +import com.google.gwt.user.client.Window; +import com.google.gwt.user.client.Window.ClosingEvent; +import com.google.gwt.user.client.Window.ClosingHandler; +import com.google.gwt.user.client.Window.Navigator; +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.google.gwt.user.client.ui.RootPanel; +import com.google.inject.Inject; + +public class AppStarterDefault implements AppStarter { + private final EventBus eventBus; + private final PrefetchUtilities prefetchUtilities; + private final CoreResources res; + private final Session session; + private final SiteServiceAsync siteService; + + @Inject + public AppStarterDefault(final Session session, final SiteServiceAsync siteService, + final EventBus eventBus, final PrefetchUtilities prefetchUtilities, final CoreResources res) { + this.session = session; + this.siteService = siteService; + this.eventBus = eventBus; + this.prefetchUtilities = prefetchUtilities; + this.res = res; + Window.addWindowClosingHandler(new ClosingHandler() { + @Override + public void onWindowClosing(final ClosingEvent event) { + eventBus.fireEvent(new AppStopEvent()); + } + }); + } + + private void checkNavigatorCompatibility(final NavigatorSupport navSupport) { + if (Navigator.getUserAgent().toLowerCase().contains("msie")) { + navSupport.onNotSupported(); + } else { + navSupport.onSupported(); + } + } + + private void getInitData() { + siteService.getInitData(session.getUserHash(), new AsyncCallback<InitDataDTO>() { + private void continueStart(final InitDataDTO initData) { + eventBus.fireEvent(new AppStartEvent(initData)); + Scheduler.get().scheduleDeferred(new ScheduledCommand() { + @Override + public void execute() { + // hideInitialPanels(); + } + }); + } + + private void hideInitialPanels() { + RootPanel.get("kuneloading").setVisible(false); + } + + @Override + public void onFailure(final Throwable error) { + eventBus.fireEvent(new ProgressHideEvent()); + eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.error, + "Error fetching initial data from Kune server")); + Log.debug(error.getMessage()); + hideInitialPanels(); + } + + @Override + public void onSuccess(final InitDataDTO initData) { + session.setInitData(initData); + session.setCurrentUserInfo(initData.getUserInfo()); + hideInitialPanels(); + checkNavigatorCompatibility(new NavigatorSupport() { + @Override + public void onNotSupported() { + NotifyUser.askConfirmation( + res.important32(), + "Your browser is currently unsupported", + "Please, use a free/libre modern navigator like <a class='k-link' href='https://www.mozilla.com/en-US/firefox/fx/'>Mozilla Firefox</a> instead. Continue anyway?", + new SimpleResponseCallback() { + @Override + public void onCancel() { + } + + @Override + public void onSuccess() { + continueStart(initData); + } + }); + } + + @Override + public void onSupported() { + continueStart(initData); + } + }); + } + }); + } + + @Override + public void start() { + prefetchUtilities.preFetchImpImages(); + getInitData(); + final Timer prefetchTimer = new Timer() { + @Override + public void run() { + prefetchUtilities.doTasksDeferred(); + } + }; + prefetchTimer.schedule(20000); + } +} Copied: tags/0.0.8/src/main/java/cc/kune/core/client/init/NavigatorSupport.java (from rev 1381, trunk/src/main/java/cc/kune/core/client/init/NavigatorSupport.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/core/client/init/NavigatorSupport.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/core/client/init/NavigatorSupport.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,7 @@ +package cc.kune.core.client.init; + +public interface NavigatorSupport { + void onNotSupported(); + + void onSupported(); +} Deleted: tags/0.0.8/src/main/java/cc/kune/core/client/init/PrefetchUtilities.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/init/PrefetchUtilities.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/core/client/init/PrefetchUtilities.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,121 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.core.client.init; - -import com.google.gwt.core.client.Scheduler; -import com.google.gwt.core.client.Scheduler.RepeatingCommand; -import com.google.gwt.user.client.ui.Image; - -public class PrefetchUtilities { - public PrefetchUtilities() { - } - - public void doTasksDeferred() { - - Scheduler.get().scheduleIncremental(new RepeatingCommand() { - int i = 0; - int j = 0; - - String[] lic = { "gnu-fdl.gif", "bynd80x15.png", "byncsa80x15.png", "byncnd80x15.png", "bync80x15.png", - "by80x15.png", "fal-license.gif" }; - - String[] ext = {}; - - // "default/form/text-bg.gif", "default/form/trigger.gif", - // "default/form/date-trigger.gif", - // "gray/window/left-corners.png", "gray/button/btn-sprite.gif", - // "gray/window/top-bottom.png", - // "gray/window/right-corners.png", "gray/window/left-right.png", - // "default/sizer/s-handle.gif", - // "default/sizer/e-handle.gif", "default/sizer/ne-handle.gif", - // "default/sizer/se-handle.gif", - // "default/sizer/sw-handle.gif", "gray/panel/tool-sprites.gif", - // "default/sizer/nw-handle.gif", - // "gray/tabs/tabs-sprite.gif", "gray/tabs/tab-strip-bg.gif", - // "default/shadow.png", - // "default/shadow-lr.png", "default/shadow-c.png", - // "default/grid/invalid_line.gif", - // "default/form/exclamation.gif", "default/box/tb-blue.gif", - // "default/grid/loading.gif", - // "gray/toolbar/bg.gif", "default/grid/grid3-hrow.gif", - // "default/dd/drop-no.gif", - // "default/grid/col-move-top.gif", - // "default/grid/col-move-bottom.gif", "default/grid/row-over.gif", - // "default/grid/grid-split.gif", - // "default/grid/page-first-disabled.gif", - // "default/grid/page-last-disabled.gif", "default/grid/done.gif", - // "default/grid/page-prev-disabled.gif", "default/grid/done.gif", - // "default/grid/page-next-disabled.gif", - // "default/qtip/tip-sprite.gif", - // "default/grid/grid3-hrow-over.gif", - // "default/grid/grid3-hd-btn.gif", - // "gray/panel/white-top-bottom.gif", "gray/tabs/tab-close.gif", - // "gray/toolbar/btn-arrow.gif", - // "gray/toolbar/tb-btn-sprite.gif", "gray/panel/light-hd.gif" }; - - @Override - public boolean execute() { - - while (i < lic.length) { - final String licImg = lic[i]; - Image.prefetch("images/lic/" + licImg); - i++; - } - - while (j < ext.length) { - final String extImg = ext[j]; - Image.prefetch("js/ext/resources/images/" + extImg); - j++; - } - - final boolean notFinished = i + j < lic.length + ext.length; - - final boolean finished = !notFinished; - - if (finished) { - // In the future maybe: workspace.getLoginComponent() - } - - return notFinished; - } - }); - } - - public void preFetchImpImages() { - final String[] imgs = {}; - // "images/spin-kune-thund-green.gif", "css/img/button-bg-hard.gif", - // "css/img/button-bg-soft.gif", "css/img/arrow-down-white.gif", - // "css/img/arrow-right-white.gif", - // "images/lic/bysa80x15.png", "images/nav/blog.png", - // "images/nav/download.png", "images/nav/film.png", - // "images/nav/folder.png", "images/nav/gallery.png", - // "images/nav/go.png", "images/nav/page_pdf.png", - // "images/nav/page.png", "images/nav/page_pps.png", - // "images/nav/page_text.png", - // "images/nav/page_word.png", "images/nav/page_zip.png", - // "images/nav/picture.png", "images/nav/post.png", - // "images/nav/refresh.png", "images/nav/room_add.png", - // "images/nav/room.png", "images/nav/upload.png", - // "images/nav/wikipage.png", "images/nav/wiki.png" }; - for (final String img : imgs) { - Image.prefetch(img); - } - } -} Copied: tags/0.0.8/src/main/java/cc/kune/core/client/init/PrefetchUtilities.java (from rev 1382, trunk/src/main/java/cc/kune/core/client/init/PrefetchUtilities.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/core/client/init/PrefetchUtilities.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/core/client/init/PrefetchUtilities.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,78 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.core.client.init; + +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.core.client.Scheduler.RepeatingCommand; +import com.google.gwt.user.client.ui.Image; + +public class PrefetchUtilities { + public PrefetchUtilities() { + } + + public void doTasksDeferred() { + + Scheduler.get().scheduleIncremental(new RepeatingCommand() { + String[] ext = { "default/shadow-c.png", "default/shadow-lr.png", "default/shadow.png", + "gray/window/left-corners.png", "gray/window/left-right.png", "gray/window/right-corners.png", + "gray/window/top-bottom.png" }; + int i = 0; + + int j = 0; + + String[] lic = { "gnu-fdl.gif", "bynd80x15.png", "byncsa80x15.png", "byncnd80x15.png", + "bync80x15.png", "by80x15.png", "fal-license.gif" }; + + @Override + public boolean execute() { + + while (i < lic.length) { + final String licImg = lic[i]; + Image.prefetch("images/lic/" + licImg); + i++; + } + + while (j < ext.length) { + final String extImg = ext[j]; + Image.prefetch("gxt/images/" + extImg); + j++; + } + + final boolean notFinished = i + j < lic.length + ext.length; + + final boolean finished = !notFinished; + + if (finished) { + // Nothing currently + } + + return notFinished; + } + }); + } + + public void preFetchImpImages() { + final String[] imgs = { "images/corner.png", "images/hborder.png" }; + + for (final String img : imgs) { + Image.prefetch(img); + } + } +} Deleted: tags/0.0.8/src/main/java/cc/kune/core/client/notify/confirm/UserConfirmPanel.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/notify/confirm/UserConfirmPanel.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/core/client/notify/confirm/UserConfirmPanel.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,95 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.core.client.notify.confirm; - -import cc.kune.common.client.notify.ConfirmAskEvent; -import cc.kune.common.client.ui.dialogs.BasicTopDialog; -import cc.kune.core.client.notify.confirm.UserConfirmPresenter.UserConfirmView; -import cc.kune.core.shared.i18n.I18nTranslationService; - -import com.google.gwt.event.dom.client.ClickEvent; -import com.google.gwt.event.dom.client.ClickHandler; -import com.google.gwt.event.shared.HandlerRegistration; -import com.google.gwt.user.client.ui.Label; -import com.google.gwt.user.client.ui.Widget; -import com.google.inject.Inject; -import com.gwtplatform.mvp.client.ViewImpl; - -public class UserConfirmPanel extends ViewImpl implements UserConfirmView { - private static final String CANCEL_ID = "k-conf-dial"; - private static final String DIALOG_ID = "k-conf-dial-nok"; - private static final String OK_ID = "k-conf-dial-ok"; - private HandlerRegistration acceptHandler; - private final Label askLabel; - private HandlerRegistration cancelHandler; - private final BasicTopDialog dialog; - - @Inject - public UserConfirmPanel(final I18nTranslationService i18n) { - dialog = new BasicTopDialog.Builder(DIALOG_ID, false, true).autoscroll(false).width(100).height(100).firstButtonId( - OK_ID).sndButtonId(CANCEL_ID).tabIndexStart(1).build(); - askLabel = new Label(); - askLabel.addStyleName("k-userconfirm-label"); - dialog.getInnerPanel().add(askLabel); - } - - @Override - public Widget asWidget() { - return null; - } - - @Override - public void confirmAsk(final ConfirmAskEvent ask) { - dialog.setFirstBtnText(ask.getAcceptBtnMsg()); - final String cancelBtnMsg = ask.getCancelBtnMsg(); - dialog.setFirstBtnTitle(ask.getAcceptBtnTooltip()); - dialog.setSecondBtnText(cancelBtnMsg); - dialog.setSecondBtnTitle(ask.getCancelBtnTooltip()); - dialog.getTitleText().setText(ask.getTitle()); - askLabel.setText(ask.getMessage()); - dialog.showCentered(); - resetHandlers(); - acceptHandler = dialog.getFirstBtn().addClickHandler(new ClickHandler() { - @Override - public void onClick(final ClickEvent event) { - ask.getCallback().onSuccess(); - dialog.hide(); - } - }); - cancelHandler = dialog.getSecondBtn().addClickHandler(new ClickHandler() { - @Override - public void onClick(final ClickEvent event) { - ask.getCallback().onCancel(); - dialog.hide(); - } - }); - dialog.showCentered(); - } - - private void resetHandlers() { - if (acceptHandler != null) { - acceptHandler.removeHandler(); - } - if (cancelHandler != null) { - cancelHandler.removeHandler(); - } - } - -} Copied: tags/0.0.8/src/main/java/cc/kune/core/client/notify/confirm/UserConfirmPanel.java (from rev 1381, trunk/src/main/java/cc/kune/core/client/notify/confirm/UserConfirmPanel.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/core/client/notify/confirm/UserConfirmPanel.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/core/client/notify/confirm/UserConfirmPanel.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,100 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.core.client.notify.confirm; + +import cc.kune.common.client.notify.ConfirmAskEvent; +import cc.kune.common.client.ui.dialogs.BasicTopDialog; +import cc.kune.core.client.notify.confirm.UserConfirmPresenter.UserConfirmView; +import cc.kune.core.shared.i18n.I18nTranslationService; + +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.user.client.ui.HTML; +import com.google.gwt.user.client.ui.Widget; +import com.google.inject.Inject; +import com.gwtplatform.mvp.client.ViewImpl; + +public class UserConfirmPanel extends ViewImpl implements UserConfirmView { + private static final String CANCEL_ID = "k-conf-dial"; + private static final String DIALOG_ID = "k-conf-dial-nok"; + private static final String OK_ID = "k-conf-dial-ok"; + private HandlerRegistration acceptHandler; + private final HTML askLabel; + private HandlerRegistration cancelHandler; + private final BasicTopDialog dialog; + + @Inject + public UserConfirmPanel(final I18nTranslationService i18n) { + dialog = new BasicTopDialog.Builder(DIALOG_ID, false, true).autoscroll(false).width(100).height(100).firstButtonId( + OK_ID).sndButtonId(CANCEL_ID).tabIndexStart(1).build(); + askLabel = new HTML(); + askLabel.addStyleName("k-userconfirm-label"); + dialog.getInnerPanel().add(askLabel); + } + + @Override + public Widget asWidget() { + return null; + } + + @Override + public void confirmAsk(final ConfirmAskEvent ask) { + dialog.setFirstBtnText(ask.getAcceptBtnMsg()); + final String cancelBtnMsg = ask.getCancelBtnMsg(); + dialog.setFirstBtnTitle(ask.getAcceptBtnTooltip()); + dialog.setSecondBtnText(cancelBtnMsg); + dialog.setSecondBtnTitle(ask.getCancelBtnTooltip()); + dialog.getTitleText().setText(ask.getTitle()); + askLabel.setHTML(ask.getMessage()); + dialog.showCentered(); + resetHandlers(); + acceptHandler = dialog.getFirstBtn().addClickHandler(new ClickHandler() { + @Override + public void onClick(final ClickEvent event) { + dialog.hide(); + ask.getCallback().onSuccess(); + } + }); + cancelHandler = dialog.getSecondBtn().addClickHandler(new ClickHandler() { + @Override + public void onClick(final ClickEvent event) { + dialog.hide(); + ask.getCallback().onCancel(); + } + }); + dialog.showCentered(); + final ImageResource icon = ask.getIcon(); + if (icon != null) { + dialog.setTitleIcon(icon); + } + } + + private void resetHandlers() { + if (acceptHandler != null) { + acceptHandler.removeHandler(); + } + if (cancelHandler != null) { + cancelHandler.removeHandler(); + } + } + +} Deleted: tags/0.0.8/src/main/java/cc/kune/core/public/about.html =================================================================== --- trunk/src/main/java/cc/kune/core/public/about.html 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/core/public/about.html 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,232 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title></title> -<meta name="generator" content="HTML::TextToHTML v2.51"/> -<link rel="stylesheet" type="text/css" href="frame-def.css"/> -</head> -<body> -<script src="//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"></script> -<script> - WebFont.load({ - google : { - families : [ 'Ubuntu' ] - } - }); -</script> -<link - href='http://fonts.googleapis.com/css?family=Ubuntu:regular,italic,bold,bolditalic' - rel='stylesheet' type='text/css'> -<span> - <a target="_blank" href="http://kune.ourproject.org/" title="kune" rel="home"> -<img src="logo-kune-big.png" alt="kune-logo" height="36" width="200"> -</img> -</a> -</span> -<p>Version 0.0.7 (r1361+c12)</p> -<h1><a name="section_1">CREDITS</a></h1> - -<h2><a name="section_1_1">Authors</a></h2> - -<p>Daniel Gómez Blasco<br/> -Samer Hassan<br/> -Vicente J. Ruiz Jurado -</p> -<h2><a name="section_1_2">Contributors</a></h2> - -<ul> - <li>Thanks to David Trigo and <a href="http://www.esperanto-es.net/">http://www.esperanto-es.net/</a> for suggesting the name -of 'kune' for our initiative: - <a href="http://ourproject.org/forum/forum.php?thread_id=500&forum_id=469">http://ourproject.org/forum/forum.php?thread_id=500&forum_id=469</a> - </li><li>Antonio Martins, Jéferson Assumção, Moacir Gadotti and the Instituto Paulo -Freire staff - </li><li>Javier Picado Ladrón de Guevara and the <a href="http://iepala.es">http://iepala.es</a> staff for their -support and infrastructure - </li><li>Javier de la Cueva and Leovigildo GarcÃa-Bobadilla for the legal support - </li><li>Jonathan Araña Cruz, Roxu and all the <a href="http://xsto.info">http://xsto.info</a> staff for their -help with the infrastructure - </li><li>Daniel Jiménez for the initial help and coordination - </li><li>Johnattan Rupire and William Austen Bradbury for their web contributions and -translations - </li><li>and <a href="http://ourproject.org">http://ourproject.org</a> and again <a href="http://xsto.info">http://xsto.info</a> and -<a href="http://iepala.es">http://iepala.es</a> for sharing with us their resources -</li></ul> -<h1><a name="section_2">LICENSES</a></h1> - -<p>All programs are either under the AGPL, GPL, LGPL, Artistic or BSD licenses, see -below for details. -</p> -<p>On Debian systems, the complete text of these licenses can be found in: -</p> -<p>/usr/share/common-licenses/AGPL<br/> -/usr/share/common-licenses/GPL-3<br/> -/usr/share/common-licenses/Artistic<br/> -/usr/share/common-licenses/BSD<br/> -/usr/share/common-licenses/LGPL -</p> -<p>When in doubt, check the individual file, they should all have license -headings and other identifying marks. -</p> -<h2><a name="section_2_1">kune software</a></h2> - -<p>Copyright -</p> -<p>(c) 2007-2011 The kune development team (see CREDITS for details) -</p> -<p>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. -</p> -<p>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. -</p> -<p>You should have received a copy of the GNU Affero General Public License -along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>. -</p> -<p>See COPYRIGHT-AGPLv3 for a complete text. -</p> -<h2><a name="section_2_2">other stuff (libraries, etc)</a></h2> - -<p><strong>wave / wave in a box</strong> -</p> -<ul> - <li><a href="http://www.waveprotocol.org">http://www.waveprotocol.org</a> - </li><li><a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a> - </li><li><a href="http://www.waveprotocol.org/patent-license">http://www.waveprotocol.org/patent-license</a> -</li></ul> -<p><strong>emite libray</strong> -</p> -<p><a href="http://emite.googlecode.com">http://emite.googlecode.com</a> -</p> -<p>Copyright: under GNU Lesser General Public License -<a href="http://www.gnu.org/licenses/lgpl.html">http://www.gnu.org/licenses/lgpl.html</a> -</p> -<p><strong>fonts-min.css and reset.css</strong> -</p> -<p>Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License:<br/> -<a href="http://developer.yahoo.net/yui/license.txt">http://developer.yahoo.net/yui/license.txt</a> -</p> -<p><strong>ext-gwt gxt library</strong> -</p> -<p><a href="http://www.sencha.com/products/extgwt/">http://www.sencha.com/products/extgwt/</a> -</p> -<p>Copyright: under GNU General Public License -<a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a> -</p> -<p><strong>gwt-ext (use deprecated) library</strong> -</p> -<p><a href="http://code.google.com/p/gwt-ext/">http://code.google.com/p/gwt-ext/</a> -</p> -<p>Copyright under GNU Lesser General Public License -<a href="http://www.gnu.org/licenses/lgpl.html">http://www.gnu.org/licenses/lgpl.html</a> -</p> -<p><strong>google-gin library</strong> -</p> -<p><a href="https://code.google.com/p/google-gin/">https://code.google.com/p/google-gin/</a> -</p> -<p>Copyright under Apache License 2.0<br/> -<a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a> -</p> -<p><strong>gwt-platform library</strong> -</p> -<p><a href="https://code.google.com/p/gwt-platform/">https://code.google.com/p/gwt-platform/</a> -</p> -<p>Copyright under Apache License 2.0<br/> -<a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a> -</p> -<p><strong>dom region library</strong> -</p> -<p>XWiki Platform <a href="http://www.xwiki.org/">http://www.xwiki.org/</a> -</p> -<p>Copyright under GNU Lesser General Public License -<a href="http://www.gnu.org/licenses/lgpl.html">http://www.gnu.org/licenses/lgpl.html</a> -</p> -<p><strong>cortado applet</strong> -</p> -<p>A video player java applet (Ogg Theora, Ogg Vorbis) -<a href="http://www.flumotion.net/cortado/">http://www.flumotion.net/cortado/</a><br/> -Copyright: (C) 2004 Fluendo S.L under GNU General Public License -</p> -<p><strong>video embed dialog</strong> -</p> -<p>Some ideas and embedded video code from -</p><ul> - <li><a href="http://www.jovelstefan.de/embedded-video/">http://www.jovelstefan.de/embedded-video/</a> (GPL) - </li><li><a href="http://www.daburna.de/blog/2006/12/13/wordpress-video-plugin/">http://www.daburna.de/blog/2006/12/13/wordpress-video-plugin/</a> -</li></ul> -<p><strong>some license descriptions</strong> -</p> -<p>from Wikipedia (English) <a href="http://en.wikipedia.org/">http://en.wikipedia.org/</a> -Copyright under GFDL <a href="http://www.gnu.org/copyleft/fdl.html">http://www.gnu.org/copyleft/fdl.html</a> -</p> -<p><strong>some Action classes</strong> -</p> -<p>from GNU Classpath<br/> -Copyright under GNU General Public License -<a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> -</p> -<h2><a name="section_2_3">kune documentation</a></h2> - -<p>Copyright -</p> -<p>(c) The kune development team (see CREDITS an individual docs for details) -This work is licensed under the Creative Commons Attribution-Share Alike 3.0 -License. To view a copy of this license, visit -<a href="http://creativecommons.org/licenses/by-sa/3.0/">http://creativecommons.org/licenses/by-sa/3.0/</a> -or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San -Francisco, California, 94105, USA. -</p> -<h2><a name="section_2_4">kune graphics</a></h2> - -<p>Copyright -</p> -<p>(c) Vicente J. Ruiz Jurado <<a href="mailto:[email protected]">[email protected]</a>> -This work is licensed under the Creative Commons Attribution-Share Alike 3.0 -License. To view a copy of this license, visit -<a href="http://creativecommons.org/licenses/by-sa/3.0/">http://creativecommons.org/licenses/by-sa/3.0/</a> -or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San -Francisco, California, 94105, USA. -</p> -<h2><a name="section_2_5">other icons</a></h2> - -<p><strong>some from Tango</strong> -</p> -<p><a href="http://tango.freedesktop.org/">http://tango.freedesktop.org/</a> -</p> -<p>Creative Commons Attribution-ShareAlike 2.5 License Agreement -<a href="http://creativecommons.org/licenses/by-sa/2.5/">http://creativecommons.org/licenses/by-sa/2.5/</a> -</p> -<p><strong>others from famfamfam</strong> -</p> -<p><a href="http://www.famfamfam.com/lab/icons/silk/">http://www.famfamfam.com/lab/icons/silk/</a> -</p> -<p>Creative Commons Attribution 2.5 License Agreement -<a href="http://creativecommons.org/licenses/by/2.5/">http://creativecommons.org/licenses/by/2.5/</a> -</p> -<p><strong>some xmpp icons from pidgin</strong> -</p> -<p>Purple/Pidgin/Finch is the legal property of its developers. -Copyright (C) 1998-2007 under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of -the License, or (at your option) any later version. -</p> -<p><strong>emoticons from Adium and Kopete theme</strong> -</p> -<p>kopete adium theme by robotangel and original "Adiumicons" by Oscar Gruno -under GNU GPL license<br/> -<a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a> -</p> -<p><strong>and other icons from openoffice.org-style-human debian package</strong> -</p> -<p>Copyright 2002-2007 Sun Microsystems, Inc. -This product is made available subject to the terms of GNU Lesser General -Public License Version 2.1. A copy of the LGPL license can be found -<a href="http://www.openoffice.org/project/www/license.html">http://www.openoffice.org/project/www/license.html</a></p> - -</body> -</html> Copied: tags/0.0.8/src/main/java/cc/kune/core/public/about.html (from rev 1380, trunk/src/main/java/cc/kune/core/public/about.html) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/core/public/about.html (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/core/public/about.html 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,232 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title></title> +<meta name="generator" content="HTML::TextToHTML v2.51"/> +<link rel="stylesheet" type="text/css" href="frame-def.css"/> +</head> +<body> +<script src="//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"></script> +<script> + WebFont.load({ + google : { + families : [ 'Ubuntu' ] + } + }); +</script> +<link + href='http://fonts.googleapis.com/css?family=Ubuntu:regular,italic,bold,bolditalic' + rel='stylesheet' type='text/css'> +<span> + <a target="_blank" href="http://kune.ourproject.org/" title="kune" rel="home"> +<img src="logo-kune-big.png" alt="kune-logo" height="36" width="200"> +</img> +</a> +</span> +<p>Version 0.0.7 (r1377+c0)</p> +<h1><a name="section_1">CREDITS</a></h1> + +<h2><a name="section_1_1">Authors</a></h2> + +<p>Daniel Gómez Blasco<br/> +Samer Hassan<br/> +Vicente J. Ruiz Jurado +</p> +<h2><a name="section_1_2">Contributors</a></h2> + +<ul> + <li>Thanks to David Trigo and <a href="http://www.esperanto-es.net/">http://www.esperanto-es.net/</a> for suggesting the name +of 'kune' for our initiative: + <a href="http://ourproject.org/forum/forum.php?thread_id=500&forum_id=469">http://ourproject.org/forum/forum.php?thread_id=500&forum_id=469</a> + </li><li>Antonio Martins, Jéferson Assumção, Moacir Gadotti and the Instituto Paulo +Freire staff + </li><li>Javier Picado Ladrón de Guevara and the <a href="http://iepala.es">http://iepala.es</a> staff for their +support and infrastructure + </li><li>Javier de la Cueva and Leovigildo GarcÃa-Bobadilla for the legal support + </li><li>Jonathan Araña Cruz, Roxu and all the <a href="http://xsto.info">http://xsto.info</a> staff for their +help with the infrastructure + </li><li>Daniel Jiménez for the initial help and coordination + </li><li>Johnattan Rupire, William Austen Bradbury and Rana Hassan for their web contributions and +translations + </li><li>and <a href="http://ourproject.org">http://ourproject.org</a> and again <a href="http://xsto.info">http://xsto.info</a> and +<a href="http://iepala.es">http://iepala.es</a> for sharing with us their resources +</li></ul> +<h1><a name="section_2">LICENSES</a></h1> + +<p>All programs are either under the AGPL, GPL, LGPL, Artistic or BSD licenses, see +below for details. +</p> +<p>On Debian systems, the complete text of these licenses can be found in: +</p> +<p>/usr/share/common-licenses/AGPL<br/> +/usr/share/common-licenses/GPL-3<br/> +/usr/share/common-licenses/Artistic<br/> +/usr/share/common-licenses/BSD<br/> +/usr/share/common-licenses/LGPL +</p> +<p>When in doubt, check the individual file, they should all have license +headings and other identifying marks. +</p> +<h2><a name="section_2_1">kune software</a></h2> + +<p>Copyright +</p> +<p>(c) 2007-2011 The kune development team (see CREDITS for details) +</p> +<p>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. +</p> +<p>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. +</p> +<p>You should have received a copy of the GNU Affero General Public License +along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>. +</p> +<p>See COPYRIGHT-AGPLv3 for a complete text. +</p> +<h2><a name="section_2_2">other stuff (libraries, etc)</a></h2> + +<p><strong>wave / wave in a box</strong> +</p> +<ul> + <li><a href="http://www.waveprotocol.org">http://www.waveprotocol.org</a> + </li><li><a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a> + </li><li><a href="http://www.waveprotocol.org/patent-license">http://www.waveprotocol.org/patent-license</a> +</li></ul> +<p><strong>emite libray</strong> +</p> +<p><a href="http://emite.googlecode.com">http://emite.googlecode.com</a> +</p> +<p>Copyright: under GNU Lesser General Public License +<a href="http://www.gnu.org/licenses/lgpl.html">http://www.gnu.org/licenses/lgpl.html</a> +</p> +<p><strong>fonts-min.css and reset.css</strong> +</p> +<p>Copyright (c) 2007, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License:<br/> +<a href="http://developer.yahoo.net/yui/license.txt">http://developer.yahoo.net/yui/license.txt</a> +</p> +<p><strong>ext-gwt gxt library</strong> +</p> +<p><a href="http://www.sencha.com/products/extgwt/">http://www.sencha.com/products/extgwt/</a> +</p> +<p>Copyright: under GNU General Public License +<a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a> +</p> +<p><strong>gwt-ext (use deprecated) library</strong> +</p> +<p><a href="http://code.google.com/p/gwt-ext/">http://code.google.com/p/gwt-ext/</a> +</p> +<p>Copyright under GNU Lesser General Public License +<a href="http://www.gnu.org/licenses/lgpl.html">http://www.gnu.org/licenses/lgpl.html</a> +</p> +<p><strong>google-gin library</strong> +</p> +<p><a href="https://code.google.com/p/google-gin/">https://code.google.com/p/google-gin/</a> +</p> +<p>Copyright under Apache License 2.0<br/> +<a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a> +</p> +<p><strong>gwt-platform library</strong> +</p> +<p><a href="https://code.google.com/p/gwt-platform/">https://code.google.com/p/gwt-platform/</a> +</p> +<p>Copyright under Apache License 2.0<br/> +<a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a> +</p> +<p><strong>dom region library</strong> +</p> +<p>XWiki Platform <a href="http://www.xwiki.org/">http://www.xwiki.org/</a> +</p> +<p>Copyright under GNU Lesser General Public License +<a href="http://www.gnu.org/licenses/lgpl.html">http://www.gnu.org/licenses/lgpl.html</a> +</p> +<p><strong>cortado applet</strong> +</p> +<p>A video player java applet (Ogg Theora, Ogg Vorbis) +<a href="http://www.flumotion.net/cortado/">http://www.flumotion.net/cortado/</a><br/> +Copyright: (C) 2004 Fluendo S.L under GNU General Public License +</p> +<p><strong>video embed dialog</strong> +</p> +<p>Some ideas and embedded video code from +</p><ul> + <li><a href="http://www.jovelstefan.de/embedded-video/">http://www.jovelstefan.de/embedded-video/</a> (GPL) + </li><li><a href="http://www.daburna.de/blog/2006/12/13/wordpress-video-plugin/">http://www.daburna.de/blog/2006/12/13/wordpress-video-plugin/</a> +</li></ul> +<p><strong>some license descriptions</strong> +</p> +<p>from Wikipedia (English) <a href="http://en.wikipedia.org/">http://en.wikipedia.org/</a> +Copyright under GFDL <a href="http://www.gnu.org/copyleft/fdl.html">http://www.gnu.org/copyleft/fdl.html</a> +</p> +<p><strong>some Action classes</strong> +</p> +<p>from GNU Classpath<br/> +Copyright under GNU General Public License +<a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> +</p> +<h2><a name="section_2_3">kune documentation</a></h2> + +<p>Copyright +</p> +<p>(c) The kune development team (see CREDITS an individual docs for details) +This work is licensed under the Creative Commons Attribution-Share Alike 3.0 +License. To view a copy of this license, visit +<a href="http://creativecommons.org/licenses/by-sa/3.0/">http://creativecommons.org/licenses/by-sa/3.0/</a> +or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San +Francisco, California, 94105, USA. +</p> +<h2><a name="section_2_4">kune graphics</a></h2> + +<p>Copyright +</p> +<p>(c) Vicente J. Ruiz Jurado <<a href="mailto:[email protected]">[email protected]</a>> +This work is licensed under the Creative Commons Attribution-Share Alike 3.0 +License. To view a copy of this license, visit +<a href="http://creativecommons.org/licenses/by-sa/3.0/">http://creativecommons.org/licenses/by-sa/3.0/</a> +or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San +Francisco, California, 94105, USA. +</p> +<h2><a name="section_2_5">other icons</a></h2> + +<p><strong>some from Tango</strong> +</p> +<p><a href="http://tango.freedesktop.org/">http://tango.freedesktop.org/</a> +</p> +<p>Creative Commons Attribution-ShareAlike 2.5 License Agreement +<a href="http://creativecommons.org/licenses/by-sa/2.5/">http://creativecommons.org/licenses/by-sa/2.5/</a> +</p> +<p><strong>others from famfamfam</strong> +</p> +<p><a href="http://www.famfamfam.com/lab/icons/silk/">http://www.famfamfam.com/lab/icons/silk/</a> +</p> +<p>Creative Commons Attribution 2.5 License Agreement +<a href="http://creativecommons.org/licenses/by/2.5/">http://creativecommons.org/licenses/by/2.5/</a> +</p> +<p><strong>some xmpp icons from pidgin</strong> +</p> +<p>Purple/Pidgin/Finch is the legal property of its developers. +Copyright (C) 1998-2007 under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of +the License, or (at your option) any later version. +</p> +<p><strong>emoticons from Adium and Kopete theme</strong> +</p> +<p>kopete adium theme by robotangel and original "Adiumicons" by Oscar Gruno +under GNU GPL license<br/> +<a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a> +</p> +<p><strong>and other icons from openoffice.org-style-human debian package</strong> +</p> +<p>Copyright 2002-2007 Sun Microsystems, Inc. +This product is made available subject to the terms of GNU Lesser General +Public License Version 2.1. A copy of the LGPL license can be found +<a href="http://www.openoffice.org/project/www/license.html">http://www.openoffice.org/project/www/license.html</a></p> + +</body> +</html> Deleted: tags/0.0.8/src/main/java/cc/kune/core/public/ws.css =================================================================== --- trunk/src/main/java/cc/kune/core/public/ws.css 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/core/public/ws.css 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,1369 +0,0 @@ -CHARSET "UTF-8 "; body { - background-color: white; - color: black; - font-family: 'Ubuntu', Arial; - font-size: small; - margin: 5px; - overflow: hidden; -} - -* { - font-family: 'Ubuntu', Arial; -} - -body.fontface { - font: 'Ubuntu', Arial; -} - -div,span { - outline: 0 none; -} - -/* -a { - color: darkblue; -} - -a:visited { - color: darkblue; -} -*/ -.gwt-DialogBox { - border: 2px solid #AAAAAA; - background-color: white; -} - -.gwt-DialogBox .Caption { - background-image: url(gray_gradient.gif); - background-repeat: repeat-x; - padding: 4px; - padding-bottom: 8px; - font-weight: bold; - cursor: default; -} - -.gwt-MenuBar { - background-color: #C3D9FF; - cursor: default; -} - -.gwt-MenuItem { - font-size: 14px; - margin: 1px; - cursor: default; -} - -.gwt-MenuItem-selected { - background-color: #E8EEF7; -} - -.gwt-Tree { - -} - -.gwt-Tree .gwt-TreeItem { - font-size: 14px; - cursor: default; -} - -.gwt-Tree .gwt-TreeItem-selected { - background-color: #C3D9FF; -} - -.gwt-StackPanel { - background-color: white; - border: 1px solid #AAAAAA; - width: 15em; -} - -.gwt-StackPanel .gwt-StackPanelItem { - background-image: url(blue_gradient.gif); - background-repeat: repeat-x; - background-color: #EEEEEE; - cursor: pointer; - cursor: hand; -} - -.gwt-StackPanel .gwt-StackPanelItem-selected { - -} - -.gwt-PushButton-up { - background-color: #C3D9FF; - padding: 2px; - border: 2px solid transparent; - border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) - rgb(232, 241, 255); - cursor: pointer; - cursor: hand; -} - -.gwt-PushButton-up-hovering { - background-color: #C3D9FF; - padding: 2px; - border: 2px solid transparent; - border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) - rgb(232, 241, 255); - cursor: pointer; - cursor: hand; -} - -.gwt-PushButton-down { - background-color: #C3D9FF; - padding: 2px; - border: 2px solid transparent; - border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) - rgb(157, 174, 205); - cursor: pointer; - cursor: hand; -} - -.gwt-PushButton-down-hovering { - background-color: #C3D9FF; - padding: 2px; - border: 2px solid transparent; - border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) - rgb(157, 174, 205); - cursor: pointer; - cursor: hand; -} - -.gwt-ToggleButton-up { - background-color: #C3D9FF; - padding: 2px; - border: 2px solid transparent; - border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) - rgb(232, 241, 255); - cursor: pointer; - cursor: hand; -} - -.gwt-ToggleButton-up-hovering { - background-color: #C3D9FF; - padding: 2px; - border: 2px solid transparent; - border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) - rgb(232, 241, 255); - cursor: pointer; - cursor: hand; -} - -.gwt-ToggleButton-down { - background-color: #C3D9FF; - padding: 2px; - background-color: #E8F1FF; - border: 2px solid transparent; - border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) - rgb(157, 174, 205); - cursor: pointer; - cursor: hand; -} - -.gwt-ToggleButton-down-hovering { - background-color: #C3D9FF; - padding: 2px; - background-color: #E8F1FF; - border: 2px solid transparent; - border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) - rgb(157, 174, 205); - cursor: pointer; - cursor: hand; -} - -.gwt-RichTextArea { - border: 1px solid black; - background-color: white; -} - -.gwt-RichTextToolbar { - background-color: #C3D9FF; - padding: 2px; -} - -.gwt-RichTextToolbar .gwt-PushButton-up { - margin-right: 2px; - border: 1px solid #C3D9FF; -} - -.gwt-RichTextToolbar .gwt-PushButton-up-hovering { - margin-right: 2px; - border: 1px solid #C3D9FF; - border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) - rgb(232, 241, 255); -} - -.gwt-RichTextToolbar .gwt-PushButton-down { - margin-right: 2px; - border: 1px solid #C3D9FF; - border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) - rgb(157, 174, 205); -} - -.gwt-RichTextToolbar .gwt-PushButton-down-hovering { - margin-right: 2px; - border: 1px solid #C3D9FF; - border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) - rgb(157, 174, 205); -} - -.gwt-RichTextToolbar .gwt-ToggleButton-up { - margin-right: 2px; - border: 1px solid #C3D9FF; -} - -.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering { - margin-right: 2px; - border: 1px solid #C3D9FF; - border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) - rgb(232, 241, 255); -} - -.gwt-RichTextToolbar .gwt-ToggleButton-down { - margin-right: 2px; - background-color: #E8F1FF; - border: 1px solid #C3D9FF; - border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) - rgb(157, 174, 205); -} - -.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering { - margin-right: 2px; - background-color: #E8F1FF; - border: 1px solid #C3D9FF; - border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) - rgb(157, 174, 205); -} - -.gwt-HorizontalSplitPanel { - border: 8px solid #C3D9FF; -} - -.gwt-HorizontalSplitPanel .splitter { - background-color: #C3D9FF; - cursor: move; -} - -.gwt-HorizontalSplitPanel .left { - background-color: #E8EEF7; -} - -.gwt-VerticalSplitPanel { - border: 8px solid #C3D9FF; -} - -.gwt-VerticalSplitPanel .splitter { - background-color: #C3D9FF; - height: 8px; - cursor: move; -} - -.gwt-DisclosurePanel { - border: 2px solid #C3D9FF; -} - -.gwt-DisclosurePanel .header { - background-color: #e8eef7; - cursor: hand; -} - -.gwt-SplitLayoutPanel { - -} - -.gwt-SplitLayoutPanel .gwt-SplitLayoutPanel-HDragger { - background-color: transparent; - background: url("images/spliter-top.png") no-repeat scroll center bottom - transparent; - cursor: col-resize; -} - -.gwt-SplitLayoutPanel .gwt-SplitLayoutPanel-VDragger { - background-color: white; - background: none; - cursor: row-resize; -} - -.kLoadingPanel { - background-color: #FF9999; - -webkit-border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; - border-bottom-right-radius: 4px; - padding: 0 1px 0 3px; - border-collapse: separate; - border-spacing: 2px; -} - -.kLoadingLabel { - font-size: 14px; - color: white; - font-weight: bold; - padding: 0 5px 0 5px; -} - -.k-space-tooltip { - border-collapse: separate; - border-spacing: 5px; - vertical-align: middle; - line-height: 1.1em; -} - -.k-space-sel { - margin-right: 10px; - background-color: #F2F2F2; -} - -.k-space-sel-btn { - padding: 0 1px 0 1px; - margin: 0 0 -2px; - outline: 0 none; -} - -.k-sitebar-logo { - margin-top: 2px; -} - -.x-btn button,button { /* font: 18px/27px 'Ubuntu', arial; */ - -} - -.x-panel-mc { - font: inherit; -} - -k-btn-sitebar button spin,.k-sitebar button spin,.k-btn-sitebar div,.k-btn-sitebar span,.k-btn-sitebar button span,.k-sitebar button span - { - text-decoration: underline; -} - -.k-btn-sitebar,.k-btn-sitebar button,.k-sitebar button,.k-btn-sitebar div,.k-btn-sitebar button div,.k-sitebar button div - { - font: 13px 'Ubuntu', arial; - color: #B3B3B3; - cursor: pointer; - white-space: nowrap; - background: none; - border: 0px; - padding: 0 3px 0 0 !important; - height: 17px !important; -} - -.k-sitebar-wave-status { - font: 13px 'Ubuntu', arial; - /* font-weight: bold; */ - color: #B3B3B3; - white-space: nowrap; - background: none; - border: 0px; - padding: 1px 7px 0 0 !important; -} - -.k-sitebar-wave-status { - -} - -.k-sitebar-wave-status-online { - color: green; -} - -.k-sitebar-wave-status-offline { - color: red; -} - -.k-sitebar button:hover { - border: 0px; - background: none; -} - -.k-btn-sitebar button { - margin-top: -5px; -} - -.k-sitebar { /* margin-top: -30px; */ - -} - -.k-link { - text-decoration: underline; - color: green; - cursor: pointer; -} - -/* Margins */ -.kune-Margin-40-trbl { - margin: 40px; -} - -.kune-Margin-40-lr { - margin-left: 40px; - margin-right: 40px; -} - -.kune-Margin-40-tl { - margin-top: 40px; - margin-left: 40px; -} - -.kune-Margin-40-tb { - margin-top: 40px; - margin-bottom: 40px; -} - -.kune-Margin-40-t { - margin-top: 40px; -} - -.kune-Margin-40-r { - margin-right: 40px; -} - -.kune-Margin-40-l { - margin-left: 40px; -} - -.kune-Margin-20-trbl { - margin: 20px; -} - -.kune-Margin-20-lr { - margin-left: 20px; - margin-right: 20px; -} - -.kune-Margin-20-tl { - margin-top: 20px; - margin-left: 20px; -} - -.kune-Margin-20-tb { - margin-top: 20px; - margin-bottom: 20px; -} - -.kune-Margin-20-t { - margin-top: 20px; -} - -.kune-Margin-20-r { - margin-right: 20px; -} - -.kune-Margin-20-b { - margin-bottom: 20px; -} - -.kune-Margin-20-l { - margin-left: 20px; -} - -.kune-Margin-10-trbl { - margin: 10px; -} - -.kune-Margin-10-lr { - margin-left: 10px; - margin-right: 10px; -} - -.kune-Margin-10-tl { - margin-top: 10px; - margin-left: 10px; -} - -.kune-Margin-10-tb { - margin-top: 10px; - margin-bottom: 10px; -} - -.kune-Margin-10-t { - margin-top: 10px; -} - -.kune-Margin-10-r { - margin-right: 10px; -} - -.kune-Margin-Large-trbl { - margin: 10px; -} - -.kune-Margin-Large-lr { - margin-left: 10px; - margin-right: 10px; -} - -.kune-Margin-Large-tl { - margin-top: 10px; - margin-left: 10px; -} - -.kune-Margin-Large-tb { - margin-top: 10px; - margin-bottom: 10px; -} - -.kune-Margin-Large-t { - margin-top: 10px; -} - -.kune-Margin-Large-r { - margin-right: 10px; -} - -.kune-Margin-Large-b { - margin-bottom: 10px; -} - -.kune-Margin-Large-l { - margin-left: 10px; -} - -.kune-Margin-7-trbl { - margin: 7px; -} - -.kune-Margin-7-lr { - margin-left: 7px; - margin-right: 7px; -} - -.kune-Margin-7-tl { - margin-top: 7px; - margin-left: 7px; -} - -.kune-Margin-7-tb { - margin-top: 7px; - margin-bottom: 7px; -} - -.kune-Margin-7-t { - margin-top: 7px; -} - -.kune-Margin-7-r { - margin-right: 7px; -} - -.kune-Margin-7-b { - margin-bottom: 7px; -} - -.kune-Margin-7-l { - margin-left: 7px; -} - -.kune-Margin-Medium-trbl { - margin: 5px; -} - -.kune-Margin-Medium-lr { - margin-left: 5px; - margin-right: 5px; -} - -.kune-Margin-Medium-tl { - margin-top: 5px; - margin-left: 5px; -} - -.kune-Margin-Medium-tb { - margin-top: 5px; - margin-bottom: 5px; -} - -.kune-Margin-Medium-t { - margin-top: 5px; -} - -.kune-Margin-Medium-r { - margin-right: 5px; -} - -.kune-Margin-Medium-b { - margin-bottom: 5px; -} - -.kune-Margin-Medium-l { - margin-left: 5px; -} - -.kune-Margin-Small-trbl { - margin: 3px; -} - -.kune-Margin-Small-lr { - margin-left: 3px; - margin-right: 3px; -} - -.kune-Margin-Small-tl { - margin-top: 3px; - margin-left: 3px; -} - -.kune-Margin-Small-tb { - margin-top: 3px; - margin-bottom: 3px; -} - -.kune-Margin-Small-t { - margin-top: 3px; -} - -.kune-Margin-Small-l { - margin-left: 3px; -} - -.kune-Margin-Small-r { - margin-right: 3px; -} - -.kune-Margin-Small-b { - margin-bottom: 3px; -} - -.kune-Margin-Mini-trbl { - margin: 1px; -} - -.kune-Margin-Mini-lr { - margin-left: 1px; - margin-right: 1px; -} - -.kune-Margin-Mini-tl { - margin-top: 1px; - margin-left: 1px; -} - -.kune-Margin-Mini-tb { - margin-top: 1px; - margin-bottom: 1px; -} - -.kune-Margin-Mini-t { - margin-top: 1px; -} - -.kune-Margin-Mini-r { - margin-right: 1px; -} - -.kune-Margin-Mini-b { - margin-bottom: 1px; -} - -.kune-Margin-Mini-l { - margin-left: 1px; -} - -.k-publicspace-msg { - background-color: #E0E0E0; -} - -.k-publicspace-mask { /* background-color: #fff !important; - kfilter: alpha(opacity = 68) !important; - -moz-opacity: 0.68 !important; - -khtml-opacity: 0.68 !important; - opacity: 0.68 !important;*/ - -} - -.k-publicspace-panel { - margin: 5px; - display: table-row; -} - -.k-publicspace-icon { - margin: 3px 3px 3px 0; - float: left; -} - -.k-publicspace-title { - font-weight: bold; - display: block; - margin-bottom: 5px; - font-size: 16px; - display: table-caption; -} - -.k-publicspace-description { - font-size: 14px; - display: table-cell; -} - -.k-publicspace-actions { - display: inline; -} - -.k-message-panel { - margin: 5px; - display: table-row; -} - -.k-message-icon { - margin: 3px 3px 3px 0; - float: left; -} - -.k-message-title { - font-weight: bold; - display: block; - margin-bottom: 5px; - font-size: 16px; - display: table-caption; -} - -.k-message-description { - font-size: 14px; - display: table-cell; -} - -.k-error-tb { - background: #FFB380 none repeat scroll 0% 50%; - /* color: #250; */ - padding: 10px; -} - -.k-error-tb img { - margin: 0 10px; - float: left; -} - -.k-error-tb div { - font-size: 14px; - display: table-cell; -} - -.k-mask { - background-color: #F2F2F2 !important; - /* kfilter: alpha(opacity = 78) !important; */ - -moz-opacity: 0.78 !important; - -khtml-opacity: 0.78 !important; - opacity: 0.78 !important; -} - -.x-form-item-label { - font-size: 14px; - font-weight: bold; - color: brown; -} - -.x-form-text { - font-size: 14px; -} - -.x-fieldset-header-text,.x-form-group-label,.x-form-cb-label { - font-size: 14px; - font-family: 'Ubuntu', Arial; -} - -.k-form-intro { - font-size: 14px; - margin-bottom: 10px; -} - -.k-form-fieldset { - font-size: 16px; - margin-left: 105px; -} - -.k-basic-thumb { - background-color: #F2F2F2; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; -} - -.k-basic-thumb img { - margin: 2px 2px 0px 2px; -} - -.k-basic-thumb div { - margin: -3px 0px 0px 0px; - font-weight: normal; - font-size: 12px; -} - -.k-sn-mainpanel { - font-size: 16px; - font-weight: bold; -} - -.k-sn-maintitle { - margin: 5px; -} - -.k-sn-maintitle { - color: #a05a2c; - font-size: 20px; -} - -.k-sn-adminslabel,.k-sn-collabslabel,.k-sn-pendingslabel { - color: #FFF; - text-transform: lowercase; - padding-left: 10px; - float: left; -} - -.k-sn-adminsCountlabel,.k-sn-collabsCountlabel,.k-sn-pendingsCountlabel - { - float: left; - padding-left: 5px; - color: #e0e0e0; -} - -.k-sn-adminslabel { - -} - -.k-sn-mainpanel .k-basic-thumb { - float: left; -} - -/* -.k-sn-mainpanel .x-btn button { - text-decoration: underline; - white-space: nowrap; -} -*/ -.k-sn-mainpanel .x-btn button,.k-sn-mainpanel button,button.k-button,.gwt-FileUpload - { - font: 13px 'Ubuntu', arial; - border: 2px solid #CCCCCC; - cursor: pointer; - margin: 0; - padding: 3px 0; - text-decoration: none; - background-color: #F2F2F2; - color: #A05A2C; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - vertical-align: middle; - outline: 0 none; - font-weight: bold; - width: auto !IMPORTANT; - width: 50px; - min-width: 50px; - height: 28px; -} - -.k-sn-mainpanel .x-btn button:hover,.k-sn-mainpanel button:hover,button.k-button:hover - { - border: 2px orange solid; - outline: 0 none; - /* background: #f0f0f0; */ -} - -.k-sn-mainpanel .x-btn button:hover span,.k-sn-mainpanel button:hover span,button.k-button:hover span - { - color: brown !important; - outline: 0 none; -} - -.k-sn-mainpanel .x-btn button:active,.k-sn-mainpanel button:active,button.k-button:active - { /* border-top-color: #ffffff; */ - background: #ffffff; -} - -.k-button-center { - border-left: 1px solid #CCCCCC !important; - border-right: 1px solid #CCCCCC !important; - -webkit-border-radius: 0px !important; - -moz-border-radius: 0px !important; - border-radius: 0px !important; - margin-left: 0px !important; - margin-right: 0px !important; -} - -.k-button-right { - border-left: 1px solid #CCCCCC !important; - -webkit-border-top-left-radius: 0px !important; - -moz-border-radius-topleft: 0px !important; - border-top-left-radius: 0px !important; - -webkit-border-bottom-left-radius: 0px !important; - -moz-border-radius-bottomleft: 0px !important; - border-bottom-left-radius: 0px !important; - margin-left: 0px !important; -} - -.k-button-left { - border-right: 1px solid #CCCCCC !important; - -webkit-border-top-right-radius: 0px !important; - -moz-border-radius-topright: 0px !important; - border-top-right-radius: 0px !important; - -webkit-border-bottom-right-radius: 0px !important; - -moz-border-radius-bottomright: 0px !important; - border-bottom-right-radius: 0px !important; - margin-right: 0px !important; -} - -button.k-button-center:hover { - border-left: 1px solid orange !important; - border-right: 1px solid orange !important; - outline: 0 none; -} - -button.k-button-right:hover { - border-left: 1px solid orange !important; - outline: 0 none; -} - -button.k-button-left:hover { - border-right: 1px solid orange !important; - outline: 0 none; -} - -button[disabled]:active,button[disabled],input[type="reset"][disabled]:active,input[type="reset"][disabled],input[type="button"][disabled]:active,input[type="button"][disabled],select[disabled]>input[type="button"],select[disabled]>input[type="button"]:active,input[type="submit"][disabled]:active,input[type="submit"][disabled],.k-button-disabled - { - color: gray !important; - border-color: #CCCCCC !important; - background: inherits !important; -} - -/* end buttons */ -.k-sn-collabslabel { - -} - -.k-sn-pendingslabel { - -} - -.k-sn-orphan-label { - padding: 10px; -} - -.k-sn-novisible-label { - padding: 10px; -} - -.k-sn-adminspanel { /* background-color: #a05a2c; */ - border-bottom: 2px solid #F7EBE3; - border-top: 2px solid #F7EBE3; -} - -.k-sn-collabspanel { - background-color: #d38d5f; -} - -.k-sn-pendingspanel { /* background-color: #a05a2c; */ - -} - -.k-sn-adminsscroll,.k-sn-collabsscroll,.k-sn-pendingsscroll { - -} - -.k-sn-adminsflow,.k-sn-collabsflow,.k-sn-pendingsflow { - margin-left: 10px; -} - -.k-sn-adminsscroll { - -} - -.k-sn-collabsscroll { - -} - -.k-sn-pendingsscroll { - -} - -.k-userconfirm-label { - width: 300px; - margin: 10px; -} - -.k-sn-deck { - -} - -.k-sn-bottomPanel { - padding: 8px 10px 0; - float: left; -} - -.k-sn-bottomPanel-actions { - width: 100%; -} - -.k-sn-novisible-label,.k-sn-orphan-label { - color: #FFF; - font-size: 16px; - font-weight: bold; -} - -.k-frame-def { - margin: 0px; - border: 0px; -} - -.k-maxsize { - width: 100%; - height: 100%; -} - -.k-footer-license-label { - float: right; - margin-top: 8px; - cursor: pointer; - font-weight: bold; - font-size: 16px; - color: #784421; -} - -.k-footer-license-label-title { - margin-right: 5px; - color: #280b0b; -} - -.k-footer-license-img { - float: right; - margin: 10px 15px 0px 5px; - cursor: pointer; -} - -.k-sn-options-menu { - float: left; -} - -.k-sn-options-menu button { - background-color: none; -} - -.k-sn-join { - float: left; -} - -.k-entitytextlogo-border { - border: 2px solid #F2F2F2; -} - -.k-entitytextlogo-no-border { - border: none; -} - -.k-entitytextlogo { - height: 60px; - margin: 5px; - overflow: hidden; - width: 468px; -} - -.k-entitytextlogo table { - vertical-align: middle; -} - -.k-elogo-l-l { - font-size: 46px; -} - -.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: #000080; -} - -.k-entitytextlogo-grey .gwt-Label { - color: #1A1A1A; -} - -.k-entitytextlogo-purple .gwt-Label { - color: #440055; -} - -.k-entitytextlogo-red .gwt-Label { - color: #800000; -} - -.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-tsp-tag { - float: left; - padding: 3px; - cursor: pointer; - color: #5B4683; -} - -.k-tsp-cloud { - line-height: 1em; - text-align: center; -} - -.k-tool-panel { - background-color: #DEAA87; -} - -.k-tool-item { - display: block; - cursor: pointer; - outline: 0 none; -} - -.k-tool-item-focus { - background-color: #d38d5f; -} - -.k-tool-item-nofocus { - -} - -.k-tool-item-selected { - background-color: #C87137; -} - -.k-tool-item-notselected { - background-color: inherits; -} - -.k-def-docbtn span { - font-size: 13px !important; -} - -.k-empty-msg { - font-size: 16px; - font-style: italic; -} - -button.k-ent-header-btn { - margin-left: 5px !important; -} - -.k-ent-header-btn * { - font-size: 13px !important; -} - -table.k-folder-viewer { - border: 5px solid #FFF; - border-collapse: separate; -} - -/* Suggest box */ -.gwt-SuggestBox { - padding: 2px; -} - -.gwt-SuggestBoxPopup { - background-color: #FFF; - border: 2px solid #552200; - padding: 3px; - color: white; - -webkit-border-bottom-right-radius: 5px; - -moz-border-radius-bottomright: 5px; - border-bottom-right-radius: 5px; - -webkit-border-bottom-left-radius: 5px; - -moz-border-radius-bottomleft: 5px; - border-bottom-left-radius: 5px; - kfilter: alpha(opacity = 90); - -moz-opacity: 0.90; - -khtml-opacity: 0.90; - opacity: 0.90; - margin-left: 3px; -} - -.gwt-SuggestBoxPopup .item { - padding: 2px 6px; - color: #424242; - cursor: default; -} - -.gwt-SuggestBoxPopup .item-selected { - background: #cdcdcd; - cursor: pointer; -} - -.gwt-SuggestBoxPopup .suggestPopupContent { - background: white; -} - -.k-sitebarsearch { - border: 1px solid #E4A374; - margin: 1px 6px 0 3px; - padding-left: 1px; - color: #B3B3B3; - background: transparent; -} - -.k-sitebarsearch-img { - cursor: pointer; - background: none; - border: 0px; - padding: 2px 0 0 0 !important; -} - -/* end of suggestbox */ -.k-table { - display: table; -} - -.k-table-row { - display: table-row; -} - -.k-table-cell { - display: table-cell; -} - -/* Decorated tabbar */ -.gwt-DecoratedTabBar { - -} - -.gwt-DecoratedTabBar .gwt-TabBarFirst { - width: 5px; /* first tab distance from the left */ -} - -.gwt-DecoratedTabBar .gwt-TabBarRest { - -} - -.gwt-DecoratedTabBar .gwt-TabBarItem { - border-collapse: collapse; - margin-left: 6px; -} - -.gwt-DecoratedTabBar .tabTopCenter { - padding: 0px; - background: #e3e3e3; -} - -.gwt-DecoratedTabBar .tabTopLeft,.gwt-DecoratedTabBar .tabTopRight { - padding: 0px; - zoom: 1; -} - -.gwt-DecoratedTabBar .tabTopLeftInner,.gwt-DecoratedTabBar .tabTopRightInner - { - width: 6px; - height: 6px; -} - -.gwt-DecoratedTabBar .tabTopLeft { - background: url(images/corner.png) no-repeat 0px -55px; - -background: url(images/corner_ie6.png) no-repeat 0px -55px; -} - -.gwt-DecoratedTabBar .tabTopRight { - background: url(images/corner.png) no-repeat -6px -55px; - -background: url(images/corner_ie6.png) no-repeat -6px -55px; -} - -* html .gwt-DecoratedTabBar .tabTopLeftInner,* html .gwt-DecoratedTabBar .tabTopRightInner - { - width: 6px; - height: 6px; - overflow: hidden; -} - -.gwt-DecoratedTabBar .tabMiddleLeft,.gwt-DecoratedTabBar .tabMiddleRight - { - width: 6px; - padding: 0px; - background: #e3e3e3 url(images/hborder.png) repeat-x 0px -1463px; -} - -.gwt-DecoratedTabBar .tabMiddleLeftInner,.gwt-DecoratedTabBar .tabMiddleRightInner - { - width: 1px; - height: 1px; -} - -.gwt-DecoratedTabBar .tabMiddleCenter { - padding: 0px 4px 2px 4px; - cursor: pointer; - cursor: hand; - color: black; - font-weight: bold; - text-align: center; - background: #e3e3e3 url(images/hborder.png) repeat-x 0px -1463px; -} - -.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopCenter { - background: #747474; -} - -.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopLeft { - background-position: 0px -61px; -} - -.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopRight { - background-position: -6px -61px; -} - -.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleLeft,.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleRight - { - background: #bcbcbc url(images/hborder.png) repeat-x 0px -2511px; -} - -.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleCenter { - cursor: default; - background: #bcbcbc url(images/hborder.png) repeat-x 0px -2511px; - color: white; -} - -.gwt-DecoratedTabBar .gwt-TabBarItem-disabled .tabMiddleCenter { - cursor: default; - color: #999999; -} - -/* end Decorated tabbar */ -.k-waveHolder { - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; -} - -.GWTUpld,table.GWTUpld td { - font-family: inherits !important; - font-size: 14px !important; -} - -.x-form-check-wrap { - height: inherit;; - line-height: inherit; -} - -.k-info-links { - text-decoration: underline; - color: gray; - cursor: pointer; -} \ No newline at end of file Copied: tags/0.0.8/src/main/java/cc/kune/core/public/ws.css (from rev 1382, trunk/src/main/java/cc/kune/core/public/ws.css) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/core/public/ws.css (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/core/public/ws.css 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,1375 @@ +CHARSET "UTF-8 "; body { + background-color: white; + color: black; + font-family: 'Ubuntu', Arial; + font-size: small; + margin: 5px; + overflow: hidden; +} + +* { + font-family: 'Ubuntu', Arial; +} + +body.fontface { + font: 'Ubuntu', Arial; +} + +div,span { + outline: 0 none; +} + +/* +a { + color: darkblue; +} + +a:visited { + color: darkblue; +} +*/ +.gwt-DialogBox { + border: 2px solid #AAAAAA; + background-color: white; +} + +.gwt-DialogBox .Caption { + background-image: url(gray_gradient.gif); + background-repeat: repeat-x; + padding: 4px; + padding-bottom: 8px; + font-weight: bold; + cursor: default; +} + +.gwt-MenuBar { + background-color: #C3D9FF; + cursor: default; +} + +.gwt-MenuItem { + font-size: 14px; + margin: 1px; + cursor: default; +} + +.gwt-MenuItem-selected { + background-color: #E8EEF7; +} + +.gwt-Tree { + +} + +.gwt-Tree .gwt-TreeItem { + font-size: 14px; + cursor: default; +} + +.gwt-Tree .gwt-TreeItem-selected { + background-color: #C3D9FF; +} + +.gwt-StackPanel { + background-color: white; + border: 1px solid #AAAAAA; + width: 15em; +} + +.gwt-StackPanel .gwt-StackPanelItem { + background-image: url(blue_gradient.gif); + background-repeat: repeat-x; + background-color: #EEEEEE; + cursor: pointer; + cursor: hand; +} + +.gwt-StackPanel .gwt-StackPanelItem-selected { + +} + +.gwt-PushButton-up { + background-color: #C3D9FF; + padding: 2px; + border: 2px solid transparent; + border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) + rgb(232, 241, 255); + cursor: pointer; + cursor: hand; +} + +.gwt-PushButton-up-hovering { + background-color: #C3D9FF; + padding: 2px; + border: 2px solid transparent; + border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) + rgb(232, 241, 255); + cursor: pointer; + cursor: hand; +} + +.gwt-PushButton-down { + background-color: #C3D9FF; + padding: 2px; + border: 2px solid transparent; + border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) + rgb(157, 174, 205); + cursor: pointer; + cursor: hand; +} + +.gwt-PushButton-down-hovering { + background-color: #C3D9FF; + padding: 2px; + border: 2px solid transparent; + border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) + rgb(157, 174, 205); + cursor: pointer; + cursor: hand; +} + +.gwt-ToggleButton-up { + background-color: #C3D9FF; + padding: 2px; + border: 2px solid transparent; + border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) + rgb(232, 241, 255); + cursor: pointer; + cursor: hand; +} + +.gwt-ToggleButton-up-hovering { + background-color: #C3D9FF; + padding: 2px; + border: 2px solid transparent; + border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) + rgb(232, 241, 255); + cursor: pointer; + cursor: hand; +} + +.gwt-ToggleButton-down { + background-color: #C3D9FF; + padding: 2px; + background-color: #E8F1FF; + border: 2px solid transparent; + border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) + rgb(157, 174, 205); + cursor: pointer; + cursor: hand; +} + +.gwt-ToggleButton-down-hovering { + background-color: #C3D9FF; + padding: 2px; + background-color: #E8F1FF; + border: 2px solid transparent; + border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) + rgb(157, 174, 205); + cursor: pointer; + cursor: hand; +} + +.gwt-RichTextArea { + border: 1px solid black; + background-color: white; +} + +.gwt-RichTextToolbar { + background-color: #C3D9FF; + padding: 2px; +} + +.gwt-RichTextToolbar .gwt-PushButton-up { + margin-right: 2px; + border: 1px solid #C3D9FF; +} + +.gwt-RichTextToolbar .gwt-PushButton-up-hovering { + margin-right: 2px; + border: 1px solid #C3D9FF; + border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) + rgb(232, 241, 255); +} + +.gwt-RichTextToolbar .gwt-PushButton-down { + margin-right: 2px; + border: 1px solid #C3D9FF; + border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) + rgb(157, 174, 205); +} + +.gwt-RichTextToolbar .gwt-PushButton-down-hovering { + margin-right: 2px; + border: 1px solid #C3D9FF; + border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) + rgb(157, 174, 205); +} + +.gwt-RichTextToolbar .gwt-ToggleButton-up { + margin-right: 2px; + border: 1px solid #C3D9FF; +} + +.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering { + margin-right: 2px; + border: 1px solid #C3D9FF; + border-color: #E8F1FF rgb(157, 174, 205) rgb(157, 174, 205) + rgb(232, 241, 255); +} + +.gwt-RichTextToolbar .gwt-ToggleButton-down { + margin-right: 2px; + background-color: #E8F1FF; + border: 1px solid #C3D9FF; + border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) + rgb(157, 174, 205); +} + +.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering { + margin-right: 2px; + background-color: #E8F1FF; + border: 1px solid #C3D9FF; + border-color: #9DAECD rgb(232, 241, 255) rgb(232, 241, 255) + rgb(157, 174, 205); +} + +.gwt-HorizontalSplitPanel { + border: 8px solid #C3D9FF; +} + +.gwt-HorizontalSplitPanel .splitter { + background-color: #C3D9FF; + cursor: move; +} + +.gwt-HorizontalSplitPanel .left { + background-color: #E8EEF7; +} + +.gwt-VerticalSplitPanel { + border: 8px solid #C3D9FF; +} + +.gwt-VerticalSplitPanel .splitter { + background-color: #C3D9FF; + height: 8px; + cursor: move; +} + +.gwt-DisclosurePanel { + border: 2px solid #C3D9FF; +} + +.gwt-DisclosurePanel .header { + background-color: #e8eef7; + cursor: hand; +} + +.gwt-SplitLayoutPanel { + +} + +.gwt-SplitLayoutPanel .gwt-SplitLayoutPanel-HDragger { + background-color: transparent; + background: url("images/spliter-top.png") no-repeat scroll center bottom + transparent; + cursor: col-resize; +} + +.gwt-SplitLayoutPanel .gwt-SplitLayoutPanel-VDragger { + background-color: white; + background: none; + cursor: row-resize; +} + +.kLoadingPanel { + background-color: #FF9999; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; + padding: 0 1px 0 3px; + border-collapse: separate; + border-spacing: 2px; +} + +.kLoadingLabel { + font-size: 14px; + color: white; + font-weight: bold; + padding: 0 5px 0 5px; +} + +.k-space-tooltip { + border-collapse: separate; + border-spacing: 5px; + vertical-align: middle; + line-height: 1.1em; +} + +.k-space-sel { + margin-right: 10px; + background-color: #F2F2F2; +} + +.k-space-sel-btn { + padding: 0 1px 0 1px; + margin: 0 0 -2px; + outline: 0 none; +} + +.k-sitebar-logo { + margin-top: 2px; +} + +.x-btn button,button { /* font: 18px/27px 'Ubuntu', arial; */ + +} + +.x-panel-mc { + font: inherit; +} + +k-btn-sitebar button spin,.k-sitebar button spin,.k-btn-sitebar div,.k-btn-sitebar span,.k-btn-sitebar button span,.k-sitebar button span + { + text-decoration: underline; +} + +.k-btn-sitebar,.k-btn-sitebar button,.k-sitebar button,.k-btn-sitebar div,.k-btn-sitebar button div,.k-sitebar button div + { + font: 13px 'Ubuntu', arial; + color: #B3B3B3; + cursor: pointer; + white-space: nowrap; + background: none; + border: 0px; + padding: 0 3px 0 0 !important; + height: 17px !important; +} + +.k-sitebar-wave-status { + font: 13px 'Ubuntu', arial; + /* font-weight: bold; */ + color: #B3B3B3; + white-space: nowrap; + background: none; + border: 0px; + padding: 1px 7px 0 0 !important; +} + +.k-sitebar-wave-status { + +} + +.k-sitebar-wave-status-online { + color: green; +} + +.k-sitebar-wave-status-offline { + color: red; +} + +.k-sitebar button:hover { + border: 0px; + background: none; +} + +.k-btn-sitebar button { + margin-top: -5px; +} + +.k-sitebar { /* margin-top: -30px; */ + +} + +.k-link { + text-decoration: underline; + color: green; + cursor: pointer; +} + +/* Margins */ +.kune-Margin-40-trbl { + margin: 40px; +} + +.kune-Margin-40-lr { + margin-left: 40px; + margin-right: 40px; +} + +.kune-Margin-40-tl { + margin-top: 40px; + margin-left: 40px; +} + +.kune-Margin-40-tb { + margin-top: 40px; + margin-bottom: 40px; +} + +.kune-Margin-40-t { + margin-top: 40px; +} + +.kune-Margin-40-r { + margin-right: 40px; +} + +.kune-Margin-40-l { + margin-left: 40px; +} + +.kune-Margin-20-trbl { + margin: 20px; +} + +.kune-Margin-20-lr { + margin-left: 20px; + margin-right: 20px; +} + +.kune-Margin-20-tl { + margin-top: 20px; + margin-left: 20px; +} + +.kune-Margin-20-tb { + margin-top: 20px; + margin-bottom: 20px; +} + +.kune-Margin-20-t { + margin-top: 20px; +} + +.kune-Margin-20-r { + margin-right: 20px; +} + +.kune-Margin-20-b { + margin-bottom: 20px; +} + +.kune-Margin-20-l { + margin-left: 20px; +} + +.kune-Margin-10-trbl { + margin: 10px; +} + +.kune-Margin-10-lr { + margin-left: 10px; + margin-right: 10px; +} + +.kune-Margin-10-tl { + margin-top: 10px; + margin-left: 10px; +} + +.kune-Margin-10-tb { + margin-top: 10px; + margin-bottom: 10px; +} + +.kune-Margin-10-t { + margin-top: 10px; +} + +.kune-Margin-10-r { + margin-right: 10px; +} + +.kune-Margin-Large-trbl { + margin: 10px; +} + +.kune-Margin-Large-lr { + margin-left: 10px; + margin-right: 10px; +} + +.kune-Margin-Large-tl { + margin-top: 10px; + margin-left: 10px; +} + +.kune-Margin-Large-tb { + margin-top: 10px; + margin-bottom: 10px; +} + +.kune-Margin-Large-t { + margin-top: 10px; +} + +.kune-Margin-Large-r { + margin-right: 10px; +} + +.kune-Margin-Large-b { + margin-bottom: 10px; +} + +.kune-Margin-Large-l { + margin-left: 10px; +} + +.kune-Margin-7-trbl { + margin: 7px; +} + +.kune-Margin-7-lr { + margin-left: 7px; + margin-right: 7px; +} + +.kune-Margin-7-tl { + margin-top: 7px; + margin-left: 7px; +} + +.kune-Margin-7-tb { + margin-top: 7px; + margin-bottom: 7px; +} + +.kune-Margin-7-t { + margin-top: 7px; +} + +.kune-Margin-7-r { + margin-right: 7px; +} + +.kune-Margin-7-b { + margin-bottom: 7px; +} + +.kune-Margin-7-l { + margin-left: 7px; +} + +.kune-Margin-Medium-trbl { + margin: 5px; +} + +.kune-Margin-Medium-lr { + margin-left: 5px; + margin-right: 5px; +} + +.kune-Margin-Medium-tl { + margin-top: 5px; + margin-left: 5px; +} + +.kune-Margin-Medium-tb { + margin-top: 5px; + margin-bottom: 5px; +} + +.kune-Margin-Medium-t { + margin-top: 5px; +} + +.kune-Margin-Medium-r { + margin-right: 5px; +} + +.kune-Margin-Medium-b { + margin-bottom: 5px; +} + +.kune-Margin-Medium-l { + margin-left: 5px; +} + +.kune-Margin-Small-trbl { + margin: 3px; +} + +.kune-Margin-Small-lr { + margin-left: 3px; + margin-right: 3px; +} + +.kune-Margin-Small-tl { + margin-top: 3px; + margin-left: 3px; +} + +.kune-Margin-Small-tb { + margin-top: 3px; + margin-bottom: 3px; +} + +.kune-Margin-Small-t { + margin-top: 3px; +} + +.kune-Margin-Small-l { + margin-left: 3px; +} + +.kune-Margin-Small-r { + margin-right: 3px; +} + +.kune-Margin-Small-b { + margin-bottom: 3px; +} + +.kune-Margin-Mini-trbl { + margin: 1px; +} + +.kune-Margin-Mini-lr { + margin-left: 1px; + margin-right: 1px; +} + +.kune-Margin-Mini-tl { + margin-top: 1px; + margin-left: 1px; +} + +.kune-Margin-Mini-tb { + margin-top: 1px; + margin-bottom: 1px; +} + +.kune-Margin-Mini-t { + margin-top: 1px; +} + +.kune-Margin-Mini-r { + margin-right: 1px; +} + +.kune-Margin-Mini-b { + margin-bottom: 1px; +} + +.kune-Margin-Mini-l { + margin-left: 1px; +} + +.k-publicspace-msg { + background-color: #E0E0E0; +} + +.k-publicspace-mask { /* background-color: #fff !important; + kfilter: alpha(opacity = 68) !important; + -moz-opacity: 0.68 !important; + -khtml-opacity: 0.68 !important; + opacity: 0.68 !important;*/ + +} + +.k-publicspace-panel { + margin: 5px; + display: table-row; +} + +.k-publicspace-icon { + margin: 3px 3px 3px 0; + float: left; +} + +.k-publicspace-title { + font-weight: bold; + display: block; + margin-bottom: 5px; + font-size: 16px; + display: table-caption; +} + +.k-publicspace-description { + font-size: 14px; + display: table-cell; +} + +.k-publicspace-actions { + display: inline; +} + +.k-message-panel { + margin: 5px; + display: table-row; +} + +.k-message-icon { + margin: 3px 3px 3px 0; + float: left; +} + +.k-message-title { + font-weight: bold; + display: block; + margin-bottom: 5px; + font-size: 16px; + display: table-caption; +} + +.k-message-description { + font-size: 14px; + display: table-cell; +} + +.k-error-tb { + background: #FFB380 none repeat scroll 0% 50%; + /* color: #250; */ + padding: 10px; +} + +.k-error-tb img { + margin: 0 10px; + float: left; +} + +.k-error-tb div { + font-size: 14px; + display: table-cell; +} + +.k-mask { + background-color: #F2F2F2 !important; + /* kfilter: alpha(opacity = 78) !important; */ + -moz-opacity: 0.78 !important; + -khtml-opacity: 0.78 !important; + opacity: 0.78 !important; +} + +.x-form-item-label { + font-size: 14px; + font-weight: bold; + color: brown; +} + +.x-form-text { + font-size: 14px; +} + +.x-fieldset-header-text,.x-form-group-label,.x-form-cb-label { + font-size: 14px; + font-family: 'Ubuntu', Arial; +} + +.k-form-intro { + font-size: 14px; + margin-bottom: 10px; +} + +.k-form-fieldset { + font-size: 16px; + margin-left: 105px; +} + +.k-basic-thumb { + background-color: #F2F2F2; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; +} + +.k-basic-thumb img { + margin: 2px 2px 0px 2px; +} + +.k-basic-thumb div { + margin: -3px 0px 0px 0px; + font-weight: normal; + font-size: 12px; +} + +.k-sn-mainpanel { + font-size: 16px; + font-weight: bold; +} + +.k-sn-maintitle { + margin: 5px; +} + +.k-sn-maintitle { + color: #a05a2c; + font-size: 20px; +} + +.k-sn-adminslabel,.k-sn-collabslabel,.k-sn-pendingslabel { + color: #FFF; + text-transform: lowercase; + padding-left: 10px; + float: left; +} + +.k-sn-adminsCountlabel,.k-sn-collabsCountlabel,.k-sn-pendingsCountlabel + { + float: left; + padding-left: 5px; + color: #e0e0e0; +} + +.k-sn-adminslabel { + +} + +.k-sn-mainpanel .k-basic-thumb { + float: left; +} + +/* +.k-sn-mainpanel .x-btn button { + text-decoration: underline; + white-space: nowrap; +} +*/ +.k-sn-mainpanel .x-btn button,.k-sn-mainpanel button,button.k-button,.gwt-FileUpload + { + font: 13px 'Ubuntu', arial; + border: 2px solid #CCCCCC; + cursor: pointer; + margin: 0; + padding: 3px 0; + text-decoration: none; + background-color: #F2F2F2; + color: #A05A2C; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + vertical-align: middle; + outline: 0 none; + font-weight: bold; + width: auto !IMPORTANT; + width: 50px; + min-width: 50px; + height: 28px; +} + +.k-sn-mainpanel .x-btn button:hover,.k-sn-mainpanel button:hover,button.k-button:hover + { + border: 2px orange solid; + outline: 0 none; + /* background: #f0f0f0; */ +} + +.k-sn-mainpanel .x-btn button:hover span,.k-sn-mainpanel button:hover span,button.k-button:hover span + { + color: brown !important; + outline: 0 none; +} + +.k-sn-mainpanel .x-btn button:active,.k-sn-mainpanel button:active,button.k-button:active + { /* border-top-color: #ffffff; */ + background: #ffffff; +} + +.k-button-center { + border-left: 1px solid #CCCCCC !important; + border-right: 1px solid #CCCCCC !important; + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; + margin-left: 0px !important; + margin-right: 0px !important; +} + +.k-button-right { + border-left: 1px solid #CCCCCC !important; + -webkit-border-top-left-radius: 0px !important; + -moz-border-radius-topleft: 0px !important; + border-top-left-radius: 0px !important; + -webkit-border-bottom-left-radius: 0px !important; + -moz-border-radius-bottomleft: 0px !important; + border-bottom-left-radius: 0px !important; + margin-left: 0px !important; +} + +.k-button-left { + border-right: 1px solid #CCCCCC !important; + -webkit-border-top-right-radius: 0px !important; + -moz-border-radius-topright: 0px !important; + border-top-right-radius: 0px !important; + -webkit-border-bottom-right-radius: 0px !important; + -moz-border-radius-bottomright: 0px !important; + border-bottom-right-radius: 0px !important; + margin-right: 0px !important; +} + +button.k-button-center:hover { + border-left: 1px solid orange !important; + border-right: 1px solid orange !important; + outline: 0 none; +} + +button.k-button-right:hover { + border-left: 1px solid orange !important; + outline: 0 none; +} + +button.k-button-left:hover { + border-right: 1px solid orange !important; + outline: 0 none; +} + +button[disabled]:active,button[disabled],input[type="reset"][disabled]:active,input[type="reset"][disabled],input[type="button"][disabled]:active,input[type="button"][disabled],select[disabled]>input[type="button"],select[disabled]>input[type="button"]:active,input[type="submit"][disabled]:active,input[type="submit"][disabled],.k-button-disabled + { + color: gray !important; + border-color: #CCCCCC !important; + background: inherits !important; +} + +/* end buttons */ +.k-sn-collabslabel { + +} + +.k-sn-pendingslabel { + +} + +.k-sn-orphan-label { + padding: 10px; +} + +.k-sn-novisible-label { + padding: 10px; +} + +.k-sn-adminspanel { /* background-color: #a05a2c; */ + border-bottom: 2px solid #F7EBE3; + border-top: 2px solid #F7EBE3; +} + +.k-sn-collabspanel { + background-color: #d38d5f; +} + +.k-sn-pendingspanel { /* background-color: #a05a2c; */ + +} + +.k-sn-adminsscroll,.k-sn-collabsscroll,.k-sn-pendingsscroll { + +} + +.k-sn-adminsflow,.k-sn-collabsflow,.k-sn-pendingsflow { + margin-left: 10px; +} + +.k-sn-adminsscroll { + +} + +.k-sn-collabsscroll { + +} + +.k-sn-pendingsscroll { + +} + +.k-userconfirm-label { + width: 300px; + margin: 10px; +} + +.k-sn-deck { + +} + +.k-sn-bottomPanel { + padding: 8px 10px 0; + float: left; +} + +.k-sn-bottomPanel-actions { + width: 100%; +} + +.k-sn-novisible-label,.k-sn-orphan-label { + color: #FFF; + font-size: 16px; + font-weight: bold; +} + +.k-frame-def { + margin: 0px; + border: 0px; +} + +.k-maxsize { + width: 100%; + height: 100%; +} + +.k-footer-license-label { + float: right; + margin-top: 8px; + cursor: pointer; + font-weight: bold; + font-size: 16px; + color: #784421; +} + +.k-footer-license-label-title { + margin-right: 5px; + color: #280b0b; +} + +.k-footer-license-img { + float: right; + margin: 10px 15px 0px 5px; + cursor: pointer; +} + +.k-sn-options-menu { + float: left; +} + +.k-sn-options-menu button { + background-color: none; +} + +.k-sn-join { + float: left; +} + +.k-entitytextlogo-border { + border: 2px solid #F2F2F2; +} + +.k-entitytextlogo-no-border { + border: none; +} + +.k-entitytextlogo { + height: 60px; + margin: 5px; + overflow: hidden; + width: 468px; +} + +.k-entitytextlogo table { + vertical-align: middle; +} + +.k-elogo-l-l { + font-size: 46px; +} + +.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: #000080; +} + +.k-entitytextlogo-grey .gwt-Label { + color: #1A1A1A; +} + +.k-entitytextlogo-purple .gwt-Label { + color: #440055; +} + +.k-entitytextlogo-red .gwt-Label { + color: #800000; +} + +.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-tsp-tag { + float: left; + padding: 3px; + cursor: pointer; + color: #5B4683; +} + +.k-tsp-cloud { + line-height: 1em; + text-align: center; +} + +.k-tool-panel { + background-color: #DEAA87; +} + +.k-tool-item { + display: block; + cursor: pointer; + outline: 0 none; +} + +.k-tool-item-focus { + background-color: #d38d5f; +} + +.k-tool-item-nofocus { + +} + +.k-tool-item-selected { + background-color: #C87137; +} + +.k-tool-item-notselected { + background-color: inherits; +} + +.k-def-docbtn span { + font-size: 13px !important; +} + +.k-empty-msg { + font-size: 16px; + font-style: italic; +} + +button.k-ent-header-btn { + margin-left: 5px !important; +} + +.k-ent-header-btn * { + font-size: 13px !important; +} + +table.k-folder-viewer { + border: 5px solid #FFF; + border-collapse: separate; +} + +/* Suggest box */ +.gwt-SuggestBox { + padding: 2px; +} + +.gwt-SuggestBoxPopup { + background-color: #FFF; + border: 2px solid #552200; + padding: 3px; + color: white; + -webkit-border-bottom-right-radius: 5px; + -moz-border-radius-bottomright: 5px; + border-bottom-right-radius: 5px; + -webkit-border-bottom-left-radius: 5px; + -moz-border-radius-bottomleft: 5px; + border-bottom-left-radius: 5px; + kfilter: alpha(opacity = 90); + -moz-opacity: 0.90; + -khtml-opacity: 0.90; + opacity: 0.90; + margin-left: 3px; +} + +.gwt-SuggestBoxPopup .item { + padding: 2px 6px; + color: #424242; + cursor: default; +} + +.gwt-SuggestBoxPopup .item-selected { + background: #cdcdcd; + cursor: pointer; +} + +.gwt-SuggestBoxPopup .suggestPopupContent { + background: white; +} + +.k-sitebarsearch { + border: 1px solid #E4A374; + margin: 1px 6px 0 3px; + padding-left: 1px; + color: #B3B3B3; + background: transparent; +} + +.k-sitebarsearch-img { + cursor: pointer; + background: none; + border: 0px; + padding: 2px 0 0 0 !important; +} + +/* end of suggestbox */ +.k-table { + display: table; +} + +.k-table-row { + display: table-row; +} + +.k-table-cell { + display: table-cell; +} + +/* Decorated tabbar */ +.gwt-DecoratedTabBar { + +} + +.gwt-DecoratedTabBar .gwt-TabBarFirst { + width: 5px; /* first tab distance from the left */ +} + +.gwt-DecoratedTabBar .gwt-TabBarRest { + +} + +.gwt-DecoratedTabBar .gwt-TabBarItem { + border-collapse: collapse; + margin-left: 6px; +} + +.gwt-DecoratedTabBar .tabTopCenter { + padding: 0px; + background: #e3e3e3; +} + +.gwt-DecoratedTabBar .tabTopLeft,.gwt-DecoratedTabBar .tabTopRight { + padding: 0px; + zoom: 1; +} + +.gwt-DecoratedTabBar .tabTopLeftInner,.gwt-DecoratedTabBar .tabTopRightInner + { + width: 6px; + height: 6px; +} + +.gwt-DecoratedTabBar .tabTopLeft { + background: url(images/corner.png) no-repeat 0px -55px; + -background: url(images/corner_ie6.png) no-repeat 0px -55px; +} + +.gwt-DecoratedTabBar .tabTopRight { + background: url(images/corner.png) no-repeat -6px -55px; + -background: url(images/corner_ie6.png) no-repeat -6px -55px; +} + +* html .gwt-DecoratedTabBar .tabTopLeftInner,* html .gwt-DecoratedTabBar .tabTopRightInner + { + width: 6px; + height: 6px; + overflow: hidden; +} + +.gwt-DecoratedTabBar .tabMiddleLeft,.gwt-DecoratedTabBar .tabMiddleRight + { + width: 6px; + padding: 0px; + background: #e3e3e3 url(images/hborder.png) repeat-x 0px -1463px; +} + +.gwt-DecoratedTabBar .tabMiddleLeftInner,.gwt-DecoratedTabBar .tabMiddleRightInner + { + width: 1px; + height: 1px; +} + +.gwt-DecoratedTabBar .tabMiddleCenter { + padding: 0px 4px 2px 4px; + cursor: pointer; + cursor: hand; + color: black; + font-weight: bold; + text-align: center; + background: #e3e3e3 url(images/hborder.png) repeat-x 0px -1463px; +} + +.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopCenter { + background: #747474; +} + +.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopLeft { + background-position: 0px -61px; +} + +.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabTopRight { + background-position: -6px -61px; +} + +.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleLeft,.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleRight + { + background: #bcbcbc url(images/hborder.png) repeat-x 0px -2511px; +} + +.gwt-DecoratedTabBar .gwt-TabBarItem-selected .tabMiddleCenter { + cursor: default; + background: #bcbcbc url(images/hborder.png) repeat-x 0px -2511px; + color: white; +} + +.gwt-DecoratedTabBar .gwt-TabBarItem-disabled .tabMiddleCenter { + cursor: default; + color: #999999; +} + +/* end Decorated tabbar */ +.k-waveHolder { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; +} + +.GWTUpld,table.GWTUpld td { + font-family: inherits !important; + font-size: 14px !important; +} + +.GWTUpld .DecoratedFileUpload .gwt-Button,.GWTUpld .DecoratedFileUpload .gwt-Anchor,.GWTUpld .DecoratedFileUpload .gwt-Label + { + font-size: 14px !important; + white-space: nowrap; +} + +.x-form-check-wrap { + height: inherit;; + line-height: inherit; +} + +.k-info-links { + text-decoration: underline; + color: gray; + cursor: pointer; +} \ No newline at end of file Deleted: tags/0.0.8/src/main/java/cc/kune/core/server/state/StateServiceDefault.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,174 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.core.server.state; - -import org.waveprotocol.wave.model.waveref.InvalidWaveRefException; -import org.waveprotocol.wave.util.escapers.jvm.JavaWaverefEncoder; - -import cc.kune.core.client.errors.DefaultException; -import cc.kune.core.server.access.AccessRightsService; -import cc.kune.core.server.content.ContentManager; -import cc.kune.core.server.manager.GroupManager; -import cc.kune.core.server.manager.SocialNetworkManager; -import cc.kune.core.server.manager.TagUserContentManager; -import cc.kune.core.shared.i18n.I18nTranslationService; -import cc.kune.domain.Container; -import cc.kune.domain.Content; -import cc.kune.domain.Group; -import cc.kune.domain.License; -import cc.kune.domain.Revision; -import cc.kune.domain.User; -import cc.kune.wave.server.KuneWaveManager; - -import com.google.inject.Inject; -import com.google.inject.Singleton; -import com.google.wave.api.Wavelet; - -@Singleton -public class StateServiceDefault implements StateService { - - private final ContentManager contentManager; - private final GroupManager groupManager; - private final I18nTranslationService i18n; - private final KuneWaveManager kuneWaveManager; - private final AccessRightsService rightsService; - private final SocialNetworkManager socialNetworkManager; - private final TagUserContentManager tagManager; - - @Inject - public StateServiceDefault(final GroupManager groupManager, - final SocialNetworkManager socialNetworkManager, final ContentManager contentManager, - final TagUserContentManager tagManager, final AccessRightsService rightsService, - final I18nTranslationService i18n, final KuneWaveManager kuneWaveManager) { - this.groupManager = groupManager; - this.socialNetworkManager = socialNetworkManager; - this.contentManager = contentManager; - this.tagManager = tagManager; - this.rightsService = rightsService; - this.i18n = i18n; - this.kuneWaveManager = kuneWaveManager; - } - - private Container calculateRootContainer(final Container container) { - return container.isRoot() ? container : container.getAbsolutePath().get(0); - } - - @Override - public StateContainer create(final User userLogged, final Container container) { - final StateContainer state = new StateContainer(); - state.setTitle(container.getName()); - state.setTypeId(container.getTypeId()); - state.setLanguage(container.getLanguage()); - state.setStateToken(container.getStateToken()); - state.setRootContainer(calculateRootContainer(container)); - state.setLicense(container.getOwner().getDefaultLicense()); - state.setAccessLists(container.getAccessLists()); - final Group group = container.getOwner(); - setCommon(state, userLogged, group, container); - return state; - } - - @Override - public StateContent create(final User userLogged, final Content content) { - final StateContent state = new StateContent(); - final String typeId = content.getTypeId(); - state.setTypeId(typeId); - state.setMimeType(content.getMimeType()); - state.setDocumentId(content.getId().toString()); - state.setLanguage(content.getLanguage()); - state.setPublishedOn(content.getPublishedOn()); - state.setAuthors(content.getAuthors()); - state.setTags(tagManager.getTagsAsString(userLogged, content)); - state.setStatus(content.getStatus()); - state.setStateToken(content.getStateToken()); - final Revision revision = content.getLastRevision(); - state.setVersion(content.getVersion()); - final char[] text = revision.getBody(); - final String textBody = text == null ? null : new String(text); - if (content.isWave()) { - final String waveId = content.getWaveId(); - state.setWaveRef(waveId); - try { - final Wavelet wavelet = kuneWaveManager.fetchWavelet( - JavaWaverefEncoder.decodeWaveRefFromPath(waveId), content.getAuthors().get(0).getShortName()); - final String currentContent = wavelet.getRootBlip().getContent(); - state.setContent(currentContent); - // Well we "cache" the last modified time of waves in db (w'll find - // another way to do it better in the future with db persitence of - // waves) - contentManager.setModifiedOn(content, wavelet.getLastModifiedTime()); - // contentManager.save(userLogged, content, currentContent); - state.setTitle(wavelet.getTitle()); - state.setIsParticipant(userLogged != User.UNKNOWN_USER ? kuneWaveManager.isParticipant(wavelet, - userLogged.getShortName()) : false); - } catch (final InvalidWaveRefException e) { - throw new DefaultException("Error retriving Wave"); - } - } else { - state.setContent(textBody); - state.setTitle(revision.getTitle()); - } - final Container container = content.getContainer(); - state.setRootContainer(calculateRootContainer(container)); - final License license = content.getLicense(); - final Group group = container.getOwner(); - state.setLicense(license == null ? group.getDefaultLicense() : license); - state.setContentRights(rightsService.get(userLogged, content.getAccessLists())); - state.setAccessLists(content.getAccessLists()); - setCommon(state, userLogged, group, container); - if (userLogged != User.UNKNOWN_USER) { - state.setCurrentUserRate(contentManager.getRateContent(userLogged, content)); - } - // FIXME: user RateResult - final Double rateAvg = contentManager.getRateAvg(content); - state.setRate(rateAvg != null ? rateAvg : 0D); - final Long rateByUsers = contentManager.getRateByUsers(content); - state.setRateByUsers(rateByUsers != null ? rateByUsers.intValue() : 0); - return state; - } - - @Override - public StateNoContent createNoHome(final User userLogged, final String groupShortName) { - final Group group = groupManager.findByShortName(groupShortName); - assert (group.isPersonal()); - final StateNoContent state = new StateNoContent(); - state.setGroup(group); - state.setEnabledTools(groupManager.findEnabledTools(group.getId())); - setSocialNetwork(state, userLogged, group); - state.setStateToken(group.getStateToken()); - state.setTitle("<h2>" + i18n.t("This user does not have a homepage") + "</h2>"); - return state; - } - - private void setCommon(final StateContainer state, final User userLogged, final Group group, - final Container container) { - state.setToolName(container.getToolName()); - state.setGroup(group); - state.setContainer(container); - state.setContainerRights(rightsService.get(userLogged, container.getAccessLists())); - state.setEnabledTools(groupManager.findEnabledTools(group.getId())); - state.setTagCloudResult(tagManager.getTagCloudResultByGroup(group)); - setSocialNetwork(state, userLogged, group); - } - - private void setSocialNetwork(final StateAbstract state, final User userLogged, final Group group) { - state.setSocialNetworkData(socialNetworkManager.getSocialNetworkData(userLogged, group)); - } -} Copied: tags/0.0.8/src/main/java/cc/kune/core/server/state/StateServiceDefault.java (from rev 1380, trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/core/server/state/StateServiceDefault.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,175 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.core.server.state; + +import org.waveprotocol.wave.model.waveref.InvalidWaveRefException; +import org.waveprotocol.wave.util.escapers.jvm.JavaWaverefEncoder; + +import cc.kune.core.client.errors.DefaultException; +import cc.kune.core.server.access.AccessRightsService; +import cc.kune.core.server.content.ContentManager; +import cc.kune.core.server.manager.GroupManager; +import cc.kune.core.server.manager.SocialNetworkManager; +import cc.kune.core.server.manager.TagUserContentManager; +import cc.kune.core.shared.i18n.I18nTranslationService; +import cc.kune.domain.Container; +import cc.kune.domain.Content; +import cc.kune.domain.Group; +import cc.kune.domain.License; +import cc.kune.domain.Revision; +import cc.kune.domain.User; +import cc.kune.wave.server.KuneWaveManager; + +import com.google.inject.Inject; +import com.google.inject.Singleton; +import com.google.wave.api.Wavelet; + +@Singleton +public class StateServiceDefault implements StateService { + + private final ContentManager contentManager; + private final GroupManager groupManager; + private final I18nTranslationService i18n; + private final KuneWaveManager kuneWaveManager; + private final AccessRightsService rightsService; + private final SocialNetworkManager socialNetworkManager; + private final TagUserContentManager tagManager; + + @Inject + public StateServiceDefault(final GroupManager groupManager, + final SocialNetworkManager socialNetworkManager, final ContentManager contentManager, + final TagUserContentManager tagManager, final AccessRightsService rightsService, + final I18nTranslationService i18n, final KuneWaveManager kuneWaveManager) { + this.groupManager = groupManager; + this.socialNetworkManager = socialNetworkManager; + this.contentManager = contentManager; + this.tagManager = tagManager; + this.rightsService = rightsService; + this.i18n = i18n; + this.kuneWaveManager = kuneWaveManager; + } + + private Container calculateRootContainer(final Container container) { + return container.isRoot() ? container : container.getAbsolutePath().get(0); + } + + @Override + public StateContainer create(final User userLogged, final Container container) { + final StateContainer state = new StateContainer(); + state.setTitle(container.getName()); + state.setTypeId(container.getTypeId()); + state.setLanguage(container.getLanguage()); + state.setStateToken(container.getStateToken()); + state.setRootContainer(calculateRootContainer(container)); + state.setLicense(container.getOwner().getDefaultLicense()); + state.setAccessLists(container.getAccessLists()); + final Group group = container.getOwner(); + setCommon(state, userLogged, group, container); + return state; + } + + @Override + public StateContent create(final User userLogged, final Content content) { + final StateContent state = new StateContent(); + final String typeId = content.getTypeId(); + state.setTypeId(typeId); + state.setMimeType(content.getMimeType()); + state.setDocumentId(content.getId().toString()); + state.setLanguage(content.getLanguage()); + state.setPublishedOn(content.getPublishedOn()); + state.setAuthors(content.getAuthors()); + state.setTags(tagManager.getTagsAsString(userLogged, content)); + state.setStatus(content.getStatus()); + state.setStateToken(content.getStateToken()); + final Revision revision = content.getLastRevision(); + state.setVersion(content.getVersion()); + final char[] text = revision.getBody(); + final String textBody = text == null ? null : new String(text); + if (content.isWave()) { + final String waveId = content.getWaveId(); + state.setWaveRef(waveId); + try { + // FIXME if we remove the authors this fails... + final Wavelet wavelet = kuneWaveManager.fetchWavelet( + JavaWaverefEncoder.decodeWaveRefFromPath(waveId), content.getAuthors().get(0).getShortName()); + final String currentContent = wavelet.getRootBlip().getContent(); + state.setContent(currentContent); + // Well we "cache" the last modified time of waves in db (w'll find + // another way to do it better in the future with db persitence of + // waves) + contentManager.setModifiedOn(content, wavelet.getLastModifiedTime()); + // contentManager.save(userLogged, content, currentContent); + state.setTitle(wavelet.getTitle()); + state.setIsParticipant(userLogged != User.UNKNOWN_USER ? kuneWaveManager.isParticipant(wavelet, + userLogged.getShortName()) : false); + } catch (final InvalidWaveRefException e) { + throw new DefaultException("Error retriving Wave"); + } + } else { + state.setContent(textBody); + state.setTitle(revision.getTitle()); + } + final Container container = content.getContainer(); + state.setRootContainer(calculateRootContainer(container)); + final License license = content.getLicense(); + final Group group = container.getOwner(); + state.setLicense(license == null ? group.getDefaultLicense() : license); + state.setContentRights(rightsService.get(userLogged, content.getAccessLists())); + state.setAccessLists(content.getAccessLists()); + setCommon(state, userLogged, group, container); + if (userLogged != User.UNKNOWN_USER) { + state.setCurrentUserRate(contentManager.getRateContent(userLogged, content)); + } + // FIXME: user RateResult + final Double rateAvg = contentManager.getRateAvg(content); + state.setRate(rateAvg != null ? rateAvg : 0D); + final Long rateByUsers = contentManager.getRateByUsers(content); + state.setRateByUsers(rateByUsers != null ? rateByUsers.intValue() : 0); + return state; + } + + @Override + public StateNoContent createNoHome(final User userLogged, final String groupShortName) { + final Group group = groupManager.findByShortName(groupShortName); + assert (group.isPersonal()); + final StateNoContent state = new StateNoContent(); + state.setGroup(group); + state.setEnabledTools(groupManager.findEnabledTools(group.getId())); + setSocialNetwork(state, userLogged, group); + state.setStateToken(group.getStateToken()); + state.setTitle("<h2>" + i18n.t("This user does not have a homepage") + "</h2>"); + return state; + } + + private void setCommon(final StateContainer state, final User userLogged, final Group group, + final Container container) { + state.setToolName(container.getToolName()); + state.setGroup(group); + state.setContainer(container); + state.setContainerRights(rightsService.get(userLogged, container.getAccessLists())); + state.setEnabledTools(groupManager.findEnabledTools(group.getId())); + state.setTagCloudResult(tagManager.getTagCloudResultByGroup(group)); + setSocialNetwork(state, userLogged, group); + } + + private void setSocialNetwork(final StateAbstract state, final User userLogged, final Group group) { + state.setSocialNetworkData(socialNetworkManager.getSocialNetworkData(userLogged, group)); + } +} Deleted: tags/0.0.8/src/main/java/cc/kune/gspace/client/licensewizard/LicenseChangeAction.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/licensewizard/LicenseChangeAction.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/gspace/client/licensewizard/LicenseChangeAction.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,70 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.gspace.client.licensewizard; - -import cc.kune.common.client.notify.NotifyUser; -import cc.kune.common.client.utils.SimpleResponseCallback; -import cc.kune.core.client.rpcservices.AsyncCallbackSimple; -import cc.kune.core.client.rpcservices.GroupServiceAsync; -import cc.kune.core.client.state.Session; -import cc.kune.core.client.state.StateManager; -import cc.kune.core.shared.domain.utils.StateToken; -import cc.kune.core.shared.dto.LicenseDTO; -import cc.kune.core.shared.i18n.I18nTranslationService; - -import com.google.inject.Inject; -import com.google.inject.Provider; - -public class LicenseChangeAction { - private final Provider<GroupServiceAsync> groupService; - private final I18nTranslationService i18n; - private final Session session; - private final StateManager stateManager; - - @Inject - 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 StateToken token, final LicenseDTO license, - final SimpleResponseCallback callback) { - NotifyUser.showProgressProcessing(); - groupService.get().changeDefLicense(session.getUserHash(), token, license, - new AsyncCallbackSimple<Void>() { - @Override - public void onFailure(final Throwable caught) { - super.onFailure(caught); - NotifyUser.hideProgress(); - NotifyUser.error(i18n.t("Error changing license")); - callback.onCancel(); - } - - @Override - public void onSuccess(final Void result) { - stateManager.reload(); - callback.onSuccess(); - } - }); - } -} Copied: tags/0.0.8/src/main/java/cc/kune/gspace/client/licensewizard/LicenseChangeAction.java (from rev 1382, trunk/src/main/java/cc/kune/gspace/client/licensewizard/LicenseChangeAction.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/gspace/client/licensewizard/LicenseChangeAction.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/gspace/client/licensewizard/LicenseChangeAction.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,75 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.gspace.client.licensewizard; + +import cc.kune.common.client.notify.NotifyUser; +import cc.kune.common.client.utils.SimpleResponseCallback; +import cc.kune.core.client.rpcservices.AsyncCallbackSimple; +import cc.kune.core.client.rpcservices.GroupServiceAsync; +import cc.kune.core.client.state.Session; +import cc.kune.core.client.state.StateManager; +import cc.kune.core.shared.domain.utils.StateToken; +import cc.kune.core.shared.dto.LicenseDTO; +import cc.kune.core.shared.i18n.I18nTranslationService; +import cc.kune.gspace.client.ui.footer.license.LicenseChangedEvent; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; +import com.google.inject.Provider; + +public class LicenseChangeAction { + private final EventBus eventBus; + private final Provider<GroupServiceAsync> groupService; + private final I18nTranslationService i18n; + private final Session session; + private final StateManager stateManager; + + @Inject + public LicenseChangeAction(final Provider<GroupServiceAsync> groupService, final Session session, + final EventBus eventBus, final I18nTranslationService i18n, final StateManager stateManager) { + this.groupService = groupService; + this.session = session; + this.eventBus = eventBus; + this.i18n = i18n; + this.stateManager = stateManager; + } + + public void changeLicense(final StateToken token, final LicenseDTO license, + final SimpleResponseCallback callback) { + NotifyUser.showProgressProcessing(); + groupService.get().changeDefLicense(session.getUserHash(), token, license, + new AsyncCallbackSimple<Void>() { + @Override + public void onFailure(final Throwable caught) { + super.onFailure(caught); + NotifyUser.hideProgress(); + NotifyUser.error(i18n.t("Error changing license")); + callback.onCancel(); + } + + @Override + public void onSuccess(final Void result) { + stateManager.reload(); + callback.onSuccess(); + LicenseChangedEvent.fire(eventBus); + } + }); + } +} Deleted: tags/0.0.8/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,84 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.gspace.client.options; - -import cc.kune.common.client.actions.AbstractExtendedAction; -import cc.kune.common.client.actions.Action; -import cc.kune.common.client.actions.ActionEvent; -import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor; -import cc.kune.common.client.ui.dialogs.tabbed.AbstractTabbedDialogPresenter; -import cc.kune.core.client.resources.CoreResources; -import cc.kune.core.client.state.StateChangedEvent; -import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler; -import cc.kune.core.client.state.StateManager; -import cc.kune.core.shared.dto.StateAbstractDTO; -import cc.kune.core.shared.i18n.I18nTranslationService; - -import com.google.inject.Inject; - -public class GroupOptionsPresenter extends AbstractTabbedDialogPresenter implements GroupOptions { - public static final String GROUP_OPTIONS_ICON = "k-eop-icon"; - private final I18nTranslationService i18n; - private final CoreResources img; - private ButtonDescriptor prefsItem; - private GroupOptionsView view; - - @Inject - public GroupOptionsPresenter(final StateManager stateManager, final I18nTranslationService i18n, - final CoreResources img, final GroupOptionsView view) { - this.i18n = i18n; - this.img = img; - stateManager.onStateChanged(true, new StateChangedHandler() { - @Override - public void onStateChanged(final StateChangedEvent event) { - final StateAbstractDTO state = event.getState(); - if (!state.getGroup().isPersonal() && state.getGroupRights().isAdministrable()) { - prefsItem.setVisible(true); - } else { - view.hide(); - prefsItem.setVisible(false); - } - } - }); - init(view); - } - - private void createActions() { - final AbstractExtendedAction groupPrefsAction = new AbstractExtendedAction() { - @Override - public void actionPerformed(final ActionEvent event) { - show(); - } - }; - // groupPrefsAction.putValue(Action.NAME, i18n.t("Group options")); - groupPrefsAction.putValue(Action.SMALL_ICON, img.prefs()); - prefsItem = new ButtonDescriptor(groupPrefsAction); - prefsItem.withStyles("k-ent-header-btn, k-noborder, k-nobackcolor, k-btn-min"); - prefsItem.setId(GROUP_OPTIONS_ICON); - prefsItem.setVisible(false); - view.addAction(prefsItem); - } - - private void init(final GroupOptionsView view) { - super.init(view); - this.view = view; - createActions(); - } -} Copied: tags/0.0.8/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java (from rev 1381, trunk/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,86 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.gspace.client.options; + +import cc.kune.common.client.actions.AbstractExtendedAction; +import cc.kune.common.client.actions.Action; +import cc.kune.common.client.actions.ActionEvent; +import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor; +import cc.kune.common.client.ui.dialogs.tabbed.AbstractTabbedDialogPresenter; +import cc.kune.core.client.resources.CoreResources; +import cc.kune.core.client.state.StateChangedEvent; +import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler; +import cc.kune.core.client.state.StateManager; +import cc.kune.core.shared.dto.StateAbstractDTO; +import cc.kune.core.shared.i18n.I18nTranslationService; + +import com.google.inject.Inject; + +public class GroupOptionsPresenter extends AbstractTabbedDialogPresenter implements GroupOptions { + public static final String GROUP_OPTIONS_ICON = "k-eop-icon"; + private final I18nTranslationService i18n; + private final CoreResources img; + private ButtonDescriptor prefsItem; + private final StateManager stateManager; + private GroupOptionsView view; + + @Inject + public GroupOptionsPresenter(final StateManager stateManager, final I18nTranslationService i18n, + final CoreResources img, final GroupOptionsView view) { + this.stateManager = stateManager; + this.i18n = i18n; + this.img = img; + init(view); + } + + private void createActions() { + final AbstractExtendedAction groupPrefsAction = new AbstractExtendedAction() { + @Override + public void actionPerformed(final ActionEvent event) { + show(); + } + }; + // groupPrefsAction.putValue(Action.NAME, i18n.t("Group options")); + groupPrefsAction.putValue(Action.SMALL_ICON, img.prefs()); + prefsItem = new ButtonDescriptor(groupPrefsAction); + prefsItem.withStyles("k-ent-header-btn, k-noborder, k-nobackcolor, k-btn-min"); + prefsItem.setId(GROUP_OPTIONS_ICON); + prefsItem.setVisible(false); + view.addAction(prefsItem); + } + + private void init(final GroupOptionsView view) { + super.init(view); + this.view = view; + createActions(); + stateManager.onStateChanged(true, new StateChangedHandler() { + @Override + public void onStateChanged(final StateChangedEvent event) { + final StateAbstractDTO state = event.getState(); + if (!state.getGroup().isPersonal() && state.getGroupRights().isAdministrable()) { + prefsItem.setVisible(true); + } else { + view.hide(); + prefsItem.setVisible(false); + } + } + }); + } +} Deleted: tags/0.0.8/src/main/java/cc/kune/gspace/client/options/license/EntityOptionsDefLicensePanel.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/options/license/EntityOptionsDefLicensePanel.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/gspace/client/options/license/EntityOptionsDefLicensePanel.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,91 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.gspace.client.options.license; - -import cc.kune.common.client.tooltip.Tooltip; -import cc.kune.common.client.ui.IconLabel; -import cc.kune.common.client.ui.KuneWindowUtils; -import cc.kune.core.client.resources.CoreResources; -import cc.kune.core.shared.dto.LicenseDTO; -import cc.kune.core.shared.i18n.I18nTranslationService; -import cc.kune.gspace.client.options.EntityOptionsView; - -import com.google.gwt.event.dom.client.HasClickHandlers; -import com.google.gwt.user.client.ui.Button; -import com.google.gwt.user.client.ui.Composite; -import com.google.gwt.user.client.ui.FlowPanel; -import com.google.gwt.user.client.ui.Image; -import com.google.gwt.user.client.ui.IsWidget; -import com.google.gwt.user.client.ui.Label; - -public class EntityOptionsDefLicensePanel extends Composite implements EntityOptionsDefLicenseView { - - private final Button change; - private final Image licenseImage; - private final IconLabel tabTitle; - - public EntityOptionsDefLicensePanel(final I18nTranslationService i18n, final CoreResources res) { - tabTitle = new IconLabel(res.copyleft(), i18n.t("License")); - final FlowPanel flow = new FlowPanel(); - final Label intro = new Label(); - intro.setWordWrap(true); - intro.setText(i18n.t("This is the default license for all the contents of this group (you can also select another different license per content):")); - intro.addStyleName("kune-Margin-20-tb"); - flow.add(intro); - licenseImage = new Image(); - flow.add(licenseImage); - licenseImage.addStyleName("kune-pointer"); - licenseImage.addStyleName("k-fr"); - change = new Button(i18n.t("Change")); - change.addStyleName("k-button"); - flow.add(change); - initWidget(flow); - flow.setHeight(String.valueOf(EntityOptionsView.HEIGHT) + "px"); - flow.setWidth(String.valueOf(EntityOptionsView.WIDTH) + "px"); - flow.addStyleName("k-overflow-y-auto"); - flow.addStyleName("k-tab-panel"); - } - - @Override - public HasClickHandlers getChange() { - return change; - } - - @Override - public HasClickHandlers getLicenseImage() { - return licenseImage; - } - - @Override - public IsWidget getTabTitle() { - return tabTitle; - } - - @Override - public void openWindow(final String url) { - KuneWindowUtils.open(url); - } - - @Override - public void setLicense(final LicenseDTO defaultLicense) { - licenseImage.setUrl(defaultLicense.getImageUrl()); - Tooltip.to(licenseImage, defaultLicense.getLongName()); - } -} Copied: tags/0.0.8/src/main/java/cc/kune/gspace/client/options/license/EntityOptionsDefLicensePanel.java (from rev 1382, trunk/src/main/java/cc/kune/gspace/client/options/license/EntityOptionsDefLicensePanel.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/gspace/client/options/license/EntityOptionsDefLicensePanel.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/gspace/client/options/license/EntityOptionsDefLicensePanel.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,91 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.gspace.client.options.license; + +import cc.kune.common.client.tooltip.Tooltip; +import cc.kune.common.client.ui.IconLabel; +import cc.kune.common.client.ui.KuneWindowUtils; +import cc.kune.core.client.resources.CoreResources; +import cc.kune.core.shared.dto.LicenseDTO; +import cc.kune.core.shared.i18n.I18nTranslationService; +import cc.kune.gspace.client.options.EntityOptionsView; + +import com.google.gwt.event.dom.client.HasClickHandlers; +import com.google.gwt.user.client.ui.Button; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.Image; +import com.google.gwt.user.client.ui.IsWidget; +import com.google.gwt.user.client.ui.Label; + +public class EntityOptionsDefLicensePanel extends Composite implements EntityOptionsDefLicenseView { + + private final Button change; + private final Image licenseImage; + private final IconLabel tabTitle; + + public EntityOptionsDefLicensePanel(final I18nTranslationService i18n, final CoreResources res) { + tabTitle = new IconLabel(res.copyleft(), i18n.t("License")); + final FlowPanel flow = new FlowPanel(); + final Label intro = new Label(); + intro.setWordWrap(true); + intro.setText(i18n.t("This is the default license for all the contents of this group (you can also select another different license per content):")); + intro.addStyleName("kune-Margin-20-tb"); + flow.add(intro); + licenseImage = new Image(); + flow.add(licenseImage); + licenseImage.addStyleName("kune-pointer"); + licenseImage.addStyleName("kune-Margin-10-r"); + change = new Button(i18n.t("Change")); + change.addStyleName("k-button"); + flow.add(change); + initWidget(flow); + flow.setHeight(String.valueOf(EntityOptionsView.HEIGHT) + "px"); + flow.setWidth(String.valueOf(EntityOptionsView.WIDTH) + "px"); + flow.addStyleName("k-overflow-y-auto"); + flow.addStyleName("k-tab-panel"); + } + + @Override + public HasClickHandlers getChange() { + return change; + } + + @Override + public HasClickHandlers getLicenseImage() { + return licenseImage; + } + + @Override + public IsWidget getTabTitle() { + return tabTitle; + } + + @Override + public void openWindow(final String url) { + KuneWindowUtils.open(url); + } + + @Override + public void setLicense(final LicenseDTO defaultLicense) { + licenseImage.setUrl(defaultLicense.getImageUrl()); + Tooltip.to(licenseImage, defaultLicense.getLongName()); + } +} Deleted: tags/0.0.8/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorItemPanel.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorItemPanel.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorItemPanel.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,125 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.gspace.client.tool.selector; - -import cc.kune.gspace.client.tool.selector.ToolSelectorItemPresenter.ToolSelectorItemView; - -import com.google.gwt.core.client.GWT; -import com.google.gwt.event.dom.client.HasClickHandlers; -import com.google.gwt.event.dom.client.MouseOutEvent; -import com.google.gwt.event.dom.client.MouseOverEvent; -import com.google.gwt.uibinder.client.UiBinder; -import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.uibinder.client.UiHandler; -import com.google.gwt.user.client.ui.Composite; -import com.google.gwt.user.client.ui.FocusPanel; -import com.google.gwt.user.client.ui.HasText; -import com.google.gwt.user.client.ui.Image; -import com.google.gwt.user.client.ui.InlineLabel; -import com.google.gwt.user.client.ui.Widget; - -public class ToolSelectorItemPanel extends Composite implements ToolSelectorItemView { - - interface ToolSelectorItemPanelUiBinder extends UiBinder<Widget, ToolSelectorItemPanel> { - } - - private static ToolSelectorItemPanelUiBinder uiBinder = GWT.create(ToolSelectorItemPanelUiBinder.class); - - @UiField - Image iconLeft; - @UiField - Image iconRight; - @UiField - InlineLabel label; - @UiField - FocusPanel self; - - public ToolSelectorItemPanel() { - initWidget(uiBinder.createAndBindUi(this)); - setVisibleImpl(false); - } - - @Override - public Widget asWidget() { - return this; - } - - private void focus() { - self.addStyleDependentName("focus"); - self.removeStyleDependentName("nofocus"); - } - - @Override - public HasClickHandlers getFocus() { - return self; - } - - @Override - public HasText getLabel() { - return label; - } - - @UiHandler("self") - void onSelfMouseOut(final MouseOutEvent event) { - unfocus(); - } - - // public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) { - // if (oldTheme != null) { - // final String oldName = oldTheme.getName(); - // hl.removeStyleDependentName(oldName); - // } - // final String newName = newTheme.getName(); - // hl.addStyleDependentName(newName); - // super.setCornerStyleName(hl.getStyleName()); - // } - - @UiHandler("self") - void onSelfMouseOver(final MouseOverEvent event) { - focus(); - } - - @Override - public void setSelected(final boolean selected) { - if (selected) { - self.addStyleDependentName("selected"); - self.removeStyleDependentName("notselected"); - iconRight.setVisible(true); - } else { - self.addStyleDependentName("notselected"); - self.removeStyleDependentName("selected"); - iconRight.setVisible(false); - } - } - - @Override - public void setVisible(final boolean visible) { - setVisibleImpl(visible); - } - - private void setVisibleImpl(final boolean visible) { - self.setVisible(visible); - } - - private void unfocus() { - self.addStyleDependentName("nofocus"); - self.removeStyleDependentName("focus"); - } -} Copied: tags/0.0.8/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorItemPanel.java (from rev 1382, trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorItemPanel.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorItemPanel.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorItemPanel.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,126 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.gspace.client.tool.selector; + +import cc.kune.gspace.client.tool.selector.ToolSelectorItemPresenter.ToolSelectorItemView; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.HasClickHandlers; +import com.google.gwt.event.dom.client.MouseOutEvent; +import com.google.gwt.event.dom.client.MouseOverEvent; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.uibinder.client.UiHandler; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.FocusPanel; +import com.google.gwt.user.client.ui.HasText; +import com.google.gwt.user.client.ui.Image; +import com.google.gwt.user.client.ui.InlineLabel; +import com.google.gwt.user.client.ui.Widget; + +public class ToolSelectorItemPanel extends Composite implements ToolSelectorItemView { + + interface ToolSelectorItemPanelUiBinder extends UiBinder<Widget, ToolSelectorItemPanel> { + } + + private static ToolSelectorItemPanelUiBinder uiBinder = GWT.create(ToolSelectorItemPanelUiBinder.class); + + @UiField + Image iconLeft; + @UiField + Image iconRight; + @UiField + InlineLabel label; + @UiField + FocusPanel self; + + public ToolSelectorItemPanel() { + initWidget(uiBinder.createAndBindUi(this)); + setVisibleImpl(false); + iconLeft.setVisible(false); + } + + @Override + public Widget asWidget() { + return this; + } + + private void focus() { + self.addStyleDependentName("focus"); + self.removeStyleDependentName("nofocus"); + } + + @Override + public HasClickHandlers getFocus() { + return self; + } + + @Override + public HasText getLabel() { + return label; + } + + @UiHandler("self") + void onSelfMouseOut(final MouseOutEvent event) { + unfocus(); + } + + // public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) { + // if (oldTheme != null) { + // final String oldName = oldTheme.getName(); + // hl.removeStyleDependentName(oldName); + // } + // final String newName = newTheme.getName(); + // hl.addStyleDependentName(newName); + // super.setCornerStyleName(hl.getStyleName()); + // } + + @UiHandler("self") + void onSelfMouseOver(final MouseOverEvent event) { + focus(); + } + + @Override + public void setSelected(final boolean selected) { + if (selected) { + self.addStyleDependentName("selected"); + self.removeStyleDependentName("notselected"); + iconRight.setVisible(true); + } else { + self.addStyleDependentName("notselected"); + self.removeStyleDependentName("selected"); + iconRight.setVisible(false); + } + } + + @Override + public void setVisible(final boolean visible) { + setVisibleImpl(visible); + } + + private void setVisibleImpl(final boolean visible) { + self.setVisible(visible); + } + + private void unfocus() { + self.addStyleDependentName("nofocus"); + self.removeStyleDependentName("focus"); + } +} Deleted: tags/0.0.8/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePresenter.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePresenter.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePresenter.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,97 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.gspace.client.ui.footer.license; - -import cc.kune.core.client.state.StateChangedEvent; -import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler; -import cc.kune.core.client.state.StateManager; -import cc.kune.core.shared.dto.LicenseDTO; -import cc.kune.core.shared.dto.StateAbstractDTO; -import cc.kune.core.shared.dto.StateContainerDTO; - -import com.google.gwt.event.dom.client.ClickEvent; -import com.google.gwt.event.dom.client.ClickHandler; -import com.google.gwt.event.dom.client.HasClickHandlers; -import com.google.gwt.event.shared.EventBus; -import com.google.inject.Inject; -import com.gwtplatform.mvp.client.Presenter; -import com.gwtplatform.mvp.client.View; -import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; -import com.gwtplatform.mvp.client.proxy.Proxy; -import com.gwtplatform.mvp.client.proxy.RevealRootContentEvent; - -public class EntityLicensePresenter extends - Presenter<EntityLicensePresenter.EntityLicenseView, EntityLicensePresenter.EntityLicenseProxy> { - - @ProxyCodeSplit - public interface EntityLicenseProxy extends Proxy<EntityLicensePresenter> { - } - public interface EntityLicenseView extends View { - void attach(); - - void detach(); - - HasClickHandlers getImage(); - - void openWindow(String url); - - void showLicense(String groupName, LicenseDTO licenseDTO); - - } - - private LicenseDTO license; - - @Inject - public EntityLicensePresenter(final EventBus eventBus, final EntityLicenseView view, - final EntityLicenseProxy proxy, final StateManager stateManager) { - super(eventBus, view, proxy); - stateManager.onStateChanged(true, new StateChangedHandler() { - - @Override - public void onStateChanged(final StateChangedEvent event) { - final StateAbstractDTO state = event.getState(); - if (state instanceof StateContainerDTO) { - setLicense((StateContainerDTO) state); - } else { - getView().detach(); - } - } - }); - final ClickHandler clickHandler = new ClickHandler() { - - @Override - public void onClick(final ClickEvent event) { - getView().openWindow(license.getUrl()); - } - }; - getView().getImage().addClickHandler(clickHandler); - } - - @Override - protected void revealInParent() { - RevealRootContentEvent.fire(this, this); - } - - private void setLicense(final StateContainerDTO state) { - this.license = state.getLicense(); - getView().showLicense(state.getGroup().getShortName(), license); - getView().attach(); - } -} Copied: tags/0.0.8/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePresenter.java (from rev 1382, trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePresenter.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePresenter.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePresenter.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,109 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.gspace.client.ui.footer.license; + +import cc.kune.core.client.state.Session; +import cc.kune.core.client.state.StateChangedEvent; +import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler; +import cc.kune.core.client.state.StateManager; +import cc.kune.core.shared.dto.HasContent; +import cc.kune.core.shared.dto.LicenseDTO; +import cc.kune.core.shared.dto.StateAbstractDTO; +import cc.kune.core.shared.dto.StateContainerDTO; + +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.dom.client.HasClickHandlers; +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; +import com.gwtplatform.mvp.client.Presenter; +import com.gwtplatform.mvp.client.View; +import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; +import com.gwtplatform.mvp.client.proxy.Proxy; +import com.gwtplatform.mvp.client.proxy.RevealRootContentEvent; + +public class EntityLicensePresenter extends + Presenter<EntityLicensePresenter.EntityLicenseView, EntityLicensePresenter.EntityLicenseProxy> { + + @ProxyCodeSplit + public interface EntityLicenseProxy extends Proxy<EntityLicensePresenter> { + } + public interface EntityLicenseView extends View { + void attach(); + + void detach(); + + HasClickHandlers getImage(); + + void openWindow(String url); + + void showLicense(String groupName, LicenseDTO licenseDTO); + + } + + private LicenseDTO license; + + @Inject + public EntityLicensePresenter(final EventBus eventBus, final EntityLicenseView view, + final Session session, final EntityLicenseProxy proxy, final StateManager stateManager) { + super(eventBus, view, proxy); + stateManager.onStateChanged(true, new StateChangedHandler() { + @Override + public void onStateChanged(final StateChangedEvent event) { + final StateAbstractDTO state = event.getState(); + setState(state); + } + + }); + final ClickHandler clickHandler = new ClickHandler() { + @Override + public void onClick(final ClickEvent event) { + getView().openWindow(license.getUrl()); + } + }; + getView().getImage().addClickHandler(clickHandler); + eventBus.addHandler(LicenseChangedEvent.getType(), new LicenseChangedEvent.LicenseChangedHandler() { + + @Override + public void onLicenseChanged(final LicenseChangedEvent event) { + setState(session.getCurrentState()); + } + }); + } + + @Override + protected void revealInParent() { + RevealRootContentEvent.fire(this, this); + } + + private void setLicense(final StateContainerDTO state) { + this.license = state.getLicense(); + getView().showLicense(state.getGroup().getShortName(), license); + getView().attach(); + } + + private void setState(final StateAbstractDTO state) { + if (state instanceof HasContent) { + setLicense((StateContainerDTO) state); + } else { + getView().detach(); + } + } +} Copied: tags/0.0.8/src/main/java/cc/kune/gspace/client/ui/footer/license/LicenseChangedEvent.java (from rev 1382, trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/LicenseChangedEvent.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/gspace/client/ui/footer/license/LicenseChangedEvent.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/gspace/client/ui/footer/license/LicenseChangedEvent.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,55 @@ +package cc.kune.gspace.client.ui.footer.license; + +import com.google.gwt.event.shared.EventHandler; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.event.shared.HasHandlers; + +public class LicenseChangedEvent extends GwtEvent<LicenseChangedEvent.LicenseChangedHandler> { + + public interface HasLicenseChangedHandlers extends HasHandlers { + HandlerRegistration addLicenseChangedHandler(LicenseChangedHandler handler); + } + + public interface LicenseChangedHandler extends EventHandler { + public void onLicenseChanged(LicenseChangedEvent event); + } + + private static final Type<LicenseChangedHandler> TYPE = new Type<LicenseChangedHandler>(); + + public static void fire(final HasHandlers source) { + source.fireEvent(new LicenseChangedEvent()); + } + + public static Type<LicenseChangedHandler> getType() { + return TYPE; + } + + public LicenseChangedEvent() { + } + + @Override + protected void dispatch(final LicenseChangedHandler handler) { + handler.onLicenseChanged(this); + } + + @Override + public boolean equals(final Object obj) { + return super.equals(obj); + } + + @Override + public Type<LicenseChangedHandler> getAssociatedType() { + return TYPE; + } + + @Override + public int hashCode() { + return super.hashCode(); + } + + @Override + public String toString() { + return "LicenseChangedEvent[" + "]"; + } +} Deleted: tags/0.0.8/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,182 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.gspace.client.viewers; - -import javax.annotation.Nonnull; - -import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection; -import cc.kune.common.client.errors.UIException; -import cc.kune.common.client.ui.EditEvent; -import cc.kune.common.client.ui.EditEvent.EditHandler; -import cc.kune.common.client.ui.HasEditHandler; -import cc.kune.core.client.actions.ActionRegistryByType; -import cc.kune.core.client.state.Session; -import cc.kune.core.client.state.UserSignInEvent; -import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler; -import cc.kune.core.client.state.UserSignOutEvent; -import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler; -import cc.kune.core.shared.domain.utils.AccessRights; -import cc.kune.core.shared.domain.utils.StateToken; -import cc.kune.core.shared.dto.HasContent; -import cc.kune.core.shared.dto.StateContentDTO; -import cc.kune.gspace.client.actions.ActionGroups; -import cc.kune.gspace.client.actions.RenameAction; -import cc.kune.gspace.client.actions.RenameListener; -import cc.kune.gspace.client.tool.ContentViewer; - -import com.google.gwt.event.shared.EventBus; -import com.google.gwt.event.shared.HandlerRegistration; -import com.google.inject.Inject; -import com.google.inject.Provider; -import com.gwtplatform.mvp.client.Presenter; -import com.gwtplatform.mvp.client.View; -import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; -import com.gwtplatform.mvp.client.proxy.Proxy; -import com.gwtplatform.mvp.client.proxy.RevealRootContentEvent; - -public class ContentViewerPresenter extends - Presenter<ContentViewerPresenter.ContentViewerView, ContentViewerPresenter.ContentViewerProxy> - implements ContentViewer { - - @ProxyCodeSplit - public interface ContentViewerProxy extends Proxy<ContentViewerPresenter> { - } - - public interface ContentViewerView extends View { - - void attach(); - - void clear(); - - void detach(); - - HasEditHandler getEditTitle(); - - void setActions(GuiActionDescCollection actions); - - void setContent(StateContentDTO state); - - void setEditableContent(StateContentDTO state); - - void setEditableTitle(String title); - - void signIn(); - - void signOut(); - } - - private final ActionRegistryByType actionsRegistry; - private HandlerRegistration editHandler; - private final Provider<RenameAction> renameAction; - private final Session session; - - @Inject - public ContentViewerPresenter(final EventBus eventBus, final ContentViewerView view, - final ContentViewerProxy proxy, final Session session, final ActionRegistryByType actionsRegistry, - final Provider<RenameAction> renameAction) { - super(eventBus, view, proxy); - this.session = session; - this.actionsRegistry = actionsRegistry; - this.renameAction = renameAction; - session.onUserSignOut(true, new UserSignOutHandler() { - @Override - public void onUserSignOut(final UserSignOutEvent event) { - getView().signOut(); - } - }); - session.onUserSignIn(true, new UserSignInHandler() { - - @Override - public void onUserSignIn(final UserSignInEvent event) { - getView().signIn(); - } - }); - - } - - @Override - public void attach() { - getView().attach(); - if (editHandler == null) { - createEditHandler(); - } - } - - private void createEditHandler() { - editHandler = getView().getEditTitle().addEditHandler(new EditHandler() { - @Override - public void fire(final EditEvent event) { - renameAction.get().rename(session.getCurrentStateToken(), session.getCurrentState().getTitle(), - event.getText(), new RenameListener() { - @Override - public void onFail(final StateToken token, final String oldTitle) { - getView().setEditableTitle(oldTitle); - } - - @Override - public void onSuccess(final StateToken token, final String title) { - getView().setEditableTitle(title); - } - }); - } - }); - } - - @Override - public void detach() { - getView().detach(); - } - - @Override - protected void revealInParent() { - RevealRootContentEvent.fire(this, this); - } - - @Override - public void setContent(@Nonnull final HasContent state) { - getView().clear(); - final StateContentDTO stateContent = (StateContentDTO) state; - final AccessRights rights = stateContent.getContentRights(); - if (session.isLogged() && rights.isEditable()) { - if (stateContent.isParticipant()) { - // is already participant, show wave editor - if (org.waveprotocol.box.webclient.client.Session.get().isLoggedIn()) { - getView().setEditableContent(stateContent); - } else { - getView().setContent(stateContent); - // When logged setEditable! - } - } else { - // add "participate" action - getView().setContent(stateContent); - } - } else { - if (rights.isVisible()) { - // Show contents - getView().setContent(stateContent); - } else { - throw new UIException("Unexpected status in Viewer"); - } - } - final GuiActionDescCollection actions = actionsRegistry.getCurrentActions(stateContent.getGroup(), - stateContent.getTypeId(), session.isLogged(), rights, ActionGroups.VIEW); - getView().setActions(actions); - } -} \ No newline at end of file Copied: tags/0.0.8/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java (from rev 1382, trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,190 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.gspace.client.viewers; + +import javax.annotation.Nonnull; + +import cc.kune.barters.shared.BartersConstants; +import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection; +import cc.kune.common.client.errors.UIException; +import cc.kune.common.client.notify.NotifyUser; +import cc.kune.common.client.ui.EditEvent; +import cc.kune.common.client.ui.EditEvent.EditHandler; +import cc.kune.common.client.ui.HasEditHandler; +import cc.kune.core.client.actions.ActionRegistryByType; +import cc.kune.core.client.state.Session; +import cc.kune.core.client.state.UserSignInEvent; +import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler; +import cc.kune.core.client.state.UserSignOutEvent; +import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler; +import cc.kune.core.shared.domain.utils.AccessRights; +import cc.kune.core.shared.domain.utils.StateToken; +import cc.kune.core.shared.dto.HasContent; +import cc.kune.core.shared.dto.StateContentDTO; +import cc.kune.gspace.client.actions.ActionGroups; +import cc.kune.gspace.client.actions.RenameAction; +import cc.kune.gspace.client.actions.RenameListener; +import cc.kune.gspace.client.tool.ContentViewer; +import cc.kune.meets.shared.MeetingsConstants; + +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.inject.Inject; +import com.google.inject.Provider; +import com.gwtplatform.mvp.client.Presenter; +import com.gwtplatform.mvp.client.View; +import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; +import com.gwtplatform.mvp.client.proxy.Proxy; +import com.gwtplatform.mvp.client.proxy.RevealRootContentEvent; + +public class ContentViewerPresenter extends + Presenter<ContentViewerPresenter.ContentViewerView, ContentViewerPresenter.ContentViewerProxy> + implements ContentViewer { + + @ProxyCodeSplit + public interface ContentViewerProxy extends Proxy<ContentViewerPresenter> { + } + + public interface ContentViewerView extends View { + + void attach(); + + void clear(); + + void detach(); + + HasEditHandler getEditTitle(); + + void setActions(GuiActionDescCollection actions); + + void setContent(StateContentDTO state); + + void setEditableContent(StateContentDTO state); + + void setEditableTitle(String title); + + void signIn(); + + void signOut(); + } + + private final ActionRegistryByType actionsRegistry; + private HandlerRegistration editHandler; + private final Provider<RenameAction> renameAction; + private final Session session; + + @Inject + public ContentViewerPresenter(final EventBus eventBus, final ContentViewerView view, + final ContentViewerProxy proxy, final Session session, final ActionRegistryByType actionsRegistry, + final Provider<RenameAction> renameAction) { + super(eventBus, view, proxy); + this.session = session; + this.actionsRegistry = actionsRegistry; + this.renameAction = renameAction; + session.onUserSignOut(true, new UserSignOutHandler() { + @Override + public void onUserSignOut(final UserSignOutEvent event) { + getView().signOut(); + } + }); + session.onUserSignIn(true, new UserSignInHandler() { + + @Override + public void onUserSignIn(final UserSignInEvent event) { + getView().signIn(); + } + }); + + } + + @Override + public void attach() { + getView().attach(); + if (editHandler == null) { + createEditHandler(); + } + } + + private void createEditHandler() { + editHandler = getView().getEditTitle().addEditHandler(new EditHandler() { + @Override + public void fire(final EditEvent event) { + renameAction.get().rename(session.getCurrentStateToken(), session.getCurrentState().getTitle(), + event.getText(), new RenameListener() { + @Override + public void onFail(final StateToken token, final String oldTitle) { + getView().setEditableTitle(oldTitle); + } + + @Override + public void onSuccess(final StateToken token, final String title) { + getView().setEditableTitle(title); + } + }); + } + }); + } + + @Override + public void detach() { + getView().detach(); + } + + @Override + protected void revealInParent() { + RevealRootContentEvent.fire(this, this); + } + + @Override + public void setContent(@Nonnull final HasContent state) { + getView().clear(); + final StateContentDTO stateContent = (StateContentDTO) state; + final AccessRights rights = stateContent.getContentRights(); + if (session.isLogged() && rights.isEditable()) { + if (stateContent.isParticipant()) { + // is already participant, show wave editor + if (org.waveprotocol.box.webclient.client.Session.get().isLoggedIn()) { + final String typeId = stateContent.getTypeId(); + if (typeId.equals(BartersConstants.TYPE_BARTER) + || typeId.equals(MeetingsConstants.TYPE_MEETING)) { + NotifyUser.important("Currently we are experiencing problems with this tool. We'll fix ASAP..."); + } + getView().setEditableContent(stateContent); + } else { + getView().setContent(stateContent); + // When logged setEditable! + } + } else { + // add "participate" action + getView().setContent(stateContent); + } + } else { + if (rights.isVisible()) { + // Show contents + getView().setContent(stateContent); + } else { + throw new UIException("Unexpected status in Viewer"); + } + } + final GuiActionDescCollection actions = actionsRegistry.getCurrentActions(stateContent.getGroup(), + stateContent.getTypeId(), session.isLogged(), rights, ActionGroups.VIEW); + getView().setActions(actions); + } +} \ No newline at end of file Deleted: tags/0.0.8/src/main/java/cc/kune/msgs/client/UserMessage.java =================================================================== --- trunk/src/main/java/cc/kune/msgs/client/UserMessage.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/msgs/client/UserMessage.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,161 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.msgs.client; - -import org.adamtacy.client.ui.effects.events.EffectCompletedEvent; -import org.adamtacy.client.ui.effects.events.EffectCompletedHandler; -import org.adamtacy.client.ui.effects.examples.Fade; -import org.adamtacy.client.ui.effects.examples.Show; - -import cc.kune.common.client.notify.NotifyLevel; -import cc.kune.common.client.utils.TextUtils; -import cc.kune.msgs.client.resources.UserMessageImagesUtil; - -import com.google.gwt.core.client.GWT; -import com.google.gwt.event.dom.client.ClickEvent; -import com.google.gwt.safehtml.client.SafeHtmlTemplates; -import com.google.gwt.safehtml.shared.SafeHtml; -import com.google.gwt.safehtml.shared.SimpleHtmlSanitizer; -import com.google.gwt.uibinder.client.UiBinder; -import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.uibinder.client.UiHandler; -import com.google.gwt.user.client.Timer; -import com.google.gwt.user.client.ui.Composite; -import com.google.gwt.user.client.ui.HasText; -import com.google.gwt.user.client.ui.Image; -import com.google.gwt.user.client.ui.InlineHTML; -import com.google.gwt.user.client.ui.PushButton; -import com.google.gwt.user.client.ui.Widget; - -public class UserMessage extends Composite implements HasText { - - interface MessageUiBinder extends UiBinder<Widget, UserMessage> { - } - public interface MsgTemplate extends SafeHtmlTemplates { - @Template("<span>{0}</span>") - SafeHtml format(SafeHtml message); - } - public interface MsgWithTitleTemplate extends SafeHtmlTemplates { - @Template("<span><b>{0}</b><br/><p>{1}</p></span>") - SafeHtml format(SafeHtml title, SafeHtml message); - } - private static String closeTitle = "Close"; - - private static int fadeMills = 5000; - - private static final MsgTemplate MSG_NO_TITLE = GWT.create(MsgTemplate.class); - private static final MsgWithTitleTemplate MSG_WITH_TITLE = GWT.create(MsgWithTitleTemplate.class); - - private static MessageUiBinder uiBinder = GWT.create(MessageUiBinder.class); - - public static void setCloseTitle(final String title) { - closeTitle = title; - } - - public static void setFadeMills(final int mills) { - fadeMills = mills; - } - - @UiField - PushButton close; - - private final CloseCallback closeCallback; - - @UiField - Image icon; - - @UiField - InlineHTML label; - - public UserMessage(final NotifyLevel level, final String title, final String message, final String id, - final boolean closeable, final CloseCallback closeCallback) { - this.closeCallback = closeCallback; - initWidget(uiBinder.createAndBindUi(this)); - if (TextUtils.notEmpty(id)) { - super.ensureDebugId(id); - } - if (TextUtils.notEmpty(message)) { - if (TextUtils.notEmpty(title)) { - label.setHTML(MSG_WITH_TITLE.format(SimpleHtmlSanitizer.sanitizeHtml(title), - SimpleHtmlSanitizer.sanitizeHtml(message))); - } else { - label.setHTML(MSG_NO_TITLE.format(SimpleHtmlSanitizer.sanitizeHtml(message))); - } - close.setVisible(closeable); - close.setTitle(closeTitle); - if (!closeable) { - final Timer time = new Timer() { - @Override - public void run() { - close(); - } - }; - time.schedule(fadeMills); - } - icon.setResource(UserMessageImagesUtil.getIcon(level)); - final Show anim = new Show(this.getElement()); - anim.setDuration(0.5); - anim.play(); - } - } - - public UserMessage(final String message, final CloseCallback closeCallback) { - this("", message, false, closeCallback); - } - - public UserMessage(final String title, final String message, final boolean closeable, - final CloseCallback closeCallback) { - this(NotifyLevel.info, title, message, "", closeable, closeCallback); - } - - public UserMessage(final String title, final String message, final CloseCallback closeCallback) { - this(title, message, false, closeCallback); - } - - private void close() { - final Fade fade = new Fade(this.getElement()); - fade.setDuration(0.7); - fade.play(); - fade.addEffectCompletedHandler(new EffectCompletedHandler() { - - @Override - public void onEffectCompleted(final EffectCompletedEvent event) { - removeFromParent(); - closeCallback.onClose(); - } - }); - } - - @Override - public String getText() { - return label.getText(); - } - - @UiHandler("close") - void handleClick(final ClickEvent e) { - close(); - } - - @Override - public void setText(final String text) { - label.setText(text); - } - -} Copied: tags/0.0.8/src/main/java/cc/kune/msgs/client/UserMessage.java (from rev 1381, trunk/src/main/java/cc/kune/msgs/client/UserMessage.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/msgs/client/UserMessage.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/msgs/client/UserMessage.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,165 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.msgs.client; + +import org.adamtacy.client.ui.effects.events.EffectCompletedEvent; +import org.adamtacy.client.ui.effects.events.EffectCompletedHandler; +import org.adamtacy.client.ui.effects.examples.Fade; +import org.adamtacy.client.ui.effects.examples.Show; + +import cc.kune.common.client.notify.NotifyLevel; +import cc.kune.common.client.utils.TextUtils; +import cc.kune.msgs.client.resources.UserMessageImagesUtil; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.safehtml.client.SafeHtmlTemplates; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import com.google.gwt.safehtml.shared.SimpleHtmlSanitizer; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.uibinder.client.UiHandler; +import com.google.gwt.user.client.Timer; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.HasText; +import com.google.gwt.user.client.ui.Image; +import com.google.gwt.user.client.ui.InlineHTML; +import com.google.gwt.user.client.ui.PushButton; +import com.google.gwt.user.client.ui.Widget; + +public class UserMessage extends Composite implements HasText { + + interface MessageUiBinder extends UiBinder<Widget, UserMessage> { + } + public interface MsgTemplate extends SafeHtmlTemplates { + @Template("<span>{0}</span>") + SafeHtml format(SafeHtml message); + } + public interface MsgWithTitleTemplate extends SafeHtmlTemplates { + @Template("<span><b>{0}</b><br/><p>{1}</p></span>") + SafeHtml format(SafeHtml title, SafeHtml message); + } + private static String closeTitle = "Close"; + + private static int fadeMills = 5000; + + private static final MsgTemplate MSG_NO_TITLE = GWT.create(MsgTemplate.class); + private static final MsgWithTitleTemplate MSG_WITH_TITLE = GWT.create(MsgWithTitleTemplate.class); + + private static MessageUiBinder uiBinder = GWT.create(MessageUiBinder.class); + + public static void setCloseTitle(final String title) { + closeTitle = title; + } + + public static void setFadeMills(final int mills) { + fadeMills = mills; + } + + @UiField + PushButton close; + + private final CloseCallback closeCallback; + + @UiField + Image icon; + + @UiField + InlineHTML label; + + public UserMessage(final NotifyLevel level, final String title, final String message, final String id, + final boolean closeable, final CloseCallback closeCallback) { + this.closeCallback = closeCallback; + initWidget(uiBinder.createAndBindUi(this)); + if (TextUtils.notEmpty(id)) { + super.ensureDebugId(id); + } + if (TextUtils.notEmpty(message)) { + if (TextUtils.notEmpty(title)) { + label.setHTML(MSG_WITH_TITLE.format(SimpleHtmlSanitizer.sanitizeHtml(title), sanitize(message))); + } else { + label.setHTML(MSG_NO_TITLE.format(sanitize(message))); + } + close.setVisible(closeable); + close.setTitle(closeTitle); + if (!closeable) { + final Timer time = new Timer() { + @Override + public void run() { + close(); + } + }; + time.schedule(fadeMills); + } + icon.setResource(UserMessageImagesUtil.getIcon(level)); + final Show anim = new Show(this.getElement()); + anim.setDuration(0.5); + anim.play(); + } + } + + public UserMessage(final String message, final CloseCallback closeCallback) { + this("", message, false, closeCallback); + } + + public UserMessage(final String title, final String message, final boolean closeable, + final CloseCallback closeCallback) { + this(NotifyLevel.info, title, message, "", closeable, closeCallback); + } + + public UserMessage(final String title, final String message, final CloseCallback closeCallback) { + this(title, message, false, closeCallback); + } + + private void close() { + final Fade fade = new Fade(this.getElement()); + fade.setDuration(0.7); + fade.play(); + fade.addEffectCompletedHandler(new EffectCompletedHandler() { + + @Override + public void onEffectCompleted(final EffectCompletedEvent event) { + removeFromParent(); + closeCallback.onClose(); + } + }); + } + + @Override + public String getText() { + return label.getText(); + } + + @UiHandler("close") + void handleClick(final ClickEvent e) { + close(); + } + + private SafeHtml sanitize(final String message) { + return SafeHtmlUtils.fromTrustedString(message); + } + + @Override + public void setText(final String text) { + label.setText(text); + } + +} Copied: tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.java (from rev 1382, trunk/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,92 @@ +package cc.kune.pspace.client; + +import cc.kune.core.client.resources.CoreResources; +import cc.kune.core.client.services.FileDownloadUtils; +import cc.kune.core.client.state.GroupChangedEvent; +import cc.kune.core.client.state.GroupChangedEvent.GroupChangedHandler; +import cc.kune.core.client.state.Session; +import cc.kune.core.client.state.StateManager; +import cc.kune.core.shared.domain.utils.StateToken; +import cc.kune.core.shared.dto.GroupDTO; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.AbstractImagePrototype; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.Image; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.Widget; +import com.google.inject.Inject; +import com.google.inject.Provider; + +public class PSpaceInDevelopment extends Composite { + + interface PSpaceInDevelopmentUiBinder extends UiBinder<Widget, PSpaceInDevelopment> { + } + + private static PSpaceInDevelopmentUiBinder uiBinder = GWT.create(PSpaceInDevelopmentUiBinder.class); + @UiField + FlowPanel container; + @UiField + FlowPanel contentPanel; + private final Provider<FileDownloadUtils> downloadProvider; + @UiField + Image entityLogo; + @UiField + Label entityName; + @UiField + FlowPanel headerPanel; + private final CoreResources images; + @UiField + FlowPanel mainPanel; + @UiField + FlowPanel photoPanel; + + @Inject + public PSpaceInDevelopment(final StateManager stateManager, final CoreResources images, + final Session session, final Provider<FileDownloadUtils> downloadProvider) { + this.images = images; + this.downloadProvider = downloadProvider; + initWidget(uiBinder.createAndBindUi(this)); + stateManager.onGroupChanged(true, new GroupChangedHandler() { + @Override + public void onGroupChanged(final GroupChangedEvent event) { + setGroupLogo(session.getCurrentState().getGroup()); + } + }); + } + + void setGroupLogo(final GroupDTO group) { + if (group.hasLogo()) { + setLogoText(group.getLongName()); + setLogoImage(group.getStateToken()); + setLogoImageVisible(true); + } else { + setLogoText(group.getLongName()); + if (group.isPersonal()) { + showDefUserLogo(); + setLogoImageVisible(true); + } else { + setLogoImageVisible(false); + } + } + } + + private void setLogoImage(final StateToken stateToken) { + entityLogo.setUrl(downloadProvider.get().getLogoImageUrl(stateToken)); + } + + private void setLogoImageVisible(final boolean visible) { + entityLogo.setVisible(visible); + } + + private void setLogoText(final String longName) { + entityName.setText(longName); + } + + public void showDefUserLogo() { + (AbstractImagePrototype.create(images.unknown60())).applyTo(entityLogo); + } +} Copied: tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.ui.xml (from rev 1382, trunk/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.ui.xml) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.ui.xml (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.ui.xml 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,95 @@ +<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> +<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" + xmlns:g="urn:import:com.google.gwt.user.client.ui"> + <ui:style> + .container { + margin: 10px; + font-family: 'Ubuntu', Arial; + background-color: white; + } + + .entityLogo { + float: left; + } + + .entityName { + font-size: 34px; + color: #912312; + /* line-height: 1.1em; */ + margin-left: 10px; + font-weight: bold; + float: left; + } + + .mainPanel { + border: 2px solid #801c03; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + background-color: #f8e2e5; + width: 800px; + margin-left: auto; + margin-right: auto; + /* position: relative; */ + min-height: 1024px; + padding: 30px; + } + + .photoPanel { + background-color: #c91d08; + height: 160px; + margin-top: 20px; + width: 100%; + } + + .contentHtml { + font-size: 32px; + color: #c92106; + margin-top: 50px; + float: right; + width: 510px; + padding: 30px; + } + + .contentHtml a { + color: #912312; + } + + @sprite .photo { + gwt-image: "photo"; + } + + .right { + float: right; + width: 540px; + } + </ui:style> + + <ui:image field="photo" src="back-ps.jpg"></ui:image> + <g:FlowPanel ui:field="container" addStyleNames="{style.container}"> + <g:FlowPanel ui:field="mainPanel" addStyleNames="{style.mainPanel}"> + <g:FlowPanel ui:field="headerPanel" height="70px"> + <g:Image ui:field="entityLogo" addStyleNames="{style.entityLogo}" + /> + <g:Label text="" ui:field="entityName" addStyleNames="{style.entityName}" /> + </g:FlowPanel> + <g:FlowPanel ui:field="photoPanel" addStyleNames="{style.photoPanel}"> + <g:InlineLabel addStyleNames="{style.photo} {style.right}" + ui:field="logo" /> + </g:FlowPanel> + <g:FlowPanel ui:field="contentPanel"> + <g:HTMLPanel addStyleNames="{style.contentHtml}"> + Right now, the public web space of this group, it's under + construction + <br /> + <br /> + <a href='http://kune.ourproject.org/join/' target='_blank'>Please + support</a> + the development + <br /> + <br /> + </g:HTMLPanel> + </g:FlowPanel> + </g:FlowPanel> + </g:FlowPanel> +</ui:UiBinder> \ No newline at end of file Deleted: tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePanel.java =================================================================== --- trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePanel.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,107 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.pspace.client; - -import cc.kune.common.client.actions.ui.ActionFlowPanel; -import cc.kune.common.client.actions.ui.IsActionExtensible; -import cc.kune.common.client.actions.ui.bind.GuiProvider; -import cc.kune.core.client.resources.CoreResources; -import cc.kune.gspace.client.GSpaceArmor; -import cc.kune.pspace.client.PSpacePresenter.PSpaceView; - -import com.google.gwt.core.client.GWT; -import com.google.gwt.dom.client.Element; -import com.google.gwt.uibinder.client.UiBinder; -import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.user.client.ui.FlowPanel; -import com.google.gwt.user.client.ui.Frame; -import com.google.gwt.user.client.ui.HasText; -import com.google.gwt.user.client.ui.Image; -import com.google.gwt.user.client.ui.InlineLabel; -import com.google.gwt.user.client.ui.LayoutPanel; -import com.google.gwt.user.client.ui.SimplePanel; -import com.google.gwt.user.client.ui.Widget; -import com.google.inject.Inject; -import com.gwtplatform.mvp.client.ViewImpl; - -public class PSpacePanel extends ViewImpl implements PSpaceView { - - public interface PSpacePanelUiBinder extends UiBinder<Widget, PSpacePanel> { - } - private static PSpacePanelUiBinder uiBinder = GWT.create(PSpacePanelUiBinder.class); - - private final ActionFlowPanel actionPanel; - @UiField - SimplePanel actionPanelContainer; - @UiField - InlineLabel description; - @UiField - Frame frame; - @UiField - Image icon; - @UiField - LayoutPanel mainPanel; - @UiField - FlowPanel messagePanel; - @UiField - InlineLabel title; - private final Widget widget; - - @Inject - public PSpacePanel(final GuiProvider guiProvider, final CoreResources res, final GSpaceArmor wsArmor) { - widget = uiBinder.createAndBindUi(this); - actionPanel = new ActionFlowPanel(guiProvider); - actionPanelContainer.add(actionPanel); - final Element layer = mainPanel.getWidgetContainerElement(messagePanel); - layer.addClassName("k-publicspace-msg"); - layer.addClassName("k-opacity80"); - layer.addClassName("k-box-5shadow"); - layer.addClassName("k-5corners"); - icon.setResource(res.browser32()); - wsArmor.getPublicSpace().add(widget); - } - - @Override - public Widget asWidget() { - return widget; - } - - @Override - public IsActionExtensible getActionPanel() { - return actionPanel; - } - - @Override - public HasText getDescription() { - return description; - } - - @Override - public HasText getTitle() { - return title; - } - - @Override - public void setContentGotoPublicUrl(final String publicUrl) { - // frame.setUrl("about:blank"); - frame.setUrl(publicUrl); - } - -} Copied: tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePanel.java (from rev 1382, trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePanel.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePanel.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,108 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.pspace.client; + +import cc.kune.common.client.actions.ui.ActionFlowPanel; +import cc.kune.common.client.actions.ui.IsActionExtensible; +import cc.kune.common.client.actions.ui.bind.GuiProvider; +import cc.kune.core.client.resources.CoreResources; +import cc.kune.gspace.client.GSpaceArmor; +import cc.kune.pspace.client.PSpacePresenter.PSpaceView; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.HasText; +import com.google.gwt.user.client.ui.Image; +import com.google.gwt.user.client.ui.InlineLabel; +import com.google.gwt.user.client.ui.LayoutPanel; +import com.google.gwt.user.client.ui.SimplePanel; +import com.google.gwt.user.client.ui.Widget; +import com.google.inject.Inject; +import com.gwtplatform.mvp.client.ViewImpl; + +public class PSpacePanel extends ViewImpl implements PSpaceView { + + public interface PSpacePanelUiBinder extends UiBinder<Widget, PSpacePanel> { + } + private static PSpacePanelUiBinder uiBinder = GWT.create(PSpacePanelUiBinder.class); + + private final ActionFlowPanel actionPanel; + @UiField + SimplePanel actionPanelContainer; + @UiField + InlineLabel description; + @UiField + // Frame frame; + SimplePanel frame; + @UiField + Image icon; + @UiField + LayoutPanel mainPanel; + @UiField + FlowPanel messagePanel; + @UiField + InlineLabel title; + private final Widget widget; + + @Inject + public PSpacePanel(final GuiProvider guiProvider, final CoreResources res, final GSpaceArmor wsArmor, + final PSpaceInDevelopment inDevelopment) { + widget = uiBinder.createAndBindUi(this); + actionPanel = new ActionFlowPanel(guiProvider); + actionPanelContainer.add(actionPanel); + final Element layer = mainPanel.getWidgetContainerElement(messagePanel); + layer.addClassName("k-publicspace-msg"); + layer.addClassName("k-opacity80"); + layer.addClassName("k-box-5shadow"); + layer.addClassName("k-5corners"); + icon.setResource(res.browser32()); + wsArmor.getPublicSpace().add(widget); + frame.add(inDevelopment); + } + + @Override + public Widget asWidget() { + return widget; + } + + @Override + public IsActionExtensible getActionPanel() { + return actionPanel; + } + + @Override + public HasText getDescription() { + return description; + } + + @Override + public HasText getTitle() { + return title; + } + + @Override + public void setContentGotoPublicUrl(final String publicUrl) { + // frame.setUrl(publicUrl); + } + +} Deleted: tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePanel.ui.xml =================================================================== --- trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.ui.xml 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePanel.ui.xml 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,33 +0,0 @@ -<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> -<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" - xmlns:g="urn:import:com.google.gwt.user.client.ui"> - <ui:style> - .frame { - border: 0px; - margin: 0px; - } - </ui:style> - <g:LayoutPanel width="100%" height="100%" ui:field="mainPanel"> - <g:layer left="0px" width="100.0pct" top="0px" height="100.0pct"> - <g:Frame styleName="{style.frame}" ui:field="frame" width="100%" - height="100%" /> - </g:layer> - <g:layer left="0px" width="100.0pct" top="0px" height="100.0pct"> - <g:HTMLPanel ui:field="mask" styleName="k-publicspace-mask" - width="100%" height="100%" /> - </g:layer> - <g:layer left="50px" width="250px" height="100px" bottom="50px"> - <g:FlowPanel width="250px" height="100px" ui:field="messagePanel" - addStyleNames="k-publicspace-panel"> - <g:SimplePanel addStyleNames="k-publicspace-icon"> - <g:Image ui:field="icon" /> - </g:SimplePanel> - <g:InlineLabel ui:field="title" addStyleNames="k-publicspace-title" /> - <g:InlineLabel ui:field="description" - addStyleNames="k-publicspace-description" /> - <g:SimplePanel ui:field="actionPanelContainer" - addStyleNames="k-publicspace-actions" /> - </g:FlowPanel> - </g:layer> - </g:LayoutPanel> -</ui:UiBinder> \ No newline at end of file Copied: tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePanel.ui.xml (from rev 1382, trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.ui.xml) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePanel.ui.xml (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePanel.ui.xml 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,35 @@ +<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> +<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" + xmlns:g="urn:import:com.google.gwt.user.client.ui"> + <ui:style> + .frame { + border: 0px; + margin: 0px; + } + </ui:style> + <g:LayoutPanel width="100%" height="100%" ui:field="mainPanel"> + <g:layer left="0px" width="100.0pct" top="0px" height="100.0pct"> +<!-- <g:Frame styleName="{style.frame}" ui:field="frame" width="100%" --> +<!-- height="100%" /> --> + <g:SimplePanel styleName="{style.frame}" ui:field="frame" width="100%" + height="100%" /> + </g:layer> + <g:layer left="0px" width="100.0pct" top="0px" height="100.0pct"> + <g:HTMLPanel ui:field="mask" styleName="k-publicspace-mask" + width="100%" height="100%" /> + </g:layer> + <g:layer left="50px" width="250px" height="100px" bottom="50px"> + <g:FlowPanel width="250px" height="100px" ui:field="messagePanel" + addStyleNames="k-publicspace-panel"> + <g:SimplePanel addStyleNames="k-publicspace-icon"> + <g:Image ui:field="icon" /> + </g:SimplePanel> + <g:InlineLabel ui:field="title" addStyleNames="k-publicspace-title" /> + <g:InlineLabel ui:field="description" + addStyleNames="k-publicspace-description" /> + <g:SimplePanel ui:field="actionPanelContainer" + addStyleNames="k-publicspace-actions" /> + </g:FlowPanel> + </g:layer> + </g:LayoutPanel> +</ui:UiBinder> \ No newline at end of file Deleted: tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePresenter.java =================================================================== --- trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePresenter.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,139 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.pspace.client; - -import cc.kune.common.client.actions.ui.IsActionExtensible; -import cc.kune.common.client.utils.TextUtils; -import cc.kune.core.client.init.AppStartEvent; -import cc.kune.core.client.state.Session; -import cc.kune.core.client.state.StateChangedEvent; -import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler; -import cc.kune.core.client.state.StateManager; -import cc.kune.core.shared.domain.ContentStatus; -import cc.kune.core.shared.domain.utils.StateToken; -import cc.kune.core.shared.dto.GroupListDTO; -import cc.kune.core.shared.dto.StateAbstractDTO; -import cc.kune.core.shared.dto.StateContainerDTO; -import cc.kune.core.shared.dto.StateContentDTO; -import cc.kune.core.shared.dto.StateTokenUtils; -import cc.kune.core.shared.i18n.I18nTranslationService; - -import com.google.gwt.event.shared.EventBus; -import com.google.gwt.user.client.ui.HasText; -import com.google.inject.Inject; -import com.gwtplatform.mvp.client.Presenter; -import com.gwtplatform.mvp.client.View; -import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; -import com.gwtplatform.mvp.client.proxy.Proxy; -import com.gwtplatform.mvp.client.proxy.RevealRootContentEvent; - -public class PSpacePresenter extends Presenter<PSpacePresenter.PSpaceView, PSpacePresenter.PSpaceProxy> { - - @ProxyCodeSplit - public interface PSpaceProxy extends Proxy<PSpacePresenter> { - } - public interface PSpaceView extends View { - - IsActionExtensible getActionPanel(); - - HasText getDescription(); - - HasText getTitle(); - - void setContentGotoPublicUrl(String publicUrl); - } - - private final I18nTranslationService i18n; - private final StateTokenUtils stateTokenUtils; - - @Inject - public PSpacePresenter(final Session session, final StateManager stateManager, final EventBus eventBus, - final PSpaceView view, final PSpaceProxy proxy, final I18nTranslationService i18n, - final StateTokenUtils stateTokenUtils) { - super(eventBus, view, proxy); - this.i18n = i18n; - this.stateTokenUtils = stateTokenUtils; - session.onAppStart(true, new AppStartEvent.AppStartHandler() { - @Override - public void onAppStart(final AppStartEvent event) { - stateManager.onStateChanged(true, new StateChangedHandler() { - @Override - public void onStateChanged(final StateChangedEvent event) { - setState(event.getState()); - } - }); - } - }); - } - - @Override - protected void onReveal() { - super.onReveal(); - } - - @Override - protected void revealInParent() { - RevealRootContentEvent.fire(this, this); - } - - private void setContentNotPublic() { - getView().getTitle().setText(i18n.t("Not Published yet") + TextUtils.IN_DEVELOPMENT_P); - getView().getDescription().setText( - i18n.t("This is only a preview of how this page will looks like to the general public if you want to publish it")); - } - - private void setContentNotPublicable() { - getView().getTitle().setText(i18n.t("Not Publicable") + TextUtils.IN_DEVELOPMENT_P); - getView().getDescription().setText(i18n.t("This page is not publicable")); - getView().setContentGotoPublicUrl("about:blank"); - } - - private void setContentPublic() { - getView().getTitle().setText(i18n.t("Preview") + TextUtils.IN_DEVELOPMENT_P); - getView().getDescription().setText( - i18n.t("This is only a preview of how this page looks like to the general public on the web, outside this site.")); - } - - public void setState(final StateAbstractDTO state) { - if (state instanceof StateContainerDTO) { - final StateToken token = state.getStateToken(); - if (((StateContainerDTO) state).getAccessLists().getViewers().getMode().equals(GroupListDTO.EVERYONE)) { - final String publicUrl = stateTokenUtils.getPublicUrl(token); - // getView().setContentGotoPublicUrl(publicUrl); - getView().setContentGotoPublicUrl("about:blank"); - if (state instanceof StateContentDTO) { - final StateContentDTO content = (StateContentDTO) state; - if (content.getStatus().equals(ContentStatus.publishedOnline)) { - setContentPublic(); - } else { - setContentNotPublic(); - } - } else { - setContentPublic(); - } - } else { - setContentNotPublic(); - } - } else { - setContentNotPublicable(); - } - } - -} Copied: tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePresenter.java (from rev 1382, trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java) =================================================================== --- tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePresenter.java (rev 0) +++ tags/0.0.8/src/main/java/cc/kune/pspace/client/PSpacePresenter.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,140 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.pspace.client; + +import cc.kune.common.client.actions.ui.IsActionExtensible; +import cc.kune.common.client.utils.TextUtils; +import cc.kune.core.client.init.AppStartEvent; +import cc.kune.core.client.state.Session; +import cc.kune.core.client.state.StateChangedEvent; +import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler; +import cc.kune.core.client.state.StateManager; +import cc.kune.core.shared.domain.ContentStatus; +import cc.kune.core.shared.domain.utils.StateToken; +import cc.kune.core.shared.dto.GroupListDTO; +import cc.kune.core.shared.dto.StateAbstractDTO; +import cc.kune.core.shared.dto.StateContainerDTO; +import cc.kune.core.shared.dto.StateContentDTO; +import cc.kune.core.shared.dto.StateTokenUtils; +import cc.kune.core.shared.i18n.I18nTranslationService; + +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.user.client.ui.HasText; +import com.google.inject.Inject; +import com.gwtplatform.mvp.client.Presenter; +import com.gwtplatform.mvp.client.View; +import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; +import com.gwtplatform.mvp.client.proxy.Proxy; +import com.gwtplatform.mvp.client.proxy.RevealRootContentEvent; + +public class PSpacePresenter extends Presenter<PSpacePresenter.PSpaceView, PSpacePresenter.PSpaceProxy> { + + @ProxyCodeSplit + public interface PSpaceProxy extends Proxy<PSpacePresenter> { + } + public interface PSpaceView extends View { + + IsActionExtensible getActionPanel(); + + HasText getDescription(); + + HasText getTitle(); + + void setContentGotoPublicUrl(String publicUrl); + } + + private final I18nTranslationService i18n; + private final StateTokenUtils stateTokenUtils; + + @Inject + public PSpacePresenter(final Session session, final StateManager stateManager, + final EventBus eventBus, final PSpaceView view, final PSpaceProxy proxy, + final I18nTranslationService i18n, final StateTokenUtils stateTokenUtils) { + super(eventBus, view, proxy); + this.i18n = i18n; + this.stateTokenUtils = stateTokenUtils; + session.onAppStart(true, new AppStartEvent.AppStartHandler() { + @Override + public void onAppStart(final AppStartEvent event) { + stateManager.onStateChanged(true, new StateChangedHandler() { + @Override + public void onStateChanged(final StateChangedEvent event) { + setState(event.getState()); + } + }); + } + }); + } + + @Override + protected void onReveal() { + super.onReveal(); + } + + @Override + protected void revealInParent() { + RevealRootContentEvent.fire(this, this); + } + + private void setContentNotPublic() { + getView().getTitle().setText(i18n.t("Not Published yet") + TextUtils.IN_DEVELOPMENT_P); + getView().getDescription().setText( + i18n.t("This is only a preview of how this page will looks like to the general public if you want to publish it")); + } + + private void setContentNotPublicable() { + getView().getTitle().setText(i18n.t("Not Publicable") + TextUtils.IN_DEVELOPMENT_P); + getView().getDescription().setText(i18n.t("This page is not publicable")); + getView().setContentGotoPublicUrl("about:blank"); + } + + private void setContentPublic() { + getView().getTitle().setText(i18n.t("Preview") + TextUtils.IN_DEVELOPMENT_P); + getView().getDescription().setText( + i18n.t("This is only a preview of how this page looks like to the general public on the web, outside this site.")); + } + + public void setState(final StateAbstractDTO state) { + if (state instanceof StateContainerDTO) { + final StateToken token = state.getStateToken(); + if (((StateContainerDTO) state).getAccessLists().getViewers().getMode().equals( + GroupListDTO.EVERYONE)) { + final String publicUrl = stateTokenUtils.getPublicUrl(token); + // getView().setContentGotoPublicUrl(publicUrl); + getView().setContentGotoPublicUrl("about:blank"); + if (state instanceof StateContentDTO) { + final StateContentDTO content = (StateContentDTO) state; + if (content.getStatus().equals(ContentStatus.publishedOnline)) { + setContentPublic(); + } else { + setContentNotPublic(); + } + } else { + setContentPublic(); + } + } else { + setContentNotPublic(); + } + } else { + setContentNotPublicable(); + } + } + +} Copied: tags/0.0.8/src/main/java/cc/kune/pspace/client/back-ps.jpg (from rev 1382, trunk/src/main/java/cc/kune/pspace/client/back-ps.jpg) =================================================================== (Binary files differ) Deleted: tags/0.0.8/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java =================================================================== --- trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,246 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.core.server.integration.content; - -import static cc.kune.docs.shared.DocsConstants.TYPE_DOCUMENT; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.util.List; - -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; - -import cc.kune.core.client.errors.AccessViolationException; -import cc.kune.core.server.integration.IntegrationTestHelper; -import cc.kune.core.shared.domain.TagCloudResult; -import cc.kune.core.shared.domain.TagCount; -import cc.kune.core.shared.domain.utils.StateToken; -import cc.kune.core.shared.dto.ContainerDTO; -import cc.kune.core.shared.dto.ContentSimpleDTO; -import cc.kune.core.shared.dto.StateAbstractDTO; -import cc.kune.core.shared.dto.StateContainerDTO; -import cc.kune.core.shared.dto.StateContentDTO; -import cc.kune.core.shared.dto.UserSimpleDTO; -import cc.kune.docs.shared.DocsConstants; - -public class ContentServiceVariousTest extends ContentServiceIntegrationTest { - - private StateContentDTO defaultContent; - private String groupShortName; - - @Test - public void addRemoveAuthor() throws Exception { - final List<UserSimpleDTO> authors = defaultContent.getAuthors(); - assertEquals(1, authors.size()); - final UserSimpleDTO author = authors.get(0); - final String authorShortName = author.getShortName(); - contentService.removeAuthor(getHash(), defaultContent.getStateToken(), authorShortName); - final List<UserSimpleDTO> authors2 = getSiteDefaultContent().getAuthors(); - assertEquals(0, authors2.size()); - contentService.addAuthor(getHash(), defaultContent.getStateToken(), authorShortName); - final List<UserSimpleDTO> authors3 = getSiteDefaultContent().getAuthors(); - assertEquals(1, authors3.size()); - contentService.addAuthor(getHash(), defaultContent.getStateToken(), authorShortName); - final List<UserSimpleDTO> authors4 = getSiteDefaultContent().getAuthors(); - assertEquals(1, authors4.size()); - } - - private void checkResult(final TagCloudResult cloudResult) { - assertNotNull(cloudResult.getTagCountList()); - final List<TagCount> summaryTags = cloudResult.getTagCountList(); - assertEquals(3, summaryTags.size()); - - TagCount tagResult = summaryTags.get(0); - assertEquals("afoo2", tagResult.getName()); - assertEquals(1, (long) tagResult.getCount()); - - tagResult = summaryTags.get(1); - assertEquals("bfoo", tagResult.getName()); - assertEquals(1, (long) tagResult.getCount()); - - tagResult = summaryTags.get(2); - assertEquals("cfoa", tagResult.getName()); - assertEquals(1, (long) tagResult.getCount()); - } - - @Test - public void contentRateAndRetrieve() throws Exception { - contentService.rateContent(getHash(), defaultContent.getStateToken(), 4.5); - final StateContentDTO again = (StateContentDTO) contentService.getContent(getHash(), - defaultContent.getStateToken()); - assertEquals(new Double(4.5), again.getCurrentUserRate()); - assertEquals(new Double(4.5), again.getRate()); - assertEquals(Integer.valueOf(1), again.getRateByUsers()); - } - - @Test - public void contentSetLanguage() throws Exception { - contentService.setLanguage(getHash(), defaultContent.getStateToken(), "es"); - final StateContentDTO contentRetrieved = (StateContentDTO) contentService.getContent(getHash(), - defaultContent.getStateToken()); - assertEquals("es", contentRetrieved.getLanguage().getCode()); - } - - @Ignore - // FIXME: when State refactor do this test (with noLogin and without) - public void defAdminDontShowAsParticipation() throws Exception { - doLogin(); - final StateContentDTO content = (StateContentDTO) contentService.getContent(getHash(), new StateToken( - getSiteAdminShortName())); - assertEquals(0, content.getParticipation().getGroupsIsCollab().size()); - assertEquals(1, content.getParticipation().getGroupsIsAdmin().size()); - } - - @Test - public void folderRename() throws Exception { - doLogin(); - defaultContent = getSiteDefaultContent(); - - final String oldTitle = "some title"; - String newTitle = "folder new name"; - final StateContainerDTO newState = contentService.addFolder(session.getHash(), defaultContent.getStateToken(), - oldTitle, DocsConstants.TYPE_FOLDER); - - final ContainerDTO newFolder = newState.getContainer(); - - assertEquals(oldTitle, newFolder.getName()); - - final StateToken folderToken = new StateToken(groupShortName, defaultContent.getStateToken().getTool(), - newFolder.getId().toString(), null); - final StateAbstractDTO result = contentService.renameContainer(getHash(), folderToken, newTitle); - - assertEquals(newTitle, result.getTitle()); - - final StateToken newFolderToken = new StateToken(groupShortName, defaultContent.getStateToken().getTool(), - newFolder.getId().toString(), null); - StateContainerDTO folderAgain = (StateContainerDTO) contentService.getContent(getHash(), newFolderToken); - - assertEquals(newTitle, folderAgain.getContainer().getName()); - - newTitle = "folder last name"; - - contentService.renameContainer(getHash(), newFolderToken, newTitle); - - folderAgain = (StateContainerDTO) contentService.getContent(getHash(), newFolderToken); - - assertEquals(newTitle, folderAgain.getContainer().getName()); - } - - @Test(expected = AccessViolationException.class) - public void folderRenameOtherGroupFails() throws Exception { - doLogin(); - defaultContent = getSiteDefaultContent(); - final ContainerDTO folder = defaultContent.getContainer(); - final StateToken folderToken = new StateToken("otherGroup", defaultContent.getStateToken().getTool(), - folder.getId().toString(), null); - - final String newTitle = "folder new name"; - contentService.renameContainer(getHash(), folderToken, newTitle); - } - - @Test(expected = RuntimeException.class) - public void folderRootRenameMustFail() throws Exception { - doLogin(); - defaultContent = getSiteDefaultContent(); - final ContainerDTO folder = defaultContent.getContainer(); - - final String newTitle = "folder new name"; - final StateToken folderToken = new StateToken(groupShortName, defaultContent.getStateToken().getTool(), - folder.getId().toString(), null); - final StateAbstractDTO result = contentService.renameContainer(getHash(), folderToken, newTitle); - - assertEquals(newTitle, result.getTitle()); - - final ContainerDTO folderAgain = getSiteDefaultContent().getContainer(); - - assertEquals(newTitle, folderAgain.getName()); - } - - @Before - public void init() throws Exception { - new IntegrationTestHelper(this); - doLogin(); - defaultContent = getSiteDefaultContent(); - groupShortName = defaultContent.getStateToken().getGroup(); - } - - @Test - public void setTagsAndResults() throws Exception { - contentService.setTags(getHash(), defaultContent.getStateToken(), "bfoo cfoa afoo2"); - final TagCloudResult cloudResult = contentService.getSummaryTags(getHash(), defaultContent.getStateToken()); - checkResult(cloudResult); - checkResult(((StateContentDTO) contentService.getContent(getHash(), defaultContent.getStateToken())).getTagCloudResult()); - } - - @Test - public void setTagsAndRetrieve() throws Exception { - contentService.setTags(getHash(), defaultContent.getStateToken(), "foo foa foo"); - final String tagsRetrieved = getSiteDefaultContent().getTags(); - assertEquals("foo foa", tagsRetrieved); - } - - @Test - public void testSetAsDefContent() throws Exception { - doLogin(); - defaultContent = getSiteDefaultContent(); - - final StateContainerDTO added = contentService.addContent(session.getHash(), defaultContent.getStateToken(), - "New Content Title", TYPE_DOCUMENT); - assertNotNull(added); - - final ContentSimpleDTO newDefContent = contentService.setAsDefaultContent(session.getHash(), - added.getStateToken()); - - assertFalse(defaultContent.getStateToken().equals(newDefContent.getStateToken())); - assertTrue(added.getStateToken().equals(newDefContent.getStateToken())); - } - - @Test - public void tokenRename() throws Exception { - doLogin(); - defaultContent = getSiteDefaultContent(); - final ContainerDTO folder = defaultContent.getContainer(); - - final String oldTitle = "some title"; - String newTitle = "folder new name"; - final StateContainerDTO newState = contentService.addFolder(session.getHash(), folder.getStateToken(), - oldTitle, DocsConstants.TYPE_FOLDER); - - final ContainerDTO newFolder = newState.getContainer(); - - assertEquals(oldTitle, newFolder.getName()); - - newTitle = "folder last name"; - - final StateAbstractDTO result = contentService.renameContainer(getHash(), newState.getStateToken(), newTitle); - - assertEquals(newTitle, result.getTitle()); - - final StateContainerDTO folderAgain = (StateContainerDTO) contentService.getContent(getHash(), - newState.getStateToken()); - - assertEquals(newTitle, folderAgain.getContainer().getName()); - } - -} Copied: tags/0.0.8/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java (from rev 1380, trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java) =================================================================== --- tags/0.0.8/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java (rev 0) +++ tags/0.0.8/src/test/java/cc/kune/core/server/integration/content/ContentServiceVariousTest.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,250 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.core.server.integration.content; + +import static cc.kune.docs.shared.DocsConstants.TYPE_DOCUMENT; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.util.List; + +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +import cc.kune.core.client.errors.AccessViolationException; +import cc.kune.core.server.integration.IntegrationTestHelper; +import cc.kune.core.shared.domain.TagCloudResult; +import cc.kune.core.shared.domain.TagCount; +import cc.kune.core.shared.domain.utils.StateToken; +import cc.kune.core.shared.dto.ContainerDTO; +import cc.kune.core.shared.dto.ContentSimpleDTO; +import cc.kune.core.shared.dto.StateAbstractDTO; +import cc.kune.core.shared.dto.StateContainerDTO; +import cc.kune.core.shared.dto.StateContentDTO; +import cc.kune.core.shared.dto.UserSimpleDTO; +import cc.kune.docs.shared.DocsConstants; + +public class ContentServiceVariousTest extends ContentServiceIntegrationTest { + + private StateContentDTO defaultContent; + private String groupShortName; + + @Ignore + @Test + public void addRemoveAuthor() throws Exception { + final List<UserSimpleDTO> authors = defaultContent.getAuthors(); + assertEquals(1, authors.size()); + final UserSimpleDTO author = authors.get(0); + final String authorShortName = author.getShortName(); + contentService.removeAuthor(getHash(), defaultContent.getStateToken(), authorShortName); + final List<UserSimpleDTO> authors2 = getSiteDefaultContent().getAuthors(); + assertEquals(0, authors2.size()); + contentService.addAuthor(getHash(), defaultContent.getStateToken(), authorShortName); + final List<UserSimpleDTO> authors3 = getSiteDefaultContent().getAuthors(); + assertEquals(1, authors3.size()); + contentService.addAuthor(getHash(), defaultContent.getStateToken(), authorShortName); + final List<UserSimpleDTO> authors4 = getSiteDefaultContent().getAuthors(); + assertEquals(1, authors4.size()); + } + + private void checkResult(final TagCloudResult cloudResult) { + assertNotNull(cloudResult.getTagCountList()); + final List<TagCount> summaryTags = cloudResult.getTagCountList(); + assertEquals(3, summaryTags.size()); + + TagCount tagResult = summaryTags.get(0); + assertEquals("afoo2", tagResult.getName()); + assertEquals(1, (long) tagResult.getCount()); + + tagResult = summaryTags.get(1); + assertEquals("bfoo", tagResult.getName()); + assertEquals(1, (long) tagResult.getCount()); + + tagResult = summaryTags.get(2); + assertEquals("cfoa", tagResult.getName()); + assertEquals(1, (long) tagResult.getCount()); + } + + @Test + public void contentRateAndRetrieve() throws Exception { + contentService.rateContent(getHash(), defaultContent.getStateToken(), 4.5); + final StateContentDTO again = (StateContentDTO) contentService.getContent(getHash(), + defaultContent.getStateToken()); + assertEquals(new Double(4.5), again.getCurrentUserRate()); + assertEquals(new Double(4.5), again.getRate()); + assertEquals(Integer.valueOf(1), again.getRateByUsers()); + } + + @Test + public void contentSetLanguage() throws Exception { + contentService.setLanguage(getHash(), defaultContent.getStateToken(), "es"); + final StateContentDTO contentRetrieved = (StateContentDTO) contentService.getContent(getHash(), + defaultContent.getStateToken()); + assertEquals("es", contentRetrieved.getLanguage().getCode()); + } + + @Ignore + // FIXME: when State refactor do this test (with noLogin and without) + public void defAdminDontShowAsParticipation() throws Exception { + doLogin(); + final StateContentDTO content = (StateContentDTO) contentService.getContent(getHash(), + new StateToken(getSiteAdminShortName())); + assertEquals(0, content.getParticipation().getGroupsIsCollab().size()); + assertEquals(1, content.getParticipation().getGroupsIsAdmin().size()); + } + + @Test + public void folderRename() throws Exception { + doLogin(); + defaultContent = getSiteDefaultContent(); + + final String oldTitle = "some title"; + String newTitle = "folder new name"; + final StateContainerDTO newState = contentService.addFolder(session.getHash(), + defaultContent.getStateToken(), oldTitle, DocsConstants.TYPE_FOLDER); + + final ContainerDTO newFolder = newState.getContainer(); + + assertEquals(oldTitle, newFolder.getName()); + + final StateToken folderToken = new StateToken(groupShortName, + defaultContent.getStateToken().getTool(), newFolder.getId().toString(), null); + final StateAbstractDTO result = contentService.renameContainer(getHash(), folderToken, newTitle); + + assertEquals(newTitle, result.getTitle()); + + final StateToken newFolderToken = new StateToken(groupShortName, + defaultContent.getStateToken().getTool(), newFolder.getId().toString(), null); + StateContainerDTO folderAgain = (StateContainerDTO) contentService.getContent(getHash(), + newFolderToken); + + assertEquals(newTitle, folderAgain.getContainer().getName()); + + newTitle = "folder last name"; + + contentService.renameContainer(getHash(), newFolderToken, newTitle); + + folderAgain = (StateContainerDTO) contentService.getContent(getHash(), newFolderToken); + + assertEquals(newTitle, folderAgain.getContainer().getName()); + } + + @Test(expected = AccessViolationException.class) + public void folderRenameOtherGroupFails() throws Exception { + doLogin(); + defaultContent = getSiteDefaultContent(); + final ContainerDTO folder = defaultContent.getContainer(); + final StateToken folderToken = new StateToken("otherGroup", + defaultContent.getStateToken().getTool(), folder.getId().toString(), null); + + final String newTitle = "folder new name"; + contentService.renameContainer(getHash(), folderToken, newTitle); + } + + @Test(expected = RuntimeException.class) + public void folderRootRenameMustFail() throws Exception { + doLogin(); + defaultContent = getSiteDefaultContent(); + final ContainerDTO folder = defaultContent.getContainer(); + + final String newTitle = "folder new name"; + final StateToken folderToken = new StateToken(groupShortName, + defaultContent.getStateToken().getTool(), folder.getId().toString(), null); + final StateAbstractDTO result = contentService.renameContainer(getHash(), folderToken, newTitle); + + assertEquals(newTitle, result.getTitle()); + + final ContainerDTO folderAgain = getSiteDefaultContent().getContainer(); + + assertEquals(newTitle, folderAgain.getName()); + } + + @Before + public void init() throws Exception { + new IntegrationTestHelper(this); + doLogin(); + defaultContent = getSiteDefaultContent(); + groupShortName = defaultContent.getStateToken().getGroup(); + } + + @Test + public void setTagsAndResults() throws Exception { + contentService.setTags(getHash(), defaultContent.getStateToken(), "bfoo cfoa afoo2"); + final TagCloudResult cloudResult = contentService.getSummaryTags(getHash(), + defaultContent.getStateToken()); + checkResult(cloudResult); + checkResult(((StateContentDTO) contentService.getContent(getHash(), defaultContent.getStateToken())).getTagCloudResult()); + } + + @Test + public void setTagsAndRetrieve() throws Exception { + contentService.setTags(getHash(), defaultContent.getStateToken(), "foo foa foo"); + final String tagsRetrieved = getSiteDefaultContent().getTags(); + assertEquals("foo foa", tagsRetrieved); + } + + @Test + public void testSetAsDefContent() throws Exception { + doLogin(); + defaultContent = getSiteDefaultContent(); + + final StateContainerDTO added = contentService.addContent(session.getHash(), + defaultContent.getStateToken(), "New Content Title", TYPE_DOCUMENT); + assertNotNull(added); + + final ContentSimpleDTO newDefContent = contentService.setAsDefaultContent(session.getHash(), + added.getStateToken()); + + assertFalse(defaultContent.getStateToken().equals(newDefContent.getStateToken())); + assertTrue(added.getStateToken().equals(newDefContent.getStateToken())); + } + + @Test + public void tokenRename() throws Exception { + doLogin(); + defaultContent = getSiteDefaultContent(); + final ContainerDTO folder = defaultContent.getContainer(); + + final String oldTitle = "some title"; + String newTitle = "folder new name"; + final StateContainerDTO newState = contentService.addFolder(session.getHash(), + folder.getStateToken(), oldTitle, DocsConstants.TYPE_FOLDER); + + final ContainerDTO newFolder = newState.getContainer(); + + assertEquals(oldTitle, newFolder.getName()); + + newTitle = "folder last name"; + + final StateAbstractDTO result = contentService.renameContainer(getHash(), newState.getStateToken(), + newTitle); + + assertEquals(newTitle, result.getTitle()); + + final StateContainerDTO folderAgain = (StateContainerDTO) contentService.getContent(getHash(), + newState.getStateToken()); + + assertEquals(newTitle, folderAgain.getContainer().getName()); + } + +} Deleted: tags/0.0.8/src/test/java/cc/kune/core/server/manager/file/ImageUtilsDefaultTest.java =================================================================== --- trunk/src/test/java/cc/kune/core/server/manager/file/ImageUtilsDefaultTest.java 2011-05-11 14:13:31 UTC (rev 1377) +++ tags/0.0.8/src/test/java/cc/kune/core/server/manager/file/ImageUtilsDefaultTest.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -1,204 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.core.server.manager.file; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.awt.Dimension; -import java.io.File; -import java.io.FileNotFoundException; - -import magick.MagickException; - -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * If you get a UnsatisfiedLinkError this is a problem with jmagick installation - * (in debian, apt-get install libjmagick6-jni, and add - * LD_LIBRARY_PATH=/usr/lib/jni/ to this test environment params or sudo ln -s - * /usr/lib/jni/libJMagick.so /usr/lib/libJMagick.so) - * - * See the output of: - * System.out.println(System.getProperty("java.library.path")); to see when is - * expecting the .so/.dll - */ -public class ImageUtilsDefaultTest { - - private static String imageDest; - private static String[] images = { "orig.png", "orig.gif", "orig.jpg", "orig.tiff", "orig.pdf" }; - private static final String IMG_PATH = "src/test/java/cc/kune/core/server/manager/file/"; - private static String pdf = "orig.pdf"; - - @AfterClass - public static void after() { - final File file = new File(imageDest); - file.delete(); - } - - @BeforeClass - public static void before() { - imageDest = IMG_PATH + "output.png"; - } - - @Test - public void convertPdfToPng() throws MagickException { - ImageUtilsDefault.createThumbFromPdf(IMG_PATH + pdf, imageDest); - } - - @Test - public void generateIcon() throws MagickException, FileNotFoundException { - for (final String image : images) { - ImageUtilsDefault.createThumb(IMG_PATH + image, imageDest, 16, 16); - final Dimension dimension = ImageUtilsDefault.getDimension(imageDest); - assertEquals(16, (int) dimension.getHeight()); - assertEquals(16, (int) dimension.getWidth()); - } - } - - @Test - public void generateThumb() throws MagickException, FileNotFoundException { - for (final String image : images) { - ImageUtilsDefault.createThumb(IMG_PATH + image, imageDest, 100, 85); - final Dimension dimension = ImageUtilsDefault.getDimension(imageDest); - assertEquals(85, (int) dimension.getHeight()); - assertEquals(85, (int) dimension.getWidth()); - } - } - - @Test - public void testProportionalHigher() { - final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(500, 1000, 100); - assertEquals(100, proportionalDim.width); - assertEquals(200, proportionalDim.height); - assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100)); - assertEquals(50, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.height, 100)); - } - - @Test - public void testProportionalHigherLikeSamples() { - final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(1200, 1600, 100); - assertEquals(100, proportionalDim.width); - assertEquals(133, proportionalDim.height); - assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100)); - assertEquals(16, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.height, 100)); - } - - @Test - public void testProportionalHigherSame() { - final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(20, 100, 100); - assertEquals(20, proportionalDim.width); - assertEquals(100, proportionalDim.height); - assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100)); - assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.height, 100)); - } - - @Test - public void testProportionalHigherSmaller() { - final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(20, 10, 100); - assertEquals(20, proportionalDim.width); - assertEquals(10, proportionalDim.height); - assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100)); - assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.height, 100)); - } - - @Test - public void testProportionalToBiggerNormal() { - final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(600, 300, 300, false); - assertEquals(300, proportionalDim.width); - assertEquals(150, proportionalDim.height); - } - - @Test - public void testProportionalToBiggerSame() { - final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(600, 300, 600, false); - assertEquals(600, proportionalDim.width); - assertEquals(300, proportionalDim.height); - } - - @Test - public void testProportionalToBiggerSmaller() { - final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(600, 300, 700, false); - assertEquals(600, proportionalDim.width); - assertEquals(300, proportionalDim.height); - } - - @Test - public void testProportionalToBiggerWider() { - final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(300, 600, 200, false); - assertEquals(100, proportionalDim.width); - assertEquals(200, proportionalDim.height); - } - - @Test - public void testProportionalWider() { - final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(1000, 500, 100); - assertEquals(200, proportionalDim.width); - assertEquals(100, proportionalDim.height); - assertEquals(50, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100)); - assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.height, 100)); - } - - @Test - public void testProportionalWiderSame() { - final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(100, 20, 100); - assertEquals(100, proportionalDim.width); - assertEquals(20, proportionalDim.height); - assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100)); - assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.height, 100)); - } - - @Test - public void testProportionalWiderSmaller() { - final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(5, 10, 100); - assertEquals(5, proportionalDim.width); - assertEquals(10, proportionalDim.height); - assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100)); - assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.height, 100)); - } - - @Test - public void testResize() throws MagickException, FileNotFoundException { - for (final String image : images) { - assertTrue(ImageUtilsDefault.scaleImage(IMG_PATH + image, imageDest, 100, 100)); - final Dimension dimension = ImageUtilsDefault.getDimension(imageDest); - assertEquals(100, (int) dimension.getHeight()); - assertEquals(100, (int) dimension.getWidth()); - } - } - - @Test - public void testSize() throws MagickException { - for (final String image : images) { - if (!image.equals(pdf)) { - final Dimension dimension = ImageUtilsDefault.getDimension(IMG_PATH + image); - assertEquals(400, (int) dimension.getHeight()); - assertEquals(300, (int) dimension.getWidth()); - } - } - } - - @Test(expected = IndexOutOfBoundsException.class) - public void thumbSmallerThanCropMustFail() throws MagickException, FileNotFoundException { - ImageUtilsDefault.createThumb(IMG_PATH + images[0], imageDest, 100, 200); - } -} Copied: tags/0.0.8/src/test/java/cc/kune/core/server/manager/file/ImageUtilsDefaultTest.java (from rev 1380, trunk/src/test/java/cc/kune/core/server/manager/file/ImageUtilsDefaultTest.java) =================================================================== --- tags/0.0.8/src/test/java/cc/kune/core/server/manager/file/ImageUtilsDefaultTest.java (rev 0) +++ tags/0.0.8/src/test/java/cc/kune/core/server/manager/file/ImageUtilsDefaultTest.java 2011-05-12 17:01:06 UTC (rev 1384) @@ -0,0 +1,209 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.core.server.manager.file; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.awt.Dimension; +import java.io.File; +import java.io.FileNotFoundException; + +import magick.MagickException; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +/** + * If you get a UnsatisfiedLinkError this is a problem with jmagick installation + * (in debian, apt-get install libjmagick6-jni, and add + * LD_LIBRARY_PATH=/usr/lib/jni/ to this test environment params or sudo ln -s + * /usr/lib/jni/libJMagick.so /usr/lib/libJMagick.so) + * + * See the output of: + * System.out.println(System.getProperty("java.library.path")); to see when is + * expecting the .so/.dll + */ +public class ImageUtilsDefaultTest { + + private static String imageDest; + private static String[] images = { "orig.png", "orig.gif", "orig.jpg", "orig.tiff", "orig.pdf" }; + private static final String IMG_PATH = "src/test/java/cc/kune/core/server/manager/file/"; + private static String pdf = "orig.pdf"; + + @AfterClass + public static void after() { + final File file = new File(imageDest); + file.delete(); + } + + @BeforeClass + public static void before() { + imageDest = IMG_PATH + "output.png"; + } + + @Ignore + @Test + public void convertPdfToPng() throws MagickException { + ImageUtilsDefault.createThumbFromPdf(IMG_PATH + pdf, imageDest); + } + + @Ignore + @Test + public void generateIcon() throws MagickException, FileNotFoundException { + for (final String image : images) { + ImageUtilsDefault.createThumb(IMG_PATH + image, imageDest, 16, 16); + final Dimension dimension = ImageUtilsDefault.getDimension(imageDest); + assertEquals(16, (int) dimension.getHeight()); + assertEquals(16, (int) dimension.getWidth()); + } + } + + @Ignore + @Test + public void generateThumb() throws MagickException, FileNotFoundException { + for (final String image : images) { + ImageUtilsDefault.createThumb(IMG_PATH + image, imageDest, 100, 85); + final Dimension dimension = ImageUtilsDefault.getDimension(imageDest); + assertEquals(85, (int) dimension.getHeight()); + assertEquals(85, (int) dimension.getWidth()); + } + } + + @Test + public void testProportionalHigher() { + final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(500, 1000, 100); + assertEquals(100, proportionalDim.width); + assertEquals(200, proportionalDim.height); + assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100)); + assertEquals(50, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.height, 100)); + } + + @Test + public void testProportionalHigherLikeSamples() { + final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(1200, 1600, 100); + assertEquals(100, proportionalDim.width); + assertEquals(133, proportionalDim.height); + assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100)); + assertEquals(16, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.height, 100)); + } + + @Test + public void testProportionalHigherSame() { + final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(20, 100, 100); + assertEquals(20, proportionalDim.width); + assertEquals(100, proportionalDim.height); + assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100)); + assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.height, 100)); + } + + @Test + public void testProportionalHigherSmaller() { + final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(20, 10, 100); + assertEquals(20, proportionalDim.width); + assertEquals(10, proportionalDim.height); + assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100)); + assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.height, 100)); + } + + @Test + public void testProportionalToBiggerNormal() { + final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(600, 300, 300, false); + assertEquals(300, proportionalDim.width); + assertEquals(150, proportionalDim.height); + } + + @Test + public void testProportionalToBiggerSame() { + final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(600, 300, 600, false); + assertEquals(600, proportionalDim.width); + assertEquals(300, proportionalDim.height); + } + + @Test + public void testProportionalToBiggerSmaller() { + final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(600, 300, 700, false); + assertEquals(600, proportionalDim.width); + assertEquals(300, proportionalDim.height); + } + + @Test + public void testProportionalToBiggerWider() { + final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(300, 600, 200, false); + assertEquals(100, proportionalDim.width); + assertEquals(200, proportionalDim.height); + } + + @Test + public void testProportionalWider() { + final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(1000, 500, 100); + assertEquals(200, proportionalDim.width); + assertEquals(100, proportionalDim.height); + assertEquals(50, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100)); + assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.height, 100)); + } + + @Test + public void testProportionalWiderSame() { + final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(100, 20, 100); + assertEquals(100, proportionalDim.width); + assertEquals(20, proportionalDim.height); + assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100)); + assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.height, 100)); + } + + @Test + public void testProportionalWiderSmaller() { + final Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(5, 10, 100); + assertEquals(5, proportionalDim.width); + assertEquals(10, proportionalDim.height); + assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100)); + assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.height, 100)); + } + + @Ignore + @Test + public void testResize() throws MagickException, FileNotFoundException { + for (final String image : images) { + assertTrue(ImageUtilsDefault.scaleImage(IMG_PATH + image, imageDest, 100, 100)); + final Dimension dimension = ImageUtilsDefault.getDimension(imageDest); + assertEquals(100, (int) dimension.getHeight()); + assertEquals(100, (int) dimension.getWidth()); + } + } + + @Test + public void testSize() throws MagickException { + for (final String image : images) { + if (!image.equals(pdf)) { + final Dimension dimension = ImageUtilsDefault.getDimension(IMG_PATH + image); + assertEquals(400, (int) dimension.getHeight()); + assertEquals(300, (int) dimension.getWidth()); + } + } + } + + @Test(expected = IndexOutOfBoundsException.class) + public void thumbSmallerThanCropMustFail() throws MagickException, FileNotFoundException { + ImageUtilsDefault.createThumb(IMG_PATH + images[0], imageDest, 100, 200); + } +}