Statistics
| Revision:

svn-gvsig-desktop / tags / v2_0_0_Build_2059 / extensions / org.gvsig.installer / org.gvsig.installer.swing / org.gvsig.installer.swing.impl / src / main / java / org / gvsig / installer / swing / impl / DefaultJShowPackageStatusAndAskContinuePanel.java @ 39328

History | View | Annotate | Download (3.98 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 {
48
                            
49
                            if (InstallerManager.STATE.FINAL.equalsIgnoreCase(pkg.getState())) {
50
                                continue;
51
                            } else if (InstallerManager.STATE.TESTING.equalsIgnoreCase(pkg.getState())) {
52
                                continue;
53
                } else if (pkg.getState().toLowerCase().startsWith(InstallerManager.STATE.RC.toLowerCase())) {
54
                    continue;
55
                } else if (pkg.getState().toLowerCase().startsWith(InstallerManager.STATE.BETA.toLowerCase())) {
56
                    continue;
57
                } else {
58
                    this.packages.add(pkg.getName() + " (" + pkg.getState() + ")");
59
                }
60
                        }
61
                }
62
        }
63

    
64
        private void createUI(SwingInstallerManager manager, String message) {
65
                this.setLayout(new BorderLayout());
66

    
67
                JButton cancelButton = new JButton(swingInstallerManager
68
                                .getText("_cancel"));
69
                cancelButton.setActionCommand("cancel");
70
                cancelButton.addActionListener(this);
71
                //
72
                final JButton continueButton = new JButton(swingInstallerManager
73
                                .getText("_continue"));
74
                continueButton.setActionCommand("continue");
75
                continueButton.addActionListener(this);
76

    
77
                JList list = new JList(this.packages.toArray());
78

    
79
                JScrollPane listScroller = new JScrollPane(list);
80
                listScroller.setPreferredSize(new Dimension(250, 80));
81
                listScroller.setAlignmentX(LEFT_ALIGNMENT);
82

    
83
                JPanel listPane = new JPanel();
84
                listPane.setLayout(new BoxLayout(listPane, BoxLayout.PAGE_AXIS));
85
                JLabel label = new JLabel(message);
86
                label.setLabelFor(list);
87
                listPane.add(label);
88
                listPane.add(Box.createRigidArea(new Dimension(0, 5)));
89
                listPane.add(listScroller);
90
                listPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
91

    
92
                JPanel buttonPane = new JPanel();
93
                buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS));
94
                buttonPane.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10));
95
                buttonPane.add(Box.createHorizontalGlue());
96
                buttonPane.add(cancelButton);
97
                buttonPane.add(Box.createRigidArea(new Dimension(10, 0)));
98
                buttonPane.add(continueButton);
99

    
100
                this.add(listPane, BorderLayout.CENTER);
101
                this.add(buttonPane, BorderLayout.PAGE_END);
102
        }
103

    
104
        @Override
105
        public boolean cancelled() {
106
                return doCancel;
107
        }
108

    
109
        @Override
110
        public boolean needShow() {
111
                return this.packages.size() > 0;
112
        }
113

    
114
        public void actionPerformed(ActionEvent e) {
115
                if ("cancel".equals(e.getActionCommand())) {
116
                        doCancel = true;
117
                } else {
118
                        doCancel = false;
119
                }
120
                this.setVisible(false);
121
        }
122
}