use of org.eclipse.jgit.api.ResetCommand.ResetType in project egit by eclipse.
the class ResetCommand method execute.
@Override
public Object execute(final ExecutionEvent event) throws ExecutionException {
final RepositoryTreeNode<?> node = getSelectedNodes(event).get(0);
final String currentBranch;
try {
currentBranch = node.getRepository().getFullBranch();
} catch (IOException e1) {
throw new ExecutionException(e1.getMessage(), e1);
}
if (!(node.getObject() instanceof Ref)) {
// allowing reset to any commit
return new ResetActionHandler().execute(event);
}
// If a ref is selected in the repository view, only reset to
// that ref will be possible.
final Ref targetBranch = (Ref) node.getObject();
final String repoName = Activator.getDefault().getRepositoryUtil().getRepositoryName(node.getRepository());
Wizard wiz = new Wizard() {
@Override
public void addPages() {
addPage(new SelectResetTypePage(repoName, node.getRepository(), currentBranch, targetBranch.getName()));
setWindowTitle(UIText.ResetCommand_WizardTitle);
}
@Override
public boolean performFinish() {
final ResetType resetType = ((SelectResetTypePage) getPages()[0]).getResetType();
ResetMenu.performReset(getShell(), node.getRepository(), targetBranch.getObjectId(), resetType);
return true;
}
};
WizardDialog dlg = new WizardDialog(getShell(event), wiz);
dlg.setHelpAvailable(false);
dlg.open();
return null;
}
use of org.eclipse.jgit.api.ResetCommand.ResetType in project egit by eclipse.
the class ResetActionHandler method execute.
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
final Repository repository = getRepository(true, event);
if (repository == null)
return null;
if (!repository.getRepositoryState().canResetHead()) {
MessageDialog.openError(getShell(event), UIText.ResetAction_errorResettingHead, NLS.bind(UIText.ResetAction_repositoryState, repository.getRepositoryState().getDescription()));
return null;
}
ResetTargetSelectionDialog branchSelectionDialog = new ResetTargetSelectionDialog(getShell(event), repository);
if (branchSelectionDialog.open() == IDialogConstants.OK_ID) {
final String refName = branchSelectionDialog.getRefName();
final ResetType type = branchSelectionDialog.getResetType();
String jobname = NLS.bind(UIText.ResetAction_reset, refName);
final ResetOperation operation = new ResetOperation(repository, refName, type);
JobUtil.scheduleUserWorkspaceJob(operation, jobname, JobFamilies.RESET);
}
return null;
}
Aggregations