use of org.talend.designer.xmlmap.model.emf.xmlmap.OutputXmlTree in project tdi-studio-se by Talend.
the class OutputXmlTreeEditPart method notifyChanged.
@Override
public void notifyChanged(Notification notification) {
int type = notification.getEventType();
int featureId = notification.getFeatureID(XmlmapPackage.class);
switch(type) {
case Notification.ADD:
case Notification.REMOVE:
case Notification.REMOVE_MANY:
switch(featureId) {
case XmlmapPackage.OUTPUT_XML_TREE__NODES:
refreshChildren();
break;
case XmlmapPackage.ABSTRACT_IN_OUT_TREE__FILTER_INCOMING_CONNECTIONS:
refreshTargetConnections();
break;
}
break;
case Notification.SET:
switch(featureId) {
case XmlmapPackage.OUTPUT_XML_TREE__NODES:
refreshChildren();
case XmlmapPackage.OUTPUT_XML_TREE__REJECT:
case XmlmapPackage.OUTPUT_XML_TREE__REJECT_INNER_JOIN:
case XmlmapPackage.OUTPUT_XML_TREE__EXPRESSION_FILTER:
case XmlmapPackage.OUTPUT_XML_TREE__MINIMIZED:
case XmlmapPackage.OUTPUT_XML_TREE__ALL_IN_ONE:
case XmlmapPackage.OUTPUT_XML_TREE__ENABLE_EMPTY_ELEMENT:
((OutputXmlTreeFigure) getFigure()).update(featureId);
break;
case XmlmapPackage.TREE_NODE__EXPRESSION:
((OutputXmlTreeFigure) getFigure()).update(XmlmapPackage.TREE_NODE__TYPE);
break;
case XmlmapPackage.ABSTRACT_IN_OUT_TREE__MULTI_LOOPS:
// fix for TDI-20808 , clean aggreage and groups if it's multiloops
OutputXmlTree model = (OutputXmlTree) getModel();
boolean changed = false;
if (model.isMultiLoops()) {
changed = XmlMapUtil.cleanGroup(model.getNodes());
}
if (model.isMultiLoops() && getParent() instanceof XmlMapDataEditPart) {
List childPart = ((XmlMapDataEditPart) getParent()).getChildren();
for (Object o : childPart) {
if (o instanceof InputXmlTreeEditPart) {
InputXmlTree inputTree = (InputXmlTree) ((InputXmlTreeEditPart) o).getModel();
if (inputTree.isMultiLoops() && !inputTree.isLookup()) {
changed = XmlMapUtil.cleanAggregate(model.getNodes()) || changed;
break;
}
}
}
}
if (changed) {
refreshChildren();
}
}
}
// change icon for set loop function button
if (type == Notification.ADD && featureId == XmlmapPackage.OUTPUT_XML_TREE__INPUT_LOOP_NODES_TABLES) {
final InputLoopNodesTable loopNodeTable = (InputLoopNodesTable) notification.getNewValue();
addListenerForInputLoopNodeTable(loopNodeTable);
}
}
use of org.talend.designer.xmlmap.model.emf.xmlmap.OutputXmlTree in project tdi-studio-se by Talend.
the class XmlMapOutputZoneToolBar method moveDown.
/*
* (non-Javadoc)
*
* @see org.talend.designer.xmlmap.figures.treetools.zone.ZoneToolBar#moveDown()
*/
@Override
public void moveDown() {
List<OutputXmlTree> outputTrees = externalData.getOutputTrees();
OutputXmlTreeEditPart currentSelectedOutputXmlTree = graphicViewer.getFiguresManager().getCurrentSelectedOutputTable();
if (currentSelectedOutputXmlTree != null) {
OutputXmlTree selectedTree = (OutputXmlTree) currentSelectedOutputXmlTree.getModel();
int index = outputTrees.indexOf(selectedTree);
if (index != -1 && index + 1 < outputTrees.size()) {
outputTrees.remove(selectedTree);
outputTrees.add(index + 1, selectedTree);
// index of modelchildren is different from index of tree
int indexOf = externalPart.getModelChildren().indexOf(selectedTree);
if (indexOf != -1) {
graphicViewer.appendSelection((EditPart) externalPart.getChildren().get(indexOf));
}
}
}
}
use of org.talend.designer.xmlmap.model.emf.xmlmap.OutputXmlTree in project tdi-studio-se by Talend.
the class XmlMapOutputZoneToolBar method minSize.
/*
* (non-Javadoc)
*
* @see org.talend.designer.xmlmap.figures.treetools.zone.ZoneToolBar#minSize()
*/
@Override
public void minSize() {
minimized = !minimized;
EList<OutputXmlTree> outputTrees = externalData.getOutputTrees();
for (OutputXmlTree outputTree : outputTrees) {
if (minimized != outputTree.isMinimized()) {
outputTree.setMinimized(minimized);
}
}
}
use of org.talend.designer.xmlmap.model.emf.xmlmap.OutputXmlTree in project tdi-studio-se by Talend.
the class XmlMapDataImpl method equals.
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated not
*/
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
XmlMapDataImpl dbObj = (XmlMapDataImpl) obj;
EList<InputXmlTree> inputs = dbObj.getInputTrees();
EList<OutputXmlTree> outputs = dbObj.getOutputTrees();
EList<VarTable> vars = dbObj.getVarTables();
EList<IConnection> conns = dbObj.getConnections();
if (inputs.size() != getInputTrees().size()) {
return false;
}
if (outputs.size() != getOutputTrees().size()) {
return false;
}
if (vars.size() != getVarTables().size()) {
return false;
}
if (getConnections().size() != conns.size()) {
return false;
}
for (InputXmlTree inputTable : inputTrees) {
boolean found = false;
for (InputXmlTree input : inputs) {
if (inputTable.getName().equals(input.getName())) {
found = true;
if (!inputTable.equals(input)) {
return false;
}
break;
}
}
if (found == false) {
return false;
}
}
for (OutputXmlTree outputTable : outputTrees) {
boolean found = false;
for (OutputXmlTree output : outputs) {
if (outputTable.getName().equals(output.getName())) {
found = true;
if (!outputTable.equals(output)) {
return false;
}
break;
}
}
if (found == false) {
return false;
}
}
for (VarTable varTable : varTables) {
boolean found = false;
for (VarTable var : vars) {
if (varTable.getName().equals(var.getName())) {
found = true;
if (!varTable.equals(var)) {
return false;
}
break;
}
}
if (found == false) {
return false;
}
}
return true;
}
Aggregations