package examples.etyllica.swing;
import java.util.ArrayList;
import java.util.List;
import br.com.etyllica.awt.components.chooser.FileChooser;
import br.com.etyllica.awt.components.chooser.SelectFileListener;
import br.com.etyllica.core.context.Application;
import br.com.etyllica.core.event.KeyEvent;
import br.com.etyllica.core.event.MouseEvent;
import br.com.etyllica.core.event.PointerEvent;
import br.com.etyllica.core.graphics.Graphics;
import br.com.etyllica.layer.ImageLayer;
import br.com.etyllica.layer.StaticLayer;
import br.com.etyllica.loader.image.ImageLoader;
import br.com.etyllica.util.PathHelper;
public class FileExample extends Application implements SelectFileListener {
private FileChooser fc;
public FileExample(int w, int h) {
super(w, h);
}
private int px, py;
private ImageLayer hello;
private List<ImageLayer> layers = new ArrayList<ImageLayer>();
@Override
public void load() {
loading = 10;
hello = new ImageLayer(200,100,"hello.png");
loading = 100;
fc = new FileChooser(this.parent.getComponent(), PathHelper.currentDirectory());
fc.setListener(this);
}
@Override
public void draw(Graphics g) {
hello.draw(g);
for(ImageLayer layer: layers) {
layer.draw(g);
}
}
@Override
public void update(long now) {
if(right) {
hello.offsetX(1);
}
if(left) {
hello.offsetX(-1);
}
if(down) {
hello.offsetY(1);
}
if(up) {
hello.offsetY(-1);
}
}
private boolean up = false;
private boolean down = false;
private boolean right = false;
private boolean left = false;
@Override
public void updateKeyboard(KeyEvent event) {
if(event.isKeyDown(KeyEvent.VK_RIGHT_ARROW)) {
right = true;
}
if(event.isKeyUp(KeyEvent.VK_RIGHT_ARROW)) {
right = false;
}
if(event.isKeyDown(KeyEvent.VK_LEFT_ARROW)) {
left = true;
}
if(event.isKeyUp(KeyEvent.VK_LEFT_ARROW)) {
left = false;
}
if(event.isKeyDown(KeyEvent.VK_UP_ARROW)) {
up = true;
}
if(event.isKeyUp(KeyEvent.VK_UP_ARROW)) {
up = false;
}
if(event.isKeyDown(KeyEvent.VK_DOWN_ARROW)) {
down = true;
}
if(event.isKeyUp(KeyEvent.VK_DOWN_ARROW)) {
down = false;
}
}
@Override
public void updateMouse(PointerEvent event) {
if(event.isButtonDown(MouseEvent.MOUSE_BUTTON_LEFT)) {
px = event.getX();
py = event.getY();
fc.openDialog();
}
}
@Override
public void onSelectFile(String path) {
System.out.println("Selected: "+path);
StaticLayer image = ImageLoader.getInstance().loadImage(path, true);
System.out.println(image.getPath());
ImageLayer layer = new ImageLayer(px, py);
layer.cloneLayer(image);
layers.add(layer);
}
@Override
public void onCancel() {
System.out.println("Dialog was closed.");
}
}