Revision 747

View differences:

tags/org.gvsig.app.document.layout2.app-2.0.116/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.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/gui/preferencespage/LayoutPage.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.gui.preferencespage;
23

  
24
import java.awt.GridBagConstraints;
25
import java.awt.Insets;
26

  
27
import javax.swing.BorderFactory;
28
import javax.swing.ImageIcon;
29
import javax.swing.JCheckBox;
30
import javax.swing.JComboBox;
31
import javax.swing.JLabel;
32
import javax.swing.JPanel;
33
import javax.swing.JTextField;
34

  
35
import org.gvsig.andami.IconThemeHelper;
36
import org.gvsig.andami.PluginServices;
37
import org.gvsig.andami.PluginsLocator;
38
import org.gvsig.andami.preferences.AbstractPreferencePage;
39
import org.gvsig.andami.preferences.StoreException;
40
import org.gvsig.app.project.ProjectManager;
41
import org.gvsig.app.project.documents.layout.Attributes;
42
import org.gvsig.app.project.documents.layout.DefaultLayoutManager;
43
import org.gvsig.fmap.mapcontext.MapContext;
44
import org.gvsig.gui.beans.swing.GridBagLayoutPanel;
45
import org.gvsig.i18n.Messages;
46
import org.gvsig.utils.XMLEntity;
47

  
48
/**
49
 * Layout preference page where the user can establish default values for
50
 * <ol>
51
 * <li><b>grid horizontal gap</b></li>
52
 * <li><b>grid vertical gap</b></li>
53
 * <li><b>show or hide grid</b></li>
54
 * <li><b>adjust elements to grid</b></li>
55
 * <li><b>show or hide rules</b></li>
56
 * </ol>
57
 * 
58
 * @author jaume dominguez faus - jaume.dominguez@iver.es
59
 * 
60
 */
61
public class LayoutPage extends AbstractPreferencePage {
62

  
63
    private static final long serialVersionUID = -8225970409668105935L;
64
    static String id = LayoutPage.class.getName();;
65
    private ImageIcon icon;
66
    private JCheckBox chkGridEnabled;
67
    private JCheckBox chkShowRules;
68
    private JCheckBox chkShowGrid;
69
    private JTextField txtVGap;
70
    private JTextField txtHGap;
71
    private JCheckBox chkShowInitialPageConfig;
72
	private JCheckBox chkShowLayoutTOC;
73
	private JComboBox cbHGapUnit;
74
	private JComboBox cbVGapUnit;
75

  
76
    private static DefaultLayoutManager layoutManager = null;
77

  
78
    /**
79
     * Builds preference page where the user can establish default values for
80
     * <ol>
81
     * <li><b>grid horizontal gap</b></li>
82
     * <li><b>grid vertical gap</b></li>
83
     * <li><b>show or hide grid</b></li>
84
     * <li><b>adjust elements to grid</b></li>
85
     * <li><b>show or hide rules</b></li>
86
     * </ol>
87
     */
88
    public LayoutPage() {
89
        super();
90
        layoutManager =
91
            (DefaultLayoutManager) ProjectManager.getInstance()
92
                .getDocumentManager(DefaultLayoutManager.TYPENAME);
93

  
94
        icon = IconThemeHelper.getImageIcon("document-map-icon");
95

  
96
        GridBagLayoutPanel gridRulerPanel = new GridBagLayoutPanel();
97
        Insets topInsets = new Insets(10, 10, 0, 10);
98
        Insets insets = new Insets(8, 10, 0, 10);
99
        Insets lastInsets = new Insets(8, 10, 12, 10);
100
        gridRulerPanel.setBorder(BorderFactory.createTitledBorder(Messages.getText("Grid_and_ruler")));
101
        
102
        // horizontal gap text field and units combo
103
        cbHGapUnit = new JComboBox();
104
        String[] names = MapContext.getDistanceNames();
105
        for (int i = 0; i < names.length; i++) {
106
        	cbHGapUnit.addItem(PluginServices.getText(this, names[i]));
107
        }
108
        gridRulerPanel.addComponent(new JLabel(PluginServices.getText(this, "espaciado_horizontal")),
109
            txtHGap = new JTextField(5), cbHGapUnit, GridBagConstraints.NONE, insets);
110
        
111
        // vertical gap text field and units combo
112
        cbVGapUnit = new JComboBox();
113
        for (int i = 0; i < names.length; i++) {
114
        	cbVGapUnit.addItem(PluginServices.getText(this, names[i]));
115
        }
116
        gridRulerPanel.addComponent(new JLabel(PluginServices.getText(this, "espaciado_vertical")),
117
        		txtVGap = new JTextField(5), cbVGapUnit, GridBagConstraints.NONE, insets);
118

  
119
        // show/hide show check
120
        gridRulerPanel.addComponent(chkShowGrid =
121
            new JCheckBox(PluginServices.getText(this, "visualizar_cuadricula")), insets);
122

  
123
        // enable/disable grid
124
        gridRulerPanel.addComponent(chkGridEnabled =
125
            new JCheckBox(PluginServices.getText(this, "malla_activada")), insets);
126

  
127
        // show/hide rules
128
        gridRulerPanel.addComponent(chkShowRules =
129
            new JCheckBox(PluginServices.getText(this, "activar_regla")), lastInsets);
130
        
131
        addComponent(gridRulerPanel, topInsets);
132
        
133
        GridBagLayoutPanel behaviourPanel = new GridBagLayoutPanel();
134
        behaviourPanel.setBorder(BorderFactory.createTitledBorder(Messages.getText("User_interface")));
135
        
136
        behaviourPanel.addComponent(
137
        		chkShowInitialPageConfig = new JCheckBox(Messages.getText("Show_page_config_dialog_when_layout_document_is_created")),
138
        		insets);
139
        
140
        behaviourPanel.addComponent(
141
        		chkShowLayoutTOC = new JCheckBox(Messages.getText("Show_table_of_contents_TOC_for_Layout_views")),
142
        		insets);
143
        
144
        addComponent(behaviourPanel, lastInsets);
145

  
146
    }
147

  
148
    public void storeValues() throws StoreException {
149
        double hGap, vGap;
150
        boolean gridEnabled, showRules, showGrid, showInitPageConfig,
151
        	showLayoutToc;
152
        String hGapUnits, vGapUnits;
153
        try {
154
            hGap = Double.parseDouble(txtHGap.getText());
155
            hGapUnits = MapContext.getDistanceAbbr()[cbHGapUnit.getSelectedIndex()];
156
            vGap = Double.parseDouble(txtVGap.getText());
157
            vGapUnits = MapContext.getDistanceAbbr()[cbVGapUnit.getSelectedIndex()];
158
            gridEnabled = chkGridEnabled.isSelected();
159
            showGrid = chkShowGrid.isSelected();
160
            showRules = chkShowRules.isSelected();
161
            showInitPageConfig = chkShowInitialPageConfig.isSelected();
162
            showLayoutToc = chkShowLayoutTOC.isSelected();
163
        } catch (Exception e) {
164
            throw new StoreException(PluginServices.getText(this,
165
                "invalid_value_for_gap"));
166
        }
167
        layoutManager.setDefaultShowGrid(showGrid);
168
        layoutManager.setDefaultAdjustToGrid(gridEnabled);
169
        layoutManager.setDefaultShowRulers(showRules);
170
        Attributes.setDefaultGridGap(hGap, vGap, hGapUnits, vGapUnits);
171
        PluginServices ps = PluginsLocator.getManager().getPlugin(this);
172
		XMLEntity xml = ps.getPersistentXML();
173
        xml.putProperty(PreferenceKeys.DEFAULT_LAYOUT_GRID_HORIZONTAL_GAP_KEY_NAME, hGap);
174
        xml.putProperty(PreferenceKeys.DEFAULT_LAYOUT_GRID_VERTICAL_GAP_KEY_NAME, vGap);
175
        xml.putProperty(PreferenceKeys.DEFAULT_LAYOUT_GRID_HORIZONTAL_GAP_UNITS_KEY_NAME, hGapUnits);
176
        xml.putProperty(PreferenceKeys.DEFAULT_LAYOUT_GRID_VERTICAL_GAP_UNITS_KEY_NAME, vGapUnits);
177
        xml.putProperty(PreferenceKeys.DEFAULT_SHOW_LAYOUT_GRID_KEY_NAME, showGrid);
178
        xml.putProperty(PreferenceKeys.DEFAULT_ENABLE_LAYOUT_GRID_KEY_NAME, gridEnabled);
179
        xml.putProperty(PreferenceKeys.DEFAULT_SHOW_LAYOUT_RULERS_KEY_NAME, showRules);
180
        xml.putProperty(PreferenceKeys.DEFAULT_SHOW_INITIAL_CONFIG_DIALOG_KEY_NAME, showInitPageConfig);
181
        xml.putProperty(PreferenceKeys.DEFAULT_SHOW_LAYOUT_TOC_KEY_NAME, showLayoutToc);
182
    }
183

  
184
    public String getID() {
185
        return id;
186
    }
187

  
188
    public String getTitle() {
189
        return PluginServices.getText(this, "Mapa");
190
    }
191

  
192
    public JPanel getPanel() {
193
        return this;
194
    }
195

  
196
    public void initializeValues() {
197
    	PluginServices ps = PluginsLocator.getManager().getPlugin(this);
198
		XMLEntity xml = ps.getPersistentXML();
199
        double hGap = PreferenceKeys.FACTORY_DEFAULT_HORIZONTAL_GAP;
200
        double vGap = PreferenceKeys.FACTORY_DEFAULT_VERTICAL_GAP;
201
        boolean showGrid = PreferenceKeys.FACTORY_DEFAULT_LAYOUT_GRID_SHOW;
202
        boolean gridEnabled = PreferenceKeys.FACTORY_DEFAULT_LAYOUT_GRID_ENABLE;
203
        boolean showRules = PreferenceKeys.FACTORY_DEFAULT_LAYOUT_ENABLE_RULERS;
204
        boolean showInitPageConfig = PreferenceKeys.FACTORY_DEFAULT_SHOW_INITIAL_CONFIG_DIALOG_FOR_LAYOUT;
205
        boolean showLayoutToc = PreferenceKeys.FACTORY_DEFAULT_SHOW_LAYOUT_TOC;
206
        // horizontal gap
207
        if (xml.contains(PreferenceKeys.DEFAULT_LAYOUT_GRID_HORIZONTAL_GAP_KEY_NAME)) {
208
            hGap =
209
                xml.getDoubleProperty(PreferenceKeys.DEFAULT_LAYOUT_GRID_HORIZONTAL_GAP_KEY_NAME);
210
        }
211
        txtHGap.setText(String.valueOf(hGap));
212

  
213
        // vertical gap
214
        if (xml.contains(PreferenceKeys.DEFAULT_LAYOUT_GRID_VERTICAL_GAP_KEY_NAME)) {
215
            vGap =
216
                xml.getDoubleProperty(PreferenceKeys.DEFAULT_LAYOUT_GRID_VERTICAL_GAP_KEY_NAME);
217
        }
218
        txtVGap.setText(String.valueOf(vGap));
219
        
220
        String hGapUnit = xml.contains(PreferenceKeys.DEFAULT_LAYOUT_GRID_HORIZONTAL_GAP_UNITS_KEY_NAME)?
221
        		xml.getStringProperty(PreferenceKeys.DEFAULT_LAYOUT_GRID_HORIZONTAL_GAP_UNITS_KEY_NAME):
222
        			PreferenceKeys.FACTORY_DEFAULT_HORIZONTAL_GAP_UNIT;
223
        cbHGapUnit.setSelectedIndex(Attributes.getDistanceAbbrPosition(hGapUnit));
224
        
225
        String vGapUnit = xml.contains(PreferenceKeys.DEFAULT_LAYOUT_GRID_VERTICAL_GAP_UNITS_KEY_NAME)?
226
                		xml.getStringProperty(PreferenceKeys.DEFAULT_LAYOUT_GRID_VERTICAL_GAP_UNITS_KEY_NAME):
227
                			PreferenceKeys.FACTORY_DEFAULT_VERTICAL_GAP_UNIT;
228
        cbVGapUnit.setSelectedIndex(Attributes.getDistanceAbbrPosition(vGapUnit));
229

  
230
        // show/hide grid check
231
        if (xml.contains(PreferenceKeys.DEFAULT_SHOW_LAYOUT_GRID_KEY_NAME)) {
232
            showGrid =
233
                xml.getBooleanProperty(PreferenceKeys.DEFAULT_SHOW_LAYOUT_GRID_KEY_NAME);
234
        }
235
        chkShowGrid.setSelected(showGrid);
236

  
237
        // enable/disable grid check
238
        if (xml.contains(PreferenceKeys.DEFAULT_ENABLE_LAYOUT_GRID_KEY_NAME)) {
239
            gridEnabled =
240
                xml.getBooleanProperty(PreferenceKeys.DEFAULT_ENABLE_LAYOUT_GRID_KEY_NAME);
241
        }
242
        chkGridEnabled.setSelected(gridEnabled);
243

  
244
        // enable/disable rules
245
        if (xml.contains(PreferenceKeys.DEFAULT_SHOW_LAYOUT_RULERS_KEY_NAME)) {
246
            showRules =
247
                xml.getBooleanProperty(PreferenceKeys.DEFAULT_SHOW_LAYOUT_RULERS_KEY_NAME);
248
        }
249
        chkShowRules.setSelected(showRules);
250
        
251
        if (xml.contains(PreferenceKeys.DEFAULT_SHOW_INITIAL_CONFIG_DIALOG_KEY_NAME)) {
252
        	showInitPageConfig = xml.getBooleanProperty(PreferenceKeys.DEFAULT_SHOW_INITIAL_CONFIG_DIALOG_KEY_NAME);
253
        }
254
        chkShowInitialPageConfig.setSelected(showInitPageConfig);
255
        
256
        if (xml.contains(PreferenceKeys.DEFAULT_SHOW_LAYOUT_TOC_KEY_NAME)) {
257
        	showLayoutToc = xml.getBooleanProperty(PreferenceKeys.DEFAULT_SHOW_LAYOUT_TOC_KEY_NAME);
258
        }
259
        chkShowLayoutTOC.setSelected(showLayoutToc);
260

  
261
        layoutManager.setDefaultShowGrid(showGrid);
262
        layoutManager.setDefaultAdjustToGrid(gridEnabled);
263
        layoutManager.setDefaultShowRulers(showRules);
264
        Attributes.setDefaultGridGap(hGap, vGap, hGapUnit, vGapUnit);
265
    }
266

  
267
    public void initializeDefaults() {
268
        txtHGap.setText(String.valueOf(PreferenceKeys.FACTORY_DEFAULT_HORIZONTAL_GAP));
269
        txtVGap.setText(String.valueOf(PreferenceKeys.FACTORY_DEFAULT_VERTICAL_GAP));
270
        cbHGapUnit.setSelectedIndex(Attributes.getDistanceAbbrPosition(PreferenceKeys.FACTORY_DEFAULT_HORIZONTAL_GAP_UNIT));
271
        cbVGapUnit.setSelectedIndex(Attributes.getDistanceAbbrPosition(PreferenceKeys.FACTORY_DEFAULT_VERTICAL_GAP_UNIT));
272
        chkShowGrid.setSelected(PreferenceKeys.FACTORY_DEFAULT_LAYOUT_GRID_SHOW);
273
        chkGridEnabled.setSelected(PreferenceKeys.FACTORY_DEFAULT_LAYOUT_GRID_ENABLE);
274
        chkShowRules.setSelected(PreferenceKeys.FACTORY_DEFAULT_LAYOUT_ENABLE_RULERS);
275
        chkShowInitialPageConfig.setSelected(PreferenceKeys.FACTORY_DEFAULT_SHOW_INITIAL_CONFIG_DIALOG_FOR_LAYOUT);
276
    }
277

  
278
    public ImageIcon getIcon() {
279
        return icon;
280
    }
281

  
282
    public boolean isValueChanged() {
283
        return super.hasChanged();
284
    }
285

  
286
    public void setChangesApplied() {
287
        setChanged(false);
288
    }
289
}
tags/org.gvsig.app.document.layout2.app-2.0.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/gui/preferencespage/PreferenceKeys.java
1
package org.gvsig.app.gui.preferencespage;
2

  
3
/**
4
 * The purpose of this interface is to define the keys used for the
5
 * persistence of this plugin in order to make these keys available
6
 * on library level, instead of defining them within the
7
 * preference page (which has UI dependences).
8
 * 
9
 * @author Cesar Martinez Izquierdo <cesar.izq@gmail.com>
10
 *
11
 */
12
public interface PreferenceKeys {
13
    String DEFAULT_SHOW_LAYOUT_GRID_KEY_NAME = "DefaultShowLayoutGrid";
14
    String DEFAULT_ENABLE_LAYOUT_GRID_KEY_NAME = "DefaultEnableLayoutGrid";
15
    String DEFAULT_SHOW_LAYOUT_RULERS_KEY_NAME = "DefaultShowLayoutRules";
16
    String DEFAULT_LAYOUT_GRID_VERTICAL_GAP_KEY_NAME = "DefaultGridVerticalGap";
17
    String DEFAULT_LAYOUT_GRID_HORIZONTAL_GAP_KEY_NAME = "DefaultGridHorizontalGap";
18
    String DEFAULT_LAYOUT_GRID_VERTICAL_GAP_UNITS_KEY_NAME = "DefaultGridVerticalGapUnits";
19
    String DEFAULT_LAYOUT_GRID_HORIZONTAL_GAP_UNITS_KEY_NAME = "DefaultGridHorizontalGapUnits";
20
    String DEFAULT_SHOW_INITIAL_CONFIG_DIALOG_KEY_NAME = "DefaulShowInitialPageConfigLayout";
21
    String DEFAULT_SHOW_LAYOUT_TOC_KEY_NAME = "DefaultShowLayoutToc";
22
    boolean FACTORY_DEFAULT_LAYOUT_ENABLE_RULERS = true;
23
    boolean FACTORY_DEFAULT_LAYOUT_GRID_SHOW = true;
24
    double FACTORY_DEFAULT_VERTICAL_GAP = 1.0d;
25
    double FACTORY_DEFAULT_HORIZONTAL_GAP = 1.0d;
26
    String FACTORY_DEFAULT_VERTICAL_GAP_UNIT = "cm";
27
    String FACTORY_DEFAULT_HORIZONTAL_GAP_UNIT = "cm";
28
    boolean FACTORY_DEFAULT_LAYOUT_GRID_ENABLE = false;
29
    boolean FACTORY_DEFAULT_SHOW_INITIAL_CONFIG_DIALOG_FOR_LAYOUT = true;
30
    boolean FACTORY_DEFAULT_SHOW_LAYOUT_TOC = true;
31

  
32
}
tags/org.gvsig.app.document.layout2.app-2.0.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/gui/preferencespage/PrintPropertiesPage.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.gui.preferencespage;
23

  
24
import java.awt.Dimension;
25
import java.awt.GridLayout;
26

  
27
import javax.swing.ButtonGroup;
28
import javax.swing.ImageIcon;
29
import javax.swing.JCheckBox;
30
import javax.swing.JLabel;
31
import javax.swing.JPanel;
32
import javax.swing.JRadioButton;
33
import javax.swing.JTextField;
34

  
35
import org.gvsig.andami.PluginServices;
36
import org.gvsig.andami.preferences.AbstractPreferencePage;
37
import org.gvsig.andami.preferences.StoreException;
38

  
39
public class PrintPropertiesPage extends AbstractPreferencePage {
40

  
41
    private static final long serialVersionUID = 5806304468312341691L;
42
    private static final boolean FACTORY_DEFAULT_LANDSCAPED_PAGE = true;
43
    protected static String id = PrintPropertiesPage.class.getName();
44
    private ImageIcon icon;
45
    private JRadioButton rdBtnPortraitPage;
46
    private JRadioButton rdBtnLandscapePage;
47
    private JCheckBox chkCustomMargins;
48
    private JTextField txtTopMargin;
49
    private JTextField txtLeftMargin;
50
    private JTextField txtBottomMargin;
51
    private JTextField txtRightMargin;
52

  
53
    public PrintPropertiesPage() {
54
        super();
55
        setParentID(LayoutPage.class.getName());
56
        icon = PluginServices.getIconTheme().get("prepare-page-icon");
57
        rdBtnPortraitPage =
58
            new JRadioButton(PluginServices.getText(this,
59
                "options.layout.paper_properties.portrait"));
60
        ImageIcon portrait =
61
            PluginServices.getIconTheme().get("portrait-page-setup");
62
        rdBtnLandscapePage =
63
            new JRadioButton(PluginServices.getText(this,
64
                "options.layout.paper_properties.landscaped"));
65
        ImageIcon landscape =
66
            PluginServices.getIconTheme().get("landscape-page-setup");
67

  
68
        ButtonGroup group = new ButtonGroup();
69
        group.add(rdBtnLandscapePage);
70
        group.add(rdBtnPortraitPage);
71

  
72
        JPanel aux = new JPanel(new GridLayout(2, 2, 10, 0));
73
        aux.setPreferredSize(new Dimension(200, 150));
74
        aux.setSize(200, 150);
75
        aux.add(new JLabel(landscape));
76
        aux.add(new JLabel(portrait));
77
        aux.add(rdBtnLandscapePage);
78
        aux.add(rdBtnPortraitPage);
79

  
80
        addComponent(new JLabel(PluginServices.getText(this,
81
            "options.layout.paper_properties.paper_direction")));
82
        addComponent("", aux);
83
        addComponent(chkCustomMargins =
84
            new JCheckBox(PluginServices.getText(this, "personalizar_margenes")));
85

  
86
        JPanel aux2 = new JPanel(new GridLayout(2, 4, 10, 3));
87
        aux2.add(new JLabel(PluginServices.getText(this, "Superior")));
88
        aux2.add(txtTopMargin = new JTextField(10));
89
        aux2.add(new JLabel(PluginServices.getText(this, "Izquierdo")));
90
        aux2.add(txtLeftMargin = new JTextField(10));
91
        aux2.add(new JLabel(PluginServices.getText(this, "Inferior")));
92
        aux2.add(txtBottomMargin = new JTextField(10));
93
        aux2.add(new JLabel(PluginServices.getText(this, "Derecho")));
94
        aux2.add(txtRightMargin = new JTextField(10));
95
        addComponent("", aux2);
96
    }
97

  
98
    public void storeValues() throws StoreException {
99
        // TODO Auto-generated method stub
100

  
101
    }
102

  
103
    public void setChangesApplied() {
104
        // TODO Auto-generated method stub
105

  
106
    }
107

  
108
    public String getID() {
109
        return id;
110
    }
111

  
112
    public String getTitle() {
113
        return PluginServices.getText(this,
114
            "options.layout.paper_properties.title");
115
    }
116

  
117
    public JPanel getPanel() {
118
        return this;
119
    }
120

  
121
    public void initializeValues() {
122
        // TODO Auto-generated method stub
123

  
124
    }
125

  
126
    public void initializeDefaults() {
127
        rdBtnLandscapePage.setSelected(FACTORY_DEFAULT_LANDSCAPED_PAGE);
128
        rdBtnPortraitPage.setSelected(!FACTORY_DEFAULT_LANDSCAPED_PAGE);
129
    }
130

  
131
    public ImageIcon getIcon() {
132
        return icon;
133
    }
134

  
135
    public boolean isValueChanged() {
136
        // TODO Auto-generated method stub
137
        return false;
138
    }
139

  
140
}
0 141

  
tags/org.gvsig.app.document.layout2.app-2.0.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/project/documents/layout/DefaultLayoutNotification.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.project.documents.layout;
23

  
24

  
25
/**
26
 * @author gvSIG Team
27
 * @version $Id$
28
 *
29
 */
30
public class DefaultLayoutNotification implements LayoutNotification {
31
    private String type;
32
       
33
    public DefaultLayoutNotification(String type) {
34
        super();
35
        this.type = type;
36
    }
37
    
38
    public String getType() {       
39
        return type;
40
    }
41
}
tags/org.gvsig.app.document.layout2.app-2.0.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/project/documents/layout/contextmenu/gui/SelectAllLayoutMenuEntry.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.project.documents.layout.contextmenu.gui;
23

  
24
import org.gvsig.andami.PluginServices;
25
import org.gvsig.app.project.documents.layout.LayoutContext;
26
import org.gvsig.app.project.documents.layout.fframes.IFFrame;
27

  
28
/**
29
 * Realiza selecci?n de todos los FFrames del Layout.
30
 * 
31
 * @author Vicente Caballero Navarro
32
 */
33
public class SelectAllLayoutMenuEntry extends AbstractLayoutContextMenuAction {
34

  
35
    public String getGroup() {
36
        return "layout";
37
    }
38

  
39
    public int getGroupOrder() {
40
        return 6;
41
    }
42

  
43
    public int getOrder() {
44
        return 2;
45
    }
46

  
47
    public String getText() {
48
        return PluginServices.getText(this, "seleccionar_todos");
49
    }
50

  
51
    public boolean isEnabled(LayoutContext layoutContext,
52
        IFFrame[] selectedFrames) {
53
        return true;
54
    }
55

  
56
    public boolean isVisible(LayoutContext layoutContext,
57
        IFFrame[] selectedFrames) {
58
        if (!(getLayout().getLayoutControl().getGeometryAdapter().getPoints().length > 0))
59
            return true;
60
        return false;
61
    }
62

  
63
    public void execute(LayoutContext layoutContext, IFFrame[] selectedFrames) {
64
        IFFrame[] fframes = layoutContext.getFFrames();
65
        for (int i = fframes.length - 1; i >= 0; i--) {
66
            IFFrame fframe = fframes[i];
67
            fframe.setSelected(true);
68
        }
69
        layoutContext.notifAllObservers();
70
    }
71
}
tags/org.gvsig.app.document.layout2.app-2.0.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/project/documents/layout/contextmenu/gui/TerminateLayoutMenuEntry.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.project.documents.layout.contextmenu.gui;
23

  
24
import org.gvsig.andami.PluginServices;
25
import org.gvsig.app.project.documents.layout.LayoutContext;
26
import org.gvsig.app.project.documents.layout.fframes.IFFrame;
27
import org.gvsig.app.project.documents.layout.tools.listener.ILayoutGraphicListener;
28

  
29
/**
30
 * Termina los graficos que se esten insertando sobre el Layout.
31
 * 
32
 * @author Vicente Caballero Navarro
33
 */
34
public class TerminateLayoutMenuEntry extends AbstractLayoutContextMenuAction {
35

  
36
    public String getGroup() {
37
        return "geometries";
38
    }
39

  
40
    public int getGroupOrder() {
41
        return 3;
42
    }
43

  
44
    public int getOrder() {
45
        return 1;
46
    }
47

  
48
    public String getText() {
49
        return PluginServices.getText(this, "terminar");
50
    }
51

  
52
    public boolean isEnabled(LayoutContext layoutContext,
53
        IFFrame[] selectedFrames) {
54
        return true;
55
    }
56

  
57
    public boolean isVisible(LayoutContext layoutContext,
58
        IFFrame[] selectedFrames) {
59
        String currentLayout = getLayout().getLayoutControl().getCurrentTool();
60
        if ((currentLayout.equals("layoutaddpolyline") || currentLayout
61
            .equals("layoutaddpolygon"))
62
            && getLayout().getLayoutControl().getGeometryAdapter().getPoints().length > 0) {
63
            return true;
64
        }
65
        return false;
66
    }
67

  
68
    public void execute(LayoutContext layoutContext, IFFrame[] selectedFrames) {
69
        if (getLayout().getLayoutControl().getCurrentLayoutTool().getListener() instanceof ILayoutGraphicListener) {
70
            ((ILayoutGraphicListener) getLayout().getLayoutControl()
71
                .getCurrentLayoutTool().getListener()).endGraphic();
72
        }
73
    }
74
}
tags/org.gvsig.app.document.layout2.app-2.0.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/project/documents/layout/contextmenu/gui/BehindLayoutMenuEntry.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.project.documents.layout.contextmenu.gui;
23

  
24
import org.gvsig.andami.PluginServices;
25
import org.gvsig.app.project.documents.layout.LayoutContext;
26
import org.gvsig.app.project.documents.layout.fframes.FFrameGroup;
27
import org.gvsig.app.project.documents.layout.fframes.IFFrame;
28

  
29
/**
30
 * Coloca detr?s de todos los fframes el fframe seleccionado.
31
 * 
32
 * @author Vicente Caballero Navarro
33
 */
34
public class BehindLayoutMenuEntry extends AbstractLayoutContextMenuAction {
35

  
36
    public String getGroup() {
37
        return "position";
38
    }
39

  
40
    public int getGroupOrder() {
41
        return 5;
42
    }
43

  
44
    public int getOrder() {
45
        return 2;
46
    }
47

  
48
    public String getText() {
49
        return PluginServices.getText(this, "colocar_detras");
50
    }
51

  
52
    public boolean isEnabled(LayoutContext layoutContext,
53
        IFFrame[] selectedFrames) {
54
        return true;
55
    }
56

  
57
    public boolean isVisible(LayoutContext layoutContext,
58
        IFFrame[] selectedFrames) {
59
        if (selectedFrames.length == 1
60
            && !(getLayout().getLayoutControl().getGeometryAdapter()
61
                .getPoints().length > 0)) {
62
            return true;
63
        }
64
        return false;
65
    }
66

  
67
    public void execute(LayoutContext layoutContext, IFFrame[] selectedFrames) {
68
        layoutContext.getFrameCommandsRecord().startComplex(
69
            PluginServices.getText(this, "change_behind"));
70
        for (int i = selectedFrames.length - 1; i >= 0; i--) {
71
            IFFrame fframe = selectedFrames[i];
72
            if (fframe instanceof FFrameGroup) {
73
                ((FFrameGroup) fframe).setAt(layoutContext.getAT());
74
            }
75

  
76
            IFFrame fframeAux;
77
            try {
78
                fframeAux = (IFFrame) fframe.clone();
79
                fframeAux.setLevel(layoutContext.getNumBehind());
80
                layoutContext.getFrameCommandsRecord()
81
                    .update(fframe, fframeAux);
82
                fframeAux.getBoundingBox(layoutContext.getAT());
83
            } catch (CloneNotSupportedException e) {
84
                LOG.error("It is not possible clonate the object", e);
85
            }
86

  
87
        }
88
        layoutContext.getFrameCommandsRecord().endComplex();
89
        layoutContext.updateFFrames();
90
        layoutContext.notifAllObservers();
91
    }
92
}
tags/org.gvsig.app.document.layout2.app-2.0.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/project/documents/layout/contextmenu/gui/CopyLayoutMenuEntry.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.project.documents.layout.contextmenu.gui;
23

  
24
import org.gvsig.andami.PluginServices;
25
import org.gvsig.andami.messages.NotificationManager;
26
import org.gvsig.app.project.documents.layout.LayoutContext;
27
import org.gvsig.app.project.documents.layout.LayoutKeyEvent;
28
import org.gvsig.app.project.documents.layout.fframes.IFFrame;
29

  
30
/**
31
 * Copia el FFrame seleccionado.
32
 * 
33
 * @author Vicente Caballero Navarro
34
 */
35
public class CopyLayoutMenuEntry extends AbstractLayoutContextMenuAction {
36

  
37
    public String getGroup() {
38
        return "copypaste";
39
    }
40

  
41
    public int getGroupOrder() {
42
        return 4;
43
    }
44

  
45
    public int getOrder() {
46
        return 1;
47
    }
48

  
49
    public String getText() {
50
        return PluginServices.getText(this, "copy");
51
    }
52

  
53
    public boolean isEnabled(LayoutContext layoutContext,
54
        IFFrame[] selectedFrames) {
55
        return true;
56
    }
57

  
58
    public boolean isVisible(LayoutContext layoutContext,
59
        IFFrame[] selectedFrames) {
60
        if (selectedFrames.length == 1
61
            && !(getLayout().getLayoutControl().getGeometryAdapter()
62
                .getPoints().length > 0))
63
            return true;
64
        return false;
65
    }
66

  
67
    public void execute(LayoutContext layoutContext, IFFrame[] selectedFrames) {
68
        try {
69
            LayoutKeyEvent.copy(getLayout());
70
        } catch (CloneNotSupportedException e) {
71
            NotificationManager.addError(e);
72
        }
73
    }
74
}
tags/org.gvsig.app.document.layout2.app-2.0.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/project/documents/layout/contextmenu/gui/CutLayoutMenuEntry.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.project.documents.layout.contextmenu.gui;
23

  
24
import org.gvsig.andami.PluginServices;
25
import org.gvsig.andami.messages.NotificationManager;
26
import org.gvsig.app.project.documents.layout.LayoutContext;
27
import org.gvsig.app.project.documents.layout.LayoutKeyEvent;
28
import org.gvsig.app.project.documents.layout.fframes.IFFrame;
29

  
30
/**
31
 * Corta el FFrame seleccionado.
32
 * 
33
 * @author Vicente Caballero Navarro
34
 */
35
public class CutLayoutMenuEntry extends AbstractLayoutContextMenuAction {
36

  
37
    public String getGroup() {
38
        return "copypaste";
39
    }
40

  
41
    public int getGroupOrder() {
42
        return 4;
43
    }
44

  
45
    public int getOrder() {
46
        return 3;
47
    }
48

  
49
    public String getText() {
50
        return PluginServices.getText(this, "cut");
51
    }
52

  
53
    public boolean isEnabled(LayoutContext layoutContext,
54
        IFFrame[] selectedFrames) {
55
        return true;
56
    }
57

  
58
    public boolean isVisible(LayoutContext layoutContext,
59
        IFFrame[] selectedFrames) {
60
        if (selectedFrames.length == 1
61
            && !(getLayout().getLayoutControl().getGeometryAdapter()
62
                .getPoints().length > 0))
63
            return true;
64
        return false;
65
    }
66

  
67
    public void execute(LayoutContext layoutContext, IFFrame[] selectedFrames) {
68
        try {
69
            LayoutKeyEvent.cut(getLayout());
70
        } catch (CloneNotSupportedException e) {
71
            NotificationManager.addError(e);
72
        }
73
    }
74
}
tags/org.gvsig.app.document.layout2.app-2.0.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/project/documents/layout/contextmenu/gui/PasteLayoutMenuEntry.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.project.documents.layout.contextmenu.gui;
23

  
24
import org.gvsig.andami.PluginServices;
25
import org.gvsig.andami.messages.NotificationManager;
26
import org.gvsig.app.project.documents.layout.LayoutContext;
27
import org.gvsig.app.project.documents.layout.LayoutKeyEvent;
28
import org.gvsig.app.project.documents.layout.fframes.IFFrame;
29

  
30
/**
31
 * Pega el FFrame ya copiado previamente.
32
 * 
33
 * @author Vicente Caballero Navarro
34
 */
35
public class PasteLayoutMenuEntry extends AbstractLayoutContextMenuAction {
36

  
37
    public String getGroup() {
38
        return "copypaste";
39
    }
40

  
41
    public int getGroupOrder() {
42
        return 4;
43
    }
44

  
45
    public int getOrder() {
46
        return 2;
47
    }
48

  
49
    public String getText() {
50
        return PluginServices.getText(this, "paste");
51
    }
52

  
53
    public boolean isEnabled(LayoutContext layoutContext,
54
        IFFrame[] selectedFrames) {
55
        return true;
56
    }
57

  
58
    public boolean isVisible(LayoutContext layoutContext,
59
        IFFrame[] selectedFrames) {
60
        if (LayoutKeyEvent.hasSelection()
61
            && !(getLayout().getLayoutControl().getGeometryAdapter()
62
                .getPoints().length > 0))
63
            return true;
64
        return false;
65
    }
66

  
67
    public void execute(LayoutContext layoutContext, IFFrame[] selectedFrames) {
68
        try {
69
            LayoutKeyEvent.paste(getLayout());
70
        } catch (CloneNotSupportedException e) {
71
            NotificationManager.addError(e);
72
        }
73
    }
74
}
tags/org.gvsig.app.document.layout2.app-2.0.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/project/documents/layout/contextmenu/gui/SimplifyLayoutMenuEntry.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.project.documents.layout.contextmenu.gui;
23

  
24
import org.gvsig.andami.PluginServices;
25
import org.gvsig.app.project.documents.layout.LayoutContext;
26
import org.gvsig.app.project.documents.layout.fframes.FFrameLegend;
27
import org.gvsig.app.project.documents.layout.fframes.IFFrame;
28

  
29
/**
30
 * Realiza una simplificaci?n de una leyenda previamente seleccionada en
31
 * s?mbolos y textos.
32
 * 
33
 * @author Vicente Caballero Navarro
34
 */
35
public class SimplifyLayoutMenuEntry extends AbstractLayoutContextMenuAction {
36

  
37
    public String getGroup() {
38
        return "legend";
39
    }
40

  
41
    public int getGroupOrder() {
42
        return 7;
43
    }
44

  
45
    public int getOrder() {
46
        return 1;
47
    }
48

  
49
    public String getText() {
50
        return PluginServices.getText(this, "simplificar_leyenda");
51
    }
52

  
53
    public boolean isEnabled(LayoutContext layoutContext,
54
        IFFrame[] selectedFrames) {
55
        return true;
56
    }
57

  
58
    public boolean isVisible(LayoutContext layoutContext,
59
        IFFrame[] selectedFrames) {
60
        for (int i = 0; i < selectedFrames.length; i++) {
61
            if (selectedFrames[i] instanceof FFrameLegend
62
                && !(getLayout().getLayoutControl().getGeometryAdapter()
63
                    .getPoints().length > 0)) {
64
                return true;
65
            }
66
        }
67
        return false;
68
    }
69

  
70
    public void execute(LayoutContext layoutContext, IFFrame[] selectedFrames) {
71
        layoutContext.getFrameCommandsRecord().startComplex(
72
            PluginServices.getText(this, "simplify"));
73
        for (int i = selectedFrames.length - 1; i >= 0; i--) {
74
            IFFrame fframe = selectedFrames[i];
75
            if (fframe instanceof FFrameLegend) {
76
                ((FFrameLegend) fframe).toFFrames(layoutContext);
77
            }
78
        }
79
        layoutContext.getFrameCommandsRecord().endComplex();
80
        layoutContext.notifAllObservers();
81
    }
82
}
tags/org.gvsig.app.document.layout2.app-2.0.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/project/documents/layout/contextmenu/gui/RefreshLayoutMenuEntry.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.project.documents.layout.contextmenu.gui;
23

  
24
import org.gvsig.andami.PluginServices;
25
import org.gvsig.app.project.documents.layout.LayoutContext;
26
import org.gvsig.app.project.documents.layout.fframes.IFFrame;
27

  
28
/**
29
 * Refresca todos los fframes del Layout.
30
 * 
31
 * @author Vicente Caballero Navarro
32
 */
33
public class RefreshLayoutMenuEntry extends AbstractLayoutContextMenuAction {
34

  
35
    public String getGroup() {
36
        return "layout";
37
    }
38

  
39
    public int getGroupOrder() {
40
        return 6;
41
    }
42

  
43
    public int getOrder() {
44
        return 3;
45
    }
46

  
47
    public String getText() {
48
        return PluginServices.getText(this, "refrescar");
49
    }
50

  
51
    public boolean isEnabled(LayoutContext layoutContext,
52
        IFFrame[] selectedFrames) {
53
        return true;
54
    }
55

  
56
    public boolean isVisible(LayoutContext layoutContext,
57
        IFFrame[] selectedFrames) {
58
        if (!(getLayout().getLayoutControl().getGeometryAdapter().getPoints().length > 0))
59
            return true;
60
        return false;
61
    }
62

  
63
    public void execute(LayoutContext layoutContext, IFFrame[] selectedFrames) {
64
        layoutContext.fullRefresh();
65
    }
66
}
tags/org.gvsig.app.document.layout2.app-2.0.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/project/documents/layout/contextmenu/gui/BeforeLayoutMenuEntry.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.project.documents.layout.contextmenu.gui;
23

  
24
import org.gvsig.andami.PluginServices;
25
import org.gvsig.app.project.documents.layout.LayoutContext;
26
import org.gvsig.app.project.documents.layout.fframes.FFrameGroup;
27
import org.gvsig.app.project.documents.layout.fframes.IFFrame;
28

  
29
/**
30
 * Coloca delante de todos los fframes el fframe seleccionado.
31
 * 
32
 * @author Vicente Caballero Navarro
33
 */
34
public class BeforeLayoutMenuEntry extends AbstractLayoutContextMenuAction {
35

  
36
    public String getGroup() {
37
        return "position";
38
    }
39

  
40
    public int getGroupOrder() {
41
        return 5;
42
    }
43

  
44
    public int getOrder() {
45
        return 1;
46
    }
47

  
48
    public String getText() {
49
        return PluginServices.getText(this, "colocar_delante");
50
    }
51

  
52
    public boolean isEnabled(LayoutContext layoutContext,
53
        IFFrame[] selectedFrames) {
54
        return true;
55
    }
56

  
57
    public boolean isVisible(LayoutContext layoutContext,
58
        IFFrame[] selectedFrames) {
59
        if (selectedFrames.length == 1
60
            && !(getLayout().getLayoutControl().getGeometryAdapter()
61
                .getPoints().length > 0)) {
62
            return true;
63
        }
64
        return false;
65
    }
66

  
67
    public void execute(LayoutContext layoutContext, IFFrame[] selectedFrames) {
68
        layoutContext.getFrameCommandsRecord().startComplex(
69
            PluginServices.getText(this, "change_before"));
70
        for (int i = selectedFrames.length - 1; i >= 0; i--) {
71
            IFFrame fframe = selectedFrames[i];
72
            if (fframe instanceof FFrameGroup) {
73
                ((FFrameGroup) fframe).setAt(layoutContext.getAT());
74
            }
75

  
76
            IFFrame fframeAux;
77
            try {
78
                fframeAux = (IFFrame) fframe.clone();
79
                fframeAux.setLevel(layoutContext.getNumBefore());
80
                layoutContext.getFrameCommandsRecord()
81
                    .update(fframe, fframeAux);
82
                fframeAux.getBoundingBox(layoutContext.getAT());
83
            } catch (CloneNotSupportedException e) {
84
                LOG.error("It is not possible clonate the object", e);
85
            }
86
        }
87
        layoutContext.getFrameCommandsRecord().endComplex();
88
        layoutContext.updateFFrames();
89
        layoutContext.notifAllObservers();
90
    }
91
}
tags/org.gvsig.app.document.layout2.app-2.0.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/project/documents/layout/contextmenu/gui/AbstractLayoutContextMenuAction.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.project.documents.layout.contextmenu.gui;
23

  
24
import java.util.Map;
25

  
26
import org.slf4j.Logger;
27
import org.slf4j.LoggerFactory;
28

  
29
import org.gvsig.app.project.documents.layout.LayoutContext;
30
import org.gvsig.app.project.documents.layout.fframes.IFFrame;
31
import org.gvsig.app.project.documents.layout.gui.LayoutPanel;
32
import org.gvsig.app.project.documents.view.AbstractContextMenuAction;
33
import org.gvsig.tools.extensionpoint.ExtensionBuilder;
34

  
35
public abstract class AbstractLayoutContextMenuAction extends
36
    AbstractContextMenuAction implements ExtensionBuilder {
37

  
38
    protected static final Logger LOG = LoggerFactory
39
        .getLogger(AbstractLayoutContextMenuAction.class);
40
    protected LayoutPanel layoutPanel;
41

  
42
    public LayoutPanel getLayout() {
43
        return this.layoutPanel;
44
    }
45

  
46
    public void setLayout(LayoutPanel layoutPanel) {
47
        this.layoutPanel = layoutPanel;
48
    }
49

  
50
    public boolean isEnabled(LayoutContext layoutContext,
51
        IFFrame[] selectedFrames) {
52
        return true;
53
    }
54

  
55
    public boolean isVisible(LayoutContext layoutContext,
56
        IFFrame[] selectedFrames) {
57
        return true;
58
    }
59

  
60
    public abstract void execute(LayoutContext layoutContext,
61
        IFFrame[] selectedFrames);
62

  
63
    public Object create() {
64
        return this;
65
    }
66

  
67
    public Object create(Map args) {
68
        // TODO Auto-generated method stub
69
        return this;
70
    }
71

  
72
    public Object create(Object[] args) {
73
        // TODO Auto-generated method stub
74
        return this;
75
    }
76

  
77
    public boolean isEnabled(Object item, Object[] selectedItems) {
78
        return isEnabled((LayoutContext) item, (IFFrame[]) selectedItems);
79
    }
80

  
81
    public boolean isVisible(Object item, Object[] selectedItems) {
82
        return isVisible((LayoutContext) item, (IFFrame[]) selectedItems);
83
    }
84

  
85
    public void execute(Object item, Object[] selectedItems) {
86
        execute((LayoutContext) item, (IFFrame[]) selectedItems);
87

  
88
    }
89

  
90
}
tags/org.gvsig.app.document.layout2.app-2.0.116/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/project/documents/layout/contextmenu/gui/PositionLayoutMenuEntry.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.project.documents.layout.contextmenu.gui;
23

  
24
import org.gvsig.andami.PluginServices;
25
import org.gvsig.app.project.documents.layout.LayoutContext;
26
import org.gvsig.app.project.documents.layout.fframes.IFFrame;
27
import org.gvsig.app.project.documents.layout.gui.dialogs.FPositionDialog;
28

  
29
/**
30
 * Modifica la posici?n y tama?o del fframe seleccionado.
31
 * 
32
 * @author Vicente Caballero Navarro
33
 */
34
public class PositionLayoutMenuEntry extends AbstractLayoutContextMenuAction {
35

  
36
    public String getGroup() {
37
        return "position";
38
    }
39

  
40
    public int getGroupOrder() {
41
        return 5;
42
    }
43

  
44
    public int getOrder() {
45
        return 3;
46
    }
47

  
48
    public String getText() {
49
        return PluginServices.getText(this, "tamano_posicion");
50
    }
51

  
52
    public boolean isEnabled(LayoutContext layoutContext,
53
        IFFrame[] selectedFrames) {
54
        return true;
55
    }
56

  
57
    public boolean isVisible(LayoutContext layoutContext,
58
        IFFrame[] selectedFrames) {
59
        if (selectedFrames.length == 1
60
            && !(getLayout().getLayoutControl().getGeometryAdapter()
61
                .getPoints().length > 0)) {
62
            return true;
63
        }
64
        return false;
65
    }
66

  
67
    public void execute(LayoutContext layoutContext, IFFrame[] selectedFrames) {
68
        if (selectedFrames.length != 0) {
69
            for (int i = 0; i < selectedFrames.length; i++) {
70
                FPositionDialog positiondialog =
71
                    new FPositionDialog(getLayout(), selectedFrames[i]);
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff