All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.monte.movieconverter.MovieConverterXMain Maven / Gradle / Ivy

The newest version!

package org.monte.movieconverter;

import org.monte.media.DefaultMovie;
import org.monte.media.Movie;
import org.monte.media.MovieReader;
import org.monte.media.Registry;
import org.monte.media.gui.Worker;
import org.monte.media.gui.datatransfer.DropFileTransferHandler;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import javax.swing.JFileChooser;


public class MovieConverterXMain extends javax.swing.JFrame {

    private class Handler implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            File f=new File(e.getActionCommand());
            if (isEnabled())
            setMovieFile(f);
        }

    }
    private Handler handler=new Handler();


    public MovieConverterXMain() {
        initComponents();
        DropFileTransferHandler dfth=new DropFileTransferHandler(JFileChooser.FILES_ONLY);
        dfth.setActionListener(handler);
        setTransferHandler(dfth);
        movieConverterPanel.setTransferHandler(dfth);
    }

    public void setMovieFile(final File newFile) {
        setEnabled(false);
        setTitle(null);
        getRootPane().putClientProperty("Window.documentFile", null);
        new Worker() {

            @Override
            protected Movie construct() throws Exception {

                MovieReader r=Registry.getInstance().getReader(newFile);
                if (r==null)throw new IOException("no reader");
                DefaultMovie m=new DefaultMovie();
                m.setReader(r);
                return m;
            }

            @Override
            protected void done(Movie movie) {
        getRootPane().putClientProperty("Window.documentFile", newFile);
        setTitle(newFile.getName());
        movieConverterPanel.setMovie(movie);
            }

            @Override
            protected void finished() {
              setEnabled(true);
            }


        }.start();
    }


    @SuppressWarnings("unchecked")

    private void initComponents() {

        movieConverterPanel = new MovieConverterPanel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        getContentPane().add(movieConverterPanel, java.awt.BorderLayout.CENTER);

        pack();
    }


    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new MovieConverterXMain().setVisible(true);
            }
        });
    }

    private MovieConverterPanel movieConverterPanel;

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy