[kune-commits] r958 - in trunk/src: main/java/org/ourproject/kune/app/public/css main/java/org/ourproject/kune/platf/client/actions/toolbar main/java/org/ourproject/kune/platf/client/dto main/java/org/ourproject/kune/platf/client/rpc main/java/org/ourproject/kune/platf/server/domain main/java/org/ourproject/kune/platf/server/manager main/java/org/ourproject/kune/platf/server/manager/impl main/java/org/ourproject/kune/platf/server/rpc main/java/org/ourproject/kune/platf/server/state main/java/org/ourproject/kune/workspace/client/cxt main/java/org/ourproject/kune/workspace/client/skel main/java/org/ourproject/kune/workspace/client/socialnet main/java/org/ourproject/kune/workspace/client/tags main/resources test/java/org/ourproject/kune/platf/integration/content test/java/org/ourproject/kune/platf/server/manager test/java/org/ourproject/kune/workspace/client/tags

vjrj vjrj at ourproject.org
Thu Nov 20 03:28:30 CET 2008


Author: vjrj
Date: 2008-11-20 03:28:23 +0100 (Thu, 20 Nov 2008)
New Revision: 958

Added:
   trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagCloudResultDTO.java
   trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagCountDTO.java
   trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagCloudResult.java
   trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagCount.java
Removed:
   trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagResultDTO.java
   trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagResult.java
Modified:
   trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
   trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
   trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css
   trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
   trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateContainerDTO.java
   trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java
   trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java
   trunk/src/main/java/org/ourproject/kune/platf/server/domain/Tag.java
   trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagManager.java
   trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java
   trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
   trunk/src/main/java/org/ourproject/kune/platf/server/state/StateContainer.java
   trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummary.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java
   trunk/src/main/resources/dozerBeanMapping.xml
   trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java
   trunk/src/test/java/org/ourproject/kune/platf/server/manager/TagManagerTest.java
   trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java
Log:
Complete - task Tags cloud 

Incomplete - task Use of new ActionDescriptionClass in SocialNetwork 


Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css	2008-11-20 02:28:23 UTC (rev 958)
@@ -33,9 +33,9 @@
   -moz-opacity: 0.2;
   opacity: 0.2;
 }
-*/.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/*  white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;overflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.kune-TagsPanel-tag{float:left;margin-right:5px;cursor:pointer;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
+*/.kune-NavigationBar .topBar .gwt-Image{margin:0 2px 0 5px;}.kune-NavigationBar .Items{margin:2px 0;}.kune-NavigationBar .Items .gwt-Image{margin:2px 0;vertical-align:middle;}.kune-NavigationBar .Items .gwt-Hyperlink a{color:green;/* FIXME: other color */}.kune-NavigationBar .topBar .topBar-margin{margin-left:5px;}.kune-NavigationBar .pathMenu{vertical-align:middle;}.kune-NavigationBar .pathMenu .gwt-MenuItem{background:transparent url(img/button-bg-hard.gif) repeat-x 0 0;border-left:1px solid #AAA;border-right:1px solid #AAA;color:#999;cursor:pointer;white-space:nowrap;padding:3px 6px;}.kune-NavigationBar .pathMenu .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#000;}.kune-NavigationBar .kune-IconHyperlink{vertical-align:middle;margin-left:5px;}.kune-NavigationBar .kune-IconHyperlink a{color:green;text-decoration:none;}.kune-NavigationBar .kune-IconHyperlink .gwt-Image{margin-right:3px;vertical-align:middle;}/* Social Network */.kune-StackedDropDownPanel{}.kune-StackedDropDownPanel .gwt-StackPanelItem{border-top:1px solid #CCC;border-bottom:1px solid #CCC;background-color:#EFA;cursor:pointer;padding:1px 3px 0 6px;overflow:hidden;}.kune-StackedDropDownPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-StackedDropDownPanel .kune-DropDownInner table{width:100%;}.kune-StackedDropDownPanel .gwt-StackPanelItem-selected{}.kune-StackedDropDownPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/*  white-space: nowrap; */cursor:pointer;}.kune-StackedDropDownPanel .kune-DropDownInner{padding:0;}/* StackedDropDownPanel Members */.kune-StackSubItemLabel{overflow:hidden;}.kune-StackSubItemLabel .gwt-MenuItem{white-space:nowrap;cursor:pointer;border-bottom:1px solid #F2F2F2;}.kune-StackSubItemLabel table{width:100%;}.kune-StackSubItemLabel .gwt-MenuItem img{vertical-align:middle;margin-top:1px;margin-bottom:1px;margin-left:5px;margin-right:3px;}.kune-StackSubItemLabel .gwt-MenuItem-selected{background-color:#FFE6D5;}.kune-StackSubItemActions{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;margin-left:-120px;margin-top:-2px;}.kune-StackSubItemActions .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.kune-StackSubItemActions .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.kune-StackSubItemActions .gwt-MenuItem-selected{background-color:#FFB958;}/* AccessList */.kune-AccessListSubLabel{font-style:italic;}.kune-AccessList{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel{margin:5px;width:100%;}.kune-AccessList .gwt-DisclosurePanel-open{width:100%;}.kune-AccessList .gwt-DisclosurePanel-closed{width:100%;}.kune-AccessList .header{margin:0 0 3px;text-decoration:none;width:100%;background-color:#8DD35F;}.kune-AccessList .header table{margin:0 5px 0 0;width:100%;color:#FFF;}.kune-AccessList .header img{margin:0 3px 0 0;}.kune-AccessList .content{margin:0 0 0 7px;width:100%;}.kune-AccessList .content table{margin-bottom:5px;width:100%;}/* Rate */.kune-RatePanel-Label{white-space:nowrap;vertical-align:middle;}.kune-RatePanel-Stars{margin-left:5px;vertical-align:middle;}.kune-RatePanel-Stars-RateIt{cursor:pointer;}/* Licenses */.kune-License-CC-Header{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}.kune-License-CC-Header .gwt-Label{color:#15428B;font-weight:700;font-size:85%;margin-top:5px;}/* Theme */.kune-IconBottomPanel .gwt-MenuItem{cursor:pointer;background-color:#FFF;margin:2px 2px 2px 5px;}.kune-IconBottomPanel .gwt-MenuItem-selected{background-color:#F2F2F2;}.gwt-MenuBar-bottomMenu{margin-left:-60px;margin-top:-120px;}/* i18n */.kune-I18nTranslatorCell{white-space:normal;}.kune-i18nTranslator-recommend{margin:10px;}.kune-i18nTranslator-recommend h1{font-size:131%;font-weight:700;}.kune-i18nTranslator-recommend h2{font-size:116%;font-weight:700;}.kune-i18nTranslator-recommend h3{font-size:108%;font-weight:700;font-style:italic;}.kune-i18nTranslator-recommend em{font-weight:700;}.kune-i18nTranslator-recommend strong{font-weight:700;}/* Admin Context */.kune-AdminContextPanel{margin:6px;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem{background:transparent url(img/arrow-right-white.gif) no-repeat scroll 3px 2px;cursor:pointer;padding:3px 10px 1px 20px;overflow:hidden;width:100%;}.kune-AdminContextPanel .gwt-StackPanelItem img{margin:0 0 0 3px;vertical-align:middle;}.kune-AdminContextPanel .gwt-StackPanelItem-selected{background:transparent url(img/arrow-down-white.gif) no-repeat scroll 3px 2px;background-color:#DEE3DB;}.kune-AdminContextPanelLink{background-color:#E6E6E6;border-top:1px solid #CCC;border-bottom:1px solid #F2F2F2;/* white-space: nowrap; */cursor:pointer;}.kune-AdminContextPanel-inner{background-color:#FFF;}.kune-AdminContextPanel-inner-wrap{margin:5px;}.kune-EditableLabel{}.kune-EditableLabel .kune-EditableLabel-editable{}.kune-EditableLabel-high{background-color:#FFFBC1;cursor:pointer;}.kune-EditableLabel-high span{background-color:#FFFBC1;}.kune-EditableLabel a{margin-left:5px;}.kune-EditableLabel a:link{color:green;}.kune-EditableLabel a:hover{text-decoration:underline;}.kune-EditableLabel a:visited{color:olive;}.kune-EditableLabel img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable img{margin-right:4px;vertical-align:middle;}.kune-EditableLabel-editable span{margin:3px;}.kune-EditableLabel span{margin:3px;}.kune-BottomIconsTrayPanel{width:165px;height:21px;vertical-align:middle;background-color:#EFEFEF;}.k-tp-tag{float:left;margin-right:5px;cursor:pointer;color:#00F;}.kune-Content-Main{margin:5px;}/* Yahoo ui base.css */.kune-Content-Main h1{font-size:138.5%;}.kune-Content-Main h2{font-size:123.099998%;}.kune-Content-Main h3{font-size:108%;}.kune-Content-Main h1{margin:1em 0;}.kune-Content-Main h2{margin:1em 0;}.kune-Content-Main h3{margin:1em 0;}.kune-Content-Main h1{font-weight:700;}.kune-Content-Main h2{font-weight:700;}.kune-Content-Main h3{font-weight:700;}.kune-Content-Main h4{font-weight:700;}.kune-Content-Main h5{font-weight:700;}.kune-Content-Main h6{font-weight:700;}.kune-Content-Main strong{font-weight:700;}.kune-Content-Main abbr{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main acronym{border-bottom:1px dotted #000;cursor:help;}.kune-Content-Main em{font-style:italic;}.kune-Content-Main blockquote{margin:1em;}.kune-Content-Main ul{margin:1em;}.kune-Content-Main ol{margin:1em;}.kune-Content-Main dl{margin:1em;}.kune-Content-Main ol{margin-left:2em;}.kune-Content-Main ul{margin-left:2em;}.kune-Content-Main dl{margin-left:2em;}.kune-Content-Main ol{list-style:decimal outside;}.kune-Content-Main li{list-style:decimal outside;}.kune-Content-Main li{list-style:disc outside;}.kune-Content-Main ul{list-style:disc outside;}.kune-Content-Main dl{margin-left:1em;}.kune-Content-Main dd{margin-left:1em;}.kune-Content-Main th{border:1px solid #000;padding:.5em;font-weight:700;text-align:center;}.kune-Content-Main td{border:1px solid #000;padding:.5em;}.kune-Content-Main caption{margin-bottom:.5em;text-align:center;}.kune-Content-Main p{margin-bottom:1em;}.kune-Content-Main fieldset{margin-bottom:1em;}.kune-Content-Main table{margin-bottom:1em;}.kune-Content-Main pre{margin-bottom:1em;}.kune-Content-Main input[type=text]{width:12.25em;width:11.9em;}.kune-Content-Main input[type=password]{width:12.25em;width:11.9em;}.kune-Content-Main textarea{width:12.25em;width:11.9em;}.search-icon{background-image:url(img/search.gif)!important;}.i18n-icon{background-image:url(img/language.gif)!important;}/* RTE Text editor */.kune-TexEditorPanel-TextArea{margin:3px;}.gwt-RichTextArea{/* border: 1px solid #000;
     background-color: #FFF; */border:1px solid #4D4D4D;background-color:#FFF;margin:5px 0 5px 10px;}.gwt-RichTextToolbar{/* background-color: #F2F2F2;
-  padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-down-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-bottom div{line-height:24px;color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
+  padding: 5px; */height:24px;vertical-align:middle;}.gwt-RichTextToolbar table{vertical-align:middle;}.gwt-RichTextToolbar .gwt-ToggleButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton{float:left;margin-top:2px;}.gwt-RichTextToolbar .gwt-PushButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-PushButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-PushButton-down{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-PushButton-down-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-up{margin-right:2px;border:1px solid #F2F2F2;}.gwt-RichTextToolbar .gwt-ToggleButton-up-hovering{margin-right:2px;border:1px solid #C3D9FF;border-color:#E8F1FF #9daecd #9daecd #e8f1ff;}.gwt-RichTextToolbar .gwt-ToggleButton-down{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .gwt-ToggleButton-down-hovering{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.gwt-RichTextToolbar .x-btn{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lSpace{float:left;}.gwt-RichTextToolbar .kune-Button-Large-lrSpace{float:left;}.RichTextToolbar-menu{float:left;margin-top:2px;z-index:4;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;z-index:4;}.RichTextToolbar-menu .gwt-MenuItem{margin-right:2px;border:1px solid #F2F2F2;}.RichTextToolbar-menu .gwt-MenuItem-selected{margin-right:2px;background-color:#E8F1FF;border:1px solid #C3D9FF;border-color:#9DAECD #e8f1ff #e8f1ff #9daecd;}.RichTextToolbar-submenu{background-color:#FFFCD5;border:1px solid #D38D5F;cursor:default;z-index:4;}.RichTextToolbar-submenu .gwt-MenuItem{cursor:default;white-space:nowrap;border:1px solid #FFFCD5;padding:0 4px;}.RichTextToolbar-submenu .gwt-MenuItem-selected{background-color:#FFB958;border:1px solid #C83737;}.kune-WebSafePalette{background-color:#FFF;border:1px solid #AAA;margin:1px;}.kune-WebSafePalette td{width:12px;height:10px;}.k-site-traybar{background:#FFF none repeat scroll 0 50%;}.k-blank-toolbar{background:#FFF none repeat scroll 0 50%;}.k-sitebar .kune-IconHyperlink{white-space:nowrap;}.k-sitebar .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.k-sitebar .kune-IconHyperlink a:hover{text-decoration:underline;}.k-sitebar .kune-IconHyperlink a:visited{color:#B3B3B3;}.k-sitebar-labellink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-sitebar{margin-right:10px;height:16px;background:#FFF;}.k-sitebar .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.k-sitebar .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.k-sitebar .gwt-PushButton{cursor:pointer;}.k-sitebar-LabelLink{white-space:nowrap;color:#B3B3B3;cursor:pointer;text-decoration:underline;}.k-entity-summary{border-left-color:#FFF;border-left-width:5px;border-bottom-color:#FFF;border-bottom-width:5px;}.k-entitytextlogo-border{border:2px solid #F2F2F2;}.k-entitytextlogo-no-border{border:none;}.k-entitytextlogo{height:60px;margin:0 0 4px;overflow:hidden;width:468px;}.k-entitytextlogo table{vertical-align:middle;}.k-elogo-l-l{font-size:272%;}.k-elogo-l-m{font-size:167%;}.k-elogo-l-s{font-size:108%;}.k-entitytextlogo .gwt-Label{font-weight:700;margin:5px;height:27px;}.k-entitytextlogo-default .gwt-Label{color:#69312F;}.k-entitytextlogo-green .gwt-Label{color:#250;}.k-entitytextlogo-blue .gwt-Label{color:navy;}.k-entitytextlogo-grey .gwt-Label{color:#1A1A1A;}.k-entitytextlogo-purple .gwt-Label{color:#405;}.k-entitytextlogo-red .gwt-Label{color:maroon;}.k-elogo-plink{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.k-elogop-expand{background-color:transparent;}.k-entity-default .x-layout-split,.k-entity-default .x-layout-collapsed{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-green .x-layout-split,.k-entity-green .x-layout-collapsed{background:#5FD35F none repeat scroll 0 50%;}.k-entity-blue .x-layout-split,.k-entity-blue .x-layout-collapsed{background:#06F none repeat scroll 0 50%;}.k-entity-grey .x-layout-split,.k-entity-grey .x-layout-collapsed{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-purple .x-layout-split,.k-entity-purple .x-layout-collapsed{background:#660080 none repeat scroll 0 50%;}.k-entity-red .x-layout-split,.k-entity-red .x-layout-collapsed{background:#D40000 none repeat scroll 0 50%;}.k-entityworkspace .x-layout-split,.k-entityworkspace .x-layout-collapsed{background:transparent none repeat scroll 0 50%;}.k-entityworkspace-default .x-layout-split,.k-entityworkspace-default .x-layout-collapsed{background:#DEAA87 none repeat scroll 0 50%;}.k-entityworkspace-green .x-layout-split,.k-entityworkspace-green .x-layout-collapsed{background:#DCE8AB none repeat scroll 0 50%;}.k-entityworkspace-blue .x-layout-split,.k-entityworkspace-blue .x-layout-collapsed{background:#D5D5FF none repeat scroll 0 50%;}.k-entityworkspace-grey .x-layout-split,.k-entityworkspace-grey .x-layout-collapsed{background:#999 none repeat scroll 0 50%;}.k-entityworkspace-purple .x-layout-split,.k-entityworkspace-purple .x-layout-collapsed{background:#A793AC none repeat scroll 0 50%;}.k-entityworkspace-red .x-layout-split,.k-entityworkspace-red .x-layout-collapsed{background:#F55 none repeat scroll 0 50%;}.k-entity-title{border-left-style:solid;border-left-width:2px;}.k-entity-title div{line-height:22px;white-space:nowrap;}.k-entity-subtitle{}.k-entity-subtitle div{line-height:22px;white-space:nowrap;}.k-entity-title-rd-default{background:#DD8A3D;}.k-entity-title-rd-green{background:#5FD35F;}.k-entity-title-rd-blue{background:#06F;}.k-entity-title-rd-grey{background:#4D4D4D;}.k-entity-title-rd-purple{background:#660080;}.k-entity-title-rd-red{background:#D40000;}.k-entity-title-default{background:#F1BB59 none repeat scroll 0 50%;border-left-color:#DD8A3D;}.k-entity-title-green{background:#AFA none repeat scroll 0 50%;border-left-color:#5FD35F;}.k-entity-title-blue{background:#AFDDE9 none repeat scroll 0 50%;border-left-color:#06F;}.k-entity-title-grey{background:#CCC none repeat scroll 0 50%;border-left-color:#4D4D4D;}.k-entity-title-purple{background:#DDAFE9 none repeat scroll 0 50%;border-left-color:#660080;}.k-entity-title-red{background:#FF8080 none repeat scroll 0 50%;border-left-color:#D40000;}.k-entity-title-default div{color:#69312F;}.k-entity-title-green div{color:#250;}.k-entity-title-blue div{color:navy;}.k-entity-title-grey div{color:#1A1A1A;}.k-entity-title-purple div{color:#405;}.k-entity-title-red div{color:maroon;}.k-entity-subtitle-default{background:#DD8A3D none repeat scroll 0 50%;}.k-entity-subtitle-green{background:#5FD35F none repeat scroll 0 50%;}.k-entity-subtitle-blue{background:#06F none repeat scroll 0 50%;}.k-entity-subtitle-grey{background:#4D4D4D none repeat scroll 0 50%;}.k-entity-subtitle-purple{background:#660080 none repeat scroll 0 50%;}.k-entity-subtitle-red{background:#D40000 none repeat scroll 0 50%;}.k-entity-subtitle-default div{color:#FFF;}.k-entity-subtitle-green div{color:#FFF;}.k-entity-subtitle-blue div{color:#FFF;}.k-entity-subtitle-grey div{color:#FFF;}.k-entity-subtitle-purple div{color:#FFF;}.k-entity-subtitle-red div{color:#FFF;}.k-entity-bottom-rd-default,.k-entity-bottom-default,.k-toolselectoritem-sel-default{background:#DD8A3D;}.k-entity-bottom-rd-green,.k-entity-bottom-green,.k-toolselectoritem-sel-green{background:#5FD35F;}.k-entity-bottom-rd-blue,.k-entity-bottom-blue,.k-toolselectoritem-sel-blue{background:#06F;}.k-entity-bottom-rd-grey,.k-entity-bottom-grey,.k-toolselectoritem-sel-grey{background:#4D4D4D;}.k-entity-bottom-rd-purple,.k-entity-bottom-purple,.k-toolselectoritem-sel-purple{background:#660080;}.k-entity-bottom-rd-red,.k-entity-bottom-red,.k-toolselectoritem-sel-red{background:#D40000;}.k-entitylicensepanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}.k-entity-context-default div,.k-entity-context-default .x-tree .x-panel-body{background:#FFD09D none repeat scroll 0 50%;}.k-entity-context-green div,.k-entity-context-green .x-tree .x-panel-body{background:#CFA none repeat scroll 0 50%;}.k-entity-context-blue div,.k-entity-context-blue .x-tree .x-panel-body{background:#ACF none repeat scroll 0 50%;}.k-entity-context-grey div,.k-entity-context-grey .x-tree .x-panel-body{background:#B3B3B3 none repeat scroll 0 50%;}.k-entity-context-purple div,.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-context-red div,.k-entity-context-red .x-tree .x-panel-body{background:#FAA none repeat scroll 0 50%;}.k-entity-context-purple .x-tree .x-panel-body{background:#DDAFE9 none repeat scroll 0 50%;}.k-entity-bottom div{line-height:24px;color:#FFF;}.k-toolbar-top-line{border-top-color:#d0d0d0;border-top-style:solid;border-top-width:1px;}.k-toolbar-bottom-line{border-bottom-color:#d0d0d0;border-bottom-style:solid;border-bottom-width:1px;}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 100% arial, sans;line-height:19px;}.k-toolbar-sep{padding-top:4px;padding-left:5px;}/* Custom gwt-ext styles */.ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;display:block;font-size:1px;height:16px;width:4px;overflow:hidden;cursor:default;margin:0 2px;border:0;}.ytb-spacer{width:2px;}.x-grid-group-hd{border-bottom:2px solid grey;cursor:pointer;padding-top:3px;}/* Drop down */.k-dropdownouter{background-color:grey;}.k-dropdownouter-members{}.k-dropdownouter-members-default{background-color:#DF5244;}.k-dropdownouter-members-green{background-color:green;}.k-dropdownouter-members-blue{background-color:#5500D4;}.k-dropdownouter-members-grey{background-color:#4D4D4D;}.k-dropdownouter-members-purple{background-color:#672178;}.k-dropdownouter-members-red{background-color:#A02C2C;}.k-dropdownouter-part{}.k-dropdownouter-part-default{background-color:#CA5842;}.k-dropdownouter-part-green{background-color:#0A0;}.k-dropdownouter-part-blue{background-color:#60F;}.k-dropdownouter-part-grey{background-color:#666;}.k-dropdownouter-part-purple{background-color:#892CA0;}.k-dropdownouter-part-red{background-color:#C83737;}.k-dropdownouter-tags{}.k-dropdownouter-tags-default{background-color:#87501E;}.k-dropdownouter-tags-green{background-color:#00D400;}.k-dropdownouter-tags-blue{background-color:#95F;}.k-dropdownouter-tags-grey{background-color:gray;}.k-dropdownouter-tags-purple{background-color:#AB37C8;}.k-dropdownouter-tags-red{background-color:#D35F5F;}.k-dropdownouter-summary{}.k-dropdownouter-summary-default{background-color:#9F734B;}.k-dropdownouter-summary-green{background-color:#4CE14C;}.k-dropdownouter-summary-blue{background-color:#69A5FF;}.k-dropdownouter-summary-grey{background-color:#A6A6A6;}.k-dropdownouter-summary-purple{background-color:#C473D8;}.k-dropdownouter-summary-red{background-color:#E08F8F;}.k-dropdowninner{margin:0 3px 1px;background:green;background-color:#FFF;/* padding: 3px; */}.k-dropdownlabel{color:#FFF;cursor:pointer;}.k-dropdownlabel .gwt-Label{margin:0 5px 0 0;width:100%;}.k-dropdownlabel img{margin:0 3px 0 1px;}/* WsTheme */.k-wstheme-icon-default{background:#FF8C00;}.k-wstheme-icon-green{background:green;}.k-wstheme-icon-blue{background:blue;}.k-wstheme-icon-grey{background:grey;}.k-wstheme-icon-purple{background:purple;}.k-wstheme-icon-red{background:red;}/* Tool selector items */.k-toolselectoritem{width:auto;margin-bottom:5px;cursor:pointer;}.k-toolselectoritem-sel{}.k-toolselectoritem-notsel-default{background:#FFE9A5;}.k-toolselectoritem-notsel-green{background:#D6F4D6;}.k-toolselectoritem-notsel-blue{background:#D7D7F4;}.k-toolselectoritem-notsel-grey{background:#E6E6E6;}.k-toolselectoritem-notsel-purple{background:#EED7F4;}.k-toolselectoritem-notsel-red{background:#FFD5D5;}.k-toolselectoritem-sel a{color:#FFF;padding:0 9px;text-decoration:none;}.k-toolselectoritem-sel a:hover{text-decoration:none;}.k-toolselectoritem-notsel{}.k-toolselectoritem-notsel a{color:#00F;padding:0 9px;text-decoration:none;}.k-toolselectoritem-notsel a:hover{text-decoration:underline;}/* others *//*
 .x-tree-node a span, .x-dd-drag-ghost a span {
     color:#000000;
     padding: 1px 0px 1px 1px;

Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css	2008-11-20 02:28:23 UTC (rev 958)
@@ -65,8 +65,9 @@
 .k-entity-summary {
     border-left-color: #FFF;
     border-left-width: 5px;
-    border-down-width: 5px;
-}
+    border-bottom-color: #FFF;
+    border-bottom-width: 5px;
+    }
 
 .k-entitytextlogo-border {
     border: 2px solid #F2F2F2;

Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/workspace.css	2008-11-20 02:28:23 UTC (rev 958)
@@ -597,10 +597,11 @@
   background-color: #EFEFEF;
 }
 
-.kune-TagsPanel-tag {
+.k-tp-tag {
   float: left;
   margin-right: 5px;
   cursor: pointer;
+  color: #0000FF;
 }
 
 .kune-Content-Main {

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -174,6 +174,7 @@
             }
         });
         item.setIcon(action.getIconUrl());
+        item.setTitle(action.getToolTip());
         if (id != null) {
             item.setId(id);
         }

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateContainerDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateContainerDTO.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateContainerDTO.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -19,8 +19,6 @@
  */
 package org.ourproject.kune.platf.client.dto;
 
-import java.util.List;
-
 import com.google.gwt.user.client.rpc.IsSerializable;
 
 public class StateContainerDTO extends StateAbstractDTO implements IsSerializable {
@@ -32,12 +30,16 @@
     private ContainerDTO rootContainer;
     private AccessRightsDTO containerRights;
     private LicenseDTO license;
-    private List<TagResultDTO> groupTags;
+    private TagCloudResultDTO tagCloudResult;
     private AccessListsDTO accessLists;
 
     public StateContainerDTO() {
     }
 
+    public AccessListsDTO getAccessLists() {
+        return accessLists;
+    }
+
     public ContainerDTO getContainer() {
         return container;
     }
@@ -46,10 +48,6 @@
         return containerRights;
     }
 
-    public List<TagResultDTO> getGroupTags() {
-        return groupTags;
-    }
-
     public I18nLanguageDTO getLanguage() {
         return language;
     }
@@ -62,6 +60,10 @@
         return rootContainer;
     }
 
+    public TagCloudResultDTO getTagCloudResult() {
+        return tagCloudResult;
+    }
+
     public String getToolName() {
         return toolName;
     }
@@ -70,6 +72,10 @@
         return typeId;
     }
 
+    public void setAccessLists(AccessListsDTO accessLists) {
+        this.accessLists = accessLists;
+    }
+
     public void setContainer(ContainerDTO container) {
         this.container = container;
     }
@@ -78,10 +84,6 @@
         this.containerRights = containerRights;
     }
 
-    public void setGroupTags(List<TagResultDTO> groupTags) {
-        this.groupTags = groupTags;
-    }
-
     public void setLanguage(I18nLanguageDTO language) {
         this.language = language;
     }
@@ -94,6 +96,10 @@
         this.rootContainer = rootContainer;
     }
 
+    public void setTagCloudResult(TagCloudResultDTO tagCloudResult) {
+        this.tagCloudResult = tagCloudResult;
+    }
+
     public void setToolName(String toolName) {
         this.toolName = toolName;
     }
@@ -107,12 +113,4 @@
         return "StateDTO[" + getStateToken() + "/" + getTypeId() + "]";
     }
 
-    public AccessListsDTO getAccessLists() {
-        return accessLists;
-    }
-
-    public void setAccessLists(AccessListsDTO accessLists) {
-        this.accessLists = accessLists;
-    }
-
 }

Added: trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagCloudResultDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagCloudResultDTO.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagCloudResultDTO.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -0,0 +1,50 @@
+package org.ourproject.kune.platf.client.dto;
+
+import java.util.List;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+public class TagCloudResultDTO implements IsSerializable {
+    private List<TagCountDTO> tagCountList;
+    private int maxValue;
+    private int minValue;
+
+    public TagCloudResultDTO() {
+        this(null, 0, 0);
+    }
+
+    public TagCloudResultDTO(List<TagCountDTO> tagCountList, int maxValue, int minValue) {
+        this.tagCountList = tagCountList;
+        this.maxValue = maxValue;
+        this.minValue = minValue;
+    }
+
+    public int getMaxValue() {
+        return maxValue;
+    }
+
+    public int getMinValue() {
+        return minValue;
+    }
+
+    public List<TagCountDTO> getTagCountList() {
+        return tagCountList;
+    }
+
+    public void setMaxValue(int maxValue) {
+        this.maxValue = maxValue;
+    }
+
+    public void setMinValue(int minValue) {
+        this.minValue = minValue;
+    }
+
+    public void setTagCountList(List<TagCountDTO> tagCountList) {
+        this.tagCountList = tagCountList;
+    }
+
+    @Override
+    public String toString() {
+        return "TagCloudResultDTO[list:" + tagCountList + "; maxValue: " + maxValue + "; minValue: " + minValue + "]";
+    }
+}

Copied: trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagCountDTO.java (from rev 953, trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagResultDTO.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagResultDTO.java	2008-11-17 10:18:11 UTC (rev 953)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagCountDTO.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -0,0 +1,58 @@
+/*
+ *
+ * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.platf.client.dto;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+public class TagCountDTO implements IsSerializable {
+    private String name;
+    private Long count;
+
+    public TagCountDTO() {
+        this(null, null);
+    }
+
+    public TagCountDTO(final String name, final Long count) {
+        this.name = name;
+        this.count = count;
+    }
+
+    public Long getCount() {
+        return count;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setCount(final Long count) {
+        this.count = count;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String toString() {
+        return name + "(" + count + ")";
+    }
+
+}


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagCountDTO.java
___________________________________________________________________
Name: svn:mergeinfo
   + 

Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagResultDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagResultDTO.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/TagResultDTO.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -1,57 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package org.ourproject.kune.platf.client.dto;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
-public class TagResultDTO implements IsSerializable {
-    private String name;
-    private Long count;
-
-    public TagResultDTO() {
-        this(null, null);
-    }
-
-    public TagResultDTO(final String name, final Long count) {
-        this.name = name;
-        this.count = count;
-    }
-
-    public Long getCount() {
-        return count;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setCount(final Long count) {
-        this.count = count;
-    }
-
-    public void setName(final String name) {
-        this.name = name;
-    }
-
-    public String toString() {
-        return name + "(" + count + ")";
-    }
-
-}

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentService.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -20,7 +20,6 @@
 package org.ourproject.kune.platf.client.rpc;
 
 import java.util.Date;
-import java.util.List;
 
 import org.ourproject.kune.platf.client.dto.CommentDTO;
 import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
@@ -31,7 +30,7 @@
 import org.ourproject.kune.platf.client.dto.StateContainerDTO;
 import org.ourproject.kune.platf.client.dto.StateContentDTO;
 import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.dto.TagResultDTO;
+import org.ourproject.kune.platf.client.dto.TagCloudResultDTO;
 import org.ourproject.kune.platf.client.errors.DefaultException;
 
 import com.google.gwt.user.client.rpc.RemoteService;
@@ -56,7 +55,7 @@
 
     StateAbstractDTO getContent(String userHash, StateToken token) throws DefaultException;
 
-    List<TagResultDTO> getSummaryTags(String userHash, StateToken groupToken) throws DefaultException;
+    TagCloudResultDTO getSummaryTags(String userHash, StateToken groupToken) throws DefaultException;
 
     CommentDTO markCommentAsAbuse(String userHash, StateToken token, Long commentId) throws DefaultException;
 
@@ -80,7 +79,7 @@
 
     void setStatusAsAdmin(String userHash, StateToken stateToken, ContentStatusDTO status);
 
-    List<TagResultDTO> setTags(String userHash, StateToken token, String tags) throws DefaultException;
+    TagCloudResultDTO setTags(String userHash, StateToken token, String tags) throws DefaultException;
 
     CommentDTO voteComment(String userHash, StateToken token, Long commentId, boolean votePositive)
             throws DefaultException;

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/ContentServiceAsync.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -20,7 +20,6 @@
 package org.ourproject.kune.platf.client.rpc;
 
 import java.util.Date;
-import java.util.List;
 
 import org.ourproject.kune.platf.client.dto.CommentDTO;
 import org.ourproject.kune.platf.client.dto.ContentSimpleDTO;
@@ -31,7 +30,7 @@
 import org.ourproject.kune.platf.client.dto.StateContainerDTO;
 import org.ourproject.kune.platf.client.dto.StateContentDTO;
 import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.dto.TagResultDTO;
+import org.ourproject.kune.platf.client.dto.TagCloudResultDTO;
 
 import com.google.gwt.user.client.rpc.AsyncCallback;
 
@@ -56,7 +55,7 @@
 
     void getContent(String user, StateToken newState, AsyncCallback<StateAbstractDTO> callback);
 
-    void getSummaryTags(String userHash, StateToken groupToken, AsyncCallback<List<TagResultDTO>> asyncCallback);
+    void getSummaryTags(String userHash, StateToken groupToken, AsyncCallback<TagCloudResultDTO> asyncCallback);
 
     void markCommentAsAbuse(String userHash, StateToken token, Long commentId, AsyncCallback<CommentDTO> asyncCallback);
 
@@ -82,7 +81,7 @@
     void setStatusAsAdmin(String userHash, StateToken stateToken, ContentStatusDTO status,
             AsyncCallback<?> asyncCallback);
 
-    void setTags(String userHash, StateToken token, String tags, AsyncCallback<List<TagResultDTO>> asyncCallback);
+    void setTags(String userHash, StateToken token, String tags, AsyncCallback<TagCloudResultDTO> asyncCallback);
 
     void voteComment(String userHash, StateToken token, Long commentId, boolean votePositive,
             AsyncCallback<CommentDTO> asyncCallback);

Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/Tag.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/Tag.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/Tag.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -41,10 +41,15 @@
 @Table(name = "tags")
 // See:
 // http://openjpa.apache.org/docs/latest/manual/manual.html#jpa_langref_resulttype
- at NamedQueries( { @NamedQuery(name = "tagsgrouped", query = "SELECT NEW org.ourproject.kune.platf.server.domain.TagResult(t.name, COUNT(c.id)) "
-        + "FROM Content c JOIN c.tags t WHERE c.container.owner = :group " + "GROUP BY t.name ORDER BY t.name") })
+ at NamedQueries( {
+        @NamedQuery(name = "tagsgrouped", query = "SELECT NEW org.ourproject.kune.platf.server.domain.TagCount(t.name, COUNT(c.id)) "
+                + "FROM Content c JOIN c.tags t WHERE c.container.owner = :group " + "GROUP BY t.name ORDER BY t.name"),
+        @NamedQuery(name = "tagsmaxgrouped", query = "SELECT Count(c.id) FROM Content c JOIN c.tags t WHERE c.container.owner = :group GROUP BY t.name ORDER BY count(*) DESC LIMIT 0,1"),
+        @NamedQuery(name = "tagsmingrouped", query = "SELECT Count(c.id) FROM Content c JOIN c.tags t WHERE c.container.owner = :group GROUP BY t.name ORDER BY count(*) ASC LIMIT 0,1") })
 public class Tag implements HasId {
     public static final String TAGSGROUPED = "tagsgrouped";
+    public static final String TAGSMINGROUPED = "tagsmingrouped";
+    public static final String TAGSMAXGROUPED = "tagsmaxgrouped";
 
     @Id
     @GeneratedValue
@@ -63,25 +68,25 @@
         this.name = name;
     }
 
+    @Finder(query = "FROM Tag g WHERE g.name = :name")
+    public Tag findByTagName(@Named("name") final String tag) {
+        return null;
+    }
+
     public Long getId() {
         return id;
     }
 
+    public String getName() {
+        return name;
+    }
+
     public void setId(final Long id) {
         this.id = id;
     }
 
-    public String getName() {
-        return name;
-    }
-
     public void setName(final String name) {
         this.name = name;
     }
 
-    @Finder(query = "FROM Tag g WHERE g.name = :name")
-    public Tag findByTagName(@Named("name") final String tag) {
-        return null;
-    }
-
 }

Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagCloudResult.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagCloudResult.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagCloudResult.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -0,0 +1,44 @@
+package org.ourproject.kune.platf.server.domain;
+
+import java.util.List;
+
+public class TagCloudResult {
+    private List<TagCount> tagCountList;
+    private int maxValue;
+    private int minValue;
+
+    public TagCloudResult(List<TagCount> tagCountList, int maxValue, int minValue) {
+        this.tagCountList = tagCountList;
+        this.maxValue = maxValue;
+        this.minValue = minValue;
+    }
+
+    public int getMaxValue() {
+        return maxValue;
+    }
+
+    public int getMinValue() {
+        return minValue;
+    }
+
+    public List<TagCount> getTagCountList() {
+        return tagCountList;
+    }
+
+    public void setMaxValue(int maxValue) {
+        this.maxValue = maxValue;
+    }
+
+    public void setMinValue(int minValue) {
+        this.minValue = minValue;
+    }
+
+    public void setTagCountList(List<TagCount> tagCountList) {
+        this.tagCountList = tagCountList;
+    }
+
+    @Override
+    public String toString() {
+        return "TagCloudResult[list:" + tagCountList + "; maxValue: " + maxValue + "; minValue: " + minValue + "]";
+    }
+}

Copied: trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagCount.java (from rev 953, trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagResult.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagResult.java	2008-11-17 10:18:11 UTC (rev 953)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagCount.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -0,0 +1,55 @@
+/*
+ *
+ * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.ourproject.kune.platf.server.domain;
+
+public class TagCount {
+    private String name;
+    private Long count;
+
+    public TagCount() {
+        this(null, null);
+    }
+
+    public TagCount(final String name) {
+        this(name, null);
+    }
+
+    public TagCount(final String name, final Long count) {
+        this.name = name;
+        this.count = count;
+    }
+
+    public Long getCount() {
+        return count;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setCount(final Long count) {
+        this.count = count;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+}


Property changes on: trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagCount.java
___________________________________________________________________
Name: svn:mergeinfo
   + 

Deleted: trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagResult.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagResult.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/TagResult.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -1,55 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2008 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-package org.ourproject.kune.platf.server.domain;
-
-public class TagResult {
-    private String name;
-    private Long count;
-
-    public TagResult() {
-        this(null, null);
-    }
-
-    public TagResult(final String name) {
-        this(name, null);
-    }
-
-    public TagResult(final String name, final Long count) {
-        this.name = name;
-        this.count = count;
-    }
-
-    public Long getCount() {
-        return count;
-    }
-
-    public void setCount(final Long count) {
-        this.count = count;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(final String name) {
-        this.name = name;
-    }
-
-}

Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagManager.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/TagManager.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -19,16 +19,14 @@
  */
 package org.ourproject.kune.platf.server.manager;
 
-import java.util.List;
-
 import org.ourproject.kune.platf.server.domain.Group;
 import org.ourproject.kune.platf.server.domain.Tag;
-import org.ourproject.kune.platf.server.domain.TagResult;
+import org.ourproject.kune.platf.server.domain.TagCloudResult;
 
 public interface TagManager extends Manager<Tag, Long> {
 
     Tag findByTagName(String tag);
 
-    List<TagResult> getSummaryByGroup(Group group);
+    TagCloudResult getTagCloudResultByGroup(Group group);
 
 }

Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/TagManagerDefault.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -26,7 +26,8 @@
 
 import org.ourproject.kune.platf.server.domain.Group;
 import org.ourproject.kune.platf.server.domain.Tag;
-import org.ourproject.kune.platf.server.domain.TagResult;
+import org.ourproject.kune.platf.server.domain.TagCloudResult;
+import org.ourproject.kune.platf.server.domain.TagCount;
 import org.ourproject.kune.platf.server.manager.TagManager;
 
 import com.google.inject.Inject;
@@ -50,11 +51,31 @@
         return tagFinder.findByTagName(tag);
     }
 
+    public TagCloudResult getTagCloudResultByGroup(Group group) {
+        return new TagCloudResult(getSummaryByGroup(group), getMaxCount(group), getMinCount(group));
+    }
+
     @SuppressWarnings("unchecked")
-    public List<TagResult> getSummaryByGroup(final Group group) {
+    private int getMaxCount(Group group) {
+        Query q = provider.get().createNamedQuery(Tag.TAGSMAXGROUPED);
+        q.setParameter("group", group);
+        List resultList = q.getResultList();
+        return (resultList.size() == 0 ? 0 : ((Long) resultList.get(0)).intValue());
+    }
+
+    @SuppressWarnings("unchecked")
+    private int getMinCount(Group group) {
+        Query q = provider.get().createNamedQuery(Tag.TAGSMINGROUPED);
+        q.setParameter("group", group);
+        List resultList = q.getResultList();
+        return (resultList.size() == 0 ? 0 : ((Long) resultList.get(0)).intValue());
+    }
+
+    @SuppressWarnings("unchecked")
+    private List<TagCount> getSummaryByGroup(final Group group) {
         Query q = provider.get().createNamedQuery(Tag.TAGSGROUPED);
         q.setParameter("group", group);
-        List<TagResult> results = q.getResultList();
+        List<TagCount> results = q.getResultList();
         return results;
     }
 }

Modified: trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/rpc/ContentRPC.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -20,7 +20,6 @@
 package org.ourproject.kune.platf.server.rpc;
 
 import java.util.Date;
-import java.util.List;
 
 import javax.persistence.NoResultException;
 
@@ -38,7 +37,8 @@
 import org.ourproject.kune.platf.client.dto.StateContentDTO;
 import org.ourproject.kune.platf.client.dto.StateNoContentDTO;
 import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.dto.TagResultDTO;
+import org.ourproject.kune.platf.client.dto.TagCloudResultDTO;
+import org.ourproject.kune.platf.client.dto.TagCountDTO;
 import org.ourproject.kune.platf.client.errors.AccessViolationException;
 import org.ourproject.kune.platf.client.errors.ContentNotFoundException;
 import org.ourproject.kune.platf.client.errors.DefaultException;
@@ -66,6 +66,7 @@
 import org.ourproject.kune.platf.server.domain.ContentStatus;
 import org.ourproject.kune.platf.server.domain.Group;
 import org.ourproject.kune.platf.server.domain.RateResult;
+import org.ourproject.kune.platf.server.domain.TagCloudResult;
 import org.ourproject.kune.platf.server.domain.User;
 import org.ourproject.kune.platf.server.manager.GroupManager;
 import org.ourproject.kune.platf.server.manager.TagManager;
@@ -254,7 +255,7 @@
     @Authenticated(mandatory = false)
     @Authorizated(accessRolRequired = AccessRol.Viewer)
     @Transactional(type = TransactionType.READ_ONLY)
-    public List<TagResultDTO> getSummaryTags(final String userHash, final StateToken groupToken) {
+    public TagCloudResultDTO getSummaryTags(final String userHash, final StateToken groupToken) {
         final Group group = groupManager.findByShortName(groupToken.getGroup());
         return getSummaryTags(group);
     }
@@ -385,7 +386,7 @@
     @Authenticated
     @Authorizated(accessRolRequired = AccessRol.Editor)
     @Transactional(type = TransactionType.READ_WRITE)
-    public List<TagResultDTO> setTags(final String userHash, final StateToken token, final String tags)
+    public TagCloudResultDTO setTags(final String userHash, final StateToken token, final String tags)
             throws DefaultException {
         final Long contentId = ContentUtils.parseId(token.getDocument());
         final UserSession userSession = getUserSession();
@@ -432,8 +433,10 @@
         }
     }
 
-    private List<TagResultDTO> getSummaryTags(final Group group) {
-        return mapper.mapList(tagManager.getSummaryByGroup(group), TagResultDTO.class);
+    private TagCloudResultDTO getSummaryTags(final Group group) {
+        TagCloudResult result = tagManager.getTagCloudResultByGroup(group);
+        return new TagCloudResultDTO(mapper.mapList(result.getTagCountList(), TagCountDTO.class), result.getMaxValue(),
+                result.getMinValue());
     }
 
     private UserSession getUserSession() {

Modified: trunk/src/main/java/org/ourproject/kune/platf/server/state/StateContainer.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/state/StateContainer.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/state/StateContainer.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -19,14 +19,12 @@
  */
 package org.ourproject.kune.platf.server.state;
 
-import java.util.List;
-
 import org.ourproject.kune.platf.server.access.AccessRights;
 import org.ourproject.kune.platf.server.domain.AccessLists;
 import org.ourproject.kune.platf.server.domain.Container;
 import org.ourproject.kune.platf.server.domain.I18nLanguage;
 import org.ourproject.kune.platf.server.domain.License;
-import org.ourproject.kune.platf.server.domain.TagResult;
+import org.ourproject.kune.platf.server.domain.TagCloudResult;
 
 public class StateContainer extends StateAbstract {
 
@@ -37,12 +35,16 @@
     private Container rootContainer;
     private AccessRights containerRights;
     private License license;
-    private List<TagResult> groupTags;
+    private TagCloudResult tagCloudResult;
     private AccessLists accessLists;
 
     public StateContainer() {
     }
 
+    public AccessLists getAccessLists() {
+        return accessLists;
+    }
+
     public Container getContainer() {
         return container;
     }
@@ -51,10 +53,6 @@
         return containerRights;
     }
 
-    public List<TagResult> getGroupTags() {
-        return groupTags;
-    }
-
     public I18nLanguage getLanguage() {
         return language;
     }
@@ -67,6 +65,10 @@
         return rootContainer;
     }
 
+    public TagCloudResult getTagCloudResult() {
+        return tagCloudResult;
+    }
+
     public String getToolName() {
         return toolName;
     }
@@ -75,6 +77,10 @@
         return typeId;
     }
 
+    public void setAccessLists(AccessLists accessLists) {
+        this.accessLists = accessLists;
+    }
+
     public void setContainer(Container container) {
         this.container = container;
     }
@@ -83,10 +89,6 @@
         this.containerRights = containerRights;
     }
 
-    public void setGroupTags(List<TagResult> groupTags) {
-        this.groupTags = groupTags;
-    }
-
     public void setLanguage(I18nLanguage language) {
         this.language = language;
     }
@@ -99,6 +101,10 @@
         this.rootContainer = rootContainer;
     }
 
+    public void setTagCloudResult(TagCloudResult tagCloudResult) {
+        this.tagCloudResult = tagCloudResult;
+    }
+
     public void setToolName(String toolName) {
         this.toolName = toolName;
     }
@@ -111,12 +117,4 @@
     public String toString() {
         return "State[" + getStateToken() + "/" + getTypeId() + "]";
     }
-
-    public AccessLists getAccessLists() {
-        return accessLists;
-    }
-
-    public void setAccessLists(AccessLists accessLists) {
-        this.accessLists = accessLists;
-    }
 }

Modified: trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -134,7 +134,7 @@
         state.setGroupRights(rightsService.get(userLogged, group.getAccessLists()));
         state.setContainerRights(rightsService.get(userLogged, container.getAccessLists()));
         state.setEnabledTools(groupManager.findEnabledTools(group.getId()));
-        state.setGroupTags(tagManager.getSummaryByGroup(group));
+        state.setTagCloudResult(tagManager.getTagCloudResultByGroup(group));
         setSocialNetwork(state, userLogged, group);
     }
 

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPresenter.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/cxt/ContextPropEditorPresenter.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -26,7 +26,7 @@
 import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
 import org.ourproject.kune.platf.client.dto.StateContainerDTO;
 import org.ourproject.kune.platf.client.dto.StateContentDTO;
-import org.ourproject.kune.platf.client.dto.TagResultDTO;
+import org.ourproject.kune.platf.client.dto.TagCloudResultDTO;
 import org.ourproject.kune.platf.client.dto.UserSimpleDTO;
 import org.ourproject.kune.platf.client.registry.ContentCapabilitiesRegistry;
 import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
@@ -156,19 +156,20 @@
             view.removeAuthorsComponent();
         }
         if (capabilitiesRegistry.isPublishModerable(typeId)) {
-            assert (publishedOn != null);
-            String dateFormat = session.getCurrentLanguage().getDateFormatShort();
-            if (dateFormat != null) {
-                dateFormat = dateFormat.replace("yyyy", "Y");
-                dateFormat = dateFormat.replace("yy", "y");
-                dateFormat = dateFormat.replace("MM", "m");
-                dateFormat = dateFormat.replace("M", "n");
-                dateFormat = dateFormat.replace("dd", "xxx");
-                dateFormat = dateFormat.replace("d", "j");
-                dateFormat = dateFormat.replace("xxx", "d");
-                view.setPublishedOn(publishedOn, dateFormat);
-            } else {
-                view.setPublishedOn(publishedOn, "M/d/yy def");
+            if (publishedOn != null) {
+                String dateFormat = session.getCurrentLanguage().getDateFormatShort();
+                if (dateFormat != null) {
+                    dateFormat = dateFormat.replace("yyyy", "Y");
+                    dateFormat = dateFormat.replace("yy", "y");
+                    dateFormat = dateFormat.replace("MM", "m");
+                    dateFormat = dateFormat.replace("M", "n");
+                    dateFormat = dateFormat.replace("dd", "xxx");
+                    dateFormat = dateFormat.replace("d", "j");
+                    dateFormat = dateFormat.replace("xxx", "d");
+                    view.setPublishedOn(publishedOn, dateFormat);
+                } else {
+                    view.setPublishedOn(publishedOn, "M/d/yy def");
+                }
             }
         } else {
             view.removePublishedOnComponent();
@@ -185,8 +186,8 @@
         Site.showProgressProcessing();
         final StateContainerDTO currentState = session.getContentState();
         contentServiceProvider.get().setTags(session.getUserHash(), currentState.getStateToken(), tagsString,
-                new AsyncCallbackSimple<List<TagResultDTO>>() {
-                    public void onSuccess(final List<TagResultDTO> result) {
+                new AsyncCallbackSimple<TagCloudResultDTO>() {
+                    public void onSuccess(final TagCloudResultDTO result) {
                         tagsSummaryProvider.get().setGroupTags(result);
                         Site.hideProgress();
                     }

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/skel/EntitySummary.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -135,8 +135,10 @@
 
     public void doLayoutIfNeeded() {
         if (mainFitPanel.isRendered()) {
-            mainFitPanel.doLayout(false);
-            entitySummary.doLayout(false);
+            mainFitPanel.doLayout();
+            entityTools.doLayout();
+            entitySummary.syncSize();
+            entitySummary.doLayout();
         }
     }
 

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -133,7 +133,7 @@
                 });
         addMember.setIconUrl("images/add-green.gif");
         addMember.setTextDescription(i18n.t("Add member"));
-        // addMemberButton.setToolTip(i18n.t("Add a group or a person as member of this group"));
+        addMember.setToolTip(i18n.t("Add a group or a person as member of this group"));
         addMember.setParentMenuTitle(i18n.t("Options"));
         groupActionRegistry.addAction(addMember, GroupActionRegistry.GENERAL);
     }

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -166,6 +166,9 @@
         unJoin.setTextDescription(i18n.t("Unjoin"));
         unJoin.setToolTip(i18n.t("Don't participate more in this group"));
         unJoin.setParentMenuTitle(i18n.t("Options"));
+        unJoin.setMustBeConfirmed(true);
+        unJoin.setConfirmationTitle(i18n.t("Unjoin this group"));
+        unJoin.setConfirmationText(i18n.t("Are you sure?"));
         groupActionRegistry.addAction(participate, GroupActionRegistry.GENERAL);
         groupActionRegistry.addAction(unJoin, GroupActionRegistry.GENERAL);
     }

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummary.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummary.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummary.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -19,12 +19,10 @@
  */
 package org.ourproject.kune.workspace.client.tags;
 
-import java.util.List;
+import org.ourproject.kune.platf.client.dto.TagCloudResultDTO;
 
-import org.ourproject.kune.platf.client.dto.TagResultDTO;
-
 public interface TagsSummary {
 
-    void setGroupTags(List<TagResultDTO> result);
+    void setGroupTags(TagCloudResultDTO tagCloud);
 
 }

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -19,17 +19,12 @@
  */
 package org.ourproject.kune.workspace.client.tags;
 
-import java.util.List;
-
-import org.ourproject.kune.platf.client.dto.TagResultDTO;
 import org.ourproject.kune.platf.client.services.I18nTranslationService;
 import org.ourproject.kune.platf.client.ui.KuneUiUtils;
 import org.ourproject.kune.workspace.client.skel.SummaryPanel;
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 import org.ourproject.kune.workspace.client.themes.WsTheme;
 
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.DeferredCommand;
 import com.google.gwt.user.client.ui.ClickListener;
 import com.google.gwt.user.client.ui.FlowPanel;
 import com.google.gwt.user.client.ui.Label;
@@ -40,7 +35,6 @@
 
     private final FlowPanel flowPanel;
     private final TagsSummaryPresenter presenter;
-    private final Label noTagsLabel;
     private final I18nTranslationService i18n;
 
     public TagsSummaryPanel(final TagsSummaryPresenter presenter, final I18nTranslationService i18n,
@@ -50,7 +44,6 @@
         this.presenter = presenter;
         flowPanel = new FlowPanel();
         final VerticalPanel vp = new VerticalPanel();
-        noTagsLabel = new Label(i18n.t("The contents of this group don't have any tag"));
         vp.add(flowPanel);
         vp.setWidth("100%");
         vp.setCellWidth(flowPanel, "100%");
@@ -60,34 +53,29 @@
         ws.addInSummary(this);
     }
 
-    public void setTags(final List<TagResultDTO> groupTags) {
-        DeferredCommand.addCommand(new Command() {
-            public void execute() {
-                flowPanel.clear();
-                if (groupTags.size() == 0) {
-                    flowPanel.add(noTagsLabel);
-                } else {
-                    for (final TagResultDTO tagResult : groupTags) {
-                        final Label label = new Label(tagResult.getName());
-                        // i18n pluralization
-                        if (tagResult.getCount().intValue() > 1) {
-                            KuneUiUtils.setQuickTip(label, i18n.t("[%d] items with this tag", tagResult.getCount()));
-                        } else {
-                            KuneUiUtils.setQuickTip(label, i18n.t("[%d] item with this tag", tagResult.getCount()));
-                        }
-                        label.addClickListener(new ClickListener() {
-                            public void onClick(final Widget sender) {
-                                presenter.doSearchTag(tagResult.getName());
-                            }
-                        });
-                        label.addStyleName("kune-TagsPanel-tag");
-                        flowPanel.add(label);
-                    }
-                }
+    public void addTag(final String name, Long count, String style) {
+        final Label label = new Label(name);
+        // i18n pluralization
+        if (count > 1) {
+            KuneUiUtils.setQuickTip(label, i18n.t("[%d] items with this tag", count));
+        } else {
+            KuneUiUtils.setQuickTip(label, i18n.t("[%d] item with this tag", count));
+        }
+        label.addClickListener(new ClickListener() {
+            public void onClick(final Widget sender) {
+                presenter.doSearchTag(name);
             }
         });
+        label.addStyleName("k-tp-tag");
+        label.addStyleName(style);
+        flowPanel.add(label);
     }
 
+    @Override
+    public void clear() {
+        flowPanel.clear();
+    }
+
     public void setTheme(WsTheme oldTheme, WsTheme newTheme) {
         // TODO Auto-generated method stub
     }

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenter.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -19,12 +19,11 @@
  */
 package org.ourproject.kune.workspace.client.tags;
 
-import java.util.List;
-
 import org.ourproject.kune.platf.client.View;
 import org.ourproject.kune.platf.client.dto.StateAbstractDTO;
 import org.ourproject.kune.platf.client.dto.StateContainerDTO;
-import org.ourproject.kune.platf.client.dto.TagResultDTO;
+import org.ourproject.kune.platf.client.dto.TagCloudResultDTO;
+import org.ourproject.kune.platf.client.dto.TagCountDTO;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.workspace.client.search.SiteSearcher;
@@ -32,12 +31,16 @@
 import org.ourproject.kune.workspace.client.themes.WsTheme;
 import org.ourproject.kune.workspace.client.themes.WsThemePresenter;
 
+import com.allen_sauer.gwt.log.client.Log;
 import com.calclab.suco.client.ioc.Provider;
 import com.calclab.suco.client.listener.Listener;
 import com.calclab.suco.client.listener.Listener2;
 
 public class TagsSummaryPresenter implements TagsSummary {
 
+    private static final int MINSIZE = 12;
+    private static final int MAXSIZE = 26;
+
     private TagsSummaryView view;
     private final Provider<SiteSearcher> searcherProvider;
     private final Session session;
@@ -76,17 +79,30 @@
         this.view = view;
     }
 
-    public void setGroupTags(final List<TagResultDTO> groupTags) {
-        view.setTags(groupTags);
+    public void setGroupTags(final TagCloudResultDTO tagCloud) {
+        setCloud(tagCloud);
     }
 
     void setState(final StateContainerDTO state) {
-        if (state.getGroupTags() != null && state.getGroupTags().size() > 0) {
+        Log.debug(state.getTagCloudResult().toString());
+        if (state.getTagCloudResult() != null && state.getTagCloudResult().getTagCountList().size() > 0) {
             view.setVisible(true);
-            view.setTags(state.getGroupTags());
+            setCloud(state.getTagCloudResult());
         } else {
             view.setVisible(false);
         }
     }
 
+    private void setCloud(TagCloudResultDTO tagCloudResult) {
+        // Inspired in snippet http://www.bytemycode.com/snippets/snippet/415/
+        view.clear();
+        int max = tagCloudResult.getMaxValue();
+        int min = tagCloudResult.getMinValue();
+        int diff = max - min;
+        int step = (MAXSIZE - MINSIZE) / (diff == 0 ? 1 : diff);
+        for (TagCountDTO tagCount : tagCloudResult.getTagCountList()) {
+            int size = Math.round((MINSIZE + (tagCount.getCount() - min) * step));
+            view.addTag(tagCount.getName(), tagCount.getCount(), "kune-ft" + size + "px");
+        }
+    }
 }

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryView.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -19,16 +19,15 @@
  */
 package org.ourproject.kune.workspace.client.tags;
 
-import java.util.List;
-
 import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dto.TagResultDTO;
 import org.ourproject.kune.workspace.client.themes.WsTheme;
 
 public interface TagsSummaryView extends View {
 
-    void setTags(List<TagResultDTO> groupTags);
+    void addTag(String name, Long count, String style);
 
+    void clear();
+
     void setTheme(WsTheme oldTheme, WsTheme newTheme);
 
     void setVisible(boolean visible);

Modified: trunk/src/main/resources/dozerBeanMapping.xml
===================================================================
--- trunk/src/main/resources/dozerBeanMapping.xml	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/main/resources/dozerBeanMapping.xml	2008-11-20 02:28:23 UTC (rev 958)
@@ -145,13 +145,13 @@
     <class-a>org.ourproject.kune.platf.client.dto.StateContainerDTO</class-a>
     <class-b>org.ourproject.kune.platf.server.state.StateContainer</class-b>
      <field>
-      <a>groupTags</a>
-      <b>groupTags</b>
+      <a>tagCloudResult</a>
+      <b>tagCloudResult</b>
       <a-hint>
-        org.ourproject.kune.platf.client.dto.TagResultDTO
+        org.ourproject.kune.platf.client.dto.TagCloudResultDTO
       </a-hint>
       <b-hint>
-        org.ourproject.kune.platf.server.domain.TagResult
+        org.ourproject.kune.platf.server.domain.TagCloudResult
       </b-hint>
     </field>
   </mapping>
@@ -355,12 +355,21 @@
     <class-b>org.ourproject.kune.platf.server.domain.Tag</class-b>
   </mapping>
 
+<mapping>
+    <class-a>
+      org.ourproject.kune.platf.client.dto.TagCloudResultDTO
+    </class-a>
+    <class-b>
+      org.ourproject.kune.platf.server.domain.TagCloudResult
+    </class-b>
+  </mapping>
+
   <mapping>
     <class-a>
-      org.ourproject.kune.platf.client.dto.TagResultDTO
+      org.ourproject.kune.platf.client.dto.TagCountDTO
     </class-a>
     <class-b>
-      org.ourproject.kune.platf.server.domain.TagResult
+      org.ourproject.kune.platf.server.domain.TagCount
     </class-b>
   </mapping>
 

Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/test/java/org/ourproject/kune/platf/integration/content/ContentServiceVariousTest.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -16,7 +16,8 @@
 import org.ourproject.kune.platf.client.dto.StateContainerDTO;
 import org.ourproject.kune.platf.client.dto.StateContentDTO;
 import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.dto.TagResultDTO;
+import org.ourproject.kune.platf.client.dto.TagCloudResultDTO;
+import org.ourproject.kune.platf.client.dto.TagCountDTO;
 import org.ourproject.kune.platf.client.dto.UserSimpleDTO;
 import org.ourproject.kune.platf.client.errors.AccessViolationException;
 import org.ourproject.kune.platf.integration.IntegrationTestHelper;
@@ -147,20 +148,9 @@
     @Test
     public void setTagsAndResults() throws Exception {
         contentService.setTags(getHash(), defaultContent.getStateToken(), "bfoo cfoa afoo2");
-        final List<TagResultDTO> summaryTags = contentService.getSummaryTags(getHash(), defaultContent.getStateToken());
-        assertEquals(3, summaryTags.size());
-
-        TagResultDTO tagResultDTO = summaryTags.get(0);
-        assertEquals("afoo2", tagResultDTO.getName());
-        assertEquals(1, (long) tagResultDTO.getCount());
-
-        tagResultDTO = summaryTags.get(1);
-        assertEquals("bfoo", tagResultDTO.getName());
-        assertEquals(1, (long) tagResultDTO.getCount());
-
-        tagResultDTO = summaryTags.get(2);
-        assertEquals("cfoa", tagResultDTO.getName());
-        assertEquals(1, (long) tagResultDTO.getCount());
+        TagCloudResultDTO cloudResultDTO = contentService.getSummaryTags(getHash(), defaultContent.getStateToken());
+        checkResult(cloudResultDTO);
+        checkResult(((StateContentDTO) contentService.getContent(getHash(), defaultContent.getStateToken())).getTagCloudResult());
     }
 
     @Test
@@ -213,4 +203,22 @@
         assertEquals(newTitle, folderAgain.getContainer().getName());
     }
 
+    private void checkResult(TagCloudResultDTO cloudResultDTO) {
+        assertNotNull(cloudResultDTO.getTagCountList());
+        List<TagCountDTO> summaryTags = cloudResultDTO.getTagCountList();
+        assertEquals(3, summaryTags.size());
+
+        TagCountDTO tagResultDTO = summaryTags.get(0);
+        assertEquals("afoo2", tagResultDTO.getName());
+        assertEquals(1, (long) tagResultDTO.getCount());
+
+        tagResultDTO = summaryTags.get(1);
+        assertEquals("bfoo", tagResultDTO.getName());
+        assertEquals(1, (long) tagResultDTO.getCount());
+
+        tagResultDTO = summaryTags.get(2);
+        assertEquals("cfoa", tagResultDTO.getName());
+        assertEquals(1, (long) tagResultDTO.getCount());
+    }
+
 }

Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/TagManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/TagManagerTest.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/TagManagerTest.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -20,6 +20,13 @@
     Tag tagFinder;
     private Tag tag;
 
+    @After
+    public void close() {
+        if (getTransaction().isActive()) {
+            getTransaction().rollback();
+        }
+    }
+
     @Before
     public void insertData() {
         openTransaction();
@@ -30,15 +37,6 @@
     @Test
     public void testTagCreation() {
         assertNotNull(tag.getId());
-        ;
-
         assertNotNull(tagFinder.findByTagName("foo1"));
     }
-
-    @After
-    public void close() {
-        if (getTransaction().isActive()) {
-            getTransaction().rollback();
-        }
-    }
 }

Modified: trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java	2008-11-19 22:51:48 UTC (rev 957)
+++ trunk/src/test/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPresenterTest.java	2008-11-20 02:28:23 UTC (rev 958)
@@ -6,7 +6,8 @@
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.ourproject.kune.platf.client.dto.StateContainerDTO;
-import org.ourproject.kune.platf.client.dto.TagResultDTO;
+import org.ourproject.kune.platf.client.dto.TagCloudResultDTO;
+import org.ourproject.kune.platf.client.dto.TagCountDTO;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.state.StateManager;
 import org.ourproject.kune.workspace.client.search.SiteSearcher;
@@ -43,8 +44,8 @@
     @Test
     public void withTagsViewFalse() {
         final StateContainerDTO state = new StateContainerDTO();
-        ArrayList<TagResultDTO> list = new ArrayList<TagResultDTO>();
-        state.setGroupTags(list);
+        ArrayList<TagCountDTO> list = new ArrayList<TagCountDTO>();
+        state.setTagCloudResult(new TagCloudResultDTO(list, 0, 0));
         tagsSummaryPresenter.setState(state);
         Mockito.verify(view).setVisible(false);
     }
@@ -52,9 +53,9 @@
     @Test
     public void withTagsViewVisible() {
         final StateContainerDTO state = new StateContainerDTO();
-        ArrayList<TagResultDTO> list = new ArrayList<TagResultDTO>();
-        list.add(new TagResultDTO("abc", 1L));
-        state.setGroupTags(list);
+        ArrayList<TagCountDTO> list = new ArrayList<TagCountDTO>();
+        list.add(new TagCountDTO("abc", 1L));
+        state.setTagCloudResult(new TagCloudResultDTO(list, 0, 0));
         tagsSummaryPresenter.setState(state);
         Mockito.verify(view).setVisible(true);
     }




More information about the kune-commits mailing list