From a5ba54441da727f3965105a71b3a114b31dd34de Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sun, 4 Oct 2020 12:43:53 +0200 Subject: [PATCH] Improve Argeo Suite theming. --- org.argeo.suite.theme.default/.project | 5 ++ .../OSGI-INF/cmsTheme.xml | 7 +++ org.argeo.suite.theme.default/bnd.bnd | 6 ++ .../build.properties | 3 +- .../icons/types/16/add.png | Bin 0 -> 254 bytes .../icons/types/16/dashboard.png | Bin 0 -> 375 bytes .../icons/types/16/delete.png | Bin 0 -> 447 bytes .../icons/types/16/document.png | Bin 0 -> 314 bytes .../icons/types/16/documents.png | Bin 0 -> 408 bytes .../icons/types/16/folder.png | Bin 0 -> 272 bytes .../icons/types/16/logout.png | Bin 0 -> 335 bytes .../icons/types/16/organisation.png | Bin 0 -> 408 bytes .../icons/types/16/people.png | Bin 0 -> 537 bytes .../icons/types/16/person.png | Bin 0 -> 439 bytes .../icons/types/16/refresh.png | Bin 0 -> 396 bytes .../icons/types/16/save.png | Bin 0 -> 239 bytes .../icons/types/16/search.png | Bin 0 -> 416 bytes .../icons/types/16/tag.png | Bin 0 -> 322 bytes .../icons/types/16/task.png | Bin 0 -> 357 bytes .../icons/types/32/add.png | Bin 0 -> 260 bytes .../icons/types/32/dashboard.png | Bin 0 -> 536 bytes .../icons/types/32/delete.png | Bin 0 -> 604 bytes .../icons/types/32/document.png | Bin 0 -> 556 bytes .../icons/types/32/documents.png | Bin 0 -> 643 bytes .../icons/types/32/folder.png | Bin 0 -> 404 bytes .../icons/types/32/logout.png | Bin 0 -> 596 bytes .../icons/types/32/organisation.png | Bin 0 -> 462 bytes .../icons/types/32/people.png | Bin 0 -> 1074 bytes .../icons/types/32/person.png | Bin 0 -> 794 bytes .../icons/types/32/save.png | Bin 0 -> 305 bytes .../icons/types/32/search.png | Bin 0 -> 541 bytes .../icons/types/32/tag.png | Bin 0 -> 483 bytes .../icons/types/32/task.png | Bin 0 -> 502 bytes org.argeo.suite.theme.default/rap/work.css | 6 ++ .../{argeoSuiteWebApp.xml => cmsWebApp.xml} | 6 +- org.argeo.suite.ui.rap/bnd.bnd | 2 +- org.argeo.suite.ui.rap/build.properties | 2 +- org.argeo.suite.ui/OSGI-INF/argeoSuiteApp.xml | 9 --- org.argeo.suite.ui/OSGI-INF/cmsApp.xml | 10 ++++ .../OSGI-INF/l10n/bundle.properties | 2 + org.argeo.suite.ui/OSGI-INF/leadPane.xml | 2 +- org.argeo.suite.ui/OSGI-INF/workHeader.xml | 2 +- org.argeo.suite.ui/bnd.bnd | 2 +- org.argeo.suite.ui/build.properties | 4 +- .../src/org/argeo/suite/ui/ArgeoSuiteApp.java | 30 +++++++++- .../org/argeo/suite/ui/ArgeoSuiteIcon.java | 14 +++++ .../src/org/argeo/suite/ui/ArgeoSuiteUi.java | 54 ++++++++++++------ .../org/argeo/suite/ui/DefaultLeadPane.java | 37 +++++++++--- .../src/org/argeo/suite/ui/RecentItems.java | 41 +++++++++++++ .../src/org/argeo/suite/ui/WorkMsg.java | 2 +- sdk/argeo-suite-rap.properties | 1 + 51 files changed, 198 insertions(+), 49 deletions(-) create mode 100644 org.argeo.suite.theme.default/OSGI-INF/cmsTheme.xml create mode 100644 org.argeo.suite.theme.default/icons/types/16/add.png create mode 100644 org.argeo.suite.theme.default/icons/types/16/dashboard.png create mode 100644 org.argeo.suite.theme.default/icons/types/16/delete.png create mode 100644 org.argeo.suite.theme.default/icons/types/16/document.png create mode 100644 org.argeo.suite.theme.default/icons/types/16/documents.png create mode 100644 org.argeo.suite.theme.default/icons/types/16/folder.png create mode 100644 org.argeo.suite.theme.default/icons/types/16/logout.png create mode 100644 org.argeo.suite.theme.default/icons/types/16/organisation.png create mode 100644 org.argeo.suite.theme.default/icons/types/16/people.png create mode 100644 org.argeo.suite.theme.default/icons/types/16/person.png create mode 100644 org.argeo.suite.theme.default/icons/types/16/refresh.png create mode 100644 org.argeo.suite.theme.default/icons/types/16/save.png create mode 100644 org.argeo.suite.theme.default/icons/types/16/search.png create mode 100644 org.argeo.suite.theme.default/icons/types/16/tag.png create mode 100644 org.argeo.suite.theme.default/icons/types/16/task.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/add.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/dashboard.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/delete.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/document.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/documents.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/folder.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/logout.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/organisation.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/people.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/person.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/save.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/search.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/tag.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/task.png rename org.argeo.suite.ui.rap/OSGI-INF/{argeoSuiteWebApp.xml => cmsWebApp.xml} (55%) delete mode 100644 org.argeo.suite.ui/OSGI-INF/argeoSuiteApp.xml create mode 100644 org.argeo.suite.ui/OSGI-INF/cmsApp.xml create mode 100644 org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteIcon.java create mode 100644 org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java diff --git a/org.argeo.suite.theme.default/.project b/org.argeo.suite.theme.default/.project index 5453bb1..d157155 100644 --- a/org.argeo.suite.theme.default/.project +++ b/org.argeo.suite.theme.default/.project @@ -15,6 +15,11 @@ + + org.eclipse.pde.ds.core.builder + + + org.eclipse.pde.PluginNature diff --git a/org.argeo.suite.theme.default/OSGI-INF/cmsTheme.xml b/org.argeo.suite.theme.default/OSGI-INF/cmsTheme.xml new file mode 100644 index 0000000..66b8c44 --- /dev/null +++ b/org.argeo.suite.theme.default/OSGI-INF/cmsTheme.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/org.argeo.suite.theme.default/bnd.bnd b/org.argeo.suite.theme.default/bnd.bnd index e69de29..6c4a97c 100644 --- a/org.argeo.suite.theme.default/bnd.bnd +++ b/org.argeo.suite.theme.default/bnd.bnd @@ -0,0 +1,6 @@ +Service-Component:\ +OSGI-INF/cmsTheme.xml + +Import-Package:\ +org.argeo.cms.ui.util,\ +* \ No newline at end of file diff --git a/org.argeo.suite.theme.default/build.properties b/org.argeo.suite.theme.default/build.properties index 5f22cdd..bf450ca 100644 --- a/org.argeo.suite.theme.default/build.properties +++ b/org.argeo.suite.theme.default/build.properties @@ -1 +1,2 @@ -bin.includes = META-INF/ +bin.includes = META-INF/,\ + OSGI-INF/cmsTheme.xml diff --git a/org.argeo.suite.theme.default/icons/types/16/add.png b/org.argeo.suite.theme.default/icons/types/16/add.png new file mode 100644 index 0000000000000000000000000000000000000000..5c06bf082d60a1c0cb55aeadac668e2d106dc5c0 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#Xvd=gc;dYI$i@A8$4Yc zLo9le|NQ@N&#ci_@&DM>^@R5*>rlCeudQ5431N)W*tj3A02q<_F{%t4n3f*c#`ISLIf z5=}*uOP~b0DowQ%4lND7B5I2ogxuU-Eg|I=bz1I=_pa|+1=VFCxT=(6EtD0M4+HZ$|Y1;Q%iTq<}3GWCWmv3qZ>R2>|r4Rctq{V%s)B;-;|Y znIJI{34|ZtCiXHrCkI}`+U0E$NCJae_pmZM{;>+Q6!d2T2S^?Dr+eGo`D<-T8|VPl zjr)bl&8zjICaL-X1E6r~PCk#WDX87v+!Ijq>M`}k8~}G^8(?O??kN9ZDYJO4?tR}* zN&!HKvfkxlWx1rDNc#9Jr#D9a#NX=w0bx7nOt~%qvCpq;db2E=f8{S?BD()KeFHlv Vl=MD`l*j-8002ovPDHLkV1gOnozMUP literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/icons/types/16/delete.png b/org.argeo.suite.theme.default/icons/types/16/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..676a39dcfa1f55439af9dbffc29dd6a3c0710498 GIT binary patch literal 447 zcmV;w0YLtVP)i_@&aY;l$R5*=e{Qv(y10{e7ne)O%Szw=zN8x;h6aj3CubUdz%~wb< zKo(z?zqkrqeFFy0c2Xj8a6h5@n+QiQM)A!jo@n09;X_+TJ zm~#Q{0+?ntrr)wGOn(?mMJ}oduzflSa|ui{0|Ntt6xT~OeW7b7VJ?ArA%TtQw=B#y zWJB&-Xm5vUh5<2-w`{zuU%ODe@YGs$88hR*NMwco|1&Z$GNK0ZpMNY2$X;Ybjs45#1d-$4&tCUk{={;~34wH`-uK`{V1w9x@G z(_aQtk&7zGv4dg&HqHP3Gol!REsA03pa5O-pMNY2Ctn-g`u&e}EjB}VS--AAcEN&Q z|5zU*Ylelk?6Dgm=mGochw!h@zq!j87)VIUuqZ}P$_)Si|A*t})=C0v zhDl;Z@YItB&L6(otF?y%&PJ4K!xB6WLug07W49;)PeBI3hR44JsrJYf);USZzpkv!qT~{8P7?}uD z8H;k!qpcEbHr1c!B_8_~%d;nDP6Y3b`fpry;y`yB=-llzy_m=v!5c7ra?*pR$KEx~ z=AXat2-legW*#0MArKByYU0t3;wrq=A;;DO^mltP&torc2?>c`A9p^u`MR9v{JlNt t7W-Gs7F;f#XIIsBne_$3QPw964D2l_jF;wZC;$d8gQu&X%Q~loCIHA!qD}w+ literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/icons/types/16/folder.png b/org.argeo.suite.theme.default/icons/types/16/folder.png new file mode 100644 index 0000000000000000000000000000000000000000..fefbb40ced08086e77686351e52cc667ebde2e8f GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#Xvd=gc;dYI$i@Ahdf;z zLo9liPO{}|au9HnKNe^8@(EiJ19x6h=BDWdeGUs%jar__fu+I+Wwy8oLH^%+T6)rEj$9qu3uFllNWToOI RUZ8InJYD@<);T3K0RTzlXQluE literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/icons/types/16/logout.png b/org.argeo.suite.theme.default/icons/types/16/logout.png new file mode 100644 index 0000000000000000000000000000000000000000..f685ea91e7aed6d2e5344425d26fe04a995098e4 GIT binary patch literal 335 zcmV-V0kHmwP)i_@&0ZBwbR5*>Llg)7gF$_i@OzznZLISY_vUubKfo0FJf?Tm$c1X8~LX+tfMkftBxYF7^)I zd=fu}n!dwL>A~2Tcji+M`icJwmc0RX^+3vBYf h`~o~GqrdSl@(n*jTvzVS+~xoP002ovPDHLkV1fqWgc$$; literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/icons/types/16/organisation.png b/org.argeo.suite.theme.default/icons/types/16/organisation.png new file mode 100644 index 0000000000000000000000000000000000000000..2e81a6c44a095ceaf95179e009cf024658dc50a7 GIT binary patch literal 408 zcmV;J0cZY+P)i_@&N=ZaPR5*>TlD|s=VHn3hMqnyOzie@6$RQo2YjkL^(QprONOWwu z!KtPk?hiIPN;5?SRExL9!as8d%TgaUv_c$0MU5CGjU0gz)+04mzu?+E}RJ6jYoDHk;N_~K8& zeIl!Pjh(vcgFozGdtIWKIVPQy#R>Fhli3%3Mh|aD6f!B=Mvq2IpBL=!Mo>;q0BE!x z>Gmy;)tg)FmoZhXiDeJP38YYfgV>&z#*fZr1e1)?3y za?tN5U#>8Ior(o=JW8!p1fZ%l(GAn%e7VASGNo23(l&aWU0r*E|M|)Q)?i3gYr5kY z<~OzmLo9nVHzI(~aU2p^B?sgdJa*oxt4~6~GW7vEvU$>DI@0C<0000i_@&%Sl8*R5*=&lRazOP!xtAeN<{=nFJC%XlR@)U1~^6N&;PyOof8T z>Y?DJgQjNblBNC^8tY8i8u$JJ2Rf!uVvnT=T0~ni*jUBXilh#b%#}rY;11{OecyBL zy-J#<$QF7|6FAOKVPl{V^etD6<$6U12tB6@yyI@003FK}{UV@B&Aq#t6|;tBw@}R5 zDsT~cPN$?mW;UL+F?QQTUq2Cl{|xah=H4rmdV@F^G5dI0^d4HS80h)T3ua@tok?3+ z<=){N0ODYXR&Su$k7Z#!ps7+`7U}eNb%uORaWImjo1y3IQ~>5z=T(3t0wB5;%b8@F{h^zR>LAKsFTe-xoJ%M~3xcTRu{fMhl$x)!J#TP1*G@)M$2 z;ZA@qNPi)Jp6@HvRhs|@mMgx1bPJX%dcYIl@;}XIK(lBrDUdDnoE_i*Sj$5`FtA+V bFW3G9;9R3OkI+__00000NkvXXu0mjftu5>~ literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/icons/types/16/person.png b/org.argeo.suite.theme.default/icons/types/16/person.png new file mode 100644 index 0000000000000000000000000000000000000000..8f518e12c9510f5ffeabb802194ffc4d3fb3b9c6 GIT binary patch literal 439 zcmV;o0Z9IdP)i_@&X-PyuR5*>LlRZzuP!xtADjOIOO1fKtm-unU{$pZY^^c7)sR)a>;OznNdSGf zS&FBLoL(X&v&=dzCQo-F;T46095RPGuhd=SA?-B3? zY;5llEnYiK3}z3B7H|AgA0=7U+bkc5qsVc^TPc|(w0k0cHtavBJBg{B=LT#AcRYZ) z8}JTbjfc!SEf#~W(?o#9pv%1X>^5J?s^0(iQ+ApttGWSXfW{xj5pZFfL6}BctEnup h9A#UEtm;iM_ZuTyb^+GV8leCH002ovPDHLkV1liCvEcv! literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/icons/types/16/refresh.png b/org.argeo.suite.theme.default/icons/types/16/refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..0d39107d93ee5cda9a5b018523518d0b8a8f7e18 GIT binary patch literal 396 zcmV;70dxL|P)i_@&K1oDDR5*>5lRZ+yFc5`5XHt2FAvXv&h<$>X8>D2Y(lJAm(9pPX z#*tvm^KpMBE&{Lw3`Q1jE)q78Gccq~3d;I9~_zGA66Qx?94Ac6< z#|Ex|hy^eosG8UUnJX0ZeNUIiE$|B50v9^l1C90zV5a>6NUX?M$q8_${SkN!)B4%D zIqUK`0ZIv#KmsrlpmD&Lz`e>jMVQu=B>{5@o&;J4yO%{bXGI!J9{|>F2^RbiruD`r zdQku?AaWg4!1W)<*2R;A7j^|K{0ke*h`x&>rpyY6!n7^} q|2N9+QkJJmA4J;t4{RXt-}nTU2X*r0*e0w10000i_@&Qb|NXR5*>5k)cjqK@f(&o!O*_Cfo#9bsPx_SqbE3o&bj^?GrSW zIAkAyRF*m%Smp?>BRC9|&3%D3*ETu3Q_*vhoAjJZ`PIz+J750UO%cJm%&Y+#VCn8l zo>3YAX13pT-Br$ccQ9+MKSku&-4{~;8HOX`K~u2Dwlya6*dJWu}*})Vb19V+? zrK*uqdfT?`WA81@>`N_m3ETj)(FA7J^CkxNf@pDk9EAW!ud5r&eeHRP}!B zf@b~Rm*WY56+r3A-o%>C#5vIa!hAmeMIfTmxch1_&1_amc@mMGwr#h@02x3;J^km>l*+EFE;`Sk zx5H{_$aAq(&bmCgzxN&!O^bLesK4XoxrN#r&hURvye0PXTtc5_+{dXub)LT~xL3MC zSwL`h%!l6XXRce;$_r}CPT6LV_c3uH+tc8Ax8KQU-T7DMB697A{Fi^d_VYJIzxdMj Re=X4e44$rjF6*2UngGCfg=7E# literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/icons/types/16/task.png b/org.argeo.suite.theme.default/icons/types/16/task.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb7e01593221afcb3801051235f714a940e6a1f GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#Xvd=gc;dYI$kp{Fp7J+ zIEGmCCja^W-@f_gnJh*&Ha2E9rGqQKTw^vc?gXy?x)1dIEOyBYF1q~Q$bIWqb}}`L9PtykqtQ1(Ae0LkplElN33bP0l+XkKc-4&) literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/icons/types/32/add.png b/org.argeo.suite.theme.default/icons/types/32/add.png new file mode 100644 index 0000000000000000000000000000000000000000..15feb20eb34b29408e5ae9a2d4cbfaffecf82afb GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVj#U0gc&U_oSP41Z1Z$+ z42ft>{`3F8{b2{DWsF=?@Y`4`|lE)MY+=Jf5BNMm6KH1eLA69ve37`ZDcd{c%UPq_ff= zG$cw7tYCJNbtpQ|5fxz?aGFs?+~o=zvm7hXNQN(r266)a?i+zVVDNPHb6Mw<&;$UN C!(NU6 literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/icons/types/32/dashboard.png b/org.argeo.suite.theme.default/icons/types/32/dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..4c24f43e5ed182ddd3bcb524a748689c6e859bcd GIT binary patch literal 536 zcmV+z0_XjSP)%1J~)R9J=Wmp@O!KpckO79x;za8yHxA3;|aySO+IKY`$8O-M)x zds&Q$i!Kr;(b36taB+Y*=-^->fdz(+OeO?S!~!l?LyxvxIRguC(p>xNwa=5g{uM@} z5f&Md=ip90o?MtfCm$~WxFPL)1qd`jHWNG&z6B__m6;`c3An(yB$x#p;4J`0q@7uU zNx%gzONv$iAoEB}74U%T06^NAB|HVD!L9H}xC*esc_kbL{K9!8CIo1>ITAiu;Im2y z<1Zr`-W`ZIZLD8kUgVFxp!-iRGF8&=8)uunq4*XShrzM>t)ytl@s58ZK*M`O(M(li zc>a)@UT~5kwQNa>re|u=a(7@G=b2ixTfN7f%CMbq(`{SQ6>Skov2I3T5xO+ZpK z1Ayvvk~Q^8b|@Q7^~7M2Aa}>aofLHF>z1NJEeAk-+}ja+oW~ZfPqP2WQeY{t6j-=` z;P!90eV8o)*tNF%k?=&Hz>kT5X|ix~?|0{_(+=h*;mTK!wX3gq38XRh*5Zuew!?J_ a=9OQU6x_SkGflz(0000f5l-@xM zWZ66D+PxPLNW6nmFF*r<;!3elS3(LconmQ9Vkqh8q?^Q_nK@^^WYjpz94 z6gq~ZNW_7IVhpp5(@kLKzTrxNyONLun6?YzNJ!H&vW&)&=(uSP&epn;=)RXWOpLHL zQed2kFpVzji-&1RcW4FTjH9%`lmd5=1riBW9mj@CCBo`h40k>4fl4IduVXR1RIDtM?sn8YZ@a=(NQ4w`!bTwhG~odUhf qsrO@EOd2Y9q`*Tw6TcfyT;M+kTY`-bqA3R9J=WR=-QbP!Rqq4ozqV!Nm;iP%#KD!Kh0+I4OcUIAlnH$^)Y912dIbdV0&)X+u2EP@5=9}wGgtAkWp%`Z4g`|c~ z007ALCWIgl0EePN)`m_X!1{5rzYC6KH~@K3A)#(DwoTZI?Ug7vmic)$$`us#C#wI{ z96?;yg;}mc#10mFZBbrqUM!DjS0LL=OCKH%(I0@ZGwF#;O z(rnmqa^QO{_W~+`qW*;A%e7RssV+eSmpBXa}}`M8kyV5_|!N#f779Et?wv0000M5@LiJ2$;n}oa|B|ZZ^cBgK;Pt@DN%WP^scz9Bjl(bIErX z>@EJcd+&Yk{rJB3c$}}@Zqt!^UH^;^85e5*`1$b7)8z%H=Z;vue3(EKcmlk4lE`;- zLi-9y)*$9OJ>l9I_OUfyb(*hYuA1AQDp0XA=Mspkx;}s0aQ?mI5TF z;}%=#MU^jm-)zrZo{V8`x5%xool`Y^rCv1VTmi^ZfWqQDk&t4sPfeUAmC5ymxOMdc zji$+ZZS#hz>08~CA@l^YMf8@*Kd?7)Ha& z;J_}K+q;-Mt>FOd#!y6G_r8MoC0LR9J=Wm$7k!FcgMA=RAN*b@2vx1ZRR|1lKfKK_gJ9W(0YH zI1>amfQ~YmfD|AfCkq1!4;ufK&^_J%NqSEbo4T%9Q%|e9KLCKOYbb4Yz+uFgqSA3O zD?n?00iqFOa>jvMu-16Z1qZ;|8+0Z1mFEA3u@tUVm00D|UM yfX?1XBwtChxKF0000)*SSSMVgRA8n9x`HSjr~@k% zM7rX{bYOR2cMw(}9~PVeSIgzf)Ql$I3`g7_F5ZFwxVk%?PTW#oZfbohfQYO_WOWk& zGu!~p6o@Gv*a0)UHlJPOer$q>RKNmgRJAFXUjyAUm8u?c^Rpfhkv;GX`~~P?k!^vCrMRq&q@w9w-_-;7d5Dma%B% z8H3$M%&u?V^j7m|=3bVR0D@;BsYVjn8VgTIADbF8QU1*n@nX3}%<(#0n(9%B3y z;3Fb2C$k}_VP0F>y8CAhlK<*Gk}Y`lD|SyO*EEThjBM#5ABqZ%R-E=;*irlM*W8EC z7N-N9!NU`z)Wj3C$Vuaqxx8KSk3Vm%W8U7B{{Eoo{JlNOXBl683aU8GXdfNi_QfGw z~mfS1dJgXgb_oU<=}taqpIOJTzbfh>--=?7jm9GuB< zQCN_fnfdV9cK?TO((~^no~Q@ftix`gw4HP16}bZ^T+hetPpm0%gp4%Fx)G_X2mRb3rfqjWan#{+&$qbx{%g;;Jf2#mS3WKMspUXO@geCyQ C-@r%! literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/icons/types/32/people.png b/org.argeo.suite.theme.default/icons/types/32/people.png new file mode 100644 index 0000000000000000000000000000000000000000..5f53288cf4d058bfb624a9e5080e2e7b06aca606 GIT binary patch literal 1074 zcmV-21kL-2P)-o>53fX^Qq1RoMc}=*EZsN)7L|fJe<=c$VtyX@>Jo{aSO;d5g1Xi*fl4vI z1bp-ok~eV#jCzr95x7cnIhiKhH;#F{&)Ksln6;C(Bm@F}We;Trhz{QdKre5iZK%%R zgnMohpO`zB&EtJeAI@PM@7vw>fSi4EhHc4ne#yHg7i@ArQrC5~t)B?@j$l^)!8m+Q z^xaQ|by6}-bac4*LS{r_A%q!$%qpe#68Vb)=3-`P&$n_1C=+LyFlVS-XgL$;=Wv>ukm=y?M4VjK0 z#S%!dgi9aF44{`cI}I~gDdw|w0#kmTrfn1HN0B%UeMtrU2x|=JOq| z+D^x16=2q1Q2Xt>AeT|FDv%BGsz3dKvz-;7QRe6VWj2n==f7(!ix>x`pwQVSfn1Om zz}d4WEkQeV%>V#xdztW?Bj<8#iJ{yVQPZjSX!>^-UBR{2+Ma0-k4fq;K4n z9Kble+N_SamWVHH|? z;GtlODXsusBiISQk*t@uyxR9iXdK6tVtxkr-fopsy@WFTgi^hjk_?6}lsyR5pYLJT zPciE!ezRatDX7_V0sxg_ei!SwbU{w_(v@HEEWH=B?Pcn}-^YC6dndi46x1aU+i>2` zTS}xlP7c=PM7nm}&%D=6E)ZxaAA2r2tF{}f0?gyTK|k{|&)5a$m8=`9EnS~N?ta}m zij!$DbR;E(6m3<-)HTebGNyJ4wG;IHKfRKFt`tN8thjpKSS-9hs9NNE(=DFJAB=AwvmOz6<7OO)p@>W>KdX_D1MWq(eKWT|9IknOKAOLKrHwYKOEivNJUfv#i^7);tsYW2cPY`gnp7G z>+Ze#KEJ#7{EjmW1LHtfC zT(BN5QZG~h6#XLOD?nFe3FgRe^*y!dI7pB7Xj=} zNPH7dNg`ZZV10QYIiFlWcx4M*Bo3q7!PR#S{njy!kXNFj6^R0LRZat_BOvTTDvQ|0 zYu9-9@GY)>e4r8WNK~{M;NF6A5IF!u*Pao_!>c>sB5@i4W&33)Kv(4)fQLbzLMjVx zW{x<=g{Ki(d`u%?-rDMs2oz{Mg}Y0>^OO-7@;L=;(t6$!mUUH5^T4p+Q04pJym6Z% zBs&5*Uo!{#tz#Iyzn=5gjn6Cs(zbwES`Rbl_sQfx4=^}CWf35GmSR8jzU-m*bN7rAV-#S6}poBsDjCwsg0!>=- z*v1Aa5T!CIJp1c>qNK^9;n7FjKAMcSoeYoLWNci>U;1RKCG1>s3+Fsx)gd3HTrQ Y2Uc$O`i61!!2kdN07*qoM6N<$f(U3+(*OVf literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/icons/types/32/save.png b/org.argeo.suite.theme.default/icons/types/32/save.png new file mode 100644 index 0000000000000000000000000000000000000000..d7597d1c7666ccbdf31110b93284a322b1626371 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVj#U0gc&U_oSP41Joa>P z42fucJAEVXAp;Q?eT`a)M!_2mA=}+-m}VbfOJQEIUNMJZ_5qfKijz8@X!s@hJe(YJ z!|JDfZT-#rk+-*XtdwE!Fk>iV{8rCsFiB7Eu$DtWG;4#g=VPNMaX|O2x=q-IHeR+xUK?!nH|#-yTg--tn!ipHJoWPKM&pn*xRm`xI)j7F^EN ze=wn)kSU%V@G`nhOMk{f6re7AcW#&|1RB2$D yz`%B&$-Vx+HN%hZeodo$1|1_n=8KbLh*2~7ahv~Oqt literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/icons/types/32/search.png b/org.argeo.suite.theme.default/icons/types/32/search.png new file mode 100644 index 0000000000000000000000000000000000000000..8d89a4a72e5ad25dcf4af379889c33cf6fc297d9 GIT binary patch literal 541 zcmV+&0^&q+im@2YxCL zJm&PV0+_J??7-2BH$41^`HT4fE+5SdGfVbw@;19kwzXU?`A^xe`ancFKnLiVDhC#- zx@ZERwJ8E3(gTLT$%eIa;7(PuMgc_R0LXyTnl`3DUsYeX1~BJ2aQuUl+{QiDqw)qE zryNUo2eQEV1h@(f8|VmV#kpXb;RJW=+i~-nlW4~}x z=W^LMw@!5(<9r2Rspdm}Ro8&+_|5*dEqmes_|9=CcE5-*Lirey06I=Li*%m4rUbC9 zB-H>9;0<&V>_n$u2#`D7ndNzm^xZh>IQ9Tkbq2hcu1!Q1SpD!Blt%-YWNv&TB9&pa zZ$?fvitPz20L$mOn|l(GjghdOPbne>@Igf6z9ei$-M}amN0U)*Mq${$WTdKtWB>>8 z2pq;3N`+Xf19l;gC~EwBl{4Tu(4C7&Ru^F7iwIV2w@>*=HnZPYRbPL3L)41IuK;yr z8;C|qv87&*auz|2<7lcEBttX?kP6W#Kng_T0I?7|0jPrb6MzbczX1p!CKP>U>gO9N fMBB*DBTyxuzV^(_m93tp00000NkvXXu0mjf(1_#0 literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/icons/types/32/tag.png b/org.argeo.suite.theme.default/icons/types/32/tag.png new file mode 100644 index 0000000000000000000000000000000000000000..907e216dfb42f8c51b35665855e7468b4f6e60ee GIT binary patch literal 483 zcmV<90UZ8`P)l}SWFR9J=WSIbeuFc5uVI5I;zz;s|b$i;h3384d10Ye4Q0j2`N zaN7$m!E_)xAQgxM0&j%9`e4YAVP`yE`N_M_+I>GY6oJpL z9$4Z+U>zbXhd`lVeo2BBY(m#qa@jB4{RKedO&`M6+G?l-oSbe|hGE+PD904>8yk^< z(vUGFDACupM85~zVY>ulSjWtx1P;~g*zRT`S_r6R=GG(nVV%S@`%VdrH`A9W$@92)N`efMYE{gq<^UGX`oUF!);MRNElX z51|sw(bxS5z@zh@0o2~~rvc1_j$~DaPQR@qvk;IkL5W365XhIIcGQ}bKq&+kN)k<; zlM#^S6Uf?xQVA5opJWqCB~asCRu=>3`;EIlq%s7XXYR9J=Wm$6F%Q5?rVMVNy(NG-Rybb_NpLk;EBptQI)Gz2*d zPC=H?)IU(r7&N(vK~34x5OhlrsE|$G(qV88mx~Q$c%t_n#Y?Ha+dba<{XV?k@B4n- zRJYq@oSNzXSUlc|0Glcj-EJT32?2lzkXHc!3X?)Q{( - - - - - + diff --git a/org.argeo.suite.ui.rap/bnd.bnd b/org.argeo.suite.ui.rap/bnd.bnd index 121f1ab..35b671b 100644 --- a/org.argeo.suite.ui.rap/bnd.bnd +++ b/org.argeo.suite.ui.rap/bnd.bnd @@ -1,4 +1,4 @@ -Service-Component: OSGI-INF/argeoSuiteWebApp.xml +Service-Component: OSGI-INF/cmsWebApp.xml Import-Package:\ org.argeo.cms.web,\ diff --git a/org.argeo.suite.ui.rap/build.properties b/org.argeo.suite.ui.rap/build.properties index 8d783b3..6210e84 100644 --- a/org.argeo.suite.ui.rap/build.properties +++ b/org.argeo.suite.ui.rap/build.properties @@ -1,5 +1,5 @@ output.. = bin/ bin.includes = META-INF/,\ .,\ - OSGI-INF/argeoSuiteWebApp.xml + OSGI-INF/ source.. = src/ diff --git a/org.argeo.suite.ui/OSGI-INF/argeoSuiteApp.xml b/org.argeo.suite.ui/OSGI-INF/argeoSuiteApp.xml deleted file mode 100644 index d046f6b..0000000 --- a/org.argeo.suite.ui/OSGI-INF/argeoSuiteApp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/org.argeo.suite.ui/OSGI-INF/cmsApp.xml b/org.argeo.suite.ui/OSGI-INF/cmsApp.xml new file mode 100644 index 0000000..ab3a0b7 --- /dev/null +++ b/org.argeo.suite.ui/OSGI-INF/cmsApp.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/org.argeo.suite.ui/OSGI-INF/l10n/bundle.properties b/org.argeo.suite.ui/OSGI-INF/l10n/bundle.properties index 0b11430..cec63ab 100644 --- a/org.argeo.suite.ui/OSGI-INF/l10n/bundle.properties +++ b/org.argeo.suite.ui/OSGI-INF/l10n/bundle.properties @@ -1,3 +1,5 @@ dashboard=dashboard +people=contacts management +documents=documents defaultWorkAppTitle=Argeo Suite \ No newline at end of file diff --git a/org.argeo.suite.ui/OSGI-INF/leadPane.xml b/org.argeo.suite.ui/OSGI-INF/leadPane.xml index bf492a3..cf0f469 100644 --- a/org.argeo.suite.ui/OSGI-INF/leadPane.xml +++ b/org.argeo.suite.ui/OSGI-INF/leadPane.xml @@ -1,5 +1,5 @@ - + diff --git a/org.argeo.suite.ui/OSGI-INF/workHeader.xml b/org.argeo.suite.ui/OSGI-INF/workHeader.xml index 3339b47..f416750 100644 --- a/org.argeo.suite.ui/OSGI-INF/workHeader.xml +++ b/org.argeo.suite.ui/OSGI-INF/workHeader.xml @@ -1,5 +1,5 @@ - + diff --git a/org.argeo.suite.ui/bnd.bnd b/org.argeo.suite.ui/bnd.bnd index 8fd262a..ecf6fe8 100644 --- a/org.argeo.suite.ui/bnd.bnd +++ b/org.argeo.suite.ui/bnd.bnd @@ -1,5 +1,5 @@ Service-Component:\ -OSGI-INF/argeoSuiteApp.xml,\ +OSGI-INF/cmsApp.xml,\ OSGI-INF/workHeader.xml,\ OSGI-INF/leadPane.xml diff --git a/org.argeo.suite.ui/build.properties b/org.argeo.suite.ui/build.properties index 2e0c968..6210e84 100644 --- a/org.argeo.suite.ui/build.properties +++ b/org.argeo.suite.ui/build.properties @@ -1,7 +1,5 @@ output.. = bin/ bin.includes = META-INF/,\ .,\ - OSGI-INF/argeoSuiteApp.xml,\ - OSGI-INF/workHeader.xml,\ - OSGI-INF/leadPane.xml + OSGI-INF/ source.. = src/ diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteApp.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteApp.java index 7aebdc2..b669d45 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteApp.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteApp.java @@ -9,24 +9,39 @@ import javax.jcr.Node; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.argeo.cms.ui.CmsApp; +import org.argeo.cms.ui.AbstractCmsApp; +import org.argeo.cms.ui.CmsTheme; import org.argeo.cms.ui.CmsUiProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.osgi.framework.Constants; -public class ArgeoSuiteApp implements CmsApp { +/** The Argeo Suite App. */ +public class ArgeoSuiteApp extends AbstractCmsApp { private final static Log log = LogFactory.getLog(ArgeoSuiteApp.class); + public final static String PID_PREFIX = "argeo.work."; public final static String HEADER_PID = PID_PREFIX + "header"; public final static String LEAD_PANE_PID = PID_PREFIX + "leadPane"; private final static String DEFAULT_UI_NAME = "work"; + private final static String DEFAULT_THEME_ID = "org.argeo.suite.theme.default"; private ArgeoSuiteUi argeoSuiteUi; private Map uiProviders = new TreeMap<>(); + public void init(Map properties) { + if (log.isDebugEnabled()) + log.info("Argeo Suite App started"); + } + + public void destroy(Map properties) { + if (log.isDebugEnabled()) + log.info("Argeo Suite App stopped"); + + } + @Override public Set getUiNames() { HashSet uiNames = new HashSet<>(); @@ -37,12 +52,21 @@ public class ArgeoSuiteApp implements CmsApp { @Override public void initUi(String uiName, Composite parent) { if (DEFAULT_UI_NAME.equals(uiName)) { + CmsTheme theme = getTheme(uiName); + if (theme != null) + CmsTheme.registerCmsTheme(parent.getShell(), theme); argeoSuiteUi = new ArgeoSuiteUi(parent, SWT.NONE); refresh(uiName); } } + @Override + public String getThemeId(String uiName) { + // TODO make it configurable + return DEFAULT_THEME_ID; + } + public void refresh(String uiName) { if (DEFAULT_UI_NAME.equals(uiName)) { Node context = null; @@ -57,6 +81,8 @@ public class ArgeoSuiteApp implements CmsApp { log.error("No service pid found for " + uiProvider.getClass() + ", " + properties); } else { uiProviders.put(servicePid, uiProvider); + if (log.isDebugEnabled()) + log.debug("Added UI provider " + servicePid + " to CMS app."); } } diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteIcon.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteIcon.java new file mode 100644 index 0000000..220e879 --- /dev/null +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteIcon.java @@ -0,0 +1,14 @@ +package org.argeo.suite.ui; + +import org.argeo.cms.ui.util.CmsIcon; + +/** Icon names used by Argeo Suite. */ +public enum ArgeoSuiteIcon implements CmsIcon { + add, save, search, delete, logout, dashboard, + // people + people, person, organisation, + // library + documents, document, folder, + // misc + task, tag; +} diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteUi.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteUi.java index 2505c45..a2caa15 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteUi.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteUi.java @@ -1,10 +1,14 @@ package org.argeo.suite.ui; +import static org.argeo.suite.ui.ArgeoSuiteIcon.dashboard; + +import org.argeo.cms.ui.CmsTheme; import org.argeo.cms.ui.util.CmsUiUtils; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.custom.SashForm; +import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; @@ -17,11 +21,15 @@ public class ArgeoSuiteUi { private SashForm dynamicArea; private Composite entryArea; - private CTabFolder editorArea; + private Composite editorArea; + private CTabFolder editorTabFolder; private Composite defaultBody; + private CmsTheme theme; + public ArgeoSuiteUi(Composite parent, int style) { + theme = CmsTheme.getCmsTheme(parent); this.parent = parent; parent.setLayout(CmsUiUtils.noSpaceGridLayout()); @@ -45,25 +53,39 @@ public class ArgeoSuiteUi { dynamicArea.setLayoutData(CmsUiUtils.fillAll()); if (SWT.RIGHT_TO_LEFT == (style & SWT.RIGHT_TO_LEFT)) {// arabic, hebrew, etc. - editorArea = new CTabFolder(dynamicArea, SWT.NONE); - entryArea = new Composite(dynamicArea, SWT.NONE); + editorArea = new Composite(dynamicArea, SWT.BORDER); + entryArea = new Composite(dynamicArea, SWT.BORDER); } else { entryArea = new Composite(dynamicArea, SWT.NONE); - editorArea = new CTabFolder(dynamicArea, SWT.NONE); + editorArea = new Composite(dynamicArea, SWT.NONE); } int[] weights = new int[] { 2000, 8000 }; dynamicArea.setWeights(weights); - - Composite buttons = new Composite(editorArea, SWT.NONE); - buttons.setLayout(new RowLayout(SWT.HORIZONTAL)); - Button delete = new Button(buttons, SWT.PUSH); - delete.setText("Delete"); - editorArea.setTopRight(buttons); - - CTabItem defaultTab = new CTabItem(editorArea, SWT.NONE); - defaultTab.setText("Home"); - defaultBody = new Composite(editorArea, SWT.NONE); + editorArea.setLayout(new GridLayout()); + + // TODO make it dynamic + RecentItems recentItems = new RecentItems(); + recentItems.createUiPart(entryArea); + + editorTabFolder = new CTabFolder(editorArea, SWT.NONE); + editorTabFolder.setLayoutData(CmsUiUtils.fillAll()); + Composite buttons = new Composite(editorTabFolder, SWT.NONE); + RowLayout buttonsLayout = new RowLayout(SWT.HORIZONTAL); + buttonsLayout.pack = false; + buttons.setLayout(buttonsLayout); + Button delete = new Button(buttons, SWT.FLAT); + delete.setImage(ArgeoSuiteIcon.delete.getSmallIcon(theme)); + // int size = ArgeoSuiteIcon.delete.getSmallIconSize(); + // delete.setBounds(delete.getBounds().x,delete.getBounds().y,size,size); + // delete.setSize(size, size); + editorTabFolder.setTopRight(buttons); + + CTabItem defaultTab = new CTabItem(editorTabFolder, SWT.NONE); + // defaultTab.setText("Home"); + defaultTab.setImage(dashboard.getSmallIcon(theme)); + defaultBody = new Composite(editorTabFolder, SWT.NONE); defaultTab.setControl(defaultBody); + editorTabFolder.setSelection(defaultTab); // editorArea.setSingle(true); } @@ -88,8 +110,8 @@ public class ArgeoSuiteUi { return entryArea; } - CTabFolder getEditorArea() { - return editorArea; + CTabFolder getEditorTabFolder() { + return editorTabFolder; } Composite getDefaultBody() { diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLeadPane.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLeadPane.java index 73b81b0..d84f69d 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLeadPane.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLeadPane.java @@ -1,30 +1,50 @@ package org.argeo.suite.ui; import java.util.Dictionary; +import java.util.Map; import javax.jcr.Node; import javax.jcr.RepositoryException; +import org.argeo.cms.Localized; +import org.argeo.cms.ui.CmsTheme; import org.argeo.cms.ui.CmsUiProvider; +import org.argeo.cms.ui.util.CmsIcon; import org.argeo.cms.ui.util.CmsUiUtils; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; import org.osgi.service.cm.ConfigurationException; import org.osgi.service.cm.ManagedService; +/** Side pane listing various perspectives. */ public class DefaultLeadPane implements CmsUiProvider, ManagedService { + private CmsTheme theme; @Override - public Control createUi(Composite parent, Node context) throws RepositoryException { - parent.setLayout(new GridLayout()); + public Control createUi(Composite parent, Node node) throws RepositoryException { + theme = CmsTheme.getCmsTheme(parent); + GridLayout layout = new GridLayout(); + layout.verticalSpacing = 10; + layout.marginTop = 10; + layout.marginLeft = 10; + layout.marginRight = 10; + parent.setLayout(layout); + + Button dashboardB = createButton(parent, WorkMsg.dashboard, ArgeoSuiteIcon.dashboard); + createButton(parent, WorkMsg.people, ArgeoSuiteIcon.people); + createButton(parent, WorkMsg.documents, ArgeoSuiteIcon.documents); + return dashboardB; + } - Label dashboard = new Label(parent, SWT.NONE); - CmsUiUtils.style(dashboard, WorkStyles.leadPane); - dashboard.setText(WorkMsg.dashboard.lead()); - return dashboard; + protected Button createButton(Composite parent, Localized msg, CmsIcon icon) { + Button button = new Button(parent, SWT.FLAT); + CmsUiUtils.style(button, WorkStyles.leadPane); + button.setToolTipText(msg.lead()); + button.setImage(icon.getBigIcon(theme)); + return button; } @Override @@ -33,4 +53,7 @@ public class DefaultLeadPane implements CmsUiProvider, ManagedService { } + public void init(Map properties) { + + } } diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java new file mode 100644 index 0000000..230a0da --- /dev/null +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java @@ -0,0 +1,41 @@ +package org.argeo.suite.ui; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; + +import org.argeo.cms.ui.CmsTheme; +import org.argeo.cms.ui.CmsUiProvider; +import org.argeo.cms.ui.util.CmsUiUtils; +import org.argeo.connect.ui.widgets.DelayedText; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; + +/** List recent items. */ +public class RecentItems implements CmsUiProvider { + int SEARCH_TEXT_DELAY = 800; + private CmsTheme theme; + + @Override + public Control createUi(Composite parent, Node context) throws RepositoryException { + theme = CmsTheme.getCmsTheme(parent); + parent.setLayout(new GridLayout()); + + Composite top = new Composite(parent, SWT.NONE); + top.setLayoutData(CmsUiUtils.fillWidth()); + top.setLayout(new GridLayout(2, false)); + + Label search = new Label(top, SWT.NONE); + search.setImage(ArgeoSuiteIcon.search.getSmallIcon(theme)); + DelayedText delayedText = new DelayedText(top, SWT.SINGLE | SWT.BORDER, SEARCH_TEXT_DELAY); + delayedText.getText().setLayoutData(CmsUiUtils.fillWidth()); + + TableViewer viewer = new TableViewer(parent); + viewer.getTable().setLayoutData(CmsUiUtils.fillAll()); + return delayedText.getText(); + } + +} diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/WorkMsg.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/WorkMsg.java index 679ad50..f651d9f 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/WorkMsg.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/WorkMsg.java @@ -4,5 +4,5 @@ import org.argeo.cms.Localized; /** Localized messages. */ public enum WorkMsg implements Localized { - dashboard; + dashboard,people,documents; } diff --git a/sdk/argeo-suite-rap.properties b/sdk/argeo-suite-rap.properties index 4c98fc0..34153a8 100644 --- a/sdk/argeo-suite-rap.properties +++ b/sdk/argeo-suite-rap.properties @@ -13,6 +13,7 @@ org.argeo.cms argeo.osgi.start.5.suite=\ org.argeo.suite.cms,\ org.argeo.suite.ui,\ +org.argeo.suite.theme.default,\ org.argeo.suite.ui.rap # Local -- 2.30.2