use of org.talend.designer.webservice.data.OutPutMappingData in project tdi-studio-se by Talend.
the class DropTargetListenerForWebService method drop.
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.dnd.DropTargetListener#drop(org.eclipse.swt.dnd.DropTargetEvent)
*/
public void drop(DropTargetEvent event) {
if (getTransfer().isSupportedType(event.currentDataType)) {
// boolean canRemove = true;
// Parameter pa = TableEntriesTransfer.getInstance().getParameter();
Table draggableTable = (Table) draggableControl;
Point point = new Point(event.x, event.y);
int selevIndex = TableUtils.getItemIndexWhereInsertFromPosition(draggableTable, point);
if (selevIndex < 0) {
return;
}
TableItem tabitem = TableEntriesTransfer.getInstance().getTableItem();
if (tabitem == null) {
return;
}
ExtendedTableModel tabelModel = draggableControlView.getExtendedTableModel();
if (tabelModel.getBeansList().size() == 0 || tabelModel.getBeansList().size() == selevIndex) {
// }
return;
} else if (tabelModel.getBeansList().size() > 0) {
if (tabelModel.getBeansList().size() < selevIndex) {
return;
}
Object objData = tabelModel.getBeansList().get(selevIndex);
if (objData instanceof InputMappingData) {
InputMappingData inData = (InputMappingData) objData;
IMetadataColumn inputColumn = null;
if (tabitem.getData() instanceof IMetadataColumn) {
inputColumn = (IMetadataColumn) tabitem.getData();
List<IMetadataColumn> columnList = inData.getMetadataColumnList();
if (inData.getInputColumnValue() == null || "".equals(inData.getInputColumnValue())) {
inData.setInputColumnValue(connector.initInRoWName() + "." + inputColumn.getLabel());
columnList.add(inputColumn);
} else {
inData.setInputColumnValue(inData.getInputColumnValue() + " " + connector.initInRoWName() + "." + inputColumn.getLabel());
columnList.add(inputColumn);
}
}
tabelModel.remove(selevIndex);
tabelModel.add(inData, selevIndex);
} else if (objData instanceof OutPutMappingData) {
OutPutMappingData outData = (OutPutMappingData) objData;
if (tabitem.getData() instanceof ParameterInfo) {
ParameterInfo para = (ParameterInfo) tabitem.getData();
if (outData.getParameterName() == null || "".equals(outData.getParameterName())) {
if (para.getParent() != null) {
String name = new ParameterInfoUtil().getParentName(para);
outData.setParameterName(name);
} else {
outData.setParameterName(para.getName());
}
} else {
outData.setParameterName(outData.getParameterName() + " " + para.getName());
}
outData.getParameterList().add(para);
// outData.setParameter(para);
} else if (tabitem.getData() instanceof OutPutMappingData) {
if (((OutPutMappingData) tabitem.getData()).getParameter() instanceof ParameterInfo) {
ParameterInfo para = ((OutPutMappingData) tabitem.getData()).getParameter();
if (outData.getParameterName() == null || "".equals(outData.getParameterName())) {
if (para.getParent() != null) {
String name = "";
if (((OutPutMappingData) tabitem.getData()).getParameterName() != null) {
name = ((OutPutMappingData) tabitem.getData()).getParameterName();
} else {
name = new ParameterInfoUtil().getParentName(para);
}
outData.setParameterName(name);
} else {
outData.setParameterName(para.getName());
}
} else {
outData.setParameterName(outData.getParameterName() + " " + para.getName());
}
outData.getParameterList().add(para);
// outData.setParameter(para);
}
}
tabelModel.remove(selevIndex);
tabelModel.add(outData, selevIndex);
}
}
TableItem[] items = draggableTable.getSelection();
if (items.length <= 0) {
return;
}
TableItem itemTarget = items[0];
itemTarget.setChecked(true);
createLinks(itemTarget, tabitem, tabelModel.getName());
}
}
use of org.talend.designer.webservice.data.OutPutMappingData in project tdi-studio-se by Talend.
the class WebServiceTableLiner method onXPathValueChanged.
public void onXPathValueChanged(Table sourceTable, Table targetTable, String oldValue, String newValue, String inComeName, int itemIndex) {
TableItem tabletraItem = targetTable.getItem(itemIndex);
boolean needAddLink = true;
TableItem[] items = sourceTable.getItems();
List<TableItem> itemList = new ArrayList<TableItem>();
for (int i = 0; i < items.length; i++) {
String columnLabel = null;
IMetadataColumn column = null;
ParameterInfo parame = null;
if (items[i].getData() instanceof IMetadataColumn) {
column = (IMetadataColumn) items[i].getData();
columnLabel = column.getLabel();
} else // }
if (items[i].getData() instanceof OutPutMappingData) {
parame = ((OutPutMappingData) items[i].getData()).getParameter();
if (!parame.getParameterInfos().isEmpty()) {
continue;
}
// columnLabel = parame.getName();
columnLabel = ((OutPutMappingData) items[i].getData()).getParameterName();
int m = columnLabel.lastIndexOf(".");
columnLabel = columnLabel.substring(m + 1);
}
if (newValue.contains(columnLabel)) {
// if (!pattern(columnLabel, newValue)) {
if (inComeName != null) {
WebServiceExpressionParser webParser = new WebServiceExpressionParser("\\s*(\\w+)\\s*\\.\\s*(\\w+)\\s*");
Map<String, String> itemNamemap = webParser.parseInTableEntryLocations(newValue);
Set<Entry<String, String>> set = itemNamemap.entrySet();
Iterator<Entry<String, String>> ite = set.iterator();
while (ite.hasNext()) {
Entry<String, String> entry = ite.next();
String columnValue = entry.getKey();
String rowValue = entry.getValue();
if (!isPatternWord(inComeName + "." + columnLabel, rowValue + "." + columnValue)) {
linksManager.removeLinksFromDataItem2(tabletraItem.getData());
if (tabletraItem.getData() instanceof InputMappingData) {
InputMappingData data = (InputMappingData) tabletraItem.getData();
List<IMetadataColumn> list = data.getMetadataColumnList();
if (column != null) {
list.remove(column);
}
}
needAddLink = false;
for (TableItem item : itemList) {
addLinks(item, item.getData(), targetTable, tabletraItem.getData(), "INPUTMAPPING");
}
getBackgroundRefresher().refreshBackground();
// return;
}
}
} else {
WebServiceExpressionParser webParser = new WebServiceExpressionParser("\\s*\\w+(\\[\\d+?\\])?\\s*");
Set<String> set = webParser.parseOutTableEntryLocations(newValue);
Iterator<String> ite = set.iterator();
while (ite.hasNext()) {
String columnValue = ite.next();
// if (columnValue.equals(columnLabel)) {
if (!isPatternWord(columnLabel, columnValue)) {
linksManager.removeLinksFromDataItem2(tabletraItem.getData());
OutPutMappingData data = (OutPutMappingData) tabletraItem.getData();
if (parame != null) {
data.getParameterList().remove(parame);
}
needAddLink = false;
for (TableItem item : itemList) {
addLinks(item, item.getData(), targetTable, tabletraItem.getData(), "OUTPUTMAPPING");
}
getBackgroundRefresher().refreshBackground();
// return;
// }
}
}
}
if (true) {
// if (!mark) {
if (inComeName != null) {
WebServiceExpressionParser webParser = new WebServiceExpressionParser("\\s*(\\w+)\\s*\\.\\s*(\\w+)\\s*");
Map<String, String> itemNamemap = webParser.parseInTableEntryLocations(newValue);
Set<Entry<String, String>> set = itemNamemap.entrySet();
Iterator<Entry<String, String>> ite = set.iterator();
while (ite.hasNext()) {
Entry<String, String> entry = ite.next();
String columnValue = entry.getKey();
String rowValue = entry.getValue();
if (isPatternWord(inComeName + "." + columnLabel, rowValue + "." + columnValue)) {
itemList.add(items[i]);
addLinks(items[i], items[i].getData(), targetTable, tabletraItem.getData(), "INPUTMAPPING");
getBackgroundRefresher().refreshBackground();
if (tabletraItem.getData() instanceof InputMappingData) {
InputMappingData data = (InputMappingData) tabletraItem.getData();
List<IMetadataColumn> list = data.getMetadataColumnList();
if (column != null && !list.contains(column)) {
list.add(column);
}
}
}
}
} else {
WebServiceExpressionParser webParser = new WebServiceExpressionParser("\\s*\\w+(\\[\\d+?\\])?\\s*");
Set<String> set = webParser.parseOutTableEntryLocations(newValue);
Iterator<String> ite = set.iterator();
while (ite.hasNext()) {
String columnValue = ite.next();
if (isPatternWord(columnLabel, columnValue)) {
itemList.add(items[i]);
addLinks(items[i], items[i].getData(), targetTable, tabletraItem.getData(), "OUTPUTMAPPING");
getBackgroundRefresher().refreshBackground();
}
}
}
}
} else if (oldValue.contains(columnLabel)) {
linksManager.removeLinksFromDataItem2(tabletraItem.getData());
if (tabletraItem.getData() instanceof InputMappingData) {
InputMappingData data = (InputMappingData) tabletraItem.getData();
List<IMetadataColumn> list = data.getMetadataColumnList();
if (column != null) {
list.remove(column);
}
} else if (tabletraItem.getData() instanceof OutPutMappingData) {
OutPutMappingData data = (OutPutMappingData) tabletraItem.getData();
if (parame != null) {
data.getParameterList().remove(parame);
}
}
for (TableItem item : itemList) {
if (inComeName != null) {
addLinks(item, item.getData(), targetTable, tabletraItem.getData(), "INPUTMAPPING");
} else {
addLinks(item, item.getData(), targetTable, tabletraItem.getData(), "OUTPUTMAPPING");
}
}
getBackgroundRefresher().refreshBackground();
}
}
// createFieldLinks(newValue, tableItem, null);
}
use of org.talend.designer.webservice.data.OutPutMappingData in project tdi-studio-se by Talend.
the class WebServiceTableLiner method addLinks.
public void addLinks(TableItem itemSource, Object data1, Table tableTarget, Object data2, String mark) {
LinkDescriptor<TableItem, Object, Table, Object> link = new LinkDescriptor<TableItem, Object, Table, Object>(new TableExtremityDescriptor(itemSource, data1), new ExtremityLink<Table, Object>(tableTarget, data2));
link.setStyleLink(createStandardLink(new Color(getBgDrawableComposite().getDisplay(), 255, 102, 102)));
getLinksManager().addLink(link);
if (mark.equals("INPUTMAPPING")) {
sourceInList.add(((IMetadataColumn) itemSource.getData()).getLabel());
} else if (mark.equals("OUTPUTMAPPING")) {
if (((OutPutMappingData) itemSource.getData()).getParameterName() != null) {
String sourseName = ((OutPutMappingData) itemSource.getData()).getParameterName();
// int m = sourseName.lastIndexOf(".");
// sourseName = sourseName.substring(m + 1);
sourceOutList.add(sourseName);
} else {
sourceOutList.add(((OutPutMappingData) itemSource.getData()).getParameter().getName());
}
}
}
use of org.talend.designer.webservice.data.OutPutMappingData in project tdi-studio-se by Talend.
the class WebServiceDialog method saveValue.
private void saveValue() {
List<InputMappingData> inputList = webServiceUI.getInputParams();
List<OutPutMappingData> outputList = webServiceUI.getOutputParams();
String currentURL = webServiceUI.getURL();
List<PortNames> allPortNames = webServiceUI.getAllPortNames();
Function function = webServiceUI.getCurrentFunction();
PortNames currePortName = webServiceUI.getCurrentPortName();
List<OutPutMappingData> outEleList = webServiceUI.getOutputElement();
Set<String> insourceList = webServiceUI.getInSourceList();
Set<String> outsourceList = webServiceUI.getOutSourceList();
IMetadataTable inputMetaCopy = webServiceUI.getInputMetaCopy();
IMetadataTable outputMetaCopy = webServiceUI.getOutputMetaCopy();
IMetadataTable inputMetadata = webServiceUI.getInputMetadata();
IMetadataTable outputMetadata = webServiceUI.getOutputMetadata();
List<IMetadataColumn> inputmetadata = webServiceUI.getInputValue();
WebServiceComponent wenCom = webServiceComponentMain.getWebServiceComponent();
IMetadataTable wenMetadata = wenCom.getMetadataFromConnector("OUTPUT");
if (wenMetadata != null && outputMetadata != wenMetadata) {
outputMetadata = wenMetadata;
}
// save schema.
if (outputMetaCopy != null) {
if (!outputMetaCopy.sameMetadataAs(outputMetadata, IMetadataColumn.OPTIONS_NONE)) {
outputMetadata.getListColumns().clear();
outputMetadata.getListColumns().addAll(outputMetaCopy.getListColumns());
}
}
if (!"".equals(currentURL) && currentURL != null) {
IElementParameter ENDPOINTPara = wenCom.getElementParameter("ENDPOINT");
ENDPOINTPara.setValue(currentURL);
}
if (currePortName != null) {
IElementParameter Port_Name = wenCom.getElementParameter("PORT_NAME");
Port_Name.setValue(currePortName.getPortName());
} else if (currePortName == null && !allPortNames.isEmpty()) {
currePortName = allPortNames.get(0);
IElementParameter Port_Name = wenCom.getElementParameter("PORT_NAME");
Port_Name.setValue(currePortName.getPortName());
}
if (function != null) {
if (function.getName() != null) {
IElementParameter METHODPara = wenCom.getElementParameter("METHOD");
METHODPara.setValue(function.getName());
}
if (function.getServerNameSpace() != null) {
IElementParameter Service_NS = wenCom.getElementParameter("SERVICE_NS");
Service_NS.setValue(function.getServerNameSpace());
}
if (function.getServerName() != null) {
IElementParameter Service_Name = wenCom.getElementParameter("SERVICE_NAME");
Service_Name.setValue(function.getServerName());
}
if (function.getServerNameSpace() != null) {
IElementParameter Port_NS = wenCom.getElementParameter("PORT_NS");
Port_NS.setValue(function.getServerNameSpace());
}
// IElementParameter ADDRESSLocation = wenCom.getElementParameter("ADDRESS_LOCATION");
// ADDRESSLocation.setValue(function.getAddressLocation());
}
// save input
IElementParameter INPUT_PARAMSPara = wenCom.getElementParameter("INPUT_PARAMS");
List<Map<String, String>> inputparaValue = (List<Map<String, String>>) INPUT_PARAMSPara.getValue();
if (inputparaValue == null) {
inputparaValue = new ArrayList<Map<String, String>>();
} else {
inputparaValue.clear();
}
for (InputMappingData inputData : inputList) {
Map<String, String> inputMap = new HashMap<String, String>(2);
if (inputData.getInputColumnValue() != null) {
inputMap.put("EXPRESSION", inputData.getInputColumnValue());
}
if (inputData.getParameterName() != null) {
String name = inputData.getParameterName();
if (!name.equals("")) {
inputMap.put("ELEMENT", name);
}
} else if (inputData.getParameterName() == null && inputData.getParameter() != null) {
if (inputData.getParameter().getParent() != null) {
String name = new ParameterInfoUtil().getParentName(inputData.getParameter());
inputMap.put("ELEMENT", name);
} else {
inputMap.put("ELEMENT", inputData.getParameter().getName());
}
// inputMap.put("ELEMENT", inputData.getInputElementValue());
// inputMap.put("NAMESPACE", inputData.getParameter().getNameSpace());
// inputMap.put("TYPE", inputData.getParameter().getKind());
}
inputparaValue.add(inputMap);
}
for (IMetadataColumn column : inputmetadata) {
Map<String, String> columnMap = new HashMap<String, String>(1);
if (column.getLabel() != null) {
columnMap.put("COLUMN", column.getLabel());
inputparaValue.add(columnMap);
}
}
for (String insource : insourceList) {
if (insource == null || "".equals(insource)) {
continue;
}
Map<String, String> sourceMap = new HashMap<String, String>(1);
sourceMap.put("SOURCE", insource);
inputparaValue.add(sourceMap);
}
List<ParameterInfo> listParamter = new ArrayList();
if (function != null) {
List inputParameter = function.getInputParameters();
if (inputParameter != null) {
// for (int i = 0; i < inputParameter.size(); i++) {
boolean mark = true;
goin: for (Iterator iterator2 = inputParameter.iterator(); iterator2.hasNext(); ) {
ParameterInfo element = (ParameterInfo) iterator2.next();
Map<String, String> sourceMap = new HashMap<String, String>(2);
sourceMap.put("PARAMETERINFO", element.getName());
if (element.getParent() == null) {
sourceMap.put("PARAPARENT", "");
} else {
sourceMap.put("PARAPARENT", element.getParent().getName());
}
inputparaValue.add(sourceMap);
mark = false;
if (!element.getParameterInfos().isEmpty()) {
listParamter.addAll(new ParameterInfoUtil().getAllChildren(element));
}
break goin;
}
if (!mark) {
for (ParameterInfo para : listParamter) {
Map<String, String> sourceMap = new HashMap<String, String>(2);
sourceMap.put("PARAMETERINFO", para.getName());
sourceMap.put("PARAPARENT", para.getParent().getName());
sourceMap.put("PARAMETERARRAYSIZE", String.valueOf(para.getArraySize()));
sourceMap.put("PARAMETERINDEX", para.getIndex());
inputparaValue.add(sourceMap);
}
}
// }
}
}
// save output
IElementParameter OUTPUT_PARAMSPara = wenCom.getElementParameter("OUTPUT_PARAMS");
List<Map<String, String>> outputMap = (List<Map<String, String>>) OUTPUT_PARAMSPara.getValue();
if (outputMap == null) {
outputMap = new ArrayList<Map<String, String>>();
} else {
outputMap.clear();
}
for (OutPutMappingData outData : outEleList) {
ParameterInfo para = outData.getParameter();
if (para.getName() == null || "".equals(para.getName())) {
continue;
}
Map<String, String> eleMap = new HashMap<String, String>(3);
if (outData.getParameterName() != null) {
eleMap.put("ELEMENT", outData.getParameterName());
} else {
eleMap.put("ELEMENT", para.getName());
}
// eleMap.put("NAMESPACE", para.getNameSpace());
// eleMap.put("TYPE", para.getKind());
outputMap.add(eleMap);
}
for (OutPutMappingData data : outputList) {
Map<String, String> dataMap = new HashMap<String, String>(2);
if (data.getParameterName() != null) {
dataMap.put("EXPRESSION", data.getParameterName());
} else if (data.getParameterName() == null) {
// warningDialog("Please Select a Output Item.");
// return;
}
if (data.getMetadataColumn() != null) {
dataMap.put("COLUMN", data.getMetadataColumn().getLabel());
}
// else if (data.getMetadataColumn() == null) {
// warningDialog("Please Select a Output Item.");
// return;
// }
// Map<String, String> dataMap2 = new HashMap<String, String>(2);
// if (data.getParameterList().size() > 0) {
// for (ParameterInfo para : data.getParameterList()) {
// dataMap2.put("", para.getNameSpace());
// dataMap2.put("", para.getKind());
// }
// }
//
// if (data.getOutputColumnValue() != null) {
// dataMap.put(data.getParameterName(), data.getOutputColumnValue());
// }
outputMap.add(dataMap);
// outputMap.add(dataMap2);
}
for (String outsource : outsourceList) {
if (outsource == null || "".equals(outsource)) {
continue;
}
Map<String, String> sourceMap = new HashMap<String, String>(1);
sourceMap.put("SOURCE", outsource);
outputMap.add(sourceMap);
}
List<ParameterInfo> ls = new ArrayList();
if (function != null) {
List inputParameter = function.getOutputParameters();
if (inputParameter != null) {
// for (int i = 0; i < inputParameter.size(); i++) {
boolean mark = true;
goin: for (Iterator iterator2 = inputParameter.iterator(); iterator2.hasNext(); ) {
ParameterInfo element = (ParameterInfo) iterator2.next();
Map<String, String> sourceMap = new HashMap<String, String>(1);
sourceMap.put("PARAMETERINFO", element.getName());
if (element.getParent() == null) {
sourceMap.put("PARAPARENT", "");
} else {
sourceMap.put("PARAPARENT", element.getParent().getName());
}
outputMap.add(sourceMap);
mark = false;
if (!element.getParameterInfos().isEmpty()) {
ls.addAll(new ParameterInfoUtil().getAllChildren(element));
}
break goin;
}
if (!mark) {
for (ParameterInfo para : ls) {
Map<String, String> sourceMap = new HashMap<String, String>(2);
sourceMap.put("PARAMETERINFO", para.getName());
sourceMap.put("PARAPARENT", para.getParent().getName());
sourceMap.put("PARAMETERARRAYSIZE", String.valueOf(para.getArraySize()));
sourceMap.put("PARAMETERINDEX", para.getIndex());
outputMap.add(sourceMap);
}
}
// }
}
}
super.okPressed();
}
Aggregations