Package com.badlogic.gdx.tools.flame

Source Code of com.badlogic.gdx.tools.flame.TextureLoaderPanel

package com.badlogic.gdx.tools.flame;

import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;

import com.badlogic.gdx.assets.loaders.TextureLoader.TextureParameter;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.Texture.TextureFilter;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;

/** @author Inferno */
public class TextureLoaderPanel extends EditorPanel {
  public TextureLoaderPanel (FlameMain editor, String name, String description) {
    super(editor, name, description);
    setValue(null);
  }

  @Override
  protected void initializeComponents () {
    super.initializeComponents();
    JButton atlasButton = new JButton("Open Atlas");
    JButton textureButton = new JButton("Open Texture");
    JButton defaultTextureButton = new JButton("Default Texture");
    final JCheckBox genMipMaps = new JCheckBox("Generate MipMaps");
    final JComboBox minFilterBox = new JComboBox(new DefaultComboBoxModel(TextureFilter.values()));
    final JComboBox magFilterBox = new JComboBox(new DefaultComboBoxModel(TextureFilter.values()));

    minFilterBox.setSelectedItem(editor.getTexture().getMinFilter());
    magFilterBox.setSelectedItem(editor.getTexture().getMagFilter());
   
    ActionListener filterListener = new ActionListener() {
      public void actionPerformed (ActionEvent event) {
        editor.getTexture().setFilter((TextureFilter)minFilterBox.getSelectedItem(), (TextureFilter)magFilterBox.getSelectedItem());
      }
    };
   
    minFilterBox.addActionListener(filterListener);
    magFilterBox.addActionListener(filterListener);
   
    atlasButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed (ActionEvent e) {
        File file = editor.showFileLoadDialog();
        if(file != null){
          TextureAtlas atlas = editor.load(file.getAbsolutePath(), TextureAtlas.class, null,  null);
          if(atlas != null){
            editor.setAtlas(atlas);
          }
        }
      }
    });
   
    textureButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed (ActionEvent e) {
        File file = editor.showFileLoadDialog();
        if(file != null){
          TextureParameter params = new TextureParameter();
          params.genMipMaps = genMipMaps.isSelected();
          params.minFilter = (TextureFilter)minFilterBox.getSelectedItem();
          params.magFilter = (TextureFilter)magFilterBox.getSelectedItem();
          Texture texture = editor.load(file.getAbsolutePath(), Texture.class, null, params);
          if(texture != null){
            editor.setTexture(texture);
          }
        }
      }
    });
   
    defaultTextureButton.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed (ActionEvent e) {
        editor.setTexture(editor.assetManager.get(FlameMain.DEFAULT_BILLBOARD_PARTICLE, Texture.class));
      }
    });
   
    contentPanel.add(new JLabel("Min. Filter"), new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE,
      new Insets(6, 0, 0, 0), 0, 0));
    contentPanel.add(minFilterBox, new GridBagConstraints(1, 0, 1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.NONE,
      new Insets(6, 0, 0, 0), 0, 0));
    contentPanel.add(new JLabel("Mag. Filter"), new GridBagConstraints(0, 1, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE,
      new Insets(6, 0, 0, 0), 0, 0));
    contentPanel.add(magFilterBox, new GridBagConstraints(1, 1, 1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.NONE,
      new Insets(6, 0, 0, 0), 0, 0));
    contentPanel.add(genMipMaps, new GridBagConstraints(0, 2, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE,
      new Insets(6, 0, 0, 0), 0, 0));
    contentPanel.add(atlasButton, new GridBagConstraints(0, 3, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE,
      new Insets(6, 0, 0, 0), 0, 0));
    contentPanel.add(textureButton, new GridBagConstraints(1, 3, 1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.NONE,
      new Insets(6, 0, 0, 0), 0, 0));
    contentPanel.add(defaultTextureButton, new GridBagConstraints(2, 3, 1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.NONE,
      new Insets(6, 0, 0, 0), 0, 0));
   
  }
}
TOP

Related Classes of com.badlogic.gdx.tools.flame.TextureLoaderPanel

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.