com.vectrace.MercurialEclipse.wizards.PushRepoPage.java Source code

Java tutorial

Introduction

Here is the source code for com.vectrace.MercurialEclipse.wizards.PushRepoPage.java

Source

/*******************************************************************************
 * Copyright (c) 2005-2008 VecTrace (Zingo Andersen) and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * bastian   implementation
 *     Andrei Loskutov - bug fixes
 *******************************************************************************/
package com.vectrace.MercurialEclipse.wizards;

import java.util.Set;

import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;

import com.vectrace.MercurialEclipse.MercurialEclipsePlugin;
import com.vectrace.MercurialEclipse.commands.HgPathsClient;
import com.vectrace.MercurialEclipse.exception.HgException;
import com.vectrace.MercurialEclipse.model.HgRoot;
import com.vectrace.MercurialEclipse.model.IHgRepositoryLocation;
import com.vectrace.MercurialEclipse.preferences.MercurialPreferenceConstants;
import com.vectrace.MercurialEclipse.storage.HgRepositoryLocationManager;

/**
 * @author bastian
 *
 */
public class PushRepoPage extends PushPullPage {

    public PushRepoPage(String pageName, String title, ImageDescriptor titleImage, HgRoot hgRoot) {
        super(hgRoot, pageName, title, titleImage);
    }

    @Override
    public boolean canFlipToNextPage() {
        try {
            String urlText = getUrlText();
            if (urlText != null && urlText.length() > 0) {
                OutgoingPage outgoingPage = (OutgoingPage) getNextPage();
                outgoingPage.setHgRoot(getHgRoot());
                IHgRepositoryLocation loc = MercurialEclipsePlugin.getRepoManager().getRepoLocation(urlText,
                        getUserText(), getPasswordText());
                outgoingPage.setLocation(loc);
                outgoingPage.setSvn(isSvnSelected());
                outgoingPage.setForce(isForceSelected());
                setErrorMessage(null);
                return isPageComplete() && (getWizard().getNextPage(this) != null);
            }
        } catch (HgException e) {
            setErrorMessage(e.getLocalizedMessage());
        }
        return false;
    }

    @Override
    protected IHgRepositoryLocation getRepoFromRoot() {
        HgRepositoryLocationManager mgr = MercurialEclipsePlugin.getRepoManager();
        IHgRepositoryLocation defaultLocation = mgr.getDefaultRepoLocation(getHgRoot());
        Set<IHgRepositoryLocation> repos = mgr.getAllRepoLocations(getHgRoot());
        if (defaultLocation == null) {
            for (IHgRepositoryLocation repo : repos) {
                if (HgPathsClient.DEFAULT_PUSH.equals(repo.getLogicalName())
                        || HgPathsClient.DEFAULT.equals(repo.getLogicalName())) {
                    defaultLocation = repo;
                    break;
                }
            }
        }
        return defaultLocation;
    }

    /**
     * @see com.vectrace.MercurialEclipse.wizards.PushPullPage#onForceEnabled()
     */
    @Override
    protected void onForceEnabled() {
        MercurialEclipsePlugin.showDontShowAgainConfirmDialog("Push Changesets",
                "On the next page of the wizard " + "please select the revision to push and select the "
                        + "checkbox to enable pushing only that revision (and ancestors)",
                MessageDialog.INFORMATION, MercurialPreferenceConstants.PREF_SHOW_PUSH_FORCE_GUIDANCE_DIALOG,
                getShell());
    }
}