コード例 #1
0
  private boolean askAndRemoveDuplicatedLibraryEntry(
      @NotNull ModifiableRootModel rootModel, @NotNull CustomLibraryDescription description) {
    List<OrderEntry> existingEntries = new ArrayList<OrderEntry>();
    final LibrariesContainer container = myModel.getLibrariesContainer();
    for (OrderEntry entry : rootModel.getOrderEntries()) {
      if (!(entry instanceof LibraryOrderEntry)) continue;
      final Library library = ((LibraryOrderEntry) entry).getLibrary();
      if (library == null) continue;

      if (LibraryPresentationManager.getInstance()
          .isLibraryOfKind(library, container, description.getSuitableLibraryKinds())) {
        existingEntries.add(entry);
      }
    }

    if (!existingEntries.isEmpty()) {
      String message;
      if (existingEntries.size() > 1) {
        message =
            "There are already "
                + existingEntries.size()
                + " "
                + myFrameworkType.getPresentableName()
                + " libraries.\n Do you want to replace they?";
      } else {
        final String name = existingEntries.get(0).getPresentableName();
        message =
            "There is already a "
                + myFrameworkType.getPresentableName()
                + " library '"
                + name
                + "'.\n Do you want to replace it?";
      }
      final int result =
          Messages.showYesNoCancelDialog(
              rootModel.getProject(),
              message,
              "Library Already Exists",
              "&Replace",
              "&Add",
              "&Cancel",
              null);
      if (result == 0) {
        for (OrderEntry entry : existingEntries) {
          rootModel.removeOrderEntry(entry);
        }
      } else if (result != 1) {
        return false;
      }
    }

    return true;
  }
コード例 #2
0
 public AddSupportForSingleFrameworkDialogFixed(
     @NotNull Module module,
     final @NotNull String contentRootPath,
     FrameworkTypeEx frameworkType,
     @NotNull FrameworkSupportInModuleProvider provider,
     @NotNull LibrariesContainer librariesContainer,
     ModifiableModelsProvider modifiableModelsProvider) {
   super(module.getProject(), true);
   myFrameworkType = frameworkType;
   myModifiableModelsProvider = modifiableModelsProvider;
   setTitle(
       ProjectBundle.message(
           "dialog.title.add.framework.0.support", frameworkType.getPresentableName()));
   myModule = module;
   myModel =
       new FrameworkSupportModelImpl(module.getProject(), contentRootPath, librariesContainer);
   myConfigurable = provider.createConfigurable(myModel);
   myComponent =
       new FrameworkSupportOptionsComponent(
           myModel, myModel.getLibrariesContainer(), myDisposable, myConfigurable, null);
   Disposer.register(myDisposable, myConfigurable);
   init();
 }