Revision 115

View differences:

tags/org.gvsig.app.document.layout.app-2.0.19/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.layout.app</artifactId>
5
    <packaging>pom</packaging>
6
    <version>2.0.19</version>
7
    
8
    <name>Document: Layout document support</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.plugin</artifactId>
14
        <version>2.0.24</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.layout.app-2.0.19</connection>
21
        <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-app-document-layout/tags/org.gvsig.app.document.layout.app-2.0.19</developerConnection>
22
        <url>https://devel.gvsig.org/redmine/projects/gvsig-app-document-layout/repository/show/tags/org.gvsig.app.document.layout.app-2.0.19</url>
23
    </scm>
24
    
25
	<build>
26
		<plugins>
27
			<plugin>
28
				<groupId>org.apache.maven.plugins</groupId>
29
				<artifactId>maven-release-plugin</artifactId>
30
				<configuration>
31
					<tagBase>https://devel.gvsig.org/svn/gvsig-app-document-layout/tags</tagBase>
32
				</configuration>
33
			</plugin>
34
		</plugins>
35
	</build>
36

  
37
	<modules>
38
		<module>org.gvsig.app.document.layout.app.mainplugin</module>
39
	</modules>
40
	<properties>
41
		<gvsig.package.info.state>testing</gvsig.package.info.state>
42
		<!-- alpha-devel -->
43
        <gvsig.package.info.official>true</gvsig.package.info.official>
44
		
45
	</properties>
46

  
47
</project>
tags/org.gvsig.app.document.layout.app-2.0.19/org.gvsig.app.document.layout.app.mainplugin/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" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4
    
5
    <modelVersion>4.0.0</modelVersion>
6
    <packaging>jar</packaging>
7
    <artifactId>org.gvsig.app.document.layout.app.mainplugin</artifactId>
8
    <name>Document: Layout document support</name>
9
    
10
    
11
    <parent>
12
        <groupId>org.gvsig</groupId>
13
        <artifactId>org.gvsig.app.document.layout.app</artifactId>
14
        <version>2.0.19</version>
15
    </parent>
16
    
17
    <dependencies>
18

  
19
        <dependency>
20
            <groupId>org.gvsig</groupId>
21
            <artifactId>org.gvsig.app.mainplugin</artifactId>
22
            <scope>compile</scope>
23
        </dependency>
24
        <dependency>
25
            <groupId>org.gvsig</groupId>
26
            <artifactId>org.gvsig.andami</artifactId>
27
            <scope>compile</scope>
28
        </dependency>
29
        <dependency>
30
            <groupId>org.gvsig</groupId>
31
            <artifactId>org.gvsig.fmap.control</artifactId>
32
            <scope>compile</scope>
33
        </dependency>
34
        <dependency>
35
            <groupId>org.gvsig</groupId>
36
            <artifactId>org.gvsig.tools.lib</artifactId>
37
            <scope>compile</scope>
38
        </dependency>
39
        <dependency>
40
            <groupId>org.gvsig</groupId>
41
            <artifactId>org.gvsig.tools.swing.api</artifactId>
42
            <scope>compile</scope>
43
        </dependency>
44
        <dependency>
45
            <groupId>org.gvsig</groupId>
46
            <artifactId>org.gvsig.fmap.mapcontext.api</artifactId>
47
            <scope>compile</scope>
48
        </dependency>
49
        <dependency>
50
            <groupId>org.gvsig</groupId>
51
            <artifactId>org.gvsig.fmap.mapcontext.operation</artifactId>
52
            <scope>compile</scope>
53
        </dependency>
54
        <dependency>
55
            <groupId>org.gvsig</groupId>
56
            <artifactId>org.gvsig.fmap.geometry.api</artifactId>
57
            <scope>compile</scope>
58
        </dependency>
59
        <dependency>
60
            <groupId>org.gvsig</groupId>
61
            <artifactId>org.gvsig.utils</artifactId>
62
            <scope>compile</scope>
63
        </dependency>
64
        <dependency>
65
            <groupId>org.gvsig</groupId>
66
            <artifactId>org.gvsig.ui</artifactId>
67
            <scope>compile</scope>
68
        </dependency>
69
        <dependency>
70
            <groupId>org.gvsig</groupId>
71
            <artifactId>org.gvsig.fmap.dal.api</artifactId>
72
            <scope>compile</scope>
73
        </dependency>
74
        <dependency>
75
            <groupId>org.gvsig</groupId>
76
            <artifactId>org.gvsig.compat.api</artifactId>
77
            <scope>compile</scope>
78
        </dependency>
79
        <dependency>
80
            <groupId>org.gvsig</groupId>
81
            <artifactId>org.gvsig.projection.api</artifactId>
82
            <scope>compile</scope>
83
        </dependency>
84
        <dependency>
85
            <groupId>org.gvsig</groupId>
86
            <artifactId>org.gvsig.symbology.lib.api</artifactId>
87
            <scope>compile</scope>
88
        </dependency>
89
        <dependency>
90
            <groupId>org.gvsig</groupId>
91
            <artifactId>org.gvsig.symbology.swing.api</artifactId>
92
            <scope>compile</scope>
93
        </dependency>
94
        <dependency>
95
            <groupId>org.gvsig</groupId>
96
            <artifactId>org.gvsig.metadata.lib.basic.api</artifactId>
97
            <scope>compile</scope>
98
        </dependency>
99
        <dependency>
100
            <groupId>com.lowagie</groupId>
101
            <artifactId>itext</artifactId>
102
            <scope>compile</scope>
103
        </dependency>
104
        <dependency>
105
            <groupId>org.apache.xmlgraphics</groupId>
106
            <artifactId>batik-gvt</artifactId>
107
            <scope>compile</scope>
108
        </dependency>
109
        <dependency>
110
            <groupId>org.apache.xmlgraphics</groupId>
111
            <artifactId>batik-script</artifactId>
112
            <scope>compile</scope>
113
        </dependency>
114
        
115
        <!--
116
        <dependency>
117
            <groupId>org.gvsig</groupId>
118
            <artifactId>batik-ext-gvsig-custom</artifactId>
119
        </dependency>
120
        -->
121
        
122
        <dependency>
123
            <groupId>com.sun</groupId>
124
            <artifactId>jimi</artifactId>
125
            <scope>compile</scope>
126
        </dependency>
127
        <dependency>
128
            <groupId>org.gvsig</groupId>
129
            <artifactId>org.gvsig.i18n</artifactId>
130
            <scope>compile</scope>
131
        </dependency>
132

  
133
    </dependencies>
134

  
135
    <properties>
136
        <gvsig.package.info.dependencies>required: org.gvsig.app.mainplugin -ge 2.0.22</gvsig.package.info.dependencies>
137
        <gvsig.package.info.categories>Layout</gvsig.package.info.categories>
138
		<gvsig.package.info.poolURL>http://devel.gvsig.org/download/projects/gvsig-app-document-layout/pool</gvsig.package.info.poolURL>
139
		<gvsig.package.info.sourcesURL>https://devel.gvsig.org/svn/gvsig-app-document-layout</gvsig.package.info.sourcesURL>
140
    </properties>
141

  
142
</project>
143

  
tags/org.gvsig.app.document.layout.app-2.0.19/org.gvsig.app.document.layout.app.mainplugin/buildNumber.properties
1
#maven.buildNumber.plugin properties file
2
#Mon Jul 08 09:50:23 CEST 2013
3
buildNumber=33
tags/org.gvsig.app.document.layout.app-2.0.19/org.gvsig.app.document.layout.app.mainplugin/src/test/resources/README.txt
1
Put into this folder the resources needed by your test classes.
2

  
3
This folder is added to the Tests classpath, so you can load any resources 
4
through the ClassLoader.
5

  
6
By default, in this folder you can find an example of log4j configuration,
7
prepared to log messages through the console, so logging works when you
8
run your tests classes.
tags/org.gvsig.app.document.layout.app-2.0.19/org.gvsig.app.document.layout.app.mainplugin/src/test/resources/log4j.xml
1
<?xml version="1.0" encoding="ISO-8859-1" ?>
2
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
3

  
4
<!-- 
5
Log4J configuration file for unit tests execution.
6
 -->
7
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
8

  
9
	<!-- Appender configuration to show logging messages through the console -->
10
	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
11
		<layout class="org.apache.log4j.PatternLayout">
12
			<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c{2}.%M()]\n  %m%n" />
13
		</layout>
14
	</appender>
15

  
16
	<!-- 
17
	Activate logging messages of DEBUG level of higher only for the
18
	org.gvsig.tools packages.
19
	You can put full classes names or packages instead, to configure
20
	logging for all the classes and subpackages of the package.
21
	-->
22
	<category name="org.gvsig.tools">
23
		<priority value="DEBUG" />
24
	</category>
25
	<category name="org.gvsig.app.document.layout">
26
		<priority value="DEBUG" />
27
	</category>
28

  
29
	<!-- 
30
	By default, show only logging messages of INFO level or higher, 
31
	through the previously configured CONSOLE appender. 
32
	-->
33
	<root>
34
		<priority value="INFO" />
35
		<appender-ref ref="CONSOLE" />
36
	</root>
37
</log4j:configuration>
tags/org.gvsig.app.document.layout.app-2.0.19/org.gvsig.app.document.layout.app.mainplugin/src/main/java/org/gvsig/app/extension/TagExtension.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

  
26
import javax.swing.JOptionPane;
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.fframes.IFFrame;
33
import org.gvsig.app.project.documents.layout.gui.LayoutPanel;
34

  
35
public class TagExtension extends Extension {
36

  
37
    private LayoutPanel layout = null;
38

  
39
    /**
40
     * @see org.gvsig.andami.plugins.IExtension#initialize()
41
     */
42
    public void initialize() {
43
        registerIcons();
44
    }
45

  
46
    private void registerIcons() {
47

  
48
        IconThemeHelper.registerIcon("action", "layout-graphic-show-tags", this);
49
        IconThemeHelper.registerIcon("action", "layout-insert-tag", this);
50

  
51
    }
52

  
53
    /**
54
     * @see org.gvsig.andami.plugins.IExtension#execute(java.lang.String)
55
     */
56
    public void execute(String s) {
57

  
58
        /*
59
         * FLayoutZooms zooms = new FLayoutZooms(layout);
60
         * logger.debug("Comand : " + s);
61
         * if (s.compareTo("SET_TAG") == 0) {
62
         * layout.setTool(Layout.SET_TAG);
63
         * }
64
         */
65

  
66
        // FJP: Cambio: abrimos la ventana de tag para
67
        // asignar el tag a los elementos seleccionados
68
        if (s.equals("layout-insert-tag")) {
69
            IFFrame[] selectedFrames =
70
                layout.getLayoutContext().getFFrameSelected();
71
            if (selectedFrames.length > 0) {
72
                String defaultStr = "";
73
                if (selectedFrames.length == 1)
74
                    defaultStr = selectedFrames[0].getTag();
75
                String theTag =
76
                    JOptionPane.showInputDialog(
77
                        (Component) PluginServices.getMainFrame(),
78
                        "Introduzca el tag:", defaultStr);
79
                if (theTag != null) {
80
                    for (int i = 0; i < selectedFrames.length; i++)
81
                        selectedFrames[i].setTag(theTag);
82
                }
83
                layout.getDocument().setModified(true);
84
            }
85
        } else
86
            if (s.equals("layout-graphic-show-tags")) {
87
                // IFFrame[] frames = layout.getFFrames();
88
                // for (int i=0; i< frames.length; i++)
89
                // {
90
                // IFFrame f = frames[i];
91
                // if (f instanceof FFrameText)
92
                // {
93
                // FFrameText txt = (FFrameText) f;
94
                // if (f.getTag() != null)
95
                // {
96
                // txt.clearText();
97
                // txt.addText(f.getTag());
98
                // }
99
                // }
100
                // }
101
                layout.setShowIconTag(true);
102
                layout.getLayoutControl().refresh();
103
            }
104
    }
105

  
106
    /**
107
     * @see org.gvsig.andami.plugins.IExtension#isEnabled()
108
     */
109
    public boolean isEnabled() {
110
        IFFrame[] selectedFrames =
111
            layout.getLayoutContext().getFFrameSelected();
112
        if (selectedFrames == null)
113
            return false;
114
        return (selectedFrames.length > 0);
115
    }
116

  
117
    /**
118
     * @see org.gvsig.andami.plugins.IExtension#isVisible()
119
     */
120
    public boolean isVisible() {
121
        IWindow f = PluginServices.getMDIManager().getActiveWindow();
122

  
123
        if (f != null && f instanceof LayoutPanel) {
124
            layout = (LayoutPanel) f;
125
            return true;
126
        }
127
        return false;
128
    }
129

  
130
}
tags/org.gvsig.app.document.layout.app-2.0.19/org.gvsig.app.document.layout.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

  
103
    // public IPreference getPreferencesPage() {
104
    // return printPropertiesPage;
105
    // }
106
}
tags/org.gvsig.app.document.layout.app-2.0.19/org.gvsig.app.document.layout.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.tools.ToolsLocator;
46
import org.gvsig.tools.persistence.PersistenceManager;
47
import org.gvsig.tools.persistence.PersistentState;
48
import org.gvsig.utils.GenericFileFilter;
49

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

  
57
    private static final Logger logger = LoggerFactory
58
        .getLogger(LayoutExtension.class);
59

  
60
    private LayoutPanel layout = null;
61

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

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

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

  
100
    private void saveLayout() {
101
        layout = (LayoutPanel) PluginServices.getMDIManager().getActiveWindow();
102
        JFileChooser jfc = new JFileChooser();
103
        jfc.addChoosableFileFilter(new GenericFileFilter(
104
            LayoutManager.TEMPLATE_FILE_POINTEXT,
105
            PluginServices.getText(this, "plantilla")));
106

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

  
128
            try {
129
                FileOutputStream fos =
130
                    new FileOutputStream(file.getAbsolutePath());
131
                // OutputStreamWriter writer = new OutputStreamWriter(fos,
132
                // ProjectExtension.PROJECTENCODING);
133
                // Marshaller m = new Marshaller(writer);
134
                // m.setEncoding(ProjectExtension.PROJECTENCODING);
135
                // XMLEntity xml=layout.getXMLEntity();
136
                // xml.putProperty("followHeaderEncoding", true);
137
                // m.marshal(xml.getXmlTag());
138

  
139
                PersistenceManager persistenceManager =
140
                    ToolsLocator.getPersistenceManager();
141
                PersistentState persistentState =
142
                    persistenceManager.getState(layout);
143
                persistenceManager.saveState(persistentState, fos);
144
            } catch (Exception e) {
145
                NotificationManager.addError(PluginServices.getText(this,
146
                    "Error_guardando_la_plantilla"), e);
147
            }
148
        }
149
    }
150

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

  
157
        if (f == null) {
158
            return false;
159
        }
160

  
161
        if (f instanceof LayoutPanel) {
162
            return true; // layout.m_Display.getMapControl().getMapContext().getLayers().layerCount()
163
                         // > 0;
164
        }
165
        return false;
166
    }
167

  
168
    /**
169
     * @see org.gvsig.andami.plugins.IExtension#initialize()
170
     */
171
    public void initialize() {
172
        registerIcons();
173
    }
174

  
175
    private void registerIcons() {
176
        
177
        IconThemeHelper.registerIcon("action", "application-layout-template-save", this);
178
        
179
        IconThemeHelper.registerIcon("action", "layout-navigation-zoom-in-center", this);
180
        IconThemeHelper.registerIcon("action", "layout-navigation-zoom-out-center", this);
181
        IconThemeHelper.registerIcon("action", "layout-navigation-zoom-in-topoint", this);
182
        IconThemeHelper.registerIcon("action", "layout-navigation-zoom-out-topoint", this);
183
        IconThemeHelper.registerIcon("action", "layout-navigation-zoom-all", this);
184
        IconThemeHelper.registerIcon("action", "layout-navigation-zoom-real", this);
185
        IconThemeHelper.registerIcon("action", "layout-navigation-zoom-selected", this);
186
        IconThemeHelper.registerIcon("action", "layout-navigation-pan", this);
187

  
188
        IconThemeHelper.registerIcon("action", "layout-view-navigation-zoom-in-topoint", this);
189
        IconThemeHelper.registerIcon("action", "layout-view-navigation-zoom-out-topoint", this);
190
        IconThemeHelper.registerIcon("action", "layout-view-navigation-zoom-all", this);
191
        IconThemeHelper.registerIcon("action", "layout-view-navigation-pan", this);
192
        // ================================================
193
        // Cursors
194
        IconThemeHelper.registerIcon("cursor", "cursor-layout-navigation-zoom-in-topoint", this);
195
        IconThemeHelper.registerIcon("cursor", "cursor-layout-navigation-zoom-out-topoint", this);
196
        IconThemeHelper.registerIcon("cursor", "cursor-selection-by-rectangle", this);
197
        IconThemeHelper.registerIcon("cursor", "cursor-selection-simple", this);
198
        IconThemeHelper.registerIcon("cursor", "cursor-selection-complex", this);
199
        IconThemeHelper.registerIcon("cursor", "cursor-layout-graphic-edit-vertex", this);
200
        IconThemeHelper.registerIcon("cursor", "cursor-layout-insert-circle", this);
201
        IconThemeHelper.registerIcon("cursor", "cursor-layout-insert-polyline", this);
202
        IconThemeHelper.registerIcon("cursor", "cursor-layout-insert-point", this);
203
        IconThemeHelper.registerIcon("cursor", "cursor-layout-insert-polygon", this);
204
        IconThemeHelper.registerIcon("cursor", "cursor-layout-insert-rectangle", this);
205
        IconThemeHelper.registerIcon("cursor", "cursor-layout-view-navigation-zoom-in-topoint", this);
206
        IconThemeHelper.registerIcon("cursor", "cursor-layout-view-navigation-zoom-out-topoint", this);
207
        // End cursors
208
        // ================================================
209

  
210
        IconThemeHelper.registerIcon("document", "document-map-icon", this);
211
        IconThemeHelper.registerIcon("document", "document-map-icon-sel", this);
212
        
213
        IconThemeHelper.registerIcon("layout", "neresize-icon", this);
214
        IconThemeHelper.registerIcon("layout", "eresize-icon", this);
215
        IconThemeHelper.registerIcon("layout", "nresize-icon", this);
216
        IconThemeHelper.registerIcon("layout", "move-icon", this);
217
        
218
        IconThemeHelper.registerIcon("layout", "sereresize-icon", this);
219
        IconThemeHelper.registerIcon("layout", "symboltag-icon", this);
220
        IconThemeHelper.registerIcon("layout", "numero-icon", this);
221
        IconThemeHelper.registerIcon("layout", "barra1-icon", this);
222
        IconThemeHelper.registerIcon("layout", "barra2-icon", this);
223
        IconThemeHelper.registerIcon("layout", "barra3-icon", this);
224

  
225
        IconThemeHelper.registerIcon("layout", "text-left-icon", this);
226
        IconThemeHelper.registerIcon("layout", "text-center-v-icon", this);
227
        IconThemeHelper.registerIcon("layout", "text-right-icon", this);
228
        IconThemeHelper.registerIcon("layout", "left-rotation-icon", this);
229
        IconThemeHelper.registerIcon("layout", "text-up-icon", this);
230
        IconThemeHelper.registerIcon("layout", "text-center-h-icon", this);
231
        IconThemeHelper.registerIcon("layout", "text-down-icon", this);
232
        IconThemeHelper.registerIcon("layout", "text-distup-icon", this);
233
        IconThemeHelper.registerIcon("layout", "text-distcenterh-icon", this);
234
        IconThemeHelper.registerIcon("layout", "text-distdown-icon", this);
235
        IconThemeHelper.registerIcon("layout", "text-distleft-icon", this);
236

  
237
        IconThemeHelper.registerIcon("layout", "text-distcenterv-icon", this);
238
        IconThemeHelper.registerIcon("layout", "text-distright-icon", this);
239
        IconThemeHelper.registerIcon("layout", "text-size-width-icon", this);
240
        IconThemeHelper.registerIcon("layout", "text-size-height-icon", this);
241
        IconThemeHelper.registerIcon("layout", "text-size-other-icon", this);
242
        IconThemeHelper.registerIcon("layout", "text-space-right-icon", this);
243
        IconThemeHelper.registerIcon("layout", "text-space-down-icon", this);
244
        IconThemeHelper.registerIcon("layout", "text-inlayout-icon", this);
245
        IconThemeHelper.registerIcon("layout", "layout-pan-icon", this);
246
        IconThemeHelper.registerIcon("layout", "view-pan-icon", this);
247
        IconThemeHelper.registerIcon("layout", "right-rotation-icon", this);
248
    }
249

  
250
    /**
251
     * @see org.gvsig.andami.plugins.IExtension#isEnabled()
252
     */
253
    public boolean isEnabled() {
254
        return true;
255
    }
256

  
257
    /**
258
     * Devuelve el Layout sobre el que se opera.
259
     * 
260
     * @return Layout.
261
     */
262
    public LayoutPanel getLayout() {
263
        return layout;
264
    }
265

  
266
    public IPreference[] getPreferencesPages() {
267
        return new IPreference[] { new LayoutPage() };
268
    }
269
}
tags/org.gvsig.app.document.layout.app-2.0.19/org.gvsig.app.document.layout.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 org.gvsig.andami.IconThemeHelper;
25
import org.gvsig.andami.PluginServices;
26
import org.gvsig.andami.plugins.Extension;
27
import org.gvsig.andami.ui.mdiManager.IWindow;
28
import org.gvsig.app.project.documents.layout.gui.LayoutPanel;
29

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

  
38
    public void initialize() {
39
        registerIcons();
40
    }
41

  
42
    private void registerIcons() {
43
        
44
        IconThemeHelper.registerIcon("action", "application-export-to-postscript", this);
45
        IconThemeHelper.registerIcon("action", "application-export-to-pdf", this);
46
    }
47

  
48
    /**
49
     * @see org.gvsig.andami.plugins.IExtension#execute(java.lang.String)
50
     */
51
    public void execute(String s) {
52
        layoutPanel = (LayoutPanel) PluginServices.getMDIManager().getActiveWindow();
53
        if (s.equals("application-export-to-pdf")) {
54
            layoutPanel.layoutToPDF();
55
        } else
56
            if (s.equals("application-export-to-postscript")) {
57
                layoutPanel.layoutToPS();
58
            }
59
    }
60

  
61
    public boolean isEnabled() {
62
        return true;
63
    }
64

  
65
    public boolean isVisible() {
66
        IWindow f = PluginServices.getMDIManager().getActiveWindow();
67

  
68
        if (f == null) {
69
            return false;
70
        }
71

  
72
        if (f instanceof LayoutPanel) {
73
            // Layout layout = (Layout) f;
74

  
75
            return true; // layout.m_Display.getMapControl().getMapContext().getLayers().layerCount()
76
                         // > 0;
77
        } else {
78
            return false;
79
        }
80
    }
81

  
82
}
tags/org.gvsig.app.document.layout.app-2.0.19/org.gvsig.app.document.layout.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().getFFrameSelected();
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.layout.app-2.0.19/org.gvsig.app.document.layout.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.layout.app-2.0.19/org.gvsig.app.document.layout.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.io.File;
26
import java.io.FileInputStream;
27
import java.io.FileNotFoundException;
28
import java.io.IOException;
29
import java.text.MessageFormat;
30
import java.util.prefs.Preferences;
31

  
32
import javax.swing.JOptionPane;
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.app.ApplicationLocator;
39
import org.gvsig.app.project.Project;
40
import org.gvsig.app.project.ProjectManager;
41
import org.gvsig.app.project.documents.layout.DefaultLayoutManager;
42
import org.gvsig.app.project.documents.layout.LayoutDocument;
43
import org.gvsig.app.project.documents.layout.LayoutManager;
44
import org.gvsig.app.project.documents.layout.contextmenu.gui.BeforeLayoutMenuEntry;
45
import org.gvsig.app.project.documents.layout.contextmenu.gui.BehindLayoutMenuEntry;
46
import org.gvsig.app.project.documents.layout.contextmenu.gui.CancelLayoutMenuEntry;
47
import org.gvsig.app.project.documents.layout.contextmenu.gui.CopyLayoutMenuEntry;
48
import org.gvsig.app.project.documents.layout.contextmenu.gui.CutLayoutMenuEntry;
49
import org.gvsig.app.project.documents.layout.contextmenu.gui.PasteLayoutMenuEntry;
50
import org.gvsig.app.project.documents.layout.contextmenu.gui.PositionLayoutMenuEntry;
51
import org.gvsig.app.project.documents.layout.contextmenu.gui.PropertyLayoutMenuEntry;
52
import org.gvsig.app.project.documents.layout.contextmenu.gui.RefreshLayoutMenuEntry;
53
import org.gvsig.app.project.documents.layout.contextmenu.gui.SelectAllLayoutMenuEntry;
54
import org.gvsig.app.project.documents.layout.contextmenu.gui.SimplifyLayoutMenuEntry;
55
import org.gvsig.app.project.documents.layout.contextmenu.gui.TerminateLayoutMenuEntry;
56
import org.gvsig.app.project.documents.layout.fframes.FFrame;
57
import org.gvsig.app.project.documents.layout.fframes.FFrameBasicFactory;
58
import org.gvsig.app.project.documents.layout.fframes.FFrameGraphics;
59
import org.gvsig.app.project.documents.layout.fframes.FFrameGraphicsFactory;
60
import org.gvsig.app.project.documents.layout.fframes.FFrameGrid;
61
import org.gvsig.app.project.documents.layout.fframes.FFrameGridFactory;
62
import org.gvsig.app.project.documents.layout.fframes.FFrameGroup;
63
import org.gvsig.app.project.documents.layout.fframes.FFrameGroupFactory;
64
import org.gvsig.app.project.documents.layout.fframes.FFrameLegend;
65
import org.gvsig.app.project.documents.layout.fframes.FFrameLegendFactory;
66
import org.gvsig.app.project.documents.layout.fframes.FFrameNorth;
67
import org.gvsig.app.project.documents.layout.fframes.FFrameNorthFactory;
68
import org.gvsig.app.project.documents.layout.fframes.FFrameOverView;
69
import org.gvsig.app.project.documents.layout.fframes.FFrameOverViewFactory;
70
import org.gvsig.app.project.documents.layout.fframes.FFramePicture;
71
import org.gvsig.app.project.documents.layout.fframes.FFramePictureFactory;
72
import org.gvsig.app.project.documents.layout.fframes.FFrameScaleBar;
73
import org.gvsig.app.project.documents.layout.fframes.FFrameScaleBarFactory;
74
import org.gvsig.app.project.documents.layout.fframes.FFrameSymbol;
75
import org.gvsig.app.project.documents.layout.fframes.FFrameSymbolFactory;
76
import org.gvsig.app.project.documents.layout.fframes.FFrameTable;
77
import org.gvsig.app.project.documents.layout.fframes.FFrameTableFactory;
78
import org.gvsig.app.project.documents.layout.fframes.FFrameText;
79
import org.gvsig.app.project.documents.layout.fframes.FFrameTextFactory;
80
import org.gvsig.app.project.documents.layout.fframes.FFrameView;
81
import org.gvsig.app.project.documents.layout.fframes.FFrameViewFactory;
82
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameBoxDialog;
83
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameGraphicsDialog;
84
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameGridDialog;
85
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameGroupDialog;
86
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameLegendDialog;
87
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameNorthDialog;
88
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameOverViewDialog;
89
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFramePictureDialog;
90
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameScaleBarDialog;
91
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameTextDialog;
92
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.FFrameViewDialog;
93
import org.gvsig.app.project.documents.layout.gui.LayoutPanel;
94
import org.gvsig.gui.beans.swing.JFileChooser;
95
import org.gvsig.i18n.Messages;
96
import org.gvsig.tools.ToolsLocator;
97
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
98
import org.gvsig.tools.persistence.PersistenceManager;
99
import org.gvsig.tools.persistence.PersistentState;
100
import org.gvsig.tools.persistence.exception.PersistenceException;
101
import org.gvsig.utils.GenericFileFilter;
102

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

  
112
    private String templatesPath;
113
    public static final String LAYOUT_TEMPLATE_FILECHOOSER_ID =
114
        "LAYOUT_TEMPLATE_FILECHOOSER_ID";
115

  
116
    private void registerIcons() {
117
        
118
        IconThemeHelper.registerIcon("action",
119
            "application-layout-template-open", this);
120
    }
121

  
122
    public void initialize() {
123
        registerIcons();
124
    }
125

  
126
    public void postInitialize() {
127
        super.postInitialize();
128
        initializeDocumentActionsExtensionPoint();
129
        registerDocuments();
130
        registerFFrames();
131
        registerContextMenuOptions();
132
    }
133

  
134
    /**
135
     * @see com.iver.mdiApp.plugins.IExtension#updateUI(java.lang.String)
136
     */
137
    public void execute(String actionCommand) {
138
        if ("application-layout-template-open".equals(actionCommand)) {
139
            openLayout();
140
        }
141
    }
142

  
143
    private void openLayout() {
144
        // Project project = ((ProjectExtension)
145
        // PluginServices.getExtension(ProjectExtension.class)).getProject();
146
        LayoutPanel layout = null;
147

  
148
        if (templatesPath == null) {
149
            Preferences prefs = Preferences.userRoot().node("gvsig.foldering");
150
            templatesPath = prefs.get("TemplatesFolder", null);
151
        }
152

  
153
        JFileChooser jfc =
154
            new JFileChooser(LAYOUT_TEMPLATE_FILECHOOSER_ID, templatesPath);
155
        jfc.addChoosableFileFilter(new GenericFileFilter(
156
            LayoutManager.TEMPLATE_FILE_POINTEXT,
157
            Messages.getText("_Layout_template") + " (*"
158
            + LayoutManager.TEMPLATE_FILE_POINTEXT + ")"
159
            ));
160

  
161
        if (jfc.showOpenDialog((Component) PluginServices.getMainFrame()) == JFileChooser.APPROVE_OPTION) {
162
            File file = jfc.getSelectedFile();
163
            try {
164
                if (!file.exists()) {
165
                    /*
166
                     * The user has written a file name instead of clicking on one
167
                     * and it does not exist
168
                     */
169
                    File auxfile = new File(file.getPath() + LayoutManager.TEMPLATE_FILE_POINTEXT);
170
                    if (!auxfile.exists()) {
171
                        /*
172
                         * Not even this one exists: error
173
                         */
174
                        throw new IOException("File does not exist: " + file.getName());
175
                    } else {
176
                        file = auxfile;
177
                    }
178
                }
179

  
180
                File xmlFile = new File(file.getAbsolutePath());
181
                FileInputStream is = new FileInputStream(xmlFile);
182

  
183
                PersistenceManager persistenceManager =
184
                    ToolsLocator.getPersistenceManager();
185
                PersistentState persistentState =
186
                    persistenceManager.loadState(is);
187
                layout =
188
                    (LayoutPanel) persistenceManager.create(persistentState);
189

  
190
            } catch (Exception e) {
191
                
192
                String tit = Messages.getText("_Layout_template");
193
                String msg = null;
194
                
195
                if (e instanceof PersistenceException) {
196
                    msg = Messages.getText("_Bad_format_in_layout_template");
197
                } else {
198
                    msg = Messages.getText("_Cant_load_layout_template");
199
                }
200
                
201
                msg = msg + ": " + file.getPath();
202
                msg = msg + "\n" + e.getMessage();
203
                JOptionPane.showMessageDialog(
204
                    ApplicationLocator.getManager().getRootComponent(),
205
                    msg, tit, JOptionPane.ERROR_MESSAGE);
206
            }
207
            
208
            if (layout == null) {
209
                return;
210
            }
211

  
212
            LayoutDocument layoutDocument =
213
                (LayoutDocument) ProjectManager.getInstance().createDocument(
214
                    DefaultLayoutManager.TYPENAME, file.getName());
215
            Project p =
216
                ApplicationLocator.getManager().getProjectManager()
217
                    .getCurrentProject();
218
            p.add(layoutDocument);
219
            
220
            layout.getLayoutControl().setTool("layoutselect");
221
            PluginServices.getMDIManager().addWindow(layout);
222

  
223
        }
224
    }
225

  
226
    private void registerDocuments() {
227
        DefaultLayoutManager.register();
228
    }
229
    
230
    private void registerFFrames() {
231
        DefaultLayoutManager layoutManager =
232
            (DefaultLayoutManager) ProjectManager.getInstance()
233
                .getDocumentManager(DefaultLayoutManager.TYPENAME);
234
        
235
        // Register Frames
236
        layoutManager.registerFrameFactory(new FFrameBasicFactory());
237
        layoutManager.registerFrameFactory(new FFrameGraphicsFactory());
238
        layoutManager.registerFrameFactory(new FFrameGroupFactory());
239
        layoutManager.registerFrameFactory(new FFrameLegendFactory());
240
        layoutManager.registerFrameFactory(new FFrameNorthFactory());
241
        layoutManager.registerFrameFactory(new FFrameOverViewFactory());
242
        layoutManager.registerFrameFactory(new FFramePictureFactory());
243
        layoutManager.registerFrameFactory(new FFrameScaleBarFactory());
244
        layoutManager.registerFrameFactory(new FFrameSymbolFactory());
245
        layoutManager.registerFrameFactory(new FFrameTableFactory());
246
        layoutManager.registerFrameFactory(new FFrameTextFactory());
247
        layoutManager.registerFrameFactory(new FFrameViewFactory());
248
        layoutManager.registerFrameFactory(new FFrameGridFactory());
249

  
250
        // Register FFrameDialogs forms
251
        layoutManager.registerFFrameDialog(
252
            FFrameGraphics.PERSISTENCE_DEFINITION_NAME, FFrameGraphicsDialog.class);
253
        layoutManager.registerFFrameDialog(
254
            FFrameSymbol.PERSISTENCE_DEFINITION_NAME, FFrameGraphicsDialog.class);
255
        layoutManager.registerFFrameDialog(
256
            FFrameGroup.PERSISTENCE_DEFINITION_NAME, FFrameGroupDialog.class);
257
        layoutManager.registerFFrameDialog(
258
            FFrameTable.PERSISTENCE_DEFINITION_NAME, FFrameBoxDialog.class);
259
        layoutManager.registerFFrameDialog(
260
            FFrameLegend.PERSISTENCE_DEFINITION_NAME, FFrameLegendDialog.class);
261
        layoutManager.registerFFrameDialog(
262
            FFramePicture.PERSISTENCE_DEFINITION_NAME, FFramePictureDialog.class);
263
        layoutManager.registerFFrameDialog(
264
            FFrameNorth.PERSISTENCE_DEFINITION_NAME, FFrameNorthDialog.class);
265
        layoutManager.registerFFrameDialog(
266
            FFrameScaleBar.PERSISTENCE_DEFINITION_NAME, FFrameScaleBarDialog.class);
267
        layoutManager.registerFFrameDialog(
268
            FFrameText.PERSISTENCE_DEFINITION_NAME, FFrameTextDialog.class);
269
        layoutManager.registerFFrameDialog(
270
            FFrameView.PERSISTENCE_DEFINITION_NAME, FFrameViewDialog.class);
271
        layoutManager.registerFFrameDialog(
272
            FFrameOverView.PERSISTENCE_DEFINITION_NAME, FFrameOverViewDialog.class);
273
        layoutManager.registerFFrameDialog(
274
            FFrameGrid.PERSISTENCE_DEFINITION_NAME, FFrameGridDialog.class);
275
        
276
        FFrame.initializeIcons();
277
        FFrameTable.initializeIcons();
278
    }
279
        
280
    private void registerContextMenuOptions() {
281
        LayoutManager layoutManager =
282
            (LayoutManager) ProjectManager.getInstance()
283
                .getDocumentManager("project.document.layout");
284
        
285
        layoutManager.registerLayoutMenuAction("Terminate", TerminateLayoutMenuEntry.class);
286
        layoutManager.registerLayoutMenuAction("Cancel", CancelLayoutMenuEntry.class);
287
        layoutManager.registerLayoutMenuAction("Copy", CopyLayoutMenuEntry.class);
288
        layoutManager.registerLayoutMenuAction("Cut", CutLayoutMenuEntry.class);
289
        layoutManager.registerLayoutMenuAction("Paste", PasteLayoutMenuEntry.class);
290
        layoutManager.registerLayoutMenuAction("Simplify", SimplifyLayoutMenuEntry.class);
291
        layoutManager.registerLayoutMenuAction("Property",PropertyLayoutMenuEntry.class);
292
        layoutManager.registerLayoutMenuAction("SelectAll", SelectAllLayoutMenuEntry.class);
293
        layoutManager.registerLayoutMenuAction("Behind", BehindLayoutMenuEntry.class);
294
        layoutManager.registerLayoutMenuAction("Before", BeforeLayoutMenuEntry.class);
295
        layoutManager.registerLayoutMenuAction("Position", PositionLayoutMenuEntry.class);
296
        layoutManager.registerLayoutMenuAction("Refresh", RefreshLayoutMenuEntry.class);
297
        
298
    }
299

  
300
    private void initializeDocumentActionsExtensionPoint() {
301
        ExtensionPointManager epMan = ToolsLocator.getExtensionPointManager();
302
        epMan.add("DocumentActions_Map",
303
            "Context menu options of the map document list"
304
                + " in the project window " + "(register instances of "
305
                + "org.gvsig.app.project.AbstractDocumentContextMenuAction)");
306
    }
307

  
308
    public boolean isEnabled() {
309
        return true;
310
    }
311

  
312
    public boolean isVisible() {
313
        return true;
314
    }
315
}
tags/org.gvsig.app.document.layout.app-2.0.19/org.gvsig.app.document.layout.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) {
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff