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 | 1594 | fdiaz | /*
|
---|---|---|---|
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 | 1600 | fdiaz | import org.gvsig.app.project.Project; |
17 | 1594 | fdiaz | import org.gvsig.app.project.documents.Document; |
18 | import org.gvsig.app.project.documents.layout.LayoutDocument; |
||
19 | 1608 | fdiaz | import org.gvsig.app.project.documents.layout.report.LayoutReportActionParameters; |
20 | 1594 | fdiaz | 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 | 1600 | fdiaz | 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 | 1594 | fdiaz | } |
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 | 1608 | fdiaz | LayoutReportActionParameters params = LayoutReportActionParameters.create(); |
83 | 1594 | fdiaz | panel.fetch(params); |
84 | 1608 | fdiaz | if(panel.doConfigureReportFromLayout(params, panel.getLayoutDocument(), panel.getStore())){
|
85 | 1594 | fdiaz | ((JComponent)dialog).setVisible(false); |
86 | 1608 | fdiaz | } |
87 | 1594 | fdiaz | break;
|
88 | |||
89 | 1608 | fdiaz | |
90 | 1594 | fdiaz | 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 | } |