manifest editing in artifacts improved: IDEADEV-40906, IDEADEV-40727, IDEADEV-40713, IDEADEV-40709, IDEADEV-40712

This commit is contained in:
nik
2009-10-23 13:33:31 +04:00
parent 24881dc543
commit aef4ce013c
17 changed files with 380 additions and 137 deletions
@@ -17,6 +17,7 @@ package com.intellij.packaging.artifacts;
import com.intellij.packaging.elements.CompositePackagingElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* @author nik
@@ -38,4 +39,6 @@ public interface ModifiableArtifactModel extends ArtifactModel {
void commit();
@Nullable
Artifact getModifiableCopy(Artifact artifact);
}
@@ -25,6 +25,7 @@ import java.util.List;
* @author nik
*/
public interface ArtifactEditor {
void updateLayoutTree();
void putLibraryIntoDefaultLocation(@NotNull Library library);
@@ -43,12 +43,16 @@ public interface ArtifactEditorContext extends PackagingElementResolvingContext
@NotNull
ManifestFileConfiguration getManifestFile(CompositePackagingElement<?> element, ArtifactType artifactType);
boolean isManifestFile(String path);
CompositePackagingElement<?> getRootElement(@NotNull Artifact artifact);
void editLayout(@NotNull Artifact artifact, Runnable runnable);
ArtifactEditor getOrCreateEditor(Artifact originalArtifact);
ArtifactEditor getThisArtifactEditor();
void selectArtifact(@NotNull Artifact artifact);
@@ -15,6 +15,9 @@
*/
package com.intellij.packaging.ui;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.ArrayList;
@@ -26,18 +29,25 @@ public class ManifestFileConfiguration {
private String myMainClass;
private String myManifestFilePath;
public ManifestFileConfiguration(ManifestFileConfiguration configuration) {
myClasspath = new ArrayList<String>(configuration.getClasspath());
myMainClass = configuration.getMainClass();
myManifestFilePath = configuration.getManifestFilePath();
public ManifestFileConfiguration(@NotNull ManifestFileConfiguration configuration) {
copyFrom(configuration);
}
public ManifestFileConfiguration(List<String> classpath, String mainClass, String manifestFilePath) {
myClasspath = classpath;
public ManifestFileConfiguration(@Nullable List<String> classpath, @Nullable String mainClass, @Nullable String manifestFilePath) {
if (classpath != null) {
myClasspath.addAll(classpath);
}
myMainClass = mainClass;
myManifestFilePath = manifestFilePath;
}
public void copyFrom(@NotNull ManifestFileConfiguration configuration) {
myClasspath.clear();
myClasspath.addAll(configuration.getClasspath());
myMainClass = configuration.getMainClass();
myManifestFilePath = configuration.getManifestFilePath();
}
public List<String> getClasspath() {
return myClasspath;
}