From 6dd21e8d47a1ecc92cf9f958af9ce1a97655fa68 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 5 Oct 2020 14:10:11 +0200 Subject: [PATCH] Login/logout working in new Argeo Suite. --- .../suite/e4/rap/ArgeoOfficeRapE4App.java | 5 +- .../suite/e4/rap/settings/AppDeployer.java | 17 ++- .../suite/e4/rap/settings/ArgeoRapApp.java | 18 +-- .../build.properties | 3 +- .../icons/types/16/delete.png | Bin 447 -> 356 bytes .../icons/types/16/location.png | Bin 0 -> 429 bytes .../icons/types/32/delete.png | Bin 604 -> 586 bytes .../icons/types/32/location.png | Bin 0 -> 805 bytes org.argeo.suite.theme.default/rap/work.css | 11 +- org.argeo.suite.ui/OSGI-INF/cmsApp.xml | 4 +- org.argeo.suite.ui/OSGI-INF/dashboard.xml | 8 ++ .../OSGI-INF/l10n/bundle.properties | 3 +- .../OSGI-INF/leadPane.properties | 1 - org.argeo.suite.ui/OSGI-INF/leadPane.xml | 2 +- org.argeo.suite.ui/OSGI-INF/loginScreen.xml | 8 ++ org.argeo.suite.ui/OSGI-INF/recentItems.xml | 8 ++ .../OSGI-INF/workHeader.properties | 2 - org.argeo.suite.ui/OSGI-INF/workHeader.xml | 2 +- org.argeo.suite.ui/bnd.bnd | 5 +- org.argeo.suite.ui/build.properties | 6 +- org.argeo.suite.ui/config/cmsApp.properties | 2 + .../config/dashboard.properties | 2 + org.argeo.suite.ui/config/leadPane.properties | 2 + .../config/loginScreen.properties | 2 + .../config/recentItems.properties | 2 + .../config/workHeader.properties | 4 + .../src/org/argeo/suite/ui/ArgeoSuiteApp.java | 127 ++++++++++++++---- .../src/org/argeo/suite/ui/ArgeoSuiteUi.java | 54 ++++---- .../org/argeo/suite/ui/DefaultDashboard.java | 31 +++++ .../src/org/argeo/suite/ui/DefaultHeader.java | 57 +++++++- .../org/argeo/suite/ui/DefaultLeadPane.java | 17 ++- .../argeo/suite/ui/DefaultLoginScreen.java | 34 +++++ .../src/org/argeo/suite/ui/RecentItems.java | 11 +- .../{ArgeoSuiteIcon.java => SuiteIcon.java} | 4 +- .../suite/ui/{WorkMsg.java => SuiteMsg.java} | 4 +- .../ui/{WorkStyles.java => SuiteStyle.java} | 9 +- 36 files changed, 357 insertions(+), 108 deletions(-) create mode 100644 org.argeo.suite.theme.default/icons/types/16/location.png create mode 100644 org.argeo.suite.theme.default/icons/types/32/location.png create mode 100644 org.argeo.suite.ui/OSGI-INF/dashboard.xml delete mode 100644 org.argeo.suite.ui/OSGI-INF/leadPane.properties create mode 100644 org.argeo.suite.ui/OSGI-INF/loginScreen.xml create mode 100644 org.argeo.suite.ui/OSGI-INF/recentItems.xml delete mode 100644 org.argeo.suite.ui/OSGI-INF/workHeader.properties create mode 100644 org.argeo.suite.ui/config/cmsApp.properties create mode 100644 org.argeo.suite.ui/config/dashboard.properties create mode 100644 org.argeo.suite.ui/config/leadPane.properties create mode 100644 org.argeo.suite.ui/config/loginScreen.properties create mode 100644 org.argeo.suite.ui/config/recentItems.properties create mode 100644 org.argeo.suite.ui/config/workHeader.properties create mode 100644 org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultDashboard.java create mode 100644 org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLoginScreen.java rename org.argeo.suite.ui/src/org/argeo/suite/ui/{ArgeoSuiteIcon.java => SuiteIcon.java} (79%) rename org.argeo.suite.ui/src/org/argeo/suite/ui/{WorkMsg.java => SuiteMsg.java} (52%) rename org.argeo.suite.ui/src/org/argeo/suite/ui/{WorkStyles.java => SuiteStyle.java} (56%) diff --git a/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/ArgeoOfficeRapE4App.java b/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/ArgeoOfficeRapE4App.java index 6bc92fd..213e5d2 100644 --- a/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/ArgeoOfficeRapE4App.java +++ b/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/ArgeoOfficeRapE4App.java @@ -2,7 +2,6 @@ package org.argeo.suite.e4.rap; import org.argeo.cms.e4.rap.AbstractRapE4App; -import org.argeo.cms.ui.util.CmsTheme; import org.eclipse.rap.rwt.application.Application; import org.eclipse.rap.rwt.client.WebClient; import org.osgi.framework.BundleContext; @@ -21,8 +20,8 @@ public class ArgeoOfficeRapE4App extends AbstractRapE4App { @Override protected void addEntryPoints(Application application) { - CmsTheme cmsTheme = new CmsTheme(bc, "org.argeo.theme.argeo2"); - cmsTheme.apply(application); +// CmsTheme cmsTheme = new CmsTheme(bc, "org.argeo.theme.argeo2"); +// cmsTheme.apply(application); String font = ""; getBaseProperties().put(WebClient.HEAD_HTML, font); diff --git a/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/settings/AppDeployer.java b/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/settings/AppDeployer.java index bb32488..978a8e2 100644 --- a/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/settings/AppDeployer.java +++ b/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/settings/AppDeployer.java @@ -7,7 +7,6 @@ import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.cms.e4.rap.AbstractRapE4App; -import org.argeo.cms.ui.util.CmsTheme; import org.argeo.util.LangUtils; import org.eclipse.rap.rwt.application.ApplicationConfiguration; import org.osgi.framework.Bundle; @@ -45,15 +44,15 @@ public class AppDeployer implements ManagedServiceFactory { } protected void deploy(Bundle bundle, Map properties) { - CmsTheme cmsTheme; - if (properties.containsKey(CmsTheme.CMS_THEME_BUNDLE_PROPERTY)) { - String cmsThemeBundle = properties.get(CmsTheme.CMS_THEME_BUNDLE_PROPERTY); - cmsTheme = new CmsTheme(bundleContext, cmsThemeBundle); - } else { - cmsTheme = new CmsTheme(bundleContext, CmsTheme.DEFAULT_CMS_THEME_BUNDLE); - } +// CmsTheme cmsTheme; +// if (properties.containsKey(CmsTheme.CMS_THEME_BUNDLE_PROPERTY)) { +// String cmsThemeBundle = properties.get(CmsTheme.CMS_THEME_BUNDLE_PROPERTY); +// cmsTheme = new CmsTheme(bundleContext, cmsThemeBundle); +// } else { +// cmsTheme = new CmsTheme(bundleContext, CmsTheme.DEFAULT_CMS_THEME_BUNDLE); +// } - ArgeoRapApp app = new ArgeoRapApp(bundleContext, bundle, cmsTheme); + ArgeoRapApp app = new ArgeoRapApp(bundleContext, bundle, null); Hashtable props = new Hashtable(); props.put(AbstractRapE4App.CONTEXT_NAME_PROPERTY, app.getContextName()); diff --git a/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/settings/ArgeoRapApp.java b/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/settings/ArgeoRapApp.java index e575f55..3bdc902 100644 --- a/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/settings/ArgeoRapApp.java +++ b/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/settings/ArgeoRapApp.java @@ -7,7 +7,7 @@ import org.apache.commons.io.FilenameUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.cms.e4.rap.AbstractRapE4App; -import org.argeo.cms.ui.util.CmsTheme; +import org.argeo.cms.ui.CmsTheme; import org.eclipse.rap.rwt.application.Application; import org.eclipse.rap.rwt.client.WebClient; import org.osgi.framework.Bundle; @@ -38,19 +38,19 @@ public class ArgeoRapApp extends AbstractRapE4App { public void init(BundleContext bundleContext, Map properties) { super.init(bundleContext, properties); // super must be first - if (getBaseProperties().containsKey(CmsTheme.CMS_THEME_BUNDLE_PROPERTY)) { - String cmsThemeBundle = getBaseProperties().get(CmsTheme.CMS_THEME_BUNDLE_PROPERTY); - cmsTheme = new CmsTheme(getBundleContext(), cmsThemeBundle); - } else { - cmsTheme = new CmsTheme(getBundleContext(), CmsTheme.DEFAULT_CMS_THEME_BUNDLE); - } +// if (getBaseProperties().containsKey(CmsTheme.CMS_THEME_BUNDLE_PROPERTY)) { +// String cmsThemeBundle = getBaseProperties().get(CmsTheme.CMS_THEME_BUNDLE_PROPERTY); +// cmsTheme = new CmsTheme(getBundleContext(), cmsThemeBundle); +// } else { +// cmsTheme = new CmsTheme(getBundleContext(), CmsTheme.DEFAULT_CMS_THEME_BUNDLE); +// } bundle = bundleContext.getBundle(); } @Override protected void addEntryPoints(Application application) { - if (cmsTheme != null) - cmsTheme.apply(application); +// if (cmsTheme != null) +// cmsTheme.apply(application); String font = ""; getBaseProperties().put(WebClient.HEAD_HTML, font); diff --git a/org.argeo.suite.theme.default/build.properties b/org.argeo.suite.theme.default/build.properties index bf450ca..9cb37cd 100644 --- a/org.argeo.suite.theme.default/build.properties +++ b/org.argeo.suite.theme.default/build.properties @@ -1,2 +1,3 @@ bin.includes = META-INF/,\ - OSGI-INF/cmsTheme.xml + icons/,\ + OSGI-INF/ diff --git a/org.argeo.suite.theme.default/icons/types/16/delete.png b/org.argeo.suite.theme.default/icons/types/16/delete.png index 676a39dcfa1f55439af9dbffc29dd6a3c0710498..dd2f428849427541b9c52545ff67580c8dc8c613 100644 GIT binary patch delta 308 zcmV-40n7fs1LOjbIe!*OL_t(Ijg6Bbc7!kxhCll15S2mlz=OxMHRwK0&?EE)-QEJ( zJ`R8%)x7~6Ab8vg(5cvk7XnKemHe6c{+YbQGsfUXp64MDI`TzC8aMZGReg;Hc-qjt zm0*mS9KS97`40GOtv^JhnK}q}itMm+-hdg<0IvrCb~JDs0e>LR^AqrSu=qDU?zKL2wsv+3R_Nwrx9` zZH~}&9ch~Gu@+{l5r$#dtO$aDaU56r3=oms5tLGBtruo)2LNcTNs?rbwJ>x4!ntkR z`L$`Ssp}fJUM*hV_bZrZ|Hgxl=|@D~Hvu=u%RlY^+WSA;5n(G(E&T=n00001;0Ie&3UL_t(Ijbr@(|33pIfC-uN!bVwOpN>c2e1#MNY>Ka&8rRKN zNHIVbV}!Zjg^jYnuYatUm>B-co_?c$>%%WT^TY>pKEM<{wA9+f&ivE&**EcD7vE`_ zCq9^S0qz2rW;UkZvMfx07)(VjstK@tItgZ-;4y0WprZY`m;ryHLFF)LL~JGvmKVWQG6#GcqtTq6YGxe=H2hUSvd$ z1#E`k(~Rr|1_lNO2I-@>qyGM9T8>Tg-~Y@Er{Cz`K@VIebcKKZvGQQG9!GLPF#tKV z(E&5lUj|c=i+?J}v4dg&HqHP3Gol!REsA03pa5O-pMNY2Ctn-g`u&e}EjB}VS--AA zcEN&Q|5zU*Ylelk?6Dgm=mGochw!h@zq!j87)VIUuqZ}P$_)Si|A*t})=C0?Z{YbRY^ojRH{#jR-fO`Agz>y8Vqi_yWD;5?tAd>O{$LGh_)9k&q3oL zIA|RUE*`J`1Td=3lV9zD93ryRG!z{cA>YUbH9+g)(Jbgk0I^yi&^i4p0Dx#o08}!k znD%J+*8oH%0Mz{j-gPqIZqHm6cOuIT0rW<+T_X$CSQT!sfS6AzvF`x2FSxrA=jz#- zyLs{FL(S!}vqGS}cHVn}U?bS?#WJO}P9_i5N4@}t=T{stByI(pnCw?XgLfSCkCTdL zdB_y&rfTE0Be}nouh+oPHb7e_!1H(?J!To7-(Vozi)qzMg=acnG(d?B@NikgD=Rh! zrvUKz4eW{T&!^V_=Enx_$x2C)if3u*vUtjs@Jfmo_q724dQU470J*eFF71A9`Wt%# Xwc&WNR_Dv)00000NkvXXu0mjflwP~u literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/icons/types/32/delete.png b/org.argeo.suite.theme.default/icons/types/32/delete.png index c74ad1a7295da97d2009085651f2a90919534b34..2ee3d889f8b5ee8b42b10ca87b4b1d2725cb94c1 100644 GIT binary patch delta 541 zcmV+&0^hH-5Pfv&E}{!tQ`Wn{E8X%%;6o+{n;(r*xO%ch=uT}v>bPM1m z;E*bKV&;d#!c0L(n5#lNBcuk-1?_g2w_yAW0<<$uitx8l*awK{M^rI$&E#w~Fjp7# zdfn>OwkL#u5W*?SCg4~o!{HE<$po!d>%{1=mn4bCCrJV+C8U&25v8{vO;fbnZA4Lo z(P(7dlTvDX{eONRaU3I#V{|&51N{~v;GL z000(?g|_x7DpP>sqcEyxNr5K{=L6?0$n*S2`lP_LS*=#3_RjwTRe(>inQ2mf|Bq6j z&U0!6($qbVG@H%i_j0*(+B;L=%3&FdYaEmUz|y%~Xn!;sg}iM_4k|)5yf&ykU_PIh zSXL154Oo?w33vs*YT(dL)uK}Q*=%;?)$XZ$TOTRThe@92==FN&cDu;3OydWG0f& fC+$C1vOj3OChD@s$kFfbc+QQ}Hc2J97- z-a!mx**oaky%!Kjyn|9NKm&o|O0iH^LJBRNVrfcZDCy{=o5Y`)IcL6P)HuuJaGqyK zzV|&R(eL+}tg z3&~PclN36Jqe#SogJKM`jnhqF=f2@efxD8B1emr9;z&r-GqQ}vk?6Q-4$juPlIXsd zHcX7LHd0`mi7<^W>x+kJNq1-k;*6uTz?1@akp&V7Rev4FhD#;F>R1eSJ?()?B;l`P zF}&lN)SW`RcR9TqN5WsnZ>8{I$Si&O@&;i}%o^v+PyfjPL4iRXzXsY;_%LLoVRhVE z;pg9lQmI*~1q22g9RV9E30=HKNem9Bx8MN*orEOYRT3(As6d#+D93WYgbogxdjVWu xO!l1uy(r76_hVj68Y+0Cz(YI}zZ*_m;6Ddjf{n;DJXrt$002ovPDHLkV1oZW3&Q{a diff --git a/org.argeo.suite.theme.default/icons/types/32/location.png b/org.argeo.suite.theme.default/icons/types/32/location.png new file mode 100644 index 0000000000000000000000000000000000000000..d9207f1c33b3a09645fdf7050b3f8a3bac408b67 GIT binary patch literal 805 zcmV+=1KRwFP)A$t&gkUF=&0n!lsH3%6pUkF6twWV3d+=7gn_m! z7ZUyh_6JmM)D|s_f)+uzF>s}BqR53xiweqt(1m4`*U%Yf&S^1f^KoZJY+6MA;KDuc zd(Ztn_nh}VTsYLB{&&fK9@-qc=u@iDRH99w+tA7^>3=bw4*;iKP~Y$JY`9`38WZS_ zYH5h03TSmFU*@&|*65X)4OAOQ()t+gYQ$YbYFLMARjYuMWg1Vg=cN_~)(A)`v znNNU>HDHZ&gb-=i9UJayimyLpW2_UWMEpfJr$YGvNLzsfw3)=AvQ|-ROE~@KQL50) zhj~^2L(5EREVld>hd01ZH~eJ)Ba#LXU3!Jne~z8*$cwU`1J-EAJV-DxR(SRrkvC5P zX5$eZa?1A5L2Dv&4FKrmIskUf0ovl1^v1Na`yl370j!bBLkN92=FcLkz4X@P@Ie7= zx4;_d7)E5keu`cY^teN!6ZvRG+oSmRm+J-564I!73}(>AG%%m~#lfCI697Z|P~wZ< zOABZZ8V{m}7ardmx3|imVDEs3sIz77WlDRVw|?w*7?gI+op_DLCkY2tHfgONEj+o~ zXP2{Gfnd*|DN3f3D#Q>bzj(NDe2u`VBW+u?6_k66csI4e&#&QJ3}&W;eGwYkmpCl< z7UREgl=U-y04|-5QQcIA%UwWYdu=XrM5G~jb--trvj^DS#~n4c*H9OzV8vSpfOl(s zFIQ6KqQ12%CjysXL6dIh&y%qZhNUiQ@Sh4#4N7lEOd5frSD$AG`kzlZQAnj)+tqb;g zIz=ms->C~!u)eYhz|XZUqG3hY+9qs8iAG|%yCLQ@fr+dD@eW8o9>Uf(FCTo!Zjf91 j001<4_D`J-_0Q-RS7YGa<|TKt00000NkvXXu0mjfRwH%n literal 0 HcmV?d00001 diff --git a/org.argeo.suite.theme.default/rap/work.css b/org.argeo.suite.theme.default/rap/work.css index ab6bafd..383fe17 100644 --- a/org.argeo.suite.theme.default/rap/work.css +++ b/org.argeo.suite.theme.default/rap/work.css @@ -1,16 +1,21 @@ -.argeo-work-header { +.argeo-suite-header { + color: white; + background-color: #204a87; +} + +.argeo-suite-headerTitle { font: bold 22px sans-serif; color: white; background-color: #204a87; } -.argeo-work-leadPane { +.argeo-suite-leadPane { font: bold 14px sans-serif; color: white; background-color: #204a87; } -Button.argeo-work-leadPane { +Button.argeo-suite-leadPane { font: bold 14px sans-serif; color: white; background-color: white; diff --git a/org.argeo.suite.ui/OSGI-INF/cmsApp.xml b/org.argeo.suite.ui/OSGI-INF/cmsApp.xml index ab3a0b7..54c16df 100644 --- a/org.argeo.suite.ui/OSGI-INF/cmsApp.xml +++ b/org.argeo.suite.ui/OSGI-INF/cmsApp.xml @@ -1,10 +1,10 @@ - - + + diff --git a/org.argeo.suite.ui/OSGI-INF/dashboard.xml b/org.argeo.suite.ui/OSGI-INF/dashboard.xml new file mode 100644 index 0000000..f678b5b --- /dev/null +++ b/org.argeo.suite.ui/OSGI-INF/dashboard.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/org.argeo.suite.ui/OSGI-INF/l10n/bundle.properties b/org.argeo.suite.ui/OSGI-INF/l10n/bundle.properties index cec63ab..6fe83d3 100644 --- a/org.argeo.suite.ui/OSGI-INF/l10n/bundle.properties +++ b/org.argeo.suite.ui/OSGI-INF/l10n/bundle.properties @@ -1,5 +1,6 @@ dashboard=dashboard -people=contacts management +people=contacts documents=documents +locations=locations defaultWorkAppTitle=Argeo Suite \ No newline at end of file diff --git a/org.argeo.suite.ui/OSGI-INF/leadPane.properties b/org.argeo.suite.ui/OSGI-INF/leadPane.properties deleted file mode 100644 index 24dad49..0000000 --- a/org.argeo.suite.ui/OSGI-INF/leadPane.properties +++ /dev/null @@ -1 +0,0 @@ -service.pid=argeo.work.leadPane diff --git a/org.argeo.suite.ui/OSGI-INF/leadPane.xml b/org.argeo.suite.ui/OSGI-INF/leadPane.xml index cf0f469..a4b9ca0 100644 --- a/org.argeo.suite.ui/OSGI-INF/leadPane.xml +++ b/org.argeo.suite.ui/OSGI-INF/leadPane.xml @@ -5,5 +5,5 @@ - + diff --git a/org.argeo.suite.ui/OSGI-INF/loginScreen.xml b/org.argeo.suite.ui/OSGI-INF/loginScreen.xml new file mode 100644 index 0000000..0c5377a --- /dev/null +++ b/org.argeo.suite.ui/OSGI-INF/loginScreen.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/org.argeo.suite.ui/OSGI-INF/recentItems.xml b/org.argeo.suite.ui/OSGI-INF/recentItems.xml new file mode 100644 index 0000000..3f1baff --- /dev/null +++ b/org.argeo.suite.ui/OSGI-INF/recentItems.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/org.argeo.suite.ui/OSGI-INF/workHeader.properties b/org.argeo.suite.ui/OSGI-INF/workHeader.properties deleted file mode 100644 index fc69864..0000000 --- a/org.argeo.suite.ui/OSGI-INF/workHeader.properties +++ /dev/null @@ -1,2 +0,0 @@ -service.pid=argeo.work.header -argeo.work.header.title=%defaultWorkAppTitle \ No newline at end of file diff --git a/org.argeo.suite.ui/OSGI-INF/workHeader.xml b/org.argeo.suite.ui/OSGI-INF/workHeader.xml index f416750..eaf3a30 100644 --- a/org.argeo.suite.ui/OSGI-INF/workHeader.xml +++ b/org.argeo.suite.ui/OSGI-INF/workHeader.xml @@ -5,5 +5,5 @@ - + diff --git a/org.argeo.suite.ui/bnd.bnd b/org.argeo.suite.ui/bnd.bnd index ecf6fe8..dca43fe 100644 --- a/org.argeo.suite.ui/bnd.bnd +++ b/org.argeo.suite.ui/bnd.bnd @@ -1,7 +1,10 @@ Service-Component:\ OSGI-INF/cmsApp.xml,\ OSGI-INF/workHeader.xml,\ -OSGI-INF/leadPane.xml +OSGI-INF/leadPane.xml,\ +OSGI-INF/loginScreen.xml,\ +OSGI-INF/recentItems.xml,\ +OSGI-INF/dashboard.xml Import-Package:\ org.argeo.api,\ diff --git a/org.argeo.suite.ui/build.properties b/org.argeo.suite.ui/build.properties index 6210e84..1a1bc1a 100644 --- a/org.argeo.suite.ui/build.properties +++ b/org.argeo.suite.ui/build.properties @@ -1,5 +1,9 @@ output.. = bin/ bin.includes = META-INF/,\ .,\ - OSGI-INF/ + OSGI-INF/,\ + config/,\ + OSGI-INF/loginScreen.xml,\ + OSGI-INF/dashboard.xml,\ + OSGI-INF/recentItems.xml source.. = src/ diff --git a/org.argeo.suite.ui/config/cmsApp.properties b/org.argeo.suite.ui/config/cmsApp.properties new file mode 100644 index 0000000..641bba6 --- /dev/null +++ b/org.argeo.suite.ui/config/cmsApp.properties @@ -0,0 +1,2 @@ +service.pid=argeo.suite.ui.app +contextName=argeo diff --git a/org.argeo.suite.ui/config/dashboard.properties b/org.argeo.suite.ui/config/dashboard.properties new file mode 100644 index 0000000..ea5669d --- /dev/null +++ b/org.argeo.suite.ui/config/dashboard.properties @@ -0,0 +1,2 @@ +service.pid=argeo.suite.ui.dashboard +argeo.suite.ui=true diff --git a/org.argeo.suite.ui/config/leadPane.properties b/org.argeo.suite.ui/config/leadPane.properties new file mode 100644 index 0000000..fc3a3ba --- /dev/null +++ b/org.argeo.suite.ui/config/leadPane.properties @@ -0,0 +1,2 @@ +service.pid=argeo.suite.ui.leadPane +argeo.suite.ui=true diff --git a/org.argeo.suite.ui/config/loginScreen.properties b/org.argeo.suite.ui/config/loginScreen.properties new file mode 100644 index 0000000..81d54c0 --- /dev/null +++ b/org.argeo.suite.ui/config/loginScreen.properties @@ -0,0 +1,2 @@ +service.pid=argeo.suite.ui.loginScreen +argeo.suite.ui=true diff --git a/org.argeo.suite.ui/config/recentItems.properties b/org.argeo.suite.ui/config/recentItems.properties new file mode 100644 index 0000000..1cf8766 --- /dev/null +++ b/org.argeo.suite.ui/config/recentItems.properties @@ -0,0 +1,2 @@ +service.pid=argeo.suite.ui.recentItems +argeo.suite.ui=true diff --git a/org.argeo.suite.ui/config/workHeader.properties b/org.argeo.suite.ui/config/workHeader.properties new file mode 100644 index 0000000..e5bc6b3 --- /dev/null +++ b/org.argeo.suite.ui/config/workHeader.properties @@ -0,0 +1,4 @@ +service.pid=argeo.suite.ui.header +argeo.suite.ui=true + +argeo.suite.ui.header.title=%defaultWorkAppTitle \ No newline at end of file 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 b669d45..fce2deb 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 @@ -6,29 +6,35 @@ import java.util.Set; import java.util.TreeMap; import javax.jcr.Node; +import javax.jcr.RepositoryException; +import javax.jcr.Session; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.cms.ui.AbstractCmsApp; import org.argeo.cms.ui.CmsTheme; import org.argeo.cms.ui.CmsUiProvider; +import org.argeo.cms.ui.CmsView; +import org.argeo.jcr.JcrUtils; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; import org.osgi.framework.Constants; /** 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 PID_PREFIX = "argeo.suite.ui."; public final static String HEADER_PID = PID_PREFIX + "header"; public final static String LEAD_PANE_PID = PID_PREFIX + "leadPane"; + public final static String LOGIN_SCREEN_PID = PID_PREFIX + "loginScreen"; + public final static String DASHBOARD_PID = PID_PREFIX + "dashboard"; + public final static String RECENT_ITEMS_PID = PID_PREFIX + "recentItems"; 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) { @@ -50,15 +56,14 @@ public class ArgeoSuiteApp extends AbstractCmsApp { } @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); - } - + public Composite initUi(Composite parent) { + String uiName = parent.getData(UI_NAME_PROPERTY) != null ? parent.getData(UI_NAME_PROPERTY).toString() : null; + CmsTheme theme = getTheme(uiName); + if (theme != null) + CmsTheme.registerCmsTheme(parent.getShell(), theme); + ArgeoSuiteUi argeoSuiteUi = new ArgeoSuiteUi(parent, SWT.NONE); + refreshUi(argeoSuiteUi, null); + return argeoSuiteUi; } @Override @@ -67,14 +72,92 @@ public class ArgeoSuiteApp extends AbstractCmsApp { return DEFAULT_THEME_ID; } - public void refresh(String uiName) { - if (DEFAULT_UI_NAME.equals(uiName)) { - Node context = null; - uiProviders.get(HEADER_PID).createUiPart(argeoSuiteUi.getHeader(), context); - uiProviders.get(LEAD_PANE_PID).createUiPart(argeoSuiteUi.getLeadPane(), context); + @Override + public void refreshUi(Composite parent, String state) { + Node context = null; + ArgeoSuiteUi argeoSuiteUi = (ArgeoSuiteUi) parent; + refreshPart(findUiProvider(HEADER_PID, context), argeoSuiteUi.getHeader(), context); + CmsView cmsView = CmsView.getCmsView(parent); + if (cmsView.isAnonymous()) { + refreshPart(findUiProvider(LOGIN_SCREEN_PID, context), argeoSuiteUi.getDefaultBody(), context); + } else { + refreshPart(findUiProvider(DASHBOARD_PID, context), argeoSuiteUi.getDefaultBody(), context); } + refreshPart(findUiProvider(LEAD_PANE_PID, context), argeoSuiteUi.getLeadPane(), context); + refreshPart(findUiProvider(RECENT_ITEMS_PID, context), argeoSuiteUi.getEntryArea(), context); + argeoSuiteUi.layout(true, true); } + private void refreshPart(CmsUiProvider uiProvider, Composite part, Node context) { + for (Control child : part.getChildren()) + child.dispose(); + uiProvider.createUiPart(part, context); + } + + private CmsUiProvider findUiProvider(String pid, Node context) { + if (pid != null) { + if (uiProviders.containsKey(pid)) + return uiProviders.get(pid); + } + + // nothing + return new CmsUiProvider() { + + @Override + public Control createUi(Composite parent, Node context) throws RepositoryException { + return parent; + } + }; + } + + @Override + public void setState(Composite parent, String state) { + CmsView cmsView = CmsView.getCmsView(parent); + // for the time being we systematically open a session, in order to make sure + // that home is initialised + Session session = null; + try { + if (state != null && state.startsWith("/")) { + String path = state.substring(1); + String workspace; + if (path.equals("")) { + workspace = null; + path = "/"; + } else { + int index = path.indexOf('/'); + if (index == 0) { + log.error("Cannot interpret // " + state); + cmsView.navigateTo("~"); + return; + } else if (index > 0) { + workspace = path.substring(0, index); + path = path.substring(index); + } else {// index<0, assuming root node + workspace = path; + path = "/"; + } + } + session = getRepository().login(workspace); + + Node node = session.getNode(path); + refreshEntityUi(node); + } + } catch (RepositoryException e) { + log.error("Cannot load state " + state, e); + cmsView.navigateTo("~"); + } finally { + JcrUtils.logoutQuietly(session); + } + } + + private void refreshEntityUi(Node node) { + + } + + /* + * Dependency injection. + */ + public void addUiProvider(CmsUiProvider uiProvider, Map properties) { String servicePid = properties.get(Constants.SERVICE_PID); if (servicePid == null) { @@ -92,14 +175,4 @@ public class ArgeoSuiteApp extends AbstractCmsApp { uiProviders.remove(servicePid); } - -// static class UiProviderKey { -// private Map properties; -// -// public UiProviderKey(Map properties) { -// super(); -// this.properties = properties; -// } -// -// } } 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 a2caa15..08441a3 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,22 +1,28 @@ package org.argeo.suite.ui; -import static org.argeo.suite.ui.ArgeoSuiteIcon.dashboard; +import static org.argeo.suite.ui.SuiteIcon.dashboard; import org.argeo.cms.ui.CmsTheme; +import org.argeo.cms.ui.CmsView; 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.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.ToolBar; +import org.eclipse.swt.widgets.ToolItem; -public class ArgeoSuiteUi { - private Composite parent; +/** The {@link CmsView} for the work ergonomics of Argeo Suite. */ +public class ArgeoSuiteUi extends Composite { + private static final long serialVersionUID = 6207018859086689108L; private Composite header; + private Composite belowHeader; private Composite leadPane; private SashForm dynamicArea; @@ -29,15 +35,15 @@ public class ArgeoSuiteUi { private CmsTheme theme; public ArgeoSuiteUi(Composite parent, int style) { + super(parent, style); theme = CmsTheme.getCmsTheme(parent); - this.parent = parent; - parent.setLayout(CmsUiUtils.noSpaceGridLayout()); + this.setLayout(CmsUiUtils.noSpaceGridLayout()); - header = new Composite(parent, SWT.NONE); - CmsUiUtils.style(header, WorkStyles.header); + header = new Composite(this, SWT.NONE); + CmsUiUtils.style(header, SuiteStyle.header); header.setLayoutData(CmsUiUtils.fillWidth()); - Composite belowHeader = new Composite(parent, SWT.NONE); + belowHeader = new Composite(this, SWT.NONE); belowHeader.setLayoutData(CmsUiUtils.fillAll()); belowHeader.setLayout(CmsUiUtils.noSpaceGridLayout(2)); @@ -49,7 +55,7 @@ public class ArgeoSuiteUi { dynamicArea = new SashForm(belowHeader, SWT.HORIZONTAL); } leadPane.setLayoutData(CmsUiUtils.fillHeight()); - CmsUiUtils.style(leadPane, WorkStyles.leadPane); + CmsUiUtils.style(leadPane, SuiteStyle.leadPane); dynamicArea.setLayoutData(CmsUiUtils.fillAll()); if (SWT.RIGHT_TO_LEFT == (style & SWT.RIGHT_TO_LEFT)) {// arabic, hebrew, etc. @@ -63,21 +69,17 @@ public class ArgeoSuiteUi { dynamicArea.setWeights(weights); 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()); + + // TODO make it dynamic 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); + buttons.setLayout(CmsUiUtils.noSpaceGridLayout()); + ToolBar toolBar = new ToolBar(buttons, SWT.NONE); + toolBar.setLayoutData(new GridData(SWT.END, SWT.TOP, false, false)); + ToolItem deleteItem = new ToolItem(toolBar, SWT.PUSH); + deleteItem.setImage(SuiteIcon.delete.getSmallIcon(theme)); + deleteItem.setEnabled(false); editorTabFolder.setTopRight(buttons); CTabItem defaultTab = new CTabItem(editorTabFolder, SWT.NONE); @@ -90,9 +92,9 @@ public class ArgeoSuiteUi { // editorArea.setSingle(true); } - Composite getParent() { - return parent; - } + /* + * GETTERS / SETTERS + */ Composite getHeader() { return header; @@ -118,4 +120,8 @@ public class ArgeoSuiteUi { return defaultBody; } + Composite getBelowHeader() { + return belowHeader; + } + } diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultDashboard.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultDashboard.java new file mode 100644 index 0000000..9835b67 --- /dev/null +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultDashboard.java @@ -0,0 +1,31 @@ +package org.argeo.suite.ui; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; + +import org.argeo.cms.auth.CurrentUser; +import org.argeo.cms.ui.CmsUiProvider; +import org.argeo.cms.ui.CmsView; +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; + +/** Provides a dashboard. */ +public class DefaultDashboard implements CmsUiProvider { + + @Override + public Control createUi(Composite parent, Node context) throws RepositoryException { + parent.setLayout(new GridLayout()); + CmsView cmsView = CmsView.getCmsView(parent); + if (cmsView.isAnonymous()) + throw new IllegalStateException("No user is not logged in"); + + Label lbl = new Label(parent, SWT.NONE); + lbl.setText("Welcome " + CurrentUser.getDisplayName() + "!"); + + return lbl; + } + +} diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultHeader.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultHeader.java index de38c44..a251e14 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultHeader.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultHeader.java @@ -8,11 +8,18 @@ import javax.jcr.Node; import javax.jcr.RepositoryException; import org.argeo.cms.LocaleUtils; +import org.argeo.cms.auth.CurrentUser; +import org.argeo.cms.ui.CmsTheme; import org.argeo.cms.ui.CmsUiProvider; +import org.argeo.cms.ui.CmsView; import org.argeo.cms.ui.util.CmsUiUtils; import org.argeo.util.LangUtils; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.GridData; 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; @@ -20,18 +27,60 @@ import org.osgi.service.cm.ConfigurationException; import org.osgi.service.cm.ManagedService; public class DefaultHeader implements CmsUiProvider, ManagedService { - public final static String TITLE_PROPERTY = "argeo.work.header.title"; + public final static String TITLE_PROPERTY = "argeo.suite.ui.header.title"; private Map properties; @Override public Control createUi(Composite parent, Node context) throws RepositoryException { - parent.setLayout(new GridLayout()); - Label lbl = new Label(parent, SWT.NONE); + CmsView cmsView = CmsView.getCmsView(parent); + CmsTheme theme = CmsTheme.getCmsTheme(parent); + + parent.setLayout(CmsUiUtils.noSpaceGridLayout(new GridLayout(3, true))); + + // TODO right to left + Composite lead = new Composite(parent, SWT.NONE); + CmsUiUtils.style(lead, SuiteStyle.header); + lead.setLayoutData(new GridData(SWT.LEAD, SWT.CENTER, true, false)); + lead.setLayout(new GridLayout()); + Label lbl = new Label(lead, SWT.NONE); String title = properties.get(TITLE_PROPERTY); lbl.setText(LocaleUtils.isLocaleKey(title) ? LocaleUtils.local(title, getClass().getClassLoader()).toString() : title); - CmsUiUtils.style(lbl, WorkStyles.header); + CmsUiUtils.style(lbl, SuiteStyle.headerTitle); lbl.setLayoutData(CmsUiUtils.fillWidth()); + + Composite middle = new Composite(parent, SWT.NONE); + CmsUiUtils.style(middle, SuiteStyle.header); + middle.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, false)); + middle.setLayout(new GridLayout()); + + Composite end = new Composite(parent, SWT.NONE); + CmsUiUtils.style(end, SuiteStyle.header); + end.setLayoutData(new GridData(SWT.END, SWT.CENTER, true, false)); + + if (!cmsView.isAnonymous()) { + end.setLayout(new GridLayout(2, false)); + Label userL = new Label(end, SWT.NONE); + CmsUiUtils.style(userL, SuiteStyle.header); + userL.setText(CurrentUser.getDisplayName()); + Button logoutB = new Button(end, SWT.FLAT); +// CmsUiUtils.style(logoutB, SuiteStyle.header); + logoutB.setImage(SuiteIcon.logout.getSmallIcon(theme)); + logoutB.addSelectionListener(new SelectionAdapter() { + private static final long serialVersionUID = 7116760083964201233L; + + @Override + public void widgetSelected(SelectionEvent e) { + cmsView.logout(); + } + + }); + } else { + end.setLayout(new GridLayout(1, false)); + // required in order to avoid wrong height after logout + new Label(end, SWT.NONE).setText(""); + + } return lbl; } 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 d84f69d..cbc0a78 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 @@ -9,6 +9,7 @@ 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.CmsView; import org.argeo.cms.ui.util.CmsIcon; import org.argeo.cms.ui.util.CmsUiUtils; import org.eclipse.swt.SWT; @@ -21,11 +22,9 @@ 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 node) throws RepositoryException { - theme = CmsTheme.getCmsTheme(parent); + CmsView cmsView = CmsView.getCmsView(parent); GridLayout layout = new GridLayout(); layout.verticalSpacing = 10; layout.marginTop = 10; @@ -33,15 +32,19 @@ public class DefaultLeadPane implements CmsUiProvider, ManagedService { 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); + Button dashboardB = createButton(parent, SuiteMsg.dashboard, SuiteIcon.dashboard); + if (!cmsView.isAnonymous()) { + createButton(parent, SuiteMsg.documents, SuiteIcon.documents); + createButton(parent, SuiteMsg.people, SuiteIcon.people); + createButton(parent, SuiteMsg.locations, SuiteIcon.location); + } return dashboardB; } protected Button createButton(Composite parent, Localized msg, CmsIcon icon) { + CmsTheme theme = CmsTheme.getCmsTheme(parent); Button button = new Button(parent, SWT.FLAT); - CmsUiUtils.style(button, WorkStyles.leadPane); + CmsUiUtils.style(button, SuiteStyle.leadPane); button.setToolTipText(msg.lead()); button.setImage(icon.getBigIcon(theme)); return button; diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLoginScreen.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLoginScreen.java new file mode 100644 index 0000000..3757a19 --- /dev/null +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLoginScreen.java @@ -0,0 +1,34 @@ +package org.argeo.suite.ui; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; + +import org.argeo.cms.auth.CurrentUser; +import org.argeo.cms.ui.CmsUiProvider; +import org.argeo.cms.ui.CmsView; +import org.argeo.cms.ui.widgets.auth.CmsLogin; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; + +/** Provides a login screen. */ +public class DefaultLoginScreen implements CmsUiProvider { + + @Override + public Control createUi(Composite parent, Node context) throws RepositoryException { + CmsView cmsView = CmsView.getCmsView(parent); + if (!cmsView.isAnonymous()) + throw new IllegalStateException(CurrentUser.getUsername() + " is already logged in"); + + parent.setLayout(new GridLayout()); + Composite loginArea = new Composite(parent, SWT.NONE); + loginArea.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, true)); + + CmsLogin cmsLogin = new CmsLogin(cmsView); + cmsLogin.createUi(loginArea); + return cmsLogin.getCredentialsBlock(); + } + +} 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 index 230a0da..98122a3 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java @@ -13,6 +13,7 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Text; /** List recent items. */ public class RecentItems implements CmsUiProvider { @@ -29,13 +30,15 @@ public class RecentItems implements CmsUiProvider { 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()); + search.setImage(SuiteIcon.search.getSmallIcon(theme)); + Text text = new Text(top, SWT.SINGLE | SWT.BORDER); + text.setLayoutData(CmsUiUtils.fillWidth()); +// 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(); + return text; } } diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteIcon.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteIcon.java similarity index 79% rename from org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteIcon.java rename to org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteIcon.java index 220e879..02f3114 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteIcon.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteIcon.java @@ -3,12 +3,12 @@ package org.argeo.suite.ui; import org.argeo.cms.ui.util.CmsIcon; /** Icon names used by Argeo Suite. */ -public enum ArgeoSuiteIcon implements CmsIcon { +public enum SuiteIcon implements CmsIcon { add, save, search, delete, logout, dashboard, // people people, person, organisation, // library documents, document, folder, // misc - task, tag; + task, tag, location; } diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/WorkMsg.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteMsg.java similarity index 52% rename from org.argeo.suite.ui/src/org/argeo/suite/ui/WorkMsg.java rename to org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteMsg.java index f651d9f..c6485c2 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/WorkMsg.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteMsg.java @@ -3,6 +3,6 @@ package org.argeo.suite.ui; import org.argeo.cms.Localized; /** Localized messages. */ -public enum WorkMsg implements Localized { - dashboard,people,documents; +public enum SuiteMsg implements Localized { + dashboard,people,documents,locations; } diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/WorkStyles.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteStyle.java similarity index 56% rename from org.argeo.suite.ui/src/org/argeo/suite/ui/WorkStyles.java rename to org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteStyle.java index 7547154..2251e67 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/WorkStyles.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteStyle.java @@ -3,12 +3,15 @@ package org.argeo.suite.ui; import org.argeo.cms.ui.util.CmsStyle; /** Styles used by Argeo Suite work UI. */ -public enum WorkStyles implements CmsStyle { - header, leadPane; +public enum SuiteStyle implements CmsStyle { + // Header + header,headerTitle, + // Lead pane + leadPane; @Override public String getClassPrefix() { - return "argeo-work"; + return "argeo-suite"; } } -- 2.30.2