Example #1
0
  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;
  }
Example #2
0
/**
 * 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;
    }
  }
}