From: Mathieu Baudier Date: Tue, 19 Sep 2023 12:07:27 +0000 (+0200) Subject: Introduce simple SWT app X-Git-Tag: v2.3.19~16 X-Git-Url: https://git.argeo.org/?a=commitdiff_plain;h=59b306feca8c82f1487a98562fc3d6a0db118337;p=lgpl%2Fargeo-commons.git Introduce simple SWT app --- 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 index 000000000..169c2d0c1 --- /dev/null +++ b/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/app/SimpleSwtApp.java @@ -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 getUiNames() { + Set 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) { + } + +}