EMMA Coverage Report (generated Sun Feb 05 10:43:15 CET 2012)
[all classes][de.uka.ipd.sdq.pcm.gmf.composite]

COVERAGE SUMMARY FOR SOURCE FILE [SinkFigure.java]

nameclass, %method, %block, %line, %
SinkFigure.java0%   (0/2)0%   (0/8)0%   (0/806)0%   (0/130)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SinkFigure0%   (0/1)0%   (0/6)0%   (0/789)0%   (0/124)
SinkFigure (int, AbstractBorderFigure$POSITION_TYPE): void 0%   (0/1)0%   (0/5)0%   (0/2)
access$0 (SinkFigure): Point 0%   (0/1)0%   (0/3)0%   (0/1)
createAnchorExternal (): ConnectionAnchor 0%   (0/1)0%   (0/6)0%   (0/1)
createAnchorInternal (): ConnectionAnchor 0%   (0/1)0%   (0/6)0%   (0/1)
getSinkCenter (): Point 0%   (0/1)0%   (0/61)0%   (0/12)
paintFigure (Graphics): void 0%   (0/1)0%   (0/708)0%   (0/107)
     
class SinkFigure$SinkAnchor0%   (0/1)0%   (0/2)0%   (0/17)0%   (0/6)
SinkFigure$SinkAnchor (SinkFigure, IFigure): void 0%   (0/1)0%   (0/7)0%   (0/3)
getLocation (Point): Point 0%   (0/1)0%   (0/10)0%   (0/3)

1package de.uka.ipd.sdq.pcm.gmf.composite;
2 
3import org.eclipse.draw2d.AbstractConnectionAnchor;
4import org.eclipse.draw2d.ConnectionAnchor;
5import org.eclipse.draw2d.Graphics;
6import org.eclipse.draw2d.IFigure;
7import org.eclipse.draw2d.PositionConstants;
8import org.eclipse.draw2d.geometry.Point;
9import org.eclipse.draw2d.geometry.Rectangle;
10 
11/**
12 * Represents the event source -|< border figure
13 * which rotates depending on the side the figure
14 * is located in relation to it's parent.
15 * 
16 * @author Benjamin Klatt
17 */
18public class SinkFigure extends AbstractBorderFigure {
19        
20        /**
21         * @param size width and height of the figure in logical units (LP)
22         * @param posType position type of the figure
23         */
24        public SinkFigure(int logicalSize, POSITION_TYPE posType) {
25                super(logicalSize, posType);
26        }
27                
28        protected void paintFigure(Graphics graphics) {
29                super.paintFigure(graphics);
30                
31                if (getBorderItemLocator() == null) {
32                        System.out.println("border item locator null in SocketFigure.paintFigure");
33                }
34                
35                // determine the side the border item is located relative to it's parent
36                int side = (getBorderItemLocator() == null ? PositionConstants.WEST : getBorderItemLocator().getCurrentSideOfParent());
37                
38                Rectangle rect = new Rectangle();
39                graphics.getClip(rect);
40        
41                // depending on the side, draw
42                // - a line from the center of the side of the bounding box touching the parent
43                //                 to the center of the bounding box. Result: "-"
44                // - a line between the centers of the orthogonal borders of the bounding box. Result: "-|"
45                // - a line for the top border of the sink
46                // - a line for the lower border of the sink
47                // - a line from the center to the right upper corner
48                // - a line from the center to the right lower corner
49                switch(side){
50                case PositionConstants.EAST:
51                        // Sink Connector
52                        graphics.drawLine(        rect.getLeft().x,
53                                                                rect.getCenter().y,
54                                                                rect.getCenter().x-rect.width/4,
55                                                                rect.getCenter().y);
56 
57                        // Sink Base
58                        graphics.drawLine(        rect.getCenter().x-rect.width/4,
59                                                                rect.getTop().y+rect.height/4,
60                                                                rect.getCenter().x-rect.width/4,
61                                                                rect.getBottom().y-rect.height/4);
62                        
63                        // upper border
64                        graphics.drawLine(        rect.getCenter().x-rect.width/4,
65                                                                rect.getTop().y+rect.height/4,
66                                                                rect.getRight().x-rect.width/4,
67                                                                rect.getTop().y+rect.height/4);
68 
69                        // lower border
70                        graphics.drawLine(        rect.getCenter().x-rect.width/4,
71                                                                rect.getBottom().y-rect.height/4,
72                                                                rect.getRight().x-rect.width/4,
73                                                                rect.getBottom().y-rect.height/4);
74                        
75                        // upper dash
76                        graphics.drawLine(        rect.getCenter().x,
77                                                                rect.getCenter().y,
78                                                                rect.getRight().x-rect.width/4,
79                                                                rect.getTop().y+rect.height/4);
80                        
81                        // lower dash
82                        graphics.drawLine(        rect.getCenter().x,
83                                                                rect.getCenter().y,
84                                                                rect.getRight().x-rect.width/4,
85                                                                rect.getBottom().y-rect.height/4);
86                        break;
87                case PositionConstants.WEST:
88                        // Sink Connector
89                        graphics.drawLine(        rect.getRight().x,
90                                                                rect.getCenter().y,
91                                                                rect.getCenter().x+rect.width/4,
92                                                                rect.getCenter().y);
93 
94                        // Sink Base
95                        graphics.drawLine(        rect.getCenter().x+rect.width/4,
96                                                                rect.getTop().y+rect.height/4,
97                                                                rect.getCenter().x+rect.width/4,
98                                                                rect.getBottom().y-rect.height/4);
99                        
100                        // upper border
101                        graphics.drawLine(        rect.getLeft().x+rect.width/4,
102                                                                rect.getTop().y+rect.height/4,
103                                                                rect.getCenter().x+rect.width/4,
104                                                                rect.getTop().y+rect.height/4);
105 
106                        // lower border
107                        graphics.drawLine(        rect.getLeft().x+rect.width/4,
108                                                                rect.getBottom().y-rect.height/4,
109                                                                rect.getCenter().x+rect.width/4,
110                                                                rect.getBottom().y-rect.height/4);
111                        
112                        // upper dash
113                        graphics.drawLine(        rect.getCenter().x,
114                                                                rect.getCenter().y,
115                                                                rect.getLeft().x+rect.width/4,
116                                                                rect.getTop().y+rect.height/4);
117                        
118                        // lower dash
119                        graphics.drawLine(        rect.getCenter().x,
120                                                                rect.getCenter().y,
121                                                                rect.getLeft().x+rect.width/4,
122                                                                rect.getBottom().y-rect.height/4);
123                        break;
124                case PositionConstants.NORTH:
125                        // Sink Connector
126                        graphics.drawLine(        rect.getCenter().x,
127                                                                rect.getBottom().y,
128                                                                rect.getCenter().x,
129                                                                rect.getCenter().y+rect.height/4);
130 
131                        // Sink Base
132                        graphics.drawLine(        rect.getLeft().x+rect.width/4,
133                                                                rect.getCenter().y+rect.height/4,
134                                                                rect.getRight().x-rect.width/4,
135                                                                rect.getCenter().y+rect.height/4);
136                        
137                        // left border
138                        graphics.drawLine(        rect.getLeft().x+rect.width/4,
139                                                                rect.getCenter().y+rect.height/4,
140                                                                rect.getLeft().x+rect.width/4,
141                                                                rect.getTop().y+rect.height/4);
142 
143                        // right border
144                        graphics.drawLine(        rect.getRight().x-rect.width/4,
145                                                                rect.getCenter().y+rect.height/4,
146                                                                rect.getRight().x-rect.width/4,
147                                                                rect.getTop().y+rect.height/4);
148                        
149                        // left dash
150                        graphics.drawLine(        rect.getCenter().x,
151                                                                rect.getCenter().y,
152                                                                rect.getLeft().x+rect.width/4,
153                                                                rect.getTop().y+rect.height/4);
154                        
155                        // right dash
156                        graphics.drawLine(        rect.getCenter().x,
157                                                                rect.getCenter().y,
158                                                                rect.getRight().x-rect.width/4,
159                                                                rect.getTop().y+rect.height/4);
160 
161                        break;
162                case PositionConstants.SOUTH:
163                        // Sink Connector
164                        graphics.drawLine(        rect.getCenter().x,
165                                                                rect.getTop().y,
166                                                                rect.getCenter().x,
167                                                                rect.getCenter().y-rect.height/4);
168 
169                        // Sink Base
170                        graphics.drawLine(        rect.getLeft().x+rect.width/4,
171                                                                rect.getCenter().y-rect.height/4,
172                                                                rect.getRight().x-rect.width/4,
173                                                                rect.getCenter().y-rect.height/4);
174                        
175                        // left border
176                        graphics.drawLine(        rect.getLeft().x+rect.width/4,
177                                                                rect.getCenter().y+rect.height/4,
178                                                                rect.getLeft().x+rect.width/4,
179                                                                rect.getTop().y+rect.height/4);
180 
181                        // right border
182                        graphics.drawLine(        rect.getRight().x-rect.width/4,
183                                                                rect.getCenter().y+rect.height/4,
184                                                                rect.getRight().x-rect.width/4,
185                                                                rect.getTop().y+rect.height/4);
186                        
187                        // left dash
188                        graphics.drawLine(        rect.getLeft().x+rect.width/4,
189                                                                rect.getBottom().y-rect.height/4,
190                                                                rect.getCenter().x,
191                                                                rect.getCenter().y);
192                        
193                        // right dash
194                        graphics.drawLine(        rect.getCenter().x,
195                                                                rect.getCenter().y,
196                                                                rect.getRight().x-rect.width/4,
197                                                                rect.getBottom().y-rect.height/4);
198                        break;
199                }
200        }
201        
202        /**
203         * @return the center between the ( part of the figure
204         * relative to the position of the figure
205         */
206        private Point getSinkCenter() {
207                int side = (getBorderItemLocator() == null ? PositionConstants.WEST : getBorderItemLocator().getCurrentSideOfParent());
208                
209                Rectangle rect = getBounds();
210                Point result = null;
211                
212                switch(side){
213                case PositionConstants.EAST:
214                        result = new Point(rect.getCenter().x, rect.getCenter().y);
215                        break;
216                case PositionConstants.WEST:
217                        result = new Point(rect.getCenter().x, rect.getCenter().y);
218                        break;
219                case PositionConstants.NORTH:
220                        result = new Point(rect.getCenter().x, rect.getCenter().y);
221                        break;
222                case PositionConstants.SOUTH:
223                        result = new Point(rect.getCenter().x, rect.getCenter().y);
224                        break;
225                }
226                return result;
227        }        
228        
229        /**
230         * places the anchor point at the center of the ( part of the figure
231         */
232        private class SinkAnchor extends AbstractConnectionAnchor {
233 
234                public SinkAnchor(IFigure owner) {
235                        super(owner);
236                }
237                
238                public Point getLocation(Point reference) {
239                        Point p = getSinkCenter();
240                        getOwner().translateToAbsolute(p);
241                        return p;
242                }
243        }
244 
245        /**
246         * Get the anchor for connectors linked to this figure.
247         * The anchor internal represents the anchor if this 
248         * sink belongs to an internal assembly context.
249         * 
250         *  @return The connection anchor with the appropriate position
251         */
252        protected ConnectionAnchor createAnchorInternal() {
253                return new SinkAnchor(this);
254        }
255 
256 
257        /**
258         * Get the anchor for connectors linked to this figure.
259         * The anchor external represents the anchor if this 
260         * sink belongs to an external system sink.
261         * 
262         *  @return The connection anchor with the appropriate position
263         */
264        protected ConnectionAnchor createAnchorExternal() {
265                return new StemAnchor(this);
266        }
267}

[all classes][de.uka.ipd.sdq.pcm.gmf.composite]
EMMA 2.0.9414 (unsupported private build) (C) Vladimir Roubtsov