X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.ui%2Fsrc%2Forg%2Fargeo%2Fapp%2Fui%2FSuiteApp.java;h=271010dbd32c226fd3efc996b8aacc0b75714bbb;hb=446d637e8e7c48edce93f11de493fdf22171eb3e;hp=d59edd59969ba9e79a27bd2f91809d47159ec240;hpb=e2156d0cc52962cec52bf2bd57eca6093f7877bf;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java b/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java index d59edd5..271010d 100644 --- a/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java +++ b/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java @@ -40,8 +40,8 @@ import org.argeo.cms.acr.ContentUtils; import org.argeo.cms.jcr.CmsJcrUtils; import org.argeo.cms.jcr.acr.JcrContent; import org.argeo.cms.swt.CmsSwtUtils; +import org.argeo.cms.swt.acr.SwtUiProvider; import org.argeo.cms.swt.dialogs.CmsFeedback; -import org.argeo.cms.ui.CmsUiProvider; import org.argeo.cms.ux.CmsUxUtils; import org.argeo.eclipse.ui.specific.UiContext; import org.argeo.jcr.JcrException; @@ -80,8 +80,9 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { @Deprecated private String defaultThemeId = "org.argeo.app.theme.default"; - private Map> uiProvidersByPid = Collections.synchronizedMap(new HashMap<>()); - private Map> uiProvidersByType = Collections.synchronizedMap(new HashMap<>()); + // TODO use QName as key for byType + private Map> uiProvidersByPid = Collections.synchronizedMap(new HashMap<>()); + private Map> uiProvidersByType = Collections.synchronizedMap(new HashMap<>()); private Map> layersByPid = Collections.synchronizedSortedMap(new TreeMap<>()); private Map> layersByType = Collections.synchronizedSortedMap(new TreeMap<>()); @@ -191,9 +192,9 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { ProvidedSession contentSession = (ProvidedSession) CmsUxUtils.getContentSession(contentRepository, cmsView); - CmsUiProvider headerUiProvider = findUiProvider(headerPid); - CmsUiProvider footerUiProvider = findUiProvider(footerPid); - CmsUiProvider leadPaneUiProvider; + SwtUiProvider headerUiProvider = findUiProvider(headerPid); + SwtUiProvider footerUiProvider = findUiProvider(footerPid); + SwtUiProvider leadPaneUiProvider; if (adminUiName.equals(uiName)) { leadPaneUiProvider = findUiProvider(adminLeadPanePid); } else { @@ -277,12 +278,12 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { } - private void refreshPart(CmsUiProvider uiProvider, Composite part, Content context) { + private void refreshPart(SwtUiProvider uiProvider, Composite part, Content context) { CmsSwtUtils.clear(part); uiProvider.createUiPart(part, context); } - private CmsUiProvider findUiProvider(String pid) { + private SwtUiProvider findUiProvider(String pid) { if (!uiProvidersByPid.containsKey(pid)) return null; return uiProvidersByPid.get(pid).get(); @@ -362,8 +363,9 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { if (byType.containsKey(type)) types.add(type); } - if (types.size() == 0) + if (types.size() == 0) { throw new IllegalArgumentException("No type found for " + content + " (" + objectClasses + ")"); + } String type = types.iterator().next(); if (!byType.containsKey(type)) throw new IllegalArgumentException("No component found for " + content + " with type " + type); @@ -496,7 +498,7 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { Content node = getNode(ui, event); if (node == null) return; - CmsUiProvider uiProvider = findByType(uiProvidersByType, node); + SwtUiProvider uiProvider = findByType(uiProvidersByType, node); SuiteLayer layer = findByType(layersByType, node); ui.switchToLayer(layer, node); layer.view(uiProvider, ui.getCurrentWorkArea(), node); @@ -505,7 +507,7 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { Content node = getNode(ui, event); if (node == null) return; - CmsUiProvider uiProvider = findByType(uiProvidersByType, node); + SwtUiProvider uiProvider = findByType(uiProvidersByType, node); SuiteLayer layer = findByType(layersByType, node); ui.switchToLayer(layer, node); layer.open(uiProvider, ui.getCurrentWorkArea(), node); @@ -549,8 +551,8 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { } } } catch (Exception e) { - log.error("Cannot handle event " + event, e); -// CmsView.getCmsView(ui).exception(e); + CmsFeedback.show("Cannot handle event " + event, e); +// log.error("Cannot handle event " + event, e); } }); } @@ -622,7 +624,7 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { * Dependency injection. */ - public void addUiProvider(CmsUiProvider uiProvider, Map properties) { + public void addUiProvider(SwtUiProvider uiProvider, Map properties) { if (properties.containsKey(Constants.SERVICE_PID)) { String pid = (String) properties.get(Constants.SERVICE_PID); RankedObject.putIfHigherRank(uiProvidersByPid, pid, uiProvider, properties); @@ -634,11 +636,11 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { } } - public void removeUiProvider(CmsUiProvider uiProvider, Map properties) { + public void removeUiProvider(SwtUiProvider uiProvider, Map properties) { if (properties.containsKey(Constants.SERVICE_PID)) { String pid = (String) properties.get(Constants.SERVICE_PID); if (uiProvidersByPid.containsKey(pid)) { - if (uiProvidersByPid.get(pid).equals(new RankedObject(uiProvider, properties))) { + if (uiProvidersByPid.get(pid).equals(new RankedObject(uiProvider, properties))) { uiProvidersByPid.remove(pid); } } @@ -647,7 +649,7 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { List types = LangUtils.toStringList(properties.get(EntityConstants.TYPE)); for (String type : types) { if (uiProvidersByType.containsKey(type)) { - if (uiProvidersByType.get(type).equals(new RankedObject(uiProvider, properties))) { + if (uiProvidersByType.get(type).equals(new RankedObject(uiProvider, properties))) { uiProvidersByType.remove(type); } }