1 19 20 package org.netbeans.modules.websvc.core.jaxws.nodes; 21 22 import java.awt.Image ; 23 import java.beans.BeanInfo ; 24 import javax.swing.Action ; 25 import javax.swing.Icon ; 26 import javax.swing.ImageIcon ; 27 import org.netbeans.api.project.FileOwnerQuery; 28 import org.netbeans.api.project.Project; 29 import org.netbeans.modules.websvc.api.jaxws.project.config.JaxWsModel; 30 import org.netbeans.spi.project.ui.support.CommonProjectActions; 31 import org.openide.actions.FindAction; 32 import org.openide.actions.PasteAction; 33 import org.openide.actions.ToolsAction; 34 import org.openide.filesystems.FileObject; 35 import org.openide.filesystems.Repository; 36 import org.openide.loaders.DataFolder; 37 import org.openide.nodes.AbstractNode; 38 import org.openide.nodes.Node; 39 import org.openide.util.HelpCtx; 40 import org.openide.util.Lookup; 41 import org.openide.util.NbBundle; 42 import org.openide.util.Utilities; 43 import org.openide.util.actions.SystemAction; 44 import org.openide.util.lookup.Lookups; 45 46 public class JaxWsClientRootNode extends AbstractNode { 47 48 49 private static final Image WEB_SERVICES_BADGE = Utilities.loadImage( "org/netbeans/modules/websvc/core/webservices/ui/resources/webservicegroup.png", true ); private final DataFolder srcFolder; 51 52 public JaxWsClientRootNode(JaxWsModel jaxWsModel, FileObject srcRoot) { 53 super(new JaxWsClientRootChildren(jaxWsModel,srcRoot), createLookup(srcRoot)); 54 setDisplayName(NbBundle.getBundle(JaxWsClientRootNode.class).getString("LBL_ServiceReferences")); 55 if(srcRoot.isFolder()) { 56 srcFolder = DataFolder.findFolder(srcRoot); 57 } else { 58 srcFolder = null; 59 } 60 } 61 62 public Image getIcon( int type ) { 63 return computeIcon( false, type ); 64 } 65 66 public Image getOpenedIcon( int type ) { 67 return computeIcon( true, type ); 68 } 69 70 75 static synchronized Icon getFolderIcon (boolean opened) { 76 if (JaxWsRootNode.openedFolderIconCache == null) { 77 Node n = DataFolder.findFolder(Repository.getDefault().getDefaultFileSystem().getRoot()).getNodeDelegate(); 78 JaxWsRootNode.openedFolderIconCache = new ImageIcon (n.getOpenedIcon(BeanInfo.ICON_COLOR_16x16)); 79 JaxWsRootNode.folderIconCache = new ImageIcon (n.getIcon(BeanInfo.ICON_COLOR_16x16)); 80 } 81 if (opened) { 82 return JaxWsRootNode.openedFolderIconCache; 83 } 84 else { 85 return JaxWsRootNode.folderIconCache; 86 } 87 } 88 89 private Image computeIcon( boolean opened, int type ) { 90 Icon icon = getFolderIcon(opened); 91 Image image = ((ImageIcon )icon).getImage(); 92 image = Utilities.mergeImages(image, WEB_SERVICES_BADGE, 7, 7 ); 93 return image; 94 } 95 96 public Action [] getActions(boolean context) { 97 return new Action []{ 98 CommonProjectActions.newFileAction(), 99 null, 100 SystemAction.get(FindAction.class), 101 null, 102 SystemAction.get(PasteAction.class), 103 null, 104 SystemAction.get(ToolsAction.class) 105 }; 106 } 107 108 public HelpCtx getHelpCtx() { 109 return HelpCtx.DEFAULT_HELP; 110 } 111 112 private static Lookup createLookup(final FileObject srcRoot) { 113 Project owner = FileOwnerQuery.getOwner(srcRoot); 114 return (owner != null) ? Lookups.fixed(new Object []{ owner }) : null; 115 } 116 117 } 118 | Popular Tags |