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

History | View | Annotate | Download (5.69 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.swing.api.ToolsSwingLocator;
9
import org.gvsig.tools.swing.api.windowmanager.Dialog;
10
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
11
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
12
import static org.gvsig.tools.swing.api.windowmanager.WindowManager_v2.BUTTON_APPLY;
13
import static org.gvsig.tools.swing.api.windowmanager.WindowManager_v2.BUTTON_CANCEL;
14
import static org.gvsig.tools.swing.api.windowmanager.WindowManager_v2.BUTTON_OK;
15
import org.gvsig.tools.swing.impl.DefaultActionListenerSupport;
16

    
17
public class DefaultDialog extends DefaultDialogView implements Dialog {
18

    
19
    private static final long serialVersionUID = -8823659108133528353L;
20

    
21
    protected JComponent contents;
22
    protected String header1;
23
    protected String header2;
24
    protected String title;
25

    
26
    protected int buttons;
27
    protected int action;
28
    protected DefaultActionListenerSupport listeners;
29
    protected Image icon = null;
30
    protected Image image = null;
31

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

    
43
    private void initComponents() {
44
        this.pnlContents.setLayout(new BorderLayout());
45
        this.pnlContents.add(this.contents, BorderLayout.CENTER);
46

    
47
        this.btnAccept.addActionListener(new ActionListener() {
48
            @Override
49
            public void actionPerformed(ActionEvent ae) {
50
                action = BUTTON_OK;
51
                setVisible(false);
52
                fireActionEvent(new ActionEvent(DefaultDialog.this, BUTTON_OK, "ok"));
53
            }
54
        });
55
        this.btnCancel.addActionListener(new ActionListener() {
56
            @Override
57
            public void actionPerformed(ActionEvent ae) {
58
                action = BUTTON_CANCEL;
59
                setVisible(false);
60
                fireActionEvent(new ActionEvent(DefaultDialog.this, BUTTON_CANCEL, "cancel"));
61
            }
62
        });
63
        this.btnApply.addActionListener(new ActionListener() {
64
            @Override
65
            public void actionPerformed(ActionEvent ae) {
66
                action = BUTTON_APPLY;
67
                fireActionEvent(new ActionEvent(DefaultDialog.this, BUTTON_APPLY, "apply"));
68
            }
69
        });
70
    }
71

    
72
    @Override
73
    public void setHeaderTitle(String header) {
74
        this.header1 = header;
75
        if (this.header1 == null) {
76
            this.lblHeader1.setText("");
77
            this.lblHeader1.setVisible(false);
78
        } else {
79
            this.lblHeader1.setText(this.header1);
80
            this.lblHeader1.setVisible(true);
81
        }
82
    }
83

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

    
96
    @Override
97
    public void setContents(JComponent contents) {
98
        this.contents = contents;
99
        this.pnlContents.removeAll();
100
        this.pnlContents.add(this.contents, BorderLayout.CENTER);
101
    }
102

    
103
    @Override
104
    public int getAction() {
105
        return this.action;
106
    }
107

    
108
    @Override
109
    public void addActionListener(ActionListener listener) {
110
        this.listeners.addActionListener(listener);
111
    }
112

    
113
    @Override
114
    public ActionListener[] getActionListeners() {
115
        return this.listeners.getActionListeners();
116
    }
117

    
118
    @Override
119
    public void removeActionListener(ActionListener listener) {
120
        this.listeners.removeActionListener(listener);
121
    }
122

    
123
    @Override
124
    public void removeAllActionListener() {
125
        this.listeners.removeAllActionListener();
126
    }
127

    
128
    @Override
129
    public void fireActionEvent(ActionEvent event) {
130
        this.listeners.fireActionEvent(event);
131
    }
132

    
133
    protected WindowManager getWindowManager() {
134
        return ToolsSwingLocator.getWindowManager();
135
    }
136
    
137
    @Override
138
    public void show(WindowManager.MODE mode) {
139
        WindowManager winmgr = this.getWindowManager();
140
        if (icon != null && winmgr instanceof WindowManager_v2) {
141
            ((WindowManager_v2) winmgr).showWindow(this, title, mode, icon);
142
        } else {
143
            winmgr.showWindow(this, title, mode);
144
        }
145
    }
146

    
147
    @Override
148
    public void setIcon(Image icon) {
149
        this.icon = icon;
150
    }
151

    
152
    @Override
153
    public void setHeaderImage(Image image) {
154
        this.image = image;
155

    
156
    }
157

    
158
    @Override
159
    public void setButtons(int buttons) {
160
        this.buttons = buttons;
161
        this.btnAccept.setVisible((this.buttons & BUTTON_OK) == BUTTON_OK);
162
        this.btnCancel.setVisible((this.buttons & BUTTON_CANCEL) == BUTTON_CANCEL);
163
        this.btnApply.setVisible((this.buttons & BUTTON_APPLY) == BUTTON_APPLY);
164
    }
165

    
166
    @Override
167
    public void setButtonLabel(int button, String label) {
168
        switch (button) {
169
            case BUTTON_APPLY:
170
                this.btnApply.setText(label);
171
                break;
172
            case BUTTON_OK:
173
                this.btnAccept.setText(label);
174
                break;
175
            case BUTTON_CANCEL:
176
                this.btnCancel.setText(label);
177
                break;
178
        }
179
    }
180

    
181
    @Override
182
    public JComponent asJComponent() {
183
        return this;
184
    }
185
}