From 3cf66bc01bb8ad4c55139ae01be5a5bdb3759e2c Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Fri, 10 Dec 2021 11:44:11 +0100 Subject: [PATCH] Major refactoring of Argeo CMS UI --- .../entity/ui/forms/AbstractTermsPart.java | 12 +- .../argeo/entity/ui/forms/MultiTermsPart.java | 22 ++-- .../argeo/entity/ui/forms/SingleTermPart.java | 18 +-- .../org/argeo/support/openlayers/OLMap.java | 10 +- .../support/openlayers/OpenLayersMap.java | 8 +- .../argeo/support/openlayers/OverviewMap.java | 6 +- .../argeo/library/ui/ContentEntryArea.java | 13 +- .../library/ui/DocumentsFileComposite.java | 30 ++--- .../library/ui/DocumentsFolderComposite.java | 6 +- .../library/ui/DocumentsFolderUiProvider.java | 8 +- .../library/ui/DocumentsTreeUiProvider.java | 8 +- .../argeo/library/ui/DocumentsUiService.java | 8 +- .../org/argeo/people/ui/PeopleEntryArea.java | 21 ++-- .../org/argeo/people/ui/PersonUiProvider.java | 6 +- .../argeo/people/ui/SuiteUserUiProvider.java | 6 +- .../argeo/people/ui/SuiteUsersEntryArea.java | 21 ++-- .../argeo/docbook/ui/AbstractDbkViewer.java | 26 ++-- .../org/argeo/docbook/ui/CustomDbkEditor.java | 2 +- .../org/argeo/docbook/ui/DbkContextMenu.java | 8 +- .../org/argeo/docbook/ui/DbkImageManager.java | 119 ++++++++++-------- .../src/org/argeo/docbook/ui/DbkImg.java | 6 +- .../src/org/argeo/docbook/ui/DbkVideo.java | 10 +- .../org/argeo/docbook/ui/DocumentPage.java | 10 +- .../argeo/docbook/ui/DocumentTextEditor.java | 6 +- .../src/org/argeo/docbook/ui/Paragraph.java | 6 +- .../argeo/docbook/ui/TextEditorHeader.java | 10 +- .../src/org/argeo/docbook/ui/TextSection.java | 4 +- .../argeo/publishing/servlet/DbkServlet.java | 2 +- .../publishing/servlet/FontsServlet.java | 2 +- .../publishing/ui/DocumentUiProvider.java | 15 +-- .../argeo/publishing/ui/PublishingApp.java | 27 ++-- .../argeo/publishing/ui/PublishingStyle.java | 2 +- .../src/org/argeo/suite/SuiteUtils.java | 2 +- .../OSGI-INF/cmsTheme.xml | 4 +- org.argeo.suite.theme.default/bnd.bnd | 2 +- org.argeo.suite.ui.rap/OSGI-INF/cmsWebApp.xml | 2 +- org.argeo.suite.ui/OSGI-INF/cmsApp.xml | 4 +- .../org/argeo/suite/ui/DefaultDashboard.java | 5 +- .../argeo/suite/ui/DefaultEditionLayer.java | 26 ++-- .../src/org/argeo/suite/ui/DefaultFooter.java | 4 +- .../src/org/argeo/suite/ui/DefaultHeader.java | 24 ++-- .../org/argeo/suite/ui/DefaultLeadPane.java | 12 +- .../argeo/suite/ui/DefaultLoginScreen.java | 7 +- .../src/org/argeo/suite/ui/RecentItems.java | 17 ++- .../src/org/argeo/suite/ui/SuiteApp.java | 57 +++++---- .../src/org/argeo/suite/ui/SuiteEvent.java | 2 +- .../src/org/argeo/suite/ui/SuiteIcon.java | 2 +- .../src/org/argeo/suite/ui/SuiteStyle.java | 2 +- .../src/org/argeo/suite/ui/SuiteUi.java | 51 ++++---- .../src/org/argeo/suite/ui/SuiteUiUtils.java | 79 ++++++------ .../widgets/AbstractConnectContextMenu.java | 4 +- .../ui/widgets/ConnectAbstractDropDown.java | 4 +- .../argeo/suite/ui/widgets/TabbedArea.java | 30 ++--- .../suite/ui/widgets/TreeOrSearchArea.java | 18 +-- .../odk/servlet/OdkSubmissionServlet.java | 2 +- 55 files changed, 429 insertions(+), 389 deletions(-) diff --git a/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/AbstractTermsPart.java b/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/AbstractTermsPart.java index 36ae274..973ceb2 100644 --- a/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/AbstractTermsPart.java +++ b/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/AbstractTermsPart.java @@ -2,10 +2,10 @@ package org.argeo.entity.ui.forms; import javax.jcr.Item; +import org.argeo.api.cms.CmsTheme; 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; @@ -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); - 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); } @@ -82,11 +82,11 @@ public abstract class AbstractTermsPart extends StyledControl implements Editabl } protected void setControlLayoutData(Control control) { - control.setLayoutData(CmsUiUtils.fillAll()); + control.setLayoutData(CmsSwtUtils.fillAll()); } protected void setContainerLayoutData(Composite composite) { - composite.setLayoutData(CmsUiUtils.fillAll()); + composite.setLayoutData(CmsSwtUtils.fillAll()); } // diff --git a/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/MultiTermsPart.java b/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/MultiTermsPart.java index 8d40763..00bcd70 100644 --- a/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/MultiTermsPart.java +++ b/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/MultiTermsPart.java @@ -7,13 +7,13 @@ import javax.jcr.Item; 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.util.CmsUiUtils; 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; @@ -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); - rl = CmsUiUtils.noMarginsRowLayout(rl); + rl = CmsSwtUtils.noMarginsRowLayout(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); - block.setLayout(CmsUiUtils.noSpaceGridLayout(3)); + block.setLayout(CmsSwtUtils.noSpaceGridLayout(3)); 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) -> { @@ -94,15 +94,15 @@ public class MultiTermsPart extends AbstractTermsPart { 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); - txt.setLayoutData(CmsUiUtils.fillWidth()); + txt.setLayoutData(CmsSwtUtils.fillWidth()); // 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); @@ -151,7 +151,7 @@ public class MultiTermsPart extends AbstractTermsPart { @Override protected void refresh(ContextOverlay contextArea, String filter, Text txt) { - CmsUiUtils.clear(contextArea); + CmsSwtUtils.clear(contextArea); List terms = termsManager.listAllTerms(typology.getId()); List currentValue = getValue(); terms: for (Term term : terms) { diff --git a/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/SingleTermPart.java b/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/SingleTermPart.java index 0b5948a..da23819 100644 --- a/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/SingleTermPart.java +++ b/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/SingleTermPart.java @@ -4,13 +4,13 @@ import java.util.List; 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.util.CmsUiUtils; 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; @@ -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); - block.setLayout(CmsUiUtils.noSpaceGridLayout(3)); + block.setLayout(CmsSwtUtils.noSpaceGridLayout(3)); 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); @@ -94,13 +94,13 @@ public class SingleTermPart extends AbstractTermsPart { 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); - 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) -> { @@ -123,7 +123,7 @@ public class SingleTermPart extends AbstractTermsPart { @Override protected void refresh(ContextOverlay contextArea, String filter, Text txt) { - CmsUiUtils.clear(contextArea); + CmsSwtUtils.clear(contextArea); List terms = termsManager.listAllTerms(typology.getId()); terms: for (Term term : terms) { String display = getTermLabel(term); diff --git a/org.argeo.geo.ui/src/org/argeo/support/openlayers/OLMap.java b/org.argeo.geo.ui/src/org/argeo/support/openlayers/OLMap.java index ac104c6..3bcf488 100644 --- a/org.argeo.geo.ui/src/org/argeo/support/openlayers/OLMap.java +++ b/org.argeo.geo.ui/src/org/argeo/support/openlayers/OLMap.java @@ -1,6 +1,6 @@ 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; @@ -10,12 +10,12 @@ public class OLMap extends Composite { public OLMap(Composite parent, int style) { super(parent, style); - setLayout(CmsUiUtils.noSpaceGridLayout()); + setLayout(CmsSwtUtils.noSpaceGridLayout()); div = new Label(this, SWT.NONE); - CmsUiUtils.markup(div); - CmsUiUtils.disableMarkupValidation(div); + CmsSwtUtils.markup(div); + CmsSwtUtils.disableMarkupValidation(div); div.setText("
"); - div.setLayoutData(CmsUiUtils.fillAll()); + div.setLayoutData(CmsSwtUtils.fillAll()); } } diff --git a/org.argeo.geo.ui/src/org/argeo/support/openlayers/OpenLayersMap.java b/org.argeo.geo.ui/src/org/argeo/support/openlayers/OpenLayersMap.java index 5357149..4803a86 100644 --- a/org.argeo.geo.ui/src/org/argeo/support/openlayers/OpenLayersMap.java +++ b/org.argeo.geo.ui/src/org/argeo/support/openlayers/OpenLayersMap.java @@ -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.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; @@ -51,11 +51,11 @@ public class OpenLayersMap extends Composite { 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); - browser.setLayoutData(CmsUiUtils.fillAll()); + browser.setLayoutData(CmsSwtUtils.fillAll()); String html; try (InputStream in = mapHtml.openStream()) { html = IOUtils.toString(in, StandardCharsets.UTF_8); diff --git a/org.argeo.geo.ui/src/org/argeo/support/openlayers/OverviewMap.java b/org.argeo.geo.ui/src/org/argeo/support/openlayers/OverviewMap.java index b2fd01e..11d92e1 100644 --- a/org.argeo.geo.ui/src/org/argeo/support/openlayers/OverviewMap.java +++ b/org.argeo.geo.ui/src/org/argeo/support/openlayers/OverviewMap.java @@ -9,8 +9,8 @@ import javax.jcr.observation.EventIterator; 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.util.CmsUiUtils; 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 { - CmsUiUtils.clear(parent); + CmsSwtUtils.clear(parent); Query query = context.getSession().getWorkspace().getQueryManager() .createQuery("SELECT * FROM [" + EntityType.geopoint.get() + "]", Query.JCR_SQL2); List 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); diff --git a/org.argeo.library.ui/src/org/argeo/library/ui/ContentEntryArea.java b/org.argeo.library.ui/src/org/argeo/library/ui/ContentEntryArea.java index 8b884eb..d633fed 100644 --- a/org.argeo.library.ui/src/org/argeo/library/ui/ContentEntryArea.java +++ b/org.argeo.library.ui/src/org/argeo/library/ui/ContentEntryArea.java @@ -10,10 +10,9 @@ import javax.jcr.Session; 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.CmsView; -import org.argeo.cms.ui.util.CmsUiUtils; 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 { - CmsTheme theme = CmsTheme.getCmsTheme(parent); + CmsTheme theme = CmsSwtUtils.getCmsTheme(parent); 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); @@ -82,7 +81,7 @@ public class ContentEntryArea implements CmsUiProvider { 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)); } @@ -92,7 +91,7 @@ public class ContentEntryArea implements CmsUiProvider { 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)); } } diff --git a/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFileComposite.java b/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFileComposite.java index 10cf3bd..995d82b 100644 --- a/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFileComposite.java +++ b/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFileComposite.java @@ -6,7 +6,6 @@ import java.nio.file.Path; 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; @@ -37,8 +36,7 @@ public class DocumentsFileComposite extends Composite { // 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()); @@ -61,19 +59,15 @@ public class DocumentsFileComposite extends Composite { // 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); - //propLbl.setText(ConnectUtils.replaceAmpersand(propName + ": " + value)); + // propLbl.setText(ConnectUtils.replaceAmpersand(propName + ": " + value)); propLbl.setText(value); - //CmsUiUtils.markup(propLbl); + // CmsUiUtils.markup(propLbl); } } diff --git a/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFolderComposite.java b/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFolderComposite.java index a686074..6363d49 100644 --- a/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFolderComposite.java +++ b/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFolderComposite.java @@ -15,9 +15,9 @@ import javax.jcr.Node; 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.util.CmsUiUtils; 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); - CmsUiUtils.style(elemBtn, FsStyles.BREAD_CRUMB_BTN); + CmsSwtUtils.style(elemBtn, FsStyles.BREAD_CRUMB_BTN); 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); - CmsUiUtils.style(breadCrumbCmp, FsStyles.BREAD_CRUMB_BTN); + CmsSwtUtils.style(breadCrumbCmp, FsStyles.BREAD_CRUMB_BTN); RowLayout breadCrumbLayout = new RowLayout(); breadCrumbLayout.spacing = 0; breadCrumbLayout.marginTop = 0; diff --git a/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFolderUiProvider.java b/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFolderUiProvider.java index bdc194b..41fc823 100644 --- a/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFolderUiProvider.java +++ b/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsFolderUiProvider.java @@ -6,10 +6,10 @@ import java.nio.file.spi.FileSystemProvider; import javax.jcr.Node; import javax.jcr.RepositoryException; +import org.argeo.api.cms.CmsView; import org.argeo.cms.fs.CmsFsUtils; +import org.argeo.cms.swt.CmsSwtUtils; 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; @@ -22,7 +22,7 @@ public class DocumentsFolderUiProvider implements CmsUiProvider { @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 @@ -32,7 +32,7 @@ public class DocumentsFolderUiProvider implements CmsUiProvider { 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; } diff --git a/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsTreeUiProvider.java b/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsTreeUiProvider.java index f540732..a2b1ce3 100644 --- a/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsTreeUiProvider.java +++ b/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsTreeUiProvider.java @@ -9,11 +9,11 @@ import javax.jcr.Repository; 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.swt.CmsSwtUtils; 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; @@ -33,7 +33,7 @@ public class DocumentsTreeUiProvider implements CmsUiProvider { 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); @@ -64,7 +64,7 @@ public class DocumentsTreeUiProvider implements CmsUiProvider { } }); fsTreeViewer.setPathsInput(homePath); - fsTreeViewer.getControl().setLayoutData(CmsUiUtils.fillAll()); + fsTreeViewer.getControl().setLayoutData(CmsSwtUtils.fillAll()); fsTreeViewer.getControl().getParent().layout(true, true); return fsTreeViewer.getControl(); } diff --git a/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsUiService.java b/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsUiService.java index 5d04b17..b222e48 100644 --- a/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsUiService.java +++ b/org.argeo.library.ui/src/org/argeo/library/ui/DocumentsUiService.java @@ -1,8 +1,8 @@ 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; @@ -27,7 +27,7 @@ import java.util.Map; 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; diff --git a/org.argeo.people.ui/src/org/argeo/people/ui/PeopleEntryArea.java b/org.argeo.people.ui/src/org/argeo/people/ui/PeopleEntryArea.java index 2fd38da..87a591e 100644 --- a/org.argeo.people.ui/src/org/argeo/people/ui/PeopleEntryArea.java +++ b/org.argeo.people.ui/src/org/argeo/people/ui/PeopleEntryArea.java @@ -5,13 +5,12 @@ import java.util.Set; import javax.jcr.Node; import javax.jcr.RepositoryException; +import org.argeo.api.cms.CmsTheme; 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.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; @@ -44,7 +43,7 @@ public class PeopleEntryArea implements CmsUiProvider { @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()); @@ -94,8 +93,8 @@ public class PeopleEntryArea implements CmsUiProvider { }); 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); @@ -111,7 +110,7 @@ public class PeopleEntryArea implements CmsUiProvider { 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)); } @@ -122,7 +121,7 @@ public class PeopleEntryArea implements CmsUiProvider { 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 { @@ -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(); diff --git a/org.argeo.people.ui/src/org/argeo/people/ui/PersonUiProvider.java b/org.argeo.people.ui/src/org/argeo/people/ui/PersonUiProvider.java index d2ea2fe..e6ad48e 100644 --- a/org.argeo.people.ui/src/org/argeo/people/ui/PersonUiProvider.java +++ b/org.argeo.people.ui/src/org/argeo/people/ui/PersonUiProvider.java @@ -8,8 +8,8 @@ import javax.jcr.Node; 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.util.CmsUiUtils; 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); - main.setLayoutData(CmsUiUtils.fillAll()); + main.setLayoutData(CmsSwtUtils.fillAll()); 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"); - rolesSection.setLayoutData(CmsUiUtils.fillWidth()); + rolesSection.setLayoutData(CmsSwtUtils.fillWidth()); rolesSection.setLayout(new GridLayout()); // new Label(rolesSection, SWT.NONE).setText("Roles:"); List roles = Arrays.asList(cmsUserManager.getUserRoles(user.getName())); diff --git a/org.argeo.people.ui/src/org/argeo/people/ui/SuiteUserUiProvider.java b/org.argeo.people.ui/src/org/argeo/people/ui/SuiteUserUiProvider.java index aa83cd2..f41317f 100644 --- a/org.argeo.people.ui/src/org/argeo/people/ui/SuiteUserUiProvider.java +++ b/org.argeo.people.ui/src/org/argeo/people/ui/SuiteUserUiProvider.java @@ -8,8 +8,8 @@ import javax.jcr.Node; 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.util.CmsUiUtils; 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); - main.setLayoutData(CmsUiUtils.fillAll()); + main.setLayoutData(CmsSwtUtils.fillAll()); 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"); - rolesSection.setLayoutData(CmsUiUtils.fillWidth()); + rolesSection.setLayoutData(CmsSwtUtils.fillWidth()); rolesSection.setLayout(new GridLayout()); // new Label(rolesSection, SWT.NONE).setText("Roles:"); List roles = Arrays.asList(cmsUserManager.getUserRoles(user.getName())); diff --git a/org.argeo.people.ui/src/org/argeo/people/ui/SuiteUsersEntryArea.java b/org.argeo.people.ui/src/org/argeo/people/ui/SuiteUsersEntryArea.java index 66f3eda..909ea9a 100644 --- a/org.argeo.people.ui/src/org/argeo/people/ui/SuiteUsersEntryArea.java +++ b/org.argeo.people.ui/src/org/argeo/people/ui/SuiteUsersEntryArea.java @@ -5,13 +5,12 @@ import java.util.Set; import javax.jcr.Node; import javax.jcr.RepositoryException; +import org.argeo.api.cms.CmsTheme; 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.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; @@ -44,7 +43,7 @@ public class SuiteUsersEntryArea implements CmsUiProvider { @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()); @@ -94,8 +93,8 @@ public class SuiteUsersEntryArea implements CmsUiProvider { }); 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); @@ -111,7 +110,7 @@ public class SuiteUsersEntryArea implements CmsUiProvider { 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)); } @@ -122,7 +121,7 @@ public class SuiteUsersEntryArea implements CmsUiProvider { 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 { @@ -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(); diff --git a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java index e900093..c1b2f50 100644 --- a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java +++ b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/AbstractDbkViewer.java @@ -1,6 +1,5 @@ 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; @@ -19,8 +18,9 @@ import javax.jcr.Session; 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; @@ -102,13 +102,13 @@ public abstract class AbstractDbkViewer extends AbstractPageViewer implements Ke 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) - CmsUiUtils.style(textSection, style); + CmsSwtUtils.style(textSection, style); // 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); - title.setLayoutData(CmsUiUtils.fillWidth()); + title.setLayoutData(CmsSwtUtils.fillWidth()); 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) - ((Control) sectionPart).setLayoutData(CmsUiUtils.fillWidth()); + ((Control) sectionPart).setLayoutData(CmsSwtUtils.fillWidth()); } // 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); - newSection.setLayoutData(CmsUiUtils.fillWidth()); + newSection.setLayoutData(CmsSwtUtils.fillWidth()); 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); - paragraph.setLayoutData(fillWidth()); + paragraph.setLayoutData(CmsSwtUtils.fillWidth()); 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; - img.setPreferredSize(new Point(maxMediaWidth, 0)); + img.setPreferredSize(new Cms2DSize(maxMediaWidth, 0)); } else { - imgGd = CmsUiUtils.grabWidth(SWT.CENTER, SWT.DEFAULT); + imgGd = CmsSwtUtils.grabWidth(SWT.CENTER, SWT.DEFAULT); } 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); - newSection.setLayoutData(CmsUiUtils.fillWidth()); + newSection.setLayoutData(CmsSwtUtils.fillWidth()); 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); - newParagraph.setLayoutData(CmsUiUtils.fillWidth()); + newParagraph.setLayoutData(CmsSwtUtils.fillWidth()); newParagraph.moveBelow(paragraph); layout(paragraph.getControl(), newParagraph.getControl()); return newParagraph; diff --git a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/CustomDbkEditor.java b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/CustomDbkEditor.java index 561b1e1..94c9825 100644 --- a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/CustomDbkEditor.java +++ b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/CustomDbkEditor.java @@ -2,7 +2,7 @@ package org.argeo.docbook.ui; 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; diff --git a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkContextMenu.java b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkContextMenu.java index 6046bf2..778f7c8 100644 --- a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkContextMenu.java +++ b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkContextMenu.java @@ -5,8 +5,9 @@ import java.util.List; 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; @@ -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.eclipse.ui.MouseDown; 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 availableStyles) { if (shell.isVisible()) shell.setVisible(false); - CmsUiUtils.clear(shell); + CmsSwtUtils.clear(shell); Composite parent = shell; CmsEditable cmsEditable = textViewer.getCmsEditable(); // if (availableStyles.isEmpty()) diff --git a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImageManager.java b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImageManager.java index 25a466a..63f17d2 100644 --- a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImageManager.java +++ b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImageManager.java @@ -17,18 +17,18 @@ import javax.jcr.Node; 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.docbook.DbkUtils; 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.eclipse.swt.graphics.Point; /** Add DocBook images support to {@link CmsImageManager}. */ public class DbkImageManager extends DefaultImageManager { @@ -38,59 +38,72 @@ public class DbkImageManager extends DefaultImageManager { 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 - 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); } - 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) - 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); - return new Point(id.width, id.height); + return new Cms2DSize(id.width, id.height); } @Override @@ -104,12 +117,16 @@ public class DbkImageManager extends DefaultImageManager { } @Override - public String getImageUrl(Node mediaObjectNode) throws RepositoryException { + public String getImageUrl(Node mediaObjectNode) { 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; @@ -127,19 +144,23 @@ public class DbkImageManager extends DefaultImageManager { return url; } - protected Node getFileNode(Node imageDataNode) throws RepositoryException { + protected Node getFileNode(Node imageDataNode) { // 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() { diff --git a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImg.java b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImg.java index cb4ce2e..f48c626 100644 --- a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImg.java +++ b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkImg.java @@ -3,7 +3,7 @@ package org.argeo.docbook.ui; 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; @@ -35,12 +35,12 @@ public class DbkImg extends Img { @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) { - control.setLayoutData(CmsUiUtils.grabWidth(SWT.CENTER, SWT.DEFAULT)); + control.setLayoutData(CmsSwtUtils.grabWidth(SWT.CENTER, SWT.DEFAULT)); } @Override diff --git a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkVideo.java b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkVideo.java index 5c3d057..a54dedb 100644 --- a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkVideo.java +++ b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkVideo.java @@ -9,7 +9,8 @@ import javax.jcr.Item; 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; @@ -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.eclipse.ui.Selected; 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); - wrapper.setLayout(CmsUiUtils.noSpaceGridLayout()); + wrapper.setLayout(CmsSwtUtils.noSpaceGridLayout()); 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(); @@ -198,7 +198,7 @@ public class DbkVideo extends StyledControl implements SectionPart, NodePart { @Override protected void setControlLayoutData(Control control) { - control.setLayoutData(CmsUiUtils.fillAll()); + control.setLayoutData(CmsSwtUtils.fillAll()); } @Override diff --git a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentPage.java b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentPage.java index 97ce2d2..f568611 100644 --- a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentPage.java +++ b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentPage.java @@ -6,10 +6,10 @@ import javax.jcr.RepositoryException; 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.util.CmsUiUtils; 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); - 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()) - 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); diff --git a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentTextEditor.java b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentTextEditor.java index 61c0120..9ffef2b 100644 --- a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentTextEditor.java +++ b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DocumentTextEditor.java @@ -3,8 +3,8 @@ package org.argeo.docbook.ui; 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; @@ -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(); - getMainSection().setLayoutData(CmsUiUtils.fillWidth()); + getMainSection().setLayoutData(CmsSwtUtils.fillWidth()); } @Override diff --git a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/Paragraph.java b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/Paragraph.java index b173d06..7314029 100644 --- a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/Paragraph.java +++ b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/Paragraph.java @@ -3,7 +3,7 @@ package org.argeo.docbook.ui; 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; @@ -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; - CmsUiUtils.style(this, DbkType.para.name()); + CmsSwtUtils.style(this, DbkType.para.name()); } 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); - CmsUiUtils.disableMarkupValidation(lbl); + CmsSwtUtils.disableMarkupValidation(lbl); return lbl; } diff --git a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/TextEditorHeader.java b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/TextEditorHeader.java index eac75f9..b430de0 100644 --- a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/TextEditorHeader.java +++ b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/TextEditorHeader.java @@ -3,8 +3,8 @@ package org.argeo.docbook.ui; 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; @@ -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.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()); - CmsUiUtils.style(publish, TextStyles.TEXT_EDITOR_HEADER); + CmsSwtUtils.style(publish, TextStyles.TEXT_EDITOR_HEADER); publish.addSelectionListener(this); display.moveAbove(null); } diff --git a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/TextSection.java b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/TextSection.java index 76ba661..b8c82d7 100644 --- a/org.argeo.publishing.ui/src/org/argeo/docbook/ui/TextSection.java +++ b/org.argeo.publishing.ui/src/org/argeo/docbook/ui/TextSection.java @@ -2,7 +2,7 @@ package org.argeo.docbook.ui; 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; @@ -39,7 +39,7 @@ public class TextSection extends Section { } else { level = 0; } - CmsUiUtils.style(this, DbkType.section.name()); + CmsSwtUtils.style(this, DbkType.section.name()); } public String getDefaultTextStyle() { diff --git a/org.argeo.publishing.ui/src/org/argeo/publishing/servlet/DbkServlet.java b/org.argeo.publishing.ui/src/org/argeo/publishing/servlet/DbkServlet.java index e892562..c236e93 100644 --- a/org.argeo.publishing.ui/src/org/argeo/publishing/servlet/DbkServlet.java +++ b/org.argeo.publishing.ui/src/org/argeo/publishing/servlet/DbkServlet.java @@ -35,8 +35,8 @@ import javax.xml.transform.stream.StreamSource; 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.ui.CmsTheme; import org.argeo.docbook.DbkType; import org.argeo.docbook.DbkUtils; import org.argeo.jcr.Jcr; diff --git a/org.argeo.publishing.ui/src/org/argeo/publishing/servlet/FontsServlet.java b/org.argeo.publishing.ui/src/org/argeo/publishing/servlet/FontsServlet.java index 5bc6d0c..aa116f5 100644 --- a/org.argeo.publishing.ui/src/org/argeo/publishing/servlet/FontsServlet.java +++ b/org.argeo.publishing.ui/src/org/argeo/publishing/servlet/FontsServlet.java @@ -12,7 +12,7 @@ import javax.servlet.http.HttpServletRequest; 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 { diff --git a/org.argeo.publishing.ui/src/org/argeo/publishing/ui/DocumentUiProvider.java b/org.argeo.publishing.ui/src/org/argeo/publishing/ui/DocumentUiProvider.java index 9830d7c..bd331ce 100644 --- a/org.argeo.publishing.ui/src/org/argeo/publishing/ui/DocumentUiProvider.java +++ b/org.argeo.publishing.ui/src/org/argeo/publishing/ui/DocumentUiProvider.java @@ -4,9 +4,10 @@ import javax.jcr.Node; 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.CmsView; 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 { - 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 - 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); - 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); @@ -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.setLayoutData(CmsUiUtils.fillAll()); + browser.setLayoutData(CmsSwtUtils.fillAll()); return browser; } } diff --git a/org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingApp.java b/org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingApp.java index 705eb96..15520e0 100644 --- a/org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingApp.java +++ b/org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingApp.java @@ -8,14 +8,15 @@ import java.util.Map; 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 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.docbook.ui.DocumentPage; 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 Repository repository; + public void init(Map 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 - 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()); @@ -86,11 +90,12 @@ public class PublishingApp extends AbstractCmsApp implements EventHandler { } else { page = defaultProvider.createUiPart(parent, indexNode); } - return (Composite) page; + return (CmsUi) page; } @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); @@ -99,7 +104,7 @@ public class PublishingApp extends AbstractCmsApp implements EventHandler { } @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; + } + } diff --git a/org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingStyle.java b/org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingStyle.java index 3250c70..199d726 100644 --- a/org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingStyle.java +++ b/org.argeo.publishing.ui/src/org/argeo/publishing/ui/PublishingStyle.java @@ -1,6 +1,6 @@ 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 { diff --git a/org.argeo.suite.core/src/org/argeo/suite/SuiteUtils.java b/org.argeo.suite.core/src/org/argeo/suite/SuiteUtils.java index 93f3b14..e673391 100644 --- a/org.argeo.suite.core/src/org/argeo/suite/SuiteUtils.java +++ b/org.argeo.suite.core/src/org/argeo/suite/SuiteUtils.java @@ -12,7 +12,7 @@ import javax.naming.ldap.LdapName; 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; diff --git a/org.argeo.suite.theme.default/OSGI-INF/cmsTheme.xml b/org.argeo.suite.theme.default/OSGI-INF/cmsTheme.xml index 66b8c44..06df08e 100644 --- a/org.argeo.suite.theme.default/OSGI-INF/cmsTheme.xml +++ b/org.argeo.suite.theme.default/OSGI-INF/cmsTheme.xml @@ -1,7 +1,7 @@ - + - + diff --git a/org.argeo.suite.theme.default/bnd.bnd b/org.argeo.suite.theme.default/bnd.bnd index 6c4a97c..21883fd 100644 --- a/org.argeo.suite.theme.default/bnd.bnd +++ b/org.argeo.suite.theme.default/bnd.bnd @@ -2,5 +2,5 @@ Service-Component:\ OSGI-INF/cmsTheme.xml Import-Package:\ -org.argeo.cms.ui.util,\ +org.argeo.cms.swt.osgi,\ * \ No newline at end of file diff --git a/org.argeo.suite.ui.rap/OSGI-INF/cmsWebApp.xml b/org.argeo.suite.ui.rap/OSGI-INF/cmsWebApp.xml index 4dfdcff..4f807c1 100644 --- a/org.argeo.suite.ui.rap/OSGI-INF/cmsWebApp.xml +++ b/org.argeo.suite.ui.rap/OSGI-INF/cmsWebApp.xml @@ -2,6 +2,6 @@ - + diff --git a/org.argeo.suite.ui/OSGI-INF/cmsApp.xml b/org.argeo.suite.ui/OSGI-INF/cmsApp.xml index e42eeeb..bfb372a 100644 --- a/org.argeo.suite.ui/OSGI-INF/cmsApp.xml +++ b/org.argeo.suite.ui/OSGI-INF/cmsApp.xml @@ -2,12 +2,12 @@ - + - + diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultDashboard.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultDashboard.java index 9835b67..80069d5 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultDashboard.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultDashboard.java @@ -3,9 +3,10 @@ package org.argeo.suite.ui; import javax.jcr.Node; import javax.jcr.RepositoryException; +import org.argeo.api.cms.CmsView; import org.argeo.cms.auth.CurrentUser; +import org.argeo.cms.swt.CmsSwtUtils; 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; @@ -18,7 +19,7 @@ public class DefaultDashboard implements CmsUiProvider { @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"); diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultEditionLayer.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultEditionLayer.java index 8945855..b36778c 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultEditionLayer.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultEditionLayer.java @@ -7,10 +7,10 @@ import java.util.Map; import javax.jcr.Node; import javax.jcr.RepositoryException; +import org.argeo.api.cms.CmsTheme; 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.util.CmsUiUtils; 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); - CmsUiUtils.style(entryAreaC, SuiteStyle.entryArea); + CmsSwtUtils.style(entryAreaC, SuiteStyle.entryArea); 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; } - CmsTheme theme = CmsTheme.getCmsTheme(parent); + CmsTheme theme = CmsSwtUtils.getCmsTheme(parent); 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 { - CmsUiUtils.clear(workAreaC); + CmsSwtUtils.clear(workAreaC); 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.setLayoutData(CmsUiUtils.fillAll()); + tabbedArea.setLayoutData(CmsSwtUtils.fillAll()); return tabbedArea; } @@ -195,7 +195,7 @@ public class DefaultEditionLayer implements SuiteLayer { 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. @@ -220,7 +220,7 @@ public class DefaultEditionLayer implements SuiteLayer { if (startMaximized) setMaximizedControl(editorC); - GridLayout editorAreaLayout = CmsUiUtils.noSpaceGridLayout(); + GridLayout editorAreaLayout = CmsSwtUtils.noSpaceGridLayout(); // 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); - 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. @@ -260,16 +260,16 @@ public class DefaultEditionLayer implements SuiteLayer { 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); - editorC.setLayoutData(CmsUiUtils.fillAll()); + editorC.setLayoutData(CmsSwtUtils.fillAll()); tabbedArea = createTabbedArea(editorC, theme); } diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultFooter.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultFooter.java index 4ab5474..9739f29 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultFooter.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultFooter.java @@ -5,8 +5,8 @@ import java.util.Map; 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.util.CmsUiUtils; 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 { - 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); diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultHeader.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultHeader.java index 91154c3..fd8be4e 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultHeader.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultHeader.java @@ -5,12 +5,12 @@ import java.util.Map; 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.ui.CmsTheme; +import org.argeo.cms.swt.CmsSwtUtils; 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; @@ -30,14 +30,14 @@ public class DefaultHeader implements CmsUiProvider { @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); - 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); @@ -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()); - 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); - 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); - 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); - 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); diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLeadPane.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLeadPane.java index 46de177..fb0d19d 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLeadPane.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLeadPane.java @@ -14,11 +14,11 @@ import javax.jcr.RepositoryException; 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.swt.CmsSwtUtils; 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; @@ -47,10 +47,10 @@ public class DefaultLeadPane implements CmsUiProvider { @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); - CmsUiUtils.style(appLayersC, SuiteStyle.leadPane); + CmsSwtUtils.style(appLayersC, SuiteStyle.leadPane); 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); - CmsUiUtils.style(adminLayersC, SuiteStyle.leadPane); + CmsSwtUtils.style(adminLayersC, SuiteStyle.leadPane); GridLayout adminLayout = new GridLayout(); adminLayout.verticalSpacing = 10; adminLayout.marginBottom = 10; diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLoginScreen.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLoginScreen.java index 3757a19..a44acf9 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLoginScreen.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/DefaultLoginScreen.java @@ -3,10 +3,11 @@ package org.argeo.suite.ui; import javax.jcr.Node; import javax.jcr.RepositoryException; +import org.argeo.api.cms.CmsView; 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.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; @@ -18,7 +19,7 @@ public class DefaultLoginScreen implements CmsUiProvider { @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"); diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java index b9aa5b7..66f2dc5 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java @@ -15,10 +15,9 @@ import javax.jcr.observation.EventListener; 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.CmsView; -import org.argeo.cms.ui.util.CmsUiUtils; 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 { - theme = CmsTheme.getCmsTheme(parent); + theme = CmsSwtUtils.getCmsTheme(parent); 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(); - entityViewer.getViewer().getTable().setLayoutData(CmsUiUtils.fillAll()); + entityViewer.getViewer().getTable().setLayoutData(CmsSwtUtils.fillAll()); 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); @@ -108,7 +107,7 @@ public class RecentItems implements CmsUiProvider { 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)); } @@ -117,7 +116,7 @@ public class RecentItems implements CmsUiProvider { 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 { diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteApp.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteApp.java index d766a9a..8eb9ef4 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteApp.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteApp.java @@ -1,6 +1,6 @@ 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; @@ -14,6 +14,7 @@ import java.util.TreeMap; 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; @@ -22,17 +23,18 @@ import javax.naming.ldap.LdapName; 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.auth.CmsSession; 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.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; @@ -85,6 +87,9 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { // TODO make more optimal or via CmsSession/CmsView private Map managedUis = new HashMap<>(); + private Repository repository; + + public void init(Map properties) { if (log.isDebugEnabled()) log.info("Argeo Suite App started"); @@ -132,15 +137,16 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { } @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) - 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) -> { @@ -157,15 +163,15 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { } @Override - public void refreshUi(Composite parent, String state) { + public void refreshUi(CmsUi cmsUi, String state) { 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"); - CmsView cmsView = CmsView.getCmsView(parent); + CmsView cmsView = CmsSwtUtils.getCmsView(ui); 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); - setState(parent, state != null ? state : defaultLayerPid); + setState(ui, state != null ? state : defaultLayerPid); } } 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) { - CmsUiUtils.clear(part); + CmsSwtUtils.clear(part); uiProvider.createUiPart(part, context); } @@ -344,12 +350,12 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { } @Override - public void setState(Composite parent, String state) { + public void setState(CmsUi cmsUi, String state) { 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) @@ -365,7 +371,7 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { } return; } - SuiteUi suiteUi = (SuiteUi) parent; + SuiteUi suiteUi = (SuiteUi) cmsUi; 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; } + public Repository getRepository() { + return repository; + } + + public void setRepository(Repository repository) { + this.repository = repository; + } + + } diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteEvent.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteEvent.java index 563cd21..9963856 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteEvent.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteEvent.java @@ -5,7 +5,7 @@ import java.util.Map; 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; diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteIcon.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteIcon.java index 2c9561d..b4cc1bb 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteIcon.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteIcon.java @@ -1,6 +1,6 @@ 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 { diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteStyle.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteStyle.java index 0b26852..345ae30 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteStyle.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteStyle.java @@ -1,6 +1,6 @@ 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 { diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUi.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUi.java index 469e36f..a79d236 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUi.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUi.java @@ -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.argeo.api.cms.CmsUi; +import org.argeo.api.cms.CmsView; 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. */ -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); @@ -44,51 +45,51 @@ class SuiteUi extends Composite { 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.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.setLayoutData(CmsUiUtils.fillAll()); + belowHeader.setLayoutData(CmsSwtUtils.fillAll()); 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) { - CmsUiUtils.clear(belowHeader); + CmsSwtUtils.clear(belowHeader); 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); - 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); - 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 { - 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)); - CmsUiUtils.style(workArea, SuiteStyle.workArea); - workArea.setLayoutData(CmsUiUtils.coverAll()); + CmsSwtUtils.style(workArea, SuiteStyle.workArea); + workArea.setLayoutData(CmsSwtUtils.coverAll()); workAreas.put(id, workArea); return workArea; } diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUiUtils.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUiUtils.java index 048b946..21d8d93 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUiUtils.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteUiUtils.java @@ -7,17 +7,18 @@ import javax.jcr.Node; 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.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.CmsStyle; 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); - 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)); - 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)); - CmsUiUtils.style(editBtn, SuiteStyle.inlineButton); + CmsSwtUtils.style(editBtn, SuiteStyle.inlineButton); 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)); - CmsUiUtils.style(lbl, SuiteStyle.simpleLabel); + CmsSwtUtils.style(lbl, SuiteStyle.simpleLabel); 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)); - 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); - GridData gridData = CmsUiUtils.fillWidth(); + GridData gridData = CmsSwtUtils.fillWidth(); txt.setLayoutData(gridData); if (placeholder != null) txt.setText(placeholder); - CmsUiUtils.style(txt, SuiteStyle.simpleInput); + CmsSwtUtils.style(txt, SuiteStyle.simpleInput); 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)); - CmsUiUtils.style(lineComposite, SuiteStyle.formLine); + CmsSwtUtils.style(lineComposite, SuiteStyle.formLine); addFormLabel(lineComposite, label); Text txt = addFormTextField(lineComposite, text, null); txt.setEditable(false); - txt.setLayoutData(CmsUiUtils.fillWidth()); + txt.setLayoutData(CmsSwtUtils.fillWidth()); 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)); - 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; @@ -135,7 +136,7 @@ public class SuiteUiUtils { } else { txt.setEditable(false); } - txt.setLayoutData(CmsUiUtils.fillWidth()); + txt.setLayoutData(CmsSwtUtils.fillWidth()); 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)); - CmsUiUtils.style(lineComposite, SuiteStyle.formLine); + CmsSwtUtils.style(lineComposite, SuiteStyle.formLine); addFormLabel(lineComposite, label); Text txt = addFormInputField(lineComposite, placeholder); - txt.setLayoutData(CmsUiUtils.fillWidth()); + txt.setLayoutData(CmsSwtUtils.fillWidth()); 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)); - 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); - txt.setLayoutData(CmsUiUtils.fillWidth()); + txt.setLayoutData(CmsSwtUtils.fillWidth()); return txt; } @@ -177,7 +178,7 @@ public class SuiteUiUtils { addFormLabel(parent, label); Text txt = addFormTextField(parent, text, null); txt.setEditable(false); - txt.setLayoutData(CmsUiUtils.fillWidth()); + txt.setLayoutData(CmsSwtUtils.fillWidth()); return txt; } @@ -198,7 +199,7 @@ public class SuiteUiUtils { } else { txt.setEditable(false); } - txt.setLayoutData(CmsUiUtils.fillWidth()); + txt.setLayoutData(CmsSwtUtils.fillWidth()); 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)); - CmsUiUtils.style(lineComposite, SuiteStyle.formLine); + CmsSwtUtils.style(lineComposite, SuiteStyle.formLine); 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); - CmsUiUtils.markup(img); + CmsSwtUtils.markup(img); 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); - 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); @@ -313,9 +314,9 @@ public class SuiteUiUtils { 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); - 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)); @@ -336,11 +337,7 @@ public class SuiteUiUtils { } public static String toLink(Node node) { - try { 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) @@ -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); - CmsUiUtils.markup(lbl); + CmsSwtUtils.markup(lbl); StringBuilder txt = new StringBuilder(); txt.append(" 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"); - CmsUiUtils.style(closeItem, selected ? tabSelectedStyle : tabStyle); + CmsSwtUtils.style(closeItem, selected ? tabSelectedStyle : tabStyle); closeItem.addSelectionListener((Selected) (e) -> closeTab(section)); } } @@ -147,7 +147,7 @@ public class TabbedArea extends Composite { 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); @@ -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(); - CmsUiUtils.style(section, bodyStyle); + CmsSwtUtils.style(section, bodyStyle); section.setNode(context); uiProvider.createUiPart(section, context); diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/widgets/TreeOrSearchArea.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/widgets/TreeOrSearchArea.java index 3434ed5..81cfbb7 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/widgets/TreeOrSearchArea.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/widgets/TreeOrSearchArea.java @@ -1,6 +1,6 @@ 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; @@ -30,11 +30,11 @@ public class TreeOrSearchArea extends Composite { 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); - bodyC.setLayoutData(CmsUiUtils.fillAll()); + bodyC.setLayoutData(CmsSwtUtils.fillAll()); 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) { - parent.setLayout(CmsUiUtils.noSpaceGridLayout()); + parent.setLayout(CmsSwtUtils.noSpaceGridLayout()); searchT = new Text(parent, SWT.MULTI | SWT.BORDER); - searchT.setLayoutData(CmsUiUtils.fillWidth()); + searchT.setLayoutData(CmsSwtUtils.fillWidth()); } protected void createTreeUi(Composite parent) { - parent.setLayout(CmsUiUtils.noSpaceGridLayout()); + parent.setLayout(CmsSwtUtils.noSpaceGridLayout()); treeViewer = new TreeViewer(parent); - treeViewer.getTree().setLayoutData(CmsUiUtils.fillAll()); + treeViewer.getTree().setLayoutData(CmsSwtUtils.fillAll()); } protected void createSearchResultsUi(Composite parent) { - parent.setLayout(CmsUiUtils.noSpaceGridLayout()); + parent.setLayout(CmsSwtUtils.noSpaceGridLayout()); searchResultsViewer = new TreeViewer(parent); - searchResultsViewer.getTree().setLayoutData(CmsUiUtils.fillAll()); + searchResultsViewer.getTree().setLayoutData(CmsSwtUtils.fillAll()); } public TreeViewer getTreeViewer() { diff --git a/org.argeo.support.odk/src/org/argeo/support/odk/servlet/OdkSubmissionServlet.java b/org.argeo.support.odk/src/org/argeo/support/odk/servlet/OdkSubmissionServlet.java index 4e56367..222c681 100644 --- a/org.argeo.support.odk/src/org/argeo/support/odk/servlet/OdkSubmissionServlet.java +++ b/org.argeo.support.odk/src/org/argeo/support/odk/servlet/OdkSubmissionServlet.java @@ -23,7 +23,7 @@ import javax.servlet.http.Part; 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; -- 2.30.2