com.microsoft.alm.plugin.idea.git.ui.checkout.GitCheckoutModel.java Source code

Java tutorial

Introduction

Here is the source code for com.microsoft.alm.plugin.idea.git.ui.checkout.GitCheckoutModel.java

Source

// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See License.txt in the project root.

package com.microsoft.alm.plugin.idea.git.ui.checkout;

import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vcs.CheckoutProvider;
import com.intellij.openapi.vfs.VirtualFile;
import com.microsoft.alm.plugin.context.RepositoryContext;
import com.microsoft.alm.plugin.context.ServerContext;
import com.microsoft.alm.plugin.idea.common.resources.TfPluginBundle;
import com.microsoft.alm.plugin.idea.common.ui.checkout.VcsSpecificCheckoutModel;
import git4idea.commands.Git;
import org.apache.commons.lang.StringUtils;

public class GitCheckoutModel implements VcsSpecificCheckoutModel {
    @Override
    public void doCheckout(final Project project, final CheckoutProvider.Listener listener,
            final ServerContext context, final VirtualFile destinationParent, final String directoryName,
            final String parentDirectory, final boolean isAdvancedChecked) {
        final String gitRepositoryStr = context.getUsableGitUrl();
        final Git git = ServiceManager.getService(Git.class);
        git4idea.checkout.GitCheckoutProvider.clone(project, git, listener, destinationParent, gitRepositoryStr,
                directoryName, parentDirectory);
    }

    @Override
    public String getTelemetryAction() {
        return "clone";
    }

    @Override
    public String getButtonText() {
        return TfPluginBundle.message(TfPluginBundle.KEY_CHECKOUT_DIALOG_CLONE_BUTTON);
    }

    @Override
    public String getRepositoryName(final ServerContext context) {
        return (context != null && context.getGitRepository() != null) ? context.getGitRepository().getName()
                : StringUtils.EMPTY;
    }

    @Override
    public RepositoryContext.Type getRepositoryType() {
        return RepositoryContext.Type.GIT;
    }
}