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

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

antinstaller inserts the progress icon itself now so rks dont have to

File size: 7.9 KB
RevLine 
[14982]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;
[17578]29import javax.swing.JButton;
[14982]30import javax.swing.JPanel;
31import javax.swing.JScrollPane;
32import javax.swing.JTabbedPane;
33import javax.swing.JToggleButton;
[17578]34import javax.swing.ImageIcon;
[14982]35
36import org.tp23.antinstaller.page.ProgressPage;
37import org.tp23.antinstaller.renderer.AntOutputRenderer;
38import org.tp23.gui.widget.SystemOutJTextArea;
39/**
40 *
41 * <p>Copyright: Copyright (c) 2004</p>
42 * <p>Company: tp23</p>
43 * @todo change absolute to Border layout and panels
44 * @author Paul Hinds
45 * @version $Id: ProgressPageRenderer.java,v 1.4 2006/12/21 00:03:00 teknopaul Exp $
46 */
47public class ProgressPageRenderer
48 extends SwingPageRenderer
49 implements AntOutputRenderer {
50
51 private static final int MESSAGE_PANEL_HEIGHT = 30;
52
53 private JPanel contentPanel = new JPanel();
54
55 private JTabbedPane jTabbedPane = new JTabbedPane();
56 private JPanel messagesPanel = new JPanel();
57 private BorderLayout borderLayout1 = new BorderLayout();
58 private JToggleButton jToggleButton = new JToggleButton();
59 private JLabel feedBackLabel = new JLabel();
[17578]60 private JLabel progressOn = null;
61 private JLabel progressOff = null;
62 private JPanel messagesLeft = null;
63 private JPanel messagesRight = null;
[14982]64
65 private SystemOutJTextArea outPanel = new SystemOutJTextArea();
66 private SystemOutJTextArea errPanel = new SystemOutJTextArea();
67
68 private boolean showTargets = true;
69 private JScrollPane progressScrollPane = new JScrollPane();;
70 private ProgressPanel progressPanel;
71
72 public ProgressPageRenderer() {
73 errPanel.setAsSystemErr();
74 outPanel.setAsSystemOut();
75 }
76 /**
77 * getErr
78 * @return PrintStream
79 */
80 public PrintStream getErr() {
81 return errPanel.getOut();
82 }
83 /**
84 * getOut
85 * @return PrintStream
86 */
87 public PrintStream getOut() {
88 return outPanel.getOut();
89 }
90
91 /**
92 * instanceInit
93 */
[17517]94 public void reInstanceInit() {
95 feedBackLabel.setText(org.tp23.antinstaller.Installer.langPack.getString("click")+" "+ctx.getInstaller().getFinishButtonText()+" "+org.tp23.antinstaller.Installer.langPack.getString("toContinue"));
96 jToggleButton.setText(org.tp23.antinstaller.Installer.langPack.getString("showDetails"));
97
98 jTabbedPane.removeAll();
99 jTabbedPane.add(org.tp23.antinstaller.Installer.langPack.getString("output"), outPanel);
100 jTabbedPane.add(org.tp23.antinstaller.Installer.langPack.getString("errors"), errPanel);
101 }
102
[14982]103 public void instanceInit() {
104 showTargets = ((ProgressPage)page).isShowTargets();
105 contentPanel.setLayout(borderLayout1);
106 this.add(contentPanel,BorderLayout.CENTER);
107
[17578]108 messagesPanel.setLayout( new BorderLayout() );
109 //Dimension messPanelSize = new Dimension(SizeConstants.PAGE_WIDTH,MESSAGE_PANEL_HEIGHT);
110 //messagesPanel.setSize(messPanelSize);
111 //messagesPanel.setPreferredSize(messPanelSize);
112 //messagesPanel.setMaximumSize(messPanelSize);
113 //messagesPanel.setMinimumSize(messPanelSize);
[14982]114
[17639]115 ImageIcon progressOnIcon = createImageIcon("/resources/icons/progressOn.gif");
[17578]116 progressOn = new JLabel( progressOnIcon );
117 progressOnIcon.setImageObserver(progressOn);
[17639]118 progressOff = new JLabel( createImageIcon("/resources/icons/progressOff.gif") );
[17578]119
[14982]120 //FIXME not i18n properly since the sentence is not correct ordering in German
[17514]121 feedBackLabel.setText(org.tp23.antinstaller.Installer.langPack.getString("click")+" "+ctx.getInstaller().getFinishButtonText()+" "+org.tp23.antinstaller.Installer.langPack.getString("toContinue"));
[17578]122 //feedBackLabel.setBounds(new Rectangle(115, 7, 272, 22));
[17514]123 jToggleButton.setText(org.tp23.antinstaller.Installer.langPack.getString("showDetails"));
[17578]124 //jToggleButton.setBounds(new Rectangle(5, 7, 104, 22));
125 //jToggleButton.setMargin(new Insets(0,0,0,0));
126
127 messagesLeft = new JPanel();
128 messagesLeft.add(jToggleButton, null);
129 messagesLeft.add(feedBackLabel, null);
130
131 messagesRight = new JPanel();
132 messagesRight.add( progressOff );
133
134 messagesPanel.add(messagesLeft, BorderLayout.WEST);
135 messagesPanel.add(messagesRight, BorderLayout.EAST);
136
[14982]137 jToggleButton.addActionListener(new ActionListener(){
138 public void actionPerformed(ActionEvent e) {
139 if(jToggleButton.isSelected()){
140 if(showTargets){
141 contentPanel.remove(progressScrollPane);
142 }
143 contentPanel.add(jTabbedPane, BorderLayout.CENTER);
144 contentPanel.doLayout();
145 contentPanel.repaint();
146 }
147 else {
148 contentPanel.remove(jTabbedPane);
149 if(showTargets){
150 contentPanel.add(progressScrollPane, BorderLayout.CENTER);
151 progressScrollPane.revalidate();
152 }
153 contentPanel.doLayout();
154 contentPanel.repaint();
155 }
156 }
157 });
[17569]158
[14982]159 jToggleButton.setIcon(getImage("/resources/icons/showdetails.png"));
160 contentPanel.add(messagesPanel, BorderLayout.NORTH);
161
[17569]162
[14982]163 if(showTargets){
164 progressScrollPane.setBorder(BorderFactory.createEmptyBorder(10,5,5,5));
165 contentPanel.add(progressScrollPane, BorderLayout.CENTER);
166 }
[17514]167 jTabbedPane.add(org.tp23.antinstaller.Installer.langPack.getString("output"), outPanel);
168 jTabbedPane.add(org.tp23.antinstaller.Installer.langPack.getString("errors"), errPanel);
[14982]169// if(OutputField.isTrue( ctx.getInstaller().getAntialiased())){
170// outPanel.setAntialiased(true);
171// errPanel.setAntialiased(true);
172// }
173
[17578]174
[14982]175 //jTabbedPane.setVisible(false);
176 jTabbedPane.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
177 contentPanel.setMaximumSize(new Dimension(SizeConstants.PAGE_WIDTH, Integer.MAX_VALUE));
178 contentPanel.setMinimumSize(new Dimension(SizeConstants.PAGE_WIDTH, 100));
179 contentPanel.setPreferredSize(new Dimension(SizeConstants.PAGE_WIDTH, SizeConstants.PAGE_HEIGHT-100));
180 //contentPanel.add(jTabbedPane, null);
181 //jTabbedPane.setBounds(new Rectangle(4, MESSAGE_PANEL_HEIGHT, PAGE_WIDTH-12, 214));
182
[17569]183
[17517]184 this.getNextButton().setVisible(false);
[14982]185 this.getFinishButton().setText(ctx.getInstaller().getFinishButtonText());
[17517]186 this.getFinishButton().setVisible(true);
[17578]187 this.getFinishButton().addActionListener(
188 new ActionListener() {
189 public void actionPerformed( ActionEvent e ) {
190 messagesRight.removeAll();
191 messagesRight.add( progressOn );
192 }
193 }
194 );
195
[14982]196 }
197
198 public void setContext(SwingInstallerContext swingCtx){
199 super.setContext(swingCtx);
200 if(showTargets){
201 progressPanel = new ProgressPanel(swingCtx.getInstallerContext());
202 progressScrollPane.getViewport().add(progressPanel);
203 this.swingCtx.setProgressPanel(progressPanel);
204 }
205 this.swingCtx.setFeedBackLabel(feedBackLabel);
206 }
207
208
209 /**
210 * updateInputFields
211 */
212 public void updateInputFields() {
213
214 }
215
216
217
218 /**
219 * validateFields
220 *
221 * @return boolean
222 */
223 public boolean validateFields() {
224 return true;
225 }
226
227
228
229 /**
230 * updateDefaultValues
231 */
232 public void updateDefaultValues() {
233 }
[17578]234
235 /** Returns an ImageIcon, or null if the path was invalid. */
236 protected static ImageIcon createImageIcon(String path) {
237 java.net.URL imgURL = org.tp23.antinstaller.Installer.class.getResource(path);
238 if (imgURL != null) {
239 return new ImageIcon(imgURL);
240 } else {
241 System.err.println("Couldn't find file: " + path);
242 return null;
243 }
244 }
245
246 public void stopPage() {
247 messagesRight.removeAll();
248 messagesRight.add( progressOff );
249 }
250
[14982]251}
Note: See TracBrowser for help on using the repository browser.