use of java.awt.event.MouseEvent in project intellij-community by JetBrains.
the class PyLineMarkerProviderTest method testOverriding.
/**
* Checks method has "up" arrow when overrides, and this arrow works
*/
public void testOverriding() throws Exception {
myFixture.copyDirectoryToProject("lineMarkerTest", "");
myFixture.configureByFile("spam.py");
final ASTNode functionNode = myFixture.getElementAtCaret().getNode();
// We need IDENTIFIER node
final ASTNode[] functionChildren = functionNode.getChildren(TokenSet.create(PyTokenTypes.IDENTIFIER));
assert functionChildren.length == 1 : "Wrong number of identifiers: " + functionChildren.length;
final PsiElement element = functionChildren[0].getPsi();
@SuppressWarnings("unchecked") final LineMarkerInfo<PsiElement> lineMarkerInfo = new PyLineMarkerProvider().getLineMarkerInfo(element);
Assert.assertNotNull("No gutter displayed", lineMarkerInfo);
final GutterIconNavigationHandler<PsiElement> handler = lineMarkerInfo.getNavigationHandler();
Assert.assertNotNull("Gutter has no navigation handle", handler);
handler.navigate(new MouseEvent(new JLabel(), 0, 0, 0, 0, 0, 0, false), element);
final NavigatablePsiElement[] targets = PyLineMarkerNavigator.getNavigationTargets(element);
Assert.assertNotNull("No navigation targets found", targets);
Assert.assertThat("Wrong number of targets found", targets, Matchers.arrayWithSize(1));
final NavigatablePsiElement parentMethod = targets[0];
Assert.assertThat("Navigation target has wrong type", parentMethod, Matchers.instanceOf(PyPossibleClassMember.class));
final PyClass parentClass = ((PyPossibleClassMember) parentMethod).getContainingClass();
Assert.assertNotNull("Function overrides other function, but no parent displayed", parentClass);
Assert.assertEquals("Wrong parent class name", "Eggs", parentClass.getName());
}
use of java.awt.event.MouseEvent in project intellij-community by JetBrains.
the class MavenKeymapExtension method createGroup.
@Override
public KeymapGroup createGroup(Condition<AnAction> condition, final Project project) {
KeymapGroup result = KeymapGroupFactory.getInstance().createGroup(TasksBundle.message("maven.tasks.action.group.name"), MavenIcons.MavenLogo);
if (project == null)
return result;
Comparator<MavenProject> projectComparator = (o1, o2) -> o1.getDisplayName().compareToIgnoreCase(o2.getDisplayName());
Map<MavenProject, Set<Pair<String, String>>> projectToActionsMapping = new TreeMap<>(projectComparator);
ActionManager actionManager = ActionManager.getInstance();
//noinspection TestOnlyProblems
for (String eachId : actionManager.getActionIds(getActionPrefix(project, null))) {
AnAction eachAction = actionManager.getAction(eachId);
if (!(eachAction instanceof MavenGoalAction))
continue;
if (condition != null && !condition.value(actionManager.getActionOrStub(eachId)))
continue;
MavenGoalAction mavenAction = (MavenGoalAction) eachAction;
MavenProject mavenProject = mavenAction.getMavenProject();
Set<Pair<String, String>> actions = projectToActionsMapping.get(mavenProject);
if (actions == null) {
final List<String> projectGoals = collectGoals(mavenProject);
actions = new TreeSet<>((o1, o2) -> {
String goal1 = o1.getFirst();
String goal2 = o2.getFirst();
int index1 = projectGoals.indexOf(goal1);
int index2 = projectGoals.indexOf(goal2);
if (index1 == index2)
return goal1.compareToIgnoreCase(goal2);
return (index1 < index2 ? -1 : 1);
});
projectToActionsMapping.put(mavenProject, actions);
}
actions.add(Pair.create(mavenAction.getGoal(), eachId));
}
for (Map.Entry<MavenProject, Set<Pair<String, String>>> each : projectToActionsMapping.entrySet()) {
Set<Pair<String, String>> goalsToActionIds = each.getValue();
for (Pair<String, String> eachGoalToActionId : goalsToActionIds) {
result.addActionId(eachGoalToActionId.getSecond());
}
}
Icon icon = SystemInfoRt.isMac ? AllIcons.ToolbarDecorator.Mac.Add : AllIcons.ToolbarDecorator.Add;
((Group) result).addHyperlink(new Hyperlink(icon, "Choose a phase/goal to assign a shortcut") {
@Override
public void onClick(MouseEvent e) {
SelectMavenGoalDialog dialog = new SelectMavenGoalDialog(project);
if (dialog.showAndGet() && dialog.getResult() != null) {
MavenProjectsStructure.GoalNode goalNode = dialog.getResult();
String goal = goalNode.getGoal();
String actionId = MavenShortcutsManager.getInstance(project).getActionId(goalNode.getProjectPath(), goal);
getOrRegisterAction(goalNode.getMavenProject(), actionId, goal);
ApplicationManager.getApplication().getMessageBus().syncPublisher(KeymapListener.CHANGE_TOPIC).processCurrentKeymapChanged();
Settings allSettings = Settings.KEY.getData(DataManager.getInstance().getDataContext(e.getComponent()));
KeymapPanel keymapPanel = allSettings != null ? allSettings.find(KeymapPanel.class) : null;
if (keymapPanel != null) {
// clear actions filter
keymapPanel.showOption("");
keymapPanel.selectAction(actionId);
}
}
}
});
return result;
}
use of java.awt.event.MouseEvent in project intellij-community by JetBrains.
the class StudyBrowserWindow method makeGoButton.
private JButton makeGoButton(@NotNull final String toolTipText, @NotNull final Icon icon, final int direction) {
final JButton button = new JButton(icon);
button.setEnabled(false);
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 1) {
Platform.runLater(() -> myEngine.getHistory().go(direction));
}
}
});
button.setToolTipText(toolTipText);
return button;
}
use of java.awt.event.MouseEvent in project intellij-community by JetBrains.
the class IpnbEditablePanel method createEditablePanel.
private JTextArea createEditablePanel() {
final JTextArea textArea = new JTextArea(getRawCellText());
textArea.setLineWrap(true);
textArea.setEditable(true);
textArea.setBorder(BorderFactory.createLineBorder(JBColor.lightGray));
textArea.setBackground(IpnbEditorUtil.getEditablePanelBackground());
textArea.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 1) {
setEditing(true);
final Container parent = getParent();
parent.repaint();
if (parent instanceof IpnbFilePanel) {
((IpnbFilePanel) parent).setSelectedCellPanel(IpnbEditablePanel.this);
IdeFocusManager.getGlobalInstance().doWhenFocusSettlesDown(() -> {
IdeFocusManager.getGlobalInstance().requestFocus(textArea, true);
});
}
}
}
});
textArea.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
setEditing(false);
final Container parent = getParent();
if (parent instanceof IpnbFilePanel) {
parent.repaint();
UIUtil.requestFocus((IpnbFilePanel) parent);
}
}
}
});
return textArea;
}
use of java.awt.event.MouseEvent in project intellij-community by JetBrains.
the class IpnbEditablePanel method addRightClickMenu.
@Override
protected void addRightClickMenu() {
myViewPanel.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (SwingUtilities.isRightMouseButton(e) && e.getClickCount() == 1) {
final DefaultActionGroup group = new DefaultActionGroup(new IpnbMergeCellAboveAction(), new IpnbMergeCellBelowAction());
final ListPopup menu = createPopupMenu(group);
menu.show(RelativePoint.fromScreen(e.getLocationOnScreen()));
}
}
});
myEditableTextArea.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (SwingUtilities.isRightMouseButton(e) && e.getClickCount() == 1) {
final DefaultActionGroup group = new DefaultActionGroup(new IpnbSplitCellAction());
final ListPopup menu = createPopupMenu(group);
menu.show(RelativePoint.fromScreen(e.getLocationOnScreen()));
}
}
});
}
Aggregations