X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.document.swt.core%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fswt%2Fcore%2Fwidget%2FComboWidget.java;fp=bundles%2Forg.simantics.document.swt.core%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fswt%2Fcore%2Fwidget%2FComboWidget.java;h=e013ef02531e1be08aa0230b1380f15cddf58c4f;hp=0de61cf9bf19665d2526e5db8a7ab681521025ff;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/widget/ComboWidget.java b/bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/widget/ComboWidget.java index 0de61cf9b..e013ef025 100644 --- a/bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/widget/ComboWidget.java +++ b/bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/widget/ComboWidget.java @@ -1,90 +1,90 @@ -package org.simantics.document.swt.core.widget; - -import java.util.Arrays; -import java.util.List; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.simantics.document.server.JSONObject; -import org.simantics.document.server.handler.AbstractEventHandler; -import org.simantics.document.server.io.CommandContextImpl; -import org.simantics.document.swt.core.SWTDocument; -import org.simantics.document.swt.core.base.LeafWidgetManager; -import org.simantics.document.swt.core.bean.StringList; - -public class ComboWidget extends LeafWidgetManager { - - private ModifyListener modifyListener = null; - - private StringList extractAvailable(Object o) { - if(o instanceof StringList) return (StringList)o; - if(o instanceof List) return new StringList((List)o); - if(o instanceof String[]) return new StringList((String[])o); - throw new IllegalArgumentException("Unaccepted format for available " + o.getClass().getName()); - } - - @Override - protected void doUpdateProperties(SWTDocument document, Combo combo, JSONObject object) { - - if(combo.isDisposed()) return; - - if(modifyListener != null) - combo.removeModifyListener(modifyListener); - - StringList availableList = extractAvailable(object.getJSONField("available")); - String selected = object.getJSONField("selected"); - - String[] available = availableList.strings; - String[] current = combo.getItems(); - - if(!Arrays.equals(available, current)) { - combo.clearSelection(); - combo.removeAll(); - for(String key : available) { - combo.add(key); - } - } - - int index = 0; - for(;index=0 && index < items.length) { - CommandContextImpl parameters = new CommandContextImpl(); - parameters.putString("selected", items[index]); - document.post(onModify, parameters); - } - - } - - }; - combo.addModifyListener(modifyListener); - } - return combo; - } - -} +package org.simantics.document.swt.core.widget; + +import java.util.Arrays; +import java.util.List; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.simantics.document.server.JSONObject; +import org.simantics.document.server.handler.AbstractEventHandler; +import org.simantics.document.server.io.CommandContextImpl; +import org.simantics.document.swt.core.SWTDocument; +import org.simantics.document.swt.core.base.LeafWidgetManager; +import org.simantics.document.swt.core.bean.StringList; + +public class ComboWidget extends LeafWidgetManager { + + private ModifyListener modifyListener = null; + + private StringList extractAvailable(Object o) { + if(o instanceof StringList) return (StringList)o; + if(o instanceof List) return new StringList((List)o); + if(o instanceof String[]) return new StringList((String[])o); + throw new IllegalArgumentException("Unaccepted format for available " + o.getClass().getName()); + } + + @Override + protected void doUpdateProperties(SWTDocument document, Combo combo, JSONObject object) { + + if(combo.isDisposed()) return; + + if(modifyListener != null) + combo.removeModifyListener(modifyListener); + + StringList availableList = extractAvailable(object.getJSONField("available")); + String selected = object.getJSONField("selected"); + + String[] available = availableList.strings; + String[] current = combo.getItems(); + + if(!Arrays.equals(available, current)) { + combo.clearSelection(); + combo.removeAll(); + for(String key : available) { + combo.add(key); + } + } + + int index = 0; + for(;index=0 && index < items.length) { + CommandContextImpl parameters = new CommandContextImpl(); + parameters.putString("selected", items[index]); + document.post(onModify, parameters); + } + + } + + }; + combo.addModifyListener(modifyListener); + } + return combo; + } + +}