package net.jangaroo.ide.idea;
import com.intellij.compiler.ant.Generator;
import com.intellij.facet.pointers.FacetPointer;
import com.intellij.facet.pointers.FacetPointersManager;
import com.intellij.openapi.project.Project;
import com.intellij.packaging.artifacts.ArtifactType;
import com.intellij.packaging.elements.*;
import com.intellij.packaging.impl.ui.DelegatedPackagingElementPresentation;
import com.intellij.packaging.ui.ArtifactEditorContext;
import com.intellij.packaging.ui.PackagingElementPresentation;
import org.jetbrains.annotations.NotNull;
import java.util.Collections;
import java.util.List;
public class JangarooPackagingOutputElement extends PackagingElement<JangarooPackagingOutputElement.JangarooCompilerOutputElementState> {
public JangarooPackagingOutputElement(Project project, JangarooFacet facet) {
super(JangarooPackagingOutputElementType.getInstance());
myProject = project;
myFacetPointer = facet == null ? null : FacetPointersManager.getInstance(project).create(facet);
}
public PackagingElementPresentation createPresentation(@NotNull ArtifactEditorContext context) {
return new DelegatedPackagingElementPresentation(new JangarooPackagingOutputNodePresentation(myFacetPointer));
}
public List<? extends Generator> computeAntInstructions(@NotNull PackagingElementResolvingContext resolvingContext,
@NotNull AntCopyInstructionCreator creator,
@NotNull ArtifactAntGenerationContext generationContext,
@NotNull ArtifactType artifactType) {
return Collections.emptyList();
}
public String toString() {
return (new StringBuilder()).append("jangaroo-compiler-output:").append(myFacetPointer.getFacetName()).append("(")
.append(myFacetPointer.getModuleName()).append(")").toString();
}
public boolean isEqualTo(@NotNull PackagingElement element) {
return (element instanceof JangarooPackagingOutputElement) &&
myFacetPointer != null &&
myFacetPointer.equals(((JangarooPackagingOutputElement)element).myFacetPointer);
}
public JangarooCompilerOutputElementState getState() {
JangarooCompilerOutputElementState state = new JangarooCompilerOutputElementState();
state.myFacetPointer = myFacetPointer == null ? null : myFacetPointer.getId();
return state;
}
public JangarooFacet getFacet() {
return (JangarooFacet)myFacetPointer.getFacet();
}
public void loadState(JangarooCompilerOutputElementState state) {
String pointer = state.myFacetPointer;
myFacetPointer = pointer == null ? null : FacetPointersManager.getInstance(myProject).create(pointer);
}
private final Project myProject;
private FacetPointer myFacetPointer;
public static class JangarooCompilerOutputElementState {
public String myFacetPointer;
}
}