Revision 36862

View differences:

tags/v2_0_0_Build_2038/extensions/extEditing/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2

  
3
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
5
                      http://maven.apache.org/maven-v4_0_0.xsd">
6
    <modelVersion>4.0.0</modelVersion>
7
    <groupId>org.gvsig</groupId>
8
    <artifactId>org.gvsig.editing</artifactId>
9
    <name>Tools: Geometry editing</name>
10
    <version>2.0-SNAPSHOT</version>
11
    <parent>
12
        <artifactId>gvsig-base-extension-pom</artifactId>
13
        <groupId>org.gvsig</groupId>
14
        <version>2.0-SNAPSHOT</version>
15
    </parent>
16
    <distributionManagement>
17
        <site>
18
            <id>gvsig-repository</id>
19
            <url>${site-repository}/</url>
20
        </site>
21
    </distributionManagement>
22

  
23
    <description>Editing support for vectorial layers.
24
- Insert drawing elements (point, line, polyline, polygon, etc.)
25
-  Insert geometric elements (circle, rectangle, ellipse, etc.)
26
- Copy / move / rotate / scale graphic elements..
27
- Vertex editing
28
- Complex sellection (based on different geometric criteria)
29
- Undo / redo
30
- Command window
31
- Snapping
32
- Alphanumerical editing (add / remove / modify records, fields management, etc.)
33
</description>
34
    <url>http://gvsig.org</url>
35
    <build>
36
        <sourceDirectory>src</sourceDirectory>
37
        <testSourceDirectory>src-test</testSourceDirectory>
38
        <plugins>
39
            <!-- TODO: MAKE TESTS WORK AND REMOVE THIS OPTION -->
40
            <plugin>
41
                <groupId>org.apache.maven.plugins</groupId>
42
                <artifactId>maven-surefire-plugin</artifactId>
43
                <configuration>
44
                    <skipTests>true</skipTests>
45
                </configuration>
46
            </plugin>
47
        </plugins>
48
    </build>
49
    <dependencies>
50
        <dependency>
51
            <groupId>org.gvsig</groupId>
52
            <artifactId>org.gvsig.ui</artifactId>
53
            <scope>compile</scope>
54
        </dependency>
55
         <dependency>
56
            <groupId>org.gvsig</groupId>
57
            <artifactId>org.gvsig.i18n</artifactId>
58
            <scope>compile</scope>
59
        </dependency>
60
        <dependency>
61
            <groupId>org.gvsig</groupId>
62
            <artifactId>org.gvsig.app</artifactId>
63
            <version>2.0-SNAPSHOT</version>
64
            <scope>compile</scope>
65
        </dependency>
66
        <dependency>
67
            <groupId>org.gvsig</groupId>
68
            <artifactId>org.gvsig.app.document.table.app.mainplugin</artifactId>
69
            <version>2.0.0-SNAPSHOT</version>
70
            <scope>compile</scope>
71
        </dependency>
72
        <dependency>
73
            <groupId>net.sf.smc</groupId>
74
            <artifactId>smc</artifactId>
75
            <scope>compile</scope>
76
        </dependency>
77
        <dependency>
78
            <groupId>org.gvsig</groupId>
79
            <artifactId>org.gvsig.symbology.lib.api</artifactId>
80
            <scope>compile</scope>
81
        </dependency>
82
        <dependency>
83
            <groupId>org.gvsig</groupId>
84
            <artifactId>org.gvsig.symbology.swing.api</artifactId>
85
            <scope>compile</scope>
86
        </dependency>
87
        <dependency>
88
            <groupId>org.gvsig</groupId>
89
            <artifactId>org.gvsig.fmap.geometry</artifactId>
90
            <scope>compile</scope>
91
        </dependency>
92
        <!-- TODO: we shouldn't have the following implementation compile dependencies -->
93
        <dependency>
94
            <groupId>org.gvsig</groupId>
95
            <artifactId>org.gvsig.fmap.geometry</artifactId>
96
            <classifier>impl</classifier>
97
            <scope>compile</scope>
98
        </dependency>
99
        <dependency>
100
            <groupId>org.gvsig</groupId>
101
            <artifactId>org.gvsig.fmap.geometry</artifactId>
102
            <classifier>operation</classifier>
103
            <scope>compile</scope>
104
        </dependency>
105
        <dependency>
106
            <groupId>org.gvsig</groupId>
107
            <artifactId>org.gvsig.fmap.dal</artifactId>
108
            <scope>compile</scope>
109
        </dependency>
110
        <dependency>
111
            <groupId>org.gvsig</groupId>
112
            <artifactId>org.gvsig.fmap.dal</artifactId>
113
            <classifier>spi</classifier>
114
            <scope>compile</scope>
115
        </dependency>
116
        <dependency>
117
            <groupId>org.gvsig</groupId>
118
            <artifactId>org.gvsig.fmap.dal</artifactId>
119
            <classifier>impl</classifier>
120
            <scope>compile</scope>
121
        </dependency>
122
        <dependency>
123
            <groupId>org.gvsig</groupId>
124
            <artifactId>org.gvsig.fmap.dal.file</artifactId>
125
            <scope>compile</scope>
126
        </dependency>
127
        <dependency>
128
            <groupId>org.gvsig</groupId>
129
            <artifactId>org.gvsig.fmap.dal.file</artifactId>
130
            <classifier>store.shp</classifier>
131
            <scope>compile</scope>
132
        </dependency>
133
        <dependency>
134
            <groupId>org.gvsig</groupId>
135
            <artifactId>org.gvsig.fmap.dal.file</artifactId>
136
            <classifier>store.dbf</classifier>
137
            <scope>compile</scope>
138
        </dependency>
139
        <dependency>
140
            <groupId>org.gvsig</groupId>
141
            <artifactId>org.gvsig.fmap.dal.file</artifactId>
142
            <classifier>store.dxf</classifier>
143
            <scope>compile</scope>
144
        </dependency>
145
        <dependency>
146
            <groupId>org.gvsig</groupId>
147
            <artifactId>org.gvsig.symbology.lib.impl</artifactId>
148
            <scope>compile</scope>
149
        </dependency>
150
        <dependency>
151
            <groupId>org.gvsig</groupId>
152
            <artifactId>org.gvsig.andami</artifactId>
153
            <scope>compile</scope>
154
        </dependency>
155
        <dependency>
156
            <groupId>org.gvsig</groupId>
157
            <artifactId>org.gvsig.fmap.mapcontext</artifactId>
158
            <scope>compile</scope>
159
        </dependency>
160
        <dependency>
161
            <groupId>org.gvsig</groupId>
162
            <artifactId>org.gvsig.fmap.mapcontext</artifactId>
163
            <classifier>operation</classifier>
164
            <scope>compile</scope>
165
        </dependency>
166
        <dependency>
167
            <groupId>org.gvsig</groupId>
168
            <artifactId>org.gvsig.fmap.control</artifactId>
169
            <scope>compile</scope>
170
        </dependency>
171
        <dependency>
172
            <groupId>org.gvsig</groupId>
173
            <artifactId>org.gvsig.projection</artifactId>
174
            <scope>compile</scope>
175
        </dependency>
176
        <dependency>
177
            <groupId>org.gvsig</groupId>
178
            <artifactId>org.gvsig.tools.lib</artifactId>
179
            <scope>compile</scope>
180
        </dependency>
181
        <dependency>
182
            <groupId>org.gvsig</groupId>
183
            <artifactId>org.gvsig.tools.swing.api</artifactId>
184
            <scope>compile</scope>
185
        </dependency>
186
        <dependency>
187
            <groupId>org.gvsig</groupId>
188
            <artifactId>org.gvsig.utils</artifactId>
189
            <scope>compile</scope>
190
        </dependency>
191
        <dependency>
192
            <groupId>org.gvsig</groupId>
193
            <artifactId>org.gvsig.metadata.lib.basic.api</artifactId>
194
            <scope>compile</scope>
195
        </dependency>
196
        <dependency>
197
            <groupId>org.slf4j</groupId>
198
            <artifactId>slf4j-api</artifactId>
199
            <scope>compile</scope>
200
        </dependency>
201
        <dependency>
202
            <groupId>jwizardcomponent</groupId>
203
            <artifactId>jwizardcomponent</artifactId>
204
            <scope>compile</scope>
205
        </dependency>
206
        <dependency>
207
            <groupId>com.vividsolutions</groupId>
208
            <artifactId>jts</artifactId>
209
            <scope>compile</scope>
210
        </dependency>
211
        <dependency>
212
            <groupId>org.apache.xmlgraphics</groupId>
213
            <artifactId>batik-awt-util</artifactId>
214
            <scope>compile</scope>
215
        </dependency>  
216
    </dependencies>
217

  
218
    <properties>
219
        <build-dir>${basedir}/../build</build-dir>
220
        <eclipse.project.name>extEditing</eclipse.project.name>
221
        <package.info.dependencies>required: org.gvsig.app.document.table.app.mainplugin -ge 2</package.info.dependencies>        
222
    </properties>
223
</project>
tags/v2_0_0_Build_2038/extensions/extEditing/.cvsignore
1
bin
2
bin-test
0 3

  
tags/v2_0_0_Build_2038/extensions/extEditing/distribution/distribution.xml
1
<assembly>
2
	<id>distribution</id>
3
	<formats>
4
		<format>dir</format>
5
	</formats>
6
	<fileSets>
7
	<!-- Extructure for the extension -->
8
		<fileSet>
9
			<directory>config</directory>
10
			<outputDirectory>${extension.install.dir.name}
11
			</outputDirectory>
12
		</fileSet>
13
		<fileSet>
14
			<directory>images</directory>
15
			<outputDirectory>/${extension.install.dir.name}/images
16
			</outputDirectory>
17
		</fileSet>
18
	</fileSets>
19
    <files>
20
        <file>
21
            <source>package.info</source>
22
            <outputDirectory>${extension.install.dir.name}
23
            </outputDirectory>
24
        </file>
25
    </files>
26
	<!--
27
		***********************************************************************
28
	-->
29
  <!-- *													   *-->
30
	<!--
31
		***********************************************************************
32
	-->
33
	<dependencySets>
34
		<dependencySet>
35
			<outputDirectory>${extension.install.dir.name}/${library-dir}
36
			</outputDirectory>
37
			<includes>
38
				<include>org.gvsig:org.gvsig.editing</include>
39
			</includes>
40
		</dependencySet>
41
		<dependencySet>
42
			<outputDirectory>${extension.install.dir.name}/${library-dir}</outputDirectory>
43
			<includes>
44
				<include>net.sf.smc:smc</include>
45
			</includes>
46
		</dependencySet>
47
	</dependencySets>
48
</assembly>
tags/v2_0_0_Build_2038/extensions/extEditing/sm/EditVertexCADTool.sm
1
// -*- tab-width: 4; -*-
2

  
3
%{
4
//
5
// Vicente Caballero Navarro
6
%}
7

  
8
%start EditVertex::SelectVertexOrDelete
9
%class EditVertexCADTool
10
%package com.iver.cit.gvsig.gui.cad.tools.smc
11
%import com.iver.cit.gvsig.gui.cad.tools.EditVertexCADTool
12
%import java.awt.event.InputEvent
13
%import com.iver.andami.PluginServices
14

  
15
%map EditVertex
16
%%
17
// A task begins life in suspended animation.
18

  
19
SelectVertexOrDelete
20
	Entry {
21
		selection();
22
		setQuestion(
23
			PluginServices.getText(this,"point")+", "+
24
		    PluginServices.getText(this,"next")+
25
		    "["+PluginServices.getText(this,"EditVertexCADTool.nextvertex")+"], "+
26
		     PluginServices.getText(this,"previous")+
27
		    "["+PluginServices.getText(this,"EditVertexCADTool.previousvertex")+"], "+
28
		     PluginServices.getText(this,"add")+
29
		    "["+PluginServices.getText(this,"EditVertexCADTool.addvertex")+"] "+
30
		    PluginServices.getText(this,"cad.or")+" "+
31
		     PluginServices.getText(this,"del")+
32
		    "["+PluginServices.getText(this,"EditVertexCADTool.delvertex")+"]");
33
		setDescription(new String[]{"next","previous","add","del","cancel"});
34

  
35
		}
36
	Exit{
37
		}
38

  
39
	{
40
		addPoint( pointX:double,pointY:double,event:InputEvent)
41
			SelectVertexOrDelete {
42
				setQuestion(PluginServices.getText(this,"select_from_point"));
43
				setDescription(new String[]{"next","previous","add","del","cancel"});
44
				addPoint( pointX,pointY,event);
45
				}
46
		addOption(s:String)
47
		[s.equals("i") || s.equals("I") || s.equals(PluginServices.getText(this,"add"))]
48
			AddVertex {
49
				setQuestion(PluginServices.getText(this,"add_vertex"));
50
				setDescription(new String[]{"cancel"});
51
				addOption(s);
52
				}
53
		addOption(s:String)
54
		[!s.equals("i") && !s.equals("I") && !s.equals(PluginServices.getText(this,"add"))]
55

  
56
			SelectVertexOrDelete {
57
				setQuestion(
58
					PluginServices.getText(this,"point")+", "+
59
				    PluginServices.getText(this,"next")+
60
				    "["+PluginServices.getText(this,"EditVertexCADTool.nextvertex")+"], "+
61
				     PluginServices.getText(this,"previous")+
62
				    "["+PluginServices.getText(this,"EditVertexCADTool.previousvertex")+"], "+
63
				     PluginServices.getText(this,"add")+
64
				    "["+PluginServices.getText(this,"EditVertexCADTool.addvertex")+"] "+
65
				    PluginServices.getText(this,"cad.or")+" "+
66
				     PluginServices.getText(this,"del")+
67
				    "["+PluginServices.getText(this,"EditVertexCADTool.delvertex")+"]");
68
				setDescription(new String[]{"next","previous","add","del","cancel"});
69
				addOption(s);
70
				}
71
	}
72

  
73
AddVertex{
74
	addPoint( pointX:double,pointY:double,event:InputEvent)
75
			SelectVertexOrDelete {
76
				setQuestion(PluginServices.getText(this,"select_from_point"));
77
				setDescription(new String[]{"next","previous","add","del","cancel"});
78
				addPoint( pointX,pointY,event);
79
			}
80
}
81

  
82
Default
83
{
84
	addOption(s:String)
85
		[s.equals(PluginServices.getText(this,"cancel"))]
86
		SelectVertexOrDelete{
87
			end();
88
			}
89
	addOption(s:String)
90
		SelectVertexOrDelete{
91
			throwOptionException(PluginServices.getText(this,"incorrect_option"),s);
92
			}
93
	addValue(d:double)
94
		SelectVertexOrDelete{
95
			throwValueException(PluginServices.getText(this,"incorrect_value"),d);
96
			}
97
	addPoint(pointX:double,pointY:double,event:InputEvent)
98
		SelectVertexOrDelete{
99
			throwPointException(PluginServices.getText(this,"incorrect_point"),pointX,pointY);
100
			}
101
}
102
%%
0 103

  
tags/v2_0_0_Build_2038/extensions/extEditing/sm/BreakCADTool.sm
1
// -*- tab-width: 4; -*-
2

  
3
%{
4
//
5
// Vicente Caballero Navarro
6
%}
7

  
8
%start Break::FirstPoint
9
%class BreakCADTool
10
%package com.iver.cit.gvsig.gui.cad.tools.smc
11
%import com.iver.cit.gvsig.gui.cad.tools.BreakCADTool
12
%import java.awt.event.InputEvent
13
%import com.iver.andami.PluginServices
14

  
15
%map Break
16
%%
17
// A task begins life in suspended animation.
18

  
19
FirstPoint
20
	Entry {
21
		selection();
22
		setQuestion(
23
		PluginServices.getText(this,"insert_first_point"));
24
		setDescription(new String[]{"cancel"});
25

  
26
		}
27
	Exit{
28
		}
29

  
30
	{
31
		addPoint( pointX:double,pointY:double,event:InputEvent)
32
			[ctxt.intersects(pointX,pointY)]
33
			SecondPoint {
34
				setQuestion(PluginServices.getText(this,"insert_second_point"));
35
				setDescription(new String[]{"cancel"});
36
				addPoint( pointX,pointY,event);
37
				}
38
		addPoint( pointX:double,pointY:double,event:InputEvent)
39
			[!ctxt.intersects(pointX,pointY)]
40
			FirstPoint {
41
				setQuestion(PluginServices.getText(this,"insert_first_point"));
42
				setDescription(new String[]{"cancel"});
43
				}
44
		addOption(s:String)
45
			FirstPoint {
46
				setQuestion(PluginServices.getText(this,"insert_first_point"));
47
				setDescription(new String[]{"cancel"});
48
				addOption(s);
49
				}
50
	}
51

  
52

  
53
SecondPoint
54
{
55
	addPoint( pointX:double,pointY:double,event:InputEvent)
56
			[ctxt.intersects(pointX,pointY)]
57
			FirstPoint {
58
				setQuestion(PluginServices.getText(this,"insert_first_point"));
59
				setDescription(new String[]{"cancel"});
60
				addPoint( pointX,pointY,event);
61
				end();
62
				}
63
	addPoint( pointX:double,pointY:double,event:InputEvent)
64
			[!ctxt.intersects(pointX,pointY)]
65
			SecondPoint {
66
				setQuestion(PluginServices.getText(this,"insert_second_point"));
67
				setDescription(new String[]{"cancel"});
68
			}
69
		addOption(s:String)
70
			FirstPoint {
71
				setQuestion(PluginServices.getText(this,"insert_first_point"));
72
				setDescription(new String[]{"cancel"});
73
				addOption(s);
74
				}
75
}
76
Default
77
{
78
	addOption(s:String)
79
		[s.equals(PluginServices.getText(this,"cancel"))]
80
		FirstPoint{
81
			end();
82
			}
83
	addOption(s:String)
84
		FirstPoint{
85
			throwOptionException(PluginServices.getText(this,"incorrect_option"),s);
86
			}
87
	addValue(d:double)
88
		FirstPoint{
89
			throwValueException(PluginServices.getText(this,"incorrect_value"),d);
90
			}
91
	addPoint(pointX:double,pointY:double,event:InputEvent)
92
		FirstPoint{
93
			throwPointException(PluginServices.getText(this,"incorrect_point"),pointX,pointY);
94
			}
95
}
96
%%
0 97

  
tags/v2_0_0_Build_2038/extensions/extEditing/sm/ExploitCADTool.sm
1
// -*- tab-width: 4; -*-
2

  
3
%{
4
//
5
// Vicente Caballero Navarro
6
%}
7

  
8
%start Exploit::Execute
9
%class ExploitCADTool
10
%package com.iver.cit.gvsig.gui.cad.tools.smc
11
%import com.iver.cit.gvsig.gui.cad.tools.ExploitCADTool
12
%import java.awt.event.InputEvent
13
%import com.iver.andami.PluginServices
14

  
15
%map Exploit
16
%%
17
// A task begins life in suspended animation.
18

  
19
Execute
20
	Entry {
21
		exploit();
22
		end();
23
		}
24
	Exit{
25
		}
26

  
27
	{
28
	}
29

  
30
Default
31
{
32
	addOption(s:String)
33
		[s.equals(PluginServices.getText(this,"cancel"))]
34
		Execute{
35
			end();
36
			}
37
	addOption(s:String)
38
		Execute{
39
			throwOptionException(PluginServices.getText(this,"incorrect_option"),s);
40
			}
41
	addValue(d:double)
42
		Execute{
43
			throwValueException(PluginServices.getText(this,"incorrect_value"),d);
44
			}
45
	addPoint(pointX:double,pointY:double,event:InputEvent)
46
		Execute{
47
			throwPointException(PluginServices.getText(this,"incorrect_point"),pointX,pointY);
48
			}
49
}
50
%%
0 51

  
tags/v2_0_0_Build_2038/extensions/extEditing/sm/InternalPolygonCADTool.sm
1
// -*- tab-width: 4; -*-
2

  
3
%{
4
//
5
// Vicente Caballero Navarro
6
%}
7

  
8
%start InternalPolygon::AddNextPoint
9
%class InternalPolygonCADTool
10
%package com.iver.cit.gvsig.gui.cad.tools.smc
11
%import com.iver.cit.gvsig.gui.cad.tools.InternalPolygonCADTool
12
%import java.awt.event.InputEvent
13
%import com.iver.andami.PluginServices
14

  
15
%map InternalPolygon
16
%%
17
// A task begins life in suspended animation.
18

  
19
AddNextPoint
20
	Entry {
21
		selection();
22
		setQuestion(
23
			PluginServices.getText(this,"next_point")+" "+
24
		    PluginServices.getText(this,"cad.or")+" "+
25
		    PluginServices.getText(this,"end")+
26
		    "["+PluginServices.getText(this,"InternalPolygonCADTool.end")+"]");
27
		setDescription(new String[]{"end","cancel"});
28

  
29
		}
30
	Exit{
31
		}
32

  
33
	{
34
		addPoint( pointX:double,pointY:double,event:InputEvent)
35
			AddNextPoint {
36
				setQuestion(
37
					PluginServices.getText(this,"next_point")+" "+
38
		    		PluginServices.getText(this,"cad.or")+" "+
39
		    		PluginServices.getText(this,"end")+
40
		    		"["+PluginServices.getText(this,"InternalPolygonCADTool.end")+"]");
41
				setDescription(new String[]{"end","cancel"});
42
				addPoint( pointX,pointY,event);
43
				}
44
		addOption(s:String)
45
			AddNextPoint {
46
				setQuestion(
47
					PluginServices.getText(this,"next_point")+" "+
48
		    		PluginServices.getText(this,"cad.or")+" "+
49
		    		"["+PluginServices.getText(this,"InternalPolygonCADTool.end")+"]");
50
				setDescription(new String[]{"end","cancel"});
51
				addOption(s);
52
				}
53
	}
54

  
55

  
56
Default
57
{
58
	addOption(s:String)
59
		[s.equals(PluginServices.getText(this,"cancel"))]
60
		AddNextPoint{
61
			end();
62
			}
63
	addOption(s:String)
64
		AddNextPoint{
65
			throwOptionException(PluginServices.getText(this,"incorrect_option"),s);
66
			}
67
	addValue(d:double)
68
		AddNextPoint{
69
			throwValueException(PluginServices.getText(this,"incorrect_value"),d);
70
			}
71
	addPoint(pointX:double,pointY:double,event:InputEvent)
72
		AddNextPoint{
73
			throwPointException(PluginServices.getText(this,"incorrect_point"),pointX,pointY);
74
			}
75
}
76
%%
0 77

  
tags/v2_0_0_Build_2038/extensions/extEditing/sm/SelectionCADTool.sm
1
// -*- tab-width: 4; -*-
2

  
3
%{
4
//
5
// Vicente Caballero Navarro
6
%}
7

  
8
%start Selection::FirstPoint
9
%class SelectionCADTool
10
%package com.iver.cit.gvsig.gui.cad.tools.smc
11
%import com.iver.cit.gvsig.gui.cad.tools.SelectionCADTool
12
%import java.awt.event.InputEvent
13
%import com.iver.andami.PluginServices
14

  
15

  
16
%map Selection
17
%%
18
// A task begins life in suspended animation.
19

  
20
FirstPoint
21

  
22
  Entry {
23
    setQuestion(
24
    PluginServices.getText(this,"insert_point_selection"));
25
    setDescription(new String[]{"cancel"});
26
    }
27
  Exit{
28
    }
29

  
30
  {
31

  
32
    addPoint( pointX:double,pointY:double,event:InputEvent)
33
      [ctxt.getType().equals(PluginServices.getText(this,"simple")) && ctxt.selectFeatures(pointX,pointY, event) && ctxt.getNextState().equals("Selection.SecondPoint")]
34
      SecondPoint{
35
        setQuestion(PluginServices.getText(this,"insert_second_point"));
36
        setDescription(new String[]{"cancel"});
37
        addPoint( pointX,pointY,event);
38
        }
39
    addPoint( pointX:double,pointY:double,event:InputEvent)
40
      [ctxt.getType().equals(PluginServices.getText(this,"simple")) && ctxt.getNextState().equals("Selection.WithSelectedFeatures")]
41
      WithSelectedFeatures {
42
        setQuestion(PluginServices.getText(this,"select_handlers"));
43
        setDescription(new String[]{"cancel"});
44
        addPoint( pointX,pointY,event);
45
        end();
46
        }
47
}
48

  
49
SecondPoint{
50
  // Si hemos conseguido seleccionar algo
51
  addPoint( pointX:double,pointY:double,event:InputEvent)
52
      [ctxt.selectWithSecondPoint(pointX,pointY, event) > 0]
53
      WithSelectedFeatures {
54
        setQuestion(PluginServices.getText(this,"select_handlers"));
55
        setDescription(new String[]{"cancel"});
56
        addPoint( pointX,pointY,event);
57
        end();
58
        }
59
  // Si no lo hemos conseguido
60
  addPoint( pointX:double,pointY:double,event:InputEvent)
61
      FirstPoint {
62
        setQuestion(PluginServices.getText(this,"insert_point_selection"));
63
        setDescription(new String[]{"cancel"});
64
        addPoint(pointX,pointY,event);
65
        }
66
  addOption(s:String)
67
      FirstPoint{
68
        setQuestion(PluginServices.getText(this,"insert_point_selection"));
69
        setDescription(new String[]{"cancel"});
70
        setType(s);
71
        }
72

  
73
}
74
WithSelectedFeatures{
75

  
76
  // Si hemos pinchado encima de un handler
77
  addPoint( pointX:double,pointY:double,event:InputEvent)
78
  [ctxt.selectHandlers(pointX, pointY, event)>0]
79
      WithHandlers {
80
        setQuestion(PluginServices.getText(this,"insert_destination_point"));
81
        setDescription(new String[]{"cancel"});
82
        addPoint( pointX,pointY,event);
83
        // refresh();
84
        }
85

  
86
  // Si no hemos cogido un handler, probamos a seleccionar
87
  // otra entidad
88
  addPoint( pointX:double,pointY:double,event:InputEvent)
89
    [ctxt.selectFeatures(pointX,pointY, event) && ctxt.getNextState().equals("Selection.WithSelectedFeatures")]
90
      WithSelectedFeatures {
91
        setQuestion(PluginServices.getText(this,"select_handlers"));
92
        setDescription(new String[]{"cancel"});
93
        addPoint( pointX,pointY,event);
94
        }
95

  
96

  
97
  // Cualquier otro caso (hemos pinchado en algo vacio), volvemos al estado inicial
98
  addPoint( pointX:double,pointY:double,event:InputEvent)
99
      FirstPoint {
100
        setQuestion(PluginServices.getText(this,"insert_point_selection"));
101
        setDescription(new String[]{"cancel"});
102
        addPoint( pointX,pointY,event);
103
        // refresh();
104
        }
105
	 addOption(s:String)
106
      FirstPoint{
107
        setQuestion(PluginServices.getText(this,"insert_point_selection"));
108
        setDescription(new String[]{"cancel"});
109
        setType(s);
110
        }
111
}
112

  
113
WithHandlers{
114
  addPoint( pointX:double,pointY:double,event:InputEvent)
115
      WithSelectedFeatures {
116
        setQuestion(PluginServices.getText(this,"select_handlers"));
117
        setDescription(new String[]{"cancel"});
118
        addPoint( pointX,pointY,event);
119
        refresh();
120
        }
121
}
122

  
123
Default
124
{
125
	addOption(s:String)
126
      [s.equals("")]
127
      FirstPoint{
128
        restorePreviousTool();
129
        setQuestion(PluginServices.getText(this,"insert_point_selection"));
130
        setDescription(new String[]{"cancel"});
131
        end();
132
        }
133
  addOption(s:String)
134
    [s.equals(PluginServices.getText(this,"cancel"))]
135
    FirstPoint{
136
      end();
137
      }
138
    addOption(s:String)
139
		FirstPoint{
140
			throwOptionException(PluginServices.getText(this,"incorrect_option"),s);
141
			}
142
	addValue(d:double)
143
		FirstPoint{
144
			throwValueException(PluginServices.getText(this,"incorrect_value"),d);
145
			}
146
	addPoint(pointX:double,pointY:double,event:InputEvent)
147
		FirstPoint{
148
			throwPointException(PluginServices.getText(this,"incorrect_point"),pointX,pointY);
149
			}
150
}
151
%%
0 152

  
tags/v2_0_0_Build_2038/extensions/extEditing/sm/ScaleCADTool.sm
1
// -*- tab-width: 4; -*-
2

  
3
%{
4
//
5
// Vicente Caballero Navarro
6
%}
7

  
8
%start Scale::PointMain
9
%class ScaleCADTool
10
%package com.iver.cit.gvsig.gui.cad.tools.smc
11
%import com.iver.cit.gvsig.gui.cad.tools.ScaleCADTool
12
%import java.awt.event.InputEvent
13
%import com.iver.andami.PluginServices
14

  
15
%map Scale
16
%%
17
// A task begins life in suspended animation.
18

  
19
PointMain
20
	Entry {
21
		selection();
22
		setQuestion(
23
		PluginServices.getText(this,"insert_basis_point"));
24
		setDescription(new String[]{"cancel"});
25

  
26
		}
27
	Exit{
28
		}
29

  
30
	{
31
		addPoint( pointX:double,pointY:double,event:InputEvent)
32
			ScaleFactorOrReference {
33
				setQuestion(
34
					PluginServices.getText(this,"insert_factor")+ " "+
35
					PluginServices.getText(this,"cad.or")+" "+
36
					PluginServices.getText(this,"reference")+
37
					PluginServices.getText(this,"ScaleCADTool.reference"));
38
				setDescription(new String[]{"reference","cancel"});
39
				addPoint( pointX,pointY,event);
40
				}
41
	}
42
ScaleFactorOrReference{
43
	addValue(d:double)
44
		PointMain{
45
			addValue(d);
46
			end();
47
			refresh();
48
			}
49
	addOption(s:String)
50
		[s.equals(null) || s.equals("")]
51
		PointMain{
52
			addOption(s);
53
			end();
54
			refresh();
55
			}
56
	addOption(s:String)
57
		[s.equalsIgnoreCase(PluginServices.getText(this,"ScaleCADTool.reference")) || s.equals(PluginServices.getText(this,"reference"))]
58
		PointOriginOrScaleFactor{
59
			setQuestion(
60
				PluginServices.getText(this,"insert_reference_point")+ " "+
61
				PluginServices.getText(this,"cad.or")+" "+
62
				PluginServices.getText(this,"factor")+
63
				"["+PluginServices.getText(this,"ScaleCADTool.factor")+"]");
64
			setDescription(new String[]{"factor","cancel"});
65
			//addOption(s);
66
			}
67
	addPoint( pointX:double,pointY:double,event:InputEvent)
68
		PointMain {
69
			addPoint( pointX,pointY,event);
70
			end();
71
			refresh();
72
			}
73
}
74
PointOriginOrScaleFactor{
75
	addOption(s:String)
76
		[s.equalsIgnoreCase(PluginServices.getText(this,"ScaleCADTool.factor")) || s.equals(PluginServices.getText(this,"factor"))]
77
		PointMain{
78
			setQuestion(
79
				PluginServices.getText(this,"insert_factor")+ " "+
80
				PluginServices.getText(this,"cad.or")+" "+
81
				PluginServices.getText(this,"reference")+
82
				"["+PluginServices.getText(this,"ScaleCADTool.reference")+"]");
83
			setDescription(new String[]{"reference","cancel"});
84
			addOption(s);
85
			}
86
	addPoint( pointX:double,pointY:double,event:InputEvent)
87
		EndPointReference {
88
			setQuestion(PluginServices.getText(this,"insert_last_point_reference"));
89
			setDescription(new String[]{"cancel"});
90
			addPoint( pointX,pointY,event);
91
			}
92
}
93
EndPointReference{
94
	addPoint( pointX:double,pointY:double,event:InputEvent)
95
		OriginPointScale {
96
			setQuestion(PluginServices.getText(this,"insert_first_point_scale"));
97
			setDescription(new String[]{"cancel"});
98
			addPoint( pointX,pointY,event);
99
			}
100
}
101
OriginPointScale{
102
	addPoint( pointX:double,pointY:double,event:InputEvent)
103
		EndPointScale {
104
			setQuestion(PluginServices.getText(this,"insert_last_point_scale"));
105
			setDescription(new String[]{"cancel"});
106
			addPoint( pointX,pointY,event);
107
			}
108
}
109
EndPointScale{
110
	addPoint( pointX:double,pointY:double,event:InputEvent)
111
		PointMain {
112
			addPoint( pointX,pointY,event);
113
			end();
114
			refresh();
115
			}
116
}
117

  
118
Default
119
{
120
	addOption(s:String)
121
		[s.equals(PluginServices.getText(this,"cancel"))]
122
		PointMain{
123
			end();
124
			}
125
	addOption(s:String)
126
		PointMain{
127
			throwOptionException(PluginServices.getText(this,"incorrect_option"),s);
128
			}
129
	addValue(d:double)
130
		PointMain{
131
			throwValueException(PluginServices.getText(this,"incorrect_value"),d);
132
			}
133
	addPoint(pointX:double,pointY:double,event:InputEvent)
134
		PointMain{
135
			throwPointException(PluginServices.getText(this,"incorrect_point"),pointX,pointY);
136
			}
137
}
138
%%
0 139

  
tags/v2_0_0_Build_2038/extensions/extEditing/sm/PolygonCADTool.sm
1
// -*- tab-width: 4; -*-
2

  
3
%{
4
//
5
// Vicente Caballero Navarro
6
%}
7

  
8
%start Polygon::NumberOrCenterPoint
9
%class PolygonCADTool
10
%package com.iver.cit.gvsig.gui.cad.tools.smc
11
%import com.iver.cit.gvsig.gui.cad.tools.PolygonCADTool
12
%import java.awt.event.InputEvent
13
%import com.iver.andami.PluginServices
14

  
15
%map Polygon
16
%%
17
// A task begins life in suspended animation.
18

  
19
NumberOrCenterPoint
20

  
21
	Entry {
22
		setQuestion(
23
		PluginServices.getText(this,"insert_number_sides"));
24
		setDescription(new String[]{"cancel"});
25
		}
26
	Exit{
27
		}
28

  
29
	{
30
		addValue(d:double)
31
			[d<3]
32
			NumberOrCenterPoint{
33
				throwValueException(PluginServices.getText(this,"num_lados_insuficiente"),d);
34
			}
35
		addValue(d:double)
36
			[d>2]
37
			CenterPoint {
38
				setQuestion(PluginServices.getText(this,"insert_central_point_polygon"));
39
				setDescription(new String[]{"cancel"});
40
				addValue(d);
41
				}
42
		addPoint( pointX:double,pointY:double,event:InputEvent)
43
			OptionOrRadiusOrPoint {
44
				setQuestion(
45
					PluginServices.getText(this,"into_circle")+" "+
46
					"["+PluginServices.getText(this,"PolygonCADTool.into_circle")+"]"+
47
	    			PluginServices.getText(this,"cad.or")+" "+
48
	    			PluginServices.getText(this,"circumscribed")+
49
	   				"["+PluginServices.getText(this,"PolygonCADTool.circumscribed")+"]");
50
				setDescription(new String[]{"into_circle","circumscribed","cancel"});
51
				addPoint( pointX,pointY,event);
52
				}
53

  
54
	}
55
CenterPoint{
56
	addPoint( pointX:double,pointY:double,event:InputEvent)
57
		OptionOrRadiusOrPoint {
58
			setQuestion(
59
				PluginServices.getText(this,"into_circle")+" "+
60
				"["+PluginServices.getText(this,"PolygonCADTool.into_circle")+"]"+
61
	    		PluginServices.getText(this,"cad.or")+" "+
62
	    		PluginServices.getText(this,"circumscribed")+
63
	   			"["+PluginServices.getText(this,"PolygonCADTool.circumscribed")+"]");
64
			setDescription(new String[]{"into_circle","circumscribed","cancel"});
65
			addPoint( pointX,pointY,event);
66
			}
67
}
68
OptionOrRadiusOrPoint{
69
	addOption(s:String)
70
		[!s.equals(PluginServices.getText(this,"cancel"))]
71
		RadiusOrPoint {
72
			setQuestion(PluginServices.getText(this,"insert_radius"));
73
			setDescription(new String[]{"cancel"});
74
			addOption(s);
75
			}
76
	addValue(d:double)
77
		NumberOrCenterPoint{
78
			addValue(d);
79
			}
80
	addPoint( pointX:double,pointY:double,event:InputEvent)
81
		NumberOrCenterPoint {
82
			addPoint( pointX,pointY,event);
83
			}
84
}
85
RadiusOrPoint{
86
	addPoint( pointX:double,pointY:double,event:InputEvent)
87
		NumberOrCenterPoint {
88
			addPoint( pointX,pointY,event);
89
			}
90
	addValue(d:double)
91
		NumberOrCenterPoint{
92
			addValue(d);
93
			}
94
}
95

  
96
Default
97
{
98
	addOption(s:String)
99
		[s.equals(PluginServices.getText(this,"cancel"))]
100
		NumberOrCenterPoint{
101
			end();
102
			}
103
	addOption(s:String)
104
		NumberOrCenterPoint{
105
			throwOptionException(PluginServices.getText(this,"incorrect_option"),s);
106
			}
107
	addValue(d:double)
108
		NumberOrCenterPoint{
109
			throwValueException(PluginServices.getText(this,"incorrect_value"),d);
110
			}
111
	addPoint(pointX:double,pointY:double,event:InputEvent)
112
		NumberOrCenterPoint{
113
			throwPointException(PluginServices.getText(this,"incorrect_point"),pointX,pointY);
114
			}
115
}
116
%%
0 117

  
tags/v2_0_0_Build_2038/extensions/extEditing/sm/LineCADTool.sm
1
// -*- tab-width: 4; -*-
2

  
3
%{
4
//
5
// Vicente Caballero Navarro
6
%}
7

  
8
%start Line::FirstPoint
9
%class LineCADTool
10
%package com.iver.cit.gvsig.gui.cad.tools.smc
11
%import com.iver.cit.gvsig.gui.cad.tools.LineCADTool
12
%import java.awt.event.InputEvent
13
%import com.iver.andami.PluginServices
14

  
15
%map Line
16
%%
17
// A task begins life in suspended animation.
18

  
19
FirstPoint
20

  
21
	Entry {
22
		setQuestion(
23
		PluginServices.getText(this,"insert_first_point"));
24
		setDescription(new String[]{"cancel"});
25
		}
26
	Exit{
27
		}
28

  
29
	{
30

  
31
		addPoint( pointX:double,pointY:double,event:InputEvent)
32
			SecondPointOrAngle {
33
				setQuestion(PluginServices.getText(this,"insert_second_point_angle"));
34
				setDescription(new String[]{"cancel"});
35
				addPoint( pointX,pointY,event);
36
				}
37

  
38
	}
39
SecondPointOrAngle{
40
	addPoint( pointX:double,pointY:double,event:InputEvent)
41
		SecondPointOrAngle {
42
			setQuestion(PluginServices.getText(this,"insert_second_point_angle"));
43
			setDescription(new String[]{"cancel"});
44
			addPoint( pointX,pointY,event);
45
			}
46
	addValue( d:double)
47
		LenghtOrPoint {
48
			setQuestion(PluginServices.getText(this,"insert_length_or_point"));
49
			setDescription(new String[]{"cancel"});
50
			addValue( d);
51
			}
52

  
53
}
54
LenghtOrPoint{
55
	addPoint( pointX:double,pointY:double,event:InputEvent)
56
		SecondPointOrAngle {
57
			setQuestion(PluginServices.getText(this,"insert_second_point_angle"));
58
			setDescription(new String[]{"cancel"});
59
			addPoint( pointX,pointY,event);
60
			}
61
	addValue( d:double)
62
		SecondPointOrAngle {
63
			setQuestion(PluginServices.getText(this,"insert_second_point_angle"));
64
			setDescription(new String[]{"cancel"});
65
			addValue( d);
66
			}
67
	}
68
Default
69
{
70
	addOption(s:String)
71
		[s.equals(PluginServices.getText(this,"cancel"))]
72
		FirstPoint{
73
			end();
74
			}
75
	addOption(s:String)
76
		[s.equals("")]
77
		FirstPoint{
78
			end();
79
			}
80
	addOption(s:String)
81
		FirstPoint{
82
			throwOptionException(PluginServices.getText(this,"incorrect_option"),s);
83
			}
84
	addValue(d:double)
85
		FirstPoint{
86
			throwValueException(PluginServices.getText(this,"incorrect_value"),d);
87
			}
88
	addPoint(pointX:double,pointY:double,event:InputEvent)
89
		FirstPoint{
90
			throwPointException(PluginServices.getText(this,"incorrect_point"),pointX,pointY);
91
			}
92

  
93
}
94
%%
0 95

  
tags/v2_0_0_Build_2038/extensions/extEditing/sm/SymmetryCADTool.sm
1
// -*- tab-width: 4; -*-
2

  
3
%{
4
//
5
// Vicente Caballero Navarro
6
%}
7

  
8
%start Symmetry::FirstPoint
9
%class SymmetryCADTool
10
%package com.iver.cit.gvsig.gui.cad.tools.smc
11
%import com.iver.cit.gvsig.gui.cad.tools.SymmetryCADTool
12
%import java.awt.event.InputEvent
13
%import com.iver.andami.PluginServices
14

  
15
%map Symmetry
16
%%
17
// A task begins life in suspended animation.
18

  
19
FirstPoint
20
	Entry {
21
		selection();
22
		setQuestion(
23
		PluginServices.getText(this,"insert_first_point"));
24
		setDescription(new String[]{"cancel"});
25

  
26
		}
27
	Exit{
28
		}
29

  
30
	{
31
		addPoint( pointX:double,pointY:double,event:InputEvent)
32
			SecondPoint {
33
				setQuestion(PluginServices.getText(this,"insert_second_point"));
34
				setDescription(new String[]{"cancel"});
35
				addPoint( pointX,pointY,event);
36
				}
37
	}
38
SecondPoint{
39
	addPoint( pointX:double,pointY:double,event:InputEvent)
40
		CutOrCopy {
41
			setQuestion(
42
				PluginServices.getText(this,"del_original_geometries")+" "+
43
				PluginServices.getText(this,"yes")+
44
				"["+PluginServices.getText(this,"SymmetryCADTool.yes")+"], "+
45
				PluginServices.getText(this,"cad.or")+" "+
46
				PluginServices.getText(this,"no")+
47
				"["+PluginServices.getText(this,"SymmetryCADTool.no")+"]");
48
			setDescription(new String[]{"cancel","cut","copy"});
49
			addPoint( pointX,pointY,event);
50
			}
51
}
52
CutOrCopy{
53
	addOption(s:String)
54
		FirstPoint{
55
			setDescription(new String[]{"cancel"});
56
			addOption(s);
57
			end();
58
			}
59
}
60

  
61
Default
62
{
63
	addOption(s:String)
64
		[s.equals(PluginServices.getText(this,"cancel"))]
65
		FirstPoint{
66
			end();
67
			}
68
	addOption(s:String)
69
		FirstPoint{
70
			throwOptionException(PluginServices.getText(this,"incorrect_option"),s);
71
			}
72
	addValue(d:double)
73
		FirstPoint{
74
			throwValueException(PluginServices.getText(this,"incorrect_value"),d);
75
			}
76
	addPoint(pointX:double,pointY:double,event:InputEvent)
77
		FirstPoint{
78
			throwPointException(PluginServices.getText(this,"incorrect_point"),pointX,pointY);
79
			}
80
}
81
%%
0 82

  
tags/v2_0_0_Build_2038/extensions/extEditing/sm/PointCADTool.sm
1
// -*- tab-width: 4; -*-
2

  
3
%{
4
//
5
// Vicente Caballero Navarro
6
%}
7

  
8
%start Point::FirstPoint
9
%class PointCADTool
10
%package com.iver.cit.gvsig.gui.cad.tools.smc
11
%import com.iver.cit.gvsig.gui.cad.tools.PointCADTool
12
%import java.awt.event.InputEvent
13
%import com.iver.andami.PluginServices
14

  
15

  
16
%map Point
17
%%
18
// A task begins life in suspended animation.
19

  
20
FirstPoint
21

  
22
	Entry {
23
		setQuestion(
24
		PluginServices.getText(this,"define_point"));
25
		setDescription(new String[]{"cancel"});
26
		}
27
	Exit {
28
		}
29

  
30
	{
31

  
32
		addPoint( pointX:double,pointY:double,event:InputEvent)
33
			FirstPoint {
34
				setQuestion(PluginServices.getText(this,"insert_point"));
35
				setDescription(new String[]{"cancel"});
36
				addPoint( pointX,pointY,event);
37
				}
38
	}
39

  
40
Default
41
{
42
	addOption(s:String)
43
		[s.equals(PluginServices.getText(this,"cancel"))]
44
		FirstPoint{
45
			end();
46
			}
47
	addOption(s:String)
48
		FirstPoint{
49
			throwOptionException(PluginServices.getText(this,"incorrect_option"),s);
50
			}
51
	addValue(d:double)
52
		FirstPoint{
53
			throwValueException(PluginServices.getText(this,"incorrect_value"),d);
54
			}
55
	addPoint(pointX:double,pointY:double,event:InputEvent)
56
		FirstPoint{
57
			throwPointException(PluginServices.getText(this,"incorrect_point"),pointX,pointY);
58
			}
59
}
60
%%
0 61

  
tags/v2_0_0_Build_2038/extensions/extEditing/sm/SplineCADTool.sm
1
// -*- tab-width: 4; -*-
2

  
3
%{
4
//
5
// Vicente Caballero Navarro
6
%}
7

  
8
%start Spline::FirstPoint
9
%class SplineCADTool
10
%package com.iver.cit.gvsig.gui.cad.tools.smc
11
%import com.iver.cit.gvsig.gui.cad.tools.SplineCADTool
12
%import java.awt.event.InputEvent
13
%import com.iver.andami.PluginServices
14

  
15
%map Spline
16
%%
17
// A task begins life in suspended animation.
18

  
19
FirstPoint
20

  
21
	Entry {
22
		setQuestion(
23
		PluginServices.getText(this,"insert_first_point"));
24
		setDescription(new String[]{"cancel"});
25
		}
26
	Exit{
27
		}
28

  
29
	{
30
		addPoint( pointX:double,pointY:double,event:InputEvent)
31
			NextPoint{
32
				setQuestion(
33
					PluginServices.getText(this,"insert_next_point")+", "+
34
					PluginServices.getText(this,"close")+" "+
35
					"["+PluginServices.getText(this,"SplineCADTool.close")+"] "+
36
					PluginServices.getText(this,"cad.or")+" "+
37
					PluginServices.getText(this,"end")+" "+
38
					"["+PluginServices.getText(this,"SplineCADTool.end")+"]");
39
				setDescription(new String[]{"close","terminate","cancel"});
40
				addPoint( pointX,pointY,event);
41
				}
42
	}
43
NextPoint{
44

  
45
	addOption(s:String)
46
		[s.equalsIgnoreCase(PluginServices.getText(this,"SplineCADTool.close")) || s.equals(PluginServices.getText(this,"close"))]
47
		FirstPoint {
48
			addOption(s);
49
			closeGeometry();
50
			endGeometry();
51
			end();
52
			}
53
	addOption(s:String)
54
		[s.equalsIgnoreCase(PluginServices.getText(this,"SplineCADTool.end")) || s.equals(PluginServices.getText(this,"terminate"))]
55
		FirstPoint {
56
			addOption(s);
57
			endGeometry();
58
			end();
59
			}
60
	addPoint( pointX:double,pointY:double,event:InputEvent)
61
		NextPoint {
62
			setQuestion(
63
				PluginServices.getText(this,"insert_next_point")+", "+
64
				PluginServices.getText(this,"close")+" "+
65
				"["+PluginServices.getText(this,"SplineCADTool.close")+"] "+
66
				PluginServices.getText(this,"cad.or")+" "+
67
				PluginServices.getText(this,"end")+" "+
68
				"["+PluginServices.getText(this,"SplineCADTool.end")+"]");
69
			setDescription(new String[]{"close","terminate","cancel"});
70
			addPoint( pointX,pointY,event);
71
			}
72
}
73

  
74
Default
75
{
76
	addOption(s:String)
77
		[s.equals(PluginServices.getText(this,"cancel"))]
78
		FirstPoint{
79
			cancel();
80
			}
81
	addOption(s:String)
82
		[s.equals("")]
83
		FirstPoint{
84
			endGeometry();
85
			}
86
	addOption(s:String)
87
		FirstPoint{
88
			throwOptionException(PluginServices.getText(this,"incorrect_option"),s);
89
			}
90
	addValue(d:double)
91
		FirstPoint{
92
			throwValueException(PluginServices.getText(this,"incorrect_value"),d);
93
			}
94
	addPoint(pointX:double,pointY:double,event:InputEvent)
95
		FirstPoint{
96
			throwPointException(PluginServices.getText(this,"incorrect_point"),pointX,pointY);
97
			}
98
	endPoint(pointX:double,pointY:double,event:InputEvent)
99
		FirstPoint{
100
			addPoint( pointX,pointY,event);
101
			endGeometry();
102
			}
103

  
104
}
105
%%
0 106

  
tags/v2_0_0_Build_2038/extensions/extEditing/sm/PolylineCADTool.sm
1
// -*- tab-width: 4; -*-
2

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff