private void editItem(final TableItem item) { NamespacedProperty expression = ((PublishEventMediatorAttributeImpl) item.getData()).getAttributeExpression(); // value type table editor valueTypeEditor = initTableEditor(valueTypeEditor, item.getParent()); cmbValueType = new Combo(item.getParent(), SWT.READ_ONLY); cmbValueType.setItems( new String[] { AttributeValueType.STRING.getLiteral(), AttributeValueType.EXPRESSION.getLiteral() }); cmbValueType.setText(item.getText(2)); valueTypeEditor.setEditor(cmbValueType, item, 2); item.getParent().redraw(); item.getParent().layout(); cmbValueType.addListener( SWT.Selection, new Listener() { public void handleEvent(Event evt) { item.setText(2, cmbValueType.getText()); } }); attributeValueEditor = initTableEditor(attributeValueEditor, item.getParent()); attributeValue = new PropertyText(item.getParent(), SWT.NONE, cmbValueType); attributeValue.addProperties(item.getText(1), expression); attributeValueEditor.setEditor(attributeValue, item, 1); item.getParent().redraw(); item.getParent().layout(); attributeValue.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent e) { item.setText(1, attributeValue.getText()); Object property = attributeValue.getProperty(); if (property instanceof NamespacedProperty) { item.setData(EXPRESSION_DATA, (NamespacedProperty) property); } } }); }
private void editItem(final TableItem item) { final ArgumentWrapper wrapper = (ArgumentWrapper) item.getData(); argumentTypeEditor = initTableEditor(argumentTypeEditor, item.getParent()); cmbArgumentType = new Combo(item.getParent(), SWT.READ_ONLY); cmbArgumentType.setItems(new String[] {LITERAL_VALUE, LITERAL_EXPRESSION}); cmbArgumentType.setText(item.getText(0)); argumentTypeEditor.setEditor(cmbArgumentType, item, 0); item.getParent().redraw(); item.getParent().layout(); cmbArgumentType.addListener( SWT.Selection, new Listener() { public void handleEvent(Event evt) { item.setText(0, cmbArgumentType.getText()); if (cmbArgumentType.getSelectionIndex() == 1) { wrapper.setExpression(true); item.setText(1, wrapper.getArgumentExpression().getPropertyValue()); String evalString = MediaType.XML.toString(); if (wrapper.getEvaluator() != null) { evalString = wrapper.getEvaluator().toString(); } item.setText(2, evalString); cmbArgumentEvaluator.setText(evalString); cmbArgumentEvaluator.setEnabled(true); } else { wrapper.setExpression(false); item.setText(1, wrapper.getArgumentValue()); item.setText(2, ""); cmbArgumentEvaluator.setText(""); cmbArgumentEvaluator.setEnabled(false); } } }); argumentValueEditor = initTableEditor(argumentValueEditor, item.getParent()); argumentValue = new PropertyText(item.getParent(), SWT.NONE, cmbArgumentType); argumentValue.addProperties(wrapper.getArgumentValue(), wrapper.getArgumentExpression()); argumentValueEditor.setEditor(argumentValue, item, 1); item.getParent().redraw(); item.getParent().layout(); argumentValue.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent e) { item.setText(1, argumentValue.getText()); Object property = argumentValue.getProperty(); if (property instanceof NamespacedProperty) { /* if (wrapper.getEvaluator() == MediaType.XML) { wrapper.setArgumentExpression((NamespacedProperty)property); } else if (wrapper.getEvaluator() == MediaType.JSON){ String modifiedText = argumentValue.getText(); NamespacedProperty namespacedProperty = (NamespacedProperty)property; namespacedProperty.setPropertyValue(modifiedText); wrapper.setArgumentExpression(namespacedProperty); }*/ wrapper.setArgumentExpression((NamespacedProperty) property); } else { wrapper.setArgumentValue(property.toString()); } } }); argumentEvaluatorEditor = initTableEditor(argumentEvaluatorEditor, item.getParent()); cmbArgumentEvaluator = new Combo(item.getParent(), SWT.READ_ONLY); cmbArgumentEvaluator.setItems(new String[] {LITERAL_XML, LITERAL_JSON}); cmbArgumentEvaluator.setText(item.getText(2)); argumentEvaluatorEditor.setEditor(cmbArgumentEvaluator, item, 2); cmbArgumentEvaluator.setEnabled(wrapper.isExpression()); item.getParent().redraw(); item.getParent().layout(); cmbArgumentEvaluator.addListener( SWT.Selection, new Listener() { public void handleEvent(Event evt) { item.setText(2, cmbArgumentEvaluator.getText()); if (cmbArgumentEvaluator.getSelectionIndex() == 0) { wrapper.setEvaluator(MediaType.XML); // argumentValue.setForcefullInlineEditing(false); } else { wrapper.setEvaluator(MediaType.JSON); // argumentValue.setForcefullInlineEditing(true); } } }); /* if (wrapper.isExpression()) { if (wrapper.getEvaluator() == MediaType.XML){ argumentValue.setForcefullInlineEditing(false); } else if (wrapper.getEvaluator() == MediaType.JSON){ argumentValue.setForcefullInlineEditing(true); } }*/ }