1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski package installer;
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski /*
25*b1cdbd2cSJim Jagielski  * InstallWizard.java
26*b1cdbd2cSJim Jagielski  *
27*b1cdbd2cSJim Jagielski  * Created on 04 July 2002, 15:09
28*b1cdbd2cSJim Jagielski  */
29*b1cdbd2cSJim Jagielski 
30*b1cdbd2cSJim Jagielski /**
31*b1cdbd2cSJim Jagielski  *
32*b1cdbd2cSJim Jagielski  * @author  mike
33*b1cdbd2cSJim Jagielski  */
34*b1cdbd2cSJim Jagielski 
35*b1cdbd2cSJim Jagielski import javax.swing.*;
36*b1cdbd2cSJim Jagielski import java.awt.*;
37*b1cdbd2cSJim Jagielski import java.awt.event.*;
38*b1cdbd2cSJim Jagielski import java.util.*;
39*b1cdbd2cSJim Jagielski import java.net.*;
40*b1cdbd2cSJim Jagielski import java.io.*;
41*b1cdbd2cSJim Jagielski 
42*b1cdbd2cSJim Jagielski public class InstallWizard extends javax.swing.JFrame implements ActionListener {
43*b1cdbd2cSJim Jagielski /*
44*b1cdbd2cSJim Jagielski     private static class ShutdownHook extends Thread {
45*b1cdbd2cSJim Jagielski         public void run()
46*b1cdbd2cSJim Jagielski 	{
47*b1cdbd2cSJim Jagielski             if (InstallWizard.isInstallStarted())
48*b1cdbd2cSJim Jagielski             {
49*b1cdbd2cSJim Jagielski                 // Check for and backup any config.xml files
50*b1cdbd2cSJim Jagielski                 // Check for and backup any StarBasic macro files
51*b1cdbd2cSJim Jagielski                 // Check for and backup ProtocolHandler
52*b1cdbd2cSJim Jagielski 
53*b1cdbd2cSJim Jagielski                 if (!InstallWizard.isPatchedTypes())
54*b1cdbd2cSJim Jagielski 		{
55*b1cdbd2cSJim Jagielski                     File backup = new File(InstUtil.getTmpDir(), "TypeDetection.xml");
56*b1cdbd2cSJim Jagielski                     File destination = new File(InstallWizard.getTypesPath());
57*b1cdbd2cSJim Jagielski                     InstUtil.copy(backup, destination); //Restore typedetection.xml
58*b1cdbd2cSJim Jagielski 		}
59*b1cdbd2cSJim Jagielski 		if (!InstallWizard.isPatchedJava())
60*b1cdbd2cSJim Jagielski 		{
61*b1cdbd2cSJim Jagielski                     File backup = new File(InstUtil.getTmpDir(), "Java.xml");
62*b1cdbd2cSJim Jagielski                     File destination = new File(InstallWizard.getJavaPath());
63*b1cdbd2cSJim Jagielski                     InstUtil.copy(backup, destination); //Restore typedetection.xml
64*b1cdbd2cSJim Jagielski 		}
65*b1cdbd2cSJim Jagielski 		if (!InstallWizard.isPatchedRDB())
66*b1cdbd2cSJim Jagielski 		{
67*b1cdbd2cSJim Jagielski                     File backup = new File(InstUtil.getTmpDir(), "applicat.rdb");
68*b1cdbd2cSJim Jagielski                     File destination = new File(InstallWizard.getJavaPath());
69*b1cdbd2cSJim Jagielski                     //InstUtil.copy(backup, destination); //Restore typedetection.xml
70*b1cdbd2cSJim Jagielski 		}
71*b1cdbd2cSJim Jagielski 
72*b1cdbd2cSJim Jagielski                 System.out.println( "ShutdownHook" );
73*b1cdbd2cSJim Jagielski             }
74*b1cdbd2cSJim Jagielski 
75*b1cdbd2cSJim Jagielski             InstUtil.removeTmpDir();
76*b1cdbd2cSJim Jagielski 	}
77*b1cdbd2cSJim Jagielski     }// class ShutdownHook
78*b1cdbd2cSJim Jagielski 
79*b1cdbd2cSJim Jagielski     static {
80*b1cdbd2cSJim Jagielski     	Runtime rt=Runtime.getRuntime();
81*b1cdbd2cSJim Jagielski     	rt.addShutdownHook(new ShutdownHook());
82*b1cdbd2cSJim Jagielski     }
83*b1cdbd2cSJim Jagielski */
84*b1cdbd2cSJim Jagielski     /** Creates new form InstallWizard */
InstallWizard()85*b1cdbd2cSJim Jagielski     public InstallWizard() {
86*b1cdbd2cSJim Jagielski         super("Office Scripting Framework Installer - Early Developer Release");
87*b1cdbd2cSJim Jagielski 
88*b1cdbd2cSJim Jagielski  	try {
89*b1cdbd2cSJim Jagielski  		System.out.print("All diagnostic output is being redirected to SFrameworkInstall.log\n");
90*b1cdbd2cSJim Jagielski  		System.out.print("Location: "+  System.getProperty( "user.dir" ) +
91*b1cdbd2cSJim Jagielski  			File.separator + "SFrameworkInstall.log\n");
92*b1cdbd2cSJim Jagielski 
93*b1cdbd2cSJim Jagielski  		LogStream log = new LogStream( "SFrameworkInstall.log" );
94*b1cdbd2cSJim Jagielski                  System.setErr(log);
95*b1cdbd2cSJim Jagielski 
96*b1cdbd2cSJim Jagielski                  System.setOut(log);
97*b1cdbd2cSJim Jagielski  	}
98*b1cdbd2cSJim Jagielski  	catch( FileNotFoundException fnfe ) {
99*b1cdbd2cSJim Jagielski  		System.err.println("Office Scripting Framework Installer - Error: ");
100*b1cdbd2cSJim Jagielski  		System.err.println("Unable to create log file for installation.");
101*b1cdbd2cSJim Jagielski  		exitForm(null);
102*b1cdbd2cSJim Jagielski  	}
103*b1cdbd2cSJim Jagielski 
104*b1cdbd2cSJim Jagielski 	//setBackground(Color.WHITE);
105*b1cdbd2cSJim Jagielski 	setBackground(new Color(0,0,0));
106*b1cdbd2cSJim Jagielski 	locations = new ArrayList();
107*b1cdbd2cSJim Jagielski 	//Point center = GraphicsEnvironment.getLocalGraphicsEnvironment().getCenterPoint();
108*b1cdbd2cSJim Jagielski 	Point center = new Point( 400, 400 );
109*b1cdbd2cSJim Jagielski 	int windowWidth=200;
110*b1cdbd2cSJim Jagielski 	int windowHeight=300;
111*b1cdbd2cSJim Jagielski 	setSize(windowWidth,windowHeight);
112*b1cdbd2cSJim Jagielski 	setBounds((center.x-windowWidth/2)-115,(center.y-windowWidth/2)-100, windowWidth,windowHeight);
113*b1cdbd2cSJim Jagielski 	initComponents();
114*b1cdbd2cSJim Jagielski 	setResizable(false);
115*b1cdbd2cSJim Jagielski     }
116*b1cdbd2cSJim Jagielski 
117*b1cdbd2cSJim Jagielski     /** This method is called from within the constructor to
118*b1cdbd2cSJim Jagielski      * initialize the form.
119*b1cdbd2cSJim Jagielski      */
initComponents()120*b1cdbd2cSJim Jagielski     private void initComponents() {
121*b1cdbd2cSJim Jagielski         navigation = new javax.swing.JPanel();
122*b1cdbd2cSJim Jagielski         navBack = new javax.swing.JButton();
123*b1cdbd2cSJim Jagielski         navNext = new javax.swing.JButton();
124*b1cdbd2cSJim Jagielski         navCancel = new javax.swing.JButton();
125*b1cdbd2cSJim Jagielski         screens = new javax.swing.JPanel();
126*b1cdbd2cSJim Jagielski 
127*b1cdbd2cSJim Jagielski         addWindowListener(new java.awt.event.WindowAdapter() {
128*b1cdbd2cSJim Jagielski             public void windowClosing(java.awt.event.WindowEvent evt) {
129*b1cdbd2cSJim Jagielski                 exitForm(evt);
130*b1cdbd2cSJim Jagielski             }
131*b1cdbd2cSJim Jagielski         });
132*b1cdbd2cSJim Jagielski 
133*b1cdbd2cSJim Jagielski         navigation.setLayout(new java.awt.GridBagLayout());
134*b1cdbd2cSJim Jagielski         java.awt.GridBagConstraints gridBagConstraints1;
135*b1cdbd2cSJim Jagielski 
136*b1cdbd2cSJim Jagielski         navBack.setText("<< Back");
137*b1cdbd2cSJim Jagielski         gridBagConstraints1 = new java.awt.GridBagConstraints();
138*b1cdbd2cSJim Jagielski         gridBagConstraints1.insets = new java.awt.Insets(1, 1, 1, 1);
139*b1cdbd2cSJim Jagielski 
140*b1cdbd2cSJim Jagielski         navNext.setText("Next >>");
141*b1cdbd2cSJim Jagielski         gridBagConstraints1 = new java.awt.GridBagConstraints();
142*b1cdbd2cSJim Jagielski         gridBagConstraints1.gridx = 2;
143*b1cdbd2cSJim Jagielski         gridBagConstraints1.gridy = 0;
144*b1cdbd2cSJim Jagielski 
145*b1cdbd2cSJim Jagielski         navCancel.setText("Cancel");
146*b1cdbd2cSJim Jagielski         gridBagConstraints1 = new java.awt.GridBagConstraints();
147*b1cdbd2cSJim Jagielski         gridBagConstraints1.gridx = 6;
148*b1cdbd2cSJim Jagielski         gridBagConstraints1.gridy = 0;
149*b1cdbd2cSJim Jagielski         //navigation.add(navNext, gridBagConstraints1);
150*b1cdbd2cSJim Jagielski         //navigation.add(navBack, gridBagConstraints1);
151*b1cdbd2cSJim Jagielski         //navigation.add(navCancel, gridBagConstraints1);
152*b1cdbd2cSJim Jagielski 
153*b1cdbd2cSJim Jagielski         getContentPane().add(navigation, java.awt.BorderLayout.SOUTH);
154*b1cdbd2cSJim Jagielski         screens.setLayout(new java.awt.CardLayout());
155*b1cdbd2cSJim Jagielski         screens.add(WELCOME, new Welcome(this));
156*b1cdbd2cSJim Jagielski         version = new Version(this);
157*b1cdbd2cSJim Jagielski         screens.add(VERSIONS, version);
158*b1cdbd2cSJim Jagielski 	_final = new Final(this);
159*b1cdbd2cSJim Jagielski         screens.add(FINAL, _final);
160*b1cdbd2cSJim Jagielski 
161*b1cdbd2cSJim Jagielski 	//boolean hasIDEInstallation = (InstUtil.hasNetbeansInstallation() || InstUtil.hasJeditInstallation()) ;
162*b1cdbd2cSJim Jagielski 	boolean hasIDEInstallation = ( InstUtil.hasNetbeansInstallation() ) ;
163*b1cdbd2cSJim Jagielski 
164*b1cdbd2cSJim Jagielski 	if( hasIDEInstallation )
165*b1cdbd2cSJim Jagielski 	{
166*b1cdbd2cSJim Jagielski 		idewelcome = new IdeWelcome(this);
167*b1cdbd2cSJim Jagielski 		screens.add(IDEWELCOME, idewelcome);
168*b1cdbd2cSJim Jagielski 		ideversion = new IdeVersion(this);
169*b1cdbd2cSJim Jagielski 		screens.add(IDEVERSIONS, ideversion);
170*b1cdbd2cSJim Jagielski 		idefinal = new IdeFinal(this);
171*b1cdbd2cSJim Jagielski 		screens.add(IDEFINAL, idefinal);
172*b1cdbd2cSJim Jagielski 	}
173*b1cdbd2cSJim Jagielski         getContentPane().add(screens, java.awt.BorderLayout.CENTER);
174*b1cdbd2cSJim Jagielski 
175*b1cdbd2cSJim Jagielski 	navNext.addActionListener(this);
176*b1cdbd2cSJim Jagielski 	navNext.addActionListener(version);
177*b1cdbd2cSJim Jagielski 	navNext.addActionListener(_final);
178*b1cdbd2cSJim Jagielski 
179*b1cdbd2cSJim Jagielski 	if( hasIDEInstallation )
180*b1cdbd2cSJim Jagielski 	{
181*b1cdbd2cSJim Jagielski 		navNext.addActionListener(ideversion);
182*b1cdbd2cSJim Jagielski 		navNext.addActionListener(idefinal);
183*b1cdbd2cSJim Jagielski 	}
184*b1cdbd2cSJim Jagielski 
185*b1cdbd2cSJim Jagielski 	navCancel.addActionListener(this);
186*b1cdbd2cSJim Jagielski 	navBack.addActionListener(this);
187*b1cdbd2cSJim Jagielski 
188*b1cdbd2cSJim Jagielski 
189*b1cdbd2cSJim Jagielski 	URL url = this.getClass().getResource("sidebar.jpg");
190*b1cdbd2cSJim Jagielski 	JLabel sideBar = new JLabel();
191*b1cdbd2cSJim Jagielski 	sideBar.setIcon(new ImageIcon(url));
192*b1cdbd2cSJim Jagielski 	getContentPane().add (sideBar, java.awt.BorderLayout.WEST);
193*b1cdbd2cSJim Jagielski         pack();
194*b1cdbd2cSJim Jagielski     }// initComponents
195*b1cdbd2cSJim Jagielski 
196*b1cdbd2cSJim Jagielski     /** Exit the Application */
exitForm(java.awt.event.WindowEvent evt)197*b1cdbd2cSJim Jagielski     public void exitForm(java.awt.event.WindowEvent evt) {
198*b1cdbd2cSJim Jagielski         System.exit(0);
199*b1cdbd2cSJim Jagielski     }
200*b1cdbd2cSJim Jagielski 
201*b1cdbd2cSJim Jagielski 
actionPerformed(ActionEvent e)202*b1cdbd2cSJim Jagielski     public void actionPerformed(ActionEvent e)
203*b1cdbd2cSJim Jagielski     {
204*b1cdbd2cSJim Jagielski         if (e.getSource() == navNext)
205*b1cdbd2cSJim Jagielski 	{
206*b1cdbd2cSJim Jagielski             ((CardLayout)screens.getLayout()).next(screens);
207*b1cdbd2cSJim Jagielski 	}
208*b1cdbd2cSJim Jagielski 
209*b1cdbd2cSJim Jagielski 	if (e.getSource() == navCancel)
210*b1cdbd2cSJim Jagielski 	{
211*b1cdbd2cSJim Jagielski             exitForm(null);
212*b1cdbd2cSJim Jagielski 	}
213*b1cdbd2cSJim Jagielski 
214*b1cdbd2cSJim Jagielski 	if (e.getSource() == navBack)
215*b1cdbd2cSJim Jagielski 	{
216*b1cdbd2cSJim Jagielski             ((CardLayout)screens.getLayout()).previous(screens);
217*b1cdbd2cSJim Jagielski 	}
218*b1cdbd2cSJim Jagielski     }// actionPerformed
219*b1cdbd2cSJim Jagielski 
storeLocation(String path)220*b1cdbd2cSJim Jagielski 	public static void storeLocation(String path)
221*b1cdbd2cSJim Jagielski 	{
222*b1cdbd2cSJim Jagielski 		locations.add(path);
223*b1cdbd2cSJim Jagielski 	}
224*b1cdbd2cSJim Jagielski 
getLocations()225*b1cdbd2cSJim Jagielski 	public static ArrayList getLocations()
226*b1cdbd2cSJim Jagielski 	{
227*b1cdbd2cSJim Jagielski 		return locations;
228*b1cdbd2cSJim Jagielski 	}
229*b1cdbd2cSJim Jagielski 
clearLocations()230*b1cdbd2cSJim Jagielski 	public static void clearLocations()
231*b1cdbd2cSJim Jagielski 	{
232*b1cdbd2cSJim Jagielski 		locations.clear();
233*b1cdbd2cSJim Jagielski 	}
234*b1cdbd2cSJim Jagielski 
show(String cardName)235*b1cdbd2cSJim Jagielski 	public void show(String cardName)
236*b1cdbd2cSJim Jagielski 	{
237*b1cdbd2cSJim Jagielski 		((CardLayout)screens.getLayout()).show(screens, cardName);
238*b1cdbd2cSJim Jagielski 	}
239*b1cdbd2cSJim Jagielski 
240*b1cdbd2cSJim Jagielski     /**
241*b1cdbd2cSJim Jagielski     * @param args the command line arguments
242*b1cdbd2cSJim Jagielski     */
main(String args[])243*b1cdbd2cSJim Jagielski     public static void main(String args[]) {
244*b1cdbd2cSJim Jagielski         String officePath = null;
245*b1cdbd2cSJim Jagielski         String netbeansPath = null;
246*b1cdbd2cSJim Jagielski         //String jeditPath = null;
247*b1cdbd2cSJim Jagielski         int i = 0;
248*b1cdbd2cSJim Jagielski 
249*b1cdbd2cSJim Jagielski         while (i < args.length) {
250*b1cdbd2cSJim Jagielski             if (args[i].equals("-help")) {
251*b1cdbd2cSJim Jagielski                 printUsage();
252*b1cdbd2cSJim Jagielski                 System.exit(0);
253*b1cdbd2cSJim Jagielski             }
254*b1cdbd2cSJim Jagielski             if (args[i].equals("-office"))
255*b1cdbd2cSJim Jagielski                 officePath = args[++i];
256*b1cdbd2cSJim Jagielski             if (args[i].equals("-netbeans"))
257*b1cdbd2cSJim Jagielski                 netbeansPath = args[++i];
258*b1cdbd2cSJim Jagielski             if (args[i].equals("-net"))
259*b1cdbd2cSJim Jagielski                 bNetworkInstall = true;
260*b1cdbd2cSJim Jagielski             if (args[i].equals("-bindings"))
261*b1cdbd2cSJim Jagielski                 bBindingsInstall = true;
262*b1cdbd2cSJim Jagielski             //if (args[i].equals("-jedit"))
263*b1cdbd2cSJim Jagielski             //    jeditPath = args[++i];
264*b1cdbd2cSJim Jagielski             i++;
265*b1cdbd2cSJim Jagielski         }
266*b1cdbd2cSJim Jagielski 
267*b1cdbd2cSJim Jagielski         //if (officePath == null && netbeansPath == null && jeditPath == null)
268*b1cdbd2cSJim Jagielski         if (officePath == null && netbeansPath == null)
269*b1cdbd2cSJim Jagielski             new InstallWizard().show();
270*b1cdbd2cSJim Jagielski 
271*b1cdbd2cSJim Jagielski         JLabel label = new JLabel();
272*b1cdbd2cSJim Jagielski         JProgressBar progressbar = new JProgressBar();
273*b1cdbd2cSJim Jagielski 
274*b1cdbd2cSJim Jagielski         try {
275*b1cdbd2cSJim Jagielski             System.out.println("Log file is: " +
276*b1cdbd2cSJim Jagielski                 System.getProperty("user.dir") +
277*b1cdbd2cSJim Jagielski                 File.separator + "SFrameworkInstall.log");
278*b1cdbd2cSJim Jagielski 
279*b1cdbd2cSJim Jagielski             LogStream log = new LogStream( "SFrameworkInstall.log" );
280*b1cdbd2cSJim Jagielski             System.setErr(log);
281*b1cdbd2cSJim Jagielski             System.setOut(log);
282*b1cdbd2cSJim Jagielski         }
283*b1cdbd2cSJim Jagielski         catch( FileNotFoundException fnfe ) {
284*b1cdbd2cSJim Jagielski             System.err.println("Error: Unable to create log file: "
285*b1cdbd2cSJim Jagielski                 + fnfe.getMessage());
286*b1cdbd2cSJim Jagielski             System.exit(-1);
287*b1cdbd2cSJim Jagielski         }
288*b1cdbd2cSJim Jagielski 
289*b1cdbd2cSJim Jagielski         if (officePath != null) {
290*b1cdbd2cSJim Jagielski             XmlUpdater xud = new XmlUpdater(officePath, label, progressbar, bNetworkInstall, bBindingsInstall );
291*b1cdbd2cSJim Jagielski             xud.run();
292*b1cdbd2cSJim Jagielski         }
293*b1cdbd2cSJim Jagielski 
294*b1cdbd2cSJim Jagielski         if (netbeansPath != null) {
295*b1cdbd2cSJim Jagielski             IdeUpdater ideup = new IdeUpdater(netbeansPath, label, progressbar);
296*b1cdbd2cSJim Jagielski             ideup.run();
297*b1cdbd2cSJim Jagielski         }
298*b1cdbd2cSJim Jagielski 
299*b1cdbd2cSJim Jagielski         //if (jeditPath != null) {
300*b1cdbd2cSJim Jagielski         //    IdeUpdater ideup = new IdeUpdater(jeditPath, label, progressbar);
301*b1cdbd2cSJim Jagielski         //    ideup.run();
302*b1cdbd2cSJim Jagielski         //}
303*b1cdbd2cSJim Jagielski     }
304*b1cdbd2cSJim Jagielski 
printUsage()305*b1cdbd2cSJim Jagielski     private static void printUsage() {
306*b1cdbd2cSJim Jagielski         System.err.println("java -jar SFrameworkInstall.jar");
307*b1cdbd2cSJim Jagielski         System.err.println("\t[-office <path_to_office_installation]");
308*b1cdbd2cSJim Jagielski         System.err.println("\t[-netbeans <path_to_netbeans_installation]");
309*b1cdbd2cSJim Jagielski         System.err.println("\t[-net]");
310*b1cdbd2cSJim Jagielski         System.err.println("\t[-bindings]");
311*b1cdbd2cSJim Jagielski         System.err.println("\n\n-net indicates that this is the network part of a network install.");
312*b1cdbd2cSJim Jagielski         System.err.println("-bindings will only install the menu & key bindings in user/config/soffice.cfg.");
313*b1cdbd2cSJim Jagielski         //System.err.println("\t[-jedit <path_to_jedit_installation]");
314*b1cdbd2cSJim Jagielski     }
315*b1cdbd2cSJim Jagielski 
isPatchedTypes()316*b1cdbd2cSJim Jagielski 	public static synchronized boolean isPatchedTypes()
317*b1cdbd2cSJim Jagielski 	{
318*b1cdbd2cSJim Jagielski 		return bPatchedTypes;
319*b1cdbd2cSJim Jagielski 	}
320*b1cdbd2cSJim Jagielski 
isPatchedJava()321*b1cdbd2cSJim Jagielski 	public static synchronized boolean isPatchedJava()
322*b1cdbd2cSJim Jagielski 	{
323*b1cdbd2cSJim Jagielski 		return bPatchedJava;
324*b1cdbd2cSJim Jagielski 	}
325*b1cdbd2cSJim Jagielski 
isPatchedRDB()326*b1cdbd2cSJim Jagielski 	public static synchronized boolean isPatchedRDB()
327*b1cdbd2cSJim Jagielski 	{
328*b1cdbd2cSJim Jagielski 		return bPatchedRDB;
329*b1cdbd2cSJim Jagielski 	}
330*b1cdbd2cSJim Jagielski 
isInstallStarted()331*b1cdbd2cSJim Jagielski 	public static synchronized boolean isInstallStarted()
332*b1cdbd2cSJim Jagielski 	{
333*b1cdbd2cSJim Jagielski 		return bInstallStarted;
334*b1cdbd2cSJim Jagielski 	}
335*b1cdbd2cSJim Jagielski 
setPatchedTypes(boolean value)336*b1cdbd2cSJim Jagielski 	public static synchronized void setPatchedTypes(boolean value)
337*b1cdbd2cSJim Jagielski 	{
338*b1cdbd2cSJim Jagielski 		bPatchedTypes = value;
339*b1cdbd2cSJim Jagielski 	}
340*b1cdbd2cSJim Jagielski 
setPatchedJava(boolean value)341*b1cdbd2cSJim Jagielski 	public static synchronized void setPatchedJava(boolean value)
342*b1cdbd2cSJim Jagielski 	{
343*b1cdbd2cSJim Jagielski 		bPatchedJava = value;
344*b1cdbd2cSJim Jagielski 	}
345*b1cdbd2cSJim Jagielski 
setPatchedRDB(boolean value)346*b1cdbd2cSJim Jagielski 	public static synchronized void setPatchedRDB(boolean value)
347*b1cdbd2cSJim Jagielski 	{
348*b1cdbd2cSJim Jagielski 		bPatchedRDB = value;
349*b1cdbd2cSJim Jagielski 	}
350*b1cdbd2cSJim Jagielski 
setInstallStarted(boolean value)351*b1cdbd2cSJim Jagielski 	public static synchronized void setInstallStarted(boolean value)
352*b1cdbd2cSJim Jagielski 	{
353*b1cdbd2cSJim Jagielski 		bInstallStarted = value;
354*b1cdbd2cSJim Jagielski 	}
355*b1cdbd2cSJim Jagielski 
setTypesPath(String path)356*b1cdbd2cSJim Jagielski 	public static synchronized void setTypesPath(String path)
357*b1cdbd2cSJim Jagielski 	{
358*b1cdbd2cSJim Jagielski 		typesPath = path;
359*b1cdbd2cSJim Jagielski 	}
360*b1cdbd2cSJim Jagielski 
setJavaPath(String path)361*b1cdbd2cSJim Jagielski 	public static synchronized void setJavaPath(String path)
362*b1cdbd2cSJim Jagielski 	{
363*b1cdbd2cSJim Jagielski 		javaPath = path;
364*b1cdbd2cSJim Jagielski 	}
365*b1cdbd2cSJim Jagielski 
getTypesPath()366*b1cdbd2cSJim Jagielski 	public static synchronized String getTypesPath()
367*b1cdbd2cSJim Jagielski 	{
368*b1cdbd2cSJim Jagielski 		return typesPath;
369*b1cdbd2cSJim Jagielski 	}
370*b1cdbd2cSJim Jagielski 
getJavaPath()371*b1cdbd2cSJim Jagielski 	public static synchronized String getJavaPath()
372*b1cdbd2cSJim Jagielski 	{
373*b1cdbd2cSJim Jagielski 		return javaPath;
374*b1cdbd2cSJim Jagielski 	}
375*b1cdbd2cSJim Jagielski 
376*b1cdbd2cSJim Jagielski     private javax.swing.JPanel  navigation;
377*b1cdbd2cSJim Jagielski     private javax.swing.JButton navBack;
378*b1cdbd2cSJim Jagielski     private javax.swing.JButton navNext;
379*b1cdbd2cSJim Jagielski     private javax.swing.JButton navCancel;
380*b1cdbd2cSJim Jagielski     private javax.swing.JPanel  screens;
381*b1cdbd2cSJim Jagielski 
382*b1cdbd2cSJim Jagielski     private Version version = null;
383*b1cdbd2cSJim Jagielski     private Final _final  = null;
384*b1cdbd2cSJim Jagielski     private IdeVersion ideversion = null;
385*b1cdbd2cSJim Jagielski     private IdeFinal idefinal = null;
386*b1cdbd2cSJim Jagielski     private IdeWelcome idewelcome = null;
387*b1cdbd2cSJim Jagielski     private static ArrayList locations = null;
388*b1cdbd2cSJim Jagielski 
389*b1cdbd2cSJim Jagielski     public static String VERSIONS = "VERSIONS";
390*b1cdbd2cSJim Jagielski     public static String WELCOME  = "WELCOME";
391*b1cdbd2cSJim Jagielski     public static String FINAL    = "FINAL";
392*b1cdbd2cSJim Jagielski     public static String IDEVERSIONS = "IDEVERSIONS";
393*b1cdbd2cSJim Jagielski     public static String IDEWELCOME  = "IDEWELCOME";
394*b1cdbd2cSJim Jagielski     public static String IDEFINAL    = "IDEFINAL";
395*b1cdbd2cSJim Jagielski 
396*b1cdbd2cSJim Jagielski     public static int DEFWIDTH     = 480;
397*b1cdbd2cSJim Jagielski     public static int DEFHEIGHT    = 240;
398*b1cdbd2cSJim Jagielski 
399*b1cdbd2cSJim Jagielski     private static String typesPath = null;
400*b1cdbd2cSJim Jagielski     private static String javaPath  = null;
401*b1cdbd2cSJim Jagielski 
402*b1cdbd2cSJim Jagielski     public static boolean bNetworkInstall   = false;
403*b1cdbd2cSJim Jagielski     public static boolean bBindingsInstall   = false;
404*b1cdbd2cSJim Jagielski 
405*b1cdbd2cSJim Jagielski     private static boolean bPatchedTypes     = false;
406*b1cdbd2cSJim Jagielski     private static boolean bPatchedJava      = false;
407*b1cdbd2cSJim Jagielski     private static boolean bPatchedRDB       = false;
408*b1cdbd2cSJim Jagielski     private static boolean bInstallStarted   = false;
409*b1cdbd2cSJim Jagielski 
410*b1cdbd2cSJim Jagielski }// InstallWizard
411