X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=swt%2Forg.argeo.app.swt%2Fsrc%2Forg%2Fargeo%2Fapp%2Fswt%2Fterms%2FTermsEntryArea.java;h=7ae2531f413f048712f65cfb7aea6d7240c173e6;hb=59ba52ac31cac753961fe9e2e55bbae21735ea96;hp=2193a3cc581690303ecbe1ed66089da55682cb1a;hpb=ad42f2e927cb1eea17db610e76e13f0ac11b6080;p=gpl%2Fargeo-suite.git diff --git a/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/TermsEntryArea.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/TermsEntryArea.java index 2193a3c..7ae2531 100644 --- a/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/TermsEntryArea.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/terms/TermsEntryArea.java @@ -1,22 +1,70 @@ package org.argeo.app.swt.terms; import org.argeo.api.acr.Content; +import org.argeo.api.acr.NamespaceUtils; +import org.argeo.api.acr.spi.ProvidedContent; +import org.argeo.api.cms.ux.CmsView; +import org.argeo.app.api.EntityType; +import org.argeo.app.api.TermsManager; +import org.argeo.app.ux.SuiteUxEvent; +import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.acr.SwtUiProvider; -import org.eclipse.swt.SWT; +import org.argeo.cms.swt.widgets.SwtTreeView; +import org.argeo.cms.ux.acr.ContentHierarchicalPart; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; /** Entry area for managing the typologies. */ public class TermsEntryArea implements SwtUiProvider { + private TermsManager termsManager; @Override public Control createUiPart(Composite parent, Content content) { +// parent.setLayout(new GridLayout()); +// Label lbl = new Label(parent, SWT.NONE); +// lbl.setText("Typologies"); +// +// Set typologies = termsManager.getTypologies(); +// for (Typology typology : typologies) { +// new Label(parent, 0).setText(typology.getId()); +// } +// +// +// return lbl; + CmsView cmsView = CmsSwtUtils.getCmsView(parent); + parent.setLayout(new GridLayout()); - Label lbl = new Label(parent, SWT.NONE); - lbl.setText("Typologies"); - return lbl; + Content rootContent = ((ProvidedContent) content).getSession().getRepository().get().get("/terms"); + + ContentHierarchicalPart contentPart = new ContentHierarchicalPart() { + + @Override + protected boolean isLeaf(Content content) { + if (content.hasContentClass(EntityType.document.qName())) + return true; + return super.isLeaf(content); + } + + }; + contentPart.addColumn((c) -> NamespaceUtils.toPrefixedName(c.getName())); + contentPart.setInput(rootContent); + + SwtTreeView view = new SwtTreeView<>(parent, 0, contentPart); + view.setLayoutData(CmsSwtUtils.fillAll()); + + contentPart.setInput(rootContent); +// contentPart.onSelected((o) -> { +// Content c = (Content) o; +//// log.debug(c.getPath()); +// cmsView.sendEvent(SuiteUxEvent.refreshPart.topic(), SuiteUxEvent.eventProperties(c)); +// }); + return view; + + } + + public void setTermsManager(TermsManager termsManager) { + this.termsManager = termsManager; } }