Statistics
| Revision:

svn-document-layout / trunk / org.gvsig.app.document.layout2.app / org.gvsig.app.document.layout2.app.mainplugin / src / main / java / org / gvsig / app / extension / reportfromlayout / ConfigureReportFromLayoutExtension.java @ 1594

History | View | Annotate | Download (3.52 KB)

1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.app.extension.reportfromlayout;
7

    
8
import java.awt.GridBagConstraints;
9
import java.awt.event.ActionEvent;
10
import java.awt.event.ActionListener;
11
import java.util.Collections;
12
import java.util.List;
13
import javax.swing.JComponent;
14
import org.gvsig.andami.plugins.Extension;
15
import org.gvsig.app.ApplicationLocator;
16
import org.gvsig.app.project.documents.Document;
17
import org.gvsig.app.project.documents.layout.LayoutDocument;
18
import org.gvsig.tools.ToolsLocator;
19
import org.gvsig.tools.future.FutureUtils;
20
import org.gvsig.tools.i18n.I18nManager;
21
import org.gvsig.tools.swing.api.ToolsSwingLocator;
22
import org.gvsig.tools.swing.api.windowmanager.Dialog;
23
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
24
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
25

    
26
/**
27
 *
28
 * @author fdiaz
29
 */
30
public class ConfigureReportFromLayoutExtension extends Extension {
31

    
32
    @Override
33
    public void initialize() {
34
    }
35

    
36
    @Override
37
    public void execute(String actionCommand) {
38
        switch(actionCommand.toLowerCase()) {
39
        case "layout-configurereportfromlayout":
40
            doConfigureReportFromLayout();
41
            break;
42
        }
43
    }
44

    
45
    @Override
46
    public boolean isEnabled() {
47
        List<Document> layouts = ApplicationLocator.getProjectManager().getCurrentProject().getDocuments(LayoutDocument.class);
48
        return !layouts.isEmpty();
49
    }
50

    
51
    @Override
52
    public boolean isVisible() {
53
        return FutureUtils.use("LAYOUT_REPORT");
54
    }
55
    
56
    @SuppressWarnings("Convert2Lambda")
57
    private void doConfigureReportFromLayout() {
58
        WindowManager_v2 windowManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
59
        ConfigureReportFromLayout panel = new ConfigureReportFromLayout();
60
        I18nManager i18n = ToolsLocator.getI18nManager();
61
        Dialog dialog = windowManager.createDialog(
62
                panel,
63
                i18n.getTranslation("_Configure_report_from_layout"), 
64
                i18n.getTranslation("_Configure_a_report_from_a_layout"),
65
                WindowManager_v2.BUTTONS_OK_CANCEL
66
        );
67
        dialog.setAutoclose(false);
68
        dialog.setButtonLabel(WindowManager_v2.BUTTON_OK, i18n.getTranslation("_Configure_report"));
69
        dialog.setButtonLabel(WindowManager_v2.BUTTON_CANCEL, i18n.getTranslation("_Close"));
70
        dialog.addActionListener(new ActionListener() {
71
            @Override
72
            public void actionPerformed(ActionEvent e) {
73
                switch( dialog.getAction()) {
74
                    case WindowManager_v2.BUTTON_OK:
75
                        dialog.setButtonEnabled(WindowManager_v2.BUTTON_OK, false);                        
76
                        ConfigureReportFromLayoutParameters params = new ConfigureReportFromLayoutParametersImpl();
77
                        panel.fetch(params);
78
                        if(panel.doConfigureReportFromLayout(params)){
79
                            ((JComponent)dialog).setVisible(false);
80
                        };
81
                        break;
82

    
83
                    case WindowManager_v2.BUTTON_CANCEL:
84
                        ((JComponent)dialog).setVisible(false);
85
                        break;
86
                }
87
            }
88

    
89
        });
90
        panel.setDialog(dialog);
91
        dialog.show(WindowManager.MODE.WINDOW, 
92
                Collections.singletonMap("align", GridBagConstraints.CENTER)
93
        );    
94
    }
95
    
96
}