Major refactoring of Argeo CMS UI
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 10 Dec 2021 10:44:11 +0000 (11:44 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 10 Dec 2021 10:44:11 +0000 (11:44 +0100)
55 files changed:
org.argeo.entity.ui/src/org/argeo/entity/ui/forms/AbstractTermsPart.java
org.argeo.entity.ui/src/org/argeo/entity/ui/forms/MultiTermsPart.java
org.argeo.entity.ui/src/org/argeo/entity/ui/forms/SingleTermPart.java
org.argeo.geo.ui/src/org/argeo/support/openlayers/OLMap.java
org.argeo.geo.ui/src/org/argeo/support/openlayers/OpenLayersMap.java
org.argeo.geo.ui/src/org/argeo/support/openlayers/OverviewMap.java
org.argeo.library.ui/src/org/argeo/library/ui/ContentEntryArea.java
org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFileComposite.java
org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFolderComposite.java
org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFolderUiProvider.java
org.argeo.library.ui/src/org/argeo/library/ui/DocumentsTreeUiProvider.java
org.argeo.library.ui/src/org/argeo/library/ui/DocumentsUiService.java
org.argeo.people.ui/src/org/argeo/people/ui/PeopleEntryArea.java
org.argeo.people.ui/src/org/argeo/people/ui/PersonUiProvider.java
org.argeo.people.ui/src/org/argeo/people/ui/SuiteUserUiProvider.java
org.argeo.people.ui/src/org/argeo/people/ui/SuiteUsersEntryArea.java
org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java
org.argeo.publishing.ui/src/org/argeo/docbook/ui/CustomDbkEditor.java
org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkContextMenu.java
org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImageManager.java
org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImg.java
org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkVideo.java
org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentPage.java
org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentTextEditor.java
org.argeo.publishing.ui/src/org/argeo/docbook/ui/Paragraph.java
org.argeo.publishing.ui/src/org/argeo/docbook/ui/TextEditorHeader.java
org.argeo.publishing.ui/src/org/argeo/docbook/ui/TextSection.java
org.argeo.publishing.ui/src/org/argeo/publishing/servlet/DbkServlet.java
org.argeo.publishing.ui/src/org/argeo/publishing/servlet/FontsServlet.java
org.argeo.publishing.ui/src/org/argeo/publishing/ui/DocumentUiProvider.java
org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingApp.java
org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingStyle.java
org.argeo.suite.core/src/org/argeo/suite/SuiteUtils.java
org.argeo.suite.theme.default/OSGI-INF/cmsTheme.xml
org.argeo.suite.theme.default/bnd.bnd
org.argeo.suite.ui.rap/OSGI-INF/cmsWebApp.xml
org.argeo.suite.ui/OSGI-INF/cmsApp.xml
org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultDashboard.java
org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultEditionLayer.java
org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultFooter.java
org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultHeader.java
org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLeadPane.java
org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLoginScreen.java
org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java
org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteApp.java
org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteEvent.java
org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteIcon.java
org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteStyle.java
org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUi.java
org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUiUtils.java
org.argeo.suite.ui/src/org/argeo/suite/ui/widgets/AbstractConnectContextMenu.java
org.argeo.suite.ui/src/org/argeo/suite/ui/widgets/ConnectAbstractDropDown.java
org.argeo.suite.ui/src/org/argeo/suite/ui/widgets/TabbedArea.java
org.argeo.suite.ui/src/org/argeo/suite/ui/widgets/TreeOrSearchArea.java
org.argeo.support.odk/src/org/argeo/support/odk/servlet/OdkSubmissionServlet.java

index 36ae2746f8a5e83d74b1205ec961a2cc8987dd70..973ceb21ae28fa13c4c4cb9c5a14ca024edf09c5 100644 (file)
@@ -2,10 +2,10 @@ package org.argeo.entity.ui.forms;
 
 import javax.jcr.Item;
 
 
 import javax.jcr.Item;
 
+import org.argeo.api.cms.CmsTheme;
 import org.argeo.cms.Localized;
 import org.argeo.cms.Localized;
-import org.argeo.cms.ui.CmsTheme;
-import org.argeo.cms.ui.util.CmsIcon;
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.cms.swt.CmsIcon;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.viewers.EditablePart;
 import org.argeo.cms.ui.widgets.ContextOverlay;
 import org.argeo.cms.ui.widgets.StyledControl;
 import org.argeo.cms.ui.viewers.EditablePart;
 import org.argeo.cms.ui.widgets.ContextOverlay;
 import org.argeo.cms.ui.widgets.StyledControl;
@@ -44,7 +44,7 @@ public abstract class AbstractTermsPart extends StyledControl implements Editabl
                        throw new IllegalArgumentException("Item cannot be null");
                this.termsManager = termsManager;
                this.typology = termsManager.getTypology(typology);
                        throw new IllegalArgumentException("Item cannot be null");
                this.termsManager = termsManager;
                this.typology = termsManager.getTypology(typology);
-               this.theme = CmsTheme.getCmsTheme(parent);
+               this.theme = CmsSwtUtils.getCmsTheme(parent);
                editable = !(SWT.READ_ONLY == (style & SWT.READ_ONLY));
                highlightColor = parent.getDisplay().getSystemColor(SWT.COLOR_GRAY);
        }
                editable = !(SWT.READ_ONLY == (style & SWT.READ_ONLY));
                highlightColor = parent.getDisplay().getSystemColor(SWT.COLOR_GRAY);
        }
@@ -82,11 +82,11 @@ public abstract class AbstractTermsPart extends StyledControl implements Editabl
        }
 
        protected void setControlLayoutData(Control control) {
        }
 
        protected void setControlLayoutData(Control control) {
-               control.setLayoutData(CmsUiUtils.fillAll());
+               control.setLayoutData(CmsSwtUtils.fillAll());
        }
 
        protected void setContainerLayoutData(Composite composite) {
        }
 
        protected void setContainerLayoutData(Composite composite) {
-               composite.setLayoutData(CmsUiUtils.fillAll());
+               composite.setLayoutData(CmsSwtUtils.fillAll());
        }
 
        //
        }
 
        //
index 8d407638626ecc8885b08b2b78d53b47f86bc591..00bcd7068af1ef185d427d478451418db67a19ea 100644 (file)
@@ -7,13 +7,13 @@ import javax.jcr.Item;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.argeo.cms.swt.CmsSwtUtils;
+import org.argeo.cms.swt.MouseDoubleClick;
+import org.argeo.cms.swt.MouseDown;
+import org.argeo.cms.swt.Selected;
 import org.argeo.cms.ui.forms.FormStyle;
 import org.argeo.cms.ui.forms.FormStyle;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.cms.ui.viewers.EditablePart;
 import org.argeo.cms.ui.widgets.ContextOverlay;
 import org.argeo.cms.ui.viewers.EditablePart;
 import org.argeo.cms.ui.widgets.ContextOverlay;
-import org.argeo.eclipse.ui.MouseDoubleClick;
-import org.argeo.eclipse.ui.MouseDown;
-import org.argeo.eclipse.ui.Selected;
 import org.argeo.entity.Term;
 import org.argeo.entity.TermsManager;
 import org.argeo.jcr.Jcr;
 import org.argeo.entity.Term;
 import org.argeo.entity.TermsManager;
 import org.argeo.jcr.Jcr;
@@ -44,7 +44,7 @@ public class MultiTermsPart extends AbstractTermsPart {
 
                boolean vertical = SWT.VERTICAL == (getStyle() & SWT.VERTICAL);
                RowLayout rl = new RowLayout(vertical ? SWT.VERTICAL : SWT.HORIZONTAL);
 
                boolean vertical = SWT.VERTICAL == (getStyle() & SWT.VERTICAL);
                RowLayout rl = new RowLayout(vertical ? SWT.VERTICAL : SWT.HORIZONTAL);
-               rl = CmsUiUtils.noMarginsRowLayout(rl);
+               rl = CmsSwtUtils.noMarginsRowLayout(rl);
 //             rl.wrap = true;
 //             rl.justify = true;
                placeholder.setLayout(rl);
 //             rl.wrap = true;
 //             rl.justify = true;
                placeholder.setLayout(rl);
@@ -52,11 +52,11 @@ public class MultiTermsPart extends AbstractTermsPart {
                if (currentValue != null && !currentValue.isEmpty()) {
                        for (Term value : currentValue) {
                                Composite block = new Composite(placeholder, SWT.NONE);
                if (currentValue != null && !currentValue.isEmpty()) {
                        for (Term value : currentValue) {
                                Composite block = new Composite(placeholder, SWT.NONE);
-                               block.setLayout(CmsUiUtils.noSpaceGridLayout(3));
+                               block.setLayout(CmsSwtUtils.noSpaceGridLayout(3));
                                Label lbl = new Label(block, SWT.NONE);
                                String display = getTermLabel(value);
                                lbl.setText(display);
                                Label lbl = new Label(block, SWT.NONE);
                                String display = getTermLabel(value);
                                lbl.setText(display);
-                               CmsUiUtils.style(lbl, style == null ? FormStyle.propertyText.style() : style);
+                               CmsSwtUtils.style(lbl, style == null ? FormStyle.propertyText.style() : style);
                                processTermListLabel(value, lbl);
                                if (isEditable())
                                        lbl.addMouseListener((MouseDoubleClick) (e) -> {
                                processTermListLabel(value, lbl);
                                if (isEditable())
                                        lbl.addMouseListener((MouseDoubleClick) (e) -> {
@@ -94,15 +94,15 @@ public class MultiTermsPart extends AbstractTermsPart {
 
                if (isEditing()) {
                        Composite block = new Composite(placeholder, SWT.NONE);
 
                if (isEditing()) {
                        Composite block = new Composite(placeholder, SWT.NONE);
-                       block.setLayout(CmsUiUtils.noSpaceGridLayout(3));
+                       block.setLayout(CmsSwtUtils.noSpaceGridLayout(3));
 
                        createHighlight(block);
 
                        Text txt = new Text(block, SWT.SINGLE | SWT.BORDER);
 
                        createHighlight(block);
 
                        Text txt = new Text(block, SWT.SINGLE | SWT.BORDER);
-                       txt.setLayoutData(CmsUiUtils.fillWidth());
+                       txt.setLayoutData(CmsSwtUtils.fillWidth());
 //                     txt.setMessage("[new]");
 
 //                     txt.setMessage("[new]");
 
-                       CmsUiUtils.style(txt, style == null ? FormStyle.propertyText.style() : style);
+                       CmsSwtUtils.style(txt, style == null ? FormStyle.propertyText.style() : style);
 
                        ToolBar toolBar = new ToolBar(block, SWT.HORIZONTAL);
                        ToolItem cancelItem = new ToolItem(toolBar, SWT.FLAT);
 
                        ToolBar toolBar = new ToolBar(block, SWT.HORIZONTAL);
                        ToolItem cancelItem = new ToolItem(toolBar, SWT.FLAT);
@@ -151,7 +151,7 @@ public class MultiTermsPart extends AbstractTermsPart {
 
        @Override
        protected void refresh(ContextOverlay contextArea, String filter, Text txt) {
 
        @Override
        protected void refresh(ContextOverlay contextArea, String filter, Text txt) {
-               CmsUiUtils.clear(contextArea);
+               CmsSwtUtils.clear(contextArea);
                List<? extends Term> terms = termsManager.listAllTerms(typology.getId());
                List<Term> currentValue = getValue();
                terms: for (Term term : terms) {
                List<? extends Term> terms = termsManager.listAllTerms(typology.getId());
                List<Term> currentValue = getValue();
                terms: for (Term term : terms) {
index 0b5948a1221f3ad3f89c1de5238a47895f496719..da238198ab0d7cf4714c13d0100c3228117716cc 100644 (file)
@@ -4,13 +4,13 @@ import java.util.List;
 
 import javax.jcr.Item;
 
 
 import javax.jcr.Item;
 
+import org.argeo.cms.swt.CmsSwtUtils;
+import org.argeo.cms.swt.MouseDoubleClick;
+import org.argeo.cms.swt.MouseDown;
+import org.argeo.cms.swt.Selected;
 import org.argeo.cms.ui.forms.FormStyle;
 import org.argeo.cms.ui.forms.FormStyle;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.cms.ui.viewers.EditablePart;
 import org.argeo.cms.ui.widgets.ContextOverlay;
 import org.argeo.cms.ui.viewers.EditablePart;
 import org.argeo.cms.ui.widgets.ContextOverlay;
-import org.argeo.eclipse.ui.MouseDoubleClick;
-import org.argeo.eclipse.ui.MouseDown;
-import org.argeo.eclipse.ui.Selected;
 import org.argeo.entity.Term;
 import org.argeo.entity.TermsManager;
 import org.argeo.jcr.Jcr;
 import org.argeo.entity.Term;
 import org.argeo.entity.TermsManager;
 import org.argeo.jcr.Jcr;
@@ -37,12 +37,12 @@ public class SingleTermPart extends AbstractTermsPart {
        protected Control createControl(Composite box, String style) {
                if (isEditing()) {
                        Composite block = new Composite(box, SWT.NONE);
        protected Control createControl(Composite box, String style) {
                if (isEditing()) {
                        Composite block = new Composite(box, SWT.NONE);
-                       block.setLayout(CmsUiUtils.noSpaceGridLayout(3));
+                       block.setLayout(CmsSwtUtils.noSpaceGridLayout(3));
 
                        createHighlight(block);
 
                        Text txt = new Text(block, SWT.SINGLE | SWT.BORDER);
 
                        createHighlight(block);
 
                        Text txt = new Text(block, SWT.SINGLE | SWT.BORDER);
-                       CmsUiUtils.style(txt, style == null ? FormStyle.propertyText.style() : style);
+                       CmsSwtUtils.style(txt, style == null ? FormStyle.propertyText.style() : style);
 
                        ToolBar toolBar = new ToolBar(block, SWT.HORIZONTAL);
                        ToolItem deleteItem = new ToolItem(toolBar, SWT.PUSH);
 
                        ToolBar toolBar = new ToolBar(block, SWT.HORIZONTAL);
                        ToolItem deleteItem = new ToolItem(toolBar, SWT.PUSH);
@@ -94,13 +94,13 @@ public class SingleTermPart extends AbstractTermsPart {
                        return block;
                } else {
                        Composite block = new Composite(box, SWT.NONE);
                        return block;
                } else {
                        Composite block = new Composite(box, SWT.NONE);
-                       block.setLayout(CmsUiUtils.noSpaceGridLayout(2));
+                       block.setLayout(CmsSwtUtils.noSpaceGridLayout(2));
                        Term currentValue = getValue();
                        if (currentValue != null) {
                                Label lbl = new Label(block, SWT.SINGLE);
                                String display = getTermLabel(currentValue);
                                lbl.setText(display);
                        Term currentValue = getValue();
                        if (currentValue != null) {
                                Label lbl = new Label(block, SWT.SINGLE);
                                String display = getTermLabel(currentValue);
                                lbl.setText(display);
-                               CmsUiUtils.style(lbl, style == null ? FormStyle.propertyText.style() : style);
+                               CmsSwtUtils.style(lbl, style == null ? FormStyle.propertyText.style() : style);
                                processTermListLabel(currentValue, lbl);
                                if (isEditable()) {
                                        lbl.addMouseListener((MouseDoubleClick) (e) -> {
                                processTermListLabel(currentValue, lbl);
                                if (isEditable()) {
                                        lbl.addMouseListener((MouseDoubleClick) (e) -> {
@@ -123,7 +123,7 @@ public class SingleTermPart extends AbstractTermsPart {
 
        @Override
        protected void refresh(ContextOverlay contextArea, String filter, Text txt) {
 
        @Override
        protected void refresh(ContextOverlay contextArea, String filter, Text txt) {
-               CmsUiUtils.clear(contextArea);
+               CmsSwtUtils.clear(contextArea);
                List<? extends Term> terms = termsManager.listAllTerms(typology.getId());
                terms: for (Term term : terms) {
                        String display = getTermLabel(term);
                List<? extends Term> terms = termsManager.listAllTerms(typology.getId());
                terms: for (Term term : terms) {
                        String display = getTermLabel(term);
index ac104c68f23cd1fcfa18590aa11038e05ce9878c..3bcf48848aa904ab899715a0801860d0d4dce2a0 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.support.openlayers;
 
 package org.argeo.support.openlayers;
 
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
@@ -10,12 +10,12 @@ public class OLMap extends Composite {
 
        public OLMap(Composite parent, int style) {
                super(parent, style);
 
        public OLMap(Composite parent, int style) {
                super(parent, style);
-               setLayout(CmsUiUtils.noSpaceGridLayout());
+               setLayout(CmsSwtUtils.noSpaceGridLayout());
                div = new Label(this, SWT.NONE);
                div = new Label(this, SWT.NONE);
-               CmsUiUtils.markup(div);
-               CmsUiUtils.disableMarkupValidation(div);
+               CmsSwtUtils.markup(div);
+               CmsSwtUtils.disableMarkupValidation(div);
                div.setText("<div id='map'></div>");
                div.setText("<div id='map'></div>");
-               div.setLayoutData(CmsUiUtils.fillAll());
+               div.setLayoutData(CmsSwtUtils.fillAll());
        }
 
 }
        }
 
 }
index 5357149c81e4dc5d3ec859ca5a2c925afef8559e..4803a8681ed33a55a7edbbfc707321646fa055e9 100644 (file)
@@ -16,8 +16,8 @@ import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.argeo.api.NodeConstants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.argeo.api.NodeConstants;
-import org.argeo.cms.ui.CmsView;
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.api.cms.CmsView;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.entity.EntityNames;
 import org.argeo.entity.EntityType;
 import org.argeo.suite.ui.SuiteEvent;
 import org.argeo.entity.EntityNames;
 import org.argeo.entity.EntityType;
 import org.argeo.suite.ui.SuiteEvent;
@@ -51,11 +51,11 @@ public class OpenLayersMap extends Composite {
 
        public OpenLayersMap(Composite parent, int style, URL mapHtml) {
                super(parent, style);
 
        public OpenLayersMap(Composite parent, int style, URL mapHtml) {
                super(parent, style);
-               cmsView = CmsView.getCmsView(parent);
+               cmsView = CmsSwtUtils.getCmsView(parent);
                setLayout(new GridLayout());
 
                browser = new Browser(this, SWT.BORDER);
                setLayout(new GridLayout());
 
                browser = new Browser(this, SWT.BORDER);
-               browser.setLayoutData(CmsUiUtils.fillAll());
+               browser.setLayoutData(CmsSwtUtils.fillAll());
                String html;
                try (InputStream in = mapHtml.openStream()) {
                        html = IOUtils.toString(in, StandardCharsets.UTF_8);
                String html;
                try (InputStream in = mapHtml.openStream()) {
                        html = IOUtils.toString(in, StandardCharsets.UTF_8);
index b2fd01ed0839967a80713ad3cc43e9f11c504e61..11d92e1c13d0ed13a4914ad177a50b9c24bfa67a 100644 (file)
@@ -9,8 +9,8 @@ import javax.jcr.observation.EventIterator;
 import javax.jcr.observation.EventListener;
 import javax.jcr.query.Query;
 
 import javax.jcr.observation.EventListener;
 import javax.jcr.query.Query;
 
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.entity.EntityType;
 import org.argeo.jcr.JcrException;
 import org.argeo.jcr.JcrUtils;
 import org.argeo.entity.EntityType;
 import org.argeo.jcr.JcrException;
 import org.argeo.jcr.JcrUtils;
@@ -52,12 +52,12 @@ public class OverviewMap implements CmsUiProvider {
        }
 
        protected void refreshUi(Composite parent, Node context) throws RepositoryException {
        }
 
        protected void refreshUi(Composite parent, Node context) throws RepositoryException {
-               CmsUiUtils.clear(parent);
+               CmsSwtUtils.clear(parent);
                Query query = context.getSession().getWorkspace().getQueryManager()
                                .createQuery("SELECT * FROM [" + EntityType.geopoint.get() + "]", Query.JCR_SQL2);
                List<Node> geoPoints = JcrUtils.nodeIteratorToList(query.execute().getNodes());
                OpenLayersMap map = new OpenLayersMap(parent, SWT.NONE, getClass().getResource("map-osm.html"));
                Query query = context.getSession().getWorkspace().getQueryManager()
                                .createQuery("SELECT * FROM [" + EntityType.geopoint.get() + "]", Query.JCR_SQL2);
                List<Node> geoPoints = JcrUtils.nodeIteratorToList(query.execute().getNodes());
                OpenLayersMap map = new OpenLayersMap(parent, SWT.NONE, getClass().getResource("map-osm.html"));
-               map.setLayoutData(CmsUiUtils.fillAll());
+               map.setLayoutData(CmsSwtUtils.fillAll());
 
                // apafMap.setZoom(7);
                // apafMap.setCenter(-2.472, 8.010);
 
                // apafMap.setZoom(7);
                // apafMap.setCenter(-2.472, 8.010);
index 8b884ebcf7a4a95cfa05b36166f571855ad44da0..d633fed7af29639af070bc5dd6ca80f81cd529cb 100644 (file)
@@ -10,10 +10,9 @@ import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
 import javax.jcr.query.Query;
 
 import javax.jcr.nodetype.NodeType;
 import javax.jcr.query.Query;
 
-import org.argeo.cms.ui.CmsTheme;
+import org.argeo.api.cms.CmsTheme;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.CmsView;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.entity.EntityType;
 import org.argeo.jcr.Jcr;
 import org.argeo.jcr.JcrException;
 import org.argeo.entity.EntityType;
 import org.argeo.jcr.Jcr;
 import org.argeo.jcr.JcrException;
@@ -38,11 +37,11 @@ public class ContentEntryArea implements CmsUiProvider {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
-               CmsTheme theme = CmsTheme.getCmsTheme(parent);
+               CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
 
                parent.setLayout(new GridLayout());
                Ui ui = new Ui(parent, SWT.NONE);
 
                parent.setLayout(new GridLayout());
                Ui ui = new Ui(parent, SWT.NONE);
-               ui.setLayoutData(CmsUiUtils.fillAll());
+               ui.setLayoutData(CmsSwtUtils.fillAll());
 
                TreeViewerColumn nameCol = new TreeViewerColumn(ui.getTreeViewer(), SWT.NONE);
                nameCol.getColumn().setWidth(400);
 
                TreeViewerColumn nameCol = new TreeViewerColumn(ui.getTreeViewer(), SWT.NONE);
                nameCol.getColumn().setWidth(400);
@@ -82,7 +81,7 @@ public class ContentEntryArea implements CmsUiProvider {
                        public void doubleClick(DoubleClickEvent event) {
                                Node user = (Node) ui.getTreeViewer().getStructuredSelection().getFirstElement();
                                if (user != null) {
                        public void doubleClick(DoubleClickEvent event) {
                                Node user = (Node) ui.getTreeViewer().getStructuredSelection().getFirstElement();
                                if (user != null) {
-                                       CmsView.getCmsView(parent).sendEvent(SuiteEvent.openNewPart.topic(),
+                                       CmsSwtUtils.getCmsView(parent).sendEvent(SuiteEvent.openNewPart.topic(),
                                                        SuiteEvent.eventProperties(user));
                                }
 
                                                        SuiteEvent.eventProperties(user));
                                }
 
@@ -92,7 +91,7 @@ public class ContentEntryArea implements CmsUiProvider {
                        public void selectionChanged(SelectionChangedEvent event) {
                                Node user = (Node) ui.getTreeViewer().getStructuredSelection().getFirstElement();
                                if (user != null) {
                        public void selectionChanged(SelectionChangedEvent event) {
                                Node user = (Node) ui.getTreeViewer().getStructuredSelection().getFirstElement();
                                if (user != null) {
-                                       CmsView.getCmsView(parent).sendEvent(SuiteEvent.refreshPart.topic(),
+                                       CmsSwtUtils.getCmsView(parent).sendEvent(SuiteEvent.refreshPart.topic(),
                                                        SuiteEvent.eventProperties(user));
                                }
                        }
                                                        SuiteEvent.eventProperties(user));
                                }
                        }
index 10cf3bd14f492b60d7fc68c8238d534be040bcf2..995d82bd832fe2e57110b59005afd4b95c996684 100644 (file)
@@ -6,7 +6,6 @@ import java.nio.file.Path;
 import java.nio.file.spi.FileSystemProvider;
 
 import javax.jcr.Node;
 import java.nio.file.spi.FileSystemProvider;
 
 import javax.jcr.Node;
-import javax.jcr.RepositoryException;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -37,8 +36,7 @@ public class DocumentsFileComposite extends Composite {
        // UI Parts for the browser
        private Composite rightPannelCmp;
 
        // UI Parts for the browser
        private Composite rightPannelCmp;
 
-       public DocumentsFileComposite(Composite parent, int style, Node context,
-                       FileSystemProvider fsp) {
+       public DocumentsFileComposite(Composite parent, int style, Node context, FileSystemProvider fsp) {
                super(parent, style);
                this.currentBaseContext = context;
                this.setLayout(EclipseUiUtils.noSpaceGridLayout());
                super(parent, style);
                this.currentBaseContext = context;
                this.setLayout(EclipseUiUtils.noSpaceGridLayout());
@@ -61,19 +59,15 @@ public class DocumentsFileComposite extends Composite {
                // browser.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true,
                // true));
                browser.setLayoutData(EclipseUiUtils.fillAll());
                // browser.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true,
                // true));
                browser.setLayoutData(EclipseUiUtils.fillAll());
-               try {
-                       // FIXME make it more robust
-                       String url = CmsUiUtils.getDataUrl(currentBaseContext, UiContext.getHttpRequest());
-                       // FIXME issue with the redirection to https
-                       if (url.startsWith("http://") && !url.startsWith("http://localhost"))
-                               url = "https://" + url.substring("http://".length(), url.length());
-                       if (log.isTraceEnabled())
-                               log.debug("Trying to display " + url);
-                       browser.setUrl(url);
-                       browser.layout(true, true);
-               } catch (RepositoryException re) {
-                       throw new IllegalStateException("Cannot open file at " + currentBaseContext, re);
-               }
+               // FIXME make it more robust
+               String url = CmsUiUtils.getDataUrl(currentBaseContext, UiContext.getHttpRequest());
+               // FIXME issue with the redirection to https
+               if (url.startsWith("http://") && !url.startsWith("http://localhost"))
+                       url = "https://" + url.substring("http://".length(), url.length());
+               if (log.isTraceEnabled())
+                       log.debug("Trying to display " + url);
+               browser.setUrl(url);
+               browser.layout(true, true);
        }
 
        /**
        }
 
        /**
@@ -118,8 +112,8 @@ public class DocumentsFileComposite extends Composite {
        // Simplify UI implementation
        private void addProperty(Composite parent, String propName, String value) {
                Label propLbl = new Label(parent, SWT.NONE);
        // Simplify UI implementation
        private void addProperty(Composite parent, String propName, String value) {
                Label propLbl = new Label(parent, SWT.NONE);
-               //propLbl.setText(ConnectUtils.replaceAmpersand(propName + ": " + value));
+               // propLbl.setText(ConnectUtils.replaceAmpersand(propName + ": " + value));
                propLbl.setText(value);
                propLbl.setText(value);
-               //CmsUiUtils.markup(propLbl);
+               // CmsUiUtils.markup(propLbl);
        }
 }
        }
 }
index a68607408bda885d7386a8a04ffe05fa9aa246dd..6363d495e4fc082fc60d00255a173a81b0cb0b5f 100644 (file)
@@ -15,9 +15,9 @@ import javax.jcr.Node;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.fs.FileDrop;
 import org.argeo.cms.ui.fs.FsStyles;
 import org.argeo.cms.ui.fs.FileDrop;
 import org.argeo.cms.ui.fs.FsStyles;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.eclipse.ui.ColumnDefinition;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.fs.FileIconNameLabelProvider;
 import org.argeo.eclipse.ui.ColumnDefinition;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.fs.FileIconNameLabelProvider;
@@ -217,7 +217,7 @@ public class DocumentsFolderComposite extends Composite {
                        nameStr = path.getFileName().toString();
 //             elemBtn.setText(nameStr + " >> ");
                elemBtn.setText(nameStr);
                        nameStr = path.getFileName().toString();
 //             elemBtn.setText(nameStr + " >> ");
                elemBtn.setText(nameStr);
-               CmsUiUtils.style(elemBtn, FsStyles.BREAD_CRUMB_BTN);
+               CmsSwtUtils.style(elemBtn, FsStyles.BREAD_CRUMB_BTN);
                elemBtn.addSelectionListener(new SelectionAdapter() {
                        private static final long serialVersionUID = -4103695476023480651L;
 
                elemBtn.addSelectionListener(new SelectionAdapter() {
                        private static final long serialVersionUID = -4103695476023480651L;
 
@@ -244,7 +244,7 @@ public class DocumentsFolderComposite extends Composite {
 
                // Bread crumbs
                breadCrumbCmp = new Composite(filterCmp, SWT.NO_FOCUS);
 
                // Bread crumbs
                breadCrumbCmp = new Composite(filterCmp, SWT.NO_FOCUS);
-               CmsUiUtils.style(breadCrumbCmp, FsStyles.BREAD_CRUMB_BTN);
+               CmsSwtUtils.style(breadCrumbCmp, FsStyles.BREAD_CRUMB_BTN);
                RowLayout breadCrumbLayout = new RowLayout();
                breadCrumbLayout.spacing = 0;
                breadCrumbLayout.marginTop = 0;
                RowLayout breadCrumbLayout = new RowLayout();
                breadCrumbLayout.spacing = 0;
                breadCrumbLayout.marginTop = 0;
index bdc194bf740853f761794416ed20b022a5c5a1df..41fc8230c20bc9797d75d0c5121d5e2d6b4e0241 100644 (file)
@@ -6,10 +6,10 @@ import java.nio.file.spi.FileSystemProvider;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
+import org.argeo.api.cms.CmsView;
 import org.argeo.cms.fs.CmsFsUtils;
 import org.argeo.cms.fs.CmsFsUtils;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.CmsView;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.jcr.Jcr;
 import org.argeo.suite.ui.SuiteEvent;
 import org.eclipse.swt.SWT;
 import org.argeo.jcr.Jcr;
 import org.argeo.suite.ui.SuiteEvent;
 import org.eclipse.swt.SWT;
@@ -22,7 +22,7 @@ public class DocumentsFolderUiProvider implements CmsUiProvider {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
-               CmsView cmsView = CmsView.getCmsView(parent);
+               CmsView cmsView = CmsSwtUtils.getCmsView(parent);
                DocumentsFolderComposite dfc = new DocumentsFolderComposite(parent, SWT.NONE, context) {
 
                        @Override
                DocumentsFolderComposite dfc = new DocumentsFolderComposite(parent, SWT.NONE, context) {
 
                        @Override
@@ -32,7 +32,7 @@ public class DocumentsFolderUiProvider implements CmsUiProvider {
                                cmsView.sendEvent(SuiteEvent.openNewPart.topic(), SuiteEvent.eventProperties(folderNode));
                        }
                };
                                cmsView.sendEvent(SuiteEvent.openNewPart.topic(), SuiteEvent.eventProperties(folderNode));
                        }
                };
-               dfc.setLayoutData(CmsUiUtils.fillAll());
+               dfc.setLayoutData(CmsSwtUtils.fillAll());
                dfc.populate(cmsView.doAs(() -> CmsFsUtils.getPath(nodeFileSystemProvider, context)));
                return dfc;
        }
                dfc.populate(cmsView.doAs(() -> CmsFsUtils.getPath(nodeFileSystemProvider, context)));
                return dfc;
        }
index f5407320c8c28cfb61ea4ddc66ca2e053a36a600..a2b1ce3eb9ab72810976046d2226da1cf6df5167 100644 (file)
@@ -9,11 +9,11 @@ import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 
 import org.argeo.api.NodeConstants;
 import javax.jcr.RepositoryException;
 
 import org.argeo.api.NodeConstants;
+import org.argeo.api.cms.CmsView;
 import org.argeo.cms.fs.CmsFsUtils;
 import org.argeo.cms.jcr.CmsJcrUtils;
 import org.argeo.cms.fs.CmsFsUtils;
 import org.argeo.cms.jcr.CmsJcrUtils;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.CmsView;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.eclipse.ui.fs.FsTreeViewer;
 import org.argeo.jcr.Jcr;
 import org.argeo.suite.ui.SuiteEvent;
 import org.argeo.eclipse.ui.fs.FsTreeViewer;
 import org.argeo.jcr.Jcr;
 import org.argeo.suite.ui.SuiteEvent;
@@ -33,7 +33,7 @@ public class DocumentsTreeUiProvider implements CmsUiProvider {
                parent.setLayout(new GridLayout());
                FsTreeViewer fsTreeViewer = new FsTreeViewer(parent, SWT.NONE);
                fsTreeViewer.configureDefaultSingleColumnTable(500);
                parent.setLayout(new GridLayout());
                FsTreeViewer fsTreeViewer = new FsTreeViewer(parent, SWT.NONE);
                fsTreeViewer.configureDefaultSingleColumnTable(500);
-               CmsView cmsView = CmsView.getCmsView(parent);
+               CmsView cmsView = CmsSwtUtils.getCmsView(parent);
                Node homeNode = CmsJcrUtils.getUserHome(cmsView.doAs(() -> Jcr.login(repository, NodeConstants.HOME_WORKSPACE)));
                parent.addDisposeListener((e1) -> Jcr.logout(homeNode));
                Path homePath = CmsFsUtils.getPath(nodeFileSystemProvider, homeNode);
                Node homeNode = CmsJcrUtils.getUserHome(cmsView.doAs(() -> Jcr.login(repository, NodeConstants.HOME_WORKSPACE)));
                parent.addDisposeListener((e1) -> Jcr.logout(homeNode));
                Path homePath = CmsFsUtils.getPath(nodeFileSystemProvider, homeNode);
@@ -64,7 +64,7 @@ public class DocumentsTreeUiProvider implements CmsUiProvider {
                        }
                });
                fsTreeViewer.setPathsInput(homePath);
                        }
                });
                fsTreeViewer.setPathsInput(homePath);
-               fsTreeViewer.getControl().setLayoutData(CmsUiUtils.fillAll());
+               fsTreeViewer.getControl().setLayoutData(CmsSwtUtils.fillAll());
                fsTreeViewer.getControl().getParent().layout(true, true);
                return fsTreeViewer.getControl();
        }
                fsTreeViewer.getControl().getParent().layout(true, true);
                return fsTreeViewer.getControl();
        }
index 5d04b175c088bc487c6d9407a2376b2b1f198d33..b222e489d3fc02d08b0a9426b1bed1fc08ba14e4 100644 (file)
@@ -1,8 +1,8 @@
 package org.argeo.library.ui;
 
 package org.argeo.library.ui;
 
-import static org.argeo.cms.ui.dialogs.CmsMessageDialog.openConfirm;
-import static org.argeo.cms.ui.dialogs.CmsMessageDialog.openError;
-import static org.argeo.cms.ui.dialogs.SingleValueDialog.ask;
+import static org.argeo.cms.swt.dialogs.CmsMessageDialog.openConfirm;
+import static org.argeo.cms.swt.dialogs.CmsMessageDialog.openError;
+import static org.argeo.cms.swt.dialogs.SingleValueDialog.ask;
 
 import java.io.File;
 import java.io.FileInputStream;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -27,7 +27,7 @@ import java.util.Map;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.cms.ui.dialogs.CmsFeedback;
+import org.argeo.cms.swt.dialogs.CmsFeedback;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.SWT;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.SWT;
index 2fd38dac89e2058fcfd0ca3e3024a8568b3a9ffd..87a591ef8a2da019cd743e387e381c3a21c2a91b 100644 (file)
@@ -5,13 +5,12 @@ import java.util.Set;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
+import org.argeo.api.cms.CmsTheme;
 import org.argeo.cms.CmsUserManager;
 import org.argeo.cms.CmsUserManager;
-import org.argeo.cms.ui.CmsTheme;
+import org.argeo.cms.swt.CmsSwtUtils;
+import org.argeo.cms.swt.Selected;
+import org.argeo.cms.swt.dialogs.CmsWizardDialog;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.CmsView;
-import org.argeo.cms.ui.dialogs.CmsWizardDialog;
-import org.argeo.cms.ui.util.CmsUiUtils;
-import org.argeo.eclipse.ui.Selected;
 import org.argeo.naming.LdapAttrs;
 import org.argeo.suite.SuiteRole;
 import org.argeo.suite.ui.SuiteEvent;
 import org.argeo.naming.LdapAttrs;
 import org.argeo.suite.SuiteRole;
 import org.argeo.suite.ui.SuiteEvent;
@@ -44,7 +43,7 @@ public class PeopleEntryArea implements CmsUiProvider {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
-               CmsTheme theme = CmsTheme.getCmsTheme(parent);
+               CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
                parent.setLayout(new GridLayout());
                TableViewer usersViewer = new TableViewer(parent);
                usersViewer.setContentProvider(new UsersContentProvider());
                parent.setLayout(new GridLayout());
                TableViewer usersViewer = new TableViewer(parent);
                usersViewer.setContentProvider(new UsersContentProvider());
@@ -94,8 +93,8 @@ public class PeopleEntryArea implements CmsUiProvider {
                });
 
                Composite bottom = new Composite(parent, SWT.NONE);
                });
 
                Composite bottom = new Composite(parent, SWT.NONE);
-               bottom.setLayoutData(CmsUiUtils.fillWidth());
-               bottom.setLayout(CmsUiUtils.noSpaceGridLayout());
+               bottom.setLayoutData(CmsSwtUtils.fillWidth());
+               bottom.setLayout(CmsSwtUtils.noSpaceGridLayout());
                ToolBar bottomToolBar = new ToolBar(bottom, SWT.NONE);
                bottomToolBar.setLayoutData(new GridData(SWT.END, SWT.FILL, true, false));
                ToolItem deleteItem = new ToolItem(bottomToolBar, SWT.FLAT);
                ToolBar bottomToolBar = new ToolBar(bottom, SWT.NONE);
                bottomToolBar.setLayoutData(new GridData(SWT.END, SWT.FILL, true, false));
                ToolItem deleteItem = new ToolItem(bottomToolBar, SWT.FLAT);
@@ -111,7 +110,7 @@ public class PeopleEntryArea implements CmsUiProvider {
                                User user = (User) usersViewer.getStructuredSelection().getFirstElement();
                                if (user != null) {
 //                                     Node userNode = getOrCreateUserNode(user, context);
                                User user = (User) usersViewer.getStructuredSelection().getFirstElement();
                                if (user != null) {
 //                                     Node userNode = getOrCreateUserNode(user, context);
-                                       CmsView.getCmsView(parent).sendEvent(SuiteEvent.openNewPart.topic(),
+                                       CmsSwtUtils.getCmsView(parent).sendEvent(SuiteEvent.openNewPart.topic(),
                                                        SuiteEvent.eventProperties(user));
                                }
 
                                                        SuiteEvent.eventProperties(user));
                                }
 
@@ -122,7 +121,7 @@ public class PeopleEntryArea implements CmsUiProvider {
                                User user = (User) usersViewer.getStructuredSelection().getFirstElement();
                                if (user != null) {
 //                                     Node userNode = getOrCreateUserNode(user, context);
                                User user = (User) usersViewer.getStructuredSelection().getFirstElement();
                                if (user != null) {
 //                                     Node userNode = getOrCreateUserNode(user, context);
-                                       CmsView.getCmsView(parent).sendEvent(SuiteEvent.refreshPart.topic(),
+                                       CmsSwtUtils.getCmsView(parent).sendEvent(SuiteEvent.refreshPart.topic(),
                                                        SuiteEvent.eventProperties(user));
                                        deleteItem.setEnabled(true);
                                } else {
                                                        SuiteEvent.eventProperties(user));
                                        deleteItem.setEnabled(true);
                                } else {
@@ -141,7 +140,7 @@ public class PeopleEntryArea implements CmsUiProvider {
                        }
                });
 
                        }
                });
 
-               usersViewer.getTable().setLayoutData(CmsUiUtils.fillAll());
+               usersViewer.getTable().setLayoutData(CmsSwtUtils.fillAll());
                usersViewer.setInput(cmsUserManager);
 
                return usersViewer.getTable();
                usersViewer.setInput(cmsUserManager);
 
                return usersViewer.getTable();
index d2ea2fe8ca26b54f47a0bb28c79e99ece21327ec..e6ad48e919230ddee32a930d8ac2bc2067dac2c9 100644 (file)
@@ -8,8 +8,8 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import org.argeo.cms.CmsUserManager;
 import javax.jcr.RepositoryException;
 
 import org.argeo.cms.CmsUserManager;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.cms.ui.viewers.Section;
 import org.argeo.naming.LdapAttrs;
 import org.argeo.suite.ui.SuiteMsg;
 import org.argeo.cms.ui.viewers.Section;
 import org.argeo.naming.LdapAttrs;
 import org.argeo.suite.ui.SuiteMsg;
@@ -31,7 +31,7 @@ public class PersonUiProvider implements CmsUiProvider {
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
                Section main = new Section(parent, SWT.NONE, context);
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
                Section main = new Section(parent, SWT.NONE, context);
-               main.setLayoutData(CmsUiUtils.fillAll());
+               main.setLayoutData(CmsSwtUtils.fillAll());
 
                String uid = context.getName();
                User user = cmsUserManager.getUserFromLocalId(uid);
 
                String uid = context.getName();
                User user = cmsUserManager.getUserFromLocalId(uid);
@@ -58,7 +58,7 @@ public class PersonUiProvider implements CmsUiProvider {
                // Section rolesSection = new Section(main, SWT.NONE, context);
                Group rolesSection = new Group(main, SWT.NONE);
                rolesSection.setText("Roles");
                // Section rolesSection = new Section(main, SWT.NONE, context);
                Group rolesSection = new Group(main, SWT.NONE);
                rolesSection.setText("Roles");
-               rolesSection.setLayoutData(CmsUiUtils.fillWidth());
+               rolesSection.setLayoutData(CmsSwtUtils.fillWidth());
                rolesSection.setLayout(new GridLayout());
                // new Label(rolesSection, SWT.NONE).setText("Roles:");
                List<String> roles = Arrays.asList(cmsUserManager.getUserRoles(user.getName()));
                rolesSection.setLayout(new GridLayout());
                // new Label(rolesSection, SWT.NONE).setText("Roles:");
                List<String> roles = Arrays.asList(cmsUserManager.getUserRoles(user.getName()));
index aa83cd274a2088353db8a75e36493ce428c29e2d..f41317ff0efc837bd802e579a0e525ede5bb4bbd 100644 (file)
@@ -8,8 +8,8 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import org.argeo.cms.CmsUserManager;
 import javax.jcr.RepositoryException;
 
 import org.argeo.cms.CmsUserManager;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.cms.ui.viewers.Section;
 import org.argeo.naming.LdapAttrs;
 import org.argeo.suite.ui.SuiteMsg;
 import org.argeo.cms.ui.viewers.Section;
 import org.argeo.naming.LdapAttrs;
 import org.argeo.suite.ui.SuiteMsg;
@@ -31,7 +31,7 @@ public class SuiteUserUiProvider implements CmsUiProvider {
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
                Section main = new Section(parent, SWT.NONE, context);
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
                Section main = new Section(parent, SWT.NONE, context);
-               main.setLayoutData(CmsUiUtils.fillAll());
+               main.setLayoutData(CmsSwtUtils.fillAll());
 
                String uid = context.getName();
                User user = cmsUserManager.getUserFromLocalId(uid);
 
                String uid = context.getName();
                User user = cmsUserManager.getUserFromLocalId(uid);
@@ -58,7 +58,7 @@ public class SuiteUserUiProvider implements CmsUiProvider {
                // Section rolesSection = new Section(main, SWT.NONE, context);
                Group rolesSection = new Group(main, SWT.NONE);
                rolesSection.setText("Roles");
                // Section rolesSection = new Section(main, SWT.NONE, context);
                Group rolesSection = new Group(main, SWT.NONE);
                rolesSection.setText("Roles");
-               rolesSection.setLayoutData(CmsUiUtils.fillWidth());
+               rolesSection.setLayoutData(CmsSwtUtils.fillWidth());
                rolesSection.setLayout(new GridLayout());
                // new Label(rolesSection, SWT.NONE).setText("Roles:");
                List<String> roles = Arrays.asList(cmsUserManager.getUserRoles(user.getName()));
                rolesSection.setLayout(new GridLayout());
                // new Label(rolesSection, SWT.NONE).setText("Roles:");
                List<String> roles = Arrays.asList(cmsUserManager.getUserRoles(user.getName()));
index 66f3edabcf7fd6b5456bd1d95b0c85cfb48c178d..909ea9a44d7b4668a027becb4c93078a97787916 100644 (file)
@@ -5,13 +5,12 @@ import java.util.Set;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
+import org.argeo.api.cms.CmsTheme;
 import org.argeo.cms.CmsUserManager;
 import org.argeo.cms.CmsUserManager;
-import org.argeo.cms.ui.CmsTheme;
+import org.argeo.cms.swt.CmsSwtUtils;
+import org.argeo.cms.swt.Selected;
+import org.argeo.cms.swt.dialogs.CmsWizardDialog;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.CmsView;
-import org.argeo.cms.ui.dialogs.CmsWizardDialog;
-import org.argeo.cms.ui.util.CmsUiUtils;
-import org.argeo.eclipse.ui.Selected;
 import org.argeo.naming.LdapAttrs;
 import org.argeo.suite.SuiteRole;
 import org.argeo.suite.ui.SuiteEvent;
 import org.argeo.naming.LdapAttrs;
 import org.argeo.suite.SuiteRole;
 import org.argeo.suite.ui.SuiteEvent;
@@ -44,7 +43,7 @@ public class SuiteUsersEntryArea implements CmsUiProvider {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
-               CmsTheme theme = CmsTheme.getCmsTheme(parent);
+               CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
                parent.setLayout(new GridLayout());
                TableViewer usersViewer = new TableViewer(parent);
                usersViewer.setContentProvider(new UsersContentProvider());
                parent.setLayout(new GridLayout());
                TableViewer usersViewer = new TableViewer(parent);
                usersViewer.setContentProvider(new UsersContentProvider());
@@ -94,8 +93,8 @@ public class SuiteUsersEntryArea implements CmsUiProvider {
                });
 
                Composite bottom = new Composite(parent, SWT.NONE);
                });
 
                Composite bottom = new Composite(parent, SWT.NONE);
-               bottom.setLayoutData(CmsUiUtils.fillWidth());
-               bottom.setLayout(CmsUiUtils.noSpaceGridLayout());
+               bottom.setLayoutData(CmsSwtUtils.fillWidth());
+               bottom.setLayout(CmsSwtUtils.noSpaceGridLayout());
                ToolBar bottomToolBar = new ToolBar(bottom, SWT.NONE);
                bottomToolBar.setLayoutData(new GridData(SWT.END, SWT.FILL, true, false));
                ToolItem deleteItem = new ToolItem(bottomToolBar, SWT.FLAT);
                ToolBar bottomToolBar = new ToolBar(bottom, SWT.NONE);
                bottomToolBar.setLayoutData(new GridData(SWT.END, SWT.FILL, true, false));
                ToolItem deleteItem = new ToolItem(bottomToolBar, SWT.FLAT);
@@ -111,7 +110,7 @@ public class SuiteUsersEntryArea implements CmsUiProvider {
                                User user = (User) usersViewer.getStructuredSelection().getFirstElement();
                                if (user != null) {
 //                                     Node userNode = getOrCreateUserNode(user, context);
                                User user = (User) usersViewer.getStructuredSelection().getFirstElement();
                                if (user != null) {
 //                                     Node userNode = getOrCreateUserNode(user, context);
-                                       CmsView.getCmsView(parent).sendEvent(SuiteEvent.openNewPart.topic(),
+                                       CmsSwtUtils.getCmsView(parent).sendEvent(SuiteEvent.openNewPart.topic(),
                                                        SuiteEvent.eventProperties(user));
                                }
 
                                                        SuiteEvent.eventProperties(user));
                                }
 
@@ -122,7 +121,7 @@ public class SuiteUsersEntryArea implements CmsUiProvider {
                                User user = (User) usersViewer.getStructuredSelection().getFirstElement();
                                if (user != null) {
 //                                     Node userNode = getOrCreateUserNode(user, context);
                                User user = (User) usersViewer.getStructuredSelection().getFirstElement();
                                if (user != null) {
 //                                     Node userNode = getOrCreateUserNode(user, context);
-                                       CmsView.getCmsView(parent).sendEvent(SuiteEvent.refreshPart.topic(),
+                                       CmsSwtUtils.getCmsView(parent).sendEvent(SuiteEvent.refreshPart.topic(),
                                                        SuiteEvent.eventProperties(user));
                                        deleteItem.setEnabled(true);
                                } else {
                                                        SuiteEvent.eventProperties(user));
                                        deleteItem.setEnabled(true);
                                } else {
@@ -141,7 +140,7 @@ public class SuiteUsersEntryArea implements CmsUiProvider {
                        }
                });
 
                        }
                });
 
-               usersViewer.getTable().setLayoutData(CmsUiUtils.fillAll());
+               usersViewer.getTable().setLayoutData(CmsSwtUtils.fillAll());
                usersViewer.setInput(cmsUserManager);
 
                return usersViewer.getTable();
                usersViewer.setInput(cmsUserManager);
 
                return usersViewer.getTable();
index e9000936128b2f94f850475471b28161399911dc..c1b2f5087c9ad75d6a4246127f8187c51b0b36b1 100644 (file)
@@ -1,6 +1,5 @@
 package org.argeo.docbook.ui;
 
 package org.argeo.docbook.ui;
 
-import static org.argeo.cms.ui.util.CmsUiUtils.fillWidth;
 import static org.argeo.docbook.DbkType.para;
 import static org.argeo.docbook.DbkUtils.addDbk;
 import static org.argeo.docbook.DbkUtils.isDbk;
 import static org.argeo.docbook.DbkType.para;
 import static org.argeo.docbook.DbkUtils.addDbk;
 import static org.argeo.docbook.DbkUtils.isDbk;
@@ -19,8 +18,9 @@ import javax.jcr.Session;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.cms.ui.CmsEditable;
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.api.cms.Cms2DSize;
+import org.argeo.api.cms.CmsEditable;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.viewers.AbstractPageViewer;
 import org.argeo.cms.ui.viewers.EditablePart;
 import org.argeo.cms.ui.viewers.NodePart;
 import org.argeo.cms.ui.viewers.AbstractPageViewer;
 import org.argeo.cms.ui.viewers.EditablePart;
 import org.argeo.cms.ui.viewers.NodePart;
@@ -102,13 +102,13 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                long begin = System.currentTimeMillis();
                Section section = (Section) control;
                if (section instanceof TextSection) {
                long begin = System.currentTimeMillis();
                Section section = (Section) control;
                if (section instanceof TextSection) {
-                       CmsUiUtils.clear(section);
+                       CmsSwtUtils.clear(section);
                        Node node = section.getNode();
                        TextSection textSection = (TextSection) section;
                        String style = node.hasProperty(DbkAttr.role.name()) ? node.getProperty(DbkAttr.role.name()).getString()
                                        : getDefaultSectionStyle();
                        if (style != null)
                        Node node = section.getNode();
                        TextSection textSection = (TextSection) section;
                        String style = node.hasProperty(DbkAttr.role.name()) ? node.getProperty(DbkAttr.role.name()).getString()
                                        : getDefaultSectionStyle();
                        if (style != null)
-                               CmsUiUtils.style(textSection, style);
+                               CmsSwtUtils.style(textSection, style);
 
                        // Title
                        Node titleNode = null;
 
                        // Title
                        Node titleNode = null;
@@ -125,7 +125,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                                        if (section.getHeader() == null)
                                                section.createHeader();
                                        DbkSectionTitle title = newSectionTitle(textSection, titleNode);
                                        if (section.getHeader() == null)
                                                section.createHeader();
                                        DbkSectionTitle title = newSectionTitle(textSection, titleNode);
-                                       title.setLayoutData(CmsUiUtils.fillWidth());
+                                       title.setLayoutData(CmsSwtUtils.fillWidth());
                                        updateContent(title);
                                }
                        }
                                        updateContent(title);
                                }
                        }
@@ -157,7 +157,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                                        throw new IllegalArgumentException("Unsupported node type for " + child);
                                }
                                if (sectionPart != null && sectionPart instanceof Control)
                                        throw new IllegalArgumentException("Unsupported node type for " + child);
                                }
                                if (sectionPart != null && sectionPart instanceof Control)
-                                       ((Control) sectionPart).setLayoutData(CmsUiUtils.fillWidth());
+                                       ((Control) sectionPart).setLayoutData(CmsSwtUtils.fillWidth());
                        }
 
 //                     if (!flat)
                        }
 
 //                     if (!flat)
@@ -165,7 +165,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                                Node child = ni.nextNode();
                                if (isDbk(child, DbkType.section)) {
                                        TextSection newSection = newTextSection(section, child);
                                Node child = ni.nextNode();
                                if (isDbk(child, DbkType.section)) {
                                        TextSection newSection = newTextSection(section, child);
-                                       newSection.setLayoutData(CmsUiUtils.fillWidth());
+                                       newSection.setLayoutData(CmsSwtUtils.fillWidth());
                                        refresh(newSection);
                                }
                        }
                                        refresh(newSection);
                                }
                        }
@@ -192,7 +192,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
        protected Paragraph newParagraph(TextSection parent, Node node) throws RepositoryException {
                Paragraph paragraph = new Paragraph(parent, parent.getStyle(), node);
                updateContent(paragraph);
        protected Paragraph newParagraph(TextSection parent, Node node) throws RepositoryException {
                Paragraph paragraph = new Paragraph(parent, parent.getStyle(), node);
                updateContent(paragraph);
-               paragraph.setLayoutData(fillWidth());
+               paragraph.setLayoutData(CmsSwtUtils.fillWidth());
                paragraph.setMouseListener(getMouseListener());
                paragraph.setFocusListener(getFocusListener());
                return paragraph;
                paragraph.setMouseListener(getMouseListener());
                paragraph.setFocusListener(getFocusListener());
                return paragraph;
@@ -205,9 +205,9 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                        if (maxMediaWidth != null) {
                                imgGd = new GridData(SWT.CENTER, SWT.FILL, false, false);
                                imgGd.widthHint = maxMediaWidth;
                        if (maxMediaWidth != null) {
                                imgGd = new GridData(SWT.CENTER, SWT.FILL, false, false);
                                imgGd.widthHint = maxMediaWidth;
-                               img.setPreferredSize(new Point(maxMediaWidth, 0));
+                               img.setPreferredSize(new Cms2DSize(maxMediaWidth, 0));
                        } else {
                        } else {
-                               imgGd = CmsUiUtils.grabWidth(SWT.CENTER, SWT.DEFAULT);
+                               imgGd = CmsSwtUtils.grabWidth(SWT.CENTER, SWT.DEFAULT);
                        }
                        img.setLayoutData(imgGd);
                        updateContent(img);
                        }
                        img.setLayoutData(imgGd);
                        updateContent(img);
@@ -691,7 +691,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                                getTextInterpreter().write(titleNode, txt);
 
                                TextSection newSection = new TextSection(section, section.getStyle(), newSectionNode);
                                getTextInterpreter().write(titleNode, txt);
 
                                TextSection newSection = new TextSection(section, section.getStyle(), newSectionNode);
-                               newSection.setLayoutData(CmsUiUtils.fillWidth());
+                               newSection.setLayoutData(CmsSwtUtils.fillWidth());
                                newSection.moveBelow(paragraph);
 
                                // dispose
                                newSection.moveBelow(paragraph);
 
                                // dispose
@@ -801,7 +801,7 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke
                Section section = paragraph.getSection();
                updateContent(paragraph);
                Paragraph newParagraph = newParagraph((TextSection) section, newNode);
                Section section = paragraph.getSection();
                updateContent(paragraph);
                Paragraph newParagraph = newParagraph((TextSection) section, newNode);
-               newParagraph.setLayoutData(CmsUiUtils.fillWidth());
+               newParagraph.setLayoutData(CmsSwtUtils.fillWidth());
                newParagraph.moveBelow(paragraph);
                layout(paragraph.getControl(), newParagraph.getControl());
                return newParagraph;
                newParagraph.moveBelow(paragraph);
                layout(paragraph.getControl(), newParagraph.getControl());
                return newParagraph;
index 561b1e13b7e24d0412f392eeb4e808442c894542..94c98258f36e2b025467c986a060eb3d845522d8 100644 (file)
@@ -2,7 +2,7 @@ package org.argeo.docbook.ui;
 
 import javax.jcr.Node;
 
 
 import javax.jcr.Node;
 
-import org.argeo.cms.ui.CmsEditable;
+import org.argeo.api.cms.CmsEditable;
 import org.argeo.cms.ui.viewers.Section;
 import org.eclipse.swt.widgets.Composite;
 
 import org.argeo.cms.ui.viewers.Section;
 import org.eclipse.swt.widgets.Composite;
 
index 6046bf2c9ce5c537761c43101131dff5ba789268..778f7c8c1de036d2b07147b1e2a5d59918b4269b 100644 (file)
@@ -5,8 +5,9 @@ import java.util.List;
 
 import javax.jcr.Node;
 
 
 import javax.jcr.Node;
 
-import org.argeo.cms.ui.CmsEditable;
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.api.cms.CmsEditable;
+import org.argeo.cms.swt.CmsSwtUtils;
+import org.argeo.cms.swt.MouseDown;
 import org.argeo.cms.ui.viewers.EditablePart;
 import org.argeo.cms.ui.viewers.NodePart;
 import org.argeo.cms.ui.viewers.Section;
 import org.argeo.cms.ui.viewers.EditablePart;
 import org.argeo.cms.ui.viewers.NodePart;
 import org.argeo.cms.ui.viewers.Section;
@@ -15,7 +16,6 @@ import org.argeo.cms.ui.widgets.EditableText;
 import org.argeo.cms.ui.widgets.Img;
 import org.argeo.docbook.DbkMsg;
 import org.argeo.docbook.DbkUtils;
 import org.argeo.cms.ui.widgets.Img;
 import org.argeo.docbook.DbkMsg;
 import org.argeo.docbook.DbkUtils;
-import org.argeo.eclipse.ui.MouseDown;
 import org.argeo.jcr.Jcr;
 import org.eclipse.rap.rwt.RWT;
 import org.eclipse.swt.SWT;
 import org.argeo.jcr.Jcr;
 import org.eclipse.rap.rwt.RWT;
 import org.eclipse.swt.SWT;
@@ -49,7 +49,7 @@ class DbkContextMenu {
        void show(EditablePart editablePart, Point location, List<String> availableStyles) {
                if (shell.isVisible())
                        shell.setVisible(false);
        void show(EditablePart editablePart, Point location, List<String> availableStyles) {
                if (shell.isVisible())
                        shell.setVisible(false);
-               CmsUiUtils.clear(shell);
+               CmsSwtUtils.clear(shell);
                Composite parent = shell;
                CmsEditable cmsEditable = textViewer.getCmsEditable();
 //             if (availableStyles.isEmpty())
                Composite parent = shell;
                CmsEditable cmsEditable = textViewer.getCmsEditable();
 //             if (availableStyles.isEmpty())
index 25a466ab7695c3153cde5e565a28afb86a22422d..63f17d20b771f7c9ff7d4caa3caf57e07e6176d7 100644 (file)
@@ -17,18 +17,18 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.NodeType;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.NodeType;
 
-import org.argeo.cms.ui.CmsImageManager;
+import org.argeo.api.cms.Cms2DSize;
+import org.argeo.api.cms.CmsImageManager;
 import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.cms.ui.util.DefaultImageManager;
 import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.cms.ui.util.DefaultImageManager;
-import org.argeo.docbook.DbkUtils;
 import org.argeo.docbook.DbkAttr;
 import org.argeo.docbook.DbkType;
 import org.argeo.docbook.DbkAttr;
 import org.argeo.docbook.DbkType;
+import org.argeo.docbook.DbkUtils;
 import org.argeo.entity.EntityNames;
 import org.argeo.entity.EntityType;
 import org.argeo.jcr.JcrException;
 import org.argeo.jcr.JcrUtils;
 import org.eclipse.swt.graphics.ImageData;
 import org.argeo.entity.EntityNames;
 import org.argeo.entity.EntityType;
 import org.argeo.jcr.JcrException;
 import org.argeo.jcr.JcrUtils;
 import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.Point;
 
 /** Add DocBook images support to {@link CmsImageManager}. */
 public class DbkImageManager extends DefaultImageManager {
 
 /** Add DocBook images support to {@link CmsImageManager}. */
 public class DbkImageManager extends DefaultImageManager {
@@ -38,59 +38,72 @@ public class DbkImageManager extends DefaultImageManager {
                this.baseFolder = baseFolder;
        }
 
                this.baseFolder = baseFolder;
        }
 
-       Node getImageDataNode(Node mediaObjectNode) throws RepositoryException {
-               if (mediaObjectNode.hasNode(DbkType.imageobject.get())) {
-                       Node imageDataNode = mediaObjectNode.getNode(DbkType.imageobject.get()).getNode(DbkType.imagedata.get());
-                       return imageDataNode;
-               } else {
-                       throw new IllegalStateException("No image data found for " + mediaObjectNode);
+       Node getImageDataNode(Node mediaObjectNode) {
+               try {
+                       if (mediaObjectNode.hasNode(DbkType.imageobject.get())) {
+                               Node imageDataNode = mediaObjectNode.getNode(DbkType.imageobject.get())
+                                               .getNode(DbkType.imagedata.get());
+                               return imageDataNode;
+                       } else {
+                               throw new IllegalStateException("No image data found for " + mediaObjectNode);
+                       }
+               } catch (RepositoryException e) {
+                       throw new JcrException(e);
                }
        }
 
        @Override
                }
        }
 
        @Override
-       public Binary getImageBinary(Node node) throws RepositoryException {
+       public Binary getImageBinary(Node node) {
                Node fileNode = null;
                if (DbkUtils.isDbk(node, DbkType.mediaobject)) {
                        Node imageDataNode = getImageDataNode(node);
                        fileNode = getFileNode(imageDataNode);
                }
                Node fileNode = null;
                if (DbkUtils.isDbk(node, DbkType.mediaobject)) {
                        Node imageDataNode = getImageDataNode(node);
                        fileNode = getFileNode(imageDataNode);
                }
-               if (node.isNodeType(NT_FILE)) {
-                       fileNode = node;
-               }
-               if (fileNode != null) {
-                       return node.getNode(JCR_CONTENT).getProperty(JCR_DATA).getBinary();
-               } else {
-                       return null;
+               try {
+                       if (node.isNodeType(NT_FILE)) {
+                               fileNode = node;
+                       }
+                       if (fileNode != null) {
+                               return node.getNode(JCR_CONTENT).getProperty(JCR_DATA).getBinary();
+                       } else {
+                               return null;
+                       }
+               } catch (RepositoryException e) {
+                       throw new JcrException(e);
                }
        }
 
                }
        }
 
-       public Point getImageSize(Node mediaObjectNode) throws RepositoryException {
+       public Cms2DSize getImageSize(Node mediaObjectNode) {
                Node imageDataNode = getImageDataNode(mediaObjectNode);
                Node fileNode = getFileNode(imageDataNode);
                if (fileNode == null)
                Node imageDataNode = getImageDataNode(mediaObjectNode);
                Node fileNode = getFileNode(imageDataNode);
                if (fileNode == null)
-                       return new Point(0, 0);
-               Point intrinsicSize;
-               if (fileNode.hasProperty(EntityNames.SVG_WIDTH) && fileNode.hasProperty(EntityNames.SVG_HEIGHT)) {
-                       int width = (int) fileNode.getProperty(EntityNames.SVG_WIDTH).getLong();
-                       int height = (int) fileNode.getProperty(EntityNames.SVG_HEIGHT).getLong();
-                       intrinsicSize = new Point(width, height);
-               } else {
-                       try (InputStream in = JcrUtils.getFileAsStream(fileNode)) {
-                               ImageData id = new ImageData(in);
-                               intrinsicSize = updateSize(fileNode, id);
-                       } catch (IOException e) {
-                               throw new RuntimeException("Cannot load file " + fileNode, e);
+                       return new Cms2DSize(0, 0);
+               try {
+                       Cms2DSize intrinsicSize;
+                       if (fileNode.hasProperty(EntityNames.SVG_WIDTH) && fileNode.hasProperty(EntityNames.SVG_HEIGHT)) {
+                               int width = (int) fileNode.getProperty(EntityNames.SVG_WIDTH).getLong();
+                               int height = (int) fileNode.getProperty(EntityNames.SVG_HEIGHT).getLong();
+                               intrinsicSize = new Cms2DSize(width, height);
+                       } else {
+                               try (InputStream in = JcrUtils.getFileAsStream(fileNode)) {
+                                       ImageData id = new ImageData(in);
+                                       intrinsicSize = updateSize(fileNode, id);
+                               } catch (IOException e) {
+                                       throw new RuntimeException("Cannot load file " + fileNode, e);
+                               }
                        }
                        }
+                       // TODO interpret image data infos
+                       return intrinsicSize;
+               } catch (RepositoryException e) {
+                       throw new JcrException(e);
                }
                }
-               // TODO interpret image data infos
-               return intrinsicSize;
        }
 
        }
 
-       protected Point updateSize(Node fileNode, ImageData id) throws RepositoryException {
+       protected Cms2DSize updateSize(Node fileNode, ImageData id) throws RepositoryException {
                fileNode.addMixin(EntityType.box.get());
                fileNode.setProperty(EntityNames.SVG_WIDTH, id.width);
                fileNode.setProperty(EntityNames.SVG_HEIGHT, id.height);
                fileNode.addMixin(EntityType.box.get());
                fileNode.setProperty(EntityNames.SVG_WIDTH, id.width);
                fileNode.setProperty(EntityNames.SVG_HEIGHT, id.height);
-               return new Point(id.width, id.height);
+               return new Cms2DSize(id.width, id.height);
        }
 
        @Override
        }
 
        @Override
@@ -104,12 +117,16 @@ public class DbkImageManager extends DefaultImageManager {
        }
 
        @Override
        }
 
        @Override
-       public String getImageUrl(Node mediaObjectNode) throws RepositoryException {
+       public String getImageUrl(Node mediaObjectNode) {
                Node imageDataNode = getImageDataNode(mediaObjectNode);
                // TODO factorise
                String fileref = null;
                Node imageDataNode = getImageDataNode(mediaObjectNode);
                // TODO factorise
                String fileref = null;
-               if (imageDataNode.hasProperty(DbkAttr.fileref.name()))
-                       fileref = imageDataNode.getProperty(DbkAttr.fileref.name()).getString();
+               try {
+                       if (imageDataNode.hasProperty(DbkAttr.fileref.name()))
+                               fileref = imageDataNode.getProperty(DbkAttr.fileref.name()).getString();
+               } catch (RepositoryException e) {
+                       throw new JcrException(e);
+               }
                if (fileref == null)
                        return null;
                URI fileUri;
                if (fileref == null)
                        return null;
                URI fileUri;
@@ -127,19 +144,23 @@ public class DbkImageManager extends DefaultImageManager {
                return url;
        }
 
                return url;
        }
 
-       protected Node getFileNode(Node imageDataNode) throws RepositoryException {
+       protected Node getFileNode(Node imageDataNode) {
                // FIXME make URL use case more robust
                // FIXME make URL use case more robust
-               String fileref = null;
-               if (imageDataNode.hasProperty(DbkAttr.fileref.name()))
-                       fileref = imageDataNode.getProperty(DbkAttr.fileref.name()).getString();
-               if (fileref == null)
-                       return null;
-               Node fileNode;
-               if (fileref.startsWith("/"))
-                       fileNode = baseFolder.getSession().getNode(fileref);
-               else
-                       fileNode = baseFolder.getNode(fileref);
-               return fileNode;
+               try {
+                       String fileref = null;
+                       if (imageDataNode.hasProperty(DbkAttr.fileref.name()))
+                               fileref = imageDataNode.getProperty(DbkAttr.fileref.name()).getString();
+                       if (fileref == null)
+                               return null;
+                       Node fileNode;
+                       if (fileref.startsWith("/"))
+                               fileNode = baseFolder.getSession().getNode(fileref);
+                       else
+                               fileNode = baseFolder.getNode(fileref);
+                       return fileNode;
+               } catch (RepositoryException e) {
+                       throw new JcrException(e);
+               }
        }
 
        protected Node getMediaFolder() {
        }
 
        protected Node getMediaFolder() {
index cb4ce2ef18b05c5af6f48ee44d93375140b3580e..f48c62616bdf7b36bdb70aa3deebe930c92cf968 100644 (file)
@@ -3,7 +3,7 @@ package org.argeo.docbook.ui;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.widgets.Img;
 import org.eclipse.rap.fileupload.FileUploadEvent;
 import org.eclipse.rap.fileupload.FileUploadHandler;
 import org.argeo.cms.ui.widgets.Img;
 import org.eclipse.rap.fileupload.FileUploadEvent;
 import org.eclipse.rap.fileupload.FileUploadHandler;
@@ -35,12 +35,12 @@ public class DbkImg extends Img {
 
        @Override
        protected void setContainerLayoutData(Composite composite) {
 
        @Override
        protected void setContainerLayoutData(Composite composite) {
-               composite.setLayoutData(CmsUiUtils.grabWidth(SWT.CENTER, SWT.DEFAULT));
+               composite.setLayoutData(CmsSwtUtils.grabWidth(SWT.CENTER, SWT.DEFAULT));
        }
 
        @Override
        protected void setControlLayoutData(Control control) {
        }
 
        @Override
        protected void setControlLayoutData(Control control) {
-               control.setLayoutData(CmsUiUtils.grabWidth(SWT.CENTER, SWT.DEFAULT));
+               control.setLayoutData(CmsSwtUtils.grabWidth(SWT.CENTER, SWT.DEFAULT));
        }
 
        @Override
        }
 
        @Override
index 5c3d0577d5da29b9ed168422487f7a0fe69213f0..a54dedb2369ed31a3f5440ed32e664e247aa29e4 100644 (file)
@@ -9,7 +9,8 @@ import javax.jcr.Item;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.cms.swt.CmsSwtUtils;
+import org.argeo.cms.swt.Selected;
 import org.argeo.cms.ui.viewers.NodePart;
 import org.argeo.cms.ui.viewers.Section;
 import org.argeo.cms.ui.viewers.SectionPart;
 import org.argeo.cms.ui.viewers.NodePart;
 import org.argeo.cms.ui.viewers.Section;
 import org.argeo.cms.ui.viewers.SectionPart;
@@ -17,7 +18,6 @@ import org.argeo.cms.ui.widgets.StyledControl;
 import org.argeo.docbook.DbkAttr;
 import org.argeo.docbook.DbkType;
 import org.argeo.docbook.DbkUtils;
 import org.argeo.docbook.DbkAttr;
 import org.argeo.docbook.DbkType;
 import org.argeo.docbook.DbkUtils;
-import org.argeo.eclipse.ui.Selected;
 import org.argeo.jcr.Jcr;
 import org.argeo.jcr.JcrException;
 import org.argeo.naming.NamingUtils;
 import org.argeo.jcr.Jcr;
 import org.argeo.jcr.JcrException;
 import org.argeo.naming.NamingUtils;
@@ -55,10 +55,10 @@ public class DbkVideo extends StyledControl implements SectionPart, NodePart {
        protected Control createControl(Composite box, String style) {
                Node mediaobject = getNode();
                Composite wrapper = new Composite(box, SWT.NONE);
        protected Control createControl(Composite box, String style) {
                Node mediaobject = getNode();
                Composite wrapper = new Composite(box, SWT.NONE);
-               wrapper.setLayout(CmsUiUtils.noSpaceGridLayout());
+               wrapper.setLayout(CmsSwtUtils.noSpaceGridLayout());
 
                Composite browserC = new Composite(wrapper, SWT.NONE);
 
                Composite browserC = new Composite(wrapper, SWT.NONE);
-               browserC.setLayout(CmsUiUtils.noSpaceGridLayout());
+               browserC.setLayout(CmsSwtUtils.noSpaceGridLayout());
                GridData gd = new GridData(SWT.CENTER, SWT.FILL, true, true);
                gd.widthHint = getWidth();
                gd.heightHint = getHeight();
                GridData gd = new GridData(SWT.CENTER, SWT.FILL, true, true);
                gd.widthHint = getWidth();
                gd.heightHint = getHeight();
@@ -198,7 +198,7 @@ public class DbkVideo extends StyledControl implements SectionPart, NodePart {
 
        @Override
        protected void setControlLayoutData(Control control) {
 
        @Override
        protected void setControlLayoutData(Control control) {
-               control.setLayoutData(CmsUiUtils.fillAll());
+               control.setLayoutData(CmsSwtUtils.fillAll());
        }
 
        @Override
        }
 
        @Override
index 97ce2d26636df78fd5db1925a82810e5c149aeed..f568611cf74ca10c25e2ce608c408c8cb9c5450d 100644 (file)
@@ -6,10 +6,10 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
 
 import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
 
-import org.argeo.cms.ui.CmsEditable;
+import org.argeo.api.cms.CmsEditable;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.util.CmsLink;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.util.CmsLink;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.cms.ui.viewers.JcrVersionCmsEditable;
 import org.argeo.cms.ui.widgets.ScrolledPage;
 import org.argeo.docbook.DbkType;
 import org.argeo.cms.ui.viewers.JcrVersionCmsEditable;
 import org.argeo.cms.ui.widgets.ScrolledPage;
 import org.argeo.docbook.DbkType;
@@ -28,14 +28,14 @@ public class DocumentPage implements CmsUiProvider {
        public Control createUi(Composite parent, Node context) throws RepositoryException {
 
                ScrolledPage page = new ScrolledPage(parent, SWT.NONE);
        public Control createUi(Composite parent, Node context) throws RepositoryException {
 
                ScrolledPage page = new ScrolledPage(parent, SWT.NONE);
-               page.setLayout(CmsUiUtils.noSpaceGridLayout());
-               GridData textGd = CmsUiUtils.fillAll();
+               page.setLayout(CmsSwtUtils.noSpaceGridLayout());
+               GridData textGd = CmsSwtUtils.fillAll();
                page.setLayoutData(textGd);
 
                if (context.isNodeType(DbkType.article.get())) {
                        CmsEditable cmsEditable = new JcrVersionCmsEditable(context);
                        if (cmsEditable.canEdit())
                page.setLayoutData(textGd);
 
                if (context.isNodeType(DbkType.article.get())) {
                        CmsEditable cmsEditable = new JcrVersionCmsEditable(context);
                        if (cmsEditable.canEdit())
-                               new TextEditorHeader(cmsEditable, parent, SWT.NONE).setLayoutData(CmsUiUtils.fillWidth());
+                               new TextEditorHeader(cmsEditable, parent, SWT.NONE).setLayoutData(CmsSwtUtils.fillWidth());
                        if (!cmsEditable.isEditing())
                                cmsEditable.startEditing();
                        new DocumentTextEditor(page, SWT.FLAT, context, cmsEditable);
                        if (!cmsEditable.isEditing())
                                cmsEditable.startEditing();
                        new DocumentTextEditor(page, SWT.FLAT, context, cmsEditable);
index 61c0120e5ec722fdcc9645b24e5d0058f060e6eb..9ffef2bd63f85d9c9c1707e2d1e10eccc06b437e 100644 (file)
@@ -3,8 +3,8 @@ package org.argeo.docbook.ui;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.argeo.cms.ui.CmsEditable;
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.api.cms.CmsEditable;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.docbook.DbkUtils;
 import org.argeo.docbook.DbkType;
 import org.eclipse.swt.widgets.Composite;
 import org.argeo.docbook.DbkUtils;
 import org.argeo.docbook.DbkType;
 import org.eclipse.swt.widgets.Composite;
@@ -16,7 +16,7 @@ public class DocumentTextEditor extends AbstractDbkViewer {
        public DocumentTextEditor(Composite parent, int style, Node textNode, CmsEditable cmsEditable) {
                super(new TextSection(parent, style, textNode), style, cmsEditable);
 //             refresh();
        public DocumentTextEditor(Composite parent, int style, Node textNode, CmsEditable cmsEditable) {
                super(new TextSection(parent, style, textNode), style, cmsEditable);
 //             refresh();
-               getMainSection().setLayoutData(CmsUiUtils.fillWidth());
+               getMainSection().setLayoutData(CmsSwtUtils.fillWidth());
        }
 
        @Override
        }
 
        @Override
index b173d0681e5441f479796598af55c5ae86740cc2..73140299643dc6f037b51144e551a8d2c3222f60 100644 (file)
@@ -3,7 +3,7 @@ package org.argeo.docbook.ui;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.viewers.SectionPart;
 import org.argeo.cms.ui.widgets.EditableText;
 import org.argeo.cms.ui.widgets.TextStyles;
 import org.argeo.cms.ui.viewers.SectionPart;
 import org.argeo.cms.ui.widgets.EditableText;
 import org.argeo.cms.ui.widgets.TextStyles;
@@ -20,7 +20,7 @@ public class Paragraph extends EditableText implements SectionPart {
        public Paragraph(TextSection section, int style, Node node) throws RepositoryException {
                super(section, style, node);
                this.section = section;
        public Paragraph(TextSection section, int style, Node node) throws RepositoryException {
                super(section, style, node);
                this.section = section;
-               CmsUiUtils.style(this, DbkType.para.name());
+               CmsSwtUtils.style(this, DbkType.para.name());
        }
 
        public TextSection getSection() {
        }
 
        public TextSection getSection() {
@@ -30,7 +30,7 @@ public class Paragraph extends EditableText implements SectionPart {
        @Override
        protected Label createLabel(Composite box, String style) {
                Label lbl = super.createLabel(box, style);
        @Override
        protected Label createLabel(Composite box, String style) {
                Label lbl = super.createLabel(box, style);
-               CmsUiUtils.disableMarkupValidation(lbl);
+               CmsSwtUtils.disableMarkupValidation(lbl);
                return lbl;
        }
 
                return lbl;
        }
 
index eac75f9a5cf03161c065bc2fe5d4b24eb0c89684..b430de05e8296de240d7e3ca36229dd20606e996 100644 (file)
@@ -3,8 +3,8 @@ package org.argeo.docbook.ui;
 import java.util.Observable;
 import java.util.Observer;
 
 import java.util.Observable;
 import java.util.Observer;
 
-import org.argeo.cms.ui.CmsEditable;
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.api.cms.CmsEditable;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.widgets.TextStyles;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
 import org.argeo.cms.ui.widgets.TextStyles;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
@@ -40,11 +40,11 @@ public class TextEditorHeader implements SelectionListener, Observer {
                        display = new Composite(parent, SWT.NONE);
                        // display.setBackgroundMode(SWT.INHERIT_NONE);
                        display.setLayoutData(layoutData);
                        display = new Composite(parent, SWT.NONE);
                        // display.setBackgroundMode(SWT.INHERIT_NONE);
                        display.setLayoutData(layoutData);
-                       display.setLayout(CmsUiUtils.noSpaceGridLayout());
-                       CmsUiUtils.style(display, TextStyles.TEXT_EDITOR_HEADER);
+                       display.setLayout(CmsSwtUtils.noSpaceGridLayout());
+                       CmsSwtUtils.style(display, TextStyles.TEXT_EDITOR_HEADER);
                        publish = new Button(display, SWT.FLAT | SWT.PUSH);
                        publish.setText(getPublishButtonLabel());
                        publish = new Button(display, SWT.FLAT | SWT.PUSH);
                        publish.setText(getPublishButtonLabel());
-                       CmsUiUtils.style(publish, TextStyles.TEXT_EDITOR_HEADER);
+                       CmsSwtUtils.style(publish, TextStyles.TEXT_EDITOR_HEADER);
                        publish.addSelectionListener(this);
                        display.moveAbove(null);
                }
                        publish.addSelectionListener(this);
                        display.moveAbove(null);
                }
index 76ba661c3fd00461c962f023bd19fe7cff7f9c5d..b8c82d76b5f956eed312b61ec81d01a72acf39dd 100644 (file)
@@ -2,7 +2,7 @@ package org.argeo.docbook.ui;
 
 import javax.jcr.Node;
 
 
 import javax.jcr.Node;
 
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.viewers.EditablePart;
 import org.argeo.cms.ui.viewers.Section;
 import org.argeo.cms.ui.widgets.TextStyles;
 import org.argeo.cms.ui.viewers.EditablePart;
 import org.argeo.cms.ui.viewers.Section;
 import org.argeo.cms.ui.widgets.TextStyles;
@@ -39,7 +39,7 @@ public class TextSection extends Section {
                } else {
                        level = 0;
                }
                } else {
                        level = 0;
                }
-               CmsUiUtils.style(this, DbkType.section.name());
+               CmsSwtUtils.style(this, DbkType.section.name());
        }
 
        public String getDefaultTextStyle() {
        }
 
        public String getDefaultTextStyle() {
index e892562bbcfb0f7eb542f3575504ca57a99af015..c236e93b378173012e0f7d82cb1e70a5e5649f09 100644 (file)
@@ -35,8 +35,8 @@ import javax.xml.transform.stream.StreamSource;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.xalan.processor.TransformerFactoryImpl;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.xalan.processor.TransformerFactoryImpl;
+import org.argeo.api.cms.CmsTheme;
 import org.argeo.cms.servlet.ServletAuthUtils;
 import org.argeo.cms.servlet.ServletAuthUtils;
-import org.argeo.cms.ui.CmsTheme;
 import org.argeo.docbook.DbkType;
 import org.argeo.docbook.DbkUtils;
 import org.argeo.jcr.Jcr;
 import org.argeo.docbook.DbkType;
 import org.argeo.docbook.DbkUtils;
 import org.argeo.jcr.Jcr;
index 5bc6d0cc642d1536c55a235a810314bff151624d..aa116f5851543d778f5741fc57d533abab0c7d17 100644 (file)
@@ -12,7 +12,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.io.IOUtils;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.io.IOUtils;
-import org.argeo.cms.ui.CmsTheme;
+import org.argeo.api.cms.CmsTheme;
 
 /** Serves fonts locally. */
 public class FontsServlet extends HttpServlet {
 
 /** Serves fonts locally. */
 public class FontsServlet extends HttpServlet {
index 9830d7c7a5a054913de7e756347a5813e7a30943..bd331ce1705e11686662e4370bb2021fcb062c5c 100644 (file)
@@ -4,9 +4,10 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.NodeType;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.NodeType;
 
-import org.argeo.cms.ui.CmsEditable;
+import org.argeo.api.cms.CmsEditable;
+import org.argeo.api.cms.CmsView;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.CmsView;
 import org.argeo.cms.ui.util.CmsLink;
 import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.cms.ui.viewers.JcrVersionCmsEditable;
 import org.argeo.cms.ui.util.CmsLink;
 import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.cms.ui.viewers.JcrVersionCmsEditable;
@@ -23,19 +24,19 @@ public class DocumentUiProvider implements CmsUiProvider {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
-               CmsView cmsView = CmsView.getCmsView(parent);
+               CmsView cmsView = CmsSwtUtils.getCmsView(parent);
                CmsEditable cmsEditable = new JcrVersionCmsEditable(context);
                if (context.hasNode(DbkType.article.get())) {
                        Node textNode = context.getNode(DbkType.article.get());
                        // Title
                CmsEditable cmsEditable = new JcrVersionCmsEditable(context);
                if (context.hasNode(DbkType.article.get())) {
                        Node textNode = context.getNode(DbkType.article.get());
                        // Title
-                       parent.setLayout(CmsUiUtils.noSpaceGridLayout());
+                       parent.setLayout(CmsSwtUtils.noSpaceGridLayout());
 
                        CmsLink toHtml = new CmsLink("To HTML", "/html/dbk" + context.getPath()+"/index.html");
                        toHtml.createUiPart(parent, context);
 
                        ScrolledPage page = new ScrolledPage(parent, SWT.NONE);
 
                        CmsLink toHtml = new CmsLink("To HTML", "/html/dbk" + context.getPath()+"/index.html");
                        toHtml.createUiPart(parent, context);
 
                        ScrolledPage page = new ScrolledPage(parent, SWT.NONE);
-                       page.setLayoutData(CmsUiUtils.fillAll());
-                       page.setLayout(CmsUiUtils.noSpaceGridLayout());
+                       page.setLayoutData(CmsSwtUtils.fillAll());
+                       page.setLayout(CmsSwtUtils.noSpaceGridLayout());
 
                        cmsView.runAs(() -> {
                                AbstractDbkViewer dbkEditor = new DocumentTextEditor(page, SWT.NONE, textNode, cmsEditable);
 
                        cmsView.runAs(() -> {
                                AbstractDbkViewer dbkEditor = new DocumentTextEditor(page, SWT.NONE, textNode, cmsEditable);
@@ -49,7 +50,7 @@ public class DocumentUiProvider implements CmsUiProvider {
                                Browser browser = new Browser(parent, SWT.NONE);
                                String dataPath = CmsUiUtils.getDataPath(context);
                                browser.setUrl(dataPath);
                                Browser browser = new Browser(parent, SWT.NONE);
                                String dataPath = CmsUiUtils.getDataPath(context);
                                browser.setUrl(dataPath);
-                               browser.setLayoutData(CmsUiUtils.fillAll());
+                               browser.setLayoutData(CmsSwtUtils.fillAll());
                                return browser;
                        }
                }
                                return browser;
                        }
                }
index 705eb96facadc4a415211beffa0e83135dc79695..15520e0149f0a4a3af947a20456c44ba277e2c27 100644 (file)
@@ -8,14 +8,15 @@ import java.util.Map;
 import java.util.Set;
 
 import javax.jcr.Node;
 import java.util.Set;
 
 import javax.jcr.Node;
+import javax.jcr.Repository;
 import javax.jcr.Session;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 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.CmsApp;
+import org.argeo.api.cms.CmsApp;
+import org.argeo.api.cms.CmsUi;
+import org.argeo.cms.AbstractCmsApp;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.docbook.ui.DocumentPage;
 import org.argeo.jcr.Jcr;
 import org.argeo.suite.ui.SuiteApp;
 import org.argeo.util.LangUtils;
 import org.argeo.jcr.Jcr;
 import org.argeo.suite.ui.SuiteApp;
 import org.argeo.util.LangUtils;
@@ -42,6 +43,8 @@ public class PublishingApp extends AbstractCmsApp implements EventHandler {
        private CmsUiProvider landingPage;
        private CmsUiProvider defaultProvider = new DocumentUiProvider();
 
        private CmsUiProvider landingPage;
        private CmsUiProvider defaultProvider = new DocumentUiProvider();
 
+       private Repository repository;
+
        public void init(Map<String, String> properties) {
                if (properties.containsKey(DEFAULT_UI_NAME_PROPERTY))
                        defaultUiName = LangUtils.get(properties, DEFAULT_UI_NAME_PROPERTY);
        public void init(Map<String, String> properties) {
                if (properties.containsKey(DEFAULT_UI_NAME_PROPERTY))
                        defaultUiName = LangUtils.get(properties, DEFAULT_UI_NAME_PROPERTY);
@@ -68,7 +71,8 @@ public class PublishingApp extends AbstractCmsApp implements EventHandler {
        }
 
        @Override
        }
 
        @Override
-       public Composite initUi(Composite parent) {
+       public CmsUi initUi(Object uiParent) {
+               Composite parent = (Composite) uiParent;
 //             Session adminSession = NodeUtils.openDataAdminSession(getRepository(), null);
                Session session = Jcr.login(getRepository(), null);
                parent.setLayout(new GridLayout());
 //             Session adminSession = NodeUtils.openDataAdminSession(getRepository(), null);
                Session session = Jcr.login(getRepository(), null);
                parent.setLayout(new GridLayout());
@@ -86,11 +90,12 @@ public class PublishingApp extends AbstractCmsApp implements EventHandler {
                } else {
                        page = defaultProvider.createUiPart(parent, indexNode);
                }
                } else {
                        page = defaultProvider.createUiPart(parent, indexNode);
                }
-               return (Composite) page;
+               return (CmsUi) page;
        }
 
        @Override
        }
 
        @Override
-       public void refreshUi(Composite parent, String state) {
+       public void refreshUi(CmsUi cmsUi, String state) {
+               Composite parent = (Composite) cmsUi;
                parent.setLayout(new GridLayout());
                if (landingPage != null)
                        landingPage.createUiPart(parent, null);
                parent.setLayout(new GridLayout());
                if (landingPage != null)
                        landingPage.createUiPart(parent, null);
@@ -99,7 +104,7 @@ public class PublishingApp extends AbstractCmsApp implements EventHandler {
        }
 
        @Override
        }
 
        @Override
-       public void setState(Composite parent, String state) {
+       public void setState(CmsUi cmsUi, String state) {
 
        }
 
 
        }
 
@@ -118,4 +123,12 @@ public class PublishingApp extends AbstractCmsApp implements EventHandler {
 
        }
 
 
        }
 
+       public Repository getRepository() {
+               return repository;
+       }
+
+       public void setRepository(Repository repository) {
+               this.repository = repository;
+       }
+
 }
 }
index 3250c70029cd9675dec55dd856faf7deebef10e0..199d726e1d100e856ca80c3f3b498deda6373cf4 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.publishing.ui;
 
 package org.argeo.publishing.ui;
 
-import org.argeo.cms.ui.util.CmsStyle;
+import org.argeo.api.cms.CmsStyle;
 
 /** Publishing styles. */
 public enum PublishingStyle implements CmsStyle {
 
 /** Publishing styles. */
 public enum PublishingStyle implements CmsStyle {
index 93f3b148c085d3ba1ba0c3dbe54e29d64aa597d4..e67339182e34ba818ef293d99d5ac44b97894f3e 100644 (file)
@@ -12,7 +12,7 @@ import javax.naming.ldap.LdapName;
 import javax.security.auth.x500.X500Principal;
 
 import org.argeo.api.NodeConstants;
 import javax.security.auth.x500.X500Principal;
 
 import org.argeo.api.NodeConstants;
-import org.argeo.cms.auth.CmsSession;
+import org.argeo.api.cms.CmsSession;
 import org.argeo.entity.EntityType;
 import org.argeo.jackrabbit.security.JackrabbitSecurityUtils;
 import org.argeo.jcr.JcrException;
 import org.argeo.entity.EntityType;
 import org.argeo.jackrabbit.security.JackrabbitSecurityUtils;
 import org.argeo.jcr.JcrException;
index 66b8c447ca3b330088742e0a88a15e3c1582f755..06df08ecad58b7de611ae43501106cfc4ace9326 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" deactivate="destroy" name="Argeo Suite Default Theme">
 <?xml version="1.0" encoding="UTF-8"?>
 <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.ui.util.BundleCmsTheme"/>
+   <implementation class="org.argeo.cms.swt.osgi.BundleCmsSwtTheme"/>
    <service>
    <service>
-      <provide interface="org.argeo.cms.ui.CmsTheme"/>
+      <provide interface="org.argeo.api.cms.CmsTheme"/>
    </service>
 </scr:component>
    </service>
 </scr:component>
index 6c4a97c1560899d6ed25fc587ee6b246d98a431f..21883fda08bea76c13d13ac427be6231a6d8f3a7 100644 (file)
@@ -2,5 +2,5 @@ Service-Component:\
 OSGI-INF/cmsTheme.xml
 
 Import-Package:\
 OSGI-INF/cmsTheme.xml
 
 Import-Package:\
-org.argeo.cms.ui.util,\
+org.argeo.cms.swt.osgi,\
 *
\ No newline at end of file
 *
\ No newline at end of file
index 4dfdcff3a3946705b87a762044e589c912cd414d..4f807c1798a9776a54323dd3f5a780e0e59206c0 100644 (file)
@@ -2,6 +2,6 @@
 <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" deactivate="destroy" name="Argeo Suite Web App">
    <implementation class="org.argeo.cms.web.CmsWebApp"/>
    <property name="contextName" type="String" value="argeo"/>
 <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" deactivate="destroy" name="Argeo Suite Web App">
    <implementation class="org.argeo.cms.web.CmsWebApp"/>
    <property name="contextName" type="String" value="argeo"/>
-   <reference bind="setCmsApp" cardinality="1..1" interface="org.argeo.cms.ui.CmsApp" name="CmsApp" policy="dynamic" target="(service.pid=argeo.suite.ui.app)" unbind="unsetCmsApp"/>
+   <reference bind="setCmsApp" cardinality="1..1" interface="org.argeo.api.cms.CmsApp" name="CmsApp" policy="dynamic" target="(service.pid=argeo.suite.ui.app)" unbind="unsetCmsApp"/>
    <reference bind="setEventAdmin" cardinality="1..1" interface="org.osgi.service.event.EventAdmin" name="EventAdmin" policy="static"/>
 </scr:component>
    <reference bind="setEventAdmin" cardinality="1..1" interface="org.osgi.service.event.EventAdmin" name="EventAdmin" policy="static"/>
 </scr:component>
index e42eeeb367e0861c15dd0707e08b1d724add8098..bfb372a6456ed1bf91ee8dd363888d2c28ca78a5 100644 (file)
@@ -2,12 +2,12 @@
 <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" deactivate="destroy" name="Argeo Suite App">
    <implementation class="org.argeo.suite.ui.SuiteApp"/>
    <service>
 <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="init" deactivate="destroy" name="Argeo Suite App">
    <implementation class="org.argeo.suite.ui.SuiteApp"/>
    <service>
-      <provide interface="org.argeo.cms.ui.CmsApp"/>
+      <provide interface="org.argeo.api.cms.CmsApp"/>
       <provide interface="org.osgi.service.event.EventHandler"/>
    </service>
    <properties entry="config/cmsApp.properties"/>
    <reference bind="addUiProvider" cardinality="0..n" interface="org.argeo.cms.ui.CmsUiProvider" name="CmsUiProvider" policy="dynamic" unbind="removeUiProvider"/>
       <provide interface="org.osgi.service.event.EventHandler"/>
    </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.cms.ui.CmsTheme" name="CmsTheme" policy="dynamic" unbind="removeTheme"/>
+   <reference bind="addTheme" cardinality="1..n" interface="org.argeo.api.cms.CmsTheme" name="CmsTheme" policy="dynamic" unbind="removeTheme"/>
    <reference bind="setRepository" cardinality="1..1" interface="javax.jcr.Repository" name="Repository" policy="dynamic" target="(cn=ego)"/>
    <reference bind="addLayer" cardinality="1..n" interface="org.argeo.suite.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="setRepository" cardinality="1..1" interface="javax.jcr.Repository" name="Repository" policy="dynamic" target="(cn=ego)"/>
    <reference bind="addLayer" cardinality="1..n" interface="org.argeo.suite.ui.SuiteLayer" name="SuiteLayer" policy="dynamic" unbind="removeLayer"/>
    <reference bind="setCmsUserManager" cardinality="1..1" interface="org.argeo.cms.CmsUserManager" name="CmsUserManager" policy="static"/>
index 9835b677833b190f3cd3e346670fa79b46f9776c..80069d5b2af6e55c4d17a07eb5007108002ccdca 100644 (file)
@@ -3,9 +3,10 @@ package org.argeo.suite.ui;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
+import org.argeo.api.cms.CmsView;
 import org.argeo.cms.auth.CurrentUser;
 import org.argeo.cms.auth.CurrentUser;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 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.SWT;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
@@ -18,7 +19,7 @@ public class DefaultDashboard implements CmsUiProvider {
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
                parent.setLayout(new GridLayout());
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
                parent.setLayout(new GridLayout());
-               CmsView cmsView = CmsView.getCmsView(parent);
+               CmsView cmsView = CmsSwtUtils.getCmsView(parent);
                if (cmsView.isAnonymous())
                        throw new IllegalStateException("No user is not logged in");
 
                if (cmsView.isAnonymous())
                        throw new IllegalStateException("No user is not logged in");
 
index 89458552c8916ac8a2e9ff85c514bffcdcf31f1e..b36778c2caf02a3e88961c34dc99f245f22dc302 100644 (file)
@@ -7,10 +7,10 @@ import java.util.Map;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
+import org.argeo.api.cms.CmsTheme;
 import org.argeo.cms.Localized;
 import org.argeo.cms.Localized;
-import org.argeo.cms.ui.CmsTheme;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.jcr.JcrException;
 import org.argeo.suite.ui.widgets.TabbedArea;
 import org.argeo.util.LangUtils;
 import org.argeo.jcr.JcrException;
 import org.argeo.suite.ui.widgets.TabbedArea;
 import org.argeo.util.LangUtils;
@@ -40,7 +40,7 @@ public class DefaultEditionLayer implements SuiteLayer {
                        if (fixedEntryArea) {
                                FixedEditionArea editionArea = new FixedEditionArea(parent, parent.getStyle());
                                Control entryAreaC = entryArea.createUi(editionArea.getEntryArea(), context);
                        if (fixedEntryArea) {
                                FixedEditionArea editionArea = new FixedEditionArea(parent, parent.getStyle());
                                Control entryAreaC = entryArea.createUi(editionArea.getEntryArea(), context);
-                               CmsUiUtils.style(entryAreaC, SuiteStyle.entryArea);
+                               CmsSwtUtils.style(entryAreaC, SuiteStyle.entryArea);
                                if (this.defaultView != null) {
                                        editionArea.getTabbedArea().view(defaultView, context);
                                }
                                if (this.defaultView != null) {
                                        editionArea.getTabbedArea().view(defaultView, context);
                                }
@@ -59,7 +59,7 @@ public class DefaultEditionLayer implements SuiteLayer {
                                this.workArea.createUi(area, context);
                                return area;
                        }
                                this.workArea.createUi(area, context);
                                return area;
                        }
-                       CmsTheme theme = CmsTheme.getCmsTheme(parent);
+                       CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
                        TabbedArea tabbedArea = createTabbedArea(parent, theme);
                        return tabbedArea;
                }
                        TabbedArea tabbedArea = createTabbedArea(parent, theme);
                        return tabbedArea;
                }
@@ -69,7 +69,7 @@ public class DefaultEditionLayer implements SuiteLayer {
        public void view(CmsUiProvider uiProvider, Composite workAreaC, Node context) {
                if (workArea != null) {
                        try {
        public void view(CmsUiProvider uiProvider, Composite workAreaC, Node context) {
                if (workArea != null) {
                        try {
-                               CmsUiUtils.clear(workAreaC);
+                               CmsSwtUtils.clear(workAreaC);
                                workArea.createUi(workAreaC, context);
                                workAreaC.layout(true, true);
                                return;
                                workArea.createUi(workAreaC, context);
                                workAreaC.layout(true, true);
                                return;
@@ -183,7 +183,7 @@ public class DefaultEditionLayer implements SuiteLayer {
                tabbedArea.setTabStyle(SuiteStyle.mainTab.style());
                tabbedArea.setTabSelectedStyle(SuiteStyle.mainTabSelected.style());
                tabbedArea.setCloseIcon(SuiteIcon.close.getSmallIcon(theme));
                tabbedArea.setTabStyle(SuiteStyle.mainTab.style());
                tabbedArea.setTabSelectedStyle(SuiteStyle.mainTabSelected.style());
                tabbedArea.setCloseIcon(SuiteIcon.close.getSmallIcon(theme));
-               tabbedArea.setLayoutData(CmsUiUtils.fillAll());
+               tabbedArea.setLayoutData(CmsSwtUtils.fillAll());
                return tabbedArea;
        }
 
                return tabbedArea;
        }
 
@@ -195,7 +195,7 @@ public class DefaultEditionLayer implements SuiteLayer {
 
                SashFormEditionArea(Composite parent, int style) {
                        super(parent, SWT.HORIZONTAL);
 
                SashFormEditionArea(Composite parent, int style) {
                        super(parent, SWT.HORIZONTAL);
-                       CmsTheme theme = CmsTheme.getCmsTheme(parent);
+                       CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
 
                        Composite editorC;
                        if (SWT.RIGHT_TO_LEFT == (style & SWT.RIGHT_TO_LEFT)) {// arabic, hebrew, etc.
 
                        Composite editorC;
                        if (SWT.RIGHT_TO_LEFT == (style & SWT.RIGHT_TO_LEFT)) {// arabic, hebrew, etc.
@@ -220,7 +220,7 @@ public class DefaultEditionLayer implements SuiteLayer {
                        if (startMaximized)
                                setMaximizedControl(editorC);
 
                        if (startMaximized)
                                setMaximizedControl(editorC);
 
-                       GridLayout editorAreaLayout = CmsUiUtils.noSpaceGridLayout();
+                       GridLayout editorAreaLayout = CmsSwtUtils.noSpaceGridLayout();
 //                     editorAreaLayout.verticalSpacing = 0;
 //                     editorAreaLayout.marginBottom = 0;
 //                     editorAreaLayout.marginHeight = 0;
 //                     editorAreaLayout.verticalSpacing = 0;
 //                     editorAreaLayout.marginBottom = 0;
 //                     editorAreaLayout.marginHeight = 0;
@@ -248,9 +248,9 @@ public class DefaultEditionLayer implements SuiteLayer {
 
                public FixedEditionArea(Composite parent, int style) {
                        super(parent, style);
 
                public FixedEditionArea(Composite parent, int style) {
                        super(parent, style);
-                       CmsTheme theme = CmsTheme.getCmsTheme(parent);
+                       CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
 
 
-                       setLayout(CmsUiUtils.noSpaceGridLayout(2));
+                       setLayout(CmsSwtUtils.noSpaceGridLayout(2));
 
                        Composite editorC;
                        if (SWT.RIGHT_TO_LEFT == (style & SWT.RIGHT_TO_LEFT)) {// arabic, hebrew, etc.
 
                        Composite editorC;
                        if (SWT.RIGHT_TO_LEFT == (style & SWT.RIGHT_TO_LEFT)) {// arabic, hebrew, etc.
@@ -260,16 +260,16 @@ public class DefaultEditionLayer implements SuiteLayer {
                                entryC = new Composite(this, SWT.NONE);
                                editorC = new Composite(this, SWT.NONE);
                        }
                                entryC = new Composite(this, SWT.NONE);
                                editorC = new Composite(this, SWT.NONE);
                        }
-                       entryC.setLayoutData(CmsUiUtils.fillHeight());
+                       entryC.setLayoutData(CmsSwtUtils.fillHeight());
 
 
-                       GridLayout editorAreaLayout = CmsUiUtils.noSpaceGridLayout();
+                       GridLayout editorAreaLayout = CmsSwtUtils.noSpaceGridLayout();
 //                     editorAreaLayout.verticalSpacing = 0;
 //                     editorAreaLayout.marginBottom = 0;
 //                     editorAreaLayout.marginHeight = 0;
 //                     editorAreaLayout.marginLeft = 0;
 //                     editorAreaLayout.marginRight = 0;
                        editorC.setLayout(editorAreaLayout);
 //                     editorAreaLayout.verticalSpacing = 0;
 //                     editorAreaLayout.marginBottom = 0;
 //                     editorAreaLayout.marginHeight = 0;
 //                     editorAreaLayout.marginLeft = 0;
 //                     editorAreaLayout.marginRight = 0;
                        editorC.setLayout(editorAreaLayout);
-                       editorC.setLayoutData(CmsUiUtils.fillAll());
+                       editorC.setLayoutData(CmsSwtUtils.fillAll());
 
                        tabbedArea = createTabbedArea(editorC, theme);
                }
 
                        tabbedArea = createTabbedArea(editorC, theme);
                }
index 4ab5474e35c3a4d67320df8d3306852cfdfa3895..9739f29dff96f9e1f413243bcebfbc6893656687 100644 (file)
@@ -5,8 +5,8 @@ import java.util.Map;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
@@ -17,7 +17,7 @@ import org.osgi.framework.BundleContext;
 public class DefaultFooter implements CmsUiProvider {
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
 public class DefaultFooter implements CmsUiProvider {
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
-               parent.setLayout(CmsUiUtils.noSpaceGridLayout());
+               parent.setLayout(CmsSwtUtils.noSpaceGridLayout());
                Composite content = new Composite(parent, SWT.NONE);
                content.setLayoutData(new GridData(0, 0));
                Control contentControl = createContent(content, context);
                Composite content = new Composite(parent, SWT.NONE);
                content.setLayoutData(new GridData(0, 0));
                Control contentControl = createContent(content, context);
index 91154c3b9f7f09b7ca2ac936c56e28c58ac2cabe..fd8be4ed1b8cabaf22fdf95a151974ae477d0d85 100644 (file)
@@ -5,12 +5,12 @@ import java.util.Map;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
+import org.argeo.api.cms.CmsTheme;
+import org.argeo.api.cms.CmsView;
 import org.argeo.cms.Localized;
 import org.argeo.cms.auth.CurrentUser;
 import org.argeo.cms.Localized;
 import org.argeo.cms.auth.CurrentUser;
-import org.argeo.cms.ui.CmsTheme;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.CmsView;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
@@ -30,14 +30,14 @@ public class DefaultHeader implements CmsUiProvider {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
-               CmsView cmsView = CmsView.getCmsView(parent);
-               CmsTheme theme = CmsTheme.getCmsTheme(parent);
+               CmsView cmsView = CmsSwtUtils.getCmsView(parent);
+               CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
 
 
-               parent.setLayout(CmsUiUtils.noSpaceGridLayout(new GridLayout(3, true)));
+               parent.setLayout(CmsSwtUtils.noSpaceGridLayout(new GridLayout(3, true)));
 
                // TODO right to left
                Composite lead = new Composite(parent, SWT.NONE);
 
                // TODO right to left
                Composite lead = new Composite(parent, SWT.NONE);
-               CmsUiUtils.style(lead, SuiteStyle.header);
+               CmsSwtUtils.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);
                lead.setLayoutData(new GridData(SWT.LEAD, SWT.CENTER, true, false));
                lead.setLayout(new GridLayout());
                Label lbl = new Label(lead, SWT.NONE);
@@ -46,22 +46,22 @@ public class DefaultHeader implements CmsUiProvider {
 //             lbl.setText(LocaleUtils.isLocaleKey(title) ? LocaleUtils.local(title, getClass().getClassLoader()).toString()
 //                             : title);
                lbl.setText(title.lead());
 //             lbl.setText(LocaleUtils.isLocaleKey(title) ? LocaleUtils.local(title, getClass().getClassLoader()).toString()
 //                             : title);
                lbl.setText(title.lead());
-               CmsUiUtils.style(lbl, SuiteStyle.headerTitle);
-               lbl.setLayoutData(CmsUiUtils.fillWidth());
+               CmsSwtUtils.style(lbl, SuiteStyle.headerTitle);
+               lbl.setLayoutData(CmsSwtUtils.fillWidth());
 
                Composite middle = new Composite(parent, SWT.NONE);
 
                Composite middle = new Composite(parent, SWT.NONE);
-               CmsUiUtils.style(middle, SuiteStyle.header);
+               CmsSwtUtils.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);
                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);
+               CmsSwtUtils.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);
                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);
+                       CmsSwtUtils.style(userL, SuiteStyle.header);
                        userL.setText(CurrentUser.getDisplayName());
                        Button logoutB = new Button(end, SWT.FLAT);
 //                     CmsUiUtils.style(logoutB, SuiteStyle.header);
                        userL.setText(CurrentUser.getDisplayName());
                        Button logoutB = new Button(end, SWT.FLAT);
 //                     CmsUiUtils.style(logoutB, SuiteStyle.header);
index 46de1770abf67a9eeebab2b61a830f743941f071..fb0d19df6d1129b3fe5c623f6a8c2ce3bda6e73d 100644 (file)
@@ -14,11 +14,11 @@ import javax.jcr.RepositoryException;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.argeo.api.cms.CmsView;
 import org.argeo.cms.Localized;
 import org.argeo.cms.auth.CurrentUser;
 import org.argeo.cms.Localized;
 import org.argeo.cms.auth.CurrentUser;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.CmsView;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.suite.RankedObject;
 import org.argeo.suite.SuiteUtils;
 import org.eclipse.swt.SWT;
 import org.argeo.suite.RankedObject;
 import org.argeo.suite.SuiteUtils;
 import org.eclipse.swt.SWT;
@@ -47,10 +47,10 @@ public class DefaultLeadPane implements CmsUiProvider {
 
        @Override
        public Control createUi(Composite parent, Node node) throws RepositoryException {
 
        @Override
        public Control createUi(Composite parent, Node node) throws RepositoryException {
-               CmsView cmsView = CmsView.getCmsView(parent);
-               parent.setLayout(CmsUiUtils.noSpaceGridLayout());
+               CmsView cmsView = CmsSwtUtils.getCmsView(parent);
+               parent.setLayout(CmsSwtUtils.noSpaceGridLayout());
                Composite appLayersC = new Composite(parent, SWT.NONE);
                Composite appLayersC = new Composite(parent, SWT.NONE);
-               CmsUiUtils.style(appLayersC, SuiteStyle.leadPane);
+               CmsSwtUtils.style(appLayersC, SuiteStyle.leadPane);
                GridLayout layout = new GridLayout();
                layout.verticalSpacing = 10;
                layout.marginTop = 10;
                GridLayout layout = new GridLayout();
                layout.verticalSpacing = 10;
                layout.marginTop = 10;
@@ -62,7 +62,7 @@ public class DefaultLeadPane implements CmsUiProvider {
                Composite adminLayersC;
                if (!adminLayers.isEmpty()) {
                        adminLayersC = new Composite(parent, SWT.NONE);
                Composite adminLayersC;
                if (!adminLayers.isEmpty()) {
                        adminLayersC = new Composite(parent, SWT.NONE);
-                       CmsUiUtils.style(adminLayersC, SuiteStyle.leadPane);
+                       CmsSwtUtils.style(adminLayersC, SuiteStyle.leadPane);
                        GridLayout adminLayout = new GridLayout();
                        adminLayout.verticalSpacing = 10;
                        adminLayout.marginBottom = 10;
                        GridLayout adminLayout = new GridLayout();
                        adminLayout.verticalSpacing = 10;
                        adminLayout.marginBottom = 10;
index 3757a19a22acfebe4076c300f53c05e0b137701c..a44acf99d10d5c404bcd0ab05a34e265ea954755 100644 (file)
@@ -3,10 +3,11 @@ package org.argeo.suite.ui;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
+import org.argeo.api.cms.CmsView;
 import org.argeo.cms.auth.CurrentUser;
 import org.argeo.cms.auth.CurrentUser;
+import org.argeo.cms.swt.CmsSwtUtils;
+import org.argeo.cms.swt.auth.CmsLogin;
 import org.argeo.cms.ui.CmsUiProvider;
 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.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
@@ -18,7 +19,7 @@ public class DefaultLoginScreen implements CmsUiProvider {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
-               CmsView cmsView = CmsView.getCmsView(parent);
+               CmsView cmsView = CmsSwtUtils.getCmsView(parent);
                if (!cmsView.isAnonymous())
                        throw new IllegalStateException(CurrentUser.getUsername() + " is already logged in");
 
                if (!cmsView.isAnonymous())
                        throw new IllegalStateException(CurrentUser.getUsername() + " is already logged in");
 
index b9aa5b721784ecc309dcd943ff2a495d4eb94fe8..66f2dc5b05e1d169fb17c11c5163458ca05b5c04 100644 (file)
@@ -15,10 +15,9 @@ import javax.jcr.observation.EventListener;
 import javax.jcr.query.Query;
 import javax.jcr.query.QueryResult;
 
 import javax.jcr.query.Query;
 import javax.jcr.query.QueryResult;
 
-import org.argeo.cms.ui.CmsTheme;
+import org.argeo.api.cms.CmsTheme;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.CmsView;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.entity.EntityType;
 import org.argeo.jcr.Jcr;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.entity.EntityType;
 import org.argeo.jcr.Jcr;
@@ -66,7 +65,7 @@ public class RecentItems implements CmsUiProvider {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
 
        @Override
        public Control createUi(Composite parent, Node context) throws RepositoryException {
-               theme = CmsTheme.getCmsTheme(parent);
+               theme = CmsSwtUtils.getCmsTheme(parent);
                parent.setLayout(new GridLayout());
 //             parent.setLayout(CmsUiUtils.noSpaceGridLayout());
                parent.setLayout(new GridLayout());
                parent.setLayout(new GridLayout());
 //             parent.setLayout(CmsUiUtils.noSpaceGridLayout());
                parent.setLayout(new GridLayout());
@@ -89,11 +88,11 @@ public class RecentItems implements CmsUiProvider {
                        return null;
                SingleEntityViewer entityViewer = new SingleEntityViewer(parent, SWT.NONE, context.getSession());
                entityViewer.createUi();
                        return null;
                SingleEntityViewer entityViewer = new SingleEntityViewer(parent, SWT.NONE, context.getSession());
                entityViewer.createUi();
-               entityViewer.getViewer().getTable().setLayoutData(CmsUiUtils.fillAll());
+               entityViewer.getViewer().getTable().setLayoutData(CmsSwtUtils.fillAll());
 
                Composite bottom = new Composite(parent, SWT.NONE);
 
                Composite bottom = new Composite(parent, SWT.NONE);
-               bottom.setLayoutData(CmsUiUtils.fillWidth());
-               bottom.setLayout(CmsUiUtils.noSpaceGridLayout());
+               bottom.setLayoutData(CmsSwtUtils.fillWidth());
+               bottom.setLayout(CmsSwtUtils.noSpaceGridLayout());
                ToolBar bottomToolBar = new ToolBar(bottom, SWT.NONE);
                bottomToolBar.setLayoutData(new GridData(SWT.END, SWT.FILL, true, false));
                ToolItem deleteItem = new ToolItem(bottomToolBar, SWT.FLAT);
                ToolBar bottomToolBar = new ToolBar(bottom, SWT.NONE);
                bottomToolBar.setLayoutData(new GridData(SWT.END, SWT.FILL, true, false));
                ToolItem deleteItem = new ToolItem(bottomToolBar, SWT.FLAT);
@@ -108,7 +107,7 @@ public class RecentItems implements CmsUiProvider {
                        public void doubleClick(DoubleClickEvent event) {
                                Node node = (Node) entityViewer.getViewer().getStructuredSelection().getFirstElement();
                                if (node != null)
                        public void doubleClick(DoubleClickEvent event) {
                                Node node = (Node) entityViewer.getViewer().getStructuredSelection().getFirstElement();
                                if (node != null)
-                                       CmsView.getCmsView(parent).sendEvent(SuiteEvent.openNewPart.topic(),
+                                       CmsSwtUtils.getCmsView(parent).sendEvent(SuiteEvent.openNewPart.topic(),
                                                        SuiteEvent.eventProperties(node));
 
                        }
                                                        SuiteEvent.eventProperties(node));
 
                        }
@@ -117,7 +116,7 @@ public class RecentItems implements CmsUiProvider {
                        public void selectionChanged(SelectionChangedEvent event) {
                                Node node = (Node) entityViewer.getViewer().getStructuredSelection().getFirstElement();
                                if (node != null) {
                        public void selectionChanged(SelectionChangedEvent event) {
                                Node node = (Node) entityViewer.getViewer().getStructuredSelection().getFirstElement();
                                if (node != null) {
-                                       CmsView.getCmsView(parent).sendEvent(SuiteEvent.refreshPart.topic(),
+                                       CmsSwtUtils.getCmsView(parent).sendEvent(SuiteEvent.refreshPart.topic(),
                                                        SuiteEvent.eventProperties(node));
                                        deleteItem.setEnabled(true);
                                } else {
                                                        SuiteEvent.eventProperties(node));
                                        deleteItem.setEnabled(true);
                                } else {
index d766a9a6a91a0a3a55de2601686619d9cabdbcc9..8eb9ef4ebfa71aa4f80f5749b744afb408f6e508 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.suite.ui;
 
 package org.argeo.suite.ui;
 
-import static org.argeo.cms.ui.CmsView.CMS_VIEW_UID_PROPERTY;
+import static org.argeo.api.cms.CmsView.CMS_VIEW_UID_PROPERTY;
 
 import java.util.Collections;
 import java.util.HashMap;
 
 import java.util.Collections;
 import java.util.HashMap;
@@ -14,6 +14,7 @@ import java.util.TreeMap;
 import java.util.TreeSet;
 
 import javax.jcr.Node;
 import java.util.TreeSet;
 
 import javax.jcr.Node;
+import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
@@ -22,17 +23,18 @@ import javax.naming.ldap.LdapName;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+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.cms.AbstractCmsApp;
 import org.argeo.cms.CmsUserManager;
 import org.argeo.cms.LocaleUtils;
 import org.argeo.cms.Localized;
 import org.argeo.cms.CmsUserManager;
 import org.argeo.cms.LocaleUtils;
 import org.argeo.cms.Localized;
-import org.argeo.cms.auth.CmsSession;
 import org.argeo.cms.jcr.CmsJcrUtils;
 import org.argeo.cms.jcr.CmsJcrUtils;
-import org.argeo.cms.ui.AbstractCmsApp;
-import org.argeo.cms.ui.CmsTheme;
+import org.argeo.cms.swt.CmsSwtUtils;
+import org.argeo.cms.swt.dialogs.CmsFeedback;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.CmsView;
-import org.argeo.cms.ui.dialogs.CmsFeedback;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.eclipse.ui.specific.UiContext;
 import org.argeo.entity.EntityConstants;
 import org.argeo.entity.EntityNames;
 import org.argeo.eclipse.ui.specific.UiContext;
 import org.argeo.entity.EntityConstants;
 import org.argeo.entity.EntityNames;
@@ -85,6 +87,9 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
        // TODO make more optimal or via CmsSession/CmsView
        private Map<String, SuiteUi> managedUis = new HashMap<>();
 
        // TODO make more optimal or via CmsSession/CmsView
        private Map<String, SuiteUi> managedUis = new HashMap<>();
 
+       private Repository repository;
+
+
        public void init(Map<String, Object> properties) {
                if (log.isDebugEnabled())
                        log.info("Argeo Suite App started");
        public void init(Map<String, Object> properties) {
                if (log.isDebugEnabled())
                        log.info("Argeo Suite App started");
@@ -132,15 +137,16 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
        }
 
        @Override
        }
 
        @Override
-       public Composite initUi(Composite parent) {
-               String uiName = parent.getData(UI_NAME_PROPERTY) != null ? parent.getData(UI_NAME_PROPERTY).toString() : null;
-               CmsView cmsView = CmsView.getCmsView(parent);
+       public CmsUi initUi(Object parent) {
+               Composite uiParent =(Composite) parent;
+               String uiName = uiParent.getData(UI_NAME_PROPERTY) != null ? uiParent.getData(UI_NAME_PROPERTY).toString() : null;
+               CmsView cmsView = CmsSwtUtils.getCmsView(uiParent);
                if (cmsView == null)
                        throw new IllegalStateException("No CMS view is registered.");
                CmsTheme theme = getTheme(uiName);
                if (theme != null)
                if (cmsView == null)
                        throw new IllegalStateException("No CMS view is registered.");
                CmsTheme theme = getTheme(uiName);
                if (theme != null)
-                       CmsTheme.registerCmsTheme(parent.getShell(), theme);
-               SuiteUi argeoSuiteUi = new SuiteUi(parent, SWT.INHERIT_DEFAULT);
+                       CmsSwtUtils.registerCmsTheme(uiParent.getShell(), theme);
+               SuiteUi argeoSuiteUi = new SuiteUi(uiParent, SWT.INHERIT_DEFAULT);
                String uid = cmsView.getUid();
                managedUis.put(uid, argeoSuiteUi);
                argeoSuiteUi.addDisposeListener((e) -> {
                String uid = cmsView.getUid();
                managedUis.put(uid, argeoSuiteUi);
                argeoSuiteUi.addDisposeListener((e) -> {
@@ -157,15 +163,15 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
        }
 
        @Override
        }
 
        @Override
-       public void refreshUi(Composite parent, String state) {
+       public void refreshUi(CmsUi cmsUi, String state) {
                try {
                        Node context = null;
                try {
                        Node context = null;
-                       SuiteUi ui = (SuiteUi) parent;
+                       SuiteUi ui = (SuiteUi) cmsUi;
 
                        String uiName = Objects.toString(ui.getParent().getData(UI_NAME_PROPERTY), null);
                        if (uiName == null)
                                throw new IllegalStateException("UI name should not be null");
 
                        String uiName = Objects.toString(ui.getParent().getData(UI_NAME_PROPERTY), null);
                        if (uiName == null)
                                throw new IllegalStateException("UI name should not be null");
-                       CmsView cmsView = CmsView.getCmsView(parent);
+                       CmsView cmsView = CmsSwtUtils.getCmsView(ui);
                        CmsUiProvider headerUiProvider = findUiProvider(headerPid);
                        CmsUiProvider footerUiProvider = findUiProvider(footerPid);
                        CmsUiProvider leadPaneUiProvider;
                        CmsUiProvider headerUiProvider = findUiProvider(headerPid);
                        CmsUiProvider footerUiProvider = findUiProvider(footerPid);
                        CmsUiProvider leadPaneUiProvider;
@@ -229,7 +235,7 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
                                if (footerUiProvider != null)
                                        refreshPart(footerUiProvider, ui.getFooter(), context);
                                ui.layout(true, true);
                                if (footerUiProvider != null)
                                        refreshPart(footerUiProvider, ui.getFooter(), context);
                                ui.layout(true, true);
-                               setState(parent, state != null ? state : defaultLayerPid);
+                               setState(ui, state != null ? state : defaultLayerPid);
                        }
                } catch (Exception e) {
                        CmsFeedback.show("Unexpected exception", e);
                        }
                } catch (Exception e) {
                        CmsFeedback.show("Unexpected exception", e);
@@ -246,7 +252,7 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
        }
 
        private void refreshPart(CmsUiProvider uiProvider, Composite part, Node context) {
        }
 
        private void refreshPart(CmsUiProvider uiProvider, Composite part, Node context) {
-               CmsUiUtils.clear(part);
+               CmsSwtUtils.clear(part);
                uiProvider.createUiPart(part, context);
        }
 
                uiProvider.createUiPart(part, context);
        }
 
@@ -344,12 +350,12 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
        }
 
        @Override
        }
 
        @Override
-       public void setState(Composite parent, String state) {
+       public void setState(CmsUi cmsUi, String state) {
                if (state == null)
                        return;
                if (!state.startsWith("/")) {
                if (state == null)
                        return;
                if (!state.startsWith("/")) {
-                       if (parent instanceof SuiteUi) {
-                               SuiteUi ui = (SuiteUi) parent;
+                       if (cmsUi instanceof SuiteUi) {
+                               SuiteUi ui = (SuiteUi) cmsUi;
                                if (LOGIN.equals(state)) {
                                        String appTitle = "";
                                        if (ui.getTitle() != null)
                                if (LOGIN.equals(state)) {
                                        String appTitle = "";
                                        if (ui.getTitle() != null)
@@ -365,7 +371,7 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
                        }
                        return;
                }
                        }
                        return;
                }
-               SuiteUi suiteUi = (SuiteUi) parent;
+               SuiteUi suiteUi = (SuiteUi) cmsUi;
                Node node = stateToNode(suiteUi, state);
                if (node == null) {
                        suiteUi.getCmsView().navigateTo(HOME_STATE);
                Node node = stateToNode(suiteUi, state);
                if (node == null) {
                        suiteUi.getCmsView().navigateTo(HOME_STATE);
@@ -620,4 +626,13 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
                this.cmsUserManager = cmsUserManager;
        }
 
                this.cmsUserManager = cmsUserManager;
        }
 
+       public Repository getRepository() {
+               return repository;
+       }
+
+       public void setRepository(Repository repository) {
+               this.repository = repository;
+       }
+
+       
 }
 }
index 563cd219055748f0fa127a1a8a8798a72a872b66..99638561d16d9027575577e724b5c8fa57ec9300 100644 (file)
@@ -5,7 +5,7 @@ import java.util.Map;
 
 import javax.jcr.Node;
 
 
 import javax.jcr.Node;
 
-import org.argeo.cms.ui.util.CmsEvent;
+import org.argeo.api.cms.CmsEvent;
 import org.argeo.jcr.Jcr;
 import org.osgi.service.useradmin.User;
 
 import org.argeo.jcr.Jcr;
 import org.osgi.service.useradmin.User;
 
index 2c9561d603e295d777ab5d2b9107b7f33fabbac1..b4cc1bbaa25f75ee166757360e43bbd398d0b758 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.suite.ui;
 
 package org.argeo.suite.ui;
 
-import org.argeo.cms.ui.util.CmsIcon;
+import org.argeo.cms.swt.CmsIcon;
 
 /** Icon names used by Argeo Suite. */
 public enum SuiteIcon implements CmsIcon {
 
 /** Icon names used by Argeo Suite. */
 public enum SuiteIcon implements CmsIcon {
index 0b26852eabf0cb51a3ab643f49079c34f4335bed..345ae304737419f2cafb10308621fad25f82dafc 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.suite.ui;
 
 package org.argeo.suite.ui;
 
-import org.argeo.cms.ui.util.CmsStyle;
+import org.argeo.api.cms.CmsStyle;
 
 /** Styles used by Argeo Suite work UI. */
 public enum SuiteStyle implements CmsStyle {
 
 /** Styles used by Argeo Suite work UI. */
 public enum SuiteStyle implements CmsStyle {
index 469e36f466ba770ff081f331a1d1c086076e789a..a79d236b29842c3f38806336a40c6e59f36bdf55 100644 (file)
@@ -11,16 +11,17 @@ import javax.jcr.Session;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.argeo.api.NodeConstants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.argeo.api.NodeConstants;
+import org.argeo.api.cms.CmsUi;
+import org.argeo.api.cms.CmsView;
 import org.argeo.cms.Localized;
 import org.argeo.cms.Localized;
-import org.argeo.cms.ui.CmsView;
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.jcr.Jcr;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.FormLayout;
 import org.eclipse.swt.widgets.Composite;
 
 /** The view for the default ergonomics of Argeo Suite. */
 import org.argeo.jcr.Jcr;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.FormLayout;
 import org.eclipse.swt.widgets.Composite;
 
 /** The view for the default ergonomics of Argeo Suite. */
-class SuiteUi extends Composite {
+class SuiteUi extends Composite implements CmsUi {
        private static final long serialVersionUID = 6207018859086689108L;
        private final static Log log = LogFactory.getLog(SuiteUi.class);
 
        private static final long serialVersionUID = 6207018859086689108L;
        private final static Log log = LogFactory.getLog(SuiteUi.class);
 
@@ -44,51 +45,51 @@ class SuiteUi extends Composite {
 
        public SuiteUi(Composite parent, int style) {
                super(parent, style);
 
        public SuiteUi(Composite parent, int style) {
                super(parent, style);
-               cmsView = CmsView.getCmsView(parent);
-               this.setLayout(CmsUiUtils.noSpaceGridLayout());
+               cmsView = CmsSwtUtils.getCmsView(parent);
+               this.setLayout(CmsSwtUtils.noSpaceGridLayout());
 
                header = new Composite(this, SWT.NONE);
 
                header = new Composite(this, SWT.NONE);
-               header.setLayout(CmsUiUtils.noSpaceGridLayout());
-               CmsUiUtils.style(header, SuiteStyle.header);
-               header.setLayoutData(CmsUiUtils.fillWidth());
+               header.setLayout(CmsSwtUtils.noSpaceGridLayout());
+               CmsSwtUtils.style(header, SuiteStyle.header);
+               header.setLayoutData(CmsSwtUtils.fillWidth());
 
                belowHeader = new Composite(this, SWT.NONE);
 
                belowHeader = new Composite(this, SWT.NONE);
-               belowHeader.setLayoutData(CmsUiUtils.fillAll());
+               belowHeader.setLayoutData(CmsSwtUtils.fillAll());
 
                footer = new Composite(this, SWT.NONE);
 
                footer = new Composite(this, SWT.NONE);
-               footer.setLayout(CmsUiUtils.noSpaceGridLayout());
-               CmsUiUtils.style(footer, SuiteStyle.footer);
-               footer.setLayoutData(CmsUiUtils.fillWidth());
+               footer.setLayout(CmsSwtUtils.noSpaceGridLayout());
+               CmsSwtUtils.style(footer, SuiteStyle.footer);
+               footer.setLayoutData(CmsSwtUtils.fillWidth());
        }
 
        public void refreshBelowHeader(boolean initApp) {
        }
 
        public void refreshBelowHeader(boolean initApp) {
-               CmsUiUtils.clear(belowHeader);
+               CmsSwtUtils.clear(belowHeader);
                int style = getStyle();
                if (initApp) {
                int style = getStyle();
                if (initApp) {
-                       belowHeader.setLayout(CmsUiUtils.noSpaceGridLayout(3));
+                       belowHeader.setLayout(CmsSwtUtils.noSpaceGridLayout(3));
 
                        if (SWT.RIGHT_TO_LEFT == (style & SWT.RIGHT_TO_LEFT)) {// arabic, hebrew, etc.
                                sidePane = new Composite(belowHeader, SWT.NONE);
 
                        if (SWT.RIGHT_TO_LEFT == (style & SWT.RIGHT_TO_LEFT)) {// arabic, hebrew, etc.
                                sidePane = new Composite(belowHeader, SWT.NONE);
-                               sidePane.setLayout(CmsUiUtils.noSpaceGridLayout());
-                               sidePane.setLayoutData(CmsUiUtils.fillHeight());
+                               sidePane.setLayout(CmsSwtUtils.noSpaceGridLayout());
+                               sidePane.setLayoutData(CmsSwtUtils.fillHeight());
                                dynamicArea = new Composite(belowHeader, SWT.NONE);
                                leadPane = new Composite(belowHeader, SWT.NONE);
                        } else {
                                leadPane = new Composite(belowHeader, SWT.NONE);
                                dynamicArea = new Composite(belowHeader, SWT.NONE);
                                sidePane = new Composite(belowHeader, SWT.NONE);
                                dynamicArea = new Composite(belowHeader, SWT.NONE);
                                leadPane = new Composite(belowHeader, SWT.NONE);
                        } else {
                                leadPane = new Composite(belowHeader, SWT.NONE);
                                dynamicArea = new Composite(belowHeader, SWT.NONE);
                                sidePane = new Composite(belowHeader, SWT.NONE);
-                               sidePane.setLayout(CmsUiUtils.noSpaceGridLayout());
-                               sidePane.setLayoutData(CmsUiUtils.fillHeight());
+                               sidePane.setLayout(CmsSwtUtils.noSpaceGridLayout());
+                               sidePane.setLayoutData(CmsSwtUtils.fillHeight());
                        }
                        }
-                       leadPane.setLayoutData(CmsUiUtils.fillHeight());
-                       leadPane.setLayout(CmsUiUtils.noSpaceGridLayout());
-                       CmsUiUtils.style(leadPane, SuiteStyle.leadPane);
+                       leadPane.setLayoutData(CmsSwtUtils.fillHeight());
+                       leadPane.setLayout(CmsSwtUtils.noSpaceGridLayout());
+                       CmsSwtUtils.style(leadPane, SuiteStyle.leadPane);
 
 
-                       dynamicArea.setLayoutData(CmsUiUtils.fillAll());
+                       dynamicArea.setLayoutData(CmsSwtUtils.fillAll());
                        dynamicArea.setLayout(new FormLayout());
 
                } else {
                        dynamicArea.setLayout(new FormLayout());
 
                } else {
-                       belowHeader.setLayout(CmsUiUtils.noSpaceGridLayout());
+                       belowHeader.setLayout(CmsSwtUtils.noSpaceGridLayout());
                }
        }
 
                }
        }
 
@@ -172,8 +173,8 @@ class SuiteUi extends Composite {
 
        protected Composite initLayer(String id, SuiteLayer layer, Node context) {
                Composite workArea = cmsView.doAs(() -> (Composite) layer.createUiPart(dynamicArea, context));
 
        protected Composite initLayer(String id, SuiteLayer layer, Node context) {
                Composite workArea = cmsView.doAs(() -> (Composite) layer.createUiPart(dynamicArea, context));
-               CmsUiUtils.style(workArea, SuiteStyle.workArea);
-               workArea.setLayoutData(CmsUiUtils.coverAll());
+               CmsSwtUtils.style(workArea, SuiteStyle.workArea);
+               workArea.setLayoutData(CmsSwtUtils.coverAll());
                workAreas.put(id, workArea);
                return workArea;
        }
                workAreas.put(id, workArea);
                return workArea;
        }
index 048b94657459e58f378d5f99d597c95b8d5b6a97..21d8d937dda6dcd2719646e6887a9b00d565f6e7 100644 (file)
@@ -7,17 +7,18 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
+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.cms.LocaleUtils;
 import org.argeo.cms.Localized;
 import org.argeo.cms.auth.CurrentUser;
 import org.argeo.cms.LocaleUtils;
 import org.argeo.cms.Localized;
 import org.argeo.cms.auth.CurrentUser;
-import org.argeo.cms.ui.CmsEditable;
-import org.argeo.cms.ui.CmsTheme;
-import org.argeo.cms.ui.CmsView;
-import org.argeo.cms.ui.dialogs.LightweightDialog;
-import org.argeo.cms.ui.util.CmsEvent;
-import org.argeo.cms.ui.util.CmsIcon;
+import org.argeo.cms.swt.CmsIcon;
+import org.argeo.cms.swt.CmsSwtUtils;
+import org.argeo.cms.swt.dialogs.LightweightDialog;
 import org.argeo.cms.ui.util.CmsLink;
 import org.argeo.cms.ui.util.CmsLink;
-import org.argeo.cms.ui.util.CmsStyle;
 import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.entity.EntityNames;
 import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.entity.EntityNames;
@@ -51,19 +52,19 @@ public class SuiteUiUtils {
        /** creates a title bar composite with label and optional button */
        public static void addTitleBar(Composite parent, String title, Boolean isEditable) {
                Composite titleBar = new Composite(parent, SWT.NONE);
        /** creates a title bar composite with label and optional button */
        public static void addTitleBar(Composite parent, String title, Boolean isEditable) {
                Composite titleBar = new Composite(parent, SWT.NONE);
-               titleBar.setLayoutData(CmsUiUtils.fillWidth());
-               CmsUiUtils.style(titleBar, SuiteStyle.titleContainer);
+               titleBar.setLayoutData(CmsSwtUtils.fillWidth());
+               CmsSwtUtils.style(titleBar, SuiteStyle.titleContainer);
 
 
-               titleBar.setLayout(CmsUiUtils.noSpaceGridLayout(new GridLayout(2, false)));
+               titleBar.setLayout(CmsSwtUtils.noSpaceGridLayout(new GridLayout(2, false)));
                Label titleLbl = new Label(titleBar, SWT.NONE);
                titleLbl.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
                Label titleLbl = new Label(titleBar, SWT.NONE);
                titleLbl.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
-               CmsUiUtils.style(titleLbl, SuiteStyle.titleLabel);
+               CmsSwtUtils.style(titleLbl, SuiteStyle.titleLabel);
                titleLbl.setText(title);
 
                if (isEditable) {
                        Button editBtn = new Button(titleBar, SWT.PUSH);
                        editBtn.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));
                titleLbl.setText(title);
 
                if (isEditable) {
                        Button editBtn = new Button(titleBar, SWT.PUSH);
                        editBtn.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));
-                       CmsUiUtils.style(editBtn, SuiteStyle.inlineButton);
+                       CmsSwtUtils.style(editBtn, SuiteStyle.inlineButton);
                        editBtn.setText("Edit");
                }
        }
                        editBtn.setText("Edit");
                }
        }
@@ -72,7 +73,7 @@ public class SuiteUiUtils {
                Label lbl = new Label(parent, SWT.WRAP);
                lbl.setText(label);
                // lbl.setLayoutData(new GridData(SWT.LEAD, SWT.CENTER, true, true));
                Label lbl = new Label(parent, SWT.WRAP);
                lbl.setText(label);
                // lbl.setLayoutData(new GridData(SWT.LEAD, SWT.CENTER, true, true));
-               CmsUiUtils.style(lbl, SuiteStyle.simpleLabel);
+               CmsSwtUtils.style(lbl, SuiteStyle.simpleLabel);
                return lbl;
        }
 
                return lbl;
        }
 
@@ -87,20 +88,20 @@ public class SuiteUiUtils {
                if (message != null)
                        txt.setMessage(message);
                txt.setLayoutData(new GridData(SWT.LEAD, SWT.CENTER, true, true));
                if (message != null)
                        txt.setMessage(message);
                txt.setLayoutData(new GridData(SWT.LEAD, SWT.CENTER, true, true));
-               CmsUiUtils.style(txt, SuiteStyle.simpleText);
+               CmsSwtUtils.style(txt, SuiteStyle.simpleText);
                return txt;
        }
 
        public static Text addFormInputField(Composite parent, String placeholder) {
                Text txt = new Text(parent, SWT.BORDER);
 
                return txt;
        }
 
        public static Text addFormInputField(Composite parent, String placeholder) {
                Text txt = new Text(parent, SWT.BORDER);
 
-               GridData gridData = CmsUiUtils.fillWidth();
+               GridData gridData = CmsSwtUtils.fillWidth();
                txt.setLayoutData(gridData);
 
                if (placeholder != null)
                        txt.setText(placeholder);
 
                txt.setLayoutData(gridData);
 
                if (placeholder != null)
                        txt.setText(placeholder);
 
-               CmsUiUtils.style(txt, SuiteStyle.simpleInput);
+               CmsSwtUtils.style(txt, SuiteStyle.simpleInput);
                return txt;
        }
 
                return txt;
        }
 
@@ -109,11 +110,11 @@ public class SuiteUiUtils {
                Composite lineComposite = new Composite(parent, SWT.NONE);
                lineComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
                lineComposite.setLayout(new GridLayout(2, false));
                Composite lineComposite = new Composite(parent, SWT.NONE);
                lineComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
                lineComposite.setLayout(new GridLayout(2, false));
-               CmsUiUtils.style(lineComposite, SuiteStyle.formLine);
+               CmsSwtUtils.style(lineComposite, SuiteStyle.formLine);
                addFormLabel(lineComposite, label);
                Text txt = addFormTextField(lineComposite, text, null);
                txt.setEditable(false);
                addFormLabel(lineComposite, label);
                Text txt = addFormTextField(lineComposite, text, null);
                txt.setEditable(false);
-               txt.setLayoutData(CmsUiUtils.fillWidth());
+               txt.setLayoutData(CmsSwtUtils.fillWidth());
                return txt;
        }
 
                return txt;
        }
 
@@ -122,7 +123,7 @@ public class SuiteUiUtils {
                Composite lineComposite = new Composite(parent, SWT.NONE);
                lineComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
                lineComposite.setLayout(new GridLayout(2, false));
                Composite lineComposite = new Composite(parent, SWT.NONE);
                lineComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
                lineComposite.setLayout(new GridLayout(2, false));
-               CmsUiUtils.style(lineComposite, SuiteStyle.formLine);
+               CmsSwtUtils.style(lineComposite, SuiteStyle.formLine);
                addFormLabel(lineComposite, label);
                String text = Jcr.get(node, property);
 //             int style = cmsEditable.isEditing() ? SWT.WRAP : SWT.WRAP;
                addFormLabel(lineComposite, label);
                String text = Jcr.get(node, property);
 //             int style = cmsEditable.isEditing() ? SWT.WRAP : SWT.WRAP;
@@ -135,7 +136,7 @@ public class SuiteUiUtils {
                } else {
                        txt.setEditable(false);
                }
                } else {
                        txt.setEditable(false);
                }
-               txt.setLayoutData(CmsUiUtils.fillWidth());
+               txt.setLayoutData(CmsSwtUtils.fillWidth());
                return txt;
        }
 
                return txt;
        }
 
@@ -143,10 +144,10 @@ public class SuiteUiUtils {
                Composite lineComposite = new Composite(parent, SWT.NONE);
                lineComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
                lineComposite.setLayout(new GridLayout(2, false));
                Composite lineComposite = new Composite(parent, SWT.NONE);
                lineComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
                lineComposite.setLayout(new GridLayout(2, false));
-               CmsUiUtils.style(lineComposite, SuiteStyle.formLine);
+               CmsSwtUtils.style(lineComposite, SuiteStyle.formLine);
                addFormLabel(lineComposite, label);
                Text txt = addFormInputField(lineComposite, placeholder);
                addFormLabel(lineComposite, label);
                Text txt = addFormInputField(lineComposite, placeholder);
-               txt.setLayoutData(CmsUiUtils.fillWidth());
+               txt.setLayoutData(CmsSwtUtils.fillWidth());
                return txt;
        }
 
                return txt;
        }
 
@@ -158,14 +159,14 @@ public class SuiteUiUtils {
                Composite lineComposite = new Composite(parent, SWT.NONE);
                lineComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
                lineComposite.setLayout(new GridLayout(3, false));
                Composite lineComposite = new Composite(parent, SWT.NONE);
                lineComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
                lineComposite.setLayout(new GridLayout(3, false));
-               CmsUiUtils.style(lineComposite, SuiteStyle.formLine);
+               CmsSwtUtils.style(lineComposite, SuiteStyle.formLine);
                Label offsetLbl = new Label(lineComposite, SWT.NONE);
                GridData gridData = new GridData();
                gridData.widthHint = offset;
                offsetLbl.setLayoutData(gridData);
                addFormLabel(lineComposite, label);
                Text txt = addFormTextField(lineComposite, text, null);
                Label offsetLbl = new Label(lineComposite, SWT.NONE);
                GridData gridData = new GridData();
                gridData.widthHint = offset;
                offsetLbl.setLayoutData(gridData);
                addFormLabel(lineComposite, label);
                Text txt = addFormTextField(lineComposite, text, null);
-               txt.setLayoutData(CmsUiUtils.fillWidth());
+               txt.setLayoutData(CmsSwtUtils.fillWidth());
                return txt;
        }
 
                return txt;
        }
 
@@ -177,7 +178,7 @@ public class SuiteUiUtils {
                addFormLabel(parent, label);
                Text txt = addFormTextField(parent, text, null);
                txt.setEditable(false);
                addFormLabel(parent, label);
                Text txt = addFormTextField(parent, text, null);
                txt.setEditable(false);
-               txt.setLayoutData(CmsUiUtils.fillWidth());
+               txt.setLayoutData(CmsSwtUtils.fillWidth());
                return txt;
        }
 
                return txt;
        }
 
@@ -198,7 +199,7 @@ public class SuiteUiUtils {
                } else {
                        txt.setEditable(false);
                }
                } else {
                        txt.setEditable(false);
                }
-               txt.setLayoutData(CmsUiUtils.fillWidth());
+               txt.setLayoutData(CmsSwtUtils.fillWidth());
                return txt;
        }
 
                return txt;
        }
 
@@ -214,7 +215,7 @@ public class SuiteUiUtils {
                Composite lineComposite = new Composite(parent, SWT.NONE);
                lineComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
                lineComposite.setLayout(new GridLayout(2, true));
                Composite lineComposite = new Composite(parent, SWT.NONE);
                lineComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
                lineComposite.setLayout(new GridLayout(2, true));
-               CmsUiUtils.style(lineComposite, SuiteStyle.formLine);
+               CmsSwtUtils.style(lineComposite, SuiteStyle.formLine);
                addFormLabel(lineComposite, label);
 
                return addPicture(lineComposite, fileNode);
                addFormLabel(lineComposite, label);
 
                return addPicture(lineComposite, fileNode);
@@ -268,7 +269,7 @@ public class SuiteUiUtils {
                        height = Math.round(ratio * height);
                }
                Label img = new Label(parent, SWT.NONE);
                        height = Math.round(ratio * height);
                }
                Label img = new Label(parent, SWT.NONE);
-               CmsUiUtils.markup(img);
+               CmsSwtUtils.markup(img);
                StringBuffer txt = new StringBuffer();
                String target = toLink(link);
                if (target != null)
                StringBuffer txt = new StringBuffer();
                String target = toLink(link);
                if (target != null)
@@ -304,8 +305,8 @@ public class SuiteUiUtils {
                                                protected Control createDialogArea(Composite parent) {
                                                        parent.setLayout(new GridLayout());
                                                        ScrolledComposite scroll = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
                                                protected Control createDialogArea(Composite parent) {
                                                        parent.setLayout(new GridLayout());
                                                        ScrolledComposite scroll = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
-                                                       scroll.setLayoutData(CmsUiUtils.fillAll());
-                                                       scroll.setLayout(CmsUiUtils.noSpaceGridLayout());
+                                                       scroll.setLayoutData(CmsSwtUtils.fillAll());
+                                                       scroll.setLayout(CmsSwtUtils.noSpaceGridLayout());
                                                        scroll.setExpandHorizontal(true);
                                                        scroll.setExpandVertical(true);
                                                        // scroll.setAlwaysShowScrollBars(true);
                                                        scroll.setExpandHorizontal(true);
                                                        scroll.setExpandVertical(true);
                                                        // scroll.setAlwaysShowScrollBars(true);
@@ -313,9 +314,9 @@ public class SuiteUiUtils {
                                                        Composite c = new Composite(scroll, SWT.NONE);
                                                        scroll.setContent(c);
                                                        c.setLayout(new GridLayout());
                                                        Composite c = new Composite(scroll, SWT.NONE);
                                                        scroll.setContent(c);
                                                        c.setLayout(new GridLayout());
-                                                       c.setLayoutData(CmsUiUtils.fillAll());
+                                                       c.setLayoutData(CmsSwtUtils.fillAll());
                                                        Label bigImg = new Label(c, SWT.NONE);
                                                        Label bigImg = new Label(c, SWT.NONE);
-                                                       CmsUiUtils.markup(bigImg);
+                                                       CmsSwtUtils.markup(bigImg);
                                                        bigImg.setText(CmsUiUtils.img(fileNode, Jcr.get(content, EntityNames.SVG_WIDTH),
                                                                        Jcr.get(content, EntityNames.SVG_HEIGHT)));
                                                        bigImg.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, true));
                                                        bigImg.setText(CmsUiUtils.img(fileNode, Jcr.get(content, EntityNames.SVG_WIDTH),
                                                                        Jcr.get(content, EntityNames.SVG_HEIGHT)));
                                                        bigImg.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, true));
@@ -336,11 +337,7 @@ public class SuiteUiUtils {
        }
 
        public static String toLink(Node node) {
        }
 
        public static String toLink(Node node) {
-               try {
                        return node != null ? "#" + CmsUiUtils.cleanPathForUrl(SuiteApp.nodeToState(node)) : null;
                        return node != null ? "#" + CmsUiUtils.cleanPathForUrl(SuiteApp.nodeToState(node)) : null;
-               } catch (RepositoryException e) {
-                       throw new JcrException("Cannot get link from " + node, e);
-               }
        }
 
        public static Control addLink(Composite parent, String label, Node node, CmsStyle style)
        }
 
        public static Control addLink(Composite parent, String label, Node node, CmsStyle style)
@@ -353,7 +350,7 @@ public class SuiteUiUtils {
        public static Control addExternalLink(Composite parent, String label, String url, String plainCssAnchorClass,
                        boolean newWindow) throws RepositoryException {
                Label lbl = new Label(parent, SWT.NONE);
        public static Control addExternalLink(Composite parent, String label, String url, String plainCssAnchorClass,
                        boolean newWindow) throws RepositoryException {
                Label lbl = new Label(parent, SWT.NONE);
-               CmsUiUtils.markup(lbl);
+               CmsSwtUtils.markup(lbl);
                StringBuilder txt = new StringBuilder();
                txt.append("<a class='" + plainCssAnchorClass + "'");
                txt.append(" href='").append(url).append("'");
                StringBuilder txt = new StringBuilder();
                txt.append("<a class='" + plainCssAnchorClass + "'");
                txt.append(" href='").append(url).append("'");
@@ -378,22 +375,22 @@ public class SuiteUiUtils {
 
        public static Button createLayerButton(Composite parent, String layer, Localized msg, CmsIcon icon,
                        ClassLoader l10nClassLoader) {
 
        public static Button createLayerButton(Composite parent, String layer, Localized msg, CmsIcon icon,
                        ClassLoader l10nClassLoader) {
-               CmsTheme theme = CmsTheme.getCmsTheme(parent);
+               CmsTheme theme = CmsSwtUtils.getCmsTheme(parent);
                Button button = new Button(parent, SWT.PUSH);
                Button button = new Button(parent, SWT.PUSH);
-               CmsUiUtils.style(button, SuiteStyle.leadPane);
+               CmsSwtUtils.style(button, SuiteStyle.leadPane);
                if (icon != null)
                        button.setImage(icon.getBigIcon(theme));
                button.setLayoutData(new GridData(SWT.CENTER, SWT.BOTTOM, true, false));
                // button.setToolTipText(msg.lead());
                if (msg != null) {
                        Label lbl = new Label(parent, SWT.CENTER);
                if (icon != null)
                        button.setImage(icon.getBigIcon(theme));
                button.setLayoutData(new GridData(SWT.CENTER, SWT.BOTTOM, true, false));
                // button.setToolTipText(msg.lead());
                if (msg != null) {
                        Label lbl = new Label(parent, SWT.CENTER);
-                       CmsUiUtils.style(lbl, SuiteStyle.leadPane);
+                       CmsSwtUtils.style(lbl, SuiteStyle.leadPane);
                        String txt = LocaleUtils.lead(msg, l10nClassLoader);
 //                     String txt = msg.lead();
                        lbl.setText(txt);
                        lbl.setLayoutData(new GridData(SWT.CENTER, SWT.TOP, true, false));
                }
                        String txt = LocaleUtils.lead(msg, l10nClassLoader);
 //                     String txt = msg.lead();
                        lbl.setText(txt);
                        lbl.setLayoutData(new GridData(SWT.CENTER, SWT.TOP, true, false));
                }
-               CmsUiUtils.sendEventOnSelect(button, SuiteEvent.switchLayer.topic(), SuiteEvent.LAYER, layer);
+               CmsSwtUtils.sendEventOnSelect(button, SuiteEvent.switchLayer.topic(), SuiteEvent.LAYER, layer);
                return button;
        }
 
                return button;
        }
 
index 07f9cee9353e912f61f32deaf13835abda1da004..08f74e3fed56bcf5417f785cbc2249ef4b94faee 100644 (file)
@@ -3,7 +3,7 @@ package org.argeo.suite.ui.widgets;
 import java.util.HashMap;
 import java.util.Map;
 
 import java.util.HashMap;
 import java.util.Map;
 
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.SWT;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.SWT;
@@ -54,7 +54,7 @@ public abstract class AbstractConnectContextMenu {
                        Button btn = new Button(boxCmp, SWT.FLAT | SWT.LEAD);
                        btn.setText(getLabel(actionId));
                        btn.setLayoutData(EclipseUiUtils.fillWidth());
                        Button btn = new Button(boxCmp, SWT.FLAT | SWT.LEAD);
                        btn.setText(getLabel(actionId));
                        btn.setLayoutData(EclipseUiUtils.fillWidth());
-                       CmsUiUtils.markup(btn);
+                       CmsSwtUtils.markup(btn);
 //                     CmsUiUtils.style(btn, actionId + ConnectUiStyles.BUTTON_SUFFIX);
                        btn.setData(KEY_ACTION_ID, actionId);
                        btn.addSelectionListener(asl);
 //                     CmsUiUtils.style(btn, actionId + ConnectUiStyles.BUTTON_SUFFIX);
                        btn.setData(KEY_ACTION_ID, actionId);
                        btn.addSelectionListener(asl);
index ffe733e8ff6ddccc6a8af8a6425db7afa896b239..e562fcc476ee48a7b44c59b24f38cf2e9bf3c771 100644 (file)
@@ -3,7 +3,7 @@ package org.argeo.suite.ui.widgets;
 import java.util.Arrays;
 import java.util.List;
 
 import java.util.Arrays;
 import java.util.List;
 
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.eclipse.rap.rwt.widgets.DropDown;
 import org.eclipse.swt.SWT;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.eclipse.rap.rwt.widgets.DropDown;
 import org.eclipse.swt.SWT;
@@ -67,7 +67,7 @@ public abstract class ConnectAbstractDropDown {
                dropDown = new DropDown(text);
                Object obj = dropDown;
                if (obj instanceof Widget)
                dropDown = new DropDown(text);
                Object obj = dropDown;
                if (obj instanceof Widget)
-                       CmsUiUtils.markup((Widget) obj);
+                       CmsSwtUtils.markup((Widget) obj);
                readOnly = (style & SWT.READ_ONLY) != 0;
                this.refreshOnFocus = refreshOnFocus;
                addListeners();
                readOnly = (style & SWT.READ_ONLY) != 0;
                this.refreshOnFocus = refreshOnFocus;
                addListeners();
index c281904e989d8d4b8b67b47f4c6ce4cb99b0a468..4b97b9ad4d5b2da2d3816c5a599f0d26a22ed78f 100644 (file)
@@ -5,10 +5,10 @@ import java.util.List;
 
 import javax.jcr.Node;
 
 
 import javax.jcr.Node;
 
+import org.argeo.cms.swt.CmsSwtUtils;
+import org.argeo.cms.swt.Selected;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ui.CmsUiProvider;
-import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.cms.ui.viewers.Section;
 import org.argeo.cms.ui.viewers.Section;
-import org.argeo.eclipse.ui.Selected;
 import org.argeo.jcr.Jcr;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StackLayout;
 import org.argeo.jcr.Jcr;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StackLayout;
@@ -46,15 +46,15 @@ public class TabbedArea extends Composite {
 
        public TabbedArea(Composite parent, int style) {
                super(parent, SWT.NONE);
 
        public TabbedArea(Composite parent, int style) {
                super(parent, SWT.NONE);
-               CmsUiUtils.style(parent, bodyStyle);
+               CmsSwtUtils.style(parent, bodyStyle);
 
 
-               setLayout(CmsUiUtils.noSpaceGridLayout());
+               setLayout(CmsSwtUtils.noSpaceGridLayout());
 
                // TODO manage tabs at bottom or sides
                headers = new Composite(this, SWT.NONE);
 
                // TODO manage tabs at bottom or sides
                headers = new Composite(this, SWT.NONE);
-               headers.setLayoutData(CmsUiUtils.fillWidth());
+               headers.setLayoutData(CmsSwtUtils.fillWidth());
                body = new Composite(this, SWT.NONE);
                body = new Composite(this, SWT.NONE);
-               body.setLayoutData(CmsUiUtils.fillAll());
+               body.setLayoutData(CmsSwtUtils.fillAll());
                // body.setLayout(new FormLayout());
                stackLayout = new StackLayout();
                body.setLayout(stackLayout);
                // body.setLayout(new FormLayout());
                stackLayout = new StackLayout();
                body.setLayout(stackLayout);
@@ -66,11 +66,11 @@ public class TabbedArea extends Composite {
                for (Control tab : headers.getChildren())
                        tab.dispose();
 
                for (Control tab : headers.getChildren())
                        tab.dispose();
 
-               headers.setLayout(CmsUiUtils.noSpaceGridLayout(new GridLayout(tabCount, true)));
+               headers.setLayout(CmsSwtUtils.noSpaceGridLayout(new GridLayout(tabCount, true)));
 
                if (sections.size() == 0) {
                        Composite emptyHeader = new Composite(headers, SWT.NONE);
 
                if (sections.size() == 0) {
                        Composite emptyHeader = new Composite(headers, SWT.NONE);
-                       emptyHeader.setLayoutData(CmsUiUtils.fillAll());
+                       emptyHeader.setLayoutData(CmsSwtUtils.fillAll());
                        emptyHeader.setLayout(new GridLayout());
                        Label lbl = new Label(emptyHeader, SWT.NONE);
                        lbl.setText("");
                        emptyHeader.setLayout(new GridLayout());
                        Label lbl = new Label(emptyHeader, SWT.NONE);
                        lbl.setText("");
@@ -82,13 +82,13 @@ public class TabbedArea extends Composite {
                for (Section section : sections) {
                        boolean selected = section == currentSection;
                        Composite sectionHeader = section.createHeader(headers);
                for (Section section : sections) {
                        boolean selected = section == currentSection;
                        Composite sectionHeader = section.createHeader(headers);
-                       CmsUiUtils.style(sectionHeader, selected ? tabSelectedStyle : tabStyle);
+                       CmsSwtUtils.style(sectionHeader, selected ? tabSelectedStyle : tabStyle);
                        int headerColumns = singleTab ? 1 : 2;
                        sectionHeader.setLayout(new GridLayout(headerColumns, false));
                        int headerColumns = singleTab ? 1 : 2;
                        sectionHeader.setLayout(new GridLayout(headerColumns, false));
-                       sectionHeader.setLayout(CmsUiUtils.noSpaceGridLayout(headerColumns));
+                       sectionHeader.setLayout(CmsSwtUtils.noSpaceGridLayout(headerColumns));
                        Button title = new Button(sectionHeader, SWT.FLAT);
                        Button title = new Button(sectionHeader, SWT.FLAT);
-                       CmsUiUtils.style(title, selected ? tabSelectedStyle : tabStyle);
-                       title.setLayoutData(CmsUiUtils.fillWidth());
+                       CmsSwtUtils.style(title, selected ? tabSelectedStyle : tabStyle);
+                       title.setLayoutData(CmsSwtUtils.fillWidth());
                        title.addSelectionListener((Selected) (e) -> showTab(tabIndex(section.getNode())));
                        Node node = section.getNode();
                        String titleStr = Jcr.getTitle(node);
                        title.addSelectionListener((Selected) (e) -> showTab(tabIndex(section.getNode())));
                        Node node = section.getNode();
                        String titleStr = Jcr.getTitle(node);
@@ -101,7 +101,7 @@ public class TabbedArea extends Composite {
                                        closeItem.setImage(closeIcon);
                                else
                                        closeItem.setText("X");
                                        closeItem.setImage(closeIcon);
                                else
                                        closeItem.setText("X");
-                               CmsUiUtils.style(closeItem, selected ? tabSelectedStyle : tabStyle);
+                               CmsSwtUtils.style(closeItem, selected ? tabSelectedStyle : tabStyle);
                                closeItem.addSelectionListener((Selected) (e) -> closeTab(section));
                        }
                }
                                closeItem.addSelectionListener((Selected) (e) -> closeTab(section));
                        }
                }
@@ -147,7 +147,7 @@ public class TabbedArea extends Composite {
                        return;
                }
                if (sections.size() == 0)
                        return;
                }
                if (sections.size() == 0)
-                       CmsUiUtils.clear(body);
+                       CmsSwtUtils.clear(body);
                Section currentSection = getCurrentSection();
                int currentIndex = sections.indexOf(currentSection);
                Section previousSection = new Section(body, SWT.NONE, context);
                Section currentSection = getCurrentSection();
                int currentIndex = sections.indexOf(currentSection);
                Section previousSection = new Section(body, SWT.NONE, context);
@@ -171,7 +171,7 @@ public class TabbedArea extends Composite {
        protected void build(Section section, CmsUiProvider uiProvider, Node context) {
                for (Control child : section.getChildren())
                        child.dispose();
        protected void build(Section section, CmsUiProvider uiProvider, Node context) {
                for (Control child : section.getChildren())
                        child.dispose();
-               CmsUiUtils.style(section, bodyStyle);
+               CmsSwtUtils.style(section, bodyStyle);
                section.setNode(context);
                uiProvider.createUiPart(section, context);
 
                section.setNode(context);
                uiProvider.createUiPart(section, context);
 
index 3434ed54f5d0cb84809553ba6a6e65fb50700a8e..81cfbb78fe5abc9237d6de852551b5632d5c7d3f 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.suite.ui.widgets;
 
 package org.argeo.suite.ui.widgets;
 
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StackLayout;
@@ -30,11 +30,11 @@ public class TreeOrSearchArea extends Composite {
                parent.setLayout(new GridLayout());
                Composite searchC = new Composite(parent, SWT.NONE);
                searchC.setLayout(new GridLayout());
                parent.setLayout(new GridLayout());
                Composite searchC = new Composite(parent, SWT.NONE);
                searchC.setLayout(new GridLayout());
-               searchC.setLayoutData(CmsUiUtils.fillWidth());
+               searchC.setLayoutData(CmsSwtUtils.fillWidth());
                createSearchUi(searchC);
 
                Composite bodyC = new Composite(parent, SWT.NONE);
                createSearchUi(searchC);
 
                Composite bodyC = new Composite(parent, SWT.NONE);
-               bodyC.setLayoutData(CmsUiUtils.fillAll());
+               bodyC.setLayoutData(CmsSwtUtils.fillAll());
                bodyLayout = new StackLayout();
                bodyC.setLayout(bodyLayout);
                Composite treeC = new Composite(bodyC, SWT.NONE);
                bodyLayout = new StackLayout();
                bodyC.setLayout(bodyLayout);
                Composite treeC = new Composite(bodyC, SWT.NONE);
@@ -46,21 +46,21 @@ public class TreeOrSearchArea extends Composite {
        }
 
        protected void createSearchUi(Composite parent) {
        }
 
        protected void createSearchUi(Composite parent) {
-               parent.setLayout(CmsUiUtils.noSpaceGridLayout());
+               parent.setLayout(CmsSwtUtils.noSpaceGridLayout());
                searchT = new Text(parent, SWT.MULTI | SWT.BORDER);
                searchT = new Text(parent, SWT.MULTI | SWT.BORDER);
-               searchT.setLayoutData(CmsUiUtils.fillWidth());
+               searchT.setLayoutData(CmsSwtUtils.fillWidth());
        }
 
        protected void createTreeUi(Composite parent) {
        }
 
        protected void createTreeUi(Composite parent) {
-               parent.setLayout(CmsUiUtils.noSpaceGridLayout());
+               parent.setLayout(CmsSwtUtils.noSpaceGridLayout());
                treeViewer = new TreeViewer(parent);
                treeViewer = new TreeViewer(parent);
-               treeViewer.getTree().setLayoutData(CmsUiUtils.fillAll());
+               treeViewer.getTree().setLayoutData(CmsSwtUtils.fillAll());
        }
 
        protected void createSearchResultsUi(Composite parent) {
        }
 
        protected void createSearchResultsUi(Composite parent) {
-               parent.setLayout(CmsUiUtils.noSpaceGridLayout());
+               parent.setLayout(CmsSwtUtils.noSpaceGridLayout());
                searchResultsViewer = new TreeViewer(parent);
                searchResultsViewer = new TreeViewer(parent);
-               searchResultsViewer.getTree().setLayoutData(CmsUiUtils.fillAll());
+               searchResultsViewer.getTree().setLayoutData(CmsSwtUtils.fillAll());
        }
 
        public TreeViewer getTreeViewer() {
        }
 
        public TreeViewer getTreeViewer() {
index 4e56367a791e88c29f495d776d0f5bda6349b040..222c6812400b38ba088596b87a7460c0ebe735df 100644 (file)
@@ -23,7 +23,7 @@ import javax.servlet.http.Part;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.cms.auth.CmsSession;
+import org.argeo.api.cms.CmsSession;
 import org.argeo.cms.jcr.CmsJcrUtils;
 import org.argeo.cms.servlet.ServletAuthUtils;
 import org.argeo.jcr.Jcr;
 import org.argeo.cms.jcr.CmsJcrUtils;
 import org.argeo.cms.servlet.ServletAuthUtils;
 import org.argeo.jcr.Jcr;