|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2003 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.refactoring.ui; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyVetoException; import java.util.*; import javax.swing.*; import javax.swing.tree.*; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreePath; import org.netbeans.modules.refactoring.api.AbstractRefactoring; import org.netbeans.modules.refactoring.api.Problem; import org.netbeans.modules.refactoring.api.RefactoringElement; import org.netbeans.modules.refactoring.api.ui.ParametersPanel; import org.netbeans.modules.refactoring.api.ui.RefactoringUI; import org.netbeans.jmi.javamodel.*; import org.openide.explorer.ExplorerManager; import org.openide.explorer.ExplorerPanel; import org.openide.explorer.view.*; import org.openide.filesystems.*; import org.openide.nodes.*; import org.openide.util.NbBundle; import org.openide.util.Utilities; import org.openide.windows.Mode; import org.openide.windows.TopComponent; import org.openide.windows.WindowManager; import org.openide.windows.Workspace; public class PackageBrowserPanel extends ExplorerPanel { private transient PackagesTreeView treeView = null; private transient FileObject selection = null; private transient RootNode rootNode = null; public PackageBrowserPanel() { setPreferredSize (new java.awt.Dimension(300, 400)); rootNode = new RootNode (); getExplorerManager ().setRootContext (rootNode); treeView = new PackagesTreeView (); treeView.setRootVisible (false); treeView.setSelectionMode (TreeSelectionModel.SINGLE_TREE_SELECTION); add (treeView); } public FileObject getSelection () { return selection; } /* public void showPackage (String pkgName) { if (pkgName == null) return; if ((selection != null) && selection.getPackageName ('.').equals (pkgName)) return; Enumeration enum = Repository.getDefault().fileSystems(); FileObject folder = null; while (enum.hasMoreElements ()) { FileSystem fs = (FileSystem) enum.nextElement(); if (!fs.isHidden() && !fs.isReadOnly()) { folder = fs.find (pkgName, null, null); if (folder != null) break; } } if (folder == null) return; LinkedList list = new LinkedList (); while (folder != null) { list.addFirst (folder); folder = folder.getParent(); } Object [] path = list.toArray (new FileObject [list.size ()]); treeView.showPackage (new TreePath (path)); } */ // PackagesTreeView ......................................................... class PackagesTreeView extends BeanTreeView { protected void selectionChanged (Node[] nodes, ExplorerManager em) throws PropertyVetoException { super.selectionChanged (nodes, em); if ((nodes != null) && (nodes.length > 0) && (nodes[0] instanceof PackageNode)) { selection = ((PackageNode) nodes [0]).getFolder (); } else { selection = null; } } /* public void showPackage (TreePath path) { showPath (path); } */ } // PackagesTreeView // RootNode ................................................................. static class RootNode extends AbstractNode { RootNode () { super (new Children.Array ()); java.util.Enumeration enum = Repository.getDefault().getFileSystems(); ArrayList list = new ArrayList (10); while (enum.hasMoreElements ()) { FileSystem fs = (FileSystem) enum.nextElement (); if (!fs.isHidden () && !fs.isReadOnly()) list.add (new FSNode (fs)); } Node [] nodes = new Node [list.size ()]; ((Children.Array) getChildren ()).add((Node [])list.toArray(nodes)); } } // RootNode // PackageNode .............................................................. static class PackageNode extends AbstractNode { protected FileObject folder; PackageNode (FileObject folder) { super (new PackageChildren ()); this.folder = folder; ((PackageChildren) getChildren ()).setKey (folder); setDisplayName (folder.getName ()); setIconBase ("org/netbeans/modules/refactoring/resources/javaPackage"); } public FileObject getFolder () { return folder; } } // PackageNode // FSNode ................................................................... static class FSNode extends PackageNode { FSNode (FileSystem filesystem) { super (filesystem.getRoot()); setDisplayName (filesystem.getDisplayName()); setIconBase ("org/netbeans/modules/refactoring/resources/projectModel"); } } // FSNode // PackageChildren .......................................................... static class PackageChildren extends Children.Keys { private FileObject folder; PackageChildren () { } void setKey (FileObject folder) { java.util.List list = new java.util.LinkedList (); list.add (folder); setKeys (list); } protected Node[] createNodes(Object key) { FileObject folder = (FileObject) key; java.util.Enumeration enum = folder.getFolders (false); ArrayList list = new ArrayList (10); while (enum.hasMoreElements()) { FileObject f = (FileObject) enum.nextElement (); list.add (new PackageNode (f)); } Node[] res = new Node [list.size ()]; return (Node[]) list.toArray (res); } } // PackageChildren } // end Refactor Panel |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.