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) { } }