Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Leicht2011-08-05 09:29:54 +0000
committerStephan Leicht2011-08-05 09:29:54 +0000
commit3f3cc9c59a620b4cc06852f7092eb53c4ac435fe (patch)
tree7adf6d1feb0992c156a28fdff13ad016c32a5b12
parentf77842e2bbc01c67b7e972d2a56f134078bd118f (diff)
downloadorg.eclipse.scout.rt-3f3cc9c59a620b4cc06852f7092eb53c4ac435fe.tar.gz
org.eclipse.scout.rt-3f3cc9c59a620b4cc06852f7092eb53c4ac435fe.tar.xz
org.eclipse.scout.rt-3f3cc9c59a620b4cc06852f7092eb53c4ac435fe.zip
RESOLVED - bug 353977 / bsi ticket #104'820: SWT: Checkboxes do seam to disappear in a SequenceBox
https://bugs.eclipse.org/bugs/show_bug.cgi?id=353977
-rw-r--r--org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/checkbox/ISwtScoutCheckbox.java4
-rw-r--r--org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/checkbox/SwtScoutCheckbox.java6
-rw-r--r--org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/sequencebox/SwtScoutSequenceBox.java56
3 files changed, 61 insertions, 5 deletions
diff --git a/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/checkbox/ISwtScoutCheckbox.java b/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/checkbox/ISwtScoutCheckbox.java
index 35cb2837df..8e51fbd84b 100644
--- a/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/checkbox/ISwtScoutCheckbox.java
+++ b/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/checkbox/ISwtScoutCheckbox.java
@@ -4,13 +4,14 @@
* 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
******************************************************************************/
package org.eclipse.scout.rt.ui.swt.form.fields.checkbox;
import org.eclipse.scout.rt.client.ui.form.fields.booleanfield.IBooleanField;
+import org.eclipse.scout.rt.ui.swt.ext.ILabelComposite;
import org.eclipse.scout.rt.ui.swt.form.fields.ISwtScoutFormField;
import org.eclipse.swt.widgets.Button;
@@ -24,4 +25,5 @@ public interface ISwtScoutCheckbox extends ISwtScoutFormField<IBooleanField> {
@Override
Button getSwtField();
+ ILabelComposite getPlaceholderLabel();
}
diff --git a/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/checkbox/SwtScoutCheckbox.java b/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/checkbox/SwtScoutCheckbox.java
index c23ecd3c5b..671c853725 100644
--- a/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/checkbox/SwtScoutCheckbox.java
+++ b/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/checkbox/SwtScoutCheckbox.java
@@ -15,6 +15,7 @@ import org.eclipse.scout.commons.exception.IProcessingStatus;
import org.eclipse.scout.rt.client.ui.form.fields.booleanfield.IBooleanField;
import org.eclipse.scout.rt.ui.swt.LogicalGridData;
import org.eclipse.scout.rt.ui.swt.LogicalGridLayout;
+import org.eclipse.scout.rt.ui.swt.ext.ILabelComposite;
import org.eclipse.scout.rt.ui.swt.ext.StatusLabelEx;
import org.eclipse.scout.rt.ui.swt.form.fields.LogicalGridDataBuilder;
import org.eclipse.scout.rt.ui.swt.form.fields.SwtScoutValueFieldComposite;
@@ -127,6 +128,11 @@ public class SwtScoutCheckbox extends SwtScoutValueFieldComposite<IBooleanField>
}
@Override
+ public ILabelComposite getPlaceholderLabel() {
+ return m_labelPlaceholder;
+ }
+
+ @Override
protected void setLabelVisibleFromScout() {
boolean b = getScoutObject().isLabelVisible();
if (m_labelPlaceholder != null && b != m_labelPlaceholder.getVisible()) {
diff --git a/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/sequencebox/SwtScoutSequenceBox.java b/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/sequencebox/SwtScoutSequenceBox.java
index 43d1ec25b4..e74f6a48c8 100644
--- a/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/sequencebox/SwtScoutSequenceBox.java
+++ b/org.eclipse.scout.rt.ui.swt/src/org/eclipse/scout/rt/ui/swt/form/fields/sequencebox/SwtScoutSequenceBox.java
@@ -16,6 +16,7 @@ import java.beans.PropertyChangeListener;
import org.eclipse.scout.commons.exception.IProcessingStatus;
import org.eclipse.scout.rt.client.ui.form.fields.IFormField;
import org.eclipse.scout.rt.client.ui.form.fields.IValueField;
+import org.eclipse.scout.rt.client.ui.form.fields.checkbox.ICheckBox;
import org.eclipse.scout.rt.client.ui.form.fields.sequencebox.ISequenceBox;
import org.eclipse.scout.rt.ui.swt.LogicalGridData;
import org.eclipse.scout.rt.ui.swt.LogicalGridLayout;
@@ -25,6 +26,7 @@ import org.eclipse.scout.rt.ui.swt.extension.UiDecorationExtensionPoint;
import org.eclipse.scout.rt.ui.swt.form.fields.ISwtScoutFormField;
import org.eclipse.scout.rt.ui.swt.form.fields.SwtScoutFieldComposite;
import org.eclipse.scout.rt.ui.swt.form.fields.SwtScoutFormFieldGridData;
+import org.eclipse.scout.rt.ui.swt.form.fields.checkbox.ISwtScoutCheckbox;
import org.eclipse.scout.rt.ui.swt.util.SwtLayoutUtility;
import org.eclipse.swt.widgets.Composite;
@@ -47,12 +49,58 @@ public class SwtScoutSequenceBox extends SwtScoutFieldComposite<ISequenceBox> im
getEnvironment().getFormToolkit().getFormToolkit().adapt(label, false, false);
Composite fieldContainer = getEnvironment().getFormToolkit().createComposite(container);
+ int visibleCount = 0;
for (IFormField scoutField : getScoutObject().getFields()) {
ISwtScoutFormField swtFormField = getEnvironment().createFormField(fieldContainer, scoutField);
- // remove label fixed width hint
- ILabelComposite childLabel = swtFormField.getSwtLabel();
- if (childLabel != null && childLabel.getLayoutData() instanceof LogicalGridData) {
- ((LogicalGridData) childLabel.getLayoutData()).widthHint = 0;
+
+ if (!(swtFormField.getScoutObject() instanceof ICheckBox)) {
+ // remove label fixed width hint
+ ILabelComposite childLabel = swtFormField.getSwtLabel();
+ if (childLabel != null && childLabel.getLayoutData() instanceof LogicalGridData) {
+ ((LogicalGridData) childLabel.getLayoutData()).widthHint = 0;
+ // <bsh 2010-10-01>
+ // Force an empty, but visible label for all but the first visible fields
+ // within an SequenceBox. This empty status label is necessary to show the
+ // "mandatory" indicator.
+ if (swtFormField.getScoutObject() instanceof IFormField) {
+ IFormField myScoutObject = ((IFormField) swtFormField.getScoutObject());
+ if (myScoutObject.isVisible()) {
+ visibleCount++;
+ }
+ if (visibleCount > 1) {
+ if (!childLabel.getVisible()) {
+ // make the label visible, but clear any text
+ childLabel.setVisible(true);
+ childLabel.setText("");
+ }
+ }
+ }
+ // <bsh>
+ }
+ }
+ // If swtFormField is a checkbox the placeholder-label has to be handeld
+ else {
+ // remove label fixed width hint
+ ILabelComposite childLabel = ((ISwtScoutCheckbox) swtFormField).getPlaceholderLabel();
+ if (childLabel != null && childLabel.getLayoutData() instanceof LogicalGridData) {
+ ((LogicalGridData) childLabel.getLayoutData()).widthHint = 0;
+ // <bsh 2010-10-01>
+ // Force an empty, but visible label for all but the first visible fields
+ // within an SequenceBox. This empty status label is necessary to show the
+ // "mandatory" indicator.
+ IFormField myScoutObject = ((IFormField) swtFormField.getScoutObject());
+ if (myScoutObject.isVisible()) {
+ visibleCount++;
+ }
+ if (visibleCount > 1) {
+ if (!childLabel.getVisible()) {
+ // make the label visible, but clear any text
+ childLabel.setVisible(true);
+ childLabel.setText("");
+ }
+ }
+ // <bsh>
+ }
}
// create layout constraints
SwtScoutFormFieldGridData data = new SwtScoutFormFieldGridData(scoutField) {

Back to the top