root / trunk / extensions / extCAD / sm / PolylineCADTool.sm @ 3883
History | View | Annotate | Download (1.95 KB)
1 |
// -*- tab-width: 4; -*- |
---|---|
2 |
|
3 |
%{ |
4 |
// |
5 |
// Vicente Caballero Navarro |
6 |
%} |
7 |
|
8 |
%start ExecuteMap::Initial |
9 |
%class PolylineCADTool |
10 |
%package com.iver.cit.gvsig.gui.cad.tools.smc |
11 |
%import com.iver.cit.gvsig.gui.cad.tools.PolylineCADTool |
12 |
|
13 |
%map ExecuteMap |
14 |
%% |
15 |
// A task begins life in suspended animation. |
16 |
|
17 |
Initial |
18 |
|
19 |
Entry { |
20 |
setQuestion("POLILINEA" + "\n" + |
21 |
"Insertar primer punto"); |
22 |
setDescription(new String[]{"Cancelar"}); |
23 |
} |
24 |
Exit{ |
25 |
} |
26 |
|
27 |
{ |
28 |
addPoint(pointX:double,pointY:double) |
29 |
First { |
30 |
setQuestion("Insertar siguiente punto, Arco[A] o Cerrar[C]"); |
31 |
setDescription(new String[]{"Arco","Cerrar","Cancelar"}); |
32 |
addPoint(pointX,pointY); |
33 |
} |
34 |
} |
35 |
First{ |
36 |
|
37 |
addOption(s:String) |
38 |
[s.equals("A") || s.equals("a") || s.equals("Arco")] |
39 |
Second { |
40 |
setQuestion("Insertar punto siguiente, Linea[N] o Cerrar[C]"); |
41 |
setDescription(new String[]{"Linea","Cerrar","Cancelar"}); |
42 |
addOption(s); |
43 |
} |
44 |
addOption(s:String) |
45 |
[s.equals("C") || s.equals("c") || s.equals("Cerrar")] |
46 |
Third { |
47 |
addOption(s); |
48 |
closeGeometry(); |
49 |
endGeometry(); |
50 |
end(); |
51 |
} |
52 |
addPoint(pointX:double,pointY:double) |
53 |
First { |
54 |
setQuestion("Insertar siguiente punto, Arco[A] o Cerrar[C]"); |
55 |
setDescription(new String[]{"Arco","Cerrar","Cancelar"}); |
56 |
addPoint(pointX,pointY); |
57 |
} |
58 |
} |
59 |
Second{ |
60 |
addPoint(pointX:double,pointY:double) |
61 |
Second { |
62 |
setQuestion("Insertar punto siguiente, Linea[N] o Cerrar[C]"); |
63 |
setDescription(new String[]{"Linea","Cerrar","Cancelar"}); |
64 |
addPoint(pointX,pointY); |
65 |
} |
66 |
addOption(s:String) |
67 |
[s.equals("N") || s.equals("n") || s.equals("Linea")] |
68 |
First { |
69 |
setQuestion("Insertar siguiente punto, Arco[A] o Cerrar[C]"); |
70 |
setDescription(new String[]{"Arco","Cerrar","Cancelar"}); |
71 |
addOption(s); |
72 |
} |
73 |
addOption(s:String) |
74 |
[s.equals("C") || s.equals("c") || s.equals("Cerrar")] |
75 |
Third { |
76 |
addOption(s); |
77 |
closeGeometry(); |
78 |
endGeometry(); |
79 |
end(); |
80 |
} |
81 |
} |
82 |
Third{ |
83 |
} |
84 |
Fourth{ |
85 |
} |
86 |
Default |
87 |
{ |
88 |
addOption(s:String) |
89 |
[s.equals("Cancelar")] |
90 |
Initial{ |
91 |
cancel(); |
92 |
end(); |
93 |
} |
94 |
} |
95 |
%% |