Search in sources :

Example 6 with NewLibraryEditor

use of com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor in project intellij-community by JetBrains.

the class LibraryOptionsPanel method doCreate.

private void doCreate(boolean useDefaultSettings) {
    final NewLibraryConfiguration libraryConfiguration = useDefaultSettings ? myLibraryDescription.createNewLibraryWithDefaultSettings(getBaseDirectory()) : myLibraryDescription.createNewLibrary(myCreateButton, getBaseDirectory());
    if (libraryConfiguration != null) {
        final NewLibraryEditor libraryEditor = new NewLibraryEditor(libraryConfiguration.getLibraryType(), libraryConfiguration.getProperties());
        libraryEditor.setName(myLibrariesContainer.suggestUniqueLibraryName(libraryConfiguration.getDefaultLibraryName()));
        libraryConfiguration.addRoots(libraryEditor);
        if (myLibraryComboBoxModel.get(0) == null) {
            myLibraryComboBoxModel.remove(0);
        }
        myLibraryComboBoxModel.add(libraryEditor);
        myLibraryComboBoxModel.setSelectedItem(libraryEditor);
        myButtonEnumModel.setSelected(Choice.USE_LIBRARY);
    }
}
Also used : NewLibraryEditor(com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor) NewLibraryConfiguration(com.intellij.openapi.roots.libraries.NewLibraryConfiguration)

Example 7 with NewLibraryEditor

use of com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor in project intellij-community by JetBrains.

the class LibraryOptionsPanel method showSettingsPanel.

private void showSettingsPanel(CustomLibraryDescription libraryDescription, NotNullComputable<String> pathProvider, FrameworkLibraryVersionFilter versionFilter, boolean showDoNotCreateOption, final List<? extends FrameworkLibraryVersion> versions) {
    //todo[nik] create mySettings only in apply() method
    mySettings = new LibraryCompositionSettings(libraryDescription, pathProvider, versionFilter, versions);
    Disposer.register(this, mySettings);
    List<Library> libraries = calculateSuitableLibraries();
    myButtonEnumModel = RadioButtonEnumModel.bindEnum(Choice.class, myButtonGroup);
    myButtonEnumModel.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            updateState();
            onVersionChanged(getPresentableVersion());
        }
    });
    myDoNotCreateRadioButton.setVisible(showDoNotCreateOption);
    myLibraryComboBoxModel = new SortedComboBoxModel<>((o1, o2) -> {
        final String name1 = o1.getName();
        final String name2 = o2.getName();
        return -StringUtil.notNullize(name1).compareToIgnoreCase(StringUtil.notNullize(name2));
    });
    for (Library library : libraries) {
        ExistingLibraryEditor libraryEditor = myLibrariesContainer.getLibraryEditor(library);
        if (libraryEditor == null) {
            libraryEditor = mySettings.getOrCreateEditor(library);
        }
        myLibraryComboBoxModel.add(libraryEditor);
    }
    myExistingLibraryComboBox.setModel(myLibraryComboBoxModel);
    if (libraries.isEmpty()) {
        myLibraryComboBoxModel.add(null);
    }
    myExistingLibraryComboBox.setSelectedIndex(0);
    myExistingLibraryComboBox.addItemListener(new ItemListener() {

        @Override
        public void itemStateChanged(ItemEvent e) {
            if (e.getStateChange() == ItemEvent.SELECTED && e.getItem() != null) {
                myButtonEnumModel.setSelected(Choice.USE_LIBRARY);
            }
            updateState();
            onVersionChanged(getPresentableVersion());
        }
    });
    myExistingLibraryComboBox.setRenderer(new ColoredListCellRenderer<LibraryEditor>(myExistingLibraryComboBox) {

        @Override
        protected void customizeCellRenderer(@NotNull JList<? extends LibraryEditor> list, LibraryEditor value, int index, boolean selected, boolean hasFocus) {
            if (value == null) {
                append("[No library selected]");
            } else if (value instanceof ExistingLibraryEditor) {
                final Library library = ((ExistingLibraryEditor) value).getLibrary();
                final boolean invalid = !((LibraryEx) library).getInvalidRootUrls(OrderRootType.CLASSES).isEmpty();
                OrderEntryAppearanceService.getInstance().forLibrary(getProject(), library, invalid).customize(this);
            } else if (value instanceof NewLibraryEditor) {
                setIcon(PlatformIcons.LIBRARY_ICON);
                final String name = value.getName();
                append(name != null ? name : "<unnamed>");
            }
        }
    });
    boolean canDownload = mySettings.getDownloadSettings() != null;
    boolean canUseFromProvider = myLibraryProvider != null;
    myDownloadRadioButton.setVisible(canDownload);
    myUseFromProviderRadioButton.setVisible(canUseFromProvider);
    Choice selectedOption;
    if (canUseFromProvider) {
        selectedOption = Choice.USE_FROM_PROVIDER;
    } else if (libraries.isEmpty() && canDownload) {
        selectedOption = Choice.DOWNLOAD;
    } else {
        selectedOption = Choice.USE_LIBRARY;
        doCreate(true);
    }
    myButtonEnumModel.setSelected(selectedOption);
    if (!canDownload && !canUseFromProvider && !showDoNotCreateOption) {
        myUseLibraryRadioButton.setVisible(false);
        myUseLibraryLabel.setVisible(true);
    } else {
        myUseLibraryLabel.setVisible(false);
    }
    final Dimension minimumSize = new Dimension(-1, myMessageLabel.getFontMetrics(myMessageLabel.getFont()).getHeight() * 2);
    myHiddenLabel.setMinimumSize(minimumSize);
    myCreateButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            doCreate(false);
        }
    });
    myConfigureButton.addActionListener(new ActionListener() {

        public void actionPerformed(final ActionEvent e) {
            doConfigure();
        }
    });
    updateState();
    showCard("editing");
}
Also used : AllIcons(com.intellij.icons.AllIcons) NotNullComputable(com.intellij.openapi.util.NotNullComputable) VirtualFile(com.intellij.openapi.vfs.VirtualFile) ItemListener(java.awt.event.ItemListener) DownloadableLibraryDescription(com.intellij.framework.library.DownloadableLibraryDescription) JBLabel(com.intellij.ui.components.JBLabel) RadioButtonEnumModel(com.intellij.util.ui.RadioButtonEnumModel) FrameworkLibraryVersion(com.intellij.framework.library.FrameworkLibraryVersion) Library(com.intellij.openapi.roots.libraries.Library) ProjectManager(com.intellij.openapi.project.ProjectManager) ExistingLibraryEditor(com.intellij.openapi.roots.ui.configuration.libraryEditor.ExistingLibraryEditor) Disposer(com.intellij.openapi.util.Disposer) OldCustomLibraryDescription(com.intellij.ide.util.frameworkSupport.OldCustomLibraryDescription) FileUtil(com.intellij.openapi.util.io.FileUtil) Logger(com.intellij.openapi.diagnostic.Logger) NewLibraryEditor(com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor) DownloadableFileSetVersions(com.intellij.util.download.DownloadableFileSetVersions) CustomLibraryDescription(com.intellij.openapi.roots.ui.configuration.libraries.CustomLibraryDescription) ItemEvent(java.awt.event.ItemEvent) OrderRootType(com.intellij.openapi.roots.OrderRootType) LibraryEditor(com.intellij.openapi.roots.ui.configuration.libraryEditor.LibraryEditor) LocalFileSystem(com.intellij.openapi.vfs.LocalFileSystem) IdeBundle(com.intellij.ide.IdeBundle) Nullable(org.jetbrains.annotations.Nullable) List(java.util.List) DownloadableLibraryType(com.intellij.framework.library.DownloadableLibraryType) NewLibraryConfiguration(com.intellij.openapi.roots.libraries.NewLibraryConfiguration) ColoredListCellRenderer(com.intellij.ui.ColoredListCellRenderer) XmlStringUtil(com.intellij.xml.util.XmlStringUtil) NotNull(org.jetbrains.annotations.NotNull) WriteAction(com.intellij.openapi.application.WriteAction) ActionListener(java.awt.event.ActionListener) FrameworkLibraryVersionFilter(com.intellij.framework.library.FrameworkLibraryVersionFilter) ContainerUtil(com.intellij.util.containers.ContainerUtil) MessageFormat(java.text.MessageFormat) ArrayList(java.util.ArrayList) LibrariesContainer(com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainer) Comparing(com.intellij.openapi.util.Comparing) SortedComboBoxModel(com.intellij.ui.SortedComboBoxModel) Project(com.intellij.openapi.project.Project) PlatformIcons(com.intellij.util.PlatformIcons) LibraryEx(com.intellij.openapi.roots.impl.libraries.LibraryEx) LibraryPresentationManager(com.intellij.openapi.roots.ui.configuration.libraries.LibraryPresentationManager) StringUtil(com.intellij.openapi.util.text.StringUtil) ActionEvent(java.awt.event.ActionEvent) Disposable(com.intellij.openapi.Disposable) java.awt(java.awt) Result(com.intellij.openapi.application.Result) OrderEntryAppearanceService(com.intellij.openapi.roots.ui.OrderEntryAppearanceService) PathUtil(com.intellij.util.PathUtil) javax.swing(javax.swing) ItemEvent(java.awt.event.ItemEvent) ActionEvent(java.awt.event.ActionEvent) LibraryEx(com.intellij.openapi.roots.impl.libraries.LibraryEx) ExistingLibraryEditor(com.intellij.openapi.roots.ui.configuration.libraryEditor.ExistingLibraryEditor) ExistingLibraryEditor(com.intellij.openapi.roots.ui.configuration.libraryEditor.ExistingLibraryEditor) NewLibraryEditor(com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor) LibraryEditor(com.intellij.openapi.roots.ui.configuration.libraryEditor.LibraryEditor) ActionListener(java.awt.event.ActionListener) ItemListener(java.awt.event.ItemListener) Library(com.intellij.openapi.roots.libraries.Library) NewLibraryEditor(com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor)

Example 8 with NewLibraryEditor

use of com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor in project intellij-community by JetBrains.

the class LibraryDownloadSettings method download.

@Nullable
public NewLibraryEditor download(JComponent parent, @Nullable String rootPath) {
    final List<DownloadableFileDescription> toDownload = new ArrayList<>(mySelectedDownloads);
    Map<DownloadableFileDescription, OrderRootType> rootTypes = new HashMap<>();
    for (DownloadableLibraryFileDescription description : mySelectedDownloads) {
        final DownloadableFileDescription sources = description.getSourcesDescription();
        if (myDownloadSources && sources != null) {
            toDownload.add(sources);
            rootTypes.put(sources, OrderRootType.SOURCES);
        }
        final DownloadableFileDescription docs = description.getDocumentationDescription();
        if (myDownloadJavaDocs && docs != null) {
            toDownload.add(docs);
            rootTypes.put(docs, JavadocOrderRootType.getInstance());
        }
    }
    String path = rootPath != null && !FileUtil.isAbsolute(myLibrariesPath) ? new File(rootPath, myLibrariesPath).getPath() : myLibrariesPath;
    List<Pair<VirtualFile, DownloadableFileDescription>> downloaded = DownloadableFileService.getInstance().createDownloader(toDownload, myLibraryName + " Library").downloadWithProgress(path, null, parent);
    if (downloaded == null) {
        return null;
    }
    final NewLibraryEditor libraryEditor;
    if (myLibraryType != null) {
        libraryEditor = new NewLibraryEditor(myLibraryType, new LibraryVersionProperties(myVersion.getVersionString()));
    } else {
        libraryEditor = new NewLibraryEditor();
    }
    libraryEditor.setName(myLibraryName);
    for (Pair<VirtualFile, DownloadableFileDescription> pair : downloaded) {
        final OrderRootType rootType = rootTypes.containsKey(pair.getSecond()) ? rootTypes.get(pair.getSecond()) : OrderRootType.CLASSES;
        libraryEditor.addRoot(pair.getFirst(), rootType);
    }
    return libraryEditor;
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) DownloadableLibraryFileDescription(com.intellij.framework.library.DownloadableLibraryFileDescription) LibraryVersionProperties(com.intellij.framework.library.LibraryVersionProperties) DownloadableFileDescription(com.intellij.util.download.DownloadableFileDescription) OrderRootType(com.intellij.openapi.roots.OrderRootType) JavadocOrderRootType(com.intellij.openapi.roots.JavadocOrderRootType) VirtualFile(com.intellij.openapi.vfs.VirtualFile) File(java.io.File) NewLibraryEditor(com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor) Pair(com.intellij.openapi.util.Pair) Nullable(org.jetbrains.annotations.Nullable)

Example 9 with NewLibraryEditor

use of com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor in project kotlin by JetBrains.

the class ConfigLibraryUtil method getKotlinRuntimeLibEditor.

private static NewLibraryEditor getKotlinRuntimeLibEditor(String libName, File library) {
    NewLibraryEditor editor = new NewLibraryEditor();
    editor.setName(libName);
    editor.addRoot(VfsUtil.getUrlForLibraryRoot(library), OrderRootType.CLASSES);
    return editor;
}
Also used : NewLibraryEditor(com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor)

Example 10 with NewLibraryEditor

use of com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor in project kotlin by JetBrains.

the class ConfigLibraryUtil method addLibrary.

public static void addLibrary(@NotNull Module module, @NotNull String libraryName, @NotNull String rootPath, @NotNull String[] jarPaths) {
    NewLibraryEditor editor = new NewLibraryEditor();
    editor.setName(libraryName);
    for (String jarPath : jarPaths) {
        editor.addRoot(VfsUtil.getUrlForLibraryRoot(new File(rootPath, jarPath)), OrderRootType.CLASSES);
    }
    addLibrary(editor, module);
}
Also used : NewLibraryEditor(com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor) File(java.io.File)

Aggregations

NewLibraryEditor (com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor)11 NewLibraryConfiguration (com.intellij.openapi.roots.libraries.NewLibraryConfiguration)3 VirtualFile (com.intellij.openapi.vfs.VirtualFile)3 Nullable (org.jetbrains.annotations.Nullable)3 FrameworkLibraryVersion (com.intellij.framework.library.FrameworkLibraryVersion)2 OrderRootType (com.intellij.openapi.roots.OrderRootType)2 DownloadableFileSetVersions (com.intellij.util.download.DownloadableFileSetVersions)2 File (java.io.File)2 ArrayList (java.util.ArrayList)2 LibraryDownloadSettings (com.intellij.facet.impl.ui.libraries.LibraryDownloadSettings)1 DownloadableLibraryDescription (com.intellij.framework.library.DownloadableLibraryDescription)1 DownloadableLibraryFileDescription (com.intellij.framework.library.DownloadableLibraryFileDescription)1 DownloadableLibraryType (com.intellij.framework.library.DownloadableLibraryType)1 FrameworkLibraryVersionFilter (com.intellij.framework.library.FrameworkLibraryVersionFilter)1 LibraryVersionProperties (com.intellij.framework.library.LibraryVersionProperties)1 AllIcons (com.intellij.icons.AllIcons)1 IdeBundle (com.intellij.ide.IdeBundle)1 OldCustomLibraryDescription (com.intellij.ide.util.frameworkSupport.OldCustomLibraryDescription)1 Disposable (com.intellij.openapi.Disposable)1 ModalityState (com.intellij.openapi.application.ModalityState)1