-package org.simantics.document.linking.views;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Collection;\r
-import java.util.Collections;\r
-import java.util.List;\r
-\r
-import org.eclipse.swt.custom.CCombo;\r
-import org.eclipse.swt.widgets.Display;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.common.NamedResource;\r
-\r
-public abstract class ModelToComboListener implements org.simantics.db.procedure.Listener<Collection<NamedResource>> {\r
- \r
- /**\r
- * \r
- */\r
- private CCombo combo;\r
- private boolean disposed = false;\r
- \r
- public ModelToComboListener(CCombo combo) {\r
- this.combo = combo;\r
- }\r
- \r
- public abstract Resource getCurrentModel();\r
- \r
- @Override\r
- public void execute(final Collection<NamedResource> result) {\r
- Display.getDefault().asyncExec(new Runnable() {\r
- \r
- @Override\r
- public void run() {\r
- if(combo.isDisposed()) {\r
- disposed = true;\r
- return;\r
- }\r
- \r
- List<NamedResource> models = new ArrayList<NamedResource>();\r
- models.addAll(result);\r
- Collections.sort(models);\r
- \r
- int index = -1;\r
- \r
- //populate the combo\r
- combo.removeAll();\r
- index = -1;\r
- int i = 0; \r
- for (NamedResource model : models) {\r
- combo.add(model.getName());\r
- combo.setData(Integer.toString(i), model.getResource());\r
- if (model.getResource().equals(getCurrentModel()))\r
- index = i;\r
- i++;\r
- }\r
- \r
- // restore the selection\r
- if (index >= 0) {\r
- combo.select(index);\r
- }\r
- loaded();\r
- }\r
- });\r
- \r
- }\r
- \r
- public void loaded() {\r
- \r
- }\r
- \r
- @Override\r
- public void exception(Throwable t) {\r
- \r
- }\r
- \r
- @Override\r
- public boolean isDisposed() {\r
- return disposed || combo.isDisposed();\r
- }\r
- \r
- public void dispose() {\r
- disposed = true;\r
- }\r
+package org.simantics.document.linking.views;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.widgets.Display;
+import org.simantics.db.Resource;
+import org.simantics.db.common.NamedResource;
+
+public abstract class ModelToComboListener implements org.simantics.db.procedure.Listener<Collection<NamedResource>> {
+
+ /**
+ *
+ */
+ private CCombo combo;
+ private boolean disposed = false;
+
+ public ModelToComboListener(CCombo combo) {
+ this.combo = combo;
+ }
+
+ public abstract Resource getCurrentModel();
+
+ @Override
+ public void execute(final Collection<NamedResource> result) {
+ Display.getDefault().asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ if(combo.isDisposed()) {
+ disposed = true;
+ return;
+ }
+
+ List<NamedResource> models = new ArrayList<NamedResource>();
+ models.addAll(result);
+ Collections.sort(models);
+
+ int index = -1;
+
+ //populate the combo
+ combo.removeAll();
+ index = -1;
+ int i = 0;
+ for (NamedResource model : models) {
+ combo.add(model.getName());
+ combo.setData(Integer.toString(i), model.getResource());
+ if (model.getResource().equals(getCurrentModel()))
+ index = i;
+ i++;
+ }
+
+ // restore the selection
+ if (index >= 0) {
+ combo.select(index);
+ }
+ loaded();
+ }
+ });
+
+ }
+
+ public void loaded() {
+
+ }
+
+ @Override
+ public void exception(Throwable t) {
+
+ }
+
+ @Override
+ public boolean isDisposed() {
+ return disposed || combo.isDisposed();
+ }
+
+ public void dispose() {
+ disposed = true;
+ }