Statistics
| Revision:

gvsig-tools / org.gvsig.tools / library / trunk / org.gvsig.tools / org.gvsig.tools.swing / org.gvsig.tools.swing.impl / src / main / java / org / gvsig / tools / swing / impl / windowmanager / DefaultDialog.java @ 1645

History | View | Annotate | Download (6.29 KB)

1
package org.gvsig.tools.swing.impl.windowmanager;
2

    
3
import java.awt.BorderLayout;
4
import java.awt.Image;
5
import java.awt.event.ActionEvent;
6
import java.awt.event.ActionListener;
7
import javax.swing.JComponent;
8
import org.gvsig.tools.ToolsLocator;
9
import org.gvsig.tools.i18n.I18nManager;
10
import org.gvsig.tools.swing.api.ToolsSwingLocator;
11
import org.gvsig.tools.swing.api.windowmanager.Dialog;
12
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
13
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
14
import static org.gvsig.tools.swing.api.windowmanager.WindowManager_v2.BUTTON_APPLY;
15
import static org.gvsig.tools.swing.api.windowmanager.WindowManager_v2.BUTTON_CANCEL;
16
import static org.gvsig.tools.swing.api.windowmanager.WindowManager_v2.BUTTON_OK;
17
import org.gvsig.tools.swing.impl.DefaultActionListenerSupport;
18

    
19
public class DefaultDialog extends DefaultDialogView implements Dialog {
20

    
21
    private static final long serialVersionUID = -8823659108133528353L;
22

    
23
    protected JComponent contents;
24
    protected String header1;
25
    protected String header2;
26
    protected String title;
27

    
28
    protected int buttons;
29
    protected int action;
30
    protected DefaultActionListenerSupport listeners;
31
    protected Image icon = null;
32
    protected Image image = null;
33
    private WindowManager windowManager = null;
34

    
35
    public DefaultDialog(JComponent contents, String title, String header, int buttons) {
36
        this.contents = contents;
37
        this.title = title;
38
        this.buttons = buttons;
39
        this.action = BUTTON_CANCEL;
40
        this.listeners = new DefaultActionListenerSupport();
41
        this.initComponents();
42
        this.setButtons(buttons);
43
        this.setHeaderLabel(header);
44
    }
45

    
46
    public void setWindowManager(WindowManager windowManager) {
47
        this.windowManager = windowManager;
48
    }
49
    
50
    private void initComponents() {
51
        I18nManager i18nManager = ToolsLocator.getI18nManager();
52
        this.btnAccept.setText(i18nManager.getTranslation("Accept"));
53
        this.btnCancel.setText(i18nManager.getTranslation("Cancel"));
54
        this.btnApply.setText(i18nManager.getTranslation("Apply"));
55
        
56
        this.pnlContents.setLayout(new BorderLayout());
57
        this.pnlContents.add(this.contents, BorderLayout.CENTER);
58

    
59
        this.btnAccept.addActionListener(new ActionListener() {
60
            @Override
61
            public void actionPerformed(ActionEvent ae) {
62
                action = BUTTON_OK;
63
                setVisible(false);
64
                fireActionEvent(new ActionEvent(DefaultDialog.this, BUTTON_OK, "ok"));
65
            }
66
        });
67
        this.btnCancel.addActionListener(new ActionListener() {
68
            @Override
69
            public void actionPerformed(ActionEvent ae) {
70
                action = BUTTON_CANCEL;
71
                setVisible(false);
72
                fireActionEvent(new ActionEvent(DefaultDialog.this, BUTTON_CANCEL, "cancel"));
73
            }
74
        });
75
        this.btnApply.addActionListener(new ActionListener() {
76
            @Override
77
            public void actionPerformed(ActionEvent ae) {
78
                action = BUTTON_APPLY;
79
                fireActionEvent(new ActionEvent(DefaultDialog.this, BUTTON_APPLY, "apply"));
80
            }
81
        });
82
    }
83

    
84
    @Override
85
    public void setHeaderTitle(String header) {
86
        this.header1 = header;
87
        if (this.header1 == null) {
88
            this.lblHeader1.setText("");
89
            this.lblHeader1.setVisible(false);
90
        } else {
91
            this.lblHeader1.setText(this.header1);
92
            this.lblHeader1.setVisible(true);
93
        }
94
    }
95

    
96
    @Override
97
    public void setHeaderLabel(String header) {
98
        this.header2 = header;
99
        if (this.header2 == null) {
100
            this.lblHeader2.setText("");
101
            this.lblHeader2.setVisible(false);
102
        } else {
103
            this.lblHeader2.setText(this.header2);
104
            this.lblHeader2.setVisible(true);
105
        }
106
    }
107

    
108
    @Override
109
    public void setContents(JComponent contents) {
110
        this.contents = contents;
111
        this.pnlContents.removeAll();
112
        this.pnlContents.add(this.contents, BorderLayout.CENTER);
113
    }
114

    
115
    @Override
116
    public int getAction() {
117
        return this.action;
118
    }
119

    
120
    @Override
121
    public void addActionListener(ActionListener listener) {
122
        this.listeners.addActionListener(listener);
123
    }
124

    
125
    @Override
126
    public ActionListener[] getActionListeners() {
127
        return this.listeners.getActionListeners();
128
    }
129

    
130
    @Override
131
    public void removeActionListener(ActionListener listener) {
132
        this.listeners.removeActionListener(listener);
133
    }
134

    
135
    @Override
136
    public void removeAllActionListener() {
137
        this.listeners.removeAllActionListener();
138
    }
139

    
140
    private void fireActionEvent(ActionEvent event) {
141
        this.listeners.fireActionEvent(event);
142
    }
143

    
144
    protected WindowManager getWindowManager() {
145
        if( this.windowManager == null ) {
146
            this.windowManager = ToolsSwingLocator.getWindowManager();
147
        }
148
        return this.windowManager;
149
    }
150
    
151
    @Override
152
    public void show(WindowManager.MODE mode) {
153
        WindowManager winmgr = this.getWindowManager();
154
        if (icon != null && winmgr instanceof WindowManager_v2) {
155
            ((WindowManager_v2) winmgr).showWindow(this, title, mode, icon);
156
        } else {
157
            winmgr.showWindow(this, title, mode);
158
        }
159
    }
160

    
161
    @Override
162
    public void setIcon(Image icon) {
163
        this.icon = icon;
164
    }
165

    
166
    @Override
167
    public void setHeaderImage(Image image) {
168
        this.image = image;
169

    
170
    }
171

    
172
    @Override
173
    public void setButtons(int buttons) {
174
        this.buttons = buttons;
175
        this.btnAccept.setVisible((this.buttons & BUTTON_OK) == BUTTON_OK);
176
        this.btnCancel.setVisible((this.buttons & BUTTON_CANCEL) == BUTTON_CANCEL);
177
        this.btnApply.setVisible((this.buttons & BUTTON_APPLY) == BUTTON_APPLY);
178
    }
179

    
180
    @Override
181
    public void setButtonLabel(int button, String label) {
182
        switch (button) {
183
            case BUTTON_APPLY:
184
                this.btnApply.setText(label);
185
                break;
186
            case BUTTON_OK:
187
                this.btnAccept.setText(label);
188
                break;
189
            case BUTTON_CANCEL:
190
                this.btnCancel.setText(label);
191
                break;
192
        }
193
    }
194

    
195
    @Override
196
    public JComponent asJComponent() {
197
        return this;
198
    }
199
}