View Javadoc

1   /*
2    * This file is a part of CAST project.
3    * (c) Copyright 2007, AGH University of Science & Technology
4    * All rights reserved. Check the documentation for licensing terms.
5    * https://caribou.iisg.agh.edu.pl/trac/cast
6    */
7   package pl.edu.agh.cast.zestalgorithms.core;
8   
9   import org.eclipse.zest.layouts.LayoutBendPoint;
10  import org.eclipse.zest.layouts.LayoutEntity;
11  import org.eclipse.zest.layouts.LayoutRelationship;
12  import org.eclipse.zest.layouts.constraints.LayoutConstraint;
13  
14  /**
15   * Implementation of Zest's layout relationship between two nodes. This class just represents connection between two
16   * nodes. All relationships are directed.
17   * 
18   * @author Paweł Koperek <pkoperek@gmail.com>
19   * @author Mateusz Kupisz <mkupisz@gmail.com>
20   * 
21   */
22  public class LayoutRelationshipImpl implements LayoutRelationship {
23  
24  	/**
25  	 * Destination node
26  	 */
27  	private LayoutEntity destination;
28  
29  	/**
30  	 * Destination node
31  	 */
32  	private LayoutEntity source;
33  
34  	/**
35  	 * Place for optional information about layout. Can be used to hold any data.
36  	 */
37  	private Object layoutInformation;
38  
39  	/**
40  	 * Place for optional information about layout. Can be used to hold any data.
41  	 */
42  	public LayoutRelationshipImpl(LayoutEntity source, LayoutEntity destination) {
43  		this.source = source;
44  		this.destination = destination;
45  	}
46  
47  	/**
48  	 * Method required by {@link LayoutRelationship} interface. In our case does nothing
49  	 */
50  	public void clearBendPoints() {
51  		// nothing
52  	}
53  
54  	/**
55  	 * Returns the node that is the destination of the connection
56  	 * 
57  	 * @return Destination node of the connection
58  	 */
59  	public LayoutEntity getDestinationInLayout() {
60  		return destination;
61  	}
62  
63  	/**
64  	 * Getter for optional information about the layout (or any other data that is stored in this field)
65  	 * 
66  	 * @return Object representing optional information about the connection (or any other data)
67  	 */
68  	public Object getLayoutInformation() {
69  		return layoutInformation;
70  	}
71  
72  	/**
73  	 * Returns the source node of the connection
74  	 * 
75  	 * @return source node
76  	 */
77  	public LayoutEntity getSourceInLayout() {
78  		return source;
79  	}
80  
81  	/**
82  	 * Method required by {@link LayoutRelationship} interface. In our case does nothing
83  	 */
84  	public void populateLayoutConstraint(LayoutConstraint constraint) {
85  		// nothing
86  	}
87  
88  	/**
89  	 * Method required by {@link LayoutRelationship} interface. In our case does nothing
90  	 */
91  	public void setBendPoints(LayoutBendPoint[] bendPoints) {
92  		// nothing
93  	}
94  
95  	/**
96  	 * Sets object representing some additional information about layout. Can be used to hold any information
97  	 */
98  	public void setLayoutInformation(Object layoutInformation) {
99  		this.layoutInformation = layoutInformation;
100 	}
101 
102 	/**
103 	 * Required by {@link LayoutRelationship}. Always returns null
104 	 * 
105 	 * @return null
106 	 */
107 	public Object getGraphData() {
108 		return this;
109 	}
110 
111 	/**
112 	 * Required by {@link LayoutRelationship}. Does big nothing.
113 	 */
114 	public void setGraphData(Object o) {
115 		// nothing
116 	}
117 
118 }