X-Git-Url: http://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=core%2Forg.argeo.entity.ui%2Fsrc%2Forg%2Fargeo%2Fentity%2Fui%2Fforms%2FAbstractTermsPart.java;h=36ae2746f8a5e83d74b1205ec961a2cc8987dd70;hp=f2ea75633019eb4bcd23d794d94d22cc0356279f;hb=d2bb04928fea1e04bf13b97f6dec89100b01325f;hpb=7e65fae4930ad9073360ba8edba1fb4d9636579a diff --git a/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/AbstractTermsPart.java b/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/AbstractTermsPart.java index f2ea756..36ae274 100644 --- a/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/AbstractTermsPart.java +++ b/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/AbstractTermsPart.java @@ -2,16 +2,21 @@ package org.argeo.entity.ui.forms; import javax.jcr.Item; +import org.argeo.cms.Localized; import org.argeo.cms.ui.CmsTheme; import org.argeo.cms.ui.util.CmsIcon; +import org.argeo.cms.ui.util.CmsUiUtils; import org.argeo.cms.ui.viewers.EditablePart; import org.argeo.cms.ui.widgets.ContextOverlay; import org.argeo.cms.ui.widgets.StyledControl; +import org.argeo.entity.Term; import org.argeo.entity.TermsManager; +import org.argeo.entity.Typology; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.ToolItem; @@ -20,9 +25,9 @@ import org.eclipse.swt.widgets.ToolItem; public abstract class AbstractTermsPart extends StyledControl implements EditablePart { private static final long serialVersionUID = -5497097995341927710L; protected final TermsManager termsManager; - protected final String typology; + protected final Typology typology; - protected final boolean editable; + private final boolean editable; private CmsIcon deleteIcon; private CmsIcon addIcon; @@ -32,19 +37,22 @@ public abstract class AbstractTermsPart extends StyledControl implements Editabl private Composite highlight; protected final CmsTheme theme; - - public AbstractTermsPart(Composite parent, int style, Item item, TermsManager termsManager, - String typology) { + + public AbstractTermsPart(Composite parent, int style, Item item, TermsManager termsManager, String typology) { super(parent, style, item); - if(item==null) + if (item == null) throw new IllegalArgumentException("Item cannot be null"); this.termsManager = termsManager; - this.typology = typology; + this.typology = termsManager.getTypology(typology); this.theme = CmsTheme.getCmsTheme(parent); editable = !(SWT.READ_ONLY == (style & SWT.READ_ONLY)); highlightColor = parent.getDisplay().getSystemColor(SWT.COLOR_GRAY); } + public boolean isEditable() { + return editable; + } + protected void createHighlight(Composite block) { highlight = new Composite(block, SWT.NONE); highlight.setBackground(highlightColor); @@ -55,18 +63,30 @@ public abstract class AbstractTermsPart extends StyledControl implements Editabl } - protected String getTermLabel(String name) { - return name; + protected String getTermLabel(Term term) { + if (term instanceof Localized) + return ((Localized) term).lead(); + else + return term.getName(); + } protected abstract void refresh(ContextOverlay contextArea, String filter, Text txt); - protected boolean isTermSelectable(String term) { + protected boolean isTermSelectable(Term term) { return true; } - protected void processTermListLabel(String term, Label label) { + protected void processTermListLabel(Term term, Label label) { + + } + + protected void setControlLayoutData(Control control) { + control.setLayoutData(CmsUiUtils.fillAll()); + } + protected void setContainerLayoutData(Composite composite) { + composite.setLayoutData(CmsUiUtils.fillAll()); } //