kune-commits
Threads by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1587 discussions
27 Jul '08
Author: vjrj
Date: 2008-07-27 03:15:27 +0200 (Sun, 27 Jul 2008)
New Revision: 819
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateIt.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePresenter.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/chat/client/ChatClientNewModule.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java
trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java
Log:
Complete - task 17: Theme menus with colors and other themes
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-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-07-27 01:15:27 UTC (rev 819)
@@ -2934,9 +2934,25 @@
}
.k-entitytextlogo-green .gwt-Label {
+ color: #250;
+}
+
+.k-entitytextlogo-blue .gwt-Label {
color: #000080;
}
+.k-entitytextlogo-grey .gwt-Label {
+ color: #1A1A1A;
+}
+
+.k-entitytextlogo-purple .gwt-Label {
+ color: #440055;
+}
+
+.k-entitytextlogo-red .gwt-Label {
+ color: #800000;
+}
+
.k-entitytextlogo .gwt-Hyperlink a {
color: #CCC;
font-size: 85%;
@@ -2954,6 +2970,22 @@
background: #5FD35F none repeat scroll 0% 50%;
}
+.k-entity-blue .x-layout-split {
+ background: #0066FF none repeat scroll 0% 50%;
+}
+
+.k-entity-grey .x-layout-split {
+ background: #4D4D4D none repeat scroll 0% 50%;
+}
+
+.k-entity-purple .x-layout-split {
+ background: #660080 none repeat scroll 0% 50%;
+}
+
+.k-entity-red .x-layout-split {
+ background: #D40000 none repeat scroll 0% 50%;
+}
+
.k-entityworkspace .x-layout-split {
background: transparent none repeat scroll 0% 50%;
}
@@ -2966,6 +2998,22 @@
background: #DCE8AB none repeat scroll 0% 50%;
}
+.k-entityworkspace-blue .x-layout-split {
+ background: #D5D5FF none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-grey .x-layout-split {
+ background: #999999 none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-purple .x-layout-split {
+ background: #A793AC none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-red .x-layout-split {
+ background: #FF5555 none repeat scroll 0% 50%;
+}
+
.k-entity-title {
border-left-style: solid;
border-left-width: 2px;
@@ -2992,48 +3040,148 @@
background: #5FD35F;
}
+.k-entity-title-rd-blue {
+ background: #0066FF;
+}
+
+.k-entity-title-rd-grey {
+ background: #4D4D4D;
+}
+
+.k-entity-title-rd-purple {
+ background: #660080;
+}
+
+.k-entity-title-rd-red {
+ background: #D40000;
+}
+
.k-entity-title-def {
background: #F1BB59 none repeat scroll 0% 50%;
border-left-color: #DD8A3D;
}
-.k-entity-title-def div {
- color: #69312F;
-}
-
.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: #0066FF;
+}
+
+.k-entity-title-grey {
+ background: #CCCCCC 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-def div {
+ color: #69312F;
+}
+
.k-entity-title-green div {
color: #250;
}
+.k-entity-title-blue div {
+ color: #000080;
+}
+
+.k-entity-title-grey div {
+ color: #1A1A1A;
+}
+
+.k-entity-title-purple div {
+ color: #440055;
+}
+
+.k-entity-title-red div {
+ color: #800000;
+}
+
.k-entity-subtitle-def {
background: #DD8A3D none repeat scroll 0% 50%;
}
+.k-entity-subtitle-green {
+ background: #5FD35F none repeat scroll 0% 50%;
+}
+
+.k-entity-subtitle-blue {
+ background: #0066FF 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-def div {
color: #FFF;
}
-.k-entity-subtitle-green {
- background: #5FD35F none repeat scroll 0% 50%;
+.k-entity-subtitle-green div {
+ color: #FFF;
}
-.k-entity-subtitle-green div {
+.k-entity-subtitle-blue div {
color: #FFF;
}
-.k-entity-bottom-rd-def {
+.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-def, .k-entity-bottom-def {
background: #DD8A3D;
}
-.k-entity-bottom-rd-green {
+.k-entity-bottom-rd-green, .k-entity-bottom-green {
background: #5FD35F;
}
+.k-entity-bottom-rd-blue, .k-entity-bottom-blue {
+ background: #0066FF;
+}
+
+.k-entity-bottom-rd-grey, .k-entity-bottom-grey {
+ background: #4D4D4D;
+}
+
+.k-entity-bottom-rd-purple, .k-entity-bottom-purple {
+ background: #660080;
+}
+
+.k-entity-bottom-rd-red, .k-entity-bottom-red {
+ background: #D40000;
+}
+
.k-entitylicensepanel-licensetext {
cursor: pointer;
margin-left: 5px;
@@ -3048,23 +3196,24 @@
background: #CFA none repeat scroll 0% 50%;
}
-.k-entity-bottom div {
- line-height: 2em;
+.k-entity-container-blue div {
+ background: #AACCFF none repeat scroll 0% 50%;
}
-.k-entity-bottom-def {
- background: #DD8A3D;
+.k-entity-container-grey div {
+ background: #B3B3B3 none repeat scroll 0% 50%;
}
-.k-entity-bottom-def div {
- color: #FFF;
+.k-entity-container-purple div {
+ background: #DDAFE9 none repeat scroll 0% 50%;
}
-.k-entity-bottom-green {
- background: #5FD35F;
+.k-entity-container-red div {
+ background: #FFAAAA none repeat scroll 0% 50%;
}
-.k-entity-bottom-green div {
+.k-entity-bottom div {
+ line-height: 2em;
color: #FFF;
}
@@ -3089,9 +3238,7 @@
.k-toolbar-sep {
padding-top: 4px;
}
-
/* Custom gwt-ext styles */
-
.ytb-sep {
background-image: url(../js/ext/resources/images/default/grid/grid-split.gif);
background-position: center;
@@ -3115,11 +3262,9 @@
cursor: pointer;
padding-top: 3px;
}
-
/* Drop down */
-
.k-dropdownouter {
- background-color: gray;
+ background-color: grey;
}
.k-dropdownouter-members {
@@ -3133,6 +3278,22 @@
background-color: #008000;
}
+.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 {
}
@@ -3144,6 +3305,22 @@
background-color: #00AA00;
}
+.k-dropdownouter-part-blue {
+ background-color: #6600FF;
+}
+
+.k-dropdownouter-part-grey {
+ background-color: #666666;
+}
+
+.k-dropdownouter-part-purple {
+ background-color: #892CA0;
+}
+
+.k-dropdownouter-part-red {
+ background-color: #C83737;
+}
+
.k-dropdownouter-tags {
}
@@ -3155,6 +3332,22 @@
background-color: #00D400;
}
+.k-dropdownouter-tags-blue {
+ background-color: #9955FF;
+}
+
+.k-dropdownouter-tags-grey {
+ background-color: #808080;
+}
+
+.k-dropdownouter-tags-purple {
+ background-color: #AB37C8;
+}
+
+.k-dropdownouter-tags-red {
+ background-color: #D35F5F;
+}
+
.k-dropdownouter-summary {
}
@@ -3166,6 +3359,22 @@
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 3px;
background: green;
@@ -3186,5 +3395,28 @@
.k-dropdownlabel img {
margin: 0 3px 0 1px;
}
+/* WsTheme */
+.k-wstheme-icon-def {
+ 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;
+}
+
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-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-07-27 01:15:27 UTC (rev 819)
@@ -76,9 +76,25 @@
}
.k-entitytextlogo-green .gwt-Label {
+ color: #250;
+}
+
+.k-entitytextlogo-blue .gwt-Label {
color: #000080;
}
+.k-entitytextlogo-grey .gwt-Label {
+ color: #1A1A1A;
+}
+
+.k-entitytextlogo-purple .gwt-Label {
+ color: #440055;
+}
+
+.k-entitytextlogo-red .gwt-Label {
+ color: #800000;
+}
+
.k-entitytextlogo .gwt-Hyperlink a {
color: #CCC;
font-size: 85%;
@@ -96,6 +112,22 @@
background: #5FD35F none repeat scroll 0% 50%;
}
+.k-entity-blue .x-layout-split {
+ background: #0066FF none repeat scroll 0% 50%;
+}
+
+.k-entity-grey .x-layout-split {
+ background: #4D4D4D none repeat scroll 0% 50%;
+}
+
+.k-entity-purple .x-layout-split {
+ background: #660080 none repeat scroll 0% 50%;
+}
+
+.k-entity-red .x-layout-split {
+ background: #D40000 none repeat scroll 0% 50%;
+}
+
.k-entityworkspace .x-layout-split {
background: transparent none repeat scroll 0% 50%;
}
@@ -108,6 +140,22 @@
background: #DCE8AB none repeat scroll 0% 50%;
}
+.k-entityworkspace-blue .x-layout-split {
+ background: #D5D5FF none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-grey .x-layout-split {
+ background: #999999 none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-purple .x-layout-split {
+ background: #A793AC none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-red .x-layout-split {
+ background: #FF5555 none repeat scroll 0% 50%;
+}
+
.k-entity-title {
border-left-style: solid;
border-left-width: 2px;
@@ -134,48 +182,148 @@
background: #5FD35F;
}
+.k-entity-title-rd-blue {
+ background: #0066FF;
+}
+
+.k-entity-title-rd-grey {
+ background: #4D4D4D;
+}
+
+.k-entity-title-rd-purple {
+ background: #660080;
+}
+
+.k-entity-title-rd-red {
+ background: #D40000;
+}
+
.k-entity-title-def {
background: #F1BB59 none repeat scroll 0% 50%;
border-left-color: #DD8A3D;
}
-.k-entity-title-def div {
- color: #69312F;
-}
-
.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: #0066FF;
+}
+
+.k-entity-title-grey {
+ background: #CCCCCC 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-def div {
+ color: #69312F;
+}
+
.k-entity-title-green div {
color: #250;
}
+.k-entity-title-blue div {
+ color: #000080;
+}
+
+.k-entity-title-grey div {
+ color: #1A1A1A;
+}
+
+.k-entity-title-purple div {
+ color: #440055;
+}
+
+.k-entity-title-red div {
+ color: #800000;
+}
+
.k-entity-subtitle-def {
background: #DD8A3D none repeat scroll 0% 50%;
}
+.k-entity-subtitle-green {
+ background: #5FD35F none repeat scroll 0% 50%;
+}
+
+.k-entity-subtitle-blue {
+ background: #0066FF 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-def div {
color: #FFF;
}
-.k-entity-subtitle-green {
- background: #5FD35F none repeat scroll 0% 50%;
+.k-entity-subtitle-green div {
+ color: #FFF;
}
-.k-entity-subtitle-green div {
+.k-entity-subtitle-blue div {
color: #FFF;
}
-.k-entity-bottom-rd-def {
+.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-def, .k-entity-bottom-def {
background: #DD8A3D;
}
-.k-entity-bottom-rd-green {
+.k-entity-bottom-rd-green, .k-entity-bottom-green {
background: #5FD35F;
}
+.k-entity-bottom-rd-blue, .k-entity-bottom-blue {
+ background: #0066FF;
+}
+
+.k-entity-bottom-rd-grey, .k-entity-bottom-grey {
+ background: #4D4D4D;
+}
+
+.k-entity-bottom-rd-purple, .k-entity-bottom-purple {
+ background: #660080;
+}
+
+.k-entity-bottom-rd-red, .k-entity-bottom-red {
+ background: #D40000;
+}
+
.k-entitylicensepanel-licensetext {
cursor: pointer;
margin-left: 5px;
@@ -190,23 +338,24 @@
background: #CFA none repeat scroll 0% 50%;
}
-.k-entity-bottom div {
- line-height: 2em;
+.k-entity-container-blue div {
+ background: #AACCFF none repeat scroll 0% 50%;
}
-.k-entity-bottom-def {
- background: #DD8A3D;
+.k-entity-container-grey div {
+ background: #B3B3B3 none repeat scroll 0% 50%;
}
-.k-entity-bottom-def div {
- color: #FFF;
+.k-entity-container-purple div {
+ background: #DDAFE9 none repeat scroll 0% 50%;
}
-.k-entity-bottom-green {
- background: #5FD35F;
+.k-entity-container-red div {
+ background: #FFAAAA none repeat scroll 0% 50%;
}
-.k-entity-bottom-green div {
+.k-entity-bottom div {
+ line-height: 2em;
color: #FFF;
}
@@ -231,9 +380,7 @@
.k-toolbar-sep {
padding-top: 4px;
}
-
/* Custom gwt-ext styles */
-
.ytb-sep {
background-image: url(../js/ext/resources/images/default/grid/grid-split.gif);
background-position: center;
@@ -257,11 +404,9 @@
cursor: pointer;
padding-top: 3px;
}
-
/* Drop down */
-
.k-dropdownouter {
- background-color: gray;
+ background-color: grey;
}
.k-dropdownouter-members {
@@ -275,6 +420,22 @@
background-color: #008000;
}
+.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 {
}
@@ -286,6 +447,22 @@
background-color: #00AA00;
}
+.k-dropdownouter-part-blue {
+ background-color: #6600FF;
+}
+
+.k-dropdownouter-part-grey {
+ background-color: #666666;
+}
+
+.k-dropdownouter-part-purple {
+ background-color: #892CA0;
+}
+
+.k-dropdownouter-part-red {
+ background-color: #C83737;
+}
+
.k-dropdownouter-tags {
}
@@ -297,6 +474,22 @@
background-color: #00D400;
}
+.k-dropdownouter-tags-blue {
+ background-color: #9955FF;
+}
+
+.k-dropdownouter-tags-grey {
+ background-color: #808080;
+}
+
+.k-dropdownouter-tags-purple {
+ background-color: #AB37C8;
+}
+
+.k-dropdownouter-tags-red {
+ background-color: #D35F5F;
+}
+
.k-dropdownouter-summary {
}
@@ -308,6 +501,22 @@
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 3px;
background: green;
@@ -328,3 +537,27 @@
.k-dropdownlabel img {
margin: 0 3px 0 1px;
}
+/* WsTheme */
+.k-wstheme-icon-def {
+ 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;
+}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java 2008-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -6,6 +6,7 @@
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
import com.calclab.emiteuimodule.client.EmiteUIDialog;
import com.calclab.suco.client.container.Container;
@@ -28,7 +29,7 @@
public ChatClientTool get() {
return new ChatClientTool(builder.getInstance(Session.class), builder.getInstance(Application.class),
builder.getInstance(I18nUITranslationService.class), builder.getInstance(EmiteUIDialog.class),
- builder.getInstance(WorkspaceSkeleton.class));
+ builder.getInstance(WorkspaceSkeleton.class), builder.getProvider(GroupMembersSummary.class));
}
}, SingletonScope.class);
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2008-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -21,16 +21,21 @@
package org.ourproject.kune.chat.client;
import org.ourproject.kune.platf.client.app.Application;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.tool.AbstractClientTool;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuItem;
import org.ourproject.kune.workspace.client.component.WorkspaceComponent;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
+import com.calclab.emite.client.xmpp.stanzas.XmppURI;
import com.calclab.emiteuimodule.client.EmiteUIDialog;
+import com.calclab.suco.client.container.Provider;
import com.calclab.suco.client.signal.Slot;
public class ChatClientTool extends AbstractClientTool implements ChatProvider {
@@ -42,7 +47,8 @@
private ChatEngine chat;
public ChatClientTool(final Session session, final Application application, final I18nTranslationService i18n,
- final EmiteUIDialog emiteUIDialog, final WorkspaceSkeleton ws) {
+ final EmiteUIDialog emiteUIDialog, final WorkspaceSkeleton ws,
+ final Provider<GroupMembersSummary> groupMembersSummaryProvider) {
super(i18n.t("chat rooms"));
components = new ChatToolComponents(emiteUIDialog, i18n);
session.onInitDataReceived(new Slot<InitDataDTO>() {
@@ -50,6 +56,15 @@
final ChatOptions chatOptions = new ChatOptions(initData.getChatHttpBase(), initData.getChatDomain(),
initData.getChatRoomHost());
chat = new ChatEngineXmpp(emiteUIDialog, chatOptions, i18n, ws);
+ groupMembersSummaryProvider.get().addGroupOperation(
+ new GridMenuItem<GroupDTO>("images/chat-basic.gif", i18n.t("Start a chat with this member"),
+ new Slot<GroupDTO>() {
+ public void onEvent(final GroupDTO group) {
+ emiteUIDialog.chat(XmppURI.jid(group.getShortName() + "@"
+ + initData.getChatDomain()));
+ emiteUIDialog.show();
+ }
+ }), true);
}
});
application.onApplicationStop(new Slot<Object>() {
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -119,7 +119,6 @@
public void onFailure(final Throwable error) {
Site.error("Error fetching initial data");
Log.debug(error.getMessage());
- ws.unMask();
}
public void onSuccess(final InitDataDTO initData) {
@@ -127,7 +126,6 @@
session.setInitData(initData);
session.setCurrentUserInfo(initData.getUserInfo());
stateManager.reload();
- ws.unMask();
}
private void checkChatDomain(final String chatDomain) {
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -33,6 +33,7 @@
import org.ourproject.kune.workspace.client.sitebar.Site;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
+import com.allen_sauer.gwt.log.client.Log;
import com.calclab.suco.client.container.Provider;
import com.calclab.suco.client.signal.Signal;
import com.calclab.suco.client.signal.Slot;
@@ -65,31 +66,40 @@
try {
throw caught;
} catch (final AccessViolationException e) {
+ logException(e);
Site.error(i18n.t("You don't have rights to do that"));
} catch (final SessionExpiredException e) {
+ logException(e);
doSessionExpired();
} catch (final UserMustBeLoggedException e) {
+ logException(e);
if (session.isLogged()) {
doSessionExpired();
} else {
Site.important(i18n.t("Please sign in or register to collaborate"));
}
} catch (final GroupNotFoundException e) {
+ logException(e);
Site.error(i18n.t("Group not found"));
DefaultDispatcher.getInstance().fire(PlatformEvents.GOTO, "");
} catch (final ContentNotFoundException e) {
+ logException(e);
Site.error(i18n.t("Content not found"));
DefaultDispatcher.getInstance().fire(PlatformEvents.GOTO, "");
} catch (final LastAdminInGroupException e) {
+ logException(e);
getWorkspaceSkeleton().showAlertMessage(
i18n.t("Warning"),
i18n.t("Sorry, you are the last admin of this group."
+ " Look for someone to substitute you appropriately as admin before unjoin this group."));
} catch (final AlreadyGroupMemberException e) {
+ logException(e);
Site.error(i18n.t("This group is already a group member"));
} catch (final AlreadyUserMemberException e) {
+ logException(e);
Site.error(i18n.t("This user is already a member of this group"));
} catch (final Throwable e) {
+ logException(e);
Site.error(i18n.t("Error performing operation"));
GWT.log("Other kind of exception in StateManagerDefault/processErrorException", null);
throw new RuntimeException();
@@ -102,4 +112,8 @@
i18n.t("Your session has expired. Please login again."));
}
+ private void logException(final Throwable e) {
+ Log.debug("Exception in KuneErrorHandler", e);
+ }
+
}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateIt.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateIt.java 2008-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateIt.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -0,0 +1,11 @@
+package org.ourproject.kune.platf.client.ui.rate;
+
+import org.ourproject.kune.platf.client.dto.StateDTO;
+
+public interface RateIt {
+
+ void setState(StateDTO state);
+
+ void setVisible(boolean visible);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePresenter.java 2008-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePresenter.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -0,0 +1,30 @@
+package org.ourproject.kune.platf.client.ui.rate;
+
+import org.ourproject.kune.platf.client.dto.StateDTO;
+
+public class RatePresenter {
+
+ private RateView view;
+
+ public RatePresenter() {
+ }
+
+ public void init(final RateView view) {
+ this.view = view;
+ }
+
+ public void setState(final StateDTO state) {
+ if (state.isRateable()) {
+ view.setVisible(true);
+ view.setRate(state.getRate());
+ view.setByUsers(state.getRateByUsers());
+ } else {
+ view.setVisible(false);
+ }
+
+ }
+
+ public void setVisible(final boolean visible) {
+ view.setVisible(visible);
+ }
+}
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-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -59,6 +59,7 @@
addStyleName("kune-Margin-Medium-t");
flowPanel.addStyleName("kune-Margin-Small-trbl");
ws.getEntitySummary().addInSummary(this);
+ ws.unMask();
}
public void setTags(final List<TagResultDTO> groupTags) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java 2008-07-26 20:07:21 UTC (rev 818)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java 2008-07-27 01:15:27 UTC (rev 819)
@@ -15,10 +15,12 @@
private final Menu menu;
private final WsThemePresenter presenter;
+ private final I18nUITranslationService i18n;
public WsThemePanel(final WorkspaceSkeleton ws, final WsThemePresenter presenter,
final I18nUITranslationService i18n) {
this.presenter = presenter;
+ this.i18n = i18n;
menu = new Menu();
menu.setDefaultAlign("br-tr");
@@ -37,7 +39,10 @@
for (int i = 0; i < themes.length; i++) {
final WsTheme theme = new WsTheme(themes[i]);
final MenuItem item = new MenuItem();
- item.setText(theme.toString());
+ final String name = theme.getName();
+ final String itemText = name.equals("def") ? i18n.t("default") : i18n.t(name);
+ item.setIconCls("k-wstheme-icon-" + name);
+ item.setText(itemText);
menu.addItem(item);
item.addListener(new BaseItemListenerAdapter() {
@Override
1
0
Author: vjrj
Date: 2008-07-26 22:07:21 +0200 (Sat, 26 Jul 2008)
New Revision: 818
Removed:
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/DisableRateItAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/EnableRateItAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/RateContentAction.java
Modified:
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPresenter.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItView.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/ContentBottomToolBarPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java
trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java
Log:
Rate widgets refactorization
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -5,6 +5,7 @@
import org.ourproject.kune.platf.client.app.Application;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.rate.RateIt;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.workspace.TagsSummary;
@@ -29,7 +30,7 @@
public DocumentFactory get() {
return new DocumentFactory(builder.getInstance(I18nUITranslationService.class), builder
.getInstance(Session.class), builder.getProvider(TagsSummary.class), builder
- .getInstance(WorkspaceSkeleton.class));
+ .getInstance(WorkspaceSkeleton.class), builder.getInstance(RateIt.class));
}
}, SingletonScope.class);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -36,6 +36,7 @@
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetId;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.ui.rate.RateIt;
import org.ourproject.kune.workspace.client.WorkspaceEvents;
import org.ourproject.kune.workspace.client.component.WorkspaceDeckView;
import org.ourproject.kune.workspace.client.editor.TextEditor;
@@ -49,12 +50,14 @@
private final DocumentReader reader;
private final DocumentReaderControl readerControl;
private final Session session;
+ private final RateIt rateIt;
public DocumentContentPresenter(final DocumentFactory documentFactory, final DocumentContentListener listener,
- final WorkspaceDeckView view, final Session session) {
+ final WorkspaceDeckView view, final Session session, final RateIt rateIt) {
this.listener = listener;
this.view = view;
this.session = session;
+ this.rateIt = rateIt;
this.components = new DocumentContentComponents(documentFactory, this);
reader = components.getDocumentReader();
readerControl = components.getDocumentReaderControl();
@@ -74,7 +77,7 @@
showContent();
listener.onCancel();
// Re-enable rateIt widget
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.ENABLE_RATEIT, null);
+ rateIt.setVisible(true);
}
public void onDelete() {
@@ -86,7 +89,7 @@
public void onSuccess(final Object result) {
if (content.hasDocument()) {
// Don't permit rate content while your are editing
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.DISABLE_RATEIT, null);
+ rateIt.setVisible(false);
final TextEditor editor = components.getDocumentEditor();
editor.setContent(content.getContent());
view.show(editor.getView());
@@ -109,7 +112,7 @@
content.setContent(text);
DefaultDispatcher.getInstance().fire(DocsEvents.SAVE_DOCUMENT, new SaveDocumentActionParams(content, this));
// Re-enable rateIt widget
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.ENABLE_RATEIT, null);
+ rateIt.setVisible(true);
DefaultDispatcher.getInstance().fire(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, null);
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -49,6 +49,7 @@
import org.ourproject.kune.docs.client.ctx.folder.FolderContextPresenter;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.ui.rate.RateIt;
import org.ourproject.kune.workspace.client.WorkspaceFactory;
import org.ourproject.kune.workspace.client.component.WorkspaceDeckPanel;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItems;
@@ -63,13 +64,15 @@
private final Session session;
private final Provider<TagsSummary> tagsSummaryProvider;
private final WorkspaceSkeleton ws;
+ private final RateIt rateIt;
public DocumentFactory(final I18nTranslationService i18n, final Session session,
- final Provider<TagsSummary> tagsSummaryProvider, final WorkspaceSkeleton ws) {
+ final Provider<TagsSummary> tagsSummaryProvider, final WorkspaceSkeleton ws, final RateIt rateIt) {
this.i18n = i18n;
this.session = session;
this.tagsSummaryProvider = tagsSummaryProvider;
this.ws = ws;
+ this.rateIt = rateIt;
}
public AdminContext createAdminContext() {
@@ -81,7 +84,7 @@
public DocumentContent createDocumentContent(final DocumentContentListener listener) {
final WorkspaceDeckPanel panel = new WorkspaceDeckPanel();
- final DocumentContentPresenter presenter = new DocumentContentPresenter(this, listener, panel, session);
+ final DocumentContentPresenter presenter = new DocumentContentPresenter(this, listener, panel, session, rateIt);
return presenter;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -11,6 +11,7 @@
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.rpc.ContentService;
+import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
import org.ourproject.kune.platf.client.rpc.GroupService;
import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
@@ -20,6 +21,11 @@
import org.ourproject.kune.platf.client.state.SessionImpl;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.state.StateManagerDefault;
+import org.ourproject.kune.platf.client.ui.rate.RateIt;
+import org.ourproject.kune.platf.client.ui.rate.RateItPanel;
+import org.ourproject.kune.platf.client.ui.rate.RateItPresenter;
+import org.ourproject.kune.platf.client.ui.rate.RatePanel;
+import org.ourproject.kune.platf.client.ui.rate.RatePresenter;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoose;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePanel;
@@ -169,6 +175,12 @@
}
}, SingletonScope.class);
+ builder.registerProvider(ContentServiceAsync.class, new Provider<ContentServiceAsync>() {
+ public ContentServiceAsync get() {
+ return ContentService.App.getInstance();
+ }
+ }, SingletonScope.class);
+
builder.registerProvider(Session.class, new Provider<Session>() {
public Session get() {
return new SessionImpl(Cookies.getCookie(Site.USERHASH), initialLang, p(UserServiceAsync.class));
@@ -405,12 +417,32 @@
}
}, SingletonScope.class);
+ builder.registerProvider(RatePresenter.class, new Provider<RatePresenter>() {
+ public RatePresenter get() {
+ final RatePresenter presenter = new RatePresenter();
+ final RatePanel panel = new RatePanel(null, null, i18n, ws);
+ presenter.init(panel);
+ return presenter;
+ }
+ }, SingletonScope.class);
+
+ builder.registerProvider(RateIt.class, new Provider<RateIt>() {
+ public RateIt get() {
+ final RateItPresenter presenter = new RateItPresenter(i18n, i(Session.class),
+ p(ContentServiceAsync.class), p(StateManager.class));
+ final RateItPanel panel = new RateItPanel(presenter, i18n, ws);
+ presenter.init(panel);
+ return presenter;
+ }
+ }, SingletonScope.class);
+
builder.registerProvider(WorkspaceManager.class, new Provider<WorkspaceManager>() {
public WorkspaceManager get() {
final WorkspaceManager presenter = new WorkspaceManager(i(SitePublicSpaceLink.class),
i(EntityLogo.class), i(EntityTitlePresenter.class), i(EntitySubTitlePresenter.class),
i(WsThemePresenter.class), i(EntityLicensePresenter.class), p(GroupMembersSummary.class),
- p(ParticipationSummary.class), p(TagsSummary.class), p(GroupSummary.class));
+ p(ParticipationSummary.class), p(TagsSummary.class), p(GroupSummary.class), i(RateIt.class),
+ i(RatePresenter.class));
return presenter;
}
}, SingletonScope.class);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -371,6 +371,8 @@
});
grid.stripeRows(true);
grid.setHideColumnHeader(true);
+ // Not sure if when doLayoutIfNeeded there are problems with size and
+ // column header
grid.setBorder(false);
grid.setAutoScroll(true);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPanel.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPanel.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -21,6 +21,7 @@
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.Images;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
@@ -39,90 +40,91 @@
private Label rateItLabel;
private final I18nTranslationService i18n;
- public RateItPanel(final RateItPresenter presenter, final I18nTranslationService i18n) {
- this.presenter = presenter;
- this.i18n = i18n;
- initialize();
- layout();
- setProperties();
+ public RateItPanel(final RateItPresenter presenter, final I18nTranslationService i18n, final WorkspaceSkeleton ws) {
+ this.presenter = presenter;
+ this.i18n = i18n;
+ initialize();
+ layout();
+ setProperties();
+ ws.getEntityWorkspace().getContentBottomBar().add(this);
}
public void clearRate() {
- for (int i = 0; i < 5; i++) {
- img.starGrey().applyTo(starImg[i]);
- }
+ for (int i = 0; i < 5; i++) {
+ img.starGrey().applyTo(starImg[i]);
+ }
}
public void onClick(final Widget sender) {
- for (int i = 0; i < 5; i++) {
- if (sender == starImg[i]) {
- presenter.starClicked(i);
- }
- }
+ for (int i = 0; i < 5; i++) {
+ if (sender == starImg[i]) {
+ presenter.starClicked(i);
+ }
+ }
}
public void setDesc(final String desc) {
- rateDesc.setText(desc);
+ rateDesc.setText(desc);
}
public void setRate(final Star stars[]) {
- for (int i = 0; i < 5; i++) {
- stars[i].getImage().applyTo(starImg[i]);
- }
+ for (int i = 0; i < 5; i++) {
+ stars[i].getImage().applyTo(starImg[i]);
+ }
}
public void setStars(final Double rate) {
- setRate(Star.genStars(rate.doubleValue()));
+ setRate(Star.genStars(rate.doubleValue()));
}
private void initialize() {
- rateItLabel = new Label(i18n.t("Rate it:"));
- rateGrid = new Grid(1, 7);
- starImg = new Image[5];
- rateDesc = new Label();
- for (int i = 0; i < 5; i++) {
- starImg[i] = new Image();
- img.starGrey().applyTo(starImg[i]);
- starImg[i].addStyleName("rateit-star");
- starImg[i].setStyleName("rateit-star");
- starImg[i].setTitle(i18n.t("Click to rate this"));
- starImg[i].addClickListener(this);
- starImg[i].addMouseListener(new MouseListenerAdapter() {
- public void onMouseEnter(final Widget sender) {
- for (int j = 0; j < 5; j++) {
- if (sender == starImg[j]) {
- presenter.starOver(j);
- }
- }
+ rateItLabel = new Label(i18n.t("Rate it:"));
+ rateGrid = new Grid(1, 7);
+ starImg = new Image[5];
+ rateDesc = new Label();
+ for (int i = 0; i < 5; i++) {
+ starImg[i] = new Image();
+ img.starGrey().applyTo(starImg[i]);
+ starImg[i].addStyleName("rateit-star");
+ starImg[i].setStyleName("rateit-star");
+ starImg[i].setTitle(i18n.t("Click to rate this"));
+ starImg[i].addClickListener(this);
+ starImg[i].addMouseListener(new MouseListenerAdapter() {
+ public void onMouseEnter(final Widget sender) {
+ for (int j = 0; j < 5; j++) {
+ if (sender == starImg[j]) {
+ presenter.starOver(j);
+ }
+ }
- }
+ }
- public void onMouseLeave(final Widget sender) {
- presenter.revertCurrentRate();
- }
- });
- }
+ public void onMouseLeave(final Widget sender) {
+ presenter.revertCurrentRate();
+ }
+ });
+ }
}
private void layout() {
- initWidget(rateGrid);
- rateGrid.setWidget(0, 0, rateItLabel);
- for (int i = 0; i < 5; i++) {
- rateGrid.setWidget(0, i + 1, starImg[i]);
- }
- rateGrid.setWidget(0, 6, rateDesc);
+ initWidget(rateGrid);
+ rateGrid.setWidget(0, 0, rateItLabel);
+ for (int i = 0; i < 5; i++) {
+ rateGrid.setWidget(0, i + 1, starImg[i]);
+ }
+ rateGrid.setWidget(0, 6, rateDesc);
}
private void setProperties() {
- rateGrid.setCellPadding(0);
- rateGrid.setCellSpacing(0);
- rateGrid.setBorderWidth(0);
- rateItLabel.addStyleName("kune-Margin-Medium-r");
- rateItLabel.addStyleName("kune-Margin-Medium-l");
- rateItLabel.addStyleName("kune-RatePanel-Label");
- rateGrid.addStyleName("kune-RatePanel-Stars");
- rateGrid.addStyleName("kune-RatePanel-Stars-RateIt");
- rateDesc.addStyleName("kune-RatePanel-Label");
- rateDesc.addStyleName("kune-Margin-Medium-l");
+ rateGrid.setCellPadding(0);
+ rateGrid.setCellSpacing(0);
+ rateGrid.setBorderWidth(0);
+ rateItLabel.addStyleName("kune-Margin-Medium-r");
+ rateItLabel.addStyleName("kune-Margin-Medium-l");
+ rateItLabel.addStyleName("kune-RatePanel-Label");
+ rateGrid.addStyleName("kune-RatePanel-Stars");
+ rateGrid.addStyleName("kune-RatePanel-Stars-RateIt");
+ rateDesc.addStyleName("kune-RatePanel-Label");
+ rateDesc.addStyleName("kune-Margin-Medium-l");
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPresenter.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItPresenter.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -19,93 +19,125 @@
*/
package org.ourproject.kune.platf.client.ui.rate;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
+import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.sitebar.Site;
-public class RateItPresenter {
+import com.calclab.suco.client.container.Provider;
+public class RateItPresenter implements RateIt {
+
private static final Double NOT_RATED = new Double(-1);
-
private RateItView view;
-
private Double currentRate;
-
private boolean isRating;
-
private final I18nTranslationService i18n;
+ private final Provider<ContentServiceAsync> contentServiceProvider;
+ private final Session session;
+ private final Provider<StateManager> stateManagerProvider;
- public RateItPresenter(final I18nTranslationService i18n) {
- this.i18n = i18n;
+ public RateItPresenter(final I18nTranslationService i18n, final Session session,
+ final Provider<ContentServiceAsync> contentServiceProvider,
+ final Provider<StateManager> stateManagerProvider) {
+ this.i18n = i18n;
+ this.session = session;
+ this.contentServiceProvider = contentServiceProvider;
+ this.stateManagerProvider = stateManagerProvider;
}
public void init(final RateItView view) {
- this.view = view;
- currentRate = NOT_RATED;
- isRating = false;
+ this.view = view;
+ currentRate = NOT_RATED;
+ isRating = false;
}
public void setRate(final Double value) {
- currentRate = value;
- if (currentRate == null) {
- currentRate = NOT_RATED;
- }
- isRating = false;
- setRatePanel(currentRate);
+ currentRate = value;
+ if (currentRate == null) {
+ currentRate = NOT_RATED;
+ }
+ isRating = false;
+ setRatePanel(currentRate);
}
+ public void setState(final StateDTO state) {
+ if (state.isRateable()) {
+ if (session.isLogged()) {
+ setRate(state.getCurrentUserRate());
+ view.setVisible(true);
+ } else {
+ view.setVisible(false);
+ }
+ } else {
+ view.setVisible(false);
+ }
+ }
+
+ public void setVisible(final boolean visible) {
+ view.setVisible(visible);
+ }
+
protected void revertCurrentRate() {
- if (!isRating) {
- setRatePanel(currentRate);
- }
+ if (!isRating) {
+ setRatePanel(currentRate);
+ }
}
protected void starClicked(final int starClicked) {
- isRating = true;
- Double newValue = new Double(starClicked + 1);
- if (Math.ceil(currentRate.doubleValue()) == newValue.doubleValue()) {
- // Same star, rest 1/2
- newValue = new Double(currentRate.doubleValue() - 0.5);
- }
- setRatePanel(newValue);
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.RATE_CONTENT, newValue);
+ isRating = true;
+ final Double newValue = starClicked + 1d == currentRate ? currentRate - 0.5d : starClicked + 1d;
+ setRatePanel(newValue);
+ Site.showProgressProcessing();
+ final StateDTO currentState = session.getCurrentState();
+ contentServiceProvider.get().rateContent(session.getUserHash(), currentState.getGroup().getShortName(),
+ currentState.getDocumentId(), newValue, new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ Site.hideProgress();
+ Site.info(i18n.t("Content rated"));
+ stateManagerProvider.get().reload();
+ }
+ });
}
protected void starOver(final int starMouseOver) {
- Double value = new Double(starMouseOver + 1);
- if (Math.ceil(currentRate.doubleValue()) == value.doubleValue()) {
- // use user already rated -> live same value when mouse is over
- value = currentRate;
- }
- if (!isRating) {
- // If we are not doing a rate rpc call
- setRatePanel(value);
- }
+ Double value = new Double(starMouseOver + 1);
+ if (Math.ceil(currentRate.doubleValue()) == value.doubleValue()) {
+ // use user already rated -> live same value when mouse is over
+ value = currentRate;
+ }
+ if (!isRating) {
+ // If we are not doing a rate rpc call
+ setRatePanel(value);
+ }
}
private void setDesc(final int rateTruncated) {
- if (rateTruncated >= 0 && rateTruncated <= 1) {
- view.setDesc(i18n.t("Poor"));
- } else if (rateTruncated == 2) {
- view.setDesc(i18n.t("Below average"));
- } else if (rateTruncated == 3) {
- view.setDesc(i18n.t("Average"));
- } else if (rateTruncated == 4) {
- view.setDesc(i18n.t("Above average"));
- } else if (rateTruncated == 5) {
- view.setDesc(i18n.t("Excellent"));
- } else {
- view.setDesc("");
- }
+ if (rateTruncated >= 0 && rateTruncated <= 1) {
+ view.setDesc(i18n.t("Poor"));
+ } else if (rateTruncated == 2) {
+ view.setDesc(i18n.t("Below average"));
+ } else if (rateTruncated == 3) {
+ view.setDesc(i18n.t("Average"));
+ } else if (rateTruncated == 4) {
+ view.setDesc(i18n.t("Above average"));
+ } else if (rateTruncated == 5) {
+ view.setDesc(i18n.t("Excellent"));
+ } else {
+ view.setDesc("");
+ }
}
private void setRatePanel(final Double value) {
- if (value.equals(NOT_RATED)) {
- view.clearRate();
- view.setDesc("");
- } else {
- view.setStars(value);
- setDesc((int) Math.ceil(value.doubleValue()));
- }
+ if (value.equals(NOT_RATED)) {
+ view.clearRate();
+ view.setDesc("");
+ } else {
+ view.setStars(value);
+ setDesc((int) Math.ceil(value.doubleValue()));
+ }
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItView.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateItView.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -21,10 +21,12 @@
public interface RateItView {
- void setStars(Double value);
-
void clearRate();
void setDesc(String desc);
+ void setStars(Double value);
+
+ void setVisible(boolean visible);
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePanel.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RatePanel.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -20,6 +20,8 @@
package org.ourproject.kune.platf.client.ui.rate;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.Toolbar;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Grid;
@@ -32,65 +34,69 @@
private Label rateDesc;
private final I18nTranslationService i18n;
- public RatePanel(final Double rate, final Integer byUsers, final I18nTranslationService i18n) {
- this.i18n = i18n;
- initialize();
- layout();
- setProperties();
- if (rate != null) {
- setRate(rate);
- }
- if (byUsers != null) {
- setByUsers(byUsers);
- }
+ public RatePanel(final Double rate, final Integer byUsers, final I18nTranslationService i18n,
+ final WorkspaceSkeleton ws) {
+ this.i18n = i18n;
+ initialize();
+ layout();
+ setProperties();
+ if (rate != null) {
+ setRate(rate);
+ }
+ if (byUsers != null) {
+ setByUsers(byUsers);
+ }
+ final Toolbar bottomBar = ws.getEntityWorkspace().getContentBottomBar();
+ bottomBar.addFill();
+ bottomBar.add(this);
}
public void setByUsers(final Integer byUsers) {
- if (byUsers.intValue() == 0) {
- rateDesc.setText(i18n.t("(Not rated)"));
- } else if (byUsers.intValue() == 1) {
- // i18n params pluralization
- rateDesc.setText(i18n.t("([%d] user)", byUsers));
- } else {
- rateDesc.setText(i18n.t("([%d] users)", byUsers));
- }
+ if (byUsers.intValue() == 0) {
+ rateDesc.setText(i18n.t("(Not rated)"));
+ } else if (byUsers.intValue() == 1) {
+ // i18n params pluralization
+ rateDesc.setText(i18n.t("([%d] user)", byUsers));
+ } else {
+ rateDesc.setText(i18n.t("([%d] users)", byUsers));
+ }
}
public void setRate(final Double rate) {
- setRate(Star.genStars(rate.doubleValue()));
+ setRate(Star.genStars(rate.doubleValue()));
}
private void initialize() {
- rateGrid = new Grid(1, 6);
- starImg = new Image[5];
- for (int i = 0; i < 5; i++) {
- starImg[i] = new Image();
- new Star(Star.GREY).getImage().applyTo(starImg[i]);
- }
- rateDesc = new Label();
+ rateGrid = new Grid(1, 6);
+ starImg = new Image[5];
+ for (int i = 0; i < 5; i++) {
+ starImg[i] = new Image();
+ new Star(Star.GREY).getImage().applyTo(starImg[i]);
+ }
+ rateDesc = new Label();
}
private void layout() {
- initWidget(rateGrid);
- for (int i = 0; i < 5; i++) {
- rateGrid.setWidget(0, i, starImg[i]);
- }
- rateGrid.setWidget(0, 5, rateDesc);
+ initWidget(rateGrid);
+ for (int i = 0; i < 5; i++) {
+ rateGrid.setWidget(0, i, starImg[i]);
+ }
+ rateGrid.setWidget(0, 5, rateDesc);
}
private void setProperties() {
- rateGrid.setCellPadding(0);
- rateGrid.setCellSpacing(0);
- rateGrid.setBorderWidth(0);
- rateGrid.addStyleName("kune-RatePanel-Stars");
- rateDesc.addStyleName("kune-RatePanel-Label");
- rateDesc.addStyleName("kune-Margin-Medium-lr");
+ rateGrid.setCellPadding(0);
+ rateGrid.setCellSpacing(0);
+ rateGrid.setBorderWidth(0);
+ rateGrid.addStyleName("kune-RatePanel-Stars");
+ rateDesc.addStyleName("kune-RatePanel-Label");
+ rateDesc.addStyleName("kune-Margin-Medium-lr");
}
private void setRate(final Star stars[]) {
- for (int i = 0; i < 5; i++) {
- stars[i].getImage().applyTo(starImg[i]);
- }
+ for (int i = 0; i < 5; i++) {
+ stars[i].getImage().applyTo(starImg[i]);
+ }
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateView.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rate/RateView.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -20,7 +20,11 @@
package org.ourproject.kune.platf.client.ui.rate;
public interface RateView {
+
+ public void setByUsers(Integer byUsers);
+
public void setRate(Double rate);
- public void setByUsers(Integer byUsers);
+ public void setVisible(boolean visible);
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -20,8 +20,6 @@
package org.ourproject.kune.workspace.client;
import org.ourproject.kune.platf.client.PlatformEvents;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.platf.client.dispatch.Dispatcher;
import org.ourproject.kune.platf.client.extend.ClientModule;
import org.ourproject.kune.platf.client.extend.Register;
import org.ourproject.kune.platf.client.state.Session;
@@ -29,9 +27,6 @@
import org.ourproject.kune.workspace.client.actions.AttachToExtensibleWidgetAction;
import org.ourproject.kune.workspace.client.actions.ClearExtensibleWidgetAction;
import org.ourproject.kune.workspace.client.actions.DetachFromExtensibleWidgetAction;
-import org.ourproject.kune.workspace.client.actions.DisableRateItAction;
-import org.ourproject.kune.workspace.client.actions.EnableRateItAction;
-import org.ourproject.kune.workspace.client.actions.RateContentAction;
import org.ourproject.kune.workspace.client.actions.RecalculateWorkspaceAction;
import org.ourproject.kune.workspace.client.actions.ReloadContextAction;
import org.ourproject.kune.workspace.client.actions.i18n.DoTranslationAction;
@@ -45,7 +40,6 @@
private final StateManager stateManager;
private final Workspace workspace;
- private final Dispatcher dispacher;
private final Session session;
private final I18nUITranslationService i18n;
@@ -54,7 +48,6 @@
this.session = session;
this.stateManager = stateManager;
this.i18n = i18n;
- dispacher = DefaultDispatcher.getInstance();
this.workspace = workspace;
}
@@ -63,9 +56,6 @@
register.addAction(PlatformEvents.DETACH_FROM_EXTENSIBLE_WIDGET,
new DetachFromExtensibleWidgetAction(workspace));
register.addAction(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET, new ClearExtensibleWidgetAction(workspace));
- register.addAction(WorkspaceEvents.RATE_CONTENT, new RateContentAction(session, stateManager, i18n));
- register.addAction(WorkspaceEvents.ENABLE_RATEIT, new EnableRateItAction(workspace));
- register.addAction(WorkspaceEvents.DISABLE_RATEIT, new DisableRateItAction(workspace));
register.addAction(WorkspaceEvents.GET_TRANSLATION, new GetTranslationAction(session));
register.addAction(WorkspaceEvents.SHOW_TRANSLATOR, new ShowTranslatorAction(session, workspace, i18n));
register.addAction(WorkspaceEvents.DO_TRANSLATION, new DoTranslationAction(session, i18n));
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -21,9 +21,6 @@
package org.ourproject.kune.workspace.client;
public interface WorkspaceEvents {
- public static final String RATE_CONTENT = "ws.RateContent";
- public static final String ENABLE_RATEIT = "ws.EnableRateIt";
- public static final String DISABLE_RATEIT = "ws.DisableRateIt";
public static final String GET_LEXICON = "i18n.getLexicon";
public static final String SHOW_TRANSLATOR = "i18n.ShowTranslator";
public static final String SHOW_SEARCHER = "ws.ShowSearcher";
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -45,9 +45,6 @@
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItems;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItemsPanel;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItemsPresenter;
-import org.ourproject.kune.workspace.client.workspace.ContentBottomToolBarComponent;
-import org.ourproject.kune.workspace.client.workspace.ContentBottomToolBarPresenter;
-import org.ourproject.kune.workspace.client.workspace.ContentBottomToolBarView;
import org.ourproject.kune.workspace.client.workspace.ContentSubTitleComponent;
import org.ourproject.kune.workspace.client.workspace.ContentSubTitlePresenter;
import org.ourproject.kune.workspace.client.workspace.ContentSubTitleView;
@@ -60,7 +57,6 @@
import org.ourproject.kune.workspace.client.workspace.Workspace;
import org.ourproject.kune.workspace.client.workspace.WorkspacePresenter;
import org.ourproject.kune.workspace.client.workspace.WorkspaceView;
-import org.ourproject.kune.workspace.client.workspace.ui.ContentBottomToolBarPanel;
import org.ourproject.kune.workspace.client.workspace.ui.ContentSubTitlePanel;
import org.ourproject.kune.workspace.client.workspace.ui.ContentTitlePanel;
import org.ourproject.kune.workspace.client.workspace.ui.ContentToolBarPanel;
@@ -72,13 +68,6 @@
private static I18nTranslationService i18n;
private static KuneErrorHandler errorHandler;
- public static ContentBottomToolBarComponent createContentBottomToolBarComponent() {
- final ContentBottomToolBarPresenter presenter = new ContentBottomToolBarPresenter();
- final ContentBottomToolBarView view = new ContentBottomToolBarPanel(presenter, i18n);
- presenter.init(view);
- return presenter;
- }
-
public static ContentSubTitleComponent createContentSubTitleComponent() {
final ContentSubTitlePresenter presenter = new ContentSubTitlePresenter(i18n);
final ContentSubTitleView view = new ContentSubTitlePanel(presenter, i18n);
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/DisableRateItAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/DisableRateItAction.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/DisableRateItAction.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -1,40 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-public class DisableRateItAction implements Action<Object> {
-
- private final Workspace workspace;
-
- public DisableRateItAction(final Workspace workspace) {
- this.workspace = workspace;
- }
-
- public void execute(final Object value) {
- onDisableRateItAction();
- }
-
- private void onDisableRateItAction() {
- workspace.getContentBottomToolBarComponent().setEnabledRateIt(false);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/EnableRateItAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/EnableRateItAction.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/EnableRateItAction.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -1,41 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-@SuppressWarnings("unchecked")
-public class EnableRateItAction implements Action {
-
- private final Workspace workspace;
-
- public EnableRateItAction(final Workspace workspace) {
- this.workspace = workspace;
- }
-
- public void execute(final Object value) {
- onEnableRateItAction();
- }
-
- private void onEnableRateItAction() {
- workspace.getContentBottomToolBarComponent().setEnabledRateIt(true);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/RateContentAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/RateContentAction.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/RateContentAction.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -1,61 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.StateDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.ContentService;
-import org.ourproject.kune.platf.client.rpc.ContentServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-public class RateContentAction implements Action<Double> {
-
- private final StateManager stateManager;
- private final Session session;
- private final I18nTranslationService i18n;
-
- public RateContentAction(final Session session, final StateManager stateManager, final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final Double value) {
- onRateContent(value);
- }
-
- private void onRateContent(final Double value) {
- Site.showProgressProcessing();
- ContentServiceAsync server = ContentService.App.getInstance();
- StateDTO currentState = session.getCurrentState();
- server.rateContent(session.getUserHash(), currentState.getGroup().getShortName(), currentState.getDocumentId(),
- value, new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- Site.hideProgress();
- Site.info(i18n.t("Content rated"));
- stateManager.reload();
- }
- });
- }
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -2,6 +2,8 @@
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.ui.rate.RateIt;
+import org.ourproject.kune.platf.client.ui.rate.RatePresenter;
import org.ourproject.kune.workspace.client.ui.newtmp.licensefoot.EntityLicensePresenter;
import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
@@ -29,13 +31,16 @@
private final Provider<ParticipationSummary> participationSummaryProvider;
private final Provider<GroupSummary> groupSummaryProvider;
private final SitePublicSpaceLink publicSpaceLink;
+ private final RateIt rateIt;
+ private final RatePresenter ratePresenter;
public WorkspaceManager(final SitePublicSpaceLink publicSpaceLink, final EntityLogo entityLogo,
final EntityTitlePresenter entityTitlePresenter, final EntitySubTitlePresenter entitySubTitlePresenter,
final WsThemePresenter wsThemePresenter, final EntityLicensePresenter entityLicensePresenter,
final Provider<GroupMembersSummary> groupMembersSummaryProvider,
final Provider<ParticipationSummary> participationSummaryProvider,
- final Provider<TagsSummary> tagsSummaryProvider, final Provider<GroupSummary> groupSummaryProvider) {
+ final Provider<TagsSummary> tagsSummaryProvider, final Provider<GroupSummary> groupSummaryProvider,
+ final RateIt rateIt, final RatePresenter ratePresenter) {
this.publicSpaceLink = publicSpaceLink;
this.entityLogo = entityLogo;
this.entityTitlePresenter = entityTitlePresenter;
@@ -46,6 +51,8 @@
this.participationSummaryProvider = participationSummaryProvider;
this.tagsProvider = tagsSummaryProvider;
this.groupSummaryProvider = groupSummaryProvider;
+ this.rateIt = rateIt;
+ this.ratePresenter = ratePresenter;
wsThemePresenter.onThemeChanged(new Slot2<WsTheme, WsTheme>() {
public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) {
entityLogo.setTheme(oldTheme, newTheme);
@@ -75,6 +82,8 @@
groupSummaryProvider.get().setState(state);
tagsProvider.get().setState(state);
wsThemePresenter.setState(state);
+ rateIt.setState(state);
+ ratePresenter.setState(state);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -49,8 +49,6 @@
public void detachFromExtensibleWidget(ExtensibleWidgetChild ext);
- public ContentBottomToolBarComponent getContentBottomToolBarComponent();
-
public ContentSubTitleComponent getContentSubTitleComponent();
public ContentTitleComponent getContentTitleComponent();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -88,10 +88,6 @@
extensionPointManager.detachFromExtensible(child);
}
- public ContentBottomToolBarComponent getContentBottomToolBarComponent() {
- return components.getContentBottomToolBarComponent();
- }
-
public ContentSubTitleComponent getContentSubTitleComponent() {
return components.getContentSubTitleComponent();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -27,27 +27,13 @@
public class WorkspaceUIComponents {
private LicenseComponent license;
private ContentTitleComponent contentTitle;
- private GroupMembersSummary groupMembers;
- private ParticipationSummary participatesInGroups;
- private GroupSummary groupSummary;
private ContentSubTitleComponent contentSubTitle;
- private ContentBottomToolBarComponent contentBottomToolBar;
- private ThemeMenuComponent themeMenu;
private ContentToolBarComponent contentToolBar;
- private GroupLiveSearcher groupLiveSearcher;
private I18nTranslatorComponent i18nTranslatorSearch;
- private UserLiveSearcher userLiveSearch;
public WorkspaceUIComponents(final WorkspacePresenter presenter) {
}
- public ContentBottomToolBarComponent getContentBottomToolBarComponent() {
- if (contentBottomToolBar == null) {
- contentBottomToolBar = WorkspaceFactory.createContentBottomToolBarComponent();
- }
- return contentBottomToolBar;
- }
-
public ContentSubTitleComponent getContentSubTitleComponent() {
if (contentSubTitle == null) {
contentSubTitle = WorkspaceFactory.createContentSubTitleComponent();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/ContentBottomToolBarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/ContentBottomToolBarPanel.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/ContentBottomToolBarPanel.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -22,9 +22,6 @@
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.ui.CustomPushButton;
-import org.ourproject.kune.platf.client.ui.rate.RateItPanel;
-import org.ourproject.kune.platf.client.ui.rate.RateItPresenter;
-import org.ourproject.kune.platf.client.ui.rate.RatePanel;
import org.ourproject.kune.workspace.client.workspace.ContentBottomToolBarPresenter;
import org.ourproject.kune.workspace.client.workspace.ContentBottomToolBarView;
@@ -35,57 +32,57 @@
public class ContentBottomToolBarPanel extends HorizontalPanel implements ContentBottomToolBarView {
- private final RatePanel rate;
- private final RateItPresenter rateItPresenter;
- private final RateItPanel rateIt;
+ // private final RatePanel rate;
+ // private final RateItPresenter rateItPresenter;
+ // private final RateItPanel rateIt;
private CustomPushButton btn;
public ContentBottomToolBarPanel(final ContentBottomToolBarPresenter presenter, final I18nTranslationService i18n) {
- rate = new RatePanel(null, null, i18n);
- rateItPresenter = new RateItPresenter(i18n);
- rateIt = new RateItPanel(rateItPresenter, i18n);
- rateItPresenter.init(rateIt);
- Label expand = new Label("");
- this.add(rateIt);
- this.add(expand);
- this.add(rate);
- this.setWidth("100%");
- expand.setWidth("100%");
- this.setCellWidth(expand, "100%");
- this.addStyleName("kune-ContentToolBarPanel");
- this.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE);
- this.setCellVerticalAlignment(rate, VerticalPanel.ALIGN_MIDDLE);
- this.setCellVerticalAlignment(rateIt, VerticalPanel.ALIGN_MIDDLE);
- rate.setVisible(false);
- rateIt.setVisible(false);
- // TODO setEnabled false to RateIt
+ // rate = new RatePanel(null, null, i18n);
+ // rateItPresenter = null;
+ // rateIt = new RateItPanel(rateItPresenter, i18n, null);
+ // rateItPresenter.init(rateIt);
+ final Label expand = new Label("");
+ // this.add(rateIt);
+ this.add(expand);
+ // this.add(rate);
+ this.setWidth("100%");
+ expand.setWidth("100%");
+ this.setCellWidth(expand, "100%");
+ this.addStyleName("kune-ContentToolBarPanel");
+ this.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE);
+ // this.setCellVerticalAlignment(rate, VerticalPanel.ALIGN_MIDDLE);
+ // this.setCellVerticalAlignment(rateIt, VerticalPanel.ALIGN_MIDDLE);
+ // rate.setVisible(false);
+ // rateIt.setVisible(false);
+ // TODO setEnabled false to RateIt
}
public void addButton(final String caption, final ClickListener listener) {
- btn = new CustomPushButton(caption, listener);
- this.insert(btn, 0);
- btn.addStyleName("kune-Button-Large-lrSpace");
+ btn = new CustomPushButton(caption, listener);
+ this.insert(btn, 0);
+ btn.addStyleName("kune-Button-Large-lrSpace");
}
public void setButtonVisible(final boolean isEnabled) {
- btn.setVisible(isEnabled);
+ btn.setVisible(isEnabled);
}
public void setRate(final Double value, final Integer rateByUsers) {
- rate.setRate(value);
- rate.setByUsers(rateByUsers);
+ // rate.setRate(value);
+ // rate.setByUsers(rateByUsers);
}
public void setRateIt(final Double currentUserRate) {
- rateItPresenter.setRate(currentUserRate);
+ // rateItPresenter.setRate(currentUserRate);
}
public void setRateItVisible(final boolean visible) {
- rateIt.setVisible(visible);
+ // rateIt.setVisible(visible);
}
public void setRateVisible(final boolean visible) {
- rate.setVisible(visible);
+ // rate.setVisible(visible);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -222,7 +222,7 @@
setContentTitle(components.getContentTitleComponent().getView());
setContentSubTitle(components.getContentSubTitleComponent().getView());
setContentToolBar(components.getContentToolBarComponent().getView());
- setContentBottomToolBar(components.getContentBottomToolBarComponent().getView());
+ // setContentBottomToolBar(components.getContentBottomToolBarComponent().getView());
setBottom(components.getLicenseComponent().getView());
// addBottomIconComponent(components.getThemeMenuComponent().getView());
}
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java 2008-07-26 17:03:52 UTC (rev 817)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/PersistenceTest.java 2008-07-26 20:07:21 UTC (rev 818)
@@ -16,53 +16,53 @@
private final String persistenceUnit;
private final String propetiesFileName;
+ public PersistenceTest() {
+ // test: use memory
+ // test_db: use mysql
+ this("test", "kune.properties");
+ }
+
public PersistenceTest(final String persistenceUnit, final String propetiesFileName) {
- this.persistenceUnit = persistenceUnit;
- this.propetiesFileName = propetiesFileName;
+ this.persistenceUnit = persistenceUnit;
+ this.propetiesFileName = propetiesFileName;
}
- public PersistenceTest() {
- // test: use memory
- // test_db: use mysql
- this("test", "kune.properties");
+ public void closeTransaction() {
+ getManager().getTransaction().commit();
}
- @Before
- public void prepare() {
- final Injector injector = TestHelper.create(new PlatformServerModule(), persistenceUnit, propetiesFileName);
- final PersistenceService persistence = injector.getInstance(PersistenceService.class);
- // To Debug insert breakpoint here
- persistence.start();
- injector.injectMembers(this);
+ public EntityTransaction getTransaction() {
+ return getManager().getTransaction();
}
public EntityManager openTransaction() {
- final EntityManager manager = getManager();
- final EntityTransaction transaction = manager.getTransaction();
- transaction.begin();
- return manager;
+ final EntityManager manager = getManager();
+ final EntityTransaction transaction = manager.getTransaction();
+ transaction.begin();
+ return manager;
}
- public void closeTransaction() {
- getManager().getTransaction().commit();
+ public void persist(final Object... entities) {
+ for (final Object entity : entities) {
+ getManager().persist(entity);
+ }
}
- public void rollbackTransaction() {
- getManager().getTransaction().rollback();
+ @Before
+ public void prepare() {
+ final Injector injector = TestHelper.create(new PlatformServerModule(), persistenceUnit, propetiesFileName);
+ final PersistenceService persistence = injector.getInstance(PersistenceService.class);
+ // To Debug insert breakpoint here
+ persistence.start();
+ injector.injectMembers(this);
}
- public void persist(final Object... entities) {
- for (final Object entity : entities) {
- getManager().persist(entity);
- }
+ public void rollbackTransaction() {
+ getManager().getTransaction().rollback();
}
private EntityManager getManager() {
- return provider.get();
+ return provider.get();
}
- public EntityTransaction getTransaction() {
- return getManager().getTransaction();
- }
-
}
1
0
r817 - in trunk/src/main/java/org/ourproject/kune: platf/client/ui/gridmenu workspace/client/socialnet
by vjrj 26 Jul '08
by vjrj 26 Jul '08
26 Jul '08
Author: vjrj
Date: 2008-07-26 19:03:52 +0200 (Sat, 26 Jul 2008)
New Revision: 817
Modified:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
Log:
Workspace refactorization
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-07-26 16:44:17 UTC (rev 816)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-07-26 17:03:52 UTC (rev 817)
@@ -5,7 +5,6 @@
import com.allen_sauer.gwt.log.client.Log;
import com.calclab.suco.client.signal.Signal;
import com.calclab.suco.client.signal.Slot;
-import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.Composite;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.SortDir;
@@ -211,12 +210,6 @@
}
}
- public void setDraggable(final boolean draggable) {
- createGridIfNeeded();
- DOM.setElementPropertyBoolean(grid.getElement(), "allowDrag", draggable);
- doLayoutIfNeeded();
- }
-
public void setWidth(final int width) {
if (grid != null) {
grid.setWidth(width - 27);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2008-07-26 16:44:17 UTC (rev 816)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2008-07-26 17:03:52 UTC (rev 817)
@@ -102,7 +102,7 @@
}
public void setDraggable(final boolean draggable) {
- gridMenuPanel.setDraggable(draggable);
+ // gridMenuPanel.setDraggable(draggable);
}
public void setDropDownContentVisible(final boolean visible) {
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-07-26 16:44:17 UTC (rev 816)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-07-26 17:03:52 UTC (rev 817)
@@ -83,17 +83,13 @@
});
}
- public void hide() {
- view.setVisible(false);
- }
-
public void init(final GroupMembersSummaryView view) {
this.view = view;
}
public void setState(final StateDTO state) {
if (state.getGroup().getType().equals(GroupDTO.PERSONAL)) {
- hide();
+ view.setVisible(false);
} else {
setGroupMembers(state.getGroupMembers(), state.getGroupRights());
}
1
0
Author: vjrj
Date: 2008-07-26 18:44:17 +0200 (Sat, 26 Jul 2008)
New Revision: 816
Added:
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearcherPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearcherPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearcherPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearcherPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearcher.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearcher.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearcher.java
Removed:
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddGroupLiveSearchAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddUserLiveSearchAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearchPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryViewNew.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/MemberAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearchPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearchPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearchPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearchComponent.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearchComponent.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearchComponent.java
Modified:
trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneStringUtils.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupLiveSearchPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/GroupToolsBar.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java
trunk/src/test/java/org/ourproject/kune/platf/client/ui/KuneStringUtilsTest.java
Log:
Workspace refactorization
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -29,7 +29,6 @@
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
import org.ourproject.kune.platf.client.rpc.SiteService;
import org.ourproject.kune.platf.client.rpc.SiteServiceAsync;
-import org.ourproject.kune.platf.client.services.ColorTheme;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.KuneErrorHandler;
import org.ourproject.kune.platf.client.state.Session;
@@ -58,11 +57,10 @@
private StateManager stateManager;
public ApplicationDefault(final Session session, final ExtensibleWidgetsManager extensionPointManager,
- final I18nTranslationService i18n, final ColorTheme colorTheme, final KuneErrorHandler errorHandler,
- final WorkspaceSkeleton ws) {
+ final I18nTranslationService i18n, final KuneErrorHandler errorHandler, final WorkspaceSkeleton ws) {
this.session = session;
this.ws = ws;
- workspace = WorkspaceFactory.createWorkspace(session, extensionPointManager, i18n, colorTheme, errorHandler);
+ workspace = WorkspaceFactory.createWorkspace(session, extensionPointManager, i18n, errorHandler);
tools = new HashMap<String, ClientTool>();
this.onApplicationStart = new Signal<Object>("onApplicationStart");
this.onApplicationStop = new Signal<Object>("onApplicationStop");
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -43,12 +43,17 @@
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessageView;
import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPanelNew;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPresenterNew;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryViewNew;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherView;
+import org.ourproject.kune.workspace.client.socialnet.GroupLiveSearcherPresenter;
+import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPanel;
+import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPresenter;
+import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryView;
import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryPresenter;
import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryView;
+import org.ourproject.kune.workspace.client.socialnet.UserLiveSearcherPresenter;
+import org.ourproject.kune.workspace.client.socialnet.ui.GroupLiveSearchPanel;
import org.ourproject.kune.workspace.client.socialnet.ui.ParticipationSummaryPanel;
+import org.ourproject.kune.workspace.client.socialnet.ui.UserLiveSearcherPanel;
import org.ourproject.kune.workspace.client.summary.GroupSummaryPresenter;
import org.ourproject.kune.workspace.client.summary.GroupSummaryView;
import org.ourproject.kune.workspace.client.tags.TagsSummaryPanel;
@@ -87,10 +92,12 @@
import org.ourproject.kune.workspace.client.ui.newtmp.title.EntitySubTitlePresenter;
import org.ourproject.kune.workspace.client.ui.newtmp.title.EntityTitlePanel;
import org.ourproject.kune.workspace.client.ui.newtmp.title.EntityTitlePresenter;
+import org.ourproject.kune.workspace.client.workspace.GroupLiveSearcher;
import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
import org.ourproject.kune.workspace.client.workspace.GroupSummary;
import org.ourproject.kune.workspace.client.workspace.ParticipationSummary;
import org.ourproject.kune.workspace.client.workspace.TagsSummary;
+import org.ourproject.kune.workspace.client.workspace.UserLiveSearcher;
import org.ourproject.kune.workspace.client.workspace.ui.EntityLogo;
import org.ourproject.kune.workspace.client.workspace.ui.EntityLogoPanel;
@@ -196,12 +203,6 @@
final KuneErrorHandler errorHandler = i(KuneErrorHandler.class);
AsyncCallbackSimple.init(errorHandler);
- builder.registerProvider(ColorTheme.class, new Provider<ColorTheme>() {
- public ColorTheme get() {
- return new ColorTheme();
- }
- }, SingletonScope.class);
-
builder.registerProvider(KunePlatform.class, new Provider<KunePlatform>() {
public KunePlatform get() {
return new KunePlatform();
@@ -220,10 +221,8 @@
builder.registerProvider(Application.class, new Provider<Application>() {
public Application get() {
final Session session = i(Session.class);
- final ExtensibleWidgetsManager extensionPointManager = builder
- .getInstance(ExtensibleWidgetsManager.class);
- return new ApplicationDefault(session, extensionPointManager, i18n, builder
- .getInstance(ColorTheme.class), i(KuneErrorHandler.class), ws);
+ final ExtensibleWidgetsManager extensionPointManager = i(ExtensibleWidgetsManager.class);
+ return new ApplicationDefault(session, extensionPointManager, i18n, i(KuneErrorHandler.class), ws);
}
}, SingletonScope.class);
@@ -239,8 +238,7 @@
builder.registerProvider(SiteProgress.class, new Provider<SiteProgress>() {
public SiteProgress get() {
final SiteProgressPresenter presenter = new SiteProgressPresenter();
- final SiteProgressPanel panel = new SiteProgressPanel(presenter, builder
- .getProvider(SitePublicSpaceLink.class));
+ final SiteProgressPanel panel = new SiteProgressPanel(presenter, p(SitePublicSpaceLink.class));
presenter.init(panel);
return presenter;
}
@@ -330,8 +328,8 @@
builder.registerProvider(SignIn.class, new Provider<SignIn>() {
public SignIn get() {
- final SignInPresenter presenter = new SignInPresenter(i(Session.class), builder
- .getInstance(StateManager.class), i18n, i(UserServiceAsync.class));
+ final SignInPresenter presenter = new SignInPresenter(i(Session.class), i(StateManager.class), i18n,
+ i(UserServiceAsync.class));
final SignInPanel view = new SignInPanel(presenter, i18n, ws);
presenter.init(view);
return presenter;
@@ -358,6 +356,7 @@
}, SingletonScope.class);
i(SitePublicSpaceLink.class);
+ i(SiteMessage.class);
i(SiteSignInLink.class);
i(SiteSignOutLink.class);
i(SiteNewGroupLink.class);
@@ -381,8 +380,7 @@
builder.registerProvider(EntityTitlePresenter.class, new Provider<EntityTitlePresenter>() {
public EntityTitlePresenter get() {
- final EntityTitlePresenter presenter = new EntityTitlePresenter(i18n, builder
- .getInstance(KuneErrorHandler.class));
+ final EntityTitlePresenter presenter = new EntityTitlePresenter(i18n, i(KuneErrorHandler.class));
final EntityTitlePanel panel = new EntityTitlePanel(ws, presenter);
presenter.init(panel);
return presenter;
@@ -410,11 +408,9 @@
builder.registerProvider(WorkspaceManager.class, new Provider<WorkspaceManager>() {
public WorkspaceManager get() {
final WorkspaceManager presenter = new WorkspaceManager(i(SitePublicSpaceLink.class),
- i(EntityLogo.class), i(EntityTitlePresenter.class), builder
- .getInstance(EntitySubTitlePresenter.class), builder
- .getInstance(WsThemePresenter.class), i(EntityLicensePresenter.class), builder
- .getProvider(GroupMembersSummary.class), builder
- .getProvider(ParticipationSummary.class), p(TagsSummary.class), p(GroupSummary.class));
+ i(EntityLogo.class), i(EntityTitlePresenter.class), i(EntitySubTitlePresenter.class),
+ i(WsThemePresenter.class), i(EntityLicensePresenter.class), p(GroupMembersSummary.class),
+ p(ParticipationSummary.class), p(TagsSummary.class), p(GroupSummary.class));
return presenter;
}
}, SingletonScope.class);
@@ -429,12 +425,30 @@
}
}, SingletonScope.class);
+ builder.registerProvider(UserLiveSearcher.class, new Provider<UserLiveSearcher>() {
+ public UserLiveSearcher get() {
+ final UserLiveSearcherPresenter presenter = new UserLiveSearcherPresenter();
+ final EntityLiveSearcherView view = new UserLiveSearcherPanel(presenter, i18n);
+ presenter.init(view);
+ return presenter;
+ }
+ }, SingletonScope.class);
+
+ builder.registerProvider(GroupLiveSearcher.class, new Provider<GroupLiveSearcher>() {
+ public GroupLiveSearcher get() {
+ final GroupLiveSearcherPresenter presenter = new GroupLiveSearcherPresenter();
+ final EntityLiveSearcherView view = new GroupLiveSearchPanel(presenter, i18n);
+ presenter.init(view);
+ return presenter;
+ }
+ }, SingletonScope.class);
+
builder.registerProvider(GroupMembersSummary.class, new Provider<GroupMembersSummary>() {
public GroupMembersSummary get() {
- final GroupMembersSummaryPresenterNew presenter = new GroupMembersSummaryPresenterNew(i18n,
+ final GroupMembersSummaryPresenter presenter = new GroupMembersSummaryPresenter(i18n,
p(StateManager.class), i(ImageUtils.class), i(Session.class),
- p(SocialNetworkServiceAsync.class));
- final GroupMembersSummaryViewNew view = new GroupMembersSummaryPanelNew(presenter, i18n, ws);
+ p(SocialNetworkServiceAsync.class), p(GroupLiveSearcher.class));
+ final GroupMembersSummaryView view = new GroupMembersSummaryPanel(presenter, i18n, ws);
presenter.init(view);
return presenter;
}
@@ -462,8 +476,7 @@
builder.registerProvider(TagsSummary.class, new Provider<TagsSummary>() {
public TagsSummary get() {
- final TagsSummaryPresenter presenter = new TagsSummaryPresenter(p(Session.class), builder
- .getProvider(SiteSearcher.class));
+ final TagsSummaryPresenter presenter = new TagsSummaryPresenter(p(Session.class), p(SiteSearcher.class));
final TagsSummaryPanel panel = new TagsSummaryPanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneStringUtils.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneStringUtils.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/KuneStringUtils.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -22,24 +22,42 @@
import java.util.ArrayList;
public class KuneStringUtils {
- public KuneStringUtils() {
+ /*
+ * This method escape only some dangerous html chars
+ */
+ public static String escapeHtmlLight(final String textOrig) {
+ String text = textOrig;
+ text = text.replaceAll("&", "&");
+ text = text.replaceAll("\"", """);
+ // text = text.replaceAll("\'", "'");
+ text = text.replaceAll("<", "<");
+ text = text.replaceAll(">", ">");
+ return text;
}
public static String generateHtmlLink(final String href, final String text) {
- return "<a href=\"" + href + "\" target=\"_blank\">" + text + "</a>";
+ return "<a href=\"" + href + "\" target=\"_blank\">" + text + "</a>";
}
- /*
- * This method escape only some dangerous html chars
- */
- public static String escapeHtmlLight(final String textOrig) {
- String text = textOrig;
- text = text.replaceAll("&", "&");
- text = text.replaceAll("\"", """);
- // text = text.replaceAll("\'", "'");
- text = text.replaceAll("<", "<");
- text = text.replaceAll(">", ">");
- return text;
+ public static ArrayList<String> splitTags(final String tagsString) {
+ final ArrayList<String> tagsList = new ArrayList<String>();
+ String tagsCopy = tagsString;
+ // remove commas and quotes
+ if (tagsString == null) {
+ return tagsList;
+ }
+ tagsCopy = tagsCopy.replaceAll(",", " ");
+ tagsCopy = tagsCopy.replaceAll("\"", "");
+ tagsCopy = tagsCopy.replaceAll("\'", "");
+ final String[] splitted = tagsCopy.split("\\s+");
+ for (int i = 0; i < splitted.length; i++) {
+ String tag = splitted[i];
+ tag = tag.replaceAll("\\s$", "");
+ if (tag.length() > 0) {
+ tagsList.add(tag);
+ }
+ }
+ return tagsList;
}
/*
@@ -47,31 +65,16 @@
* widget for instance
*/
public static String unescapeHtmlLight(final String textOrig) {
- String text = textOrig;
- text = text.replaceAll("&", "&");
- text = text.replaceAll(""", "\"");
- text = text.replaceAll("'", "\'");
- text = text.replaceAll("<", "<");
- text = text.replaceAll(">", ">");
- return text;
+ String text = textOrig;
+ text = text.replaceAll("&", "&");
+ text = text.replaceAll(""", "\"");
+ text = text.replaceAll("'", "\'");
+ text = text.replaceAll("<", "<");
+ text = text.replaceAll(">", ">");
+ return text;
}
- public static ArrayList<String> splitTags(final String tagsString) {
- ArrayList<String> tagsList = new ArrayList<String>();
- String tagsCopy = tagsString;
- // remove commas and quotes
- tagsCopy = tagsCopy.replaceAll(",", " ");
- tagsCopy = tagsCopy.replaceAll("\"", "");
- tagsCopy = tagsCopy.replaceAll("\'", "");
- String[] splitted = tagsCopy.split("\\s+");
- for (int i = 0; i < splitted.length; i++) {
- String tag = splitted[i];
- tag = tag.replaceAll("\\s$", "");
- if (tag.length() > 0) {
- tagsList.add(tag);
- }
- }
- return tagsList;
+ public KuneStringUtils() {
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -5,6 +5,7 @@
import com.allen_sauer.gwt.log.client.Log;
import com.calclab.suco.client.signal.Signal;
import com.calclab.suco.client.signal.Slot;
+import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.Composite;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.SortDir;
@@ -210,6 +211,12 @@
}
}
+ public void setDraggable(final boolean draggable) {
+ createGridIfNeeded();
+ DOM.setElementPropertyBoolean(grid.getElement(), "allowDrag", draggable);
+ doLayoutIfNeeded();
+ }
+
public void setWidth(final int width) {
if (grid != null) {
grid.setWidth(width - 27);
@@ -370,8 +377,9 @@
}
});
grid.stripeRows(true);
- grid.setAutoWidth(true);
- grid.setAutoHeight(true);
+ grid.setHideColumnHeader(true);
+ grid.setBorder(false);
+ grid.setAutoScroll(true);
if (grouped) {
final GroupingView groupView = new GroupingView();
@@ -405,9 +413,10 @@
view.setForceFit(true);
grid.setView(view);
}
- grid.setHideColumnHeader(true);
- grid.setBorder(false);
- grid.setAutoScroll(true);
+
+ grid.setAutoWidth(true);
+ grid.setAutoHeight(true);
+
if (gridDropConfiguration != null) {
configureDrop(gridDropConfiguration);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -26,8 +26,6 @@
import org.ourproject.kune.platf.client.extend.Register;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.actions.AddGroupLiveSearchAction;
-import org.ourproject.kune.workspace.client.actions.AddUserLiveSearchAction;
import org.ourproject.kune.workspace.client.actions.AttachToExtensibleWidgetAction;
import org.ourproject.kune.workspace.client.actions.ClearExtensibleWidgetAction;
import org.ourproject.kune.workspace.client.actions.DetachFromExtensibleWidgetAction;
@@ -69,8 +67,6 @@
register.addAction(WorkspaceEvents.ENABLE_RATEIT, new EnableRateItAction(workspace));
register.addAction(WorkspaceEvents.DISABLE_RATEIT, new DisableRateItAction(workspace));
register.addAction(WorkspaceEvents.GET_TRANSLATION, new GetTranslationAction(session));
- register.addAction(WorkspaceEvents.ADD_MEMBER_GROUPLIVESEARCH, new AddGroupLiveSearchAction(workspace));
- register.addAction(WorkspaceEvents.ADD_USERLIVESEARCH, new AddUserLiveSearchAction(workspace));
register.addAction(WorkspaceEvents.SHOW_TRANSLATOR, new ShowTranslatorAction(session, workspace, i18n));
register.addAction(WorkspaceEvents.DO_TRANSLATION, new DoTranslationAction(session, i18n));
register.addAction(WorkspaceEvents.GET_LEXICON, new GetLexiconAction(i18n));
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -24,8 +24,6 @@
public static final String RATE_CONTENT = "ws.RateContent";
public static final String ENABLE_RATEIT = "ws.EnableRateIt";
public static final String DISABLE_RATEIT = "ws.DisableRateIt";
- public static final String ADD_MEMBER_GROUPLIVESEARCH = "ws.AddMemberGroupLiveSearch";
- public static final String ADD_USERLIVESEARCH = "ws.AddUserLiveSearch";
public static final String GET_LEXICON = "i18n.getLexicon";
public static final String SHOW_TRANSLATOR = "i18n.ShowTranslator";
public static final String SHOW_SEARCHER = "ws.ShowSearcher";
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -22,7 +22,6 @@
import org.ourproject.kune.platf.client.app.DesktopView;
import org.ourproject.kune.platf.client.app.ui.DesktopPanel;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
-import org.ourproject.kune.platf.client.services.ColorTheme;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.KuneErrorHandler;
import org.ourproject.kune.platf.client.state.Session;
@@ -43,11 +42,6 @@
import org.ourproject.kune.workspace.client.licensefoot.LicenseView;
import org.ourproject.kune.workspace.client.licensefoot.ui.LicensePanel;
import org.ourproject.kune.workspace.client.sitebar.bar.SiteBarListener;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearchView;
-import org.ourproject.kune.workspace.client.socialnet.GroupLiveSearchPresenter;
-import org.ourproject.kune.workspace.client.socialnet.UserLiveSearchPresenter;
-import org.ourproject.kune.workspace.client.socialnet.ui.GroupLiveSearchPanel;
-import org.ourproject.kune.workspace.client.socialnet.ui.UserLiveSearchPanel;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItems;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItemsPanel;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItemsPresenter;
@@ -63,8 +57,6 @@
import org.ourproject.kune.workspace.client.workspace.ContentToolBarComponent;
import org.ourproject.kune.workspace.client.workspace.ContentToolBarPresenter;
import org.ourproject.kune.workspace.client.workspace.ContentToolBarView;
-import org.ourproject.kune.workspace.client.workspace.GroupLiveSearchComponent;
-import org.ourproject.kune.workspace.client.workspace.UserLiveSearchComponent;
import org.ourproject.kune.workspace.client.workspace.Workspace;
import org.ourproject.kune.workspace.client.workspace.WorkspacePresenter;
import org.ourproject.kune.workspace.client.workspace.WorkspaceView;
@@ -128,13 +120,6 @@
return presenter;
}
- public static GroupLiveSearchComponent createGroupLiveSearchComponent() {
- final GroupLiveSearchPresenter presenter = new GroupLiveSearchPresenter();
- final EntityLiveSearchView view = new GroupLiveSearchPanel(presenter, i18n);
- presenter.init(view);
- return presenter;
- }
-
public static I18nTranslatorComponent createI18nTranslatorComponent() {
final I18nTranslatorPresenter presenter = new I18nTranslatorPresenter(session);
final I18nTranslatorView view = new I18nTranslatorPanel(presenter, i18n);
@@ -156,21 +141,14 @@
return presenter;
}
- public static UserLiveSearchComponent createUserLiveSearchComponent() {
- final UserLiveSearchPresenter presenter = new UserLiveSearchPresenter();
- final EntityLiveSearchView view = new UserLiveSearchPanel(presenter, i18n);
- presenter.init(view);
- return presenter;
- }
-
public static Workspace createWorkspace(final Session session,
final ExtensibleWidgetsManager extensionPointManager, final I18nTranslationService i18n,
- final ColorTheme colorTheme, final KuneErrorHandler errorHandler) {
+ final KuneErrorHandler errorHandler) {
WorkspaceFactory.session = session;
WorkspaceFactory.i18n = i18n;
WorkspaceFactory.errorHandler = errorHandler;
final WorkspacePresenter workspace = new WorkspacePresenter(session);
- final WorkspaceView view = new WorkspacePanel(workspace, i18n, colorTheme);
+ final WorkspaceView view = new WorkspacePanel(workspace, i18n);
workspace.init(view, extensionPointManager);
return workspace;
}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddGroupLiveSearchAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddGroupLiveSearchAction.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddGroupLiveSearchAction.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,44 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearchListener;
-import org.ourproject.kune.workspace.client.workspace.GroupLiveSearchComponent;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-public class AddGroupLiveSearchAction implements Action<EntityLiveSearchListener> {
-
- private final Workspace workspace;
-
- public AddGroupLiveSearchAction(final Workspace workspace) {
- this.workspace = workspace;
- }
-
- public void execute(final EntityLiveSearchListener listener) {
- onAddMemberGroupLiveSearchAction(listener);
- }
-
- private void onAddMemberGroupLiveSearchAction(final EntityLiveSearchListener listener) {
- GroupLiveSearchComponent groupLiveSearchComponent = workspace.getGroupLiveSearchComponent();
- groupLiveSearchComponent.addListener(listener);
- groupLiveSearchComponent.show();
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddUserLiveSearchAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddUserLiveSearchAction.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/AddUserLiveSearchAction.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,44 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearchListener;
-import org.ourproject.kune.workspace.client.workspace.UserLiveSearchComponent;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-public class AddUserLiveSearchAction implements Action<EntityLiveSearchListener> {
-
- private final Workspace workspace;
-
- public AddUserLiveSearchAction(final Workspace workspace) {
- this.workspace = workspace;
- }
-
- public void execute(final EntityLiveSearchListener listener) {
- onAddUserLiveSearchAction(listener);
- }
-
- private void onAddUserLiveSearchAction(final EntityLiveSearchListener listener) {
- UserLiveSearchComponent userLiveSearchComponent = workspace.getUserLiveSearchComponent();
- userLiveSearchComponent.addListener(listener);
- userLiveSearchComponent.show();
- }
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -60,6 +60,7 @@
Site.showProgressProcessing();
view.show();
view.center();
+ Site.hideProgress();
} else {
stateManager.setState(previousTokenOrig);
Site.info(i18n.t("Sign in or register to create a group"));
@@ -102,6 +103,7 @@
final LicenseDTO license = view.getLicense();
final GroupDTO group = new GroupDTO(shortName, longName, publicDesc, getTypeOfGroup());
group.setDefaultLicense(license);
+ group.setTags(view.getTags());
final AsyncCallback<StateToken> callback = new AsyncCallback<StateToken>() {
public void onFailure(final Throwable caught) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -37,6 +37,8 @@
String getShortName();
+ String getTags();
+
void hide();
void hideMessage();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -175,6 +175,10 @@
return shortNameField.getValueAsString();
}
+ public String getTags() {
+ return tags.getRawValue();
+ }
+
public void hideMessage() {
messagesPanel.hide();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -43,7 +43,8 @@
super.setContentVisible(true);
super.setBorderStylePrimaryName("k-dropdownouter-summary");
addStyleName("kune-Margin-Medium-t");
- ws.getEntitySummary().addInSummary(this);
+ // Disabled while in development
+ // ws.getEntitySummary().addInSummary(this);
}
public void setComment(final String comment) {
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -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.workspace.client.socialnet;
-
-import org.ourproject.kune.platf.client.AbstractPresenter;
-import org.ourproject.kune.platf.client.View;
-
-public class EntityLiveSearchPresenter extends AbstractPresenter {
-
- private EntityLiveSearchView view;
- private EntityLiveSearchListener listener;
-
- public void init(final EntityLiveSearchView view) {
- this.view = view;
- }
-
- public View getView() {
- return view;
- }
-
- public void addListener(final EntityLiveSearchListener listener) {
- this.listener = listener;
- }
-
- public void show() {
- view.show();
- }
-
- public void hide() {
- view.hide();
- }
-
- public void fireListener(final String shortName, final String longName) {
- listener.onSelection(shortName, longName);
- hide();
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchView.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchView.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,35 +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.workspace.client.socialnet;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface EntityLiveSearchView extends View {
-
- final public static int SEARCH_GROUPS = 1;
- final public static int SEARCH_USERS = 2;
-
- void show();
-
- void hide();
-
- void center();
-
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherPresenter.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchPresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchPresenter.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,63 @@
+/*
+ *
+ * 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.workspace.client.socialnet;
+
+import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.LinkDTO;
+import org.ourproject.kune.workspace.client.workspace.EntityLiveSearcher;
+
+import com.calclab.suco.client.signal.Signal;
+import com.calclab.suco.client.signal.Slot;
+
+public class EntityLiveSearcherPresenter implements EntityLiveSearcher {
+
+ private EntityLiveSearcherView view;
+ private Signal<LinkDTO> onSelection;
+
+ public void addListener(final EntityLiveSearchListener listener) {
+ this.onSelection = new Signal<LinkDTO>("onSelection");
+ }
+
+ public View getView() {
+ return view;
+ }
+
+ public void init(final EntityLiveSearcherView view) {
+ this.view = view;
+ }
+
+ public void onSelection(final LinkDTO link) {
+ onSelection.fire(link);
+ view.hide();
+ }
+
+ public void onSelectionAdd(final Slot<LinkDTO> slot) {
+ onSelection.add(slot);
+ }
+
+ public void onSelectionRemove(final Slot<LinkDTO> slot) {
+ onSelection.remove(slot);
+ }
+
+ public void show() {
+ view.show();
+ }
+
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherView.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchView.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearchView.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/EntityLiveSearcherView.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,35 @@
+/*
+ *
+ * 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.workspace.client.socialnet;
+
+import org.ourproject.kune.platf.client.View;
+
+public interface EntityLiveSearcherView extends View {
+
+ final public static int SEARCH_GROUPS = 1;
+ final public static int SEARCH_USERS = 2;
+
+ void show();
+
+ void hide();
+
+ void center();
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearchPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearchPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearchPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,26 +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.workspace.client.socialnet;
-
-import org.ourproject.kune.workspace.client.workspace.GroupLiveSearchComponent;
-
-public class GroupLiveSearchPresenter extends EntityLiveSearchPresenter implements GroupLiveSearchComponent {
-
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearcherPresenter.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearchPresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearchPresenter.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupLiveSearcherPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,26 @@
+/*
+ *
+ * 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.workspace.client.socialnet;
+
+import org.ourproject.kune.workspace.client.workspace.GroupLiveSearcher;
+
+public class GroupLiveSearcherPresenter extends EntityLiveSearcherPresenter implements GroupLiveSearcher {
+
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java (from rev 814, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,119 @@
+package org.ourproject.kune.workspace.client.socialnet;
+
+import java.util.HashMap;
+
+import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.ui.DropDownPanel;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridButton;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridDragConfiguration;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuPanel;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.EntitySummary;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
+import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
+
+import com.calclab.emiteuimodule.client.users.UserGridPanel;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.widgets.BoxComponent;
+import com.gwtext.client.widgets.Button;
+import com.gwtext.client.widgets.MessageBox;
+import com.gwtext.client.widgets.ToolbarButton;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
+import com.gwtext.client.widgets.event.ContainerListenerAdapter;
+
+public class GroupMembersSummaryPanel extends DropDownPanel implements GroupMembersSummaryView {
+ private final GridMenuPanel<GroupDTO> gridMenuPanel;
+ private final I18nUITranslationService i18n;
+ private final GroupMembersSummaryPresenter presenter;
+ private final HashMap<GridButton, ToolbarButton> buttonsCache;
+
+ public GroupMembersSummaryPanel(final GroupMembersSummaryPresenter presenter, final I18nUITranslationService i18n,
+ final WorkspaceSkeleton ws) {
+ super(true);
+ this.presenter = presenter;
+ this.i18n = i18n;
+ super.setHeaderText(i18n.t("Group members"));
+ super.setHeaderTitle(i18n.t("People and groups collaborating in this group"));
+ super.setBorderStylePrimaryName("k-dropdownouter-members");
+ super.addStyleName("kune-Margin-Medium-t");
+
+ final GridDragConfiguration dragConf = new GridDragConfiguration(UserGridPanel.USER_GROUP_DD, i18n
+ .t("Drop in the chat area to start a chat.")
+ + "<br/>" + i18n.t("Drop into a room to invite the user to join the chat room"));
+ gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This is an orphaned project, if you are interested "
+ + "please request to join to work on it"), dragConf, true, true, false, true, false);
+ final EntitySummary entitySummary = ws.getEntitySummary();
+ entitySummary.addInSummary(this);
+ entitySummary.addListener(new ContainerListenerAdapter() {
+ @Override
+ public void onResize(final BoxComponent component, final int adjWidth, final int adjHeight,
+ final int rawWidth, final int rawHeight) {
+ gridMenuPanel.setWidth(adjWidth);
+ }
+ });
+ this.setContent(gridMenuPanel);
+ buttonsCache = new HashMap<GridButton, ToolbarButton>();
+ }
+
+ public void addButton(final GridButton gridButton) {
+ // Workaround: gwt-ext don't have toolbar.removeItem method ...
+ ToolbarButton button = buttonsCache.get(gridButton);
+ if (button == null) {
+ button = new ToolbarButton(gridButton.getTitle());
+ button.setIcon(gridButton.getIcon());
+ button.setTooltip(gridButton.getTooltip());
+ button.addListener(new ButtonListenerAdapter() {
+ public void onClick(final Button button, final EventObject e) {
+ gridButton.getSlot().onEvent("");
+ }
+ });
+ buttonsCache.put(gridButton, button);
+ } else {
+ button.setVisible(true);
+ }
+ gridMenuPanel.getBottomBar().addButton(button);
+ }
+
+ public void addItem(final GridItem<GroupDTO> gridItem) {
+ gridMenuPanel.addItem(gridItem);
+ }
+
+ public void clear() {
+ gridMenuPanel.removeAll();
+ for (final ToolbarButton button : buttonsCache.values()) {
+ // Workaround: gwt-ext don't have toolbar.removeItem method ...
+ // gridMenuPanel.getBottomBar().getEl().removeChild(button.getElement());
+ button.setVisible(false);
+ button.removeFromParent();
+ }
+ }
+
+ public void confirmAddCollab(final String groupShortName, final String groupLongName) {
+ final String groupName = groupLongName + " (" + groupShortName + ")";
+ MessageBox.confirm(i18n.t("Confirm addition of member"), i18n.t("Add [%s] as member?", groupName),
+ new MessageBox.ConfirmCallback() {
+ public void execute(final String btnID) {
+ if (btnID.equals("yes")) {
+ presenter.addCollab(groupShortName);
+ }
+ }
+ });
+ }
+
+ public void setDraggable(final boolean draggable) {
+ gridMenuPanel.setDraggable(draggable);
+ }
+
+ public void setDropDownContentVisible(final boolean visible) {
+ super.setContentVisible(visible);
+ }
+
+ public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
+ super.setTheme(oldTheme, newTheme);
+ }
+
+ public void setVisible(final boolean visible) {
+ super.setVisible(visible);
+ }
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,115 +0,0 @@
-package org.ourproject.kune.workspace.client.socialnet;
-
-import java.util.HashMap;
-
-import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.ui.DropDownPanel;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridButton;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridDragConfiguration;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuPanel;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.ui.newtmp.skel.EntitySummary;
-import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
-import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
-
-import com.calclab.emiteuimodule.client.users.UserGridPanel;
-import com.gwtext.client.core.EventObject;
-import com.gwtext.client.widgets.BoxComponent;
-import com.gwtext.client.widgets.Button;
-import com.gwtext.client.widgets.MessageBox;
-import com.gwtext.client.widgets.ToolbarButton;
-import com.gwtext.client.widgets.event.ButtonListenerAdapter;
-import com.gwtext.client.widgets.event.ContainerListenerAdapter;
-
-public class GroupMembersSummaryPanelNew extends DropDownPanel implements GroupMembersSummaryViewNew {
- private final GridMenuPanel<GroupDTO> gridMenuPanel;
- private final I18nUITranslationService i18n;
- private final GroupMembersSummaryPresenterNew presenter;
- private final HashMap<GridButton, ToolbarButton> buttonsCache;
-
- public GroupMembersSummaryPanelNew(final GroupMembersSummaryPresenterNew presenter,
- final I18nUITranslationService i18n, final WorkspaceSkeleton ws) {
- super(true);
- this.presenter = presenter;
- this.i18n = i18n;
- super.setHeaderText(i18n.t("Group members"));
- super.setHeaderTitle(i18n.t("People and groups collaborating in this group"));
- super.setBorderStylePrimaryName("k-dropdownouter-members");
- super.addStyleName("kune-Margin-Medium-t");
-
- final GridDragConfiguration dragConf = new GridDragConfiguration(UserGridPanel.USER_GROUP_DD, i18n
- .t("Drop in the chat area to start a chat.")
- + "<br/>" + i18n.t("Drop into a room to invite the user to join the chat room"));
- gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This is an orphaned project, if you are interested "
- + "please request to join to work on it"), dragConf, true, true, false, true, false);
- final EntitySummary entitySummary = ws.getEntitySummary();
- entitySummary.addInSummary(this);
- entitySummary.addListener(new ContainerListenerAdapter() {
- @Override
- public void onResize(final BoxComponent component, final int adjWidth, final int adjHeight,
- final int rawWidth, final int rawHeight) {
- gridMenuPanel.setWidth(adjWidth);
- }
- });
- this.setContent(gridMenuPanel);
- buttonsCache = new HashMap<GridButton, ToolbarButton>();
- }
-
- public void addButton(final GridButton gridButton) {
- // Workaround: gwt-ext don't have toolbar.removeItem method ...
- ToolbarButton button = buttonsCache.get(gridButton);
- if (button == null) {
- button = new ToolbarButton(gridButton.getTitle());
- button.setIcon(gridButton.getIcon());
- button.setTooltip(gridButton.getTooltip());
- button.addListener(new ButtonListenerAdapter() {
- public void onClick(final Button button, final EventObject e) {
- gridButton.getSlot().onEvent("");
- }
- });
- buttonsCache.put(gridButton, button);
- } else {
- button.setVisible(true);
- }
- gridMenuPanel.getBottomBar().addButton(button);
- }
-
- public void addItem(final GridItem<GroupDTO> gridItem) {
- gridMenuPanel.addItem(gridItem);
- }
-
- public void clear() {
- gridMenuPanel.removeAll();
- for (final ToolbarButton button : buttonsCache.values()) {
- // Workaround: gwt-ext don't have toolbar.removeItem method ...
- // gridMenuPanel.getBottomBar().getEl().removeChild(button.getElement());
- button.setVisible(false);
- button.removeFromParent();
- }
- }
-
- public void confirmAddCollab(final String groupShortName, final String groupLongName) {
- final String groupName = groupLongName + " (" + groupShortName + ")";
- MessageBox.confirm(i18n.t("Confirm addition of member"), i18n.t("Add [%s] as member?", groupName),
- new MessageBox.ConfirmCallback() {
- public void execute(final String btnID) {
- if (btnID.equals("yes")) {
- presenter.addCollab(groupShortName);
- }
- }
- });
- }
-
- public void setDropDownContentVisible(final boolean visible) {
- super.setContentVisible(visible);
- }
-
- public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
- super.setTheme(oldTheme, newTheme);
- }
-
- public void setVisible(final boolean visible) {
- super.setVisible(visible);
- }
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java (from rev 815, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,160 @@
+package org.ourproject.kune.workspace.client.socialnet;
+
+import java.util.List;
+
+import org.ourproject.kune.platf.client.dto.AccessListsDTO;
+import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.dto.LinkDTO;
+import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
+import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
+import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
+import org.ourproject.kune.platf.client.services.ImageDescriptor;
+import org.ourproject.kune.platf.client.services.ImageUtils;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridButton;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
+import org.ourproject.kune.workspace.client.workspace.GroupLiveSearcher;
+import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
+
+import com.calclab.suco.client.container.Provider;
+import com.calclab.suco.client.signal.Slot;
+
+public class GroupMembersSummaryPresenter extends SocialNetworkPresenter implements GroupMembersSummary {
+
+ protected GridButton addMember;
+ private GroupMembersSummaryView view;
+ private final I18nUITranslationService i18n;
+ private final GridGroup adminCategory;
+ private final GridGroup collabCategory;
+ private final GridGroup pendigCategory;
+ private final Session session;
+ private final Provider<SocialNetworkServiceAsync> snServiceProvider;
+
+ public GroupMembersSummaryPresenter(final I18nUITranslationService i18n,
+ final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session,
+ final Provider<SocialNetworkServiceAsync> snServiceProvider,
+ final Provider<GroupLiveSearcher> groupLiveSearcherProvider) {
+ super(i18n, stateManagerProvider, imageUtils, session, snServiceProvider);
+ this.i18n = i18n;
+ this.session = session;
+ this.snServiceProvider = snServiceProvider;
+ final String adminsTitle = i18n.t("Admins");
+ final String collabsTitle = i18n.t("Collaborators");
+ final String pendingTitle = i18n.t("Pending");
+ adminCategory = new GridGroup(adminsTitle, adminsTitle, i18n.t("People that can admin this group"), true);
+ collabCategory = new GridGroup(collabsTitle, collabsTitle, i18n
+ .t("Other people that collaborate with this group"), true);
+ pendigCategory = new GridGroup(pendingTitle, pendingTitle, i18n
+ .t("People pending to be accepted in this group by the admins"), imageUtils
+ .getImageHtml(ImageDescriptor.alert), true);
+ addMember = new GridButton("images/add-green.gif", i18n.t("Add member"), i18n
+ .t("Add a group or a person as member of this group"), new Slot<String>() {
+ public void onEvent(final String parameter) {
+ groupLiveSearcherProvider.get().onSelectionAdd(new Slot<LinkDTO>() {
+ public void onEvent(final LinkDTO link) {
+ view.confirmAddCollab(link.getShortName(), link.getLongName());
+ groupLiveSearcherProvider.get().onSelectionRemove(this);
+ }
+ });
+ groupLiveSearcherProvider.get().show();
+ }
+ });
+ super.addGroupOperation(gotoMemberMenuItem, false);
+ }
+
+ public void addCollab(final String groupShortName) {
+ Site.showProgressProcessing();
+ snServiceProvider.get().addCollabMember(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), groupShortName,
+ new AsyncCallbackSimple<SocialNetworkResultDTO>() {
+ public void onSuccess(final SocialNetworkResultDTO result) {
+ Site.hideProgress();
+ Site.info(i18n.t("Member added as collaborator"));
+ getStateManager().setSocialNetwork(result);
+ }
+
+ });
+ }
+
+ public void hide() {
+ view.setVisible(false);
+ }
+
+ public void init(final GroupMembersSummaryView view) {
+ this.view = view;
+ }
+
+ public void setState(final StateDTO state) {
+ if (state.getGroup().getType().equals(GroupDTO.PERSONAL)) {
+ hide();
+ } else {
+ setGroupMembers(state.getGroupMembers(), state.getGroupRights());
+ }
+ }
+
+ public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
+ view.setTheme(oldTheme, newTheme);
+ }
+
+ private boolean isMember(final boolean userIsAdmin, final boolean userIsCollab) {
+ return userIsAdmin || userIsCollab;
+ }
+
+ @SuppressWarnings("unchecked")
+ private void setGroupMembers(final SocialNetworkDTO socialNetwork, final AccessRightsDTO rights) {
+ final AccessListsDTO accessLists = socialNetwork.getAccessLists();
+
+ final List<GroupDTO> adminsList = accessLists.getAdmins().getList();
+ final List<GroupDTO> collabList = accessLists.getEditors().getList();
+ final List<GroupDTO> pendingCollabsList = socialNetwork.getPendingCollaborators().getList();
+
+ final int numAdmins = adminsList.size();
+
+ boolean userIsAdmin = rights.isAdministrable();
+ final boolean userIsCollab = !userIsAdmin && rights.isEditable();
+ final boolean userCanView = rights.isVisible();
+ boolean userIsMember = isMember(userIsAdmin, userIsCollab);
+
+ view.setDropDownContentVisible(false);
+ view.clear();
+
+ if (userIsAdmin) {
+ view.addButton(addMember);
+ }
+
+ view.setDraggable(session.isLogged());
+
+ if (!userIsMember) {
+ view.addButton(requestJoin);
+ } else if (userIsAdmin && numAdmins > 1 || userIsCollab) {
+ view.addButton(unJoinButton);
+ }
+
+ if (userCanView) {
+ for (final GroupDTO admin : adminsList) {
+ view
+ .addItem(createGridItem(adminCategory, admin, rights, changeToCollabMenuItem,
+ removeMemberMenuItem));
+ }
+ for (final GroupDTO collab : collabList) {
+ view
+ .addItem(createGridItem(collabCategory, collab, rights, changeToAdminMenuItem,
+ removeMemberMenuItem));
+ }
+ for (final GroupDTO pendingCollab : pendingCollabsList) {
+ view.addItem(createGridItem(pendigCategory, pendingCollab, rights, acceptJoinGroupMenuItem,
+ denyJoinGroupMenuItem));
+ }
+ }
+ view.setDropDownContentVisible(true);
+ view.setVisible(true);
+ }
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,140 +0,0 @@
-package org.ourproject.kune.workspace.client.socialnet;
-
-import java.util.List;
-
-import org.ourproject.kune.platf.client.dto.AccessListsDTO;
-import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
-import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.dto.StateDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.ImageDescriptor;
-import org.ourproject.kune.platf.client.services.ImageUtils;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
-import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
-
-import com.calclab.suco.client.container.Provider;
-
-public class GroupMembersSummaryPresenterNew extends SocialNetworkPresenter implements GroupMembersSummary {
-
- private GroupMembersSummaryViewNew view;
- private final I18nUITranslationService i18n;
- private final GridGroup adminCategory;
- private final GridGroup collabCategory;
- private final GridGroup pendigCategory;
- private final Session session;
- private final Provider<SocialNetworkServiceAsync> snServiceProvider;
-
- public GroupMembersSummaryPresenterNew(final I18nUITranslationService i18n,
- final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session,
- final Provider<SocialNetworkServiceAsync> snServiceProvider) {
- super(i18n, stateManagerProvider, imageUtils, session, snServiceProvider);
- this.i18n = i18n;
- this.session = session;
- this.snServiceProvider = snServiceProvider;
- final String adminsTitle = i18n.t("Admins");
- final String collabsTitle = i18n.t("Collaborators");
- final String pendingTitle = i18n.t("Pending");
- adminCategory = new GridGroup(adminsTitle, adminsTitle, i18n.t("People that can admin this group"), true);
- collabCategory = new GridGroup(collabsTitle, collabsTitle, i18n
- .t("Other people that collaborate with this group"), true);
- pendigCategory = new GridGroup(pendingTitle, pendingTitle, i18n
- .t("People pending to be accepted in this group by the admins"), imageUtils
- .getImageHtml(ImageDescriptor.alert), true);
- super.addGroupOperation(gotoMemberMenuItem, false);
- }
-
- public void addCollab(final String groupShortName) {
- Site.showProgressProcessing();
- snServiceProvider.get().addCollabMember(session.getUserHash(),
- session.getCurrentState().getGroup().getShortName(), groupShortName,
- new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member added as collaborator"));
- getStateManager().setSocialNetwork(result);
- }
-
- });
- }
-
- public void hide() {
- view.setVisible(false);
- }
-
- public void init(final GroupMembersSummaryViewNew view) {
- this.view = view;
- }
-
- public void setState(final StateDTO state) {
- if (state.getGroup().getType().equals(GroupDTO.PERSONAL)) {
- hide();
- } else {
- setGroupMembers(state.getGroupMembers(), state.getGroupRights());
- }
- }
-
- public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
- view.setTheme(oldTheme, newTheme);
- }
-
- private boolean isMember(final boolean userIsAdmin, final boolean userIsCollab) {
- return userIsAdmin || userIsCollab;
- }
-
- @SuppressWarnings("unchecked")
- private void setGroupMembers(final SocialNetworkDTO socialNetwork, final AccessRightsDTO rights) {
- final AccessListsDTO accessLists = socialNetwork.getAccessLists();
-
- final List<GroupDTO> adminsList = accessLists.getAdmins().getList();
- final List<GroupDTO> collabList = accessLists.getEditors().getList();
- final List<GroupDTO> pendingCollabsList = socialNetwork.getPendingCollaborators().getList();
-
- final int numAdmins = adminsList.size();
-
- boolean userIsAdmin = rights.isAdministrable();
- final boolean userIsCollab = !userIsAdmin && rights.isEditable();
- final boolean userCanView = rights.isVisible();
- boolean userIsMember = isMember(userIsAdmin, userIsCollab);
-
- view.setDropDownContentVisible(false);
- view.clear();
-
- if (userIsAdmin) {
- view.addButton(addMember);
- }
-
- if (!userIsMember) {
- view.addButton(requestJoin);
- } else if (userIsAdmin && numAdmins > 1 || userIsCollab) {
- view.addButton(unJoinButton);
- }
-
- if (userCanView) {
- for (final GroupDTO admin : adminsList) {
- view
- .addItem(createGridItem(adminCategory, admin, rights, changeToCollabMenuItem,
- removeMemberMenuItem));
- }
- for (final GroupDTO collab : collabList) {
- view
- .addItem(createGridItem(collabCategory, collab, rights, changeToAdminMenuItem,
- removeMemberMenuItem));
- }
- for (final GroupDTO pendingCollab : pendingCollabsList) {
- view.addItem(createGridItem(pendigCategory, pendingCollab, rights, acceptJoinGroupMenuItem,
- denyJoinGroupMenuItem));
- }
- }
- view.setDropDownContentVisible(true);
- view.setVisible(true);
- }
-
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java (from rev 804, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryViewNew.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryViewNew.java 2008-07-20 14:38:06 UTC (rev 804)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,26 @@
+package org.ourproject.kune.workspace.client.socialnet;
+
+import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridButton;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
+import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
+
+public interface GroupMembersSummaryView {
+
+ void addButton(GridButton gridButton);
+
+ void addItem(GridItem<GroupDTO> gridItem);
+
+ void clear();
+
+ void confirmAddCollab(String groupShortName, String groupLongName);
+
+ void setDraggable(boolean draggable);
+
+ void setDropDownContentVisible(boolean visible);
+
+ void setTheme(WsTheme oldTheme, WsTheme newTheme);
+
+ void setVisible(boolean visible);
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryViewNew.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryViewNew.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryViewNew.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,22 +0,0 @@
-package org.ourproject.kune.workspace.client.socialnet;
-
-import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridButton;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
-import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
-
-public interface GroupMembersSummaryViewNew {
-
- void addButton(GridButton gridButton);
-
- void addItem(GridItem<GroupDTO> gridItem);
-
- void clear();
-
- void setDropDownContentVisible(boolean visible);
-
- void setTheme(WsTheme oldTheme, WsTheme newTheme);
-
- void setVisible(boolean visible);
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/MemberAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/MemberAction.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/MemberAction.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,39 +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.workspace.client.socialnet;
-
-public class MemberAction {
-
- private final String text;
- private final String action;
-
- public MemberAction(final String text, final String action) {
- this.text = text;
- this.action = action;
- }
-
- public String getAction() {
- return action;
- }
-
- public String getText() {
- return text;
- }
-}
\ No newline at end of file
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-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -24,7 +24,6 @@
public class SocialNetworkPresenter {
- protected GridButton addMember;
protected GridButton requestJoin;
protected GridButton unJoinButton;
protected GridMenuItem<GroupDTO> changeToCollabMenuItem;
@@ -86,17 +85,6 @@
}
private void createButtons() {
- addMember = new GridButton("images/add-green.gif", i18n.t("Add member"), i18n
- .t("Add a group or a person as member of this group"), new Slot<String>() {
- public void onEvent(final String parameter) {
- // TODO
- // GroupLiveSearchComponent groupLiveSearchComponent
- // = workspace.getGroupLiveSearchComponent();
- // groupLiveSearchComponent.addListener(listener);
- // groupLiveSearchComponent.show();
- }
- });
-
requestJoin = new GridButton("images/add-green.gif", i18n.t("Participate"), i18n
.t("Request to participate in this group"), new Slot<String>() {
public void onEvent(final String parameter) {
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearchPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearchPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearchPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,26 +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.workspace.client.socialnet;
-
-import org.ourproject.kune.workspace.client.workspace.UserLiveSearchComponent;
-
-public class UserLiveSearchPresenter extends EntityLiveSearchPresenter implements UserLiveSearchComponent {
-
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearcherPresenter.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearchPresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearchPresenter.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/UserLiveSearcherPresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,26 @@
+/*
+ *
+ * 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.workspace.client.socialnet;
+
+import org.ourproject.kune.workspace.client.workspace.UserLiveSearcher;
+
+public class UserLiveSearcherPresenter extends EntityLiveSearcherPresenter implements UserLiveSearcher {
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearchPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearchPanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearchPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,145 +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.workspace.client.socialnet.ui;
-
-import org.ourproject.kune.platf.client.AbstractPresenter;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.ui.dialogs.BasicDialog;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearchView;
-import org.ourproject.kune.workspace.client.socialnet.GroupLiveSearchPresenter;
-
-import com.gwtext.client.core.Connection;
-import com.gwtext.client.core.Template;
-import com.gwtext.client.core.UrlParam;
-import com.gwtext.client.data.DataProxy;
-import com.gwtext.client.data.FieldDef;
-import com.gwtext.client.data.HttpProxy;
-import com.gwtext.client.data.JsonReader;
-import com.gwtext.client.data.Record;
-import com.gwtext.client.data.RecordDef;
-import com.gwtext.client.data.Store;
-import com.gwtext.client.data.StringFieldDef;
-import com.gwtext.client.widgets.form.ComboBox;
-import com.gwtext.client.widgets.form.FormPanel;
-import com.gwtext.client.widgets.form.event.ComboBoxListenerAdapter;
-
-public class EntityLiveSearchPanel implements EntityLiveSearchView {
-
- private static final int PAGINATION_SIZE = 10;
- private final AbstractPresenter presenter;
- private BasicDialog dialog;
- private final int searchType;
- private FormPanel searchForm;
- private final I18nTranslationService i18n;
-
- public EntityLiveSearchPanel(final AbstractPresenter initPresenter, final int searchType,
- final I18nTranslationService i18n) {
- this.presenter = initPresenter;
- this.searchType = searchType;
- this.i18n = i18n;
- }
-
- public void center() {
- dialog.center();
- }
-
- public void hide() {
- dialog.hide();
- searchForm.getForm().reset();
- }
-
- public void show() {
- if (dialog == null) {
- createGroupSearchDialog(searchType);
- }
- dialog.show();
- dialog.center();
- // DOM.setStyleAttribute(dialog.getElement(), "zIndex", "10000");
- }
-
- private void createGroupSearchDialog(final int searchType) {
- String title;
- if (searchType == EntityLiveSearchView.SEARCH_GROUPS) {
- title = i18n.t("Search existing users and groups");
- } else {
- title = i18n.t("Search existing users");
- }
- dialog = new BasicDialog(title, true, false, 285, 55);
- dialog.setClosable(true);
- dialog.setCollapsible(false);
-
- DataProxy dataProxy = null;
- switch (searchType) {
- case EntityLiveSearchView.SEARCH_GROUPS:
- dataProxy = new HttpProxy("/kune/json/GroupJSONService/search", Connection.POST);
- break;
- case EntityLiveSearchView.SEARCH_USERS:
- dataProxy = new HttpProxy("/kune/json/UserJSONService/search", Connection.POST);
- break;
- default:
- break;
- }
-
- JsonReader reader = new JsonReader(new RecordDef(new FieldDef[] { new StringFieldDef("shortName"),
- new StringFieldDef("longName"), new StringFieldDef("link"), new StringFieldDef("iconUrl") }));
- reader.setRoot("list");
- reader.setTotalProperty("size");
- reader.setId("shortName");
-
- final Store store = new Store(dataProxy, reader);
-
- store.load(new UrlParam[] { new UrlParam("query", "."), new UrlParam("first", 1),
- new UrlParam("max", PAGINATION_SIZE) });
-
- searchForm = new FormPanel();
- searchForm.setBorder(false);
- searchForm.setWidth(275);
- searchForm.setHideLabels(true);
-
- final Template resultTpl = new Template(
- "<div class=\"search-item\"><span class=\"kune-IconHyperlink\"><img alt=\"group logo\" src=\"images/group-def-icon.png\" style=\"height: 16px; width: 16px;\" />{shortName}: {longName}</span></div>");
- ComboBox cb = new ComboBox();
- cb.setStore(store);
- cb.setEmptyText(i18n.t("Write here to search"));
- cb.setDisplayField("longName");
- cb.setTypeAhead(true);
- cb.setLoadingText(i18n.t("Searching..."));
- cb.setWidth(268);
- cb.setPageSize(PAGINATION_SIZE);
- cb.setTpl(resultTpl);
- cb.setMode(ComboBox.REMOTE);
- cb.setMinChars(2);
- cb.setSelectOnFocus(false);
- cb.setHideTrigger(true);
- cb.setHideLabel(true);
- // setTitle(i18n.t("User or group"));
- cb.setItemSelector("div.search-item");
-
- cb.addListener(new ComboBoxListenerAdapter() {
- public void onSelect(final ComboBox comboBox, final Record record, final int index) {
- ((GroupLiveSearchPresenter) presenter).fireListener(record.getAsString("shortName"), record
- .getAsString("longName"));
- }
- });
-
- searchForm.add(cb);
- dialog.add(searchForm);
- }
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearcherPanel.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearchPanel.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearchPanel.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/EntityLiveSearcherPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,151 @@
+/*
+ *
+ * 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.workspace.client.socialnet.ui;
+
+import org.ourproject.kune.platf.client.dto.LinkDTO;
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.ui.dialogs.BasicDialog;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherView;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherPresenter;
+
+import com.gwtext.client.core.Connection;
+import com.gwtext.client.core.Template;
+import com.gwtext.client.core.UrlParam;
+import com.gwtext.client.data.DataProxy;
+import com.gwtext.client.data.FieldDef;
+import com.gwtext.client.data.HttpProxy;
+import com.gwtext.client.data.JsonReader;
+import com.gwtext.client.data.Record;
+import com.gwtext.client.data.RecordDef;
+import com.gwtext.client.data.Store;
+import com.gwtext.client.data.StringFieldDef;
+import com.gwtext.client.widgets.form.ComboBox;
+import com.gwtext.client.widgets.form.FormPanel;
+import com.gwtext.client.widgets.form.event.ComboBoxListenerAdapter;
+
+public class EntityLiveSearcherPanel implements EntityLiveSearcherView {
+
+ private static final String LONG_NAME_FIELD = "longName";
+ private static final String SHORT_NAME_FIELD = "shortName";
+ private static final String ICON_URL_FIELD = "iconUrl";
+ private static final String LINK_FIELD = "link";
+ private static final int PAGINATION_SIZE = 10;
+ private final EntityLiveSearcherPresenter presenter;
+ private BasicDialog dialog;
+ private final int searchType;
+ private FormPanel searchForm;
+ private final I18nTranslationService i18n;
+
+ public EntityLiveSearcherPanel(final EntityLiveSearcherPresenter presenter, final int searchType,
+ final I18nTranslationService i18n) {
+ this.presenter = presenter;
+ this.searchType = searchType;
+ this.i18n = i18n;
+ }
+
+ public void center() {
+ dialog.center();
+ }
+
+ public void hide() {
+ dialog.hide();
+ searchForm.getForm().reset();
+ }
+
+ public void show() {
+ if (dialog == null) {
+ createGroupSearchDialog(searchType);
+ }
+ dialog.show();
+ dialog.center();
+ }
+
+ private void createGroupSearchDialog(final int searchType) {
+ String title;
+ if (searchType == EntityLiveSearcherView.SEARCH_GROUPS) {
+ title = i18n.t("Search existing users and groups");
+ } else {
+ title = i18n.t("Search existing users");
+ }
+ dialog = new BasicDialog(title, true, false, 285, 55);
+ dialog.setClosable(true);
+ dialog.setCollapsible(false);
+
+ DataProxy dataProxy = null;
+ switch (searchType) {
+ case EntityLiveSearcherView.SEARCH_GROUPS:
+ dataProxy = new HttpProxy("/kune/json/GroupJSONService/search", Connection.POST);
+ break;
+ case EntityLiveSearcherView.SEARCH_USERS:
+ dataProxy = new HttpProxy("/kune/json/UserJSONService/search", Connection.POST);
+ break;
+ default:
+ break;
+ }
+
+ final JsonReader reader = new JsonReader(new RecordDef(
+ new FieldDef[] { new StringFieldDef(SHORT_NAME_FIELD), new StringFieldDef(LONG_NAME_FIELD),
+ new StringFieldDef(LINK_FIELD), new StringFieldDef(ICON_URL_FIELD) }));
+ reader.setRoot("list");
+ reader.setTotalProperty("size");
+ reader.setId(SHORT_NAME_FIELD);
+
+ final Store store = new Store(dataProxy, reader);
+
+ store.load(new UrlParam[] { new UrlParam("query", "."), new UrlParam("first", 1),
+ new UrlParam("max", PAGINATION_SIZE) });
+
+ searchForm = new FormPanel();
+ searchForm.setBorder(false);
+ searchForm.setWidth(275);
+ searchForm.setHideLabels(true);
+
+ final Template resultTpl = new Template(
+ "<div class=\"search-item\"><span class=\"kune-IconHyperlink\"><img alt=\"group logo\" src=\"images/group-def-icon.png\" style=\"height: 16px; width: 16px;\" />{shortName}: {longName}</span></div>");
+ final ComboBox cb = new ComboBox();
+ cb.setStore(store);
+ cb.setEmptyText(i18n.t("Write here to search"));
+ cb.setDisplayField(LONG_NAME_FIELD);
+ cb.setTypeAhead(true);
+ cb.setLoadingText(i18n.t("Searching..."));
+ cb.setWidth(268);
+ cb.setPageSize(PAGINATION_SIZE);
+ cb.setTpl(resultTpl);
+ cb.setMode(ComboBox.REMOTE);
+ cb.setMinChars(2);
+ cb.setSelectOnFocus(false);
+ cb.setHideTrigger(true);
+ cb.setHideLabel(true);
+ // setTitle(i18n.t("User or group"));
+ cb.setItemSelector("div.search-item");
+
+ cb.addListener(new ComboBoxListenerAdapter() {
+ public void onSelect(final ComboBox comboBox, final Record record, final int index) {
+ final LinkDTO link = new LinkDTO(record.getAsString(SHORT_NAME_FIELD), record
+ .getAsString(LONG_NAME_FIELD), record.getAsString(ICON_URL_FIELD), record
+ .getAsString(LINK_FIELD));
+ presenter.onSelection(link);
+ }
+ });
+
+ searchForm.add(cb);
+ dialog.add(searchForm);
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupLiveSearchPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupLiveSearchPanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupLiveSearchPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -19,14 +19,14 @@
*/
package org.ourproject.kune.workspace.client.socialnet.ui;
-import org.ourproject.kune.platf.client.AbstractPresenter;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearchView;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherView;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherPresenter;
-public class GroupLiveSearchPanel extends EntityLiveSearchPanel {
+public class GroupLiveSearchPanel extends EntityLiveSearcherPanel {
- public GroupLiveSearchPanel(final AbstractPresenter presenter, final I18nTranslationService i18n) {
- super(presenter, EntityLiveSearchView.SEARCH_GROUPS, i18n);
+ public GroupLiveSearchPanel(final EntityLiveSearcherPresenter presenter, final I18nTranslationService i18n) {
+ super(presenter, EntityLiveSearcherView.SEARCH_GROUPS, i18n);
}
}
\ No newline at end of file
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearchPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearchPanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearchPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,32 +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.workspace.client.socialnet.ui;
-
-import org.ourproject.kune.platf.client.AbstractPresenter;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearchView;
-
-public class UserLiveSearchPanel extends EntityLiveSearchPanel {
-
- public UserLiveSearchPanel(final AbstractPresenter presenter, final I18nTranslationService i18n) {
- super(presenter, EntityLiveSearchView.SEARCH_USERS, i18n);
- }
-
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearcherPanel.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearchPanel.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearchPanel.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/UserLiveSearcherPanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,32 @@
+/*
+ *
+ * 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.workspace.client.socialnet.ui;
+
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherView;
+import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearcherPresenter;
+
+public class UserLiveSearcherPanel extends EntityLiveSearcherPanel {
+
+ public UserLiveSearcherPanel(final EntityLiveSearcherPresenter presenter, final I18nTranslationService i18n) {
+ super(presenter, EntityLiveSearcherView.SEARCH_USERS, i18n);
+ }
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -49,7 +49,7 @@
}
public void setVisible(final boolean visible) {
- menu.setVisible(visible);
+ super.setVisible(visible);
}
}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearchComponent.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearchComponent.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearchComponent.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,31 +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.workspace.client.workspace;
-
-import org.ourproject.kune.platf.client.Component;
-import org.ourproject.kune.workspace.client.socialnet.EntityLiveSearchListener;
-
-public interface EntityLiveSearchComponent extends Component {
-
- void addListener(EntityLiveSearchListener presenter);
-
- void show();
-
-}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearcher.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearcher.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/EntityLiveSearcher.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.workspace.client.workspace;
+
+import org.ourproject.kune.platf.client.dto.LinkDTO;
+
+import com.calclab.suco.client.signal.Slot;
+
+public interface EntityLiveSearcher {
+
+ void onSelectionAdd(Slot<LinkDTO> slot);
+
+ void onSelectionRemove(Slot<LinkDTO> slot);
+
+ void show();
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearchComponent.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearchComponent.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearchComponent.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,25 +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.workspace.client.workspace;
-
-public interface GroupLiveSearchComponent extends EntityLiveSearchComponent {
-
-}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearcher.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearcher.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/GroupLiveSearcher.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,25 @@
+/*
+ *
+ * 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.workspace.client.workspace;
+
+public interface GroupLiveSearcher extends EntityLiveSearcher {
+
+}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearchComponent.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearchComponent.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearchComponent.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -1,24 +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.workspace.client.workspace;
-
-public interface UserLiveSearchComponent extends EntityLiveSearchComponent {
-}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearcher.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearchComponent.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearchComponent.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/UserLiveSearcher.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -0,0 +1,24 @@
+/*
+ *
+ * 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.workspace.client.workspace;
+
+public interface UserLiveSearcher extends EntityLiveSearcher {
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -55,14 +55,10 @@
public ContentTitleComponent getContentTitleComponent();
- public GroupLiveSearchComponent getGroupLiveSearchComponent();
-
public I18nTranslatorComponent getI18nTranslatorComponent();
public LicenseComponent getLicenseComponent();
- public UserLiveSearchComponent getUserLiveSearchComponent();
-
public void setContent(WorkspaceComponent contentComponent);
public void setContext(WorkspaceComponent contextComponent);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -100,10 +100,6 @@
return components.getContentTitleComponent();
}
- public GroupLiveSearchComponent getGroupLiveSearchComponent() {
- return components.getGroupLiveSearchComponent();
- }
-
public I18nTranslatorComponent getI18nTranslatorComponent() {
return components.getI18nTranslatorComponent();
}
@@ -112,10 +108,6 @@
return components.getLicenseComponent();
}
- public UserLiveSearchComponent getUserLiveSearchComponent() {
- return components.getUserLiveSearchComponent();
- }
-
public View getView() {
return view;
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -34,9 +34,9 @@
private ContentBottomToolBarComponent contentBottomToolBar;
private ThemeMenuComponent themeMenu;
private ContentToolBarComponent contentToolBar;
- private GroupLiveSearchComponent groupLiveSearch;
+ private GroupLiveSearcher groupLiveSearcher;
private I18nTranslatorComponent i18nTranslatorSearch;
- private UserLiveSearchComponent userLiveSearch;
+ private UserLiveSearcher userLiveSearch;
public WorkspaceUIComponents(final WorkspacePresenter presenter) {
}
@@ -69,13 +69,6 @@
return contentToolBar;
}
- public GroupLiveSearchComponent getGroupLiveSearchComponent() {
- if (groupLiveSearch == null) {
- groupLiveSearch = WorkspaceFactory.createGroupLiveSearchComponent();
- }
- return groupLiveSearch;
- }
-
public I18nTranslatorComponent getI18nTranslatorComponent() {
if (i18nTranslatorSearch == null) {
i18nTranslatorSearch = WorkspaceFactory.createI18nTranslatorComponent();
@@ -90,11 +83,4 @@
return license;
}
- public UserLiveSearchComponent getUserLiveSearchComponent() {
- if (userLiveSearch == null) {
- userLiveSearch = WorkspaceFactory.createUserLiveSearchComponent();
- }
- return userLiveSearch;
- }
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/GroupToolsBar.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/GroupToolsBar.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/GroupToolsBar.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -22,7 +22,6 @@
import java.util.HashMap;
import java.util.Iterator;
-import org.ourproject.kune.platf.client.services.ColorTheme;
import org.ourproject.kune.platf.client.tool.ToolTrigger;
import org.ourproject.kune.platf.client.tool.ToolTrigger.TriggerListener;
import org.ourproject.kune.platf.client.ui.HasColor;
@@ -38,70 +37,70 @@
private static final String ITEM_NOT_SELECTED = "kune-GroupToolsBar-itemNotSelected";
private Widget currentTab;
private final HashMap<String, Widget> tabs;
- private final ColorTheme colorTheme;
- public GroupToolsBar(final ColorTheme colorTheme) {
- this.colorTheme = colorTheme;
- tabs = new HashMap<String, Widget>();
- currentTab = null;
- addStyleName("kune-GroupToolsBar");
+ public GroupToolsBar() {
+ // this.colorTheme = colorTheme;
+ tabs = new HashMap<String, Widget>();
+ currentTab = null;
+ addStyleName("kune-GroupToolsBar");
}
public void addItem(final ToolTrigger trigger) {
- final int nextIndex = this.getWidgetCount();
- final Widget menuItem = createItem(nextIndex, trigger);
- setTabSelected(menuItem, false);
- tabs.put(trigger.getName(), menuItem);
- this.add(menuItem);
+ final int nextIndex = this.getWidgetCount();
+ final Widget menuItem = createItem(nextIndex, trigger);
+ setTabSelected(menuItem, false);
+ tabs.put(trigger.getName(), menuItem);
+ this.add(menuItem);
}
public void selectItem(final String toolName) {
- if (currentTab != null) {
- setTabSelected(currentTab, false);
- }
- currentTab = getWidget(toolName);
- setTabSelected(currentTab, true);
+ if (currentTab != null) {
+ setTabSelected(currentTab, false);
+ }
+ currentTab = getWidget(toolName);
+ setTabSelected(currentTab, true);
}
public void setTabsColors(final String selectedColor, final String unSelectedColor) {
- final Iterator<Widget> iter = tabs.values().iterator();
- while (iter.hasNext()) {
- final Widget w = iter.next();
- if (w == currentTab) {
- ((HasColor) w).setColor(selectedColor);
- } else {
- ((HasColor) w).setColor(unSelectedColor);
- }
- }
+ final Iterator<Widget> iter = tabs.values().iterator();
+ while (iter.hasNext()) {
+ final Widget w = iter.next();
+ if (w == currentTab) {
+ ((HasColor) w).setColor(selectedColor);
+ } else {
+ ((HasColor) w).setColor(unSelectedColor);
+ }
+ }
}
private Widget createItem(final int index, final ToolTrigger trigger) {
- final SimplePanel menuItem = new SimplePanel();
- addStyleName("Tab");
- final Hyperlink hl = new Hyperlink(trigger.getLabel(), "");
- trigger.setListener(new TriggerListener() {
- public void onStateChanged(final String encoded) {
- hl.setTargetHistoryToken(encoded);
- }
- });
- menuItem.add(hl);
- return new RoundedBorderDecorator(menuItem, RoundedBorderDecorator.RIGHT);
+ final SimplePanel menuItem = new SimplePanel();
+ addStyleName("Tab");
+ final Hyperlink hl = new Hyperlink(trigger.getLabel(), "");
+ trigger.setListener(new TriggerListener() {
+ public void onStateChanged(final String encoded) {
+ hl.setTargetHistoryToken(encoded);
+ }
+ });
+ menuItem.add(hl);
+ return new RoundedBorderDecorator(menuItem, RoundedBorderDecorator.RIGHT);
}
private Widget getWidget(final String toolName) {
- return tabs.get(toolName);
+ return tabs.get(toolName);
}
private void setTabSelected(final Widget tab, final boolean isSelected) {
- if (isSelected) {
- tab.removeStyleName(ITEM_NOT_SELECTED);
- tab.addStyleName(ITEM_SELECTED);
- } else {
- tab.removeStyleName(ITEM_SELECTED);
- tab.addStyleName(ITEM_NOT_SELECTED);
- }
- String color = isSelected ? colorTheme.getToolSelected() : colorTheme.getToolUnselected();
- ((HasColor) tab).setColor(color);
+ if (isSelected) {
+ tab.removeStyleName(ITEM_NOT_SELECTED);
+ tab.addStyleName(ITEM_SELECTED);
+ } else {
+ tab.removeStyleName(ITEM_SELECTED);
+ tab.addStyleName(ITEM_NOT_SELECTED);
+ }
+ // tring color = isSelected ? colorTheme.getToolSelected() :
+ // colorTheme.getToolUnselected();
+ // ((HasColor) tab).setColor(color);
}
}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -22,7 +22,6 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetId;
-import org.ourproject.kune.platf.client.services.ColorTheme;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.tool.ToolTrigger;
@@ -66,7 +65,6 @@
private DropDownPanel groupSummaryPanel;
private final VerticalPanel cntcxtVP;
private final ScrollPanel groupDropDownsSP;
- private final ColorTheme colorTheme;
private final BottomIconsTrayPanel bottomIconsTrayPanel;
private ContentTitlePanel contentTitlePanel;
private ContentSubTitlePanel contentSubTitlePanel;
@@ -81,10 +79,8 @@
private int previousRightWidgetWidth;
private final WorkspacePresenter presenter;
- public WorkspacePanel(final WorkspacePresenter presenter, final I18nTranslationService i18n,
- final ColorTheme colorTheme) {
+ public WorkspacePanel(final WorkspacePresenter presenter, final I18nTranslationService i18n) {
this.presenter = presenter;
- this.colorTheme = colorTheme;
// Initialize
final VerticalPanel generalVP = new VerticalPanel();
initWidget(generalVP);
@@ -92,7 +88,7 @@
final HorizontalPanel generalHP = new HorizontalPanel();
cntcxtVP = new VerticalPanel();
final VerticalPanel groupNavBarVP = new VerticalPanel();
- groupToolsBar = new GroupToolsBar(colorTheme);
+ groupToolsBar = new GroupToolsBar();
bottomIconsTrayPanel = new BottomIconsTrayPanel();
groupDropDownsSP = new ScrollPanel();
groupDropDownsVP = new VerticalPanel();
@@ -156,7 +152,7 @@
addStyleName("kune-WorkspacePanel");
setGroupLogo("");
generalHP.addStyleName("GeneralHP");
- contentTitleBarBorderDec.setColor(colorTheme.getContentMainBorder());
+ // contentTitleBarBorderDec.setColor(colorTheme.getContentMainBorder());
contentTitleBarHP.setWidth("100%");
contentSubTitleBarHP.setWidth("100%");
contentTitleBarHP.addStyleName("kune-ContentTitleBar");
@@ -172,7 +168,7 @@
contentBottomBarHP.addStyleName("kune-ContentBottomBar");
contentBottomBarHP.addStyleName("kune-ft12px");
groupDropDownsVP.addStyleName("kune-GroupSummaryPanel");
- bottomBorderDecorator.setColor(colorTheme.getContentMainBorder());
+ // bottomBorderDecorator.setColor(colorTheme.getContentMainBorder());
bottomIconsTrayPanel.addStyleName("kune-Margin-Medium-l");
bottomIconsTrayPanel.addStyleName("kune-BottomIconsTrayPanel");
bottomIconsTrayPanel.setHorizontalAlignment(HorizontalPanel.ALIGN_CENTER);
@@ -281,12 +277,12 @@
public void setGroupMembers(final View view) {
groupMembersPanel = (DropDownPanel) view;
- AddDropDown(groupMembersPanel, colorTheme.getGroupMembersDD());
+ // AddDropDown(groupMembersPanel, colorTheme.getGroupMembersDD());
}
public void setParticipation(final View view) {
participationPanel = (DropDownPanel) view;
- AddDropDown(participationPanel, colorTheme.getParticipationDD());
+ // AddDropDown(participationPanel, colorTheme.getParticipationDD());
}
public void setPutYourLogoVisible(final boolean visible) {
@@ -295,12 +291,12 @@
public void setSummary(final View view) {
groupSummaryPanel = (DropDownPanel) view;
- AddDropDown(groupSummaryPanel, colorTheme.getSummaryDD());
+ // AddDropDown(groupSummaryPanel, colorTheme.getSummaryDD());
}
public void setTags(final View view) {
tagsPanel = (DropDownPanel) view;
- AddDropDown(tagsPanel, colorTheme.getTagsDD());
+ // AddDropDown(tagsPanel, colorTheme.getTagsDD());
}
public void setTheme(final String theme) {
Modified: trunk/src/test/java/org/ourproject/kune/platf/client/ui/KuneStringUtilsTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/ui/KuneStringUtilsTest.java 2008-07-26 11:38:54 UTC (rev 815)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/ui/KuneStringUtilsTest.java 2008-07-26 16:44:17 UTC (rev 816)
@@ -9,43 +9,50 @@
public class KuneStringUtilsTest {
@Test
+ public void testTagNull() {
+ final String tagsString = null;
+ final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ assertEquals(0, tags.size());
+ }
+
+ @Test
public void testTagStripsSimple() {
- String tagsString = "ab cd";
- ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
- assertEquals("ab", tags.get(0));
- assertEquals("cd", tags.get(1));
+ final String tagsString = "ab cd";
+ final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ assertEquals("ab", tags.get(0));
+ assertEquals("cd", tags.get(1));
}
@Test
- public void testTagStripsWithQuotes() {
- String tagsString = "ab \"cd\"";
- ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
- assertEquals("ab", tags.get(0));
- assertEquals("cd", tags.get(1));
+ public void testTagStripsWithCommas() {
+ final String tagsString = "ab,cd";
+ final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ assertEquals("ab", tags.get(0));
+ assertEquals("cd", tags.get(1));
}
@Test
- public void testTagStripsWithSpaces() {
- String tagsString = " ab cd ";
- ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
- assertEquals("ab", tags.get(0));
- assertEquals("cd", tags.get(1));
+ public void testTagStripsWithCommasAndSpaces() {
+ final String tagsString = "ab, cd";
+ final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ assertEquals("ab", tags.get(0));
+ assertEquals("cd", tags.get(1));
}
@Test
- public void testTagStripsWithCommas() {
- String tagsString = "ab,cd";
- ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
- assertEquals("ab", tags.get(0));
- assertEquals("cd", tags.get(1));
+ public void testTagStripsWithQuotes() {
+ final String tagsString = "ab \"cd\"";
+ final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ assertEquals("ab", tags.get(0));
+ assertEquals("cd", tags.get(1));
}
@Test
- public void testTagStripsWithCommasAndSpaces() {
- String tagsString = "ab, cd";
- ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
- assertEquals("ab", tags.get(0));
- assertEquals("cd", tags.get(1));
+ public void testTagStripsWithSpaces() {
+ final String tagsString = " ab cd ";
+ final ArrayList<String> tags = KuneStringUtils.splitTags(tagsString);
+ assertEquals("ab", tags.get(0));
+ assertEquals("cd", tags.get(1));
}
}
1
0
Author: vjrj
Date: 2008-07-26 13:38:54 +0200 (Sat, 26 Jul 2008)
New Revision: 815
Removed:
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/ChangeGroupWsThemeAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/CreateNewGroupAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/OnlyCheckUserSessionAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AcceptJoinGroupAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddAdminAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddCollabAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddViewerAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DeleteMemberAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DenyJoinGroupAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/RequestJoinGroupAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetAdminAsCollabAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetCollabAsAdminAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/UnJoinGroupAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupListener.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupMembersSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuView.java
Modified:
trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java
trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkService.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/ColorTheme.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java
trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/DefaultForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroup.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/rpc/UserService.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java
Log:
Incomplete - task 15: Resolve signIn dialog issues (margins, message, overflow)
Incomplete - task 16: NewGroup refactorization
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -106,7 +106,6 @@
public void logout() {
if (!emiteDialog.isDialogNotStarted()) {
- emiteDialog.closeAllChats(false);
emiteDialog.setOwnPresence(OwnStatus.offline);
final UserChatOptions userChatOptions = getUserChatOptions("reset(a)example.com", "");
emiteDialog.refreshUserInfo(userChatOptions);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/DocumentContentPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -35,6 +35,7 @@
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetChild;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetId;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.workspace.client.WorkspaceEvents;
import org.ourproject.kune.workspace.client.component.WorkspaceDeckView;
import org.ourproject.kune.workspace.client.editor.TextEditor;
@@ -47,14 +48,16 @@
private final DocumentContentListener listener;
private final DocumentReader reader;
private final DocumentReaderControl readerControl;
+ private final Session session;
public DocumentContentPresenter(final DocumentFactory documentFactory, final DocumentContentListener listener,
- final WorkspaceDeckView view) {
- this.listener = listener;
- this.view = view;
- this.components = new DocumentContentComponents(documentFactory, this);
- reader = components.getDocumentReader();
- readerControl = components.getDocumentReaderControl();
+ final WorkspaceDeckView view, final Session session) {
+ this.listener = listener;
+ this.view = view;
+ this.session = session;
+ this.components = new DocumentContentComponents(documentFactory, this);
+ reader = components.getDocumentReader();
+ readerControl = components.getDocumentReaderControl();
}
public void attach() {
@@ -64,88 +67,85 @@
}
public View getView() {
- return view;
+ return view;
}
public void onCancel() {
- showContent();
- listener.onCancel();
- // Re-enable rateIt widget
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.ENABLE_RATEIT, null);
+ showContent();
+ listener.onCancel();
+ // Re-enable rateIt widget
+ DefaultDispatcher.getInstance().fire(WorkspaceEvents.ENABLE_RATEIT, null);
}
public void onDelete() {
- DefaultDispatcher.getInstance().fire(DocsEvents.DEL_CONTENT, content.getDocumentId());
+ DefaultDispatcher.getInstance().fire(DocsEvents.DEL_CONTENT, content.getDocumentId());
}
public void onEdit() {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.ONLY_CHECK_USER_SESSION,
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- if (content.hasDocument()) {
- // Don't permit rate content while your are editing
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.DISABLE_RATEIT, null);
- TextEditor editor = components.getDocumentEditor();
- editor.setContent(content.getContent());
- view.show(editor.getView());
- DefaultDispatcher.getInstance().fire(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET,
- ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT);
- DefaultDispatcher.getInstance().fire(
- PlatformEvents.ATTACH_TO_EXTENSIBLE_WIDGET,
- new ExtensibleWidgetChild(ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT, editor
- .getToolBar()));
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, null);
- } else {
- FolderEditor editor = components.getFolderEditor();
- editor.setFolder(content.getFolder());
- view.show(editor.getView());
- }
- listener.onEdit();
- }
- });
+ session.check(new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ if (content.hasDocument()) {
+ // Don't permit rate content while your are editing
+ DefaultDispatcher.getInstance().fire(WorkspaceEvents.DISABLE_RATEIT, null);
+ final TextEditor editor = components.getDocumentEditor();
+ editor.setContent(content.getContent());
+ view.show(editor.getView());
+ DefaultDispatcher.getInstance().fire(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET,
+ ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT);
+ DefaultDispatcher.getInstance().fire(PlatformEvents.ATTACH_TO_EXTENSIBLE_WIDGET,
+ new ExtensibleWidgetChild(ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT, editor.getToolBar()));
+ DefaultDispatcher.getInstance().fire(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, null);
+ } else {
+ final FolderEditor editor = components.getFolderEditor();
+ editor.setFolder(content.getFolder());
+ view.show(editor.getView());
+ }
+ listener.onEdit();
+ }
+ });
}
public void onSave(final String text) {
- content.setContent(text);
- DefaultDispatcher.getInstance().fire(DocsEvents.SAVE_DOCUMENT, new SaveDocumentActionParams(content, this));
- // Re-enable rateIt widget
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.ENABLE_RATEIT, null);
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, null);
+ content.setContent(text);
+ DefaultDispatcher.getInstance().fire(DocsEvents.SAVE_DOCUMENT, new SaveDocumentActionParams(content, this));
+ // Re-enable rateIt widget
+ DefaultDispatcher.getInstance().fire(WorkspaceEvents.ENABLE_RATEIT, null);
+ DefaultDispatcher.getInstance().fire(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, null);
}
public void onSaved() {
- components.getDocumentEditor().onSaved();
+ components.getDocumentEditor().onSaved();
}
public void onSaveFailed() {
- components.getDocumentEditor().onSaveFailed();
+ components.getDocumentEditor().onSaveFailed();
}
public void onTranslate() {
}
public void setContent(final StateDTO content) {
- this.content = content;
- showContent();
+ this.content = content;
+ showContent();
}
private void showContent() {
- if (content.hasDocument()) {
- reader.showDocument(content.getContent());
- components.getDocumentEditor().reset();
- readerControl.setRights(content.getContentRights());
- DefaultDispatcher.getInstance().fire(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET,
- ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT);
- DefaultDispatcher.getInstance().fire(PlatformEvents.ATTACH_TO_EXTENSIBLE_WIDGET,
- new ExtensibleWidgetChild(ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT, readerControl.getView()));
- view.show(reader.getView());
- } else {
- FolderViewer viewer = components.getFolderViewer();
- viewer.setFolder(content.getFolder());
- DefaultDispatcher.getInstance().fire(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET,
- ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT);
- view.show(viewer.getView());
- }
+ if (content.hasDocument()) {
+ reader.showDocument(content.getContent());
+ components.getDocumentEditor().reset();
+ readerControl.setRights(content.getContentRights());
+ DefaultDispatcher.getInstance().fire(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET,
+ ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT);
+ DefaultDispatcher.getInstance().fire(PlatformEvents.ATTACH_TO_EXTENSIBLE_WIDGET,
+ new ExtensibleWidgetChild(ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT, readerControl.getView()));
+ view.show(reader.getView());
+ } else {
+ final FolderViewer viewer = components.getFolderViewer();
+ viewer.setFolder(content.getFolder());
+ DefaultDispatcher.getInstance().fire(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET,
+ ExtensibleWidgetId.CONTENT_TOOLBAR_LEFT);
+ view.show(viewer.getView());
+ }
}
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -81,7 +81,7 @@
public DocumentContent createDocumentContent(final DocumentContentListener listener) {
final WorkspaceDeckPanel panel = new WorkspaceDeckPanel();
- final DocumentContentPresenter presenter = new DocumentContentPresenter(this, listener, panel);
+ final DocumentContentPresenter presenter = new DocumentContentPresenter(this, listener, panel, session);
return presenter;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/GroupService.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -30,19 +30,6 @@
public interface GroupService extends RemoteService {
- public class App {
- private static GroupServiceAsync ourInstance = null;
-
- public static synchronized GroupServiceAsync getInstance() {
- if (ourInstance == null) {
- ourInstance = (GroupServiceAsync) GWT.create(GroupService.class);
- ((ServiceDefTarget) ourInstance).setServiceEntryPoint(GWT.getModuleBaseURL() + "GroupService");
- }
- return ourInstance;
- }
-
- }
-
void changeGroupWsTheme(String userHash, String groupShortName, String theme) throws DefaultException;
StateToken createNewGroup(String userHash, GroupDTO group) throws DefaultException;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkService.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkService.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -24,25 +24,10 @@
import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
import org.ourproject.kune.platf.client.errors.DefaultException;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.RemoteService;
-import com.google.gwt.user.client.rpc.ServiceDefTarget;
public interface SocialNetworkService extends RemoteService {
- public static class App {
- private static SocialNetworkServiceAsync instance;
-
- public static SocialNetworkServiceAsync getInstance() {
- if (instance == null) {
- instance = (SocialNetworkServiceAsync) GWT.create(SocialNetworkService.class);
- ((ServiceDefTarget) instance).setServiceEntryPoint(GWT.getModuleBaseURL() + "SocialNetworkService");
- }
- return instance;
- }
-
- }
-
SocialNetworkResultDTO AcceptJoinGroup(String hash, String groupShortName, String groupToAcceptShortName)
throws DefaultException;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/ColorTheme.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/ColorTheme.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/ColorTheme.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -21,6 +21,7 @@
import com.google.gwt.i18n.client.Dictionary;
+@Deprecated
public class ColorTheme {
private static final String DEFAULT_KUNE_THEME = "defaultKuneTheme";
@@ -28,71 +29,71 @@
private Dictionary theme;
public ColorTheme() {
- this(DEFAULT_KUNE_THEME);
+ this(DEFAULT_KUNE_THEME);
}
public ColorTheme(final String theme) {
- this.theme = Dictionary.getDictionary(theme);
+ this.theme = Dictionary.getDictionary(theme);
}
- public void setTheme(final String theme) {
- this.theme = Dictionary.getDictionary(theme);
+ public String getContentBottomText() {
+ return theme.get("contentBottomText");
}
- public String getThemeName() {
- return theme.get("themeName");
+ public String getContentMainBorder() {
+ return theme.get("contentMainBorder");
}
- public String getToolSelected() {
- return theme.get("toolSelected");
+ public String getContentSubTitleText() {
+ return theme.get("contentSubTitleText");
}
- public String getToolUnselected() {
- return theme.get("toolUnselected");
+ public String getContentTitle() {
+ return theme.get("contentTitle");
}
- public String getContentMainBorder() {
- return theme.get("contentMainBorder");
+ public String getContentTitleText() {
+ return theme.get("contentTitleText");
}
- public String getContentTitle() {
- return theme.get("contentTitle");
+ public String getContext() {
+ return theme.get("context");
}
- public String getContentTitleText() {
- return theme.get("contentTitleText");
+ public String getGroupMembersDD() {
+ return theme.get("groupMembersDD");
}
- public String getContentSubTitleText() {
- return theme.get("contentSubTitleText");
+ public String getParticipationDD() {
+ return theme.get("participationDD");
}
- public String getContentBottomText() {
- return theme.get("contentBottomText");
+ public String getSplitter() {
+ return theme.get("splitter");
}
- public String getContext() {
- return theme.get("context");
+ public String getSummaryDD() {
+ return theme.get("summaryDD");
}
- public String getSplitter() {
- return theme.get("splitter");
+ public String getTagsDD() {
+ return theme.get("tagsDD");
}
- public String getGroupMembersDD() {
- return theme.get("groupMembersDD");
+ public String getThemeName() {
+ return theme.get("themeName");
}
- public String getParticipationDD() {
- return theme.get("participationDD");
+ public String getToolSelected() {
+ return theme.get("toolSelected");
}
- public String getSummaryDD() {
- return theme.get("summaryDD");
+ public String getToolUnselected() {
+ return theme.get("toolUnselected");
}
- public String getTagsDD() {
- return theme.get("tagsDD");
+ public void setTheme(final String theme) {
+ this.theme = Dictionary.getDictionary(theme);
}
}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -11,13 +11,19 @@
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.rpc.ContentService;
+import org.ourproject.kune.platf.client.rpc.GroupService;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
+import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
import org.ourproject.kune.platf.client.state.ContentProviderImpl;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.SessionImpl;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.state.StateManagerDefault;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.licensechoose.LicenseChoose;
+import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePanel;
+import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePresenter;
import org.ourproject.kune.workspace.client.newgroup.NewGroup;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
import org.ourproject.kune.workspace.client.newgroup.ui.NewGroupPanel;
@@ -36,6 +42,7 @@
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessagePresenter;
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessageView;
import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
+import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPanelNew;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPresenterNew;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryViewNew;
@@ -92,12 +99,15 @@
import com.calclab.suco.client.modules.ModuleBuilder;
import com.calclab.suco.client.scopes.SingletonScope;
import com.calclab.suco.client.signal.Slot;
+import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.History;
+import com.google.gwt.user.client.rpc.ServiceDefTarget;
public class KuneModule implements Module {
private final I18nLanguageDTO initialLang;
private final HashMap<String, String> lexicon;
+ private ModuleBuilder builder;
public KuneModule(final I18nLanguageDTO initialLang, final HashMap<String, String> lexicon) {
this.initialLang = initialLang;
@@ -109,6 +119,8 @@
}
public void onLoad(final ModuleBuilder builder) {
+ this.builder = builder;
+
builder.registerProvider(Kune.class, new Provider<Kune>() {
public Kune get() {
return new Kune(builder);
@@ -124,9 +136,35 @@
}
}, SingletonScope.class);
+ builder.registerProvider(UserServiceAsync.class, new Provider<UserServiceAsync>() {
+ public UserServiceAsync get() {
+ final UserServiceAsync service = (UserServiceAsync) GWT.create(UserService.class);
+ ((ServiceDefTarget) service).setServiceEntryPoint(GWT.getModuleBaseURL() + "UserService");
+ return service;
+ }
+ }, SingletonScope.class);
+
+ builder.registerProvider(SocialNetworkServiceAsync.class, new Provider<SocialNetworkServiceAsync>() {
+ public SocialNetworkServiceAsync get() {
+ final SocialNetworkServiceAsync snServiceAsync = (SocialNetworkServiceAsync) GWT
+ .create(SocialNetworkService.class);
+ ((ServiceDefTarget) snServiceAsync).setServiceEntryPoint(GWT.getModuleBaseURL()
+ + "SocialNetworkService");
+ return snServiceAsync;
+ }
+ }, SingletonScope.class);
+
+ builder.registerProvider(GroupServiceAsync.class, new Provider<GroupServiceAsync>() {
+ public GroupServiceAsync get() {
+ final GroupServiceAsync groupServiceAsync = (GroupServiceAsync) GWT.create(GroupService.class);
+ ((ServiceDefTarget) groupServiceAsync).setServiceEntryPoint(GWT.getModuleBaseURL() + "GroupService");
+ return groupServiceAsync;
+ }
+ }, SingletonScope.class);
+
builder.registerProvider(Session.class, new Provider<Session>() {
public Session get() {
- return new SessionImpl(Cookies.getCookie(Site.USERHASH), initialLang);
+ return new SessionImpl(Cookies.getCookie(Site.USERHASH), initialLang, p(UserServiceAsync.class));
}
}, SingletonScope.class);
@@ -142,11 +180,10 @@
}
}, SingletonScope.class);
- final I18nUITranslationService i18n = builder.getInstance(I18nUITranslationService.class);
+ final I18nUITranslationService i18n = i(I18nUITranslationService.class);
builder.registerProvider(KuneErrorHandler.class, new Provider<KuneErrorHandler>() {
public KuneErrorHandler get() {
- return new KuneErrorHandler(builder.getInstance(Session.class), i18n, builder
- .getProvider(WorkspaceSkeleton.class));
+ return new KuneErrorHandler(i(Session.class), i18n, p(WorkspaceSkeleton.class));
}
}, SingletonScope.class);
@@ -156,7 +193,7 @@
}
}, SingletonScope.class);
- final KuneErrorHandler errorHandler = builder.getInstance(KuneErrorHandler.class);
+ final KuneErrorHandler errorHandler = i(KuneErrorHandler.class);
AsyncCallbackSimple.init(errorHandler);
builder.registerProvider(ColorTheme.class, new Provider<ColorTheme>() {
@@ -177,16 +214,16 @@
}
}, SingletonScope.class);
- final WorkspaceSkeleton ws = builder.getInstance(WorkspaceSkeleton.class);
- final Images images = builder.getInstance(Images.class);
+ final WorkspaceSkeleton ws = i(WorkspaceSkeleton.class);
+ final Images images = i(Images.class);
builder.registerProvider(Application.class, new Provider<Application>() {
public Application get() {
- final Session session = builder.getInstance(Session.class);
+ final Session session = i(Session.class);
final ExtensibleWidgetsManager extensionPointManager = builder
.getInstance(ExtensibleWidgetsManager.class);
return new ApplicationDefault(session, extensionPointManager, i18n, builder
- .getInstance(ColorTheme.class), builder.getInstance(KuneErrorHandler.class), ws);
+ .getInstance(ColorTheme.class), i(KuneErrorHandler.class), ws);
}
}, SingletonScope.class);
@@ -211,7 +248,7 @@
builder.registerProvider(Site.class, new Provider<Site>() {
public Site get() {
- return new Site(i18n, builder.getInstance(SiteProgress.class), builder.getProvider(SiteMessage.class));
+ return new Site(i18n, i(SiteProgress.class), p(SiteMessage.class));
}
}, SingletonScope.class);
@@ -224,13 +261,12 @@
}
}, SingletonScope.class);
- builder.getInstance(SiteProgress.class);
- builder.getInstance(Site.class);
+ i(SiteProgress.class);
+ i(Site.class);
builder.registerProvider(SiteSignInLink.class, new Provider<SiteSignInLink>() {
public SiteSignInLink get() {
- final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter(builder
- .getInstance(Session.class));
+ final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter(i(Session.class));
final SiteSignInLinkPanel panel = new SiteSignInLinkPanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
@@ -239,9 +275,8 @@
builder.registerProvider(SiteSignOutLink.class, new Provider<SiteSignOutLink>() {
public SiteSignOutLink get() {
- final SiteSignOutLinkPresenter presenter = new SiteSignOutLinkPresenter(builder
- .getInstance(Session.class), UserService.App.getInstance(), builder
- .getInstance(KuneErrorHandler.class));
+ final SiteSignOutLinkPresenter presenter = new SiteSignOutLinkPresenter(i(Session.class),
+ p(UserServiceAsync.class), p(KuneErrorHandler.class));
final SiteSignOutLinkPanel panel = new SiteSignOutLinkPanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
@@ -251,7 +286,7 @@
builder.registerProvider(SiteNewGroupLink.class, new Provider<SiteNewGroupLink>() {
public SiteNewGroupLink get() {
final SiteNewGroupLinkPresenter presenter = new SiteNewGroupLinkPresenter();
- final SiteNewGroupLinkPanel panel = new SiteNewGroupLinkPanel(presenter, ws);
+ final SiteNewGroupLinkPanel panel = new SiteNewGroupLinkPanel(presenter, ws, i18n);
presenter.init(panel);
return presenter;
}
@@ -268,7 +303,7 @@
builder.registerProvider(SiteLogo.class, new Provider<SiteLogo>() {
public SiteLogo get() {
- final SiteLogoPresenter presenter = new SiteLogoPresenter(builder.getInstance(Session.class));
+ final SiteLogoPresenter presenter = new SiteLogoPresenter(i(Session.class));
final SiteLogoPanel panel = new SiteLogoPanel(presenter, ws);
presenter.init(panel);
return presenter;
@@ -286,7 +321,7 @@
builder.registerProvider(SiteSearch.class, new Provider<SiteSearch>() {
public SiteSearch get() {
- final SiteSearchPresenter presenter = new SiteSearchPresenter(builder.getProvider(SiteSearcher.class));
+ final SiteSearchPresenter presenter = new SiteSearchPresenter(p(SiteSearcher.class));
final SiteSearchPanel panel = new SiteSearchPanel(presenter, ws, i18n);
presenter.init(panel);
return presenter;
@@ -295,29 +330,39 @@
builder.registerProvider(SignIn.class, new Provider<SignIn>() {
public SignIn get() {
- final SignInPresenter presenter = new SignInPresenter(builder.getInstance(Session.class), builder
- .getInstance(StateManager.class), i18n, UserService.App.getInstance());
+ final SignInPresenter presenter = new SignInPresenter(i(Session.class), builder
+ .getInstance(StateManager.class), i18n, i(UserServiceAsync.class));
final SignInPanel view = new SignInPanel(presenter, i18n, ws);
presenter.init(view);
return presenter;
}
}, SingletonScope.class);
+ builder.registerProvider(LicenseChoose.class, new Provider<LicenseChoose>() {
+ public LicenseChoose get() {
+ final LicenseChoosePresenter presenter = new LicenseChoosePresenter(i(Session.class));
+ final LicenseChoosePanel view = new LicenseChoosePanel(presenter, i18n);
+ presenter.init(view);
+ return presenter;
+ }
+ });
+
builder.registerProvider(NewGroup.class, new Provider<NewGroup>() {
public NewGroup get() {
- final NewGroupPresenter presenter = new NewGroupPresenter(null, i18n);
- final NewGroupPanel view = new NewGroupPanel(presenter, i18n);
+ final NewGroupPresenter presenter = new NewGroupPresenter(i18n, i(Session.class),
+ i(StateManager.class), p(GroupServiceAsync.class));
+ final NewGroupPanel view = new NewGroupPanel(presenter, i18n, p(LicenseChoose.class));
presenter.init(view);
return presenter;
}
}, SingletonScope.class);
- builder.getInstance(SitePublicSpaceLink.class);
- builder.getInstance(SiteSignInLink.class);
- builder.getInstance(SiteSignOutLink.class);
- builder.getInstance(SiteNewGroupLink.class);
- builder.getInstance(SiteSearch.class);
- builder.getInstance(SiteLogo.class);
+ i(SitePublicSpaceLink.class);
+ i(SiteSignInLink.class);
+ i(SiteSignOutLink.class);
+ i(SiteNewGroupLink.class);
+ i(SiteSearch.class);
+ i(SiteLogo.class);
builder.registerProvider(EntityLogo.class, new Provider<EntityLogo>() {
public EntityLogo get() {
@@ -327,7 +372,7 @@
builder.registerProvider(WsThemePresenter.class, new Provider<WsThemePresenter>() {
public WsThemePresenter get() {
- final WsThemePresenter presenter = new WsThemePresenter(builder.getInstance(Session.class));
+ final WsThemePresenter presenter = new WsThemePresenter(i(Session.class), p(GroupServiceAsync.class));
final WsThemePanel panel = new WsThemePanel(ws, presenter, i18n);
presenter.init(panel);
return presenter;
@@ -364,14 +409,12 @@
builder.registerProvider(WorkspaceManager.class, new Provider<WorkspaceManager>() {
public WorkspaceManager get() {
- final WorkspaceManager presenter = new WorkspaceManager(builder.getInstance(SitePublicSpaceLink.class),
- builder.getInstance(EntityLogo.class), builder.getInstance(EntityTitlePresenter.class), builder
+ final WorkspaceManager presenter = new WorkspaceManager(i(SitePublicSpaceLink.class),
+ i(EntityLogo.class), i(EntityTitlePresenter.class), builder
.getInstance(EntitySubTitlePresenter.class), builder
- .getInstance(WsThemePresenter.class),
- builder.getInstance(EntityLicensePresenter.class), builder
+ .getInstance(WsThemePresenter.class), i(EntityLicensePresenter.class), builder
.getProvider(GroupMembersSummary.class), builder
- .getProvider(ParticipationSummary.class), builder.getProvider(TagsSummary.class),
- builder.getProvider(GroupSummary.class));
+ .getProvider(ParticipationSummary.class), p(TagsSummary.class), p(GroupSummary.class));
return presenter;
}
}, SingletonScope.class);
@@ -379,8 +422,8 @@
builder.registerProvider(StateManager.class, new Provider<StateManager>() {
public StateManager get() {
final StateManagerDefault stateManager = new StateManagerDefault(new ContentProviderImpl(
- ContentService.App.getInstance()), builder.getInstance(Session.class),
- new HistoryWrapperImpl(), builder.getInstance(WorkspaceManager.class));
+ ContentService.App.getInstance()), i(Session.class), new HistoryWrapperImpl(),
+ i(WorkspaceManager.class));
History.addHistoryListener(stateManager);
return stateManager;
}
@@ -388,9 +431,9 @@
builder.registerProvider(GroupMembersSummary.class, new Provider<GroupMembersSummary>() {
public GroupMembersSummary get() {
- final GroupMembersSummaryPresenterNew presenter = new GroupMembersSummaryPresenterNew(i18n, builder
- .getProvider(StateManager.class), builder.getInstance(ImageUtils.class), builder
- .getInstance(Session.class), SocialNetworkService.App.getInstance());
+ final GroupMembersSummaryPresenterNew presenter = new GroupMembersSummaryPresenterNew(i18n,
+ p(StateManager.class), i(ImageUtils.class), i(Session.class),
+ p(SocialNetworkServiceAsync.class));
final GroupMembersSummaryViewNew view = new GroupMembersSummaryPanelNew(presenter, i18n, ws);
presenter.init(view);
return presenter;
@@ -408,9 +451,9 @@
builder.registerProvider(ParticipationSummary.class, new Provider<ParticipationSummary>() {
public ParticipationSummary get() {
- final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(i18n, builder
- .getProvider(StateManager.class), builder.getInstance(ImageUtils.class), builder
- .getInstance(Session.class), SocialNetworkService.App.getInstance());
+ final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(i18n,
+ p(StateManager.class), i(ImageUtils.class), i(Session.class),
+ p(SocialNetworkServiceAsync.class));
final ParticipationSummaryView view = new ParticipationSummaryPanel(presenter, i18n, ws);
presenter.init(view);
return presenter;
@@ -419,8 +462,8 @@
builder.registerProvider(TagsSummary.class, new Provider<TagsSummary>() {
public TagsSummary get() {
- final TagsSummaryPresenter presenter = new TagsSummaryPresenter(builder.getProvider(Session.class),
- builder.getProvider(SiteSearcher.class));
+ final TagsSummaryPresenter presenter = new TagsSummaryPresenter(p(Session.class), builder
+ .getProvider(SiteSearcher.class));
final TagsSummaryPanel panel = new TagsSummaryPanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
@@ -428,15 +471,26 @@
}, SingletonScope.class);
// Register of tokens like "signin", "newgroup", "translate" etcetera
- builder.getInstance(StateManager.class).addSiteToken(SiteToken.signin.toString(), new Slot<StateToken>() {
+ i(StateManager.class).addSiteToken(SiteToken.signin.toString(), new Slot<StateToken>() {
public void onEvent(final StateToken previousStateToken) {
- builder.getInstance(SignIn.class).doSignIn(previousStateToken);
+ i(SignIn.class).doSignIn(previousStateToken);
}
});
- // builder.registerProvider(type, new Provider<>() {},
- // SingletonScope.class)
+ i(StateManager.class).addSiteToken(SiteToken.newgroup.toString(), new Slot<StateToken>() {
+ public void onEvent(final StateToken previousStateToken) {
+ i(NewGroup.class).doNewGroup(previousStateToken);
+ }
+ });
}
+ private <T> T i(final Class<T> componentType) {
+ return builder.getInstance(componentType);
+ }
+
+ private <T> Provider<T> p(final Class<T> componentKey) {
+ return builder.getProvider(componentKey);
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -28,6 +28,7 @@
import org.ourproject.kune.platf.client.dto.LicenseDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import com.calclab.suco.client.signal.Slot;
@@ -38,6 +39,8 @@
*/
public static int SESSION_DURATION = 1000 * 60 * 60 * 24 * 14;
+ public void check(AsyncCallbackSimple<?> callback);
+
public List<I18nCountryDTO> getCountries();
public Object[][] getCountriesArray();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -30,7 +30,10 @@
import org.ourproject.kune.platf.client.dto.LicenseDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
+import com.calclab.suco.client.container.Provider;
import com.calclab.suco.client.signal.Signal;
import com.calclab.suco.client.signal.Slot;
@@ -46,16 +49,23 @@
private final Signal<InitDataDTO> onInitDataReceived;
private final Signal<UserInfoDTO> onUserSignIn;
private final Signal<Object> onUserSignOut;
+ private final Provider<UserServiceAsync> userServiceProvider;
- public SessionImpl(final String userHash, final I18nLanguageDTO initialLanguage) {
+ public SessionImpl(final String userHash, final I18nLanguageDTO initialLanguage,
+ final Provider<UserServiceAsync> userServiceProvider) {
this.userHash = userHash;
currentLanguage = initialLanguage;
+ this.userServiceProvider = userServiceProvider;
languagesArray = null;
this.onInitDataReceived = new Signal<InitDataDTO>("initDataReceived");
this.onUserSignIn = new Signal<UserInfoDTO>("onUserSignIn");
this.onUserSignOut = new Signal<Object>("onUserSignOut");
}
+ public void check(final AsyncCallbackSimple<?> callback) {
+ userServiceProvider.get().onlyCheckSession(getUserHash(), callback);
+ }
+
public List<I18nCountryDTO> getCountries() {
return initData.getCountries();
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/DefaultForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/DefaultForm.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/DefaultForm.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -25,6 +25,10 @@
form.add(field);
}
+ public void addStyleName(final String cls) {
+ form.addStyleName(cls);
+ }
+
public FormPanel getForm() {
return form;
}
@@ -33,6 +37,10 @@
return form.getForm().isValid();
}
+ public void removeStyleName(final String cls) {
+ form.removeStyleName(cls);
+ }
+
public void reset() {
form.getForm().reset();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -29,13 +29,10 @@
import org.ourproject.kune.workspace.client.actions.AddGroupLiveSearchAction;
import org.ourproject.kune.workspace.client.actions.AddUserLiveSearchAction;
import org.ourproject.kune.workspace.client.actions.AttachToExtensibleWidgetAction;
-import org.ourproject.kune.workspace.client.actions.ChangeGroupWsThemeAction;
import org.ourproject.kune.workspace.client.actions.ClearExtensibleWidgetAction;
-import org.ourproject.kune.workspace.client.actions.CreateNewGroupAction;
import org.ourproject.kune.workspace.client.actions.DetachFromExtensibleWidgetAction;
import org.ourproject.kune.workspace.client.actions.DisableRateItAction;
import org.ourproject.kune.workspace.client.actions.EnableRateItAction;
-import org.ourproject.kune.workspace.client.actions.OnlyCheckUserSessionAction;
import org.ourproject.kune.workspace.client.actions.RateContentAction;
import org.ourproject.kune.workspace.client.actions.RecalculateWorkspaceAction;
import org.ourproject.kune.workspace.client.actions.ReloadContextAction;
@@ -43,16 +40,6 @@
import org.ourproject.kune.workspace.client.actions.i18n.GetLexiconAction;
import org.ourproject.kune.workspace.client.actions.i18n.GetTranslationAction;
import org.ourproject.kune.workspace.client.actions.i18n.ShowTranslatorAction;
-import org.ourproject.kune.workspace.client.actions.sn.AcceptJoinGroupAction;
-import org.ourproject.kune.workspace.client.actions.sn.AddAdminAction;
-import org.ourproject.kune.workspace.client.actions.sn.AddCollabAction;
-import org.ourproject.kune.workspace.client.actions.sn.AddViewerAction;
-import org.ourproject.kune.workspace.client.actions.sn.DeleteMemberAction;
-import org.ourproject.kune.workspace.client.actions.sn.DenyJoinGroupAction;
-import org.ourproject.kune.workspace.client.actions.sn.RequestJoinGroupAction;
-import org.ourproject.kune.workspace.client.actions.sn.SetAdminAsCollabAction;
-import org.ourproject.kune.workspace.client.actions.sn.SetCollabAsAdminAction;
-import org.ourproject.kune.workspace.client.actions.sn.UnJoinGroupAction;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.workspace.Workspace;
@@ -74,27 +61,10 @@
}
public void configure(final Register register) {
- register.addAction(WorkspaceEvents.ONLY_CHECK_USER_SESSION, new OnlyCheckUserSessionAction(session));
register.addAction(PlatformEvents.ATTACH_TO_EXTENSIBLE_WIDGET, new AttachToExtensibleWidgetAction(workspace));
register.addAction(PlatformEvents.DETACH_FROM_EXTENSIBLE_WIDGET,
new DetachFromExtensibleWidgetAction(workspace));
register.addAction(PlatformEvents.CLEAR_EXTENSIBLE_WIDGET, new ClearExtensibleWidgetAction(workspace));
- register.addAction(WorkspaceEvents.REQ_JOIN_GROUP, new RequestJoinGroupAction(session, stateManager, i18n));
- register.addAction(WorkspaceEvents.ACCEPT_JOIN_GROUP, new AcceptJoinGroupAction(session, stateManager,
- workspace, i18n));
- register.addAction(WorkspaceEvents.DENY_JOIN_GROUP, new DenyJoinGroupAction(session, stateManager, i18n));
- register.addAction(WorkspaceEvents.DEL_MEMBER, new DeleteMemberAction(session, stateManager, i18n));
- register.addAction(WorkspaceEvents.SET_COLLAB_AS_ADMIN, new SetCollabAsAdminAction(session, stateManager,
- workspace, i18n));
- register.addAction(WorkspaceEvents.SET_ADMIN_AS_COLLAB, new SetAdminAsCollabAction(session, stateManager,
- workspace, i18n));
- register
- .addAction(WorkspaceEvents.ADD_ADMIN_MEMBER, new AddAdminAction(session, stateManager, workspace, i18n));
- register.addAction(WorkspaceEvents.ADD_COLLAB_MEMBER, new AddCollabAction(session, stateManager, workspace,
- i18n));
- register.addAction(WorkspaceEvents.ADD_VIEWER_MEMBER, new AddViewerAction(session, stateManager, i18n));
- register.addAction(WorkspaceEvents.UNJOIN_GROUP, new UnJoinGroupAction(session, stateManager, i18n));
- register.addAction(WorkspaceEvents.CHANGE_GROUP_WSTHEME, new ChangeGroupWsThemeAction(session, workspace));
register.addAction(WorkspaceEvents.RATE_CONTENT, new RateContentAction(session, stateManager, i18n));
register.addAction(WorkspaceEvents.ENABLE_RATEIT, new EnableRateItAction(workspace));
register.addAction(WorkspaceEvents.DISABLE_RATEIT, new DisableRateItAction(workspace));
@@ -104,7 +74,6 @@
register.addAction(WorkspaceEvents.SHOW_TRANSLATOR, new ShowTranslatorAction(session, workspace, i18n));
register.addAction(WorkspaceEvents.DO_TRANSLATION, new DoTranslationAction(session, i18n));
register.addAction(WorkspaceEvents.GET_LEXICON, new GetLexiconAction(i18n));
- register.addAction(WorkspaceEvents.CREATE_NEW_GROUP, new CreateNewGroupAction(session));
register.addAction(WorkspaceEvents.RELOAD_CONTEXT, new ReloadContextAction(stateManager));
register.addAction(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, new RecalculateWorkspaceAction(workspace));
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -21,18 +21,6 @@
package org.ourproject.kune.workspace.client;
public interface WorkspaceEvents {
- public static final String ONLY_CHECK_USER_SESSION = "ws_OnlyCheckUserSession";
- public static final String REQ_JOIN_GROUP = "ws.RequestJoinGroup";
- public static final String DEL_MEMBER = "ws.DeleteMember";
- public static final String DENY_JOIN_GROUP = "ws.DenyJoinGroup";
- public static final String ACCEPT_JOIN_GROUP = "ws.AcceptJoinGroup";
- public static final String SET_COLLAB_AS_ADMIN = "ws.SetMemberAsAsmin";
- public static final String SET_ADMIN_AS_COLLAB = "ws.SetMemberAsCollab";
- public static final String ADD_ADMIN_MEMBER = "ws.AddAdminMember";
- public static final String ADD_COLLAB_MEMBER = "ws.AddCollabMember";
- public static final String ADD_VIEWER_MEMBER = "ws.AddViewerMember";
- public static final String UNJOIN_GROUP = "ws.UnJoinGroup";
- public static final String CHANGE_GROUP_WSTHEME = "ws.ChangeGroupWsTheme";
public static final String RATE_CONTENT = "ws.RateContent";
public static final String ENABLE_RATEIT = "ws.EnableRateIt";
public static final String DISABLE_RATEIT = "ws.DisableRateIt";
@@ -43,7 +31,6 @@
public static final String SHOW_SEARCHER = "ws.ShowSearcher";
public static final String GET_TRANSLATION = "i18n.GetTranslation";
public static final String DO_TRANSLATION = "i18n.doTranslation";
- public static final String CREATE_NEW_GROUP = "ws.CreateNewGroup";
public static final String RELOAD_CONTEXT = "ws.ReoloadContext";
public static final String WS_SPLITTER_STARTRESIZING = "ws.SplitterStartResizing";
public static final String WS_SPLITTER_STOPRESIZING = "ws.SplitterStopResizing";
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -48,9 +48,6 @@
import org.ourproject.kune.workspace.client.socialnet.UserLiveSearchPresenter;
import org.ourproject.kune.workspace.client.socialnet.ui.GroupLiveSearchPanel;
import org.ourproject.kune.workspace.client.socialnet.ui.UserLiveSearchPanel;
-import org.ourproject.kune.workspace.client.theme.ThemeMenuPanel;
-import org.ourproject.kune.workspace.client.theme.ThemeMenuPresenter;
-import org.ourproject.kune.workspace.client.theme.ThemeMenuView;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItems;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItemsPanel;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItemsPresenter;
@@ -67,7 +64,6 @@
import org.ourproject.kune.workspace.client.workspace.ContentToolBarPresenter;
import org.ourproject.kune.workspace.client.workspace.ContentToolBarView;
import org.ourproject.kune.workspace.client.workspace.GroupLiveSearchComponent;
-import org.ourproject.kune.workspace.client.workspace.ThemeMenuComponent;
import org.ourproject.kune.workspace.client.workspace.UserLiveSearchComponent;
import org.ourproject.kune.workspace.client.workspace.Workspace;
import org.ourproject.kune.workspace.client.workspace.WorkspacePresenter;
@@ -82,7 +78,6 @@
private static Session session;
private static I18nTranslationService i18n;
- private static ColorTheme colorTheme;
private static KuneErrorHandler errorHandler;
public static ContentBottomToolBarComponent createContentBottomToolBarComponent() {
@@ -161,13 +156,6 @@
return presenter;
}
- public static ThemeMenuComponent createThemeMenuComponent() {
- final ThemeMenuPresenter presenter = new ThemeMenuPresenter();
- final ThemeMenuView view = new ThemeMenuPanel(presenter, i18n, colorTheme);
- presenter.init(view);
- return presenter;
- }
-
public static UserLiveSearchComponent createUserLiveSearchComponent() {
final UserLiveSearchPresenter presenter = new UserLiveSearchPresenter();
final EntityLiveSearchView view = new UserLiveSearchPanel(presenter, i18n);
@@ -180,7 +168,6 @@
final ColorTheme colorTheme, final KuneErrorHandler errorHandler) {
WorkspaceFactory.session = session;
WorkspaceFactory.i18n = i18n;
- WorkspaceFactory.colorTheme = colorTheme;
WorkspaceFactory.errorHandler = errorHandler;
final WorkspacePresenter workspace = new WorkspacePresenter(session);
final WorkspaceView view = new WorkspacePanel(workspace, i18n, colorTheme);
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/ChangeGroupWsThemeAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/ChangeGroupWsThemeAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/ChangeGroupWsThemeAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.GroupService;
-import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-public class ChangeGroupWsThemeAction implements Action<String> {
-
- private final Workspace workspace;
- private final Session session;
-
- public ChangeGroupWsThemeAction(final Session session, final Workspace workspace) {
- this.session = session;
- this.workspace = workspace;
- }
-
- public void execute(final String theme) {
- onChangeGroupWsTheme(theme);
- }
-
- private void onChangeGroupWsTheme(final String theme) {
- Site.showProgressProcessing();
- final GroupServiceAsync server = GroupService.App.getInstance();
- server.changeGroupWsTheme(session.getUserHash(), session.getCurrentState().getGroup().getShortName(), theme,
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- workspace.setTheme(theme);
- Site.hideProgress();
- }
- });
-
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/CreateNewGroupAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/CreateNewGroupAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/CreateNewGroupAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,48 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.dto.StateToken;
-import org.ourproject.kune.platf.client.rpc.GroupService;
-import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
-import org.ourproject.kune.platf.client.rpc.ParamCallback;
-import org.ourproject.kune.platf.client.state.Session;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class CreateNewGroupAction implements Action<ParamCallback<GroupDTO, StateToken>> {
-
- private final Session session;
-
- public CreateNewGroupAction(final Session session) {
- this.session = session;
- }
-
- public void execute(final ParamCallback<GroupDTO, StateToken> paramCall) {
- onNewGroup(paramCall.getParam(), paramCall.getCallback());
- }
-
- private void onNewGroup(final GroupDTO group, final AsyncCallback<StateToken> callback) {
- GroupServiceAsync groupService = GroupService.App.getInstance();
- groupService.createNewGroup(session.getUserHash(), group, callback);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/OnlyCheckUserSessionAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/OnlyCheckUserSessionAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/OnlyCheckUserSessionAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,44 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class OnlyCheckUserSessionAction implements Action<AsyncCallback<Object>> {
- private final Session session;
-
- public OnlyCheckUserSessionAction(final Session session) {
- this.session = session;
- }
-
- public void execute(final AsyncCallback<Object> value) {
- onOnlyCheckUserSession(value);
- }
-
- private void onOnlyCheckUserSession(final AsyncCallback<Object> callback) {
- UserServiceAsync server = UserService.App.getInstance();
- server.onlyCheckSession(session.getUserHash(), callback);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AcceptJoinGroupAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AcceptJoinGroupAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AcceptJoinGroupAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,68 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-public class AcceptJoinGroupAction implements Action<String> {
-
- private final StateManager stateManager;
- private final Workspace workspace;
- private final Session session;
- private final I18nTranslationService i18n;
-
- @Deprecated
- public AcceptJoinGroupAction(final Session session, final StateManager stateManager, final Workspace workspace,
- final I18nTranslationService i18n) {
- this.session = session;
- this.workspace = workspace;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final String groupShortName) {
- onAcceptJoinGroup(groupShortName);
- }
-
- private void onAcceptJoinGroup(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.AcceptJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member accepted"));
- stateManager.setSocialNetwork(result);
- // FIXME
- // workspace.getGroupMembersComponent().showCollabs();
- }
- });
-
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddAdminAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddAdminAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddAdminAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,67 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-@Deprecated
-public class AddAdminAction implements Action<String> {
-
- private final Workspace workspace;
- private final StateManager stateManager;
- private final Session session;
- private final I18nTranslationService i18n;
-
- public AddAdminAction(final Session session, final StateManager stateManager, final Workspace workspace,
- final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.workspace = workspace;
- this.i18n = i18n;
- }
-
- public void execute(final String groupShortName) {
- onAddAdmin(groupShortName);
- }
-
- private void onAddAdmin(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.addAdminMember(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member added as admin"));
- stateManager.setSocialNetwork(result);
- // workspace.getGroupMembersComponent().showAdmins();
- }
- });
-
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddCollabAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddCollabAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddCollabAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,66 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-@Deprecated
-public class AddCollabAction implements Action<String> {
-
- private final Session session;
- private final StateManager stateManager;
- private final Workspace workspace;
- private final I18nTranslationService i18n;
-
- public AddCollabAction(final Session session, final StateManager stateManager, final Workspace workspace,
- final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.workspace = workspace;
- this.i18n = i18n;
- }
-
- public void execute(final String groupShortName) {
- onAddCollab(groupShortName);
- }
-
- private void onAddCollab(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.addCollabMember(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member added as collaborator"));
- stateManager.setSocialNetwork(result);
- // workspace.getGroupMembersComponent().showCollabs();
- }
- });
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddViewerAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddViewerAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/AddViewerAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,61 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-public class AddViewerAction implements Action<String> {
-
- private final Session session;
- private final StateManager stateManager;
- private final I18nTranslationService i18n;
-
- public AddViewerAction(final Session session, final StateManager stateManager, final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final String groupShortName) {
- onAddViewer(groupShortName);
- }
-
- private void onAddViewer(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.addViewerMember(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member can now view this group contents"));
- stateManager.setSocialNetwork(result);
- }
- });
-
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DeleteMemberAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DeleteMemberAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DeleteMemberAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,63 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-public class DeleteMemberAction implements Action<String> {
- private final Session session;
- private final StateManager stateManager;
- private final I18nTranslationService i18n;
-
- public DeleteMemberAction(final Session session, final StateManager stateManager, final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final String value) {
- onDeleteMember(value);
- }
-
- private void onDeleteMember(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.deleteMember(session.getUserHash(), session.getCurrentState().getGroup().getShortName(), groupShortName,
- new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member removed"));
- stateManager.reload();
- // in the future, only if I cannot be affected:
- // services.stateManager.reloadSocialNetwork((SocialNetworkResultDTO)
- // result);
- }
- });
-
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DenyJoinGroupAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DenyJoinGroupAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/DenyJoinGroupAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,60 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-public class DenyJoinGroupAction implements Action<String> {
-
- private final Session session;
- private final StateManager stateManager;
- private final I18nTranslationService i18n;
-
- public DenyJoinGroupAction(final Session session, final StateManager stateManager, final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final String value) {
- onDenyJoinGroup(value);
- }
-
- private void onDenyJoinGroup(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.denyJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member rejected"));
- stateManager.setSocialNetwork(result);
- }
- });
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/RequestJoinGroupAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/RequestJoinGroupAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/RequestJoinGroupAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,72 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-@SuppressWarnings("unchecked")
-public class RequestJoinGroupAction implements Action {
-
- private final Session session;
- private final StateManager stateManager;
- private final I18nTranslationService i18n;
-
- public RequestJoinGroupAction(final Session session, final StateManager stateManager,
- final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final Object value) {
- onRequestJoinGroup();
- }
-
- private void onRequestJoinGroup() {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.requestJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- Site.hideProgress();
- final String resultType = (String) result;
- if (resultType == SocialNetworkDTO.REQ_JOIN_ACEPTED) {
- Site.info(i18n.t("You are now member of this group"));
- stateManager.reload();
- }
- if (resultType == SocialNetworkDTO.REQ_JOIN_DENIED) {
- Site.important(i18n.t("Sorry this is a closed group"));
- }
- if (resultType == SocialNetworkDTO.REQ_JOIN_WAITING_MODERATION) {
- Site.info(i18n.t("Requested. Waiting for admins decision"));
- }
- }
- });
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetAdminAsCollabAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetAdminAsCollabAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetAdminAsCollabAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,66 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-@Deprecated
-public class SetAdminAsCollabAction implements Action<String> {
-
- private final Session session;
- private final StateManager stateManager;
- private final Workspace workspace;
- private final I18nTranslationService i18n;
-
- public SetAdminAsCollabAction(final Session session, final StateManager stateManager, final Workspace workspace,
- final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.workspace = workspace;
- this.i18n = i18n;
- }
-
- public void execute(final String value) {
- onSetAdminAsCollab(value);
- }
-
- private void onSetAdminAsCollab(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.setAdminAsCollab(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Type of member changed"));
- stateManager.reload();
- // workspace.getGroupMembersComponent().showCollabs();
- }
- });
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetCollabAsAdminAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetCollabAsAdminAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/SetCollabAsAdminAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,68 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-@Deprecated
-public class SetCollabAsAdminAction implements Action<String> {
-
- private final Session session;
- private final StateManager stateManager;
- private final Workspace workspace;
- private final I18nTranslationService i18n;
-
- public SetCollabAsAdminAction(final Session session, final StateManager stateManager, final Workspace workspace,
- final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.workspace = workspace;
- this.i18n = i18n;
- }
-
- public void execute(final String value) {
- onSetCollabAsAdmin(value);
- }
-
- private void onSetCollabAsAdmin(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.setCollabAsAdmin(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Type of member changed"));
- stateManager.setSocialNetwork(result);
- // workspace.getGroupMembersComponent().showAdmins();
- // workspace.getGroupMembersComponent().showAdmins();
- }
- });
-
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/UnJoinGroupAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/UnJoinGroupAction.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/sn/UnJoinGroupAction.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,62 +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.workspace.client.actions.sn;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-public class UnJoinGroupAction implements Action<String> {
- private final Session session;
- private final StateManager stateManager;
- private final I18nTranslationService i18n;
-
- public UnJoinGroupAction(final Session session, final StateManager stateManager, final I18nTranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final String value) {
- onUnJoinGroup(value);
- }
-
- private void onUnJoinGroup(final String groupShortName) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.unJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Removed as member"));
- stateManager.reload();
- // in the future with user info:
- // services.stateManager.reloadSocialNetwork((SocialNetworkResultDTO)
- // result);
- }
- });
- }
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -57,171 +57,171 @@
private final RadioButton nonCommercialRB;
private final I18nTranslationService i18n;
- public LicenseChoosePanel(final List<LicenseDTO> nonCCLicenses, final LicenseChoosePresenter presenter,
- final I18nTranslationService i18n) {
- this.i18n = i18n;
- Images img = Images.App.getInstance();
+ public LicenseChoosePanel(final LicenseChoosePresenter presenter, final I18nTranslationService i18n) {
+ this.i18n = i18n;
+ final Images img = Images.App.getInstance();
- VerticalPanel generalVP = new VerticalPanel();
- initWidget(generalVP);
+ final VerticalPanel generalVP = new VerticalPanel();
+ initWidget(generalVP);
- VerticalPanel licenseTypesVP = new VerticalPanel();
- ccRB = new RadioButton("ccOrNot", i18n.t("Creative Commons"));
- RadioButton notCcRB = new RadioButton("ccOrNot", i18n.t("Others licenses"));
- options = new DeckPanel();
- ccIntro = new Label(
- i18n
- .t("With a Creative Commons license, you keep your copyright but allow people to copy and distribute your work provided they give you credit — and only on the conditions you specify here. What do you want to do?"));
+ final VerticalPanel licenseTypesVP = new VerticalPanel();
+ ccRB = new RadioButton("ccOrNot", i18n.t("Creative Commons"));
+ final RadioButton notCcRB = new RadioButton("ccOrNot", i18n.t("Others licenses"));
+ options = new DeckPanel();
+ ccIntro = new Label(
+ i18n
+ .t("With a Creative Commons license, you keep your copyright but allow people to copy and distribute your work provided they give you credit — and only on the conditions you specify here. What do you want to do?"));
- otherLicenses = new ListBox();
- VerticalPanel ccOptionsVP = new VerticalPanel();
- VerticalPanel nonCcOptionsVP = new VerticalPanel();
+ otherLicenses = new ListBox();
+ final VerticalPanel ccOptionsVP = new VerticalPanel();
+ final VerticalPanel nonCcOptionsVP = new VerticalPanel();
- Label comercialLabel = new Label(i18n.t("Allow commercial uses of your work?"));
- commercialRB = new RadioButton("comercial", i18n.t("Yes"));
- nonCommercialRB = new RadioButton("comercial", i18n.t("No"));
- Label allowModifLabel = new Label(i18n.t("Allow modifications of your work?"));
- allowModifRB = new RadioButton("allowModif", i18n.t("Yes"));
- allowModifShareAlikeRB = new RadioButton("allowModif", i18n.t("Yes, as long as others share alike"));
- noModifRB = new RadioButton("allowModif", i18n.t("No"));
- generalVP.add(licenseTypesVP);
- licenseTypesVP.add(ccRB);
- licenseTypesVP.add(notCcRB);
+ final Label comercialLabel = new Label(i18n.t("Allow commercial uses of your work?"));
+ commercialRB = new RadioButton("comercial", i18n.t("Yes"));
+ nonCommercialRB = new RadioButton("comercial", i18n.t("No"));
+ final Label allowModifLabel = new Label(i18n.t("Allow modifications of your work?"));
+ allowModifRB = new RadioButton("allowModif", i18n.t("Yes"));
+ allowModifShareAlikeRB = new RadioButton("allowModif", i18n.t("Yes, as long as others share alike"));
+ noModifRB = new RadioButton("allowModif", i18n.t("No"));
+ generalVP.add(licenseTypesVP);
+ licenseTypesVP.add(ccRB);
+ licenseTypesVP.add(notCcRB);
- copyleft = new IconLabel(img.copyleft(), i18n.t("This is a copyleft license"), false);
- nonCopyleft = new IconLabel(img.noCopyleft(), i18n.t("This is not a copyleft license"), false);
- nonCopyleft.setVisible(false);
+ copyleft = new IconLabel(img.copyleft(), i18n.t("This is a copyleft license"), false);
+ nonCopyleft = new IconLabel(img.noCopyleft(), i18n.t("This is not a copyleft license"), false);
+ nonCopyleft.setVisible(false);
- generalVP.add(options);
+ generalVP.add(options);
- // Options
+ // Options
- optionsBox = new TitledPanel(i18n.t("Options"), options);
- generalVP.add(optionsBox);
- generalVP.add(nonCopyleft);
- generalVP.add(copyleft);
+ optionsBox = new TitledPanel(i18n.t("Options"), options);
+ generalVP.add(optionsBox);
+ generalVP.add(nonCopyleft);
+ generalVP.add(copyleft);
- ccOptionsVP.add(ccIntro);
- ccOptionsVP.add(comercialLabel);
- ccOptionsVP.add(commercialRB);
- ccOptionsVP.add(nonCommercialRB);
- ccOptionsVP.add(new HorizontalLine());
- ccOptionsVP.add(allowModifLabel);
- ccOptionsVP.add(allowModifRB);
- ccOptionsVP.add(allowModifShareAlikeRB);
- ccOptionsVP.add(noModifRB);
+ ccOptionsVP.add(ccIntro);
+ ccOptionsVP.add(comercialLabel);
+ ccOptionsVP.add(commercialRB);
+ ccOptionsVP.add(nonCommercialRB);
+ ccOptionsVP.add(new HorizontalLine());
+ ccOptionsVP.add(allowModifLabel);
+ ccOptionsVP.add(allowModifRB);
+ ccOptionsVP.add(allowModifShareAlikeRB);
+ ccOptionsVP.add(noModifRB);
- nonCcOptionsVP.add(otherLicenses);
+ nonCcOptionsVP.add(otherLicenses);
- options.add(ccOptionsVP);
- options.add(nonCcOptionsVP);
- options.showWidget(0);
+ options.add(ccOptionsVP);
+ options.add(nonCcOptionsVP);
+ options.showWidget(0);
- comercialLabel.addStyleName("kune-License-CC-Header");
- allowModifLabel.addStyleName("kune-License-CC-Header");
- nonCommercialRB.addStyleName("kune-Margin-Large-lr");
- commercialRB.addStyleName("kune-Margin-Large-lr");
- allowModifRB.addStyleName("kune-Margin-Large-lr");
- allowModifShareAlikeRB.addStyleName("kune-Margin-Large-lr");
- noModifRB.addStyleName("kune-Margin-Large-lr");
- optionsBox.addStyleName("kune-Margin-Medium-t");
- otherLicenses.addStyleName("kune-Margin-Large-trbl");
- generalVP.addStyleName("kune-Default-Form");
- copyleft.addStyleName("kune-Margin-Medium-t");
- nonCopyleft.addStyleName("kune-Margin-Medium-t");
+ comercialLabel.addStyleName("kune-License-CC-Header");
+ allowModifLabel.addStyleName("kune-License-CC-Header");
+ nonCommercialRB.addStyleName("kune-Margin-Large-lr");
+ commercialRB.addStyleName("kune-Margin-Large-lr");
+ allowModifRB.addStyleName("kune-Margin-Large-lr");
+ allowModifShareAlikeRB.addStyleName("kune-Margin-Large-lr");
+ noModifRB.addStyleName("kune-Margin-Large-lr");
+ optionsBox.addStyleName("kune-Margin-Medium-t");
+ otherLicenses.addStyleName("kune-Margin-Large-trbl");
+ generalVP.addStyleName("kune-Default-Form");
+ copyleft.addStyleName("kune-Margin-Medium-t");
+ nonCopyleft.addStyleName("kune-Margin-Medium-t");
- ccRB.addClickListener(new ClickListener() {
- public void onClick(final Widget arg0) {
- showCCoptions();
- presenter.onChange();
- }
- });
+ ccRB.addClickListener(new ClickListener() {
+ public void onClick(final Widget arg0) {
+ showCCoptions();
+ presenter.onChange();
+ }
+ });
- notCcRB.addClickListener(new ClickListener() {
- public void onClick(final Widget arg0) {
- showNotCCoptions();
- presenter.onChange();
- }
- });
+ notCcRB.addClickListener(new ClickListener() {
+ public void onClick(final Widget arg0) {
+ showNotCCoptions();
+ presenter.onChange();
+ }
+ });
- for (int i = 0; i < nonCCLicenses.size(); i++) {
- String licenseDescrip = nonCCLicenses.get(i).getLongName();
- otherLicenses.addItem(licenseDescrip);
- }
- if (nonCCLicenses.size() > 0) {
- otherLicenses.setItemSelected(0, true);
- otherLicenses.setVisibleItemCount(1);
- }
+ final List<LicenseDTO> nonCCLicenses = presenter.getNonCCLicenses();
+ for (int i = 0; i < nonCCLicenses.size(); i++) {
+ final String licenseDescrip = nonCCLicenses.get(i).getLongName();
+ otherLicenses.addItem(licenseDescrip);
+ }
+ if (nonCCLicenses.size() > 0) {
+ otherLicenses.setItemSelected(0, true);
+ otherLicenses.setVisibleItemCount(1);
+ }
- configureListeners(presenter);
+ configureListeners(presenter);
}
public int getSelectedNonCCLicenseIndex() {
- return otherLicenses.getSelectedIndex();
+ return otherLicenses.getSelectedIndex();
}
public boolean isAllowModif() {
- return allowModifRB.isChecked();
+ return allowModifRB.isChecked();
}
public boolean isAllowModifShareAlike() {
- return allowModifShareAlikeRB.isChecked();
+ return allowModifShareAlikeRB.isChecked();
}
public boolean isCCselected() {
- return ccRB.isChecked();
+ return ccRB.isChecked();
}
public boolean permitComercial() {
- return commercialRB.isChecked();
+ return commercialRB.isChecked();
}
public void reset() {
- options.showWidget(0);
- ccRB.setChecked(true);
- commercialRB.setChecked(true);
- allowModifShareAlikeRB.setChecked(true);
+ options.showWidget(0);
+ ccRB.setChecked(true);
+ commercialRB.setChecked(true);
+ allowModifShareAlikeRB.setChecked(true);
}
public void showCCoptions() {
- options.showWidget(0);
- optionsBox.setTitle(i18n.t("Options"));
+ options.showWidget(0);
+ optionsBox.setTitle(i18n.t("Options"));
}
public void showIsCopyleft() {
- nonCopyleft.setVisible(false);
- copyleft.setVisible(true);
+ nonCopyleft.setVisible(false);
+ copyleft.setVisible(true);
}
public void showIsNotCopyleft() {
- nonCopyleft.setVisible(true);
- copyleft.setVisible(false);
+ nonCopyleft.setVisible(true);
+ copyleft.setVisible(false);
}
public void showNotCCoptions() {
- options.showWidget(1);
- optionsBox.setTitle(i18n.t("Select one of these licenses:"));
+ options.showWidget(1);
+ optionsBox.setTitle(i18n.t("Select one of these licenses:"));
}
private void configureListeners(final LicenseChoosePresenter presenter) {
- ChangeListener changeListener = new ChangeListener() {
- public void onChange(final Widget arg0) {
- presenter.onChange();
- }
- };
+ final ChangeListener changeListener = new ChangeListener() {
+ public void onChange(final Widget arg0) {
+ presenter.onChange();
+ }
+ };
- ClickListener clickListener = new ClickListener() {
- public void onClick(final Widget arg0) {
- presenter.onChange();
- }
- };
- otherLicenses.addChangeListener(changeListener);
- ccRB.addClickListener(clickListener);
- allowModifRB.addClickListener(clickListener);
- commercialRB.addClickListener(clickListener);
- nonCommercialRB.addClickListener(clickListener);
- allowModifShareAlikeRB.addClickListener(clickListener);
- noModifRB.addClickListener(clickListener);
+ final ClickListener clickListener = new ClickListener() {
+ public void onClick(final Widget arg0) {
+ presenter.onChange();
+ }
+ };
+ otherLicenses.addChangeListener(changeListener);
+ ccRB.addClickListener(clickListener);
+ allowModifRB.addClickListener(clickListener);
+ commercialRB.addClickListener(clickListener);
+ nonCommercialRB.addClickListener(clickListener);
+ allowModifShareAlikeRB.addClickListener(clickListener);
+ noModifRB.addClickListener(clickListener);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/licensechoose/LicenseChoosePresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -19,10 +19,13 @@
*/
package org.ourproject.kune.workspace.client.licensechoose;
+import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
+import org.ourproject.kune.platf.client.state.Session;
import com.allen_sauer.gwt.log.client.Log;
@@ -30,59 +33,68 @@
private LicenseChooseView view;
- private List<LicenseDTO> licenses;
+ private final List<LicenseDTO> licenses;
- private List<LicenseDTO> licensesNonCCList;
+ private final List<LicenseDTO> licensesNonCCList;
- public LicenseChoosePresenter() {
+ public LicenseChoosePresenter(final Session session) {
+ licensesNonCCList = new ArrayList<LicenseDTO>();
+ licenses = session.getLicenses();
+ for (final Iterator<LicenseDTO> iterator = licenses.iterator(); iterator.hasNext();) {
+ final LicenseDTO license = iterator.next();
+ if (!license.isCC()) {
+ licensesNonCCList.add(license);
+ }
+ }
}
- public void init(final LicenseChooseView view, final List<LicenseDTO> licenses,
- final List<LicenseDTO> licensesNonCCList) {
- this.view = view;
- this.licenses = licenses;
- this.licensesNonCCList = licensesNonCCList;
- this.view.reset();
- }
-
public LicenseDTO getLicense() {
- String licenseShortName;
+ String licenseShortName;
- if (view.isCCselected()) {
- if (view.permitComercial()) {
- licenseShortName = view.isAllowModif() ? "by" : view.isAllowModifShareAlike() ? "by-sa" : "by-nd";
- } else {
- licenseShortName = view.isAllowModif() ? "by-nc" : view.isAllowModifShareAlike() ? "by-nc-sa"
- : "by-nc-nd";
- }
- } else {
- licenseShortName = licensesNonCCList.get(view.getSelectedNonCCLicenseIndex()).getShortName();
- }
- return getLicenseFromShortName(licenseShortName);
+ if (view.isCCselected()) {
+ if (view.permitComercial()) {
+ licenseShortName = view.isAllowModif() ? "by" : view.isAllowModifShareAlike() ? "by-sa" : "by-nd";
+ } else {
+ licenseShortName = view.isAllowModif() ? "by-nc" : view.isAllowModifShareAlike() ? "by-nc-sa"
+ : "by-nc-nd";
+ }
+ } else {
+ licenseShortName = licensesNonCCList.get(view.getSelectedNonCCLicenseIndex()).getShortName();
+ }
+ return getLicenseFromShortName(licenseShortName);
}
- private LicenseDTO getLicenseFromShortName(final String shortName) {
- for (int i = 0; i < licenses.size(); i++) {
- LicenseDTO licenseDTO = licenses.get(i);
- if (licenseDTO.getShortName().equals(shortName)) {
- return licenseDTO;
- }
- }
- Log.error("Internal error: License not found");
- throw new IndexOutOfBoundsException("License not found");
+ public List<LicenseDTO> getNonCCLicenses() {
+ return licensesNonCCList;
}
public View getView() {
- return view;
+ return view;
}
+ public void init(final LicenseChooseView view) {
+ this.view = view;
+ this.view.reset();
+ }
+
public void onChange() {
- LicenseDTO licenseDTO = getLicense();
- if (licenseDTO.isCopyleft()) {
- view.showIsCopyleft();
- } else {
- view.showIsNotCopyleft();
- }
+ final LicenseDTO licenseDTO = getLicense();
+ if (licenseDTO.isCopyleft()) {
+ view.showIsCopyleft();
+ } else {
+ view.showIsNotCopyleft();
+ }
}
+ private LicenseDTO getLicenseFromShortName(final String shortName) {
+ for (int i = 0; i < licenses.size(); i++) {
+ final LicenseDTO licenseDTO = licenses.get(i);
+ if (licenseDTO.getShortName().equals(shortName)) {
+ return licenseDTO;
+ }
+ }
+ Log.error("Internal error: License not found");
+ throw new IndexOutOfBoundsException("License not found");
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroup.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroup.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroup.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -19,10 +19,10 @@
*/
package org.ourproject.kune.workspace.client.newgroup;
-import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.StateToken;
public interface NewGroup {
- public View getView();
+ void doNewGroup(StateToken previousToken);
}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupListener.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupListener.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupListener.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,32 +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.workspace.client.newgroup;
-
-import org.ourproject.kune.platf.client.dto.StateToken;
-
-public interface NewGroupListener {
-
- void onNewGroupCancel();
-
- void onNewGroupClose();
-
- void onNewGroupCreated(StateToken homePage);
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -20,127 +20,142 @@
package org.ourproject.kune.workspace.client.newgroup;
import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.errors.GroupNameInUseException;
-import org.ourproject.kune.platf.client.rpc.ParamCallback;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+import com.calclab.suco.client.container.Provider;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
public class NewGroupPresenter implements NewGroup {
- private final NewGroupListener listener;
private NewGroupView view;
private final I18nTranslationService i18n;
+ private StateToken previousToken;
+ private final Session session;
+ private final StateManager stateManager;
+ private final Provider<GroupServiceAsync> groupServiceProvider;
- public NewGroupPresenter(final NewGroupListener listener, final I18nTranslationService i18n) {
- this.listener = listener;
- this.i18n = i18n;
+ public NewGroupPresenter(final I18nTranslationService i18n, final Session session, final StateManager stateManager,
+ final Provider<GroupServiceAsync> groupServiceProvider) {
+ this.i18n = i18n;
+ this.session = session;
+ this.stateManager = stateManager;
+ this.groupServiceProvider = groupServiceProvider;
}
+ public void doNewGroup(final StateToken previousTokenOrig) {
+ previousToken = previousTokenOrig;
+ session.check(new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ if (session.isLogged()) {
+ Site.showProgressProcessing();
+ view.show();
+ view.center();
+ } else {
+ stateManager.setState(previousTokenOrig);
+ Site.info(i18n.t("Sign in or register to create a group"));
+ }
+ }
+ });
+ }
+
public View getView() {
- return view;
+ return view;
}
public void init(final NewGroupView view) {
- this.view = view;
+ this.view = view;
}
public void onBack() {
- view.setEnabledBackButton(false);
- view.setEnabledFinishButton(false);
- view.setEnabledNextButton(true);
- view.showNewGroupInitialDataForm();
+ view.setEnabledBackButton(false);
+ view.setEnabledFinishButton(false);
+ view.setEnabledNextButton(true);
+ view.showNewGroupInitialDataForm();
}
public void onCancel() {
- listener.onNewGroupCancel();
- view.hide();
- reset();
+ view.hide();
+ reset();
+ stateManager.setState(previousToken);
}
- public void onChange() {
- // This doesn't work perfect (don't use now):
- // if (view.isFormValid()) {
- // view.setEnabledNextButton(true);
- // } else {
- // view.setEnabledNextButton(false);
- // }
- }
-
public void onClose() {
- listener.onNewGroupClose();
- reset();
+ reset();
+ stateManager.setState(previousToken);
}
public void onFinish() {
- view.maskProcessing();
- final String shortName = view.getShortName();
- final String longName = view.getLongName();
- final String publicDesc = view.getPublicDesc();
- final LicenseDTO license = view.getLicense();
- final GroupDTO group = new GroupDTO(shortName, longName, publicDesc, getTypeOfGroup());
- group.setDefaultLicense(license);
+ view.maskProcessing();
+ final String shortName = view.getShortName();
+ final String longName = view.getLongName();
+ final String publicDesc = view.getPublicDesc();
+ final LicenseDTO license = view.getLicense();
+ final GroupDTO group = new GroupDTO(shortName, longName, publicDesc, getTypeOfGroup());
+ group.setDefaultLicense(license);
- final AsyncCallback<StateToken> callback = new AsyncCallback<StateToken>() {
- public void onFailure(final Throwable caught) {
- try {
- throw caught;
- } catch (final GroupNameInUseException e) {
- onBack();
- view.unMask();
- setMessage(i18n.t("This name in already in use, try with a different name."), SiteErrorType.error);
- } catch (final Throwable e) {
- onBack(); // The messageP is in first page of wizard :-/
- view.unMask();
- setMessage(i18n.t("Error creating group"), SiteErrorType.error);
- GWT.log("Other kind of exception in group registration", null);
- throw new RuntimeException();
- }
- }
+ final AsyncCallback<StateToken> callback = new AsyncCallback<StateToken>() {
+ public void onFailure(final Throwable caught) {
+ try {
+ throw caught;
+ } catch (final GroupNameInUseException e) {
+ onBack();
+ view.unMask();
+ setMessage(i18n.t("This name in already in use, try with a different name."), SiteErrorType.error);
+ } catch (final Throwable e) {
+ onBack(); // The messageP is in first page of wizard :-/
+ view.unMask();
+ setMessage(i18n.t("Error creating group"), SiteErrorType.error);
+ GWT.log("Other kind of exception in group registration", null);
+ throw new RuntimeException();
+ }
+ }
- public void onSuccess(final StateToken token) {
- listener.onNewGroupCreated(token);
- view.hide();
- reset();
- view.unMask();
- }
- };
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.CREATE_NEW_GROUP,
- new ParamCallback<GroupDTO, StateToken>(group, callback));
+ public void onSuccess(final StateToken token) {
+ stateManager.setState(token);
+ view.hide();
+ reset();
+ view.unMask();
+ }
+ };
+ groupServiceProvider.get().createNewGroup(session.getUserHash(), group, callback);
}
public void onNext() {
- if (view.isFormValid()) {
- view.setEnabledBackButton(true);
- view.setEnabledFinishButton(true);
- view.setEnabledNextButton(false);
- view.showLicenseForm();
- }
+ if (view.isFormValid()) {
+ view.setEnabledBackButton(true);
+ view.setEnabledFinishButton(true);
+ view.setEnabledNextButton(false);
+ view.showLicenseForm();
+ }
}
public void setMessage(final String message, final SiteErrorType type) {
- view.setMessage(message, type);
+ view.setMessage(message, type);
}
private String getTypeOfGroup() {
- if (view.isProject()) {
- return GroupDTO.PROJECT;
- } else if (view.isOrphanedProject()) {
- return GroupDTO.ORPHANED_PROJECT;
- } else if (view.isOrganization()) {
- return GroupDTO.ORGANIZATION;
- } else {
- return GroupDTO.COMMUNITY;
- }
+ if (view.isProject()) {
+ return GroupDTO.PROJECT;
+ } else if (view.isOrphanedProject()) {
+ return GroupDTO.ORPHANED_PROJECT;
+ } else if (view.isOrganization()) {
+ return GroupDTO.ORGANIZATION;
+ } else {
+ return GroupDTO.COMMUNITY;
+ }
}
private void reset() {
- view.clearData();
+ view.clearData();
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/NewGroupView.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -25,6 +25,8 @@
public interface NewGroupView extends View {
+ void center();
+
void clearData();
LicenseDTO getLicense();
@@ -59,6 +61,8 @@
void setMessage(String message, SiteErrorType type);
+ void show();
+
void showLicenseForm();
void showNewGroupInitialDataForm();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -30,9 +30,9 @@
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePanel;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
import org.ourproject.kune.workspace.client.newgroup.NewGroupView;
-import org.ourproject.kune.workspace.client.sitebar.SiteBarFactory;
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessagePanel;
+import com.calclab.suco.client.container.Provider;
import com.google.gwt.user.client.ui.AbstractImagePrototype;
import com.google.gwt.user.client.ui.DeckPanel;
import com.google.gwt.user.client.ui.HTML;
@@ -49,7 +49,6 @@
import com.gwtext.client.widgets.form.Radio;
import com.gwtext.client.widgets.form.TextArea;
import com.gwtext.client.widgets.form.TextField;
-import com.gwtext.client.widgets.form.event.TextFieldListenerAdapter;
import com.gwtext.client.widgets.layout.FitLayout;
public class NewGroupPanel extends WizardDialog implements NewGroupView {
@@ -70,12 +69,13 @@
private TextField longNameField;
private TextArea publicDescField;
private final DeckPanel deck;
- private LicenseChoose licenseChoosePanel;
+ private final LicenseChoose licenseChoosePanel;
private final SiteMessagePanel messagesPanel;
private final I18nUITranslationService i18n;
private TextField tags;
- public NewGroupPanel(final NewGroupPresenter presenter, final I18nUITranslationService i18n) {
+ public NewGroupPanel(final NewGroupPresenter presenter, final I18nUITranslationService i18n,
+ final Provider<LicenseChoose> licenseChooseProvider) {
super(i18n.t("Register a new Group"), true, false, 460, 480, new WizardListener() {
public void onBack() {
presenter.onBack();
@@ -103,7 +103,7 @@
centerPanel.setLayout(new FitLayout());
deck = new DeckPanel();
newGroupInitialDataForm = createNewGroupInitialDataForm(presenter);
- createChooseLicensePanel();
+ licenseChoosePanel = licenseChooseProvider.get();
final VerticalPanel newGroupInitialDataVP = new VerticalPanel();
final HorizontalPanel newGroupInitialDataHP = new HorizontalPanel();
final VerticalPanel chooseLicenseVP = new VerticalPanel();
@@ -212,10 +212,6 @@
deck.showWidget(0);
}
- private void createChooseLicensePanel() {
- licenseChoosePanel = SiteBarFactory.createLicenseChoose();
- }
-
private FormPanel createNewGroupInitialDataForm(final NewGroupPresenter presenter) {
final FormPanel form = new FormPanel();
form.setBorder(false);
@@ -302,24 +298,6 @@
groupTypeFieldSet.setCollapsible(false);
- shortNameField.addListener(new TextFieldListenerAdapter() {
- public void onChange(final Field field, final Object newVal, final Object oldVal) {
- presenter.onChange();
- }
- });
-
- longNameField.addListener(new TextFieldListenerAdapter() {
- public void onChange(final Field field, final Object newVal, final Object oldVal) {
- presenter.onChange();
- }
- });
-
- publicDescField.addListener(new TextFieldListenerAdapter() {
- public void onChange(final Field field, final Object newVal, final Object oldVal) {
- presenter.onChange();
- }
- });
-
return form;
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -34,11 +34,6 @@
private static SiteProgress progress;
private static Provider<SiteMessage> siteMessageProvider;
- @Deprecated
- public static void doNewGroup(final String returnToken) {
- // sitebar.doNewGroup(returnToken);
- }
-
public static void error(final String value) {
getSiteMessage().setMessage(value, SiteErrorType.error);
}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,70 +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.workspace.client.sitebar;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.ourproject.kune.platf.client.dto.LicenseDTO;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.licensechoose.LicenseChoose;
-import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePanel;
-import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePresenter;
-import org.ourproject.kune.workspace.client.newgroup.NewGroup;
-import org.ourproject.kune.workspace.client.newgroup.NewGroupListener;
-import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
-import org.ourproject.kune.workspace.client.newgroup.ui.NewGroupPanel;
-import org.ourproject.kune.workspace.client.sitebar.login.SignIn;
-
-public class SiteBarFactory {
- private static SignIn login;
- private static NewGroup newGroup;
- private static Session session;
- private static I18nUITranslationService i18n;
-
- public static LicenseChoose createLicenseChoose() {
- final List<LicenseDTO> licensesList = session.getLicenses();
- final List<LicenseDTO> licensesNonCCList = new ArrayList<LicenseDTO>();
-
- for (final Iterator<LicenseDTO> iterator = licensesList.iterator(); iterator.hasNext();) {
- final LicenseDTO license = iterator.next();
- if (!license.isCC()) {
- licensesNonCCList.add(license);
- }
- }
- final LicenseChoosePresenter presenter = new LicenseChoosePresenter();
- final LicenseChoosePanel view = new LicenseChoosePanel(licensesNonCCList, presenter, i18n);
- presenter.init(view, licensesList, licensesNonCCList);
- return presenter;
- }
-
- public static NewGroup getNewGroupForm(final NewGroupListener listener) {
- if (newGroup == null) {
- final NewGroupPresenter presenter = new NewGroupPresenter(listener, i18n);
- final NewGroupPanel view = new NewGroupPanel(presenter, i18n);
- presenter.init(view);
- newGroup = presenter;
- }
- return newGroup;
- }
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -27,10 +27,8 @@
import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.ui.IconLabel;
import org.ourproject.kune.platf.client.ui.RoundedBorderDecorator;
-import org.ourproject.kune.workspace.client.newgroup.NewGroup;
import org.ourproject.kune.workspace.client.newgroup.ui.NewGroupPanel;
import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.sitebar.SiteBarFactory;
import org.ourproject.kune.workspace.client.sitebar.SiteToken;
import org.ourproject.kune.workspace.client.sitebar.login.SignInPanel;
@@ -315,10 +313,6 @@
}
public void showNewGroupDialog() {
- final NewGroup newGroupForm = SiteBarFactory.getNewGroupForm(presenter);
- newGroupPanel = (NewGroupPanel) newGroupForm.getView();
- newGroupPanel.show();
- Site.hideProgress();
}
public void showProgress(final String text) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -25,22 +25,13 @@
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-import org.ourproject.kune.platf.client.errors.SessionExpiredException;
-import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException;
-import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.workspace.client.WorkspaceEvents;
-import org.ourproject.kune.workspace.client.newgroup.NewGroupListener;
import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.rpc.AsyncCallback;
+public class SiteBarPresenter implements SiteBar {
-public class SiteBarPresenter implements SiteBar, NewGroupListener {
-
private SiteBarView view;
private final SiteBarListener listener;
private String previousToken;
@@ -66,51 +57,52 @@
}
public void doLogout() {
- final AsyncCallback<Object> callback = new AsyncCallback<Object>() {
- public void onFailure(final Throwable caught) {
- Site.hideProgress();
- try {
- throw caught;
- } catch (final SessionExpiredException e) {
- clientUILogout();
- } catch (final UserMustBeLoggedException e) {
- clientUILogout();
- } catch (final Throwable e) {
- GWT.log("Other kind of exception in doLogout", null);
- throw new RuntimeException();
- }
- }
-
- public void onSuccess(final Object arg0) {
- Site.hideProgress();
- clientUILogout();
- }
-
- private void clientUILogout() {
- view.restoreLoginLink();
- view.resetOptionsSubmenu();
- view.setLogoutLinkVisible(false);
- listener.onUserLoggedOut();
- }
- };
- UserService.App.getInstance().logout(session.getUserHash(), callback);
+ // final AsyncCallback<Object> callback = new AsyncCallback<Object>() {
+ // public void onFailure(final Throwable caught) {
+ // Site.hideProgress();
+ // try {
+ // throw caught;
+ // } catch (final SessionExpiredException e) {
+ // clientUILogout();
+ // } catch (final UserMustBeLoggedException e) {
+ // clientUILogout();
+ // } catch (final Throwable e) {
+ // GWT.log("Other kind of exception in doLogout", null);
+ // throw new RuntimeException();
+ // }
+ // }
+ //
+ // public void onSuccess(final Object arg0) {
+ // Site.hideProgress();
+ // clientUILogout();
+ // }
+ //
+ // private void clientUILogout() {
+ // view.restoreLoginLink();
+ // view.resetOptionsSubmenu();
+ // view.setLogoutLinkVisible(false);
+ // listener.onUserLoggedOut();
+ // }
+ // };
+ // UserService.App.getInstance().logout(session.getUserHash(),
+ // callback);
}
public void doNewGroup(final String previousTokenOrig) {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.ONLY_CHECK_USER_SESSION,
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- previousToken = previousTokenOrig;
- if (session.isLogged()) {
- Site.showProgressProcessing();
- view.showNewGroupDialog();
- view.centerNewGroupDialog();
- } else {
- returnToPreviousState();
- Site.info(i18n.t("Sign in or register to create a group"));
- }
- }
- });
+ // DefaultDispatcher.getInstance().fire(WorkspaceEvents.ONLY_CHECK_USER_SESSION,
+ // new AsyncCallbackSimple<Object>() {
+ // public void onSuccess(final Object result) {
+ // previousToken = previousTokenOrig;
+ // if (session.isLogged()) {
+ // Site.showProgressProcessing();
+ // view.showNewGroupDialog();
+ // view.centerNewGroupDialog();
+ // } else {
+ // returnToPreviousState();
+ // Site.info(i18n.t("Sign in or register to create a group"));
+ // }
+ // }
+ // });
}
public void doSearch(final String termToSearch) {
@@ -168,17 +160,19 @@
}
public void reloadUserInfo(final String userHash) {
- final UserServiceAsync siteBarService = UserService.App.getInstance();
- siteBarService.reloadUserInfo(userHash, new AsyncCallback<UserInfoDTO>() {
- public void onFailure(final Throwable arg0) {
- Site.hideProgress();
- }
-
- public void onSuccess(final UserInfoDTO response) {
- showLoggedUser(response);
- Site.hideProgress();
- }
- });
+ // //final UserServiceAsync siteBarService =
+ // UserService.App.getInstance();
+ // siteBarService.reloadUserInfo(userHash, new
+ // AsyncCallback<UserInfoDTO>() {
+ // public void onFailure(final Throwable arg0) {
+ // Site.hideProgress();
+ // }
+ //
+ // public void onSuccess(final UserInfoDTO response) {
+ // showLoggedUser(response);
+ // Site.hideProgress();
+ // }
+ // });
}
public void setState(final StateDTO state) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -34,6 +34,8 @@
private final ComboBox timezoneCombo;
public RegisterForm(final SignInPresenter presenter, final I18nUITranslationService i18n) {
+ super.addStyleName("kune-Margin-Large-l");
+
shortNameRegField = new TextField();
shortNameRegField.setFieldLabel(i18n.t("Nickname"));
shortNameRegField.setName(NICK_FIELD);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInForm.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInForm.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -13,6 +13,8 @@
private final TextField loginPassField;
public SignInForm(final I18nTranslationService i18n) {
+ super.addStyleName("kune-Margin-Large-trbl");
+
loginNickOrEmailField = new TextField();
loginNickOrEmailField.setFieldLabel(i18n.t("Nickname or email"));
loginNickOrEmailField.setName(NICKOREMAIL_FIELD);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/rpc/UserService.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/rpc/UserService.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/rpc/UserService.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -24,28 +24,10 @@
import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import org.ourproject.kune.platf.client.errors.DefaultException;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.RemoteService;
-import com.google.gwt.user.client.rpc.ServiceDefTarget;
public interface UserService extends RemoteService {
- public class App {
- private static UserServiceAsync ourInstance = null;
-
- public static synchronized UserServiceAsync getInstance() {
- if (ourInstance == null) {
- ourInstance = (UserServiceAsync) GWT.create(UserService.class);
- ((ServiceDefTarget) ourInstance).setServiceEntryPoint(GWT.getModuleBaseURL() + "UserService");
- }
- return ourInstance;
- }
-
- public static void setMock(final UserServiceAsync mock) {
- ourInstance = mock;
- }
- }
-
UserInfoDTO createUser(UserDTO user) throws DefaultException;
UserInfoDTO login(String nickOrEmail, String passwd) throws DefaultException;
Deleted: 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-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,210 +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.workspace.client.socialnet;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.ourproject.kune.platf.client.AbstractPresenter;
-import org.ourproject.kune.platf.client.PlatformEvents;
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.platf.client.dto.AccessListsDTO;
-import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
-import org.ourproject.kune.platf.client.dto.GroupDTO;
-import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
-import org.ourproject.kune.platf.client.dto.StateDTO;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuItem;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
-import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
-import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
-
-public class GroupMembersSummaryPresenter extends AbstractPresenter implements GroupMembersSummary,
- EntityLiveSearchListener {
-
- private GroupMembersSummaryView view;
- private final I18nTranslationService i18n;
- private final String adminCategory;
- private final String collabCategory;
- private final String pendigCategory;
- private final MemberAction gotoGroupCommand;
-
- public GroupMembersSummaryPresenter(final I18nTranslationService i18n) {
- this.i18n = i18n;
- adminCategory = i18n.t("Admins");
- collabCategory = i18n.t("Collaborators");
- pendigCategory = i18n.t("Pending");
- gotoGroupCommand = new MemberAction(i18n.t("Visit this member homepage"), PlatformEvents.GOTO);
- }
-
- public void addCollab(final String groupShortName) {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.ADD_COLLAB_MEMBER, groupShortName);
- }
-
- public void addGroupOperation(final GridMenuItem<GroupDTO> operation, final boolean mustBeLogged) {
- // TODO Auto-generated method stub
-
- }
-
- public View getView() {
- return view;
- }
-
- public void hide() {
- view.hide();
- }
-
- public void init(final GroupMembersSummaryView view) {
- this.view = view;
- }
-
- public void onJoin() {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.REQ_JOIN_GROUP, null);
- }
-
- public void onSelection(final String groupShortName, final String groupLongName) {
- view.confirmAddCollab(groupShortName, groupLongName);
- }
-
- public void removeGroupOperation(final GridMenuItem<GroupDTO> operation, final boolean mustBeLogged) {
- // TODO Auto-generated method stub
-
- }
-
- public void setState(final StateDTO state) {
- if (state.getGroup().getType() == GroupDTO.PERSONAL) {
- hide();
- } else {
- setGroupMembers(state.getGroupMembers(), state.getGroupRights());
- }
- }
-
- public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
- view.setTheme(oldTheme, newTheme);
- }
-
- public void showAdmins() {
- view.showCategory(adminCategory);
- }
-
- public void showCollabs() {
- view.showCategory(collabCategory);
- }
-
- private void addMembers(final List<GroupDTO> adminsList, final List<GroupDTO> collabList,
- final List<GroupDTO> pendingCollabsList, final int numAdmins, final int numCollaborators,
- final int numPendingCollabs, final boolean isAdmin, final MemberAction[] adminsActions,
- final MemberAction[] collabActions, final MemberAction[] pendingsActions, final MemberAction[] viewerActions) {
- if (numAdmins > 0) {
- view.addCategory(adminCategory, i18n.t("People that can admin this group"));
- iteraList(adminCategory, adminsList, adminsActions);
- }
- if (numCollaborators > 0) {
- view.addCategory(collabCategory, i18n.t("Other people that collaborate with this group"));
- iteraList(collabCategory, collabList, collabActions);
- }
- if (isAdmin) {
- if (numPendingCollabs > 0) {
- view.addCategory(pendigCategory, i18n.t("People pending to be accepted in this group by the admins"),
- GroupMembersSummaryView.ICON_ALERT);
- iteraList(pendigCategory, pendingCollabsList, pendingsActions);
- }
- }
-
- }
-
- private boolean isMember(final boolean userIsAdmin, final boolean userIsCollab) {
- return userIsAdmin || userIsCollab;
- }
-
- private void iteraList(final String categoryName, final List<GroupDTO> groupList, final MemberAction[] actions) {
- final Iterator<GroupDTO> iter = groupList.iterator();
- while (iter.hasNext()) {
- final GroupDTO group = iter.next();
- view.addCategoryMember(categoryName, group.getShortName(), group.getLongName(), actions);
- }
- }
-
- private void setGroupMembers(final SocialNetworkDTO socialNetwork, final AccessRightsDTO rights) {
- final AccessListsDTO accessLists = socialNetwork.getAccessLists();
-
- final List<GroupDTO> adminsList = accessLists.getAdmins().getList();
- final List<GroupDTO> collabList = accessLists.getEditors().getList();
- final List<GroupDTO> pendingCollabsList = socialNetwork.getPendingCollaborators().getList();
-
- final int numAdmins = adminsList.size();
- final int numCollaborators = collabList.size();
- final int numPendingCollabs = pendingCollabsList.size();
-
- boolean userIsAdmin = rights.isAdministrable();
- final boolean userIsCollab = !userIsAdmin && rights.isEditable();
- final boolean userCanView = rights.isVisible();
- boolean userIsMember = isMember(userIsAdmin, userIsCollab);
-
- view.setDropDownContentVisible(false);
- view.clear();
-
- if (userIsAdmin) {
- view.addAddMemberLink();
- }
-
- if (!userIsMember) {
- view.addJoinLink();
- } else if (userIsAdmin && numAdmins > 1 || userIsCollab) {
- view.addUnjoinLink();
- }
-
- if (numAdmins == 0 && numCollaborators == 0) {
- view.addComment(i18n.t("This is an orphaned project, if you are interested "
- + "please request to join to work on it"));
- }
-
- if (userCanView) {
- if (rights.isAdministrable()) {
- final MemberAction[] adminsActions = {
- new MemberAction(i18n.t("Remove this member"), WorkspaceEvents.DEL_MEMBER),
- new MemberAction(i18n.t("Change to collaborator"), WorkspaceEvents.SET_ADMIN_AS_COLLAB),
- gotoGroupCommand };
- final MemberAction[] collabActions = {
- new MemberAction(i18n.t("Remove this member"), WorkspaceEvents.DEL_MEMBER),
- new MemberAction(i18n.t("Change to admin"), WorkspaceEvents.SET_COLLAB_AS_ADMIN),
- gotoGroupCommand };
- final MemberAction[] pendingsActions = {
- new MemberAction(i18n.t("Accept this member"), WorkspaceEvents.ACCEPT_JOIN_GROUP),
- new MemberAction(i18n.t("Don't accept this member"), WorkspaceEvents.DENY_JOIN_GROUP),
- gotoGroupCommand };
- final MemberAction[] viewerActions = { gotoGroupCommand };
- addMembers(adminsList, collabList, pendingCollabsList, numAdmins, numCollaborators, numPendingCollabs,
- userIsAdmin, adminsActions, collabActions, pendingsActions, viewerActions);
- } else if (rights.isEditable() || rights.isVisible()) {
- final MemberAction[] adminsActions = { gotoGroupCommand };
- final MemberAction[] collabActions = { gotoGroupCommand };
- final MemberAction[] pendingsActions = { gotoGroupCommand };
- final MemberAction[] viewerActions = { gotoGroupCommand };
- addMembers(adminsList, collabList, pendingCollabsList, numAdmins, numCollaborators, numPendingCollabs,
- userIsAdmin, adminsActions, collabActions, pendingsActions, viewerActions);
- }
- }
- view.setDropDownContentVisible(true);
- view.show();
- }
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -30,15 +30,15 @@
private final GridGroup collabCategory;
private final GridGroup pendigCategory;
private final Session session;
- private final SocialNetworkServiceAsync snService;
+ private final Provider<SocialNetworkServiceAsync> snServiceProvider;
public GroupMembersSummaryPresenterNew(final I18nUITranslationService i18n,
final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session,
- final SocialNetworkServiceAsync snService) {
- super(i18n, stateManagerProvider, imageUtils, session, snService);
+ final Provider<SocialNetworkServiceAsync> snServiceProvider) {
+ super(i18n, stateManagerProvider, imageUtils, session, snServiceProvider);
this.i18n = i18n;
this.session = session;
- this.snService = snService;
+ this.snServiceProvider = snServiceProvider;
final String adminsTitle = i18n.t("Admins");
final String collabsTitle = i18n.t("Collaborators");
final String pendingTitle = i18n.t("Pending");
@@ -53,8 +53,9 @@
public void addCollab(final String groupShortName) {
Site.showProgressProcessing();
- snService.addCollabMember(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() {
+ snServiceProvider.get().addCollabMember(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), groupShortName,
+ new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
Site.hideProgress();
Site.info(i18n.t("Member added as collaborator"));
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -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.workspace.client.socialnet;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
-
-public interface GroupMembersSummaryView extends View {
-
- public static final String ICON_ALERT = "alert";
-
- void addAddMemberLink();
-
- void addCategory(String name, String title);
-
- void addCategory(String name, String title, String iconType);
-
- void addCategoryMember(String categoryName, String name, String title, MemberAction[] memberActions);
-
- void addComment(String comment);
-
- void addJoinLink();
-
- void addUnjoinLink();
-
- void clear();
-
- void confirmAddCollab(String groupShortName, String groupLongName);
-
- void hide();
-
- void setDropDownContentVisible(boolean visible);
-
- void setTheme(WsTheme oldTheme, WsTheme newTheme);
-
- void show();
-
- void showCategory(String name);
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -46,8 +46,8 @@
public ParticipationSummaryPresenter(final I18nUITranslationService i18n,
final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session,
- final SocialNetworkServiceAsync snService) {
- super(i18n, stateManagerProvider, imageUtils, session, snService);
+ final Provider<SocialNetworkServiceAsync> snServiceProvider) {
+ super(i18n, stateManagerProvider, imageUtils, session, snServiceProvider);
adminCategory = new GridGroup("admin in:", " ", i18n.tWithNT("Administrate these groups",
"talking about a person"), false);
collabCategory = new GridGroup(i18n.t("and as collaborator in:"), " ", i18n.t("Collaborate in these groups"),
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-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -5,7 +5,6 @@
import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
import org.ourproject.kune.platf.client.services.ImageDescriptor;
import org.ourproject.kune.platf.client.services.ImageUtils;
@@ -38,7 +37,7 @@
protected GridMenuItem<GroupDTO> unJoinMenuItem;
private final I18nUITranslationService i18n;
private final Provider<StateManager> stateManagerProvider;
- private final SocialNetworkServiceAsync snService;
+ private final Provider<SocialNetworkServiceAsync> snServiceProvider;
private final Session session;
private final GridMenuItemCollection<GroupDTO> otherOperations;
private final GridMenuItemCollection<GroupDTO> otherLoggedOperations;
@@ -46,12 +45,12 @@
public SocialNetworkPresenter(final I18nUITranslationService i18n,
final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session,
- final SocialNetworkServiceAsync snService) {
+ final Provider<SocialNetworkServiceAsync> snServiceProvider) {
this.i18n = i18n;
this.stateManagerProvider = stateManagerProvider;
this.imageUtils = imageUtils;
this.session = session;
- this.snService = snService;
+ this.snServiceProvider = snServiceProvider;
createButtons();
createMenuActions();
otherOperations = new GridMenuItemCollection<GroupDTO>();
@@ -102,8 +101,8 @@
.t("Request to participate in this group"), new Slot<String>() {
public void onEvent(final String parameter) {
Site.showProgressProcessing();
- snService.requestJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- new AsyncCallbackSimple<Object>() {
+ snServiceProvider.get().requestJoinGroup(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), new AsyncCallbackSimple<Object>() {
public void onSuccess(final Object result) {
Site.hideProgress();
final String resultType = (String) result;
@@ -168,8 +167,9 @@
.t("Change to collaborator"), new Slot<GroupDTO>() {
public void onEvent(final GroupDTO group) {
Site.showProgressProcessing();
- snService.setCollabAsAdmin(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- group.getShortName(), new AsyncCallbackSimple<SocialNetworkResultDTO>() {
+ snServiceProvider.get().setCollabAsAdmin(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), group.getShortName(),
+ new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
Site.hideProgress();
Site.info(i18n.t("Type of member changed"));
@@ -182,8 +182,8 @@
new Slot<GroupDTO>() {
public void onEvent(final GroupDTO group) {
Site.showProgressProcessing();
- snService.deleteMember(session.getUserHash(), session.getCurrentState().getGroup()
- .getShortName(), group.getShortName(),
+ snServiceProvider.get().deleteMember(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), group.getShortName(),
new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
Site.hideProgress();
@@ -201,9 +201,8 @@
new Slot<GroupDTO>() {
public void onEvent(final GroupDTO group) {
Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.addAdminMember(session.getUserHash(), session.getCurrentState().getGroup()
- .getShortName(), group.getShortName(),
+ snServiceProvider.get().addAdminMember(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), group.getShortName(),
new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
Site.hideProgress();
@@ -217,8 +216,8 @@
new Slot<GroupDTO>() {
public void onEvent(final GroupDTO group) {
Site.showProgressProcessing();
- snService.AcceptJoinGroup(session.getUserHash(), session.getCurrentState().getGroup()
- .getShortName(), group.getShortName(),
+ snServiceProvider.get().AcceptJoinGroup(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), group.getShortName(),
new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
Site.hideProgress();
@@ -232,8 +231,7 @@
new Slot<GroupDTO>() {
public void onEvent(final GroupDTO group) {
Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.denyJoinGroup(session.getUserHash(),
+ snServiceProvider.get().denyJoinGroup(session.getUserHash(),
session.getCurrentState().getGroup().getShortName(), group.getShortName(),
new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
@@ -252,7 +250,7 @@
private void removeMemberAction(final GroupDTO groupDTO) {
Site.showProgressProcessing();
- snService.unJoinGroup(session.getUserHash(), groupDTO.getShortName(),
+ snServiceProvider.get().unJoinGroup(session.getUserHash(), groupDTO.getShortName(),
new AsyncCallbackSimple<SocialNetworkResultDTO>() {
public void onSuccess(final SocialNetworkResultDTO result) {
Site.hideProgress();
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupMembersSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupMembersSummaryPanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/GroupMembersSummaryPanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,148 +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.workspace.client.socialnet.ui;
-
-import org.ourproject.kune.platf.client.PlatformEvents;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.services.Images;
-import org.ourproject.kune.platf.client.ui.UIConstants;
-import org.ourproject.kune.platf.client.ui.stacks.StackSubItemAction;
-import org.ourproject.kune.platf.client.ui.stacks.StackedDropDownPanel;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPresenter;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryView;
-import org.ourproject.kune.workspace.client.socialnet.MemberAction;
-import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
-
-import com.google.gwt.user.client.ui.AbstractImagePrototype;
-import com.gwtext.client.widgets.MessageBox;
-
-public class GroupMembersSummaryPanel extends StackedDropDownPanel implements GroupMembersSummaryView {
- private static final boolean COUNTS_VISIBLE = true;
- private final Images img = Images.App.getInstance();
- private final GroupMembersSummaryPresenter presenter;
- private final I18nTranslationService i18n;
-
- public GroupMembersSummaryPanel(final GroupMembersSummaryPresenter initPresenter,
- final I18nTranslationService i18n, final WorkspaceSkeleton ws) {
- super(initPresenter, "#00D4AA", i18n.t("Group members"), i18n
- .t("People and groups collaborating in this group"), COUNTS_VISIBLE);
- presenter = initPresenter;
- this.i18n = i18n;
- ws.getEntitySummary().addInSummary(this);
- }
-
- public void addAddMemberLink() {
- super.addBottomLink(img.addGreen(), i18n.t("Add member"), i18n
- .t("Add a group or a person as member of this group"), WorkspaceEvents.ADD_MEMBER_GROUPLIVESEARCH,
- presenter);
- }
-
- public void addCategory(final String name, final String title) {
- super.addStackItem(name, title, COUNTS_VISIBLE);
- }
-
- public void addCategory(final String name, final String title, final String iconType) {
- super.addStackItem(name, title, getIcon(iconType), UIConstants.ICON_HORIZ_ALIGN_RIGHT, COUNTS_VISIBLE);
- }
-
- public void addCategoryMember(final String categoryName, final String name, final String title,
- final MemberAction[] memberActions) {
- final StackSubItemAction[] subItems = new StackSubItemAction[memberActions.length];
- for (int i = 0; i < memberActions.length; i++) {
- subItems[i] = new StackSubItemAction(getIconFronEvent(memberActions[i].getAction()), memberActions[i]
- .getText(), memberActions[i].getAction());
- }
-
- super.addStackSubItem(categoryName, img.groupDefIcon(), name, title, subItems);
- }
-
- public void addComment(final String comment) {
- super.addComment(comment);
- }
-
- public void addJoinLink() {
- super.addBottomLink(img.addGreen(), i18n.t("Request to join"), i18n.t("Request to participate in this group"),
- WorkspaceEvents.REQ_JOIN_GROUP);
- }
-
- public void addUnjoinLink() {
- super.addBottomLink(img.del(), i18n.t("Unjoin this group"), i18n
- .t("Don't participate more as a member in this group"), WorkspaceEvents.UNJOIN_GROUP);
- }
-
- public void clear() {
- super.clear();
- }
-
- public void confirmAddCollab(final String groupShortName, final String groupLongName) {
- final String groupName = groupLongName + " (" + groupShortName + ")";
- MessageBox.confirm(i18n.t("Confirm addition of member"), i18n.t("Add [%s] as member?", groupName),
- new MessageBox.ConfirmCallback() {
- public void execute(final String btnID) {
- if (btnID.equals("yes")) {
- presenter.addCollab(groupShortName);
- }
- }
- });
- }
-
- public void hide() {
- this.setVisible(false);
- }
-
- public void show() {
- this.setVisible(true);
- }
-
- public void showCategory(final String name) {
- super.showStackItem(name);
- }
-
- private AbstractImagePrototype getIcon(final String event) {
- if (event == GroupMembersSummaryView.ICON_ALERT) {
- return img.alert();
- }
- throw new IndexOutOfBoundsException("Icon unknown in GroupMemebersPanel");
- }
-
- private AbstractImagePrototype getIconFronEvent(final String event) {
- if (event == WorkspaceEvents.ACCEPT_JOIN_GROUP) {
- return img.accept();
- }
- if (event == WorkspaceEvents.DENY_JOIN_GROUP) {
- return img.cancel();
- }
- if (event == WorkspaceEvents.DEL_MEMBER) {
- return img.del();
- }
- if (event == PlatformEvents.GOTO) {
- return img.groupHome();
- }
- if (event == WorkspaceEvents.SET_ADMIN_AS_COLLAB) {
- return img.arrowDownGreen();
- }
- if (event == WorkspaceEvents.SET_COLLAB_AS_ADMIN) {
- return img.arrowUpGreen();
- }
- throw new IndexOutOfBoundsException("Event unknown in GroupMembersPanel");
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,64 +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.workspace.client.theme;
-
-import org.ourproject.kune.platf.client.services.ColorTheme;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.services.Images;
-import org.ourproject.kune.platf.client.ui.BottomTrayIcon;
-
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.ui.MenuBar;
-
-public class ThemeMenuPanel extends BottomTrayIcon implements ThemeMenuView {
-
- private final MenuBar themesMB;
- private final ThemeMenuPresenter presenter;
- private final ColorTheme colorTheme;
-
- public ThemeMenuPanel(final ThemeMenuPresenter presenter, final I18nTranslationService i18n,
- final ColorTheme colorTheme) {
- super(i18n.t("Select Workspace theme for this group"));
- this.presenter = presenter;
- this.colorTheme = colorTheme;
- themesMB = new MenuBar(true);
- themesMB.addStyleDependentName("bottomMenu");
- this.addItem(Images.App.getInstance().themeChoose().getHTML(), true, themesMB);
- }
-
- public void setThemes(final String[] themes) {
- for (int i = 0; i < themes.length; i++) {
- final String theme = themes[i];
- colorTheme.setTheme(theme);
- String themeName = colorTheme.getThemeName();
- String mainColor = colorTheme.getContentMainBorder();
- themesMB.addItem("<span style=\"color: " + mainColor + ";\">" + themeName + "</span>", true, new Command() {
- public void execute() {
- presenter.chooseTheme(theme);
- }
- });
- }
- }
-
- public void setVisible(final boolean visible) {
- super.setVisible(visible);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,51 +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.workspace.client.theme;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
-import org.ourproject.kune.workspace.client.workspace.ThemeMenuComponent;
-
-public class ThemeMenuPresenter implements ThemeMenuComponent {
-
- private ThemeMenuView view;
-
- public void chooseTheme(final String theme) {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.CHANGE_GROUP_WSTHEME, theme);
- }
-
- public void init(final ThemeMenuView view) {
- this.view = view;
- }
-
- public void setThemes(final String[] themes) {
- view.setThemes(themes);
- }
-
- public View getView() {
- return view;
- }
-
- public void setVisible(final boolean visible) {
- view.setVisible(visible);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuView.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/theme/ThemeMenuView.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,31 +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.workspace.client.theme;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface ThemeMenuView extends View {
-
- void setThemes(String[] themes);
-
- void setVisible(boolean visible);
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/WorkspaceManager.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -74,9 +74,7 @@
setSocialNetwork(state);
groupSummaryProvider.get().setState(state);
tagsProvider.get().setState(state);
- // Only for probes:
- wsThemePresenter.setVisible(true);
- wsThemePresenter.setTheme(new WsTheme(group.getWorkspaceTheme()));
+ wsThemePresenter.setState(state);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitenewgroup/SiteNewGroupLinkPanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,14 +1,19 @@
package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitenewgroup;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.sitebar.SiteToken;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.ui.Hyperlink;
public class SiteNewGroupLinkPanel implements SiteNewGroupLinkView {
- private final Hyperlink newGroupHyperlink;
-
- public SiteNewGroupLinkPanel(final SiteNewGroupLinkPresenter presenter, final WorkspaceSkeleton ws) {
- newGroupHyperlink = new Hyperlink();
+ public SiteNewGroupLinkPanel(final SiteNewGroupLinkPresenter presenter, final WorkspaceSkeleton ws,
+ final I18nUITranslationService i18n) {
+ final Hyperlink newGroupHyperlink = new Hyperlink();
+ newGroupHyperlink.setText(i18n.t("Create New Group"));
+ newGroupHyperlink.setTargetHistoryToken(SiteToken.newgroup.toString());
+ ws.getSiteBar().addSeparator();
+ ws.getSiteBar().add(newGroupHyperlink);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -11,6 +11,7 @@
import org.ourproject.kune.workspace.client.sitebar.Site;
import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
+import com.calclab.suco.client.container.Provider;
import com.calclab.suco.client.signal.Slot;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Cookies;
@@ -20,12 +21,12 @@
private SiteSignOutLinkView view;
private final Session session;
- private final UserServiceAsync userService;
+ private final Provider<UserServiceAsync> userServiceProvider;
- public SiteSignOutLinkPresenter(final Session session, final UserServiceAsync userService,
- final KuneErrorHandler errorHandler) {
+ public SiteSignOutLinkPresenter(final Session session, final Provider<UserServiceAsync> userServiceProvider,
+ final Provider<KuneErrorHandler> kuneErrorHandlerProvider) {
this.session = session;
- this.userService = userService;
+ this.userServiceProvider = userServiceProvider;
session.onUserSignIn(new Slot<UserInfoDTO>() {
public void onEvent(final UserInfoDTO parameter) {
view.setVisible(true);
@@ -36,7 +37,7 @@
view.setVisible(false);
}
});
- errorHandler.onSessionExpired(new Slot<Object>() {
+ kuneErrorHandlerProvider.get().onSessionExpired(new Slot<Object>() {
public void onEvent(final Object parameter) {
clientUIsignOut();
}
@@ -65,7 +66,7 @@
}
};
- userService.logout(session.getUserHash(), callback);
+ userServiceProvider.get().logout(session.getUserHash(), callback);
}
public View getView() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -42,7 +42,7 @@
item.addListener(new BaseItemListenerAdapter() {
@Override
public void onClick(final BaseItem item, final EventObject e) {
- presenter.setTheme(theme);
+ presenter.onChangeGroupWsTheme(theme);
}
});
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/themes/WsThemePresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -1,8 +1,13 @@
package org.ourproject.kune.workspace.client.ui.newtmp.themes;
import org.ourproject.kune.platf.client.dto.InitDataDTO;
+import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.GroupServiceAsync;
import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+import com.calclab.suco.client.container.Provider;
import com.calclab.suco.client.signal.Signal2;
import com.calclab.suco.client.signal.Slot;
import com.calclab.suco.client.signal.Slot2;
@@ -12,8 +17,12 @@
private WsThemeView view;
private WsTheme previousTheme;
private final Signal2<WsTheme, WsTheme> onThemeChanged;
+ private final Provider<GroupServiceAsync> groupServiceProvider;
+ private final Session session;
- public WsThemePresenter(final Session session) {
+ public WsThemePresenter(final Session session, final Provider<GroupServiceAsync> groupServiceProvider) {
+ this.session = session;
+ this.groupServiceProvider = groupServiceProvider;
this.onThemeChanged = new Signal2<WsTheme, WsTheme>("onThemeChanged");
session.onInitDataReceived(new Slot<InitDataDTO>() {
public void onEvent(final InitDataDTO initData) {
@@ -30,15 +39,32 @@
onThemeChanged.add(slot);
}
- public void setTheme(final WsTheme newTheme) {
+ public void setState(final StateDTO state) {
+ setTheme(new WsTheme(state.getGroup().getWorkspaceTheme()));
+ if (state.getGroupRights().isAdministrable()) {
+ view.setVisible(true);
+ } else {
+ view.setVisible(false);
+ }
+ }
+
+ protected void onChangeGroupWsTheme(final WsTheme newTheme) {
+ Site.showProgressProcessing();
+ groupServiceProvider.get().changeGroupWsTheme(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), newTheme.getName(),
+ new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ setTheme(newTheme);
+ Site.hideProgress();
+ }
+ });
+ }
+
+ private void setTheme(final WsTheme newTheme) {
if (previousTheme == null || !previousTheme.equals(newTheme)) {
onThemeChanged.fire(previousTheme, newTheme);
}
previousTheme = newTheme;
}
- public void setVisible(final boolean visible) {
- view.setVisible(visible);
- }
-
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/Workspace.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -61,8 +61,6 @@
public LicenseComponent getLicenseComponent();
- public ThemeMenuComponent getThemeMenuComponent();
-
public UserLiveSearchComponent getUserLiveSearchComponent();
public void setContent(WorkspaceComponent contentComponent);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspacePresenter.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -112,10 +112,6 @@
return components.getLicenseComponent();
}
- public ThemeMenuComponent getThemeMenuComponent() {
- return components.getThemeMenuComponent();
- }
-
public UserLiveSearchComponent getUserLiveSearchComponent() {
return components.getUserLiveSearchComponent();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/WorkspaceUIComponents.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -90,13 +90,6 @@
return license;
}
- public ThemeMenuComponent getThemeMenuComponent() {
- if (themeMenu == null) {
- themeMenu = WorkspaceFactory.createThemeMenuComponent();
- }
- return themeMenu;
- }
-
public UserLiveSearchComponent getUserLiveSearchComponent() {
if (userLiveSearch == null) {
userLiveSearch = WorkspaceFactory.createUserLiveSearchComponent();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java 2008-07-23 04:36:14 UTC (rev 814)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/workspace/ui/WorkspacePanel.java 2008-07-26 11:38:54 UTC (rev 815)
@@ -228,7 +228,7 @@
setContentToolBar(components.getContentToolBarComponent().getView());
setContentBottomToolBar(components.getContentBottomToolBarComponent().getView());
setBottom(components.getLicenseComponent().getView());
- addBottomIconComponent(components.getThemeMenuComponent().getView());
+ // addBottomIconComponent(components.getThemeMenuComponent().getView());
}
public void setContent(final View content) {
1
0
r814 - in trunk/src/main/java/org/ourproject/kune: platf/client/ui/gridmenu workspace/client/socialnet
by vjrj 23 Jul '08
by vjrj 23 Jul '08
23 Jul '08
Author: vjrj
Date: 2008-07-23 06:36:14 +0200 (Wed, 23 Jul 2008)
New Revision: 814
Modified:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java
Log:
Incomplete - task 14: Make users in GroupSummary Draggable to emite (not totally working until emite update to GridMenuPanel new class)
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-07-23 04:11:58 UTC (rev 813)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/gridmenu/GridMenuPanel.java 2008-07-23 04:36:14 UTC (rev 814)
@@ -85,6 +85,11 @@
this(emptyText, gridDragConfiguration, null, false, false, false, false, false);
}
+ public GridMenuPanel(final String emptyText, final GridDragConfiguration dragConf, final boolean grouped,
+ final boolean withCounters, final boolean withTopBar, final boolean withBottomBar, final boolean withEndIcon) {
+ this(emptyText, dragConf, null, grouped, withCounters, withTopBar, withBottomBar, withEndIcon);
+ }
+
public GridMenuPanel(final String emptyText, final GridDragConfiguration gridDragConfiguration,
final GridDropConfiguration gridDropConfiguration, final boolean grouped, final boolean withCounters,
final boolean withTopBar, final boolean withBottomBar, final boolean withEndIcon) {
@@ -116,6 +121,11 @@
this(emptyText, null, gridDropConfiguration, false, false, false, false, false);
}
+ public GridMenuPanel(final String emptyText, final GridDropConfiguration dropConf, final boolean grouped,
+ final boolean withCounters, final boolean withTopBar, final boolean withBottomBar, final boolean withEndIcon) {
+ this(emptyText, null, dropConf, grouped, withCounters, withTopBar, withBottomBar, withEndIcon);
+ }
+
public void addItem(final GridItem<T> gridItem) {
createGridIfNeeded();
final String id = gridItem.getId();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-23 04:11:58 UTC (rev 813)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-23 04:36:14 UTC (rev 814)
@@ -5,6 +5,7 @@
import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.ui.DropDownPanel;
import org.ourproject.kune.platf.client.ui.gridmenu.GridButton;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridDragConfiguration;
import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuPanel;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
@@ -12,6 +13,7 @@
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
+import com.calclab.emiteuimodule.client.users.UserGridPanel;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Button;
@@ -35,8 +37,12 @@
super.setHeaderTitle(i18n.t("People and groups collaborating in this group"));
super.setBorderStylePrimaryName("k-dropdownouter-members");
super.addStyleName("kune-Margin-Medium-t");
+
+ final GridDragConfiguration dragConf = new GridDragConfiguration(UserGridPanel.USER_GROUP_DD, i18n
+ .t("Drop in the chat area to start a chat.")
+ + "<br/>" + i18n.t("Drop into a room to invite the user to join the chat room"));
gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This is an orphaned project, if you are interested "
- + "please request to join to work on it"), true, true, false, true, false);
+ + "please request to join to work on it"), dragConf, true, true, false, true, false);
final EntitySummary entitySummary = ws.getEntitySummary();
entitySummary.addInSummary(this);
entitySummary.addListener(new ContainerListenerAdapter() {
1
0
Author: vjrj
Date: 2008-07-23 06:11:58 +0200 (Wed, 23 Jul 2008)
New Revision: 813
Added:
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteToken.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignIn.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInView.java
Removed:
trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLoginAction.java
trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLogoutAction.java
trunk/src/main/java/org/ourproject/kune/chat/client/actions/InitChatEngineAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/InitAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedInAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedOutAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/StopAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLoginAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLogoutAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserRegisterAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/Login.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginListener.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginView.java
trunk/src/test/java/org/ourproject/kune/sitebar/client/ui/LoginPresenterTest.java
Modified:
trunk/script/css-compact-and-tidy.css
trunk/script/deploy_gwt.sh
trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
trunk/src/main/java/org/ourproject/kune/app/public/Kune.html
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/richtext.css
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java
trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java
trunk/src/main/java/org/ourproject/kune/docs/client/actions/SaveDocumentAction.java
trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPresenter.java
trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java
trunk/src/main/java/org/ourproject/kune/platf/client/app/Application.java
trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkView.java
trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java
Log:
Workspace refactorization
Modified: trunk/script/css-compact-and-tidy.css
===================================================================
--- trunk/script/css-compact-and-tidy.css 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/script/css-compact-and-tidy.css 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,10 +1,11 @@
#!/bin/bash
+#!/bin/bash
ORIG=src/main/java/org/ourproject/kune/app/public/
CATTMPFILE=`mktemp -t css.1.XXX` || exit 1
CSSTMPFILE=`mktemp -t css.2.XXX` || exit 1
DEST=src/main/java/org/ourproject/kune/app/public/css/all.css
DEST2=src/main/java/org/ourproject/kune/app/public/css/richtext.css
-CSS='css/reset.css css/fonts-min.css js/ext/resources/css/ext-all.css js/ext/resources/css/xtheme-gray.css css/kune.css css/workspace.css css/chat.css css/docs.css'
+CSS='css/reset.css css/fonts-min.css js/ext/resources/css/ext-all.css js/ext/resources/css/xtheme-gray.css css/kune.css css/workspace.css css/chat.css css/docs.css css/kune-new.css'
CSS2='css/reset.css css/fonts-min.css css/base-min.css css/rte.css'
function concat {
@@ -16,13 +17,19 @@
}
function tidy {
-# Dependency csstidy (apt-get install csstidy)
-csstidy $CATTMPFILE \
- --template=highest \
- --optimise_shorthands=2 \
- --preserve_css=true \
- --silent=true \
- $CSSTMPFILE
+ls `which csstidy | cut -d " " -f 1` 2> /dev/null
+if [[ $? -eq 0 ]]
+then
+ csstidy $CATTMPFILE \
+ --template=highest \
+ --optimise_shorthands=2 \
+ --preserve_css=true \
+ --silent=true \
+ $CSSTMPFILE
+else
+ echo Waring: Dependency csstidy, in debian: apt-get install csstidy
+ cp $CATTMPFILE $CSSTMPFILE
+fi
cat $CSSTMPFILE | sed 's/\.\.\/images/\.\.\/js\/ext\/resources\/images/g' > $1
}
Modified: trunk/script/deploy_gwt.sh
===================================================================
--- trunk/script/deploy_gwt.sh 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/script/deploy_gwt.sh 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,7 +1,9 @@
#!/bin/bash
find target/kune-0.0.4/org.ourproject.kune.app.Kune/ -name .DS_Store -exec rm {} \;
-#script/css-compact-and-tidy.css
+script/css-compact-and-tidy.css
script/css-update.sh
+cp target/kune-0.0.4/org.ourproject.kune.app.Kune/js/ext/ext-all-debug.js target/kune-0.0.4/org.ourproject.kune.app.Kune/js/ext/ext-all.js
unison -silent -batch -auto -ui text target/kune-0.0.4/org.ourproject.kune.app.Kune src/main/webapp/gwt/org.ourproject.kune.app.Kune
+
Modified: trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml 2008-07-23 04:11:58 UTC (rev 813)
@@ -3,34 +3,21 @@
<inherits name='com.google.gwt.user.User' />
<inherits name="org.cafesip.gwtcomp.GWTComponents" />
+ <inherits name="com.calclab.suco.Suco" />
+ <inherits name='org.ourproject.kune.platf.Kune-Platform' />
+ <inherits name='org.ourproject.kune.docs.Kune-Docs' />
+ <inherits name='org.ourproject.kune.chat.Kune-Chat' />
+
<!-- gwt-ext -->
<inherits name='com.gwtext.GwtExt' />
<script src="js/ext/adapter/ext/ext-base.js" />
<script src="js/ext/ext-all.js" />
<!-- kune css -->
- <!-- when build a unique css with csstidy use all.css -->
- <!-- <stylesheet src="css/all.css" /> -->
-
- <stylesheet src="css/reset.css" />
- <stylesheet src="css/fonts-min.css" />
- <stylesheet src="js/ext/resources/css/ext-all.css" />
- <stylesheet src="js/ext/resources/css/xtheme-gray.css" />
- <stylesheet src="css/workspace.css" />
- <stylesheet src="css/chat.css" />
- <stylesheet src="css/docs.css" />
- <stylesheet src="css/kune.css" />
- <stylesheet src="css/kune-new.css" />
+ <stylesheet src="css/all.css" />
- <inherits name="com.calclab.suco.Suco" />
-
- <inherits name='org.ourproject.kune.platf.Kune-Platform' />
- <inherits name='org.ourproject.kune.docs.Kune-Docs' />
- <inherits name='org.ourproject.kune.chat.Kune-Chat' />
-
<inherits name="com.allen_sauer.gwt.log.gwt-log" />
-
<extend-property name="log_level" values="DEBUG" />
<set-property name="log_level" value="DEBUG" />
<set-property name="log_DivLogger" value="DISABLED" />
@@ -44,9 +31,8 @@
<!-- Specify the app entry point class. -->
<entry-point class='org.ourproject.kune.app.client.KuneEntryPoint' />
- <!-- <script src="js/ext/ext-custom.js" /> -->
-
<!--http://code.google.com/p/google-web-toolkit/issues/detail?id=42 -->
- <!-- <set-property name="user.agent" value="gecko" /> -->
+ <!-- <set-property name="user.agent" value="gecko" /> -->
+
</module>
Modified: trunk/src/main/java/org/ourproject/kune/app/public/Kune.html
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/Kune.html 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/app/public/Kune.html 2008-07-23 04:11:58 UTC (rev 813)
@@ -14,7 +14,6 @@
<link rel="stylesheet" type="text/css" href="css/workspace.css">
<link rel="stylesheet" type="text/css" href="css/chat.css">
<link rel="stylesheet" type="text/css" href="css/docs.css">
-<link rel="stylesheet" type="text/css" href="css/kune.css">
-->
<link rel="shortcut icon" href="images/favicon.ico" />
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-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-07-23 04:11:58 UTC (rev 813)
@@ -3,25 +3,2131 @@
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.3.1
-*/body{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:400;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup,sub{line-height:-1px;vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}/*
+*/
+body{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup,sub{line-height:-1px;vertical-align:text-top;}sub{vertical-align:text-bottom;}input, textarea, select{font-family:inherit;font-size:inherit;font-weight:inherit;}
+
+/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.3.1
-*/body{font:13px/1.22 arial,helvetica,clean,sans-serif;font-size:small;font:x-small;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;font-size:108%;line-height:99%;}/*
- * Ext JS Library 2.0.2
- * Copyright(c) 2006-2008, Ext JS, LLC.
- * licensing(a)extjs.com
- *
- * http://extjs.com/license
- */html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:400;}ol,ul{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';}.ext-el-mask{z-index:20000;position:absolute;top:0;left:0;-moz-opacity:.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;width:100%;height:100%;zoom:1;}.ext-el-mask-msg{z-index:20001;position:absolute;top:0;left:0;border:1px solid #6593cf;background:#c3daf9 url(../js/ext/resources/images/default/box/tb-blue.gif) repeat-x 0 -16px;padding:2px;}.ext-el-mask-msg div{padding:5px 10px;background:#eee;border:1px solid #a3bad9;color:#222;font:normal 11px tahoma,arial,helvetica,sans-serif;cursor:wait;}.ext-shim{position:absolute;visibility:hidden;left:0;top:0;overflow:hidden;}.ext-ie .ext-shim{filter:alpha(opacity=0);}.ext-ie6 .ext-shim{margin-left:5px;margin-top:3px;}.x-mask-loading div{padding:5px 10px 5px 25px;background:#fbfbfb url(../js/ext/resources/images/default/grid/loading.gif) no-repeat 5px 5px;line-height:16px;}.x-hidden,.x-hide-offsets{position:absolute;left:-10000px;top:-10000px;visibility:hidden;}.x-hide-display{display:none!important;}.x-hide-visibility{visibility:hidden!important;}.x-masked{overflow:hidden!important;}.x-masked select,.x-masked object,.x-masked embed{visibility:hidden;}.x-layer{visibility:hidden;}.x-unselectable,.x-unselectable *{-moz-user-select:none;-khtml-user-select:none;}.x-repaint{zoom:1;background-color:transparent;-moz-outline:none;}.x-item-disabled{color:gray;cursor:default;opacity:.6;-moz-opacity:.6;filter:alpha(opacity=60);}.x-item-disabled *{color:gray!important;cursor:default!important;}.x-splitbar-proxy{position:absolute;visibility:hidden;z-index:20001;background:#aaa;zoom:1;line-height:1px;font-size:1px;overflow:hidden;}.x-splitbar-h,.x-splitbar-proxy-h{cursor:e-resize;cursor:col-resize;}.x-splitbar-v,.x-splitbar-proxy-v{cursor:s-resize;cursor:row-resize;}.x-color-palette{width:150px;height:92px;cursor:pointer;}.x-color-palette a{border:1px solid #fff;float:left;padding:2px;text-decoration:none;-moz-outline:0 none;outline:0 none;cursor:pointer;}.x-color-palette a:hover,.x-color-palette a.x-color-palette-sel{border:1px solid #8BB8F3;background:#deecfd;}.x-color-palette em{display:block;border:1px solid #ACA899;}.x-color-palette em span{cursor:pointer;display:block;height:10px;line-height:10px;width:10px;}.x-ie-shadow{display:none;position:absolute;overflow:hidden;left:0;top:0;background:#777;zoom:1;}.x-shadow{display:none;position:absolute;overflow:hidden;left:0;top:0;}.x-shadow *{overflow:hidden;}.x-shadow *{padding:0;border:0;margin:0;clear:none;zoom:1;}.x-shadow .xstc,.x-shadow .xsbc{height:6px;float:left;}.x-shadow .xstl,.x-shadow .xstr,.x-shadow .xsbl,.x-shadow .xsbr{width:6px;height:6px;float:left;}.x-shadow .xsc{width:100%;}.x-shadow .xsml,.x-shadow .xsmr{width:6px;float:left;height:100%;}.x-shadow .xsmc{float:left;height:100%;background:transparent url(../js/ext/resources/images/default/shadow-c.png);}.x-shadow .xst,.x-shadow .xsb{height:6px;overflow:hidden;width:100%;}.x-shadow .xsml{background:transparent url(../js/ext/resources/images/default/shadow-lr.png) repeat-y 0 0;}.x-shadow .xsmr{background:transparent url(../js/ext/resources/images/default/shadow-lr.png) repeat-y -6px 0;}.x-shadow .xstl{background:transparent url(../js/ext/resources/images/default/shadow.png) no-repeat 0 0;}.x-shadow .xstc{background:transparent url(../js/ext/resources/images/default/shadow.png) repeat-x 0 -30px;}.x-shadow .xstr{background:transparent url(../js/ext/resources/images/default/shadow.png) repeat-x 0 -18px;}.x-shadow .xsbl{background:transparent url(../js/ext/resources/images/default/shadow.png) no-repeat 0 -12px;}.x-shadow .xsbc{background:transparent url(../js/ext/resources/images/default/shadow.png) repeat-x 0 -36px;}.x-shadow .xsbr{background:transparent url(../js/ext/resources/images/default/shadow.png) repeat-x 0 -6px;}.loading-indicator{font-size:11px;background-image:url(../js/ext/resources/images/default/grid/loading.gif);background-repeat:no-repeat;background-position:left;padding-left:20px;line-height:16px;margin:3px;}.x-text-resize{position:absolute;left:-1000px;top:-1000px;visibility:hidden;zoom:1;}.x-drag-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background-image:url(../js/ext/resources/images/default/s.gif);z-index:20000;}.x-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;}.x-spotlight{z-index:8999;position:absolute;top:0;left:0;-moz-opacity:.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;width:0;height:0;zoom:1;}.x-tab-panel{overflow:hidden;}.x-tab-panel-header,.x-tab-panel-footer{background:#deecfd;border:1px solid #8db2e3;overflow:hidden;zoom:1;}.x-tab-panel-header{border:1px solid #8db2e3;padding-bottom:2px;}.x-tab-panel-footer{border:1px solid #8db2e3;padding-top:2px;}.x-tab-strip-wrap{width:100%;overflow:hidden;position:relative;zoom:1;}ul.x-tab-strip{display:block;width:5000px;zoom:1;}ul.x-tab-strip-top{padding-top:1px;background:url(../js/ext/resources/images/default/tabs/tab-strip-bg.gif) #cedff5 repeat-x bottom;border-bottom:1px solid #8db2e3;}ul.x-tab-strip-bottom{padding-bottom:1px;background:url(../js/ext/resources/images/default/tabs/tab-strip-btm-bg.gif) #cedff5 repeat-x top;border-top:1px solid #8db2e3;border-bottom:0 none;}.x-tab-panel-header-plain .x-tab-strip-top{background:transparent!important;padding-top:0!important;}.x-tab-panel-header-plain{background:transparent!important;border-width:0!important;padding-bottom:0!important;}.x-tab-panel-header-plain .x-tab-strip-spacer{border:1px solid #8db2e3;border-top:0 none;height:2px;background:#deecfd;font-size:1px;line-height:1px;}.ext-border-box .x-tab-panel-header-plain .x-tab-strip-spacer{height:3px;}ul.x-tab-strip li{float:left;margin-left:2px;}ul.x-tab-strip li.x-tab-edge{float:left;margin:0!important;padding:0!important;border:0 none!important;font-size:1px!important;line-height:1px!important;overflow:hidden;zoom:1;background:transparent!important;width:1px;}.x-tab-strip a,.x-tab-strip span,.x-tab-strip em{display:block;}.x-tab-strip a{text-decoration:none!important;-moz-outline:none;outline:none;cursor:pointer;}.x-tab-strip-inner{overflow:hidden;text-overflow:ellipsis;}.x-tab-strip span.x-tab-strip-text{font:normal 11px tahoma,arial,helvetica;color:#416aa3;white-space:nowrap;cursor:pointer;padding:4px 0;}.x-tab-strip .x-tab-with-icon .x-tab-right{padding-left:6px;}.x-tab-strip .x-tab-with-icon span.x-tab-strip-text{padding-left:20px;background-position:0 3px;background-repeat:no-repeat;}.x-tab-strip-over span.x-tab-strip-text{color:#15428b;}.x-tab-strip-active{cursor:default;}.x-tab-strip-active span.x-tab-strip-text{cursor:default;color:#15428b;font-weight:700;}.x-tab-strip-disabled .x-tabs-text{cursor:default;color:#aaa;}.x-tab-panel-body{overflow:hidden;}.x-tab-panel-bwrap{overflow:hidden;}.ext-ie .x-tab-strip .x-tab-right{position:relative;}.x-tab-strip-top .x-tab-strip-active .x-tab-right{margin-bottom:-1px;}.x-tab-strip-top .x-tab-strip-active .x-tab-right span.x-tab-strip-text{padding-bottom:5px;}.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{margin-top:-1px;}.x-tab-strip-bottom .x-tab-strip-active .x-tab-right span.x-tab-strip-text{padding-top:5px;}.x-tab-strip-top .x-tab-right{background:transparent url(../js/ext/resources/images/default/tabs/tabs-sprite.gif) no-repeat 0 -51px;padding-left:10px;}.x-tab-strip-top .x-tab-left{background:transparent url(../js/ext/resources/images/default/tabs/tabs-sprite.gif) no-repeat right -351px;padding-right:10px;}.x-tab-strip-top .x-tab-strip-inner{background:transparent url(../js/ext/resources/images/default/tabs/tabs-sprite.gif) repeat-x 0 -201px;}.x-tab-strip-top .x-tab-strip-over .x-tab-right{background-position:0 -101px;}.x-tab-strip-top .x-tab-strip-over .x-tab-left{background-position:right -401px;}.x-tab-strip-top .x-tab-strip-over .x-tab-strip-inner{background-position:0 -251px;}.x-tab-strip-top .x-tab-strip-active .x-tab-right{background-position:0 0;}.x-tab-strip-top .x-tab-strip-active .x-tab-left{background-position:right -301px;}.x-tab-strip-top .x-tab-strip-active .x-tab-strip-inner{background-position:0 -151px;}.x-tab-strip-bottom .x-tab-right{background:url(../js/ext/resources/images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;}.x-tab-strip-bottom .x-tab-left{background:url(../js/ext/resources/images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;}.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{background:url(../js/ext/resources/images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left;}.x-tab-strip-bottom .x-tab-strip-active .x-tab-left{background:url(../js/ext/resources/images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right;}.x-tab-strip-bottom .x-tab-left{padding:0 10px;}.x-tab-strip-bottom .x-tab-right{padding:0;}.x-tab-strip .x-tab-strip-close{display:none;}.x-tab-strip-closable{position:relative;}.x-tab-strip-closable .x-tab-left{padding-right:19px;}.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close{background-image:url(../js/ext/resources/images/default/tabs/tab-close.gif);opacity:.6;-moz-opacity:.6;background-repeat:no-repeat;display:block;width:11px;height:11px;position:absolute;top:3px;right:3px;cursor:pointer;z-index:2;}.x-tab-strip .x-tab-strip-active a.x-tab-strip-close{opacity:.8;-moz-opacity:.8;}.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{background-image:url(../js/ext/resources/images/default/tabs/tab-close.gif);opacity:1;-moz-opacity:1;}.x-tab-panel-body{border:1px solid #8db2e3;background:#fff;}.x-tab-panel-body-top{border-top:0 none;}.x-tab-panel-body-bottom{border-bottom:0 none;}.x-tab-scroller-left{background:transparent url(../js/ext/resources/images/default/tabs/scroll-left.gif) no-repeat -18px 0;border-bottom:1px solid #8db2e3;width:18px;position:absolute;left:0;top:0;z-index:10;cursor:pointer;}.x-tab-scroller-left-over{background-position:0 0;}.x-tab-scroller-left-disabled{background-position:-18px 0;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);cursor:default;}.x-tab-scroller-right{background:transparent url(../js/ext/resources/images/default/tabs/scroll-right.gif) no-repeat 0 0;border-bottom:1px solid #8db2e3;width:18px;position:absolute;right:0;top:0;z-index:10;cursor:pointer;}.x-tab-scroller-right-over{background-position:-18px 0;}.x-tab-scroller-right-disabled{background-position:0 0;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);cursor:default;}.x-tab-scrolling .x-tab-strip-wrap{margin-left:18px;margin-right:18px;}.x-tab-scrolling{position:relative;}.x-tab-panel-bbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}.x-tab-panel-tbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}.x-border-layout-ct .x-tab-panel{background:#FFF;}.x-form-field{margin:0;font:normal 12px tahoma,arial,helvetica,sans-serif;}.x-form-text,textarea.x-form-field{padding:1px 3px;background:#fff url(../js/ext/resources/images/default/form/text-bg.gif) repeat-x 0 0;border:1px solid #B5B8C8;}textarea.x-form-field{padding:2px 3px;}.x-form-text{height:22px;line-height:18px;vertical-align:middle;}.ext-ie .x-form-text{margin:-1px 0;height:22px;line-height:18px;}.ext-ie textarea.x-form-field{margin:-1px 0;}.ext-strict .x-form-text{height:18px;}.ext-safari .x-form-text{height:20px;padding:0 3px;}.ext-safari.ext-mac textarea.x-form-field{margin-bottom:-2px;}.ext-gecko .x-form-text{padding-top:2px;padding-bottom:0;}textarea{resize:none;}.x-form-select-one{height:20px;line-height:18px;vertical-align:middle;background-color:#fff;border:1px solid #B5B8C8;}.x-form-field-wrap{position:relative;zoom:1;white-space:nowrap;}.x-editor .x-form-check-wrap{background:#fff;}.x-form-field-wrap .x-form-trigger{width:17px;height:21px;border:0;background:transparent url(../js/ext/resources/images/default/form/trigger.gif) no-repeat 0 0;cursor:pointer;border-bottom:1px solid #B5B8C8;position:absolute;top:0;}.ext-safari .x-form-field-wrap .x-form-trigger{height:21px;}.x-form-field-wrap .x-form-date-trigger{background-image:url(../js/ext/resources/images/default/form/date-trigger.gif);cursor:pointer;}.x-form-field-wrap .x-form-clear-trigger{background-image:url(../js/ext/resources/images/default/form/clear-trigger.gif);cursor:pointer;}.x-form-field-wrap .x-form-search-trigger{background-image:url(../js/ext/resources/images/default/form/search-trigger.gif);cursor:pointer;}.ext-safari .x-form-field-wrap .x-form-trigger{right:0;}.x-form-field-wrap .x-form-twin-triggers .x-form-trigger{position:static;top:auto;vertical-align:top;}.x-form-field-wrap .x-form-trigger-over{background-position:-17px 0;}.x-form-field-wrap .x-form-trigger-click{background-position:-34px 0;}.x-trigger-wrap-focus .x-form-trigger{background-position:-51px 0;}.x-trigger-wrap-focus .x-form-trigger-over{background-position:-68px 0;}.x-trigger-wrap-focus .x-form-trigger-click{background-position:-85px 0;}.x-trigger-wrap-focus .x-form-trigger{border-bottom:1px solid #7eadd9;}.x-item-disabled .x-form-trigger-over{background-position:0 0!important;border-bottom:1px solid #B5B8C8;}.x-item-disabled .x-form-trigger-click{background-position:0 0!important;border-bottom:1px solid #B5B8C8;}.x-form-focus,textarea.x-form-focus{border:1px solid #7eadd9;}.x-form-invalid,textarea.x-form-invalid{background:#fff url(../js/ext/resources/images/default/grid/invalid_line.gif) repeat-x bottom;border:1px solid #dd7870;}.ext-safari .x-form-invalid{background-color:#fee;border:1px solid #ff7870;}.x-editor{visibility:hidden;padding:0;margin:0;}.x-form-check-wrap{line-height:18px;}.ext-ie .x-form-check-wrap input{width:15px;height:15px;}.x-editor .x-form-check-wrap{padding:3px;}.x-editor .x-form-checkbox{height:13px;}.x-form-grow-sizer{font:normal 12px tahoma,arial,helvetica,sans-serif;left:-10000px;padding:8px 3px;position:absolute;visibility:hidden;top:-10000px;white-space:pre-wrap;white-space:0;white-space:0;white-space:0;word-wrap:break-word;zoom:1;}.x-form-grow-sizer p{margin:0!important;border:0 none!important;padding:0!important;}.x-form-item{font:normal 12px tahoma,arial,helvetica,sans-serif;display:block;margin-bottom:4px;}.x-form-item label{display:block;float:left;width:100px;padding:3px;padding-left:0;clear:left;z-index:2;position:relative;}.x-form-element{padding-left:105px;position:relative;}.x-form-invalid-msg{color:#e00;padding:2px;padding-left:18px;font:normal 11px tahoma,arial,helvetica,sans-serif;background:transparent url(../js/ext/resources/images/default/shared/warning.gif) no-repeat 0 2px;line-height:16px;width:200px;}.x-form-label-right label{text-align:right;}.x-form-label-top .x-form-item label{width:auto;float:none;clear:none;display:inline;margin-bottom:4px;position:static;}.x-form-label-top .x-form-element{padding-left:0;padding-top:4px;}.x-form-label-top .x-form-item{padding-bottom:4px;}.x-form-empty-field{color:gray;}.x-small-editor .x-form-field{font:normal 11px arial,tahoma,helvetica,sans-serif;}.x-small-editor .x-form-text{height:20px;line-height:16px;vertical-align:middle;}.ext-ie .x-small-editor .x-form-text{margin-top:-1px!important;margin-bottom:-1px!important;height:20px!important;line-height:16px!important;}.ext-strict .x-small-editor .x-form-text{height:16px!important;}.ext-safari .x-small-editor .x-form-field{font:normal 12px arial,tahoma,helvetica,sans-serif;}.ext-ie .x-small-editor .x-form-text{height:20px;line-height:16px;}.ext-border-box .x-small-editor .x-form-text{height:20px;}.x-small-editor .x-form-select-one{height:20px;line-height:16px;vertical-align:middle;}.x-small-editor .x-form-num-field{text-align:right;}.x-small-editor .x-form-field-wrap .x-form-trigger{height:19px;}.x-form-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;}.x-form-clear-left{clear:left;height:0;overflow:hidden;line-height:0;font-size:0;}.x-form-cb-label{width:auto!important;float:none!important;clear:none!important;display:inline!important;margin-left:4px;}.x-form-column{float:left;padding:0;margin:0;width:48%;overflow:hidden;zoom:1;}.x-form .x-form-btns-ct .x-btn{float:right;clear:none;}.x-form .x-form-btns-ct .x-form-btns td{border:0;padding:0;}.x-form .x-form-btns-ct .x-form-btns-right table{float:right;clear:none;}.x-form .x-form-btns-ct .x-form-btns-left table{float:left;clear:none;}.x-form .x-form-btns-ct .x-form-btns-center{text-align:center;}.x-form .x-form-btns-ct .x-form-btns-center table{margin:0 auto;}.x-form .x-form-btns-ct table td.x-form-btn-td{padding:3px;}.x-form .x-form-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;}.x-form .x-form-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;}.x-form .x-form-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;}.x-form .x-form-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;}.x-form .x-form-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;}.x-form .x-form-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;}.x-form-invalid-icon{width:16px;height:18px;visibility:hidden;position:absolute;left:0;top:0;display:block;background:transparent url(../js/ext/resources/images/default/form/exclamation.gif) no-repeat 0 2px;}.x-fieldset{border:1px solid #B5B8C8;padding:10px;margin-bottom:10px;}.x-fieldset legend{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#15428b;}.ext-ie .x-fieldset legend{margin-bottom:10px;}.ext-ie .x-fieldset{padding-top:0;padding-bottom:10px;}.x-fieldset legend .x-tool-toggle{margin-right:3px;margin-left:0;float:left!important;}.x-fieldset legend input{margin-right:3px;float:left!important;height:13px;width:13px;}fieldset.x-panel-collapsed{padding-bottom:0!important;border-width:1px 0 0!important;}fieldset.x-panel-collapsed .x-fieldset-bwrap{visibility:hidden;position:absolute;left:-1000px;top:-1000px;}.ext-ie .x-fieldset-bwrap{zoom:1;}.ext-ie td .x-form-text{position:relative;top:-1px;}.x-fieldset-noborder{border:0 none transparent;}.x-fieldset-noborder legend{margin-left:-3px;}.ext-ie .x-fieldset-noborder legend{position:relative;margin-bottom:23px;}.ext-ie .x-fieldset-noborder legend span{position:absolute;left:-5px;}.ext-gecko .x-window-body .x-form-item{-moz-outline:none;overflow:auto;}.ext-gecko .x-form-item{-moz-outline:none;}.x-hide-label label.x-form-item-label{display:none;}.x-hide-label .x-form-element{padding-left:0!important;}.x-fieldset{overflow:hidden;}.x-fieldset-bwrap{overflow:hidden;zoom:1;}.x-fieldset-body{overflow:hidden;}.x-btn{font:normal 11px tahoma,verdana,helvetica;cursor:pointer;white-space:nowrap;}.x-btn button{border:0 none;background:transparent;font:normal 11px tahoma,verdana,helvetica;padding-left:3px;padding-right:3px;cursor:pointer;margin:0;overflow:visible;width:auto;-moz-outline:0 none;outline:0 none;}* html .ext-ie .x-btn button{width:1px;}.ext-gecko .x-btn button{padding-left:0;padding-right:0;}.ext-ie .x-btn button{padding-top:2px;}.x-btn-icon .x-btn-center .x-btn-text{background-position:center;background-repeat:no-repeat;height:16px;width:16px;cursor:pointer;white-space:nowrap;padding:0;}.x-btn-icon .x-btn-center{padding:1px;}.x-btn em{font-style:normal;font-weight:400;}.x-btn-text-icon .x-btn-center .x-btn-text{background-position:0 2px;background-repeat:no-repeat;padding-left:18px;padding-top:3px;padding-bottom:2px;padding-right:0;}.x-btn-left,.x-btn-right{font-size:1px;line-height:1px;}.x-btn-left{width:3px;height:21px;background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 0;}.x-btn-right{width:3px;height:21px;background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 -21px;}.x-btn-left i,.x-btn-right i{display:block;width:3px;overflow:hidden;font-size:1px;line-height:1px;}.x-btn-center{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) repeat-x 0 -42px;vertical-align:middle;text-align:center;padding:0 5px;cursor:pointer;white-space:nowrap;}.x-btn-over .x-btn-left{background-position:0 -63px;}.x-btn-over .x-btn-right{background-position:0 -84px;}.x-btn-over .x-btn-center{background-position:0 -105px;}.x-btn-click .x-btn-center,.x-btn-menu-active .x-btn-center{background-position:0 -126px;}.x-btn-disabled *{color:gray!important;cursor:default!important;}.x-btn-menu-text-wrap .x-btn-center{padding:0 3px;}.ext-gecko .x-btn-menu-text-wrap .x-btn-center{padding:0 1px;}.x-btn-menu-arrow-wrap .x-btn-center{padding:0;}.x-btn-menu-arrow-wrap .x-btn-center button{width:12px!important;height:21px;padding:0!important;display:block;background:transparent url(../js/ext/resources/images/default/button/btn-arrow.gif) no-repeat left 3px;}.x-btn-with-menu .x-btn-center{padding-right:2px!important;}.x-btn-with-menu .x-btn-center em{display:block;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat right 0;padding-right:10px;}.x-btn-text-icon .x-btn-with-menu .x-btn-center em{display:block;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat right 3px;padding-right:10px;}.x-btn-pressed .x-btn-left{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 -63px;}.x-btn-pressed .x-btn-right{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 -84px;}.x-btn-pressed .x-btn-center{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) repeat-x 0 -126px;}.x-toolbar{border-color:#a9bfd3;border-style:solid;border-width:0 0 1px;display:block;padding:2px;background:#d0def0 url(../js/ext/resources/images/default/toolbar/bg.gif) repeat-x top left;position:relative;zoom:1;}.x-toolbar .x-item-disabled .x-btn-icon{opacity:.35;-moz-opacity:.35;filter:alpha(opacity=35);}.x-toolbar td{vertical-align:middle;}.mso .x-toolbar,.x-grid-mso .x-toolbar{border:0 none;background:url(../js/ext/resources/images/default/grid/mso-hd.gif);}.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 11px tahoma,arial,helvetica,sans-serif;}.x-toolbar .x-item-disabled{color:gray;cursor:default;opacity:.6;-moz-opacity:.6;filter:alpha(opacity=60);}.x-toolbar .x-item-disabled *{color:gray;cursor:default;}.x-toolbar .x-btn-left{background:none;}.x-toolbar .x-btn-right{background:none;}.x-toolbar .x-btn-center{background:none;padding:0;}.x-toolbar .x-btn-menu-text-wrap .x-btn-center button{padding-right:2px;}.ext-gecko .x-toolbar .x-btn-menu-text-wrap .x-btn-center button{padding-right:0;}.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{padding:0 2px;}.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{width:12px;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat 0 3px;}.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button{width:12px;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat 0 3px;}.x-toolbar .x-btn-over .x-btn-menu-arrow-wrap .x-btn-center button{background-position:0 -47px;}.x-toolbar .x-btn-over .x-btn-left{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 0;}.x-toolbar .x-btn-over .x-btn-right{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -21px;}.x-toolbar .x-btn-over .x-btn-center{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -42px;}.x-toolbar .x-btn-click .x-btn-left,.x-toolbar .x-btn-pressed .x-btn-left,.x-toolbar .x-btn-menu-active .x-btn-left{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -63px;}.x-toolbar .x-btn-click .x-btn-right,.x-toolbar .x-btn-pressed .x-btn-right,.x-toolbar .x-btn-menu-active .x-btn-right{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -84px;}.x-toolbar .x-btn-click .x-btn-center,.x-toolbar .x-btn-pressed .x-btn-center,.x-toolbar .x-btn-menu-active .x-btn-center{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -105px;}.x-toolbar .x-btn-with-menu .x-btn-center em{padding-right:8px;}.x-toolbar .ytb-text{padding:2px;}.x-toolbar .ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-blue-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;}.x-toolbar .ytb-spacer{width:2px;}.x-tbar-page-number{width:24px;height:14px;}.x-tbar-page-first{background-image:url(../js/ext/resources/images/default/grid/page-first.gif)!important;}.x-tbar-loading{background-image:url(../js/ext/resources/images/default/grid/done.gif)!important;}.x-tbar-page-last{background-image:url(../js/ext/resources/images/default/grid/page-last.gif)!important;}.x-tbar-page-next{background-image:url(../js/ext/resources/images/default/grid/page-next.gif)!important;}.x-tbar-page-prev{background-image:url(../js/ext/resources/images/default/grid/page-prev.gif)!important;}.x-item-disabled .x-tbar-loading{background-image:url(../js/ext/resources/images/default/grid/loading.gif)!important;}.x-item-disabled .x-tbar-page-first{background-image:url(../js/ext/resources/images/default/grid/page-first-disabled.gif)!important;}.x-item-disabled .x-tbar-page-last{background-image:url(../js/ext/resources/images/default/grid/page-last-disabled.gif)!important;}.x-item-disabled .x-tbar-page-next{background-image:url(../js/ext/resources/images/default/grid/page-next-disabled.gif)!important;}.x-item-disabled .x-tbar-page-prev{background-image:url(../js/ext/resources/images/default/grid/page-prev-disabled.gif)!important;}.x-paging-info{position:absolute;top:5px;right:8px;color:#444;}.x-resizable-handle{position:absolute;z-index:100;font-size:1px;line-height:6px;overflow:hidden;background:#FFF;filter:alpha(opacity=0);opacity:0;zoom:1;}.x-resizable-handle-east{width:6px;cursor:e-resize;right:0;top:0;height:100%;}.ext-ie .x-resizable-handle-east{margin-right:-1px;}.x-resizable-handle-south{width:100%;cursor:s-resize;left:0;bottom:0;height:6px;}.ext-ie .x-resizable-handle-south{margin-bottom:-1px;}.x-resizable-handle-west{width:6px;cursor:w-resize;left:0;top:0;height:100%;}.x-resizable-handle-north{width:100%;cursor:n-resize;left:0;top:0;height:6px;}.x-resizable-handle-southeast{width:6px;cursor:se-resize;right:0;bottom:0;height:6px;z-index:101;}.x-resizable-handle-northwest{width:6px;cursor:nw-resize;left:0;top:0;height:6px;z-index:101;}.x-resizable-handle-northeast{width:6px;cursor:ne-resize;right:0;top:0;height:6px;z-index:101;}.x-resizable-handle-southwest{width:6px;cursor:sw-resize;left:0;bottom:0;height:6px;z-index:101;}.x-resizable-over .x-resizable-handle,.x-resizable-pinned .x-resizable-handle{filter:alpha(opacity=100);opacity:1;}.x-resizable-over .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-east{background:url(../js/ext/resources/images/default/sizer/e-handle.gif);background-position:left;}.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-west{background:url(../js/ext/resources/images/default/sizer/e-handle.gif);background-position:left;}.x-resizable-over .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-south{background:url(../js/ext/resources/images/default/sizer/s-handle.gif);background-position:top;}.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-north{background:url(../js/ext/resources/images/default/sizer/s-handle.gif);background-position:top;}.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{background:url(../js/ext/resources/images/default/sizer/se-handle.gif);background-position:top left;}.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{background:url(../js/ext/resources/images/default/sizer/nw-handle.gif);background-position:bottom right;}.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{background:url(../js/ext/resources/images/default/sizer/ne-handle.gif);background-position:bottom left;}.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{background:url(../js/ext/resources/images/default/sizer/sw-handle.gif);background-position:top right;}.x-resizable-proxy{border:1px dashed #3b5a82;position:absolute;overflow:hidden;display:none;left:0;top:0;z-index:50000;}.x-resizable-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background:#FFF;z-index:200000;-moz-opacity:0;opacity:0;filter:alpha(opacity=0);}.x-grid3{position:relative;overflow:hidden;background-color:#fff;}.x-grid-panel .x-panel-body{overflow:hidden!important;}.x-grid-panel .x-panel-mc .x-panel-body{border:1px solid #99bbe8;}.ext-ie .x-grid3 table,.ext-safari .x-grid3 table{table-layout:fixed;}.x-grid3-viewport{overflow:hidden;}.x-grid3-hd-row td,.x-grid3-row td,.x-grid3-summary-row td{font:normal 11px arial,tahoma,helvetica,sans-serif;-moz-outline:none;-moz-user-focus:normal;}.x-grid3-row td,.x-grid3-summary-row td{line-height:13px;vertical-align:top;padding-left:1px;padding-right:1px;-moz-user-select:none;}.x-grid3-hd-row td{line-height:15px;vertical-align:middle;border-left:1px solid #eee;border-right:1px solid #d0d0d0;}.x-grid3-hd-row .x-grid3-marker-hd{padding:3px;}.x-grid3-row .x-grid3-marker{padding:3px;}.x-grid3-cell-inner,.x-grid3-hd-inner{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;padding:3px 3px 3px 5px;white-space:nowrap;}.x-grid3-hd-inner{position:relative;cursor:inherit;padding:4px 3px 4px 5px;}.x-grid3-row-body{white-space:normal;}.x-grid3-body-cell{-moz-outline:0 none;outline:0 none;}.ext-ie .x-grid3-cell-inner,.ext-ie .x-grid3-hd-inner{width:100%;}.ext-strict .x-grid3-cell-inner,.ext-strict .x-grid3-hd-inner{width:auto;}.x-grid-row-loading{background:#fff url(../js/ext/resources/images/default/shared/loading-balls.gif) no-repeat center center;}.x-grid-page{overflow:hidden;}.x-grid3-row{cursor:default;border:1px solid #ededed;border-top-color:#fff;width:100%;}.x-grid3-row-alt{background-color:#fafafa;}.x-grid3-row-over{border:1px solid #ddd;background:#efefef url(../js/ext/resources/images/default/grid/row-over.gif) repeat-x left top;}.x-grid3-resize-proxy{width:1px;left:0;background-color:#777;cursor:e-resize;cursor:col-resize;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;}.x-grid3-resize-marker{width:1px;left:0;background-color:#777;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;}.x-grid3-focus{position:absolute;top:0;-moz-outline:0 none;outline:0 none;-moz-user-select:normal;-khtml-user-select:normal;}.x-grid3-header{background:#f9f9f9 url(../js/ext/resources/images/default/grid/grid3-hrow.gif) repeat-x 0 bottom;cursor:default;zoom:1;padding:1px 0 0;}.x-grid3-header-pop{border-left:1px solid #d0d0d0;float:right;clear:none;}.x-grid3-header-pop-inner{border-left:1px solid #eee;width:14px;height:19px;background:transparent url(../js/ext/resources/images/default/grid/hd-pop.gif) no-repeat center center;}.ext-ie .x-grid3-header-pop-inner{width:15px;}.ext-strict .x-grid3-header-pop-inner{width:14px;}.x-grid3-header-inner{overflow:hidden;zoom:1;float:left;}.x-grid3-header-offset{padding-left:1px;width:10000px;}td.x-grid3-hd-over,td.sort-desc,td.sort-asc,td.x-grid3-hd-menu-open{border-left:1px solid #aaccf6;border-right:1px solid #aaccf6;}td.x-grid3-hd-over .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.sort-asc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner{background:#ebf3fd url(../js/ext/resources/images/default/grid/grid3-hrow-over.gif) repeat-x left bottom;}.x-grid3-sort-icon{background-repeat:no-repeat;display:none;height:4px;width:13px;margin-left:3px;vertical-align:middle;}.sort-asc .x-grid3-sort-icon{background-image:url(../js/ext/resources/images/default/grid/sort_asc.gif);display:inline;}.sort-desc .x-grid3-sort-icon{background-image:url(../js/ext/resources/images/default/grid/sort_desc.gif);display:inline;}.ext-strict .ext-ie .x-grid3-header-inner{position:relative;}.ext-strict .ext-ie6 .x-grid3-hd{position:relative;}.ext-strict .ext-ie6 .x-grid3-hd-inner{position:static;}.x-grid3-body{zoom:1;}.x-grid3-scroller{overflow:auto;zoom:1;position:relative;}.x-grid3-cell-text,.x-grid3-hd-text{display:block;padding:3px 5px;-moz-user-select:none;-khtml-user-select:none;color:#000;}.x-grid3-split{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;cursor:e-resize;cursor:col-resize;display:block;font-size:1px;height:16px;overflow:hidden;position:absolute;top:2px;width:6px;z-index:3;}.x-grid3-hd-text{color:#15428b;}.x-dd-drag-proxy .x-grid3-hd-inner{background:#ebf3fd url(../js/ext/resources/images/default/grid/grid3-hrow-over.gif) repeat-x left bottom;width:120px;padding:3px;border:1px solid #aaccf6;overflow:hidden;}.col-move-top,.col-move-bottom{width:9px;height:9px;position:absolute;top:0;line-height:1px;font-size:1px;overflow:hidden;visibility:hidden;z-index:20000;}.col-move-top{background:transparent url(../js/ext/resources/images/default/grid/col-move-top.gif) no-repeat left top;}.col-move-bottom{background:transparent url(../js/ext/resources/images/default/grid/col-move-bottom.gif) no-repeat left top;}.x-grid3-row-selected{background:#DFE8F6!important;border:1px dotted #a3bae9;}.x-grid3-cell-selected{background-color:#B8CFEE!important;color:#000;}.x-grid3-cell-selected span{color:#000!important;}.x-grid3-cell-selected .x-grid3-cell-text{color:#000;}.x-grid3-locked td.x-grid3-row-marker,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{background:#ebeadb url(../js/ext/resources/images/default/grid/grid-hrow.gif) repeat-x 0 bottom!important;vertical-align:middle!important;color:#000;padding:0;border-top:1px solid #FFF;border-bottom:none!important;border-right:1px solid #6fa0df!important;text-align:center;}.x-grid3-locked td.x-grid3-row-marker div,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div{padding:0 4px;color:#15428b!important;text-align:center;}.x-grid3-dirty-cell{background:transparent url(../js/ext/resources/images/default/grid/dirty.gif) no-repeat 0 0;}.x-grid3-topbar,.x-grid3-bottombar{font:normal 11px arial,tahoma,helvetica,sans-serif;overflow:hidden;display:none;zoom:1;position:relative;}.x-grid3-topbar .x-toolbar{border-right:0 none;}.x-grid3-bottombar .x-toolbar{border-right:0 none;border-bottom:0 none;border-top:1px solid #a9bfd3;}.x-props-grid .x-grid3-cell{padding:1px;}.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y -16px!important;padding-left:12px;color:#000!important;}.x-props-grid .x-grid3-body .x-grid3-td-name{padding:1px;padding-right:0;background:#FFF!important;border:0 none;border-right:1px solid #eee;}.xg-hmenu-sort-asc .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-asc.gif);}.xg-hmenu-sort-desc .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-desc.gif);}.xg-hmenu-lock .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-lock.gif);}.xg-hmenu-unlock .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-unlock.gif);}.x-grid3-col-dd{border:0 none;padding:0;background:transparent;}.x-dd-drag-ghost .x-grid3-dd-wrap{padding:1px 3px 3px 1px;}.x-grid3-hd{-moz-user-select:none;}.x-grid3-hd-btn{display:none;position:absolute;width:14px;background:#c3daf9 url(../js/ext/resources/images/default/grid/grid3-hd-btn.gif) no-repeat left center;right:0;top:0;z-index:2;cursor:pointer;}.x-grid3-hd-over .x-grid3-hd-btn,.x-grid3-hd-menu-open .x-grid3-hd-btn{display:block;}a.x-grid3-hd-btn:hover{background-position:-14px center;}.x-grid3-body .x-grid3-td-expander{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y right;}.x-grid3-body .x-grid3-td-expander .x-grid3-cell-inner{padding:0!important;height:100%;}.x-grid3-row-expander{width:100%;height:18px;background-position:4px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/grid/row-expand-sprite.gif);}.x-grid3-row-collapsed .x-grid3-row-expander{background-position:4px 2px;}.x-grid3-row-expanded .x-grid3-row-expander{background-position:-21px 2px;}.x-grid3-row-collapsed .x-grid3-row-body{display:none!important;}.x-grid3-row-expanded .x-grid3-row-body{display:block!important;}.x-grid3-body .x-grid3-td-checker{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y right;}.x-grid3-body .x-grid3-td-checker .x-grid3-cell-inner,.x-grid3-header .x-grid3-td-checker .x-grid3-hd-inner{padding:0!important;height:100%;}.x-grid3-row-checker,.x-grid3-hd-checker{width:100%;height:18px;background-position:2px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/grid/row-check-sprite.gif);}.x-grid3-row .x-grid3-row-checker{background-position:2px 2px;}.x-grid3-row-selected .x-grid3-row-checker,.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 2px;}.x-grid3-hd-checker{background-position:2px 3px;}.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 3px;}.x-grid3-body .x-grid3-td-numberer{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y right;}.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner{padding:3px 5px 0 0!important;text-align:right;color:#444;}.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer,.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-sel-bg.gif) repeat-y right;}.x-grid3-body .x-grid3-check-col-td .x-grid3-cell-inner{padding:1px 0 0!important;}.x-grid3-check-col{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/menu/unchecked.gif);}.x-grid3-check-col-on{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/menu/checked.gif);}.x-grid-group,.x-grid-group-body,.x-grid-group-hd{zoom:1;}.x-grid-group-hd{border-bottom:2px solid #99bbe8;cursor:pointer;padding-top:6px;}.x-grid-group-hd div{background:transparent url(../js/ext/resources/images/default/grid/group-expand-sprite.gif) no-repeat 3px -47px;padding:4px 4px 4px 17px;color:#3764a0;font:bold 11px tahoma,arial,helvetica,sans-serif;}.x-grid-group-collapsed .x-grid-group-hd div{background-position:3px 3px;}.x-grid-group-collapsed .x-grid-group-body{display:none;}.x-group-by-icon{background-image:url(../js/ext/resources/images/default/grid/group-by.gif);}.x-cols-icon{background-image:url(../js/ext/resources/images/default/grid/columns.gif);}.x-show-groups-icon{background-image:url(../js/ext/resources/images/default/grid/group-by.gif);}.ext-ie .x-grid3 .x-editor .x-form-text{position:relative;top:-1px;}.ext-ie .x-props-grid .x-editor .x-form-text{position:static;top:0;}.x-grid-empty{padding:10px;color:gray;font:normal 11px tahoma,arial,helvetica,sans-serif;}.ext-ie7 .x-grid-panel .x-panel-bbar{position:relative;}.x-dd-drag-proxy{position:absolute;left:0;top:0;visibility:hidden;z-index:15000;}.x-dd-drag-ghost{color:#000;font:normal 11px arial,helvetica,sans-serif;-moz-opacity:.85;opacity:.85;filter:alpha(opacity=85);border-top:1px solid #ddd;border-left:1px solid #ddd;border-right:1px solid #bbb;border-bottom:1px solid #bbb;padding:3px;padding-left:20px;background-color:#FFF;white-space:nowrap;}.x-dd-drag-repair .x-dd-drag-ghost{-moz-opacity:.4;opacity:.4;filter:alpha(opacity=40);border:0 none;padding:0;background-color:transparent;}.x-dd-drag-repair .x-dd-drop-icon{visibility:hidden;}.x-dd-drop-icon{position:absolute;top:3px;left:3px;display:block;width:16px;height:16px;background-color:transparent;background-position:center;background-repeat:no-repeat;z-index:1;}.x-dd-drop-nodrop .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/dd/drop-no.gif);}.x-dd-drop-ok .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/dd/drop-yes.gif);}.x-dd-drop-ok-add .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/dd/drop-add.gif);}.x-view-selector{position:absolute;left:0;top:0;width:0;background:#c3daf9;border:1px dotted #39b;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);zoom:1;}.x-tree .x-panel-body{background-color:#fff;}.ext-strict .ext-ie .x-tree .x-panel-bwrap{position:relative;overflow:hidden;}.x-tree-icon,.x-tree-ec-icon,.x-tree-elbow-line,.x-tree-elbow,.x-tree-elbow-end,.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{border:0 none;height:18px;margin:0;padding:0;vertical-align:top;width:16px;background-repeat:no-repeat;}.x-tree-node-collapsed .x-tree-node-icon,.x-tree-node-expanded .x-tree-node-icon,.x-tree-node-leaf .x-tree-node-icon{border:0 none;height:18px;margin:0;padding:0;vertical-align:top;width:16px;background-position:center;background-repeat:no-repeat;}.ext-ie .x-tree-node-indent img,.ext-ie .x-tree-node-icon,.ext-ie .x-tree-ec-icon{vertical-align:middle!important;}.x-tree-node-expanded .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/folder-open.gif);}.x-tree-node-leaf .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/leaf.gif);}.x-tree-node-collapsed .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/folder.gif);}.ext-ie input.x-tree-node-cb{width:15px;height:15px;}input.x-tree-node-cb{margin-left:1px;}.ext-ie input.x-tree-node-cb{margin-left:0;}.x-tree-noicon .x-tree-node-icon{width:0;height:0;}.x-tree-node-loading .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/loading.gif)!important;}.x-tree-node-loading a span{font-style:italic;color:#444;}.ext-ie .x-tree-node-el input{width:15px;height:15px;}.x-tree-lines .x-tree-elbow{background-image:url(../js/ext/resources/images/default/tree/elbow.gif);}.x-tree-lines .x-tree-elbow-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-plus.gif);}.x-tree-lines .x-tree-elbow-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-minus.gif);}.x-tree-lines .x-tree-elbow-end{background-image:url(../js/ext/resources/images/default/tree/elbow-end.gif);}.x-tree-lines .x-tree-elbow-end-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-plus.gif);}.x-tree-lines .x-tree-elbow-end-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-minus.gif);}.x-tree-lines .x-tree-elbow-line{background-image:url(../js/ext/resources/images/default/tree/elbow-line.gif);}.x-tree-no-lines .x-tree-elbow{background:transparent;}.x-tree-no-lines .x-tree-elbow-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-plus-nl.gif);}.x-tree-no-lines .x-tree-elbow-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-minus-nl.gif);}.x-tree-no-lines .x-tree-elbow-end{background:transparent;}.x-tree-no-lines .x-tree-elbow-end-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-plus-nl.gif);}.x-tree-no-lines .x-tree-elbow-end-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-minus-nl.gif);}.x-tree-no-lines .x-tree-elbow-line{background:transparent;}.x-tree-arrows .x-tree-elbow{background:transparent;}.x-tree-arrows .x-tree-elbow-plus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat 0 0;}.x-tree-arrows .x-tree-elbow-minus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat -16px 0;}.x-tree-arrows .x-tree-elbow-end{background:transparent;}.x-tree-arrows .x-tree-elbow-end-plus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat 0 0;}.x-tree-arrows .x-tree-elbow-end-minus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat -16px 0;}.x-tree-arrows .x-tree-elbow-line{background:transparent;}.x-tree-arrows .x-tree-ec-over .x-tree-elbow-plus{background-position:-32px 0;}.x-tree-arrows .x-tree-ec-over .x-tree-elbow-minus{background-position:-48px 0;}.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-plus{background-position:-32px 0;}.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-minus{background-position:-48px 0;}.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{cursor:pointer;}.ext-ie ul.x-tree-node-ct{font-size:0;line-height:0;zoom:1;}.x-tree-node{color:#000;font:normal 11px arial,tahoma,helvetica,sans-serif;white-space:nowrap;}.x-tree-node-el{line-height:18px;cursor:pointer;}.x-tree-node a,.x-dd-drag-ghost a{text-decoration:none;color:#000;-khtml-user-select:none;-moz-user-select:none;-kthml-user-focus:normal;-moz-user-focus:normal;-moz-outline:0 none;outline:0 none;}.x-tree-node a span,.x-dd-drag-ghost a span{text-decoration:none;color:#000;padding:1px 3px 1px 2px;}.x-tree-node .x-tree-node-disabled a span{color:gray!important;}.x-tree-node .x-tree-node-disabled .x-tree-node-icon{-moz-opacity:.5;opacity:.5;filter:alpha(opacity=50);}.x-tree-node .x-tree-node-inline-icon{background:transparent;}.x-tree-node a:hover,.x-dd-drag-ghost a:hover{text-decoration:none;}.x-tree-node div.x-tree-drag-insert-below{border-bottom:1px dotted #36c;}.x-tree-node div.x-tree-drag-insert-above{border-top:1px dotted #36c;}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below{border-bottom:0 none;}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above{border-top:0 none;}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom:2px solid #36c;}.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top:2px solid #36c;}.x-tree-node .x-tree-drag-append a span{background:#ddd;border:1px dotted gray;}.x-tree-node .x-tree-node-over{background-color:#eee;}.x-tree-node .x-tree-selected{background-color:#d9e8fb;}.x-dd-drag-ghost .x-tree-node-indent,.x-dd-drag-ghost .x-tree-ec-icon{display:none!important;}.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-add.gif);}.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-over.gif);}.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-under.gif);}.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-between.gif);}.x-date-picker{border:1px solid #1b376c;border-top:0 none;background:#fff;position:relative;}.x-date-picker a{-moz-outline:0 none;outline:0 none;}.x-date-inner,.x-date-inner td,.x-date-inner th{border-collapse:separate;}.x-date-middle,.x-date-left,.x-date-right{background:url(../js/ext/resources/images/default/shared/hd-sprite.gif) repeat-x 0 -83px;color:#FFF;font:bold 11px "sans serif",tahoma,verdana,helvetica;overflow:hidden;}.x-date-middle .x-btn-left,.x-date-middle .x-btn-center,.x-date-middle .x-btn-right{background:transparent!important;vertical-align:middle;}.x-date-middle .x-btn .x-btn-text{color:#fff;}.x-date-middle .x-btn-with-menu .x-btn-center em{background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow-light.gif) no-repeat right 0;}.x-date-right,.x-date-left{width:18px;}.x-date-right{text-align:right;}.x-date-middle{padding-top:2px;padding-bottom:2px;}.x-date-right a,.x-date-left a{display:block;width:16px;height:16px;background-position:center;background-repeat:no-repeat;cursor:pointer;-moz-opacity:.6;opacity:.6;filter:alpha(opacity=60);}.x-date-right a:hover,.x-date-left a:hover{-moz-opacity:1;opacity:1;filter:alpha(opacity=100);}.x-date-right a{background-image:url(../js/ext/resources/images/default/shared/right-btn.gif);margin-right:2px;text-decoration:none!important;}.x-date-left a{background-image:url(../js/ext/resources/images/default/shared/left-btn.gif);margin-left:2px;text-decoration:none!important;}table.x-date-inner{width:100%;table-layout:fixed;}.x-date-inner th{width:25px;}.x-date-inner th{background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;text-align:right!important;border-bottom:1px solid #a3bad9;font:normal 10px arial,helvetica,tahoma,sans-serif;color:#233d6d;cursor:default;padding:0;border-collapse:separate;}.x-date-inner th span{display:block;padding:2px;padding-right:7px;}.x-date-inner td{border:1px solid #fff;text-align:right;padding:0;}.x-date-inner a{padding:2px 5px;display:block;font:normal 11px arial,helvetica,tahoma,sans-serif;text-decoration:none;color:#000;text-align:right;zoom:1;}.x-date-inner .x-date-active{cursor:pointer;color:#000;}.x-date-inner .x-date-selected a{background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;border:1px solid #8db2e3;padding:1px 4px;}.x-date-inner .x-date-today a{border:1px solid #8B0000;padding:1px 4px;}.x-date-inner .x-date-selected span{font-weight:700;}.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a{color:#aaa;text-decoration:none!important;}.x-date-bottom{padding:4px;border-top:1px solid #a3bad9;background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;}.x-date-inner a:hover,.x-date-inner .x-date-disabled a:hover{text-decoration:none!important;color:#000;background:#ddecfe;}.x-date-inner .x-date-disabled a{cursor:default;background:#eee;color:#bbb;}.x-date-mmenu{background:#eee!important;}.x-date-mmenu .x-menu-item{font-size:10px;padding:1px 24px 1px 4px;white-space:nowrap;color:#000;}.x-date-mmenu .x-menu-item .x-menu-item-icon{width:10px;height:10px;margin-right:5px;background-position:center -4px!important;}.x-date-mp{position:absolute;left:0;top:0;background:#FFF;display:none;}.x-date-mp td{padding:2px;font:normal 11px arial,helvetica,tahoma,sans-serif;}td.x-date-mp-month,td.x-date-mp-year,td.x-date-mp-ybtn{border:0 none;text-align:center;vertical-align:middle;width:25%;}.x-date-mp-ok{margin-right:3px;}.x-date-mp-btns button{text-decoration:none;text-align:center;text-decoration:none!important;background:#083772;color:#FFF;border:1px solid;border-color:#36c #005 #005 #36c;padding:1px 3px;font:normal 11px arial,helvetica,tahoma,sans-serif;cursor:pointer;}.x-date-mp-btns{background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;}.x-date-mp-btns td{border-top:1px solid #c5d2df;text-align:center;}td.x-date-mp-month a,td.x-date-mp-year a{display:block;padding:2px 4px;text-decoration:none;text-align:center;color:#15428b;}td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{color:#15428b;text-decoration:none;cursor:pointer;background:#ddecfe;}td.x-date-mp-sel a{padding:1px 3px;background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;border:1px solid #8db2e3;}.x-date-mp-ybtn a{overflow:hidden;width:15px;height:15px;cursor:pointer;background:transparent url(../js/ext/resources/images/default/panel/tool-sprites.gif) no-repeat;display:block;margin:0 auto;}.x-date-mp-ybtn a.x-date-mp-next{background-position:0 -120px;}.x-date-mp-ybtn a.x-date-mp-next:hover{background-position:-15px -120px;}.x-date-mp-ybtn a.x-date-mp-prev{background-position:0 -105px;}.x-date-mp-ybtn a.x-date-mp-prev:hover{background-position:-15px -105px;}.x-date-mp-ybtn{text-align:center;}td.x-date-mp-sep{border-right:1px solid #c5d2df;}.x-tip{position:absolute;top:0;left:0;visibility:hidden;z-index:20000;border:0 none;}.x-tip .x-tip-close{background-image:url(../js/ext/resources/images/default/qtip/close.gif);height:15px;float:right;width:15px;margin:0 0 2px 2px;cursor:pointer;display:none;}.x-tip .x-tip-tc{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -62px;padding-top:3px;overflow:hidden;zoom:1;}.x-tip .x-tip-tl{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 0;padding-left:6px;overflow:hidden;zoom:1;}.x-tip .x-tip-tr{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat right 0;padding-right:6px;overflow:hidden;zoom:1;}.x-tip .x-tip-bc{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -121px;height:3px;overflow:hidden;}.x-tip .x-tip-bl{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -59px;padding-left:6px;zoom:1;}.x-tip .x-tip-br{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat right -59px;padding-right:6px;zoom:1;}.x-tip .x-tip-mc{border:0 none;font:normal 11px tahoma,arial,helvetica,sans-serif;}.x-tip .x-tip-ml{background:#fff url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -124px;padding-left:6px;zoom:1;}.x-tip .x-tip-mr{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat right -124px;padding-right:6px;zoom:1;}.ext-ie .x-tip .x-tip-header,.ext-ie .x-tip .x-tip-tc{font-size:0;line-height:0;}.x-tip .x-tip-header-text{font:bold 11px tahoma,arial,helvetica,sans-serif;padding:0;margin:0 0 2px;color:#444;}.x-tip .x-tip-body{font:normal 11px tahoma,arial,helvetica,sans-serif;margin:0!important;line-height:14px;color:#444;padding:0;}.x-tip .x-tip-body .loading-indicator{margin:0;}.x-tip-draggable .x-tip-header,.x-tip-draggable .x-tip-header-text{cursor:move;}.x-form-invalid-tip .x-tip-tc{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) repeat-x 0 -12px;padding-top:6px;}.x-form-invalid-tip .x-tip-tl{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}.x-form-invalid-tip .x-tip-tr{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}.x-form-invalid-tip .x-tip-bc{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) repeat-x 0 -18px;height:6px;}.x-form-invalid-tip .x-tip-bl{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) no-repeat 0 -6px;}.x-form-invalid-tip .x-tip-br{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) no-repeat right -6px;}.x-form-invalid-tip .x-tip-ml{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}.x-form-invalid-tip .x-tip-mr{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}.x-form-invalid-tip .x-tip-body{padding:2px;}.x-form-invalid-tip .x-tip-body{padding-left:24px;background:transparent url(../js/ext/resources/images/default/form/exclamation.gif) no-repeat 2px 2px;}.x-menu{border:1px solid #718bb7;z-index:15000;zoom:1;background:#f0f0f0 url(../js/ext/resources/images/default/menu/menu.gif) repeat-y;padding:2px;}.x-menu a{text-decoration:none!important;}.ext-ie .x-menu{zoom:1;overflow:hidden;}.x-menu-list{background:transparent;border:0 none;}.x-menu li{line-height:100%;}.x-menu li.x-menu-sep-li{font-size:1px;line-height:1px;}.x-menu-list-item{font:normal 11px tahoma,arial,sans-serif;white-space:nowrap;-moz-user-select:none;-khtml-user-select:none;display:block;padding:1px;}.x-menu-item-arrow{background:transparent url(../js/ext/resources/images/default/menu/menu-parent.gif) no-repeat right;}.x-menu-sep{display:block;font-size:1px;line-height:1px;margin:2px 3px;background-color:#e0e0e0;border-bottom:1px solid #fff;overflow:hidden;}.x-menu-focus{position:absolute;left:0;top:-5px;width:0;height:0;line-height:1px;}.x-menu a.x-menu-item{display:block;line-height:16px;padding:3px 21px 3px 3px;white-space:nowrap;text-decoration:none;color:#222;-moz-outline:0 none;outline:0 none;cursor:pointer;}.x-menu-item-active{background:#ebf3fd url(../js/ext/resources/images/default/menu/item-over.gif) repeat-x left bottom;border:1px solid #aaccf6;padding:0;}.x-menu-item-active a.x-menu-item{color:#233d6d;}.x-menu-item-icon{border:0 none;height:16px;padding:0;vertical-align:top;width:16px;margin:0 8px 0 0;background-position:center;}.x-menu-check-item .x-menu-item-icon{background:transparent url(../js/ext/resources/images/default/menu/unchecked.gif) no-repeat center;}.x-menu-item-checked .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/menu/checked.gif);}.x-menu-group-item .x-menu-item-icon{background:transparent;}.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{background:transparent url(../js/ext/resources/images/default/menu/group-checked.gif) no-repeat center;}.x-menu-plain{background:#fff!important;}.x-menu-date-item{padding:0;}.x-menu .x-color-palette,.x-menu .x-date-picker{margin-left:26px;margin-right:4px;}.x-menu .x-date-picker{border:1px solid #a3bad9;margin-top:2px;margin-bottom:2px;}.x-menu-plain .x-color-palette,.x-menu-plain .x-date-picker{margin:0;border:0 none;}.x-date-menu{padding:0!important;}.x-cycle-menu .x-menu-item-checked{border:1px dotted #a3bae9!important;background:#DFE8F6;padding:0;}.x-box-tl{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat 0 0;zoom:1;}.x-box-tc{height:8px;background:transparent url(../js/ext/resources/images/default/box/tb.gif) repeat-x 0 0;overflow:hidden;}.x-box-tr{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat right -8px;}.x-box-ml{background:transparent url(../js/ext/resources/images/default/box/l.gif) repeat-y 0;padding-left:4px;overflow:hidden;zoom:1;}.x-box-mc{background:#eee url(../js/ext/resources/images/default/box/tb.gif) repeat-x 0 -16px;padding:4px 10px;font-family:"Myriad Pro","Myriad Web",Tahoma,Helvetica,Arial,sans-serif;color:#393939;font-size:12px;}.x-box-mc h3{font-size:14px;font-weight:700;margin:0 0 4px;zoom:1;}.x-box-mr{background:transparent url(../js/ext/resources/images/default/box/r.gif) repeat-y right;padding-right:4px;overflow:hidden;}.x-box-bl{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat 0 -16px;zoom:1;}.x-box-bc{background:transparent url(../js/ext/resources/images/default/box/tb.gif) repeat-x 0 -8px;height:8px;overflow:hidden;}.x-box-br{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat right -24px;}.x-box-tl,.x-box-bl{padding-left:8px;overflow:hidden;}.x-box-tr,.x-box-br{padding-right:8px;overflow:hidden;}.x-box-blue .x-box-bl,.x-box-blue .x-box-br,.x-box-blue .x-box-tl,.x-box-blue .x-box-tr{background-image:url(../js/ext/resources/images/default/box/corners-blue.gif);}.x-box-blue .x-box-bc,.x-box-blue .x-box-mc,.x-box-blue .x-box-tc{background-image:url(../js/ext/resources/images/default/box/tb-blue.gif);}.x-box-blue .x-box-mc{background-color:#c3daf9;}.x-box-blue .x-box-mc h3{color:#17385b;}.x-box-blue .x-box-ml{background-image:url(../js/ext/resources/images/default/box/l-blue.gif);}.x-box-blue .x-box-mr{background-image:url(../js/ext/resources/images/default/box/r-blue.gif);}#x-debug-browser .x-tree .x-tree-node a span{color:#222297;font-size:11px;padding-top:2px;font-family:monotype,"courier new",sans-serif;line-height:18px;}#x-debug-browser .x-tree a i{color:#FF4545;font-style:normal;}#x-debug-browser .x-tree a em{color:#999;}#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{background:#c3daf9;}#x-debug-browser .x-tool-toggle{background-position:0 -75px;}#x-debug-browser .x-tool-toggle-over{background-position:-15px -75px;}#x-debug-browser.x-panel-collapsed .x-tool-toggle{background-position:0 -60px;}#x-debug-browser.x-panel-collapsed .x-tool-toggle-over{background-position:-15px -60px;}.x-combo-list{border:1px solid #98c0f4;background:#ddecfe;zoom:1;overflow:hidden;}.x-combo-list-inner{overflow:auto;background:#FFF;position:relative;zoom:1;overflow-x:hidden;}.x-combo-list-hd{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#15428b;background-image:url(../js/ext/resources/images/default/layout/panel-title-light-bg.gif);border-bottom:1px solid #98c0f4;padding:3px;}.x-resizable-pinned .x-combo-list-inner{border-bottom:1px solid #98c0f4;}.x-combo-list-item{font:normal 12px tahoma,arial,helvetica,sans-serif;padding:2px;border:1px solid #fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.x-combo-list .x-combo-selected{border:1px dotted #a3bae9!important;background:#DFE8F6;cursor:pointer;}.x-combo-noedit{cursor:pointer;}.x-combo-list .x-toolbar{border-top:1px solid #98c0f4;border-bottom:0 none;}.x-combo-list-small .x-combo-list-item{font:normal 11px tahoma,arial,helvetica,sans-serif;}.x-panel{border-style:solid;border-color:#99bbe8;border-width:0;}.x-panel-header{overflow:hidden;zoom:1;color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 3px 4px 5px;border:1px solid #99bbe8;line-height:15px;background:transparent url(../js/ext/resources/images/default/panel/white-top-bottom.gif) repeat-x 0 -1px;}.x-panel-body{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;background:#FFF;position:relative;}.x-panel-bbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}.x-panel-tbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}.x-panel-tbar-noheader .x-toolbar,.x-panel-mc .x-panel-tbar .x-toolbar{border-top:1px solid #99bbe8;border-bottom:0 none;}.x-panel-body-noheader,.x-panel-mc .x-panel-body{border-top:1px solid #99bbe8;}.x-panel-header{overflow:hidden;zoom:1;}.x-panel-tl .x-panel-header{color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 0 4px;border:0 none;background:transparent;}.x-panel-tl .x-panel-icon,.x-window-tl .x-panel-icon{padding-left:20px!important;background-repeat:no-repeat;background-position:0 4px;zoom:1;}.x-panel-inline-icon{width:16px;height:16px;background-repeat:no-repeat;background-position:0 0;vertical-align:middle;margin-right:4px;margin-top:-1px;margin-bottom:-1px;}.x-panel-tc{background:transparent url(../js/ext/resources/images/default/panel/top-bottom.gif) repeat-x 0 0;overflow:hidden;}.ext-strict .ext-ie7 .x-panel-tc{overflow:visible;}.x-panel-tl{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat 0 0;padding-left:6px;zoom:1;border-bottom:1px solid #99bbe8;}.x-panel-tr{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat right 0;zoom:1;padding-right:6px;}.x-panel-bc{background:transparent url(../js/ext/resources/images/default/panel/top-bottom.gif) repeat-x 0 bottom;zoom:1;}.x-panel-bc .x-panel-footer{zoom:1;}.x-panel-bl{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat 0 bottom;padding-left:6px;zoom:1;}.x-panel-br{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat right bottom;padding-right:6px;zoom:1;}.x-panel-mc{border:0 none;padding:0;margin:0;font:normal 11px tahoma,arial,helvetica,sans-serif;padding-top:6px;background:#dfe8f6;}.x-panel-mc .x-panel-body{background:transparent;border:0 none;}.x-panel-ml{background:#fff url(../js/ext/resources/images/default/panel/left-right.gif) repeat-y 0 0;padding-left:6px;zoom:1;}.x-panel-mr{background:transparent url(../js/ext/resources/images/default/panel/left-right.gif) repeat-y right 0;padding-right:6px;zoom:1;}.x-panel-bc .x-panel-footer{padding-bottom:6px;}.x-panel-nofooter .x-panel-bc{height:6px;font-size:0;line-height:0;}.x-panel-bwrap{overflow:hidden;zoom:1;}.x-panel-body{overflow:hidden;zoom:1;}.x-panel-collapsed .x-resizable-handle{display:none;}.ext-gecko .x-panel-animated div{overflow:hidden!important;}.x-plain-body{overflow:hidden;}.x-plain-bbar .x-toolbar{overflow:hidden;padding:2px;}.x-plain-tbar .x-toolbar{overflow:hidden;padding:2px;}.x-plain-bwrap{overflow:hidden;zoom:1;}.x-plain{overflow:hidden;}.x-tool{overflow:hidden;width:15px;height:15px;float:right;cursor:pointer;background:transparent url(../js/ext/resources/images/default/panel/tool-sprites.gif) no-repeat;margin-left:2px;}.x-tool-toggle{background-position:0 -60px;}.x-tool-toggle-over{background-position:-15px -60px;}.x-panel-collapsed .x-tool-toggle{background-position:0 -75px;}.x-panel-collapsed .x-tool-toggle-over{background-position:-15px -75px;}.x-tool-close{background-position:0 0;}.x-tool-close-over{background-position:-15px 0;}.x-tool-minimize{background-position:0 -15px;}.x-tool-minimize-over{background-position:-15px -15px;}.x-tool-maximize{background-position:0 -30px;}.x-tool-maximize-over{background-position:-15px -30px;}.x-tool-restore{background-position:0 -45px;}.x-tool-restore-over{background-position:-15px -45px;}.x-tool-gear{background-position:0 -90px;}.x-tool-gear-over{background-position:-15px -90px;}.x-tool-pin{background-position:0 -135px;}.x-tool-pin-over{background-position:-15px -135px;}.x-tool-unpin{background-position:0 -150px;}.x-tool-unpin-over{background-position:-15px -150px;}.x-tool-right{background-position:0 -165px;}.x-tool-right-over{background-position:-15px -165px;}.x-tool-left{background-position:0 -180px;}.x-tool-left-over{background-position:-15px -180px;}.x-tool-up{background-position:0 -210px;}.x-tool-up-over{background-position:-15px -210px;}.x-tool-down{background-position:0 -195px;}.x-tool-down-over{background-position:-15px -195px;}.x-tool-refresh{background-position:0 -225px;}.x-tool-refresh-over{background-position:-15px -225px;}.x-tool-minus{background-position:0 -255px;}.x-tool-minus-over{background-position:-15px -255px;}.x-tool-plus{background-position:0 -240px;}.x-tool-plus-over{background-position:-15px -240px;}.x-tool-search{background-position:0 -270px;}.x-tool-search-over{background-position:-15px -270px;}.x-tool-save{background-position:0 -285px;}.x-tool-save-over{background-position:-15px -285px;}.x-tool-help{background-position:0 -300px;}.x-tool-help-over{background-position:-15px -300px;}.x-tool-print{background-position:0 -315px;}.x-tool-print-over{background-position:-15px -315px;}.x-panel-ghost{background:#cbddf3;z-index:12000;overflow:hidden;position:absolute;left:0;top:0;opacity:.65;-moz-opacity:.65;filter:alpha(opacity=65);}.x-panel-ghost ul{margin:0;padding:0;overflow:hidden;font-size:0;line-height:0;border:1px solid #99bbe8;border-top:0 none;display:block;}.x-panel-ghost *{cursor:move!important;}.x-panel-dd-spacer{border:2px dashed #99bbe8;}.x-panel-btns-ct{padding:5px;}.x-panel-btns-ct .x-btn{float:right;clear:none;}.x-panel-btns-ct .x-panel-btns td{border:0;padding:0;}.x-panel-btns-ct .x-panel-btns-right table{float:right;clear:none;}.x-panel-btns-ct .x-panel-btns-left table{float:left;clear:none;}.x-panel-btns-ct .x-panel-btns-center{text-align:center;}.x-panel-btns-ct .x-panel-btns-center table{margin:0 auto;}.x-panel-btns-ct table td.x-panel-btn-td{padding:3px;}.x-panel-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;}.x-panel-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;}.x-panel-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;}.x-panel-btns-ct .x-btn-over .x-btn-left{background-position:0 -63px;}.x-panel-btns-ct .x-btn-over .x-btn-right{background-position:0 -84px;}.x-panel-btns-ct .x-btn-over .x-btn-center{background-position:0 -105px;}.x-panel-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;}.x-panel-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;}.x-panel-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;}.x-window{zoom:1;}.x-window .x-resizable-handle{opacity:0;-moz-opacity:0;filter:alpha(opacity=0);}.x-window-proxy{background:#C7DFFC;border:1px solid #99bbe8;z-index:12000;overflow:hidden;position:absolute;left:0;top:0;display:none;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);}.x-window-header{overflow:hidden;zoom:1;}.x-window-bwrap{z-index:1;position:relative;zoom:1;}.x-window-tl .x-window-header{color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 0 4px;}.x-window-header-text{cursor:pointer;}.x-window-tc{background:transparent url(../js/ext/resources/images/default/window/top-bottom.png) repeat-x 0 0;overflow:hidden;zoom:1;}.x-window-tl{background:transparent url(../js/ext/resources/images/default/window/left-corners.png) no-repeat 0 0;padding-left:6px;zoom:1;z-index:1;position:relative;}.x-window-tr{background:transparent url(../js/ext/resources/images/default/window/right-corners.png) no-repeat right 0;padding-right:6px;}.x-window-bc{background:transparent url(../js/ext/resources/images/default/window/top-bottom.png) repeat-x 0 bottom;zoom:1;}.x-window-bc .x-window-footer{padding-bottom:6px;zoom:1;font-size:0;line-height:0;}.x-window-bl{background:transparent url(../js/ext/resources/images/default/window/left-corners.png) no-repeat 0 bottom;padding-left:6px;zoom:1;}.x-window-br{background:transparent url(../js/ext/resources/images/default/window/right-corners.png) no-repeat right bottom;padding-right:6px;zoom:1;}.x-window-mc{border:1px solid #99bbe8;padding:0;margin:0;font:normal 11px tahoma,arial,helvetica,sans-serif;background:#dfe8f6;}.x-window-ml{background:transparent url(../js/ext/resources/images/default/window/left-right.png) repeat-y 0 0;padding-left:6px;zoom:1;}.x-window-mr{background:transparent url(../js/ext/resources/images/default/window/left-right.png) repeat-y right 0;padding-right:6px;zoom:1;}.x-panel-nofooter .x-window-bc{height:6px;}.x-window-body{overflow:hidden;}.x-window-bwrap{overflow:hidden;}.x-window-maximized .x-window-bl,.x-window-maximized .x-window-br,.x-window-maximized .x-window-ml,.x-window-maximized .x-window-mr,.x-window-maximized .x-window-tl,.x-window-maximized .x-window-tr{padding:0;}.x-window-maximized .x-window-footer{padding-bottom:0;}.x-window-maximized .x-window-tc{padding-left:3px;padding-right:3px;background-color:#FFF;}.x-window-maximized .x-window-mc{border-left:0 none;border-right:0 none;}.x-window-tbar .x-toolbar,.x-window-bbar .x-toolbar{border-left:0 none;border-right:0 none;}.x-window-bbar .x-toolbar{border-top:1px solid #99bbe8;border-bottom:0 none;}.x-window-draggable,.x-window-draggable .x-window-header-text{cursor:move;}.x-window-maximized .x-window-draggable,.x-window-maximized .x-window-draggable .x-window-header-text{cursor:default;}.x-window-body{background:transparent;}.x-panel-ghost .x-window-tl{border-bottom:1px solid #99bbe8;}.x-panel-collapsed .x-window-tl{border-bottom:1px solid #84a0c4;}.x-window-maximized-ct{overflow:hidden;}.x-window-maximized .x-resizable-handle{display:none;}.x-window-sizing-ghost ul{border:0 none!important;}.x-dlg-focus{-moz-outline:0 none;outline:0 none;width:0;height:0;overflow:hidden;position:absolute;top:0;left:0;}.x-dlg-mask{z-index:10000;display:none;position:absolute;top:0;left:0;-moz-opacity:.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;}body.ext-ie6.x-body-masked select{visibility:hidden;}body.ext-ie6.x-body-masked .x-window select{visibility:visible;}.x-window-plain .x-window-mc{background:#CAD9EC;border-right:1px solid #DFE8F6;border-bottom:1px solid #DFE8F6;border-top:1px solid #a3bae9;border-left:1px solid #a3bae9;}.x-window-plain .x-window-body{border-left:1px solid #DFE8F6;border-top:1px solid #DFE8F6;border-bottom:1px solid #a3bae9;border-right:1px solid #a3bae9;background:transparent!important;}body.x-body-masked .x-window-plain .x-window-mc{background:#C7D6E9;}.x-html-editor-wrap{border:1px solid #a9bfd3;background:#FFF;}.x-html-editor-tb .x-btn-text{background:transparent url(../js/ext/resources/images/default/editor/tb-sprite.gif) no-repeat;}.x-html-editor-tb .x-edit-bold .x-btn-text{background-position:0 0;}.x-html-editor-tb .x-edit-italic .x-btn-text{background-position:-16px 0;}.x-html-editor-tb .x-edit-underline .x-btn-text{background-position:-32px 0;}.x-html-editor-tb .x-edit-forecolor .x-btn-text{background-position:-160px 0;}.x-html-editor-tb .x-edit-backcolor .x-btn-text{background-position:-176px 0;}.x-html-editor-tb .x-edit-justifyleft .x-btn-text{background-position:-112px 0;}.x-html-editor-tb .x-edit-justifycenter .x-btn-text{background-position:-128px 0;}.x-html-editor-tb .x-edit-justifyright .x-btn-text{background-position:-144px 0;}.x-html-editor-tb .x-edit-insertorderedlist .x-btn-text{background-position:-80px 0;}.x-html-editor-tb .x-edit-insertunorderedlist .x-btn-text{background-position:-96px 0;}.x-html-editor-tb .x-edit-increasefontsize .x-btn-text{background-position:-48px 0;}.x-html-editor-tb .x-edit-decreasefontsize .x-btn-text{background-position:-64px 0;}.x-html-editor-tb .x-edit-sourceedit .x-btn-text{background-position:-192px 0;}.x-html-editor-tb .x-edit-createlink .x-btn-text{background-position:-208px 0;}.x-html-editor-tip .x-tip-bd .x-tip-bd-inner{padding:5px;padding-bottom:1px;}.x-html-editor-tb .x-toolbar{position:static!important;}.x-panel-noborder .x-panel-body-noborder{border-width:0;}.x-panel-noborder .x-panel-header-noborder{border-width:0;border-bottom:1px solid #99bbe8;}.x-panel-noborder .x-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #99bbe8;}.x-panel-noborder .x-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #99bbe8;}.x-window-noborder .x-window-mc{border-width:0;}.x-window-plain .x-window-body-noborder{border-width:0;}.x-tab-panel-noborder .x-tab-panel-body-noborder{border-width:0;}.x-tab-panel-noborder .x-tab-panel-header-noborder{border-top-width:0;border-left-width:0;border-right-width:0;}.x-tab-panel-noborder .x-tab-panel-footer-noborder{border-bottom-width:0;border-left-width:0;border-right-width:0;}.x-tab-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #99bbe8;}.x-tab-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #99bbe8;}.x-border-layout-ct{background:#dfe8f6;}.x-border-panel{position:absolute;left:0;top:0;}.x-tool-collapse-south{background-position:0 -195px;}.x-tool-collapse-south-over{background-position:-15px -195px;}.x-tool-collapse-north{background-position:0 -210px;}.x-tool-collapse-north-over{background-position:-15px -210px;}.x-tool-collapse-west{background-position:0 -180px;}.x-tool-collapse-west-over{background-position:-15px -180px;}.x-tool-collapse-east{background-position:0 -165px;}.x-tool-collapse-east-over{background-position:-15px -165px;}.x-tool-expand-south{background-position:0 -210px;}.x-tool-expand-south-over{background-position:-15px -210px;}.x-tool-expand-north{background-position:0 -195px;}.x-tool-expand-north-over{background-position:-15px -195px;}.x-tool-expand-west{background-position:0 -165px;}.x-tool-expand-west-over{background-position:-15px -165px;}.x-tool-expand-east{background-position:0 -180px;}.x-tool-expand-east-over{background-position:-15px -180px;}.x-tool-expand-north,.x-tool-expand-south{float:right;margin:3px;}.x-tool-expand-east,.x-tool-expand-west{float:none;margin:3px auto;}.x-accordion-hd .x-tool-toggle{background-position:0 -255px;}.x-accordion-hd .x-tool-toggle-over{background-position:-15px -255px;}.x-panel-collapsed .x-accordion-hd .x-tool-toggle{background-position:0 -240px;}.x-panel-collapsed .x-accordion-hd .x-tool-toggle-over{background-position:-15px -240px;}.x-accordion-hd{color:#222;padding-top:4px;padding-bottom:3px;border-top:0 none;font-weight:400;background:transparent url(../js/ext/resources/images/default/panel/light-hd.gif) repeat-x 0 -9px;}.x-layout-collapsed{position:absolute;left:-10000px;top:-10000px;visibility:hidden;background-color:#d2e0f2;width:20px;height:20px;overflow:hidden;border:1px solid #98c0f4;z-index:20;}.ext-border-box .x-layout-collapsed{width:22px;height:22px;}.x-layout-collapsed-over{cursor:pointer;background-color:#d9e8fb;}.x-layout-collapsed-west .x-layout-collapsed-tools,.x-layout-collapsed-east .x-layout-collapsed-tools{position:absolute;top:0;left:0;width:20px;height:20px;}.x-layout-split{position:absolute;height:5px;width:5px;line-height:1px;font-size:1px;z-index:3;background-color:transparent;}.x-layout-split-h{background-image:url(../js/ext/resources/images/default/s.gif);background-position:left;}.x-layout-split-v{background-image:url(../js/ext/resources/images/default/s.gif);background-position:top;}.x-column-layout-ct{overflow:hidden;zoom:1;}.x-column{float:left;padding:0;margin:0;overflow:hidden;zoom:1;}.x-layout-mini{position:absolute;top:0;left:0;display:block;width:5px;height:35px;cursor:pointer;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);}.x-layout-mini-over,.x-layout-collapsed-over .x-layout-mini{opacity:1;-moz-opacity:1;filter:none;}.x-layout-split-west .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-left.gif);}.x-layout-split-east .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-right.gif);}.x-layout-split-north .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-top.gif);}.x-layout-split-south .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-bottom.gif);}.x-layout-cmini-west .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-right.gif);}.x-layout-cmini-east .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-left.gif);}.x-layout-cmini-north .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-bottom.gif);}.x-layout-cmini-south .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-top.gif);}.x-layout-cmini-west,.x-layout-cmini-east{border:0 none;width:5px!important;padding:0;background:transparent;}.x-layout-cmini-north,.x-layout-cmini-south{border:0 none;height:5px!important;padding:0;background:transparent;}.x-viewport,.x-viewport body{margin:0;padding:0;border:0 none;overflow:hidden;height:100%;}.x-abs-layout-item{position:absolute;left:0;top:0;}.ext-ie input.x-abs-layout-item,.ext-ie textarea.x-abs-layout-item{margin:0;}.x-progress-wrap{border:1px solid #6593cf;overflow:hidden;}.x-progress-inner{height:18px;background:#e0e8f3 url(../js/ext/resources/images/default/qtip/bg.gif) repeat-x;position:relative;}.x-progress-bar{height:18px;float:left;width:0;background:#9CBFEE url(../js/ext/resources/images/default/progress/progress-bg.gif) repeat-x left center;border-top:1px solid #D1E4FD;border-bottom:1px solid #7FA9E4;border-right:1px solid #7FA9E4;}.x-progress-text{font-size:11px;font-weight:700;color:#fff;padding:1px 5px;overflow:hidden;position:absolute;left:0;text-align:center;}.x-progress-text-back{color:#396095;line-height:16px;}.ext-ie .x-progress-text-back{line-height:15px;}.x-window-dlg .x-window-body{border:0 none!important;padding:5px 10px;overflow:hidden!important;}.x-window-dlg .x-window-mc{border:0 none!important;}.x-window-dlg .ext-mb-text,.x-window-dlg .x-window-header-text{font-size:12px;}.x-window-dlg .ext-mb-input{margin-top:4px;width:95%;}.x-window-dlg .ext-mb-textarea{margin-top:4px;font:normal 12px tahoma,arial,helvetica,sans-serif;}.x-window-dlg .x-progress-wrap{margin-top:4px;}.ext-ie .x-window-dlg .x-progress-wrap{margin-top:6px;}.x-window-dlg .x-msg-box-wait{background:transparent url(../js/ext/resources/images/default/grid/loading.gif) no-repeat left;display:block;width:300px;padding-left:18px;line-height:18px;}.x-window-dlg .ext-mb-icon{float:left;width:47px;height:32px;}.ext-ie .x-window-dlg .ext-mb-icon{width:44px;}.x-window-dlg .ext-mb-info{background:transparent url(../js/ext/resources/images/default/window/icon-info.gif) no-repeat top left;}.x-window-dlg .ext-mb-warning{background:transparent url(../js/ext/resources/images/default/window/icon-warning.gif) no-repeat top left;}.x-window-dlg .ext-mb-question{background:transparent url(../js/ext/resources/images/default/window/icon-question.gif) no-repeat top left;}.x-window-dlg .ext-mb-error{background:transparent url(../js/ext/resources/images/default/window/icon-error.gif) no-repeat top left;}/*
- * Ext JS Library 2.0.2
- * Copyright(c) 2006-2008, Ext JS, LLC.
- * licensing(a)extjs.com
- *
- * http://extjs.com/license
- */.x-panel{border-style:solid;border-color:#d0d0d0;}.x-panel-header{color:#333;border:1px solid #d0d0d0;background-image:url(../js/ext/resources/images/gray/panel/white-top-bottom.gif);}.x-panel-body{border-color:#d0d0d0;}.x-panel-bbar .x-toolbar{border-color:#d0d0d0;}.x-panel-tbar .x-toolbar{border-color:#d0d0d0;}.x-panel-tbar-noheader .x-toolbar,.x-panel-mc .x-panel-tbar .x-toolbar{border-color:#d0d0d0;}.x-panel-body-noheader,.x-panel-mc .x-panel-body{border-color:#d0d0d0;}.x-panel-tl .x-panel-header{color:#333;}.x-panel-tc{background-image:url(../js/ext/resources/images/gray/panel/top-bottom.gif);}.x-panel-tl{background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);border-color:#d0d0d0;}.x-panel-tr{background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);}.x-panel-bc{background-image:url(../js/ext/resources/images/gray/panel/top-bottom.gif);}.x-panel-bl{background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);}.x-panel-br{background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);}.x-panel-mc{background:#f1f1f1;}.x-panel-mc .x-panel-body{background:transparent;border:0 none;}.x-panel-ml{background-image:url(../js/ext/resources/images/gray/panel/left-right.gif);}.x-panel-mr{background-image:url(../js/ext/resources/images/gray/panel/left-right.gif);}/* Tools */.x-tool{background-image:url(../js/ext/resources/images/gray/panel/tool-sprites.gif);}/* Ghosting */.x-panel-ghost{background:#e0e0e0;}.x-panel-ghost ul{border-color:#b0b0b0;}.x-grid-panel .x-panel-mc .x-panel-body{border:1px solid #d0d0d0;}/* Buttons */.x-btn-left{background-image:url(../js/ext/resources/images/gray/button/btn-sprite.gif);}.x-btn-right{background-image:url(../js/ext/resources/images/gray/button/btn-sprite.gif);}.x-btn-center{background-image:url(../js/ext/resources/images/gray/button/btn-sprite.gif);}/* Layout classes */.x-border-layout-ct{background:#f0f0f0;}.x-accordion-hd{background-image:url(../js/ext/resources/images/gray/panel/light-hd.gif);}.x-layout-collapsed{background-color:#eee;border-color:#e0e0e0;}.x-layout-collapsed-over{background-color:#fbfbfb;}/* qtips */.x-tip .x-tip-top{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}.x-tip .x-tip-top-left{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}.x-tip .x-tip-top-right{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}.x-tip .x-tip-ft{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}.x-tip .x-tip-ft-left{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}.x-tip .x-tip-ft-right{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}.x-tip .x-tip-bd-left{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}.x-tip .x-tip-bd-right{background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);}/* Toolbars */.x-toolbar{border-color:#d0d0d0;background:#f0f4f5 url(../js/ext/resources/images/gray/toolbar/bg.gif) repeat-x top left;}.x-toolbar button{color:#444;}.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{background-image:url(../js/ext/resources/images/gray/toolbar/btn-arrow.gif);}.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button{background-image:url(../js/ext/resources/images/gray/toolbar/btn-arrow.gif);}.x-toolbar .x-btn-over .x-btn-left{background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);}.x-toolbar .x-btn-over .x-btn-right{background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);}.x-toolbar .x-btn-over .x-btn-center{background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);}.x-toolbar .x-btn-over button{color:#111;}.x-toolbar .x-btn-click .x-btn-left,.x-toolbar .x-btn-pressed .x-btn-left,.x-toolbar .x-btn-menu-active .x-btn-left{background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);}.x-toolbar .x-btn-click .x-btn-right,.x-toolbar .x-btn-pressed .x-btn-right,.x-toolbar .x-btn-menu-active .x-btn-right{background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);}.x-toolbar .x-btn-click .x-btn-center,.x-toolbar .x-btn-pressed .x-btn-center,.x-toolbar .x-btn-menu-active .x-btn-center{background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);}.x-toolbar .ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);}/* Tabs */.x-tab-panel-header,.x-tab-panel-footer{background:#EAEAEA;border-color:#d0d0d0;}.x-tab-panel-header{border-color:#d0d0d0;}.x-tab-panel-footer{border-color:#d0d0d0;}ul.x-tab-strip-top{background:#dbdbdb url(../js/ext/resources/images/gray/tabs/tab-strip-bg.gif) repeat-x left top;border-color:#d0d0d0;padding-top:2px;}ul.x-tab-strip-bottom{background-image:url(../js/ext/resources/images/gray/tabs/tab-strip-btm-bg.gif);border-color:#d0d0d0;}.x-tab-strip span.x-tab-strip-text{color:#333;}.x-tab-strip-over span.x-tab-strip-text{color:#111;}.x-tab-strip-active span.x-tab-strip-text{color:#333;}.x-tab-strip-disabled .x-tabs-text{color:#AAA;}.x-tab-strip-top .x-tab-right{background-image:url(../js/ext/resources/images/gray/tabs/tabs-sprite.gif);}.x-tab-strip-top .x-tab-left{background-image:url(../js/ext/resources/images/gray/tabs/tabs-sprite.gif);}.x-tab-strip-top .x-tab-strip-inner{background-image:url(../js/ext/resources/images/gray/tabs/tabs-sprite.gif);}.x-tab-strip-bottom .x-tab-right{background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-inactive-right-bg.gif);}.x-tab-strip-bottom .x-tab-left{background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-inactive-left-bg.gif);}.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-right-bg.gif);}.x-tab-strip-bottom .x-tab-strip-active .x-tab-left{background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-left-bg.gif);}.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close{background-image:url(../js/ext/resources/images/gray/tabs/tab-close.gif);}.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{background-image:url(../js/ext/resources/images/gray/tabs/tab-close.gif);}.x-tab-panel-body{border-color:#d0d0d0;background:#fff;}.x-tab-panel-bbar .x-toolbar{border-color:#d0d0d0;}.x-tab-panel-tbar .x-toolbar{border-color:#d0d0d0;}.x-tab-panel-header-plain .x-tab-strip-spacer{border-color:#d0d0d0;background:#eaeaea;}.x-tab-scroller-left{background-image:url(../js/ext/resources/images/gray/tabs/scroll-left.gif);border-color:#aeaeae;}.x-tab-scroller-right{background-image:url(../js/ext/resources/images/gray/tabs/scroll-right.gif);border-color:#aeaeae;}/* Window */.x-window-proxy{background:#e0e0e0;border-color:#b0b0b0;}.x-window-tl .x-window-header{color:#555;}.x-window-tc{background-image:url(../js/ext/resources/images/gray/window/top-bottom.png);}.x-window-tl{background-image:url(../js/ext/resources/images/gray/window/left-corners.png);}.x-window-tr{background-image:url(../js/ext/resources/images/gray/window/right-corners.png);}.x-window-bc{background-image:url(../js/ext/resources/images/gray/window/top-bottom.png);}.x-window-bl{background-image:url(../js/ext/resources/images/gray/window/left-corners.png);}.x-window-br{background-image:url(../js/ext/resources/images/gray/window/right-corners.png);}.x-window-mc{border:1px solid #d0d0d0;background:#e8e8e8;}.x-window-ml{background-image:url(../js/ext/resources/images/gray/window/left-right.png);}.x-window-mr{background-image:url(../js/ext/resources/images/gray/window/left-right.png);}.x-panel-ghost .x-window-tl{border-color:#d0d0d0;}.x-panel-collapsed .x-window-tl{border-color:#d0d0d0;}.x-window-plain .x-window-mc{background:#e8e8e8;border-right:1px solid #eee;border-bottom:1px solid #eee;border-top:1px solid #d0d0d0;border-left:1px solid #d0d0d0;}.x-window-plain .x-window-body{border-left:1px solid #eee;border-top:1px solid #eee;border-bottom:1px solid #d0d0d0;border-right:1px solid #d0d0d0;background:transparent!important;}body.x-body-masked .x-window-mc,body.x-body-masked .x-window-plain .x-window-mc{background-color:#e4e4e4;}/* misc */.x-html-editor-wrap{border-color:#d0d0d0;}/* Borders go last for specificity */.x-panel-noborder .x-panel-body-noborder{border-width:0;}.x-panel-noborder .x-panel-header-noborder{border-width:0;border-bottom:1px solid #d0d0d0;}.x-panel-noborder .x-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #d0d0d0;}.x-panel-noborder .x-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #d0d0d0;}.x-window-noborder .x-window-mc{border-width:0;}.x-window-plain .x-window-body-noborder{border-width:0;}.x-tab-panel-noborder .x-tab-panel-body-noborder{border-width:0;}.x-tab-panel-noborder .x-tab-panel-header-noborder{border-top-width:0;border-left-width:0;border-right-width:0;}.x-tab-panel-noborder .x-tab-panel-footer-noborder{border-bottom-width:0;border-left-width:0;border-right-width:0;}.x-tab-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #d0d0d0;}.x-tab-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #d0d0d0;}.kunebody{background-color:#FFF;color:#000;font-family:arial, sans;margin:5px;}#kuneinitialcurtain{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#FFF;z-index:9999;}/* Global styles */.gwt-HorizontalSplitPanel .hsplitter{cursor:e-resize;width:6px;}.gwt-DialogBox{border:8px solid #C3D9FF;border:2px outset;background-color:#FFF;}.gwt-DialogBox .Caption{background-color:#C3D9FF;font-size:85%;font-weight:700;padding:3px;margin:2px;cursor:default;}.gwt-MenuBar{background-color:#F2F2F2;border:1px solid #999;vertical-align:middle;padding:5px 0;}.gwt-MenuBar .gwt-MenuItem{cursor:pointer;padding:1px 10px;white-space:nowrap;}.gwt-MenuBar .gwt-MenuItem img{vertical-align:middle;margin-right:3px;}.gwt-MenuBar .gwt-MenuItem{background-color:#F2F2F2;}.gwt-MenuBar .gwt-MenuItem-selected{background-color:#FFB958;}.kune-MenuBar .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;cursor:hand;white-space:nowrap;padding:0 10px;}.kune-MenuBar .gwt-MenuItem-selected{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#963;}.kune-expandHoriz{width:100%;}.kune-expandVert{height:100%;}.kune-floatleft{float:left;}.kune-floatright{float:right;}/* Deprecated */.kune-Default-Form{margin:10px;}.kune-valignmiddle{vertical-align:middle;}fieldset{border:1px solid #B5B8C8;/* margin-bottom:10px; */padding:10px 10px 5px;}legend{color:#15428B;font-size:85%;font-size-adjust:none;font-style:normal;font-variant:normal;font-weight:700;line-height:normal;}.gwt-RadioButton input{margin:0 3px;vertical-align:middle;}.gwt-RadioButton label{margin:0 3px;vertical-align:middle;}.kune-pointer{cursor:pointer;}.kuneLabelPre{white-space:pre!important;}/* Buttons */.kune-CustomPushButton-space{margin-top:3px;margin-bottom:3px;}.kune-CustomPushButton{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:0 12px;}.kune-CustomPushButton-up{color:#161616;}.kune-CustomPushButton-down{color:#000;}.kune-CustomPushButton-up-hovering{color:#161616;background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;}.kune-CustomPushButton-down-hovering{color:#000;}.kune-CustomPushButton-up-disabled{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#E0E0E0;cursor:normal;}.kune-CustomPushButton-down-disabled{background:transparent url(img/button-bg-soft.gif) repeat-x 0 0;color:#E0E0E0;cursor:normal;}.kune-Button-Large-lrSpace{margin-left:12px;margin-right:12px;}.kune-Button-Large-rSpace{margin-right:12px;}.kune-Button-Large-lSpace{margin-left:12px;}.kune-Button-Large-tbSpace{margin-top:12px;margin-bottom:12px;}.kune-Button-Small-lrSpace{margin-left:10px;margin-right:10px;}.kune-Button-Small-rSpace{margin-right:10px;}.kune-Button-Small-lSpace{margin-left:10px;}.kune-Button-Small-tbSpace{margin-top:10px;margin-bottom:10px;}.kune-Button-Mini-lSpace{margin-left:8px;}.kune-Button-Mini-lrSpace{margin-left:8px;margin-right:8px;}.kune-Button-Mini-rSpace{margin-right:8px;}.kune-Button-Mini-tbSpace{margin-top:8px;margin-bottom:8px;}.kune-IconHyperlink{}.kune-IconHyperlink a:link{/* text-decoration: underline; */color:green;}.kune-IconHyperlink a:hover{text-decoration:underline;}.kune-IconHyperlink a:visited{color:olive;}.kune-IconHyperlink img{margin-right:4px;vertical-align:middle;}.kune-IconLabel{}.kune-IconLabel img{margin-right:4px;vertical-align:middle;}.kune-link{text-decoration:underline;color:green;cursor:pointer;}/* DropDowns */.kune-DropDownOuter{background-color:green;}.kune-DropDownInner{margin:0 3px 1px;background:green;background-color:#FFF;padding:3px;}.kune-DropDownLabel{color:#FFF;cursor:pointer;}.kune-DropDownLabel .gwt-Label{margin:0 5px 0 0;width:100%;}.kune-DropDownLabel img{margin:0 3px 0 1px;}.kune-IconLabel{color:green;}.kune-IconLabel img{margin-right:4px;vertical-align:middle;}/* Used in multi chat panel status change */.x-menu-item img{margin-right:4px;vertical-align:middle;}/* Margins */.kune-Margin-40-trbl{margin:40px;}.kune-Margin-40-lr{margin-left:40px;margin-right:40px;}.kune-Margin-40-tl{margin-top:40px;margin-left:40px;}.kune-Margin-40-tb{margin-top:40px;margin-bottom:40px;}.kune-Margin-40-t{margin-top:40px;}.kune-Margin-40-r{margin-right:40px;}.kune-Margin-40-l{margin-left:40px;}.kune-Margin-20-trbl{margin:20px;}.kune-Margin-20-lr{margin-left:20px;margin-right:20px;}.kune-Margin-20-tl{margin-top:20px;margin-left:20px;}.kune-Margin-20-tb{margin-top:20px;margin-bottom:20px;}.kune-Margin-20-t{margin-top:20px;}.kune-Margin-20-r{margin-right:20px;}.kune-Margin-20-l{margin-left:20px;}.kune-Margin-Large-trbl{margin:10px;}.kune-Margin-Large-lr{margin-left:10px;margin-right:10px;}.kune-Margin-Large-tl{margin-top:10px;margin-left:10px;}.kune-Margin-Large-tb{margin-top:10px;margin-bottom:: 10px;}.kune-Margin-Large-t{margin-top:10px;}.kune-Margin-Large-r{margin-right:10px;}.kune-Margin-Large-l{margin-left:10px;}.kune-Margin-Medium-trbl{margin:5px;}.kune-Margin-Medium-lr{margin-left:5px;margin-right:5px;}.kune-Margin-Medium-tl{margin-top:5px;margin-left:5px;}.kune-Margin-Medium-tb{margin-top:5px;margin-bottom:5px;}.kune-Margin-Medium-t{margin-top:5px;}.kune-Margin-Medium-r{margin-right:5px;}.kune-Margin-Medium-b{margin-bottom:5px;}.kune-Margin-Medium-l{margin-left:5px;}.kune-Margin-Small-trbl{margin:3px;}.kune-Margin-Small-lr{margin-left:3px;margin-right:3px;}.kune-Margin-Small-tl{margin-top:3px;margin-left:3px;}.kune-Margin-Small-tb{margin-top:3px;margin-bottom:3px;}.kune-Margin-Small-t{margin-top:3px;}.kune-Margin-Mini-trbl{margin:1px;}.kune-Margin-Mini-lr{margin-left:1px;margin-right:1px;}.kune-Margin-Mini-tl{margin-top:1px;margin-left:1px;}.kune-Margin-Mini-tb{margin-top:1px;margin-bottom:1px;}.kune-Margin-Mini-t{margin-top:1px;}.kune-Margin-Mini-r{margin-right:1px;}.kune-Margin-Mini-l{margin-left:1px;}/* Fonts
-see: http://developer.yahoo.com/yui/fonts/ */.kune-ft10px{font-size:77%;}.kune-ft11px{font-size:85%;}.kune-ft12px{font-size:93%;}.kune-ft13px{font-size:100%;}.kune-ft14px{font-size:108%;}.kune-ft15px{font-size:116%;}.kune-ft16px{font-size:123.099998%;}.kune-ft17px{font-size:131%;}.kune-ft18px{font-size:138.5%;}.kune-ft19px{font-size:146.5%;}.kune-ft20px{font-size:153.899994%;}.kune-ft21px{font-size:161.600006%;}.kune-ft22px{font-size:167%;}.kune-ft23px{font-size:174%;}.kune-ft24px{font-size:182%;}.kune-ft25px{font-size:189%;}.kune-ft26px{font-size:197px %;}/* Sitebar */#kuneprogresspanel{position:absolute;top:2px;left:2px;z-index:30000;}.kune-Progress{background:#E5FF80;border:1px solid #E5FF80;white-space:nowrap;height:16px;padding:0 3px;}.kune-SiteBarPanel .kune-IconHyperlink{white-space:nowrap;}.kune-SiteBarPanel .kune-IconHyperlink a:link{cursor:pointer;text-decoration:underline;color:#B3B3B3;}.kune-SiteBarPanel .kune-IconHyperlink a:hover{text-decoration:underline;}.kune-SiteBarPanel .kune-IconHyperlink a:visited{color:#B3B3B3;}.kune-SiteBarPanel{margin-right:10px;height:16px;}.kune-SiteBarPanel .gwt-TextBox{border:1px solid #E4A374;margin:0 15px 0 3px;padding-left:3px;color:#B3B3B3;}.kune-SiteBarPanel .gwt-Hyperlink a{white-space:nowrap;color:#B3B3B3;text-decoration:underline;cursor:pointer;}.kune-SiteBarPanel .gwt-PushButton{cursor:pointer;}.kune-SiteBarPanel-Separator{color:#E4A374;margin:0 5px;}.kune-SiteBarPanel-SpaceSeparator{width:10px;}.kune-SiteBarPanel-LabelLink{white-space:nowrap;color:#B3B3B3;margin-left:3px;cursor:pointer;text-decoration:underline;}.kune-SiteMessagePanel{color:#250;position:absolute;z-index:10000;vertical-align:middle;}.kune-SiteMessagePanel .gwt-HTML{margin:15px 5px 15px 2px;}.kune-SiteMessagePanel .gwt-Image{margin:5px;}.kune-SiteMessagePanel-error{background-color:#FFB380;border:1px solid #F06;}.kune-SiteMessagePanel-veryimp{background-color:#FFD4AA;border:1px solid #F59;}.kune-SiteMessagePanel-imp{background-color:#FFE6D5;border:1px solid #DE87AA;}.kune-SiteMessagePanel-info{background-color:#E5FF80;border:1px solid #87DE87;}/* Workspace styles */.kune-WorkspacePanel{width:100%;background-color:#FFF;}.kune-WokspacePanel .Tab{}.kune-WorkspacePanel .GeneralHP{}.kune-WorkspacePanel .ContextPanel{width:100%;border-right:3px solid #DD8A3D;}.kune-EntityTextLogo{border:2px solid #F2F2F2;height:60px;margin-bottom:4px;overflow:hidden;width:468px;}.kune-EntityTextLogo .gwt-Label{color:#A40;font-size:167%;font-weight:700;margin:5px;height:27px;}.kune-EntityTextLogo .gwt-Hyperlink a{color:#CCC;font-size:85%;margin:5px;text-decoration:underline;white-space:nowrap;background-color:#FFF;}.kune-GroupSummaryPanel{margin:5px 0 0 5px;width:100%;}.kune-GroupToolsBar{width:150px;}.kune-GroupToolsBar-itemSelected{margin-bottom:5px;}.kune-GroupToolsBar-itemSelected .gwt-Hyperlink a{color:#FFF;padding:0 9px;text-decoration:none;}.kune-GroupToolsBar-itemSelected .gwt-Hyperlink a:hover{text-decoration:none;}.kune-GroupToolsBar-itemNotSelected{margin-bottom:5px;}.kune-GroupToolsBar-itemNotSelected .gwt-Hyperlink a{color:green;padding:0 9px;text-decoration:none;}.kune-GroupToolsBar-itemNotSelected .gwt-Hyperlink a:hover{text-decoration:none;}/* Content titles */.kune-ContentTitleBar{border-left:2px solid #DD8A3D;width:100%;height:25px;vertical-align:middle;}.kune-ContentTitleBar .gwt-Label{width:100%;}.kune-ContentTitleBar-l{float:left;}.kune-ContentTitleBar-r{float:right;}.kune-ContentSubTitleBar{vertical-align:middle;font-weight:700;width:100%;height:23px;}.kune-ContentSubTitleBar .gwt-Label{width:100%;white-space:nowrap;}.kune-ContentSubTitleBar-l{float:left;}.kune-ContentSubTitleBar-r{float:right;}.kune-ContentToolBarPanel{background-color:#F2F2F2;padding:2px;height:24px;vertical-align:middle;}.kune-ContentBottomBar{vertical-align:middle;height:24px;}.kune-ContentBottomBar .gwt-Image{margin-left:5px;cursor:pointer;float:left;}.kune-ContentBottomBar .gwt-Label a{}.kune-LicensePanel-licensetext{cursor:pointer;margin-left:5px;text-decoration:underline;}/* Main Content & Context */.kune-WorkspacePanel-Content{background-color:#FCFCFC;width:100%;height:100%;}.kune-WorkspacePanel-Content .main-content{margin:7px 5px 5px 10px;}.kune-WorkspacePanel-Context{background-color:#CFA;width:100%;height:100%;}.kune-NavigationBar{width:100%;}.kune-NavigationBar .topBar{background-color:#ececec;background:#ececec;border-bottom:1px solid #e3dbdb;vertical-align:middle;}.kune-NavigationBar .topBar .gwt-PushButton{margin:1px 3px 1px 0;}.kune-NavigationBar .topBar .gwt-Label{vertical-align:middle;}.kune-NavigationBar .kune-topBar-iconBar{margin:2px 0 2px 5px;}.kune-NavigationBar .kune-ContextItemsPanel-LabelLink{/* text-decoration: underline; */color:green;cursor:pointer;margin-left:3px;}/*
+*/
+body {font:13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}table {font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:99%;}
+
+
+/*
+ * Ext JS Library 2.0.2
+ * Copyright(c) 2006-2008, Ext JS, LLC.
+ * licensing(a)extjs.com
+ *
+ * http://extjs.com/license
+ */
+
+html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}
+img,body,html{border:0;}
+address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}
+ol,ul{list-style:none;}
+caption,th{text-align:left;}
+h1,h2,h3,h4,h5,h6{font-size:100%;}
+q:before,q:after{content:'';}
+
+.ext-el-mask{z-index:20000;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;width:100%;height:100%;zoom:1;}
+.ext-el-mask-msg{z-index:20001;position:absolute;top:0;left:0;border:1px solid #6593cf;background:#c3daf9 url(../js/ext/resources/images/default/box/tb-blue.gif) repeat-x 0 -16px;padding:2px;}
+.ext-el-mask-msg div{padding:5px 10px 5px 10px;background:#eee;border:1px solid #a3bad9;color:#222;font:normal 11px tahoma,arial,helvetica,sans-serif;cursor:wait;}
+.ext-shim{position:absolute;visibility:hidden;left:0;top:0;overflow:hidden;}
+.ext-ie .ext-shim{filter:alpha(opacity=0);}
+.ext-ie6 .ext-shim{margin-left:5px;margin-top:3px;}
+.x-mask-loading div{padding:5px 10px 5px 25px;background:#fbfbfb url( '../js/ext/resources/images/default/grid/loading.gif' ) no-repeat 5px 5px;line-height:16px;}
+.x-hidden,.x-hide-offsets{position:absolute;left:-10000px;top:-10000px;visibility:hidden;}
+.x-hide-display{display:none!important;}
+.x-hide-visibility{visibility:hidden!important;}
+.x-masked{overflow:hidden!important;}
+.x-masked select,.x-masked object,.x-masked embed{visibility:hidden;}
+.x-layer{visibility:hidden;}
+.x-unselectable,.x-unselectable *{-moz-user-select:none;-khtml-user-select:none;}
+.x-repaint{zoom:1;background-color:transparent;-moz-outline:none;}
+.x-item-disabled{color:gray;cursor:default;opacity:.6;-moz-opacity:.6;filter:alpha(opacity=60);}
+.x-item-disabled *{color:gray!important;cursor:default!important;}
+.x-splitbar-proxy{position:absolute;visibility:hidden;z-index:20001;background:#aaa;zoom:1;line-height:1px;font-size:1px;overflow:hidden;}
+.x-splitbar-h,.x-splitbar-proxy-h{cursor:e-resize;cursor:col-resize;}
+.x-splitbar-v,.x-splitbar-proxy-v{cursor:s-resize;cursor:row-resize;}
+.x-color-palette{width:150px;height:92px;cursor:pointer;}
+.x-color-palette a{border:1px solid #fff;float:left;padding:2px;text-decoration:none;-moz-outline:0 none;outline:0 none;cursor:pointer;}
+.x-color-palette a:hover,.x-color-palette a.x-color-palette-sel{border:1px solid #8BB8F3;background:#deecfd;}
+.x-color-palette em{display:block;border:1px solid #ACA899;}
+.x-color-palette em span{cursor:pointer;display:block;height:10px;line-height:10px;width:10px;}
+.x-ie-shadow{display:none;position:absolute;overflow:hidden;left:0;top:0;background:#777;zoom:1;}
+.x-shadow{display:none;position:absolute;overflow:hidden;left:0;top:0;}
+.x-shadow *{overflow:hidden;}
+.x-shadow *{padding:0;border:0;margin:0;clear:none;zoom:1;}
+.x-shadow .xstc,.x-shadow .xsbc{height:6px;float:left;}
+.x-shadow .xstl,.x-shadow .xstr,.x-shadow .xsbl,.x-shadow .xsbr{width:6px;height:6px;float:left;}
+.x-shadow .xsc{width:100%;}
+.x-shadow .xsml,.x-shadow .xsmr{width:6px;float:left;height:100%;}
+.x-shadow .xsmc{float:left;height:100%;background:transparent url( ../js/ext/resources/images/default/shadow-c.png );}
+.x-shadow .xst,.x-shadow .xsb{height:6px;overflow:hidden;width:100%;}
+.x-shadow .xsml{background:transparent url( ../js/ext/resources/images/default/shadow-lr.png ) repeat-y 0 0;}
+.x-shadow .xsmr{background:transparent url( ../js/ext/resources/images/default/shadow-lr.png ) repeat-y -6px 0;}
+.x-shadow .xstl{background:transparent url( ../js/ext/resources/images/default/shadow.png ) no-repeat 0 0;}
+.x-shadow .xstc{background:transparent url( ../js/ext/resources/images/default/shadow.png ) repeat-x 0 -30px;}
+.x-shadow .xstr{background:transparent url( ../js/ext/resources/images/default/shadow.png ) repeat-x 0 -18px;}
+.x-shadow .xsbl{background:transparent url( ../js/ext/resources/images/default/shadow.png ) no-repeat 0 -12px;}
+.x-shadow .xsbc{background:transparent url( ../js/ext/resources/images/default/shadow.png ) repeat-x 0 -36px;}
+.x-shadow .xsbr{background:transparent url( ../js/ext/resources/images/default/shadow.png ) repeat-x 0 -6px;}
+.loading-indicator{font-size:11px;background-image:url(../js/ext/resources/images/default/grid/loading.gif);background-repeat:no-repeat;background-position:left;padding-left:20px;line-height:16px;margin:3px;}
+.x-text-resize{position:absolute;left:-1000px;top:-1000px;visibility:hidden;zoom:1;}
+.x-drag-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background-image:url(../js/ext/resources/images/default/s.gif);z-index:20000;}
+.x-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;}
+.x-spotlight{z-index:8999;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;width:0;height:0;zoom:1;}
+
+.x-tab-panel{overflow:hidden;}
+.x-tab-panel-header,.x-tab-panel-footer{background:#deecfd;border:1px solid #8db2e3;overflow:hidden;zoom:1;}
+.x-tab-panel-header{border:1px solid #8db2e3;padding-bottom:2px;}
+.x-tab-panel-footer{border:1px solid #8db2e3;padding-top:2px;}
+.x-tab-strip-wrap{width:100%;overflow:hidden;position:relative;zoom:1;}
+ul.x-tab-strip{display:block;width:5000px;zoom:1;}
+ul.x-tab-strip-top{padding-top:1px;background:url(../js/ext/resources/images/default/tabs/tab-strip-bg.gif) #cedff5 repeat-x bottom;border-bottom:1px solid #8db2e3;}
+ul.x-tab-strip-bottom{padding-bottom:1px;background:url(../js/ext/resources/images/default/tabs/tab-strip-btm-bg.gif) #cedff5 repeat-x top;border-top:1px solid #8db2e3;border-bottom:0 none;}
+.x-tab-panel-header-plain .x-tab-strip-top{background:transparent!important;padding-top:0!important;}
+.x-tab-panel-header-plain{background:transparent!important;border-width:0!important;padding-bottom:0!important;}
+.x-tab-panel-header-plain .x-tab-strip-spacer{border:1px solid #8db2e3;border-top:0 none;height:2px;background:#deecfd;font-size:1px;line-height:1px;}
+.ext-border-box .x-tab-panel-header-plain .x-tab-strip-spacer{height:3px;}
+ul.x-tab-strip li{float:left;margin-left:2px;}
+ul.x-tab-strip li.x-tab-edge{float:left;margin:0!important;padding:0!important;border:0 none!important;font-size:1px!important;line-height:1px!important;overflow:hidden;zoom:1;background:transparent!important;width:1px;}
+.x-tab-strip a,.x-tab-strip span,.x-tab-strip em{display:block;}
+.x-tab-strip a{text-decoration:none!important;-moz-outline:none;outline:none;cursor:pointer;}
+.x-tab-strip-inner{overflow:hidden;text-overflow:ellipsis;}
+.x-tab-strip span.x-tab-strip-text{font:normal 11px tahoma,arial,helvetica;color:#416aa3;white-space:nowrap;cursor:pointer;padding:4px 0;}
+.x-tab-strip .x-tab-with-icon .x-tab-right{padding-left:6px;}
+.x-tab-strip .x-tab-with-icon span.x-tab-strip-text{padding-left:20px;background-position:0 3px;background-repeat:no-repeat;}
+.x-tab-strip-over span.x-tab-strip-text{color:#15428b;}
+.x-tab-strip-active{cursor:default;}
+.x-tab-strip-active span.x-tab-strip-text{cursor:default;color:#15428b;font-weight:bold;}
+.x-tab-strip-disabled .x-tabs-text{cursor:default;color:#aaa;}
+.x-tab-panel-body{overflow:hidden;}
+.x-tab-panel-bwrap{overflow:hidden;}
+.ext-ie .x-tab-strip .x-tab-right{position:relative;}
+.x-tab-strip-top .x-tab-strip-active .x-tab-right{margin-bottom:-1px;}
+.x-tab-strip-top .x-tab-strip-active .x-tab-right span.x-tab-strip-text{padding-bottom:5px;}
+.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{margin-top:-1px;}
+.x-tab-strip-bottom .x-tab-strip-active .x-tab-right span.x-tab-strip-text{padding-top:5px;}
+.x-tab-strip-top .x-tab-right{background:transparent url(../js/ext/resources/images/default/tabs/tabs-sprite.gif) no-repeat 0 -51px;padding-left:10px;}
+.x-tab-strip-top .x-tab-left{background:transparent url(../js/ext/resources/images/default/tabs/tabs-sprite.gif) no-repeat right -351px;padding-right:10px;}
+.x-tab-strip-top .x-tab-strip-inner{background:transparent url(../js/ext/resources/images/default/tabs/tabs-sprite.gif) repeat-x 0 -201px;}
+.x-tab-strip-top .x-tab-strip-over .x-tab-right{background-position:0 -101px;}
+.x-tab-strip-top .x-tab-strip-over .x-tab-left{background-position:right -401px;}
+.x-tab-strip-top .x-tab-strip-over .x-tab-strip-inner{background-position:0 -251px;}
+.x-tab-strip-top .x-tab-strip-active .x-tab-right{background-position:0 0;}
+.x-tab-strip-top .x-tab-strip-active .x-tab-left{background-position:right -301px;}
+.x-tab-strip-top .x-tab-strip-active .x-tab-strip-inner{background-position:0 -151px;}
+.x-tab-strip-bottom .x-tab-right{background:url(../js/ext/resources/images/default/tabs/tab-btm-inactive-right-bg.gif) no-repeat bottom right;}
+.x-tab-strip-bottom .x-tab-left{background:url(../js/ext/resources/images/default/tabs/tab-btm-inactive-left-bg.gif) no-repeat bottom left;}
+.x-tab-strip-bottom .x-tab-strip-active .x-tab-right{background:url(../js/ext/resources/images/default/tabs/tab-btm-right-bg.gif) no-repeat bottom left;}
+.x-tab-strip-bottom .x-tab-strip-active .x-tab-left{background:url(../js/ext/resources/images/default/tabs/tab-btm-left-bg.gif) no-repeat bottom right;}
+.x-tab-strip-bottom .x-tab-left{padding:0 10px;}
+.x-tab-strip-bottom .x-tab-right{padding:0;}
+.x-tab-strip .x-tab-strip-close{display:none;}
+.x-tab-strip-closable{position:relative;}
+.x-tab-strip-closable .x-tab-left{padding-right:19px;}
+.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close{background-image:url(../js/ext/resources/images/default/tabs/tab-close.gif);opacity:.6;-moz-opacity:.6;background-repeat:no-repeat;display:block;width:11px;height:11px;position:absolute;top:3px;right:3px;cursor:pointer;z-index:2;}
+.x-tab-strip .x-tab-strip-active a.x-tab-strip-close{opacity:.8;-moz-opacity:.8;}
+.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{background-image:url(../js/ext/resources/images/default/tabs/tab-close.gif);opacity:1;-moz-opacity:1;}
+.x-tab-panel-body{border:1px solid #8db2e3;background:#fff;}
+.x-tab-panel-body-top{border-top:0 none;}
+.x-tab-panel-body-bottom{border-bottom:0 none;}
+.x-tab-scroller-left{background:transparent url(../js/ext/resources/images/default/tabs/scroll-left.gif) no-repeat -18px 0;border-bottom:1px solid #8db2e3;width:18px;position:absolute;left:0;top:0;z-index:10;cursor:pointer;}
+.x-tab-scroller-left-over{background-position:0 0;}
+.x-tab-scroller-left-disabled{background-position:-18px 0;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);cursor:default;}
+.x-tab-scroller-right{background:transparent url(../js/ext/resources/images/default/tabs/scroll-right.gif) no-repeat 0 0;border-bottom:1px solid #8db2e3;width:18px;position:absolute;right:0;top:0;z-index:10;cursor:pointer;}
+.x-tab-scroller-right-over{background-position:-18px 0;}
+.x-tab-scroller-right-disabled{background-position:0 0;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);cursor:default;}
+.x-tab-scrolling .x-tab-strip-wrap{margin-left:18px;margin-right:18px;}
+.x-tab-scrolling{position:relative;}
+.x-tab-panel-bbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}
+.x-tab-panel-tbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}
+.x-border-layout-ct .x-tab-panel{background:white;}
+
+ .x-form-field{margin:0;font:normal 12px tahoma,arial,helvetica,sans-serif;}
+.x-form-text,textarea.x-form-field{padding:1px 3px;background:#fff url(../js/ext/resources/images/default/form/text-bg.gif) repeat-x 0 0;border:1px solid #B5B8C8;}
+textarea.x-form-field{padding:2px 3px;}
+.x-form-text{height:22px;line-height:18px;vertical-align:middle;}
+.ext-ie .x-form-text{margin:-1px 0;height:22px;line-height:18px;}
+.ext-ie textarea.x-form-field{margin:-1px 0;}
+.ext-strict .x-form-text{height:18px;}
+.ext-safari .x-form-text{height:20px;padding:0 3px;}
+.ext-safari.ext-mac textarea.x-form-field{margin-bottom:-2px;}
+.ext-gecko .x-form-text{padding-top:2px;padding-bottom:0;}
+textarea{resize:none;}
+.x-form-select-one{height:20px;line-height:18px;vertical-align:middle;background-color:#fff;border:1px solid #B5B8C8;}
+.x-form-field-wrap{position:relative;zoom:1;white-space:nowrap;}
+.x-editor .x-form-check-wrap{background:#fff;}
+.x-form-field-wrap .x-form-trigger{width:17px;height:21px;border:0;background:transparent url(../js/ext/resources/images/default/form/trigger.gif) no-repeat 0 0;cursor:pointer;border-bottom:1px solid #B5B8C8;position:absolute;top:0;}
+.ext-safari .x-form-field-wrap .x-form-trigger{height:21px;}
+.x-form-field-wrap .x-form-date-trigger{background-image:url(../js/ext/resources/images/default/form/date-trigger.gif);cursor:pointer;}
+.x-form-field-wrap .x-form-clear-trigger{background-image:url(../js/ext/resources/images/default/form/clear-trigger.gif);cursor:pointer;}
+.x-form-field-wrap .x-form-search-trigger{background-image:url(../js/ext/resources/images/default/form/search-trigger.gif);cursor:pointer;}
+.ext-safari .x-form-field-wrap .x-form-trigger{right:0;}
+.x-form-field-wrap .x-form-twin-triggers .x-form-trigger{position:static;top:auto;vertical-align:top;}
+.x-form-field-wrap .x-form-trigger-over{background-position:-17px 0;}
+.x-form-field-wrap .x-form-trigger-click{background-position:-34px 0;}
+.x-trigger-wrap-focus .x-form-trigger{background-position:-51px 0;}
+.x-trigger-wrap-focus .x-form-trigger-over{background-position:-68px 0;}
+.x-trigger-wrap-focus .x-form-trigger-click{background-position:-85px 0;}
+.x-trigger-wrap-focus .x-form-trigger{border-bottom:1px solid #7eadd9;}
+.x-item-disabled .x-form-trigger-over{background-position:0 0!important;border-bottom:1px solid #B5B8C8;}
+.x-item-disabled .x-form-trigger-click{background-position:0 0!important;border-bottom:1px solid #B5B8C8;}
+.x-form-focus,textarea.x-form-focus{border:1px solid #7eadd9;}
+.x-form-invalid,textarea.x-form-invalid{background:#fff url(../js/ext/resources/images/default/grid/invalid_line.gif) repeat-x bottom;border:1px solid #dd7870;}
+.ext-safari .x-form-invalid{background-color:#fee;border:1px solid #ff7870;}
+.x-editor{visibility:hidden;padding:0;margin:0;}
+.x-form-check-wrap{line-height:18px;}
+.ext-ie .x-form-check-wrap input{width:15px;height:15px;}
+.x-editor .x-form-check-wrap{padding:3px;}
+.x-editor .x-form-checkbox{height:13px;}
+.x-form-grow-sizer{font:normal 12px tahoma,arial,helvetica,sans-serif;left:-10000px;padding:8px 3px;position:absolute;visibility:hidden;top:-10000px;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;zoom:1;}
+.x-form-grow-sizer p{margin:0!important;border:0 none!important;padding:0!important;}
+.x-form-item{font:normal 12px tahoma,arial,helvetica,sans-serif;display:block;margin-bottom:4px;}
+.x-form-item label{display:block;float:left;width:100px;padding:3px;padding-left:0;clear:left;z-index:2;position:relative;}
+.x-form-element{padding-left:105px;position:relative;}
+.x-form-invalid-msg{color:#e00;padding:2px;padding-left:18px;font:normal 11px tahoma,arial,helvetica,sans-serif;background:transparent url(../js/ext/resources/images/default/shared/warning.gif) no-repeat 0 2px;line-height:16px;width:200px;}
+.x-form-label-right label{text-align:right;}
+.x-form-label-top .x-form-item label{width:auto;float:none;clear:none;display:inline;margin-bottom:4px;position:static;}
+.x-form-label-top .x-form-element{padding-left:0;padding-top:4px;}
+.x-form-label-top .x-form-item{padding-bottom:4px;}
+.x-form-empty-field{color:gray;}
+.x-small-editor .x-form-field{font:normal 11px arial,tahoma,helvetica,sans-serif;}
+.x-small-editor .x-form-text{height:20px;line-height:16px;vertical-align:middle;}
+.ext-ie .x-small-editor .x-form-text{margin-top:-1px!important;margin-bottom:-1px!important;height:20px!important;line-height:16px!important;}
+.ext-strict .x-small-editor .x-form-text{height:16px!important;}
+.ext-safari .x-small-editor .x-form-field{font:normal 12px arial,tahoma,helvetica,sans-serif;}
+.ext-ie .x-small-editor .x-form-text{height:20px;line-height:16px;}
+.ext-border-box .x-small-editor .x-form-text{height:20px;}
+.x-small-editor .x-form-select-one{height:20px;line-height:16px;vertical-align:middle;}
+.x-small-editor .x-form-num-field{text-align:right;}
+.x-small-editor .x-form-field-wrap .x-form-trigger{height:19px;}
+.x-form-clear{clear:both;height:0;overflow:hidden;line-height:0;font-size:0;}
+.x-form-clear-left{clear:left;height:0;overflow:hidden;line-height:0;font-size:0;}
+.x-form-cb-label{width:'auto'!important;float:none!important;clear:none!important;display:inline!important;margin-left:4px;}
+.x-form-column{float:left;padding:0;margin:0;width:48%;overflow:hidden;zoom:1;}
+.x-form .x-form-btns-ct .x-btn{float:right;clear:none;}
+.x-form .x-form-btns-ct .x-form-btns td{border:0;padding:0;}
+.x-form .x-form-btns-ct .x-form-btns-right table{float:right;clear:none;}
+.x-form .x-form-btns-ct .x-form-btns-left table{float:left;clear:none;}
+.x-form .x-form-btns-ct .x-form-btns-center{text-align:center;}
+.x-form .x-form-btns-ct .x-form-btns-center table{margin:0 auto;}
+.x-form .x-form-btns-ct table td.x-form-btn-td{padding:3px;}
+.x-form .x-form-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;}
+.x-form .x-form-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;}
+.x-form .x-form-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;}
+.x-form .x-form-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;}
+.x-form .x-form-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;}
+.x-form .x-form-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;}
+.x-form-invalid-icon{width:16px;height:18px;visibility:hidden;position:absolute;left:0;top:0;display:block;background:transparent url(../js/ext/resources/images/default/form/exclamation.gif) no-repeat 0 2px;}
+.x-fieldset{border:1px solid #B5B8C8;padding:10px;margin-bottom:10px;}
+.x-fieldset legend{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#15428b;}
+.ext-ie .x-fieldset legend{margin-bottom:10px;}
+.ext-ie .x-fieldset{padding-top:0;padding-bottom:10px;}
+.x-fieldset legend .x-tool-toggle{margin-right:3px;margin-left:0;float:left!important;}
+.x-fieldset legend input{margin-right:3px;float:left!important;height:13px;width:13px;}
+fieldset.x-panel-collapsed{padding-bottom:0!important;border-width:1px 0 0 0!important;}
+fieldset.x-panel-collapsed .x-fieldset-bwrap{visibility:hidden;position:absolute;left:-1000px;top:-1000px;}
+.ext-ie .x-fieldset-bwrap{zoom:1;}
+.ext-ie td .x-form-text{position:relative;top:-1px;}
+.x-fieldset-noborder{border:0 none transparent;}
+.x-fieldset-noborder legend{margin-left:-3px;}
+.ext-ie .x-fieldset-noborder legend{position:relative;margin-bottom:23px;}
+.ext-ie .x-fieldset-noborder legend span{position:absolute;left:-5px;}
+.ext-gecko .x-window-body .x-form-item{-moz-outline:none;overflow:auto;}
+.ext-gecko .x-form-item{-moz-outline:none;}
+.x-hide-label label.x-form-item-label{display:none;}
+.x-hide-label .x-form-element{padding-left:0!important;}
+.x-fieldset{overflow:hidden;}
+.x-fieldset-bwrap{overflow:hidden;zoom:1;}
+.x-fieldset-body{overflow:hidden;}
+
+.x-btn{font:normal 11px tahoma,verdana,helvetica;cursor:pointer;white-space:nowrap;}
+.x-btn button{border:0 none;background:transparent;font:normal 11px tahoma,verdana,helvetica;padding-left:3px;padding-right:3px;cursor:pointer;margin:0;overflow:visible;width:auto;-moz-outline:0 none;outline:0 none;}
+* html .ext-ie .x-btn button{width:1px;}
+.ext-gecko .x-btn button{padding-left:0;padding-right:0;}
+.ext-ie .x-btn button{padding-top:2px;}
+.x-btn-icon .x-btn-center .x-btn-text{background-position:center;background-repeat:no-repeat;height:16px;width:16px;cursor:pointer;white-space:nowrap;padding:0;}
+.x-btn-icon .x-btn-center{padding:1px;}
+.x-btn em{font-style:normal;font-weight:normal;}
+.x-btn-text-icon .x-btn-center .x-btn-text{background-position:0 2px;background-repeat:no-repeat;padding-left:18px;padding-top:3px;padding-bottom:2px;padding-right:0;}
+.x-btn-left,.x-btn-right{font-size:1px;line-height:1px;}
+.x-btn-left{width:3px;height:21px;background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 0;}
+.x-btn-right{width:3px;height:21px;background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 -21px;}
+.x-btn-left i,.x-btn-right i{display:block;width:3px;overflow:hidden;font-size:1px;line-height:1px;}
+.x-btn-center{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) repeat-x 0 -42px;vertical-align:middle;text-align:center;padding:0 5px;cursor:pointer;white-space:nowrap;}
+.x-btn-over .x-btn-left{background-position:0 -63px;}
+.x-btn-over .x-btn-right{background-position:0 -84px;}
+.x-btn-over .x-btn-center{background-position:0 -105px;}
+.x-btn-click .x-btn-center,.x-btn-menu-active .x-btn-center{background-position:0 -126px;}
+.x-btn-disabled *{color:gray!important;cursor:default!important;}
+.x-btn-menu-text-wrap .x-btn-center{padding:0 3px;}
+.ext-gecko .x-btn-menu-text-wrap .x-btn-center{padding:0 1px;}
+.x-btn-menu-arrow-wrap .x-btn-center{padding:0;}
+.x-btn-menu-arrow-wrap .x-btn-center button{width:12px!important;height:21px;padding:0!important;display:block;background:transparent url(../js/ext/resources/images/default/button/btn-arrow.gif) no-repeat left 3px;}
+.x-btn-with-menu .x-btn-center{padding-right:2px!important;}
+.x-btn-with-menu .x-btn-center em{display:block;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat right 0;padding-right:10px;}
+.x-btn-text-icon .x-btn-with-menu .x-btn-center em{display:block;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat right 3px;padding-right:10px;}
+.x-btn-pressed .x-btn-left{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 -63px;}
+.x-btn-pressed .x-btn-right{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) no-repeat 0 -84px;}
+.x-btn-pressed .x-btn-center{background:url(../js/ext/resources/images/default/button/btn-sprite.gif) repeat-x 0 -126px;}
+
+.x-toolbar{border-color:#a9bfd3;border-style:solid;border-width:0 0 1px 0;display:block;padding:2px;background:#d0def0 url(../js/ext/resources/images/default/toolbar/bg.gif) repeat-x top left;position:relative;zoom:1;}
+.x-toolbar .x-item-disabled .x-btn-icon{opacity:.35;-moz-opacity:.35;filter:alpha(opacity=35);}
+.x-toolbar td{vertical-align:middle;}
+.mso .x-toolbar,.x-grid-mso .x-toolbar{border:0 none;background:url(../js/ext/resources/images/default/grid/mso-hd.gif);}
+.x-toolbar td,.x-toolbar span,.x-toolbar input,.x-toolbar div,.x-toolbar select,.x-toolbar label{white-space:nowrap;font:normal 11px tahoma,arial,helvetica,sans-serif;}
+.x-toolbar .x-item-disabled{color:gray;cursor:default;opacity:.6;-moz-opacity:.6;filter:alpha(opacity=60);}
+.x-toolbar .x-item-disabled *{color:gray;cursor:default;}
+.x-toolbar .x-btn-left{background:none;}
+.x-toolbar .x-btn-right{background:none;}
+.x-toolbar .x-btn-center{background:none;padding:0;}
+.x-toolbar .x-btn-menu-text-wrap .x-btn-center button{padding-right:2px;}
+.ext-gecko .x-toolbar .x-btn-menu-text-wrap .x-btn-center button{padding-right:0;}
+.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{padding:0 2px;}
+.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button{width:12px;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat 0 3px;}
+.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button{width:12px;background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow.gif) no-repeat 0 3px;}
+.x-toolbar .x-btn-over .x-btn-menu-arrow-wrap .x-btn-center button{background-position:0 -47px;}
+.x-toolbar .x-btn-over .x-btn-left{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 0;}
+.x-toolbar .x-btn-over .x-btn-right{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -21px;}
+.x-toolbar .x-btn-over .x-btn-center{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -42px;}
+.x-toolbar .x-btn-click .x-btn-left,.x-toolbar .x-btn-pressed .x-btn-left,.x-toolbar .x-btn-menu-active .x-btn-left{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -63px;}
+.x-toolbar .x-btn-click .x-btn-right,.x-toolbar .x-btn-pressed .x-btn-right,.x-toolbar .x-btn-menu-active .x-btn-right{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) no-repeat 0 -84px;}
+.x-toolbar .x-btn-click .x-btn-center,.x-toolbar .x-btn-pressed .x-btn-center,.x-toolbar .x-btn-menu-active .x-btn-center{background:url(../js/ext/resources/images/default/toolbar/tb-btn-sprite.gif) repeat-x 0 -105px;}
+.x-toolbar .x-btn-with-menu .x-btn-center em{padding-right:8px;}
+.x-toolbar .ytb-text{padding:2px;}
+.x-toolbar .ytb-sep{background-image:url(../js/ext/resources/images/default/grid/grid-blue-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 0;border:0;}
+.x-toolbar .ytb-spacer{width:2px;}
+.x-tbar-page-number{width:24px;height:14px;}
+.x-tbar-page-first{background-image:url(../js/ext/resources/images/default/grid/page-first.gif)!important;}
+.x-tbar-loading{background-image:url(../js/ext/resources/images/default/grid/done.gif)!important;}
+.x-tbar-page-last{background-image:url(../js/ext/resources/images/default/grid/page-last.gif)!important;}
+.x-tbar-page-next{background-image:url(../js/ext/resources/images/default/grid/page-next.gif)!important;}
+.x-tbar-page-prev{background-image:url(../js/ext/resources/images/default/grid/page-prev.gif)!important;}
+.x-item-disabled .x-tbar-loading{background-image:url(../js/ext/resources/images/default/grid/loading.gif)!important;}
+.x-item-disabled .x-tbar-page-first{background-image:url(../js/ext/resources/images/default/grid/page-first-disabled.gif)!important;}
+.x-item-disabled .x-tbar-page-last{background-image:url(../js/ext/resources/images/default/grid/page-last-disabled.gif)!important;}
+.x-item-disabled .x-tbar-page-next{background-image:url(../js/ext/resources/images/default/grid/page-next-disabled.gif)!important;}
+.x-item-disabled .x-tbar-page-prev{background-image:url(../js/ext/resources/images/default/grid/page-prev-disabled.gif)!important;}
+.x-paging-info{position:absolute;top:5px;right:8px;color:#444;}
+
+.x-resizable-handle{position:absolute;z-index:100;font-size:1px;line-height:6px;overflow:hidden;background:white;filter:alpha(opacity=0);opacity:0;zoom:1;}
+.x-resizable-handle-east{width:6px;cursor:e-resize;right:0;top:0;height:100%;}
+.ext-ie .x-resizable-handle-east{margin-right:-1px;}
+.x-resizable-handle-south{width:100%;cursor:s-resize;left:0;bottom:0;height:6px;}
+.ext-ie .x-resizable-handle-south{margin-bottom:-1px;}
+.x-resizable-handle-west{width:6px;cursor:w-resize;left:0;top:0;height:100%;}
+.x-resizable-handle-north{width:100%;cursor:n-resize;left:0;top:0;height:6px;}
+.x-resizable-handle-southeast{width:6px;cursor:se-resize;right:0;bottom:0;height:6px;z-index:101;}
+.x-resizable-handle-northwest{width:6px;cursor:nw-resize;left:0;top:0;height:6px;z-index:101;}
+.x-resizable-handle-northeast{width:6px;cursor:ne-resize;right:0;top:0;height:6px;z-index:101;}
+.x-resizable-handle-southwest{width:6px;cursor:sw-resize;left:0;bottom:0;height:6px;z-index:101;}
+.x-resizable-over .x-resizable-handle,.x-resizable-pinned .x-resizable-handle{filter:alpha(opacity=100);opacity:1;}
+.x-resizable-over .x-resizable-handle-east,.x-resizable-pinned .x-resizable-handle-east{background:url(../js/ext/resources/images/default/sizer/e-handle.gif);background-position:left;}
+.x-resizable-over .x-resizable-handle-west,.x-resizable-pinned .x-resizable-handle-west{background:url(../js/ext/resources/images/default/sizer/e-handle.gif);background-position:left;}
+.x-resizable-over .x-resizable-handle-south,.x-resizable-pinned .x-resizable-handle-south{background:url(../js/ext/resources/images/default/sizer/s-handle.gif);background-position:top;}
+.x-resizable-over .x-resizable-handle-north,.x-resizable-pinned .x-resizable-handle-north{background:url(../js/ext/resources/images/default/sizer/s-handle.gif);background-position:top;}
+.x-resizable-over .x-resizable-handle-southeast,.x-resizable-pinned .x-resizable-handle-southeast{background:url(../js/ext/resources/images/default/sizer/se-handle.gif);background-position:top left;}
+.x-resizable-over .x-resizable-handle-northwest,.x-resizable-pinned .x-resizable-handle-northwest{background:url(../js/ext/resources/images/default/sizer/nw-handle.gif);background-position:bottom right;}
+.x-resizable-over .x-resizable-handle-northeast,.x-resizable-pinned .x-resizable-handle-northeast{background:url(../js/ext/resources/images/default/sizer/ne-handle.gif);background-position:bottom left;}
+.x-resizable-over .x-resizable-handle-southwest,.x-resizable-pinned .x-resizable-handle-southwest{background:url(../js/ext/resources/images/default/sizer/sw-handle.gif);background-position:top right;}
+.x-resizable-proxy{border:1px dashed #3b5a82;position:absolute;overflow:hidden;display:none;left:0;top:0;z-index:50000;}
+.x-resizable-overlay{width:100%;height:100%;display:none;position:absolute;left:0;top:0;background:white;z-index:200000;-moz-opacity:0;opacity:0;filter:alpha(opacity=0);}
+
+ .x-grid3{position:relative;overflow:hidden;background-color:#fff;}
+.x-grid-panel .x-panel-body{overflow:hidden!important;}
+.x-grid-panel .x-panel-mc .x-panel-body{border:1px solid #99bbe8;}
+.ext-ie .x-grid3 table,.ext-safari .x-grid3 table{table-layout:fixed;}
+.x-grid3-viewport{overflow:hidden;}
+.x-grid3-hd-row td,.x-grid3-row td,.x-grid3-summary-row td{font:normal 11px arial,tahoma,helvetica,sans-serif;-moz-outline:none;-moz-user-focus:normal;}
+.x-grid3-row td,.x-grid3-summary-row td{line-height:13px;vertical-align:top;padding-left:1px;padding-right:1px;-moz-user-select:none;}
+.x-grid3-hd-row td{line-height:15px;vertical-align:middle;border-left:1px solid #eee;border-right:1px solid #d0d0d0;}
+.x-grid3-hd-row .x-grid3-marker-hd{padding:3px;}
+.x-grid3-row .x-grid3-marker{padding:3px;}
+.x-grid3-cell-inner,.x-grid3-hd-inner{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;padding:3px 3px 3px 5px;white-space:nowrap;}
+.x-grid3-hd-inner{position:relative;cursor:inherit;padding:4px 3px 4px 5px;}
+.x-grid3-row-body{white-space:normal;}
+.x-grid3-body-cell{-moz-outline:0 none;outline:0 none;}
+.ext-ie .x-grid3-cell-inner,.ext-ie .x-grid3-hd-inner{width:100%;}
+.ext-strict .x-grid3-cell-inner,.ext-strict .x-grid3-hd-inner{width:auto;}
+.x-grid-row-loading{background:#fff url(../js/ext/resources/images/default/shared/loading-balls.gif) no-repeat center center;}
+.x-grid-page{overflow:hidden;}
+.x-grid3-row{cursor:default;border:1px solid #ededed;border-top-color:#fff;width:100%;}
+.x-grid3-row-alt{background-color:#fafafa;}
+.x-grid3-row-over{border:1px solid #ddd;background:#efefef url(../js/ext/resources/images/default/grid/row-over.gif) repeat-x left top;}
+.x-grid3-resize-proxy{width:1px;left:0;background-color:#777;cursor:e-resize;cursor:col-resize;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;}
+.x-grid3-resize-marker{width:1px;left:0;background-color:#777;position:absolute;top:0;height:100px;overflow:hidden;visibility:hidden;border:0 none;z-index:7;}
+.x-grid3-focus{position:absolute;top:0;-moz-outline:0 none;outline:0 none;-moz-user-select:normal;-khtml-user-select:normal;}
+.x-grid3-header{background:#f9f9f9 url(../js/ext/resources/images/default/grid/grid3-hrow.gif) repeat-x 0 bottom;cursor:default;zoom:1;padding:1px 0 0 0;}
+.x-grid3-header-pop{border-left:1px solid #d0d0d0;float:right;clear:none;}
+.x-grid3-header-pop-inner{border-left:1px solid #eee;width:14px;height:19px;background:transparent url(../js/ext/resources/images/default/grid/hd-pop.gif) no-repeat center center;}
+.ext-ie .x-grid3-header-pop-inner{width:15px;}
+.ext-strict .x-grid3-header-pop-inner{width:14px;}
+.x-grid3-header-inner{overflow:hidden;zoom:1;float:left;}
+.x-grid3-header-offset{padding-left:1px;width:10000px;}
+td.x-grid3-hd-over,td.sort-desc,td.sort-asc,td.x-grid3-hd-menu-open{border-left:1px solid #aaccf6;border-right:1px solid #aaccf6;}
+td.x-grid3-hd-over .x-grid3-hd-inner,td.sort-desc .x-grid3-hd-inner,td.sort-asc .x-grid3-hd-inner,td.x-grid3-hd-menu-open .x-grid3-hd-inner{background:#ebf3fd url(../js/ext/resources/images/default/grid/grid3-hrow-over.gif) repeat-x left bottom;}
+.x-grid3-sort-icon{background-repeat:no-repeat;display:none;height:4px;width:13px;margin-left:3px;vertical-align:middle;}
+.sort-asc .x-grid3-sort-icon{background-image:url(../js/ext/resources/images/default/grid/sort_asc.gif);display:inline;}
+.sort-desc .x-grid3-sort-icon{background-image:url(../js/ext/resources/images/default/grid/sort_desc.gif);display:inline;}
+.ext-strict .ext-ie .x-grid3-header-inner{position:relative;}
+.ext-strict .ext-ie6 .x-grid3-hd{position:relative;}
+.ext-strict .ext-ie6 .x-grid3-hd-inner{position:static;}
+.x-grid3-body{zoom:1;}
+.x-grid3-scroller{overflow:auto;zoom:1;position:relative;}
+.x-grid3-cell-text,.x-grid3-hd-text{display:block;padding:3px 5px 3px 5px;-moz-user-select:none;-khtml-user-select:none;color:black;}
+.x-grid3-split{background-image:url(../js/ext/resources/images/default/grid/grid-split.gif);background-position:center;background-repeat:no-repeat;cursor:e-resize;cursor:col-resize;display:block;font-size:1px;height:16px;overflow:hidden;position:absolute;top:2px;width:6px;z-index:3;}
+.x-grid3-hd-text{color:#15428b;}
+.x-dd-drag-proxy .x-grid3-hd-inner{background:#ebf3fd url(../js/ext/resources/images/default/grid/grid3-hrow-over.gif) repeat-x left bottom;width:120px;padding:3px;border:1px solid #aaccf6;overflow:hidden;}
+.col-move-top,.col-move-bottom{width:9px;height:9px;position:absolute;top:0;line-height:1px;font-size:1px;overflow:hidden;visibility:hidden;z-index:20000;}
+.col-move-top{background:transparent url(../js/ext/resources/images/default/grid/col-move-top.gif) no-repeat left top;}
+.col-move-bottom{background:transparent url(../js/ext/resources/images/default/grid/col-move-bottom.gif) no-repeat left top;}
+.x-grid3-row-selected{background:#DFE8F6!important;border:1px dotted #a3bae9;}
+.x-grid3-cell-selected{background-color:#B8CFEE!important;color:black;}
+.x-grid3-cell-selected span{color:black!important;}
+.x-grid3-cell-selected .x-grid3-cell-text{color:black;}
+.x-grid3-locked td.x-grid3-row-marker,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker{background:#ebeadb url(../js/ext/resources/images/default/grid/grid-hrow.gif) repeat-x 0 bottom!important;vertical-align:middle!important;color:black;padding:0;border-top:1px solid white;border-bottom:none!important;border-right:1px solid #6fa0df!important;text-align:center;}
+.x-grid3-locked td.x-grid3-row-marker div,.x-grid3-locked .x-grid3-row-selected td.x-grid3-row-marker div{padding:0 4px;color:#15428b!important;text-align:center;}
+.x-grid3-dirty-cell{background:transparent url(../js/ext/resources/images/default/grid/dirty.gif) no-repeat 0 0;}
+.x-grid3-topbar,.x-grid3-bottombar{font:normal 11px arial,tahoma,helvetica,sans-serif;overflow:hidden;display:none;zoom:1;position:relative;}
+.x-grid3-topbar .x-toolbar{border-right:0 none;}
+.x-grid3-bottombar .x-toolbar{border-right:0 none;border-bottom:0 none;border-top:1px solid #a9bfd3;}
+.x-props-grid .x-grid3-cell{padding:1px;}
+.x-props-grid .x-grid3-td-name .x-grid3-cell-inner{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y -16px!important;padding-left:12px;color:black!important;}
+.x-props-grid .x-grid3-body .x-grid3-td-name{padding:1px;padding-right:0;background:white!important;border:0 none;border-right:1px solid #eee;}
+.xg-hmenu-sort-asc .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-asc.gif);}
+.xg-hmenu-sort-desc .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-desc.gif);}
+.xg-hmenu-lock .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-lock.gif);}
+.xg-hmenu-unlock .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/grid/hmenu-unlock.gif);}
+.x-grid3-col-dd{border:0 none;padding:0;background:transparent;}
+.x-dd-drag-ghost .x-grid3-dd-wrap{padding:1px 3px 3px 1px;}
+.x-grid3-hd{-moz-user-select:none;}
+.x-grid3-hd-btn{display:none;position:absolute;width:14px;background:#c3daf9 url(../js/ext/resources/images/default/grid/grid3-hd-btn.gif) no-repeat left center;right:0;top:0;z-index:2;cursor:pointer;}
+.x-grid3-hd-over .x-grid3-hd-btn,.x-grid3-hd-menu-open .x-grid3-hd-btn{display:block;}
+a.x-grid3-hd-btn:hover{background-position:-14px center;}
+.x-grid3-body .x-grid3-td-expander{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y right;}
+.x-grid3-body .x-grid3-td-expander .x-grid3-cell-inner{padding:0!important;height:100%;}
+.x-grid3-row-expander{width:100%;height:18px;background-position:4px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/grid/row-expand-sprite.gif);}
+.x-grid3-row-collapsed .x-grid3-row-expander{background-position:4px 2px;}
+.x-grid3-row-expanded .x-grid3-row-expander{background-position:-21px 2px;}
+.x-grid3-row-collapsed .x-grid3-row-body{display:none!important;}
+.x-grid3-row-expanded .x-grid3-row-body{display:block!important;}
+.x-grid3-body .x-grid3-td-checker{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y right;}
+.x-grid3-body .x-grid3-td-checker .x-grid3-cell-inner,.x-grid3-header .x-grid3-td-checker .x-grid3-hd-inner{padding:0!important;height:100%;}
+.x-grid3-row-checker,.x-grid3-hd-checker{width:100%;height:18px;background-position:2px 2px;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/grid/row-check-sprite.gif);}
+.x-grid3-row .x-grid3-row-checker{background-position:2px 2px;}
+.x-grid3-row-selected .x-grid3-row-checker,.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 2px;}
+.x-grid3-hd-checker{background-position:2px 3px;}
+.x-grid3-hd-checker-on .x-grid3-hd-checker{background-position:-23px 3px;}
+.x-grid3-body .x-grid3-td-numberer{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-bg.gif) repeat-y right;}
+.x-grid3-body .x-grid3-td-numberer .x-grid3-cell-inner{padding:3px 5px 0 0!important;text-align:right;color:#444;}
+.x-grid3-body .x-grid3-row-selected .x-grid3-td-numberer,.x-grid3-body .x-grid3-row-selected .x-grid3-td-checker,.x-grid3-body .x-grid3-row-selected .x-grid3-td-expander{background:transparent url(../js/ext/resources/images/default/grid/grid3-special-col-sel-bg.gif) repeat-y right;}
+.x-grid3-body .x-grid3-check-col-td .x-grid3-cell-inner{padding:1px 0 0 0!important;}
+.x-grid3-check-col{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/menu/unchecked.gif);}
+.x-grid3-check-col-on{width:100%;height:16px;background-position:center center;background-repeat:no-repeat;background-color:transparent;background-image:url(../js/ext/resources/images/default/menu/checked.gif);}
+.x-grid-group,.x-grid-group-body,.x-grid-group-hd{zoom:1;}
+.x-grid-group-hd{border-bottom:2px solid #99bbe8;cursor:pointer;padding-top:6px;}
+.x-grid-group-hd div{background:transparent url(../js/ext/resources/images/default/grid/group-expand-sprite.gif) no-repeat 3px -47px;padding:4px 4px 4px 17px;color:#3764a0;font:bold 11px tahoma,arial,helvetica,sans-serif;}
+.x-grid-group-collapsed .x-grid-group-hd div{background-position:3px 3px;}
+.x-grid-group-collapsed .x-grid-group-body{display:none;}
+.x-group-by-icon{background-image:url(../js/ext/resources/images/default/grid/group-by.gif);}
+.x-cols-icon{background-image:url(../js/ext/resources/images/default/grid/columns.gif);}
+.x-show-groups-icon{background-image:url(../js/ext/resources/images/default/grid/group-by.gif);}
+.ext-ie .x-grid3 .x-editor .x-form-text{position:relative;top:-1px;}
+.ext-ie .x-props-grid .x-editor .x-form-text{position:static;top:0;}
+.x-grid-empty{padding:10px;color:gray;font:normal 11px tahoma,arial,helvetica,sans-serif;}
+.ext-ie7 .x-grid-panel .x-panel-bbar{position:relative;}
+
+.x-dd-drag-proxy{position:absolute;left:0;top:0;visibility:hidden;z-index:15000;}
+.x-dd-drag-ghost{color:black;font:normal 11px arial,helvetica,sans-serif;-moz-opacity:0.85;opacity:.85;filter:alpha(opacity=85);border-top:1px solid #ddd;border-left:1px solid #ddd;border-right:1px solid #bbb;border-bottom:1px solid #bbb;padding:3px;padding-left:20px;background-color:white;white-space:nowrap;}
+.x-dd-drag-repair .x-dd-drag-ghost{-moz-opacity:0.4;opacity:.4;filter:alpha(opacity=40);border:0 none;padding:0;background-color:transparent;}
+.x-dd-drag-repair .x-dd-drop-icon{visibility:hidden;}
+.x-dd-drop-icon{position:absolute;top:3px;left:3px;display:block;width:16px;height:16px;background-color:transparent;background-position:center;background-repeat:no-repeat;z-index:1;}
+.x-dd-drop-nodrop .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/dd/drop-no.gif);}
+.x-dd-drop-ok .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/dd/drop-yes.gif);}
+.x-dd-drop-ok-add .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/dd/drop-add.gif);}
+.x-view-selector{position:absolute;left:0;top:0;width:0;background:#c3daf9;border:1px dotted #39b;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);zoom:1;}
+
+.x-tree .x-panel-body{background-color:#fff;}
+.ext-strict .ext-ie .x-tree .x-panel-bwrap{position:relative;overflow:hidden;}
+.x-tree-icon,.x-tree-ec-icon,.x-tree-elbow-line,.x-tree-elbow,.x-tree-elbow-end,.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{border:0 none;height:18px;margin:0;padding:0;vertical-align:top;width:16px;background-repeat:no-repeat;}
+.x-tree-node-collapsed .x-tree-node-icon,.x-tree-node-expanded .x-tree-node-icon,.x-tree-node-leaf .x-tree-node-icon{border:0 none;height:18px;margin:0;padding:0;vertical-align:top;width:16px;background-position:center;background-repeat:no-repeat;}
+.ext-ie .x-tree-node-indent img,.ext-ie .x-tree-node-icon,.ext-ie .x-tree-ec-icon{vertical-align:middle!important;}
+.x-tree-node-expanded .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/folder-open.gif);}
+.x-tree-node-leaf .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/leaf.gif);}
+.x-tree-node-collapsed .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/folder.gif);}
+.ext-ie input.x-tree-node-cb{width:15px;height:15px;}
+input.x-tree-node-cb{margin-left:1px;}
+.ext-ie input.x-tree-node-cb{margin-left:0;}
+.x-tree-noicon .x-tree-node-icon{width:0;height:0;}
+.x-tree-node-loading .x-tree-node-icon{background-image:url(../js/ext/resources/images/default/tree/loading.gif)!important;}
+.x-tree-node-loading a span{font-style:italic;color:#444;}
+.ext-ie .x-tree-node-el input{width:15px;height:15px;}
+.x-tree-lines .x-tree-elbow{background-image:url(../js/ext/resources/images/default/tree/elbow.gif);}
+.x-tree-lines .x-tree-elbow-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-plus.gif);}
+.x-tree-lines .x-tree-elbow-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-minus.gif);}
+.x-tree-lines .x-tree-elbow-end{background-image:url(../js/ext/resources/images/default/tree/elbow-end.gif);}
+.x-tree-lines .x-tree-elbow-end-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-plus.gif);}
+.x-tree-lines .x-tree-elbow-end-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-minus.gif);}
+.x-tree-lines .x-tree-elbow-line{background-image:url(../js/ext/resources/images/default/tree/elbow-line.gif);}
+.x-tree-no-lines .x-tree-elbow{background:transparent;}
+.x-tree-no-lines .x-tree-elbow-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-plus-nl.gif);}
+.x-tree-no-lines .x-tree-elbow-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-minus-nl.gif);}
+.x-tree-no-lines .x-tree-elbow-end{background:transparent;}
+.x-tree-no-lines .x-tree-elbow-end-plus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-plus-nl.gif);}
+.x-tree-no-lines .x-tree-elbow-end-minus{background-image:url(../js/ext/resources/images/default/tree/elbow-end-minus-nl.gif);}
+.x-tree-no-lines .x-tree-elbow-line{background:transparent;}
+.x-tree-arrows .x-tree-elbow{background:transparent;}
+.x-tree-arrows .x-tree-elbow-plus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat 0 0;}
+.x-tree-arrows .x-tree-elbow-minus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat -16px 0;}
+.x-tree-arrows .x-tree-elbow-end{background:transparent;}
+.x-tree-arrows .x-tree-elbow-end-plus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat 0 0;}
+.x-tree-arrows .x-tree-elbow-end-minus{background:transparent url(../js/ext/resources/images/default/tree/arrows.gif) no-repeat -16px 0;}
+.x-tree-arrows .x-tree-elbow-line{background:transparent;}
+.x-tree-arrows .x-tree-ec-over .x-tree-elbow-plus{background-position:-32px 0;}
+.x-tree-arrows .x-tree-ec-over .x-tree-elbow-minus{background-position:-48px 0;}
+.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-plus{background-position:-32px 0;}
+.x-tree-arrows .x-tree-ec-over .x-tree-elbow-end-minus{background-position:-48px 0;}
+.x-tree-elbow-plus,.x-tree-elbow-minus,.x-tree-elbow-end-plus,.x-tree-elbow-end-minus{cursor:pointer;}
+.ext-ie ul.x-tree-node-ct{font-size:0;line-height:0;zoom:1;}
+.x-tree-node{color:black;font:normal 11px arial,tahoma,helvetica,sans-serif;white-space:nowrap;}
+.x-tree-node-el{line-height:18px;cursor:pointer;}
+.x-tree-node a,.x-dd-drag-ghost a{text-decoration:none;color:black;-khtml-user-select:none;-moz-user-select:none;-kthml-user-focus:normal;-moz-user-focus:normal;-moz-outline:0 none;outline:0 none;}
+.x-tree-node a span,.x-dd-drag-ghost a span{text-decoration:none;color:black;padding:1px 3px 1px 2px;}
+.x-tree-node .x-tree-node-disabled a span{color:gray!important;}
+.x-tree-node .x-tree-node-disabled .x-tree-node-icon{-moz-opacity:0.5;opacity:.5;filter:alpha(opacity=50);}
+.x-tree-node .x-tree-node-inline-icon{background:transparent;}
+.x-tree-node a:hover,.x-dd-drag-ghost a:hover{text-decoration:none;}
+.x-tree-node div.x-tree-drag-insert-below{border-bottom:1px dotted #36c;}
+.x-tree-node div.x-tree-drag-insert-above{border-top:1px dotted #36c;}
+.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below{border-bottom:0 none;}
+.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above{border-top:0 none;}
+.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-below a{border-bottom:2px solid #36c;}
+.x-tree-dd-underline .x-tree-node div.x-tree-drag-insert-above a{border-top:2px solid #36c;}
+.x-tree-node .x-tree-drag-append a span{background:#ddd;border:1px dotted gray;}
+.x-tree-node .x-tree-node-over{background-color:#eee;}
+.x-tree-node .x-tree-selected{background-color:#d9e8fb;}
+.x-dd-drag-ghost .x-tree-node-indent,.x-dd-drag-ghost .x-tree-ec-icon{display:none!important;}
+.x-tree-drop-ok-append .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-add.gif);}
+.x-tree-drop-ok-above .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-over.gif);}
+.x-tree-drop-ok-below .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-under.gif);}
+.x-tree-drop-ok-between .x-dd-drop-icon{background-image:url(../js/ext/resources/images/default/tree/drop-between.gif);}
+
+.x-date-picker{border:1px solid #1b376c;border-top:0 none;background:#fff;position:relative;}
+.x-date-picker a{-moz-outline:0 none;outline:0 none;}
+.x-date-inner,.x-date-inner td,.x-date-inner th{border-collapse:separate;}
+.x-date-middle,.x-date-left,.x-date-right{background:url(../js/ext/resources/images/default/shared/hd-sprite.gif) repeat-x 0 -83px;color:#FFF;font:bold 11px "sans serif",tahoma,verdana,helvetica;overflow:hidden;}
+.x-date-middle .x-btn-left,.x-date-middle .x-btn-center,.x-date-middle .x-btn-right{background:transparent!important;vertical-align:middle;}
+.x-date-middle .x-btn .x-btn-text{color:#fff;}
+.x-date-middle .x-btn-with-menu .x-btn-center em{background:transparent url(../js/ext/resources/images/default/toolbar/btn-arrow-light.gif) no-repeat right 0;}
+.x-date-right,.x-date-left{width:18px;}
+.x-date-right{text-align:right;}
+.x-date-middle{padding-top:2px;padding-bottom:2px;}
+.x-date-right a,.x-date-left a{display:block;width:16px;height:16px;background-position:center;background-repeat:no-repeat;cursor:pointer;-moz-opacity:0.6;opacity:.6;filter:alpha(opacity=60);}
+.x-date-right a:hover,.x-date-left a:hover{-moz-opacity:1;opacity:1;filter:alpha(opacity=100);}
+.x-date-right a{background-image:url(../js/ext/resources/images/default/shared/right-btn.gif);margin-right:2px;text-decoration:none!important;}
+.x-date-left a{background-image:url(../js/ext/resources/images/default/shared/left-btn.gif);margin-left:2px;text-decoration:none!important;}
+table.x-date-inner{width:100%;table-layout:fixed;}
+.x-date-inner th{width:25px;}
+.x-date-inner th{background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;text-align:right!important;border-bottom:1px solid #a3bad9;font:normal 10px arial,helvetica,tahoma,sans-serif;color:#233d6d;cursor:default;padding:0;border-collapse:separate;}
+.x-date-inner th span{display:block;padding:2px;padding-right:7px;}
+.x-date-inner td{border:1px solid #fff;text-align:right;padding:0;}
+.x-date-inner a{padding:2px 5px;display:block;font:normal 11px arial,helvetica,tahoma,sans-serif;text-decoration:none;color:black;text-align:right;zoom:1;}
+.x-date-inner .x-date-active{cursor:pointer;color:black;}
+.x-date-inner .x-date-selected a{background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;border:1px solid #8db2e3;padding:1px 4px;}
+.x-date-inner .x-date-today a{border:1px solid darkred;padding:1px 4px;}
+.x-date-inner .x-date-selected span{font-weight:bold;}
+.x-date-inner .x-date-prevday a,.x-date-inner .x-date-nextday a{color:#aaa;text-decoration:none!important;}
+.x-date-bottom{padding:4px;border-top:1px solid #a3bad9;background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;}
+.x-date-inner a:hover,.x-date-inner .x-date-disabled a:hover{text-decoration:none!important;color:black;background:#ddecfe;}
+.x-date-inner .x-date-disabled a{cursor:default;background:#eee;color:#bbb;}
+.x-date-mmenu{background:#eee!important;}
+.x-date-mmenu .x-menu-item{font-size:10px;padding:1px 24px 1px 4px;white-space:nowrap;color:#000;}
+.x-date-mmenu .x-menu-item .x-menu-item-icon{width:10px;height:10px;margin-right:5px;background-position:center -4px!important;}
+.x-date-mp{position:absolute;left:0;top:0;background:white;display:none;}
+.x-date-mp td{padding:2px;font:normal 11px arial,helvetica,tahoma,sans-serif;}
+td.x-date-mp-month,td.x-date-mp-year,td.x-date-mp-ybtn{border:0 none;text-align:center;vertical-align:middle;width:25%;}
+.x-date-mp-ok{margin-right:3px;}
+.x-date-mp-btns button{text-decoration:none;text-align:center;text-decoration:none!important;background:#083772;color:white;border:1px solid;border-color:#36c #005 #005 #36c;padding:1px 3px 1px;font:normal 11px arial,helvetica,tahoma,sans-serif;cursor:pointer;}
+.x-date-mp-btns{background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;}
+.x-date-mp-btns td{border-top:1px solid #c5d2df;text-align:center;}
+td.x-date-mp-month a,td.x-date-mp-year a{display:block;padding:2px 4px;text-decoration:none;text-align:center;color:#15428b;}
+td.x-date-mp-month a:hover,td.x-date-mp-year a:hover{color:#15428b;text-decoration:none;cursor:pointer;background:#ddecfe;}
+td.x-date-mp-sel a{padding:1px 3px;background:#dfecfb url(../js/ext/resources/images/default/shared/glass-bg.gif) repeat-x left top;border:1px solid #8db2e3;}
+.x-date-mp-ybtn a{overflow:hidden;width:15px;height:15px;cursor:pointer;background:transparent url(../js/ext/resources/images/default/panel/tool-sprites.gif) no-repeat;display:block;margin:0 auto;}
+.x-date-mp-ybtn a.x-date-mp-next{background-position:0 -120px;}
+.x-date-mp-ybtn a.x-date-mp-next:hover{background-position:-15px -120px;}
+.x-date-mp-ybtn a.x-date-mp-prev{background-position:0 -105px;}
+.x-date-mp-ybtn a.x-date-mp-prev:hover{background-position:-15px -105px;}
+.x-date-mp-ybtn{text-align:center;}
+td.x-date-mp-sep{border-right:1px solid #c5d2df;}
+
+.x-tip{position:absolute;top:0;left:0;visibility:hidden;z-index:20000;border:0 none;}
+.x-tip .x-tip-close{background-image:url(../js/ext/resources/images/default/qtip/close.gif);height:15px;float:right;width:15px;margin:0 0 2px 2px;cursor:pointer;display:none;}
+.x-tip .x-tip-tc{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -62px;padding-top:3px;overflow:hidden;zoom:1;}
+.x-tip .x-tip-tl{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 0;padding-left:6px;overflow:hidden;zoom:1;}
+.x-tip .x-tip-tr{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat right 0;padding-right:6px;overflow:hidden;zoom:1;}
+.x-tip .x-tip-bc{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -121px;height:3px;overflow:hidden;}
+.x-tip .x-tip-bl{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -59px;padding-left:6px;zoom:1;}
+.x-tip .x-tip-br{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat right -59px;padding-right:6px;zoom:1;}
+.x-tip .x-tip-mc{border:0 none;font:normal 11px tahoma,arial,helvetica,sans-serif;}
+.x-tip .x-tip-ml{background:#fff url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat 0 -124px;padding-left:6px;zoom:1;}
+.x-tip .x-tip-mr{background:transparent url(../js/ext/resources/images/default/qtip/tip-sprite.gif) no-repeat right -124px;padding-right:6px;zoom:1;}
+.ext-ie .x-tip .x-tip-header,.ext-ie .x-tip .x-tip-tc{font-size:0;line-height:0;}
+.x-tip .x-tip-header-text{font:bold 11px tahoma,arial,helvetica,sans-serif;padding:0;margin:0 0 2px 0;color:#444;}
+.x-tip .x-tip-body{font:normal 11px tahoma,arial,helvetica,sans-serif;margin:0!important;line-height:14px;color:#444;padding:0;}
+.x-tip .x-tip-body .loading-indicator{margin:0;}
+.x-tip-draggable .x-tip-header,.x-tip-draggable .x-tip-header-text{cursor:move;}
+.x-form-invalid-tip .x-tip-tc{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) repeat-x 0 -12px;padding-top:6px;}
+.x-form-invalid-tip .x-tip-tl{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}
+.x-form-invalid-tip .x-tip-tr{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}
+.x-form-invalid-tip .x-tip-bc{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) repeat-x 0 -18px;height:6px;}
+.x-form-invalid-tip .x-tip-bl{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) no-repeat 0 -6px;}
+.x-form-invalid-tip .x-tip-br{background:url(../js/ext/resources/images/default/form/error-tip-corners.gif) no-repeat right -6px;}
+.x-form-invalid-tip .x-tip-ml{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}
+.x-form-invalid-tip .x-tip-mr{background-image:url(../js/ext/resources/images/default/form/error-tip-corners.gif);}
+.x-form-invalid-tip .x-tip-body{padding:2px;}
+.x-form-invalid-tip .x-tip-body{padding-left:24px;background:transparent url(../js/ext/resources/images/default/form/exclamation.gif) no-repeat 2px 2px;}
+
+.x-menu{border:1px solid #718bb7;z-index:15000;zoom:1;background:#f0f0f0 url(../js/ext/resources/images/default/menu/menu.gif) repeat-y;padding:2px;}
+.x-menu a{text-decoration:none!important;}
+.ext-ie .x-menu{zoom:1;overflow:hidden;}
+.x-menu-list{background:transparent;border:0 none;}
+.x-menu li{line-height:100%;}
+.x-menu li.x-menu-sep-li{font-size:1px;line-height:1px;}
+.x-menu-list-item{font:normal 11px tahoma,arial,sans-serif;white-space:nowrap;-moz-user-select:none;-khtml-user-select:none;display:block;padding:1px;}
+.x-menu-item-arrow{background:transparent url(../js/ext/resources/images/default/menu/menu-parent.gif) no-repeat right;}
+.x-menu-sep{display:block;font-size:1px;line-height:1px;margin:2px 3px;background-color:#e0e0e0;border-bottom:1px solid #fff;overflow:hidden;}
+.x-menu-focus{position:absolute;left:0;top:-5px;width:0;height:0;line-height:1px;}
+.x-menu a.x-menu-item{display:block;line-height:16px;padding:3px 21px 3px 3px;white-space:nowrap;text-decoration:none;color:#222;-moz-outline:0 none;outline:0 none;cursor:pointer;}
+.x-menu-item-active{background:#ebf3fd url(../js/ext/resources/images/default/menu/item-over.gif) repeat-x left bottom;border:1px solid #aaccf6;padding:0;}
+.x-menu-item-active a.x-menu-item{color:#233d6d;}
+.x-menu-item-icon{border:0 none;height:16px;padding:0;vertical-align:top;width:16px;margin:0 8px 0 0;background-position:center;}
+.x-menu-check-item .x-menu-item-icon{background:transparent url(../js/ext/resources/images/default/menu/unchecked.gif) no-repeat center;}
+.x-menu-item-checked .x-menu-item-icon{background-image:url(../js/ext/resources/images/default/menu/checked.gif);}
+.x-menu-group-item .x-menu-item-icon{background:transparent;}
+.x-menu-item-checked .x-menu-group-item .x-menu-item-icon{background:transparent url(../js/ext/resources/images/default/menu/group-checked.gif) no-repeat center;}
+.x-menu-plain{background:#fff!important;}
+.x-menu-date-item{padding:0;}
+.x-menu .x-color-palette,.x-menu .x-date-picker{margin-left:26px;margin-right:4px;}
+.x-menu .x-date-picker{border:1px solid #a3bad9;margin-top:2px;margin-bottom:2px;}
+.x-menu-plain .x-color-palette,.x-menu-plain .x-date-picker{margin:0;border:0 none;}
+.x-date-menu{padding:0!important;}
+.x-cycle-menu .x-menu-item-checked{border:1px dotted #a3bae9!important;background:#DFE8F6;padding:0;}
+
+ .x-box-tl{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat 0 0;zoom:1;}
+.x-box-tc{height:8px;background:transparent url(../js/ext/resources/images/default/box/tb.gif) repeat-x 0 0;overflow:hidden;}
+.x-box-tr{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat right -8px;}
+.x-box-ml{background:transparent url(../js/ext/resources/images/default/box/l.gif) repeat-y 0;padding-left:4px;overflow:hidden;zoom:1;}
+.x-box-mc{background:#eee url(../js/ext/resources/images/default/box/tb.gif) repeat-x 0 -16px;padding:4px 10px;font-family:"Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif;color:#393939;font-size:12px;}
+.x-box-mc h3{font-size:14px;font-weight:bold;margin:0 0 4px 0;zoom:1;}
+.x-box-mr{background:transparent url(../js/ext/resources/images/default/box/r.gif) repeat-y right;padding-right:4px;overflow:hidden;}
+.x-box-bl{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat 0 -16px;zoom:1;}
+.x-box-bc{background:transparent url(../js/ext/resources/images/default/box/tb.gif) repeat-x 0 -8px;height:8px;overflow:hidden;}
+.x-box-br{background:transparent url(../js/ext/resources/images/default/box/corners.gif) no-repeat right -24px;}
+.x-box-tl,.x-box-bl{padding-left:8px;overflow:hidden;}
+.x-box-tr,.x-box-br{padding-right:8px;overflow:hidden;}
+.x-box-blue .x-box-bl,.x-box-blue .x-box-br,.x-box-blue .x-box-tl,.x-box-blue .x-box-tr{background-image:url(../js/ext/resources/images/default/box/corners-blue.gif);}
+.x-box-blue .x-box-bc,.x-box-blue .x-box-mc,.x-box-blue .x-box-tc{background-image:url(../js/ext/resources/images/default/box/tb-blue.gif);}
+.x-box-blue .x-box-mc{background-color:#c3daf9;}
+.x-box-blue .x-box-mc h3{color:#17385b;}
+.x-box-blue .x-box-ml{background-image:url(../js/ext/resources/images/default/box/l-blue.gif);}
+.x-box-blue .x-box-mr{background-image:url(../js/ext/resources/images/default/box/r-blue.gif);}
+
+#x-debug-browser .x-tree .x-tree-node a span{color:#222297;font-size:11px;padding-top:2px;font-family:"monotype","courier new",sans-serif;line-height:18px;}
+#x-debug-browser .x-tree a i{color:#FF4545;font-style:normal;}
+#x-debug-browser .x-tree a em{color:#999;}
+#x-debug-browser .x-tree .x-tree-node .x-tree-selected a span{background:#c3daf9;}
+#x-debug-browser .x-tool-toggle{background-position:0 -75px;}
+#x-debug-browser .x-tool-toggle-over{background-position:-15px -75px;}
+#x-debug-browser.x-panel-collapsed .x-tool-toggle{background-position:0 -60px;}
+#x-debug-browser.x-panel-collapsed .x-tool-toggle-over{background-position:-15px -60px;}
+
+.x-combo-list{border:1px solid #98c0f4;background:#ddecfe;zoom:1;overflow:hidden;}
+.x-combo-list-inner{overflow:auto;background:white;position:relative;zoom:1;overflow-x:hidden;}
+.x-combo-list-hd{font:bold 11px tahoma,arial,helvetica,sans-serif;color:#15428b;background-image:url(../js/ext/resources/images/default/layout/panel-title-light-bg.gif);border-bottom:1px solid #98c0f4;padding:3px;}
+.x-resizable-pinned .x-combo-list-inner{border-bottom:1px solid #98c0f4;}
+.x-combo-list-item{font:normal 12px tahoma,arial,helvetica,sans-serif;padding:2px;border:1px solid #fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
+.x-combo-list .x-combo-selected{border:1px dotted #a3bae9!important;background:#DFE8F6;cursor:pointer;}
+.x-combo-noedit{cursor:pointer;}
+.x-combo-list .x-toolbar{border-top:1px solid #98c0f4;border-bottom:0 none;}
+.x-combo-list-small .x-combo-list-item{font:normal 11px tahoma,arial,helvetica,sans-serif;}
+
+.x-panel{border-style:solid;border-color:#99bbe8;border-width:0;}
+.x-panel-header{overflow:hidden;zoom:1;color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 3px 4px 5px;border:1px solid #99bbe8;line-height:15px;background:transparent url(../js/ext/resources/images/default/panel/white-top-bottom.gif) repeat-x 0 -1px;}
+.x-panel-body{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;background:white;position:relative;}
+.x-panel-bbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}
+.x-panel-tbar .x-toolbar{border:1px solid #99bbe8;border-top:0 none;overflow:hidden;padding:2px;}
+.x-panel-tbar-noheader .x-toolbar,.x-panel-mc .x-panel-tbar .x-toolbar{border-top:1px solid #99bbe8;border-bottom:0 none;}
+.x-panel-body-noheader,.x-panel-mc .x-panel-body{border-top:1px solid #99bbe8;}
+.x-panel-header{overflow:hidden;zoom:1;}
+.x-panel-tl .x-panel-header{color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 0 4px 0;border:0 none;background:transparent;}
+.x-panel-tl .x-panel-icon,.x-window-tl .x-panel-icon{padding-left:20px!important;background-repeat:no-repeat;background-position:0 4px;zoom:1;}
+.x-panel-inline-icon{width:16px;height:16px;background-repeat:no-repeat;background-position:0 0;vertical-align:middle;margin-right:4px;margin-top:-1px;margin-bottom:-1px;}
+.x-panel-tc{background:transparent url(../js/ext/resources/images/default/panel/top-bottom.gif) repeat-x 0 0;overflow:hidden;}
+.ext-strict .ext-ie7 .x-panel-tc{overflow:visible;}
+.x-panel-tl{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat 0 0;padding-left:6px;zoom:1;border-bottom:1px solid #99bbe8;}
+.x-panel-tr{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat right 0;zoom:1;padding-right:6px;}
+.x-panel-bc{background:transparent url(../js/ext/resources/images/default/panel/top-bottom.gif) repeat-x 0 bottom;zoom:1;}
+.x-panel-bc .x-panel-footer{zoom:1;}
+.x-panel-bl{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat 0 bottom;padding-left:6px;zoom:1;}
+.x-panel-br{background:transparent url(../js/ext/resources/images/default/panel/corners-sprite.gif) no-repeat right bottom;padding-right:6px;zoom:1;}
+.x-panel-mc{border:0 none;padding:0;margin:0;font:normal 11px tahoma,arial,helvetica,sans-serif;padding-top:6px;background:#dfe8f6;}
+.x-panel-mc .x-panel-body{background:transparent;border:0 none;}
+.x-panel-ml{background:#fff url(../js/ext/resources/images/default/panel/left-right.gif) repeat-y 0 0;padding-left:6px;zoom:1;}
+.x-panel-mr{background:transparent url(../js/ext/resources/images/default/panel/left-right.gif) repeat-y right 0;padding-right:6px;zoom:1;}
+.x-panel-bc .x-panel-footer{padding-bottom:6px;}
+.x-panel-nofooter .x-panel-bc{height:6px;font-size:0;line-height:0;}
+.x-panel-bwrap{overflow:hidden;zoom:1;}
+.x-panel-body{overflow:hidden;zoom:1;}
+.x-panel-collapsed .x-resizable-handle{display:none;}
+.ext-gecko .x-panel-animated div{overflow:hidden!important;}
+.x-plain-body{overflow:hidden;}
+.x-plain-bbar .x-toolbar{overflow:hidden;padding:2px;}
+.x-plain-tbar .x-toolbar{overflow:hidden;padding:2px;}
+.x-plain-bwrap{overflow:hidden;zoom:1;}
+.x-plain{overflow:hidden;}
+.x-tool{overflow:hidden;width:15px;height:15px;float:right;cursor:pointer;background:transparent url(../js/ext/resources/images/default/panel/tool-sprites.gif) no-repeat;margin-left:2px;}
+.x-tool-toggle{background-position:0 -60px;}
+.x-tool-toggle-over{background-position:-15px -60px;}
+.x-panel-collapsed .x-tool-toggle{background-position:0 -75px;}
+.x-panel-collapsed .x-tool-toggle-over{background-position:-15px -75px;}
+.x-tool-close{background-position:0 -0;}
+.x-tool-close-over{background-position:-15px 0;}
+.x-tool-minimize{background-position:0 -15px;}
+.x-tool-minimize-over{background-position:-15px -15px;}
+.x-tool-maximize{background-position:0 -30px;}
+.x-tool-maximize-over{background-position:-15px -30px;}
+.x-tool-restore{background-position:0 -45px;}
+.x-tool-restore-over{background-position:-15px -45px;}
+.x-tool-gear{background-position:0 -90px;}
+.x-tool-gear-over{background-position:-15px -90px;}
+.x-tool-pin{background-position:0 -135px;}
+.x-tool-pin-over{background-position:-15px -135px;}
+.x-tool-unpin{background-position:0 -150px;}
+.x-tool-unpin-over{background-position:-15px -150px;}
+.x-tool-right{background-position:0 -165px;}
+.x-tool-right-over{background-position:-15px -165px;}
+.x-tool-left{background-position:0 -180px;}
+.x-tool-left-over{background-position:-15px -180px;}
+.x-tool-up{background-position:0 -210px;}
+.x-tool-up-over{background-position:-15px -210px;}
+.x-tool-down{background-position:0 -195px;}
+.x-tool-down-over{background-position:-15px -195px;}
+.x-tool-refresh{background-position:0 -225px;}
+.x-tool-refresh-over{background-position:-15px -225px;}
+.x-tool-minus{background-position:0 -255px;}
+.x-tool-minus-over{background-position:-15px -255px;}
+.x-tool-plus{background-position:0 -240px;}
+.x-tool-plus-over{background-position:-15px -240px;}
+.x-tool-search{background-position:0 -270px;}
+.x-tool-search-over{background-position:-15px -270px;}
+.x-tool-save{background-position:0 -285px;}
+.x-tool-save-over{background-position:-15px -285px;}
+.x-tool-help{background-position:0 -300px;}
+.x-tool-help-over{background-position:-15px -300px;}
+.x-tool-print{background-position:0 -315px;}
+.x-tool-print-over{background-position:-15px -315px;}
+.x-panel-ghost{background:#cbddf3;z-index:12000;overflow:hidden;position:absolute;left:0;top:0;opacity:.65;-moz-opacity:.65;filter:alpha(opacity=65);}
+.x-panel-ghost ul{margin:0;padding:0;overflow:hidden;font-size:0;line-height:0;border:1px solid #99bbe8;border-top:0 none;display:block;}
+.x-panel-ghost *{cursor:move!important;}
+.x-panel-dd-spacer{border:2px dashed #99bbe8;}
+.x-panel-btns-ct{padding:5px;}
+.x-panel-btns-ct .x-btn{float:right;clear:none;}
+.x-panel-btns-ct .x-panel-btns td{border:0;padding:0;}
+.x-panel-btns-ct .x-panel-btns-right table{float:right;clear:none;}
+.x-panel-btns-ct .x-panel-btns-left table{float:left;clear:none;}
+.x-panel-btns-ct .x-panel-btns-center{text-align:center;}
+.x-panel-btns-ct .x-panel-btns-center table{margin:0 auto;}
+.x-panel-btns-ct table td.x-panel-btn-td{padding:3px;}
+.x-panel-btns-ct .x-btn-focus .x-btn-left{background-position:0 -147px;}
+.x-panel-btns-ct .x-btn-focus .x-btn-right{background-position:0 -168px;}
+.x-panel-btns-ct .x-btn-focus .x-btn-center{background-position:0 -189px;}
+.x-panel-btns-ct .x-btn-over .x-btn-left{background-position:0 -63px;}
+.x-panel-btns-ct .x-btn-over .x-btn-right{background-position:0 -84px;}
+.x-panel-btns-ct .x-btn-over .x-btn-center{background-position:0 -105px;}
+.x-panel-btns-ct .x-btn-click .x-btn-center{background-position:0 -126px;}
+.x-panel-btns-ct .x-btn-click .x-btn-right{background-position:0 -84px;}
+.x-panel-btns-ct .x-btn-click .x-btn-left{background-position:0 -63px;}
+
+.x-window{zoom:1;}
+.x-window .x-resizable-handle{opacity:0;-moz-opacity:0;filter:alpha(opacity=0);}
+.x-window-proxy{background:#C7DFFC;border:1px solid #99bbe8;z-index:12000;overflow:hidden;position:absolute;left:0;top:0;display:none;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);}
+.x-window-header{overflow:hidden;zoom:1;}
+.x-window-bwrap{z-index:1;position:relative;zoom:1;}
+.x-window-tl .x-window-header{color:#15428b;font:bold 11px tahoma,arial,verdana,sans-serif;padding:5px 0 4px 0;}
+.x-window-header-text{cursor:pointer;}
+.x-window-tc{background:transparent url(../js/ext/resources/images/default/window/top-bottom.png) repeat-x 0 0;overflow:hidden;zoom:1;}
+.x-window-tl{background:transparent url(../js/ext/resources/images/default/window/left-corners.png) no-repeat 0 0;padding-left:6px;zoom:1;z-index:1;position:relative;}
+.x-window-tr{background:transparent url(../js/ext/resources/images/default/window/right-corners.png) no-repeat right 0;padding-right:6px;}
+.x-window-bc{background:transparent url(../js/ext/resources/images/default/window/top-bottom.png) repeat-x 0 bottom;zoom:1;}
+.x-window-bc .x-window-footer{padding-bottom:6px;zoom:1;font-size:0;line-height:0;}
+.x-window-bl{background:transparent url(../js/ext/resources/images/default/window/left-corners.png) no-repeat 0 bottom;padding-left:6px;zoom:1;}
+.x-window-br{background:transparent url(../js/ext/resources/images/default/window/right-corners.png) no-repeat right bottom;padding-right:6px;zoom:1;}
+.x-window-mc{border:1px solid #99bbe8;padding:0;margin:0;font:normal 11px tahoma,arial,helvetica,sans-serif;background:#dfe8f6;}
+.x-window-ml{background:transparent url(../js/ext/resources/images/default/window/left-right.png) repeat-y 0 0;padding-left:6px;zoom:1;}
+.x-window-mr{background:transparent url(../js/ext/resources/images/default/window/left-right.png) repeat-y right 0;padding-right:6px;zoom:1;}
+.x-panel-nofooter .x-window-bc{height:6px;}
+.x-window-body{overflow:hidden;}
+.x-window-bwrap{overflow:hidden;}
+.x-window-maximized .x-window-bl,.x-window-maximized .x-window-br,.x-window-maximized .x-window-ml,.x-window-maximized .x-window-mr,.x-window-maximized .x-window-tl,.x-window-maximized .x-window-tr{padding:0;}
+.x-window-maximized .x-window-footer{padding-bottom:0;}
+.x-window-maximized .x-window-tc{padding-left:3px;padding-right:3px;background-color:white;}
+.x-window-maximized .x-window-mc{border-left:0 none;border-right:0 none;}
+.x-window-tbar .x-toolbar,.x-window-bbar .x-toolbar{border-left:0 none;border-right:0 none;}
+.x-window-bbar .x-toolbar{border-top:1px solid #99bbe8;border-bottom:0 none;}
+.x-window-draggable,.x-window-draggable .x-window-header-text{cursor:move;}
+.x-window-maximized .x-window-draggable,.x-window-maximized .x-window-draggable .x-window-header-text{cursor:default;}
+.x-window-body{background:transparent;}
+.x-panel-ghost .x-window-tl{border-bottom:1px solid #99bbe8;}
+.x-panel-collapsed .x-window-tl{border-bottom:1px solid #84a0c4;}
+.x-window-maximized-ct{overflow:hidden;}
+.x-window-maximized .x-resizable-handle{display:none;}
+.x-window-sizing-ghost ul{border:0 none!important;}
+.x-dlg-focus{-moz-outline:0 none;outline:0 none;width:0;height:0;overflow:hidden;position:absolute;top:0;left:0;}
+.x-dlg-mask{z-index:10000;display:none;position:absolute;top:0;left:0;-moz-opacity:0.5;opacity:.50;filter:alpha(opacity=50);background-color:#CCC;}
+body.ext-ie6.x-body-masked select{visibility:hidden;}
+body.ext-ie6.x-body-masked .x-window select{visibility:visible;}
+.x-window-plain .x-window-mc{background:#CAD9EC;border-right:1px solid #DFE8F6;border-bottom:1px solid #DFE8F6;border-top:1px solid #a3bae9;border-left:1px solid #a3bae9;}
+.x-window-plain .x-window-body{border-left:1px solid #DFE8F6;border-top:1px solid #DFE8F6;border-bottom:1px solid #a3bae9;border-right:1px solid #a3bae9;background:transparent!important;}
+body.x-body-masked .x-window-plain .x-window-mc{background:#C7D6E9;}
+
+.x-html-editor-wrap{border:1px solid #a9bfd3;background:white;}
+.x-html-editor-tb .x-btn-text{background:transparent url(../js/ext/resources/images/default/editor/tb-sprite.gif) no-repeat;}
+.x-html-editor-tb .x-edit-bold .x-btn-text{background-position:0 0;}
+.x-html-editor-tb .x-edit-italic .x-btn-text{background-position:-16px 0;}
+.x-html-editor-tb .x-edit-underline .x-btn-text{background-position:-32px 0;}
+.x-html-editor-tb .x-edit-forecolor .x-btn-text{background-position:-160px 0;}
+.x-html-editor-tb .x-edit-backcolor .x-btn-text{background-position:-176px 0;}
+.x-html-editor-tb .x-edit-justifyleft .x-btn-text{background-position:-112px 0;}
+.x-html-editor-tb .x-edit-justifycenter .x-btn-text{background-position:-128px 0;}
+.x-html-editor-tb .x-edit-justifyright .x-btn-text{background-position:-144px 0;}
+.x-html-editor-tb .x-edit-insertorderedlist .x-btn-text{background-position:-80px 0;}
+.x-html-editor-tb .x-edit-insertunorderedlist .x-btn-text{background-position:-96px 0;}
+.x-html-editor-tb .x-edit-increasefontsize .x-btn-text{background-position:-48px 0;}
+.x-html-editor-tb .x-edit-decreasefontsize .x-btn-text{background-position:-64px 0;}
+.x-html-editor-tb .x-edit-sourceedit .x-btn-text{background-position:-192px 0;}
+.x-html-editor-tb .x-edit-createlink .x-btn-text{background-position:-208px 0;}
+.x-html-editor-tip .x-tip-bd .x-tip-bd-inner{padding:5px;padding-bottom:1px;}
+.x-html-editor-tb .x-toolbar{position:static!important;}
+
+.x-panel-noborder .x-panel-body-noborder{border-width:0;}
+.x-panel-noborder .x-panel-header-noborder{border-width:0;border-bottom:1px solid #99bbe8;}
+.x-panel-noborder .x-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #99bbe8;}
+.x-panel-noborder .x-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #99bbe8;}
+.x-window-noborder .x-window-mc{border-width:0;}
+.x-window-plain .x-window-body-noborder{border-width:0;}
+.x-tab-panel-noborder .x-tab-panel-body-noborder{border-width:0;}
+.x-tab-panel-noborder .x-tab-panel-header-noborder{border-top-width:0;border-left-width:0;border-right-width:0;}
+.x-tab-panel-noborder .x-tab-panel-footer-noborder{border-bottom-width:0;border-left-width:0;border-right-width:0;}
+.x-tab-panel-bbar-noborder .x-toolbar{border-width:0;border-top:1px solid #99bbe8;}
+.x-tab-panel-tbar-noborder .x-toolbar{border-width:0;border-bottom:1px solid #99bbe8;}
+
+.x-border-layout-ct{background:#dfe8f6;}
+.x-border-panel{position:absolute;left:0;top:0;}
+.x-tool-collapse-south{background-position:0 -195px;}
+.x-tool-collapse-south-over{background-position:-15px -195px;}
+.x-tool-collapse-north{background-position:0 -210px;}
+.x-tool-collapse-north-over{background-position:-15px -210px;}
+.x-tool-collapse-west{background-position:0 -180px;}
+.x-tool-collapse-west-over{background-position:-15px -180px;}
+.x-tool-collapse-east{background-position:0 -165px;}
+.x-tool-collapse-east-over{background-position:-15px -165px;}
+.x-tool-expand-south{background-position:0 -210px;}
+.x-tool-expand-south-over{background-position:-15px -210px;}
+.x-tool-expand-north{background-position:0 -195px;}
+.x-tool-expand-north-over{background-position:-15px -195px;}
+.x-tool-expand-west{background-position:0 -165px;}
+.x-tool-expand-west-over{background-position:-15px -165px;}
+.x-tool-expand-east{background-position:0 -180px;}
+.x-tool-expand-east-over{background-position:-15px -180px;}
+.x-tool-expand-north,.x-tool-expand-south{float:right;margin:3px;}
+.x-tool-expand-east,.x-tool-expand-west{float:none;margin:3px auto;}
+.x-accordion-hd .x-tool-toggle{background-position:0 -255px;}
+.x-accordion-hd .x-tool-toggle-over{background-position:-15px -255px;}
+.x-panel-collapsed .x-accordion-hd .x-tool-toggle{background-position:0 -240px;}
+.x-panel-collapsed .x-accordion-hd .x-tool-toggle-over{background-position:-15px -240px;}
+.x-accordion-hd{color:#222;padding-top:4px;padding-bottom:3px;border-top:0 none;font-weight:normal;background:transparent url(../js/ext/resources/images/default/panel/light-hd.gif) repeat-x 0 -9px;}
+.x-layout-collapsed{position:absolute;left:-10000px;top:-10000px;visibility:hidden;background-color:#d2e0f2;width:20px;height:20px;overflow:hidden;border:1px solid #98c0f4;z-index:20;}
+.ext-border-box .x-layout-collapsed{width:22px;height:22px;}
+.x-layout-collapsed-over{cursor:pointer;background-color:#d9e8fb;}
+.x-layout-collapsed-west .x-layout-collapsed-tools,.x-layout-collapsed-east .x-layout-collapsed-tools{position:absolute;top:0;left:0;width:20px;height:20px;}
+.x-layout-split{position:absolute;height:5px;width:5px;line-height:1px;font-size:1px;z-index:3;background-color:transparent;}
+.x-layout-split-h{background-image:url(../js/ext/resources/images/default/s.gif);background-position:left;}
+.x-layout-split-v{background-image:url(../js/ext/resources/images/default/s.gif);background-position:top;}
+.x-column-layout-ct{overflow:hidden;zoom:1;}
+.x-column{float:left;padding:0;margin:0;overflow:hidden;zoom:1;}
+.x-layout-mini{position:absolute;top:0;left:0;display:block;width:5px;height:35px;cursor:pointer;opacity:.5;-moz-opacity:.5;filter:alpha(opacity=50);}
+.x-layout-mini-over,.x-layout-collapsed-over .x-layout-mini{opacity:1;-moz-opacity:1;filter:none;}
+.x-layout-split-west .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-left.gif);}
+.x-layout-split-east .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-right.gif);}
+.x-layout-split-north .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-top.gif);}
+.x-layout-split-south .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-bottom.gif);}
+.x-layout-cmini-west .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-right.gif);}
+.x-layout-cmini-east .x-layout-mini{top:48%;background-image:url(../js/ext/resources/images/default/layout/mini-left.gif);}
+.x-layout-cmini-north .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-bottom.gif);}
+.x-layout-cmini-south .x-layout-mini{left:48%;height:5px;width:35px;background-image:url(../js/ext/resources/images/default/layout/mini-top.gif);}
+.x-layout-cmini-west,.x-layout-cmini-east{border:0 none;width:5px!important;padding:0;background:transparent;}
+.x-layout-cmini-north,.x-layout-cmini-south{border:0 none;height:5px!important;padding:0;background:transparent;}
+.x-viewport,.x-viewport body{margin:0;padding:0;border:0 none;overflow:hidden;height:100%;}
+.x-abs-layout-item{position:absolute;left:0;top:0;}
+.ext-ie input.x-abs-layout-item,.ext-ie textarea.x-abs-layout-item{margin:0;}
+
+.x-progress-wrap{border:1px solid #6593cf;overflow:hidden;}
+.x-progress-inner{height:18px;background:#e0e8f3 url(../js/ext/resources/images/default/qtip/bg.gif) repeat-x;position:relative;}
+.x-progress-bar{height:18px;float:left;width:0;background:#9CBFEE url( ../js/ext/resources/images/default/progress/progress-bg.gif ) repeat-x left center;border-top:1px solid #D1E4FD;border-bottom:1px solid #7FA9E4;border-right:1px solid #7FA9E4;}
+.x-progress-text{font-size:11px;font-weight:bold;color:#fff;padding:1px 5px;overflow:hidden;position:absolute;left:0;text-align:center;}
+.x-progress-text-back{color:#396095;line-height:16px;}
+.ext-ie .x-progress-text-back{line-height:15px;}
+
+.x-window-dlg .x-window-body{border:0 none!important;padding:5px 10px;overflow:hidden!important;}
+.x-window-dlg .x-window-mc{border:0 none!important;}
+.x-window-dlg .ext-mb-text,.x-window-dlg .x-window-header-text{font-size:12px;}
+.x-window-dlg .ext-mb-input{margin-top:4px;width:95%;}
+.x-window-dlg .ext-mb-textarea{margin-top:4px;font:normal 12px tahoma,arial,helvetica,sans-serif;}
+.x-window-dlg .x-progress-wrap{margin-top:4px;}
+.ext-ie .x-window-dlg .x-progress-wrap{margin-top:6px;}
+.x-window-dlg .x-msg-box-wait{background:transparent url(../js/ext/resources/images/default/grid/loading.gif) no-repeat left;display:block;width:300px;padding-left:18px;line-height:18px;}
+.x-window-dlg .ext-mb-icon{float:left;width:47px;height:32px;}
+.ext-ie .x-window-dlg .ext-mb-icon{width:44px;}
+.x-window-dlg .ext-mb-info{background:transparent url(../js/ext/resources/images/default/window/icon-info.gif) no-repeat top left;}
+.x-window-dlg .ext-mb-warning{background:transparent url(../js/ext/resources/images/default/window/icon-warning.gif) no-repeat top left;}
+.x-window-dlg .ext-mb-question{background:transparent url(../js/ext/resources/images/default/window/icon-question.gif) no-repeat top left;}
+.x-window-dlg .ext-mb-error{background:transparent url(../js/ext/resources/images/default/window/icon-error.gif) no-repeat top left;}
+
+
+
+/*
+ * Ext JS Library 2.0.2
+ * Copyright(c) 2006-2008, Ext JS, LLC.
+ * licensing(a)extjs.com
+ *
+ * http://extjs.com/license
+ */
+
+.x-panel {
+ border-style: solid;
+ border-color: #d0d0d0;
+}
+.x-panel-header {
+ color:#333;
+ border:1px solid #d0d0d0;
+ background-image:url(../js/ext/resources/images/gray/panel/white-top-bottom.gif);
+}
+
+.x-panel-body {
+ border-color:#d0d0d0;
+}
+
+.x-panel-bbar .x-toolbar {
+ border-color:#d0d0d0;
+}
+
+.x-panel-tbar .x-toolbar {
+ border-color:#d0d0d0;
+}
+
+.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar {
+ border-color:#d0d0d0;
+}
+.x-panel-body-noheader, .x-panel-mc .x-panel-body {
+ border-color:#d0d0d0;
+}
+.x-panel-tl .x-panel-header {
+ color:#333;
+}
+.x-panel-tc {
+ background-image:url(../js/ext/resources/images/gray/panel/top-bottom.gif);
+}
+.x-panel-tl {
+ background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);
+ border-color:#d0d0d0;
+}
+.x-panel-tr {
+ background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);
+}
+.x-panel-bc {
+ background-image:url(../js/ext/resources/images/gray/panel/top-bottom.gif);
+}
+.x-panel-bl {
+ background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);
+}
+.x-panel-br {
+ background-image:url(../js/ext/resources/images/gray/panel/corners-sprite.gif);
+}
+.x-panel-mc {
+ background:#f1f1f1;
+}
+.x-panel-mc .x-panel-body {
+ background:transparent;
+ border: 0 none;
+}
+.x-panel-ml {
+ background-image:url(../js/ext/resources/images/gray/panel/left-right.gif);
+}
+.x-panel-mr {
+ background-image:url(../js/ext/resources/images/gray/panel/left-right.gif);
+}
+
+/* Tools */
+.x-tool {
+ background-image:url(../js/ext/resources/images/gray/panel/tool-sprites.gif);
+}
+
+/* Ghosting */
+.x-panel-ghost {
+ background:#e0e0e0;
+}
+
+.x-panel-ghost ul {
+ border-color:#b0b0b0;
+}
+
+.x-grid-panel .x-panel-mc .x-panel-body {
+ border:1px solid #d0d0d0;
+}
+
+/* Buttons */
+
+.x-btn-left{
+ background-image:url(../js/ext/resources/images/gray/button/btn-sprite.gif);
+}
+.x-btn-right{
+ background-image:url(../js/ext/resources/images/gray/button/btn-sprite.gif);
+}
+.x-btn-center{
+ background-image:url(../js/ext/resources/images/gray/button/btn-sprite.gif);
+}
+
+/* Layout classes */
+
+.x-border-layout-ct {
+ background:#f0f0f0;
+}
+
+.x-accordion-hd {
+ background-image:url(../js/ext/resources/images/gray/panel/light-hd.gif);
+}
+
+.x-layout-collapsed{
+ background-color:#eee;
+ border-color:#e0e0e0;
+}
+.x-layout-collapsed-over{
+ background-color:#fbfbfb;
+}
+
+
+/* qtips */
+.x-tip .x-tip-top {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+.x-tip .x-tip-top-left {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+.x-tip .x-tip-top-right {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+.x-tip .x-tip-ft {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+.x-tip .x-tip-ft-left {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+.x-tip .x-tip-ft-right {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+.x-tip .x-tip-bd-left {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+.x-tip .x-tip-bd-right {
+ background-image:url(../js/ext/resources/images/gray/qtip/tip-sprite.gif);
+}
+
+/* Toolbars */
+
+.x-toolbar{
+ border-color:#d0d0d0;
+ background:#f0f4f5 url(../js/ext/resources/images/gray/toolbar/bg.gif) repeat-x top left;
+}
+.x-toolbar button {
+ color:#444;
+}
+.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button {
+ background-image:url(../js/ext/resources/images/gray/toolbar/btn-arrow.gif);
+}
+.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button {
+ background-image:url(../js/ext/resources/images/gray/toolbar/btn-arrow.gif);
+}
+.x-toolbar .x-btn-over .x-btn-left{
+ background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);
+}
+.x-toolbar .x-btn-over .x-btn-right{
+ background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);
+}
+.x-toolbar .x-btn-over .x-btn-center{
+ background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);
+}
+.x-toolbar .x-btn-over button {
+ color:#111;
+}
+.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{
+ background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);
+}
+.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{
+ background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);
+}
+
+.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{
+ background-image:url(../js/ext/resources/images/gray/toolbar/tb-btn-sprite.gif);
+}
+.x-toolbar .ytb-sep {
+ background-image: url(../js/ext/resources/images/default/grid/grid-split.gif);
+}
+
+/* Tabs */
+
+.x-tab-panel-header, .x-tab-panel-footer {
+ background: #EAEAEA;
+ border-color:#d0d0d0;
+}
+
+
+.x-tab-panel-header {
+ border-color:#d0d0d0;
+}
+
+.x-tab-panel-footer {
+ border-color:#d0d0d0;
+}
+
+ul.x-tab-strip-top{
+ background:#dbdbdb url(../js/ext/resources/images/gray/tabs/tab-strip-bg.gif) repeat-x left top;
+ border-color:#d0d0d0;
+ padding-top: 2px;
+}
+
+ul.x-tab-strip-bottom{
+ background-image:url(../js/ext/resources/images/gray/tabs/tab-strip-btm-bg.gif);
+ border-color:#d0d0d0;
+}
+
+.x-tab-strip span.x-tab-strip-text {
+ color:#333;
+}
+.x-tab-strip-over span.x-tab-strip-text {
+ color:#111;
+}
+
+.x-tab-strip-active span.x-tab-strip-text {
+ color:#333;
+}
+
+.x-tab-strip-disabled .x-tabs-text {
+ color:#aaaaaa;
+}
+
+.x-tab-strip-top .x-tab-right {
+ background-image:url(../js/ext/resources/images/gray/tabs/tabs-sprite.gif);
+}
+
+.x-tab-strip-top .x-tab-left {
+ background-image:url(../js/ext/resources/images/gray/tabs/tabs-sprite.gif);
+}
+.x-tab-strip-top .x-tab-strip-inner {
+ background-image:url(../js/ext/resources/images/gray/tabs/tabs-sprite.gif);
+}
+
+.x-tab-strip-bottom .x-tab-right {
+ background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-inactive-right-bg.gif);
+}
+
+.x-tab-strip-bottom .x-tab-left {
+ background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-inactive-left-bg.gif);
+}
+
+.x-tab-strip-bottom .x-tab-strip-active .x-tab-right {
+ background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-right-bg.gif);
+}
+
+.x-tab-strip-bottom .x-tab-strip-active .x-tab-left {
+ background-image:url(../js/ext/resources/images/gray/tabs/tab-btm-left-bg.gif);
+}
+
+.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close {
+ background-image:url(../js/ext/resources/images/gray/tabs/tab-close.gif);
+}
+.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{
+ background-image:url(../js/ext/resources/images/gray/tabs/tab-close.gif);
+}
+
+.x-tab-panel-body {
+ border-color:#d0d0d0;
+ background:#fff;
+}
+.x-tab-panel-bbar .x-toolbar {
+ border-color: #d0d0d0;
+}
+
+.x-tab-panel-tbar .x-toolbar {
+ border-color: #d0d0d0;
+}
+
+.x-tab-panel-header-plain .x-tab-strip-spacer {
+ border-color:#d0d0d0;
+ background: #eaeaea;
+}
+
+.x-tab-scroller-left {
+ background-image: url(../js/ext/resources/images/gray/tabs/scroll-left.gif);
+ border-color:#aeaeae;
+}
+.x-tab-scroller-right {
+ background-image: url(../js/ext/resources/images/gray/tabs/scroll-right.gif);
+ border-color:#aeaeae;
+}
+
+/* Window */
+
+.x-window-proxy {
+ background:#e0e0e0;
+ border-color:#b0b0b0;
+}
+
+.x-window-tl .x-window-header {
+ color:#555;
+}
+.x-window-tc {
+ background-image:url(../js/ext/resources/images/gray/window/top-bottom.png);
+}
+.x-window-tl {
+ background-image:url(../js/ext/resources/images/gray/window/left-corners.png);
+}
+.x-window-tr {
+ background-image:url(../js/ext/resources/images/gray/window/right-corners.png);
+}
+.x-window-bc {
+ background-image:url(../js/ext/resources/images/gray/window/top-bottom.png);
+}
+.x-window-bl {
+ background-image:url(../js/ext/resources/images/gray/window/left-corners.png);
+}
+.x-window-br {
+ background-image:url(../js/ext/resources/images/gray/window/right-corners.png);
+}
+.x-window-mc {
+ border:1px solid #d0d0d0;
+ background:#e8e8e8;
+}
+
+.x-window-ml {
+ background-image:url(../js/ext/resources/images/gray/window/left-right.png);
+}
+.x-window-mr {
+ background-image:url(../js/ext/resources/images/gray/window/left-right.png);
+}
+.x-panel-ghost .x-window-tl {
+ border-color:#d0d0d0;
+}
+.x-panel-collapsed .x-window-tl {
+ border-color:#d0d0d0;
+}
+
+.x-window-plain .x-window-mc {
+ background: #e8e8e8;
+ border-right:1px solid #eee;
+ border-bottom:1px solid #eee;
+ border-top:1px solid #d0d0d0;
+ border-left:1px solid #d0d0d0;
+}
+
+.x-window-plain .x-window-body {
+ border-left:1px solid #eee;
+ border-top:1px solid #eee;
+ border-bottom:1px solid #d0d0d0;
+ border-right:1px solid #d0d0d0;
+ background:transparent !important;
+}
+
+body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc {
+ background-color: #e4e4e4;
+}
+
+
+/* misc */
+.x-html-editor-wrap {
+ border-color:#d0d0d0;
+}
+
+/* Borders go last for specificity */
+.x-panel-noborder .x-panel-body-noborder {
+ border-width:0;
+}
+
+.x-panel-noborder .x-panel-header-noborder {
+ border-width:0;
+ border-bottom:1px solid #d0d0d0;
+}
+
+.x-panel-noborder .x-panel-tbar-noborder .x-toolbar {
+ border-width:0;
+ border-bottom:1px solid #d0d0d0;
+}
+
+.x-panel-noborder .x-panel-bbar-noborder .x-toolbar {
+ border-width:0;
+ border-top:1px solid #d0d0d0;
+}
+
+.x-window-noborder .x-window-mc {
+ border-width:0;
+}
+.x-window-plain .x-window-body-noborder {
+ border-width:0;
+}
+
+.x-tab-panel-noborder .x-tab-panel-body-noborder {
+ border-width:0;
+}
+
+.x-tab-panel-noborder .x-tab-panel-header-noborder {
+ border-top-width:0;
+ border-left-width:0;
+ border-right-width:0;
+}
+
+.x-tab-panel-noborder .x-tab-panel-footer-noborder {
+ border-bottom-width:0;
+ border-left-width:0;
+ border-right-width:0;
+}
+
+
+.x-tab-panel-bbar-noborder .x-toolbar {
+ border-width:0;
+ border-top:1px solid #d0d0d0;
+}
+
+.x-tab-panel-tbar-noborder .x-toolbar {
+ border-width:0;
+ border-bottom:1px solid #d0d0d0;
+}
+
+.kunebody {
+ background-color: #FFF;
+ color: #000;
+ font-family: arial, sans;
+ margin: 5px 5px 5px 5px;
+}
+
+#kuneinitialcurtain {
+ position: absolute;
+ left: 0px;
+ top: 0px;
+ width: 100%;
+ height: 100%;
+ background-color: #FFF;
+ z-index: 9999;
+}
+
+/* Global styles */
+
+.gwt-HorizontalSplitPanel .hsplitter {
+ cursor: e-resize;
+ width: 6px;
+}
+
+.gwt-DialogBox {
+ border: 8px solid #C3D9FF;
+ border: 2px outset;
+ background-color: white;
+}
+
+.gwt-DialogBox .Caption {
+ background-color: #C3D9FF;
+ font-size: 85%;
+ font-weight: 700;
+ padding: 3px;
+ margin: 2px;
+ cursor: default;
+}
+
+.gwt-MenuBar {
+ background-color: #F2F2F2;
+ border: 1px solid #999;
+ vertical-align: middle;
+ padding: 5px 0;
+}
+
+.gwt-MenuBar .gwt-MenuItem {
+ cursor: pointer;
+ padding: 1px 10px;
+ white-space: nowrap;
+}
+
+.gwt-MenuBar .gwt-MenuItem img {
+ vertical-align: middle;
+ margin-right: 3px;
+}
+
+.gwt-MenuBar .gwt-MenuItem {
+ background-color: #F2F2F2;
+}
+
+.gwt-MenuBar .gwt-MenuItem-selected {
+ background-color: #FFB958;
+}
+
+.kune-MenuBar .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;
+ cursor: hand;
+ white-space: nowrap;
+ padding: 0 10px;
+}
+
+.kune-MenuBar .gwt-MenuItem-selected {
+ background: transparent url(img/button-bg-soft.gif) repeat-x 0 0;
+ color: #996633;
+}
+
+.kune-expandHoriz {
+ width: 100%;
+}
+
+.kune-expandVert {
+ height: 100%;
+}
+
+.kune-floatleft {
+ float: left;
+}
+
+.kune-floatright {
+ float: right;
+}
+
+/* Deprecated */
+.kune-Default-Form {
+ margin: 10px;
+}
+
+.kune-valignmiddle {
+ vertical-align: middle;
+}
+
+fieldset {
+ border:1px solid #B5B8C8;
+ /* margin-bottom:10px; */
+ padding:10px 10px 5px;
+}
+
+legend {
+ color:#15428B;
+ font-size: 85%;
+ font-size-adjust:none;
+ font-style:normal;
+ font-variant:normal;
+ font-weight:bold;
+ line-height:normal;
+}
+
+.gwt-RadioButton input {
+ margin: 0 3px;
+ vertical-align:middle;
+}
+
+.gwt-RadioButton label {
+ margin: 0 3px;
+ vertical-align:middle;
+}
+
+.kune-pointer {
+ cursor: pointer;
+}
+
+.kuneLabelPre {
+ white-space: pre !important;
+}
+
+/* Buttons */
+
+.kune-CustomPushButton-space {
+ margin-top: 3px;
+ margin-bottom: 3px;
+}
+
+.kune-CustomPushButton {
+ 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: 0px 12px;
+}
+
+.kune-CustomPushButton-up {
+ color: #161616;
+}
+
+.kune-CustomPushButton-down {
+ color: black;
+}
+
+.kune-CustomPushButton-up-hovering {
+ color: #161616;
+ background: transparent url(img/button-bg-soft.gif) repeat-x 0 0;
+}
+
+.kune-CustomPushButton-down-hovering {
+ color: black;
+}
+
+.kune-CustomPushButton-up-disabled {
+ background: transparent url(img/button-bg-soft.gif) repeat-x 0 0;
+ color: #E0E0E0;
+ cursor: default;
+}
+
+.kune-CustomPushButton-down-disabled {
+ background: transparent url(img/button-bg-soft.gif) repeat-x 0 0;
+ color: #E0E0E0;
+ cursor: default;
+}
+
+.kune-Button-Large-lrSpace {
+ margin-left: 12px;
+ margin-right: 12px;
+}
+
+.kune-Button-Large-rSpace {
+ margin-right: 12px;
+}
+
+.kune-Button-Large-lSpace {
+ margin-left: 12px;
+}
+
+.kune-Button-Large-tbSpace {
+ margin-top: 12px;
+ margin-bottom: 12px;
+}
+
+.kune-Button-Small-lrSpace {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+.kune-Button-Small-rSpace {
+ margin-right: 10px;
+}
+
+.kune-Button-Small-lSpace {
+ margin-left: 10px;
+}
+
+.kune-Button-Small-tbSpace {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+.kune-Button-Mini-lSpace {
+ margin-left: 8px;
+}
+
+.kune-Button-Mini-lrSpace {
+ margin-left: 8px;
+ margin-right: 8px;
+}
+
+.kune-Button-Mini-rSpace {
+ margin-right: 8px;
+}
+
+.kune-Button-Mini-tbSpace {
+ margin-top: 8px;
+ margin-bottom: 8px;
+}
+
+.kune-IconHyperlink {
+}
+
+.kune-IconHyperlink a:link {
+ /* text-decoration: underline; */
+ color: green;
+}
+
+.kune-IconHyperlink a:hover {
+ text-decoration: underline;
+}
+
+.kune-IconHyperlink a:visited {
+ color: #808000;
+}
+
+.kune-IconHyperlink img {
+ margin-right: 4px;
+ vertical-align: middle;
+}
+
+.kune-IconLabel {
+
+}
+
+.kune-IconLabel img {
+ margin-right: 4px;
+ vertical-align: middle;
+}
+
+.kune-link {
+ text-decoration: underline;
+ color: green;
+ cursor: pointer;
+}
+
+/* DropDowns */
+
+.kune-DropDownOuter {
+ background-color: green;
+}
+
+.kune-DropDownInner {
+ margin: 0 3px 1px 3px;
+ background: green;
+ background-color: #FFF;
+ padding: 3px;
+}
+
+.kune-DropDownLabel {
+ color: #FFF;
+ cursor: pointer;
+}
+
+.kune-DropDownLabel .gwt-Label {
+ margin: 0 5px 0 0;
+ width: 100%;
+}
+
+.kune-DropDownLabel img {
+ margin: 0 3px 0 1px;
+}
+
+.kune-IconLabel {
+ color: green;
+}
+
+.kune-IconLabel img {
+ margin-right: 4px;
+ vertical-align: middle;
+}
+
+/* Used in multi chat panel status change */
+.x-menu-item img {
+ margin-right: 4px;
+ vertical-align: middle;
+}
+
+/* Margins */
+
+.kune-Margin-40-trbl {
+ margin: 40px;
+}
+
+.kune-Margin-40-lr {
+ margin-left: 40px;
+ margin-right: 40px;
+}
+
+.kune-Margin-40-tl {
+ margin-top: 40px;
+ margin-left: 40px;
+}
+
+.kune-Margin-40-tb {
+ margin-top: 40px;
+ margin-bottom: 40px;
+}
+
+.kune-Margin-40-t {
+ margin-top: 40px;
+}
+
+.kune-Margin-40-r {
+ margin-right: 40px;
+}
+
+.kune-Margin-40-l {
+ margin-left: 40px;
+}
+
+.kune-Margin-20-trbl {
+ margin: 20px;
+}
+
+.kune-Margin-20-lr {
+ margin-left: 20px;
+ margin-right: 20px;
+}
+
+.kune-Margin-20-tl {
+ margin-top: 20px;
+ margin-left: 20px;
+}
+
+.kune-Margin-20-tb {
+ margin-top: 20px;
+ margin-bottom: 20px;
+}
+
+.kune-Margin-20-t {
+ margin-top: 20px;
+}
+
+.kune-Margin-20-r {
+ margin-right: 20px;
+}
+
+.kune-Margin-20-l {
+ margin-left: 20px;
+}
+
+.kune-Margin-Large-trbl {
+ margin: 10px;
+}
+
+.kune-Margin-Large-lr {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+.kune-Margin-Large-tl {
+ margin-top: 10px;
+ margin-left: 10px;
+}
+
+.kune-Margin-Large-tb {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+.kune-Margin-Large-t {
+ margin-top: 10px;
+}
+
+.kune-Margin-Large-r {
+ margin-right: 10px;
+}
+
+.kune-Margin-Large-l {
+ margin-left: 10px;
+}
+
+.kune-Margin-Medium-trbl {
+ margin: 5px;
+}
+
+.kune-Margin-Medium-lr {
+ margin-left: 5px;
+ margin-right: 5px;
+}
+
+.kune-Margin-Medium-tl {
+ margin-top: 5px;
+ margin-left: 5px;
+}
+
+.kune-Margin-Medium-tb {
+ margin-top: 5px;
+ margin-bottom: 5px;
+}
+
+.kune-Margin-Medium-t {
+ margin-top: 5px;
+}
+
+.kune-Margin-Medium-r {
+ margin-right: 5px;
+}
+
+.kune-Margin-Medium-b {
+ margin-bottom: 5px;
+}
+
+.kune-Margin-Medium-l {
+ margin-left: 5px;
+}
+
+.kune-Margin-Small-trbl {
+ margin: 3px;
+}
+
+.kune-Margin-Small-lr {
+ margin-left: 3px;
+ margin-right: 3px;
+}
+
+.kune-Margin-Small-tl {
+ margin-top: 3px;
+ margin-left: 3px;
+}
+
+.kune-Margin-Small-tb {
+ margin-top: 3px;
+ margin-bottom: 3px;
+}
+
+.kune-Margin-Small-t {
+ margin-top: 3px;
+}
+
+.kune-Margin-Mini-trbl {
+ margin: 1px;
+}
+
+.kune-Margin-Mini-lr {
+ margin-left: 1px;
+ margin-right: 1px;
+}
+
+.kune-Margin-Mini-tl {
+ margin-top: 1px;
+ margin-left: 1px;
+}
+
+.kune-Margin-Mini-tb {
+ margin-top: 1px;
+ margin-bottom: 1px;
+}
+
+.kune-Margin-Mini-t {
+ margin-top: 1px;
+}
+
+.kune-Margin-Mini-r {
+ margin-right: 1px;
+}
+
+.kune-Margin-Mini-l {
+ margin-left: 1px;
+}
+
+/* Fonts
+see: http://developer.yahoo.com/yui/fonts/ */
+
+.kune-ft10px {
+ font-size: 77%
+}
+
+.kune-ft11px {
+ font-size: 85%
+}
+
+.kune-ft12px {
+ font-size: 93%
+}
+
+.kune-ft13px {
+ font-size: 100%
+}
+
+.kune-ft14px {
+ font-size: 108%
+}
+
+.kune-ft15px {
+ font-size: 116%
+}
+
+.kune-ft16px {
+ font-size: 123.1%
+}
+
+.kune-ft17px {
+ font-size: 131%
+}
+
+.kune-ft18px {
+ font-size: 138.5%
+}
+
+.kune-ft19px {
+ font-size: 146.5%
+}
+
+.kune-ft20px {
+ font-size: 153.9%
+}
+
+.kune-ft21px {
+ font-size: 161.6%
+}
+
+.kune-ft22px {
+ font-size: 167%
+}
+
+.kune-ft23px {
+ font-size: 174%
+}
+
+.kune-ft24px {
+ font-size: 182%
+}
+
+.kune-ft25px {
+ font-size: 189%
+}
+
+.kune-ft26px {
+ font-size: 197%
+}
+
+
+/* Sitebar */
+
+#kuneprogresspanel {
+ position: absolute;
+ top: 2px;
+ left: 2px;
+ z-index: 30000;
+}
+
+.kune-Progress {
+ background: #E5FF80;
+ border: 1px solid #E5FF80;
+ white-space: nowrap;
+ height: 16px;
+ padding: 0 3px;
+}
+
+.kune-SiteBarPanel .kune-IconHyperlink {
+ white-space: nowrap;
+}
+
+.kune-SiteBarPanel .kune-IconHyperlink a:link {
+ cursor: pointer;
+ text-decoration: underline;
+ color: #B3B3B3;
+}
+
+.kune-SiteBarPanel .kune-IconHyperlink a:hover {
+ text-decoration: underline;
+}
+
+.kune-SiteBarPanel .kune-IconHyperlink a:visited {
+ color: #B3B3B3;
+}
+
+.kune-SiteBarPanel {
+ margin-right: 10px;
+ height: 16px;
+}
+
+.kune-SiteBarPanel .gwt-TextBox {
+ border: 1px solid #E4A374;
+ margin: 0 15px 0 3px;
+ padding-left: 3px;
+ color: #B3B3B3;
+}
+
+.kune-SiteBarPanel .gwt-Hyperlink a {
+ white-space: nowrap;
+ color: #B3B3B3;
+ text-decoration: underline;
+ cursor: pointer;
+}
+
+.kune-SiteBarPanel .gwt-PushButton {
+ cursor: pointer;
+}
+
+.kune-SiteBarPanel-Separator {
+ color: #E4A374;
+ margin: 0 5px;
+}
+
+.kune-SiteBarPanel-SpaceSeparator {
+ width: 10px;
+}
+
+.kune-SiteBarPanel-LabelLink {
+ white-space: nowrap;
+ color: #B3B3B3;
+ margin-left: 3px;
+ cursor: pointer;
+ text-decoration: underline;
+}
+
+.kune-SiteMessagePanel {
+ color: #250;
+ position: absolute;
+ z-index: 10000;
+ vertical-align: middle;
+}
+
+.kune-SiteMessagePanel .gwt-HTML {
+ margin: 15px 5px 15px 2px;
+}
+
+.kune-SiteMessagePanel .gwt-Image {
+ margin: 5px;
+}
+
+.kune-SiteMessagePanel-error {
+ background-color: #FFB380;
+ border: 1px solid #FF0066;
+}
+
+.kune-SiteMessagePanel-veryimp {
+ background-color: #FFD4AA;
+ border: 1px solid #FF5599;
+}
+
+.kune-SiteMessagePanel-imp {
+ background-color: #FFE6D5;
+ border: 1px solid #DE87AA;
+}
+
+.kune-SiteMessagePanel-info {
+ background-color: #E5FF80;
+ border: 1px solid #87DE87;
+}
+
+/* Workspace styles */
+.kune-WorkspacePanel {
+ width: 100%;
+ background-color: #FFF;
+}
+
+.kune-WokspacePanel .Tab {
+
+}
+
+.kune-WorkspacePanel .GeneralHP {
+
+}
+
+.kune-WorkspacePanel .ContextPanel {
+ width: 100%;
+ border-right: 3px solid #DD8A3D;
+}
+
+.kune-GroupSummaryPanel {
+ margin: 5px 0 0 5px;
+ width: 100%;
+}
+
+.kune-GroupToolsBar {
+ width: 150px;
+}
+
+.kune-GroupToolsBar-itemSelected {
+ margin-bottom: 5px;
+}
+
+.kune-GroupToolsBar-itemSelected .gwt-Hyperlink a {
+ color: #FFF;
+ padding: 0 9px;
+ text-decoration: none;
+}
+
+.kune-GroupToolsBar-itemSelected .gwt-Hyperlink a:hover {
+ text-decoration: none;
+}
+
+.kune-GroupToolsBar-itemNotSelected {
+ margin-bottom: 5px;
+}
+
+.kune-GroupToolsBar-itemNotSelected .gwt-Hyperlink a {
+ color: green;
+ padding: 0 9px;
+ text-decoration: none;
+}
+
+.kune-GroupToolsBar-itemNotSelected .gwt-Hyperlink a:hover {
+ text-decoration: none;
+}
+
+/* Content titles */
+
+.kune-ContentToolBarPanel {
+ background-color: #F2F2F2;
+ padding: 2px;
+ height: 24px;
+ vertical-align: middle;
+}
+
+.kune-ContentBottomBar {
+ vertical-align: middle;
+ height: 24px;
+}
+
+.kune-ContentBottomBar .gwt-Image {
+ margin-left: 5px;
+ cursor: pointer;
+ float: left;
+}
+
+.kune-ContentBottomBar .gwt-Label a {
+
+}
+
+/* Main Content & Context */
+.kune-WorkspacePanel-Content {
+ background-color: #FCFCFC;
+ width: 100%;
+ height: 100%;
+}
+
+.kune-WorkspacePanel-Content .main-content {
+ margin: 7px 5px 5px 10px;
+}
+
+.kune-WorkspacePanel-Context {
+ background-color: #CFA;
+ width: 100%;
+ height: 100%;
+}
+
+.kune-NavigationBar {
+ width: 100%;
+}
+
+.kune-NavigationBar .topBar {
+ background-color: #ececec;
+ background: #ececec;
+ border-bottom: 1px solid #e3dbdb;
+ vertical-align: middle;
+}
+
+.kune-NavigationBar .topBar .gwt-PushButton {
+ margin: 1px 3px 1px 0;
+}
+
+.kune-NavigationBar .topBar .gwt-Label {
+ vertical-align: middle;
+}
+
+.kune-NavigationBar .kune-topBar-iconBar {
+ margin: 2px 0 2px 5px;
+}
+
+.kune-NavigationBar .kune-ContextItemsPanel-LabelLink {
+ /* text-decoration: underline; */
+ color: green;
+ cursor: pointer;
+ margin-left: 3px;
+}
+
+/*
.topBar .gwt-PushButton-up-disabled {
filter: alpha(opacity = 20);
-moz-opacity: 0.2;
@@ -33,6 +2139,1052 @@
-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;owerflow: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;}.chat-icon{background-image:url(img/chat.gif)!important;}.group-icon{background-image:url(img/group.gif)!important;}.user-icon{background-image:url(img/user.gif)!important;}.userf-icon{background-image:url(img/userf.gif)!important;}.kune-RoomPanel-HorizDelimiter{white-space:nowrap;color:#B3B3B3;}.kune-MultiRoomPanel-Subject{font-size:108%;color:#2E5492;}.kune-MultiRoomPanel-User{}.kune-MultiRoomPanel-User .kune-IconLabel{overflow:hidden;white-space:nowrap;}.kune-RoomPanel-Conversation{}.kune-RoomPanel-Message{margin:0 7px;}.kune-RoomPanel-EventMessage{font-style:italic;color:#69C;margin:0 5px;}.kune-MultiRoomPanel-EmoticonPalette{background-color:#FFF;border:1px solid #AAA;margin:1px solid red;z-index:10000;position:absolute;}.kune-MultiRoomPanel-EmoticonPalette td{width:30px;height:30px;}/* 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;}.RichTextToolbar-menu table{border-collapse:collapse;border-spacing:0;margin:0;}.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;}.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 solid red;}.kune-WebSafePalette td{width:12px;height:10px;}
\ No newline at end of file
+*/
+.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: #EEFFAA;
+ 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: 0px;
+}
+
+/* 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 0;
+ 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: bold;
+ font-size: 85%;
+ margin-top: 5px;
+}
+
+.kune-License-CC-Header .gwt-Label {
+ color: #15428B;
+ font-weight: bold;
+ 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: bold;
+}
+
+.kune-i18nTranslator-recommend h2 {
+ font-size: 116%;
+ font-weight: bold;
+}
+
+.kune-i18nTranslator-recommend h3 {
+ font-size: 108%;
+ font-weight: bold;
+ font-style: italic;
+}
+
+.kune-i18nTranslator-recommend em {
+ font-weight: bold;
+}
+
+.kune-i18nTranslator-recommend strong {
+ font-weight: bold;
+}
+
+/* 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: #808000;
+}
+
+.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.1%;
+}
+
+.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: bold;
+}
+
+.kune-Content-Main h2 {
+ font-weight: bold;
+}
+
+.kune-Content-Main h3 {
+ font-weight: bold;
+}
+
+.kune-Content-Main h4 {
+ font-weight: bold;
+}
+
+.kune-Content-Main h5 {
+ font-weight: bold;
+}
+
+.kune-Content-Main h6 {
+ font-weight: bold;
+}
+
+.kune-Content-Main strong {
+ font-weight: bold;
+}
+
+.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: bold;
+ 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;
+}
+
+.chat-icon {
+ background-image: url(img/chat.gif) !important;
+}
+
+.group-icon {
+ background-image: url(img/group.gif) !important;
+}
+
+.user-icon {
+ background-image: url(img/user.gif) !important;
+}
+
+.userf-icon {
+ background-image: url(img/userf.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 0px 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;
+}
+
+.RichTextToolbar-menu table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ margin: 0;
+}
+
+.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;
+}
+
+.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-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 {
+ margin-right: 10px;
+ height: 16px;
+}
+
+.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;
+ margin-left: 3px;
+ cursor: pointer;
+ text-decoration: underline;
+}
+
+.k-entity-summary {
+ border-left-color: #FFF;
+ border-left-width: 5px;
+}
+
+.k-EntityTextLogo {
+ border: 2px solid #F2F2F2;
+ height: 60px;
+ margin: 0 0 4px -1px;
+ overflow: hidden;
+ width: 468px;
+}
+
+.k-entitytextlogo .gwt-Label {
+ font-size: 167%;
+ font-weight: 700;
+ margin: 5px;
+ height: 27px;
+}
+
+.k-entitytextlogo-def .gwt-Label {
+ color: #69312F;
+}
+
+.k-entitytextlogo-green .gwt-Label {
+ color: #000080;
+}
+
+.k-entitytextlogo .gwt-Hyperlink a {
+ color: #CCC;
+ font-size: 85%;
+ margin: 5px;
+ text-decoration: underline;
+ white-space: nowrap;
+ background-color: #FFF;
+}
+
+.k-entity-def .x-layout-split {
+ background: #DD8A3D none repeat scroll 0% 50%;
+}
+
+.k-entity-green .x-layout-split {
+ background: #5FD35F none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace .x-layout-split {
+ background: transparent none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-def .x-layout-split {
+ background: #DEAA87 none repeat scroll 0% 50%;
+}
+
+.k-entityworkspace-green .x-layout-split {
+ background: #DCE8AB 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-def {
+ background: #DD8A3D;
+}
+
+.k-entity-title-rd-green {
+ background: #5FD35F;
+}
+
+.k-entity-title-def {
+ background: #F1BB59 none repeat scroll 0% 50%;
+ border-left-color: #DD8A3D;
+}
+
+.k-entity-title-def div {
+ color: #69312F;
+}
+
+.k-entity-title-green {
+ background: #AFA none repeat scroll 0% 50%;
+ border-left-color: #5FD35F;
+}
+
+.k-entity-title-green div {
+ color: #250;
+}
+
+.k-entity-subtitle-def {
+ background: #DD8A3D none repeat scroll 0% 50%;
+}
+
+.k-entity-subtitle-def div {
+ color: #FFF;
+}
+
+.k-entity-subtitle-green {
+ background: #5FD35F none repeat scroll 0% 50%;
+}
+
+.k-entity-subtitle-green div {
+ color: #FFF;
+}
+
+.k-entity-bottom-rd-def {
+ background: #DD8A3D;
+}
+
+.k-entity-bottom-rd-green {
+ background: #5FD35F;
+}
+
+.k-entitylicensepanel-licensetext {
+ cursor: pointer;
+ margin-left: 5px;
+ text-decoration: underline;
+}
+
+.k-entity-container-def div {
+ background: #FFD09D none repeat scroll 0% 50%;
+}
+
+.k-entity-container-green div {
+ background: #CFA none repeat scroll 0% 50%;
+}
+
+.k-entity-bottom div {
+ line-height: 2em;
+}
+
+.k-entity-bottom-def {
+ background: #DD8A3D;
+}
+
+.k-entity-bottom-def div {
+ color: #FFF;
+}
+
+.k-entity-bottom-green {
+ background: #5FD35F;
+}
+
+.k-entity-bottom-green div {
+ color: #FFF;
+}
+
+.k-toolbar-top-line {
+ border-top-color: rgb( 208, 208, 208 );
+ border-top-style: solid;
+ border-top-width: 1px;
+}
+
+.k-toolbar-bottom-line {
+ border-bottom-color: rgb( 208, 208, 208 );
+ 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 13px arial, sans;
+ line-height: 19px;
+}
+
+.k-toolbar-sep {
+ padding-top: 4px;
+}
+
+/* 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 0;
+ 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: gray;
+}
+
+.k-dropdownouter-members {
+}
+
+.k-dropdownouter-members-def {
+ background-color: #DF5244;
+}
+
+.k-dropdownouter-members-green {
+ background-color: #008000;
+}
+
+.k-dropdownouter-part {
+}
+
+.k-dropdownouter-part-def {
+ background-color: #CA5842;
+}
+
+.k-dropdownouter-part-green {
+ background-color: #00AA00;
+}
+
+.k-dropdownouter-tags {
+}
+
+.k-dropdownouter-tags-def {
+ background-color: #87501E;
+}
+
+.k-dropdownouter-tags-green {
+ background-color: #00D400;
+}
+
+.k-dropdownouter-summary {
+}
+
+.k-dropdownouter-summary-def {
+ background-color: #9F734B;
+}
+
+.k-dropdownouter-summary-green {
+ background-color: #4CE14C;
+}
+
+.k-dropdowninner {
+ margin: 0 3px 1px 3px;
+ 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;
+}
+
+
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-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-07-23 04:11:58 UTC (rev 813)
@@ -232,6 +232,8 @@
padding-top: 4px;
}
+/* Custom gwt-ext styles */
+
.ytb-sep {
background-image: url(../js/ext/resources/images/default/grid/grid-split.gif);
background-position: center;
@@ -249,7 +251,15 @@
.ytb-spacer {
width: 2px;
}
+
+.x-grid-group-hd {
+ border-bottom: 2px solid grey;
+ cursor: pointer;
+ padding-top: 3px;
+}
+
/* Drop down */
+
.k-dropdownouter {
background-color: gray;
}
Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/richtext.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/css/richtext.css 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/app/public/css/richtext.css 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,3 +1,4 @@
+
/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
@@ -3,13 +4,28 @@
http://developer.yahoo.net/yui/license.txt
version: 2.3.1
-*/body{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:400;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup,sub{line-height:-1px;vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}/*
+*/
+body{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup,sub{line-height:-1px;vertical-align:text-top;}sub{vertical-align:text-bottom;}input, textarea, select{font-family:inherit;font-size:inherit;font-weight:inherit;}
+
+/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.3.1
-*/body{font:13px/1.22 arial,helvetica,clean,sans-serif;font-size:small;font:x-small;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;font-size:108%;line-height:99%;}/*
+*/
+body {font:13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}table {font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:99%;}
+
+
+/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.4.1
-*/h1{font-size:138.5%;}h2{font-size:123.099998%;}h3{font-size:108%;}h1,h2,h3{margin:1em 0;}h1,h2,h3,h4,h5,h6,strong{font-weight:700;}abbr,acronym{border-bottom:1px dotted #000;cursor:help;}em{font-style:italic;}blockquote,ul,ol,dl{margin:1em;}ol,ul,dl{margin-left:2em;}ol li{list-style:decimal outside;}ul li{list-style:disc outside;}dl dd{margin-left:1em;}th,td{border:1px solid #000;padding:.5em;}th{font-weight:700;text-align:center;}caption{margin-bottom:.5em;text-align:center;}p,fieldset,table,pre{margin-bottom:1em;}input[type=text],input[type=password],textarea{width:12.25em;width:11.9em;}body{font-family:arial, sans;margin:5px;}
\ No newline at end of file
+*/
+h1{font-size:138.5%;}h2{font-size:123.1%;}h3{font-size:108%;}h1,h2,h3{margin:1em 0;}h1,h2,h3,h4,h5,h6,strong{font-weight:bold;}abbr,acronym{border-bottom:1px dotted #000;cursor:help;} em{font-style:italic;}blockquote,ul,ol,dl{margin:1em;}ol,ul,dl{margin-left:2em;}ol li{list-style:decimal outside;}ul li{list-style:disc outside;}dl dd{margin-left:1em;}th,td{border:1px solid #000;padding:.5em;}th{font-weight:bold;text-align:center;}caption{margin-bottom:.5em;text-align:center;}p,fieldset,table,pre{margin-bottom:1em;}input[type=text],input[type=password],textarea{width:12.25em;*width:11.9em;}
+
+
+body {
+ font-family: arial, sans;
+ margin: 5px;
+}
+
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientModule.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -21,33 +21,22 @@
package org.ourproject.kune.chat.client;
import org.ourproject.kune.chat.client.actions.AddRoomAction;
-import org.ourproject.kune.chat.client.actions.ChatLoginAction;
-import org.ourproject.kune.chat.client.actions.ChatLogoutAction;
-import org.ourproject.kune.chat.client.actions.InitChatEngineAction;
import org.ourproject.kune.platf.client.extend.ClientModule;
import org.ourproject.kune.platf.client.extend.Register;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
public class ChatClientModule implements ClientModule {
private final Session session;
private final StateManager stateManager;
- private final ChatClientTool chatTool;
public ChatClientModule(final Session session, final StateManager stateManager, final ChatClientTool chatTool) {
- this.session = session;
- this.stateManager = stateManager;
- this.chatTool = chatTool;
+ this.session = session;
+ this.stateManager = stateManager;
}
public void configure(final Register register) {
- register.addAction(WorkspaceEvents.INIT_DATA_RECEIVED, new InitChatEngineAction(chatTool));
- register.addAction(WorkspaceEvents.USER_LOGGED_IN, new ChatLoginAction(chatTool));
- ChatLogoutAction logoutAction = new ChatLogoutAction(chatTool);
- register.addAction(WorkspaceEvents.USER_LOGGED_OUT, logoutAction);
- register.addAction(WorkspaceEvents.STOP_APP, logoutAction);
- register.addAction(ChatEvents.ADD_ROOM, new AddRoomAction(session, stateManager));
+ register.addAction(ChatEvents.ADD_ROOM, new AddRoomAction(session, stateManager));
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientNewModule.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,9 +1,11 @@
package org.ourproject.kune.chat.client;
import org.ourproject.kune.platf.client.KunePlatform;
+import org.ourproject.kune.platf.client.app.Application;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.calclab.emiteuimodule.client.EmiteUIDialog;
import com.calclab.suco.client.container.Container;
@@ -24,17 +26,16 @@
public void onLoad(final ModuleBuilder builder) {
builder.registerProvider(ChatClientTool.class, new Provider<ChatClientTool>() {
public ChatClientTool get() {
- return new ChatClientTool(builder.getInstance(I18nUITranslationService.class), builder
- .getInstance(EmiteUIDialog.class));
+ return new ChatClientTool(builder.getInstance(Session.class), builder.getInstance(Application.class),
+ builder.getInstance(I18nUITranslationService.class), builder.getInstance(EmiteUIDialog.class),
+ builder.getInstance(WorkspaceSkeleton.class));
}
}, SingletonScope.class);
- final KunePlatform platform = builder.getInstance(KunePlatform.class);
final ChatClientTool chatClientTool = getChatClientTool(builder);
- platform.addTool(chatClientTool);
-
- final Session session = builder.getInstance(Session.class);
- final StateManager stateManager = builder.getInstance(StateManager.class);
- platform.install(new ChatClientModule(session, stateManager, chatClientTool));
+ builder.getInstance(KunePlatform.class).addTool(chatClientTool);
+ builder.getInstance(KunePlatform.class).install(
+ new ChatClientModule(builder.getInstance(Session.class), builder.getInstance(StateManager.class),
+ chatClientTool));
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatClientTool.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -20,57 +20,77 @@
package org.ourproject.kune.chat.client;
+import org.ourproject.kune.platf.client.app.Application;
+import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.tool.AbstractClientTool;
import org.ourproject.kune.workspace.client.component.WorkspaceComponent;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.calclab.emiteuimodule.client.EmiteUIDialog;
+import com.calclab.suco.client.signal.Slot;
public class ChatClientTool extends AbstractClientTool implements ChatProvider {
public static final String NAME = "chats";
public static final String TYPE_ROOT = "chat.root";
public static final String TYPE_ROOM = "chat.room";
public static final String TYPE_CHAT = "chat.chat";
-
private final ChatToolComponents components;
private ChatEngine chat;
- private final EmiteUIDialog emiteUIDialog;
- private final I18nTranslationService i18n;
- public ChatClientTool(final I18nTranslationService i18n, final EmiteUIDialog emiteUIDialog) {
- super(i18n.t("chat rooms"));
- this.i18n = i18n;
- this.emiteUIDialog = emiteUIDialog;
- components = new ChatToolComponents(emiteUIDialog, i18n);
+ public ChatClientTool(final Session session, final Application application, final I18nTranslationService i18n,
+ final EmiteUIDialog emiteUIDialog, final WorkspaceSkeleton ws) {
+ super(i18n.t("chat rooms"));
+ components = new ChatToolComponents(emiteUIDialog, i18n);
+ session.onInitDataReceived(new Slot<InitDataDTO>() {
+ public void onEvent(final InitDataDTO initData) {
+ final ChatOptions chatOptions = new ChatOptions(initData.getChatHttpBase(), initData.getChatDomain(),
+ initData.getChatRoomHost());
+ chat = new ChatEngineXmpp(emiteUIDialog, chatOptions, i18n, ws);
+ }
+ });
+ application.onApplicationStop(new Slot<Object>() {
+ public void onEvent(final Object parameter) {
+ chat.logout();
+ }
+ });
+ session.onUserSignOut(new Slot<Object>() {
+ public void onEvent(final Object parameter) {
+ chat.logout();
+ }
+ });
+ session.onUserSignIn(new Slot<UserInfoDTO>() {
+ public void onEvent(final UserInfoDTO user) {
+ chat.login(user.getChatName(), user.getChatPassword());
+ }
+ });
}
public ChatEngine getChat() {
- return chat;
+ return chat;
}
public WorkspaceComponent getContent() {
- return components.getContent();
+ return components.getContent();
}
public WorkspaceComponent getContext() {
- return components.getContext();
+ return components.getContext();
}
public String getName() {
- return NAME;
+ return NAME;
}
- public void initEngine(final ChatOptions options) {
- this.chat = new ChatEngineXmpp(emiteUIDialog, options, i18n);
- }
-
public void setContent(final StateDTO state) {
- components.getContent().setState(state);
+ components.getContent().setState(state);
}
public void setContext(final StateDTO state) {
- components.getContext().setState(state);
+ components.getContext().setState(state);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -24,7 +24,7 @@
void joinRoom(String roomName, String userAlias);
- void login(String chatName, String chatPassword);
+ void login(String jid, String passwd);
void logout();
}
Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineXmpp.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -22,6 +22,7 @@
import java.util.Date;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.calclab.emite.client.im.roster.RosterManager.SubscriptionMode;
import com.calclab.emite.client.xmpp.stanzas.XmppURI;
@@ -31,17 +32,24 @@
import com.calclab.emiteuimodule.client.status.OwnPresence.OwnStatus;
import com.calclab.suco.client.signal.Slot;
import com.google.gwt.user.client.Window;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.widgets.Button;
+import com.gwtext.client.widgets.ToolbarButton;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
class ChatEngineXmpp implements ChatEngine {
private final ChatOptions chatOptions;
private final EmiteUIDialog emiteDialog;
private final I18nTranslationService i18n;
+ private final WorkspaceSkeleton ws;
+ private ToolbarButton traybarButton;
public ChatEngineXmpp(final EmiteUIDialog emiteUIDialog, final ChatOptions chatOptions,
- final I18nTranslationService i18n) {
+ final I18nTranslationService i18n, final WorkspaceSkeleton ws) {
this.emiteDialog = emiteUIDialog;
this.chatOptions = chatOptions;
this.i18n = i18n;
+ this.ws = ws;
}
public ChatOptions getChatOptions() {
@@ -54,24 +62,36 @@
emiteDialog.joinRoom(roomURI);
}
- public void login(final String chatName, final String chatPassword) {
- final String resource = "emiteui-" + new Date().getTime() + "-kune"; // +
- // getGwtMetaProperty(GWT_PROPERTY_RELEASE);
- // FIXME, get this from user profile
- final UserChatOptions userChatOptions = new UserChatOptions(chatName + "@" + chatOptions.domain, chatPassword,
- resource, "blue", SubscriptionMode.autoAcceptAll, true);
+ public void login(final String jid, final String passwd) {
+ final UserChatOptions userChatOptions = getUserChatOptions(jid, passwd);
// FIXME: Avatar provider
final AvatarProvider avatarProvider = new AvatarProvider() {
public String getAvatarURL(XmppURI userURI) {
return "images/person-def.gif";
}
};
-
final String initialWindowTitle = Window.getTitle();
chatOptions.userOptions = userChatOptions;
emiteDialog.start(userChatOptions, chatOptions.httpBase, chatOptions.roomHost, avatarProvider, i18n.t("Chat"));
emiteDialog.show(OwnStatus.online);
- // emiteDialog.hide();
+ if (traybarButton == null) {
+ traybarButton = new ToolbarButton();
+ traybarButton.setTooltip(i18n.t("Show/hide the chat window"));
+ traybarButton.setIcon("images/emite-chat.gif");
+ traybarButton.addListener(new ButtonListenerAdapter() {
+ @Override
+ public void onClick(final Button button, final EventObject e) {
+ if (emiteDialog.isVisible()) {
+ emiteDialog.hide();
+ } else {
+ emiteDialog.show();
+ }
+ }
+
+ });
+ ws.getSiteTraybar().addButton(traybarButton);
+ }
+ emiteDialog.hide();
emiteDialog.onChatAttended(new Slot<String>() {
public void onEvent(final String parameter) {
Window.setTitle(initialWindowTitle);
@@ -88,6 +108,17 @@
if (!emiteDialog.isDialogNotStarted()) {
emiteDialog.closeAllChats(false);
emiteDialog.setOwnPresence(OwnStatus.offline);
+ final UserChatOptions userChatOptions = getUserChatOptions("reset(a)example.com", "");
+ emiteDialog.refreshUserInfo(userChatOptions);
+ chatOptions.userOptions = userChatOptions;
}
}
+
+ private UserChatOptions getUserChatOptions(final String jid, final String passwd) {
+ final String resource = "emiteui-" + new Date().getTime() + "-kune"; // +
+ // getGwtMetaProperty(GWT_PROPERTY_RELEASE);
+ // FIXME, get this from user profile
+ return new UserChatOptions(jid + "@" + chatOptions.domain, passwd, resource, "blue",
+ SubscriptionMode.autoAcceptAll, true);
+ }
}
Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLoginAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLoginAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLoginAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,40 +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.chat.client.actions;
-
-import org.ourproject.kune.chat.client.ChatProvider;
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-
-public class ChatLoginAction implements Action<UserInfoDTO> {
- private final ChatProvider provider;
-
- public ChatLoginAction(final ChatProvider provider) {
- this.provider = provider;
- }
-
- public void execute(final UserInfoDTO value) {
- login(value);
- }
-
- private void login(final UserInfoDTO user) {
- provider.getChat().login(user.getChatName(), user.getChatPassword());
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLogoutAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLogoutAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/actions/ChatLogoutAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,37 +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.chat.client.actions;
-
-import org.ourproject.kune.chat.client.ChatProvider;
-import org.ourproject.kune.platf.client.dispatch.Action;
-
-@SuppressWarnings("unchecked")
-public class ChatLogoutAction implements Action {
- private final ChatProvider provider;
-
- public ChatLogoutAction(final ChatProvider provider) {
- this.provider = provider;
- }
-
- public void execute(final Object value) {
- provider.getChat().logout();
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/chat/client/actions/InitChatEngineAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/actions/InitChatEngineAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/actions/InitChatEngineAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,42 +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.chat.client.actions;
-
-import org.ourproject.kune.chat.client.ChatClientTool;
-import org.ourproject.kune.chat.client.ChatOptions;
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.InitDataDTO;
-
-public class InitChatEngineAction implements Action<InitDataDTO> {
-
- private final ChatClientTool chatTool;
-
- public InitChatEngineAction(final ChatClientTool chatTool) {
- this.chatTool = chatTool;
- }
-
- public void execute(final InitDataDTO value) {
- InitDataDTO initData = value;
- ChatOptions chatOptions = new ChatOptions(initData.getChatHttpBase(), initData.getChatDomain(), initData
- .getChatRoomHost());
- chatTool.initEngine(chatOptions);
- }
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -28,7 +28,7 @@
builder.registerProvider(DocumentFactory.class, new Provider<DocumentFactory>() {
public DocumentFactory get() {
return new DocumentFactory(builder.getInstance(I18nUITranslationService.class), builder
- .getInstance(Session.class), builder.getInstance(TagsSummary.class), builder
+ .getInstance(Session.class), builder.getProvider(TagsSummary.class), builder
.getInstance(WorkspaceSkeleton.class));
}
}, SingletonScope.class);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/actions/SaveDocumentAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/actions/SaveDocumentAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/actions/SaveDocumentAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -38,43 +38,44 @@
private final I18nTranslationService i18n;
public SaveDocumentAction(final Session session, final I18nTranslationService i18n) {
- this.session = session;
- this.i18n = i18n;
+ this.session = session;
+ this.i18n = i18n;
}
public void execute(final SaveDocumentActionParams params) {
- save(params);
+ save(params);
}
private void save(final SaveDocumentActionParams params) {
- Site.showProgressSaving();
- ContentServiceAsync server = ContentService.App.getInstance();
- server.save(session.getUserHash(), session.getCurrentState().getGroup().getShortName(), params.getStateDTO()
- .getDocumentId(), params.getStateDTO().getContent(), new AsyncCallback<Integer>() {
- public void onFailure(final Throwable caught) {
- Site.hideProgress();
- try {
- throw caught;
- } catch (final SessionExpiredException e) {
- Site.doLogout();
- MessageBox.alert(i18n.t("Alert"), i18n.t("Your session has expired. Please login again."),
- new AlertCallback() {
- public void execute() {
- Site.doLogin(null);
- }
- });
- } catch (final Throwable e) {
- Site.error(i18n.t("Error saving document. Retrying..."));
- params.getDocumentContent().onSaveFailed();
- }
- }
+ Site.showProgressSaving();
+ final ContentServiceAsync server = ContentService.App.getInstance();
+ server.save(session.getUserHash(), session.getCurrentState().getGroup().getShortName(), params.getStateDTO()
+ .getDocumentId(), params.getStateDTO().getContent(), new AsyncCallback<Integer>() {
+ public void onFailure(final Throwable caught) {
+ // User error codes and KuneErrorHandler
+ Site.hideProgress();
+ try {
+ throw caught;
+ } catch (final SessionExpiredException e) {
+ // FIXME Logout ???
+ MessageBox.alert(i18n.t("Alert"), i18n.t("Your session has expired. Please login again."),
+ new AlertCallback() {
+ public void execute() {
+ // FIXME Login ???
+ }
+ });
+ } catch (final Throwable e) {
+ Site.error(i18n.t("Error saving document. Retrying..."));
+ params.getDocumentContent().onSaveFailed();
+ }
+ }
- public void onSuccess(final Integer result) {
- Site.hideProgress();
- params.getDocumentContent().onSaved();
- }
+ public void onSuccess(final Integer result) {
+ Site.hideProgress();
+ params.getDocumentContent().onSaved();
+ }
- });
+ });
}
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPresenter.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ctx/admin/AdminContextPresenter.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -39,15 +39,17 @@
import org.ourproject.kune.workspace.client.sitebar.Site;
import org.ourproject.kune.workspace.client.workspace.TagsSummary;
+import com.calclab.suco.client.container.Provider;
+
public class AdminContextPresenter extends AbstractPresenter implements AdminContext {
private AdminContextView view;
private final Session session;
- private final TagsSummary tags;
+ private final Provider<TagsSummary> tagsSummaryProvider;
- public AdminContextPresenter(final Session session, final TagsSummary tags) {
+ public AdminContextPresenter(final Session session, final Provider<TagsSummary> tagsSummaryProvider) {
this.session = session;
- this.tags = tags;
+ this.tagsSummaryProvider = tagsSummaryProvider;
}
public void doChangeLanguage(final String langCode) {
@@ -110,7 +112,7 @@
server.setTags(session.getUserHash(), currentState.getGroup().getShortName(), currentState.getDocumentId(),
tagsString, new AsyncCallbackSimple<List<TagResultDTO>>() {
public void onSuccess(final List<TagResultDTO> result) {
- tags.setGroupTags(result);
+ tagsSummaryProvider.get().setGroupTags(result);
Site.hideProgress();
}
});
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -55,23 +55,25 @@
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.workspace.TagsSummary;
+import com.calclab.suco.client.container.Provider;
+
public class DocumentFactory {
private final I18nTranslationService i18n;
private final Session session;
- private final TagsSummary tags;
+ private final Provider<TagsSummary> tagsSummaryProvider;
private final WorkspaceSkeleton ws;
- public DocumentFactory(final I18nTranslationService i18n, final Session session, final TagsSummary tags,
- final WorkspaceSkeleton ws) {
+ public DocumentFactory(final I18nTranslationService i18n, final Session session,
+ final Provider<TagsSummary> tagsSummaryProvider, final WorkspaceSkeleton ws) {
this.i18n = i18n;
this.session = session;
- this.tags = tags;
+ this.tagsSummaryProvider = tagsSummaryProvider;
this.ws = ws;
}
public AdminContext createAdminContext() {
- final AdminContextPresenter presenter = new AdminContextPresenter(session, tags);
+ final AdminContextPresenter presenter = new AdminContextPresenter(session, tagsSummaryProvider);
final AdminContextView view = new AdminContextPanel(presenter, i18n);
presenter.init(view);
return presenter;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/Application.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/Application.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/Application.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -27,6 +27,8 @@
import org.ourproject.kune.platf.client.tool.ClientTool;
import org.ourproject.kune.workspace.client.workspace.Workspace;
+import com.calclab.suco.client.signal.Slot;
+
public interface Application {
ClientTool getTool(String toolName);
@@ -35,11 +37,10 @@
void init(DefaultDispatcher dispatcher, StateManager stateManager, HashMap<String, ClientTool> tools);
- /**
- * Communicates to every tool the current group
- *
- * @param group
- */
+ void onApplicationStart(Slot<Object> slot);
+
+ void onApplicationStop(Slot<Object> slot);
+
void setGroupState(String groupShortName);
void start();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -25,40 +25,47 @@
import java.util.Map;
import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.platf.client.dispatch.Dispatcher;
+import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
+import org.ourproject.kune.platf.client.rpc.SiteService;
+import org.ourproject.kune.platf.client.rpc.SiteServiceAsync;
import org.ourproject.kune.platf.client.services.ColorTheme;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.KuneErrorHandler;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.tool.ClientTool;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
+import org.ourproject.kune.platf.client.ui.WindowUtils;
+import org.ourproject.kune.platf.client.utils.PrefetchUtilities;
import org.ourproject.kune.workspace.client.WorkspaceFactory;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.workspace.Workspace;
+import com.allen_sauer.gwt.log.client.Log;
+import com.calclab.suco.client.signal.Signal;
+import com.calclab.suco.client.signal.Slot;
+import com.google.gwt.user.client.Timer;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
public class ApplicationDefault implements Application {
private final Workspace workspace;
private Map<String, ClientTool> tools;
- private Dispatcher dispatcher;
+ private final Session session;
+ private final Signal<Object> onApplicationStart;
+ private final Signal<Object> onApplicationStop;
+ private final WorkspaceSkeleton ws;
private StateManager stateManager;
public ApplicationDefault(final Session session, final ExtensibleWidgetsManager extensionPointManager,
- final I18nTranslationService i18n, final ColorTheme colorTheme, final KuneErrorHandler errorHandler) {
+ final I18nTranslationService i18n, final ColorTheme colorTheme, final KuneErrorHandler errorHandler,
+ final WorkspaceSkeleton ws) {
+ this.session = session;
+ this.ws = ws;
workspace = WorkspaceFactory.createWorkspace(session, extensionPointManager, i18n, colorTheme, errorHandler);
tools = new HashMap<String, ClientTool>();
- // DesktopView desktop = WorkspaceFactory.createDesktop(workspace, new
- // SiteBarListener() {
- // public void onChangeState(StateToken token) {
- // stateManager.setState(token);
- // }
- //
- // public void onUserLoggedOut() {
- // dispatcher.fire(WorkspaceEvents.USER_LOGGED_OUT, null);
- // }
- // }, session);
- // desktop.attach();
-
+ this.onApplicationStart = new Signal<Object>("onApplicationStart");
+ this.onApplicationStop = new Signal<Object>("onApplicationStop");
}
public ClientTool getTool(final String toolName) {
@@ -71,12 +78,19 @@
public void init(final DefaultDispatcher dispatcher, final StateManager stateManager,
final HashMap<String, ClientTool> tools) {
- this.dispatcher = dispatcher;
this.stateManager = stateManager;
this.tools = tools;
workspace.attachTools(tools.values().iterator());
}
+ public void onApplicationStart(final Slot<Object> slot) {
+ onApplicationStart.add(slot);
+ }
+
+ public void onApplicationStop(final Slot<Object> slot) {
+ onApplicationStop.add(slot);
+ }
+
public void setGroupState(final String groupShortName) {
final Iterator<ClientTool> iterator = tools.values().iterator();
while (iterator.hasNext()) {
@@ -86,10 +100,46 @@
}
public void start() {
- dispatcher.fireDeferred(WorkspaceEvents.START_APP, null);
+ onApplicationStart.fire(null);
+ PrefetchUtilities.preFetchImpImages();
+ getInitData();
+ final Timer prefetchTimer = new Timer() {
+ public void run() {
+ PrefetchUtilities.doTasksDeferred(workspace);
+ }
+ };
+ prefetchTimer.schedule(20000);
}
public void stop() {
- dispatcher.fire(WorkspaceEvents.STOP_APP, null);
+ onApplicationStop.fire(null);
}
+
+ private void getInitData() {
+ final SiteServiceAsync server = SiteService.App.getInstance();
+ server.getInitData(session.getUserHash(), new AsyncCallback<InitDataDTO>() {
+ public void onFailure(final Throwable error) {
+ Site.error("Error fetching initial data");
+ Log.debug(error.getMessage());
+ ws.unMask();
+ }
+
+ public void onSuccess(final InitDataDTO initData) {
+ checkChatDomain(initData.getChatDomain());
+ session.setInitData(initData);
+ session.setCurrentUserInfo(initData.getUserInfo());
+ stateManager.reload();
+ ws.unMask();
+ }
+
+ private void checkChatDomain(final String chatDomain) {
+ final String httpDomain = WindowUtils.getLocation().getHostName();
+ if (!chatDomain.equals(httpDomain)) {
+ Log.error("Your http domain (" + httpDomain + ") is different from the chat domain (" + chatDomain
+ + "). This will produce problems with the chat functionality. "
+ + "Check kune.properties on the server.");
+ }
+ }
+ });
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -34,24 +34,32 @@
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.calclab.suco.client.container.Provider;
+import com.calclab.suco.client.signal.Signal;
+import com.calclab.suco.client.signal.Slot;
import com.google.gwt.core.client.GWT;
public class KuneErrorHandler {
private final Session session;
private final I18nTranslationService i18n;
private final Provider<WorkspaceSkeleton> wsProvider;
+ private final Signal<Object> onSessionExpired;
public KuneErrorHandler(final Session session, final I18nTranslationService i18n,
final Provider<WorkspaceSkeleton> wsProvider) {
this.session = session;
this.i18n = i18n;
this.wsProvider = wsProvider;
+ this.onSessionExpired = new Signal<Object>("onSessionExpired");
}
public WorkspaceSkeleton getWorkspaceSkeleton() {
return wsProvider.get();
}
+ public void onSessionExpired(final Slot<Object> slot) {
+ onSessionExpired.add(slot);
+ }
+
public void process(final Throwable caught) {
Site.hideProgress();
try {
@@ -89,7 +97,7 @@
}
private void doSessionExpired() {
- Site.doLogout();
+ onSessionExpired.fire(null);
getWorkspaceSkeleton().showAlertMessage(i18n.t("Session expired"),
i18n.t("Your session has expired. Please login again."));
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -5,9 +5,9 @@
import org.ourproject.kune.platf.client.KunePlatform;
import org.ourproject.kune.platf.client.app.Application;
import org.ourproject.kune.platf.client.app.ApplicationDefault;
-import org.ourproject.kune.platf.client.app.HistoryWrapper;
import org.ourproject.kune.platf.client.app.HistoryWrapperImpl;
import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
import org.ourproject.kune.platf.client.rpc.ContentService;
@@ -18,16 +18,24 @@
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.platf.client.state.StateManagerDefault;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.newgroup.NewGroup;
+import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
+import org.ourproject.kune.workspace.client.newgroup.ui.NewGroupPanel;
import org.ourproject.kune.workspace.client.presence.ui.GroupSummaryPanel;
import org.ourproject.kune.workspace.client.search.SiteSearcher;
import org.ourproject.kune.workspace.client.search.SiteSearcherPanel;
import org.ourproject.kune.workspace.client.search.SiteSearcherPresenter;
import org.ourproject.kune.workspace.client.search.SiteSearcherView;
import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.sitebar.SiteToken;
+import org.ourproject.kune.workspace.client.sitebar.login.SignIn;
+import org.ourproject.kune.workspace.client.sitebar.login.SignInPanel;
+import org.ourproject.kune.workspace.client.sitebar.login.SignInPresenter;
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessage;
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessagePanel;
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessagePresenter;
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessageView;
+import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPanelNew;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPresenterNew;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryViewNew;
@@ -83,6 +91,7 @@
import com.calclab.suco.client.modules.Module;
import com.calclab.suco.client.modules.ModuleBuilder;
import com.calclab.suco.client.scopes.SingletonScope;
+import com.calclab.suco.client.signal.Slot;
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.History;
@@ -117,7 +126,7 @@
builder.registerProvider(Session.class, new Provider<Session>() {
public Session get() {
- return new SessionImpl(Cookies.getCookie("userHash"), initialLang);
+ return new SessionImpl(Cookies.getCookie(Site.USERHASH), initialLang);
}
}, SingletonScope.class);
@@ -168,19 +177,19 @@
}
}, SingletonScope.class);
+ final WorkspaceSkeleton ws = builder.getInstance(WorkspaceSkeleton.class);
+ final Images images = builder.getInstance(Images.class);
+
builder.registerProvider(Application.class, new Provider<Application>() {
public Application get() {
final Session session = builder.getInstance(Session.class);
final ExtensibleWidgetsManager extensionPointManager = builder
.getInstance(ExtensibleWidgetsManager.class);
return new ApplicationDefault(session, extensionPointManager, i18n, builder
- .getInstance(ColorTheme.class), builder.getInstance(KuneErrorHandler.class));
+ .getInstance(ColorTheme.class), builder.getInstance(KuneErrorHandler.class), ws);
}
}, SingletonScope.class);
- final WorkspaceSkeleton ws = builder.getInstance(WorkspaceSkeleton.class);
- final Images images = builder.getInstance(Images.class);
-
builder.registerProvider(SitePublicSpaceLink.class, new Provider<SitePublicSpaceLink>() {
public SitePublicSpaceLink get() {
final SitePublicSpaceLinkPresenter presenter = new SitePublicSpaceLinkPresenter();
@@ -220,8 +229,9 @@
builder.registerProvider(SiteSignInLink.class, new Provider<SiteSignInLink>() {
public SiteSignInLink get() {
- final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter();
- final SiteSignInLinkPanel panel = new SiteSignInLinkPanel(presenter, ws);
+ final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter(builder
+ .getInstance(Session.class));
+ final SiteSignInLinkPanel panel = new SiteSignInLinkPanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
}
@@ -229,8 +239,10 @@
builder.registerProvider(SiteSignOutLink.class, new Provider<SiteSignOutLink>() {
public SiteSignOutLink get() {
- final SiteSignOutLinkPresenter presenter = new SiteSignOutLinkPresenter();
- final SiteSignOutLinkPanel panel = new SiteSignOutLinkPanel(presenter, ws);
+ final SiteSignOutLinkPresenter presenter = new SiteSignOutLinkPresenter(builder
+ .getInstance(Session.class), UserService.App.getInstance(), builder
+ .getInstance(KuneErrorHandler.class));
+ final SiteSignOutLinkPanel panel = new SiteSignOutLinkPanel(presenter, i18n, ws);
presenter.init(panel);
return presenter;
}
@@ -281,9 +293,27 @@
}
}, SingletonScope.class);
+ builder.registerProvider(SignIn.class, new Provider<SignIn>() {
+ public SignIn get() {
+ final SignInPresenter presenter = new SignInPresenter(builder.getInstance(Session.class), builder
+ .getInstance(StateManager.class), i18n, UserService.App.getInstance());
+ final SignInPanel view = new SignInPanel(presenter, i18n, ws);
+ presenter.init(view);
+ return presenter;
+ }
+ }, SingletonScope.class);
+
+ builder.registerProvider(NewGroup.class, new Provider<NewGroup>() {
+ public NewGroup get() {
+ final NewGroupPresenter presenter = new NewGroupPresenter(null, i18n);
+ final NewGroupPanel view = new NewGroupPanel(presenter, i18n);
+ presenter.init(view);
+ return presenter;
+ }
+ }, SingletonScope.class);
+
builder.getInstance(SitePublicSpaceLink.class);
builder.getInstance(SiteSignInLink.class);
-
builder.getInstance(SiteSignOutLink.class);
builder.getInstance(SiteNewGroupLink.class);
builder.getInstance(SiteSearch.class);
@@ -346,6 +376,16 @@
}
}, SingletonScope.class);
+ builder.registerProvider(StateManager.class, new Provider<StateManager>() {
+ public StateManager get() {
+ final StateManagerDefault stateManager = new StateManagerDefault(new ContentProviderImpl(
+ ContentService.App.getInstance()), builder.getInstance(Session.class),
+ new HistoryWrapperImpl(), builder.getInstance(WorkspaceManager.class));
+ History.addHistoryListener(stateManager);
+ return stateManager;
+ }
+ }, SingletonScope.class);
+
builder.registerProvider(GroupMembersSummary.class, new Provider<GroupMembersSummary>() {
public GroupMembersSummary get() {
final GroupMembersSummaryPresenterNew presenter = new GroupMembersSummaryPresenterNew(i18n, builder
@@ -387,23 +427,16 @@
}
}, SingletonScope.class);
+ // Register of tokens like "signin", "newgroup", "translate" etcetera
+ builder.getInstance(StateManager.class).addSiteToken(SiteToken.signin.toString(), new Slot<StateToken>() {
+ public void onEvent(final StateToken previousStateToken) {
+ builder.getInstance(SignIn.class).doSignIn(previousStateToken);
+ }
+ });
+
// builder.registerProvider(type, new Provider<>() {},
- // SingletonScope.class);
+ // SingletonScope.class)
- builder.registerProvider(StateManager.class, new Provider<StateManager>() {
- public StateManager get() {
- final Session session = builder.getInstance(Session.class);
- final ContentProviderImpl provider = new ContentProviderImpl(ContentService.App.getInstance());
- final HistoryWrapper historyWrapper = new HistoryWrapperImpl();
- final Application application = builder.getInstance(Application.class);
- final WorkspaceManager wm = builder.getInstance(WorkspaceManager.class);
- final StateManagerDefault stateManager = new StateManagerDefault(provider, application, session,
- historyWrapper, wm);
- History.addHistoryListener(stateManager);
- return stateManager;
- }
- }, SingletonScope.class);
-
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/Session.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,7 +1,7 @@
/*
*
+ * This file is part of kune.
* 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
@@ -27,6 +27,7 @@
import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import com.calclab.suco.client.signal.Slot;
@@ -67,6 +68,12 @@
void onInitDataReceived(Slot<InitDataDTO> slot);
+ void onUserSignIn(Slot<UserInfoDTO> slot);
+
+ void onUserSignOut(Slot<Object> slot);
+
+ void setCurrentUserInfo(UserInfoDTO currentUserInfo);
+
void setUserHash(String userHash);
}
\ No newline at end of file
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/SessionImpl.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -29,32 +29,31 @@
import org.ourproject.kune.platf.client.dto.InitDataDTO;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import com.calclab.suco.client.signal.Signal;
import com.calclab.suco.client.signal.Slot;
-/**
- * RESPONSABILITIES: - Store the user's application state - Generates URLable's
- * historyTokens
- *
- * @author danigb
- *
- */
public class SessionImpl implements Session {
private String userHash;
+ private InitDataDTO initData;
+ private UserInfoDTO currentUserInfo;
private Object[][] languagesArray;
private Object[][] countriesArray;
private Object[][] timezonesArray;
private StateDTO currentState;
private I18nLanguageDTO currentLanguage;
- private InitDataDTO initData;
private final Signal<InitDataDTO> onInitDataReceived;
+ private final Signal<UserInfoDTO> onUserSignIn;
+ private final Signal<Object> onUserSignOut;
public SessionImpl(final String userHash, final I18nLanguageDTO initialLanguage) {
this.userHash = userHash;
currentLanguage = initialLanguage;
languagesArray = null;
this.onInitDataReceived = new Signal<InitDataDTO>("initDataReceived");
+ this.onUserSignIn = new Signal<UserInfoDTO>("onUserSignIn");
+ this.onUserSignOut = new Signal<Object>("onUserSignOut");
}
public List<I18nCountryDTO> getCountries() {
@@ -76,6 +75,10 @@
return currentState;
}
+ public UserInfoDTO getCurrentUserInfo() {
+ return currentUserInfo;
+ }
+
public List<I18nLanguageSimpleDTO> getLanguages() {
return initData.getLanguages();
}
@@ -110,6 +113,14 @@
onInitDataReceived.add(slot);
}
+ public void onUserSignIn(final Slot<UserInfoDTO> slot) {
+ onUserSignIn.add(slot);
+ }
+
+ public void onUserSignOut(final Slot<Object> slot) {
+ onUserSignOut.add(slot);
+ }
+
public void setCurrent(final StateDTO currentState) {
this.currentState = currentState;
}
@@ -122,6 +133,15 @@
this.currentState = currentState;
}
+ public void setCurrentUserInfo(final UserInfoDTO currentUserInfo) {
+ this.currentUserInfo = currentUserInfo;
+ if (currentUserInfo != null) {
+ onUserSignIn.fire(currentUserInfo);
+ } else {
+ onUserSignOut.fire(null);
+ }
+ }
+
public void setInitData(final InitDataDTO initData) {
this.initData = initData;
onInitDataReceived.fire(initData);
@@ -132,9 +152,9 @@
}
private Object[][] mapCountries() {
- final Object[][] objs = new Object[getCountries().size()][1];
+ final Object[][] objs = new Object[initData.getCountries().size()][1];
int i = 0;
- for (final Iterator<I18nCountryDTO> iterator = getCountries().iterator(); iterator.hasNext();) {
+ for (final Iterator<I18nCountryDTO> iterator = initData.getCountries().iterator(); iterator.hasNext();) {
final I18nCountryDTO country = iterator.next();
final Object[] obj = new Object[] { country.getCode(), country.getEnglishName() };
objs[i++] = obj;
@@ -143,9 +163,9 @@
}
private Object[][] mapLangs() {
- final Object[][] objs = new Object[getLanguages().size()][1];
+ final Object[][] objs = new Object[initData.getLanguages().size()][1];
int i = 0;
- for (final Iterator<I18nLanguageSimpleDTO> iterator = getLanguages().iterator(); iterator.hasNext();) {
+ for (final Iterator<I18nLanguageSimpleDTO> iterator = initData.getLanguages().iterator(); iterator.hasNext();) {
final I18nLanguageSimpleDTO language = iterator.next();
final Object[] obj = new Object[] { language.getCode(), language.getEnglishName() };
objs[i++] = obj;
@@ -154,9 +174,9 @@
}
private void mapTimezones() {
- timezonesArray = new Object[getTimezones().length][1];
+ timezonesArray = new Object[initData.getTimezones().length][1];
for (int i = 0; i < getTimezones().length; i++) {
- final Object[] obj = new Object[] { getTimezones()[i] };
+ final Object[] obj = new Object[] { initData.getTimezones()[i] };
timezonesArray[i] = obj;
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -24,16 +24,21 @@
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
+import com.calclab.suco.client.signal.Slot;
import com.google.gwt.user.client.HistoryListener;
public interface StateManager extends HistoryListener {
+ void addSiteToken(String token, Slot<StateToken> whenToken);
+
void gotoToken(String token);
void reload();
void reloadContextAndTitles();
+ void removeSiteToken(String token);
+
void setRetrievedState(StateDTO content);
void setSocialNetwork(SocialNetworkResultDTO socialNet);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -20,65 +20,73 @@
package org.ourproject.kune.platf.client.state;
-import org.ourproject.kune.platf.client.app.Application;
+import java.util.HashMap;
+
import org.ourproject.kune.platf.client.app.HistoryWrapper;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.ParticipationDataDTO;
import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.tool.ClientTool;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
import org.ourproject.kune.workspace.client.sitebar.Site;
import org.ourproject.kune.workspace.client.ui.newtmp.WorkspaceManager;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
+import com.allen_sauer.gwt.log.client.Log;
+import com.calclab.suco.client.signal.Slot;
+
public class StateManagerDefault implements StateManager {
- private final Application app;
- private final ContentProvider provider;
- private final Workspace workspace;
+ private final ContentProvider contentProvider;
private StateDTO oldState;
private final Session session;
private final HistoryWrapper history;
- private final WorkspaceManager ws;
+ private final WorkspaceManager workspaceManager;
+ private final HashMap<String, Slot<StateToken>> siteTokens;
- public StateManagerDefault(final ContentProvider provider, final Application app, final Session session,
- final HistoryWrapper history, final WorkspaceManager ws) {
- this.provider = provider;
- this.app = app;
+ public StateManagerDefault(final ContentProvider contentProvider, final Session session,
+ final HistoryWrapper history, final WorkspaceManager workspaceManager) {
+ this.contentProvider = contentProvider;
this.session = session;
this.history = history;
- this.ws = ws;
- this.workspace = app.getWorkspace();
+ this.workspaceManager = workspaceManager;
this.oldState = null;
+ session.onUserSignIn(new Slot<UserInfoDTO>() {
+ public void onEvent(final UserInfoDTO parameter) {
+ restorePreviousState();
+ }
+ });
+ session.onUserSignOut(new Slot<Object>() {
+ public void onEvent(final Object parameter) {
+ reload();
+ }
+ });
+ siteTokens = new HashMap<String, Slot<StateToken>>();
}
+ public void addSiteToken(final String token, final Slot<StateToken> slot) {
+ siteTokens.put(token, slot);
+ }
+
public void gotoToken(final String token) {
setState(new StateToken(token));
}
public void onHistoryChanged(final String historyToken) {
- String oldStateEncoded = "";
- if (oldState != null) {
- oldStateEncoded = oldState.getStateToken().getEncoded();
- }
- if (historyToken.equals(Site.NEWGROUP_TOKEN)) {
- Site.doNewGroup(oldStateEncoded);
- } else if (historyToken.equals(Site.LOGIN_TOKEN)) {
- Site.doLogin(oldStateEncoded);
- } else if (historyToken.equals(Site.TRANSLATE_TOKEN)) {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.SHOW_TRANSLATOR, null);
- } else if (historyToken.equals(Site.FIXME_TOKEN)) {
+ final Slot<StateToken> tokenSlot = siteTokens.get(historyToken);
+ Log.debug("history token: " + historyToken);
+ if (tokenSlot == null) {
+ onHistoryChanged(new StateToken(historyToken));
+ } else {
+ StateToken stateToken;
if (oldState == null) {
- onHistoryChanged(new StateToken());
+ // Starting with some token like "signin": load defContent also
+ stateToken = new StateToken();
+ onHistoryChanged(stateToken);
} else {
- loadContent(oldState);
+ stateToken = oldState.getStateToken();
}
- } else {
- onHistoryChanged(new StateToken(historyToken));
+ tokenSlot.onEvent(stateToken);
}
}
@@ -92,21 +100,25 @@
}
public void reloadContextAndTitles() {
- provider.getContent(session.getUserHash(), new StateToken(history.getToken()),
+ contentProvider.getContent(session.getUserHash(), new StateToken(history.getToken()),
new AsyncCallbackSimple<StateDTO>() {
public void onSuccess(final StateDTO newStateDTO) {
loadContextOnly(newStateDTO);
oldState = newStateDTO;
- workspace.getContentTitleComponent().setState(oldState);
- workspace.getContentSubTitleComponent().setState(oldState);
+ // workspace.getContentTitleComponent().setState(oldState);
+ // workspace.getContentSubTitleComponent().setState(oldState);
Site.hideProgress();
}
});
}
+ public void removeSiteToken(final String token) {
+ siteTokens.remove(token);
+ }
+
public void setRetrievedState(final StateDTO content) {
final StateToken state = content.getStateToken();
- provider.cache(state, content);
+ contentProvider.cache(state, content);
setState(state);
}
@@ -120,7 +132,7 @@
final ParticipationDataDTO userParticipation = socialNet.getUserParticipation();
state.setGroupMembers(groupMembers);
state.setParticipation(userParticipation);
- ws.setSocialNetwork(state);
+ workspaceManager.setSocialNetwork(state);
}
}
@@ -130,46 +142,55 @@
private void loadContent(final StateDTO state) {
session.setCurrent(state);
- final GroupDTO group = state.getGroup();
- app.setGroupState(group.getShortName());
- final boolean isAdmin = state.getGroupRights().isAdministrable();
- if (isAdmin) {
- workspace.getThemeMenuComponent().setVisible(true);
- } else {
- workspace.getThemeMenuComponent().setVisible(false);
- }
- workspace.showGroup(group, isAdmin);
+ workspaceManager.setState(state);
+ // final GroupDTO group = state.getGroup();
+ // app.setGroupState(group.getShortName());
+ // final boolean isAdmin = state.getGroupRights().isAdministrable();
+ // if (isAdmin) {
+ // workspace.getThemeMenuComponent().setVisible(true);
+ // } else {
+ // workspace.getThemeMenuComponent().setVisible(false);
+ // }
+ // workspace.showGroup(group, isAdmin);
- final String toolName = state.getToolName();
- workspace.setTool(toolName);
+ // final String toolName = state.getToolName();
+ // workspace.setTool(toolName);
- final ClientTool clientTool = app.getTool(toolName);
- clientTool.setContent(state);
- clientTool.setContext(state);
- ws.setState(state);
- workspace.getContentTitleComponent().setState(state);
- workspace.getContentSubTitleComponent().setState(state);
- workspace.getContentBottomToolBarComponent().setRate(state, session.isLogged());
- workspace.setContent(clientTool.getContent());
- workspace.setContext(clientTool.getContext());
- workspace.getLicenseComponent().setLicense(state);
+ // final ClientTool clientTool = app.getTool(toolName);
+ // clientTool.setContent(state);
+ // clientTool.setContext(state);
+ // workspace.getContentTitleComponent().setState(state);
+ // workspace.getContentSubTitleComponent().setState(state);
+ // workspace.getContentBottomToolBarComponent().setRate(state,
+ // session.isLogged());
+ // workspace.setContent(clientTool.getContent());
+ // workspace.setContext(clientTool.getContext());
+ // workspace.getLicenseComponent().setLicense(state);
Site.hideProgress();
}
private void loadContextOnly(final StateDTO state) {
session.setCurrent(state);
- final String toolName = state.getToolName();
- final ClientTool clientTool = app.getTool(toolName);
- clientTool.setContext(state);
- workspace.setContext(clientTool.getContext());
+ // /final String toolName = state.getToolName();
+ // /final ClientTool clientTool = app.getTool(toolName);
+ // /clientTool.setContext(state);
+ // /workspace.setContext(clientTool.getContext());
}
private void onHistoryChanged(final StateToken newState) {
- provider.getContent(session.getUserHash(), newState, new AsyncCallbackSimple<StateDTO>() {
+ contentProvider.getContent(session.getUserHash(), newState, new AsyncCallbackSimple<StateDTO>() {
public void onSuccess(final StateDTO newStateDTO) {
loadContent(newStateDTO);
oldState = newStateDTO;
}
});
}
+
+ private void restorePreviousState() {
+ if (oldState == null) {
+ onHistoryChanged(new StateToken());
+ } else {
+ loadContent(oldState);
+ }
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceClientModule.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -35,17 +35,10 @@
import org.ourproject.kune.workspace.client.actions.DetachFromExtensibleWidgetAction;
import org.ourproject.kune.workspace.client.actions.DisableRateItAction;
import org.ourproject.kune.workspace.client.actions.EnableRateItAction;
-import org.ourproject.kune.workspace.client.actions.InitAction;
-import org.ourproject.kune.workspace.client.actions.LoggedInAction;
-import org.ourproject.kune.workspace.client.actions.LoggedOutAction;
import org.ourproject.kune.workspace.client.actions.OnlyCheckUserSessionAction;
import org.ourproject.kune.workspace.client.actions.RateContentAction;
import org.ourproject.kune.workspace.client.actions.RecalculateWorkspaceAction;
import org.ourproject.kune.workspace.client.actions.ReloadContextAction;
-import org.ourproject.kune.workspace.client.actions.StopAction;
-import org.ourproject.kune.workspace.client.actions.UserLoginAction;
-import org.ourproject.kune.workspace.client.actions.UserLogoutAction;
-import org.ourproject.kune.workspace.client.actions.UserRegisterAction;
import org.ourproject.kune.workspace.client.actions.i18n.DoTranslationAction;
import org.ourproject.kune.workspace.client.actions.i18n.GetLexiconAction;
import org.ourproject.kune.workspace.client.actions.i18n.GetTranslationAction;
@@ -81,10 +74,6 @@
}
public void configure(final Register register) {
- register.addAction(WorkspaceEvents.START_APP, new InitAction(session, dispacher, workspace));
- register.addAction(WorkspaceEvents.STOP_APP, new StopAction(workspace));
- register.addAction(WorkspaceEvents.USER_LOGGED_IN, new LoggedInAction(session, stateManager, i18n));
- register.addAction(WorkspaceEvents.USER_LOGGED_OUT, new LoggedOutAction(session, stateManager));
register.addAction(WorkspaceEvents.ONLY_CHECK_USER_SESSION, new OnlyCheckUserSessionAction(session));
register.addAction(PlatformEvents.ATTACH_TO_EXTENSIBLE_WIDGET, new AttachToExtensibleWidgetAction(workspace));
register.addAction(PlatformEvents.DETACH_FROM_EXTENSIBLE_WIDGET,
@@ -115,9 +104,6 @@
register.addAction(WorkspaceEvents.SHOW_TRANSLATOR, new ShowTranslatorAction(session, workspace, i18n));
register.addAction(WorkspaceEvents.DO_TRANSLATION, new DoTranslationAction(session, i18n));
register.addAction(WorkspaceEvents.GET_LEXICON, new GetLexiconAction(i18n));
- register.addAction(WorkspaceEvents.USER_LOGIN, new UserLoginAction());
- register.addAction(WorkspaceEvents.USER_LOGOUT, new UserLogoutAction(session));
- register.addAction(WorkspaceEvents.USER_REGISTER, new UserRegisterAction());
register.addAction(WorkspaceEvents.CREATE_NEW_GROUP, new CreateNewGroupAction(session));
register.addAction(WorkspaceEvents.RELOAD_CONTEXT, new ReloadContextAction(stateManager));
register.addAction(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, new RecalculateWorkspaceAction(workspace));
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceEvents.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -21,12 +21,7 @@
package org.ourproject.kune.workspace.client;
public interface WorkspaceEvents {
- public static final String START_APP = "platf.StartApplication";
- public static final String STOP_APP = "platf.StopApplication";
- public static final String USER_LOGGED_IN = "ws.UserLoggedIn";
- public static final String USER_LOGGED_OUT = "ws.UserLoggedOut";
public static final String ONLY_CHECK_USER_SESSION = "ws_OnlyCheckUserSession";
- public static final String INIT_DATA_RECEIVED = "ws.InitDataReceived";
public static final String REQ_JOIN_GROUP = "ws.RequestJoinGroup";
public static final String DEL_MEMBER = "ws.DeleteMember";
public static final String DENY_JOIN_GROUP = "ws.DenyJoinGroup";
@@ -48,9 +43,6 @@
public static final String SHOW_SEARCHER = "ws.ShowSearcher";
public static final String GET_TRANSLATION = "i18n.GetTranslation";
public static final String DO_TRANSLATION = "i18n.doTranslation";
- public static final String USER_LOGIN = "ws.UserLogin";
- public static final String USER_LOGOUT = "ws.UserLogout";
- public static final String USER_REGISTER = "ws.UserRegister";
public static final String CREATE_NEW_GROUP = "ws.CreateNewGroup";
public static final String RELOAD_CONTEXT = "ws.ReoloadContext";
public static final String WS_SPLITTER_STARTRESIZING = "ws.SplitterStartResizing";
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/InitAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/InitAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/InitAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,94 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dispatch.Dispatcher;
-import org.ourproject.kune.platf.client.dto.InitDataDTO;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-import org.ourproject.kune.platf.client.rpc.SiteService;
-import org.ourproject.kune.platf.client.rpc.SiteServiceAsync;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.ui.WindowUtils;
-import org.ourproject.kune.platf.client.utils.PrefetchUtilities;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-import com.allen_sauer.gwt.log.client.Log;
-import com.google.gwt.user.client.Timer;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class InitAction implements Action<Object> {
- private final Session session;
- private final Dispatcher dispatcher;
- private final Workspace workspace;
-
- public InitAction(final Session session, final Dispatcher dispatcher, final Workspace workspace) {
- this.session = session;
- this.dispatcher = dispatcher;
- this.workspace = workspace;
- }
-
- public void execute(final Object value) {
- PrefetchUtilities.preFetchImpImages();
- getInitData();
- dispatcher.fire(WorkspaceEvents.RECALCULATE_WORKSPACE_SIZE, null);
- final Timer prefetchTimer = new Timer() {
- public void run() {
- PrefetchUtilities.doTasksDeferred(workspace);
- }
- };
- prefetchTimer.schedule(20000);
- }
-
- private void getInitData() {
- final SiteServiceAsync server = SiteService.App.getInstance();
- server.getInitData(session.getUserHash(), new AsyncCallback<InitDataDTO>() {
- public void onFailure(final Throwable error) {
- Site.error("Error fetching initial data");
- Log.debug(error.getMessage());
- }
-
- public void onSuccess(final InitDataDTO initData) {
- checkChatDomain(initData.getChatDomain());
- session.setInitData(initData);
- final UserInfoDTO currentUser = initData.getUserInfo();
- // use signals:
- dispatcher.fire(WorkspaceEvents.INIT_DATA_RECEIVED, initData);
- if (currentUser == null) {
- dispatcher.fire(WorkspaceEvents.USER_LOGGED_OUT, null);
- } else {
- dispatcher.fire(WorkspaceEvents.USER_LOGGED_IN, currentUser);
- }
- }
-
- private void checkChatDomain(final String chatDomain) {
- final String httpDomain = WindowUtils.getLocation().getHostName();
- if (!chatDomain.equals(httpDomain)) {
- Log.error("Your http domain (" + httpDomain + ") is different from the chat domain (" + chatDomain
- + "). This will produce problems with the chat functionality. "
- + "Check kune.properties on the server.");
- }
- }
- });
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedInAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedInAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedInAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,65 +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.workspace.client.actions;
-
-import java.util.Date;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-
-import com.google.gwt.user.client.Cookies;
-
-public class LoggedInAction implements Action<UserInfoDTO> {
- private final Session session;
- private final StateManager stateManager;
- private final I18nUITranslationService i18n;
-
- public LoggedInAction(final Session session, final StateManager stateManager, final I18nUITranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
- }
-
- public void execute(final UserInfoDTO value) {
- onLoggedIn(value);
- }
-
- private void onLoggedIn(final UserInfoDTO userInfoDTO) {
- setCookie(userInfoDTO);
- session.setUserHash(userInfoDTO.getUserHash());
- // FIXME ite.sitebar.showLoggedUser(userInfoDTO);
- final I18nLanguageDTO language = userInfoDTO.getLanguage();
- stateManager.reload();
- i18n.changeCurrentLanguage(language.getCode());
- session.setCurrentLanguage(language);
- }
-
- private void setCookie(final UserInfoDTO userInfoDTO) {
- // http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ
- final String sessionId = userInfoDTO.getUserHash();
- final long duration = Session.SESSION_DURATION;
- final Date expires = new Date(System.currentTimeMillis() + duration);
- Cookies.setCookie("userHash", sessionId, expires, null, "/", false);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedOutAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedOutAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedOutAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,52 +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.workspace.client.actions;
-
-import java.util.Date;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.platf.client.state.StateManager;
-
-import com.google.gwt.user.client.Cookies;
-
-@SuppressWarnings("unchecked")
-public class LoggedOutAction implements Action {
-
- private final Session session;
- private final StateManager stateManager;
-
- public LoggedOutAction(final Session session, final StateManager stateManager) {
- this.session = session;
- this.stateManager = stateManager;
- }
-
- public void execute(final Object value) {
- // FIXME: Remove cookie doesn't works in all browsers, know issue:
- // http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/ded8…
- // http://code.google.com/p/google-web-toolkit/issues/detail?id=1735&q=removeC…
- Cookies.removeCookie("userHash");
- // Workaround:
- Cookies.setCookie("userHash", null, new Date(0), null, "/", false);
- session.setUserHash(null);
- // FIXME Site.sitebar.showLoggedUser(null);
- stateManager.reload();
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/StopAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/StopAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/StopAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,41 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.workspace.client.workspace.Workspace;
-
-@SuppressWarnings("unchecked")
-public class StopAction implements Action {
-
- private final Workspace workspace;
-
- public StopAction(final Workspace workspace) {
- this.workspace = workspace;
- }
-
- public void execute(final Object value) {
- onStop();
- }
-
- private void onStop() {
- workspace.setVisible(false);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLoginAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLoginAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLoginAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,41 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.UserDTO;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-import org.ourproject.kune.platf.client.rpc.ParamCallback;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class UserLoginAction implements Action<ParamCallback<UserDTO, UserInfoDTO>> {
-
- public void execute(final ParamCallback<UserDTO, UserInfoDTO> paramCall) {
- onLogin(paramCall.getParam(), paramCall.getCallback());
- }
-
- private void onLogin(final UserDTO user, final AsyncCallback<UserInfoDTO> callback) {
- UserServiceAsync siteBarService = UserService.App.getInstance();
- siteBarService.login(user.getShortName(), user.getPassword(), callback);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLogoutAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLogoutAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserLogoutAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,46 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class UserLogoutAction implements Action<AsyncCallback<Object>> {
-
- private final Session session;
-
- public UserLogoutAction(final Session session) {
- this.session = session;
- }
-
- @SuppressWarnings("unchecked")
- public void execute(final AsyncCallback<Object> value) {
- onLogout(value);
- }
-
- private void onLogout(final AsyncCallback<Object> callback) {
- UserServiceAsync userService = UserService.App.getInstance();
- userService.logout(session.getUserHash(), callback);
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserRegisterAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserRegisterAction.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/UserRegisterAction.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,42 +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.workspace.client.actions;
-
-import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.platf.client.dto.UserDTO;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-import org.ourproject.kune.platf.client.rpc.ParamCallback;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
-import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class UserRegisterAction implements Action<ParamCallback<UserDTO, UserInfoDTO>> {
-
- @SuppressWarnings("unchecked")
- public void execute(final ParamCallback<UserDTO, UserInfoDTO> paramCall) {
- onRegister(paramCall.getParam(), paramCall.getCallback());
- }
-
- private void onRegister(final UserDTO user, final AsyncCallback<UserInfoDTO> callback) {
- final UserServiceAsync userService = UserService.App.getInstance();
- userService.createUser(user, callback);
- }
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -42,9 +42,8 @@
super.setContent(vp);
super.setContentVisible(true);
super.setBorderStylePrimaryName("k-dropdownouter-summary");
- addStyleName("kune-Margin-Medium-tl");
+ addStyleName("kune-Margin-Medium-t");
ws.getEntitySummary().addInSummary(this);
- ws.unMask();
}
public void setComment(final String comment) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -28,26 +28,13 @@
import com.calclab.suco.client.container.Provider;
public class Site {
- public static final String LOGIN_TOKEN = "login";
- public static final String NEWGROUP_TOKEN = "newgroup";
- public static final String FIXME_TOKEN = "fixme";
- public static final String TRANSLATE_TOKEN = "translate";
+ public static final String USERHASH = "userHash";
public static final String IN_DEVELOPMENT = " (in development)";
private static I18nTranslationService i18n;
private static SiteProgress progress;
private static Provider<SiteMessage> siteMessageProvider;
@Deprecated
- public static void doLogin(final String returnToken) {
- // sitebar.doLogin(returnToken);
- }
-
- @Deprecated
- public static void doLogout() {
- // sitebar.doLogout();
- }
-
- @Deprecated
public static void doNewGroup(final String returnToken) {
// sitebar.doNewGroup(returnToken);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -33,13 +33,10 @@
import org.ourproject.kune.workspace.client.newgroup.NewGroupListener;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
import org.ourproject.kune.workspace.client.newgroup.ui.NewGroupPanel;
-import org.ourproject.kune.workspace.client.sitebar.login.Login;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginListener;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginPanel;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginPresenter;
+import org.ourproject.kune.workspace.client.sitebar.login.SignIn;
public class SiteBarFactory {
- private static Login login;
+ private static SignIn login;
private static NewGroup newGroup;
private static Session session;
private static I18nUITranslationService i18n;
@@ -60,16 +57,6 @@
return presenter;
}
- public static Login getLoginForm(final LoginListener listener) {
- if (login == null) {
- final LoginPresenter presenter = new LoginPresenter(session, listener, i18n);
- final LoginPanel view = new LoginPanel(presenter, i18n);
- presenter.init(view);
- login = presenter;
- }
- return login;
- }
-
public static NewGroup getNewGroupForm(final NewGroupListener listener) {
if (newGroup == null) {
final NewGroupPresenter presenter = new NewGroupPresenter(listener, i18n);
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteToken.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteToken.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteToken.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -0,0 +1,5 @@
+package org.ourproject.kune.workspace.client.sitebar;
+
+public enum SiteToken {
+ signin, newgroup, translate
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -31,8 +31,8 @@
import org.ourproject.kune.workspace.client.newgroup.ui.NewGroupPanel;
import org.ourproject.kune.workspace.client.sitebar.Site;
import org.ourproject.kune.workspace.client.sitebar.SiteBarFactory;
-import org.ourproject.kune.workspace.client.sitebar.login.Login;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginPanel;
+import org.ourproject.kune.workspace.client.sitebar.SiteToken;
+import org.ourproject.kune.workspace.client.sitebar.login.SignInPanel;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DOM;
@@ -75,7 +75,7 @@
private TextBox searchTextBox;
private final Label logoutLabel;
- private LoginPanel loginPanel;
+ private SignInPanel signInPanel;
private final Images img;
private final MenuBar optionsSubmenu;
private MenuItem linkHelpInTrans;
@@ -157,14 +157,14 @@
gotoPublic.addStyleName("kune-SiteBarPanel-LabelLink");
contentNoPublic.addStyleName("kune-Margin-Medium-r");
newGroupHyperlink.setText(i18n.t("Create New Group"));
- newGroupHyperlink.setTargetHistoryToken(Site.NEWGROUP_TOKEN);
+ newGroupHyperlink.setTargetHistoryToken(SiteToken.newgroup.toString());
loggedUserHyperlink.setVisible(false);
pipeSeparatorHtml.setHTML("|");
pipeSeparatorHtml.setStyleName("kune-SiteBarPanel-Separator");
pipeSeparatorHtml2.setHTML("|");
pipeSeparatorHtml2.setStyleName("kune-SiteBarPanel-Separator");
loginHyperlink.setText(i18n.t("Sign in to collaborate"));
- loginHyperlink.setTargetHistoryToken(Site.LOGIN_TOKEN);
+ loginHyperlink.setTargetHistoryToken(SiteToken.signin.toString());
logoutLabel.setText(i18n.t("Sign out"));
logoutLabel.addStyleName("kune-SiteBarPanel-LabelLink");
options.addItem(i18n.t("Options"), true, optionsSubmenu);
@@ -186,7 +186,7 @@
}
public void centerLoginDialog() {
- loginPanel.center();
+ signInPanel.center();
}
public void centerNewGroupDialog() {
@@ -206,7 +206,7 @@
}
public void hideLoginDialog() {
- loginPanel.hide();
+ signInPanel.hide();
}
public void hideNewGroupDialog() {
@@ -235,7 +235,7 @@
public void restoreLoginLink() {
loginHyperlink.setVisible(true);
loggedUserHyperlink.setVisible(false);
- loginHyperlink.setTargetHistoryToken(Site.LOGIN_TOKEN);
+ loginHyperlink.setTargetHistoryToken(SiteToken.signin.toString());
}
public void setContentGotoPublicUrl(final String publicUrl) {
@@ -308,9 +308,9 @@
}
public void showLoginDialog() {
- final Login login = SiteBarFactory.getLoginForm(presenter);
- loginPanel = (LoginPanel) login.getView();
- loginPanel.show();
+ // final SignIn login = SiteBarFactory.getLoginForm(presenter);
+ // signInPanel = (SignInPanel) login.getView();
+ // signInPanel.show();
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/bar/SiteBarPresenter.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -33,14 +33,13 @@
import org.ourproject.kune.workspace.client.WorkspaceEvents;
import org.ourproject.kune.workspace.client.newgroup.NewGroupListener;
import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginListener;
import org.ourproject.kune.workspace.client.sitebar.rpc.UserService;
import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
-public class SiteBarPresenter implements SiteBar, LoginListener, NewGroupListener {
+public class SiteBarPresenter implements SiteBar, NewGroupListener {
private SiteBarView view;
private final SiteBarListener listener;
@@ -94,8 +93,7 @@
listener.onUserLoggedOut();
}
};
-
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.USER_LOGOUT, callback);
+ UserService.App.getInstance().logout(session.getUserHash(), callback);
}
public void doNewGroup(final String previousTokenOrig) {
@@ -218,12 +216,6 @@
view.unMask();
}
- public void userLoggedIn(final UserInfoDTO userInfoDTO) {
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.USER_LOGGED_IN, userInfoDTO);
- view.hideLoginDialog();
- returnToPreviousState();
- }
-
protected void onSearchFocus() {
view.setTextSearchBig();
view.clearSearchText();
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/Login.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/Login.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/Login.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,33 +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.workspace.client.sitebar.login;
-
-import org.ourproject.kune.platf.client.View;
-
-public interface Login {
-
- public void onCancel();
-
- public void doLogin();
-
- public View getView();
-
- public void doRegister();
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginForm.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginForm.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,46 +0,0 @@
-package org.ourproject.kune.workspace.client.sitebar.login;
-
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.ui.dialogs.DefaultForm;
-
-import com.gwtext.client.widgets.form.TextField;
-
-public class LoginForm extends DefaultForm {
- private static final String NICKOREMAIL_FIELD = "nickOrEmail";
- private static final String PASSWORD_FIELD = "password";
-
- private final TextField loginNickOrEmailField;
- private final TextField loginPassField;
-
- public LoginForm(final I18nTranslationService i18n) {
- loginNickOrEmailField = new TextField();
- loginNickOrEmailField.setFieldLabel(i18n.t("Nickname or email"));
- loginNickOrEmailField.setName(NICKOREMAIL_FIELD);
- loginNickOrEmailField.setWidth(DEF_FIELD_WIDTH);
- loginNickOrEmailField.setAllowBlank(false);
- loginNickOrEmailField.setValidationEvent(false);
- super.add(loginNickOrEmailField);
-
- loginPassField = new TextField();
- loginPassField.setFieldLabel(i18n.t("Password"));
- loginPassField.setName(PASSWORD_FIELD);
- loginPassField.setWidth(DEF_FIELD_WIDTH);
- loginPassField.setPassword(true);
- loginPassField.setAllowBlank(false);
- loginPassField.setValidationEvent(false);
- super.add(loginPassField);
- }
-
- public void focusLogin() {
- loginNickOrEmailField.focus();
- }
-
- public String getLoginPassword() {
- return loginPassField.getValueAsString();
- }
-
- public String getNickOrEmail() {
- return loginNickOrEmailField.getValueAsString();
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginListener.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginListener.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginListener.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,30 +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.workspace.client.sitebar.login;
-
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-
-public interface LoginListener {
- void userLoggedIn(UserInfoDTO user);
-
- void onLoginCancelled();
-
- void onLoginClose();
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,344 +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.workspace.client.sitebar.login;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.ui.dialogs.BasicDialog;
-import org.ourproject.kune.platf.client.ui.dialogs.InfoDialog;
-import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-import org.ourproject.kune.workspace.client.sitebar.msg.SimpleMessagePanel;
-
-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.Label;
-import com.google.gwt.user.client.ui.Widget;
-import com.gwtext.client.core.EventObject;
-import com.gwtext.client.core.RegionPosition;
-import com.gwtext.client.widgets.Button;
-import com.gwtext.client.widgets.Component;
-import com.gwtext.client.widgets.Panel;
-import com.gwtext.client.widgets.TabPanel;
-import com.gwtext.client.widgets.event.ButtonListenerAdapter;
-import com.gwtext.client.widgets.event.PanelListenerAdapter;
-import com.gwtext.client.widgets.event.WindowListenerAdapter;
-import com.gwtext.client.widgets.form.Field;
-import com.gwtext.client.widgets.layout.BorderLayout;
-import com.gwtext.client.widgets.layout.BorderLayoutData;
-import com.gwtext.client.widgets.layout.FitLayout;
-
-public class LoginPanel implements LoginView, View {
- private class MessagePanel extends Panel {
- private final SimpleMessagePanel messagesPanel;
-
- public MessagePanel() {
- setPaddings(10);
- setBorder(false);
- setHeight(60);
- messagesPanel = new SimpleMessagePanel();
- messagesPanel.setMessage("", SiteErrorType.info, SiteErrorType.error);
- add(messagesPanel);
- }
-
- public void hide() {
- messagesPanel.hide();
- super.hide();
- }
-
- public void setMessage(final String message, final SiteErrorType lastMessageType, final SiteErrorType type) {
- messagesPanel.setMessage(message, lastMessageType, type);
- }
-
- public void show() {
- messagesPanel.show();
- super.show();
- }
- }
-
- private BasicDialog dialog;
- private final LoginPresenter presenter;
- private LoginForm signInForm;
- private RegisterForm registerForm;
- private MessagePanel messagesSignInPanel;
- private InfoDialog welcomeDialog;
- private TabPanel centerPanel;
- private MessagePanel messagesRegisterPanel;
- private final I18nTranslationService i18n;
-
- public LoginPanel(final LoginPresenter initialPresenter, final I18nTranslationService i18n) {
- this.i18n = i18n;
- Field.setMsgTarget("side");
- this.presenter = initialPresenter;
- createPanel();
- }
-
- public void center() {
- dialog.center();
- }
-
- public String getCountry() {
- return registerForm.getCountry();
- }
-
- public String getEmail() {
- return registerForm.getEmail();
- }
-
- public String getLanguage() {
- return registerForm.getLanguage();
- }
-
- public String getLoginPassword() {
- return signInForm.getLoginPassword();
- }
-
- public String getLongName() {
- return registerForm.getLongName();
- }
-
- public String getNickOrEmail() {
- return signInForm.getNickOrEmail();
- }
-
- public String getRegisterPassword() {
- return registerForm.getRegisterPassword();
- }
-
- public String getRegisterPasswordDup() {
- return registerForm.getRegisterPasswordDup();
- }
-
- public String getShortName() {
- return registerForm.getShortName();
- }
-
- public String getTimezone() {
- return registerForm.getTimezone();
- }
-
- public void hide() {
- dialog.hide();
- }
-
- public void hideMessages() {
- messagesSignInPanel.hide();
- if (messagesRegisterPanel != null) {
- messagesRegisterPanel.hide();
- }
- renderDialogIfNeeded();
- }
-
- public boolean isRegisterFormValid() {
- return registerForm.isValid();
- }
-
- public boolean isSignInFormValid() {
- return signInForm.isValid();
- }
-
- public void maskProcessing() {
- mask(i18n.t("Processing"));
- }
-
- public void reset() {
- DeferredCommand.addCommand(new Command() {
- public void execute() {
- signInForm.reset();
- if (registerForm != null) {
- registerForm.reset();
- }
- }
- });
- }
-
- public void setRegisterMessage(final String message, final SiteErrorType type) {
- messagesRegisterPanel.setMessage(message, type, type);
- messagesRegisterPanel.show();
- renderDialogIfNeeded();
- }
-
- public void setSignInMessage(final String message, final SiteErrorType type) {
- messagesSignInPanel.setMessage(message, type, type);
- messagesSignInPanel.show();
- renderDialogIfNeeded();
- }
-
- public void show() {
- centerPanel.activate(0);
- dialog.setVisible(true);
- dialog.show();
- Site.hideProgress();
- dialog.focus();
- signInForm.focusLogin();
- }
-
- public void showWelcolmeDialog() {
- if (welcomeDialog == null) {
- welcomeDialog = new InfoDialog(i18n.t("Welcome"), i18n.t("Thanks for registering"), i18n
- .t("Now you can participate more actively in this site with other people and groups. "
- + "You can also use your personal space to publish contents. "
- + "Your email is not verified, please follow the instructions you will receive by email."),
- i18n.t("Ok"), true, true, 400, 270);
- }
- welcomeDialog.show();
- }
-
- public void unMask() {
- dialog.enable();
- }
-
- private void confPanel(final Panel panel) {
- // panel.setLayout(new FormLayout());
- // panel.setAutoWidth(true);
- // anel.setAutoHeight(true);
- }
-
- private Panel createNoAccountRegister() {
- final Panel noAccRegisterPanel = new Panel();
- noAccRegisterPanel.setBorder(false);
- noAccRegisterPanel.setMargins(0, 90, 0, 0);
- final Label dontHaveAccountLabel = new Label(i18n.t("Don't have an account?"));
- final Label registerLabel = new Label(i18n.t("Create one."));
- registerLabel.addClickListener(new ClickListener() {
- public void onClick(final Widget arg0) {
- centerPanel.activate(1);
- }
- });
- registerLabel.addStyleName("kune-Margin-Medium-l");
- registerLabel.addStyleName("kune-link");
- noAccRegisterPanel.add(dontHaveAccountLabel);
- noAccRegisterPanel.add(registerLabel);
- return noAccRegisterPanel;
- }
-
- private void createPanel() {
- dialog = new BasicDialog(i18n.t("Sign in"), true, false, 370, 400);
- dialog.setLayout(new FitLayout());
- final Panel dialogPanel = new Panel();
- dialogPanel.setLayout(new BorderLayout());
- // dialog.setAutoHeight(false);
- // dialog.setAutoWidth(false);
- // dialog.setAutoHeight(true);
- // dialog.setAutoWidth(true);
- dialogPanel.setHeight("100%");
- dialogPanel.setWidth("auto");
- // dialog.setCollapsible(false);
-
- centerPanel = new TabPanel();
- centerPanel.setActiveTab(0);
- // centerPanel.setAutoWidth(true);
- // centerPanel.setAutoHeight(true);
- centerPanel.setClosable(false);
-
- final Panel signInPanel = new Panel(i18n.t("Sign in"));
- confPanel(signInPanel);
- signInForm = new LoginForm(i18n);
- signInPanel.add(signInForm.getForm());
- signInPanel.add(createNoAccountRegister());
- messagesSignInPanel = new MessagePanel();
- signInPanel.add(messagesSignInPanel);
-
- final Panel registerPanel = new Panel(i18n.t("Register"));
- confPanel(registerPanel);
-
- centerPanel.add(signInPanel);
- centerPanel.add(registerPanel);
- dialogPanel.add(centerPanel, new BorderLayoutData(RegionPosition.CENTER));
- dialog.add(dialogPanel);
-
- final Button signInBtn = new Button(i18n.t("Sign in"));
- signInBtn.addListener(new ButtonListenerAdapter() {
- public void onClick(final Button button, final EventObject e) {
- signInForm.validate();
- if (signInForm.isValid()) {
- presenter.doLogin();
- }
- }
- });
- dialog.addButton(signInBtn);
-
- final Button registerBtn = new Button(i18n.t("Register"));
- registerBtn.addListener(new ButtonListenerAdapter() {
- public void onClick(final Button button, final EventObject e) {
- registerForm.validate();
- if (registerForm.isValid()) {
- presenter.doRegister();
- }
- }
- });
- dialog.addButton(registerBtn);
- registerBtn.hide();
-
- final Button cancel = new Button();
- dialog.addButton(cancel);
- cancel.setText(i18n.tWithNT("Cancel", "used in button"));
- cancel.addListener(new ButtonListenerAdapter() {
- public void onClick(final Button button, final EventObject e) {
- presenter.onCancel();
- }
- });
-
- signInPanel.addListener(new PanelListenerAdapter() {
- public void onActivate(final Panel panel) {
- dialog.setTitle(i18n.t("Sign in"));
- registerBtn.hide();
- signInBtn.show();
- }
- });
-
- registerPanel.addListener(new PanelListenerAdapter() {
- public void onActivate(final Panel panel) {
- if (registerForm == null) {
- maskProcessing();
- registerForm = new RegisterForm(presenter, i18n);
- registerPanel.add(registerForm.getForm());
- messagesRegisterPanel = new MessagePanel();
- registerPanel.add(messagesRegisterPanel);
- messagesRegisterPanel.hide();
- renderDialogIfNeeded();
- unMask();
- }
- dialog.setTitle(i18n.t("Register"));
- signInBtn.hide();
- registerBtn.show();
- }
- });
-
- dialog.addListener(new WindowListenerAdapter() {
- public void onHide(final Component component) {
- presenter.onClose();
- }
- });
- hideMessages();
- renderDialogIfNeeded();
- }
-
- private void mask(final String message) {
- dialog.disable();
- }
-
- private void renderDialogIfNeeded() {
- if (dialog.isRendered()) {
- dialog.doLayout();
- }
- }
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPresenter.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPresenter.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,186 +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.workspace.client.sitebar.login;
-
-import org.ourproject.kune.platf.client.PlatformEvents;
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
-import org.ourproject.kune.platf.client.dto.I18nCountryDTO;
-import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
-import org.ourproject.kune.platf.client.dto.TimeZoneDTO;
-import org.ourproject.kune.platf.client.dto.UserDTO;
-import org.ourproject.kune.platf.client.dto.UserInfoDTO;
-import org.ourproject.kune.platf.client.errors.EmailAddressInUseException;
-import org.ourproject.kune.platf.client.errors.GroupNameInUseException;
-import org.ourproject.kune.platf.client.errors.UserAuthException;
-import org.ourproject.kune.platf.client.rpc.ParamCallback;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
-import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
-import org.ourproject.kune.workspace.client.sitebar.Site;
-
-import com.calclab.emite.client.im.roster.RosterManager.SubscriptionMode;
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class LoginPresenter implements Login {
-
- LoginView view;
-
- final LoginListener listener;
-
- private final Session session;
-
- private final I18nTranslationService i18n;
-
- public LoginPresenter(final Session session, final LoginListener listener, final I18nTranslationService i18n) {
- this.session = session;
- this.listener = listener;
- this.i18n = i18n;
- }
-
- public void doLogin() {
- if (view.isSignInFormValid()) {
- view.maskProcessing();
-
- final String nickOrEmail = view.getNickOrEmail();
- final String passwd = view.getLoginPassword();
-
- final UserDTO user = new UserDTO();
- user.setShortName(nickOrEmail);
- user.setPassword(passwd);
-
- final AsyncCallback<UserInfoDTO> callback = new AsyncCallback<UserInfoDTO>() {
- public void onFailure(final Throwable caught) {
- view.unMask();
- Site.hideProgress();
- try {
- throw caught;
- } catch (final UserAuthException e) {
- view.setSignInMessage(i18n.t("Incorrect nickname/email or password"), SiteErrorType.error);
- } catch (final Throwable e) {
- view.setSignInMessage("Error in login", SiteErrorType.error);
- GWT.log("Other kind of exception in LoginFormPresenter/doLogin", null);
- throw new RuntimeException();
- }
- }
-
- public void onSuccess(final UserInfoDTO response) {
- listener.userLoggedIn(response);
- view.unMask();
- }
- };
-
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.USER_LOGIN,
- new ParamCallback<UserDTO, UserInfoDTO>(user, callback));
- }
- }
-
- public void doRegister() {
- if (view.isRegisterFormValid()) {
- view.maskProcessing();
-
- final I18nLanguageDTO language = new I18nLanguageDTO();
- language.setCode(view.getLanguage());
-
- final I18nCountryDTO country = new I18nCountryDTO();
- country.setCode(view.getCountry());
-
- final TimeZoneDTO timezone = new TimeZoneDTO();
- timezone.setId(view.getTimezone());
-
- final UserDTO user = new UserDTO(view.getLongName(), view.getShortName(), view.getRegisterPassword(), view
- .getEmail(), language, country, timezone, null, true, SubscriptionMode.manual, "blue");
- final AsyncCallback<UserInfoDTO> callback = new AsyncCallback<UserInfoDTO>() {
- public void onFailure(final Throwable caught) {
- view.unMask();
- try {
- throw caught;
- } catch (final EmailAddressInUseException e) {
- view.setRegisterMessage(i18n.t("This email in in use by other person, try with another."),
- SiteErrorType.error);
- } catch (final GroupNameInUseException e) {
- view.setRegisterMessage(i18n.t("This name in already in use, try with a different name."),
- SiteErrorType.error);
- } catch (final Throwable e) {
- view.setRegisterMessage(i18n.t("Error during registration."), SiteErrorType.error);
- GWT.log("Other kind of exception in user registration", null);
- throw new RuntimeException();
- }
- }
-
- public void onSuccess(final UserInfoDTO userInfoDTO) {
- listener.userLoggedIn(userInfoDTO);
- view.unMask();
- view.showWelcolmeDialog();
- DefaultDispatcher.getInstance().fire(PlatformEvents.GOTO, userInfoDTO.getShortName());
- }
- };
- DefaultDispatcher.getInstance().fire(WorkspaceEvents.USER_REGISTER,
- new ParamCallback<UserDTO, UserInfoDTO>(user, callback));
- }
- }
-
- public Object[][] getCountries() {
- return session.getCountriesArray();
- }
-
- public I18nLanguageDTO getCurrentLanguage() {
- return session.getCurrentLanguage();
- }
-
- public Object[][] getLanguages() {
- return session.getLanguagesArray();
- }
-
- public Object[][] getTimezones() {
- return session.getTimezones();
- }
-
- public View getView() {
- return view;
- }
-
- public void init(final LoginView loginview) {
- this.view = loginview;
- }
-
- public void onCancel() {
- resetMessages();
- reset();
- listener.onLoginCancelled();
- }
-
- public void onClose() {
- reset();
- view.hideMessages();
- listener.onLoginClose();
- }
-
- private void reset() {
- view.reset();
- }
-
- private void resetMessages() {
- view.hideMessages();
- }
-
-}
Deleted: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginView.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginView.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,65 +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.workspace.client.sitebar.login;
-
-import org.ourproject.kune.platf.client.View;
-import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
-
-public interface LoginView extends View {
-
- public String getCountry();
-
- public String getEmail();
-
- public String getLanguage();
-
- public String getLoginPassword();
-
- public String getLongName();
-
- public String getNickOrEmail();
-
- public String getRegisterPassword();
-
- public String getRegisterPasswordDup();
-
- public String getShortName();
-
- public String getTimezone();
-
- public void hideMessages();
-
- public boolean isRegisterFormValid();
-
- public boolean isSignInFormValid();
-
- public void maskProcessing();
-
- public void reset();
-
- public void showWelcolmeDialog();
-
- public void unMask();
-
- void setRegisterMessage(String message, SiteErrorType type);
-
- void setSignInMessage(String message, SiteErrorType type);
-
-}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/RegisterForm.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,7 +1,7 @@
package org.ourproject.kune.workspace.client.sitebar.login;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.ui.dialogs.DefaultForm;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import com.gwtext.client.data.SimpleStore;
import com.gwtext.client.data.Store;
@@ -33,172 +33,172 @@
private final ComboBox countryCombo;
private final ComboBox timezoneCombo;
- public RegisterForm(final LoginPresenter presenter, final I18nTranslationService i18n) {
- shortNameRegField = new TextField();
- shortNameRegField.setFieldLabel(i18n.t("Nickname"));
- shortNameRegField.setName(NICK_FIELD);
- shortNameRegField.setWidth(DEF_FIELD_WIDTH);
- shortNameRegField.setAllowBlank(false);
- shortNameRegField.setMinLength(3);
- shortNameRegField.setMaxLength(15);
- shortNameRegField.setRegex("^[a-z0-9_\\-]+$");
- shortNameRegField.setMinLengthText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
- shortNameRegField.setMaxLengthText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
- shortNameRegField.setRegexText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
- shortNameRegField.setValidationEvent(false);
- add(shortNameRegField);
+ public RegisterForm(final SignInPresenter presenter, final I18nUITranslationService i18n) {
+ shortNameRegField = new TextField();
+ shortNameRegField.setFieldLabel(i18n.t("Nickname"));
+ shortNameRegField.setName(NICK_FIELD);
+ shortNameRegField.setWidth(DEF_FIELD_WIDTH);
+ shortNameRegField.setAllowBlank(false);
+ shortNameRegField.setMinLength(3);
+ shortNameRegField.setMaxLength(15);
+ shortNameRegField.setRegex("^[a-z0-9_\\-]+$");
+ shortNameRegField.setMinLengthText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
+ shortNameRegField.setMaxLengthText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
+ shortNameRegField.setRegexText(i18n.t(MUST_BE_BETWEEN_3_AND_15));
+ shortNameRegField.setValidationEvent(false);
+ add(shortNameRegField);
- longNameRegField = new TextField();
- longNameRegField.setFieldLabel(i18n.t("Full Name"));
- longNameRegField.setName(LONGNAME_FIELD);
- longNameRegField.setWidth(DEF_FIELD_WIDTH);
- longNameRegField.setAllowBlank(false);
- longNameRegField.setMinLength(3);
- longNameRegField.setMaxLength(50);
- longNameRegField.setValidationEvent(false);
- add(longNameRegField);
+ longNameRegField = new TextField();
+ longNameRegField.setFieldLabel(i18n.t("Full Name"));
+ longNameRegField.setName(LONGNAME_FIELD);
+ longNameRegField.setWidth(DEF_FIELD_WIDTH);
+ longNameRegField.setAllowBlank(false);
+ longNameRegField.setMinLength(3);
+ longNameRegField.setMaxLength(50);
+ longNameRegField.setValidationEvent(false);
+ add(longNameRegField);
- passwdRegField = new TextField();
- passwdRegField.setFieldLabel(i18n.t("Password"));
- passwdRegField.setName(PASSWORD_FIELD);
- passwdRegField.setPassword(true);
- passwdRegField.setAllowBlank(false);
- passwdRegField.setMaxLength(40);
- passwdRegField.setWidth(DEF_FIELD_WIDTH);
- passwdRegField.setValidationEvent(false);
- add(passwdRegField);
+ passwdRegField = new TextField();
+ passwdRegField.setFieldLabel(i18n.t("Password"));
+ passwdRegField.setName(PASSWORD_FIELD);
+ passwdRegField.setPassword(true);
+ passwdRegField.setAllowBlank(false);
+ passwdRegField.setMaxLength(40);
+ passwdRegField.setWidth(DEF_FIELD_WIDTH);
+ passwdRegField.setValidationEvent(false);
+ add(passwdRegField);
- passwdRegFieldDup = new TextField();
- passwdRegFieldDup.setFieldLabel(i18n.t("Retype password"));
- passwdRegFieldDup.setName(PASSWORD_FIELD_DUP);
- passwdRegFieldDup.setPassword(true);
- passwdRegFieldDup.setAllowBlank(false);
- passwdRegFieldDup.setMinLength(6);
- passwdRegFieldDup.setMaxLength(40);
- passwdRegFieldDup.setWidth(DEF_FIELD_WIDTH);
- passwdRegFieldDup.setInvalidText(i18n.t("Passwords do not match"));
- passwdRegFieldDup.setValidator(new Validator() {
- public boolean validate(final String value) throws ValidationException {
- return passwdRegField.getValueAsString().equals(passwdRegFieldDup.getValueAsString());
- }
- });
- passwdRegFieldDup.setValidationEvent(false);
- add(passwdRegFieldDup);
+ passwdRegFieldDup = new TextField();
+ passwdRegFieldDup.setFieldLabel(i18n.t("Retype password"));
+ passwdRegFieldDup.setName(PASSWORD_FIELD_DUP);
+ passwdRegFieldDup.setPassword(true);
+ passwdRegFieldDup.setAllowBlank(false);
+ passwdRegFieldDup.setMinLength(6);
+ passwdRegFieldDup.setMaxLength(40);
+ passwdRegFieldDup.setWidth(DEF_FIELD_WIDTH);
+ passwdRegFieldDup.setInvalidText(i18n.t("Passwords do not match"));
+ passwdRegFieldDup.setValidator(new Validator() {
+ public boolean validate(final String value) throws ValidationException {
+ return passwdRegField.getValueAsString().equals(passwdRegFieldDup.getValueAsString());
+ }
+ });
+ passwdRegFieldDup.setValidationEvent(false);
+ add(passwdRegFieldDup);
- emailRegField = new TextField();
- emailRegField.setFieldLabel(i18n.t("Email"));
- emailRegField.setName(EMAIL_FIELD);
- emailRegField.setVtype(VType.EMAIL);
- emailRegField.setWidth(DEF_FIELD_WIDTH);
- emailRegField.setAllowBlank(false);
- emailRegField.setValidationEvent(false);
+ emailRegField = new TextField();
+ emailRegField.setFieldLabel(i18n.t("Email"));
+ emailRegField.setName(EMAIL_FIELD);
+ emailRegField.setVtype(VType.EMAIL);
+ emailRegField.setWidth(DEF_FIELD_WIDTH);
+ emailRegField.setAllowBlank(false);
+ emailRegField.setValidationEvent(false);
- add(emailRegField);
+ add(emailRegField);
- final Store langStore = new SimpleStore(new String[] { "abbr", "language" }, presenter.getLanguages());
- langStore.load();
+ final Store langStore = new SimpleStore(new String[] { "abbr", "language" }, presenter.getLanguages());
+ langStore.load();
- languageCombo = new ComboBox();
- languageCombo.setName(LANG_FIELD);
- languageCombo.setMinChars(1);
- languageCombo.setFieldLabel(i18n.t("Language"));
- languageCombo.setStore(langStore);
- languageCombo.setDisplayField("language");
- languageCombo.setMode(ComboBox.LOCAL);
- languageCombo.setTriggerAction(ComboBox.ALL);
- languageCombo.setEmptyText(i18n.t("Enter language"));
- languageCombo.setLoadingText(i18n.t("Searching..."));
- languageCombo.setTypeAhead(true);
- languageCombo.setTypeAheadDelay(1000);
- languageCombo.setSelectOnFocus(false);
- languageCombo.setWidth(186);
- languageCombo.setAllowBlank(false);
- languageCombo.setValueField("abbr");
- languageCombo.setValue(presenter.getCurrentLanguage().getCode());
- languageCombo.setPageSize(7);
- languageCombo.setForceSelection(true);
- languageCombo.setValidationEvent(false);
- add(languageCombo);
+ languageCombo = new ComboBox();
+ languageCombo.setName(LANG_FIELD);
+ languageCombo.setMinChars(1);
+ languageCombo.setFieldLabel(i18n.t("Language"));
+ languageCombo.setStore(langStore);
+ languageCombo.setDisplayField("language");
+ languageCombo.setMode(ComboBox.LOCAL);
+ languageCombo.setTriggerAction(ComboBox.ALL);
+ languageCombo.setEmptyText(i18n.t("Enter language"));
+ languageCombo.setLoadingText(i18n.t("Searching..."));
+ languageCombo.setTypeAhead(true);
+ languageCombo.setTypeAheadDelay(1000);
+ languageCombo.setSelectOnFocus(false);
+ languageCombo.setWidth(186);
+ languageCombo.setAllowBlank(false);
+ languageCombo.setValueField("abbr");
+ languageCombo.setValue(presenter.getCurrentLanguage().getCode());
+ languageCombo.setPageSize(7);
+ languageCombo.setForceSelection(true);
+ languageCombo.setValidationEvent(false);
+ add(languageCombo);
- final Store countryStore = new SimpleStore(new String[] { "abbr", "country" }, presenter.getCountries());
- countryStore.load();
+ final Store countryStore = new SimpleStore(new String[] { "abbr", "country" }, presenter.getCountries());
+ countryStore.load();
- countryCombo = new ComboBox();
- countryCombo.setName(COUNTRY_FIELD);
- countryCombo.setMinChars(1);
- countryCombo.setFieldLabel(i18n.t("Country"));
- countryCombo.setStore(countryStore);
- countryCombo.setDisplayField("country");
- countryCombo.setMode(ComboBox.LOCAL);
- countryCombo.setTriggerAction(ComboBox.ALL);
- countryCombo.setEmptyText(i18n.t("Enter your country"));
- countryCombo.setLoadingText(i18n.t("Searching..."));
- countryCombo.setTypeAhead(true);
- countryCombo.setTypeAheadDelay(1000);
- countryCombo.setSelectOnFocus(false);
- countryCombo.setWidth(186);
- countryCombo.setAllowBlank(false);
- countryCombo.setValueField("abbr");
- countryCombo.setPageSize(7);
- countryCombo.setForceSelection(true);
- countryCombo.setValidationEvent(false);
- add(countryCombo);
+ countryCombo = new ComboBox();
+ countryCombo.setName(COUNTRY_FIELD);
+ countryCombo.setMinChars(1);
+ countryCombo.setFieldLabel(i18n.t("Country"));
+ countryCombo.setStore(countryStore);
+ countryCombo.setDisplayField("country");
+ countryCombo.setMode(ComboBox.LOCAL);
+ countryCombo.setTriggerAction(ComboBox.ALL);
+ countryCombo.setEmptyText(i18n.t("Enter your country"));
+ countryCombo.setLoadingText(i18n.t("Searching..."));
+ countryCombo.setTypeAhead(true);
+ countryCombo.setTypeAheadDelay(1000);
+ countryCombo.setSelectOnFocus(false);
+ countryCombo.setWidth(186);
+ countryCombo.setAllowBlank(false);
+ countryCombo.setValueField("abbr");
+ countryCombo.setPageSize(7);
+ countryCombo.setForceSelection(true);
+ countryCombo.setValidationEvent(false);
+ add(countryCombo);
- final Store timezoneStore = new SimpleStore(new String[] { "id" }, presenter.getTimezones());
- timezoneStore.load();
+ final Store timezoneStore = new SimpleStore(new String[] { "id" }, presenter.getTimezones());
+ timezoneStore.load();
- timezoneCombo = new ComboBox();
- timezoneCombo.setName(TIMEZONE_FIELD);
- timezoneCombo.setMinChars(1);
- timezoneCombo.setFieldLabel(i18n.t("Timezone"));
- timezoneCombo.setStore(timezoneStore);
- timezoneCombo.setDisplayField("id");
- timezoneCombo.setMode(ComboBox.LOCAL);
- timezoneCombo.setTriggerAction(ComboBox.ALL);
- timezoneCombo.setEmptyText(i18n.t("Enter your timezone"));
- timezoneCombo.setLoadingText(i18n.t("Searching..."));
- timezoneCombo.setTypeAhead(true);
- timezoneCombo.setTypeAheadDelay(1000);
- timezoneCombo.setSelectOnFocus(false);
- timezoneCombo.setWidth(186);
- timezoneCombo.setAllowBlank(false);
- timezoneCombo.setValueField("id");
- timezoneCombo.setPageSize(7);
- timezoneCombo.setForceSelection(true);
- timezoneCombo.setValidationEvent(false);
- add(timezoneCombo);
+ timezoneCombo = new ComboBox();
+ timezoneCombo.setName(TIMEZONE_FIELD);
+ timezoneCombo.setMinChars(1);
+ timezoneCombo.setFieldLabel(i18n.t("Timezone"));
+ timezoneCombo.setStore(timezoneStore);
+ timezoneCombo.setDisplayField("id");
+ timezoneCombo.setMode(ComboBox.LOCAL);
+ timezoneCombo.setTriggerAction(ComboBox.ALL);
+ timezoneCombo.setEmptyText(i18n.t("Enter your timezone"));
+ timezoneCombo.setLoadingText(i18n.t("Searching..."));
+ timezoneCombo.setTypeAhead(true);
+ timezoneCombo.setTypeAheadDelay(1000);
+ timezoneCombo.setSelectOnFocus(false);
+ timezoneCombo.setWidth(186);
+ timezoneCombo.setAllowBlank(false);
+ timezoneCombo.setValueField("id");
+ timezoneCombo.setPageSize(7);
+ timezoneCombo.setForceSelection(true);
+ timezoneCombo.setValidationEvent(false);
+ add(timezoneCombo);
}
public String getCountry() {
- return countryCombo.getValueAsString();
+ return countryCombo.getValueAsString();
}
public String getEmail() {
- return emailRegField.getValueAsString();
+ return emailRegField.getValueAsString();
}
public String getLanguage() {
- return languageCombo.getValueAsString();
+ return languageCombo.getValueAsString();
}
public String getLongName() {
- return longNameRegField.getValueAsString();
+ return longNameRegField.getValueAsString();
}
public String getRegisterPassword() {
- return passwdRegField.getValueAsString();
+ return passwdRegField.getValueAsString();
}
public String getRegisterPasswordDup() {
- return passwdRegFieldDup.getValueAsString();
+ return passwdRegFieldDup.getValueAsString();
}
public String getShortName() {
- return shortNameRegField.getValueAsString();
+ return shortNameRegField.getValueAsString();
}
public String getTimezone() {
- return timezoneCombo.getValueAsString();
+ return timezoneCombo.getValueAsString();
}
}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignIn.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/Login.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/Login.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignIn.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -0,0 +1,28 @@
+/*
+ *
+ * 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.workspace.client.sitebar.login;
+
+import org.ourproject.kune.platf.client.dto.StateToken;
+
+public interface SignIn {
+
+ void doSignIn(StateToken previousStateToken);
+
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInForm.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginForm.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginForm.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInForm.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -0,0 +1,46 @@
+package org.ourproject.kune.workspace.client.sitebar.login;
+
+import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.ui.dialogs.DefaultForm;
+
+import com.gwtext.client.widgets.form.TextField;
+
+public class SignInForm extends DefaultForm {
+ private static final String NICKOREMAIL_FIELD = "nickOrEmail";
+ private static final String PASSWORD_FIELD = "password";
+
+ private final TextField loginNickOrEmailField;
+ private final TextField loginPassField;
+
+ public SignInForm(final I18nTranslationService i18n) {
+ loginNickOrEmailField = new TextField();
+ loginNickOrEmailField.setFieldLabel(i18n.t("Nickname or email"));
+ loginNickOrEmailField.setName(NICKOREMAIL_FIELD);
+ loginNickOrEmailField.setWidth(DEF_FIELD_WIDTH);
+ loginNickOrEmailField.setAllowBlank(false);
+ loginNickOrEmailField.setValidationEvent(false);
+ super.add(loginNickOrEmailField);
+
+ loginPassField = new TextField();
+ loginPassField.setFieldLabel(i18n.t("Password"));
+ loginPassField.setName(PASSWORD_FIELD);
+ loginPassField.setWidth(DEF_FIELD_WIDTH);
+ loginPassField.setPassword(true);
+ loginPassField.setAllowBlank(false);
+ loginPassField.setValidationEvent(false);
+ super.add(loginPassField);
+ }
+
+ public void focusLogin() {
+ loginNickOrEmailField.focus();
+ }
+
+ public String getLoginPassword() {
+ return loginPassField.getValueAsString();
+ }
+
+ public String getNickOrEmail() {
+ return loginNickOrEmailField.getValueAsString();
+ }
+
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInPanel.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPanel.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPanel.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -0,0 +1,344 @@
+/*
+ *
+ * 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.workspace.client.sitebar.login;
+
+import org.ourproject.kune.platf.client.ui.dialogs.BasicDialog;
+import org.ourproject.kune.platf.client.ui.dialogs.InfoDialog;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.sitebar.msg.SimpleMessagePanel;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
+
+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.Label;
+import com.google.gwt.user.client.ui.Widget;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.core.RegionPosition;
+import com.gwtext.client.widgets.Button;
+import com.gwtext.client.widgets.Component;
+import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.TabPanel;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
+import com.gwtext.client.widgets.event.PanelListenerAdapter;
+import com.gwtext.client.widgets.event.WindowListenerAdapter;
+import com.gwtext.client.widgets.form.Field;
+import com.gwtext.client.widgets.layout.BorderLayout;
+import com.gwtext.client.widgets.layout.BorderLayoutData;
+import com.gwtext.client.widgets.layout.FitLayout;
+
+public class SignInPanel implements SignInView {
+ private class MessagePanel extends Panel {
+ private final SimpleMessagePanel messagesPanel;
+
+ public MessagePanel() {
+ setPaddings(10);
+ setBorder(false);
+ setHeight(60);
+ messagesPanel = new SimpleMessagePanel();
+ messagesPanel.setMessage("", SiteErrorType.info, SiteErrorType.error);
+ add(messagesPanel);
+ }
+
+ public void hide() {
+ messagesPanel.hide();
+ super.hide();
+ }
+
+ public void setMessage(final String message, final SiteErrorType lastMessageType, final SiteErrorType type) {
+ messagesPanel.setMessage(message, lastMessageType, type);
+ }
+
+ public void show() {
+ messagesPanel.show();
+ super.show();
+ }
+ }
+
+ private BasicDialog dialog;
+ private final SignInPresenter presenter;
+ private SignInForm signInForm;
+ private RegisterForm registerForm;
+ private MessagePanel messagesSignInPanel;
+ private InfoDialog welcomeDialog;
+ private TabPanel centerPanel;
+ private MessagePanel messagesRegisterPanel;
+ private final I18nUITranslationService i18n;
+
+ public SignInPanel(final SignInPresenter presenter, final I18nUITranslationService i18n, final WorkspaceSkeleton ws) {
+ this.i18n = i18n;
+ Field.setMsgTarget("side");
+ this.presenter = presenter;
+ createPanel();
+ }
+
+ public void center() {
+ dialog.center();
+ }
+
+ public String getCountry() {
+ return registerForm.getCountry();
+ }
+
+ public String getEmail() {
+ return registerForm.getEmail();
+ }
+
+ public String getLanguage() {
+ return registerForm.getLanguage();
+ }
+
+ public String getLoginPassword() {
+ return signInForm.getLoginPassword();
+ }
+
+ public String getLongName() {
+ return registerForm.getLongName();
+ }
+
+ public String getNickOrEmail() {
+ return signInForm.getNickOrEmail();
+ }
+
+ public String getRegisterPassword() {
+ return registerForm.getRegisterPassword();
+ }
+
+ public String getRegisterPasswordDup() {
+ return registerForm.getRegisterPasswordDup();
+ }
+
+ public String getShortName() {
+ return registerForm.getShortName();
+ }
+
+ public String getTimezone() {
+ return registerForm.getTimezone();
+ }
+
+ public void hide() {
+ dialog.hide();
+ }
+
+ public void hideMessages() {
+ messagesSignInPanel.hide();
+ if (messagesRegisterPanel != null) {
+ messagesRegisterPanel.hide();
+ }
+ renderDialogIfNeeded();
+ }
+
+ public boolean isRegisterFormValid() {
+ return registerForm.isValid();
+ }
+
+ public boolean isSignInFormValid() {
+ return signInForm.isValid();
+ }
+
+ public void mask(final String message) {
+ dialog.getEl().mask(message, "x-mask-loading");
+ }
+
+ public void maskProcessing() {
+ mask(i18n.t("Processing"));
+ }
+
+ public void reset() {
+ DeferredCommand.addCommand(new Command() {
+ public void execute() {
+ signInForm.reset();
+ if (registerForm != null) {
+ registerForm.reset();
+ }
+ }
+ });
+ }
+
+ public void setRegisterMessage(final String message, final SiteErrorType type) {
+ messagesRegisterPanel.setMessage(message, type, type);
+ messagesRegisterPanel.show();
+ renderDialogIfNeeded();
+ }
+
+ public void setSignInMessage(final String message, final SiteErrorType type) {
+ messagesSignInPanel.setMessage(message, type, type);
+ messagesSignInPanel.show();
+ renderDialogIfNeeded();
+ }
+
+ public void show() {
+ centerPanel.activate(0);
+ dialog.setVisible(true);
+ dialog.show();
+ Site.hideProgress();
+ dialog.focus();
+ signInForm.focusLogin();
+ }
+
+ public void showWelcolmeDialog() {
+ if (welcomeDialog == null) {
+ welcomeDialog = new InfoDialog(i18n.t("Welcome"), i18n.t("Thanks for registering"), i18n
+ .t("Now you can participate more actively in this site with other people and groups. "
+ + "You can also use your personal space to publish contents. "
+ + "Your email is not verified, please follow the instructions you will receive by email."),
+ i18n.t("Ok"), true, true, 400, 270);
+ }
+ welcomeDialog.show();
+ }
+
+ public void unMask() {
+ dialog.getEl().unmask();
+ }
+
+ private void confPanel(final Panel panel) {
+ // panel.setLayout(new FormLayout());
+ // panel.setAutoWidth(true);
+ // anel.setAutoHeight(true);
+ }
+
+ private Panel createNoAccountRegister() {
+ final Panel noAccRegisterPanel = new Panel();
+ noAccRegisterPanel.setBorder(false);
+ noAccRegisterPanel.setMargins(0, 90, 0, 0);
+ final Label dontHaveAccountLabel = new Label(i18n.t("Don't have an account?"));
+ final Label registerLabel = new Label(i18n.t("Create one."));
+ registerLabel.addClickListener(new ClickListener() {
+ public void onClick(final Widget arg0) {
+ centerPanel.activate(1);
+ }
+ });
+ registerLabel.addStyleName("kune-Margin-Medium-l");
+ registerLabel.addStyleName("kune-link");
+ noAccRegisterPanel.add(dontHaveAccountLabel);
+ noAccRegisterPanel.add(registerLabel);
+ return noAccRegisterPanel;
+ }
+
+ private void createPanel() {
+ dialog = new BasicDialog(i18n.t("Sign in"), true, false, 370, 400);
+ dialog.setLayout(new FitLayout());
+ final Panel dialogPanel = new Panel();
+ dialogPanel.setLayout(new BorderLayout());
+ // dialog.setAutoHeight(false);
+ // dialog.setAutoWidth(false);
+ // dialog.setAutoHeight(true);
+ // dialog.setAutoWidth(true);
+ dialogPanel.setHeight("100%");
+ dialogPanel.setWidth("auto");
+ // dialog.setCollapsible(false);
+
+ centerPanel = new TabPanel();
+ centerPanel.setActiveTab(0);
+ // centerPanel.setAutoWidth(true);
+ // centerPanel.setAutoHeight(true);
+ centerPanel.setClosable(false);
+
+ final Panel signInPanel = new Panel(i18n.t("Sign in"));
+ confPanel(signInPanel);
+ signInForm = new SignInForm(i18n);
+ signInPanel.add(signInForm.getForm());
+ signInPanel.add(createNoAccountRegister());
+ messagesSignInPanel = new MessagePanel();
+ signInPanel.add(messagesSignInPanel);
+
+ final Panel registerPanel = new Panel(i18n.t("Register"));
+ confPanel(registerPanel);
+
+ centerPanel.add(signInPanel);
+ centerPanel.add(registerPanel);
+ dialogPanel.add(centerPanel, new BorderLayoutData(RegionPosition.CENTER));
+ dialog.add(dialogPanel);
+
+ final Button signInBtn = new Button(i18n.t("Sign in"));
+ signInBtn.addListener(new ButtonListenerAdapter() {
+ public void onClick(final Button button, final EventObject e) {
+ signInForm.validate();
+ if (signInForm.isValid()) {
+ presenter.onFormSignIn();
+ }
+ }
+ });
+ dialog.addButton(signInBtn);
+
+ final Button registerBtn = new Button(i18n.t("Register"));
+ registerBtn.addListener(new ButtonListenerAdapter() {
+ public void onClick(final Button button, final EventObject e) {
+ registerForm.validate();
+ if (registerForm.isValid()) {
+ presenter.onFormRegister();
+ }
+ }
+ });
+ dialog.addButton(registerBtn);
+ registerBtn.hide();
+
+ final Button cancel = new Button();
+ dialog.addButton(cancel);
+ cancel.setText(i18n.tWithNT("Cancel", "used in button"));
+ cancel.addListener(new ButtonListenerAdapter() {
+ public void onClick(final Button button, final EventObject e) {
+ presenter.onCancel();
+ }
+ });
+
+ signInPanel.addListener(new PanelListenerAdapter() {
+ public void onActivate(final Panel panel) {
+ dialog.setTitle(i18n.t("Sign in"));
+ registerBtn.hide();
+ signInBtn.show();
+ }
+ });
+
+ registerPanel.addListener(new PanelListenerAdapter() {
+ public void onActivate(final Panel panel) {
+ if (registerForm == null) {
+ maskProcessing();
+ registerForm = new RegisterForm(presenter, i18n);
+ registerPanel.add(registerForm.getForm());
+ messagesRegisterPanel = new MessagePanel();
+ registerPanel.add(messagesRegisterPanel);
+ messagesRegisterPanel.hide();
+ renderDialogIfNeeded();
+ unMask();
+ }
+ dialog.setTitle(i18n.t("Register"));
+ signInBtn.hide();
+ registerBtn.show();
+ }
+ });
+
+ dialog.addListener(new WindowListenerAdapter() {
+ public void onHide(final Component component) {
+ presenter.onClose();
+ }
+ });
+ hideMessages();
+ renderDialogIfNeeded();
+ }
+
+ private void renderDialogIfNeeded() {
+ if (dialog.isRendered()) {
+ dialog.doLayout();
+ }
+ }
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInPresenter.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPresenter.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginPresenter.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInPresenter.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -0,0 +1,218 @@
+/*
+ *
+ * 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.workspace.client.sitebar.login;
+
+import java.util.Date;
+
+import org.ourproject.kune.platf.client.dto.I18nCountryDTO;
+import org.ourproject.kune.platf.client.dto.I18nLanguageDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.platf.client.dto.TimeZoneDTO;
+import org.ourproject.kune.platf.client.dto.UserDTO;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.errors.EmailAddressInUseException;
+import org.ourproject.kune.platf.client.errors.GroupNameInUseException;
+import org.ourproject.kune.platf.client.errors.UserAuthException;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
+
+import com.calclab.emite.client.im.roster.RosterManager.SubscriptionMode;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.Cookies;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+public class SignInPresenter implements SignIn {
+
+ SignInView view;
+ private final Session session;
+ private final I18nUITranslationService i18n;
+ private final UserServiceAsync userService;
+ private final StateManager stateManager;
+ private StateToken previousStateToken;
+
+ public SignInPresenter(final Session session, final StateManager stateManager, final I18nUITranslationService i18n,
+ final UserServiceAsync userService) {
+ this.session = session;
+ this.stateManager = stateManager;
+ this.userService = userService;
+ this.i18n = i18n;
+ }
+
+ public void doSignIn(final StateToken previousStateToken) {
+ this.previousStateToken = previousStateToken;
+ if (!session.isLogged()) {
+ Site.showProgressProcessing();
+ view.show();
+ view.center();
+ Site.hideProgress();
+ } else {
+ stateManager.setState(previousStateToken);
+ }
+ }
+
+ public Object[][] getCountries() {
+ return session.getCountriesArray();
+ }
+
+ public I18nLanguageDTO getCurrentLanguage() {
+ return session.getCurrentLanguage();
+ }
+
+ public Object[][] getLanguages() {
+ return session.getLanguagesArray();
+ }
+
+ public Object[][] getTimezones() {
+ return session.getTimezones();
+ }
+
+ public void init(final SignInView loginview) {
+ this.view = loginview;
+ }
+
+ public void onCancel() {
+ resetMessages();
+ reset();
+ view.hide();
+ stateManager.setState(previousStateToken);
+ }
+
+ public void onClose() {
+ reset();
+ view.hideMessages();
+ if (!session.isLogged()) {
+ stateManager.setState(previousStateToken);
+ }
+ }
+
+ public void onFormRegister() {
+ if (view.isRegisterFormValid()) {
+ view.maskProcessing();
+
+ final I18nLanguageDTO language = new I18nLanguageDTO();
+ language.setCode(view.getLanguage());
+
+ final I18nCountryDTO country = new I18nCountryDTO();
+ country.setCode(view.getCountry());
+
+ final TimeZoneDTO timezone = new TimeZoneDTO();
+ timezone.setId(view.getTimezone());
+
+ final UserDTO user = new UserDTO(view.getLongName(), view.getShortName(), view.getRegisterPassword(), view
+ .getEmail(), language, country, timezone, null, true, SubscriptionMode.manual, "blue");
+ final AsyncCallback<UserInfoDTO> callback = new AsyncCallback<UserInfoDTO>() {
+ public void onFailure(final Throwable caught) {
+ view.unMask();
+ try {
+ throw caught;
+ } catch (final EmailAddressInUseException e) {
+ view.setRegisterMessage(i18n.t("This email in in use by other person, try with another."),
+ SiteErrorType.error);
+ } catch (final GroupNameInUseException e) {
+ view.setRegisterMessage(i18n.t("This name in already in use, try with a different name."),
+ SiteErrorType.error);
+ } catch (final Throwable e) {
+ view.setRegisterMessage(i18n.t("Error during registration."), SiteErrorType.error);
+ GWT.log("Other kind of exception in user registration" + e.getMessage() + ", "
+ + e.getLocalizedMessage(), null);
+ e.printStackTrace();
+ throw new RuntimeException();
+ }
+ }
+
+ public void onSuccess(final UserInfoDTO userInfoDTO) {
+ stateManager.gotoToken(userInfoDTO.getHomePage());
+ onSignIn(userInfoDTO);
+ view.hide();
+ view.unMask();
+ view.showWelcolmeDialog();
+ }
+ };
+ userService.createUser(user, callback);
+ }
+ }
+
+ protected void onFormSignIn() {
+ if (view.isSignInFormValid()) {
+ view.maskProcessing();
+
+ final String nickOrEmail = view.getNickOrEmail();
+ final String passwd = view.getLoginPassword();
+
+ final UserDTO user = new UserDTO();
+ user.setShortName(nickOrEmail);
+ user.setPassword(passwd);
+
+ final AsyncCallback<UserInfoDTO> callback = new AsyncCallback<UserInfoDTO>() {
+ public void onFailure(final Throwable caught) {
+ view.unMask();
+ Site.hideProgress();
+ try {
+ throw caught;
+ } catch (final UserAuthException e) {
+ view.setSignInMessage(i18n.t("Incorrect nickname/email or password"), SiteErrorType.error);
+ } catch (final Throwable e) {
+ view.setSignInMessage("Error in login", SiteErrorType.error);
+ GWT.log("Other kind of exception in LoginFormPresenter/doLogin", null);
+ throw new RuntimeException();
+ }
+ }
+
+ public void onSuccess(final UserInfoDTO userInfoDTO) {
+ stateManager.setState(previousStateToken);
+ onSignIn(userInfoDTO);
+ view.hide();
+ view.unMask();
+ }
+ };
+ userService.login(user.getShortName(), user.getPassword(), callback);
+ }
+ }
+
+ private void onSignIn(final UserInfoDTO userInfoDTO) {
+ setCookie(userInfoDTO);
+ session.setUserHash(userInfoDTO.getUserHash());
+ session.setCurrentUserInfo(userInfoDTO);
+ final I18nLanguageDTO language = userInfoDTO.getLanguage();
+ i18n.changeCurrentLanguage(language.getCode());
+ session.setCurrentLanguage(language);
+ }
+
+ private void reset() {
+ view.reset();
+ }
+
+ private void resetMessages() {
+ view.hideMessages();
+ }
+
+ private void setCookie(final UserInfoDTO userInfoDTO) {
+ // http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ
+ final String sessionId = userInfoDTO.getUserHash();
+ final long duration = Session.SESSION_DURATION;
+ final Date expires = new Date(System.currentTimeMillis() + duration);
+ Cookies.setCookie(Site.USERHASH, sessionId, expires, null, "/", false);
+ }
+
+}
Copied: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInView.java (from rev 792, trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginView.java)
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/LoginView.java 2008-07-06 13:51:18 UTC (rev 792)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/login/SignInView.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -0,0 +1,71 @@
+/*
+ *
+ * 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.workspace.client.sitebar.login;
+
+import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
+
+public interface SignInView extends View {
+
+ public void center();
+
+ public String getCountry();
+
+ public String getEmail();
+
+ public String getLanguage();
+
+ public String getLoginPassword();
+
+ public String getLongName();
+
+ public String getNickOrEmail();
+
+ public String getRegisterPassword();
+
+ public String getRegisterPasswordDup();
+
+ public String getShortName();
+
+ public String getTimezone();
+
+ public void hide();
+
+ public void hideMessages();
+
+ public boolean isRegisterFormValid();
+
+ public boolean isSignInFormValid();
+
+ public void maskProcessing();
+
+ public void reset();
+
+ public void show();
+
+ public void showWelcolmeDialog();
+
+ public void unMask();
+
+ void setRegisterMessage(String message, SiteErrorType type);
+
+ void setSignInMessage(String message, SiteErrorType type);
+
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -79,8 +79,9 @@
adjustWidth(width);
}
});
+ super.reset();
+ super.show();
extElem.setVisible(false, false);
- hide();
RootPanel.get().add(this, calculateX(clientWidth), calculateY());
}
@@ -96,9 +97,7 @@
}
public void show() {
- if (!extElem.isVisible()) {
- extElem.show(true);
- }
+ extElem.show(false);
// super.show();
timer.schedule(TIMEVISIBLE);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -12,7 +12,6 @@
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
-import com.allen_sauer.gwt.log.client.Log;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Button;
@@ -35,7 +34,7 @@
super.setHeaderText(i18n.t("Group members"));
super.setHeaderTitle(i18n.t("People and groups collaborating in this group"));
super.setBorderStylePrimaryName("k-dropdownouter-members");
- super.addStyleName("kune-Margin-Medium-tl");
+ super.addStyleName("kune-Margin-Medium-t");
gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This is an orphaned project, if you are interested "
+ "please request to join to work on it"), true, true, false, true, false);
final EntitySummary entitySummary = ws.getEntitySummary();
@@ -105,7 +104,6 @@
}
public void setVisible(final boolean visible) {
- Log.debug("Set visible: " + visible + " in GroupMembers");
super.setVisible(visible);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -42,7 +42,7 @@
super.setHeaderText(i18n.t("Participates as..."));
super.setHeaderTitle(i18n.t("Groups in which participates"));
super.setBorderStylePrimaryName("k-dropdownouter-part");
- super.addStyleName("kune-Margin-Medium-tl");
+ super.addStyleName("kune-Margin-Medium-t");
gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This user is not member of any group"), true, false, false,
false, false);
final EntitySummary entitySummary = ws.getEntitySummary();
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-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/tags/TagsSummaryPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -56,7 +56,7 @@
vp.setCellWidth(flowPanel, "100%");
super.setContent(vp);
super.setBorderStylePrimaryName("k-dropdownouter-tags");
- addStyleName("kune-Margin-Medium-tl");
+ addStyleName("kune-Margin-Medium-t");
flowPanel.addStyleName("kune-Margin-Small-trbl");
ws.getEntitySummary().addInSummary(this);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,5 +1,7 @@
package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitesign;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.sitebar.SiteToken;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.ui.Hyperlink;
@@ -9,8 +11,26 @@
private final ToolbarButton loggedUserMenu;
private final Hyperlink signInHyperlink;
- public SiteSignInLinkPanel(final SiteSignInLinkPresenter presenter, final WorkspaceSkeleton ws) {
+ public SiteSignInLinkPanel(final SiteSignInLinkPresenter presenter, final I18nUITranslationService i18n,
+ final WorkspaceSkeleton ws) {
signInHyperlink = new Hyperlink();
- loggedUserMenu = new ToolbarButton();
+ signInHyperlink.setText(i18n.t("Sign in to collaborate"));
+ signInHyperlink.setTargetHistoryToken(SiteToken.signin.toString());
+ loggedUserMenu = new ToolbarButton("user");
+ ws.getSiteBar().add(signInHyperlink);
+ // ws.getSiteBar().add(loggedUserMenu);
}
+
+ public void setLoggedUserMenuVisible(final boolean visible) {
+ loggedUserMenu.setVisible(visible);
+ }
+
+ public void setLoggedUserName(final String name, final String homePage) {
+ loggedUserMenu.setText(name);
+ }
+
+ public void setVisibleSignInLink(final boolean visible) {
+ signInHyperlink.setVisible(visible);
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPresenter.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkPresenter.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,22 +1,50 @@
package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitesign;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.state.Session;
+import com.calclab.suco.client.signal.Slot;
+
public class SiteSignInLinkPresenter implements SiteSignInLink {
-private SiteSignInLinkView view;
+ private SiteSignInLinkView view;
-public SiteSignInLinkPresenter() {
-}
+ public SiteSignInLinkPresenter(final Session session) {
+ session.onUserSignIn(new Slot<UserInfoDTO>() {
+ public void onEvent(final UserInfoDTO user) {
+ doAfterSignIn(user);
+ }
+ });
+ session.onUserSignOut(new Slot<Object>() {
+ public void onEvent(final Object parameter) {
+ setLogged(false);
+ view.setLoggedUserName("", "");
+ }
+ });
+ }
-public void init(SiteSignInLinkView view) {
-this.view = view;
-}
+ public View getView() {
+ return view;
+ }
+ public void init(final SiteSignInLinkView view) {
+ this.view = view;
+ setLogged(false);
+ }
- public View getView() {
- return view;
+ private void doAfterSignIn(final UserInfoDTO user) {
+ if (user == null) {
+ setLogged(false);
+ } else {
+ setLogged(true);
+ view.setLoggedUserName(user.getShortName(), user.getHomePage());
+ }
}
+ private void setLogged(boolean logged) {
+ view.setVisibleSignInLink(!logged);
+ view.setLoggedUserMenuVisible(logged);
+ }
+
}
-
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkView.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignInLinkView.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -3,5 +3,11 @@
import org.ourproject.kune.platf.client.View;
public interface SiteSignInLinkView extends View {
+
+ void setLoggedUserMenuVisible(boolean visible);
+
+ void setLoggedUserName(String shortName, String homePage);
+
+ void setVisibleSignInLink(boolean visible);
+
}
-
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPanel.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPanel.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,14 +1,32 @@
package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitesign;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.sitebar.Site;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
+import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Widget;
public class SiteSignOutLinkPanel implements SiteSignOutLinkView {
private final Label signOutLabel;
- public SiteSignOutLinkPanel(final SiteSignOutLinkPresenter presenter, final WorkspaceSkeleton ws) {
+ public SiteSignOutLinkPanel(final SiteSignOutLinkPresenter presenter, final I18nUITranslationService i18n,
+ final WorkspaceSkeleton ws) {
signOutLabel = new Label();
+ signOutLabel.setText(i18n.t("Sign out"));
+ signOutLabel.addStyleName("kune-SiteBarPanel-LabelLink");
+ ws.getSiteBar().add(signOutLabel);
+ signOutLabel.addClickListener(new ClickListener() {
+ public void onClick(final Widget arg0) {
+ Site.showProgressProcessing();
+ presenter.doSignOut();
+ }
+ });
}
+
+ public void setVisible(final boolean visible) {
+ signOutLabel.setVisible(visible);
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkPresenter.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,22 +1,92 @@
package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitesign;
+import java.util.Date;
+
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.UserInfoDTO;
+import org.ourproject.kune.platf.client.errors.SessionExpiredException;
+import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException;
+import org.ourproject.kune.platf.client.services.KuneErrorHandler;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.sitebar.rpc.UserServiceAsync;
+import com.calclab.suco.client.signal.Slot;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.Cookies;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
public class SiteSignOutLinkPresenter implements SiteSignOutLink {
-private SiteSignOutLinkView view;
+ private SiteSignOutLinkView view;
+ private final Session session;
+ private final UserServiceAsync userService;
-public SiteSignOutLinkPresenter() {
-}
+ public SiteSignOutLinkPresenter(final Session session, final UserServiceAsync userService,
+ final KuneErrorHandler errorHandler) {
+ this.session = session;
+ this.userService = userService;
+ session.onUserSignIn(new Slot<UserInfoDTO>() {
+ public void onEvent(final UserInfoDTO parameter) {
+ view.setVisible(true);
+ }
+ });
+ session.onUserSignOut(new Slot<Object>() {
+ public void onEvent(final Object parameter) {
+ view.setVisible(false);
+ }
+ });
+ errorHandler.onSessionExpired(new Slot<Object>() {
+ public void onEvent(final Object parameter) {
+ clientUIsignOut();
+ }
+ });
+ }
-public void init(SiteSignOutLinkView view) {
-this.view = view;
-}
+ public void doSignOut() {
+ final AsyncCallback<Object> callback = new AsyncCallback<Object>() {
+ public void onFailure(final Throwable caught) {
+ Site.hideProgress();
+ try {
+ throw caught;
+ } catch (final SessionExpiredException e) {
+ clientUIsignOut();
+ } catch (final UserMustBeLoggedException e) {
+ clientUIsignOut();
+ } catch (final Throwable e) {
+ GWT.log("Other kind of exception in doLogout", null);
+ throw new RuntimeException();
+ }
+ }
+ public void onSuccess(final Object arg0) {
+ Site.hideProgress();
+ clientUIsignOut();
+ }
+ };
+ userService.logout(session.getUserHash(), callback);
+ }
+
public View getView() {
- return view;
+ return view;
}
+ public void init(final SiteSignOutLinkView view) {
+ this.view = view;
+ view.setVisible(false);
+ }
+
+ private void clientUIsignOut() {
+ // FIXME: Remove cookie doesn't works in all browsers, know
+ // issue:
+ // http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/ded8…
+ // http://code.google.com/p/google-web-toolkit/issues/detail?id=1735&q=removeC…
+ Cookies.removeCookie(Site.USERHASH);
+ // Workaround:
+ Cookies.setCookie(Site.USERHASH, null, new Date(0), null, "/", false);
+ session.setUserHash(null);
+ session.setCurrentUserInfo(null);
+ }
+
}
-
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkView.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitesign/SiteSignOutLinkView.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -3,5 +3,6 @@
import org.ourproject.kune.platf.client.View;
public interface SiteSignOutLinkView extends View {
+
+ void setVisible(boolean visible);
}
-
Modified: trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/state/StateManagerTest.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,46 +1,64 @@
package org.ourproject.kune.platf.client.state;
-import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;
-import org.ourproject.kune.platf.client.app.Application;
+import org.mockito.Mockito;
import org.ourproject.kune.platf.client.app.HistoryWrapper;
-import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.platf.client.dto.StateDTO;
+import org.ourproject.kune.platf.client.dto.StateToken;
+import org.ourproject.kune.workspace.client.sitebar.SiteToken;
import org.ourproject.kune.workspace.client.ui.newtmp.WorkspaceManager;
+import com.calclab.suco.client.signal.Slot;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
public class StateManagerTest {
- private StateManager stateManager;
+ private static final String HASH = "someUserHash";
+ private StateManagerDefault stateManager;
private HistoryWrapper history;
+ private ContentProvider contentProvider;
+ private Session session;
+ @SuppressWarnings("unchecked")
@Test
- public void fixmeToken() {
- stateManager.onHistoryChanged(Site.FIXME_TOKEN);
- }
-
- @Test
public void getDefGroup() {
stateManager.onHistoryChanged("site.docs");
+ Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateDTO>) Mockito.anyObject());
}
+ @SuppressWarnings("unchecked")
@Before
public void init() {
- final ContentProvider contentProvider = EasyMock.createStrictMock(ContentProvider.class);
- final Application application = EasyMock.createStrictMock(Application.class);
- final Session session = EasyMock.createStrictMock(Session.class);
- history = EasyMock.createStrictMock(HistoryWrapper.class);
- final WorkspaceManager ws = EasyMock.createStrictMock(WorkspaceManager.class);
- stateManager = new StateManagerDefault(contentProvider, application, session, history, ws);
+ contentProvider = Mockito.mock(ContentProvider.class);
+ session = Mockito.mock(Session.class);
+ history = Mockito.mock(HistoryWrapper.class);
+ final WorkspaceManager ws = Mockito.mock(WorkspaceManager.class);
+ stateManager = new StateManagerDefault(contentProvider, session, history, ws);
+ Mockito.stub(session.getUserHash()).toReturn(HASH);
}
+ @SuppressWarnings("unchecked")
@Test
public void normalStartLoggedUser() {
// When a user enter reload state, also if the application is starting
// (and the user was logged)
- EasyMock.expect(history.getToken()).andReturn("");
- EasyMock.replay(history);
+ Mockito.stub(history.getToken()).toReturn("");
stateManager.reload();
- EasyMock.verify(history);
+ Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateDTO>) Mockito.anyObject());
}
+ @SuppressWarnings("unchecked")
+ @Test
+ public void siteTokenFirstLoadDefContentAndFireSlot() {
+ final Slot slot = Mockito.mock(Slot.class);
+ final String token = SiteToken.signin.toString();
+ stateManager.addSiteToken(token, slot);
+ stateManager.onHistoryChanged(token);
+ Mockito.verify(slot, Mockito.times(1)).onEvent(Mockito.anyObject());
+ Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateDTO>) Mockito.anyObject());
+ }
}
Deleted: trunk/src/test/java/org/ourproject/kune/sitebar/client/ui/LoginPresenterTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/sitebar/client/ui/LoginPresenterTest.java 2008-07-21 14:30:36 UTC (rev 812)
+++ trunk/src/test/java/org/ourproject/kune/sitebar/client/ui/LoginPresenterTest.java 2008-07-23 04:11:58 UTC (rev 813)
@@ -1,52 +0,0 @@
-package org.ourproject.kune.sitebar.client.ui;
-
-import org.easymock.EasyMock;
-import org.junit.Before;
-import org.junit.Test;
-import org.ourproject.kune.platf.client.services.I18nTranslationServiceMocked;
-import org.ourproject.kune.platf.client.state.SessionImpl;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginListener;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginPresenter;
-import org.ourproject.kune.workspace.client.sitebar.login.LoginView;
-
-public class LoginPresenterTest {
- private LoginPresenter presenter;
- private LoginView view;
- private LoginListener listener;
-
- @Before
- public void createObjects() {
- listener = EasyMock.createStrictMock(LoginListener.class);
- presenter = new LoginPresenter(new SessionImpl("foo", null), listener, new I18nTranslationServiceMocked());
- view = EasyMock.createStrictMock(LoginView.class);
- }
-
- @Test
- public void nickPassTyped() {
- // view.setEnabledLoginButton(false);
- // view.setEnabledLoginButton(true);
- EasyMock.replay(view);
-
- presenter.init(view);
- // presenter.onDataChanged("luther.b", "somepass");
- EasyMock.verify(view);
- }
-
- @Test
- public void noUserInput() {
- // view.setEnabledLoginButton(false);
- EasyMock.replay(view);
-
- presenter.init(view);
- // presenter.onDataChanged("", "");
- EasyMock.verify(view);
- }
-
- @Test
- public void testViewInitialization() {
- // view.setEnabledLoginButton(false);
- EasyMock.replay(view);
- presenter.init(view);
- EasyMock.verify(view);
- }
-}
1
0
21 Jul '08
Author: vjrj
Date: 2008-07-21 16:30:36 +0200 (Mon, 21 Jul 2008)
New Revision: 812
Added:
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java
Modified:
trunk/src/main/java/org/ourproject/kune/app/public/Kune.html
trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderImpl.java
trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java
Log:
new ParticipationSummary
Modified: trunk/src/main/java/org/ourproject/kune/app/public/Kune.html
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/public/Kune.html 2008-07-21 02:46:08 UTC (rev 811)
+++ trunk/src/main/java/org/ourproject/kune/app/public/Kune.html 2008-07-21 14:30:36 UTC (rev 812)
@@ -131,7 +131,7 @@
src="org.ourproject.kune.app.Kune.nocache.js"></script>
<iframe id="__gwt_historyFrame" style="width: 0; height: 0; border: 0"></iframe>
<div id="kuneprogresspanel" class="kune-sitebar">
-<table cellspacing="0" summary="Loading" cellpadding="0" border="0"
+<table cellspacing="0" summary="Starting" cellpadding="0" border="0"
style="height: 16px;">
<tbody>
<tr>
@@ -140,7 +140,7 @@
src="images/spin-kune-thund-green.gif"
style="height: 16px; width: 16px;" /></td>
<td align="left" style="vertical-align: top;" class="kune-Progress">
- <div class="kune-SiteBarPanel gwt-Label" id="kuneprogresstext">Loading</div>
+ <div class="kune-SiteBarPanel gwt-Label" id="kuneprogresstext">Starting</div>
</td>
<td width="100%" height="16" align="left"
style="vertical-align: top;"></td>
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java 2008-07-21 02:46:08 UTC (rev 811)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java 2008-07-21 14:30:36 UTC (rev 812)
@@ -56,7 +56,7 @@
final Session session = kune.getSession();
- Site.showProgressLoading();
+ Site.showProgressStarting();
final KunePlatform platform = kune.getPlatform();
final StateManager stateManager = kune.getStateManager();
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-21 02:46:08 UTC (rev 811)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-21 14:30:36 UTC (rev 812)
@@ -179,12 +179,12 @@
}, SingletonScope.class);
final WorkspaceSkeleton ws = builder.getInstance(WorkspaceSkeleton.class);
+ final Images images = builder.getInstance(Images.class);
builder.registerProvider(SitePublicSpaceLink.class, new Provider<SitePublicSpaceLink>() {
public SitePublicSpaceLink get() {
final SitePublicSpaceLinkPresenter presenter = new SitePublicSpaceLinkPresenter();
- final SitePublicSpaceLinkPanel panel = new SitePublicSpaceLinkPanel(presenter, ws, i18n, builder
- .getInstance(Images.class));
+ final SitePublicSpaceLinkPanel panel = new SitePublicSpaceLinkPanel(presenter, ws, i18n, images);
presenter.init(panel);
return presenter;
}
@@ -368,7 +368,9 @@
builder.registerProvider(ParticipationSummary.class, new Provider<ParticipationSummary>() {
public ParticipationSummary get() {
- final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(i18n);
+ final ParticipationSummaryPresenter presenter = new ParticipationSummaryPresenter(i18n, builder
+ .getProvider(StateManager.class), builder.getInstance(ImageUtils.class), builder
+ .getInstance(Session.class), SocialNetworkService.App.getInstance());
final ParticipationSummaryView view = new ParticipationSummaryPanel(presenter, i18n, ws);
presenter.init(view);
return presenter;
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderImpl.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderImpl.java 2008-07-21 02:46:08 UTC (rev 811)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/ContentProviderImpl.java 2008-07-21 14:30:36 UTC (rev 812)
@@ -35,26 +35,26 @@
private final HashMap<StateToken, StateDTO> cache;
public ContentProviderImpl(final ContentServiceAsync server) {
- this.server = server;
- this.cache = new HashMap<StateToken, StateDTO>();
+ this.server = server;
+ this.cache = new HashMap<StateToken, StateDTO>();
}
public void cache(final StateToken encodeState, final StateDTO content) {
- cache.put(encodeState, content);
+ cache.put(encodeState, content);
}
public void getContent(final String user, final StateToken newState, final AsyncCallback<StateDTO> callback) {
- Site.showProgressProcessing();
- StateDTO catched = getCached(newState);
- if (catched != null) {
- callback.onSuccess(catched);
- } else {
- server.getContent(user, newState.getGroup(), newState, callback);
- }
+ Site.showProgressLoading();
+ final StateDTO catched = getCached(newState);
+ if (catched != null) {
+ callback.onSuccess(catched);
+ } else {
+ server.getContent(user, newState.getGroup(), newState, callback);
+ }
}
private StateDTO getCached(final StateToken newState) {
- return cache.remove(newState);
+ return cache.remove(newState);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java 2008-07-21 02:46:08 UTC (rev 811)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java 2008-07-21 14:30:36 UTC (rev 812)
@@ -46,10 +46,11 @@
}
public void doSearch(final String text) {
+ Site.showProgressLoading();
searchHistory.put(text, null);
- Site.hideProgress();
view.search(text, currentSearch);
view.show();
+ Site.hideProgress();
}
public void doSearchOfType(final String text, final SiteSearcherType typeOfSearch) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java 2008-07-21 02:46:08 UTC (rev 811)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java 2008-07-21 14:30:36 UTC (rev 812)
@@ -84,6 +84,10 @@
progress.showProgress(i18n.t("Saving"));
}
+ public static void showProgressStarting() {
+ progress.showProgress(i18n.t("Starting"));
+ }
+
public static void veryImportant(final String value) {
getSiteMessage().setMessage(value, SiteErrorType.veryimp);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-21 02:46:08 UTC (rev 811)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanelNew.java 2008-07-21 14:30:36 UTC (rev 812)
@@ -12,6 +12,7 @@
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
+import com.allen_sauer.gwt.log.client.Log;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.BoxComponent;
import com.gwtext.client.widgets.Button;
@@ -51,6 +52,7 @@
}
public void addButton(final GridButton gridButton) {
+ // Workaround: gwt-ext don't have toolbar.removeItem method ...
ToolbarButton button = buttonsCache.get(gridButton);
if (button == null) {
button = new ToolbarButton(gridButton.getTitle());
@@ -61,10 +63,11 @@
gridButton.getSlot().onEvent("");
}
});
+ buttonsCache.put(gridButton, button);
+ } else {
+ button.setVisible(true);
}
- if (!button.isAttached()) {
- gridMenuPanel.getBottomBar().addButton(button);
- }
+ gridMenuPanel.getBottomBar().addButton(button);
}
public void addItem(final GridItem<GroupDTO> gridItem) {
@@ -74,6 +77,9 @@
public void clear() {
gridMenuPanel.removeAll();
for (final ToolbarButton button : buttonsCache.values()) {
+ // Workaround: gwt-ext don't have toolbar.removeItem method ...
+ // gridMenuPanel.getBottomBar().getEl().removeChild(button.getElement());
+ button.setVisible(false);
button.removeFromParent();
}
}
@@ -99,6 +105,7 @@
}
public void setVisible(final boolean visible) {
+ Log.debug("Set visible: " + visible + " in GroupMembers");
super.setVisible(visible);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java 2008-07-21 02:46:08 UTC (rev 811)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenterNew.java 2008-07-21 14:30:36 UTC (rev 812)
@@ -9,68 +9,46 @@
import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
-import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.ImageDescriptor;
import org.ourproject.kune.platf.client.services.ImageUtils;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridButton;
import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridMenu;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuItem;
-import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuItemCollection;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.sitebar.Site;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
import org.ourproject.kune.workspace.client.workspace.GroupMembersSummary;
import com.calclab.suco.client.container.Provider;
-import com.calclab.suco.client.signal.Slot;
-public class GroupMembersSummaryPresenterNew implements GroupMembersSummary {
+public class GroupMembersSummaryPresenterNew extends SocialNetworkPresenter implements GroupMembersSummary {
private GroupMembersSummaryViewNew view;
- private final I18nTranslationService i18n;
- private final GridGroup adminGroup;
- private final GridGroup collabGroup;
- private final GridGroup pendigGroup;
- private GridMenuItem<GroupDTO> gotoGroupMenuItem;
- private final ImageUtils imageUtils;
+ private final I18nUITranslationService i18n;
+ private final GridGroup adminCategory;
+ private final GridGroup collabCategory;
+ private final GridGroup pendigCategory;
private final Session session;
private final SocialNetworkServiceAsync snService;
- private final Provider<StateManager> stateManager;
- private GridMenuItem<GroupDTO> changeToCollabMenuItem;
- private GridMenuItem<GroupDTO> removeMemberMenuItem;
- private GridMenuItem<GroupDTO> changeToAdminMenuItem;
- private GridMenuItem<GroupDTO> acceptJoinGroupMenuItem;
- private GridMenuItem<GroupDTO> denyJoinGroupMenuItem;
- private GridButton addMember;
- private GridButton requestJoin;
- private GridButton unJoinButton;
- private GridMenuItemCollection<GroupDTO> otherOperations;
- private GridMenuItemCollection<GroupDTO> otherLoggedOperations;
- public GroupMembersSummaryPresenterNew(final I18nTranslationService i18n,
- final Provider<StateManager> stateManager, final ImageUtils imageUtils, final Session session,
+ public GroupMembersSummaryPresenterNew(final I18nUITranslationService i18n,
+ final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session,
final SocialNetworkServiceAsync snService) {
+ super(i18n, stateManagerProvider, imageUtils, session, snService);
this.i18n = i18n;
- this.stateManager = stateManager;
- this.imageUtils = imageUtils;
this.session = session;
this.snService = snService;
final String adminsTitle = i18n.t("Admins");
final String collabsTitle = i18n.t("Collaborators");
final String pendingTitle = i18n.t("Pending");
- adminGroup = new GridGroup(adminsTitle, adminsTitle, i18n.t("People that can admin this group"), true);
- collabGroup = new GridGroup(collabsTitle, collabsTitle,
- i18n.t("Other people that collaborate with this group"), true);
- pendigGroup = new GridGroup(pendingTitle, pendingTitle, i18n
+ adminCategory = new GridGroup(adminsTitle, adminsTitle, i18n.t("People that can admin this group"), true);
+ collabCategory = new GridGroup(collabsTitle, collabsTitle, i18n
+ .t("Other people that collaborate with this group"), true);
+ pendigCategory = new GridGroup(pendingTitle, pendingTitle, i18n
.t("People pending to be accepted in this group by the admins"), imageUtils
.getImageHtml(ImageDescriptor.alert), true);
- createMenuActions();
- createButtons();
+ super.addGroupOperation(gotoMemberMenuItem, false);
}
public void addCollab(final String groupShortName) {
@@ -86,15 +64,6 @@
});
}
- public void addGroupOperation(final GridMenuItem<GroupDTO> operation, final boolean mustBeLogged) {
- GridMenuItemCollection<GroupDTO> collection;
- collection = mustBeLogged ? otherLoggedOperations : otherOperations;
- if (collection == null) {
- collection = new GridMenuItemCollection<GroupDTO>();
- }
- collection.add(operation);
- }
-
public void hide() {
view.setVisible(false);
}
@@ -103,16 +72,8 @@
this.view = view;
}
- public void removeGroupOperation(final GridMenuItem<GroupDTO> operation, final boolean mustBeLogged) {
- GridMenuItemCollection<GroupDTO> collection;
- collection = mustBeLogged ? otherLoggedOperations : otherOperations;
- if (collection != null) {
- collection.remove(operation);
- }
- }
-
public void setState(final StateDTO state) {
- if (state.getGroup().getType() == GroupDTO.PERSONAL) {
+ if (state.getGroup().getType().equals(GroupDTO.PERSONAL)) {
hide();
} else {
setGroupMembers(state.getGroupMembers(), state.getGroupRights());
@@ -123,174 +84,11 @@
view.setTheme(oldTheme, newTheme);
}
- private void createButtons() {
- addMember = new GridButton("images/add-green.gif", i18n.t("Add member"), i18n
- .t("Add a group or a person as member of this group"), new Slot<String>() {
- public void onEvent(final String parameter) {
- // TODO
- // GroupLiveSearchComponent groupLiveSearchComponent
- // = workspace.getGroupLiveSearchComponent();
- // groupLiveSearchComponent.addListener(listener);
- // groupLiveSearchComponent.show();
- }
- });
-
- requestJoin = new GridButton("images/add-green.gif", i18n.t("Participate"), i18n
- .t("Request to participate in this group"), new Slot<String>() {
- public void onEvent(final String parameter) {
- Site.showProgressProcessing();
- snService.requestJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- new AsyncCallbackSimple<Object>() {
- public void onSuccess(final Object result) {
- Site.hideProgress();
- final String resultType = (String) result;
- if (resultType == SocialNetworkDTO.REQ_JOIN_ACEPTED) {
- Site.info(i18n.t("You are now member of this group"));
- getStateManager().reload();
- }
- if (resultType == SocialNetworkDTO.REQ_JOIN_DENIED) {
- Site.important(i18n.t("Sorry this is a closed group"));
- }
- if (resultType == SocialNetworkDTO.REQ_JOIN_WAITING_MODERATION) {
- Site.info(i18n.t("Requested. Waiting for admins decision"));
- }
- }
- });
- }
- });
-
- unJoinButton = new GridButton("images/del.gif", i18n.t("Unjoin"), i18n
- .t("Don't participate more as a member in this group"), new Slot<String>() {
- public void onEvent(final String parameter) {
- Site.showProgressProcessing();
- snService.unJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Removed as member"));
- getStateManager().reload();
- // in the future with user info:
- // services.stateManager.reloadSocialNetwork((SocialNetworkResultDTO)
- // result);
- }
- });
- }
- });
- }
-
- private GridItem<GroupDTO> createDefMemberMenu(final GroupDTO group, final GridGroup gridGroup) {
- final GridMenu<GroupDTO> menu = new GridMenu<GroupDTO>(group);
- final String longName = group.getLongName();
- final GridItem<GroupDTO> gridItem = new GridItem<GroupDTO>(group, gridGroup, group.getShortName(), imageUtils
- .getImageHtml(ImageDescriptor.groupDefIcon), longName, longName, " ", longName, i18n.t(
- "User name: [%s]", group.getShortName()), menu);
- menu.addMenuItem(gotoGroupMenuItem);
- if (otherOperations != null) {
- menu.addMenuItemList(otherOperations);
- }
- if (session.isLogged() && otherOperations != null) {
- menu.addMenuItemList(otherLoggedOperations);
- }
- return gridItem;
- }
-
- private void createMenuActions() {
- gotoGroupMenuItem = new GridMenuItem<GroupDTO>("images/group-home.gif", i18n.t("Visit this member homepage"),
- new Slot<GroupDTO>() {
- public void onEvent(final GroupDTO groupDTO) {
- getStateManager().gotoToken(groupDTO.getShortName());
- }
- });
- changeToCollabMenuItem = new GridMenuItem<GroupDTO>("images/arrow-down-green.gif", i18n
- .t("Change to collaborator"), new Slot<GroupDTO>() {
- public void onEvent(final GroupDTO group) {
- Site.showProgressProcessing();
- snService.setCollabAsAdmin(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
- group.getShortName(), new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Type of member changed"));
- getStateManager().setSocialNetwork(result);
- }
- });
- }
- });
- removeMemberMenuItem = new GridMenuItem<GroupDTO>("images/del.gif", i18n.t("Remove this member"),
- new Slot<GroupDTO>() {
- public void onEvent(final GroupDTO group) {
- Site.showProgressProcessing();
- snService.deleteMember(session.getUserHash(), session.getCurrentState().getGroup()
- .getShortName(), group.getShortName(),
- new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member removed"));
- getStateManager().reload();
- // in the future, only if I cannot
- // be affected:
- // snService.stateManager.reloadSocialNetwork((SocialNetworkResultDTO)
- // result);
- }
- });
- }
- });
- changeToAdminMenuItem = new GridMenuItem<GroupDTO>("images/arrow-up-green.gif", i18n.t("Change to admin"),
- new Slot<GroupDTO>() {
- public void onEvent(final GroupDTO group) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.addAdminMember(session.getUserHash(), session.getCurrentState().getGroup()
- .getShortName(), group.getShortName(),
- new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member added as admin"));
- getStateManager().setSocialNetwork(result);
- }
- });
- }
- });
- acceptJoinGroupMenuItem = new GridMenuItem<GroupDTO>("images/accept.gif", i18n.t("Accept this member"),
- new Slot<GroupDTO>() {
- public void onEvent(final GroupDTO group) {
- Site.showProgressProcessing();
- snService.AcceptJoinGroup(session.getUserHash(), session.getCurrentState().getGroup()
- .getShortName(), group.getShortName(),
- new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member accepted"));
- getStateManager().setSocialNetwork(result);
- }
- });
- }
- });
- denyJoinGroupMenuItem = new GridMenuItem<GroupDTO>("images/cancel.gif", i18n.t("Don't accept this member"),
- new Slot<GroupDTO>() {
- public void onEvent(final GroupDTO group) {
- Site.showProgressProcessing();
- final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
- server.denyJoinGroup(session.getUserHash(),
- session.getCurrentState().getGroup().getShortName(), group.getShortName(),
- new AsyncCallbackSimple<SocialNetworkResultDTO>() {
- public void onSuccess(final SocialNetworkResultDTO result) {
- Site.hideProgress();
- Site.info(i18n.t("Member rejected"));
- getStateManager().setSocialNetwork(result);
- }
- });
- }
- });
- }
-
- private StateManager getStateManager() {
- return stateManager.get();
- }
-
private boolean isMember(final boolean userIsAdmin, final boolean userIsCollab) {
return userIsAdmin || userIsCollab;
}
+ @SuppressWarnings("unchecked")
private void setGroupMembers(final SocialNetworkDTO socialNetwork, final AccessRightsDTO rights) {
final AccessListsDTO accessLists = socialNetwork.getAccessLists();
@@ -320,34 +118,22 @@
if (userCanView) {
for (final GroupDTO admin : adminsList) {
- final GridItem<GroupDTO> gridItem = createDefMemberMenu(admin, adminGroup);
- final GridMenu<GroupDTO> menu = gridItem.getMenu();
- if (rights.isAdministrable()) {
- menu.addMenuItem(changeToCollabMenuItem);
- menu.addMenuItem(removeMemberMenuItem);
- }
- view.addItem(gridItem);
+ view
+ .addItem(createGridItem(adminCategory, admin, rights, changeToCollabMenuItem,
+ removeMemberMenuItem));
}
for (final GroupDTO collab : collabList) {
- final GridItem<GroupDTO> gridItem = createDefMemberMenu(collab, collabGroup);
- final GridMenu<GroupDTO> menu = gridItem.getMenu();
- if (rights.isAdministrable()) {
- menu.addMenuItem(changeToAdminMenuItem);
- menu.addMenuItem(removeMemberMenuItem);
- }
- view.addItem(gridItem);
+ view
+ .addItem(createGridItem(collabCategory, collab, rights, changeToAdminMenuItem,
+ removeMemberMenuItem));
}
for (final GroupDTO pendingCollab : pendingCollabsList) {
- final GridItem<GroupDTO> gridItem = createDefMemberMenu(pendingCollab, pendigGroup);
- final GridMenu<GroupDTO> menu = gridItem.getMenu();
- if (rights.isAdministrable()) {
- menu.addMenuItem(acceptJoinGroupMenuItem);
- menu.addMenuItem(denyJoinGroupMenuItem);
- }
- view.addItem(gridItem);
+ view.addItem(createGridItem(pendigCategory, pendingCollab, rights, acceptJoinGroupMenuItem,
+ denyJoinGroupMenuItem));
}
}
view.setDropDownContentVisible(true);
view.setVisible(true);
}
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2008-07-21 02:46:08 UTC (rev 811)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryPresenter.java 2008-07-21 14:30:36 UTC (rev 812)
@@ -19,66 +19,77 @@
*/
package org.ourproject.kune.workspace.client.socialnet;
-import java.util.Iterator;
import java.util.List;
-import org.ourproject.kune.platf.client.AbstractPresenter;
-import org.ourproject.kune.platf.client.PlatformEvents;
-import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.dto.LinkDTO;
import org.ourproject.kune.platf.client.dto.ParticipationDataDTO;
import org.ourproject.kune.platf.client.dto.StateDTO;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
+import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
+import org.ourproject.kune.platf.client.services.ImageUtils;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
import org.ourproject.kune.workspace.client.workspace.ParticipationSummary;
-public class ParticipationSummaryPresenter extends AbstractPresenter implements ParticipationSummary {
+import com.calclab.suco.client.container.Provider;
+public class ParticipationSummaryPresenter extends SocialNetworkPresenter implements ParticipationSummary {
+
private ParticipationSummaryView view;
+ private final GridGroup adminCategory;
+ private GridGroup collabCategory;
+ private final GridGroup collabOnlyCategory;
- private final I18nTranslationService i18n;
-
- private final String admin_subtitle;
-
- private final MemberAction goto_group_command;
-
- public ParticipationSummaryPresenter(final I18nTranslationService i18n) {
- this.i18n = i18n;
- admin_subtitle = i18n.t("admin in:");
- goto_group_command = new MemberAction(i18n.t("Visit this group homepage"), PlatformEvents.GOTO);
+ public ParticipationSummaryPresenter(final I18nUITranslationService i18n,
+ final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session,
+ final SocialNetworkServiceAsync snService) {
+ super(i18n, stateManagerProvider, imageUtils, session, snService);
+ adminCategory = new GridGroup("admin in:", " ", i18n.tWithNT("Administrate these groups",
+ "talking about a person"), false);
+ collabCategory = new GridGroup(i18n.t("and as collaborator in:"), " ", i18n.t("Collaborate in these groups"),
+ false);
+ collabOnlyCategory = new GridGroup(i18n.t("collaborator in:"), " ", i18n.t("Collaborate in these groups"),
+ false);
+ super.addGroupOperation(gotoGroupMenuItem, false);
}
- public View getView() {
- return view;
- }
-
public void init(final ParticipationSummaryView view) {
this.view = view;
}
+ @SuppressWarnings("unchecked")
public void setState(final StateDTO state) {
final ParticipationDataDTO participation = state.getParticipation();
final AccessRightsDTO rights = state.getGroupRights();
- view.setDropDownContentVisible(false);
+ view.setContentVisible(false);
view.clear();
- final MemberAction[] adminsActions = {
- new MemberAction(i18n.t("Don't participate more in this group"), WorkspaceEvents.UNJOIN_GROUP),
- goto_group_command };
- final MemberAction[] collabActions = adminsActions;
- final MemberAction[] viewerActions = { goto_group_command };
final List<LinkDTO> groupsIsAdmin = participation.getGroupsIsAdmin();
final List<LinkDTO> groupsIsCollab = participation.getGroupsIsCollab();
- boolean userIsAdmin = rights.isAdministrable();
- final boolean userIsCollab = !userIsAdmin && rights.isEditable();
- final boolean userIsMember = isMember(userIsAdmin, userIsCollab);
final int numAdmins = groupsIsAdmin.size();
final int numCollaborators = groupsIsCollab.size();
+ if (numAdmins == 0) {
+ collabCategory = collabOnlyCategory;
+ }
+ for (final LinkDTO link : groupsIsAdmin) {
+ // FIXME: return GroupDTO not LinkDTO from server
+ final GroupDTO group = new GroupDTO();
+ group.setShortName(link.getShortName());
+ group.setLongName(link.getLongName());
+ view.addItem(createGridItem(adminCategory, group, rights, unJoinMenuItem));
+ }
+ for (final LinkDTO link : groupsIsCollab) {
+ // FIXME: return GroupDTO not LinkDTO from server
+ final GroupDTO group = new GroupDTO();
+ group.setShortName(link.getShortName());
+ group.setLongName(link.getLongName());
+ view.addItem(createGridItem(collabCategory, group, rights, unJoinMenuItem));
+ }
if (numAdmins > 0 || numCollaborators > 0) {
- addParticipants(groupsIsAdmin, groupsIsCollab, numAdmins, numCollaborators, userIsAdmin, userIsMember,
- adminsActions, collabActions, viewerActions);
- view.setDropDownContentVisible(true);
+ view.setContentVisible(true);
view.show();
} else {
hide();
@@ -90,48 +101,8 @@
view.setTheme(oldTheme, newTheme);
}
- private void addParticipants(final List<LinkDTO> groupsIsAdmin, final List<LinkDTO> groupsIsCollab,
- final int numAdmins, final int numCollaborators, final boolean userIsAdmin, boolean userIsMember,
- final MemberAction[] adminsActions, final MemberAction[] collabActions, final MemberAction[] viewerActions) {
- MemberAction[] actions;
- String collabTitle;
-
- if (!userIsMember) {
- actions = viewerActions;
- } else {
- if (userIsAdmin) {
- actions = adminsActions;
- } else {
- actions = collabActions;
- }
- }
- if (numAdmins > 0) {
- view.addCategory(admin_subtitle, i18n.tWithNT("Administrate these groups", "talking about a person"));
- iteraList(admin_subtitle, groupsIsAdmin, actions);
- collabTitle = i18n.t("and as collaborator in:");
- } else {
- collabTitle = i18n.t("collaborator in:");
- }
- if (numCollaborators > 0) {
- view.addCategory(collabTitle, i18n.t("Collaborate in these groups"));
- iteraList(collabTitle, groupsIsCollab, actions);
- }
-
- }
-
private void hide() {
view.hide();
}
- private boolean isMember(final boolean userIsAdmin, final boolean userIsCollab) {
- return userIsAdmin || userIsCollab;
- }
-
- private void iteraList(final String categoryName, final List<LinkDTO> groupList, final MemberAction[] actions) {
- final Iterator<LinkDTO> iter = groupList.iterator();
- while (iter.hasNext()) {
- final LinkDTO group = iter.next();
- view.addCategoryMember(categoryName, group.getShortName(), group.getLongName(), actions);
- }
- }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java 2008-07-21 02:46:08 UTC (rev 811)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ParticipationSummaryView.java 2008-07-21 14:30:36 UTC (rev 812)
@@ -20,19 +20,19 @@
package org.ourproject.kune.workspace.client.socialnet;
import org.ourproject.kune.platf.client.View;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
public interface ParticipationSummaryView extends View {
- void addCategory(String name, String title);
+ void addItem(GridItem<GroupDTO> createGridItem);
- void addCategoryMember(String categoryName, String name, String title, MemberAction[] memberActions);
-
void clear();
void hide();
- void setDropDownContentVisible(boolean visible);
+ void setContentVisible(boolean visible);
void setTheme(WsTheme oldTheme, WsTheme newTheme);
Added: 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-07-21 02:46:08 UTC (rev 811)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-07-21 14:30:36 UTC (rev 812)
@@ -0,0 +1,267 @@
+package org.ourproject.kune.workspace.client.socialnet;
+
+import org.ourproject.kune.platf.client.dto.AccessRightsDTO;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
+import org.ourproject.kune.platf.client.dto.SocialNetworkDTO;
+import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO;
+import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple;
+import org.ourproject.kune.platf.client.rpc.SocialNetworkService;
+import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync;
+import org.ourproject.kune.platf.client.services.ImageDescriptor;
+import org.ourproject.kune.platf.client.services.ImageUtils;
+import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.platf.client.state.StateManager;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridButton;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridGroup;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridMenu;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuItem;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuItemCollection;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.sitebar.Site;
+
+import com.calclab.suco.client.container.Provider;
+import com.calclab.suco.client.signal.Slot;
+
+public class SocialNetworkPresenter {
+
+ protected GridButton addMember;
+ protected GridButton requestJoin;
+ protected GridButton unJoinButton;
+ protected GridMenuItem<GroupDTO> changeToCollabMenuItem;
+ protected GridMenuItem<GroupDTO> removeMemberMenuItem;
+ protected GridMenuItem<GroupDTO> changeToAdminMenuItem;
+ protected GridMenuItem<GroupDTO> acceptJoinGroupMenuItem;
+ protected GridMenuItem<GroupDTO> denyJoinGroupMenuItem;
+ protected GridMenuItem<GroupDTO> gotoMemberMenuItem;
+ protected GridMenuItem<GroupDTO> gotoGroupMenuItem;
+ protected GridMenuItem<GroupDTO> unJoinMenuItem;
+ private final I18nUITranslationService i18n;
+ private final Provider<StateManager> stateManagerProvider;
+ private final SocialNetworkServiceAsync snService;
+ private final Session session;
+ private final GridMenuItemCollection<GroupDTO> otherOperations;
+ private final GridMenuItemCollection<GroupDTO> otherLoggedOperations;
+ private final ImageUtils imageUtils;
+
+ public SocialNetworkPresenter(final I18nUITranslationService i18n,
+ final Provider<StateManager> stateManagerProvider, final ImageUtils imageUtils, final Session session,
+ final SocialNetworkServiceAsync snService) {
+ this.i18n = i18n;
+ this.stateManagerProvider = stateManagerProvider;
+ this.imageUtils = imageUtils;
+ this.session = session;
+ this.snService = snService;
+ createButtons();
+ createMenuActions();
+ otherOperations = new GridMenuItemCollection<GroupDTO>();
+ otherLoggedOperations = new GridMenuItemCollection<GroupDTO>();
+ }
+
+ public void addGroupOperation(final GridMenuItem<GroupDTO> operation, final boolean mustBeLogged) {
+ GridMenuItemCollection<GroupDTO> collection;
+ collection = mustBeLogged ? otherLoggedOperations : otherOperations;
+ collection.add(operation);
+ }
+
+ public void removeGroupOperation(final GridMenuItem<GroupDTO> operation, final boolean mustBeLogged) {
+ GridMenuItemCollection<GroupDTO> collection;
+ collection = mustBeLogged ? otherLoggedOperations : otherOperations;
+ collection.remove(operation);
+ }
+
+ protected GridItem<GroupDTO> createGridItem(final GridGroup groupCategory, final GroupDTO group,
+ final AccessRightsDTO rights, final GridMenuItem<GroupDTO>... gridMenuItems) {
+ final GridItem<GroupDTO> gridItem = createDefMemberMenu(group, groupCategory);
+ final GridMenu<GroupDTO> menu = gridItem.getMenu();
+ if (rights.isAdministrable()) {
+ for (final GridMenuItem<GroupDTO> item : gridMenuItems) {
+ menu.addMenuItem(item);
+ }
+ }
+ return gridItem;
+ }
+
+ protected StateManager getStateManager() {
+ return stateManagerProvider.get();
+ }
+
+ private void createButtons() {
+ addMember = new GridButton("images/add-green.gif", i18n.t("Add member"), i18n
+ .t("Add a group or a person as member of this group"), new Slot<String>() {
+ public void onEvent(final String parameter) {
+ // TODO
+ // GroupLiveSearchComponent groupLiveSearchComponent
+ // = workspace.getGroupLiveSearchComponent();
+ // groupLiveSearchComponent.addListener(listener);
+ // groupLiveSearchComponent.show();
+ }
+ });
+
+ requestJoin = new GridButton("images/add-green.gif", i18n.t("Participate"), i18n
+ .t("Request to participate in this group"), new Slot<String>() {
+ public void onEvent(final String parameter) {
+ Site.showProgressProcessing();
+ snService.requestJoinGroup(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
+ new AsyncCallbackSimple<Object>() {
+ public void onSuccess(final Object result) {
+ Site.hideProgress();
+ final String resultType = (String) result;
+ if (resultType == SocialNetworkDTO.REQ_JOIN_ACEPTED) {
+ Site.info(i18n.t("You are now member of this group"));
+ getStateManager().reload();
+ }
+ if (resultType == SocialNetworkDTO.REQ_JOIN_DENIED) {
+ Site.important(i18n.t("Sorry this is a closed group"));
+ }
+ if (resultType == SocialNetworkDTO.REQ_JOIN_WAITING_MODERATION) {
+ Site.info(i18n.t("Requested. Waiting for admins decision"));
+ }
+ }
+ });
+ }
+ });
+
+ unJoinButton = new GridButton("images/del.gif", i18n.t("Unjoin"), i18n
+ .t("Don't participate more as a member in this group"), new Slot<String>() {
+ public void onEvent(final String parameter) {
+ removeMemberAction();
+ }
+ });
+ }
+
+ private GridItem<GroupDTO> createDefMemberMenu(final GroupDTO group, final GridGroup gridGroup) {
+ final GridMenu<GroupDTO> menu = new GridMenu<GroupDTO>(group);
+ final String longName = group.getLongName();
+ final GridItem<GroupDTO> gridItem = new GridItem<GroupDTO>(group, gridGroup, group.getShortName(), imageUtils
+ .getImageHtml(ImageDescriptor.groupDefIcon), longName, longName, " ", longName, i18n.t(
+ "User name: [%s]", group.getShortName()), menu);
+ if (otherOperations != null) {
+ menu.addMenuItemList(otherOperations);
+ }
+ if (session.isLogged() && otherOperations != null) {
+ menu.addMenuItemList(otherLoggedOperations);
+ }
+ return gridItem;
+ }
+
+ private void createMenuActions() {
+ gotoGroupMenuItem = new GridMenuItem<GroupDTO>("images/group-home.gif", i18n.t("Visit this group homepage"),
+ new Slot<GroupDTO>() {
+ public void onEvent(final GroupDTO groupDTO) {
+ getStateManager().gotoToken(groupDTO.getShortName());
+ }
+ });
+ gotoMemberMenuItem = new GridMenuItem<GroupDTO>("images/group-home.gif", i18n.t("Visit this member homepage"),
+ new Slot<GroupDTO>() {
+ public void onEvent(final GroupDTO groupDTO) {
+ getStateManager().gotoToken(groupDTO.getShortName());
+ }
+ });
+ unJoinMenuItem = new GridMenuItem<GroupDTO>("images/del.gif", i18n
+ .t("Don't participate more as a member in this group"), new Slot<GroupDTO>() {
+ public void onEvent(final GroupDTO groupDTO) {
+ removeMemberAction(groupDTO);
+ }
+ });
+ changeToCollabMenuItem = new GridMenuItem<GroupDTO>("images/arrow-down-green.gif", i18n
+ .t("Change to collaborator"), new Slot<GroupDTO>() {
+ public void onEvent(final GroupDTO group) {
+ Site.showProgressProcessing();
+ snService.setCollabAsAdmin(session.getUserHash(), session.getCurrentState().getGroup().getShortName(),
+ group.getShortName(), new AsyncCallbackSimple<SocialNetworkResultDTO>() {
+ public void onSuccess(final SocialNetworkResultDTO result) {
+ Site.hideProgress();
+ Site.info(i18n.t("Type of member changed"));
+ getStateManager().setSocialNetwork(result);
+ }
+ });
+ }
+ });
+ removeMemberMenuItem = new GridMenuItem<GroupDTO>("images/del.gif", i18n.t("Remove this member"),
+ new Slot<GroupDTO>() {
+ public void onEvent(final GroupDTO group) {
+ Site.showProgressProcessing();
+ snService.deleteMember(session.getUserHash(), session.getCurrentState().getGroup()
+ .getShortName(), group.getShortName(),
+ new AsyncCallbackSimple<SocialNetworkResultDTO>() {
+ public void onSuccess(final SocialNetworkResultDTO result) {
+ Site.hideProgress();
+ Site.info(i18n.t("Member removed"));
+ getStateManager().reload();
+ // in the future, only if I cannot
+ // be affected:
+ // snService.stateManager.reloadSocialNetwork((SocialNetworkResultDTO)
+ // result);
+ }
+ });
+ }
+ });
+ changeToAdminMenuItem = new GridMenuItem<GroupDTO>("images/arrow-up-green.gif", i18n.t("Change to admin"),
+ new Slot<GroupDTO>() {
+ public void onEvent(final GroupDTO group) {
+ Site.showProgressProcessing();
+ final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
+ server.addAdminMember(session.getUserHash(), session.getCurrentState().getGroup()
+ .getShortName(), group.getShortName(),
+ new AsyncCallbackSimple<SocialNetworkResultDTO>() {
+ public void onSuccess(final SocialNetworkResultDTO result) {
+ Site.hideProgress();
+ Site.info(i18n.t("Member added as admin"));
+ getStateManager().setSocialNetwork(result);
+ }
+ });
+ }
+ });
+ acceptJoinGroupMenuItem = new GridMenuItem<GroupDTO>("images/accept.gif", i18n.t("Accept this member"),
+ new Slot<GroupDTO>() {
+ public void onEvent(final GroupDTO group) {
+ Site.showProgressProcessing();
+ snService.AcceptJoinGroup(session.getUserHash(), session.getCurrentState().getGroup()
+ .getShortName(), group.getShortName(),
+ new AsyncCallbackSimple<SocialNetworkResultDTO>() {
+ public void onSuccess(final SocialNetworkResultDTO result) {
+ Site.hideProgress();
+ Site.info(i18n.t("Member accepted"));
+ getStateManager().setSocialNetwork(result);
+ }
+ });
+ }
+ });
+ denyJoinGroupMenuItem = new GridMenuItem<GroupDTO>("images/cancel.gif", i18n.t("Don't accept this member"),
+ new Slot<GroupDTO>() {
+ public void onEvent(final GroupDTO group) {
+ Site.showProgressProcessing();
+ final SocialNetworkServiceAsync server = SocialNetworkService.App.getInstance();
+ server.denyJoinGroup(session.getUserHash(),
+ session.getCurrentState().getGroup().getShortName(), group.getShortName(),
+ new AsyncCallbackSimple<SocialNetworkResultDTO>() {
+ public void onSuccess(final SocialNetworkResultDTO result) {
+ Site.hideProgress();
+ Site.info(i18n.t("Member rejected"));
+ getStateManager().setSocialNetwork(result);
+ }
+ });
+ }
+ });
+ }
+
+ private void removeMemberAction() {
+ removeMemberAction(session.getCurrentState().getGroup());
+ }
+
+ private void removeMemberAction(final GroupDTO groupDTO) {
+ Site.showProgressProcessing();
+ snService.unJoinGroup(session.getUserHash(), groupDTO.getShortName(),
+ new AsyncCallbackSimple<SocialNetworkResultDTO>() {
+ public void onSuccess(final SocialNetworkResultDTO result) {
+ Site.hideProgress();
+ Site.info(i18n.t("Removed as member"));
+ getStateManager().reload();
+ // in the future with user info:
+ // services.stateManager.reloadSocialNetwork((SocialNetworkResultDTO)
+ // result);
+ }
+ });
+ }
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java 2008-07-21 02:46:08 UTC (rev 811)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/ui/ParticipationSummaryPanel.java 2008-07-21 14:30:36 UTC (rev 812)
@@ -19,54 +19,51 @@
*/
package org.ourproject.kune.workspace.client.socialnet.ui;
-import org.ourproject.kune.platf.client.AbstractPresenter;
-import org.ourproject.kune.platf.client.PlatformEvents;
+import org.ourproject.kune.platf.client.dto.GroupDTO;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
-import org.ourproject.kune.platf.client.services.Images;
-import org.ourproject.kune.platf.client.ui.UIConstants;
-import org.ourproject.kune.platf.client.ui.stacks.StackSubItemAction;
-import org.ourproject.kune.platf.client.ui.stacks.StackedDropDownPanel;
-import org.ourproject.kune.workspace.client.WorkspaceEvents;
-import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryView;
-import org.ourproject.kune.workspace.client.socialnet.MemberAction;
+import org.ourproject.kune.platf.client.ui.DropDownPanel;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridItem;
+import org.ourproject.kune.platf.client.ui.gridmenu.GridMenuPanel;
+import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryPresenter;
import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryView;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.EntitySummary;
import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
-import com.google.gwt.user.client.ui.AbstractImagePrototype;
+import com.gwtext.client.widgets.BoxComponent;
+import com.gwtext.client.widgets.event.ContainerListenerAdapter;
-public class ParticipationSummaryPanel extends StackedDropDownPanel implements ParticipationSummaryView {
+public class ParticipationSummaryPanel extends DropDownPanel implements ParticipationSummaryView {
- private static final boolean COUNTS_VISIBLE = false;
- private final Images img = Images.App.getInstance();
+ private final GridMenuPanel<GroupDTO> gridMenuPanel;
- public ParticipationSummaryPanel(final AbstractPresenter presenter, final I18nTranslationService i18n,
+ public ParticipationSummaryPanel(final ParticipationSummaryPresenter presenter, final I18nTranslationService i18n,
final WorkspaceSkeleton ws) {
- super(presenter, "#00D4AA", i18n.t("Participates as..."), i18n.t("Groups in which participates"),
- COUNTS_VISIBLE);
+ super(true);
+ super.setHeaderText(i18n.t("Participates as..."));
+ super.setHeaderTitle(i18n.t("Groups in which participates"));
+ super.setBorderStylePrimaryName("k-dropdownouter-part");
+ super.addStyleName("kune-Margin-Medium-tl");
+ gridMenuPanel = new GridMenuPanel<GroupDTO>(i18n.t("This user is not member of any group"), true, false, false,
+ false, false);
+ final EntitySummary entitySummary = ws.getEntitySummary();
+ entitySummary.addInSummary(this);
+ entitySummary.addListener(new ContainerListenerAdapter() {
+ @Override
+ public void onResize(final BoxComponent component, final int adjWidth, final int adjHeight,
+ final int rawWidth, final int rawHeight) {
+ gridMenuPanel.setWidth(adjWidth);
+ }
+ });
+ this.setContent(gridMenuPanel);
ws.getEntitySummary().addInSummary(this);
}
- public void addCategory(final String name, final String title) {
- super.addStackItem(name, title, COUNTS_VISIBLE);
+ public void addItem(final GridItem<GroupDTO> gridItem) {
+ gridMenuPanel.addItem(gridItem);
}
- public void addCategory(final String name, final String title, final String iconType) {
- super.addStackItem(name, title, getIcon(iconType), UIConstants.ICON_HORIZ_ALIGN_RIGHT, COUNTS_VISIBLE);
- }
-
- public void addCategoryMember(final String categoryName, final String name, final String title,
- final MemberAction[] memberActions) {
- final StackSubItemAction[] subItems = new StackSubItemAction[memberActions.length];
- for (int i = 0; i < memberActions.length; i++) {
- subItems[i] = new StackSubItemAction(getIconFronEvent(memberActions[i].getAction()), memberActions[i]
- .getText(), memberActions[i].getAction());
- }
-
- super.addStackSubItem(categoryName, img.groupDefIcon(), name, title, subItems);
- }
-
public void clear() {
- super.clear();
+ gridMenuPanel.removeAll();
}
public void hide() {
@@ -77,21 +74,4 @@
this.setVisible(true);
}
- private AbstractImagePrototype getIcon(final String event) {
- if (event == GroupMembersSummaryView.ICON_ALERT) {
- return img.alert();
- }
- throw new IndexOutOfBoundsException("Icon unknown in ParticipationPanelk");
- }
-
- private AbstractImagePrototype getIconFronEvent(final String event) {
- if (event == WorkspaceEvents.UNJOIN_GROUP) {
- return img.del();
- }
- if (event == PlatformEvents.GOTO) {
- return img.groupHome();
- }
- throw new IndexOutOfBoundsException("Event unknown in ParticipationPanel");
- }
-
}
1
0
r811 - in trunk/src/main/java/org/ourproject/kune: platf/client/app workspace/client/search workspace/client/ui/newtmp/sitebar/sitelogo workspace/client/ui/newtmp/skel
by vjrj 21 Jul '08
by vjrj 21 Jul '08
21 Jul '08
Author: vjrj
Date: 2008-07-21 04:46:08 +0200 (Mon, 21 Jul 2008)
New Revision: 811
Modified:
trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java
trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherView.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitelogo/SiteLogoPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java
Log:
SiteSearcher fixes
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java 2008-07-21 02:05:26 UTC (rev 810)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java 2008-07-21 02:46:08 UTC (rev 811)
@@ -65,8 +65,6 @@
// Temporary new ws
final WorkspaceSkeleton ws = kune.getInstance(WorkspaceSkeleton.class);
- ws.mask();
-
ws.show();
ws.getEntityWorkspace().getContentTopBar().add(new Label("Sorry, kune workspace under heavy refactorization"));
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java 2008-07-21 02:05:26 UTC (rev 810)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java 2008-07-21 02:46:08 UTC (rev 811)
@@ -31,7 +31,6 @@
import com.gwtext.client.core.RegionPosition;
import com.gwtext.client.data.FieldDef;
import com.gwtext.client.data.Record;
-import com.gwtext.client.data.SimpleStore;
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
import com.gwtext.client.widgets.Button;
@@ -42,15 +41,14 @@
import com.gwtext.client.widgets.Window;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.event.PanelListenerAdapter;
-import com.gwtext.client.widgets.event.WindowListenerAdapter;
-import com.gwtext.client.widgets.form.ComboBox;
import com.gwtext.client.widgets.form.Field;
import com.gwtext.client.widgets.form.FormPanel;
-import com.gwtext.client.widgets.form.event.ComboBoxListenerAdapter;
+import com.gwtext.client.widgets.form.TextField;
import com.gwtext.client.widgets.form.event.FieldListenerAdapter;
import com.gwtext.client.widgets.grid.ColumnConfig;
import com.gwtext.client.widgets.grid.ColumnModel;
import com.gwtext.client.widgets.grid.GridPanel;
+import com.gwtext.client.widgets.grid.GridView;
import com.gwtext.client.widgets.grid.event.GridCellListenerAdapter;
import com.gwtext.client.widgets.layout.BorderLayoutData;
import com.gwtext.client.widgets.layout.FitLayout;
@@ -60,8 +58,7 @@
private final Window dialog;
private final SiteSearcherPresenter presenter;
private Store groupStore;
- private ComboBox searchCombo;
- private Store historyStore;
+ private TextField searchField;
private Store contentStore;
private GridPanel groupsGrid;
private GridPanel contentGrid;
@@ -76,8 +73,8 @@
dialog = createDialog();
}
- public String getComboTextToSearch() {
- return searchCombo.getValue();
+ public String getTextToSearch() {
+ return searchField.getValueAsString();
}
public void hide() {
@@ -85,7 +82,7 @@
}
public void search(final String text, final SiteSearcherType type) {
- searchCombo.setValue(text);
+ searchField.setValue(text);
switch (type) {
case group_user:
query(groupStore, groupsGrid, text);
@@ -177,12 +174,6 @@
dialog.setCloseAction(Window.HIDE);
- dialog.addListener(new WindowListenerAdapter() {
- public void onCollapse(final Panel panel) {
- // dialog.hide();
- }
- });
-
return dialog;
}
@@ -197,56 +188,26 @@
form.setWidth(330);
form.setHideLabels(true);
- historyStore = new SimpleStore(new String[] { "term" }, presenter.getSearchHistory());
+ searchField = new TextField();
+ searchField.setWidth(300);
+ searchField.addListener(new FieldListenerAdapter() {
- searchCombo = new ComboBox();
- searchCombo.setStore(historyStore);
- searchCombo.setDisplayField("term");
- searchCombo.setTypeAhead(false);
- searchCombo.setLoadingText(i18n.t("Searching..."));
- searchCombo.setWidth(300);
- searchCombo.setPageSize(10);
- searchCombo.setMode(ComboBox.LOCAL);
- searchCombo.setMinChars(1);
- searchCombo.setValueField("term");
- searchCombo.setForceSelection(false);
- searchCombo.setEditable(true);
- historyStore.load();
- searchCombo.addListener(new ComboBoxListenerAdapter() {
- public void onSelect(final ComboBox comboBox, final Record record, final int index) {
- presenter.doSearch(getComboTextToSearch());
- historyStore = new SimpleStore(new String[] { "term" }, presenter.getSearchHistory());
- searchCombo.setStore(historyStore);
- historyStore.load();
- }
- });
- searchCombo.addListener(new FieldListenerAdapter() {
- public void onChange(final Field field, final Object newVal, final Object oldVal) {
- // Maybe we use...
- }
-
public void onSpecialKey(final Field field, final EventObject e) {
switch (e.getKey()) {
case KeyboardListener.KEY_ENTER:
- Log.debug("Enter pressed");
- Log.debug("field: " + field.getValueAsString());
- Log.debug("field2: " + getComboTextToSearch());
presenter.doSearch(field.getValueAsString());
- historyStore = new SimpleStore(new String[] { "term" }, presenter.getSearchHistory());
- historyStore.load();
- searchCombo.setStore(historyStore);
break;
}
e.stopEvent();
}
});
- form.add(searchCombo);
+ form.add(searchField);
final Button searchBtn = new Button(i18n.tWithNT("Search", "used in button"));
searchBtn.addListener(new ButtonListenerAdapter() {
public void onClick(final Button button, final EventObject e) {
- presenter.doSearch(getComboTextToSearch());
+ presenter.doSearch(getTextToSearch());
}
});
hp.add(form);
@@ -291,12 +252,13 @@
final String gridName = type == SiteSearcherType.group_user ? "group-search" : "content-search";
final GridPanel grid = new GridPanel(gridName, 474, 250, store, columnModel);
+
createPagingToolbar(store, grid);
grid.setHideColumnHeader(true);
- // final GridView view = new GridView();
- // view.setForceFit(true);
- // // view.setEnableRowBody(true);
- // grid.setView(view);
+ final GridView view = new GridView();
+ view.setForceFit(true);
+ view.setEmptyText(i18n.t("No results"));
+ grid.setView(view);
grid.addListener(new PanelListenerAdapter() {
public void onRender(final Component component) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java 2008-07-21 02:05:26 UTC (rev 810)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPresenter.java 2008-07-21 02:46:08 UTC (rev 811)
@@ -26,8 +26,6 @@
import org.ourproject.kune.platf.client.View;
import org.ourproject.kune.workspace.client.sitebar.Site;
-import com.allen_sauer.gwt.log.client.Log;
-
public class SiteSearcherPresenter extends AbstractPresenter implements SiteSearcher {
private SiteSearcherView view;
@@ -44,12 +42,11 @@
}
public void doSearch(final SiteSearcherType typeOfSearch) {
- doSearchOfType(view.getComboTextToSearch(), typeOfSearch);
+ doSearchOfType(view.getTextToSearch(), typeOfSearch);
}
public void doSearch(final String text) {
searchHistory.put(text, null);
- Log.debug("Search History: " + searchHistory.toString());
Site.hideProgress();
view.search(text, currentSearch);
view.show();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherView.java 2008-07-21 02:05:26 UTC (rev 810)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherView.java 2008-07-21 02:46:08 UTC (rev 811)
@@ -23,7 +23,7 @@
public interface SiteSearcherView extends View {
- String getComboTextToSearch();
+ String getTextToSearch();
void hide();
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitelogo/SiteLogoPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitelogo/SiteLogoPanel.java 2008-07-21 02:05:26 UTC (rev 810)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/sitelogo/SiteLogoPanel.java 2008-07-21 02:46:08 UTC (rev 811)
@@ -12,7 +12,6 @@
public SiteLogoPanel(final SiteLogoPresenter presenter, final WorkspaceSkeleton ws) {
siteLogoImg = new Image();
final SiteBar siteBar = ws.getSiteBar();
- siteBar.addSpacer();
siteBar.add(siteLogoImg);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java 2008-07-21 02:05:26 UTC (rev 810)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java 2008-07-21 02:46:08 UTC (rev 811)
@@ -21,6 +21,8 @@
private final ExtElement extRootBody;
public WorkspaceSkeleton() {
+ extRootBody = new ExtElement(RootPanel.getBodyElement());
+ mask();
QuickTips.init(); // extgwt tips
final QuickTip quickTipInstance = QuickTips.getQuickTip();
quickTipInstance.setDismissDelay(8000);
@@ -36,7 +38,6 @@
mainPanel.add(sitebar, DefaultBorderLayout.Position.NORTH, DefaultBorderLayout.DEF_TOOLBAR_HEIGHT);
mainPanel.add(entity.getPanel(), DefaultBorderLayout.Position.CENTER);
container.add(mainPanel.getPanel());
- extRootBody = new ExtElement(RootPanel.getBodyElement());
}
public Panel getEntityMainHeader() {
1
0
Author: vjrj
Date: 2008-07-21 04:05:26 +0200 (Mon, 21 Jul 2008)
New Revision: 810
Added:
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgress.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgressPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgressPresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgressView.java
Modified:
trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java
trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/ui/DocumentReaderControlPanel.java
trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java
trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java
trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java
trunk/src/main/java/org/ourproject/kune/platf/client/app/ui/DesktopPanel.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java
trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java
trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/InitAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedInAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedOutAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/actions/RecalculateWorkspaceAction.java
trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SimpleMessagePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessage.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePanel.java
trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePresenter.java
trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java
Log:
Workspace refactorization
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientNewModule.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -6,6 +6,7 @@
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.workspace.TagsSummary;
import com.calclab.suco.client.container.Container;
@@ -27,7 +28,8 @@
builder.registerProvider(DocumentFactory.class, new Provider<DocumentFactory>() {
public DocumentFactory get() {
return new DocumentFactory(builder.getInstance(I18nUITranslationService.class), builder
- .getInstance(Session.class), builder.getInstance(TagsSummary.class));
+ .getInstance(Session.class), builder.getInstance(TagsSummary.class), builder
+ .getInstance(WorkspaceSkeleton.class));
}
}, SingletonScope.class);
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/ui/DocumentReaderControlPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/ui/DocumentReaderControlPanel.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/cnt/reader/ui/DocumentReaderControlPanel.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -24,7 +24,7 @@
import org.ourproject.kune.docs.client.cnt.reader.DocumentReaderListener;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.ui.CustomPushButton;
-import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.HorizontalPanel;
@@ -35,49 +35,50 @@
private final CustomPushButton deleteBtn;
private final CustomPushButton translateBtn;
- public DocumentReaderControlPanel(final DocumentReaderListener listener, final I18nTranslationService i18n) {
- editBtn = new CustomPushButton(i18n.tWithNT("Edit", "used in button"), new ClickListener() {
- public void onClick(final Widget sender) {
- listener.onEdit();
- editBtn.removeStyleDependentName("up-hovering");
- }
- });
+ public DocumentReaderControlPanel(final DocumentReaderListener listener, final I18nTranslationService i18n,
+ final WorkspaceSkeleton ws) {
+ editBtn = new CustomPushButton(i18n.tWithNT("Edit", "used in button"), new ClickListener() {
+ public void onClick(final Widget sender) {
+ listener.onEdit();
+ editBtn.removeStyleDependentName("up-hovering");
+ }
+ });
- deleteBtn = new CustomPushButton(i18n.tWithNT("Delete", "used in button"), new ClickListener() {
- public void onClick(final Widget sender) {
- listener.onDelete();
- deleteBtn.removeStyleDependentName("up-hovering");
- }
- });
+ deleteBtn = new CustomPushButton(i18n.tWithNT("Delete", "used in button"), new ClickListener() {
+ public void onClick(final Widget sender) {
+ listener.onDelete();
+ deleteBtn.removeStyleDependentName("up-hovering");
+ }
+ });
- translateBtn = new CustomPushButton(i18n.tWithNT("Translate", "used in button"), new ClickListener() {
- public void onClick(final Widget sender) {
- listener.onTranslate();
- translateBtn.removeStyleDependentName("up-hovering");
- Site.showAlertMessage(i18n.t("Sorry, this functionality is currently in development"));
- }
- });
+ translateBtn = new CustomPushButton(i18n.tWithNT("Translate", "used in button"), new ClickListener() {
+ public void onClick(final Widget sender) {
+ listener.onTranslate();
+ translateBtn.removeStyleDependentName("up-hovering");
+ ws.showAlertMessage(i18n.t("Alert"), i18n.t("Sorry, this functionality is currently in development"));
+ }
+ });
- add(editBtn);
- add(deleteBtn);
- add(translateBtn);
- deleteBtn.addStyleName("kune-Button-Small-lSpace");
- translateBtn.addStyleName("kune-Button-Small-lSpace");
- setEditEnabled(false);
- setDeleteEnabled(false);
- setTranslateEnabled(false);
+ add(editBtn);
+ add(deleteBtn);
+ add(translateBtn);
+ deleteBtn.addStyleName("kune-Button-Small-lSpace");
+ translateBtn.addStyleName("kune-Button-Small-lSpace");
+ setEditEnabled(false);
+ setDeleteEnabled(false);
+ setTranslateEnabled(false);
}
public void setDeleteEnabled(final boolean isEnabled) {
- deleteBtn.setVisible(isEnabled);
+ deleteBtn.setVisible(isEnabled);
}
public void setEditEnabled(final boolean isEnabled) {
- editBtn.setVisible(isEnabled);
+ editBtn.setVisible(isEnabled);
}
public void setTranslateEnabled(final boolean isEnabled) {
- translateBtn.setVisible(isEnabled);
+ translateBtn.setVisible(isEnabled);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/docs/client/ui/DocumentFactory.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -52,6 +52,7 @@
import org.ourproject.kune.workspace.client.WorkspaceFactory;
import org.ourproject.kune.workspace.client.component.WorkspaceDeckPanel;
import org.ourproject.kune.workspace.client.ui.ctx.items.ContextItems;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
import org.ourproject.kune.workspace.client.workspace.TagsSummary;
public class DocumentFactory {
@@ -59,11 +60,14 @@
private final I18nTranslationService i18n;
private final Session session;
private final TagsSummary tags;
+ private final WorkspaceSkeleton ws;
- public DocumentFactory(final I18nTranslationService i18n, final Session session, final TagsSummary tags) {
+ public DocumentFactory(final I18nTranslationService i18n, final Session session, final TagsSummary tags,
+ final WorkspaceSkeleton ws) {
this.i18n = i18n;
this.session = session;
this.tags = tags;
+ this.ws = ws;
}
public AdminContext createAdminContext() {
@@ -92,7 +96,7 @@
}
public DocumentReaderControl createDocumentReaderControl(final DocumentReaderListener listener) {
- final DocumentReaderControlView view = new DocumentReaderControlPanel(listener, i18n);
+ final DocumentReaderControlView view = new DocumentReaderControlPanel(listener, i18n, ws);
final DocumentReaderControlPresenter presenter = new DocumentReaderControlPresenter(view);
return presenter;
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationBuilder.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -57,7 +57,6 @@
final Session session = kune.getSession();
Site.showProgressLoading();
- Site.mask();
final KunePlatform platform = kune.getPlatform();
final StateManager stateManager = kune.getStateManager();
@@ -66,6 +65,7 @@
// Temporary new ws
final WorkspaceSkeleton ws = kune.getInstance(WorkspaceSkeleton.class);
+ ws.mask();
ws.show();
ws.getEntityWorkspace().getContentTopBar().add(new Label("Sorry, kune workspace under heavy refactorization"));
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ApplicationDefault.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -26,7 +26,6 @@
import org.ourproject.kune.platf.client.dispatch.DefaultDispatcher;
import org.ourproject.kune.platf.client.dispatch.Dispatcher;
-import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.extend.ExtensibleWidgetsManager;
import org.ourproject.kune.platf.client.services.ColorTheme;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
@@ -36,7 +35,6 @@
import org.ourproject.kune.platf.client.tool.ClientTool;
import org.ourproject.kune.workspace.client.WorkspaceEvents;
import org.ourproject.kune.workspace.client.WorkspaceFactory;
-import org.ourproject.kune.workspace.client.sitebar.bar.SiteBarListener;
import org.ourproject.kune.workspace.client.workspace.Workspace;
public class ApplicationDefault implements Application {
@@ -46,51 +44,52 @@
private StateManager stateManager;
public ApplicationDefault(final Session session, final ExtensibleWidgetsManager extensionPointManager,
- final I18nTranslationService i18n, final ColorTheme colorTheme, final KuneErrorHandler errorHandler) {
- workspace = WorkspaceFactory.createWorkspace(session, extensionPointManager, i18n, colorTheme, errorHandler);
- tools = new HashMap<String, ClientTool>();
- DesktopView desktop = WorkspaceFactory.createDesktop(workspace, new SiteBarListener() {
- public void onChangeState(StateToken token) {
- stateManager.setState(token);
- }
+ final I18nTranslationService i18n, final ColorTheme colorTheme, final KuneErrorHandler errorHandler) {
+ workspace = WorkspaceFactory.createWorkspace(session, extensionPointManager, i18n, colorTheme, errorHandler);
+ tools = new HashMap<String, ClientTool>();
+ // DesktopView desktop = WorkspaceFactory.createDesktop(workspace, new
+ // SiteBarListener() {
+ // public void onChangeState(StateToken token) {
+ // stateManager.setState(token);
+ // }
+ //
+ // public void onUserLoggedOut() {
+ // dispatcher.fire(WorkspaceEvents.USER_LOGGED_OUT, null);
+ // }
+ // }, session);
+ // desktop.attach();
- public void onUserLoggedOut() {
- dispatcher.fire(WorkspaceEvents.USER_LOGGED_OUT, null);
- }
- }, session);
- desktop.attach();
-
}
public ClientTool getTool(final String toolName) {
- return tools.get(toolName);
+ return tools.get(toolName);
}
public Workspace getWorkspace() {
- return workspace;
+ return workspace;
}
public void init(final DefaultDispatcher dispatcher, final StateManager stateManager,
- final HashMap<String, ClientTool> tools) {
- this.dispatcher = dispatcher;
- this.stateManager = stateManager;
- this.tools = tools;
- workspace.attachTools(tools.values().iterator());
+ final HashMap<String, ClientTool> tools) {
+ this.dispatcher = dispatcher;
+ this.stateManager = stateManager;
+ this.tools = tools;
+ workspace.attachTools(tools.values().iterator());
}
public void setGroupState(final String groupShortName) {
- Iterator<ClientTool> iterator = tools.values().iterator();
- while (iterator.hasNext()) {
- ClientTool tool = iterator.next();
- tool.setGroupState(groupShortName);
- }
+ final Iterator<ClientTool> iterator = tools.values().iterator();
+ while (iterator.hasNext()) {
+ final ClientTool tool = iterator.next();
+ tool.setGroupState(groupShortName);
+ }
}
public void start() {
- dispatcher.fireDeferred(WorkspaceEvents.START_APP, null);
+ dispatcher.fireDeferred(WorkspaceEvents.START_APP, null);
}
public void stop() {
- dispatcher.fire(WorkspaceEvents.STOP_APP, null);
+ dispatcher.fire(WorkspaceEvents.STOP_APP, null);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/app/ui/DesktopPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/app/ui/DesktopPanel.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/app/ui/DesktopPanel.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -23,8 +23,6 @@
import org.ourproject.kune.platf.client.app.DesktopView;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.state.Session;
-import org.ourproject.kune.workspace.client.sitebar.SiteBarFactory;
-import org.ourproject.kune.workspace.client.sitebar.bar.SiteBar;
import org.ourproject.kune.workspace.client.sitebar.bar.SiteBarListener;
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessage;
import org.ourproject.kune.workspace.client.workspace.Workspace;
@@ -34,65 +32,68 @@
import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
-import com.gwtext.client.widgets.QuickTip;
-import com.gwtext.client.widgets.QuickTips;
+@Deprecated
public class DesktopPanel extends AbsolutePanel implements DesktopView {
public DesktopPanel(final Workspace workspace, final SiteBarListener listener, final Session session,
- final I18nTranslationService i18n) {
- QuickTips.init(); // extgwt tips
- QuickTip quickTipInstance = QuickTips.getQuickTip();
- quickTipInstance.setDismissDelay(8000);
- quickTipInstance.setHideDelay(500);
- quickTipInstance.setInterceptTitles(true);
- SiteBar siteBar = SiteBarFactory.createSiteBar(listener, session, i18n);
- SiteMessage siteMessage = SiteBarFactory.getSiteMessage();
- this.add((Widget) siteMessage.getView(), calculateMessageWidth(Window.getClientWidth()),
- calculateMessageHeight());
- this.add((Widget) siteBar.getView(), 0, 0);
- this.add((Widget) workspace.getView(), 0, 20);
- this.addStyleName("kunebody");
- initResizeListener(this, workspace, siteMessage);
- resizeDesktop(this, workspace, siteMessage, Window.getClientWidth(), Window.getClientHeight());
+ final I18nTranslationService i18n) {
+ // QuickTips.init(); // extgwt tips
+ // final QuickTip quickTipInstance = QuickTips.getQuickTip();
+ // quickTipInstance.setDismissDelay(8000);
+ // quickTipInstance.setHideDelay(500);
+ // quickTipInstance.setInterceptTitles(true);
+ // SiteBar siteBar = SiteBarFactory.createSiteBar(listener, session,
+ // i18n);
+ // final SiteMessage siteMessage = SiteBarFactory.getSiteMessage();
+ // this.add((Widget) siteMessage.getView(),
+ // calculateMessageWidth(Window.getClientWidth()),
+ // calculateMessageHeight());
+ // this.add((Widget) siteBar.getView(), 0, 0);
+ this.add((Widget) workspace.getView(), 0, 20);
+ this.addStyleName("kunebody");
+ // initResizeListener(this, workspace, siteMessage);
+ // resizeDesktop(this, workspace, siteMessage, Window.getClientWidth(),
+ // Window.getClientHeight());
}
public void attach() {
- RootPanel.get().add(this);
+ RootPanel.get().add(this);
}
private int calculateMessageHeight() {
- return 2;
+ return 2;
}
private int calculateMessageWidth(final int width) {
- return width * 20 / 100 - 10;
+ return width * 20 / 100 - 10;
}
private void initResizeListener(final AbsolutePanel desktop, final Workspace workspace,
- final SiteMessage siteMessage) {
- Window.addWindowResizeListener(new WindowResizeListener() {
- public void onWindowResized(final int width, final int height) {
- resizeDesktop(desktop, workspace, siteMessage, width, height);
- }
- });
+ final SiteMessage siteMessage) {
+ Window.addWindowResizeListener(new WindowResizeListener() {
+ public void onWindowResized(final int width, final int height) {
+ resizeDesktop(desktop, workspace, siteMessage, width, height);
+ }
+ });
}
private void resizeDesktop(final AbsolutePanel desktop, final Workspace workspace, final SiteMessage siteMessage,
- final int clientWidth, final int clientHeight) {
- int width = workspace.calculateWidth(clientWidth);
- int height = workspace.calculateHeight(clientHeight);
- final boolean scroll = width <= Workspace.MIN_WIDTH || height <= Workspace.MIN_HEIGHT ? true : false;
- Window.enableScrolling(scroll);
- if (scroll) {
- desktop.setSize("" + width, "" + height);
- } else {
- desktop.setSize("100%", "100%");
- }
- workspace.adjustSize(width, height);
- siteMessage.adjustWidth(width);
- desktop.setWidgetPosition((Widget) siteMessage.getView(), calculateMessageWidth(width),
- calculateMessageHeight());
+ final int clientWidth, final int clientHeight) {
+ final int width = workspace.calculateWidth(clientWidth);
+ final int height = workspace.calculateHeight(clientHeight);
+ final boolean scroll = width <= Workspace.MIN_WIDTH || height <= Workspace.MIN_HEIGHT ? true : false;
+ Window.enableScrolling(scroll);
+ if (scroll) {
+ desktop.setSize("" + width, "" + height);
+ } else {
+ desktop.setSize("100%", "100%");
+ }
+ workspace.adjustSize(width, height);
+ // siteMessage.adjustWidth(width);
+ // desktop.setWidgetPosition((Widget) siteMessage.getView(),
+ // calculateMessageWidth(width),
+ // calculateMessageHeight());
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneErrorHandler.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -31,18 +31,27 @@
import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.ui.newtmp.skel.WorkspaceSkeleton;
+import com.calclab.suco.client.container.Provider;
import com.google.gwt.core.client.GWT;
public class KuneErrorHandler {
private final Session session;
private final I18nTranslationService i18n;
+ private final Provider<WorkspaceSkeleton> wsProvider;
- public KuneErrorHandler(final Session session, final I18nTranslationService i18n) {
+ public KuneErrorHandler(final Session session, final I18nTranslationService i18n,
+ final Provider<WorkspaceSkeleton> wsProvider) {
this.session = session;
this.i18n = i18n;
+ this.wsProvider = wsProvider;
}
+ public WorkspaceSkeleton getWorkspaceSkeleton() {
+ return wsProvider.get();
+ }
+
public void process(final Throwable caught) {
Site.hideProgress();
try {
@@ -64,8 +73,10 @@
Site.error(i18n.t("Content not found"));
DefaultDispatcher.getInstance().fire(PlatformEvents.GOTO, "");
} catch (final LastAdminInGroupException e) {
- Site.showAlertMessage(i18n.t("Sorry, you are the last admin of this group."
- + " Look for someone to substitute you appropriately as admin before unjoin this group."));
+ getWorkspaceSkeleton().showAlertMessage(
+ i18n.t("Warning"),
+ i18n.t("Sorry, you are the last admin of this group."
+ + " Look for someone to substitute you appropriately as admin before unjoin this group."));
} catch (final AlreadyGroupMemberException e) {
Site.error(i18n.t("This group is already a group member"));
} catch (final AlreadyUserMemberException e) {
@@ -79,7 +90,8 @@
private void doSessionExpired() {
Site.doLogout();
- Site.showAlertMessage(i18n.t("Your session has expired. Please login again."));
+ getWorkspaceSkeleton().showAlertMessage(i18n.t("Session expired"),
+ i18n.t("Your session has expired. Please login again."));
}
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneModule.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -24,6 +24,10 @@
import org.ourproject.kune.workspace.client.search.SiteSearcherPresenter;
import org.ourproject.kune.workspace.client.search.SiteSearcherView;
import org.ourproject.kune.workspace.client.sitebar.Site;
+import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessage;
+import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessagePanel;
+import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessagePresenter;
+import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessageView;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPanelNew;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryPresenterNew;
import org.ourproject.kune.workspace.client.socialnet.GroupMembersSummaryViewNew;
@@ -46,6 +50,9 @@
import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteoptions.SiteOptions;
import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteoptions.SiteOptionsPanel;
import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteoptions.SiteOptionsPresenter;
+import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteprogress.SiteProgress;
+import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteprogress.SiteProgressPanel;
+import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteprogress.SiteProgressPresenter;
import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitepublic.SitePublicSpaceLink;
import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitepublic.SitePublicSpaceLinkPanel;
import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitepublic.SitePublicSpaceLinkPresenter;
@@ -129,13 +136,19 @@
final I18nUITranslationService i18n = builder.getInstance(I18nUITranslationService.class);
builder.registerProvider(KuneErrorHandler.class, new Provider<KuneErrorHandler>() {
public KuneErrorHandler get() {
- return new KuneErrorHandler(builder.getInstance(Session.class), i18n);
+ return new KuneErrorHandler(builder.getInstance(Session.class), i18n, builder
+ .getProvider(WorkspaceSkeleton.class));
}
}, SingletonScope.class);
+ builder.registerProvider(WorkspaceSkeleton.class, new Provider<WorkspaceSkeleton>() {
+ public WorkspaceSkeleton get() {
+ return new WorkspaceSkeleton();
+ }
+ }, SingletonScope.class);
+
final KuneErrorHandler errorHandler = builder.getInstance(KuneErrorHandler.class);
AsyncCallbackSimple.init(errorHandler);
- Site.init(i18n);
builder.registerProvider(ColorTheme.class, new Provider<ColorTheme>() {
public ColorTheme get() {
@@ -165,12 +178,6 @@
}
}, SingletonScope.class);
- builder.registerProvider(WorkspaceSkeleton.class, new Provider<WorkspaceSkeleton>() {
- public WorkspaceSkeleton get() {
- return new WorkspaceSkeleton();
- }
- }, SingletonScope.class);
-
final WorkspaceSkeleton ws = builder.getInstance(WorkspaceSkeleton.class);
builder.registerProvider(SitePublicSpaceLink.class, new Provider<SitePublicSpaceLink>() {
@@ -183,6 +190,34 @@
}
}, SingletonScope.class);
+ builder.registerProvider(SiteProgress.class, new Provider<SiteProgress>() {
+ public SiteProgress get() {
+ final SiteProgressPresenter presenter = new SiteProgressPresenter();
+ final SiteProgressPanel panel = new SiteProgressPanel(presenter, builder
+ .getProvider(SitePublicSpaceLink.class));
+ presenter.init(panel);
+ return presenter;
+ }
+ }, SingletonScope.class);
+
+ builder.registerProvider(Site.class, new Provider<Site>() {
+ public Site get() {
+ return new Site(i18n, builder.getInstance(SiteProgress.class), builder.getProvider(SiteMessage.class));
+ }
+ }, SingletonScope.class);
+
+ builder.registerProvider(SiteMessage.class, new Provider<SiteMessage>() {
+ public SiteMessage get() {
+ final SiteMessagePresenter siteMessagePresenter = new SiteMessagePresenter();
+ final SiteMessageView siteMessageView = new SiteMessagePanel(siteMessagePresenter, true, i18n);
+ siteMessagePresenter.init(siteMessageView);
+ return siteMessagePresenter;
+ }
+ }, SingletonScope.class);
+
+ builder.getInstance(SiteProgress.class);
+ builder.getInstance(Site.class);
+
builder.registerProvider(SiteSignInLink.class, new Provider<SiteSignInLink>() {
public SiteSignInLink get() {
final SiteSignInLinkPresenter presenter = new SiteSignInLinkPresenter();
@@ -248,6 +283,7 @@
builder.getInstance(SitePublicSpaceLink.class);
builder.getInstance(SiteSignInLink.class);
+
builder.getInstance(SiteSignOutLink.class);
builder.getInstance(SiteNewGroupLink.class);
builder.getInstance(SiteSearch.class);
Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -143,7 +143,6 @@
final String toolName = state.getToolName();
workspace.setTool(toolName);
- Site.sitebar.setState(state);
final ClientTool clientTool = app.getTool(toolName);
clientTool.setContent(state);
clientTool.setContext(state);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceFactory.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -120,6 +120,7 @@
return presenter;
}
+ @Deprecated
public static DesktopView createDesktop(final Workspace workspace, final SiteBarListener listener,
final Session session) {
return new DesktopPanel(workspace, listener, session, i18n);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/InitAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/InitAction.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/InitAction.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -36,7 +36,6 @@
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.RootPanel;
public class InitAction implements Action<Object> {
private final Session session;
@@ -80,9 +79,6 @@
} else {
dispatcher.fire(WorkspaceEvents.USER_LOGGED_IN, currentUser);
}
- RootPanel.get("kuneinitialcurtain").setVisible(false);
-
- Site.unMask();
}
private void checkChatDomain(final String chatDomain) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedInAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedInAction.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedInAction.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -27,7 +27,6 @@
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
-import org.ourproject.kune.workspace.client.sitebar.Site;
import com.google.gwt.user.client.Cookies;
@@ -37,30 +36,30 @@
private final I18nUITranslationService i18n;
public LoggedInAction(final Session session, final StateManager stateManager, final I18nUITranslationService i18n) {
- this.session = session;
- this.stateManager = stateManager;
- this.i18n = i18n;
+ this.session = session;
+ this.stateManager = stateManager;
+ this.i18n = i18n;
}
public void execute(final UserInfoDTO value) {
- onLoggedIn(value);
+ onLoggedIn(value);
}
private void onLoggedIn(final UserInfoDTO userInfoDTO) {
- setCookie(userInfoDTO);
- session.setUserHash(userInfoDTO.getUserHash());
- Site.sitebar.showLoggedUser(userInfoDTO);
- I18nLanguageDTO language = userInfoDTO.getLanguage();
- stateManager.reload();
- i18n.changeCurrentLanguage(language.getCode());
- session.setCurrentLanguage(language);
+ setCookie(userInfoDTO);
+ session.setUserHash(userInfoDTO.getUserHash());
+ // FIXME ite.sitebar.showLoggedUser(userInfoDTO);
+ final I18nLanguageDTO language = userInfoDTO.getLanguage();
+ stateManager.reload();
+ i18n.changeCurrentLanguage(language.getCode());
+ session.setCurrentLanguage(language);
}
private void setCookie(final UserInfoDTO userInfoDTO) {
- // http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ
- String sessionId = userInfoDTO.getUserHash();
- final long duration = Session.SESSION_DURATION;
- Date expires = new Date(System.currentTimeMillis() + duration);
- Cookies.setCookie("userHash", sessionId, expires, null, "/", false);
+ // http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ
+ final String sessionId = userInfoDTO.getUserHash();
+ final long duration = Session.SESSION_DURATION;
+ final Date expires = new Date(System.currentTimeMillis() + duration);
+ Cookies.setCookie("userHash", sessionId, expires, null, "/", false);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedOutAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedOutAction.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/LoggedOutAction.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -24,7 +24,6 @@
import org.ourproject.kune.platf.client.dispatch.Action;
import org.ourproject.kune.platf.client.state.Session;
import org.ourproject.kune.platf.client.state.StateManager;
-import org.ourproject.kune.workspace.client.sitebar.Site;
import com.google.gwt.user.client.Cookies;
@@ -35,19 +34,19 @@
private final StateManager stateManager;
public LoggedOutAction(final Session session, final StateManager stateManager) {
- this.session = session;
- this.stateManager = stateManager;
+ this.session = session;
+ this.stateManager = stateManager;
}
public void execute(final Object value) {
- // FIXME: Remove cookie doesn't works in all browsers, know issue:
- // http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/ded8…
- // http://code.google.com/p/google-web-toolkit/issues/detail?id=1735&q=removeC…
- Cookies.removeCookie("userHash");
- // Workaround:
- Cookies.setCookie("userHash", null, new Date(0), null, "/", false);
- session.setUserHash(null);
- Site.sitebar.showLoggedUser(null);
- stateManager.reload();
+ // FIXME: Remove cookie doesn't works in all browsers, know issue:
+ // http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/ded8…
+ // http://code.google.com/p/google-web-toolkit/issues/detail?id=1735&q=removeC…
+ Cookies.removeCookie("userHash");
+ // Workaround:
+ Cookies.setCookie("userHash", null, new Date(0), null, "/", false);
+ session.setUserHash(null);
+ // FIXME Site.sitebar.showLoggedUser(null);
+ stateManager.reload();
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/actions/RecalculateWorkspaceAction.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/actions/RecalculateWorkspaceAction.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/actions/RecalculateWorkspaceAction.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -20,28 +20,28 @@
package org.ourproject.kune.workspace.client.actions;
import org.ourproject.kune.platf.client.dispatch.Action;
-import org.ourproject.kune.workspace.client.sitebar.SiteBarFactory;
import org.ourproject.kune.workspace.client.workspace.Workspace;
import com.google.gwt.user.client.Window;
+@Deprecated
@SuppressWarnings("unchecked")
public class RecalculateWorkspaceAction implements Action {
private final Workspace workspace;
public RecalculateWorkspaceAction(final Workspace workspace) {
- this.workspace = workspace;
+ this.workspace = workspace;
}
public void execute(final Object value) {
- onRecalculateWorkspaceAction();
+ onRecalculateWorkspaceAction();
}
private void onRecalculateWorkspaceAction() {
- int width = workspace.calculateWidth(Window.getClientWidth());
- int height = workspace.calculateHeight(Window.getClientHeight());
- workspace.adjustSize(width, height);
- SiteBarFactory.getSiteMessage().adjustWidth(width);
+ final int width = workspace.calculateWidth(Window.getClientWidth());
+ final int height = workspace.calculateHeight(Window.getClientHeight());
+ workspace.adjustSize(width, height);
+ // SiteBarFactory.getSiteMessage().adjustWidth(width);
}
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/newgroup/ui/NewGroupPanel.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -20,12 +20,12 @@
package org.ourproject.kune.workspace.client.newgroup.ui;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.services.Images;
import org.ourproject.kune.platf.client.ui.KuneStringUtils;
import org.ourproject.kune.platf.client.ui.KuneUiUtils;
import org.ourproject.kune.platf.client.ui.dialogs.WizardDialog;
import org.ourproject.kune.platf.client.ui.dialogs.WizardListener;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoose;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePanel;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
@@ -72,10 +72,10 @@
private final DeckPanel deck;
private LicenseChoose licenseChoosePanel;
private final SiteMessagePanel messagesPanel;
- private final I18nTranslationService i18n;
+ private final I18nUITranslationService i18n;
private TextField tags;
- public NewGroupPanel(final NewGroupPresenter presenter, final I18nTranslationService i18n) {
+ public NewGroupPanel(final NewGroupPresenter presenter, final I18nUITranslationService i18n) {
super(i18n.t("Register a new Group"), true, false, 460, 480, new WizardListener() {
public void onBack() {
presenter.onBack();
@@ -130,7 +130,7 @@
step1Label.addStyleName("kune-Margin-Medium-b");
step2Label.addStyleName("kune-Margin-Medium-b");
- messagesPanel = new SiteMessagePanel(null, false);
+ messagesPanel = new SiteMessagePanel(null, false, i18n);
messagesPanel.setWidth("425");
messagesPanel.setMessage("", SiteErrorType.info, SiteErrorType.error);
newGroupInitialDataVP.add(messagesPanel);
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/presence/ui/GroupSummaryPanel.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -44,6 +44,7 @@
super.setBorderStylePrimaryName("k-dropdownouter-summary");
addStyleName("kune-Margin-Medium-tl");
ws.getEntitySummary().addInSummary(this);
+ ws.unMask();
}
public void setComment(final String comment) {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/search/SiteSearcherPanel.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -66,6 +66,7 @@
private GridPanel groupsGrid;
private GridPanel contentGrid;
private final WorkspaceSkeleton ws;
+ private ToolbarButton traybarButton;
public SiteSearcherPanel(final SiteSearcherPresenter initPresenter, final I18nTranslationService i18n,
final WorkspaceSkeleton ws) {
@@ -101,21 +102,23 @@
dialog.show();
dialog.expand();
dialog.center();
- final ToolbarButton toolbarButton = new ToolbarButton();
- toolbarButton.setTooltip(i18n.t("Show/hide searcher"));
- toolbarButton.setIcon("images/kune-search-ico-push.gif");
- toolbarButton.addListener(new ButtonListenerAdapter() {
- @Override
- public void onClick(final Button button, final EventObject e) {
- if (dialog.isVisible()) {
- dialog.hide();
- } else {
- dialog.show();
+ if (traybarButton == null) {
+ traybarButton = new ToolbarButton();
+ traybarButton.setTooltip(i18n.t("Show/hide searcher"));
+ traybarButton.setIcon("images/kune-search-ico-push.gif");
+ traybarButton.addListener(new ButtonListenerAdapter() {
+ @Override
+ public void onClick(final Button button, final EventObject e) {
+ if (dialog.isVisible()) {
+ dialog.hide();
+ } else {
+ dialog.show();
+ }
}
- }
- });
- ws.getSiteTraybar().addButton(toolbarButton);
+ });
+ ws.getSiteTraybar().addButton(traybarButton);
+ }
}
private Window createDialog() {
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/Site.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -20,94 +20,83 @@
package org.ourproject.kune.workspace.client.sitebar;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.newgroup.ui.SiteErrorType;
-import org.ourproject.kune.workspace.client.sitebar.bar.SiteBar;
import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessage;
+import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteprogress.SiteProgress;
-public class Site {
+import com.calclab.suco.client.container.Provider;
- public static SiteMessage siteUserMessage;
-
- public static SiteBar sitebar;
-
+public class Site {
public static final String LOGIN_TOKEN = "login";
-
public static final String NEWGROUP_TOKEN = "newgroup";
-
public static final String FIXME_TOKEN = "fixme";
-
public static final String TRANSLATE_TOKEN = "translate";
-
public static final String IN_DEVELOPMENT = " (in development)";
-
private static I18nTranslationService i18n;
+ private static SiteProgress progress;
+ private static Provider<SiteMessage> siteMessageProvider;
+ @Deprecated
public static void doLogin(final String returnToken) {
- sitebar.doLogin(returnToken);
+ // sitebar.doLogin(returnToken);
}
+ @Deprecated
public static void doLogout() {
- sitebar.doLogout();
+ // sitebar.doLogout();
}
+ @Deprecated
public static void doNewGroup(final String returnToken) {
- sitebar.doNewGroup(returnToken);
+ // sitebar.doNewGroup(returnToken);
}
public static void error(final String value) {
- siteUserMessage.setMessage(value, SiteErrorType.error);
+ getSiteMessage().setMessage(value, SiteErrorType.error);
}
public static void hideProgress() {
- sitebar.hideProgress();
+ progress.hideProgress();
}
public static void important(final String value) {
- siteUserMessage.setMessage(value, SiteErrorType.imp);
+ getSiteMessage().setMessage(value, SiteErrorType.imp);
}
public static void info(final String value) {
- siteUserMessage.setMessage(value, SiteErrorType.info);
+ getSiteMessage().setMessage(value, SiteErrorType.info);
}
- public static void init(final I18nTranslationService i18n) {
- Site.i18n = i18n;
- }
-
- public static void mask() {
- sitebar.mask();
- }
-
- public static void mask(final String message) {
- sitebar.mask(message);
- }
-
- public static void showAlertMessage(final String message) {
- sitebar.showAlertMessage(message);
- }
-
public static void showProgress(final String text) {
- sitebar.showProgress(text);
+ progress.showProgress(text);
}
public static void showProgressLoading() {
- sitebar.showProgress(i18n.t("Loading"));
+ progress.showProgress(i18n.t("Loading"));
}
public static void showProgressProcessing() {
- sitebar.showProgress(i18n.t("Processing"));
+ progress.showProgress(i18n.t("Processing"));
}
public static void showProgressSaving() {
- sitebar.showProgress(i18n.t("Saving"));
+ progress.showProgress(i18n.t("Saving"));
}
- public static void unMask() {
- sitebar.unMask();
+ public static void veryImportant(final String value) {
+ getSiteMessage().setMessage(value, SiteErrorType.veryimp);
}
- public static void veryImportant(final String value) {
- siteUserMessage.setMessage(value, SiteErrorType.veryimp);
+ private static SiteMessage getSiteMessage() {
+ return siteMessageProvider.get();
}
+ public Site(final I18nUITranslationService i18n, final SiteProgress progress,
+ final Provider<SiteMessage> siteMessageProvider) {
+ Site.i18n = i18n;
+ Site.progress = progress;
+ Site.siteMessageProvider = siteMessageProvider;
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/SiteBarFactory.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -24,8 +24,8 @@
import java.util.List;
import org.ourproject.kune.platf.client.dto.LicenseDTO;
-import org.ourproject.kune.platf.client.services.I18nTranslationService;
import org.ourproject.kune.platf.client.state.Session;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoose;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePanel;
import org.ourproject.kune.workspace.client.licensechoose.LicenseChoosePresenter;
@@ -33,25 +33,16 @@
import org.ourproject.kune.workspace.client.newgroup.NewGroupListener;
import org.ourproject.kune.workspace.client.newgroup.NewGroupPresenter;
import org.ourproject.kune.workspace.client.newgroup.ui.NewGroupPanel;
-import org.ourproject.kune.workspace.client.sitebar.bar.SiteBar;
-import org.ourproject.kune.workspace.client.sitebar.bar.SiteBarListener;
-import org.ourproject.kune.workspace.client.sitebar.bar.SiteBarPanel;
-import org.ourproject.kune.workspace.client.sitebar.bar.SiteBarPresenter;
import org.ourproject.kune.workspace.client.sitebar.login.Login;
import org.ourproject.kune.workspace.client.sitebar.login.LoginListener;
import org.ourproject.kune.workspace.client.sitebar.login.LoginPanel;
import org.ourproject.kune.workspace.client.sitebar.login.LoginPresenter;
-import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessage;
-import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessagePanel;
-import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessagePresenter;
-import org.ourproject.kune.workspace.client.sitebar.msg.SiteMessageView;
public class SiteBarFactory {
- private static SiteMessage siteMessage;
private static Login login;
private static NewGroup newGroup;
private static Session session;
- private static I18nTranslationService i18n;
+ private static I18nUITranslationService i18n;
public static LicenseChoose createLicenseChoose() {
final List<LicenseDTO> licensesList = session.getLicenses();
@@ -69,17 +60,6 @@
return presenter;
}
- public static SiteBar createSiteBar(final SiteBarListener listener, final Session session,
- final I18nTranslationService i18n) {
- SiteBarFactory.session = session;
- SiteBarFactory.i18n = i18n;
- final SiteBarPresenter siteBarPresenter = new SiteBarPresenter(listener, session, i18n);
- final SiteBarPanel siteBarView = new SiteBarPanel(siteBarPresenter, i18n);
- siteBarPresenter.init(siteBarView);
- Site.sitebar = siteBarPresenter;
- return siteBarPresenter;
- }
-
public static Login getLoginForm(final LoginListener listener) {
if (login == null) {
final LoginPresenter presenter = new LoginPresenter(session, listener, i18n);
@@ -100,14 +80,4 @@
return newGroup;
}
- public static SiteMessage getSiteMessage() {
- if (siteMessage == null) {
- final SiteMessagePresenter siteMessagePresenter = new SiteMessagePresenter();
- final SiteMessageView siteMessageView = new SiteMessagePanel(siteMessagePresenter, true);
- siteMessagePresenter.init(siteMessageView);
- siteMessage = siteMessagePresenter;
- Site.siteUserMessage = siteMessagePresenter;
- }
- return siteMessage;
- }
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SimpleMessagePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SimpleMessagePanel.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SimpleMessagePanel.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -39,6 +39,10 @@
this.setVisible(false);
}
+ public void reset() {
+ message.setText("");
+ }
+
public void setMessage(final String text) {
this.message.setHTML(text);
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessage.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessage.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessage.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -24,9 +24,6 @@
public interface SiteMessage extends View {
- void adjustWidth(int width);
-
- View getView();
-
void setMessage(String message, SiteErrorType type);
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePanel.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePanel.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -20,19 +20,28 @@
package org.ourproject.kune.workspace.client.sitebar.msg;
import org.ourproject.kune.platf.client.services.Images;
+import org.ourproject.kune.platf.client.ui.KuneUiUtils;
+import org.ourproject.kune.workspace.client.i18n.I18nUITranslationService;
import com.google.gwt.user.client.Timer;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.WindowResizeListener;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.PushButton;
+import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
+import com.gwtext.client.core.ExtElement;
public class SiteMessagePanel extends SimpleMessagePanel implements SiteMessageView {
private static final int TIMEVISIBLE = 4000;
private final Timer timer;
- public SiteMessagePanel(final MessagePresenter presenter, final boolean closable) {
+ private final ExtElement extElem;
+
+ public SiteMessagePanel(final MessagePresenter presenter, final boolean closable,
+ final I18nUITranslationService i18n) {
final Images images = Images.App.getInstance();
timer = new Timer() {
public void run() {
@@ -45,6 +54,7 @@
if (closable) {
final PushButton closeIcon = new PushButton(images.cross().createImage(), images.crossDark().createImage());
+ KuneUiUtils.setQuickTip(closeIcon, i18n.t("Click to close"));
add(closeIcon);
closeIcon.addClickListener(new ClickListener() {
public void onClick(final Widget sender) {
@@ -59,15 +69,52 @@
});
setCellVerticalAlignment(closeIcon, VerticalPanel.ALIGN_BOTTOM);
}
+ extElem = new ExtElement(this.getElement());
+ final int clientWidth = Window.getClientWidth();
+ adjustWidth(clientWidth);
+ Window.addWindowResizeListener(new WindowResizeListener() {
+ public void onWindowResized(final int width, final int height) {
+ // Log.debug("Window width: " + width + ", height: " + height);
+ setXY(width);
+ adjustWidth(width);
+ }
+ });
+ extElem.setVisible(false, false);
+ hide();
+ RootPanel.get().add(this, calculateX(clientWidth), calculateY());
}
+ @Override
+ public void adjustWidth(final int windowWidth) {
+ super.adjustWidth(windowWidth);
+ }
+
public void hide() {
- super.hide();
+ extElem.hide(true);
+ super.reset();
timer.cancel();
}
public void show() {
- super.show();
+ if (!extElem.isVisible()) {
+ extElem.show(true);
+ }
+ // super.show();
timer.schedule(TIMEVISIBLE);
}
+
+ private int calculateX(final int clientWidth) {
+ final int x = clientWidth * 20 / 100 - 10;
+ // Log.debug("X: " + x);
+ return x;
+ }
+
+ private int calculateY() {
+ return 2;
+ }
+
+ private void setXY(final int clientWidth) {
+ extElem.setXY(calculateX(clientWidth), calculateY(), false);
+ }
+
}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePresenter.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/sitebar/msg/SiteMessagePresenter.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -31,6 +31,7 @@
public SiteMessagePresenter() {
}
+ @Deprecated
public void adjustWidth(final int windowWidth) {
view.adjustWidth(windowWidth);
}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgress.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgress.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgress.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -0,0 +1,9 @@
+package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteprogress;
+
+public interface SiteProgress {
+
+ void hideProgress();
+
+ void showProgress(String text);
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgressPanel.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgressPanel.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgressPanel.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -0,0 +1,46 @@
+package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteprogress;
+
+import org.ourproject.kune.workspace.client.ui.newtmp.sitebar.sitepublic.SitePublicSpaceLink;
+
+import com.calclab.suco.client.container.Provider;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Timer;
+import com.google.gwt.user.client.ui.RootPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+public class SiteProgressPanel implements SiteProgressView {
+ private static final int MAX_TIME_PROGRESS_BAR = 20000;
+
+ private final Widget progressPanel;
+ private final Widget progressText;
+ private Timer timeProgressMaxTime;
+
+ private final Provider<SitePublicSpaceLink> publicLinkProvider;
+
+ public SiteProgressPanel(final SiteProgressPresenter presenter,
+ final Provider<SitePublicSpaceLink> publicLinkProvider) {
+ this.publicLinkProvider = publicLinkProvider;
+ progressPanel = RootPanel.get("kuneprogresspanel");
+ progressText = RootPanel.get("kuneprogresstext");
+ }
+
+ public void hideProgress() {
+ timeProgressMaxTime.cancel();
+ progressPanel.setVisible(false);
+ publicLinkProvider.get().setVisible(true);
+ }
+
+ public void showProgress(final String text) {
+ if (timeProgressMaxTime == null) {
+ timeProgressMaxTime = new Timer() {
+ public void run() {
+ hideProgress();
+ }
+ };
+ }
+ timeProgressMaxTime.schedule(MAX_TIME_PROGRESS_BAR);
+ publicLinkProvider.get().setVisible(false);
+ progressPanel.setVisible(true);
+ DOM.setInnerText(progressText.getElement(), text);
+ }
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgressPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgressPresenter.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgressPresenter.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -0,0 +1,28 @@
+package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteprogress;
+
+import org.ourproject.kune.platf.client.View;
+
+public class SiteProgressPresenter implements SiteProgress {
+
+ private SiteProgressView view;
+
+ public SiteProgressPresenter() {
+ }
+
+ public View getView() {
+ return view;
+ }
+
+ public void hideProgress() {
+ view.hideProgress();
+ }
+
+ public void init(final SiteProgressView view) {
+ this.view = view;
+ }
+
+ public void showProgress(final String text) {
+ view.showProgress(text);
+ }
+
+}
Added: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgressView.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgressView.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/sitebar/siteprogress/SiteProgressView.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -0,0 +1,10 @@
+package org.ourproject.kune.workspace.client.ui.newtmp.sitebar.siteprogress;
+
+import org.ourproject.kune.platf.client.View;
+
+public interface SiteProgressView extends View {
+
+ void hideProgress();
+
+ void showProgress(String text);
+}
Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java 2008-07-20 22:13:16 UTC (rev 809)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/ui/newtmp/skel/WorkspaceSkeleton.java 2008-07-21 02:05:26 UTC (rev 810)
@@ -3,7 +3,12 @@
import org.ourproject.kune.platf.client.ui.DefaultBorderLayout;
import org.ourproject.kune.workspace.client.ui.newtmp.themes.WsTheme;
+import com.google.gwt.user.client.ui.RootPanel;
+import com.gwtext.client.core.ExtElement;
+import com.gwtext.client.widgets.MessageBox;
import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.QuickTip;
+import com.gwtext.client.widgets.QuickTips;
import com.gwtext.client.widgets.Toolbar;
import com.gwtext.client.widgets.Viewport;
import com.gwtext.client.widgets.layout.FitLayout;
@@ -13,8 +18,14 @@
private final SiteBar sitebar;
private final DefaultBorderLayout mainPanel;
private final Panel container;
+ private final ExtElement extRootBody;
public WorkspaceSkeleton() {
+ QuickTips.init(); // extgwt tips
+ final QuickTip quickTipInstance = QuickTips.getQuickTip();
+ quickTipInstance.setDismissDelay(8000);
+ quickTipInstance.setHideDelay(500);
+ quickTipInstance.setInterceptTitles(true);
container = new Panel();
container.setLayout(new FitLayout());
container.setBorder(false);
@@ -25,6 +36,7 @@
mainPanel.add(sitebar, DefaultBorderLayout.Position.NORTH, DefaultBorderLayout.DEF_TOOLBAR_HEIGHT);
mainPanel.add(entity.getPanel(), DefaultBorderLayout.Position.CENTER);
container.add(mainPanel.getPanel());
+ extRootBody = new ExtElement(RootPanel.getBodyElement());
}
public Panel getEntityMainHeader() {
@@ -47,6 +59,14 @@
return entity.getEntitySummary().getSiteTraybar();
}
+ public void mask() {
+ extRootBody.mask();
+ }
+
+ public void mask(final String message) {
+ extRootBody.mask(message, "x-mask-loading");
+ }
+
public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) {
entity.setTheme(oldTheme, newTheme);
}
@@ -55,4 +75,16 @@
new Viewport(container);
}
+ public void showAlertMessage(final String title, final String message) {
+ MessageBox.alert(title, message, new MessageBox.AlertCallback() {
+ public void execute() {
+ }
+ });
+ }
+
+ public void unMask() {
+ extRootBody.unmask();
+ RootPanel.get("kuneinitialcurtain").setVisible(false);
+ }
+
}
1
0