private void onDragDropped(DragEvent event) { codeArea.setShowCaret(Caret.CaretVisibility.AUTO); Dragboard db = event.getDragboard(); boolean success = false; if (db.hasContent(EquipmentInfo.DATA_FORMAT)) { List<EquipmentInfo> equipmentInfoList = (List<EquipmentInfo>) db.getContent(EquipmentInfo.DATA_FORMAT); codeArea.insertText(codeArea.getCaretPosition(), equipmentInfoList.get(0).getIdAndName().getId()); success = true; } else if (db.hasString() && event.getGestureSource() != codeArea) { codeArea.insertText(codeArea.getCaretPosition(), db.getString()); success = true; } else if (event.getGestureSource() == codeArea) { CharacterHit hit = codeArea.hit(event.getX(), event.getY()); codeArea.moveSelectedText(hit.getInsertionIndex()); success = true; } event.setDropCompleted(success); event.consume(); }
public GroovyCodeEditor(Scene scene) { codeArea.setParagraphGraphicFactory(LineNumberFactory.get(codeArea)); codeArea.richChanges() .filter(ch -> !ch.getInserted().equals(ch.getRemoved())) .subscribe(change -> codeArea.setStyleSpans(0, computeHighlighting(codeArea.getText()))); SearchBar searchBar = new SearchBar(codeArea); searchBar.setCloseAction(e -> { setShowDetailNode(false); codeArea.requestFocus(); }); setMasterNode(new VirtualizedScrollPane(codeArea)); if (codeArea.getSelectedText() != null && !"".equals(codeArea.getSelectedText())) { searchBar.setSearchPattern(codeArea.getSelectedText()); codeArea.setOnDragEntered(event -> codeArea.setShowCaret(Caret.CaretVisibility.ON)); codeArea.setOnDragExited(event -> codeArea.setShowCaret(Caret.CaretVisibility.AUTO)); codeArea.setOnDragDetected(this::onDragDetected); codeArea.setOnDragOver(this::onDragOver); codeArea.setOnDragDropped(this::onDragDropped); codeArea.setOnSelectionDrag(p -> allowedDrag = true);
public String getCode() { return codeArea.getText(); }
private int length(GroovySourceToken token) { int offset1 = codeArea.getDocument().position(token.getLine() - 1, token.getColumn() - 1).toOffset(); int offset2 = codeArea.getDocument().position(token.getLineLast() - 1, token.getColumnLast() - 1).toOffset(); return offset2 - offset1; }
public void setCode(String code) { codeArea.clear(); codeArea.replaceText(0, 0, code); codeArea.showParagraphAtTop(0); resetDividerPosition(); }
private void onDragDetected(MouseEvent event) { if (allowedDrag) { Dragboard db = codeArea.startDragAndDrop(TransferMode.COPY_OR_MOVE); ClipboardContent content = new ClipboardContent(); content.putString(codeArea.getSelectedText()); db.setContent(content); event.consume(); allowedDrag = false; } }
private void onDragOver(DragEvent event) { Dragboard db = event.getDragboard(); if ((db.hasContent(EquipmentInfo.DATA_FORMAT) && db.getContent(EquipmentInfo.DATA_FORMAT) instanceof EquipmentInfo) || db.hasString()) { if (event.getGestureSource() == codeArea) { event.acceptTransferModes(TransferMode.MOVE); } else { event.acceptTransferModes(TransferMode.COPY); } CharacterHit hit = codeArea.hit(event.getX(), event.getY()); codeArea.displaceCaret(hit.getInsertionIndex()); } }
@Override public void select(int start, int end) { selectRange(start, end); showParagraphAtTop(getCurrentParagraph()); }