summaryrefslogtreecommitdiff
path: root/scripting/workben/installer/InstallWizard.java
diff options
context:
space:
mode:
Diffstat (limited to 'scripting/workben/installer/InstallWizard.java')
-rw-r--r--scripting/workben/installer/InstallWizard.java389
1 files changed, 389 insertions, 0 deletions
diff --git a/scripting/workben/installer/InstallWizard.java b/scripting/workben/installer/InstallWizard.java
new file mode 100644
index 000000000000..14fae1c5dfcd
--- /dev/null
+++ b/scripting/workben/installer/InstallWizard.java
@@ -0,0 +1,389 @@
+package installer;
+
+/*
+ * InstallWizard.java
+ *
+ * Created on 04 July 2002, 15:09
+ */
+
+/**
+ *
+ * @author mike
+ */
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+import java.net.*;
+import java.io.*;
+
+public class InstallWizard extends javax.swing.JFrame implements ActionListener {
+/*
+ private static class ShutdownHook extends Thread {
+ public void run()
+ {
+ if (InstallWizard.isInstallStarted())
+ {
+ // Check for and backup any config.xml files
+ // Check for and backup any StarBasic macro files
+ // Check for and backup ProtocolHandler
+
+ if (!InstallWizard.isPatchedTypes())
+ {
+ File backup = new File(InstUtil.getTmpDir(), "TypeDetection.xml");
+ File destination = new File(InstallWizard.getTypesPath());
+ InstUtil.copy(backup, destination); //Restore typedetection.xml
+ }
+ if (!InstallWizard.isPatchedJava())
+ {
+ File backup = new File(InstUtil.getTmpDir(), "Java.xml");
+ File destination = new File(InstallWizard.getJavaPath());
+ InstUtil.copy(backup, destination); //Restore typedetection.xml
+ }
+ if (!InstallWizard.isPatchedRDB())
+ {
+ File backup = new File(InstUtil.getTmpDir(), "applicat.rdb");
+ File destination = new File(InstallWizard.getJavaPath());
+ //InstUtil.copy(backup, destination); //Restore typedetection.xml
+ }
+
+ System.out.println( "ShutdownHook" );
+ }
+
+ InstUtil.removeTmpDir();
+ }
+ }// class ShutdownHook
+
+ static {
+ Runtime rt=Runtime.getRuntime();
+ rt.addShutdownHook(new ShutdownHook());
+ }
+*/
+ /** Creates new form InstallWizard */
+ public InstallWizard() {
+ super("Office Scripting Framework Installer - Early Developer Release");
+
+ try {
+ System.out.print("All diagnostic output is being redirected to SFrameworkInstall.log\n");
+ System.out.print("Location: "+ System.getProperty( "user.dir" ) +
+ File.separator + "SFrameworkInstall.log\n");
+
+ LogStream log = new LogStream( "SFrameworkInstall.log" );
+ System.setErr(log);
+
+ System.setOut(log);
+ }
+ catch( FileNotFoundException fnfe ) {
+ System.err.println("Office Scripting Framework Installer - Error: ");
+ System.err.println("Unable to create log file for installation.");
+ exitForm(null);
+ }
+
+ //setBackground(Color.WHITE);
+ setBackground(new Color(0,0,0));
+ locations = new ArrayList();
+ //Point center = GraphicsEnvironment.getLocalGraphicsEnvironment().getCenterPoint();
+ Point center = new Point( 400, 400 );
+ int windowWidth=200;
+ int windowHeight=300;
+ setSize(windowWidth,windowHeight);
+ setBounds((center.x-windowWidth/2)-115,(center.y-windowWidth/2)-100, windowWidth,windowHeight);
+ initComponents();
+ setResizable(false);
+ }
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ */
+ private void initComponents() {
+ navigation = new javax.swing.JPanel();
+ navBack = new javax.swing.JButton();
+ navNext = new javax.swing.JButton();
+ navCancel = new javax.swing.JButton();
+ screens = new javax.swing.JPanel();
+
+ addWindowListener(new java.awt.event.WindowAdapter() {
+ public void windowClosing(java.awt.event.WindowEvent evt) {
+ exitForm(evt);
+ }
+ });
+
+ navigation.setLayout(new java.awt.GridBagLayout());
+ java.awt.GridBagConstraints gridBagConstraints1;
+
+ navBack.setText("<< Back");
+ gridBagConstraints1 = new java.awt.GridBagConstraints();
+ gridBagConstraints1.insets = new java.awt.Insets(1, 1, 1, 1);
+
+ navNext.setText("Next >>");
+ gridBagConstraints1 = new java.awt.GridBagConstraints();
+ gridBagConstraints1.gridx = 2;
+ gridBagConstraints1.gridy = 0;
+
+ navCancel.setText("Cancel");
+ gridBagConstraints1 = new java.awt.GridBagConstraints();
+ gridBagConstraints1.gridx = 6;
+ gridBagConstraints1.gridy = 0;
+ //navigation.add(navNext, gridBagConstraints1);
+ //navigation.add(navBack, gridBagConstraints1);
+ //navigation.add(navCancel, gridBagConstraints1);
+
+ getContentPane().add(navigation, java.awt.BorderLayout.SOUTH);
+ screens.setLayout(new java.awt.CardLayout());
+ screens.add(WELCOME, new Welcome(this));
+ version = new Version(this);
+ screens.add(VERSIONS, version);
+ _final = new Final(this);
+ screens.add(FINAL, _final);
+
+ //boolean hasIDEInstallation = (InstUtil.hasNetbeansInstallation() || InstUtil.hasJeditInstallation()) ;
+ boolean hasIDEInstallation = ( InstUtil.hasNetbeansInstallation() ) ;
+
+ if( hasIDEInstallation )
+ {
+ idewelcome = new IdeWelcome(this);
+ screens.add(IDEWELCOME, idewelcome);
+ ideversion = new IdeVersion(this);
+ screens.add(IDEVERSIONS, ideversion);
+ idefinal = new IdeFinal(this);
+ screens.add(IDEFINAL, idefinal);
+ }
+ getContentPane().add(screens, java.awt.BorderLayout.CENTER);
+
+ navNext.addActionListener(this);
+ navNext.addActionListener(version);
+ navNext.addActionListener(_final);
+
+ if( hasIDEInstallation )
+ {
+ navNext.addActionListener(ideversion);
+ navNext.addActionListener(idefinal);
+ }
+
+ navCancel.addActionListener(this);
+ navBack.addActionListener(this);
+
+
+ URL url = this.getClass().getResource("sidebar.jpg");
+ JLabel sideBar = new JLabel();
+ sideBar.setIcon(new ImageIcon(url));
+ getContentPane().add (sideBar, java.awt.BorderLayout.WEST);
+ pack();
+ }// initComponents
+
+ /** Exit the Application */
+ public void exitForm(java.awt.event.WindowEvent evt) {
+ System.exit(0);
+ }
+
+
+ public void actionPerformed(ActionEvent e)
+ {
+ if (e.getSource() == navNext)
+ {
+ ((CardLayout)screens.getLayout()).next(screens);
+ }
+
+ if (e.getSource() == navCancel)
+ {
+ exitForm(null);
+ }
+
+ if (e.getSource() == navBack)
+ {
+ ((CardLayout)screens.getLayout()).previous(screens);
+ }
+ }// actionPerformed
+
+ public static void storeLocation(String path)
+ {
+ locations.add(path);
+ }
+
+ public static ArrayList getLocations()
+ {
+ return locations;
+ }
+
+ public static void clearLocations()
+ {
+ locations.clear();
+ }
+
+ public void show(String cardName)
+ {
+ ((CardLayout)screens.getLayout()).show(screens, cardName);
+ }
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ String officePath = null;
+ String netbeansPath = null;
+ //String jeditPath = null;
+ int i = 0;
+
+ while (i < args.length) {
+ if (args[i].equals("-help")) {
+ printUsage();
+ System.exit(0);
+ }
+ if (args[i].equals("-office"))
+ officePath = args[++i];
+ if (args[i].equals("-netbeans"))
+ netbeansPath = args[++i];
+ if (args[i].equals("-net"))
+ bNetworkInstall = true;
+ if (args[i].equals("-bindings"))
+ bBindingsInstall = true;
+ //if (args[i].equals("-jedit"))
+ // jeditPath = args[++i];
+ i++;
+ }
+
+ //if (officePath == null && netbeansPath == null && jeditPath == null)
+ if (officePath == null && netbeansPath == null)
+ new InstallWizard().show();
+
+ JLabel label = new JLabel();
+ JProgressBar progressbar = new JProgressBar();
+
+ try {
+ System.out.println("Log file is: " +
+ System.getProperty("user.dir") +
+ File.separator + "SFrameworkInstall.log");
+
+ LogStream log = new LogStream( "SFrameworkInstall.log" );
+ System.setErr(log);
+ System.setOut(log);
+ }
+ catch( FileNotFoundException fnfe ) {
+ System.err.println("Error: Unable to create log file: "
+ + fnfe.getMessage());
+ System.exit(-1);
+ }
+
+ if (officePath != null) {
+ XmlUpdater xud = new XmlUpdater(officePath, label, progressbar, bNetworkInstall, bBindingsInstall );
+ xud.run();
+ }
+
+ if (netbeansPath != null) {
+ IdeUpdater ideup = new IdeUpdater(netbeansPath, label, progressbar);
+ ideup.run();
+ }
+
+ //if (jeditPath != null) {
+ // IdeUpdater ideup = new IdeUpdater(jeditPath, label, progressbar);
+ // ideup.run();
+ //}
+ }
+
+ private static void printUsage() {
+ System.err.println("java -jar SFrameworkInstall.jar");
+ System.err.println("\t[-office <path_to_office_installation]");
+ System.err.println("\t[-netbeans <path_to_netbeans_installation]");
+ System.err.println("\t[-net]");
+ System.err.println("\t[-bindings]");
+ System.err.println("\n\n-net indicates that this is the network part of a network install.");
+ System.err.println("-bindings will only install the menu & key bindings in user/config/soffice.cfg.");
+ //System.err.println("\t[-jedit <path_to_jedit_installation]");
+ }
+
+ public static synchronized boolean isPatchedTypes()
+ {
+ return bPatchedTypes;
+ }
+
+ public static synchronized boolean isPatchedJava()
+ {
+ return bPatchedJava;
+ }
+
+ public static synchronized boolean isPatchedRDB()
+ {
+ return bPatchedRDB;
+ }
+
+ public static synchronized boolean isInstallStarted()
+ {
+ return bInstallStarted;
+ }
+
+ public static synchronized void setPatchedTypes(boolean value)
+ {
+ bPatchedTypes = value;
+ }
+
+ public static synchronized void setPatchedJava(boolean value)
+ {
+ bPatchedJava = value;
+ }
+
+ public static synchronized void setPatchedRDB(boolean value)
+ {
+ bPatchedRDB = value;
+ }
+
+ public static synchronized void setInstallStarted(boolean value)
+ {
+ bInstallStarted = value;
+ }
+
+ public static synchronized void setTypesPath(String path)
+ {
+ typesPath = path;
+ }
+
+ public static synchronized void setJavaPath(String path)
+ {
+ javaPath = path;
+ }
+
+ public static synchronized String getTypesPath()
+ {
+ return typesPath;
+ }
+
+ public static synchronized String getJavaPath()
+ {
+ return javaPath;
+ }
+
+ private javax.swing.JPanel navigation;
+ private javax.swing.JButton navBack;
+ private javax.swing.JButton navNext;
+ private javax.swing.JButton navCancel;
+ private javax.swing.JPanel screens;
+
+ private Version version = null;
+ private Final _final = null;
+ private IdeVersion ideversion = null;
+ private IdeFinal idefinal = null;
+ private IdeWelcome idewelcome = null;
+ private static ArrayList locations = null;
+
+ public static String VERSIONS = "VERSIONS";
+ public static String WELCOME = "WELCOME";
+ public static String FINAL = "FINAL";
+ public static String IDEVERSIONS = "IDEVERSIONS";
+ public static String IDEWELCOME = "IDEWELCOME";
+ public static String IDEFINAL = "IDEFINAL";
+
+ public static int DEFWIDTH = 480;
+ public static int DEFHEIGHT = 240;
+
+ private static String typesPath = null;
+ private static String javaPath = null;
+
+ public static boolean bNetworkInstall = false;
+ public static boolean bBindingsInstall = false;
+
+ private static boolean bPatchedTypes = false;
+ private static boolean bPatchedJava = false;
+ private static boolean bPatchedRDB = false;
+ private static boolean bInstallStarted = false;
+
+}// InstallWizard