public static Collection<? extends CasaPalettePlugin> getPlugins() { List<CasaPalettePlugin> plugins = new ArrayList<CasaPalettePlugin>(); // CASA itself plugs into its own palette plugins.add(CasaBasePlugin.getInstance()); // Add all internal project types as palette plugins. Collection<? extends InternalProjectTypePlugin> projectPlugins = Lookup.getDefault().lookupAll(InternalProjectTypePlugin.class); for (InternalProjectTypePlugin projectTypePlugin : projectPlugins) { if (projectTypePlugin.getCategoryName() != null) { CasaPalettePlugin palettePlugin = new InternalProjectTypePalettePlugin(projectTypePlugin); plugins.add(palettePlugin); } } return plugins; }
/** * Singleton class which provides casa specific palette controller * * @author rdara */ public class CasaPalette { public static final String CATEGORY_ID_WSDL_BINDINGS = NbBundle.getMessage(CasaPalette.class, "WSDLBindings"); // NOI18N public static final String CATEGORY_ID_SERVICE_UNITS = NbBundle.getMessage(CasaPalette.class, "ServiceUnits"); // NOI18N public static final String CATEGORY_ID_END_POINTS = NbBundle.getMessage(CasaPalette.class, "EndPoints"); // NOI18N public static final CasaPaletteItemID ITEM_ID_CONSUME = new CasaPaletteItemID( CasaBasePlugin.getInstance(), CasaPalette.CATEGORY_ID_END_POINTS, NbBundle.getMessage(CasaPalette.class, "Palette_Consume_Title"), // NOI18N CasaFactory.getCasaCustomizer().getBOOLEAN_CLASSIC_ENDPOINT_PIN_STYLE() ? "org/netbeans/modules/compapp/casaeditor/palette/resources/consumesPaletteClassic.png" : // NOI18N "org/netbeans/modules/compapp/casaeditor/palette/resources/consumesPalette.png"); // NOI18N public static final CasaPaletteItemID ITEM_ID_PROVIDE = new CasaPaletteItemID( CasaBasePlugin.getInstance(), CasaPalette.CATEGORY_ID_END_POINTS, NbBundle.getMessage(CasaPalette.class, "Palette_Provide_Title"), // NOI18N CasaFactory.getCasaCustomizer().getBOOLEAN_CLASSIC_ENDPOINT_PIN_STYLE() ? "org/netbeans/modules/compapp/casaeditor/palette/resources/providesPaletteClassic.png" : // NOI18N "org/netbeans/modules/compapp/casaeditor/palette/resources/providesPalette.png"); // NOI18N public static final CasaPaletteItemID ITEM_ID_INTERNAL_SU = new CasaPaletteItemID( CasaBasePlugin.getInstance(), CasaPalette.CATEGORY_ID_SERVICE_UNITS, NbBundle.getMessage(CasaPalette.class, "Palette_IntSU_Title"), // NOI18N "org/netbeans/modules/compapp/casaeditor/palette/resources/intsu.png"); // NOI18N public static final CasaPaletteItemID ITEM_ID_EXTERNAL_SU = new CasaPaletteItemID( CasaBasePlugin.getInstance(), CasaPalette.CATEGORY_ID_SERVICE_UNITS, NbBundle.getMessage(CasaPalette.class, "Palette_ExtSU_Title"), // NOI18N "org/netbeans/modules/compapp/casaeditor/palette/resources/extsu.png"); // NOI18N public static final DataFlavor CasaPaletteDataFlavor = new DataFlavor(CasaPaletteItemID.class, "CasaPaletteData") // NOI18N {}; // private static PaletteController msPaletteController = null; private static String CASA_PALETTE_ROOT = "CasaPalette"; // NOI18N private static PaletteController palette = null; private static CasaPaletteRootNode paletteRoot; private CasaPalette() {} public static PaletteController getPalette(Lookup lookup) { if (null == palette) { paletteRoot = new CasaPaletteRootNode(new CasaPaletteCategoryChildren(lookup), lookup); paletteRoot.setName(CASA_PALETTE_ROOT); palette = PaletteFactory.createPalette(paletteRoot, new MyPaletteActions()); disableCreateCategoryAction((Node) palette.getRoot().lookup(Node.class)); } return palette; } public static Collection<? extends CasaPalettePlugin> getPlugins() { List<CasaPalettePlugin> plugins = new ArrayList<CasaPalettePlugin>(); // CASA itself plugs into its own palette plugins.add(CasaBasePlugin.getInstance()); // Add all internal project types as palette plugins. Collection<? extends InternalProjectTypePlugin> projectPlugins = Lookup.getDefault().lookupAll(InternalProjectTypePlugin.class); for (InternalProjectTypePlugin projectTypePlugin : projectPlugins) { if (projectTypePlugin.getCategoryName() != null) { CasaPalettePlugin palettePlugin = new InternalProjectTypePalettePlugin(projectTypePlugin); plugins.add(palettePlugin); } } return plugins; } private static void disableCreateCategoryAction(Node proxyRootNode) { ResourceBundle bundle = NbBundle.getBundle(proxyRootNode.getClass()); if (bundle != null) { String createCategoryName = null; try { createCategoryName = bundle.getString("CTL_CreateCategory"); // NOI18N } catch (MissingResourceException e) { // Cannot disable the action, it's key name may have changed. // We must be aware of this and visibly fail so development // can update the key name. ErrorManager.getDefault().notify(e); return; } if (createCategoryName != null) { disableActionByName(proxyRootNode, createCategoryName); for (Node childProxyNode : proxyRootNode.getChildren().getNodes()) { disableActionByName(childProxyNode, createCategoryName); } } } } private static void disableActionByName(Node node, String actionName) { for (Action action : node.getActions(true)) { if (action != null) { String name = (String) action.getValue(Action.NAME); if (name != null && name.length() > 0) { if (name.equals(actionName)) { action.setEnabled(false); } } } } } private static class MyPaletteActions extends PaletteActions { public Action[] getImportActions() { return new Action[0]; } public Action[] getCustomPaletteActions() { return new Action[0]; } public Action[] getCustomCategoryActions(Lookup lookup) { return new Action[0]; } public Action[] getCustomItemActions(Lookup lookup) { return new Action[0]; } public Action getPreferredAction(Lookup lookup) { return null; } } }