Package routine.view.gui

Source Code of routine.view.gui.MainGUI

package routine.view.gui;

import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;
import java.text.ParseException;

import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.UIManager;

import org.apache.log4j.Logger;

import routine.model.RoutineCollection;
import routine.model.RunParams;

import util.awt.ComponentSizeHandler;
import util.serial.ObjectStreamUtil;
import util.settings.Settings;

import com.jeta.forms.components.panel.FormPanel;
import com.jeta.forms.gui.common.FormException;

/**
* Startar en gui som l�ter en v�lja att
* tr�na glosor, skriva in glosor och l�sa en text
* samtidigt som man skriver in glosor.
*
* Plus administrativa handlingar f�r olika databaser.
*
* @author igor piltz
*
*/

public class MainGUI extends JFrame {

  private static org.apache.log4j.Logger log = Logger.getLogger(MainGUI.class);
 
  private RoutineCollection routines = null;
  private Settings settings;
 
  /**
   *
   */
  private static final long serialVersionUID = -3858819775827952944L;
 
 
  public MainGUI() throws FormException {
    this.setDefaultCloseOperation ( JFrame. DO_NOTHING_ON_CLOSE );
    WindowListener windowListener = new WindowAdapter() {
      // anonymous WindowAdapter class
      public void windowClosing (WindowEvent w) {
        setVisible(false);
       
        try {
          ObjectStreamUtil.writeObject(settings.get("routineFile", null), routines);
        } catch (IOException ex) {
          log.error(ex);
          JOptionPane.showMessageDialog(null,
            "Unable to write data to disk.",
              "File Error",
              JOptionPane.ERROR_MESSAGE);
        }
       
        if (settings != null)
          settings.save();
        dispose();
        System.exit(0);
      }
    };// end anonymous class
    this.addWindowListener( windowListener );
   
       
   
    JMenuItem createDatabase = new JMenuItem("Create");
    createDatabase.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        createDatabaseHandler();
      }
    });
   
    JMenuItem openDatabase = new JMenuItem("Open");
    openDatabase.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        openDatabaseHandler();
      }
    });
   
    JMenuItem closeDatabase = new JMenuItem("Close");
    closeDatabase.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        closeDatabaseHandler();
      }
    });
   
     
   
       
    JMenuItem users = new JMenuItem("Administrate");
    users.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        administrateUserHandler();
      }
    });
       
    JMenuItem about = new JMenuItem("About");
    about.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent arg0) {
        aboutHandler();
      }
    });
         
   
   
   
    // Menyn
    JMenuBar bar = new JMenuBar();
    JMenu dbMenu = new JMenu("Database");
    JMenu userMenu = new JMenu("User");
    JMenu trainMenu = new JMenu("Train");
    JMenu helpMenu = new JMenu("Help");
   
    bar.add(dbMenu);
    bar.add(userMenu);
    bar.add(trainMenu);
    bar.add(helpMenu);
   
    dbMenu.add(openDatabase);
    dbMenu.add(closeDatabase);
    dbMenu.add(createDatabase);
   
       
    userMenu.add(users);
       
    helpMenu.add(about);
   
    setJMenuBar(bar);
       
       
           

    settings = new Settings("config.ini", true);
    Settings.set(settings);
   
    String routineFile = settings.get("routineFile", null);
   
   
    try {
      if (routineFile != null)
        routines = (RoutineCollection)ObjectStreamUtil.readObject(routineFile);
      else {
        routines = new RoutineCollection()
        routines.addRunParams(new RunParams());
        ObjectStreamUtil.writeObject("data.xbl", routines);
        settings.set("routineFile", "data.xbl");
      }
     
     
    }  catch (FileNotFoundException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
    } catch (IOException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
    } catch (ClassNotFoundException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
    }
   
    InputStream resource = (InputStream)this.getClass().getResourceAsStream("/MainForm.jfrm");
    System.out.println("Resource: " + resource);
   
    FormPanel panel = new FormPanel( resource );      
    getContentPane().add( panel );
   
    // Configure the GUI-components
    ((RoutinesTable)panel.getTable("routinesTable")).setRoutines(routines);

   
    updateTitle();
   
  }

 
 
  protected void aboutHandler() {
    JOptionPane.showMessageDialog(this, "Talking Routine 0.1");
  }

 
 

  private void createDatabaseHandler() {
    final JFileChooser fc = new JFileChooser(".");
    fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    int returnVal = fc.showOpenDialog(this);
    if (returnVal == JFileChooser.APPROVE_OPTION) {
            File file = fc.getSelectedFile();
           
            int option = JOptionPane.showConfirmDialog(this, "This will delete and recreate " + file + ". Confirm that it is empty.");
            if (JOptionPane.OK_OPTION == option) {
              file.delete();
           
              String database = file.getAbsolutePath();
              /*
              try {
                trainer = DerbyLanguageTrainer.getInstance();
                trainer.create(database);
              } catch (SQLException e) {
                e.printStackTrace();
                JOptionPane.showMessageDialog(this, "Unable to create database: " + e.getMessage());
                return;
              }
              */
              updateTitle();
              JOptionPane.showMessageDialog(this, "Datbase created: " + database);
              settings.set("database", file.getAbsolutePath());
      }
        }
  }
 
  private void updateTitle() {
    if (routines != null)
      setTitle("VokabProgam: " + "@" + "Change ME");
    else setTitle("Talking Routine: No file");
  }

  private void openDatabaseHandler() {
    final JFileChooser fc = new JFileChooser(".");
    fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
   
    int returnVal = fc.showOpenDialog(this);
    if (returnVal == JFileChooser.APPROVE_OPTION) {
            File file = fc.getSelectedFile();
            /*
            try {
        trainer = DerbyLanguageTrainer.getInstance(file.getAbsolutePath());
      } catch (SQLException e) {
        e.printStackTrace();
        log.error(e);
        JOptionPane.showMessageDialog(this, "Unable to open database: " + file + ". " + e.getMessage());
        return;
      }
      */
      settings.set("database", file.getAbsolutePath());
    }
    updateTitle();
   
  }
 
  private void closeDatabaseHandler() {
    /*
    if (trainer != null) {
      trainer.close();
      trainer = null;
      setTitle("VokabProgram: No database");
    }
    */
   
  }
 
 
 
  private void exportTextHandler() {
    final JFileChooser fc = new JFileChooser(".");
    fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
    fc.showOpenDialog(this);
   
  }
 
  private void administrateUserHandler() {
    /*
    if (trainer == null) {
      JOptionPane.showMessageDialog(this, "No database set.");
      return;
    }
     
    UserFrame userFrame = new UserFrame(this, trainer);
    userFrame.pack();
    userFrame.setVisible(true);
    updateTitle();
    */
  }
 
  private void trainButtonHandler() {
    if (!readyToRun())
      return;
    /*
    try {
      new LanguageTrainerGUI(trainer);
    } catch (Exception e) {
      e.printStackTrace();
      log.error(e);
      JOptionPane.showMessageDialog(this, "Unable to open the trainer: " + e);
    }
    */
  }
 
  private void writeButtonHandler() {
    /*
    if (!readyToRun())
      return;
    try {
      new VocabInsertGUI(trainer);
    } catch (Exception e) {
      e.printStackTrace();
      log.error(e);
      JOptionPane.showMessageDialog(this, "Unable to open the add vocabulary interface: " + e);
    }
    */
  }
 
  private void readButtonHandler() {
    if (!readyToRun())
      return;
    /*
    ReadFileGUI gui;
    gui = new ReadFileGUI(trainer);
   
    try {
      ComponentSizeHandler.attach(gui, "readmain.siz", new Dimension(600, 400), true);
    } catch (FileNotFoundException e) {
      log.error(e);
    } catch (IOException e) {
      log.error(e);
    }
    gui.setVisible( true );
    */
  }
 
  private boolean readyToRun() {
    /*
    if (trainer == null) {
      JOptionPane.showMessageDialog(this, "No database opened or created");
      return false;
    }
   
    if (trainer.getDatabase() == null) {
      JOptionPane.showMessageDialog(this, "Database not bound");
      return false;
    }
   
    if (trainer.getCurrentUser() == null) {
      JOptionPane.showMessageDialog(this, "User not selected");
      return false;
    }
    */
    return true;
  }

 
 
  public static void main(String args[]) throws FileNotFoundException, IOException, FormException {
    try {
          UIManager.setLookAndFeel(new com.jgoodies.looks.plastic.PlasticXPLookAndFeel());
       } catch (Exception e) {
         log.error(e);
       }


   

   
    MainGUI main = new MainGUI();
   
    // set the size and location of this frame      
    ComponentSizeHandler.attach(main, "MainGUI.size", new Dimension(600, 600), true);      
    main.setLocation( 200, 100 );      
    main.setVisible( true );
  }
TOP

Related Classes of routine.view.gui.MainGUI

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.