Revision 1714 trunk/org.gvsig.app.document.layout2.app/org.gvsig.app.document.layout2.app.mainplugin/src/main/java/org/gvsig/app/project/documents/layout/contextmenu/gui/PropertyLayoutMenuEntry.java

View differences:

PropertyLayoutMenuEntry.java
22 22
package org.gvsig.app.project.documents.layout.contextmenu.gui;
23 23

  
24 24
import java.awt.event.ActionEvent;
25
import java.awt.event.ActionListener;
26

  
27 25
import org.gvsig.andami.PluginServices;
28 26
import org.gvsig.app.project.ProjectManager;
29 27
import org.gvsig.app.project.documents.layout.DefaultLayoutManager;
......
32 30
import org.gvsig.app.project.documents.layout.fframes.IFFrame;
33 31
import org.gvsig.app.project.documents.layout.fframes.IFFrameUseFMap;
34 32
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.IFFrameDialog;
35
import org.gvsig.tools.ToolsLocator;
33
import org.gvsig.app.project.documents.layout.fframes.gui.dialogs.IFFramePanel;
36 34
import org.gvsig.tools.swing.api.ToolsSwingLocator;
35
import org.gvsig.tools.swing.api.windowmanager.Dialog;
37 36
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
37
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
38 38

  
39 39
/**
40 40
 * Abre el di?logo de propiedades del FFrame seleccionado.
......
51 51
                DefaultLayoutManager.TYPENAME);
52 52
    }
53 53

  
54
    @Override
54 55
    public String getGroup() {
55 56
        return "layout";
56 57
    }
57 58

  
59
    @Override
58 60
    public int getGroupOrder() {
59 61
        return 6;
60 62
    }
61 63

  
64
    @Override
62 65
    public int getOrder() {
63 66
        return 1;
64 67
    }
65 68

  
69
    @Override
66 70
    public String getText() {
67 71
        return PluginServices.getText(this, "propiedades");
68 72
    }
69 73

  
74
    @Override
70 75
    public boolean isEnabled(LayoutContext layoutContext,
71 76
        IFFrame[] selectedFrames) {
72 77
        return true;
73 78
    }
74 79

  
80
    @Override
75 81
    public boolean isVisible(LayoutContext layoutContext,
76 82
        IFFrame[] selectedFrames) {
77 83
        if (selectedFrames.length == 1
......
80 86
            return true;
81 87
        return false;
82 88
    }
89
    
90
    private void doPanelAccept(LayoutContext layoutContext, IFFrame frame, IFFramePanel panel) {
91
        IFFrame fframeAux = panel.getFFrame();
83 92

  
93
        if (fframeAux != null) {
94
            if (fframeAux instanceof IFFrameUseFMap) {
95
                ((IFFrameUseFMap) fframeAux).refresh();
96
            }
97
            fframeAux.setLevel(frame.getLevel());
98
            fframeAux.setSelected(frame.getSelected() != IFFrame.NOSELECT);
99
            layoutContext.getFrameCommandsRecord().update(frame, fframeAux);
100
            fframeAux.getBoundingBox(layoutContext.getAT());
101
            layoutContext.updateFFrames();
102
            layoutContext.notifAllObservers();
103
        }
104

  
105
    }
106

  
107
    @Override
84 108
    public void execute(final LayoutContext layoutContext, IFFrame[] selectedFrames) {
85 109
        IFFrame[] selecList = layoutContext.getSelectedFFrames();
86 110
        if (selecList.length == 1) {
87 111
            final IFFrame frame = selecList[0];
88
            final IFFrameDialog fframeDialog =
112
            final IFFramePanel panel =
89 113
                layoutManager.createFFrameDialog(frame, layoutPanel, layoutContext.getAT());
90
            if (fframeDialog != null) {
91
                fframeDialog.addActionListener(new ActionListener() {
92

  
93
                    @Override
94
                    public void actionPerformed(ActionEvent e) {
95
                        IFFrame fframeAux = fframeDialog.getFFrame();
96

  
97
                        if (fframeAux != null) {
98
                            if (fframeAux instanceof IFFrameUseFMap)
99
                                ((IFFrameUseFMap) fframeAux).refresh();
100
                            fframeAux.setLevel(frame.getLevel());
101
                            fframeAux.setSelected(frame.getSelected()!=IFFrame.NOSELECT);
102
                            layoutContext.getFrameCommandsRecord().update(frame, fframeAux);
103
                            fframeAux.getBoundingBox(layoutContext.getAT());
104
                            layoutContext.updateFFrames();
105
                            layoutContext.notifAllObservers();
106
                        }
107

  
114
            
115
            if(panel instanceof IFFrameDialog) {
116
                IFFrameDialog fframeDialog = (IFFrameDialog) panel;
117
                fframeDialog.addActionListener((ActionEvent e) -> {
118
                    doPanelAccept(layoutContext, frame, panel);
119
                });
120
                PluginServices.getMDIManager().addWindow(fframeDialog);
121
            } else if (panel != null) {
122
                WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
123
                Dialog dialog = winManager.createDialog(
124
                    panel.asJComponent(),
125
                    panel.getTitle(),
126
                    "", 
127
                    WindowManager_v2.BUTTONS_OK_CANCEL);
128
                dialog.addActionListener((ActionEvent e) -> {
129
                    if(dialog.getAction() == WindowManager_v2.BUTTON_OK) {
130
                        doPanelAccept(layoutContext, frame, panel);
108 131
                    }
109 132
                });
110
                PluginServices.getMDIManager().addWindow(fframeDialog);
133
                dialog.show(WindowManager.MODE.TOOL);
111 134
            }
112 135
        }
113 136
    }

Also available in: Unified diff