@Override
 public Image getIcon(int type) {
   try {
     if (category.getIcon() != null) {
       return ImageUtilities.icon2Image(category.getIcon());
     }
   } catch (Exception e) {
   }
   if (category == null) {
     return ImageUtilities.loadImage("org/gephi/desktop/filters/library/resources/library.png");
   } else {
     return ImageUtilities.loadImage("org/gephi/desktop/filters/library/resources/folder.png");
   }
 }
 public CategoryNode(FiltersExplorer.Utils utils, Category category) {
   super(
       utils.isLeaf(category)
           ? Children.LEAF
           : Children.create(new CategoryChildFactory(utils, category), true));
   this.category = category;
   if (category != null) {
     setName(category.getName());
   } else {
     setName(NbBundle.getMessage(CategoryNode.class, "RootNode.name"));
   }
 }
  @Override
  public PasteType getDropType(final Transferable t, int action, int index) {
    if (category == null || !category.equals(FiltersExplorer.QUERIES)) {
      return null;
    }
    final Node dropNode = NodeTransfer.node(t, DnDConstants.ACTION_COPY_OR_MOVE);
    if (dropNode != null && dropNode instanceof QueryNode) {
      return new PasteType() {

        @Override
        public Transferable paste() throws IOException {
          QueryNode queryNode = (QueryNode) dropNode;
          FilterController filterController = Lookup.getDefault().lookup(FilterController.class);
          FilterLibrary library = filterController.getModel().getLibrary();
          library.saveQuery(queryNode.getQuery());
          return null;
        }
      };
    }
    return null;
  }