private EditorCell findTarget(SelectionManager selectionManager) { Selection selection = selectionManager.getSelection(); if (selection == null) { return null; } EditorCell cell = selection.getSelectedCells().get(0); while (cell.getParent() != null) { cell = (EditorCell) cell.getParent(); } if (cell instanceof EditorCell_Collection) { return cell.findChild( myHome ? CellFinders.FIRST_SELECTABLE_LEAF : CellFinders.LAST_SELECTABLE_LEAF); } return cell; }
public boolean canExecute(jetbrains.mps.openapi.editor.EditorContext context) { EditorCell selectedCell = getDeepestSelectedCell(context); return selectedCell != null && selectedCell.getParent() != null && findTarget(selectedCell, selectedCell.getCaretX()) != null; }