Introduce simple SWT app
authorMathieu Baudier <mbaudier@argeo.org>
Tue, 19 Sep 2023 12:07:27 +0000 (14:07 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Tue, 19 Sep 2023 12:07:27 +0000 (14:07 +0200)
swt/org.argeo.cms.swt/src/org/argeo/cms/swt/app/SimpleSwtApp.java [new file with mode: 0644]

diff --git a/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/app/SimpleSwtApp.java b/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/app/SimpleSwtApp.java
new file mode 100644 (file)
index 0000000..169c2d0
--- /dev/null
@@ -0,0 +1,52 @@
+package org.argeo.cms.swt.app;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.argeo.api.cms.CmsApp;
+import org.argeo.api.cms.ux.CmsUi;
+import org.argeo.cms.AbstractCmsApp;
+import org.argeo.cms.swt.CmsSwtUi;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+
+/** Simplifies creating a simple {@link CmsApp} based on SWT. */
+public class SimpleSwtApp extends AbstractCmsApp {
+       protected final static String DEFAULT_UI_NAME = "app";
+
+       protected void createDefaultUi(Composite parent) {
+
+       }
+
+       protected void createUi(String uiName, Composite parent) {
+               if (DEFAULT_UI_NAME.equals(uiName)) {
+                       createDefaultUi(parent);
+               }
+       }
+
+       @Override
+       public Set<String> getUiNames() {
+               Set<String> uiNames = new HashSet<>();
+               uiNames.add(DEFAULT_UI_NAME);
+               return uiNames;
+       }
+
+       @Override
+       public CmsUi initUi(Object uiParent) {
+               Composite parent = (Composite) uiParent;
+               String uiName = parent.getData(UI_NAME_PROPERTY) != null ? parent.getData(UI_NAME_PROPERTY).toString() : null;
+               CmsSwtUi cmsUi = new CmsSwtUi(parent, SWT.NONE);
+               if (uiName != null)
+                       createUi(uiName, cmsUi);
+               return cmsUi;
+       }
+
+       @Override
+       public void refreshUi(CmsUi cmsUi, String state) {
+       }
+
+       @Override
+       public void setState(CmsUi cmsUi, String state) {
+       }
+
+}