@Test public void createEmptyProject() { RPGBuilder rpgBuilder = Mockito.mock(RPGBuilder.class); EditorController controller = new EditorController(rpgBuilder); controller.createRPG(); verify(rpgBuilder).createRPG(); }
@Override public void mouseClicked(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2) { controller.goToSegmentAtLocation(getCaretPosition()); } if (e.isPopupTrigger() || e.getButton() == MouseEvent.BUTTON3) { PopupMenuConstructorInfo[] cons; synchronized (popupConstructors) { /** Copy constructors - for disable blocking in the procesing time. */ cons = popupConstructors.toArray(new PopupMenuConstructorInfo[popupConstructors.size()]); } // where is the mouse int mousepos = viewToModel(e.getPoint()); boolean isInActiveTranslation = mousepos >= getOmDocument().getTranslationStart() && mousepos <= getOmDocument().getTranslationEnd(); boolean isInActiveEntry; int ae = controller.displayedEntryIndex; SegmentBuilder sb = controller.m_docSegList[ae]; if (sb.isActive()) { isInActiveEntry = mousepos >= sb.getStartPosition() && mousepos <= sb.getEndPosition(); } else { isInActiveEntry = false; } JPopupMenu popup = new JPopupMenu(); for (PopupMenuConstructorInfo c : cons) { // call each constructor c.constructor.addItems( popup, EditorTextArea3.this, mousepos, isInActiveEntry, isInActiveTranslation, sb); } DockingUI.removeUnusedMenuSeparators(popup); if (popup.getComponentCount() > 0) { popup.show( EditorTextArea3.this, (int) e.getPoint().getX(), (int) e.getPoint().getY()); } } }
@Override public String getToolTipText(MouseEvent event) { int pos = viewToModel(event.getPoint()); int s = controller.getSegmentIndexAtLocation(pos); return controller.markerController.getToolTips(s, pos); }
/** * Redefine some keys behavior. We can't use key listeners, because we have to make something * AFTER standard keys processing. */ @Override protected void processKeyEvent(KeyEvent e) { if (e.getID() != KeyEvent.KEY_PRESSED) { // key released super.processKeyEvent(e); return; } boolean processed = false; boolean mac = StaticUtils.onMacOSX(); Document3 doc = getOmDocument(); // non-standard processing if (isKey(e, KeyEvent.VK_TAB, 0)) { // press TAB when 'Use TAB to advance' if (controller.settings.isUseTabForAdvance()) { controller.nextEntry(); processed = true; } } else if (isKey(e, KeyEvent.VK_TAB, KeyEvent.SHIFT_MASK)) { // press Shift+TAB when 'Use TAB to advance' if (controller.settings.isUseTabForAdvance()) { controller.prevEntry(); processed = true; } } else if (isKey(e, KeyEvent.VK_ENTER, 0)) { // press ENTER if (!controller.settings.isUseTabForAdvance()) { controller.nextEntry(); processed = true; } else { processed = true; } } else if ((!mac && isKey(e, KeyEvent.VK_ENTER, KeyEvent.CTRL_MASK)) || (mac && isKey(e, KeyEvent.VK_ENTER, KeyEvent.META_MASK))) { // press Ctrl+ENTER (Cmd+Enter for MacOS) if (!controller.settings.isUseTabForAdvance()) { controller.prevEntry(); processed = true; } } else if (isKey(e, KeyEvent.VK_ENTER, KeyEvent.SHIFT_MASK)) { // convert Shift+Enter event to straight enter key KeyEvent ke = new KeyEvent(e.getComponent(), e.getID(), e.getWhen(), 0, KeyEvent.VK_ENTER, '\n'); super.processKeyEvent(ke); processed = true; } else if ((!mac && isKey(e, KeyEvent.VK_A, KeyEvent.CTRL_MASK)) || (mac && isKey(e, KeyEvent.VK_A, KeyEvent.META_MASK))) { // handling Ctrl+A manually (Cmd+A for MacOS) setSelectionStart(doc.getTranslationStart()); setSelectionEnd(doc.getTranslationEnd()); processed = true; } else if (isKey(e, KeyEvent.VK_O, KeyEvent.CTRL_MASK | KeyEvent.SHIFT_MASK)) { // handle Ctrl+Shift+O - toggle orientation LTR-RTL controller.toggleOrientation(); processed = true; } else if ((!mac && isKey(e, KeyEvent.VK_BACK_SPACE, KeyEvent.CTRL_MASK)) || (mac && isKey(e, KeyEvent.VK_BACK_SPACE, KeyEvent.ALT_MASK))) { // handle Ctrl+Backspace (Alt+Backspace for MacOS) try { int offset = getCaretPosition(); int prevWord = Utilities.getPreviousWord(this, offset); int c = Math.max(prevWord, doc.getTranslationStart()); setSelectionStart(c); setSelectionEnd(offset); replaceSelection(""); processed = true; } catch (BadLocationException ex) { // do nothing } } else if ((!mac && isKey(e, KeyEvent.VK_DELETE, KeyEvent.CTRL_MASK)) || (mac && isKey(e, KeyEvent.VK_DELETE, KeyEvent.ALT_MASK))) { // handle Ctrl+Backspace (Alt+Delete for MacOS) try { int offset = getCaretPosition(); int nextWord = Utilities.getNextWord(this, offset); int c = Math.min(nextWord, doc.getTranslationEnd()); setSelectionStart(offset); setSelectionEnd(c); replaceSelection(""); processed = true; } catch (BadLocationException ex) { // do nothing } } else if ((!mac && isKey(e, KeyEvent.VK_PAGE_UP, KeyEvent.CTRL_MASK)) || (mac && isKey(e, KeyEvent.VK_PAGE_UP, KeyEvent.META_MASK))) { // Ctrl+PgUp - to the begin of document(Cmd+PgUp for MacOS) setCaretPosition(0); processed = true; } else if ((!mac && isKey(e, KeyEvent.VK_PAGE_DOWN, KeyEvent.CTRL_MASK)) || (mac && isKey(e, KeyEvent.VK_PAGE_DOWN, KeyEvent.META_MASK))) { // Ctrl+PgDn - to the end of document(Cmd+PgDn for MacOS) setCaretPosition(getOmDocument().getLength()); processed = true; } // leave standard processing if need if (processed) { e.consume(); } else { if ((e.getModifiers() & (KeyEvent.CTRL_MASK | KeyEvent.META_MASK | KeyEvent.ALT_MASK)) == 0) { // there is no Alt,Ctrl,Cmd keys, i.e. it's char if (e.getKeyCode() != KeyEvent.VK_SHIFT) { // it's not a single 'shift' press checkAndFixCaret(); } } super.processKeyEvent(e); } controller.showLengthMessage(); // some after-processing catches if (!processed && e.getKeyChar() != 0) { switch (e.getKeyCode()) { case KeyEvent.VK_HOME: case KeyEvent.VK_END: case KeyEvent.VK_LEFT: case KeyEvent.VK_RIGHT: case KeyEvent.VK_UP: case KeyEvent.VK_DOWN: checkAndFixCaret(); } } }