Statistics
| Revision:

root / tags / v2_0_0_Build_2050 / extensions / org.gvsig.installer / org.gvsig.installer.swing / org.gvsig.installer.swing.impl / src / main / java / org / gvsig / installer / swing / impl / DefaultJShowRequiredPackagesAndAskContinuePanel.java @ 38692

History | View | Annotate | Download (3.07 KB)

1
package org.gvsig.installer.swing.impl;
2

    
3
import java.awt.BorderLayout;
4
import java.awt.Dimension;
5
import java.awt.event.ActionEvent;
6
import java.awt.event.ActionListener;
7
import java.util.ArrayList;
8
import java.util.List;
9

    
10
import javax.swing.BorderFactory;
11
import javax.swing.Box;
12
import javax.swing.BoxLayout;
13
import javax.swing.JButton;
14
import javax.swing.JLabel;
15
import javax.swing.JList;
16
import javax.swing.JPanel;
17
import javax.swing.JScrollPane;
18

    
19
import org.gvsig.installer.lib.api.PackageInfo;
20
import org.gvsig.installer.swing.api.SwingInstallerManager;
21
import org.gvsig.installer.swing.api.execution.JShowRequiredPackagesAndAskContinuePanel;
22

    
23
public class DefaultJShowRequiredPackagesAndAskContinuePanel extends
24
                JShowRequiredPackagesAndAskContinuePanel implements ActionListener {
25

    
26
        /**
27
         * 
28
         */
29
        private static final long serialVersionUID = 2135985029410816305L;
30
        private List<String> packages;
31
        private boolean doCancel = true;
32

    
33
        public DefaultJShowRequiredPackagesAndAskContinuePanel(
34
                        SwingInstallerManager manager, List<PackageInfo> packages,
35
                        String message) {
36
                this.buildPackageList(packages);
37
                this.createUI(manager, message);
38
        }
39

    
40
        private void buildPackageList(List<PackageInfo> packages) {
41
                this.packages = new ArrayList<String>();
42
                for (int i = 0; i < packages.size(); i++) {
43
                        PackageInfo pkg = packages.get(i);
44
                        this.packages.add(pkg.getName());
45
                }
46
        }
47

    
48
        private void createUI(SwingInstallerManager manager, String message) {
49
                this.setLayout(new BorderLayout());
50

    
51
                JButton cancelButton = new JButton(manager.getText("_cancel"));
52
                cancelButton.setActionCommand("cancel");
53
                cancelButton.addActionListener(this);
54
                //
55
                final JButton continueButton = new JButton(manager.getText("_continue"));
56
                continueButton.setActionCommand("continue");
57
                continueButton.addActionListener(this);
58

    
59
                JList list = new JList(this.packages.toArray());
60

    
61
                JScrollPane listScroller = new JScrollPane(list);
62
                listScroller.setPreferredSize(new Dimension(250, 80));
63
                listScroller.setAlignmentX(LEFT_ALIGNMENT);
64

    
65
                JPanel listPane = new JPanel();
66
                listPane.setLayout(new BoxLayout(listPane, BoxLayout.PAGE_AXIS));
67
                JLabel label = new JLabel(message);
68
                label.setLabelFor(list);
69
                listPane.add(label);
70
                listPane.add(Box.createRigidArea(new Dimension(0, 5)));
71
                listPane.add(listScroller);
72
                listPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
73

    
74
                JPanel buttonPane = new JPanel();
75
                buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS));
76
                buttonPane.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10));
77
                buttonPane.add(Box.createHorizontalGlue());
78
                buttonPane.add(cancelButton);
79
                buttonPane.add(Box.createRigidArea(new Dimension(10, 0)));
80
                buttonPane.add(continueButton);
81

    
82
                this.add(listPane, BorderLayout.CENTER);
83
                this.add(buttonPane, BorderLayout.PAGE_END);
84
        }
85

    
86
        @Override
87
        public boolean cancelled() {
88
                return doCancel;
89
        }
90

    
91
        @Override
92
        public boolean needShow() {
93
                return this.packages.size() > 0;
94
        }
95

    
96
        public void actionPerformed(ActionEvent e) {
97
                if ("cancel".equals(e.getActionCommand())) {
98
                        doCancel = true;
99
                } else {
100
                        doCancel = false;
101
                }
102
                this.setVisible(false);
103
        }
104
}