mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEADEV-41372: Artifacts: exception on right0clicking on just deleted library
This commit is contained in:
+1
-1
@@ -122,7 +122,7 @@ public class ProjectStructureConfigurable extends BaseConfigurable implements Se
|
||||
myGlobalLibrariesConfig.init(myContext);
|
||||
myModulesConfig.init(myContext);
|
||||
myFacetStructureConfigurable.init(myContext);
|
||||
myArtifactsStructureConfigurable.init(myContext);
|
||||
myArtifactsStructureConfigurable.init(myContext, myModulesConfig, myProjectLibrariesConfig, myGlobalLibrariesConfig);
|
||||
|
||||
final PropertiesComponent propertiesComponent = PropertiesComponent.getInstance(myProject);
|
||||
myUiState.lastEditedConfigurable = propertiesComponent.getValue("project.structure.last.edited");
|
||||
|
||||
+28
-6
@@ -23,14 +23,15 @@ import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.components.PersistentStateComponent;
|
||||
import com.intellij.openapi.components.State;
|
||||
import com.intellij.openapi.components.Storage;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.project.DumbAwareAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectBundle;
|
||||
import com.intellij.openapi.roots.ModifiableRootModel;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.ui.configuration.ModuleEditor;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.BaseStructureConfigurable;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.*;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureElement;
|
||||
import com.intellij.openapi.ui.MasterDetailsStateService;
|
||||
import com.intellij.packaging.artifacts.*;
|
||||
@@ -40,7 +41,9 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
@@ -58,8 +61,8 @@ public class ArtifactsStructureConfigurable extends BaseStructureConfigurable {
|
||||
MasterDetailsStateService.getInstance(project).register("ArtifactsStructureConfigurable.UI", this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(StructureConfigurableContext context) {
|
||||
public void init(StructureConfigurableContext context, ModuleStructureConfigurable moduleStructureConfigurable,
|
||||
ProjectLibrariesConfigurable projectLibrariesConfig, GlobalLibrariesConfigurable globalLibrariesConfig) {
|
||||
super.init(context);
|
||||
myPackagingEditorContext = new ArtifactsStructureConfigurableContextImpl(myContext, myProject, myDefaultSettings, new ArtifactAdapter() {
|
||||
@Override
|
||||
@@ -77,6 +80,26 @@ public class ArtifactsStructureConfigurable extends BaseStructureConfigurable {
|
||||
}
|
||||
}
|
||||
});
|
||||
final ItemsChangeListener listener = new ItemsChangeListener() {
|
||||
public void itemChanged(@Nullable Object deletedItem) {
|
||||
if (deletedItem instanceof Library || deletedItem instanceof Module) {
|
||||
onElementDeleted();
|
||||
}
|
||||
}
|
||||
|
||||
public void itemsExternallyChanged() {
|
||||
}
|
||||
};
|
||||
moduleStructureConfigurable.addItemsChangeListener(listener);
|
||||
projectLibrariesConfig.addItemsChangeListener(listener);
|
||||
globalLibrariesConfig.addItemsChangeListener(listener);
|
||||
}
|
||||
|
||||
private void onElementDeleted() {
|
||||
for (ArtifactEditorImpl editor : myPackagingEditorContext.getArtifactEditors()) {
|
||||
editor.getSourceItemsTree().rebuildTree();
|
||||
editor.queueValidation();
|
||||
}
|
||||
}
|
||||
|
||||
@Nls
|
||||
@@ -251,7 +274,6 @@ public class ArtifactsStructureConfigurable extends BaseStructureConfigurable {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
private class AddArtifactAction extends DumbAwareAction {
|
||||
private final ArtifactType myType;
|
||||
private final ArtifactTemplate myArtifactTemplate;
|
||||
|
||||
+6
@@ -36,6 +36,8 @@ import com.intellij.packaging.ui.ManifestFileConfiguration;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -215,6 +217,10 @@ public class ArtifactsStructureConfigurableContextImpl implements ArtifactsStruc
|
||||
myArtifactElements.clear();
|
||||
}
|
||||
|
||||
public Collection<? extends ArtifactEditorImpl> getArtifactEditors() {
|
||||
return Collections.unmodifiableCollection(myArtifactEditors.values());
|
||||
}
|
||||
|
||||
public void saveEditorSettings() {
|
||||
myEditorSettings.clear();
|
||||
for (ArtifactEditorImpl artifactEditor : myArtifactEditors.values()) {
|
||||
|
||||
@@ -260,7 +260,7 @@ public abstract class MasterDetailsComponent implements Configurable, Persistent
|
||||
}
|
||||
}
|
||||
|
||||
protected void addItemsChangeListener(ItemsChangeListener l) {
|
||||
public void addItemsChangeListener(ItemsChangeListener l) {
|
||||
myListners.add(l);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user