01: /*
02: * JoinPreviewGraphFactory.java
03: *
04: * Created on January 16, 2004, 11:57 AM
05: */
06:
07: package org.netbeans.modules.sql.framework.ui.view.join;
08:
09: import java.awt.Point;
10: import java.util.List;
11: import org.netbeans.modules.sql.framework.model.SQLCanvasObject;
12: import org.netbeans.modules.sql.framework.model.SQLConstants;
13: import org.netbeans.modules.sql.framework.model.SQLJoinOperator;
14: import org.netbeans.modules.sql.framework.model.SQLJoinTable;
15: import org.netbeans.modules.sql.framework.ui.graph.IGraphNode;
16: import org.netbeans.modules.sql.framework.ui.graph.IGraphView;
17: import org.netbeans.modules.sql.framework.ui.view.graph.AbstractGraphFactory;
18:
19: /**
20: * This is the graph factory for join preview graph panel
21: *
22: * @author radval
23: */
24: public class JoinPreviewGraphFactory extends AbstractGraphFactory {
25:
26: private Point sourceTableLoc = new Point(50, 50);
27: private List jSources;
28: private IGraphView mainSQLGraphView;
29:
30: /** Creates a new instance of JoinPreviewGraphFactory */
31: public JoinPreviewGraphFactory(IGraphView gView) {
32: this .mainSQLGraphView = gView;
33: }
34:
35: /**
36: * factory method for creating instance of IGraphNode given an SQLObject
37: *
38: * @param canvasObj sql object to be represented in the graph
39: * @return an instance of IGraphNode
40: */
41: public IGraphNode createGraphNode(SQLCanvasObject canvasObj) {
42: int objectType = canvasObj.getObjectType();
43: IGraphNode graphNode = null;
44:
45: switch (objectType) {
46: case SQLConstants.JOIN_TABLE:
47: SQLJoinTable joinTable = (SQLJoinTable) canvasObj;
48: TableGraphNode tNode = new TableGraphNode(joinTable);
49: graphNode = tNode;
50: tNode.setLocation(sourceTableLoc);
51: if (this .jSources != null
52: && this .jSources.indexOf(joinTable) != -1) {
53: int cnt = this .jSources.indexOf(joinTable);
54: tNode.setNumber("" + (++cnt));
55: }
56:
57: break;
58: case SQLConstants.JOIN:
59: JoinPreviewGraphNode joinNode = new JoinPreviewGraphNode();
60: joinNode.addJoinTypeComboBox();
61: joinNode.setMainSQLGraphView(this .mainSQLGraphView);
62:
63: graphNode = joinNode;
64: SQLJoinOperator join = (SQLJoinOperator) canvasObj;
65: if (!join.isRoot()) {
66: joinNode.showOutputPort(true);
67: }
68: }
69:
70: //if graph node is not null set canvas object as data object
71: //also set location and add this graph node
72: if (graphNode != null) {
73: graphNode.setDataObject(canvasObj);
74: }
75:
76: return graphNode;
77: }
78:
79: public void setJoinSources(List<SQLJoinTable> joinSources) {
80: this.jSources = joinSources;
81: }
82: }
|