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 @ 1608

History | View | Annotate | Download (3.81 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.Project;
17
import org.gvsig.app.project.documents.Document;
18
import org.gvsig.app.project.documents.layout.LayoutDocument;
19
import org.gvsig.app.project.documents.layout.report.LayoutReportActionParameters;
20
import org.gvsig.tools.ToolsLocator;
21
import org.gvsig.tools.future.FutureUtils;
22
import org.gvsig.tools.i18n.I18nManager;
23
import org.gvsig.tools.swing.api.ToolsSwingLocator;
24
import org.gvsig.tools.swing.api.windowmanager.Dialog;
25
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
26
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
27

    
28
/**
29
 *
30
 * @author fdiaz
31
 */
32
public class ConfigureReportFromLayoutExtension extends Extension {
33

    
34
    @Override
35
    public void initialize() {
36
    }
37

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

    
47
    @Override
48
    public boolean isEnabled() {
49
        Project currentProject = ApplicationLocator.getProjectManager().getCurrentProject();
50
        if(currentProject == null){
51
            return false;
52
        }
53
        List<Document> layouts = currentProject.getDocuments(LayoutDocument.class);
54
        return layouts != null && !layouts.isEmpty();
55
    }
56

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

    
89

    
90
                    case WindowManager_v2.BUTTON_CANCEL:
91
                        ((JComponent)dialog).setVisible(false);
92
                        break;
93
                }
94
            }
95

    
96
        });
97
        panel.setDialog(dialog);
98
        dialog.show(WindowManager.MODE.WINDOW, 
99
                Collections.singletonMap("align", GridBagConstraints.CENTER)
100
        );    
101
    }
102
    
103
}