X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=swt%2Frcp%2Forg.argeo.cms.swt.rcp%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Frcp%2FCmsRcpApp.java;h=a88ff3824fa07c2ee2d02d093104ce0ad93060fd;hb=3b45f571938e0eb6803084aac3f2bd298e6026ba;hp=e25a9f71149b66d0aaf2168e4f0fe31e936e8e92;hpb=7b242851c0094d13cbaca5b68261ad92c873a59f;p=lgpl%2Fargeo-commons.git diff --git a/swt/rcp/org.argeo.cms.swt.rcp/src/org/argeo/cms/ui/rcp/CmsRcpApp.java b/swt/rcp/org.argeo.cms.swt.rcp/src/org/argeo/cms/ui/rcp/CmsRcpApp.java index e25a9f711..a88ff3824 100644 --- a/swt/rcp/org.argeo.cms.swt.rcp/src/org/argeo/cms/ui/rcp/CmsRcpApp.java +++ b/swt/rcp/org.argeo.cms.swt.rcp/src/org/argeo/cms/ui/rcp/CmsRcpApp.java @@ -3,7 +3,6 @@ package org.argeo.cms.ui.rcp; import java.io.IOException; import java.io.InputStream; import java.security.PrivilegedAction; -import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -13,13 +12,12 @@ import javax.security.auth.login.LoginException; import org.argeo.api.cms.CmsApp; import org.argeo.api.cms.CmsAuth; +import org.argeo.api.cms.CmsEventBus; import org.argeo.api.cms.CmsLog; import org.argeo.api.cms.CmsSession; -import org.argeo.api.cms.ux.CmsImageManager; import org.argeo.api.cms.ux.CmsTheme; -import org.argeo.api.cms.ux.CmsUi; import org.argeo.api.cms.ux.CmsView; -import org.argeo.api.cms.ux.UxContext; +import org.argeo.cms.swt.AbstractSwtCmsView; import org.argeo.cms.swt.CmsSwtUtils; import org.eclipse.e4.ui.css.core.engine.CSSEngine; import org.eclipse.e4.ui.css.core.engine.CSSErrorHandler; @@ -27,39 +25,24 @@ import org.eclipse.e4.ui.css.swt.engine.CSSSWTEngineImpl; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; -import org.osgi.service.event.Event; -import org.osgi.service.event.EventAdmin; /** Runs a {@link CmsApp} as an SWT desktop application. */ @SuppressWarnings("restriction") -public class CmsRcpApp implements CmsView { +public class CmsRcpApp extends AbstractSwtCmsView implements CmsView { private final static CmsLog log = CmsLog.getLog(CmsRcpApp.class); - // private BundleContext bundleContext = - // FrameworkUtil.getBundle(CmsRcpApp.class).getBundleContext(); - private Shell shell; private CmsApp cmsApp; - // CMS View - private String uid; - private LoginContext loginContext; - - private EventAdmin eventAdmin; - private CSSEngine cssEngine; - private CmsUi ui; - // TODO make it configurable - private String uiName = "desktop"; - public CmsRcpApp(String uiName) { + super(uiName); uid = UUID.randomUUID().toString(); - this.uiName = uiName; } public void initRcpApp() { - Display display = Display.getCurrent(); + display = Display.getCurrent(); shell = new Shell(display); shell.setText("Argeo CMS"); Composite parent = shell; @@ -115,16 +98,6 @@ public class CmsRcpApp implements CmsView { * CMS VIEW */ - @Override - public String getUid() { - return uid; - } - - @Override - public UxContext getUxContext() { - throw new UnsupportedOperationException(); - } - @Override public void navigateTo(String state) { throw new UnsupportedOperationException(); @@ -149,35 +122,12 @@ public class CmsRcpApp implements CmsView { log.error("Unexpected exception in CMS RCP", e); } - @Override - public CmsImageManager getImageManager() { - throw new UnsupportedOperationException(); - } - @Override public CmsSession getCmsSession() { CmsSession cmsSession = cmsApp.getCmsContext().getCmsSession(getSubject()); return cmsSession; } - @Override - public Object getData(String key) { - if (ui != null) { - return ui.getData(key); - } else { - throw new IllegalStateException("UI is not initialized"); - } - } - - @Override - public void setData(String key, Object value) { - if (ui != null) { - ui.setData(key, value); - } else { - throw new IllegalStateException("UI is not initialized"); - } - } - @Override public boolean isAnonymous() { return false; @@ -189,27 +139,18 @@ public class CmsRcpApp implements CmsView { cssEngine.applyStyles(node, true); } - @Override - public void sendEvent(String topic, Map properties) { - if (properties == null) - properties = new HashMap<>(); - if (properties.containsKey(CMS_VIEW_UID_PROPERTY) && !properties.get(CMS_VIEW_UID_PROPERTY).equals(uid)) - throw new IllegalArgumentException("Property " + CMS_VIEW_UID_PROPERTY + " is set to another CMS view uid (" - + properties.get(CMS_VIEW_UID_PROPERTY) + ") then " + uid); - properties.put(CMS_VIEW_UID_PROPERTY, uid); - eventAdmin.sendEvent(new Event(topic, properties)); - } - - public T doAs(PrivilegedAction action) { - return Subject.doAs(getSubject(), action); + public Shell getShell() { + return shell; } - protected Subject getSubject() { - return loginContext.getSubject(); + @Override + public CmsEventBus getCmsEventBus() { + return cmsApp.getCmsContext().getCmsEventBus(); } - public Shell getShell() { - return shell; + @Override + public CmsApp getCmsApp() { + return cmsApp; } /* @@ -223,8 +164,4 @@ public class CmsRcpApp implements CmsView { this.cmsApp = null; } - public void setEventAdmin(EventAdmin eventAdmin) { - this.eventAdmin = eventAdmin; - } - }