Revision 1222

View differences:

tags/org.gvsig.app.document.layout2.app-2.0.208/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
2

  
3
    <modelVersion>4.0.0</modelVersion>
4
    <artifactId>org.gvsig.app.document.layout2.app</artifactId>
5
    <packaging>pom</packaging>
6
    <version>2.0.208</version>
7

  
8
    <name>${project.artifactId}</name>
9
    <description>This plugin adds creation/management of layout (map) documents.</description>
10

  
11
    <parent>
12
        <groupId>org.gvsig</groupId>
13
        <artifactId>org.gvsig.desktop</artifactId>
14
        <version>2.0.342</version>
15
    </parent>
16

  
17
	<url>https://devel.gvsig.org/redmine/projects/gvsig-app-document-layout</url>
18

  
19
    <scm>
20
        <connection>scm:svn:https://devel.gvsig.org/svn/gvsig-app-document-layout/tags/org.gvsig.app.document.layout2.app-2.0.208</connection>
21
        <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-app-document-layout/tags/org.gvsig.app.document.layout2.app-2.0.208</developerConnection>
22
        <url>https://devel.gvsig.org/redmine/projects/gvsig-app-document-layout/repository/show/tags/org.gvsig.app.document.layout2.app-2.0.208</url>
23
    </scm>
24
    <repositories>
25
      <repository>
26
        <id>gvsig-public-http-repository</id>
27
        <name>gvSIG maven public HTTP repository</name>
28
        <url>http://devel.gvsig.org/m2repo/j2se</url>
29
        <releases>
30
          <enabled>true</enabled>
31
          <updatePolicy>daily</updatePolicy>
32
          <checksumPolicy>warn</checksumPolicy>
33
        </releases>
34
        <snapshots>
35
          <enabled>true</enabled>
36
          <updatePolicy>daily</updatePolicy>
37
          <checksumPolicy>warn</checksumPolicy>
38
        </snapshots>
39
      </repository>
40
    </repositories>
41

  
42
	<build>
43
		<plugins>
44
			<plugin>
45
				<groupId>org.apache.maven.plugins</groupId>
46
				<artifactId>maven-release-plugin</artifactId>
47
				<configuration>
48
					<tagBase>https://devel.gvsig.org/svn/gvsig-app-document-layout/tags</tagBase>
49
				</configuration>
50
			</plugin>
51
		</plugins>
52
	</build>
53

  
54
    <dependencyManagement>
55
         <dependencies>
56
            <!--
57
            Versions of child projects
58
            -->
59
            <dependency>
60
                <groupId>org.gvsig</groupId>
61
                <artifactId>org.gvsig.app.document.layout2.app.mainplugin</artifactId>
62
                <version>2.0.208</version>
63
            </dependency>
64

  
65
        </dependencies>
66
    </dependencyManagement>
67

  
68
	<modules>
69
		<module>org.gvsig.app.document.layout2.app.mainplugin</module>
70
	</modules>
71

  
72
</project>
tags/org.gvsig.app.document.layout2.app-2.0.208/org.gvsig.app.document.layout2.app.mainplugin/buildNumber.properties
1
#Tue Nov 16 19:48:54 CET 2021
2
buildNumber=227
tags/org.gvsig.app.document.layout2.app-2.0.208/org.gvsig.app.document.layout2.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml
1
<assembly>
2
  <id>gvsig-plugin-package</id>
3
  <formats>
4
    <format>zip</format>
5
  </formats>
6
  <baseDirectory>${project.artifactId}</baseDirectory>
7
  <includeBaseDirectory>true</includeBaseDirectory>
8
  <files>
9
    <file>
10
      <source>target/${project.artifactId}-${project.version}.jar</source>
11
      <outputDirectory>lib</outputDirectory>
12
    </file>
13
    <file>
14
      <source>target/package.info</source>
15
    </file>
16
  </files>
17

  
18
  <fileSets>
19
    <fileSet>
20
      <directory>src/main/resources-plugin</directory>
21
      <outputDirectory>.</outputDirectory>
22
    </fileSet>
23
  </fileSets>
24

  
25
  <dependencySets>
26
  
27
  <!--
28
    <dependencySet>
29
      <useProjectArtifact>false</useProjectArtifact>
30
      <useTransitiveDependencies>false</useTransitiveDependencies>
31
      <outputDirectory>lib</outputDirectory>
32
      <includes>
33
      </includes>
34
    </dependencySet>
35
    
36
    -->
37
    
38
  </dependencySets>
39

  
40
</assembly>
0 41

  
tags/org.gvsig.app.document.layout2.app-2.0.208/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/math/intervals/IntervalUtils.java
1
package org.gvsig.math.intervals;
2

  
3
public class IntervalUtils {
4

  
5
	/**
6
	 * Calculates an nice round interval division. For instance, for
7
	 * intervalLenght = 1100000 and numberOfDivisions=5,
8
	 * the result would be 250000.
9
	 * 
10
	 * @param intervalLength The full interval to be divided
11
	 * @param numberOfDivisions The exact number of divisions to perform
12
	 * @return A nice round interval division. The calculated result
13
	 * ensures that the whole interval length is covered by the proposed
14
	 * division, so it always fulfills the following formula:
15
	 *  <code>result*numberOfDivisions>=intervalLength</code>
16
	 */
17
	public static double roundIntervalDivision(double intervalLength, int numberOfDivisions) {
18
		if (intervalLength<=0.0d || numberOfDivisions<=0) {
19
			return 0.0d;
20
		}
21

  
22
		double division = intervalLength/numberOfDivisions;
23
		if (division==0.0d) {
24
			return 0.0d;
25
		}
26
		double digitShift = Math.floor((Math.log10(division)));
27
		double scale = Math.pow(10, -digitShift);
28
		double firstSignificatDigit = Math.floor(scale*division);
29
		double result = firstSignificatDigit*Math.pow(10, digitShift);
30
		if (result*numberOfDivisions>=intervalLength) {
31
			return result;
32
		}
33
		else {
34
			result = (0.5+firstSignificatDigit)*Math.pow(10, digitShift);
35
			if (result*numberOfDivisions>=intervalLength) {
36
				return result;
37
			}
38
		}
39
		result = (1+firstSignificatDigit)*Math.pow(10, digitShift);
40
		return result;
41
	}
42
}
tags/org.gvsig.app.document.layout2.app-2.0.208/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/extension/PrintProperties.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.app.extension;
23

  
24
/**
25
 */
26
import java.awt.geom.Rectangle2D;
27

  
28
import org.gvsig.andami.IconThemeHelper;
29
import org.gvsig.andami.PluginServices;
30
import org.gvsig.andami.plugins.Extension;
31
import org.gvsig.andami.ui.mdiManager.IWindow;
32
import org.gvsig.app.project.documents.layout.gui.LayoutPanel;
33

  
34
/**
35
 * DOCUMENT ME!
36
 * 
37
 * @author vcn
38
 */
39
public class PrintProperties extends Extension /*
40
                                                * implements
41
                                                * IPreferenceExtension
42
                                                */{
43

  
44
    private LayoutPanel l;
45
    // private static final IPreference printPropertiesPage = new
46
    // PrintPropertiesPage();
47
    // private Paper paper;
48
    Rectangle2D.Double aux = null;
49

  
50
    /**
51
     * DOCUMENT ME!
52
     * 
53
     * @param s
54
     *            DOCUMENT ME!
55
     */
56
    public void execute(String s) {
57
        if (s.compareTo("application-page-setup-layout") == 0) {
58
            l = (LayoutPanel) PluginServices.getMDIManager().getActiveWindow();
59
            l.showFConfig();
60
        }
61
    }
62

  
63
    /**
64
     * DOCUMENT ME!
65
     * 
66
     * @return DOCUMENT ME!
67
     */
68
    public boolean isVisible() {
69
        IWindow f = PluginServices.getMDIManager().getActiveWindow();
70

  
71
        if (f == null) {
72
            return false;
73
        }
74

  
75
        return (f instanceof LayoutPanel);
76
    }
77

  
78
    /**
79
     * @see com.iver.mdiApp.plugins.IExtension#isEnabled()
80
     */
81
    public boolean isEnabled() {
82
        LayoutPanel f =
83
            (LayoutPanel) PluginServices.getMDIManager().getActiveWindow();
84

  
85
        if (f == null || !f.getLayoutContext().isEditable()) {
86
            return false;
87
        }
88

  
89
        return true;
90
    }
91

  
92
    /**
93
     * @see org.gvsig.andami.plugins.IExtension#initialize()
94
     */
95
    public void initialize() {
96
        registerIcons();
97
    }
98

  
99
    private void registerIcons() {
100
        IconThemeHelper.registerIcon("action", "application-page-setup", this);
101
    }
102
}
tags/org.gvsig.app.document.layout2.app-2.0.208/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/extension/LayoutExtension.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.app.extension;
23

  
24
import java.awt.Component;
25
import java.io.File;
26
import java.io.FileOutputStream;
27

  
28
import javax.swing.JFileChooser;
29
import javax.swing.JOptionPane;
30

  
31
import org.slf4j.Logger;
32
import org.slf4j.LoggerFactory;
33

  
34
import org.gvsig.andami.IconThemeHelper;
35
import org.gvsig.andami.PluginServices;
36
import org.gvsig.andami.messages.NotificationManager;
37
import org.gvsig.andami.plugins.Extension;
38
import org.gvsig.andami.preferences.IPreference;
39
import org.gvsig.andami.preferences.IPreferenceExtension;
40
import org.gvsig.andami.ui.mdiManager.IWindow;
41
import org.gvsig.app.gui.preferencespage.LayoutPage;
42
import org.gvsig.app.project.documents.layout.FLayoutZooms;
43
import org.gvsig.app.project.documents.layout.LayoutManager;
44
import org.gvsig.app.project.documents.layout.gui.LayoutPanel;
45
import org.gvsig.i18n.Messages;
46
import org.gvsig.tools.ToolsLocator;
47
import org.gvsig.tools.persistence.PersistenceManager;
48
import org.gvsig.tools.persistence.PersistentState;
49
import org.gvsig.tools.persistence.text.JavaTextFactory;
50
import org.gvsig.utils.GenericFileFilter;
51

  
52
/**
53
 * Extensi?n para controlar las operaciones basicas sobre el Layout.
54
 * 
55
 * @author Vicente Caballero Navarro
56
 */
57
public class LayoutExtension extends Extension implements IPreferenceExtension {
58

  
59
    private static final Logger logger = LoggerFactory
60
            .getLogger(LayoutExtension.class);
61

  
62
    private LayoutPanel layout = null;
63

  
64
    /**
65
     * @see org.gvsig.andami.plugins.IExtension#execute(java.lang.String)
66
     */
67
    public void execute(String s) {
68
        layout = (LayoutPanel) PluginServices.getMDIManager().getActiveWindow();
69

  
70
        FLayoutZooms zooms = new FLayoutZooms(layout);
71
        logger.debug("Comand : " + s);
72

  
73
        if (s.equals("layout-navigation-pan")) {
74
            layout.getLayoutControl().setTool("layoutpan");
75
        }
76
        else if (s.equals("layout-navigation-zoom-in-topoint")) {
77
            layout.getLayoutControl().setTool("layoutzoomin");
78
        }
79
        else if (s.equals("layout-navigation-zoom-out-topoint")) {
80
            layout.getLayoutControl().setTool("layoutzoomout");
81
        }
82
        else if (s.equals("layout-navigation-zoom-all")) {
83
            layout.getLayoutControl().fullRect();
84
        }
85
        else if (s.equals("layout-navigation-zoom-real")) {
86
            zooms.realZoom();
87
        }
88
        else if (s.equals("layout-navigation-zoom-out-center")) {
89
            zooms.zoomOut();
90
        }
91
        else if (s.equals("layout-navigation-zoom-in-center")) {
92
            zooms.zoomIn();
93
        }
94
        else if (s.equals("layout-navigation-zoom-selected")) {
95
            zooms.zoomSelect();
96
        }
97
        else if (s.equals("application-layout-template-save")) {
98
            saveLayout();
99
        }
100
    }
101

  
102
    private void saveLayout() {
103
        layout = (LayoutPanel) PluginServices.getMDIManager().getActiveWindow();
104
        JFileChooser jfc = new JFileChooser();
105
        GenericFileFilter layoutMainFilter = new GenericFileFilter(
106
                LayoutManager.TEMPLATE_FILE_POINTEXT,
107
                Messages.getText("_Layout_template") + " (*"
108
                        + LayoutManager.TEMPLATE_FILE_POINTEXT + ")");
109
        jfc.addChoosableFileFilter(layoutMainFilter);
110
        jfc.setFileFilter(layoutMainFilter);
111

  
112
        if (jfc.showSaveDialog((Component) PluginServices.getMainFrame()) == JFileChooser.APPROVE_OPTION) {
113
            File file = jfc.getSelectedFile();
114
            if (!(file.getPath().endsWith(
115
                    LayoutManager.TEMPLATE_FILE_POINTEXT.toLowerCase()) || file
116
                    .getPath().endsWith(LayoutManager.TEMPLATE_FILE_POINTEXT))) {
117
                file = new File(file.getPath()
118
                        + LayoutManager.TEMPLATE_FILE_POINTEXT);
119
            }
120
            if (file.exists()) {
121
                int resp = JOptionPane.showConfirmDialog(
122
                        (Component) PluginServices.getMainFrame(),
123
                        PluginServices.getText(this,
124
                                "fichero_ya_existe_seguro_desea_guardarlo"),
125
                        PluginServices.getText(this, "guardar"),
126
                        JOptionPane.YES_NO_OPTION);
127
                if (resp != JOptionPane.YES_OPTION) {
128
                    return;
129
                }
130
            }
131

  
132
            try {
133
                FileOutputStream fos = new FileOutputStream(
134
                        file.getAbsolutePath());
135
                PersistenceManager persistenceManager = ToolsLocator
136
                        .getPersistenceManager();
137
                PersistentState persistentState = persistenceManager
138
                        .getState(layout);
139
                persistenceManager.saveState(persistentState, fos);
140
            }
141
            catch (Exception e) {
142
                NotificationManager.addError(PluginServices.getText(this,
143
                        "Error_guardando_la_plantilla"), e);
144
            }
145
        }
146
    }
147

  
148
    /**
149
     * @see com.iver.mdiApp.plugins.IExtension#isVisible()
150
     */
151
    public boolean isVisible() {
152
        IWindow f = PluginServices.getMDIManager().getActiveWindow();
153

  
154
        if (f == null) {
155
            return false;
156
        }
157

  
158
        if (f instanceof LayoutPanel) {
159
            return true;
160
        }
161
        return false;
162
    }
163

  
164
    /**
165
     * @see org.gvsig.andami.plugins.IExtension#initialize()
166
     */
167
    public void initialize() {
168
        registerPersistence();
169
        registerIcons();
170
    }
171

  
172
    private void registerPersistence() {
173
        PersistenceManager manager = ToolsLocator.getPersistenceManager();
174
        JavaTextFactory factory = new JavaTextFactory();
175
        manager.registerFactory(factory);
176
    }
177

  
178
    private void registerIcons() {
179

  
180
        IconThemeHelper.registerIcon("action",
181
                "application-layout-template-save", this);
182

  
183
        IconThemeHelper.registerIcon("action",
184
                "layout-navigation-zoom-in-center", this);
185
        IconThemeHelper.registerIcon("action",
186
                "layout-navigation-zoom-out-center", this);
187
        IconThemeHelper.registerIcon("action",
188
                "layout-navigation-zoom-in-topoint", this);
189
        IconThemeHelper.registerIcon("action",
190
                "layout-navigation-zoom-out-topoint", this);
191
        IconThemeHelper.registerIcon("action", "layout-navigation-zoom-all",
192
                this);
193
        IconThemeHelper.registerIcon("action", "layout-navigation-zoom-real",
194
                this);
195
        IconThemeHelper.registerIcon("action",
196
                "layout-navigation-zoom-selected", this);
197
        IconThemeHelper.registerIcon("action", "layout-navigation-pan", this);
198

  
199
        IconThemeHelper.registerIcon("action",
200
                "layout-view-navigation-zoom-in-topoint", this);
201
        IconThemeHelper.registerIcon("action",
202
                "layout-view-navigation-zoom-out-topoint", this);
203
        IconThemeHelper.registerIcon("action",
204
                "layout-view-navigation-zoom-all", this);
205
        IconThemeHelper.registerIcon("action", "layout-view-navigation-pan",
206
                this);
207
        // ================================================
208
        // Cursors
209
        IconThemeHelper.registerIcon("cursor",
210
                "cursor-layout-navigation-zoom-in-topoint", this);
211
        IconThemeHelper.registerIcon("cursor",
212
                "cursor-layout-navigation-zoom-out-topoint", this);
213
        IconThemeHelper.registerIcon("cursor", "cursor-selection-by-rectangle",
214
                this);
215
        IconThemeHelper.registerIcon("cursor", "cursor-selection-simple", this);
216
        IconThemeHelper
217
                .registerIcon("cursor", "cursor-selection-complex", this);
218
        IconThemeHelper.registerIcon("cursor",
219
                "cursor-layout-graphic-edit-vertex", this);
220
        IconThemeHelper.registerIcon("cursor", "cursor-layout-insert-circle",
221
                this);
222
        IconThemeHelper.registerIcon("cursor", "cursor-layout-insert-polyline",
223
                this);
224
        IconThemeHelper.registerIcon("cursor", "cursor-layout-insert-point",
225
                this);
226
        IconThemeHelper.registerIcon("cursor", "cursor-layout-insert-polygon",
227
                this);
228
        IconThemeHelper.registerIcon("cursor",
229
                "cursor-layout-insert-rectangle", this);
230
        IconThemeHelper.registerIcon("cursor",
231
                "cursor-layout-view-navigation-zoom-in-topoint", this);
232
        IconThemeHelper.registerIcon("cursor",
233
                "cursor-layout-view-navigation-zoom-out-topoint", this);
234
        // End cursors
235
        // ================================================
236

  
237
        IconThemeHelper.registerIcon("document", "document-map-icon", this);
238
        IconThemeHelper.registerIcon("document", "document-map-icon-sel", this);
239

  
240
        IconThemeHelper.registerIcon("layout", "neresize-icon", this);
241
        IconThemeHelper.registerIcon("layout", "eresize-icon", this);
242
        IconThemeHelper.registerIcon("layout", "nresize-icon", this);
243
        IconThemeHelper.registerIcon("layout", "graphic-move-icon", this);
244

  
245
        IconThemeHelper.registerIcon("layout", "sereresize-icon", this);
246
        IconThemeHelper.registerIcon("layout", "symboltag-icon", this);
247
        IconThemeHelper.registerIcon("layout", "numero-icon", this);
248
        IconThemeHelper.registerIcon("layout", "barra1-icon", this);
249
        IconThemeHelper.registerIcon("layout", "barra2-icon", this);
250
        IconThemeHelper.registerIcon("layout", "barra3-icon", this);
251

  
252
        IconThemeHelper.registerIcon("layout", "text-left-icon", this);
253
        IconThemeHelper.registerIcon("layout", "text-center-v-icon", this);
254
        IconThemeHelper.registerIcon("layout", "text-right-icon", this);
255
        IconThemeHelper.registerIcon("layout", "left-rotation-icon", this);
256
        IconThemeHelper.registerIcon("layout", "text-up-icon", this);
257
        IconThemeHelper.registerIcon("layout", "text-center-h-icon", this);
258
        IconThemeHelper.registerIcon("layout", "text-down-icon", this);
259
        IconThemeHelper.registerIcon("layout", "text-distup-icon", this);
260
        IconThemeHelper.registerIcon("layout", "text-distcenterh-icon", this);
261
        IconThemeHelper.registerIcon("layout", "text-distdown-icon", this);
262
        IconThemeHelper.registerIcon("layout", "text-distleft-icon", this);
263

  
264
        IconThemeHelper.registerIcon("layout", "text-distcenterv-icon", this);
265
        IconThemeHelper.registerIcon("layout", "text-distright-icon", this);
266
        IconThemeHelper.registerIcon("layout", "text-size-width-icon", this);
267
        IconThemeHelper.registerIcon("layout", "text-size-height-icon", this);
268
        IconThemeHelper.registerIcon("layout", "text-size-other-icon", this);
269
        IconThemeHelper.registerIcon("layout", "text-space-right-icon", this);
270
        IconThemeHelper.registerIcon("layout", "text-space-down-icon", this);
271
        IconThemeHelper.registerIcon("layout", "text-inlayout-icon", this);
272
        IconThemeHelper.registerIcon("layout", "layout-pan-icon", this);
273
        IconThemeHelper.registerIcon("layout", "view-pan-icon", this);
274
        IconThemeHelper.registerIcon("layout", "right-rotation-icon", this);
275
    }
276

  
277
    /**
278
     * @see org.gvsig.andami.plugins.IExtension#isEnabled()
279
     */
280
    public boolean isEnabled() {
281
        return true;
282
    }
283

  
284
    /**
285
     * Devuelve el Layout sobre el que se opera.
286
     * 
287
     * @return Layout.
288
     */
289
    public LayoutPanel getLayout() {
290
        return layout;
291
    }
292

  
293
    public IPreference[] getPreferencesPages() {
294
        return new IPreference[] { new LayoutPage() };
295
    }
296
}
tags/org.gvsig.app.document.layout2.app-2.0.208/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/extension/ExportLayoutExtension.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.app.extension;
23

  
24
import java.io.File;
25
import org.gvsig.andami.IconThemeHelper;
26
import org.gvsig.andami.PluginServices;
27
import org.gvsig.andami.plugins.Extension;
28
import org.gvsig.andami.ui.mdiManager.IWindow;
29
import org.gvsig.app.project.documents.layout.gui.LayoutPanel;
30
import org.gvsig.tools.util.ArrayUtils;
31

  
32
/**
33
 * Extension for exporting the layout to PDF or PostScript.
34
 *
35
 * @author jaume dominguez faus - jaume.dominguez@iver.es
36
 */
37
public class ExportLayoutExtension extends Extension {
38

  
39
    private LayoutPanel layoutPanel;
40

  
41
    public void initialize() {
42
        registerIcons();
43
    }
44

  
45
    private void registerIcons() {
46

  
47
        IconThemeHelper.registerIcon("action", "application-export-to-postscript", this);
48
        IconThemeHelper.registerIcon("action", "application-export-to-pdf", this);
49
    }
50

  
51
    /**
52
     * @see org.gvsig.andami.plugins.IExtension#execute(java.lang.String)
53
     */
54
    public void execute(String s) {
55
        this.execute(s, null);
56
    }
57

  
58
    @Override
59
    public void execute(String command, Object[] args) {
60
        layoutPanel = (LayoutPanel) PluginServices.getMDIManager().getActiveWindow();
61
        if (command.equals("application-export-to-pdf")) {
62
            Object file = ArrayUtils.get(args, 0);
63
            if( file instanceof String ) {
64
                file = new File((String)file);
65
            }
66
            if( file == null ) {
67
                layoutPanel.layoutToPDF();
68
            } else {
69
                layoutPanel.layoutToPDF((File)file);
70
            }
71
        } else if (command.equals("application-export-to-postscript")) {
72
            layoutPanel.layoutToPS();
73
        }
74
    }
75

  
76
    public boolean isEnabled() {
77
        return true;
78
    }
79

  
80
    public boolean isVisible() {
81
        IWindow f = PluginServices.getMDIManager().getActiveWindow();
82

  
83
        if (f == null) {
84
            return false;
85
        }
86

  
87
        if (f instanceof LayoutPanel) {
88
            // Layout layout = (Layout) f;
89

  
90
            return true; // layout.m_Display.getMapControl().getMapContext().getLayers().layerCount()
91
            // > 0;
92
        } else {
93
            return false;
94
        }
95
    }
96

  
97
}
tags/org.gvsig.app.document.layout2.app-2.0.208/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/extension/FFrameLegendExtension.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.app.extension;
23

  
24
import org.gvsig.andami.PluginServices;
25
import org.gvsig.andami.plugins.Extension;
26
import org.gvsig.andami.ui.mdiManager.IWindow;
27
import org.gvsig.app.project.documents.layout.FLayoutGraphics;
28
import org.gvsig.app.project.documents.layout.fframes.FFrameLegend;
29
import org.gvsig.app.project.documents.layout.fframes.IFFrame;
30
import org.gvsig.app.project.documents.layout.gui.LayoutPanel;
31

  
32
/**
33
 * Extensi?n preparada para controlar las opciones que se pueden realizar sobre
34
 * una vista a?adida en el Layout.
35
 * 
36
 * @author Vicente Caballero Navarro
37
 */
38
public class FFrameLegendExtension extends Extension {
39

  
40
    private LayoutPanel layout = null;
41

  
42
    /**
43
     * @see org.gvsig.andami.plugins.IExtension#initialize()
44
     */
45
    public void initialize() {
46
    }
47

  
48
    /**
49
     * @see org.gvsig.andami.plugins.IExtension#execute(java.lang.String)
50
     */
51
    public void execute(String s) {
52
        layout = (LayoutPanel) PluginServices.getMDIManager().getActiveWindow();
53
        FLayoutGraphics lg = new FLayoutGraphics(layout);
54
        if (s.compareTo("layout-graphic-simplify-legend") == 0) {
55
            lg.simplify();
56
            layout.getDocument().setModified(true);
57
        }
58
    }
59

  
60
    /**
61
     * @see org.gvsig.andami.plugins.IExtension#isEnabled()
62
     */
63
    public boolean isEnabled() {
64
        LayoutPanel l =
65
            (LayoutPanel) PluginServices.getMDIManager().getActiveWindow();
66
        IFFrame[] fframes = l.getLayoutContext().getSelectedFFrames();
67
        if (!l.getLayoutContext().isEditable())
68
            return false;
69
        for (int i = 0; i < fframes.length; i++) {
70
            if (fframes[i] instanceof FFrameLegend) {
71
                return true;
72
            }
73
        }
74

  
75
        return false;
76
    }
77

  
78
    /**
79
     * @see org.gvsig.andami.plugins.IExtension#isVisible()
80
     */
81
    public boolean isVisible() {
82
        IWindow f = PluginServices.getMDIManager().getActiveWindow();
83

  
84
        if (f == null) {
85
            return false;
86
        }
87

  
88
        if (f instanceof LayoutPanel) {
89
            return true; // layout.m_Display.getMapControl().getMapContext().getLayers().layerCount()
90
                         // > 0;
91
        } else {
92
            return false;
93
        }
94
    }
95
}
tags/org.gvsig.app.document.layout2.app-2.0.208/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/extension/LayoutEditVertexExtension.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.app.extension;
23

  
24
import org.slf4j.Logger;
25
import org.slf4j.LoggerFactory;
26

  
27
import org.gvsig.andami.IconThemeHelper;
28
import org.gvsig.andami.PluginServices;
29
import org.gvsig.andami.plugins.Extension;
30
import org.gvsig.andami.ui.mdiManager.IWindow;
31
import org.gvsig.app.project.documents.layout.gui.LayoutPanel;
32

  
33
/**
34
 * Extensi?n que contiene todas las herramientas de edici?n.
35
 * 
36
 * @author Vicente Caballero Navarro
37
 */
38
public class LayoutEditVertexExtension extends Extension {
39

  
40
    private static final Logger logger = LoggerFactory
41
        .getLogger(LayoutEditVertexExtension.class);;
42
    private LayoutPanel layout = null;
43

  
44
    /**
45
     * DOCUMENT ME!
46
     */
47
    public void initialize() {
48
        // TODO Auto-generated method stub
49
        registerIcons();
50
    }
51

  
52
    private void registerIcons() {
53
        
54
        IconThemeHelper.registerIcon(
55
            "action", "layout-graphic-edit-vertex", this);
56
    }
57

  
58
    /**
59
     * DOCUMENT ME!
60
     * 
61
     * @param s
62
     *            DOCUMENT ME!
63
     */
64
    public void execute(String s) {
65
        layout = (LayoutPanel) PluginServices.getMDIManager().getActiveWindow();
66

  
67
        logger.debug("Comand : " + s);
68
        if (s.compareTo("layout-graphic-edit-vertex") == 0) {
69
            layout.getLayoutControl().setTool("layoutedit");
70
            layout.getDocument().setModified(true);
71
        }
72
    }
73

  
74
    /**
75
     * DOCUMENT ME!
76
     * 
77
     * @return DOCUMENT ME!
78
     */
79
    public boolean isEnabled() {
80
        IWindow f = PluginServices.getMDIManager().getActiveWindow();
81

  
82
        if (f == null) {
83
            return false;
84
        }
85

  
86
        if (f instanceof LayoutPanel) {
87
            LayoutPanel layout = (LayoutPanel) f;
88
            if (layout.getLayoutContext().isEditable()) {
89
                return true;
90
                // IFFrame[] fframes = layout.getFFrames();
91
                // for (int i = 0; i < fframes.length; i++) {
92
                // if (fframes[i].getSelected() != IFFrame.NOSELECT
93
                // && fframes[i] instanceof IFFrameEditableVertex) {
94
                // return true;
95
                // }
96
                // }
97
            }
98
        }
99
        return false;
100
    }
101

  
102
    /**
103
     * DOCUMENT ME!
104
     * 
105
     * @return DOCUMENT ME!
106
     */
107
    public boolean isVisible() {
108
        IWindow f = PluginServices.getMDIManager().getActiveWindow();
109

  
110
        if (f == null) {
111
            return false;
112
        }
113

  
114
        if (f instanceof LayoutPanel) {
115
            // Layout layout = (Layout) f;
116
            return true; // layout.m_Display.getMapControl().getMapContext().getLayers().layerCount()
117
                         // > 0;
118
        } else {
119
            return false;
120
        }
121
    }
122
}
tags/org.gvsig.app.document.layout2.app-2.0.208/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/extension/LayoutMainExtension.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.app.extension;
23

  
24
import java.awt.Component;
25
import java.beans.PropertyVetoException;
26
import java.io.File;
27
import java.io.FileInputStream;
28
import java.io.IOException;
29
import java.util.Iterator;
30
import java.util.prefs.Preferences;
31
import javax.swing.JOptionPane;
32
import org.gvsig.andami.IconThemeHelper;
33
import org.gvsig.andami.PluginServices;
34
import org.gvsig.andami.plugins.Extension;
35
import org.gvsig.andami.ui.mdiManager.IWindow;
36
import org.gvsig.andami.ui.mdiManager.MDIManager;
37
import org.gvsig.app.ApplicationLocator;
38
import org.gvsig.app.ApplicationManager;
39
import org.gvsig.app.project.Project;
40
import org.gvsig.app.project.ProjectManager;
41
import org.gvsig.app.project.documents.Document;
42
import org.gvsig.app.project.documents.layout.DefaultLayoutManager;
43
import org.gvsig.app.project.documents.layout.LayoutDocument;
44
import org.gvsig.app.project.documents.layout.LayoutManager;
45
import org.gvsig.app.project.documents.layout.contextmenu.gui.BeforeLayoutMenuEntry;
46
import org.gvsig.app.project.documents.layout.contextmenu.gui.BehindLayoutMenuEntry;
47
import org.gvsig.app.project.documents.layout.contextmenu.gui.CancelLayoutMenuEntry;
48
import org.gvsig.app.project.documents.layout.contextmenu.gui.CopyLayoutMenuEntry;
49
import org.gvsig.app.project.documents.layout.contextmenu.gui.CutLayoutMenuEntry;
50
import org.gvsig.app.project.documents.layout.contextmenu.gui.PasteLayoutMenuEntry;
51
import org.gvsig.app.project.documents.layout.contextmenu.gui.PositionLayoutMenuEntry;
52
import org.gvsig.app.project.documents.layout.contextmenu.gui.PropertyLayoutMenuEntry;
53
import org.gvsig.app.project.documents.layout.contextmenu.gui.RefreshLayoutMenuEntry;
54
import org.gvsig.app.project.documents.layout.contextmenu.gui.SelectAllLayoutMenuEntry;
55
import org.gvsig.app.project.documents.layout.contextmenu.gui.SimplifyLayoutMenuEntry;
56
import org.gvsig.app.project.documents.layout.contextmenu.gui.TerminateLayoutMenuEntry;
57
import org.gvsig.app.project.documents.layout.fframes.FFrame;
58
import org.gvsig.app.project.documents.layout.fframes.FFrameBasicFactory;
59
import org.gvsig.app.project.documents.layout.fframes.FFrameGraphics;
60
import org.gvsig.app.project.documents.layout.fframes.FFrameGraphicsFactory;
61
import org.gvsig.app.project.documents.layout.fframes.FFrameGrid;
62
import org.gvsig.app.project.documents.layout.fframes.FFrameGridFactory;
63
import org.gvsig.app.project.documents.layout.fframes.FFrameGroup;
64
import org.gvsig.app.project.documents.layout.fframes.FFrameGroupFactory;
65
import org.gvsig.app.project.documents.layout.fframes.FFrameLegend;
66
import org.gvsig.app.project.documents.layout.fframes.FFrameLegendFactory;
67
import org.gvsig.app.project.documents.layout.fframes.FFrameNorth;
68
import org.gvsig.app.project.documents.layout.fframes.FFrameNorthFactory;
69
import org.gvsig.app.project.documents.layout.fframes.FFrameOverView;
70
import org.gvsig.app.project.documents.layout.fframes.FFrameOverViewFactory;
71
import org.gvsig.app.project.documents.layout.fframes.FFramePicture;
72
import org.gvsig.app.project.documents.layout.fframes.FFramePictureFactory;
73
import org.gvsig.app.project.documents.layout.fframes.FFrameScaleBar;
74
import org.gvsig.app.project.documents.layout.fframes.FFrameScaleBarFactory;
75
import org.gvsig.app.project.documents.layout.fframes.FFrameSymbol;
76
import org.gvsig.app.project.documents.layout.fframes.FFrameSymbolFactory;
77
import org.gvsig.app.project.documents.layout.fframes.FFrameTable;
78
import org.gvsig.app.project.documents.layout.fframes.FFrameTableFactory;
79
import org.gvsig.app.project.documents.layout.fframes.FFrameText;
80
import org.gvsig.app.project.documents.layout.fframes.FFrameTextFactory;
81
import org.gvsig.app.project.documents.layout.fframes.FFrameView;
82
import org.gvsig.app.project.documents.layout.fframes.FFrameViewFactory;
83
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameBoxDialog;
84
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameGraphicsDialog;
85
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameGridDialog;
86
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameGroupDialog;
87
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameLegendDialog;
88
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameNorthDialog;
89
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameOverViewDialog;
90
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFramePictureDialog;
91
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameScaleBarDialog;
92
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameTextDialog;
93
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameViewDialog;
94
import org.gvsig.app.project.documents.layout.gui.LayoutPanel;
95
import org.gvsig.gui.beans.swing.JFileChooser;
96
import org.gvsig.i18n.Messages;
97
import org.gvsig.tools.ToolsLocator;
98
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
99
import org.gvsig.tools.i18n.I18nManager;
100
import org.gvsig.tools.persistence.PersistenceManager;
101
import org.gvsig.tools.persistence.PersistentState;
102
import org.gvsig.tools.persistence.exception.PersistenceException;
103
import org.gvsig.utils.GenericFileFilter;
104
import org.slf4j.Logger;
105
import org.slf4j.LoggerFactory;
106

  
107
/**
108
 * Extension que proporciona controles para crear proyectos nuevos, abrirlos y
109
 * guardarlos. Adem?s los tipos de tabla que soporta el proyecto son a?adidos en
110
 * esta clase.
111
 * 
112
 * @author Fernando Gonz?lez Cort?s
113
 */
114
public class LayoutMainExtension extends Extension {
115

  
116
    private static final Logger logger = LoggerFactory
117
            .getLogger(FFrameView.class);
118

  
119
    private String templatesPath;
120

  
121
    public static final String LAYOUT_TEMPLATE_FILECHOOSER_ID = "LAYOUT_TEMPLATE_FILECHOOSER_ID";
122

  
123
    private void registerIcons() {
124

  
125
        IconThemeHelper.registerIcon("action",
126
                "application-layout-template-open", this);
127
        IconThemeHelper.registerIcon("action",
128
                "application-layout-new", this);
129
        
130
    }
131

  
132
    @Override
133
    public void initialize() {
134
        registerIcons();
135
    }
136

  
137
    @Override
138
    public void postInitialize() {
139
        super.postInitialize();
140
        initializeDocumentActionsExtensionPoint();
141
        registerDocuments();
142
        registerFFrames();
143
        registerContextMenuOptions();
144
    }
145

  
146

  
147
    @Override
148
    public void execute(String actionCommand) {
149
        if ("application-layout-template-open".equals(actionCommand)) {
150
            openLayout();
151
        } else if ("application-layout-new".equals(actionCommand)) { 
152
            newLayout();   
153
        }
154
    }
155

  
156
    private void newLayout() {
157
        ApplicationManager application = ApplicationLocator.getManager();
158
        ProjectManager projectManager = ApplicationLocator.getProjectManager();
159
        I18nManager i18nManager = ToolsLocator.getI18nManager();
160
        Project project = projectManager.getCurrentProject();
161
        
162
        Iterator<? extends Document> documents =
163
            projectManager.createDocumentsByUser(LayoutManager.TYPENAME);
164
        for (; (documents != null) && (documents.hasNext());) {
165
            try {
166
                Document document = documents.next();
167
                project.addDocument(document);
168
                IWindow window = document.getFactory().getMainWindow(document);
169
                if (window == null) {
170
                    application.messageDialog(
171
                            i18nManager.getTranslation("error_opening_the_document"), 
172
                            i18nManager.getTranslation("warning"), 
173
                            JOptionPane.WARNING_MESSAGE
174
                    );
175
                    continue;
176
                }
177
                application.getUIManager().addWindow(
178
                    window,
179
                    MDIManager.ALIGN_FIRST_LINE_END_CASCADE
180
                );
181
                try {
182
                    application.getUIManager().setMaximum(window, true);
183
                } catch (PropertyVetoException e) {
184
                    logger.info("Can't maximize layout.", e);
185
                }
186
                
187
            } catch (Exception e) {
188
                logger.warn("Problems creating a Layout document.",e);
189
            }
190
        }        
191
    }
192
    
193

  
194
    private void openLayout() {
195
        LayoutPanel layout = null;
196

  
197
        if (templatesPath == null) {
198
            Preferences prefs = Preferences.userRoot().node("gvsig.foldering");
199
            templatesPath = prefs.get("TemplatesFolder", null);
200
        }
201

  
202
        JFileChooser jfc = new JFileChooser(LAYOUT_TEMPLATE_FILECHOOSER_ID,
203
                templatesPath);
204
        GenericFileFilter layoutMainExtensionFilter = new GenericFileFilter(
205
                LayoutManager.TEMPLATE_FILE_POINTEXT,
206
                Messages.getText("_Layout_template") + " (*"
207
                        + LayoutManager.TEMPLATE_FILE_POINTEXT + ")");
208
        jfc.addChoosableFileFilter(layoutMainExtensionFilter);
209
        jfc.setFileFilter(layoutMainExtensionFilter);
210

  
211
        if (jfc.showOpenDialog((Component) PluginServices.getMainFrame()) == JFileChooser.APPROVE_OPTION) {
212
            File file = jfc.getSelectedFile();
213
            try {
214
                if (!file.exists()) {
215
                    /*
216
                     * The user has written a file name instead of clicking on
217
                     * one and it does not exist
218
                     */
219
                    File auxfile = new File(file.getPath()
220
                            + LayoutManager.TEMPLATE_FILE_POINTEXT);
221
                    if (!auxfile.exists()) {
222
                        /*
223
                         * Not even this one exists: error
224
                         */
225
                        throw new IOException("File does not exist: "
226
                                + file.getName());
227
                    }
228
                    else {
229
                        file = auxfile;
230
                    }
231
                }
232

  
233
                File xmlFile = new File(file.getAbsolutePath());
234
                FileInputStream is = new FileInputStream(xmlFile);
235

  
236
                PersistenceManager persistenceManager = ToolsLocator
237
                        .getPersistenceManager();
238
                PersistentState persistentState = persistenceManager
239
                        .loadState(is);
240
                layout = (LayoutPanel) persistenceManager
241
                        .create(persistentState);
242

  
243
            }
244
            catch (Exception e) {
245
                String tit = Messages.getText("_Layout_template");
246
                String msg;
247

  
248
                if (e instanceof PersistenceException) {
249
                    msg = Messages.getText("_Bad_format_in_layout_template");
250
                }
251
                else {
252
                    msg = Messages.getText("_Cant_load_layout_template");
253
                }
254

  
255
                msg = msg + ": " + file.getPath();
256
                msg = msg + "\n" + e.getMessage();
257
                logger.warn(msg, e);
258
                JOptionPane.showMessageDialog(ApplicationLocator.getManager()
259
                        .getRootComponent(), msg, tit,
260
                        JOptionPane.ERROR_MESSAGE);
261
            }
262

  
263
            if (layout == null) {
264
                return;
265
            }
266

  
267
            LayoutDocument layoutDocument = (LayoutDocument) layout
268
                    .getDocument();
269
            /*
270
             * (LayoutDocument) ProjectManager.getInstance().createDocument(
271
             * DefaultLayoutManager.TYPENAME, file.getName());
272
             */
273

  
274
            Project p = ApplicationLocator.getManager().getProjectManager()
275
                    .getCurrentProject();
276
            p.addDocument(layoutDocument);
277

  
278
            layout.getLayoutControl().setTool("layoutselect");
279

  
280
            LayoutManager lm = (LayoutManager) layoutDocument.getFactory();
281
            layout.setLayoutManager(lm);
282

  
283
            PluginServices.getMDIManager().addWindow(layout);
284

  
285
        }
286
    }
287

  
288
    private void registerDocuments() {
289
        DefaultLayoutManager.register();
290
    }
291

  
292
    private void registerFFrames() {
293
        DefaultLayoutManager layoutManager = (DefaultLayoutManager) ProjectManager
294
                .getInstance()
295
                .getDocumentManager(DefaultLayoutManager.TYPENAME);
296

  
297
        // Register Frames
298
        layoutManager.registerFrameFactory(new FFrameBasicFactory());
299
        layoutManager.registerFrameFactory(new FFrameGraphicsFactory());
300
        layoutManager.registerFrameFactory(new FFrameGroupFactory());
301
        layoutManager.registerFrameFactory(new FFrameLegendFactory());
302
        layoutManager.registerFrameFactory(new FFrameNorthFactory());
303
        layoutManager.registerFrameFactory(new FFrameOverViewFactory());
304
        layoutManager.registerFrameFactory(new FFramePictureFactory());
305
        layoutManager.registerFrameFactory(new FFrameScaleBarFactory());
306
        layoutManager.registerFrameFactory(new FFrameSymbolFactory());
307
        layoutManager.registerFrameFactory(new FFrameTableFactory());
308
        layoutManager.registerFrameFactory(new FFrameTextFactory());
309
        layoutManager.registerFrameFactory(new FFrameViewFactory());
310
        layoutManager.registerFrameFactory(new FFrameGridFactory());
311

  
312
        // Register FFrameDialogs forms
313
        layoutManager.registerFFrameDialog(
314
                FFrameGraphics.PERSISTENCE_DEFINITION_NAME,
315
                FFrameGraphicsDialog.class);
316
        layoutManager.registerFFrameDialog(
317
                FFrameSymbol.PERSISTENCE_DEFINITION_NAME,
318
                FFrameGraphicsDialog.class);
319
        layoutManager.registerFFrameDialog(
320
                FFrameGroup.PERSISTENCE_DEFINITION_NAME,
321
                FFrameGroupDialog.class);
322
        layoutManager.registerFFrameDialog(
323
                FFrameTable.PERSISTENCE_DEFINITION_NAME, FFrameBoxDialog.class);
324
        layoutManager.registerFFrameDialog(
325
                FFrameLegend.PERSISTENCE_DEFINITION_NAME,
326
                FFrameLegendDialog.class);
327
        layoutManager.registerFFrameDialog(
328
                FFramePicture.PERSISTENCE_DEFINITION_NAME,
329
                FFramePictureDialog.class);
330
        layoutManager.registerFFrameDialog(
331
                FFrameNorth.PERSISTENCE_DEFINITION_NAME,
332
                FFrameNorthDialog.class);
333
        layoutManager.registerFFrameDialog(
334
                FFrameScaleBar.PERSISTENCE_DEFINITION_NAME,
335
                FFrameScaleBarDialog.class);
336
        layoutManager.registerFFrameDialog(
337
                FFrameText.PERSISTENCE_DEFINITION_NAME, FFrameTextDialog.class);
338
        layoutManager.registerFFrameDialog(
339
                FFrameView.PERSISTENCE_DEFINITION_NAME, FFrameViewDialog.class);
340
        layoutManager.registerFFrameDialog(
341
                FFrameOverView.PERSISTENCE_DEFINITION_NAME,
342
                FFrameOverViewDialog.class);
343
        layoutManager.registerFFrameDialog(
344
                FFrameGrid.PERSISTENCE_DEFINITION_NAME, FFrameGridDialog.class);
345

  
346
        FFrame.initializeIcons();
347
        FFrameTable.initializeIcons();
348
    }
349

  
350
    private void registerContextMenuOptions() {
351
        LayoutManager layoutManager = (LayoutManager) ProjectManager
352
                .getInstance().getDocumentManager("project.document.layout");
353

  
354
        layoutManager.registerLayoutMenuAction("Terminate",
355
                TerminateLayoutMenuEntry.class);
356
        layoutManager.registerLayoutMenuAction("Cancel",
357
                CancelLayoutMenuEntry.class);
358
        layoutManager.registerLayoutMenuAction("Copy",
359
                CopyLayoutMenuEntry.class);
360
        layoutManager.registerLayoutMenuAction("Cut", CutLayoutMenuEntry.class);
361
        layoutManager.registerLayoutMenuAction("Paste",
362
                PasteLayoutMenuEntry.class);
363
        layoutManager.registerLayoutMenuAction("Simplify",
364
                SimplifyLayoutMenuEntry.class);
365
        layoutManager.registerLayoutMenuAction("Property",
366
                PropertyLayoutMenuEntry.class);
367
        layoutManager.registerLayoutMenuAction("SelectAll",
368
                SelectAllLayoutMenuEntry.class);
369
        layoutManager.registerLayoutMenuAction("Behind",
370
                BehindLayoutMenuEntry.class);
371
        layoutManager.registerLayoutMenuAction("Before",
372
                BeforeLayoutMenuEntry.class);
373
        layoutManager.registerLayoutMenuAction("Position",
374
                PositionLayoutMenuEntry.class);
375
        layoutManager.registerLayoutMenuAction("Refresh",
376
                RefreshLayoutMenuEntry.class);
377

  
378
    }
379

  
380
    private void initializeDocumentActionsExtensionPoint() {
381
        ExtensionPointManager epMan = ToolsLocator.getExtensionPointManager();
382
        epMan.add(
383
                "DocumentActions_Map",
384
                "Context menu options of the map document list"
385
                        + " in the project window "
386
                        + "(register instances of "
387
                        + "org.gvsig.app.project.AbstractDocumentContextMenuAction)");
388
    }
389

  
390
    @Override
391
    public boolean isEnabled() {
392
        return true;
393
    }
394

  
395
    @Override
396
    public boolean isVisible() {
397
        return true;
398
    }
399
}
tags/org.gvsig.app.document.layout2.app-2.0.208/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/extension/LayoutInsertToolsExtension.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.app.extension;
23

  
24
import org.slf4j.Logger;
25
import org.slf4j.LoggerFactory;
26

  
27
import org.gvsig.andami.IconThemeHelper;
28
import org.gvsig.andami.PluginServices;
29
import org.gvsig.andami.plugins.Extension;
30
import org.gvsig.andami.ui.mdiManager.IWindow;
31
import org.gvsig.app.project.documents.layout.gui.LayoutPanel;
32

  
33
/**
34
 * Extensi?n para editar los v?rtices de las geometr?as a?adidas en un
35
 * FFrameGraphics.
36
 * 
37
 * @author Vicente Caballero Navarro
38
 */
39
public class LayoutInsertToolsExtension extends Extension {
40

  
41
    private static final Logger logger = LoggerFactory
42
        .getLogger(LayoutInsertToolsExtension.class);
43

  
44
    private LayoutPanel layout = null;
45

  
46
    public void initialize() {
47
        // TODO Auto-generated method stub
48
        registerIcons();
49
    }
50

  
51
    private void registerIcons() {
52
        
53
        IconThemeHelper.registerIcon("action", "layout-insert-text", this);
54
        IconThemeHelper.registerIcon("action", "layout-insert-point", this);
55
        IconThemeHelper.registerIcon("action", "layout-insert-rectangle", this);
56
        IconThemeHelper.registerIcon("action", "layout-insert-circle", this);
57

  
58
        IconThemeHelper.registerIcon("action", "layout-insert-line", this);
59
        IconThemeHelper.registerIcon("action", "layout-insert-polyline", this);
60
        IconThemeHelper.registerIcon("action", "layout-insert-polygon", this);
61
        IconThemeHelper.registerIcon("action", "layout-insert-image", this);
62

  
63
        IconThemeHelper.registerIcon("action", "layout-insert-view", this);
64
        IconThemeHelper.registerIcon("action", "layout-insert-locator", this);
65
        IconThemeHelper.registerIcon("action", "layout-insert-legend", this);
66
        IconThemeHelper.registerIcon("action", "layout-insert-scalebar", this);
67

  
68
        IconThemeHelper.registerIcon("action", "layout-insert-north", this);
69
        IconThemeHelper.registerIcon("action", "layout-insert-box", this);
70

  
71
        // ============================================================
72
        
73
        IconThemeHelper.registerIcon("action", "edit-delete", this);
74
        IconThemeHelper.registerIcon("action", "selection-by-rectangle", this);
75
    }
76

  
77
    public void execute(String s) {
78
        layout = (LayoutPanel) PluginServices.getMDIManager().getActiveWindow();
79

  
80
        logger.debug("Comand : " + s);
81
        boolean insertGroupPosibility = false;
82
        
83
        if (s.equals("selection-select-by-rectangle-layout")) {
84
            layout.getLayoutControl().setTool("layoutselect");
85
        } else
86
            if (s.equals("layout-insert-view")) {
87
                layout.getLayoutControl().setTool("layoutaddview");
88
                insertGroupPosibility = true;
89
            } else
90
                if (s.equals("layout-insert-locator")) {
91
                    layout.getLayoutControl().setTool("layoutaddoverview");
92
                    insertGroupPosibility = true;
93
                } else
94
                    if (s.equals("layout-insert-image")) {
95
                        layout.getLayoutControl().setTool("layoutaddpicture");
96
                        insertGroupPosibility = true;
97
                    } else
98
                        if (s.equals("layout-insert-scalebar")) {
99
                            layout.getLayoutControl().setTool("layoutaddscale");
100
                            insertGroupPosibility = true;
101
                        } else
102
                            if (s.equals("layout-insert-legend")) {
103
                                layout.getLayoutControl().setTool(
104
                                    "layoutaddlegend");
105
                                insertGroupPosibility = true;
106
                            } else
107
                                if (s.equals("layout-insert-text")) {
108
                                    layout.getLayoutControl().setTool(
109
                                        "layoutaddtext");
110
                                    insertGroupPosibility = true;
111
                                } else
112
                                    if (s.equals("layout-insert-north")) {
113
                                        layout.getLayoutControl().setTool(
114
                                            "layoutaddnorth");
115
                                        insertGroupPosibility = true;
116
                                    } else
117
                                        if (s.equals("layout-insert-box")) {
118
                                            layout.getLayoutControl().setTool(
119
                                                "layoutaddbox");
120
                                            insertGroupPosibility = true;
121
                                        } else
122
                                            if (s.equals("layout-insert-point")) {
123
                                                layout.getLayoutControl()
124
                                                    .setTool("layoutaddpoint");
125
                                            } else
126
                                                if (s.equals("layout-insert-line")) {
127
                                                    layout.getLayoutControl()
128
                                                        .setTool(
129
                                                            "layoutaddline");
130
                                                } else
131
                                                    if (s.equals("layout-insert-polyline")) {
132
                                                        layout
133
                                                            .getLayoutControl()
134
                                                            .setTool(
135
                                                                "layoutaddpolyline");
136
                                                    } else
137
                                                        if (s.equals("layout-insert-circle")) {
138
                                                            layout
139
                                                                .getLayoutControl()
140
                                                                .setTool(
141
                                                                    "layoutaddcircle");
142
                                                        } else
143
                                                            if (s
144
                                                                .equals("layout-insert-rectangle")) {
145
                                                                layout
146
                                                                    .getLayoutControl()
147
                                                                    .setTool(
148
                                                                        "layoutaddrectangle");
149
                                                            } else
150
                                                                if (s
151
                                                                    .equals("layout-insert-polygon")) {
152
                                                                    layout
153
                                                                        .getLayoutControl()
154
                                                                        .setTool(
155
                                                                            "layoutaddpolygon");
156
                                                                } else
157
                                                                    if (s
158
                                                                        .equals("edit-delete-layout")) {
159
                                                                        layout
160
                                                                            .getLayoutContext()
161
                                                                            .delFFrameSelected();
162
                                                                        layout
163
                                                                            .getLayoutControl()
164
                                                                            .refresh();
165
                                                                    }
166
        layout.getDocument().setModified(true);
167
    }
168

  
169
    public boolean isEnabled() {
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff