Refactor CMS UX API
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 23 Jun 2022 05:00:45 +0000 (07:00 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 23 Jun 2022 05:00:45 +0000 (07:00 +0200)
34 files changed:
org.argeo.app.servlet.publish/src/org/argeo/app/servlet/publish/DbkServlet.java
org.argeo.app.servlet.publish/src/org/argeo/app/servlet/publish/FontsServlet.java
org.argeo.app.theme.default/OSGI-INF/cmsTheme.xml
org.argeo.app.ui/OSGI-INF/cmsApp.xml
org.argeo.app.ui/config/peopleLayer.properties
org.argeo.app.ui/src/org/argeo/app/ui/DefaultDashboard.java
org.argeo.app.ui/src/org/argeo/app/ui/DefaultEditionLayer.java
org.argeo.app.ui/src/org/argeo/app/ui/DefaultHeader.java
org.argeo.app.ui/src/org/argeo/app/ui/DefaultLeadPane.java
org.argeo.app.ui/src/org/argeo/app/ui/DefaultLoginScreen.java
org.argeo.app.ui/src/org/argeo/app/ui/RecentItems.java
org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java
org.argeo.app.ui/src/org/argeo/app/ui/SuiteIcon.java
org.argeo.app.ui/src/org/argeo/app/ui/SuiteStyle.java
org.argeo.app.ui/src/org/argeo/app/ui/SuiteUi.java
org.argeo.app.ui/src/org/argeo/app/ui/SuiteUiUtils.java
org.argeo.app.ui/src/org/argeo/app/ui/docbook/AbstractDbkViewer.java
org.argeo.app.ui/src/org/argeo/app/ui/docbook/CustomDbkEditor.java
org.argeo.app.ui/src/org/argeo/app/ui/docbook/DbkContextMenu.java
org.argeo.app.ui/src/org/argeo/app/ui/docbook/DbkImageManager.java
org.argeo.app.ui/src/org/argeo/app/ui/docbook/DocumentPage.java
org.argeo.app.ui/src/org/argeo/app/ui/docbook/DocumentTextEditor.java
org.argeo.app.ui/src/org/argeo/app/ui/docbook/TextEditorHeader.java
org.argeo.app.ui/src/org/argeo/app/ui/forms/AbstractTermsPart.java
org.argeo.app.ui/src/org/argeo/app/ui/library/ContentEntryArea.java
org.argeo.app.ui/src/org/argeo/app/ui/library/DocumentsFolderUiProvider.java
org.argeo.app.ui/src/org/argeo/app/ui/library/DocumentsTreeUiProvider.java
org.argeo.app.ui/src/org/argeo/app/ui/openlayers/OpenLayersMap.java
org.argeo.app.ui/src/org/argeo/app/ui/people/PeopleEntryArea.java
org.argeo.app.ui/src/org/argeo/app/ui/people/SuiteUsersEntryArea.java
org.argeo.app.ui/src/org/argeo/app/ui/people/UsersEntryArea.java
org.argeo.app.ui/src/org/argeo/app/ui/publish/DocumentUiProvider.java
org.argeo.app.ui/src/org/argeo/app/ui/publish/PublishingApp.java
org.argeo.app.ui/src/org/argeo/app/ui/publish/PublishingStyle.java

index d3459cf73a6514446cb9d4491a6095bf70784505..dfef9114c31946f8a8f1d50f89db67f440fcdcd4 100644 (file)
@@ -43,7 +43,7 @@ import org.apache.commons.io.IOUtils;
 import org.apache.fop.apps.Fop;
 import org.apache.fop.apps.FopFactory;
 import org.apache.xalan.processor.TransformerFactoryImpl;
-import org.argeo.api.cms.CmsTheme;
+import org.argeo.api.cms.ux.CmsTheme;
 import org.argeo.app.docbook.DbkType;
 import org.argeo.app.docbook.DbkUtils;
 import org.argeo.cms.auth.RemoteAuthUtils;
index 01e212ed614f45b4b8b293474087b4f2f9337b9c..3e65d6582ab0280197d37c409fa95c2899f5ba63 100644 (file)
@@ -12,7 +12,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.io.IOUtils;
-import org.argeo.api.cms.CmsTheme;
+import org.argeo.api.cms.ux.CmsTheme;
 
 /** Serves fonts locally. */
 public class FontsServlet extends HttpServlet {
index 7d3c221334b6204fc9aa978016d55db6ce7b6c40..6219f319176c40acdbb0e2664cf84390a563b440 100644 (file)
@@ -2,7 +2,7 @@
 <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" deactivate="destroy" name="Argeo Suite Default Theme">
    <implementation class="org.argeo.cms.swt.osgi.BundleSvgTheme"/>
    <service>
-      <provide interface="org.argeo.api.cms.CmsTheme"/>
+      <provide interface="org.argeo.api.cms.ux.CmsTheme"/>
    </service>
    <property name="themeId" type="String" value="org.argeo.app.theme.default"/>
 </scr:component>
index 1b50064f791d704e565b25dbd6889e2e5eb5bea5..eae6c48b318b095949c81896df65e8bfaa6725e5 100644 (file)
@@ -7,7 +7,7 @@
    </service>
    <properties entry="config/cmsApp.properties"/>
    <reference bind="addUiProvider" cardinality="0..n" interface="org.argeo.cms.ui.CmsUiProvider" name="CmsUiProvider" policy="dynamic" unbind="removeUiProvider"/>
-   <reference bind="addTheme" cardinality="1..n" interface="org.argeo.api.cms.CmsTheme" name="CmsTheme" policy="dynamic" unbind="removeTheme"/>
+   <reference bind="addTheme" cardinality="1..n" interface="org.argeo.api.cms.ux.CmsTheme" name="CmsTheme" policy="dynamic" unbind="removeTheme"/>
    <reference bind="addLayer" cardinality="1..n" interface="org.argeo.app.ui.SuiteLayer" name="SuiteLayer" policy="dynamic" unbind="removeLayer"/>
    <reference bind="setCmsUserManager" cardinality="1..1" interface="org.argeo.cms.CmsUserManager" name="CmsUserManager" policy="static"/>
    <reference bind="setCmsContext" cardinality="1..1" interface="org.argeo.api.cms.CmsContext" name="CmsContext" policy="static"/>
index 3bc6d8b1ba8a4a978d45ea92ed7b50f4be4b4e8e..0f1c9cee8dba234a1ba1c6bbcf390975d0a0094f 100644 (file)
@@ -1,7 +1,7 @@
 service.pid=argeo.people.ui.peopleLayer
 
 icon=people
-weights=5000,5000
+weights=3000,7000
 title=%people
 
 entity.type=ldap:inetOrgPerson,ldap:groupOfNames
\ No newline at end of file
index 672b5d331e4e74de9ff52649e6f35e8ff27c2674..2a2e1bab754232c10bbea8237638dd0d2e87bdda 100644 (file)
@@ -1,7 +1,7 @@
 package org.argeo.app.ui;
 
 import org.argeo.api.acr.Content;
-import org.argeo.api.cms.CmsView;
+import org.argeo.api.cms.ux.CmsView;
 import org.argeo.cms.auth.CurrentUser;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
index 4bfc3de664286b7623f3ab5c93d27685d377cfe0..23982499cf9cfdb05dbd2aded5b1eeed2d6214d7 100644 (file)
@@ -5,8 +5,8 @@ import java.util.List;
 import java.util.Map;
 
 import org.argeo.api.acr.Content;
-import org.argeo.api.cms.CmsTheme;
 import org.argeo.cms.Localized;
+import org.argeo.cms.swt.CmsSwtTheme;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.swt.acr.SwtUiProvider;
 import org.argeo.cms.swt.widgets.SwtTabbedArea;
@@ -57,7 +57,7 @@ public class DefaultEditionLayer implements SuiteLayer {
                                this.workArea.createUiPart(area, context);
                                return area;
                        }
-                       CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
+                       CmsSwtTheme theme = CmsSwtUtils.getCmsTheme(parent);
                        SwtTabbedArea tabbedArea = createTabbedArea(parent, theme);
                        return tabbedArea;
                }
@@ -170,13 +170,13 @@ public class DefaultEditionLayer implements SuiteLayer {
                this.defaultView = defaultView;
        }
 
-       SwtTabbedArea createTabbedArea(Composite parent, CmsTheme theme) {
+       SwtTabbedArea createTabbedArea(Composite parent, CmsSwtTheme theme) {
                SwtTabbedArea tabbedArea = new SwtTabbedArea(parent, SWT.NONE);
                tabbedArea.setSingleTab(singleTab);
                tabbedArea.setBodyStyle(SuiteStyle.mainTabBody.style());
                tabbedArea.setTabStyle(SuiteStyle.mainTab.style());
                tabbedArea.setTabSelectedStyle(SuiteStyle.mainTabSelected.style());
-               tabbedArea.setCloseIcon(SuiteIcon.close.getSmallIcon(theme));
+               tabbedArea.setCloseIcon(theme.getSmallIcon(SuiteIcon.close));
                tabbedArea.setLayoutData(CmsSwtUtils.fillAll());
                return tabbedArea;
        }
@@ -189,7 +189,7 @@ public class DefaultEditionLayer implements SuiteLayer {
 
                SashFormEditionArea(Composite parent, int style) {
                        super(parent, SWT.HORIZONTAL);
-                       CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
+                       CmsSwtTheme theme = CmsSwtUtils.getCmsTheme(parent);
 
                        Composite editorC;
                        if (SWT.RIGHT_TO_LEFT == (style & SWT.RIGHT_TO_LEFT)) {// arabic, hebrew, etc.
@@ -242,7 +242,7 @@ public class DefaultEditionLayer implements SuiteLayer {
 
                public FixedEditionArea(Composite parent, int style) {
                        super(parent, style);
-                       CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
+                       CmsSwtTheme theme = CmsSwtUtils.getCmsTheme(parent);
 
                        setLayout(CmsSwtUtils.noSpaceGridLayout(2));
 
index 53554dc0f4b84433864555f2706cbeb0e1dd18f2..9581b8c5846034a51065778fe300ecddc5ae3f4a 100644 (file)
@@ -3,10 +3,10 @@ package org.argeo.app.ui;
 import java.util.Map;
 
 import org.argeo.api.acr.Content;
-import org.argeo.api.cms.CmsTheme;
-import org.argeo.api.cms.CmsView;
+import org.argeo.api.cms.ux.CmsView;
 import org.argeo.cms.Localized;
 import org.argeo.cms.auth.CurrentUser;
+import org.argeo.cms.swt.CmsSwtTheme;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.eclipse.swt.SWT;
@@ -27,9 +27,9 @@ public class DefaultHeader implements CmsUiProvider {
        private Localized title = null;
 
        @Override
-       public Control createUiPart(Composite parent, Content context)  {
+       public Control createUiPart(Composite parent, Content context) {
                CmsView cmsView = CmsSwtUtils.getCmsView(parent);
-               CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
+               CmsSwtTheme theme = CmsSwtUtils.getCmsTheme(parent);
 
                parent.setLayout(CmsSwtUtils.noSpaceGridLayout(new GridLayout(3, true)));
 
@@ -63,7 +63,7 @@ public class DefaultHeader implements CmsUiProvider {
                        userL.setText(CurrentUser.getDisplayName());
                        Button logoutB = new Button(end, SWT.FLAT);
 //                     CmsUiUtils.style(logoutB, SuiteStyle.header);
-                       logoutB.setImage(SuiteIcon.logout.getSmallIcon(theme));
+                       logoutB.setImage(theme.getSmallIcon(SuiteIcon.logout));
                        logoutB.addSelectionListener(new SelectionAdapter() {
                                private static final long serialVersionUID = 7116760083964201233L;
 
index 94b3b93bde59e8ad99a185ee37aff9b3d2dadf62..44d43f657b4206a0b65c69a1d0b5d1fd806f8d99 100644 (file)
@@ -11,7 +11,7 @@ import java.util.TreeMap;
 
 import org.argeo.api.acr.Content;
 import org.argeo.api.cms.CmsLog;
-import org.argeo.api.cms.CmsView;
+import org.argeo.api.cms.ux.CmsView;
 import org.argeo.app.api.RankedObject;
 import org.argeo.app.core.SuiteUtils;
 import org.argeo.cms.Localized;
index 117d644dfc97e4f6bdfd8798f19dd658ed2945b9..c92e3db27865697fa22b607b3620b1f4f5096314 100644 (file)
@@ -2,7 +2,7 @@ package org.argeo.app.ui;
 
 import org.argeo.api.acr.Content;
 import org.argeo.api.cms.CmsContext;
-import org.argeo.api.cms.CmsView;
+import org.argeo.api.cms.ux.CmsView;
 import org.argeo.cms.auth.CurrentUser;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.swt.auth.CmsLogin;
index c4272e6db7cfd0e6e5ab8bffb1963191bf12f7a0..53bcdfe9355573cc18098ff04d9147419589d515 100644 (file)
@@ -15,10 +15,10 @@ import javax.jcr.observation.EventListener;
 import javax.jcr.query.Query;
 import javax.jcr.query.QueryResult;
 
-import org.argeo.api.cms.CmsTheme;
 import org.argeo.app.api.EntityType;
 import org.argeo.app.core.XPathUtils;
 import org.argeo.app.ui.widgets.DelayedText;
+import org.argeo.cms.swt.CmsSwtTheme;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.eclipse.ui.EclipseUiUtils;
@@ -53,7 +53,7 @@ public class RecentItems implements CmsUiProvider {
        private final static int SEARCH_TEXT_DELAY = 800;
        private final static int SEARCH_DEFAULT_LIMIT = 100;
 
-       private CmsTheme theme;
+       private CmsSwtTheme theme;
 
        private String entityType;
 
@@ -96,9 +96,9 @@ public class RecentItems implements CmsUiProvider {
                ToolItem deleteItem = new ToolItem(bottomToolBar, SWT.FLAT);
                deleteItem.setEnabled(false);
 //             CmsUiUtils.style(deleteItem, SuiteStyle.recentItems);
-               deleteItem.setImage(SuiteIcon.delete.getSmallIcon(theme));
+               deleteItem.setImage(theme.getSmallIcon(SuiteIcon.delete));
                ToolItem addItem = new ToolItem(bottomToolBar, SWT.FLAT);
-               addItem.setImage(SuiteIcon.add.getSmallIcon(theme));
+               addItem.setImage(theme.getSmallIcon(SuiteIcon.add));
                entityViewer.getViewer().addDoubleClickListener(new IDoubleClickListener() {
 
                        @Override
index 204688d81b360bf7c9b34673ced7d55c33ec70b3..679f46d7420e21a8cc0a5897a5ef30590f33a3a7 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.app.ui;
 
-import static org.argeo.api.cms.CmsView.CMS_VIEW_UID_PROPERTY;
+import static org.argeo.api.cms.ux.CmsView.CMS_VIEW_UID_PROPERTY;
 
 import java.util.Collections;
 import java.util.HashMap;
@@ -24,9 +24,9 @@ import org.argeo.api.acr.spi.ProvidedSession;
 import org.argeo.api.cms.CmsConstants;
 import org.argeo.api.cms.CmsLog;
 import org.argeo.api.cms.CmsSession;
-import org.argeo.api.cms.CmsTheme;
-import org.argeo.api.cms.CmsUi;
-import org.argeo.api.cms.CmsView;
+import org.argeo.api.cms.ux.CmsTheme;
+import org.argeo.api.cms.ux.CmsUi;
+import org.argeo.api.cms.ux.CmsView;
 import org.argeo.app.api.EntityConstants;
 import org.argeo.app.api.EntityNames;
 import org.argeo.app.api.EntityType;
index fda0eb9f915bde91cdad7a69d3baa5aecabece44..777c27136c516aa49ab5cfb2c230d62e46af4abc 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.app.ui;
 
-import org.argeo.cms.swt.CmsIcon;
+import org.argeo.api.cms.ux.CmsIcon;
 
 /** Icon names used by Argeo Suite. */
 public enum SuiteIcon implements CmsIcon {
index 7afd23c5a26fb290dcfeec7625499e2ad1d14366..1afff736da8e27dd70389494bcba235d96315ea8 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.app.ui;
 
-import org.argeo.api.cms.CmsStyle;
+import org.argeo.api.cms.ux.CmsStyle;
 
 /** Styles used by Argeo Suite work UI. */
 public enum SuiteStyle implements CmsStyle {
index a19da2164029b95b5f09ce1a75a1f1a5a872ec31..f4464ba0265708f4eba04d6709eea28b8ca6257d 100644 (file)
@@ -5,8 +5,8 @@ import java.util.Map;
 
 import org.argeo.api.acr.Content;
 import org.argeo.api.cms.CmsLog;
-import org.argeo.api.cms.CmsUi;
-import org.argeo.api.cms.CmsView;
+import org.argeo.api.cms.ux.CmsUi;
+import org.argeo.api.cms.ux.CmsView;
 import org.argeo.cms.Localized;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.eclipse.swt.SWT;
index 7fe00fe9cf912c455c4aca0c46250b6992dcc6e1..a5205ee26e45c07f641aad460dfccfee6aec1a5e 100644 (file)
@@ -12,11 +12,11 @@ import javax.jcr.Session;
 
 import org.apache.commons.io.IOUtils;
 import org.argeo.api.acr.Content;
-import org.argeo.api.cms.CmsEditable;
 import org.argeo.api.cms.CmsEvent;
-import org.argeo.api.cms.CmsStyle;
-import org.argeo.api.cms.CmsTheme;
-import org.argeo.api.cms.CmsView;
+import org.argeo.api.cms.ux.CmsEditable;
+import org.argeo.api.cms.ux.CmsIcon;
+import org.argeo.api.cms.ux.CmsStyle;
+import org.argeo.api.cms.ux.CmsView;
 import org.argeo.app.api.EntityNames;
 import org.argeo.app.api.EntityType;
 import org.argeo.app.api.SuiteRole;
@@ -24,7 +24,7 @@ import org.argeo.cms.LocaleUtils;
 import org.argeo.cms.Localized;
 import org.argeo.cms.auth.CurrentUser;
 import org.argeo.cms.jcr.acr.JcrContent;
-import org.argeo.cms.swt.CmsIcon;
+import org.argeo.cms.swt.CmsSwtTheme;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.swt.dialogs.LightweightDialog;
 import org.argeo.cms.ui.util.CmsLink;
@@ -404,11 +404,11 @@ public class SuiteUiUtils {
 
        public static Button createLayerButton(Composite parent, String layer, Localized msg, CmsIcon icon,
                        ClassLoader l10nClassLoader) {
-               CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
+               CmsSwtTheme theme = CmsSwtUtils.getCmsTheme(parent);
                Button button = new Button(parent, SWT.PUSH);
                CmsSwtUtils.style(button, SuiteStyle.leadPane);
                if (icon != null)
-                       button.setImage(icon.getBigIcon(theme));
+                       button.setImage(theme.getBigIcon(icon));
                button.setLayoutData(new GridData(SWT.CENTER, SWT.BOTTOM, true, false));
                // button.setToolTipText(msg.lead());
                if (msg != null) {
index 501280512643f3f7ea93a1e1934f01e0cb487e9e..ac3eb0ab1eab83b338e718064cd8e7ba14cf733c 100644 (file)
@@ -16,9 +16,9 @@ import javax.jcr.NodeIterator;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
-import org.argeo.api.cms.Cms2DSize;
-import org.argeo.api.cms.CmsEditable;
 import org.argeo.api.cms.CmsLog;
+import org.argeo.api.cms.ux.Cms2DSize;
+import org.argeo.api.cms.ux.CmsEditable;
 import org.argeo.app.docbook.DbkAttr;
 import org.argeo.app.docbook.DbkType;
 import org.argeo.app.docbook.DbkUtils;
index 16845aeecda8b7696c2573e080e5fb316b2f5790..365a5a11d0b7138a9e4aefde157dae9f8121edab 100644 (file)
@@ -2,7 +2,7 @@ package org.argeo.app.ui.docbook;
 
 import javax.jcr.Node;
 
-import org.argeo.api.cms.CmsEditable;
+import org.argeo.api.cms.ux.CmsEditable;
 import org.argeo.cms.ui.viewers.Section;
 import org.eclipse.swt.widgets.Composite;
 
index cf45ef96f71b8aa185b78994c040c3caa3ac357f..cd653dcd423507c66a215df42568196026864d78 100644 (file)
@@ -5,7 +5,7 @@ import java.util.List;
 
 import javax.jcr.Node;
 
-import org.argeo.api.cms.CmsEditable;
+import org.argeo.api.cms.ux.CmsEditable;
 import org.argeo.app.docbook.DbkMsg;
 import org.argeo.app.docbook.DbkUtils;
 import org.argeo.cms.swt.CmsSwtUtils;
index 32bbdd9cf4cee3186d9a4009cc812d1fed0177b2..1493223499b0e78e40bb469c1b7458a97b4c5071 100644 (file)
@@ -17,8 +17,8 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.NodeType;
 
-import org.argeo.api.cms.Cms2DSize;
-import org.argeo.api.cms.CmsImageManager;
+import org.argeo.api.cms.ux.Cms2DSize;
+import org.argeo.api.cms.ux.CmsImageManager;
 import org.argeo.app.api.EntityNames;
 import org.argeo.app.api.EntityType;
 import org.argeo.app.docbook.DbkAttr;
index 8aba8b70e6d3a034a5e2d7e66910a7188a3ab2b3..b8469852fb24600e341d25240dce64afd5e376e3 100644 (file)
@@ -6,7 +6,7 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
 
-import org.argeo.api.cms.CmsEditable;
+import org.argeo.api.cms.ux.CmsEditable;
 import org.argeo.app.docbook.DbkType;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
index 8f3a10cb4acc4ce8e49232aa1fd4ebc3996ebcfc..7d41117a29fb3ce26beafb750383270fcadf6958 100644 (file)
@@ -3,7 +3,7 @@ package org.argeo.app.ui.docbook;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.argeo.api.cms.CmsEditable;
+import org.argeo.api.cms.ux.CmsEditable;
 import org.argeo.app.docbook.DbkType;
 import org.argeo.app.docbook.DbkUtils;
 import org.argeo.cms.swt.CmsSwtUtils;
index 31251aad2040ccc3db22c434708e1908a3fb05c3..22fd55a110a9c9aa0d73d5becbb4b03721b66d47 100644 (file)
@@ -3,7 +3,7 @@ package org.argeo.app.ui.docbook;
 import java.util.Observable;
 import java.util.Observer;
 
-import org.argeo.api.cms.CmsEditable;
+import org.argeo.api.cms.ux.CmsEditable;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.widgets.TextStyles;
 import org.eclipse.swt.SWT;
index 0ce2ed1ed736e5cb26c3b5659843d07621bacd16..6f920742d89008d5b5fca8e47c60deecb3b410c1 100644 (file)
@@ -2,12 +2,12 @@ package org.argeo.app.ui.forms;
 
 import javax.jcr.Item;
 
-import org.argeo.api.cms.CmsTheme;
+import org.argeo.api.cms.ux.CmsIcon;
 import org.argeo.app.api.Term;
 import org.argeo.app.api.TermsManager;
 import org.argeo.app.api.Typology;
 import org.argeo.cms.Localized;
-import org.argeo.cms.swt.CmsIcon;
+import org.argeo.cms.swt.CmsSwtTheme;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.viewers.EditablePart;
 import org.argeo.cms.ui.widgets.ContextOverlay;
@@ -36,8 +36,8 @@ public abstract class AbstractTermsPart extends StyledControl implements Editabl
        private Color highlightColor;
        private Composite highlight;
 
-       protected final CmsTheme theme;
-       
+       protected final CmsSwtTheme theme;
+
        public AbstractTermsPart(Composite parent, int style, Item item, TermsManager termsManager, String typology) {
                super(parent, style, item);
                if (item == null)
@@ -110,21 +110,21 @@ public abstract class AbstractTermsPart extends StyledControl implements Editabl
 
        protected void styleDelete(ToolItem deleteItem) {
                if (deleteIcon != null)
-                       deleteItem.setImage(deleteIcon.getSmallIcon(theme));
+                       deleteItem.setImage(theme.getSmallIcon(deleteIcon));
                else
                        deleteItem.setText("-");
        }
 
        protected void styleCancel(ToolItem cancelItem) {
                if (cancelIcon != null)
-                       cancelItem.setImage(cancelIcon.getSmallIcon(theme));
+                       cancelItem.setImage(theme.getSmallIcon(cancelIcon));
                else
                        cancelItem.setText("X");
        }
 
        protected void styleAdd(ToolItem addItem) {
                if (addIcon != null)
-                       addItem.setImage(addIcon.getSmallIcon(theme));
+                       addItem.setImage(theme.getSmallIcon(addIcon));
                else
                        addItem.setText("+");
        }
index 88316413e664ba158a170f9275948884351a5f68..42c7e69867cf946e8c20f3d8de448bf5f51bdeef 100644 (file)
@@ -12,12 +12,12 @@ import javax.jcr.query.Query;
 
 import org.argeo.api.acr.Content;
 import org.argeo.api.cms.CmsConstants;
-import org.argeo.api.cms.CmsTheme;
 import org.argeo.app.api.EntityType;
 import org.argeo.app.ui.SuiteEvent;
 import org.argeo.app.ui.SuiteIcon;
 import org.argeo.app.ui.widgets.TreeOrSearchArea;
 import org.argeo.cms.jcr.acr.JcrContentProvider;
+import org.argeo.cms.swt.CmsSwtTheme;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.jcr.Jcr;
@@ -41,7 +41,7 @@ public class ContentEntryArea implements CmsUiProvider {
 
        @Override
        public Control createUiPart(Composite parent, Content context) {
-               CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
+               CmsSwtTheme theme = CmsSwtUtils.getCmsTheme(parent);
 
                parent.setLayout(new GridLayout());
                Ui ui = new Ui(parent, SWT.NONE);
@@ -62,15 +62,15 @@ public class ContentEntryArea implements CmsUiProvider {
                                Node node = (Node) element;
                                Image icon;
                                if (Jcr.isNodeType(node, NodeType.NT_FOLDER)) {
-                                       icon = SuiteIcon.folder.getSmallIcon(theme);
+                                       icon = theme.getSmallIcon(SuiteIcon.folder);
                                } else if (Jcr.isNodeType(node, NodeType.NT_FILE)) {
                                        // TODO check recognized document types
-                                       icon = SuiteIcon.document.getSmallIcon(theme);
+                                       icon = theme.getSmallIcon(SuiteIcon.document);
                                } else if (Jcr.isNodeType(node, EntityType.document.get())) {
-                                       icon = SuiteIcon.document.getSmallIcon(theme);
+                                       icon = theme.getSmallIcon(SuiteIcon.document);
                                } else {
                                        if (!isLeaf(node))
-                                               icon = SuiteIcon.folder.getSmallIcon(theme);
+                                               icon = theme.getSmallIcon(SuiteIcon.folder);
                                        else
                                                icon = null;
                                }
index 781b8627b752ea6734827b536cefe5069bb5b1b7..614e87740cb986a1bf319746fa3494a956157169 100644 (file)
@@ -6,7 +6,7 @@ import java.nio.file.spi.FileSystemProvider;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.argeo.api.cms.CmsView;
+import org.argeo.api.cms.ux.CmsView;
 import org.argeo.app.ui.SuiteEvent;
 import org.argeo.cms.fs.CmsFsUtils;
 import org.argeo.cms.swt.CmsSwtUtils;
index 1c82396df493730ffbcc15fb2e63fe0f5fbbcd35..10ce4a358d2e8f86a7eb652b90b1bdaa7c232d5f 100644 (file)
@@ -8,9 +8,9 @@ import javax.jcr.Node;
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 
-import org.argeo.api.cms.CmsView;
 import org.argeo.app.ui.SuiteEvent;
 import org.argeo.api.cms.CmsConstants;
+import org.argeo.api.cms.ux.CmsView;
 import org.argeo.cms.fs.CmsFsUtils;
 import org.argeo.cms.jcr.CmsJcrUtils;
 import org.argeo.cms.swt.CmsSwtUtils;
index 76aa403279820be8e7289c528bb613612b59bc62..fb7e064515619ab2ea48146013a00631e65600d1 100644 (file)
@@ -13,11 +13,11 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import org.apache.commons.io.IOUtils;
-import org.argeo.api.cms.CmsView;
 import org.argeo.app.api.EntityNames;
 import org.argeo.app.api.EntityType;
 import org.argeo.app.ui.SuiteEvent;
 import org.argeo.api.cms.CmsLog;
+import org.argeo.api.cms.ux.CmsView;
 import org.argeo.api.cms.CmsConstants;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.eclipse.swt.SWT;
index 7e9fa6aac6d6a99a80dbbe744eedbcc9bdea8f4d..a2ddfe90ed953b6c12ae4607061a6b0e9d56591c 100644 (file)
@@ -5,12 +5,12 @@ import java.util.Set;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.argeo.api.cms.CmsTheme;
 import org.argeo.app.api.SuiteRole;
 import org.argeo.app.ui.SuiteEvent;
 import org.argeo.app.ui.SuiteIcon;
 import org.argeo.app.ui.dialogs.NewUserWizard;
 import org.argeo.cms.CmsUserManager;
+import org.argeo.cms.swt.CmsSwtTheme;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.swt.Selected;
 import org.argeo.cms.swt.dialogs.CmsWizardDialog;
@@ -43,7 +43,7 @@ public class PeopleEntryArea implements CmsUiProvider {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
-               CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
+               CmsSwtTheme theme = CmsSwtUtils.getCmsTheme(parent);
                parent.setLayout(new GridLayout());
                TableViewer usersViewer = new TableViewer(parent);
                usersViewer.setContentProvider(new UsersContentProvider());
@@ -100,9 +100,9 @@ public class PeopleEntryArea implements CmsUiProvider {
                ToolItem deleteItem = new ToolItem(bottomToolBar, SWT.FLAT);
                deleteItem.setEnabled(false);
 //             CmsUiUtils.style(deleteItem, SuiteStyle.recentItems);
-               deleteItem.setImage(SuiteIcon.delete.getSmallIcon(theme));
+               deleteItem.setImage(theme.getSmallIcon(SuiteIcon.delete));
                ToolItem addItem = new ToolItem(bottomToolBar, SWT.FLAT);
-               addItem.setImage(SuiteIcon.add.getSmallIcon(theme));
+               addItem.setImage(theme.getSmallIcon(SuiteIcon.add));
                usersViewer.addDoubleClickListener(new IDoubleClickListener() {
 
                        @Override
index c6a49b655f6820cf0a7129391feb109ff0707a98..693d0d6bf710ba95e3f394909784d280ef09f533 100644 (file)
@@ -5,12 +5,12 @@ import java.util.Set;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.argeo.api.cms.CmsTheme;
 import org.argeo.app.api.SuiteRole;
 import org.argeo.app.ui.SuiteEvent;
 import org.argeo.app.ui.SuiteIcon;
 import org.argeo.app.ui.dialogs.NewUserWizard;
 import org.argeo.cms.CmsUserManager;
+import org.argeo.cms.swt.CmsSwtTheme;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.swt.Selected;
 import org.argeo.cms.swt.dialogs.CmsWizardDialog;
@@ -43,7 +43,7 @@ public class SuiteUsersEntryArea implements CmsUiProvider {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
-               CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
+               CmsSwtTheme theme = CmsSwtUtils.getCmsTheme(parent);
                parent.setLayout(new GridLayout());
                TableViewer usersViewer = new TableViewer(parent);
                usersViewer.setContentProvider(new UsersContentProvider());
@@ -100,9 +100,9 @@ public class SuiteUsersEntryArea implements CmsUiProvider {
                ToolItem deleteItem = new ToolItem(bottomToolBar, SWT.FLAT);
                deleteItem.setEnabled(false);
 //             CmsUiUtils.style(deleteItem, SuiteStyle.recentItems);
-               deleteItem.setImage(SuiteIcon.delete.getSmallIcon(theme));
+               deleteItem.setImage(theme.getSmallIcon(SuiteIcon.delete));
                ToolItem addItem = new ToolItem(bottomToolBar, SWT.FLAT);
-               addItem.setImage(SuiteIcon.add.getSmallIcon(theme));
+               addItem.setImage(theme.getSmallIcon(SuiteIcon.add));
                usersViewer.addDoubleClickListener(new IDoubleClickListener() {
 
                        @Override
index bcbdd121653fd46f42a62e7ed8c9c6ec5ab8b67f..c31159b41e91a06ebd6bfc93cba608c2c5598708 100644 (file)
@@ -9,8 +9,7 @@ import javax.jcr.RepositoryException;
 import org.argeo.api.acr.Content;
 import org.argeo.api.acr.ContentRepository;
 import org.argeo.api.acr.ContentSession;
-import org.argeo.api.cms.CmsTheme;
-import org.argeo.api.cms.CmsView;
+import org.argeo.api.cms.ux.CmsView;
 import org.argeo.app.ui.SuiteEvent;
 import org.argeo.app.ui.SuiteIcon;
 import org.argeo.app.ui.dialogs.NewUserWizard;
@@ -18,6 +17,7 @@ import org.argeo.cms.CmsUserManager;
 import org.argeo.cms.auth.CmsRole;
 import org.argeo.cms.auth.CurrentUser;
 import org.argeo.cms.jcr.acr.JcrContent;
+import org.argeo.cms.swt.CmsSwtTheme;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.swt.Selected;
 import org.argeo.cms.swt.acr.SwtUiProvider;
@@ -25,6 +25,7 @@ import org.argeo.cms.swt.dialogs.CmsWizardDialog;
 import org.argeo.cms.swt.widgets.SwtHierarchicalPart;
 import org.argeo.cms.swt.widgets.SwtTabularPart;
 import org.argeo.cms.ui.CmsUiProvider;
+import org.argeo.cms.ux.widgets.Column;
 import org.argeo.cms.ux.widgets.HierarchicalPart;
 import org.argeo.cms.ux.widgets.TabularPart;
 import org.argeo.osgi.useradmin.UserDirectory;
@@ -58,7 +59,7 @@ public class UsersEntryArea implements SwtUiProvider, CmsUiProvider {
 
        @Override
        public Control createUiPart(Composite parent, Content context) {
-               CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
+               CmsSwtTheme theme = CmsSwtUtils.getCmsTheme(parent);
                CmsView cmsView = CmsSwtUtils.getCmsView(parent);
                parent.setLayout(new GridLayout());
 
@@ -127,11 +128,11 @@ public class UsersEntryArea implements SwtUiProvider, CmsUiProvider {
                                item.setText(role.getName());
                                Image icon;
                                if (role instanceof Organization) {
-                                       icon = SuiteIcon.organisation.getSmallIcon(theme);
+                                       icon = theme.getSmallIcon(SuiteIcon.organisation);
                                } else if (role instanceof FunctionalGroup) {
-                                       icon = SuiteIcon.group.getSmallIcon(theme);
+                                       icon = theme.getSmallIcon(SuiteIcon.group);
                                } else if (role instanceof Person) {
-                                       icon = SuiteIcon.person.getSmallIcon(theme);
+                                       icon = theme.getSmallIcon(SuiteIcon.person);
                                } else {
                                        icon = null;
                                }
@@ -158,6 +159,13 @@ public class UsersEntryArea implements SwtUiProvider, CmsUiProvider {
                        }
 
                };
+               usersView.addColumn(new Column<User>() {
+
+                       @Override
+                       public String getText(User model) {
+                               return model.toString();
+                       }
+               });
 
                Composite bottom = new Composite(parent, SWT.NONE);
                bottom.setLayoutData(CmsSwtUtils.fillWidth());
@@ -167,10 +175,11 @@ public class UsersEntryArea implements SwtUiProvider, CmsUiProvider {
                ToolItem deleteItem = new ToolItem(bottomToolBar, SWT.FLAT);
                deleteItem.setEnabled(false);
 //             CmsUiUtils.style(deleteItem, SuiteStyle.recentItems);
-               deleteItem.setImage(SuiteIcon.delete.getSmallIcon(theme));
+               deleteItem.setImage(theme.getSmallIcon(SuiteIcon.delete));
                ToolItem addItem = new ToolItem(bottomToolBar, SWT.FLAT);
-               addItem.setImage(SuiteIcon.add.getSmallIcon(theme));
+               addItem.setImage(theme.getSmallIcon(SuiteIcon.add));
 
+               sashForm.setWeights(new int[] { 30, 70 });
                // CONTROLLER
                directoriesView.onSelected((o) -> {
                        if (o instanceof HierarchyUnit) {
index e2775abd80a6525cc66af25190182dd4449269fd..55bd6c9ad78ed3b3fb7d0ae3fac3bf197e01eb09 100644 (file)
@@ -4,8 +4,8 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.NodeType;
 
-import org.argeo.api.cms.CmsEditable;
-import org.argeo.api.cms.CmsView;
+import org.argeo.api.cms.ux.CmsEditable;
+import org.argeo.api.cms.ux.CmsView;
 import org.argeo.app.docbook.DbkType;
 import org.argeo.app.ui.docbook.AbstractDbkViewer;
 import org.argeo.app.ui.docbook.DocumentTextEditor;
index 6e320122130da801b13b4f1b39211babc715e4f4..c851b59cd56ddb643575d7d16615f22f209c4f89 100644 (file)
@@ -12,9 +12,9 @@ import javax.jcr.Repository;
 import javax.jcr.Session;
 
 import org.argeo.api.cms.CmsApp;
-import org.argeo.api.cms.CmsUi;
 import org.argeo.app.ui.SuiteApp;
 import org.argeo.api.cms.CmsLog;
+import org.argeo.api.cms.ux.CmsUi;
 import org.argeo.cms.AbstractCmsApp;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.jcr.Jcr;
index c2c823150c5363198ca8c2bd83c19f3b57541862..256055cba06bd2878aec6fec29d4fe92ae19f56a 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.app.ui.publish;
 
-import org.argeo.api.cms.CmsStyle;
+import org.argeo.api.cms.ux.CmsStyle;
 
 /** Publishing styles. */
 public enum PublishingStyle implements CmsStyle {