現在、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メソッドを使用してこれを行う方法がわかりません。入ってくるように見える唯一のキーはルートノード/ファイルです。