fiore@0
|
1 /*
|
fiore@0
|
2 CCmI Editor - A Collaborative Cross-Modal Diagram Editing Tool
|
fiore@0
|
3
|
fiore@0
|
4 Copyright (C) 2011 Queen Mary University of London (http://ccmi.eecs.qmul.ac.uk/)
|
fiore@0
|
5
|
fiore@0
|
6 This program is free software: you can redistribute it and/or modify
|
fiore@0
|
7 it under the terms of the GNU General Public License as published by
|
fiore@0
|
8 the Free Software Foundation, either version 3 of the License, or
|
fiore@0
|
9 (at your option) any later version.
|
fiore@0
|
10
|
fiore@0
|
11 This program is distributed in the hope that it will be useful,
|
fiore@0
|
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
|
fiore@0
|
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
fiore@0
|
14 GNU General Public License for more details.
|
fiore@0
|
15
|
fiore@0
|
16 You should have received a copy of the GNU General Public License
|
fiore@0
|
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
|
fiore@0
|
18 */
|
fiore@0
|
19 package uk.ac.qmul.eecs.ccmi.gui;
|
fiore@0
|
20
|
fiore@0
|
21 import java.awt.BasicStroke;
|
fiore@0
|
22 import java.awt.Stroke;
|
fiore@0
|
23
|
fiore@0
|
24 /**
|
fiore@0
|
25 * Defines the possible values for the stroke of lines painted on the graph when drawing an {@link Edge}.
|
fiore@0
|
26 * It can be <i>Solid</i>, <i>Dotted</i> or <i>Dashed</i>.
|
fiore@0
|
27 *
|
fiore@0
|
28 */
|
fiore@0
|
29 public enum LineStyle {
|
fiore@3
|
30 Solid(new BasicStroke(),0xFFFF),
|
fiore@0
|
31 Dotted(new BasicStroke(1.0f,
|
fiore@0
|
32 BasicStroke.CAP_ROUND,
|
fiore@0
|
33 BasicStroke.JOIN_ROUND,
|
fiore@0
|
34 0.0f,
|
fiore@0
|
35 new float[]{1.0f,3.0f},
|
fiore@7
|
36 0.0f),0xAAAA),
|
fiore@0
|
37 Dashed(new BasicStroke(1.0f,
|
fiore@0
|
38 BasicStroke.CAP_ROUND,
|
fiore@0
|
39 BasicStroke.JOIN_ROUND,
|
fiore@0
|
40 0.0f,
|
fiore@0
|
41 new float[]{5.0f,5.0f},
|
fiore@7
|
42 0.0f),0xF0F0);
|
fiore@0
|
43
|
fiore@3
|
44 private LineStyle(BasicStroke stroke, int stipplePattern){
|
fiore@0
|
45 this.stroke = stroke;
|
fiore@3
|
46 this.stipplePattern = stipplePattern;
|
fiore@0
|
47 }
|
fiore@0
|
48
|
fiore@3
|
49 /**
|
fiore@3
|
50 * returns the stroke of this line style. The stroke is used to paint
|
fiore@3
|
51 * the edge that has this line style on a graphics.
|
fiore@3
|
52 *
|
fiore@3
|
53 * @return the stroke for this line style
|
fiore@3
|
54 */
|
fiore@0
|
55 public Stroke getStroke(){
|
fiore@0
|
56 return stroke;
|
fiore@0
|
57 }
|
fiore@0
|
58
|
fiore@3
|
59 /**
|
fiore@3
|
60 * Returns an a bit representation of the stippling of this edge.
|
fiore@3
|
61 * This value can be used by openGL like libraries to draw the edge and it's used by
|
fiore@3
|
62 * the OmniHaptic device native code to paint the edge visually and haptically.
|
fiore@5
|
63 *
|
fiore@5
|
64 * @see <a href="http://www.opengl.org/sdk/docs/man/xhtml/glLineStipple.xml">glLineStipple</a>
|
fiore@3
|
65 *
|
fiore@3
|
66 * @return an int with the bit representation of the stipple pattern
|
fiore@3
|
67 */
|
fiore@3
|
68 public int getStipplePattern(){
|
fiore@3
|
69 return stipplePattern;
|
fiore@3
|
70 }
|
fiore@3
|
71
|
fiore@0
|
72 private Stroke stroke;
|
fiore@3
|
73 private int stipplePattern;
|
fiore@0
|
74 }
|