/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.gyver.matrixmover.gui.listener;
import com.gyver.matrixmover.core.Controller;
import com.gyver.matrixmover.core.SceneReader;
import com.gyver.matrixmover.core.VisualSetup;
import com.gyver.matrixmover.gui.component.FileTreeNode;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JTree;
import javax.swing.tree.TreePath;
/**
*
* @author Jonas
*/
public class PopClickListener extends MouseAdapter {
private JTree jTree = null;
public PopClickListener(JTree tree) {
this.jTree = tree;
}
@Override
public void mousePressed(MouseEvent e) {
doPop(e);
}
@Override
public void mouseReleased(MouseEvent e) {
doPop(e);
}
private void doPop(MouseEvent e) {
TreePath selPath = jTree.getPathForLocation(e.getX(), e.getY());
if (selPath == null) {
return;
} else if (e.isPopupTrigger()) {
if (selPath.getLastPathComponent() instanceof FileTreeNode) {
final FileTreeNode node = (FileTreeNode) selPath.getLastPathComponent();
if (node.isLeaf()) {
jTree.setSelectionPath(selPath);
JPopupMenu menu = new JPopupMenu();
JMenuItem anItem;
anItem = new JMenuItem("to left Player <==");
anItem.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
toLeftPlayer(evt, node.getFileObject());
}
});
menu.add(anItem);
JMenuItem anotherItem = new JMenuItem("to right Player ==>");
anotherItem.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
toRightPlayer(evt, node.getFileObject());
}
});
menu.add(anotherItem);
menu.show(e.getComponent(), e.getX(), e.getY());
}
}
}
}
private void toLeftPlayer(ActionEvent evt, File file) {
VisualSetup vs = SceneReader.loadVisualSetup(file, Controller.getControllerInstance().getMatrixData());
Controller.getControllerInstance().setVisualSetup(vs, Controller.LEFT_SIDE);
//System.out.println(file.getAbsoluteFile());
}
private void toRightPlayer(ActionEvent evt, File file) {
VisualSetup vs = SceneReader.loadVisualSetup(file, Controller.getControllerInstance().getMatrixData());
Controller.getControllerInstance().setVisualSetup(vs, Controller.RIGHT_SIDE);
//System.out.println(file.getAbsoluteFile());
}
}