source: release-kits/lirk3/bin/ant-installer/web/java2html/antinstaller/org/tp23/antinstaller/runtime/SwingRunner.java.html@ 14982

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

initial import of LiRK3

File size: 43.5 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
2<HTML>
3<HEAD>
4<LINK REL=STYLESHEET TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
5<META NAME="GENERATOR" CONTENT="Java2HTML Version 1.4">
6<TITLE>org.tp23.antinstaller.runtime.SwingRunner (Java2HTML)</TITLE>
7</HEAD>
8<BODY><TABLE id="Header" border="0" cellpadding="0" cellspacing="0" width="100%">
9<tr>
10<td colspan="2" width="33%">&nbsp;</td>
11<td align="center" colspan="2" width="33%">
12<font size="4" class="ClassName">SwingRunner.java</font>
13</td>
14<td align="right" colspan="2" width="33%">&nbsp;</td>
15</tr>
16</TABLE>
17<pre CLASS="Classes">
18<FONT CLASS="LN">1 </FONT><A NAME="1"></A><FONT CLASS="MultiLineComment">/*
19<FONT CLASS="LN">2 </FONT><A NAME="2"></A> * Copyright 2005 Paul Hinds
20<FONT CLASS="LN">3 </FONT><A NAME="3"></A> *
21<FONT CLASS="LN">4 </FONT><A NAME="4"></A> * Licensed under the Apache License, Version 2.0 (the "License");
22<FONT CLASS="LN">5 </FONT><A NAME="5"></A> * you may not use this file except in compliance with the License.
23<FONT CLASS="LN">6 </FONT><A NAME="6"></A> * You may obtain a copy of the License at
24<FONT CLASS="LN">7 </FONT><A NAME="7"></A> *
25<FONT CLASS="LN">8 </FONT><A NAME="8"></A> * http://www.apache.org/licenses/LICENSE-2.0
26<FONT CLASS="LN">9 </FONT><A NAME="9"></A> *
27<FONT CLASS="LN">10</FONT><A NAME="10"></A> * Unless required by applicable law or agreed to in writing, software
28<FONT CLASS="LN">11</FONT><A NAME="11"></A> * distributed under the License is distributed on an "AS IS" BASIS,
29<FONT CLASS="LN">12</FONT><A NAME="12"></A> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
30<FONT CLASS="LN">13</FONT><A NAME="13"></A> * See the License for the specific language governing permissions and
31<FONT CLASS="LN">14</FONT><A NAME="14"></A> * limitations under the License.
32<FONT CLASS="LN">15</FONT><A NAME="15"></A> */</FONT>
33<FONT CLASS="LN">16</FONT><A NAME="16"></A><FONT CLASS="Package">package</FONT> <A HREF="../../../../org.tp23.antinstaller.runtime.index.html" target="packageFrame">org.tp23.antinstaller.runtime</A>;
34<FONT CLASS="LN">17</FONT><A NAME="17"></A>
35<FONT CLASS="LN">18</FONT><A NAME="18"></A><FONT CLASS="Import">import</FONT> java.awt.GraphicsConfiguration;
36<FONT CLASS="LN">19</FONT><A NAME="19"></A><FONT CLASS="Import">import</FONT> java.io.ByteArrayOutputStream;
37<FONT CLASS="LN">20</FONT><A NAME="20"></A><FONT CLASS="Import">import</FONT> java.io.InputStream;
38<FONT CLASS="LN">21</FONT><A NAME="21"></A><FONT CLASS="Import">import</FONT> java.util.ArrayList;
39<FONT CLASS="LN">22</FONT><A NAME="22"></A><FONT CLASS="Import">import</FONT> java.util.List;
40<FONT CLASS="LN">23</FONT><A NAME="23"></A><FONT CLASS="Import">import</FONT> java.util.ResourceBundle;
41<FONT CLASS="LN">24</FONT><A NAME="24"></A>
42<FONT CLASS="LN">25</FONT><A NAME="25"></A><FONT CLASS="Import">import</FONT> javax.swing.ImageIcon;
43<FONT CLASS="LN">26</FONT><A NAME="26"></A><FONT CLASS="Import">import</FONT> javax.swing.JFrame;
44<FONT CLASS="LN">27</FONT><A NAME="27"></A>
45<FONT CLASS="LN">28</FONT><A NAME="28"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">org.tp23.antinstaller.InstallException</A>;
46<FONT CLASS="LN">29</FONT><A NAME="29"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/Installer.java.html">org.tp23.antinstaller.Installer</A>;
47<FONT CLASS="LN">30</FONT><A NAME="30"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">org.tp23.antinstaller.InstallerContext</A>;
48<FONT CLASS="LN">31</FONT><A NAME="31"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">org.tp23.antinstaller.ValidationException</A>;
49<FONT CLASS="LN">32</FONT><A NAME="32"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/FeedbackListener.java.html">org.tp23.antinstaller.antmod.FeedbackListener</A>;
50<FONT CLASS="LN">33</FONT><A NAME="33"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">org.tp23.antinstaller.page.Page</A>;
51<FONT CLASS="LN">34</FONT><A NAME="34"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">org.tp23.antinstaller.renderer.AntOutputRenderer</A>;
52<FONT CLASS="LN">35</FONT><A NAME="35"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/RendererFactory.java.html">org.tp23.antinstaller.renderer.RendererFactory</A>;
53<FONT CLASS="LN">36</FONT><A NAME="36"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/PageCompletionListener.java.html">org.tp23.antinstaller.renderer.swing.PageCompletionListener</A>;
54<FONT CLASS="LN">37</FONT><A NAME="37"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SizeConstants.java.html">org.tp23.antinstaller.renderer.swing.SizeConstants</A>;
55<FONT CLASS="LN">38</FONT><A NAME="38"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html">org.tp23.antinstaller.renderer.swing.SwingInstallerContext</A>;
56<FONT CLASS="LN">39</FONT><A NAME="39"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingMessageRenderer.java.html">org.tp23.antinstaller.renderer.swing.SwingMessageRenderer</A>;
57<FONT CLASS="LN">40</FONT><A NAME="40"></A><FONT CLASS="Import">import</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">org.tp23.antinstaller.renderer.swing.SwingPageRenderer</A>;
58<FONT CLASS="LN">41</FONT><A NAME="41"></A>
59<FONT CLASS="LN">42</FONT><A NAME="42"></A><FONT CLASS="FormalComment">/**
60<FONT CLASS="LN">43</FONT><A NAME="43"></A> * &lt;p&gt;Runs the installer in a JFrame window &lt;/p&gt;
61<FONT CLASS="LN">44</FONT><A NAME="44"></A> * &lt;p&gt;This class uses the Installer object tree as its data source and renderers
62<FONT CLASS="LN">45</FONT><A NAME="45"></A> * from the org.tp23.antinstaller.renderer.swing package &lt;/p&gt;
63<FONT CLASS="LN">46</FONT><A NAME="46"></A> * Runners must also create a MessageRenderer and make it available in the
64<FONT CLASS="LN">47</FONT><A NAME="47"></A> * InstallerContext
65<FONT CLASS="LN">48</FONT><A NAME="48"></A> * &lt;p&gt;Copyright: Copyright (c) 2004&lt;/p&gt;
66<FONT CLASS="LN">49</FONT><A NAME="49"></A> * &lt;p&gt;Company: tp23&lt;/p&gt;
67<FONT CLASS="LN">50</FONT><A NAME="50"></A> *
68<FONT CLASS="LN">51</FONT><A NAME="51"></A> * @author Paul Hinds
69<FONT CLASS="LN">52</FONT><A NAME="52"></A> * @version $Id: SwingRunner.java,v 1.11 2007/01/19 00:24:36 teknopaul Exp $
70<FONT CLASS="LN">53</FONT><A NAME="53"></A> */</FONT>
71<FONT CLASS="LN">54</FONT><A NAME="54"></A><FONT CLASS="Public">public</FONT> <FONT CLASS="Class">class</FONT> SwingRunner <FONT CLASS="Extends">extends</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/AntRunner.java.html">AntRunner</A> <FONT CLASS="Implements">implements</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/Runner.java.html">Runner</A>, <A HREF="../../../../org/tp23/antinstaller/renderer/swing/PageCompletionListener.java.html">PageCompletionListener</A> {
72<FONT CLASS="LN">55</FONT><A NAME="55"></A>
73<FONT CLASS="LN">56</FONT><A NAME="56"></A> <FONT CLASS="Private">private</FONT> <FONT CLASS="Static">static</FONT> <FONT CLASS="Final">final</FONT> ResourceBundle res = ResourceBundle.getBundle(<FONT CLASS="StringLiteral">"org.tp23.antinstaller.renderer.Res"</FONT>);
74<FONT CLASS="LN">57</FONT><A NAME="57"></A>
75<FONT CLASS="LN">58</FONT><A NAME="58"></A>
76<FONT CLASS="LN">59</FONT><A NAME="59"></A> <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html">SwingInstallerContext</A> swingCtx = <FONT CLASS="Null">null</FONT>;
77<FONT CLASS="LN">60</FONT><A NAME="60"></A> <FONT CLASS="Private">private</FONT> JFrame frame = <FONT CLASS="New">new</FONT> JFrame();
78<FONT CLASS="LN">61</FONT><A NAME="61"></A> <FONT CLASS="Private">private</FONT> List pageRenderers;
79<FONT CLASS="LN">62</FONT><A NAME="62"></A> <FONT CLASS="Private">private</FONT> <FONT CLASS="Volatile">volatile</FONT> <FONT CLASS="Boolean">boolean</FONT> doAnt = <FONT CLASS="False">false</FONT>;
80<FONT CLASS="LN">63</FONT><A NAME="63"></A> <FONT CLASS="Protected">protected</FONT> Thread initialThread;
81<FONT CLASS="LN">64</FONT><A NAME="64"></A> <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/IfPropertyHelper.java.html">IfPropertyHelper</A> ifHelper;
82<FONT CLASS="LN">65</FONT><A NAME="65"></A> <FONT CLASS="SingleLineComment">// context local property refs
83<FONT CLASS="LN">66</FONT><A NAME="66"></A></FONT> <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx;
84<FONT CLASS="LN">67</FONT><A NAME="67"></A> <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/Logger.java.html">Logger</A> logger;
85<FONT CLASS="LN">68</FONT><A NAME="68"></A> <FONT CLASS="Protected">protected</FONT> <A HREF="../../../../org/tp23/antinstaller/Installer.java.html">Installer</A> installer;
86<FONT CLASS="LN">69</FONT><A NAME="69"></A>
87<FONT CLASS="LN">70</FONT><A NAME="70"></A> <FONT CLASS="Public">public</FONT> SwingRunner(<A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) {
88<FONT CLASS="LN">71</FONT><A NAME="71"></A> <FONT CLASS="Super">super</FONT>(ctx);
89<FONT CLASS="LN">72</FONT><A NAME="72"></A> swingCtx = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingInstallerContext.java.html">SwingInstallerContext</A>(ctx, frame);
90<FONT CLASS="LN">73</FONT><A NAME="73"></A>
91<FONT CLASS="LN">74</FONT><A NAME="74"></A> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingMessageRenderer.java.html">SwingMessageRenderer</A> smr = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingMessageRenderer.java.html">SwingMessageRenderer</A>();
92<FONT CLASS="LN">75</FONT><A NAME="75"></A> smr.setOwner(frame);
93<FONT CLASS="LN">76</FONT><A NAME="76"></A> ctx.setMessageRenderer(smr);
94<FONT CLASS="LN">77</FONT><A NAME="77"></A>
95<FONT CLASS="LN">78</FONT><A NAME="78"></A> ctx.setBuildListener(<FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/antmod/FeedbackListener.java.html">FeedbackListener</A>(swingCtx));
96<FONT CLASS="LN">79</FONT><A NAME="79"></A>
97<FONT CLASS="LN">80</FONT><A NAME="80"></A> ifHelper = <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/runtime/IfPropertyHelper.java.html">IfPropertyHelper</A>(ctx);
98<FONT CLASS="LN">81</FONT><A NAME="81"></A> logger = ctx.getLogger();
99<FONT CLASS="LN">82</FONT><A NAME="82"></A> installer = ctx.getInstaller();
100<FONT CLASS="LN">83</FONT><A NAME="83"></A> <FONT CLASS="This">this</FONT>.ctx = ctx;
101<FONT CLASS="LN">84</FONT><A NAME="84"></A> }
102<FONT CLASS="LN">85</FONT><A NAME="85"></A>
103<FONT CLASS="LN">86</FONT><A NAME="86"></A> <FONT CLASS="FormalComment">/**
104<FONT CLASS="LN">87</FONT><A NAME="87"></A> * Renders the installer in a Swing GUI, this method blocks until
105<FONT CLASS="LN">88</FONT><A NAME="88"></A> * the UI has finished
106<FONT CLASS="LN">89</FONT><A NAME="89"></A> *
107<FONT CLASS="LN">90</FONT><A NAME="90"></A> * @return boolean false implies user aborted
108<FONT CLASS="LN">91</FONT><A NAME="91"></A> * @throws InstallException
109<FONT CLASS="LN">92</FONT><A NAME="92"></A> */</FONT>
110<FONT CLASS="LN">93</FONT><A NAME="93"></A> <FONT CLASS="Public">public</FONT> <FONT CLASS="Boolean">boolean</FONT> runInstaller() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
111<FONT CLASS="LN">94</FONT><A NAME="94"></A> <FONT CLASS="Try">try</FONT> {
112<FONT CLASS="LN">95</FONT><A NAME="95"></A> frame.setTitle(installer.getName());
113<FONT CLASS="LN">96</FONT><A NAME="96"></A> frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
114<FONT CLASS="LN">97</FONT><A NAME="97"></A> frame.setSize(SizeConstants.PAGE_WIDTH, SizeConstants.PAGE_HEIGHT);
115<FONT CLASS="LN">98</FONT><A NAME="98"></A> frame.getRootPane().setDoubleBuffered(<FONT CLASS="True">true</FONT>);
116<FONT CLASS="LN">99</FONT><A NAME="99"></A> setLocation(frame);
117<FONT CLASS="LN">00</FONT><A NAME="100"></A> setIcon(frame, installer);
118<FONT CLASS="LN">01</FONT><A NAME="101"></A>
119<FONT CLASS="LN">02</FONT><A NAME="102"></A> preparePages(installer.getPages(), ctx);
120<FONT CLASS="LN">03</FONT><A NAME="103"></A> showFirstPage();
121<FONT CLASS="LN">04</FONT><A NAME="104"></A> <FONT CLASS="SingleLineComment">// need to block here until pages are complete
122<FONT CLASS="LN">05</FONT><A NAME="105"></A></FONT> initialThread = Thread.currentThread();
123<FONT CLASS="LN">06</FONT><A NAME="106"></A> <FONT CLASS="Try">try</FONT> {
124<FONT CLASS="LN">07</FONT><A NAME="107"></A> Thread.sleep(Long.MAX_VALUE);
125<FONT CLASS="LN">08</FONT><A NAME="108"></A> }
126<FONT CLASS="LN">09</FONT><A NAME="109"></A> <FONT CLASS="Catch">catch</FONT> (InterruptedException ex1) {
127<FONT CLASS="LN">10</FONT><A NAME="110"></A>
128<FONT CLASS="LN">11</FONT><A NAME="111"></A> }
129<FONT CLASS="LN">12</FONT><A NAME="112"></A> <FONT CLASS="Return">return</FONT> doAnt;
130<FONT CLASS="LN">13</FONT><A NAME="113"></A> }
131<FONT CLASS="LN">14</FONT><A NAME="114"></A> <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">Exception</A> ex) {
132<FONT CLASS="LN">15</FONT><A NAME="115"></A> logger.log(<FONT CLASS="StringLiteral">"Fatal exception: "</FONT> + ex.getMessage());
133<FONT CLASS="LN">16</FONT><A NAME="116"></A> <FONT CLASS="If">if</FONT> (ctx.getInstaller().isVerbose()) {
134<FONT CLASS="LN">17</FONT><A NAME="117"></A> logger.log(ex);
135<FONT CLASS="LN">18</FONT><A NAME="118"></A> }
136<FONT CLASS="LN">19</FONT><A NAME="119"></A> ctx.getMessageRenderer().printMessage(<FONT CLASS="StringLiteral">"Fatal exception: "</FONT> + ex.getMessage());
137<FONT CLASS="LN">20</FONT><A NAME="120"></A> <FONT CLASS="Throw">throw</FONT> <FONT CLASS="New">new</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A>(<FONT CLASS="StringLiteral">""</FONT>, ex);
138<FONT CLASS="LN">21</FONT><A NAME="121"></A> }
139<FONT CLASS="LN">22</FONT><A NAME="122"></A> }
140<FONT CLASS="LN">23</FONT><A NAME="123"></A>
141<FONT CLASS="LN">24</FONT><A NAME="124"></A> <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> pageBack(<A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page) {
142<FONT CLASS="LN">25</FONT><A NAME="125"></A> <FONT CLASS="If">if</FONT> (page.isAbort()) {
143<FONT CLASS="LN">26</FONT><A NAME="126"></A> abort();
144<FONT CLASS="LN">27</FONT><A NAME="127"></A> <FONT CLASS="Return">return</FONT>;
145<FONT CLASS="LN">28</FONT><A NAME="128"></A> }
146<FONT CLASS="LN">29</FONT><A NAME="129"></A> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] pages = installer.getPages();
147<FONT CLASS="LN">30</FONT><A NAME="130"></A> <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; pages.length; i++) {
148<FONT CLASS="LN">31</FONT><A NAME="131"></A> <FONT CLASS="If">if</FONT> (pages[i] == page) {
149<FONT CLASS="LN">32</FONT><A NAME="132"></A> <FONT CLASS="SingleLineComment">// found current page
150<FONT CLASS="LN">33</FONT><A NAME="133"></A></FONT> <FONT CLASS="If">if</FONT> (i &gt; <FONT CLASS="IntegerLiteral">0</FONT>) {
151<FONT CLASS="LN">34</FONT><A NAME="134"></A>
152<FONT CLASS="LN">35</FONT><A NAME="135"></A> <FONT CLASS="SingleLineComment">//skip pages if the ifTarget or ifProperty attributes exist and fail
153<FONT CLASS="LN">36</FONT><A NAME="136"></A></FONT> <FONT CLASS="Int">int</FONT> nextIdx = i - <FONT CLASS="IntegerLiteral">1</FONT>;
154<FONT CLASS="LN">37</FONT><A NAME="137"></A> <FONT CLASS="Try">try</FONT> {
155<FONT CLASS="LN">38</FONT><A NAME="138"></A> <FONT CLASS="While">while</FONT> (<FONT CLASS="True">true</FONT>) {
156<FONT CLASS="LN">39</FONT><A NAME="139"></A> <FONT CLASS="If">if</FONT> (!ifHelper.ifTarget(pages[nextIdx], pages) ||
157<FONT CLASS="LN">40</FONT><A NAME="140"></A> !ifHelper.ifProperty(pages[nextIdx])) {
158<FONT CLASS="LN">41</FONT><A NAME="141"></A> <FONT CLASS="SingleLineComment">//Continue looping
159<FONT CLASS="LN">42</FONT><A NAME="142"></A></FONT> --nextIdx;
160<FONT CLASS="LN">43</FONT><A NAME="143"></A> } <FONT CLASS="Else">else</FONT> {
161<FONT CLASS="LN">44</FONT><A NAME="144"></A> <FONT CLASS="Break">break</FONT>;
162<FONT CLASS="LN">45</FONT><A NAME="145"></A> }
163<FONT CLASS="LN">46</FONT><A NAME="146"></A> }
164<FONT CLASS="LN">47</FONT><A NAME="147"></A> }
165<FONT CLASS="LN">48</FONT><A NAME="148"></A> <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> instExc) {
166<FONT CLASS="LN">49</FONT><A NAME="149"></A> logger.log(<FONT CLASS="StringLiteral">"InstallException rendering page:"</FONT> + page.getName());
167<FONT CLASS="LN">50</FONT><A NAME="150"></A> logger.log(installer, instExc);
168<FONT CLASS="LN">51</FONT><A NAME="151"></A> }
169<FONT CLASS="LN">52</FONT><A NAME="152"></A>
170<FONT CLASS="LN">53</FONT><A NAME="153"></A> <FONT CLASS="SingleLineComment">//for(;ifTargetSkip(pages[nextIdx], pages);nextIdx--);
171<FONT CLASS="LN">54</FONT><A NAME="154"></A></FONT>
172<FONT CLASS="LN">55</FONT><A NAME="155"></A> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> renderer = (<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>) pageRenderers.get(nextIdx);
173<FONT CLASS="LN">56</FONT><A NAME="156"></A> ctx.setCurrentPage(pages[nextIdx]);
174<FONT CLASS="LN">57</FONT><A NAME="157"></A> <FONT CLASS="Try">try</FONT> {
175<FONT CLASS="LN">58</FONT><A NAME="158"></A> renderNext(renderer);
176<FONT CLASS="LN">59</FONT><A NAME="159"></A> }
177<FONT CLASS="LN">60</FONT><A NAME="160"></A> <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> ex) {
178<FONT CLASS="LN">61</FONT><A NAME="161"></A> logger.log(<FONT CLASS="StringLiteral">"InstallExcepiton rendering page:"</FONT> + page.getName());
179<FONT CLASS="LN">62</FONT><A NAME="162"></A> logger.log(installer, ex);
180<FONT CLASS="LN">63</FONT><A NAME="163"></A> }
181<FONT CLASS="LN">64</FONT><A NAME="164"></A> <FONT CLASS="Catch">catch</FONT> (ClassNotFoundException ex) {
182<FONT CLASS="LN">65</FONT><A NAME="165"></A> logger.log(<FONT CLASS="StringLiteral">"ClassNotFoundException rendering page:"</FONT> + page.getName());
183<FONT CLASS="LN">66</FONT><A NAME="166"></A> logger.log(installer, ex);
184<FONT CLASS="LN">67</FONT><A NAME="167"></A> }
185<FONT CLASS="LN">68</FONT><A NAME="168"></A> <FONT CLASS="Return">return</FONT>;
186<FONT CLASS="LN">69</FONT><A NAME="169"></A> }
187<FONT CLASS="LN">70</FONT><A NAME="170"></A> }
188<FONT CLASS="LN">71</FONT><A NAME="171"></A> }
189<FONT CLASS="LN">72</FONT><A NAME="172"></A> }
190<FONT CLASS="LN">73</FONT><A NAME="173"></A>
191<FONT CLASS="LN">74</FONT><A NAME="174"></A> <FONT CLASS="FormalComment">/**
192<FONT CLASS="LN">75</FONT><A NAME="175"></A> * Called when a page is complete and the next button is pressed.
193<FONT CLASS="LN">76</FONT><A NAME="176"></A> * This method is called by the event thread that looses exceptions so Throwable
194<FONT CLASS="LN">77</FONT><A NAME="177"></A> * is caught
195<FONT CLASS="LN">78</FONT><A NAME="178"></A> *
196<FONT CLASS="LN">79</FONT><A NAME="179"></A> * @param page Page
197<FONT CLASS="LN">80</FONT><A NAME="180"></A> */</FONT>
198<FONT CLASS="LN">81</FONT><A NAME="181"></A> <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> pageComplete(<A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A> page) {
199<FONT CLASS="LN">82</FONT><A NAME="182"></A> <FONT CLASS="Try">try</FONT> {
200<FONT CLASS="LN">83</FONT><A NAME="183"></A> <FONT CLASS="If">if</FONT> (page.isAbort()) {
201<FONT CLASS="LN">84</FONT><A NAME="184"></A> abort();
202<FONT CLASS="LN">85</FONT><A NAME="185"></A> <FONT CLASS="Return">return</FONT>;
203<FONT CLASS="LN">86</FONT><A NAME="186"></A> }
204<FONT CLASS="LN">87</FONT><A NAME="187"></A> runPost(page);
205<FONT CLASS="LN">88</FONT><A NAME="188"></A> <A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] pages = installer.getPages();
206<FONT CLASS="LN">89</FONT><A NAME="189"></A> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> currentRenderer;
207<FONT CLASS="LN">90</FONT><A NAME="190"></A> <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; pages.length; i++) {
208<FONT CLASS="LN">91</FONT><A NAME="191"></A> <FONT CLASS="If">if</FONT> (pages[i] == page) { <FONT CLASS="SingleLineComment">// found current page
209<FONT CLASS="LN">92</FONT><A NAME="192"></A></FONT> currentRenderer = (<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>) pageRenderers.get(i);
210<FONT CLASS="LN">93</FONT><A NAME="193"></A> <FONT CLASS="SingleLineComment">// check validation
211<FONT CLASS="LN">94</FONT><A NAME="194"></A></FONT> <FONT CLASS="Boolean">boolean</FONT> validationPassed = <FONT CLASS="False">false</FONT>;
212<FONT CLASS="LN">95</FONT><A NAME="195"></A> <FONT CLASS="Try">try</FONT> {
213<FONT CLASS="LN">96</FONT><A NAME="196"></A> currentRenderer.updateInputFields();
214<FONT CLASS="LN">97</FONT><A NAME="197"></A> validationPassed = currentRenderer.validateFields();
215<FONT CLASS="LN">98</FONT><A NAME="198"></A> } <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/ValidationException.java.html">ValidationException</A> ve) {
216<FONT CLASS="LN">99</FONT><A NAME="199"></A> logger.log(<FONT CLASS="StringLiteral">"ValidationException rendering page:"</FONT> + page.getName());
217<FONT CLASS="LN">00</FONT><A NAME="200"></A> logger.log(installer, ve);
218<FONT CLASS="LN">01</FONT><A NAME="201"></A> <FONT CLASS="Return">return</FONT>;
219<FONT CLASS="LN">02</FONT><A NAME="202"></A> }
220<FONT CLASS="LN">03</FONT><A NAME="203"></A> <FONT CLASS="If">if</FONT> (!validationPassed) {
221<FONT CLASS="LN">04</FONT><A NAME="204"></A> <FONT CLASS="Return">return</FONT>;
222<FONT CLASS="LN">05</FONT><A NAME="205"></A> }
223<FONT CLASS="LN">06</FONT><A NAME="206"></A>
224<FONT CLASS="LN">07</FONT><A NAME="207"></A>
225<FONT CLASS="LN">08</FONT><A NAME="208"></A> <FONT CLASS="If">if</FONT> (i &lt; pages.length - <FONT CLASS="IntegerLiteral">1</FONT>) {
226<FONT CLASS="LN">09</FONT><A NAME="209"></A>
227<FONT CLASS="LN">10</FONT><A NAME="210"></A> <FONT CLASS="SingleLineComment">//more pages left
228<FONT CLASS="LN">11</FONT><A NAME="211"></A></FONT>
229<FONT CLASS="LN">12</FONT><A NAME="212"></A> <FONT CLASS="SingleLineComment">// skip the page if the ifTarget or ifProperty dictate it
230<FONT CLASS="LN">13</FONT><A NAME="213"></A></FONT> <FONT CLASS="Int">int</FONT> nextIdx = i + <FONT CLASS="IntegerLiteral">1</FONT>;
231<FONT CLASS="LN">14</FONT><A NAME="214"></A> <FONT CLASS="While">while</FONT> (<FONT CLASS="True">true</FONT>) {
232<FONT CLASS="LN">15</FONT><A NAME="215"></A> <FONT CLASS="If">if</FONT> (!ifHelper.ifTarget(pages[nextIdx], pages) ||
233<FONT CLASS="LN">16</FONT><A NAME="216"></A> !ifHelper.ifProperty(pages[nextIdx])) {
234<FONT CLASS="LN">17</FONT><A NAME="217"></A> <FONT CLASS="SingleLineComment">//Continue looping
235<FONT CLASS="LN">18</FONT><A NAME="218"></A></FONT> nextIdx++;
236<FONT CLASS="LN">19</FONT><A NAME="219"></A> } <FONT CLASS="Else">else</FONT> {
237<FONT CLASS="LN">20</FONT><A NAME="220"></A> <FONT CLASS="Break">break</FONT>;
238<FONT CLASS="LN">21</FONT><A NAME="221"></A> }
239<FONT CLASS="LN">22</FONT><A NAME="222"></A> }
240<FONT CLASS="LN">23</FONT><A NAME="223"></A>
241<FONT CLASS="LN">24</FONT><A NAME="224"></A>
242<FONT CLASS="LN">25</FONT><A NAME="225"></A> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> renderer = (<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>) pageRenderers.get(nextIdx);
243<FONT CLASS="LN">26</FONT><A NAME="226"></A> ctx.setCurrentPage(pages[nextIdx]);
244<FONT CLASS="LN">27</FONT><A NAME="227"></A> <FONT CLASS="Try">try</FONT> {
245<FONT CLASS="LN">28</FONT><A NAME="228"></A> renderNext(renderer);
246<FONT CLASS="LN">29</FONT><A NAME="229"></A> }
247<FONT CLASS="LN">30</FONT><A NAME="230"></A> <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> ex) {
248<FONT CLASS="LN">31</FONT><A NAME="231"></A> logger.log(<FONT CLASS="StringLiteral">"InstallException rendering page:"</FONT> + page.getName());
249<FONT CLASS="LN">32</FONT><A NAME="232"></A> logger.log(installer, ex);
250<FONT CLASS="LN">33</FONT><A NAME="233"></A> }
251<FONT CLASS="LN">34</FONT><A NAME="234"></A> <FONT CLASS="Catch">catch</FONT> (ClassNotFoundException ex) {
252<FONT CLASS="LN">35</FONT><A NAME="235"></A> logger.log(<FONT CLASS="StringLiteral">"ClassNotFoundException rendering page:"</FONT> + page.getName());
253<FONT CLASS="LN">36</FONT><A NAME="236"></A> logger.log(installer, ex);
254<FONT CLASS="LN">37</FONT><A NAME="237"></A> }
255<FONT CLASS="LN">38</FONT><A NAME="238"></A> <FONT CLASS="Return">return</FONT>;
256<FONT CLASS="LN">39</FONT><A NAME="239"></A> }
257<FONT CLASS="LN">40</FONT><A NAME="240"></A> <FONT CLASS="If">if</FONT> (i == pages.length - <FONT CLASS="IntegerLiteral">1</FONT>) {
258<FONT CLASS="LN">41</FONT><A NAME="241"></A> <FONT CLASS="SingleLineComment">// all done
259<FONT CLASS="LN">42</FONT><A NAME="242"></A></FONT> currentRenderer.getBackButton().setEnabled(<FONT CLASS="False">false</FONT>);
260<FONT CLASS="LN">43</FONT><A NAME="243"></A> currentRenderer.getNextButton().setEnabled(<FONT CLASS="False">false</FONT>);
261<FONT CLASS="LN">44</FONT><A NAME="244"></A> currentRenderer.getFinishButton().setEnabled(<FONT CLASS="False">false</FONT>);
262<FONT CLASS="LN">45</FONT><A NAME="245"></A> doAnt = <FONT CLASS="True">true</FONT>;
263<FONT CLASS="LN">46</FONT><A NAME="246"></A> initialThread.interrupt();
264<FONT CLASS="LN">47</FONT><A NAME="247"></A> <FONT CLASS="Return">return</FONT>;
265<FONT CLASS="LN">48</FONT><A NAME="248"></A> }
266<FONT CLASS="LN">49</FONT><A NAME="249"></A> }
267<FONT CLASS="LN">50</FONT><A NAME="250"></A> }
268<FONT CLASS="LN">51</FONT><A NAME="251"></A> }
269<FONT CLASS="LN">52</FONT><A NAME="252"></A> <FONT CLASS="Catch">catch</FONT> (Throwable e) {
270<FONT CLASS="LN">53</FONT><A NAME="253"></A> ctx.log(<FONT CLASS="StringLiteral">"Throwable during page completion:"</FONT> + e.getMessage());
271<FONT CLASS="LN">54</FONT><A NAME="254"></A> <FONT CLASS="If">if</FONT> (ctx.getInstaller().isVerbose()) {
272<FONT CLASS="LN">55</FONT><A NAME="255"></A> ctx.log(e);
273<FONT CLASS="LN">56</FONT><A NAME="256"></A> }
274<FONT CLASS="LN">57</FONT><A NAME="257"></A> }
275<FONT CLASS="LN">58</FONT><A NAME="258"></A> }
276<FONT CLASS="LN">59</FONT><A NAME="259"></A>
277<FONT CLASS="LN">60</FONT><A NAME="260"></A> <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> showFirstPage() <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">Exception</A> {
278<FONT CLASS="LN">61</FONT><A NAME="261"></A> ctx.setCurrentPage(installer.getPages()[<FONT CLASS="IntegerLiteral">0</FONT>]);
279<FONT CLASS="LN">62</FONT><A NAME="262"></A> renderNext((<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>) pageRenderers.get(<FONT CLASS="IntegerLiteral">0</FONT>));
280<FONT CLASS="LN">63</FONT><A NAME="263"></A> }
281<FONT CLASS="LN">64</FONT><A NAME="264"></A>
282<FONT CLASS="LN">65</FONT><A NAME="265"></A>
283<FONT CLASS="LN">66</FONT><A NAME="266"></A> <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> preparePages(<A HREF="../../../../org/tp23/antinstaller/page/Page.java.html">Page</A>[] pages, <A HREF="../../../../org/tp23/antinstaller/InstallerContext.java.html">InstallerContext</A> ctx) <FONT CLASS="Throws">throws</FONT> <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">Exception</A> {
284<FONT CLASS="LN">67</FONT><A NAME="267"></A> pageRenderers = <FONT CLASS="New">new</FONT> ArrayList();
285<FONT CLASS="LN">68</FONT><A NAME="268"></A> <FONT CLASS="For">for</FONT> (<FONT CLASS="Int">int</FONT> i = <FONT CLASS="IntegerLiteral">0</FONT>; i &lt; pages.length; i++) {
286<FONT CLASS="LN">69</FONT><A NAME="269"></A> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> renderer = RendererFactory.getSwingPageRenderer(pages[i]);
287<FONT CLASS="LN">70</FONT><A NAME="270"></A> <FONT CLASS="If">if</FONT> (i == <FONT CLASS="IntegerLiteral">0</FONT>) {
288<FONT CLASS="LN">71</FONT><A NAME="271"></A> renderer.getBackButton().setEnabled(<FONT CLASS="False">false</FONT>);
289<FONT CLASS="LN">72</FONT><A NAME="272"></A> }
290<FONT CLASS="LN">73</FONT><A NAME="273"></A> renderer.setContext(swingCtx);
291<FONT CLASS="LN">74</FONT><A NAME="274"></A> renderer.setPageCompletionListener(<FONT CLASS="This">this</FONT>);
292<FONT CLASS="LN">75</FONT><A NAME="275"></A> renderer.setPage(pages[i]);
293<FONT CLASS="LN">76</FONT><A NAME="276"></A> renderer.instanceInit();
294<FONT CLASS="LN">77</FONT><A NAME="277"></A> pageRenderers.add(renderer);
295<FONT CLASS="LN">78</FONT><A NAME="278"></A> <FONT CLASS="If">if</FONT> (renderer <FONT CLASS="InstanceOf">instanceof</FONT> <A HREF="../../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">AntOutputRenderer</A>) {
296<FONT CLASS="LN">79</FONT><A NAME="279"></A> ctx.setAntOutputRenderer((<A HREF="../../../../org/tp23/antinstaller/renderer/AntOutputRenderer.java.html">AntOutputRenderer</A>) renderer);
297<FONT CLASS="LN">80</FONT><A NAME="280"></A> }
298<FONT CLASS="LN">81</FONT><A NAME="281"></A> }
299<FONT CLASS="LN">82</FONT><A NAME="282"></A> }
300<FONT CLASS="LN">83</FONT><A NAME="283"></A>
301<FONT CLASS="LN">84</FONT><A NAME="284"></A> <FONT CLASS="Protected">protected</FONT> <FONT CLASS="Void">void</FONT> renderNext(<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> renderer) <FONT CLASS="Throws">throws</FONT> ClassNotFoundException, <A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">InstallException</A> {
302<FONT CLASS="LN">85</FONT><A NAME="285"></A> renderer.updateDefaultValues();
303<FONT CLASS="LN">86</FONT><A NAME="286"></A> frame.getContentPane().removeAll();
304<FONT CLASS="LN">87</FONT><A NAME="287"></A> frame.getContentPane().add(renderer);
305<FONT CLASS="LN">88</FONT><A NAME="288"></A> frame.getContentPane().repaint();
306<FONT CLASS="LN">89</FONT><A NAME="289"></A> frame.show();
307<FONT CLASS="LN">90</FONT><A NAME="290"></A> <FONT CLASS="If">if</FONT> (renderer.getNextButton().isEnabled()) {
308<FONT CLASS="LN">91</FONT><A NAME="291"></A> renderer.getNextButton().requestFocus();
309<FONT CLASS="LN">92</FONT><A NAME="292"></A> } <FONT CLASS="Else">else</FONT> <FONT CLASS="If">if</FONT> (renderer.getFinishButton().isEnabled()) {
310<FONT CLASS="LN">93</FONT><A NAME="293"></A> renderer.getFinishButton().requestFocus();
311<FONT CLASS="LN">94</FONT><A NAME="294"></A> }
312<FONT CLASS="LN">95</FONT><A NAME="295"></A> }
313<FONT CLASS="LN">96</FONT><A NAME="296"></A>
314<FONT CLASS="LN">97</FONT><A NAME="297"></A> <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> setLocation(JFrame frame) {
315<FONT CLASS="LN">98</FONT><A NAME="298"></A> GraphicsConfiguration config = frame.getGraphicsConfiguration();
316<FONT CLASS="LN">99</FONT><A NAME="299"></A> <FONT CLASS="Int">int</FONT> x = (<FONT CLASS="Int">int</FONT>) config.getBounds().getCenterX() - (SizeConstants.PAGE_WIDTH / <FONT CLASS="IntegerLiteral">2</FONT>);
317<FONT CLASS="LN">00</FONT><A NAME="300"></A> <FONT CLASS="Int">int</FONT> y = (<FONT CLASS="Int">int</FONT>) config.getBounds().getCenterY() - (SizeConstants.PAGE_HEIGHT / <FONT CLASS="IntegerLiteral">2</FONT>);
318<FONT CLASS="LN">01</FONT><A NAME="301"></A> frame.setLocation(x, y);
319<FONT CLASS="LN">02</FONT><A NAME="302"></A> frame.setResizable(<FONT CLASS="False">false</FONT>);
320<FONT CLASS="LN">03</FONT><A NAME="303"></A> }
321<FONT CLASS="LN">04</FONT><A NAME="304"></A>
322<FONT CLASS="LN">05</FONT><A NAME="305"></A> <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> setIcon(JFrame frame, <A HREF="../../../../org/tp23/antinstaller/Installer.java.html">Installer</A> installer) {
323<FONT CLASS="LN">06</FONT><A NAME="306"></A> String iconResource = installer.getWindowIcon();
324<FONT CLASS="LN">07</FONT><A NAME="307"></A> <FONT CLASS="Try">try</FONT> {
325<FONT CLASS="LN">08</FONT><A NAME="308"></A> <FONT CLASS="If">if</FONT> (iconResource == <FONT CLASS="Null">null</FONT>) {
326<FONT CLASS="LN">09</FONT><A NAME="309"></A> <FONT CLASS="Return">return</FONT>;
327<FONT CLASS="LN">10</FONT><A NAME="310"></A> }
328<FONT CLASS="LN">11</FONT><A NAME="311"></A> InputStream in = <FONT CLASS="This">this</FONT>.getClass().getResourceAsStream(iconResource);
329<FONT CLASS="LN">12</FONT><A NAME="312"></A> ByteArrayOutputStream baos = <FONT CLASS="New">new</FONT> ByteArrayOutputStream();
330<FONT CLASS="LN">13</FONT><A NAME="313"></A> <FONT CLASS="Byte">byte</FONT>[] buffer = <FONT CLASS="New">new</FONT> <FONT CLASS="Byte">byte</FONT>[<FONT CLASS="IntegerLiteral">256</FONT>];
331<FONT CLASS="LN">14</FONT><A NAME="314"></A> <FONT CLASS="Int">int</FONT> read = <FONT CLASS="IntegerLiteral">0</FONT>; <FONT CLASS="SingleLineComment">// The number of bytes read from the stream
332<FONT CLASS="LN">15</FONT><A NAME="315"></A></FONT> <FONT CLASS="For">for</FONT> (read = in.read(buffer); read != -<FONT CLASS="IntegerLiteral">1</FONT>; read = in.read(buffer)) {
333<FONT CLASS="LN">16</FONT><A NAME="316"></A> baos.write(buffer, <FONT CLASS="IntegerLiteral">0</FONT>, read);
334<FONT CLASS="LN">17</FONT><A NAME="317"></A> }
335<FONT CLASS="LN">18</FONT><A NAME="318"></A> ImageIcon icon = <FONT CLASS="New">new</FONT> ImageIcon(baos.toByteArray());
336<FONT CLASS="LN">19</FONT><A NAME="319"></A> <FONT CLASS="SingleLineComment">//Image icon = Toolkit.getDefaultToolkit().createImage(baos.toByteArray());
337<FONT CLASS="LN">20</FONT><A NAME="320"></A></FONT> frame.setIconImage(icon.getImage());
338<FONT CLASS="LN">21</FONT><A NAME="321"></A> }
339<FONT CLASS="LN">22</FONT><A NAME="322"></A> <FONT CLASS="Catch">catch</FONT> (<A HREF="../../../../org/tp23/antinstaller/InstallException.java.html">Exception</A> ex) {
340<FONT CLASS="LN">23</FONT><A NAME="323"></A> <FONT CLASS="SingleLineComment">// we can live with out an icon
341<FONT CLASS="LN">24</FONT><A NAME="324"></A></FONT> logger.log(<FONT CLASS="StringLiteral">"Can not load icon resource: "</FONT> + iconResource);
342<FONT CLASS="LN">25</FONT><A NAME="325"></A> logger.log(installer, ex);
343<FONT CLASS="LN">26</FONT><A NAME="326"></A> }
344<FONT CLASS="LN">27</FONT><A NAME="327"></A> }
345<FONT CLASS="LN">28</FONT><A NAME="328"></A>
346<FONT CLASS="LN">29</FONT><A NAME="329"></A> <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> antFinished() {
347<FONT CLASS="LN">30</FONT><A NAME="330"></A> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> renderer = (<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>) pageRenderers.get(pageRenderers.size() - <FONT CLASS="IntegerLiteral">1</FONT>);
348<FONT CLASS="LN">31</FONT><A NAME="331"></A> renderer.getBackButton().setEnabled(<FONT CLASS="False">false</FONT>);
349<FONT CLASS="LN">32</FONT><A NAME="332"></A> renderer.getNextButton().setEnabled(<FONT CLASS="False">false</FONT>);
350<FONT CLASS="LN">33</FONT><A NAME="333"></A> renderer.getCancelButton().setEnabled(<FONT CLASS="False">false</FONT>);
351<FONT CLASS="LN">34</FONT><A NAME="334"></A> renderer.getFinishButton().setText(res.getString(<FONT CLASS="StringLiteral">"exit"</FONT>));
352<FONT CLASS="LN">35</FONT><A NAME="335"></A> renderer.getFinishButton().setEnabled(<FONT CLASS="True">true</FONT>);
353<FONT CLASS="LN">36</FONT><A NAME="336"></A> renderer.getFinishButton().requestFocus();
354<FONT CLASS="LN">37</FONT><A NAME="337"></A> renderer.getTitleLabel().setText(res.getString(<FONT CLASS="StringLiteral">"complete"</FONT>));
355<FONT CLASS="LN">38</FONT><A NAME="338"></A> ctx.getAntOutputRenderer().getErr().flush();
356<FONT CLASS="LN">39</FONT><A NAME="339"></A> ctx.getAntOutputRenderer().getOut().flush();
357<FONT CLASS="LN">40</FONT><A NAME="340"></A> ctx.getMessageRenderer().printMessage(res.getString(<FONT CLASS="StringLiteral">"finished"</FONT>));
358<FONT CLASS="LN">41</FONT><A NAME="341"></A> }
359<FONT CLASS="LN">42</FONT><A NAME="342"></A>
360<FONT CLASS="LN">43</FONT><A NAME="343"></A> <FONT CLASS="Public">public</FONT> <FONT CLASS="Void">void</FONT> fatalError() {
361<FONT CLASS="LN">44</FONT><A NAME="344"></A> List renderers = getPageRenderers();
362<FONT CLASS="LN">45</FONT><A NAME="345"></A> <FONT CLASS="If">if</FONT> ((renderers != <FONT CLASS="Null">null</FONT>) &amp;&amp; (renderers.size() &gt; <FONT CLASS="IntegerLiteral">0</FONT>)) {
363<FONT CLASS="LN">46</FONT><A NAME="346"></A> <A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A> renderer = (<A HREF="../../../../org/tp23/antinstaller/renderer/swing/SwingPageRenderer.java.html">SwingPageRenderer</A>) renderers.get(renderers.size() - <FONT CLASS="IntegerLiteral">1</FONT>);
364<FONT CLASS="LN">47</FONT><A NAME="347"></A> renderer.getBackButton().setEnabled(<FONT CLASS="False">false</FONT>);
365<FONT CLASS="LN">48</FONT><A NAME="348"></A> renderer.getNextButton().setEnabled(<FONT CLASS="False">false</FONT>);
366<FONT CLASS="LN">49</FONT><A NAME="349"></A> renderer.getCancelButton().setEnabled(<FONT CLASS="False">false</FONT>);
367<FONT CLASS="LN">50</FONT><A NAME="350"></A> renderer.getFinishButton().setText(res.getString(<FONT CLASS="StringLiteral">"exit"</FONT>));
368<FONT CLASS="LN">51</FONT><A NAME="351"></A> renderer.getFinishButton().setEnabled(<FONT CLASS="True">true</FONT>);
369<FONT CLASS="LN">52</FONT><A NAME="352"></A> renderer.getFinishButton().requestFocus();
370<FONT CLASS="LN">53</FONT><A NAME="353"></A> renderer.getTitleLabel().setText(res.getString(<FONT CLASS="StringLiteral">"failed"</FONT>));
371<FONT CLASS="LN">54</FONT><A NAME="354"></A> }
372<FONT CLASS="LN">55</FONT><A NAME="355"></A> <FONT CLASS="SingleLineComment">// else - we're done here, or should we call abort()?
373<FONT CLASS="LN">56</FONT><A NAME="356"></A></FONT> }
374<FONT CLASS="LN">57</FONT><A NAME="357"></A>
375<FONT CLASS="LN">58</FONT><A NAME="358"></A> <FONT CLASS="FormalComment">/**
376<FONT CLASS="LN">59</FONT><A NAME="359"></A> * Returns a string representation of the object.
377<FONT CLASS="LN">60</FONT><A NAME="360"></A> *
378<FONT CLASS="LN">61</FONT><A NAME="361"></A> * @return a string representation of the object.
379<FONT CLASS="LN">62</FONT><A NAME="362"></A> */</FONT>
380<FONT CLASS="LN">63</FONT><A NAME="363"></A> <FONT CLASS="Public">public</FONT> String toString() {
381<FONT CLASS="LN">64</FONT><A NAME="364"></A> <FONT CLASS="Return">return</FONT> <FONT CLASS="StringLiteral">"SwingRunner"</FONT>;
382<FONT CLASS="LN">65</FONT><A NAME="365"></A> }
383<FONT CLASS="LN">66</FONT><A NAME="366"></A>
384<FONT CLASS="LN">67</FONT><A NAME="367"></A> <FONT CLASS="Private">private</FONT> <FONT CLASS="Void">void</FONT> abort() {
385<FONT CLASS="LN">68</FONT><A NAME="368"></A> <FONT CLASS="This">this</FONT>.doAnt = <FONT CLASS="False">false</FONT>;
386<FONT CLASS="LN">69</FONT><A NAME="369"></A> initialThread.interrupt();
387<FONT CLASS="LN">70</FONT><A NAME="370"></A> }
388<FONT CLASS="LN">71</FONT><A NAME="371"></A>
389<FONT CLASS="LN">72</FONT><A NAME="372"></A> <FONT CLASS="FormalComment">/**
390<FONT CLASS="LN">73</FONT><A NAME="373"></A> * @return Returns the frame.
391<FONT CLASS="LN">74</FONT><A NAME="374"></A> */</FONT>
392<FONT CLASS="LN">75</FONT><A NAME="375"></A> <FONT CLASS="Public">public</FONT> JFrame getFrame() {
393<FONT CLASS="LN">76</FONT><A NAME="376"></A> <FONT CLASS="Return">return</FONT> frame;
394<FONT CLASS="LN">77</FONT><A NAME="377"></A> }
395<FONT CLASS="LN">78</FONT><A NAME="378"></A>
396<FONT CLASS="LN">79</FONT><A NAME="379"></A> <FONT CLASS="FormalComment">/**
397<FONT CLASS="LN">80</FONT><A NAME="380"></A> * This method is only valid after the PageRenderers have been generated
398<FONT CLASS="LN">81</FONT><A NAME="381"></A> *
399<FONT CLASS="LN">82</FONT><A NAME="382"></A> * @return Returns the pageRenderers.
400<FONT CLASS="LN">83</FONT><A NAME="383"></A> */</FONT>
401<FONT CLASS="LN">84</FONT><A NAME="384"></A> <FONT CLASS="Public">public</FONT> List getPageRenderers() {
402<FONT CLASS="LN">85</FONT><A NAME="385"></A> <FONT CLASS="Return">return</FONT> pageRenderers;
403<FONT CLASS="LN">86</FONT><A NAME="386"></A> }
404<FONT CLASS="LN">87</FONT><A NAME="387"></A>}
405<FONT CLASS="LN">88</FONT><A NAME="388"></A></pre>
406</BODY>
407</HTML>
Note: See TracBrowser for help on using the repository browser.