From: Mathieu Baudier Date: Sun, 14 Feb 2021 07:33:03 +0000 (+0100) Subject: Improve read-only terms parts. X-Git-Tag: argeo-suite-2.1.21~1^2~4 X-Git-Url: http://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=commitdiff_plain;h=d2bb04928fea1e04bf13b97f6dec89100b01325f Improve read-only terms parts. --- 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 1d9b6bc..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 @@ -27,7 +27,7 @@ public abstract class AbstractTermsPart extends StyledControl implements Editabl protected final TermsManager termsManager; protected final Typology typology; - protected final boolean editable; + private final boolean editable; private CmsIcon deleteIcon; private CmsIcon addIcon; @@ -37,7 +37,7 @@ 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) { super(parent, style, item); if (item == null) @@ -49,6 +49,10 @@ public abstract class AbstractTermsPart extends StyledControl implements Editabl 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); diff --git a/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/MultiTermsPart.java b/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/MultiTermsPart.java index 9c3618d..711596f 100644 --- a/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/MultiTermsPart.java +++ b/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/MultiTermsPart.java @@ -55,7 +55,7 @@ public class MultiTermsPart extends AbstractTermsPart { String display = getTermLabel(value); lbl.setText(display); CmsUiUtils.style(lbl, style == null ? FormStyle.propertyText.style() : style); - if (editable) + if (isEditable()) lbl.addMouseListener((MouseDoubleClick) (e) -> { startEditing(); }); @@ -79,7 +79,7 @@ public class MultiTermsPart extends AbstractTermsPart { } } else {// empty - if (editable && !isEditing()) { + if (isEditable() && !isEditing()) { ToolBar toolBar = new ToolBar(placeholder, SWT.HORIZONTAL); ToolItem addItem = new ToolItem(toolBar, SWT.FLAT); styleAdd(addItem); diff --git a/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/SingleTermPart.java b/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/SingleTermPart.java index 0dcf13d..4be4d02 100644 --- a/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/SingleTermPart.java +++ b/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/SingleTermPart.java @@ -101,17 +101,20 @@ public class SingleTermPart extends AbstractTermsPart { String display = getTermLabel(currentValue); lbl.setText(display); CmsUiUtils.style(lbl, style == null ? FormStyle.propertyText.style() : style); - - lbl.addMouseListener((MouseDoubleClick) (e) -> { - startEditing(); - }); + if (isEditable()) { + lbl.addMouseListener((MouseDoubleClick) (e) -> { + startEditing(); + }); + } } else { - ToolBar toolBar = new ToolBar(block, SWT.HORIZONTAL); - ToolItem addItem = new ToolItem(toolBar, SWT.FLAT); - styleAdd(addItem); - addItem.addSelectionListener((Selected) (e) -> { - startEditing(); - }); + if (isEditable()) { + ToolBar toolBar = new ToolBar(block, SWT.HORIZONTAL); + ToolItem addItem = new ToolItem(toolBar, SWT.FLAT); + styleAdd(addItem); + addItem.addSelectionListener((Selected) (e) -> { + startEditing(); + }); + } } return block; }