Search in sources :

Example 1 with Edge

use of org.eclipse.draw2d.graph.Edge in project cubrid-manager by CUBRID.

the class ERGraphLayoutVisitor method layout.

public void layout(Collection<TablePart> tables, int startX, int startY) {
    if (tables == null || tables.isEmpty()) {
        return;
    }
    for (TablePart table : tables) {
        ERTableNode node = buildNode(table);
        erGraph.addNode(node);
        partNodesMap.put(table, node);
    }
    if (erGraph.getNodeCount() < 1) {
        return;
    }
    for (TablePart table : tables) {
        List conns = table.getSourceConnections();
        for (int i = 0; i < conns.size(); i++) {
            RelationshipPart relationshipPart = (RelationshipPart) table.getSourceConnections().get(i);
            Edge edge = buildEdgeRelation(relationshipPart);
            erGraph.addEdge(edge);
            partNodesMap.put(relationshipPart, edge);
        }
    }
    ERDirectedGraphLayout erLayoutor = new ERDirectedGraphLayout(erGraph);
    erLayoutor.layout();
    for (TablePart table : tables) {
        setFigureBounds(table, startX, startY);
    }
}
Also used : RelationshipPart(com.cubrid.common.ui.er.part.RelationshipPart) TablePart(com.cubrid.common.ui.er.part.TablePart) List(java.util.List) Edge(org.eclipse.draw2d.graph.Edge)

Example 2 with Edge

use of org.eclipse.draw2d.graph.Edge in project cubrid-manager by CUBRID.

the class ERGraphLayoutVisitor method buildEdgeRelation.

private Edge buildEdgeRelation(RelationshipPart relationshipPart) {
    ERTableNode sourceNode = (ERTableNode) partNodesMap.get(relationshipPart.getSource());
    ERTableNode targetNode = (ERTableNode) partNodesMap.get(relationshipPart.getTarget());
    if (sourceNode == null || targetNode == null) {
        return null;
    }
    sourceNode.addTargetNode(targetNode);
    targetNode.addSourceNode(sourceNode);
    Edge edge = new Edge(relationshipPart, sourceNode, targetNode);
    edge.weight = 2;
    return edge;
}
Also used : Edge(org.eclipse.draw2d.graph.Edge)

Example 3 with Edge

use of org.eclipse.draw2d.graph.Edge in project cubrid-manager by CUBRID.

the class ERGraphLayoutVisitor method layout.

public void layout(SchemaDiagramPart schemaDiagram) {
    initGraph(schemaDiagram);
    if (erGraph.getNodeCount() > 0) {
        for (int i = 0; i < schemaDiagram.getChildren().size(); i++) {
            TablePart tablePart = (TablePart) schemaDiagram.getChildren().get(i);
            List conns = tablePart.getSourceConnections();
            for (int j = 0; j < conns.size(); j++) {
                RelationshipPart relationshipPart = (RelationshipPart) tablePart.getSourceConnections().get(j);
                Edge edge = buildEdgeRelation(relationshipPart);
                erGraph.addEdge(edge);
                partNodesMap.put(relationshipPart, edge);
            }
        }
        ERDirectedGraphLayout gLayout = new ERDirectedGraphLayout(erGraph);
        gLayout.layout();
        setFiguresBound(schemaDiagram);
    }
}
Also used : RelationshipPart(com.cubrid.common.ui.er.part.RelationshipPart) TablePart(com.cubrid.common.ui.er.part.TablePart) List(java.util.List) Edge(org.eclipse.draw2d.graph.Edge)

Example 4 with Edge

use of org.eclipse.draw2d.graph.Edge in project cubrid-manager by CUBRID.

the class ERGraphLayoutVisitor method setFigureConstraint.

private void setFigureConstraint(RelationshipPart relationshipPart) {
    Edge edge = (Edge) partNodesMap.get(relationshipPart);
    if (edge == null) {
        return;
    }
    PolylineConnection conn = (PolylineConnection) relationshipPart.getConnectionFigure();
    conn.setRoutingConstraint(Collections.EMPTY_LIST);
}
Also used : Edge(org.eclipse.draw2d.graph.Edge) PolylineConnection(org.eclipse.draw2d.PolylineConnection)

Aggregations

Edge (org.eclipse.draw2d.graph.Edge)4 RelationshipPart (com.cubrid.common.ui.er.part.RelationshipPart)2 TablePart (com.cubrid.common.ui.er.part.TablePart)2 List (java.util.List)2 PolylineConnection (org.eclipse.draw2d.PolylineConnection)1