source: release-kits/shared/ant-installer/src/org/tp23/antinstaller/renderer/swing/ProgressPageRenderer.java@ 17517

Last change on this file since 17517 was 17517, checked in by oranfry, 16 years ago

fixes to the last change and made the selectinput render more nicely

File size: 6.6 KB
Line 
1/*
2 * Copyright 2005 Paul Hinds
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
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/**
38 *
39 * <p>Copyright: Copyright (c) 2004</p>
40 * <p>Company: tp23</p>
41 * @todo change absolute to Border layout and panels
42 * @author Paul Hinds
43 * @version $Id: ProgressPageRenderer.java,v 1.4 2006/12/21 00:03:00 teknopaul Exp $
44 */
45public class ProgressPageRenderer
46 extends SwingPageRenderer
47 implements AntOutputRenderer {
48
49 private static final int MESSAGE_PANEL_HEIGHT = 30;
50
51 private JPanel contentPanel = new JPanel();
52
53 private JTabbedPane jTabbedPane = new JTabbedPane();
54 private JPanel messagesPanel = new JPanel();
55 private BorderLayout borderLayout1 = new BorderLayout();
56 private JToggleButton jToggleButton = new JToggleButton();
57 private JLabel feedBackLabel = new JLabel();
58
59 private SystemOutJTextArea outPanel = new SystemOutJTextArea();
60 private SystemOutJTextArea errPanel = new SystemOutJTextArea();
61
62 private boolean showTargets = true;
63 private JScrollPane progressScrollPane = new JScrollPane();;
64 private ProgressPanel progressPanel;
65
66 public ProgressPageRenderer() {
67 errPanel.setAsSystemErr();
68 outPanel.setAsSystemOut();
69 }
70 /**
71 * getErr
72 * @return PrintStream
73 */
74 public PrintStream getErr() {
75 return errPanel.getOut();
76 }
77 /**
78 * getOut
79 * @return PrintStream
80 */
81 public PrintStream getOut() {
82 return outPanel.getOut();
83 }
84
85 /**
86 * instanceInit
87 */
88 public void reInstanceInit() {
89 feedBackLabel.setText(org.tp23.antinstaller.Installer.langPack.getString("click")+" "+ctx.getInstaller().getFinishButtonText()+" "+org.tp23.antinstaller.Installer.langPack.getString("toContinue"));
90 jToggleButton.setText(org.tp23.antinstaller.Installer.langPack.getString("showDetails"));
91
92 jTabbedPane.removeAll();
93 jTabbedPane.add(org.tp23.antinstaller.Installer.langPack.getString("output"), outPanel);
94 jTabbedPane.add(org.tp23.antinstaller.Installer.langPack.getString("errors"), errPanel);
95 }
96
97 public void instanceInit() {
98 showTargets = ((ProgressPage)page).isShowTargets();
99 contentPanel.setLayout(borderLayout1);
100 this.add(contentPanel,BorderLayout.CENTER);
101
102 //progressScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
103
104 messagesPanel.setLayout(null);
105 Dimension messPanelSize = new Dimension(SizeConstants.PAGE_WIDTH,MESSAGE_PANEL_HEIGHT);
106 messagesPanel.setSize(messPanelSize);
107 messagesPanel.setPreferredSize(messPanelSize);
108 messagesPanel.setMaximumSize(messPanelSize);
109 messagesPanel.setMinimumSize(messPanelSize);
110
111 //FIXME not i18n properly since the sentence is not correct ordering in German
112 feedBackLabel.setText(org.tp23.antinstaller.Installer.langPack.getString("click")+" "+ctx.getInstaller().getFinishButtonText()+" "+org.tp23.antinstaller.Installer.langPack.getString("toContinue"));
113 feedBackLabel.setBounds(new Rectangle(115, 7, 272, 22));
114 jToggleButton.setText(org.tp23.antinstaller.Installer.langPack.getString("showDetails"));
115 jToggleButton.setBounds(new Rectangle(5, 7, 104, 22));
116 jToggleButton.setMargin(new Insets(0,0,0,0));
117 messagesPanel.add(jToggleButton, null);
118 messagesPanel.add(feedBackLabel, null);
119 jToggleButton.addActionListener(new ActionListener(){
120 public void actionPerformed(ActionEvent e) {
121 if(jToggleButton.isSelected()){
122 if(showTargets){
123 contentPanel.remove(progressScrollPane);
124 }
125 contentPanel.add(jTabbedPane, BorderLayout.CENTER);
126 contentPanel.doLayout();
127 contentPanel.repaint();
128 }
129 else {
130 contentPanel.remove(jTabbedPane);
131 if(showTargets){
132 contentPanel.add(progressScrollPane, BorderLayout.CENTER);
133 progressScrollPane.revalidate();
134 }
135 contentPanel.doLayout();
136 contentPanel.repaint();
137 }
138 }
139 });
140 jToggleButton.setIcon(getImage("/resources/icons/showdetails.png"));
141 contentPanel.add(messagesPanel, BorderLayout.NORTH);
142
143 if(showTargets){
144 progressScrollPane.setBorder(BorderFactory.createEmptyBorder(10,5,5,5));
145 contentPanel.add(progressScrollPane, BorderLayout.CENTER);
146 }
147 jTabbedPane.add(org.tp23.antinstaller.Installer.langPack.getString("output"), outPanel);
148 jTabbedPane.add(org.tp23.antinstaller.Installer.langPack.getString("errors"), errPanel);
149// if(OutputField.isTrue( ctx.getInstaller().getAntialiased())){
150// outPanel.setAntialiased(true);
151// errPanel.setAntialiased(true);
152// }
153
154 //jTabbedPane.setVisible(false);
155 jTabbedPane.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
156 contentPanel.setMaximumSize(new Dimension(SizeConstants.PAGE_WIDTH, Integer.MAX_VALUE));
157 contentPanel.setMinimumSize(new Dimension(SizeConstants.PAGE_WIDTH, 100));
158 contentPanel.setPreferredSize(new Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.PAGE_HEIGHT-100));
159 //contentPanel.add(jTabbedPane, null);
160 //jTabbedPane.setBounds(new Rectangle(4, MESSAGE_PANEL_HEIGHT, PAGE_WIDTH-12, 214));
161
162 this.getNextButton().setVisible(false);
163 this.getFinishButton().setText(ctx.getInstaller().getFinishButtonText());
164 this.getFinishButton().setVisible(true);
165 }
166
167 public void setContext(SwingInstallerContext swingCtx){
168 super.setContext(swingCtx);
169 if(showTargets){
170 progressPanel = new ProgressPanel(swingCtx.getInstallerContext());
171 progressScrollPane.getViewport().add(progressPanel);
172 this.swingCtx.setProgressPanel(progressPanel);
173 }
174 this.swingCtx.setFeedBackLabel(feedBackLabel);
175 }
176
177
178 /**
179 * updateInputFields
180 */
181 public void updateInputFields() {
182
183 }
184
185
186
187 /**
188 * validateFields
189 *
190 * @return boolean
191 */
192 public boolean validateFields() {
193 return true;
194 }
195
196
197
198 /**
199 * updateDefaultValues
200 */
201 public void updateDefaultValues() {
202 }
203}
Note: See TracBrowser for help on using the repository browser.