testmeproject.java.svn-base

来自「cqME :java framework for TCK test.」· SVN-BASE 代码 · 共 444 行 · 第 1/2 页

SVN-BASE
444
字号
                DataFolder dataObject = DataFolder.findFolder(projectDir);
                return new RootNode(project, new TestMEChildren(dataObject.getPrimaryFile()));
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
        
        public org.openide.nodes.Node findPath(org.openide.nodes.Node node, Object object) {
            return null;
        }
        
        TestMEProject project;
    }
    
    private static final class RootNode extends AbstractNode implements NodeListener {
        
        private final TestMEProject p;
        private Node folderNode;
        
        public RootNode(TestMEProject p, Children.Keys children) {
            super(children, Lookups.singleton(p));
            this.p = p;
            this.addNodeListener(this);
        }
        
        public Action[] getActions(boolean context) {
            return new Action[] {
                CommonProjectActions.closeProjectAction(),
                CommonProjectActions.deleteProjectAction(),
                CommonProjectActions.setAsMainProjectAction(),
                null,
                SystemAction.get(PropertiesAction.class)
            };
        }

        protected Sheet createSheet() {
            Sheet sheet = super.createSheet();
            Sheet.Set props = sheet.get (Sheet.PROPERTIES);
            if (props == null) {
                props = Sheet.createPropertiesSet();
                sheet.put(props);
            }
            
            props.put (new TestMEProjectDirProperty(p));
            return sheet;
        }

        public String getName() {
            return p.getProjectDirectory().getName();
        }

        public void childrenAdded(NodeMemberEvent nodeMemberEvent) {
        }

        public void childrenRemoved(NodeMemberEvent nodeMemberEvent) {
            //System.out.println("EEEE");
        }

        public void childrenReordered(NodeReorderEvent nodeReorderEvent) {
        }

        public void nodeDestroyed(NodeEvent nodeEvent) {
            //System.out.println("TTTT");
        }

        public void propertyChange(PropertyChangeEvent evt) {
        }
        
    }
    
    private static final class TestMEChildren extends Children.Keys implements NodeListener {
        private FileObject fileObject;

        public TestMEChildren(FileObject fileObject) {
            super();
            this.fileObject = fileObject;
        }
        
        protected Node[] createNodes(Object object) {
            FileObject fob = (FileObject)object;
            if (fob.isFolder()) {
                DataFolder df = DataFolder.findFolder(fob);
                Node node = df.getNodeDelegate();
                node.addNodeListener(this);
                ViewItemNode itemFolder = new ViewItemNode(df, df.getName(), df.getName());
                return new Node[] {itemFolder};
            } else {
                DataObject dobj = null;
                try {
                    dobj = DataObject.find(fob);
                } catch (DataObjectNotFoundException ex) {
                    ex.printStackTrace();
                }
                Node node = dobj.getNodeDelegate();
                node.addNodeListener(this);
                
                ViewItemNode item = new ViewItemNode(node, node.getName(), node.getDisplayName());
                
                return new Node[] {item};
            }
        }
        
        protected void addNotify() {
            super.addNotify();
            refreshTree();
        }
        
        private void refreshTree() {
            FileObject[] fobs = fileObject.getChildren();
            Arrays.sort(fobs, new myComparator());
            setKeys(fobs);
        }
        
        class myComparator implements Comparator {
            public int compare(Object o1, Object o2) {
                FileObject fob1 = (FileObject)o1;
                FileObject fob2 = (FileObject)o2;
                return fob1.getName().compareTo(fob2.getName());
            }
        }

        protected void removeNotify() {
            setKeys(Collections.EMPTY_SET);
            super.removeNotify();
        }

        public void childrenAdded(NodeMemberEvent nodeMemberEvent) {
        }

        public void childrenRemoved(NodeMemberEvent nodeMemberEvent) {
            //System.out.println("BBB");
        }

        public void childrenReordered(NodeReorderEvent nodeReorderEvent) {
        }

        public void nodeDestroyed(NodeEvent nodeEvent) {
        }

        public void propertyChange(PropertyChangeEvent evt) {
        }
    }

    static final class VisibilityQueryDataFilter implements ChangeListener, ChangeableDataFilter {
        
        EventListenerList ell = new EventListenerList();        
        
        public VisibilityQueryDataFilter() {
            VisibilityQuery.getDefault().addChangeListener( this );
        }
                
        public boolean acceptDataObject(DataObject obj) {                
            return true;
        }
        
        public void stateChanged( ChangeEvent e) {            
        }        
    
        public void addChangeListener( ChangeListener listener ) {
            ell.add( ChangeListener.class, listener );
        }        
                        
        public void removeChangeListener( ChangeListener listener ) {
            ell.remove( ChangeListener.class, listener );
        }
        
    }
    
     private static final class ViewItemNode extends FilterNode {
        
        private final String name;
        
        private final String displayName;
        private static final DataFilter VISIBILITY_QUERY_FILTER = new VisibilityQueryDataFilter();
       
        public ViewItemNode(Node orig, String name, String displayName) {
            super(orig);
            this.name = name;
            this.displayName = displayName;
        }
        
        public ViewItemNode(DataFolder folder, String name, String displayName) {
            super(folder.getNodeDelegate(), folder.createNodeChildren(VISIBILITY_QUERY_FILTER));
            this.name = name;
            this.displayName = displayName;
        }
        
        public String getName() {
            return name;
        }
        
        public String getDisplayName() {
            if (displayName != null) {
                return displayName;
            } else {
                // #50425: show original name incl. annotations
                return super.getDisplayName();
            }
        }
        
        public boolean canRename() {
            return false;
        }
        
        public boolean canDestroy() {
            return false;
        }
        
        public boolean canCut() {
            return false;
        }
        
    }
    
    FileObject projectDir;
    ProjectState state;
    Lookup lkp;
    AntProjectHelper helper;
    //private final AntProjectHelper helper;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?