Search in sources :

Example 1 with OutputZoneToolBar

use of org.talend.designer.gefabstractmap.figures.treetools.zone.OutputZoneToolBar 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);
}
Also used : OutputTablePart(org.talend.designer.gefabstractmap.part.OutputTablePart) OutputZoneToolBar(org.talend.designer.gefabstractmap.figures.treetools.zone.OutputZoneToolBar) TableEntityPart(org.talend.designer.gefabstractmap.part.TableEntityPart) ArrayList(java.util.ArrayList) MapperTablePart(org.talend.designer.gefabstractmap.part.MapperTablePart) InputTablePart(org.talend.designer.gefabstractmap.part.InputTablePart) InputZoneToolBar(org.talend.designer.gefabstractmap.figures.treetools.zone.InputZoneToolBar) MapperTable(org.talend.designer.gefabstractmap.model.abstractmap.MapperTable) ArrayList(java.util.ArrayList) List(java.util.List)

Aggregations

ArrayList (java.util.ArrayList)1 List (java.util.List)1 InputZoneToolBar (org.talend.designer.gefabstractmap.figures.treetools.zone.InputZoneToolBar)1 OutputZoneToolBar (org.talend.designer.gefabstractmap.figures.treetools.zone.OutputZoneToolBar)1 MapperTable (org.talend.designer.gefabstractmap.model.abstractmap.MapperTable)1 InputTablePart (org.talend.designer.gefabstractmap.part.InputTablePart)1 MapperTablePart (org.talend.designer.gefabstractmap.part.MapperTablePart)1 OutputTablePart (org.talend.designer.gefabstractmap.part.OutputTablePart)1 TableEntityPart (org.talend.designer.gefabstractmap.part.TableEntityPart)1