2012-01-06 01:21:04 +00:00

68 lines
2.3 KiB
Java

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.jme3.gde.nmgen;
import com.jme3.asset.DesktopAssetManager;
import com.jme3.gde.core.assets.BinaryModelDataObject;
import com.jme3.gde.core.assets.ProjectAssetManager;
import com.jme3.scene.Spatial;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import org.netbeans.api.progress.ProgressHandle;
import org.netbeans.api.progress.ProgressHandleFactory;
import org.openide.DialogDisplayer;
import org.openide.NotifyDescriptor;
import org.openide.NotifyDescriptor.Confirmation;
/**
*
* @author sploreg
*/
public class NavMeshAction implements ActionListener {
private final BinaryModelDataObject context;
public NavMeshAction(BinaryModelDataObject context) {
this.context = context;
}
public void actionPerformed(ActionEvent ev) {
final ProjectAssetManager manager = context.getLookup().lookup(ProjectAssetManager.class);
if (manager == null) {
return;
}
Runnable call = new Runnable() {
public void run() {
ProgressHandle progressHandle = ProgressHandleFactory.createHandle("Opening in Nav Mesh Editor");
progressHandle.start();
final Spatial asset = context.loadAsset();
if(asset!=null){
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
((DesktopAssetManager)manager.getManager()).clearCache();
NavMeshTopComponent composer = NavMeshTopComponent.findInstance();
composer.openScene(asset, context, manager);
}
});
}else {
Confirmation msg = new NotifyDescriptor.Confirmation(
"Error opening " + context.getPrimaryFile().getNameExt(),
NotifyDescriptor.OK_CANCEL_OPTION,
NotifyDescriptor.ERROR_MESSAGE);
DialogDisplayer.getDefault().notify(msg);
}
progressHandle.finish();
}
};
new Thread(call).start();
}
}