Bug 423148 - Swing: render AbstractLabelField not as JLabel
https://bugs.eclipse.org/bugs/show_bug.cgi?id=423148
Set correct colors when disabled/enabled. Backport from 4.0, original commit id was e3a5482bb9e46c869f333e631a8b1c5d17d4d294
Change-Id: I11e3bbfa9af71719d8922dcf29e1294501ad0cb4
Signed-off-by: Matthias Nick <Matthias.Nick@bsiag.com>
Reviewed-on: https://git.eclipse.org/r/23910
Tested-by: Hudson CI
diff --git a/org.eclipse.scout.rt.ui.swing.test/src/org/eclipse/scout/rt/ui/swing/form/fields/htmlfield/SwingScoutHtmlFieldUiTest.java b/org.eclipse.scout.rt.ui.swing.test/src/org/eclipse/scout/rt/ui/swing/form/fields/htmlfield/SwingScoutHtmlFieldUiTest.java
new file mode 100644
index 0000000..d124e6b
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.swing.test/src/org/eclipse/scout/rt/ui/swing/form/fields/htmlfield/SwingScoutHtmlFieldUiTest.java
@@ -0,0 +1,112 @@
+package org.eclipse.scout.rt.ui.swing.form.fields.htmlfield;
+
+import static org.easymock.EasyMock.createNiceMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.isA;
+import static org.easymock.EasyMock.replay;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.awt.Color;
+
+import org.eclipse.scout.rt.client.ui.form.fields.GridData;
+import org.eclipse.scout.rt.client.ui.form.fields.IFormField;
+import org.eclipse.scout.rt.client.ui.form.fields.htmlfield.IHtmlField;
+import org.eclipse.scout.rt.ui.swing.ISwingEnvironment;
+import org.eclipse.scout.rt.ui.swing.ext.JStatusLabelEx;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests for {@link SwingScoutHtmlField}
+ *
+ * @since 4.0.0-M7 (backported)
+ */
+public class SwingScoutHtmlFieldUiTest {
+
+ private TestSwingScoutHtmlField m_htmlfield;
+ private TestSwingScoutHtmlEditorField m_htmlEditorField;
+
+ @Before
+ public void setup() {
+ m_htmlfield = new TestSwingScoutHtmlField();
+ m_htmlfield.initializeSwing();
+
+ m_htmlEditorField = new TestSwingScoutHtmlEditorField();
+ m_htmlEditorField.initializeSwing();
+ }
+
+ @Test
+ public void testForegroundColor() {
+ m_htmlfield.setEnabledFromScout(true);
+ Color foregroundColorEnabled = m_htmlfield.getSwingHtmlField().getForeground();
+ assertNotNull(foregroundColorEnabled);
+ m_htmlfield.setEnabledFromScout(false);
+ Color backgroundColorDisabled = m_htmlfield.getSwingHtmlField().getForeground();
+ assertNotNull(backgroundColorDisabled);
+ assertNotEquals("enabled foregroundColor should be different from disabled foregroundColor", foregroundColorEnabled, backgroundColorDisabled);
+ }
+
+ @Test
+ public void testForegroundColorHtmlEditorField() {
+ m_htmlEditorField.setEnabledFromScout(true);
+ Color foregroundColorEnabled = m_htmlEditorField.getSwingHtmlField().getForeground();
+ assertNotNull(foregroundColorEnabled);
+ m_htmlEditorField.setEnabledFromScout(false);
+ Color backgroundColorDisabled = m_htmlEditorField.getSwingHtmlField().getForeground();
+ assertNotNull(backgroundColorDisabled);
+ assertNotEquals("enabled foregroundColor should be different from disabled foregroundColor", foregroundColorEnabled, backgroundColorDisabled);
+ }
+
+ @Test
+ public void testJTextPaneSelectable() {
+ m_htmlfield.setEnabledFromScout(true);
+ assertTrue("The JTextPane must be selectable by the user", m_htmlfield.getSwingHtmlField().isEnabled());
+ assertFalse("The JTextPane should not be editable", m_htmlfield.getSwingHtmlField().isEditable());
+ m_htmlfield.setEnabledFromScout(false);
+ assertTrue("The JTextPane must be selectable by the user", m_htmlfield.getSwingHtmlField().isEnabled());
+ assertFalse("The JTextPane should not be editable", m_htmlfield.getSwingHtmlField().isEditable());
+
+ m_htmlEditorField.setEnabledFromScout(true);
+ assertTrue("The JTextPane must be selectable by the user", m_htmlEditorField.getSwingHtmlField().isEnabled());
+ assertTrue("The JTextPane should be editable", m_htmlEditorField.getSwingHtmlField().isEditable());
+ m_htmlEditorField.setEnabledFromScout(false);
+ assertTrue("The JTextPane must be selectable by the user", m_htmlEditorField.getSwingHtmlField().isEnabled());
+ assertTrue("The JTextPane should be editable", m_htmlEditorField.getSwingHtmlField().isEditable());
+ }
+
+ private static class TestSwingScoutHtmlField extends SwingScoutHtmlField {
+
+ @Override
+ public IHtmlField getScoutObject() {
+ IHtmlField scoutObject = createNiceMock(IHtmlField.class);
+ expect(scoutObject.isHtmlEditor()).andReturn(false);
+ expect(scoutObject.getGridData()).andReturn(new GridData(0, 0, 0, 0, 0, 0));
+ replay(scoutObject);
+ return scoutObject;
+ }
+
+ @Override
+ public ISwingEnvironment getSwingEnvironment() {
+ ISwingEnvironment environment = createNiceMock(ISwingEnvironment.class);
+ expect(environment.createStatusLabel(isA(IFormField.class))).andReturn(new JStatusLabelEx());
+ replay(environment);
+ return environment;
+ }
+ }
+
+ private static class TestSwingScoutHtmlEditorField extends TestSwingScoutHtmlField {
+
+ @Override
+ public IHtmlField getScoutObject() {
+ IHtmlField scoutObject = createNiceMock(IHtmlField.class);
+ expect(scoutObject.isHtmlEditor()).andReturn(true);
+ expect(scoutObject.getGridData()).andReturn(new GridData(0, 0, 0, 0, 0, 0));
+ replay(scoutObject);
+ return scoutObject;
+ }
+ }
+
+}
diff --git a/org.eclipse.scout.rt.ui.swing.test/src/org/eclipse/scout/rt/ui/swing/form/fields/labelfield/SwingScoutLabelFieldTest.java b/org.eclipse.scout.rt.ui.swing.test/src/org/eclipse/scout/rt/ui/swing/form/fields/labelfield/SwingScoutLabelFieldTest.java
deleted file mode 100644
index fd39aed..0000000
--- a/org.eclipse.scout.rt.ui.swing.test/src/org/eclipse/scout/rt/ui/swing/form/fields/labelfield/SwingScoutLabelFieldTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package org.eclipse.scout.rt.ui.swing.form.fields.labelfield;
-
-import static org.junit.Assert.assertTrue;
-
-import javax.swing.JComponent;
-import javax.swing.JTextPane;
-
-import org.easymock.EasyMock;
-import org.eclipse.scout.rt.client.ui.form.fields.GridData;
-import org.eclipse.scout.rt.client.ui.form.fields.labelfield.ILabelField;
-import org.eclipse.scout.rt.ui.swing.ext.JTextPaneEx;
-import org.eclipse.scout.rt.ui.swing.text.HTMLStyledTextCreator;
-import org.eclipse.scout.rt.ui.swing.text.IStyledTextCreator;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests for {@link SwingScoutLabelField}
- *
- * @since 3.10.0-M5
- */
-public class SwingScoutLabelFieldTest {
-
- private TestSwingScoutLabelField label;
-
- @Before
- public void setup() {
- label = new TestSwingScoutLabelField();
- label.setSwingField(label.createLabelField());
- }
-
- @Test
- public void testNoWrapText() throws Exception {
- label.setTextWrapFromScout(false);
- String text = ((JTextPane) label.getSwingField()).getText();
- assertTrue(text.contains("white-space: nowrap"));
-
- label.setTextWrapFromScout(true);
- text = ((JTextPane) label.getSwingField()).getText();
- assertTrue(text.contains("white-space: normal"));
- }
-
- @Test
- public void testVerticalAlignment() {
- label.setVerticalAlignmentFromScout(0);
- String text = ((JTextPane) label.getSwingField()).getText();
- assertTrue(text.contains("valign=\"middle\""));
-
- label.setVerticalAlignmentFromScout(-1);
- text = ((JTextPane) label.getSwingField()).getText();
- assertTrue(text.contains("valign=\"top\""));
-
- label.setVerticalAlignmentFromScout(1);
- text = ((JTextPane) label.getSwingField()).getText();
- assertTrue(text.contains("valign=\"bottom\""));
- }
-
- @Test
- public void testHorizontalAlignment() {
- label.setHorizontalAlignmentFromScout(-1);
- String text = ((JTextPane) label.getSwingField()).getText();
- assertTrue(text.contains("align=\"left\""));
-
- label.setHorizontalAlignmentFromScout(0);
- text = ((JTextPane) label.getSwingField()).getText();
- assertTrue(text.contains("align=\"center\""));
-
- label.setHorizontalAlignmentFromScout(1);
- text = ((JTextPane) label.getSwingField()).getText();
- assertTrue(text.contains("align=\"right\""));
- }
-
- private static class TestSwingScoutLabelField extends SwingScoutLabelField {
-
- private IStyledTextCreator m_styledTextCreator = new HTMLStyledTextCreator();
-
- @Override
- public void setSwingField(JComponent swingField) {
- super.setSwingField(swingField);
- }
-
- @Override
- public JTextPaneEx createLabelField() {
- return super.createLabelField();
- }
-
- @Override
- protected void setTextWrapFromScout(boolean b) {
- super.setTextWrapFromScout(b);
- }
-
- @Override
- public ILabelField getScoutObject() {
- ILabelField scoutObject = EasyMock.createNiceMock(ILabelField.class);
- EasyMock.expect(scoutObject.getGridData()).andReturn(new GridData(0, 0, 0, 0, 0, 0));
- EasyMock.replay(scoutObject);
- return scoutObject;
- }
-
- @Override
- public IStyledTextCreator getStyledTextCreator() {
- return m_styledTextCreator;
- }
- }
-
-}
diff --git a/org.eclipse.scout.rt.ui.swing.test/src/org/eclipse/scout/rt/ui/swing/form/fields/labelfield/SwingScoutLabelFieldUiTest.java b/org.eclipse.scout.rt.ui.swing.test/src/org/eclipse/scout/rt/ui/swing/form/fields/labelfield/SwingScoutLabelFieldUiTest.java
new file mode 100644
index 0000000..5c0a6e1
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.swing.test/src/org/eclipse/scout/rt/ui/swing/form/fields/labelfield/SwingScoutLabelFieldUiTest.java
@@ -0,0 +1,155 @@
+package org.eclipse.scout.rt.ui.swing.form.fields.labelfield;
+
+import static org.easymock.EasyMock.createNiceMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.isA;
+import static org.easymock.EasyMock.replay;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.awt.Color;
+
+import javax.swing.JComponent;
+import javax.swing.JTextPane;
+
+import org.eclipse.scout.rt.client.ui.form.fields.GridData;
+import org.eclipse.scout.rt.client.ui.form.fields.IFormField;
+import org.eclipse.scout.rt.client.ui.form.fields.labelfield.ILabelField;
+import org.eclipse.scout.rt.ui.swing.ISwingEnvironment;
+import org.eclipse.scout.rt.ui.swing.ext.JStatusLabelEx;
+import org.eclipse.scout.rt.ui.swing.text.HTMLStyledTextCreator;
+import org.eclipse.scout.rt.ui.swing.text.IStyledTextCreator;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests for {@link SwingScoutLabelField}
+ *
+ * @since 3.10.0-M5
+ */
+public class SwingScoutLabelFieldUiTest {
+
+ private static final int LABEL_HORIZONTAL_ALIGNMENT_LEFT = -1;
+ private static final int LABEL_HORIZONTAL_ALIGNMENT_CENTER = 0;
+ private static final int LABEL_HORIZONTAL_ALIGNMENT_RIGHT = 1;
+ private static final int LABEL_VERTICAL_ALIGNMENT_TOP = -1;
+ private static final int LABEL_VERTICAL_ALIGNMENT_MIDDLE = 0;
+ private static final int LABEL_VERTICAL_ALIGNMENT_BOTTOM = 1;
+
+ private TestSwingScoutLabelField m_label;
+
+ @Before
+ public void setup() {
+ m_label = new TestSwingScoutLabelField();
+ m_label.setSwingField(m_label.createLabelField());
+ m_label.initializeSwing();
+ }
+
+ @Test
+ public void testNoWrapText() throws Exception {
+ m_label.setTextWrapFromScout(false);
+ String text = ((JTextPane) m_label.getSwingField()).getText();
+ assertTrue(text.contains("white-space: nowrap"));
+
+ m_label.setTextWrapFromScout(true);
+ text = ((JTextPane) m_label.getSwingField()).getText();
+ assertTrue(text.contains("white-space: normal"));
+ }
+
+ @Test
+ public void testVerticalAlignment() {
+ m_label.setVerticalAlignmentFromScout(LABEL_VERTICAL_ALIGNMENT_MIDDLE);
+ String text = ((JTextPane) m_label.getSwingField()).getText();
+ assertTrue(text.contains("valign=\"middle\""));
+
+ m_label.setVerticalAlignmentFromScout(LABEL_VERTICAL_ALIGNMENT_TOP);
+ text = ((JTextPane) m_label.getSwingField()).getText();
+ assertTrue(text.contains("valign=\"top\""));
+
+ m_label.setVerticalAlignmentFromScout(LABEL_VERTICAL_ALIGNMENT_BOTTOM);
+ text = ((JTextPane) m_label.getSwingField()).getText();
+ assertTrue(text.contains("valign=\"bottom\""));
+ }
+
+ @Test
+ public void testHorizontalAlignment() {
+ m_label.setHorizontalAlignmentFromScout(LABEL_HORIZONTAL_ALIGNMENT_LEFT);
+ String text = ((JTextPane) m_label.getSwingField()).getText();
+ assertTrue(text.contains("align=\"left\""));
+
+ m_label.setHorizontalAlignmentFromScout(LABEL_HORIZONTAL_ALIGNMENT_CENTER);
+ text = ((JTextPane) m_label.getSwingField()).getText();
+ assertTrue(text.contains("align=\"center\""));
+
+ m_label.setHorizontalAlignmentFromScout(LABEL_HORIZONTAL_ALIGNMENT_RIGHT);
+ text = ((JTextPane) m_label.getSwingField()).getText();
+ assertTrue(text.contains("align=\"right\""));
+ }
+
+ @Test
+ public void testForegroundColor() {
+ m_label.setEnabledFromScout(true);
+ Color enabledForegroundColor = m_label.getSwingLabelField().getForeground();
+ assertNotNull(enabledForegroundColor);
+
+ m_label.setEnabledFromScout(false);
+ Color disabledForegroundColor = m_label.getSwingLabelField().getForeground();
+ assertNotNull(disabledForegroundColor);
+
+ assertNotEquals("enabled foregroundColor should be different from disabled foregroundColor", enabledForegroundColor, disabledForegroundColor);
+ }
+
+ @Test
+ public void testSelectable() {
+ m_label.setEnabledFromScout(true);
+ assertTrue("JTextPaneEx should be enabled, otherwise text selecion is not possible", m_label.getSwingLabelField().isEnabled());
+ m_label.setEnabledFromScout(false);
+ assertTrue("JTextPaneEx should be enabled, otherwise text selecion is not possible", m_label.getSwingLabelField().isEnabled());
+
+ m_label.setSelectableFromScout(true);
+ assertNotNull(m_label.getSwingLabelField().getHighlighter());
+ assertNotNull(m_label.getSwingLabelField().getTransferHandler());
+
+ m_label.setSelectableFromScout(false);
+ assertNull(m_label.getSwingLabelField().getHighlighter());
+ assertNull(m_label.getSwingLabelField().getTransferHandler());
+
+ m_label.setSelectableFromScout(true);
+ assertNotNull(m_label.getSwingLabelField().getHighlighter());
+ assertNotNull(m_label.getSwingLabelField().getTransferHandler());
+ }
+
+ private static class TestSwingScoutLabelField extends SwingScoutLabelField {
+
+ private IStyledTextCreator m_styledTextCreator = new HTMLStyledTextCreator();
+
+ @Override
+ public void setSwingField(JComponent swingField) {
+ super.setSwingField(swingField);
+ }
+
+ @Override
+ public ILabelField getScoutObject() {
+ ILabelField scoutObject = createNiceMock(ILabelField.class);
+ expect(scoutObject.getGridData()).andReturn(new GridData(0, 0, 0, 0, 0, 0));
+ replay(scoutObject);
+ return scoutObject;
+ }
+
+ @Override
+ public ISwingEnvironment getSwingEnvironment() {
+ ISwingEnvironment environment = createNiceMock(ISwingEnvironment.class);
+ expect(environment.createStatusLabel(isA(IFormField.class))).andReturn(new JStatusLabelEx());
+ replay(environment);
+ return environment;
+ }
+
+ @Override
+ public IStyledTextCreator getStyledTextCreator() {
+ return m_styledTextCreator;
+ }
+ }
+
+}
diff --git a/org.eclipse.scout.rt.ui.swing.test/src/org/eclipse/scout/rt/ui/swing/form/fields/mailfield/SwingScoutMailFieldUiTest.java b/org.eclipse.scout.rt.ui.swing.test/src/org/eclipse/scout/rt/ui/swing/form/fields/mailfield/SwingScoutMailFieldUiTest.java
new file mode 100644
index 0000000..3f273c7
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.swing.test/src/org/eclipse/scout/rt/ui/swing/form/fields/mailfield/SwingScoutMailFieldUiTest.java
@@ -0,0 +1,77 @@
+package org.eclipse.scout.rt.ui.swing.form.fields.mailfield;
+
+import static org.easymock.EasyMock.createNiceMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.isA;
+import static org.easymock.EasyMock.replay;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.awt.Color;
+
+import org.eclipse.scout.rt.client.ui.form.fields.GridData;
+import org.eclipse.scout.rt.client.ui.form.fields.IFormField;
+import org.eclipse.scout.rt.client.ui.form.fields.mailfield.IMailField;
+import org.eclipse.scout.rt.ui.swing.ISwingEnvironment;
+import org.eclipse.scout.rt.ui.swing.ext.JStatusLabelEx;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests for {@link SwingScoutMailFieldField}
+ *
+ * @since 4.0.0-M7 (backported)
+ */
+public class SwingScoutMailFieldUiTest {
+
+ private TestSwingScoutMailField m_mailfield;
+
+ @Before
+ public void setup() {
+ m_mailfield = new TestSwingScoutMailField();
+ m_mailfield.initializeSwing();
+ }
+
+ @Test
+ public void testForegroundColor() {
+ m_mailfield.setEnabledFromScout(true);
+ Color foregroundColorEnabled = m_mailfield.getSwingMailField().getForeground();
+ assertNotNull(foregroundColorEnabled);
+ m_mailfield.setEnabledFromScout(false);
+ Color backgroundColorDisabled = m_mailfield.getSwingMailField().getForeground();
+ assertNotNull(backgroundColorDisabled);
+ assertNotEquals("enabled foregroundColor should be different from disabled foregroundColor", foregroundColorEnabled, backgroundColorDisabled);
+ }
+
+ @Test
+ public void testJTextPaneSelectable() {
+ m_mailfield.setEnabledFromScout(true);
+ assertTrue("The JTextPane must be selectable by the user", m_mailfield.getSwingMailField().isEnabled());
+ assertFalse("The JTextPane should not be editable", m_mailfield.getSwingMailField().isEditable());
+ m_mailfield.setEnabledFromScout(false);
+ assertTrue("The JTextPane must be selectable by the user", m_mailfield.getSwingMailField().isEnabled());
+ assertFalse("The JTextPane should not be editable", m_mailfield.getSwingMailField().isEditable());
+ }
+
+ private static class TestSwingScoutMailField extends SwingScoutMailField {
+
+ @Override
+ public IMailField getScoutObject() {
+ IMailField scoutObject = createNiceMock(IMailField.class);
+ expect(scoutObject.isMailEditor()).andReturn(false);
+ expect(scoutObject.getGridData()).andReturn(new GridData(0, 0, 0, 0, 0, 0));
+ replay(scoutObject);
+ return scoutObject;
+ }
+
+ @Override
+ public ISwingEnvironment getSwingEnvironment() {
+ ISwingEnvironment environment = createNiceMock(ISwingEnvironment.class);
+ expect(environment.createStatusLabel(isA(IFormField.class))).andReturn(new JStatusLabelEx());
+ replay(environment);
+ return environment;
+ }
+ }
+}
diff --git a/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/ext/JTextPaneEx.java b/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/ext/JTextPaneEx.java
index a5b4224..a1be1f8 100644
--- a/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/ext/JTextPaneEx.java
+++ b/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/ext/JTextPaneEx.java
@@ -4,7 +4,7 @@
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
- *
+ *
* Contributors:
* BSI Business Systems Integration AG - initial API and implementation
******************************************************************************/
@@ -23,18 +23,21 @@
private static final long serialVersionUID = 1L;
+ /**
+ * This property is set from the Scout Model. It will determine the foreground color of the JTextPane. If
+ * <code>true</code> the default text color will be shown, if <code>false</code> the disabled text color will be
+ * shown.
+ */
+ private boolean m_enabledFromScout;
+
public JTextPaneEx() {
super();
+ setEnabled(true);
}
- /**
- * Deep inside swing the text field editor View.class is only checking for
- * isEnable() This is not changeable by a LookAndFeel. This is handled in the
- * corresponding ...Ex sub classes of JTextComponent
- */
@Override
public Color getForeground() {
- if (isEditable()) {
+ if (m_enabledFromScout) {
return super.getForeground();
}
else {
@@ -55,6 +58,20 @@
}
@Override
+ public void setEnabled(boolean enabled) {
+ m_enabledFromScout = enabled;
+ }
+
+ /**
+ * Always return <code>true</code> so that the JTextPane stays selectable. If we would return <code>false</code> the
+ * JTextPane's content would not be selectable anymore
+ */
+ @Override
+ public boolean isEnabled() {
+ return true;
+ }
+
+ @Override
public Point getToolTipLocation(MouseEvent e) {
return SwingUtility.getAdjustedToolTipLocation(e, this, getTopLevelAncestor());
}
diff --git a/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/form/fields/htmlfield/SwingScoutHtmlField.java b/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/form/fields/htmlfield/SwingScoutHtmlField.java
index c935225..cdbfba6 100644
--- a/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/form/fields/htmlfield/SwingScoutHtmlField.java
+++ b/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/form/fields/htmlfield/SwingScoutHtmlField.java
@@ -295,6 +295,7 @@
protected void setEnabledFromScout(boolean b) {
super.setEnabledFromScout(b);
m_htmlView.setEditable(getScoutObject().isHtmlEditor());
+ m_htmlView.setEnabled(b);
if (m_htmlView.getCaret() instanceof DefaultCaret) {
// enable / disable caret update according to editability.
((DefaultCaret) m_htmlView.getCaret()).setUpdatePolicy(getScoutObject().isHtmlEditor() ? DefaultCaret.UPDATE_WHEN_ON_EDT : DefaultCaret.NEVER_UPDATE);
diff --git a/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/form/fields/labelfield/SwingScoutLabelField.java b/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/form/fields/labelfield/SwingScoutLabelField.java
index aaa83eb..67202fb 100644
--- a/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/form/fields/labelfield/SwingScoutLabelField.java
+++ b/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/form/fields/labelfield/SwingScoutLabelField.java
@@ -97,6 +97,7 @@
protected void setEnabledFromScout(boolean b) {
super.setEnabledFromScout(b);
getSwingLabelField().setEditable(false); //JTextPane is never editable!
+ getSwingLabelField().setEnabled(b);
updateTextInGUI();
}
diff --git a/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/form/fields/mailfield/SwingScoutMailField.java b/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/form/fields/mailfield/SwingScoutMailField.java
index 70e54e0..c6bd5f0 100644
--- a/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/form/fields/mailfield/SwingScoutMailField.java
+++ b/org.eclipse.scout.rt.ui.swing/src/org/eclipse/scout/rt/ui/swing/form/fields/mailfield/SwingScoutMailField.java
@@ -435,6 +435,7 @@
protected void setEnabledFromScout(boolean b) {
// super.setEnabledFromScout(b);
m_htmlView.setEditable(getScoutObject().isMailEditor());
+ m_htmlView.setEnabled(b);
}
protected void setAddressesFromScout(Address[] addresses, String addressKey, boolean invisibleWhenEmpty) {