1
16package org.tp23.antinstaller.renderer.swing;
17
18import java.awt.BorderLayout;
19import java.awt.Dimension;
20import java.awt.Insets;
21import java.awt.Rectangle;
22import java.awt.event.ActionEvent;
23import java.awt.event.ActionListener;
24import java.io.PrintStream;
25import java.util.ResourceBundle;
26
27import javax.swing.BorderFactory;
28import javax.swing.JLabel;
29import javax.swing.JPanel;
30import javax.swing.JScrollPane;
31import javax.swing.JTabbedPane;
32import javax.swing.JToggleButton;
33
34import org.tp23.antinstaller.page.ProgressPage;
35import org.tp23.antinstaller.renderer.AntOutputRenderer;
36import org.tp23.gui.widget.SystemOutJTextArea;
37
45public class ProgressPageRenderer
46 extends SwingPageRenderer
47 implements AntOutputRenderer {
48
49 private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.Res");
50 private static final int MESSAGE_PANEL_HEIGHT = 30;
51
52 private JPanel contentPanel = new JPanel();
53
54 private JTabbedPane jTabbedPane = new JTabbedPane();
55 private JPanel messagesPanel = new JPanel();
56 private BorderLayout borderLayout1 = new BorderLayout();
57 private JToggleButton jToggleButton = new JToggleButton();
58 private JLabel feedBackLabel = new JLabel();
59
60 private SystemOutJTextArea outPanel = new SystemOutJTextArea();
61 private SystemOutJTextArea errPanel = new SystemOutJTextArea();
62
63 private boolean showTargets = true;
64 private JScrollPane progressScrollPane = new JScrollPane();;
65 private ProgressPanel progressPanel;
66
67 public ProgressPageRenderer() {
68 errPanel.setAsSystemErr();
69 outPanel.setAsSystemOut();
70 }
71
75 public PrintStream getErr() {
76 return errPanel.getOut();
77 }
78
82 public PrintStream getOut() {
83 return outPanel.getOut();
84 }
85
86
87
90 public void instanceInit() {
91 showTargets = ((ProgressPage)page).isShowTargets();
92 contentPanel.setLayout(borderLayout1);
93 this.add(contentPanel,BorderLayout.CENTER);
94
95
97 messagesPanel.setLayout(null);
98 Dimension messPanelSize = new Dimension(SizeConstants.PAGE_WIDTH,MESSAGE_PANEL_HEIGHT);
99 messagesPanel.setSize(messPanelSize);
00 messagesPanel.setPreferredSize(messPanelSize);
01 messagesPanel.setMaximumSize(messPanelSize);
02 messagesPanel.setMinimumSize(messPanelSize);
03
04 feedBackLabel.setText(res.getString("click")+" "+ctx.getInstaller().getFinishButtonText()+" "+res.getString("toContinue"));
06 feedBackLabel.setBounds(new Rectangle(115, 7, 272, 22));
07 jToggleButton.setText(res.getString("showDetails"));
08 jToggleButton.setBounds(new Rectangle(5, 7, 104, 22));
09 jToggleButton.setMargin(new Insets(0,0,0,0));
10 messagesPanel.add(jToggleButton, null);
11 messagesPanel.add(feedBackLabel, null);
12 jToggleButton.addActionListener(new ActionListener(){
13 public void actionPerformed(ActionEvent e) {
14 if(jToggleButton.isSelected()){
15 if(showTargets){
16 contentPanel.remove(progressScrollPane);
17 }
18 contentPanel.add(jTabbedPane, BorderLayout.CENTER);
19 contentPanel.doLayout();
20 contentPanel.repaint();
21 }
22 else {
23 contentPanel.remove(jTabbedPane);
24 if(showTargets){
25 contentPanel.add(progressScrollPane, BorderLayout.CENTER);
26 progressScrollPane.revalidate();
27 }
28 contentPanel.doLayout();
29 contentPanel.repaint();
30 }
31 }
32 });
33 jToggleButton.setIcon(getImage("/resources/icons/showdetails.png"));
34 contentPanel.add(messagesPanel, BorderLayout.NORTH);
35
36 if(showTargets){
37 progressScrollPane.setBorder(BorderFactory.createEmptyBorder(10,5,5,5));
38 contentPanel.add(progressScrollPane, BorderLayout.CENTER);
39 }
40 jTabbedPane.add(res.getString("output"), outPanel);
41 jTabbedPane.add(res.getString("errors"), errPanel);
42
47 jTabbedPane.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
49 contentPanel.setMaximumSize(new Dimension(SizeConstants.PAGE_WIDTH, Integer.MAX_VALUE));
50 contentPanel.setMinimumSize(new Dimension(SizeConstants.PAGE_WIDTH, 100));
51 contentPanel.setPreferredSize(new Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.PAGE_HEIGHT-100));
52
55 this.getNextButton().setEnabled(false);
56 this.getFinishButton().setText(ctx.getInstaller().getFinishButtonText());
57 this.getFinishButton().setEnabled(true);
58 }
59
60 public void setContext(SwingInstallerContext swingCtx){
61 super.setContext(swingCtx);
62 if(showTargets){
63 progressPanel = new ProgressPanel(swingCtx.getInstallerContext());
64 progressScrollPane.getViewport().add(progressPanel);
65 this.swingCtx.setProgressPanel(progressPanel);
66 }
67 this.swingCtx.setFeedBackLabel(feedBackLabel);
68 }
69
70
71
74 public void updateInputFields() {
75
76 }
77
78
79
80
85 public boolean validateFields() {
86 return true;
87 }
88
89
90
91
94 public void updateDefaultValues() {
95 }
96}
97