Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfilion2011-05-10 13:18:41 +0000
committerpfilion2011-05-10 13:18:41 +0000
commitd271ffb857e6b439a95eecf6be2f3a3c54162091 (patch)
tree6db8c2ea9d38d025e01d98d1a9d10d31fbfe5c68
parentb99e47e6f31194535cec93cc348f3f41118a89e4 (diff)
downloadwebtools.dali-d271ffb857e6b439a95eecf6be2f3a3c54162091.tar.gz
webtools.dali-d271ffb857e6b439a95eecf6be2f3a3c54162091.tar.xz
webtools.dali-d271ffb857e6b439a95eecf6be2f3a3c54162091.zip
Fix for bug 345011. It seems Combo.setText() does not update the selected item, so instead of doing setText(), setSelecionIndex() sets the selected index and the text.
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ComboModelAdapter.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ComboModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ComboModelAdapter.java
index 39794a9cc7..ea9513f387 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ComboModelAdapter.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/ComboModelAdapter.java
@@ -9,6 +9,7 @@
******************************************************************************/
package org.eclipse.jpt.common.ui.internal.swt;
+import org.eclipse.jpt.common.utility.internal.ArrayTools;
import org.eclipse.jpt.common.utility.internal.StringConverter;
import org.eclipse.jpt.common.utility.model.value.ListValueModel;
import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;
@@ -204,7 +205,17 @@ public class ComboModelAdapter<E> extends AbstractComboModelAdapter<E> {
else {
this.selectedItem = null;
}
- this.combo.setText(item);
+
+ int selectedIndex = ArrayTools.indexOf(this.combo.getItems(), item);
+
+ // Select the item so combo.getSelectionIndex() does not return -1
+ if (selectedIndex > -1) {
+ this.combo.select(selectedIndex);
+ }
+ // In case some text is set even if there are no items
+ else {
+ this.combo.setText(item);
+ }
}
}
}

Back to the top