/* * Copyright 2000-2009 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.intellij.facet.impl.ui; import com.intellij.facet.Facet; import com.intellij.facet.ui.FacetEditorContext; import com.intellij.ide.util.projectWizard.ModuleBuilder; import com.intellij.ide.util.projectWizard.WizardContext; import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootModel; import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.ui.configuration.ModuleConfigurationState; import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable; import com.intellij.openapi.roots.ui.configuration.artifacts.ArtifactsStructureConfigurableContext; import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainer; import com.intellij.openapi.util.UserDataHolder; import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * @author nik */ public abstract class ProjectConfigurableContext extends FacetEditorContextBase { private final Module myModule; private final boolean myNewFacet; private final ModuleConfigurationState myModuleConfigurationState; public ProjectConfigurableContext(final @NotNull Facet facet, final boolean isNewFacet, @Nullable FacetEditorContext parentContext, final ModuleConfigurationState state, final UserDataHolder sharedModuleData, final UserDataHolder sharedProjectData) { super(facet, parentContext, state.getFacetsProvider(), state.getModulesProvider(), sharedModuleData, sharedProjectData); myModuleConfigurationState = state; myNewFacet = isNewFacet; myModule = facet.getModule(); } @Nullable public ModuleBuilder getModuleBuilder() { return null; } public boolean isNewFacet() { return myNewFacet; } @NotNull public Project getProject() { return myModule.getProject(); } @NotNull public Module getModule() { return myModule; } @NotNull @Override public ModuleRootModel getRootModel() { return myModuleConfigurationState.getModulesProvider().getRootModel(myModule); } @NotNull public ModifiableRootModel getModifiableRootModel() { return myModuleConfigurationState.getRootModel(); } @Nullable public WizardContext getWizardContext() { return null; } public Library createProjectLibrary(final String baseName, final VirtualFile[] roots, final VirtualFile[] sources) { return getContainer().createLibrary(baseName, LibrariesContainer.LibraryLevel.PROJECT, roots, sources); } public VirtualFile[] getLibraryFiles(Library library, OrderRootType rootType) { return getContainer().getLibraryFiles(library, rootType); } @NotNull @Override public ArtifactsStructureConfigurableContext getArtifactsStructureContext() { return ProjectStructureConfigurable.getInstance(getProject()).getArtifactsStructureConfigurable().getArtifactsStructureContext(); } }