diff options
author | Sven Gothel <[email protected]> | 2001-12-06 09:18:00 +0000 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2001-12-06 09:18:00 +0000 |
commit | 8fdc4baaee82a63247a9f4203dace4ee910881bb (patch) | |
tree | f9ff045a8756d695c3afafadb5256c86813eecef /Installer/MachineCtrl.java | |
parent | 5a67c0f5302dbd445d744450db58d1122096b742 (diff) |
2.8.1 rc 0rel-2-8-1-0-rc
Diffstat (limited to 'Installer/MachineCtrl.java')
-rw-r--r-- | Installer/MachineCtrl.java | 267 |
1 files changed, 232 insertions, 35 deletions
diff --git a/Installer/MachineCtrl.java b/Installer/MachineCtrl.java index c2435e4..664f47f 100644 --- a/Installer/MachineCtrl.java +++ b/Installer/MachineCtrl.java @@ -21,18 +21,27 @@ public class MachineCtrl public Button buttonOk = null; public Button buttonCancel = null; public Button buttonFileClasses = null; - public Button buttonFileNatives = null; + public Button buttonFileNativesBrowser = null; + public Button buttonFileNativesOS = null; public TextField tf_browser_classes = null; public TextField tf_browser_natives = null; + public TextField tf_os_natives = null; public boolean installGLUTFontSupport = true; + public boolean installGLFFontSupport = true; private Checkbox checkboxInstallGLUTFontSupport = null; + private Checkbox checkboxInstallGLFFontSupport = null; // Values for replaceable strings: public String browser_classes = null; public String browser_natives = null; + public String os_natives = null; public String os_dir = null; public String os_lib_dir = null; + private String javalibdir=null; + private String java_lib=null; + private Vector javalibdir_list=null; + // Java VM vendor and operating system stuff: public String jvmVendor = null; public String jvmVersion = null; @@ -48,8 +57,8 @@ public class MachineCtrl public String osArch = null; public boolean isWin32 = false; public boolean isWin95 = false; - public boolean isMacOs = false; public boolean isMacOs9 = false; + public boolean isMacOsX = false; public boolean isUnix = false; public int unixFlavor = unixFlavor_Unknown; static public final int @@ -58,7 +67,13 @@ public class MachineCtrl unixFlavor_Solaris = 2, unixFlavor_Aix = 3, unixFlavor_Irix = 4, - unixFlavor_HPUX = 5; + unixFlavor_HPUX = 5, + unixFlavor_MacOsX = 6; + public boolean isOsArchX86=false; + public boolean isOsArchPPC = false; + public boolean isOsArchSPARC = false; + public boolean isOsArchMIPS = false; + public boolean isOsArchPARISC = false; private String pathsep = null; private String filesep = null; @@ -128,10 +143,10 @@ public class MachineCtrl && (osName.indexOf("windows 95") >= 0) && (osVersion.startsWith("4.0")) ); - isMacOs = osName.startsWith("mac os"); - isMacOs9 = osVersion.startsWith("9."); + isMacOs9 = osName.startsWith("mac os") && osVersion.startsWith("9."); + isMacOsX = osName.startsWith("darwin"); - isUnix = ( (!isWin32) && (!isMacOs) ); + isUnix = ( (!isWin32) && (!isMacOs9) ); pathsep = System.getProperty("path.separator"); filesep = System.getProperty("file.separator"); @@ -148,12 +163,35 @@ public class MachineCtrl unixFlavor = unixFlavor_Irix; else if (osName.indexOf("hp-ux") >= 0) unixFlavor = unixFlavor_HPUX; + else if (osName.indexOf("darwin") >= 0) + unixFlavor = unixFlavor_MacOsX; } + if(osArch.indexOf("x86")>=0 || + osArch.indexOf("i86")>=0 || + osArch.indexOf("i786")>=0 || + osArch.indexOf("i686")>=0 || + osArch.indexOf("i586")>=0 || + osArch.indexOf("i486")>=0 || + osArch.indexOf("i386")>=0 + ) isOsArchX86=true; + else + isOsArchX86=false; + + isOsArchPPC = osArch.indexOf("ppc")>=0 || osArch.indexOf("powerpc")>=0; + isOsArchSPARC = osArch.indexOf("sparc")>=0; + isOsArchMIPS = osArch.indexOf("mips")>=0; + isOsArchPARISC = osArch.indexOf("ps_risc")>=0; + System.out.println("Machine Info:"); System.out.println("\tosName: "+osName); System.out.println("\tosVersion: "+osVersion); System.out.println("\tosArch: "+osArch); + System.out.println("\t\t isOsArchX86 ="+isOsArchX86); + System.out.println("\t\t isOsArchPPC ="+isOsArchPPC); + System.out.println("\t\t isOsArchSPARC ="+isOsArchSPARC); + System.out.println("\t\t isOsArchMIPS ="+isOsArchMIPS); + System.out.println("\t\t isOsArchPARISC ="+isOsArchPARISC); System.out.println(""); System.out.println("jvmVendor: "+jvmVendor); System.out.println("jvmVersion: "+jvmVersion+ @@ -359,11 +397,11 @@ public class MachineCtrl len = ((Integer)m.invoke(kernel32,args)).intValue(); f = new File(new String(buf)); os_lib_dir = f.getAbsolutePath().replace('\\','/'); - browser_natives = os_lib_dir; + os_natives = os_lib_dir; } catch (Exception e) { - browser_natives = null; + os_natives = null; System.out.println(e); System.out.println("call to get the sys dir failed:\n"+ buf); } @@ -399,7 +437,7 @@ public class MachineCtrl return false; } } // if (isWin32) - else if (isMacOs) + else if (isMacOs9) { // TODO: Add IE init here for browser_classes and browser_natives directories // under MacOs. @@ -414,8 +452,8 @@ public class MachineCtrl { if (isWin32) { - // Find WINDOWS and WINDOWS\SYSTEM directories for Win9x, - // or WINNT and WINNT\SYSTE23 directories for WinNT. + // Find WINDOWS and WINDOWS\SYSTEM directories for Win9x, + // or WINNT and WINNT\SYSTEM23 directories for WinNT. Process proc = null; String path = ""; try @@ -556,6 +594,7 @@ public class MachineCtrl || (os_lib_dir.length() < 1) ) os_lib_dir = thispath2; + os_natives = os_lib_dir; } } } @@ -606,7 +645,7 @@ public class MachineCtrl String jvmHome = java.lang.System.getProperty("java.home"); - if ( (isWin32) || (isUnix) || (isMacOs) ) + if ( (isWin32) || (isUnix) ) { if(DEBUG) System.out.println("find classpath ..."); @@ -688,30 +727,99 @@ public class MachineCtrl switch (unixFlavor) { case unixFlavor_Linux: - browser_natives = new String("/usr/lib"); + os_natives = new String("/usr/lib"); break; case unixFlavor_Solaris: - browser_natives = new String("/usr/lib"); + os_natives = new String("/usr/lib"); break; case unixFlavor_Aix: - browser_natives = new String("/usr/lib"); + os_natives = new String("/usr/lib"); break; case unixFlavor_Irix: - browser_natives = new String("/usr/lib"); + os_natives = new String("/usr/lib"); break; } } - else - browser_natives = thispath.substring(0,thispath.length()-7) + "bin"; + else if(os_natives==null||os_natives.length()==0) + os_natives = thispath.substring(0,thispath.length()-7) + "bin"; break; } } } } - } - } // if ( (isWin32) || (isUnix) || (isMacOs) ) + if(jvmHome!=null && jvmHome!="null") + { + if(isWin32) + { + if(isOsArchX86) + { + browser_natives=jvmHome+"/bin"; + } + java_lib="java.dll"; + } + if(isUnix) + { + if(unixFlavor==unixFlavor_Linux) + { + if(isOsArchX86) + { + browser_natives=jvmHome+"/lib/i386"; + } else if(isOsArchPPC) + { + browser_natives=jvmHome+"/lib/ppc"; + } + } else if(unixFlavor==unixFlavor_Solaris) + { + if(isOsArchSPARC) + browser_natives=jvmHome+"/lib/sparc"; + } else if(unixFlavor==unixFlavor_Irix) + { + if(isOsArchMIPS) + browser_natives=jvmHome+"/lib/mips"; + } else if(unixFlavor==unixFlavor_HPUX) + { + if(isOsArchPARISC) + browser_natives=jvmHome+"/lib/parisc"; + } else if(unixFlavor==unixFlavor_MacOsX) + { + if(isOsArchPPC) + { + browser_natives=jvmHome+"/lib/ppc"; + } + } + java_lib="libjava.so"; + } + if(isMacOs9) + { + if(isOsArchPPC) + browser_natives=jvmHome+"/lib/ppc"; + java_lib="java.dll"; + } + if(browser_natives==null || browser_natives.length()==0) + { + browser_natives=jvmHome+"/bin"; + java_lib="java.dll"; + } + javalibdir_list=new Vector(); + javalibdir_list.addElement(browser_natives); + javalibdir_list.addElement(jvmHome+"/bin"); + javalibdir_list.addElement(jvmHome+"/lib/i686"); + javalibdir_list.addElement(jvmHome+"/lib/i686/i686/native_threads"); + javalibdir_list.addElement(jvmHome+"/lib/i686/i686/green_threads"); + javalibdir_list.addElement(jvmHome+"/lib/i386"); + javalibdir_list.addElement(jvmHome+"/lib/ppc"); + javalibdir_list.addElement(jvmHome+"/lib/sparc"); + javalibdir_list.addElement(jvmHome+"/lib/mips"); + javalibdir_list.addElement(jvmHome+"/lib/parisc"); + javalibdir_list.addElement(jvmHome+"/lib/risc"); + javalibdir=FileTool.libraryExists(this,java_lib,javalibdir_list); + if (javalibdir!=null) + browser_natives=javalibdir; + } // if jvmhome!=null + } // if jvmhome-classpath exists ! + } // if ( (isWin32) || (isUnix) ) /* - else if (isMacOs) + else if (isMacOs9) { } */ @@ -761,7 +869,7 @@ public class MachineCtrl } Panel panMain = new Panel(); - panMain.setLayout(new GridLayout(10,1)); + panMain.setLayout(new GridLayout(11,1)); if(osVersion!=null && osArch!=null) panMain.add(new Label("OS: "+osName+" "+osVersion+" "+osArch)); @@ -772,7 +880,7 @@ public class MachineCtrl panFlow.setLayout(new FlowLayout(FlowLayout.LEFT,0,0)); panFlow.add(new Label("os-dir/os-library-dir:")); if(os_dir!=null && os_lib_dir!=null) - panFlow.add(new Label(os_dir.trim()+"/"+os_lib_dir.trim())); + panFlow.add(new Label(os_dir.trim()+" / "+os_lib_dir.trim())); else panFlow.add(new Label("none/none")); panMain.add(panFlow); @@ -783,7 +891,16 @@ public class MachineCtrl checkboxInstallGLUTFontSupport = new Checkbox("with GLUT-Fonts", true); checkboxInstallGLUTFontSupport.addItemListener(this); panGL4JSpecials.add(checkboxInstallGLUTFontSupport); - panGL4JSpecials.add(new Label("(takes up to 200kBytes)")); + panGL4JSpecials.add(new Label("(takes up to 111 kBytes)")); + panMain.add(panGL4JSpecials); + + panGL4JSpecials = new Panel(); + panGL4JSpecials.setLayout(new GridLayout(1,2)); + installGLFFontSupport = true; + checkboxInstallGLFFontSupport = new Checkbox("with GLF-Fonts", true); + checkboxInstallGLFFontSupport.addItemListener(this); + panGL4JSpecials.add(checkboxInstallGLFFontSupport); + panGL4JSpecials.add(new Label("(takes up to 611 kBytes)")); panMain.add(panGL4JSpecials); Panel panOS = new Panel(); @@ -794,7 +911,7 @@ public class MachineCtrl cb1 = new Checkbox("Win95", isWin95); cb1.setEnabled(false); panOS.add(cb1); - cb1 = new Checkbox("MacOS", isMacOs); + cb1 = new Checkbox("MacOS9", isMacOs9); cb1.setEnabled(false); panOS.add(cb1); cb1 = new Checkbox("Unix", isUnix); @@ -805,7 +922,7 @@ public class MachineCtrl if(isUnix) { Panel panOSUnix = new Panel(); - panOSUnix.setLayout(new GridLayout(2,2)); + panOSUnix.setLayout(new GridLayout(2,3)); cb1 = new Checkbox("GNU/Linux", unixFlavor==unixFlavor_Linux); cb1.setEnabled(false); panOSUnix.add(cb1); @@ -818,6 +935,12 @@ public class MachineCtrl cb1 = new Checkbox("Irix", unixFlavor==unixFlavor_Irix); cb1.setEnabled(false); panOSUnix.add(cb1); + cb1 = new Checkbox("HP-UX", unixFlavor==unixFlavor_HPUX); + cb1.setEnabled(false); + panOSUnix.add(cb1); + cb1 = new Checkbox("Darwin/MacOsX", unixFlavor==unixFlavor_MacOsX); + cb1.setEnabled(false); + panOSUnix.add(cb1); panMain.add(panOSUnix); } @@ -850,16 +973,29 @@ public class MachineCtrl buttonFileClasses.addActionListener(this); panFlow.add(buttonFileClasses); panMain.add(panFlow); + panFlow = new Panel(); //panFlow.setLayout(new GridLayout(1,3)); panFlow.setLayout(new FlowLayout(FlowLayout.LEFT)); - panFlow.add(new Label("Native-Lib's-Path:")); + panFlow.add(new Label("Java Native-Lib's-Path's:")); tf_browser_natives = new TextField(browser_natives,60); tf_browser_natives.addActionListener(this); panFlow.add(tf_browser_natives); - buttonFileNatives = new Button("..."); - buttonFileNatives.addActionListener(this); - panFlow.add(buttonFileNatives); + buttonFileNativesBrowser = new Button("..."); + buttonFileNativesBrowser.addActionListener(this); + panFlow.add(buttonFileNativesBrowser); + panMain.add(panFlow); + + panFlow = new Panel(); + //panFlow.setLayout(new GridLayout(1,3)); + panFlow.setLayout(new FlowLayout(FlowLayout.LEFT)); + panFlow.add(new Label("OS Native-Lib's-Path's:")); + tf_os_natives = new TextField(os_natives,60); + tf_os_natives.addActionListener(this); + panFlow.add(tf_os_natives); + buttonFileNativesOS = new Button("..."); + buttonFileNativesOS.addActionListener(this); + panFlow.add(buttonFileNativesOS); panMain.add(panFlow); dialog.add("Center", panMain); @@ -974,15 +1110,18 @@ public class MachineCtrl fisdir=false; try { - fname = tf_browser_natives.getText().replace('\\','/'); + fname = tf_browser_natives.getText().replace('\\','/'); + if(fname!=null && fname.length()>0) fname = fname.trim(); - f = new File(fname); + if(fname!=null && fname.length()>0) + { + f = new File(fname); fexist=f.exists(); fisdir=f.isDirectory(); if(f!=null && fexist && fisdir ) { browser_natives = fname; - System.out.println("Set Native-Dir to: "+ + System.out.println("Set Browser-Native-Dir to: "+ browser_natives); } else { str = new String ("directory <"+ @@ -998,6 +1137,7 @@ public class MachineCtrl tf_browser_natives.requestFocus(); tf_browser_natives.getToolkit().beep(); } + } } catch (Exception ex) { ex.printStackTrace(); str = new String ("EXCEPTION directory <"+ @@ -1013,6 +1153,50 @@ public class MachineCtrl tf_browser_natives.requestFocus(); tf_browser_natives.getToolkit().beep(); } + try { + fname = tf_os_natives.getText().replace('\\','/'); + if(fname!=null && fname.length()>0) + fname = fname.trim(); + if(fname!=null && fname.length()>0) + { + f = new File(fname); + fexist=f.exists(); + fisdir=f.isDirectory(); + if(f!=null && fexist && fisdir ) + { + os_natives = fname; + System.out.println("Set OS-Native-Dir to: "+ + os_natives); + } else { + str = new String ("directory <"+ + tf_os_natives.getText().trim()+ + "> is invalid "); + if(f!=null) { + str+= "( exist="+ fexist + + ", isDir="+fisdir+ ")"; + } else { + str+= "( f is NULL )"; + } + ok=false; + tf_os_natives.requestFocus(); + tf_os_natives.getToolkit().beep(); + } + } + } catch (Exception ex) { + ex.printStackTrace(); + str = new String ("EXCEPTION directory <"+ + tf_os_natives.getText().trim()+ + "> is invalid "); + if(f!=null) { + str+= "( exist="+ fexist + + ", isDir="+fisdir+ ")"; + } else { + str+= "( f is NULL )"; + } + ok=false; + tf_os_natives.requestFocus(); + tf_os_natives.getToolkit().beep(); + } if(!ok && str!=null) { System.out.println(str); @@ -1054,14 +1238,22 @@ public class MachineCtrl fd.show(); tf_browser_classes.setText(fd.getDirectory()); //checkTextFields(); - } else if(src.equals(buttonFileNatives)) + } else if(src.equals(buttonFileNativesBrowser)) { FileDialog fd = - new FileDialog(dialog,"GL4Java Classes Dir",FileDialog.SAVE); + new FileDialog(dialog,"GL4Java JVM Natives Dir",FileDialog.SAVE); fd.setDirectory(tf_browser_natives.getText()); fd.show(); tf_browser_natives.setText(fd.getDirectory()); //checkTextFields(); + } else if(src.equals(buttonFileNativesOS)) + { + FileDialog fd = + new FileDialog(dialog,"GL4Java OS Natives Dir",FileDialog.SAVE); + fd.setDirectory(tf_os_natives.getText()); + fd.show(); + tf_os_natives.setText(fd.getDirectory()); + //checkTextFields(); } else if(src.equals(goToJausoftGL4Java) && applet!=null) { try { @@ -1080,6 +1272,11 @@ public class MachineCtrl installGLUTFontSupport = checkboxInstallGLUTFontSupport.getState(); } + if(checkboxInstallGLFFontSupport.equals(e.getItemSelectable())) + { + installGLFFontSupport = + checkboxInstallGLFFontSupport.getState(); + } } |