Package com.aqpproject.tools.preprocessor

Source Code of com.aqpproject.tools.preprocessor.JPacker

/*
* AQP Project
* http://http://code.google.com/p/aqp-project/
* Alexandre Gomez - Clément Troesch - Fabrice Latterner
*/
package com.aqpproject.tools.preprocessor;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.backends.jogl.JoglApplication;
import com.badlogic.gdx.tiledmappacker.TiledMapPacker;
import com.badlogic.gdx.tools.imagepacker.TexturePacker.Settings;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;

/**
*
* @author Alexandre, Clement, Fabrice
*/
public class JPacker extends JFrame {

    public JPacker() {
        super("Tiled Map Packer");
        initialize();
    }

    public void initialize() {

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        m_jpInput = new JPanel(new FlowLayout());
        m_jtfInput = new JTextField(20);
        m_jbInput = new JButton("...");
        m_jpInput.add(new JLabel("Input Folder"));
        m_jpInput.add(m_jtfInput);
        m_jpInput.add(m_jbInput);
        add(m_jpInput, BorderLayout.NORTH);
        m_jbInput.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                selectInputFolder();
            }
        });

        m_jpOutput = new JPanel(new FlowLayout());
        m_jtfOutput = new JTextField(20);
        m_jbOutput = new JButton("...");
        m_jpOutput.add(new JLabel("Output Folder"));
        m_jpOutput.add(m_jtfOutput);
        m_jpOutput.add(m_jbOutput);
        add(m_jpOutput, BorderLayout.CENTER);
        m_jbOutput.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                selectOutputFolder();
            }
        });

        m_jpGenerate = new JPanel();
        m_jbGenerate = new JButton("Generate");

        m_jpGenerate.add(m_jbGenerate);
        add(m_jpGenerate, BorderLayout.SOUTH);

        m_jbGenerate.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                generate();
            }
        });


        pack();
        setLocationRelativeTo(null);

    }

    private void selectInputFolder() {

        JFileChooser jfc = new JFileChooser(m_jtfInput.getText());
        jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        int res = jfc.showOpenDialog(this);

        if (res == JFileChooser.APPROVE_OPTION) {
            m_jtfInput.setText(jfc.getSelectedFile().getAbsolutePath());
        }

    }

    private void selectOutputFolder() {

        JFileChooser jfc = new JFileChooser(m_jtfOutput.getText());
        jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        int res = jfc.showOpenDialog(this);

        if (res == JFileChooser.APPROVE_OPTION) {
            m_jtfOutput.setText(jfc.getSelectedFile().getAbsolutePath());
        }

    }

    private void generate() {
        File tmxFile, inputDir, outputDir;

        Settings settings = new Settings();
        settings.maxWidth = 2048;
        settings.maxHeight = 2048;





        // Create a new JoglApplication so that Gdx stuff works properly
        new JoglApplication(new ApplicationListener() {

            @Override
            public void create() {
            }

            @Override
            public void dispose() {
            }

            @Override
            public void pause() {
            }

            @Override
            public void render() {
            }

            @Override
            public void resize(int width, int height) {
            }

            @Override
            public void resume() {
            }
        }, "", 0, 0, false);

        TiledMapPacker packer = new TiledMapPacker();

        inputDir = new File(m_jtfInput.getText());
        outputDir = new File(m_jtfOutput.getText());

        if (!inputDir.exists()) {
            throw new RuntimeException("Input directory does not exist");
        }
        try {
            packer.processMap(inputDir, outputDir, settings);
        } catch (IOException ex) {
            Logger.getLogger(JPacker.class.getName()).log(Level.SEVERE, null, ex);
        }


        System.exit(0);
    }
    /////////////////////////////////////////
    // Attributes
    /////////////////////////////////////////
    private JTextField m_jtfInput;
    private JTextField m_jtfOutput;
    private JPanel m_jpInput;
    private JPanel m_jpOutput;
    private JButton m_jbInput;
    private JButton m_jbOutput;
    private JPanel m_jpGenerate;
    private JButton m_jbGenerate;
}
TOP

Related Classes of com.aqpproject.tools.preprocessor.JPacker

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.