use of org.eclipse.che.ide.api.resources.Project in project che by eclipse.
the class OutputDirMacro method expand.
@Override
public Promise<String> expand() {
final Resource[] resources = appContext.getResources();
if (resources != null && resources.length == 1) {
final Resource resource = resources[0];
final Optional<Project> project = resource.getRelatedProject();
if (!project.isPresent()) {
return promises.resolve("");
}
Project relatedProject = project.get();
if (!isJavaProject(relatedProject)) {
return promises.resolve("");
}
if (relatedProject.getAttributes().containsKey(OUTPUT_FOLDER)) {
return promises.resolve(appContext.getProjectsRoot().append(relatedProject.getLocation()).append(relatedProject.getAttributes().get(OUTPUT_FOLDER).get(0)).toString());
} else {
return promises.resolve(appContext.getProjectsRoot().append(relatedProject.getLocation()).toString());
}
}
return promises.resolve("");
}
use of org.eclipse.che.ide.api.resources.Project in project che by eclipse.
the class CopyPresenter method showCopy.
/** Show copy dialog. */
public void showCopy() {
final Project project = appContext.getRootProject();
Preconditions.checkState(project != null && SvnUtil.isUnderSvn(project));
final Resource[] resources = appContext.getResources();
Preconditions.checkState(resources != null && resources.length == 1);
sourceNode = resources[0];
if (sourceNode.getResourceType() == Resource.FILE) {
view.setDialogTitle(constants.copyViewTitleFile());
} else {
view.setDialogTitle(constants.copyViewTitleDirectory());
}
view.setNewName(sourceNode.getName());
view.setComment(sourceNode.getName());
view.setSourcePath(sourceNode.getLocation().toString(), false);
validate();
view.show();
view.setProjectNode(project);
}
use of org.eclipse.che.ide.api.resources.Project in project che by eclipse.
the class DiffPresenter method showDiff.
public void showDiff() {
final Project project = appContext.getRootProject();
checkState(project != null);
final Resource[] resources = appContext.getResources();
checkState(!Arrays.isNullOrEmpty(resources));
performOperationWithCredentialsRequestIfNeeded(new RemoteSubversionOperation<CLIOutputResponse>() {
@Override
public Promise<CLIOutputResponse> perform(Credentials credentials) {
return service.showDiff(project.getLocation(), toRelative(project, resources), "HEAD", credentials);
}
}, null).then(new Operation<CLIOutputResponse>() {
@Override
public void apply(CLIOutputResponse response) throws OperationException {
printResponse(response.getCommand(), response.getOutput(), response.getErrOutput(), constants.commandDiff());
;
}
}).catchError(new Operation<PromiseError>() {
@Override
public void apply(PromiseError error) throws OperationException {
notificationManager.notify(error.getMessage(), FAIL, FLOAT_MODE);
}
});
}
use of org.eclipse.che.ide.api.resources.Project in project che by eclipse.
the class ExportPresenter method onExportClicked.
/** {@inheritDoc} */
@Override
public void onExportClicked() {
final Project project = appContext.getRootProject();
checkState(project != null);
final Resource[] resources = appContext.getResources();
checkState(!Arrays.isNullOrEmpty(resources));
checkState(resources.length == 1);
final String givenRevision = view.isRevisionSpecified() ? view.getRevision() : null;
final StatusNotification notification = new StatusNotification(constants.exportStarted(resources[0].getLocation().toString()), PROGRESS, FLOAT_MODE);
notificationManager.notify(notification);
view.onClose();
if (!isNullOrEmpty(givenRevision)) {
service.getRevisions(project.getLocation(), toRelative(project, resources[0]), "1:HEAD").then(new Operation<GetRevisionsResponse>() {
@Override
public void apply(GetRevisionsResponse response) throws OperationException {
final List<String> pathRevisions = response.getRevisions();
if (pathRevisions.size() > 0) {
final String pathFirstRevision = pathRevisions.get(0);
final String pathLastRevision = pathRevisions.get(pathRevisions.size() - 1);
final int givenRevisionNb = Integer.valueOf(givenRevision);
final int pathFirstRevisionNb = Integer.valueOf(pathFirstRevision.substring(1));
final int pathLastRevisionNb = Integer.valueOf(pathLastRevision.substring(1));
final List<String> errOutput = response.getErrOutput();
if (errOutput != null && !errOutput.isEmpty()) {
printErrors(errOutput, constants.commandInfo());
notification.setTitle(constants.exportCommandExecutionError());
notification.setStatus(FAIL);
} else if (givenRevisionNb < pathFirstRevisionNb || givenRevisionNb > pathLastRevisionNb) {
notification.setTitle(constants.exportRevisionDoNotExistForPath(givenRevision, toRelative(project, resources[0]).toString()));
notification.setStatus(FAIL);
} else {
openExportPopup(project.getLocation(), toRelative(project, resources[0]), givenRevision, notification);
}
} else {
notification.setTitle(constants.exportNoRevisionForPath(toRelative(project, resources[0]).toString()));
notification.setStatus(FAIL);
}
}
}).catchError(new Operation<PromiseError>() {
@Override
public void apply(PromiseError error) throws OperationException {
notification.setTitle(constants.exportCommandExecutionError() + "\n" + error.getMessage());
notification.setStatus(FAIL);
}
});
} else {
openExportPopup(project.getLocation(), toRelative(project, resources[0]), null, notification);
}
}
use of org.eclipse.che.ide.api.resources.Project in project che by eclipse.
the class LockUnlockPresenter method doUnlockAction.
private void doUnlockAction(final boolean force, final Path[] paths) {
final Project project = appContext.getRootProject();
checkState(project != null);
performOperationWithCredentialsRequestIfNeeded(new RemoteSubversionOperation<CLIOutputResponse>() {
@Override
public Promise<CLIOutputResponse> perform(Credentials credentials) {
return service.unlock(project.getLocation(), paths, force, credentials);
}
}, null).then(new Operation<CLIOutputResponse>() {
@Override
public void apply(CLIOutputResponse response) throws OperationException {
printResponse(response.getCommand(), response.getOutput(), response.getErrOutput(), constants.commandUnlock());
}
}).catchError(new Operation<PromiseError>() {
@Override
public void apply(PromiseError error) throws OperationException {
notificationManager.notify(error.getMessage(), FAIL, FLOAT_MODE);
}
});
}
Aggregations