use of org.talend.designer.gefabstractmap.figures.treetools.zone.InputZoneToolBar in project tdi-studio-se by Talend.
the class FiguresManager method selectionChanged.
@Override
public void selectionChanged(SelectionChangedEvent event) {
mapDataEditPart = (MapperRootEditPart) graphicViewer.getContents();
if (getRootEditPart() == null) {
return;
}
List selectedEditParts = graphicViewer.getSelectedEditParts();
if (selectedEditParts.isEmpty()) {
return;
}
boolean outputRemoveEnable = false;
boolean outputMoveUp = false;
boolean outputMoveDown = false;
boolean inputMoveUp = false;
boolean inputMoveDown = false;
List<MapperTable> outputTrees = getOutputTables();
List<MapperTable> inputTrees = getInputTables();
OutputZoneToolBar outputToolBar = mapDataEditPart.getOutputZoneToolBar();
InputZoneToolBar inputToolBar = mapDataEditPart.getInputZoneToolBar();
boolean selectNode = false;
Object lastSelection = selectedEditParts.get(selectedEditParts.size() - 1);
if (lastSelection instanceof TableEntityPart) {
selectNode = true;
MapperTablePart findTreePart = MapperUtils.getMapperTablePart((TableEntityPart) lastSelection);
if (findTreePart instanceof InputTablePart) {
currentSelectedInputTable = (InputTablePart) findTreePart;
} else if (findTreePart instanceof OutputTablePart) {
currentSelectedOutputTable = (OutputTablePart) findTreePart;
}
// only change connection figures for nodes in the same tree as the lastSelection
List<TableEntityPart> nodes = new ArrayList<TableEntityPart>();
for (int i = 0; i < selectedEditParts.size() - 1; i++) {
Object obj = selectedEditParts.get(i);
if (obj instanceof TableEntityPart) {
MapperTablePart findOtherTreePart = MapperUtils.getMapperTablePart((TableEntityPart) obj);
if (findOtherTreePart == findTreePart) {
nodes.add((TableEntityPart) obj);
}
}
}
nodes.add((TableEntityPart) lastSelection);
onTreeSelected(nodes, findTreePart);
// change color for other unselected node in the tree;
} else if (lastSelection instanceof OutputTablePart) {
currentSelectedOutputTable = (OutputTablePart) lastSelection;
onTreeSelected(currentSelectedOutputTable.getChildren(), currentSelectedOutputTable);
} else if (lastSelection instanceof InputTablePart) {
currentSelectedInputTable = (InputTablePart) lastSelection;
onTreeSelected(currentSelectedInputTable.getChildren(), currentSelectedInputTable);
}
if (currentSelectedOutputTable != null) {
MapperTable model = (MapperTable) currentSelectedOutputTable.getModel();
if (!isErrorRejectTable(model)) {
outputRemoveEnable = true;
}
int index = outputTrees.indexOf(model);
if (index != -1 && index != 0) {
if (index != 1 || !isErrorRejectTable(outputTrees.get(0))) {
outputMoveUp = true;
}
}
if (index != -1 && index != outputTrees.size() - 1) {
if (!isErrorRejectTable(model)) {
outputMoveDown = true;
}
}
}
outputToolBar.setRemoveButtonEnable(outputRemoveEnable);
outputToolBar.setMoveUpEnable(outputMoveUp);
outputToolBar.setMoveDownEnable(outputMoveDown);
if (currentSelectedInputTable != null) {
MapperTable tree = (MapperTable) currentSelectedInputTable.getModel();
if (!isLookup(tree)) {
inputMoveUp = false;
inputMoveDown = false;
} else {
int indexOf = inputTrees.indexOf(tree);
if (indexOf != -1 && indexOf > 1) {
inputMoveUp = true;
}
if (indexOf > 0 && indexOf != inputTrees.size() - 1) {
inputMoveDown = true;
}
}
}
inputToolBar.setMoveDownEnable(inputMoveDown);
inputToolBar.setMoveUpEnable(inputMoveUp);
}
Aggregations