Search in sources :

Example 6 with LibraryEditor

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

the class RepositoryLibraryWithDescriptionEditor method edit.

@Override
protected void edit() {
    @NotNull RepositoryLibraryProperties properties = myEditorComponent.getProperties();
    //String oldVersion = properties.getVersion();
    boolean wasGeneratedName = RepositoryLibraryType.getInstance().getDescription(properties).equals(myEditorComponent.getLibraryEditor().getName());
    RepositoryLibraryPropertiesModel model = new RepositoryLibraryPropertiesModel(properties.getVersion(), RepositoryUtils.libraryHasSources(myEditorComponent.getLibraryEditor()), RepositoryUtils.libraryHasJavaDocs(myEditorComponent.getLibraryEditor()));
    RepositoryLibraryPropertiesDialog dialog = new RepositoryLibraryPropertiesDialog(myEditorComponent.getProject(), model, RepositoryLibraryDescription.findDescription(properties), true);
    if (!dialog.showAndGet()) {
        return;
    }
    myEditorComponent.getProperties().changeVersion(model.getVersion());
    if (wasGeneratedName) {
        myEditorComponent.renameLibrary(RepositoryLibraryType.getInstance().getDescription(properties));
    }
    final LibraryEditor libraryEditor = myEditorComponent.getLibraryEditor();
    MavenDependenciesRemoteManager.getInstance(myEditorComponent.getProject()).downloadDependenciesAsync(properties, model.isDownloadSources(), model.isDownloadJavaDocs(), RepositoryUtils.getStorageRoot(myEditorComponent.getLibraryEditor().getUrls(OrderRootType.CLASSES), myEditorComponent.getProject()), new MavenRemoteTask.ResultProcessor<List<OrderRoot>>() {

        @Override
        public void process(@Nullable List<OrderRoot> roots) {
            libraryEditor.removeAllRoots();
            if (roots != null) {
                libraryEditor.addRoots(roots);
            }
        }
    });
}
Also used : LibraryEditor(com.intellij.openapi.roots.ui.configuration.libraryEditor.LibraryEditor) RepositoryLibraryPropertiesModel(org.jetbrains.idea.maven.utils.library.propertiesEditor.RepositoryLibraryPropertiesModel) List(java.util.List) OrderRoot(com.intellij.openapi.roots.libraries.ui.OrderRoot) NotNull(org.jetbrains.annotations.NotNull) RepositoryLibraryPropertiesDialog(org.jetbrains.idea.maven.utils.library.propertiesEditor.RepositoryLibraryPropertiesDialog) MavenRemoteTask(org.jetbrains.idea.maven.utils.library.remote.MavenRemoteTask)

Example 7 with LibraryEditor

use of com.intellij.openapi.roots.ui.configuration.libraryEditor.LibraryEditor 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)

Aggregations

LibraryEditor (com.intellij.openapi.roots.ui.configuration.libraryEditor.LibraryEditor)7 NotNull (org.jetbrains.annotations.NotNull)5 NewLibraryConfiguration (com.intellij.openapi.roots.libraries.NewLibraryConfiguration)4 VirtualFile (com.intellij.openapi.vfs.VirtualFile)4 FileChooserDescriptor (com.intellij.openapi.fileChooser.FileChooserDescriptor)3 ExistingLibraryEditor (com.intellij.openapi.roots.ui.configuration.libraryEditor.ExistingLibraryEditor)3 Result (com.intellij.openapi.application.Result)2 WriteAction (com.intellij.openapi.application.WriteAction)2 OrderRoot (com.intellij.openapi.roots.libraries.ui.OrderRoot)2 NewLibraryEditor (com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor)2 List (java.util.List)2 Nullable (org.jetbrains.annotations.Nullable)2 DownloadableLibraryDescription (com.intellij.framework.library.DownloadableLibraryDescription)1 DownloadableLibraryType (com.intellij.framework.library.DownloadableLibraryType)1 FrameworkLibraryVersion (com.intellij.framework.library.FrameworkLibraryVersion)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