/** * ********************************************************************************* REQUIRED * METHODS FOR INTERFACES * ******************************************************************************** */ public void mouseClicked(MouseEvent e) { if (e.isConsumed()) { return; } TreePath path = ((JTree) e.getSource()).getClosestPathForLocation(e.getX(), e.getY()); ((TreeView) WorkspaceController.getCurrentModeExtension().getView()).addSelectionPath(path); if (path != null) { AWorkspaceTreeNode node = (AWorkspaceTreeNode) path.getLastPathComponent(); // encode buttons int eventType = 0; if (e.getButton() == MouseEvent.BUTTON1) { eventType += WorkspaceActionEvent.MOUSE_LEFT; } if (e.getButton() == MouseEvent.BUTTON3) { eventType += WorkspaceActionEvent.MOUSE_RIGHT; } if (e.getClickCount() % 2 == 0) { eventType += WorkspaceActionEvent.MOUSE_DBLCLICK; } else { eventType += WorkspaceActionEvent.MOUSE_CLICK; } if (e.isPopupTrigger()) { eventType += WorkspaceActionEvent.POPUP_TRIGGER; } WorkspaceActionEvent event = new WorkspaceActionEvent(node, eventType, e.getX(), e.getY(), e.getComponent()); List<IWorkspaceNodeActionListener> nodeEventListeners = WorkspaceController.getCurrentModeExtension() .getIOController() .getNodeActionListeners(node.getClass(), eventType); if (nodeEventListeners != null) { for (IWorkspaceNodeActionListener listener : nodeEventListeners) { if (event.isConsumed()) { break; } listener.handleAction(event); } } if (!event.isConsumed() && node instanceof IWorkspaceNodeActionListener) { ((IWorkspaceNodeActionListener) node).handleAction(event); } } else { if (e.getButton() == MouseEvent.BUTTON3) { // WorkspaceController.getController().getPopups().showWorkspacePopup(e.getComponent(), // e.getX(), e.getY()); ((AWorkspaceTreeNode) WorkspaceController.getCurrentModel().getRoot()) .showPopup(e.getComponent(), e.getX(), e.getY()); } } }
public void keyPressed(KeyEvent e) { KeyStroke currentStroke = KeyStroke.getKeyStrokeForEvent(e); if (e.getKeyCode() == KeyEvent.VK_ENTER) { TreePath path = ((JTree) e.getSource()).getSelectionPath(); if (path == null) { return; } AWorkspaceTreeNode node = (AWorkspaceTreeNode) path.getLastPathComponent(); if (node instanceof IWorkspaceNodeActionListener) { ((IWorkspaceNodeActionListener) node) .handleAction( new WorkspaceActionEvent( node, WorkspaceActionEvent.WSNODE_OPEN_DOCUMENT, 0, 0, e.getComponent())); e.consume(); } } else { for (HotKeyIdentifier id : actionKeyMap.keySet()) { if (currentStroke.equals(id.getKeyStroke())) { if (id.accept(e)) { AFreeplaneAction action = WorkspaceController.getAction(actionKeyMap.get(id)); if (action != null) { action.actionPerformed(new ActionEvent(e.getSource(), 0, null)); } else { LogUtils.info("No action set for: " + id.getKeyStroke()); } } e.consume(); break; } } } }