initComponents();
setName(NbBundle.getMessage(FilterExplorerTopComponent.class, "CTL_FilterExplorerTopComponent"));
setToolTipText(NbBundle.getMessage(FilterExplorerTopComponent.class, "HINT_FilterExplorerTopComponent"));
- ActionMap map=getActionMap();
- map.put("delete", ExplorerUtils.actionDelete(explorerManager, true));
- map.put("moveup", new MoveUpAction());
- map.put("movedown", new MoveDownAction());
+ ActionMap map = getActionMap();
+ map.put("delete", ExplorerUtils.actionDelete(explorerManager, true));
+ map.put("moveup", new MoveUpAction());
+ map.put("movedown", new MoveDownAction());
associateLookup(ExplorerUtils.createLookup(explorerManager, map));
-
+
}
-
-
/** This method is called from within the constructor to
* initialize the form.
}
public void loadFile(FilterDataObject object) {
- explorerManager.setRootContext(object.getLookup().lookup(FilterPostProcessorNode.class));
+ explorerManager.setRootContext(object.getLookup().lookup(FilterPostProcessorNode.class));
node = object.getLookup().lookup(FilterPostProcessorNode.class);
setActivatedNodes(new Node[]{object.getNodeDelegate()});
open();
SceneApplication.getApplication().getViewPort().addProcessor(fpp);
Logger.getLogger(FilterExplorerTopComponent.class.getName()).log(Level.INFO, "Enabled post filters");
} else {
- for (Iterator<SceneProcessor> it = SceneApplication.getApplication().getViewPort().getProcessors().iterator(); it.hasNext();) {
+ for (Iterator<SceneProcessor> it = SceneApplication.getApplication().getViewPort().getProcessors().iterator(); it.hasNext();) {
SceneProcessor proc = it.next();
if (proc instanceof FilterPostProcessor) {
it.remove();
proc.cleanup();
}
}
- // SceneApplication.getApplication().getViewPort().removeProcessor(fpp);
+ // SceneApplication.getApplication().getViewPort().removeProcessor(fpp);
Logger.getLogger(FilterExplorerTopComponent.class.getName()).log(Level.INFO, "Disabled post filters");
}
return null;
import com.jme3.post.Filter;
import com.jme3.post.FilterPostProcessor;
import java.awt.Image;
+import java.awt.datatransfer.Transferable;
+import java.io.IOException;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import javax.swing.Action;
import org.openide.nodes.AbstractNode;
import org.openide.nodes.Children;
-import org.openide.nodes.Index;
import org.openide.nodes.Node;
+import org.openide.nodes.NodeTransfer;
import org.openide.util.Exceptions;
import org.openide.util.ImageUtilities;
import org.openide.util.Lookup;
+import org.openide.util.datatransfer.PasteType;
import org.openide.util.lookup.Lookups;
/**
ImageUtilities.loadImage("com/jme3/gde/core/filters/icons/eye.gif");
private FilterPostProcessor fpp;
- public FilterPostProcessorNode(FilterDataObject dataObject) {
- super(new FilterChildren(dataObject),Lookups.singleton(new FilterIndexSupport()));
-
- //Lookups.singleton(new FilterIndexSupport((FilterChildren)this.getChildren()));
+ public FilterPostProcessorNode(FilterDataObject dataObject) {
+ super(new FilterChildren(dataObject), Lookups.singleton(new FilterIndexSupport()));
+
+ //Lookups.singleton(new FilterIndexSupport((FilterChildren)this.getChildren()));
this.dataObject = dataObject;
- setName(dataObject.getName());
+ setName(dataObject.getName());
getLookup().lookup(FilterIndexSupport.class).setFilterPostProcessorNode(this);
((FilterChildren) getChildren()).setFilterPostProcessorNode(this);
+
}
@Override
return fpp;
}
+ //this allow the reordering on drop of a Node
+ @Override
+ public PasteType getDropType(Transferable t, int action, final int index) {
+
+ final Node node = NodeTransfer.node(t, action);
+ return new PasteType() {
+
+ @Override
+ public Transferable paste() throws IOException {
+ FilterIndexSupport indexSupport = getLookup().lookup(FilterIndexSupport.class);
+ int nodeIndex = indexSupport.indexOf(node);
+ if (nodeIndex < index) {
+ indexSupport.move(index - 1, nodeIndex);
+ } else {
+ indexSupport.move(index, nodeIndex);
+ }
+
+ return null;
+ }
+ };
+ }
+
public void refresh() {
java.awt.EventQueue.invokeLater(new Runnable() {
protected void doRefresh() {
refresh();
}
-
- protected void reorderNotify() {
+
+ protected void reorderNotify() {
setKeys(createKeys());
}
-
+
protected List<Object> createKeys() {
try {
return SceneApplication.getApplication().enqueue(new Callable<List<Object>>() {
}
return new Node[]{};
}
-
}
-
}