1 19 package org.myorg.feedreader; 20 21 import java.awt.BorderLayout ; 22 import java.io.Serializable ; 23 import javax.swing.ActionMap ; 24 import org.openide.ErrorManager; 25 import org.openide.explorer.ExplorerManager; 26 import org.openide.explorer.ExplorerUtils; 27 import org.openide.explorer.view.BeanTreeView; 28 import org.openide.loaders.DataObjectNotFoundException; 29 import org.openide.util.NbBundle; 30 import org.openide.util.Utilities; 31 import org.openide.windows.TopComponent; 32 33 final class FeedTopComponent extends TopComponent implements ExplorerManager.Provider { 34 35 private static FeedTopComponent instance; 36 37 private final ExplorerManager manager = new ExplorerManager(); 38 private final BeanTreeView view = new BeanTreeView(); 39 40 private FeedTopComponent() { 41 setName(NbBundle.getMessage(FeedTopComponent.class, "CTL_FeedTopComponent")); 42 setToolTipText(NbBundle.getMessage(FeedTopComponent.class, "HINT_FeedTopComponent")); 43 setIcon(Utilities.loadImage("org/myorg/feedreader/rss16.gif", true)); 44 setLayout(new BorderLayout ()); 45 add(view, BorderLayout.CENTER); 46 view.setRootVisible(true); 47 try { 48 manager.setRootContext(new RssNode.RootRssNode()); 49 } catch (DataObjectNotFoundException ex) { 50 ErrorManager.getDefault().notify(ex); 51 } 52 ActionMap map = getActionMap(); 53 map.put("delete", ExplorerUtils.actionDelete(manager, true)); 54 associateLookup(ExplorerUtils.createLookup(manager, map)); 55 } 56 57 public static synchronized FeedTopComponent getDefault() { 58 if (instance == null) { 59 instance = new FeedTopComponent(); 60 } 61 return instance; 62 } 63 64 public int getPersistenceType() { 65 return TopComponent.PERSISTENCE_ALWAYS; 66 } 67 68 protected String preferredID() { 69 return "FeedTopComponent"; 70 } 71 72 protected Object writeReplace() { 73 return new ResolvableHelper(); 74 } 75 76 private static final class ResolvableHelper implements Serializable { 77 78 private static final long serialVersionUID = 1L; 79 80 public Object readResolve() { 81 return FeedTopComponent.getDefault(); 82 } 83 84 } 85 86 public ExplorerManager getExplorerManager() { 87 return manager; 88 } 89 90 } 91 | Popular Tags |