2012-06-20 2 views
2

현재 Netbeans에서 프로젝트 유형을 만들고 있습니다. 나는 기본적인 튜토리얼을 따라했지만 몇 가지를 추가했다.프로젝트 구조의 특정 파일 무시 (사용자 정의 프로젝트 유형)

이 논리보기

public org.openide.nodes.Node createLogicalView() { 
     FileObject root = project.getProjectDirectory(); 
     DataFolder findFolder = DataFolder.findFolder(root); 
     Node node = findFolder.getNodeDelegate(); 


     return new TextNode(node, project); 
} 

기본적으로 루트 프로젝트 폴더입니다.

이것은 내 필터 노드입니다.

private static final class TextNode extends FilterNode { 

    final NodeJSProject project; 

    public TextNode(Node node, NodeJSProject project) { 

     super(node, new NodeJSProjectNode(node), 
       new ProxyLookup(new Lookup[]{ 
        Lookups.singleton(project), 
        node.getLookup() 
       })); 

     this.project = project; 
    } 

필터 노드에 대한 사용자 정의 재정의.

public static class NodeJSProjectNode extends FilterNode.Children { 

     public NodeJSProjectNode(Node node) { 
      super(node); 
     } 

     @Override 
     protected Node[] createNodes(Node key) { 
//key.getName() only returning root objects. No children 
      if (key.getName().startsWith(".")) { 
       return new Node[]{}; 
      } 
      return new Node[]{ copyNode(key) }; 
     } 
    } 

기본적으로 숨겨진 파일을 무시하려고합니다. 나는 이것이 IDE에 의해 이미 행해졌다고 생각하고 있었다. 그러나 나는 추측하지 않는다. 현재 내가 가지고있는 코드는 루트 디렉토리에서 작동합니다. .DS_Store, .git 등을 추가하지 않습니다. 하위 디렉토리의 모든 폴더/파일을 무시하려고합니다. createNodes 메서드를 사용하여이 작업을 수행하는 방법을 잘 모르겠습니다. 들어오는 것처럼 보이는 유일한 열쇠는 루트 노드/파일입니다.

답변

1

나는 동일한 튜토리얼을 따르고 있으며 나는 나의 특별한 경우에 맞는 결과를 실현할 수 있었다. 내 프로젝트 유형에서 'xlsx'또는 'xls'또는 'txt'파일 유형 만보고 싶습니다.

하지만 자습서 지시와는 다른 방향으로 움직이는 것을 볼 수 있습니다. 당신이가는대로 튜토리얼을 따라한다면

super(node, 
     NodeFactorySupport.createCompositeChildren(
       project, 
       "Projects/org-customer-project/Nodes"), 
     // new FilterNode.Children(node), 
     new ProxyLookup(
     new Lookup[]{ 
      Lookups.singleton(project), 
      node.getLookup() 
     })); 

, 나는 내가 도울 수 있다고 생각 : 여기 TextNode

super(node, new NodeJSProjectNode(node), 
      new ProxyLookup(new Lookup[]{ 
       Lookups.singleton(project), 
       node.getLookup() 
      })); 

에 대한 생성자의이 튜토리얼의 템플릿입니다.

관련 문제