Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / extensions / org.gvsig.installer / org.gvsig.installer.swing / org.gvsig.installer.swing.impl / src / main / java / org / gvsig / installer / swing / impl / DefaultJShowPackageStatusAndAskContinuePanel.java @ 37598

History | View | Annotate | Download (3.49 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.InstallerManager;
20
import org.gvsig.installer.lib.api.PackageInfo;
21
import org.gvsig.installer.swing.api.SwingInstallerManager;
22
import org.gvsig.installer.swing.api.execution.JShowPackageStatusAndAskContinuePanel;
23

    
24
public class DefaultJShowPackageStatusAndAskContinuePanel extends
25
                JShowPackageStatusAndAskContinuePanel implements ActionListener {
26

    
27
        private static final long serialVersionUID = -3142143854199963997L;
28
        private List<String> packages;
29
        private boolean doCancel = true;
30
        DefaultSwingInstallerManager swingInstallerManager;
31

    
32
        public DefaultJShowPackageStatusAndAskContinuePanel(
33
                        SwingInstallerManager manager, List<PackageInfo> packages,
34
                        String message) {
35
                this.swingInstallerManager = (DefaultSwingInstallerManager) manager;
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
                        if (!pkg.isOfficial()) {
45
                                this.packages.add(pkg.getName() + " ("
46
                                                + swingInstallerManager.getText("_not_official") + ")");
47
                        } else if (!InstallerManager.STATE.FINAL.equalsIgnoreCase(pkg
48
                                        .getState())) {
49
                                this.packages.add(pkg.getName() + " (" + pkg.getState() + ")");
50
                        }
51
                }
52
        }
53

    
54
        private void createUI(SwingInstallerManager manager, String message) {
55
                this.setLayout(new BorderLayout());
56

    
57
                JButton cancelButton = new JButton(swingInstallerManager
58
                                .getText("_cancel"));
59
                cancelButton.setActionCommand("cancel");
60
                cancelButton.addActionListener(this);
61
                //
62
                final JButton continueButton = new JButton(swingInstallerManager
63
                                .getText("_continue"));
64
                continueButton.setActionCommand("continue");
65
                continueButton.addActionListener(this);
66

    
67
                JList list = new JList(this.packages.toArray());
68

    
69
                JScrollPane listScroller = new JScrollPane(list);
70
                listScroller.setPreferredSize(new Dimension(250, 80));
71
                listScroller.setAlignmentX(LEFT_ALIGNMENT);
72

    
73
                JPanel listPane = new JPanel();
74
                listPane.setLayout(new BoxLayout(listPane, BoxLayout.PAGE_AXIS));
75
                JLabel label = new JLabel(message);
76
                label.setLabelFor(list);
77
                listPane.add(label);
78
                listPane.add(Box.createRigidArea(new Dimension(0, 5)));
79
                listPane.add(listScroller);
80
                listPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
81

    
82
                JPanel buttonPane = new JPanel();
83
                buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS));
84
                buttonPane.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10));
85
                buttonPane.add(Box.createHorizontalGlue());
86
                buttonPane.add(cancelButton);
87
                buttonPane.add(Box.createRigidArea(new Dimension(10, 0)));
88
                buttonPane.add(continueButton);
89

    
90
                this.add(listPane, BorderLayout.CENTER);
91
                this.add(buttonPane, BorderLayout.PAGE_END);
92
        }
93

    
94
        public boolean cancelled() {
95
                return doCancel;
96
        }
97

    
98
        public boolean needShow() {
99
                return this.packages.size() > 0;
100
        }
101

    
102
        public void actionPerformed(ActionEvent e) {
103
                if ("cancel".equals(e.getActionCommand())) {
104
                        doCancel = true;
105
                } else {
106
                        doCancel = false;
107
                }
108
                this.setVisible(false);
109
        }
110
}