Package ro.redeul.google.go.ide

Source Code of ro.redeul.google.go.ide.GoModuleType

package ro.redeul.google.go.ide;

import com.intellij.ide.util.projectWizard.ModuleWizardStep;
import com.intellij.ide.util.projectWizard.ProjectWizardStepFactory;
import com.intellij.ide.util.projectWizard.WizardContext;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleType;
import com.intellij.openapi.module.ModuleTypeManager;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.projectRoots.SdkType;
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
import com.intellij.openapi.util.Computable;
import org.jetbrains.annotations.NotNull;
import ro.redeul.google.go.GoBundle;
import ro.redeul.google.go.GoIcons;
import ro.redeul.google.go.config.sdk.GoSdkType;
import ro.redeul.google.go.ide.ui.GoModuleWizardProjectSettings;
import ro.redeul.google.go.ide.ui.GoModuleWizardStepPackageConfig;

import javax.swing.*;
import java.util.ArrayList;
import java.util.List;

/**
* Author: Mihai Claudiu Toader <mtoader@gmail.com>
* <p/>
* Date: 1/2/11
* Time: 10:34 AM
*/
public class GoModuleType extends ModuleType<GoModuleBuilder> {

    public static final String MODULE_TYPE_ID = "GO_MODULE";

    public GoModuleType() {
        super(MODULE_TYPE_ID);
    }

    public static GoModuleType getInstance() {
        return (GoModuleType) ModuleTypeManager.getInstance().findByID(MODULE_TYPE_ID);
    }

    @NotNull
    @Override
    public GoModuleBuilder createModuleBuilder() {
        return new GoModuleBuilder();
    }

    @NotNull
    @Override
    public String getName() {
        return GoBundle.message("go.module.type.name");
    }

    @NotNull
    @Override
    public String getDescription() {
        return GoBundle.message("go.module.type.description");
    }

    @Override
    public Icon getBigIcon() {
        return GoIcons.GO_ICON_24x24;
    }

    @Override
    public Icon getNodeIcon(boolean isOpened) {
        return GoIcons.GO_ICON_16x16;
    }

    public boolean isValidSdk(@NotNull final Module module, final Sdk projectSdk) {
        return projectSdk.getSdkType() == GoSdkType.getInstance();
    }

    @NotNull
    @Override
    public ModuleWizardStep[] createWizardSteps(@NotNull WizardContext wizardContext, @NotNull GoModuleBuilder moduleBuilder, @NotNull ModulesProvider modulesProvider)
    {
        List<ModuleWizardStep> steps = new ArrayList<ModuleWizardStep>();

        ProjectWizardStepFactory factory = ProjectWizardStepFactory.getInstance();

        steps.add(new GoModuleWizardStepPackageConfig(moduleBuilder));
        steps.add(new GoModuleWizardProjectSettings(moduleBuilder));
        steps.add(factory.createProjectJdkStep(wizardContext, SdkType.findInstance(GoSdkType.class), moduleBuilder, new Computable.PredefinedValueComputable<Boolean>(true), null, ""));
        return steps.toArray(new ModuleWizardStep[steps.size()]);
    }
}
TOP

Related Classes of ro.redeul.google.go.ide.GoModuleType

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.