本文整理匯總了Java中com.intellij.openapi.actionSystem.DataContext類的典型用法代碼示例。如果您正苦於以下問題:Java DataContext類的具體用法?Java DataContext怎麽用?Java DataContext使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
DataContext類屬於com.intellij.openapi.actionSystem包,在下文中一共展示了DataContext類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: isRenamingHandlerWithValidName
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
private boolean isRenamingHandlerWithValidName(@NotNull String name, Project project) {
PsiElement elementToRename;
String oldName;
Editor editor = FileEditorManager.getInstance(project).getSelectedTextEditor();
if (editor != null) {
DataContext dataContext = DataManager.getInstance().getDataContext(editor.getComponent());
elementToRename = PsiElementRenameHandler.getElement(dataContext);
if (elementToRename instanceof AppleScriptHandler) {
oldName = ((AppleScriptHandler) elementToRename).getName();
final String[] newParts = name.split(":");
final String[] oldParts = oldName != null ? oldName.split(":") : null;
if (oldParts == null || oldParts.length != newParts.length) {
return false;
}
for (String part : newParts) {
if (!isIdentifier(part)) {
return false;
}
}
return true;
} else
return false;
} else
return false;
}
示例2: doExecute
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
@Override
protected void doExecute(Editor editor, @Nullable Caret caret, DataContext dataContext) {
super.doExecute(editor, caret, dataContext);
VirtualFile vf = (CommonDataKeys.VIRTUAL_FILE.getData(dataContext));
if (IMWindowFactory.getDefault() == null) {
return;
}
String path = VFSUtils.getPath(vf);
if (!TextUtils.isEmpty(path)) {
String text = editor.getSelectionModel().getSelectedText();
int line = EditorUtils.getEditorLine(editor);
ReviewDialog dialog = new ReviewDialog();
dialog.pack();
dialog.setLocationRelativeTo(null);
dialog.setData(path, line, text);
dialog.setVisible(true);
dialog.dispose();
}
}
示例3: getExtensionDirectory
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
public static PsiDirectory getExtensionDirectory(@NotNull AnActionEvent event) {
Project project = event.getData(PlatformDataKeys.PROJECT);
if (project == null) {
return null;
}
DataContext dataContext = event.getDataContext();
IdeView view = LangDataKeys.IDE_VIEW.getData(dataContext);
if (view == null) {
return null;
}
PsiDirectory[] directories = view.getDirectories();
if (directories.length == 0) {
return null;
}
return FilesystemUtil.findParentExtensionDirectory(directories[0]);
}
示例4: execute
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
public void execute(@NotNull Editor editor, char charTyped, @NotNull DataContext dataContext) {
myOriginalHandler.execute(editor, charTyped, dataContext);
if (isMatchForClosingTag(editor, charTyped)) {
int offset = editor.getCaretModel().getOffset();
PsiFile file = dataContext.getData(LangDataKeys.PSI_FILE);
if (file == null) {
return;
}
PsiElement el = file.findElementAt(offset - 1);
TagBlockElement block = (TagBlockElement) PsiTreeUtil
.findFirstParent(el,
parent -> parent instanceof TagBlockElement && !(parent instanceof SoyChoiceClause));
if (block == null) {
return;
}
String closingTag = block.getOpeningTag().generateClosingTag();
insertClosingTag(editor, offset, closingTag);
if (editor.getProject() != null) {
PsiDocumentManager.getInstance(editor.getProject()).commitDocument(editor.getDocument());
CodeStyleManager.getInstance(editor.getProject()).reformat(block);
}
}
}
示例5: preprocessEnter
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
@Override
public Result preprocessEnter(
@NotNull PsiFile psiFile,
@NotNull Editor editor,
@NotNull Ref<Integer> caretOffset,
@NotNull Ref<Integer> caretOffsetChange,
@NotNull DataContext dataContext,
@Nullable EditorActionHandler originalHandler) {
if (psiFile instanceof SoyFile && isBetweenSiblingTags(psiFile, caretOffset.get())) {
if (originalHandler != null) {
originalHandler.execute(editor, dataContext);
}
return Result.Default;
}
return Result.Continue;
}
示例6: postProcessEnter
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
@Override
public Result postProcessEnter(
@NotNull PsiFile file, @NotNull Editor editor, @NotNull DataContext dataContext) {
if (file.getFileType() != SoyFileType.INSTANCE) {
return Result.Continue;
}
int caretOffset = editor.getCaretModel().getOffset();
PsiElement element = file.findElementAt(caretOffset);
Document document = editor.getDocument();
int lineNumber = document.getLineNumber(caretOffset) - 1;
int lineStartOffset = document.getLineStartOffset(lineNumber);
String lineTextBeforeCaret = document.getText(new TextRange(lineStartOffset, caretOffset));
if (element instanceof PsiComment && element.getTextOffset() < caretOffset) {
handleEnterInComment(element, file, editor);
} else if (lineTextBeforeCaret.startsWith("/*")) {
insertText(file, editor, " * \n ", 3);
}
return Result.Continue;
}
示例7: beforeEditorTyping
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
@Override
public void beforeEditorTyping(char c, DataContext dataContext) {
Instant now = Instant.now();
Duration between = Duration.between(lastInputTime, now);
lastInputTime = now;
if (between.getSeconds() < comboCoolTimeSec) {
comboCount++;
} else {
comboCount = 0;
return;
}
RihoReactionNotifier publisher = project.getMessageBus().syncPublisher(RihoReactionNotifier.REACTION_NOTIFIER);
switch (comboCount) {
case 5: publisher.reaction(Reaction.of(FacePattern.SMILE1, Duration.ofSeconds(3))); break;
case 10: publisher.reaction(Reaction.of(FacePattern.SMILE2, Duration.ofSeconds(3))); break;
case 15: publisher.reaction(Reaction.of(FacePattern.SURPRISE, Duration.ofSeconds(5))); break;
case 20:
case 30: publisher.reaction(Reaction.of(FacePattern.AWAWA, Duration.ofSeconds(3))); break;
}
}
示例8: update
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
@Override
public void update(AnActionEvent e) {
Presentation presentation = e.getPresentation();
presentation.setEnabledAndVisible(false);
Project project = e.getProject();
if (project == null) {
return;
}
if (!CCUtils.isCourseCreator(project)) {
return;
}
DataContext context = e.getDataContext();
VirtualFile file = CommonDataKeys.VIRTUAL_FILE.getData(context);
if (file == null ) {
return;
}
TaskFile taskFile = StudyUtils.getTaskFile(project, file);
if (taskFile == null || taskFile.getAnswerPlaceholders().isEmpty()) {
return;
}
presentation.setEnabledAndVisible(true);
}
示例9: actionPerformed
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
@Override
public void actionPerformed(AnActionEvent e) {
DataContext dataContext = e.getDataContext();
VirtualFile virtualFile = CommonDataKeys.VIRTUAL_FILE.getData(dataContext);
Editor editor = CommonDataKeys.EDITOR.getData(dataContext);
Project project = CommonDataKeys.PROJECT.getData(dataContext);
if (virtualFile == null || project == null || editor == null) {
return;
}
Task task = StudyUtils.getTaskForFile(project, virtualFile);
if (task == null) return;
if (!(task instanceof TaskWithSubtasks)) {
task = convertToTaskWithSubtasks(task, project);
}
addSubtask((TaskWithSubtasks)task, project);
}
示例10: update
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
@Override
public void update(AnActionEvent e) {
DataContext dataContext = e.getDataContext();
Presentation presentation = e.getPresentation();
presentation.setEnabledAndVisible(false);
VirtualFile virtualFile = CommonDataKeys.VIRTUAL_FILE.getData(dataContext);
Project project = CommonDataKeys.PROJECT.getData(dataContext);
if (virtualFile == null || project == null) {
return;
}
if (!CCUtils.isCourseCreator(project)) {
return;
}
if (StudyUtils.getTaskForFile(project, virtualFile) != null || StudyUtils.getTask(project, virtualFile) != null) {
presentation.setEnabledAndVisible(true);
}
}
示例11: invoke
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file, DataContext dataContext) {
PsiElement element = CommonDataKeys.PSI_ELEMENT.getData(dataContext);
assert element != null;
PsiDirectory directory = (PsiDirectory)element;
Course course = StudyTaskManager.getInstance(project).getCourse();
if (course == null) {
return;
}
rename(project, course, directory);
ProjectView.getInstance(project).refresh();
FileEditorManagerEx managerEx = FileEditorManagerEx.getInstanceEx(project);
for (VirtualFile virtualFile : managerEx.getOpenFiles()) {
managerEx.updateFilePresentation(virtualFile);
}
}
示例12: canMove
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
@Override
public boolean canMove(DataContext dataContext) {
if (CommonDataKeys.PSI_FILE.getData(dataContext) != null) {
return false;
}
IdeView view = LangDataKeys.IDE_VIEW.getData(dataContext);
if (view == null) {
return false;
}
final PsiDirectory[] directories = view.getDirectories();
if (directories.length == 0 || directories.length > 1) {
return false;
}
final PsiDirectory sourceDirectory = directories[0];
return CCUtils.isLessonDir(sourceDirectory);
}
示例13: canMove
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
@Override
public boolean canMove(DataContext dataContext) {
if (CommonDataKeys.PSI_FILE.getData(dataContext) != null) {
return false;
}
IdeView view = LangDataKeys.IDE_VIEW.getData(dataContext);
if (view == null) {
return false;
}
final PsiDirectory[] directories = view.getDirectories();
if (directories.length == 0 || directories.length > 1) {
return false;
}
final PsiDirectory sourceDirectory = directories[0];
return isTaskDir(sourceDirectory);
}
示例14: isAvailable
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
/**
* Checked whether or not this action can be enabled.
*
* <p>Requirements to be enabled: * User must be in a Java source folder.
*
* @param dataContext to figure out where the user is.
* @return {@code true} when the action is available, {@code false} when the action is not
* available.
*/
private boolean isAvailable(DataContext dataContext) {
final Project project = CommonDataKeys.PROJECT.getData(dataContext);
if (project == null) {
return false;
}
final IdeView view = LangDataKeys.IDE_VIEW.getData(dataContext);
if (view == null || view.getDirectories().length == 0) {
return false;
}
ProjectFileIndex projectFileIndex = ProjectRootManager.getInstance(project).getFileIndex();
for (PsiDirectory dir : view.getDirectories()) {
if (projectFileIndex.isUnderSourceRootOfType(
dir.getVirtualFile(), JavaModuleSourceRootTypes.SOURCES)
&& checkPackageExists(dir)) {
return true;
}
}
return false;
}
示例15: actionPerformed
import com.intellij.openapi.actionSystem.DataContext; //導入依賴的package包/類
@Override
public void actionPerformed(AnActionEvent e) {
final DataContext dataContext = e.getDataContext();
final Project project = CommonDataKeys.PROJECT.getData(dataContext);
List<String> fileNames = findTestDataFiles(dataContext);
if (fileNames == null || fileNames.isEmpty()) {
String testData = guessTestData(dataContext);
if (testData == null) {
String message = "Cannot find testdata files for class";
final Notification notification = new Notification("testdata", "Found no testdata files", message, NotificationType.INFORMATION);
Notifications.Bus.notify(notification, project);
return;
}
fileNames = Collections.singletonList(testData);
}
final Editor editor = e.getData(CommonDataKeys.EDITOR);
final JBPopupFactory popupFactory = JBPopupFactory.getInstance();
final RelativePoint point = editor != null ? popupFactory.guessBestPopupLocation(editor) : popupFactory.guessBestPopupLocation(dataContext);
TestDataNavigationHandler.navigate(point, fileNames, project);
}