com.microsoft.tfs.client.common.ui.dialogs.vc.ConvertFolderToBranchDialog.java Source code

Java tutorial

Introduction

Here is the source code for com.microsoft.tfs.client.common.ui.dialogs.vc.ConvertFolderToBranchDialog.java

Source

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

package com.microsoft.tfs.client.common.ui.dialogs.vc;

import java.text.MessageFormat;

import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

import com.microsoft.tfs.client.common.repository.TFSRepository;
import com.microsoft.tfs.client.common.ui.Messages;
import com.microsoft.tfs.client.common.ui.framework.dialog.BaseDialog;
import com.microsoft.tfs.client.common.ui.framework.helper.SWTUtil;
import com.microsoft.tfs.client.common.ui.framework.layout.GridDataBuilder;
import com.microsoft.tfs.client.common.ui.framework.sizing.ControlSize;
import com.microsoft.tfs.client.common.ui.helpers.AutomationIDHelper;
import com.microsoft.tfs.client.common.ui.vc.tfsitem.TFSItem;

public class ConvertFolderToBranchDialog extends BaseDialog {

    public static final String OWNER_TEXTBOX_ID = "ConvertFolderToBranchDialog.ownerTextbox"; //$NON-NLS-1$
    public static final String DESCRIPTION_TEXTBOX_ID = "ConvertFolderToBranchDialog.descriptionTextbox"; //$NON-NLS-1$
    public static final String RECURSE_CHECKBOX_ID = "ConvertFolderToBranchDialog.recursiveCheckbox"; //$NON-NLS-1$

    private final String user;
    private final TFSItem item;
    private String owner;
    private String description;

    boolean recurse;

    private Text ownerText;
    private Text descriptionText;

    private Button recurseCheck;

    public ConvertFolderToBranchDialog(final Shell parentShell, final TFSItem item, final String user,
            final TFSRepository repository) {
        super(parentShell);
        this.item = item;
        this.user = user;
        setOptionIncludeDefaultButtons(false);
        addButtonDescription(IDialogConstants.OK_ID,
                Messages.getString("ConvertFolderToBranchDialog.ConvertButtonText"), //$NON-NLS-1$
                true);
        addButtonDescription(IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);

    }

    @Override
    protected String provideDialogTitle() {
        if (item == null) {
            return Messages.getString("ConvertFolderToBranchDialog.DialogTitle"); //$NON-NLS-1$
        } else {
            final String messageFormat = Messages.getString("ConvertFolderToBranchDialog.DialogTitleFormat"); //$NON-NLS-1$
            return MessageFormat.format(messageFormat, item.getName());

        }
    }

    @Override
    protected void hookAddToDialogArea(final Composite container) {
        final Composite composite = new Composite(container, SWT.NONE);
        final GridLayout layout = new GridLayout(2, false);
        composite.setLayout(layout);
        GridDataBuilder.newInstance().fill().grab().applyTo(composite);

        final Label branchLabel = SWTUtil.createLabel(composite,
                Messages.getString("ConvertFolderToBranchDialog.BranchNameLabelText")); //$NON-NLS-1$
        GridDataBuilder.newInstance().hFill().hSpan(layout).applyTo(branchLabel);

        final Text branchText = new Text(composite, SWT.READ_ONLY | SWT.BORDER);
        branchText.setText(item.getSourceServerPath());
        GridDataBuilder.newInstance().hSpan(layout).hFill().hGrab(true).applyTo(branchText);

        SWTUtil.createLabel(composite, Messages.getString("ConvertFolderToBranchDialog.OwnerLabelText")); //$NON-NLS-1$
        ownerText = new Text(composite, SWT.BORDER);
        AutomationIDHelper.setWidgetID(ownerText, OWNER_TEXTBOX_ID);

        ownerText.setText(user);
        GridDataBuilder.newInstance().hFill().hGrab(true).applyTo(ownerText);

        final Label descriptionLabel = SWTUtil.createLabel(composite,
                Messages.getString("ConvertFolderToBranchDialog.DescriptionLabelText")); //$NON-NLS-1$
        GridDataBuilder.newInstance().hSpan(layout).hFill().applyTo(descriptionLabel);

        descriptionText = new Text(composite, SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
        AutomationIDHelper.setWidgetID(descriptionText, DESCRIPTION_TEXTBOX_ID);
        GridDataBuilder.newInstance().hSpan(layout).fill().grab().applyTo(descriptionText);
        ControlSize.setCharHeightHint(descriptionText, 10);

        recurseCheck = new Button(composite, SWT.CHECK);
        AutomationIDHelper.setWidgetID(recurseCheck, RECURSE_CHECKBOX_ID);
        recurseCheck.setText(Messages.getString("ConvertFolderToBranchDialog.RecursiveCheckboxText")); //$NON-NLS-1$
        recurseCheck.setSelection(true);
        GridDataBuilder.newInstance().hSpan(layout).applyTo(recurseCheck);

        descriptionText.setFocus();
    }

    @Override
    protected void hookDialogAboutToClose() {
        super.hookDialogAboutToClose();
        owner = ownerText.getText();
        description = descriptionText.getText();
        recurse = recurseCheck.getSelection();
    }

    public String getOwner() {
        return owner;
    }

    public String getDescription() {
        return description;
    }

    public boolean isRecursive() {
        return recurse;
    }

}