Package trafficjams.model.visualization

Source Code of trafficjams.model.visualization.FileChoozer$Filter

package trafficjams.model.visualization;

import trafficjams.model.registers.TrafficRegister;
import trafficjams.model.util.Serializator;

import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
* Created by IntelliJ IDEA.
* User: Администратор
* Date: 17.11.11
* Time: 19:24
* To change this template use File | Settings | File Templates.
*/
public class FileChoozer extends JDialog implements ActionListener {

    class  Filter extends FileFilter{

        @Override
        public boolean accept(File f) {
            return f.isDirectory() || f.getAbsolutePath().toUpperCase().endsWith(MAP_EXT);
        }

        @Override
        public String getDescription() {
            return "Map file";
        }
    }

    private static final String MAP_EXT = ".MP8";

    private final JFileChooser jFileChooser;
    private boolean save = false;

    public FileChoozer(java.awt.Frame parent, boolean modal){
        super(parent, modal);
        this.setSize(500,400);
        jFileChooser = new JFileChooser();
        this.add(jFileChooser);
        this.jFileChooser.setFileFilter(new Filter());
        this.jFileChooser.addActionListener(this);

    }

    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals(JFileChooser.CANCEL_SELECTION)){
            this.dispose();
        }
        if (e.getActionCommand().equals(JFileChooser.APPROVE_SELECTION)){
            if(jFileChooser.getFileFilter().accept((jFileChooser.getSelectedFile()))){
                if (this.save){
                    this.saveFile(jFileChooser.getSelectedFile());
                }else {
                    this.openFile(jFileChooser.getSelectedFile());
                }
                this.dispose();
            }

        }
    }

    private void openFile(File selectedFile) {
        TrafficRegister r = TrafficRegister.getInstance();
        try {
            TrafficRegister trafficRegister = Serializator.deSerialize(selectedFile);
            r.setRoadMap(trafficRegister.getRoadMap());
            r.setVehicleRegister(trafficRegister.getVehicleRegister());
            r.setInit(trafficRegister.isInit());
            RoadMapCanvas.getInstance().setRepaintAllowed(true);
        } catch (Exception ex){
            ex.printStackTrace();
            r.setInit(false);
            r.setRoadMap(null);
            r.setVehicleRegister(null);
        }
    }

    private void saveFile(File selectedFile) {
        FileOutputStream out = null;
        try {
            out = new FileOutputStream(selectedFile);
            out.close();
            Serializator.serialize(selectedFile, TrafficRegister.getInstance());
        } catch (FileNotFoundException e) {
            e.printStackTrace()//To change body of catch statement use File | Settings | File Templates.
        } catch (IOException e) {
            e.printStackTrace()//To change body of catch statement use File | Settings | File Templates.
        } finally {


        }
    }

    public void setSave(boolean b) {
        this.save = b;
        if (b){
            this.jFileChooser.setApproveButtonText("Save");
        }else {
            this.jFileChooser.setApproveButtonText("Open");
        }
    }
}
TOP

Related Classes of trafficjams.model.visualization.FileChoozer$Filter

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.