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; }
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(); }