Search in sources :

Example 1 with GitOutputConsole

use of org.eclipse.che.ide.ext.git.client.outputconsole.GitOutputConsole in project che by eclipse.

the class DeleteRepositoryPresenter method deleteRepository.

/** Delete Git repository. */
public void deleteRepository(final Project project) {
    final GitOutputConsole console = gitOutputConsoleFactory.create(DELETE_REPO_COMMAND_NAME);
    service.deleteRepository(appContext.getDevMachine(), project.getLocation()).then(new Operation<Void>() {

        @Override
        public void apply(Void ignored) throws OperationException {
            console.print(constant.deleteGitRepositorySuccess());
            consolesPanelPresenter.addCommandOutput(appContext.getDevMachine().getId(), console);
            notificationManager.notify(constant.deleteGitRepositorySuccess());
            project.synchronize();
        }
    }).catchError(new Operation<PromiseError>() {

        @Override
        public void apply(PromiseError error) throws OperationException {
            console.printError(error.getMessage());
            consolesPanelPresenter.addCommandOutput(appContext.getDevMachine().getId(), console);
            notificationManager.notify(constant.failedToDeleteRepository(), FAIL, FLOAT_MODE);
        }
    });
}
Also used : PromiseError(org.eclipse.che.api.promises.client.PromiseError) GitOutputConsole(org.eclipse.che.ide.ext.git.client.outputconsole.GitOutputConsole) Operation(org.eclipse.che.api.promises.client.Operation) OperationException(org.eclipse.che.api.promises.client.OperationException)

Example 2 with GitOutputConsole

use of org.eclipse.che.ide.ext.git.client.outputconsole.GitOutputConsole in project che by eclipse.

the class FetchPresenter method updateBranches.

/**
     * Update the list of branches.
     *
     * @param remoteMode
     *         is a remote mode
     */
private void updateBranches(@NotNull final BranchListMode remoteMode) {
    service.branchList(appContext.getDevMachine(), project.getLocation(), remoteMode).then(new Operation<List<Branch>>() {

        @Override
        public void apply(List<Branch> branches) throws OperationException {
            if (LIST_REMOTE.equals(remoteMode)) {
                view.setRemoteBranches(branchSearcher.getRemoteBranchesToDisplay(view.getRepositoryName(), branches));
                updateBranches(LIST_LOCAL);
            } else {
                view.setLocalBranches(branchSearcher.getLocalBranchesToDisplay(branches));
                for (Branch branch : branches) {
                    if (branch.isActive()) {
                        view.selectRemoteBranch(branch.getDisplayName());
                        break;
                    }
                }
            }
        }
    }).catchError(new Operation<PromiseError>() {

        @Override
        public void apply(PromiseError error) throws OperationException {
            final String errorMessage = error.getMessage() != null ? error.getMessage() : constant.branchesListFailed();
            GitOutputConsole console = gitOutputConsoleFactory.create(FETCH_COMMAND_NAME);
            console.printError(errorMessage);
            processesPanelPresenter.addCommandOutput(appContext.getDevMachine().getId(), console);
            notificationManager.notify(constant.branchesListFailed(), FAIL, FLOAT_MODE);
            view.setEnableFetchButton(false);
        }
    });
}
Also used : PromiseError(org.eclipse.che.api.promises.client.PromiseError) Branch(org.eclipse.che.api.git.shared.Branch) GitOutputConsole(org.eclipse.che.ide.ext.git.client.outputconsole.GitOutputConsole) Collections.singletonList(java.util.Collections.singletonList) Collections.emptyList(java.util.Collections.emptyList) List(java.util.List) Operation(org.eclipse.che.api.promises.client.Operation) OperationException(org.eclipse.che.api.promises.client.OperationException)

Example 3 with GitOutputConsole

use of org.eclipse.che.ide.ext.git.client.outputconsole.GitOutputConsole in project che by eclipse.

the class MergePresenter method showDialog.

/** Show dialog. */
public void showDialog(Project project) {
    this.project = project;
    final GitOutputConsole console = gitOutputConsoleFactory.create(MERGE_COMMAND_NAME);
    selectedReference = null;
    view.setEnableMergeButton(false);
    service.branchList(appContext.getDevMachine(), project.getLocation(), LIST_LOCAL).then(new Operation<List<Branch>>() {

        @Override
        public void apply(List<Branch> branches) throws OperationException {
            List<Reference> references = new ArrayList<>();
            for (Branch branch : branches) {
                if (!branch.isActive()) {
                    Reference reference = new Reference(branch.getName(), branch.getDisplayName(), LOCAL_BRANCH);
                    references.add(reference);
                }
            }
            view.setLocalBranches(references);
        }
    }).catchError(new Operation<PromiseError>() {

        @Override
        public void apply(PromiseError error) throws OperationException {
            console.printError(error.getMessage());
            consolesPanelPresenter.addCommandOutput(appContext.getDevMachine().getId(), console);
            notificationManager.notify(constant.branchesListFailed(), FAIL, FLOAT_MODE);
        }
    });
    service.branchList(appContext.getDevMachine(), project.getLocation(), LIST_REMOTE).then(new Operation<List<Branch>>() {

        @Override
        public void apply(List<Branch> branches) throws OperationException {
            List<Reference> references = new ArrayList<>();
            for (Branch branch : branches) {
                if (!branch.isActive()) {
                    Reference reference = new Reference(branch.getName(), branch.getDisplayName(), REMOTE_BRANCH);
                    references.add(reference);
                }
            }
            view.setRemoteBranches(references);
        }
    }).catchError(new Operation<PromiseError>() {

        @Override
        public void apply(PromiseError error) throws OperationException {
            console.printError(error.getMessage());
            consolesPanelPresenter.addCommandOutput(appContext.getDevMachine().getId(), console);
            notificationManager.notify(constant.branchesListFailed(), FAIL, FLOAT_MODE);
        }
    });
    view.showDialog();
}
Also used : PromiseError(org.eclipse.che.api.promises.client.PromiseError) Branch(org.eclipse.che.api.git.shared.Branch) GitOutputConsole(org.eclipse.che.ide.ext.git.client.outputconsole.GitOutputConsole) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) Operation(org.eclipse.che.api.promises.client.Operation) OperationException(org.eclipse.che.api.promises.client.OperationException)

Example 4 with GitOutputConsole

use of org.eclipse.che.ide.ext.git.client.outputconsole.GitOutputConsole in project che by eclipse.

the class PullPresenter method onPullClicked.

/** {@inheritDoc} */
@Override
public void onPullClicked() {
    view.close();
    final StatusNotification notification = notificationManager.notify(constant.pullProcess(), PROGRESS, FLOAT_MODE);
    service.pull(appContext.getDevMachine(), project.getLocation(), getRefs(), view.getRepositoryName()).then(new Operation<PullResponse>() {

        @Override
        public void apply(PullResponse response) throws OperationException {
            GitOutputConsole console = gitOutputConsoleFactory.create(PULL_COMMAND_NAME);
            console.print(response.getCommandOutput(), GREEN_COLOR);
            consolesPanelPresenter.addCommandOutput(appContext.getDevMachine().getId(), console);
            notification.setStatus(SUCCESS);
            if (response.getCommandOutput().contains("Already up-to-date")) {
                notification.setTitle(constant.pullUpToDate());
            } else {
                project.synchronize();
                notification.setTitle(constant.pullSuccess(view.getRepositoryUrl()));
            }
        }
    }).catchError(new Operation<PromiseError>() {

        @Override
        public void apply(PromiseError error) throws OperationException {
            notification.setStatus(FAIL);
            if (getErrorCode(error.getCause()) == ErrorCodes.MERGE_CONFLICT) {
                project.synchronize();
            }
            handleError(error.getCause(), PULL_COMMAND_NAME);
        }
    });
}
Also used : PullResponse(org.eclipse.che.api.git.shared.PullResponse) PromiseError(org.eclipse.che.api.promises.client.PromiseError) GitOutputConsole(org.eclipse.che.ide.ext.git.client.outputconsole.GitOutputConsole) StatusNotification(org.eclipse.che.ide.api.notification.StatusNotification) Operation(org.eclipse.che.api.promises.client.Operation) OperationException(org.eclipse.che.api.promises.client.OperationException)

Example 5 with GitOutputConsole

use of org.eclipse.che.ide.ext.git.client.outputconsole.GitOutputConsole in project che by eclipse.

the class ResetFilesPresenter method showDialog.

/** Show dialog. */
public void showDialog(Project project) {
    this.project = project;
    service.getStatus(appContext.getDevMachine(), project.getLocation()).then(new Operation<Status>() {

        @Override
        public void apply(Status status) throws OperationException {
            if (status.isClean()) {
                dialogFactory.createMessageDialog(constant.messagesWarningTitle(), constant.indexIsEmpty(), null).show();
                return;
            }
            indexedFiles = new IndexFile[0];
            for (String path : status.getAdded()) {
                indexedFiles = add(indexedFiles, wrap(path));
            }
            for (String path : status.getChanged()) {
                indexedFiles = add(indexedFiles, wrap(path));
            }
            for (String path : status.getRemoved()) {
                indexedFiles = add(indexedFiles, wrap(path));
            }
            if (indexedFiles.length == 0) {
                dialogFactory.createMessageDialog(constant.messagesWarningTitle(), constant.indexIsEmpty(), null).show();
                return;
            }
            //Mark selected items to reset from index
            Resource[] resources = appContext.getResources();
            if (resources != null) {
                for (Resource selectedItem : resources) {
                    String selectedItemPath = selectedItem.getLocation().removeFirstSegments(1).toString();
                    for (IndexFile file : indexedFiles) if (file.getPath().startsWith(selectedItemPath)) {
                        file.setIndexed(false);
                    }
                }
            }
            view.setIndexedFiles(indexedFiles);
            view.showDialog();
        }
    }).catchError(new Operation<PromiseError>() {

        @Override
        public void apply(PromiseError error) throws OperationException {
            String errorMassage = error.getMessage() != null ? error.getMessage() : constant.statusFailed();
            GitOutputConsole console = gitOutputConsoleFactory.create(STATUS_COMMAND_NAME);
            console.printError(errorMassage);
            consolesPanelPresenter.addCommandOutput(appContext.getDevMachine().getId(), console);
            notificationManager.notify(errorMassage);
        }
    });
}
Also used : Status(org.eclipse.che.api.git.shared.Status) PromiseError(org.eclipse.che.api.promises.client.PromiseError) IndexFile(org.eclipse.che.api.git.shared.IndexFile) GitOutputConsole(org.eclipse.che.ide.ext.git.client.outputconsole.GitOutputConsole) Resource(org.eclipse.che.ide.api.resources.Resource) Operation(org.eclipse.che.api.promises.client.Operation) OperationException(org.eclipse.che.api.promises.client.OperationException)

Aggregations

GitOutputConsole (org.eclipse.che.ide.ext.git.client.outputconsole.GitOutputConsole)22 Operation (org.eclipse.che.api.promises.client.Operation)13 OperationException (org.eclipse.che.api.promises.client.OperationException)13 PromiseError (org.eclipse.che.api.promises.client.PromiseError)13 List (java.util.List)5 Resource (org.eclipse.che.ide.api.resources.Resource)5 Path (org.eclipse.che.ide.resource.Path)4 Branch (org.eclipse.che.api.git.shared.Branch)3 DevMachine (org.eclipse.che.ide.api.machine.DevMachine)3 StatusNotification (org.eclipse.che.ide.api.notification.StatusNotification)3 Preconditions.checkState (com.google.common.base.Preconditions.checkState)2 Inject (com.google.inject.Inject)2 Singleton (com.google.inject.Singleton)2 Collections.singletonList (java.util.Collections.singletonList)2 IndexFile (org.eclipse.che.api.git.shared.IndexFile)2 FontAwesome (org.eclipse.che.ide.FontAwesome)2 ActionEvent (org.eclipse.che.ide.api.action.ActionEvent)2 AppContext (org.eclipse.che.ide.api.app.AppContext)2 GitServiceClient (org.eclipse.che.ide.api.git.GitServiceClient)2 NotificationManager (org.eclipse.che.ide.api.notification.NotificationManager)2