X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=eclipse%2Forg.argeo.cms.swt%2Fsrc%2Forg%2Fargeo%2Fcms%2Fswt%2Fapp%2FAcrContentTreeView.java;fp=eclipse%2Forg.argeo.cms.swt%2Fsrc%2Forg%2Fargeo%2Fcms%2Fswt%2Fapp%2FAcrContentTreeView.java;h=cb339929f1042c1e1963edbabe73254b96b13a9a;hb=43dc6cd030cab486347ffef4d339406bee7a8dec;hp=9d7b83ab18377925b905897bad51267493ca5974;hpb=54dac5debb27cc585200b3117b99f3de0015efef;p=lgpl%2Fargeo-commons.git diff --git a/eclipse/org.argeo.cms.swt/src/org/argeo/cms/swt/app/AcrContentTreeView.java b/eclipse/org.argeo.cms.swt/src/org/argeo/cms/swt/app/AcrContentTreeView.java index 9d7b83ab1..cb339929f 100644 --- a/eclipse/org.argeo.cms.swt/src/org/argeo/cms/swt/app/AcrContentTreeView.java +++ b/eclipse/org.argeo.cms.swt/src/org/argeo/cms/swt/app/AcrContentTreeView.java @@ -1,18 +1,22 @@ package org.argeo.cms.swt.app; +import static org.argeo.api.acr.NamespaceUtils.toPrefixedName; + import java.util.ArrayList; import java.util.List; import javax.xml.namespace.QName; import org.argeo.api.acr.Content; +import org.argeo.api.acr.NamespaceUtils; import org.argeo.cms.swt.CmsSwtUtils; -import org.argeo.cms.swt.acr.SwtContentHierarchicalPart; +import org.argeo.cms.swt.widgets.SwtHierarchicalPart; import org.argeo.cms.swt.widgets.SwtTabularPart; +import org.argeo.cms.ux.acr.ContentHierarchicalPart; import org.argeo.cms.ux.widgets.Column; +import org.argeo.cms.ux.widgets.DefaultTabularPart; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; -import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; public class AcrContentTreeView extends Composite { @@ -20,51 +24,47 @@ public class AcrContentTreeView extends Composite { private Content rootContent; - private Content selected; +// private Content selected; public AcrContentTreeView(Composite parent, int style, Content content) { super(parent, style); this.rootContent = content; - this.selected = rootContent; + // this.selected = rootContent; setLayout(CmsSwtUtils.noSpaceGridLayout()); SashForm split = new SashForm(this, SWT.HORIZONTAL); split.setLayoutData(CmsSwtUtils.fillAll()); - SwtContentHierarchicalPart hPart = new SwtContentHierarchicalPart(split, getStyle()); - Composite area = new Composite(split, SWT.NONE); + ContentHierarchicalPart contentPart = new ContentHierarchicalPart(); + contentPart.setInput(rootContent); + + SwtHierarchicalPart hPart = new SwtHierarchicalPart<>(split, getStyle(), contentPart); + + Composite area = new Composite(split, SWT.BORDER); area.setLayout(CmsSwtUtils.noSpaceGridLayout(2)); split.setWeights(new int[] { 30, 70 }); // attributes - SwtTabularPart attributesPart = new SwtTabularPart(area, SWT.NONE) { - List data; + DefaultTabularPart attributesPart = new DefaultTabularPart<>() { @Override - protected Object getData(int row) { - return data.get(row); - } - - @Override - protected int getItemCount() { - data = new ArrayList<>(selected.keySet()); - return data.size(); + protected List asList(Content input) { + return new ArrayList<>(input.keySet()); } }; - attributesPart.getArea().setLayoutData(CmsSwtUtils.fillHeight()); attributesPart.addColumn(new Column() { @Override public String getText(QName model) { - return model.toString(); + return toPrefixedName(model); } }); attributesPart.addColumn(new Column() { @Override public String getText(QName model) { - return selected.get(model).toString(); + return attributesPart.getInput().get(model).toString(); } @Override @@ -73,38 +73,40 @@ public class AcrContentTreeView extends Composite { } }); + // attributesPart.setInput(selected); - // types - SwtTabularPart typesPart = new SwtTabularPart(area, SWT.NONE) { - List data; + SwtTabularPart attributeTable = new SwtTabularPart<>(area, style, attributesPart); + attributeTable.setLayoutData(CmsSwtUtils.fillAll()); - @Override - protected Object getData(int row) { - return data.get(row); - } + // types + DefaultTabularPart typesPart = new DefaultTabularPart<>() { @Override - protected int getItemCount() { - data = new ArrayList<>(selected.getContentClasses()); - return data.size(); + protected List asList(Content input) { + return input.getContentClasses(); } }; typesPart.addColumn(new Column() { @Override public String getText(QName model) { - return model.toString(); + return toPrefixedName(model); } + }); - typesPart.getArea().setLayoutData(CmsSwtUtils.fillHeight()); + + // typesPart.setInput(selected); + + SwtTabularPart typesTable = new SwtTabularPart<>(area, style, typesPart); + typesTable.setLayoutData(CmsSwtUtils.fillAll()); // controller - hPart.setInput(rootContent); - hPart.onSelected((o) -> { + contentPart.setInput(rootContent); + contentPart.onSelected((o) -> { Content c = (Content) o; - selected = c; - attributesPart.refresh(); - typesPart.refresh(); +// selected = c; + attributesPart.setInput(c); + typesPart.setInput(c); }); attributesPart.refresh();