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

Java tutorial

Introduction

Here is the source code for com.microsoft.tfs.client.common.ui.dialogs.vc.candidates.DeleteFromDiskAction.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.candidates;

import org.eclipse.jface.viewers.IStructuredSelection;

import com.microsoft.tfs.client.common.framework.command.ICommandExecutor;
import com.microsoft.tfs.client.common.ui.Messages;
import com.microsoft.tfs.client.common.ui.controls.vc.changes.ChangeItem;
import com.microsoft.tfs.client.common.ui.dialogs.vc.PromoteCandidateChangesDialog;
import com.microsoft.tfs.client.common.ui.framework.command.UICommandExecutorFactory;
import com.microsoft.tfs.client.common.ui.framework.helper.SelectionUtils;
import com.microsoft.tfs.core.clients.versioncontrol.soapextensions.ChangeType;

public class DeleteFromDiskAction extends CandidateAction {
    public DeleteFromDiskAction(final PromoteCandidateChangesDialog dialog) {
        super(dialog);
        setText(Messages.getString("DeleteFromDiskAction.DeleteFromDiskActionText")); //$NON-NLS-1$
    }

    @Override
    public void doRun() {
        final ChangeItem[] changes = (ChangeItem[]) SelectionUtils.selectionToArray(getSelection(),
                ChangeItem.class);

        final DeleteFromDiskCommand command = new DeleteFromDiskCommand(changes);
        final ICommandExecutor executor = UICommandExecutorFactory.newUICommandExecutor(dialog.getShell());
        executor.execute(command);

        dialog.refreshCandidateTable(changes);
    }

    @Override
    protected boolean computeEnablement(final IStructuredSelection selection) {
        if (selection.size() == 0) {
            return false;
        }

        final ChangeItem[] changes = (ChangeItem[]) SelectionUtils.selectionToArray(getSelection(),
                ChangeItem.class);

        // Ensure all are adds
        boolean nonAdd = false;
        for (final ChangeItem change : changes) {
            if (!change.getChangeType().contains(ChangeType.ADD)) {
                nonAdd = true;
                break;
            }
        }

        return !nonAdd;
    }

    public boolean isVisible(final IStructuredSelection selection) {
        final ChangeItem[] changes = (ChangeItem[]) SelectionUtils.selectionToArray(getSelection(),
                ChangeItem.class);

        // Show if any is an add
        for (final ChangeItem change : changes) {
            if (change.getChangeType().contains(ChangeType.ADD)) {
                return true;
            }
        }

        return false;
    }
}