X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=org.argeo.suite.ui%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fui%2FSuiteApp.java;h=8eb9ef4ebfa71aa4f80f5749b744afb408f6e508;hp=e499463781ac7a59795839abb2a929e49c8f1286;hb=3cf66bc01bb8ad4c55139ae01be5a5bdb3759e2c;hpb=3440f51df3e4c015972c7b6a0efb3ce16188b89b 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 e499463..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.NodeUtils; +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.ui.AbstractCmsApp; -import org.argeo.cms.ui.CmsTheme; +import org.argeo.cms.jcr.CmsJcrUtils; +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; @@ -203,7 +209,7 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { } else { Session adminSession = null; try { - adminSession = NodeUtils.openDataAdminSession(getRepository(), null); + adminSession = CmsJcrUtils.openDataAdminSession(getRepository(), null); Node userDir = SuiteUtils.getOrCreateCmsSessionNode(adminSession, cmsSession); ui.initSessions(getRepository(), userDir.getPath()); } finally { @@ -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); } @@ -303,7 +309,7 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { // if (context.getPath().equals("/")) {// root node // types.add("nt:folder"); // } - if (NodeUtils.isUserHome(context) && byType.containsKey("nt:folder")) {// home node + if (CmsJcrUtils.isUserHome(context) && byType.containsKey("nt:folder")) {// home node types.add("nt:folder"); } @@ -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); @@ -520,7 +526,7 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { else { Session adminSession = null; try { - adminSession = NodeUtils.openDataAdminSession(getRepository(), workspaceName); + adminSession = CmsJcrUtils.openDataAdminSession(getRepository(), workspaceName); SuiteUtils.getOrCreateUserNode(adminSession, userDn); } finally { Jcr.logout(adminSession); @@ -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; + } + + }