Package ro.redeul.google.go.wizards.importWizard

Source Code of ro.redeul.google.go.wizards.importWizard.GoProjectImportBuilder

package ro.redeul.google.go.wizards.importWizard;

import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.module.ModifiableModuleModel;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ContentEntry;
import com.intellij.openapi.roots.ModifiableRootModel;
import com.intellij.openapi.roots.ModuleRootManager;
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.packaging.artifacts.ModifiableArtifactModel;
import com.intellij.projectImport.ProjectImportBuilder;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import ro.redeul.google.go.GoIcons;

import javax.swing.*;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class GoProjectImportBuilder extends ProjectImportBuilder<String> {
    private static final Logger LOG = Logger.getInstance(GoProjectImportBuilder.class);
    @NotNull
    @Override
    public String getName() {
        return "Go";
    }

    @Override
    public Icon getIcon() {
        return GoIcons.GO_ICON_13x13;
    }

    @Override
    public List<String> getList() {
        return new ArrayList<String>();
    }

    @Override
    public boolean isMarked(String element) {
        return false;
    }

    @Override
    public void setList(List<String> list) throws ConfigurationException {
    }

    @Override
    public void setOpenProjectSettingsAfter(boolean on) {

    }

    @Nullable
    @Override
    public List<Module> commit(final Project project, ModifiableModuleModel model, ModulesProvider modulesProvider, ModifiableArtifactModel artifactModel) {
        //Create Module and iml-file
        final ModifiableModuleModel moduleModel = model != null ? model : ModuleManager.getInstance(project).getModifiableModel();
        Module myModule = moduleModel.newModule(project.getBasePath() + File.separator + project.getName() + ".iml", "GO_MODULE");
        final ModifiableRootModel mrm = ModuleRootManager.getInstance(myModule).getModifiableModel();
        mrm.inheritSdk();

        ApplicationManager.getApplication().runWriteAction(new Runnable() {
            @Override
            public void run() {
                //Add the default content entry
                VirtualFile baseDir = project.getBaseDir();
                ContentEntry entry = mrm.addContentEntry(baseDir);

                //Set src-folder as SourceFolder, if it exists
                VirtualFile srcFolder = baseDir.findFileByRelativePath("src");
                if(srcFolder != null) {
                    entry.addSourceFolder(srcFolder, false);
                }

                mrm.commit();
                moduleModel.commit();
            }
        });


        return Arrays.asList(myModule);
    }
}
TOP

Related Classes of ro.redeul.google.go.wizards.importWizard.GoProjectImportBuilder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.