package jin; import java.io.*; import java.util.*; public class LoadThread extends Thread { JIN theApp; LoadThread(JIN win) { theApp = win; } public void run() { // Main Menu setTask("Main Menu..."); theApp.frmMain = new jin.MainMenu.MainFrame(theApp); // Options Dialog setTask("Options Dialog..."); theApp.frmOptions = new jin.OptionDialog.OptionFrame(theApp); // Install Wizard setTask("Install Wizard..."); theApp.frmWizard = new jin.InstallWizard.InstallWizard(theApp); // Configuration File setTask("Configuration File..."); loadConf(theApp.frmOptions); theApp.launchProgram(); } private void setTask(String task) { theApp.pnlStat.lblStat.setText(task); } private void loadConf(jin.OptionDialog.OptionFrame optFrame) { int osCount = countOSes(); Object os[] = new Object[osCount]; optFrame.osCnt = osCount; int loc = 0; try { BufferedReader in = new BufferedReader(new FileReader("JIN.conf")); for(;;) { String temp = in.readLine(); if(temp == null) break; else { if(temp.trim().toUpperCase().startsWith("[SYSMANIFEST]")) optFrame.setSysManifest(deriveEnd(temp)); else if(temp.trim().toUpperCase().startsWith("[OSTYPE]")) os[loc++] = new String(deriveOS(deriveEnd(temp))); } } optFrame.invalidateOS(os); optFrame.updateSettings(); in.close(); } catch(Exception x) { System.err.println(x); } } private int countOSes() { int result = 0; try { BufferedReader in = new BufferedReader(new FileReader("JIN.conf")); for(;;) { String temp = in.readLine(); if(temp == null) break; else { if(temp.trim().toUpperCase().startsWith("[OSTYPE]")) result++; } } in.close(); } catch(Exception OSFuckUp) { System.err.println(OSFuckUp); } return result; } private String deriveOS(String fn) { String result = "No Name"; try { BufferedReader inOS = new BufferedReader(new FileReader(fn)); for(;;) { String temp = inOS.readLine(); if(temp == null) break; else { if(temp.trim().toUpperCase().startsWith("[OSNAME]")) result = deriveEnd(temp); } } inOS.close(); } catch(Exception deriveOSErr) { System.err.println(deriveOSErr); } return (result + ":" + fn); } private String deriveEnd(String line) { StringTokenizer t = new StringTokenizer(line, "="); String result = t.nextToken(); result = t.nextToken().trim(); return result; } }