/** * Converts a list represented by DataValue to a list of values as a comma delimited StringValue * @param dataValue DataValue representing a list object * @return the list converted to a comma delimited StringValue */ private StringValue convertDataValueToStringValue(DataValue dataValue) { StringBuffer sbValue = new StringBuffer(); Data data = dataValue.get(); Iterator<Property> propertyIterator = data.realPropertyIterator(); while(propertyIterator.hasNext()){ Property property = propertyIterator.next(); String propertyValue = property.getValue(); sbValue.append(","); sbValue.append(propertyValue); } StringValue stringValue = new StringValue(sbValue.toString().substring(1)); return stringValue; }
@Override public void setValue(Value value) { clear(); if (value != null) { try { if (value instanceof DataValue) { Data data = ((DataValue) value).get(); Iterator<Property> iter = data.realPropertyIterator(); while (iter.hasNext()) { Property p = iter.next(); setSingleValue(p.getValue()); } } else { setSingleValue(value.get()); } } catch (ClassCastException cce) { String errorMsg = "ClassCastException in KSSelectedList.java::setValue \n " + "Trying to cast Value from: " + value.getClass().getName() + "\n " + "TO DataValue.java. \n Value was of type " + value.getType().getName() + "\n "; try { errorMsg += "Value=[" + value.get().toString() + "]"; } catch (Exception ex) { errorMsg += "Error printing error value: " + ex.getMessage(); } throw new ClassCastException(errorMsg); } } }
@Override public void exec(Widget widget) { ((KSSelectItemWidgetAbstract)widget).clear(); if (value != null){ if (value instanceof String || value instanceof StringValue) { String itemId = (String)(value instanceof String ? value:((StringValue)value).get()); ((KSSelectItemWidgetAbstract)widget).selectItem(itemId); } else if (value instanceof Data || value instanceof DataValue) { Data data = (Data)(value instanceof Data ? value:((DataValue)value).get()); for (Iterator itr = data.iterator(); itr.hasNext();) { Property p = (Property) itr.next(); ((KSSelectItemWidgetAbstract)widget).selectItem((String) p.getValue()); } } } } };
public void setValue(final Value value, boolean fireEvents) { if (basicWidget instanceof KSTextBox || basicWidget instanceof KSLabel) { if(value != null){ ((HasText)basicWidget).setText((String) value.get()); } else{ ((HasText)basicWidget).setText(""); } } else if (basicWidget instanceof KSSuggestBox) { //Do check here if(value != null){ if(!config.isRepeating){ ((KSSuggestBox) basicWidget).setValue((String)value.get(), fireEvents); } else{ DataValue dataValue = (DataValue)value; Data d = dataValue.get(); QueryPath path = QueryPath.parse("0"); String v = d.query(path); ((KSSuggestBox) basicWidget).setValue((String)v, fireEvents); } } else{ ((KSSuggestBox) basicWidget).setValue("", fireEvents); } } else if(basicWidget instanceof KSSelectItemWidgetAbstract) { SelectItemWidgetBinding.INSTANCE.setWidgetValue((KSSelectItemWidgetAbstract)basicWidget, value); } } public String getDisplayValue() {
@Override public void onClick(ClickEvent event) { Value v = picker.getValue(); if (v instanceof DataValue) { Data d = ((DataValue) picker.getValue()).get(); Iterator<Property> iter = d.realPropertyIterator(); while (iter.hasNext()) { Property p = iter.next(); String s = p.getValue(); KSItemLabel selectedItem = createItem(s, picker.getDisplayValue(), hasDetails); addItem(selectedItem); } } else { String s = v.get(); KSItemLabel selectedItem = createItem(s, picker.getDisplayValue(), hasDetails); addItem(selectedItem); } picker.clear(); addItemButton.setEnabled(false); } });