package uk.co.mmscomputing.application.install;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainApp extends JApplet{
Log log=new Log();
Setup setup=new Setup(log);
public void init(){
Container cp=this.getContentPane();
cp.setLayout(new BorderLayout());
cp.add(setup,BorderLayout.NORTH);
cp.add(log,BorderLayout.CENTER);
JButton button=new JButton(getStartAction());
cp.add(button,BorderLayout.SOUTH);
log.msg("This installer will\nextract the 'uk.co.mmscomputing' packages in the installation directory,"
+ "\ncompile all the '*.java' files,"
+ "if provided with a valid path to a java compiler (javac),"
+ "\nand start 'uk.co.mmscomputing.application.answerphone.MainApp'."
+ "\n\nA path to a java compiler might look like :"
+ "\nWindows XP : c:\\j2sdk1.4.2\\bin\\javac"
+ "\nLinux : /usr/java/j2sdk1.4.2/bin/javac"
+ "\n\nPlease press the start button to continue.\n\n"
);
}
public Action getStartAction(){
return new AbstractAction("start"){
public void actionPerformed(ActionEvent ev){
start();
}
};
}
public void start(){
final String javac=setup.getJavac();
final String dir=setup.getUserdir();
log.msg(javac);
new Thread(){
public void run(){
try{
if(setup.getExtractIt()){
new Unzip(log).extract("mmsc.jar");
}
Engine engine=new Engine(log);
if(setup.getCompileIt()){
engine.traverse(dir,javac);
engine.metainf();
}
if(setup.getStartImageViewer()){
engine.run(javac,dir,"uk.co.mmscomputing.application.imageviewer.MainApp");
}
if(setup.getStartAnswerphone()){
engine.run(javac,dir,"uk.co.mmscomputing.application.answerphone.MainApp");
}
}catch(Exception e){
log.err(e);
}
}
}.start();
}
public void main(String title, String[] argv){
JFrame frame=new JFrame(title);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.getContentPane().add(this);
GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle r=ge.getMaximumWindowBounds();
frame.setSize(r.width,r.height);
// frame.setLocationRelativeTo(null);
// frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
init();
frame.setVisible(true);
}
public static void main(String[] argv){
MainApp app=new MainApp();
app.main("mmsc java package setup", argv);
}
}