blob: 843ca6d569aa98152a584bd1228691f472d65036 [file] [log] [blame]
package org.jetbrains.plugins.gradle.action;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.externalSystem.util.ExternalSystemBundle;
import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.fileEditor.OpenFileDescriptor;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.gradle.settings.GradleSettings;
import org.jetbrains.plugins.gradle.util.GradleBundle;
/**
* Forces the IntelliJ IDEA to open {@link GradleSettings#getLinkedExternalProjectPath() linked gradle project} at the editor
* <p/>
* Not thread-safe.
*
* @author Denis Zhdanov
* @since 1/31/12 5:16 PM
*/
public class GradleOpenScriptAction extends AbstractGradleLinkedProjectAction implements DumbAware {
private static final Logger LOG = Logger.getInstance("#" + GradleOpenScriptAction.class.getName());
public GradleOpenScriptAction() {
getTemplatePresentation().setText(GradleBundle.message("gradle.action.open.script.text"));
getTemplatePresentation().setDescription(GradleBundle.message("gradle.action.open.script.description"));
}
@Override
protected void doUpdate(@NotNull AnActionEvent event, @NotNull Project project, @NotNull String linkedProjectPath) {
}
@Override
protected void doActionPerformed(@NotNull AnActionEvent event, @NotNull Project project, @NotNull String linkedProjectPath) {
final VirtualFile virtualFile = LocalFileSystem.getInstance().findFileByPath(linkedProjectPath);
if (virtualFile == null) {
LOG.warn(String.format("Can't obtain virtual file for the target file path: '%s'", linkedProjectPath));
return;
}
OpenFileDescriptor descriptor = new OpenFileDescriptor(project, virtualFile);
FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
}
}