/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ package org.openoffice.setup.Controller; import org.openoffice.setup.InstallData; import org.openoffice.setup.Installer.Installer; import org.openoffice.setup.Installer.InstallerFactory; import org.openoffice.setup.PanelController; import org.openoffice.setup.Panel.Prologue; import org.openoffice.setup.SetupData.PackageDescription; import org.openoffice.setup.SetupData.SetupDataProvider; import org.openoffice.setup.Util.Controller; import org.openoffice.setup.Util.Dumper; import org.openoffice.setup.Util.ModuleCtrl; import org.openoffice.setup.Util.SystemManager; public class PrologueCtrl extends PanelController { private String helpFile; public PrologueCtrl() { super("Prologue", new Prologue()); helpFile = "String_Helpfile_Prologue"; } // public void beforeShow() { public void duringShow() { getSetupFrame().setButtonEnabled(false, getSetupFrame().BUTTON_PREVIOUS); Thread t = new Thread() { public void run() { InstallData installData = InstallData.getInstance(); if ( ! installData.preInstallDone() ) { getSetupFrame().setButtonEnabled(false, getSetupFrame().BUTTON_NEXT); Controller.checkPackagePathExistence(installData); Controller.checkPackageFormat(installData); if (( installData.getOSType().equalsIgnoreCase("SunOS") ) && ( installData.isMultiLingual() )) { Controller.collectSystemLanguages(installData); } PackageDescription packageData = SetupDataProvider.getPackageDescription(); Installer installer = InstallerFactory.getInstance(); installer.preInstall(packageData); installData.setPreInstallDone(true); if ( SystemManager.logModuleStates() ) { installData.setLogModuleStates(true); } if ( installData.logModuleStates() ) { Dumper.logModuleStates(packageData, "Prologue Dialog"); } if (( installData.getOSType().equalsIgnoreCase("SunOS") ) && ( installData.isMultiLingual() )) { ModuleCtrl.checkLanguagesPackages(packageData, installData); // int count = installData.getPreselectedLanguages(); // System.err.println("Number of preselected language packages: " + count); if ( installData.getPreselectedLanguages() == 0 ) { // Something misterious happened. Setting all languages again. ModuleCtrl.setLanguagesPackages(packageData); } if ( installData.logModuleStates() ) { Dumper.logModuleStates(packageData, "Prologue Dialog Language Selection"); } } if ( ! installData.isMultiLingual() ) { ModuleCtrl.setHiddenLanguageModuleDefaultSettings(packageData); if ( installData.logModuleStates() ) { Dumper.logModuleStates(packageData, "after setHiddenLanguageModuleDefaultSettings"); } } if (( installData.isRootInstallation() ) && ( installData.getOSType().equalsIgnoreCase("SunOS") )) { // Check, if root has write access in /usr and /etc . // In sparse zones with imported directories this is not always the case. if ( Controller.reducedRootWritePrivileges() ) { ModuleCtrl.setIgnoreNonRelocatablePackages(packageData); } if ( installData.logModuleStates() ) { Dumper.logModuleStates(packageData, "after setIgnoreNonRelocatablePackages"); } } if ( installData.isRootInstallation() ) { // Setting installation directory! String dir = "/"; installData.setInstallDir(dir); installData.setInstallDefaultDir(installData.getDefaultDir()); Controller.checkForNewerVersion(installData); // Check Write privileges in installation directory (installData.getInstallDefaultDir()) // If the directory exists, is has to be tested, whether the user has write access dir = installData.getInstallDefaultDir(); if ( SystemManager.exists_directory(dir) ) { if ( ! Controller.createdSubDirectory(dir) ) { System.err.println("ERROR: No write privileges inside directory: " + dir); System.exit(1); } } // If the directory does not exist, is has to be tested, whether the user can create it if ( ! SystemManager.exists_directory(dir)) { if ( ! Controller.createdDirectory(dir) ) { System.err.println("ERROR: No privileges to create directory: " + dir); System.exit(1); } } // Setting macro SetupDataProvider.setNewMacro("DIR", dir); // important for string replacement // Calculate available disc space int discSpace = SystemManager.calculateDiscSpace(dir); installData.setAvailableDiscSpace(discSpace); if ( ! installData.databaseAnalyzed()) { ModuleCtrl.defaultDatabaseAnalysis(installData); installData.setDatabaseAnalyzed(true); } } getSetupFrame().setButtonEnabled(true, getSetupFrame().BUTTON_NEXT); } } }; t.start(); } public boolean afterShow(boolean nextButtonPressed) { boolean repeatDialog = false; getSetupFrame().setButtonEnabled(true, getSetupFrame().BUTTON_PREVIOUS); return repeatDialog; } public String getNext() { InstallData data = InstallData.getInstance(); if ( data.hideEula() ) { if ( data.isRootInstallation() ) { if ( data.olderVersionExists() ) { return new String("InstallationImminent"); } else if ( data.sameVersionExists() ) { return new String("ChooseComponents"); } else { return new String("ChooseInstallationType"); } } else { return new String("ChooseDirectory"); } } else { return new String("AcceptLicense"); } } public String getPrevious() { return null; } public final String getHelpFileName() { return this.helpFile; } }