@Override public Object execute(ExecutionEvent event) throws ExecutionException { DMDLMultiPageEditor multiEditor = (DMDLMultiPageEditor) HandlerUtil.getActiveEditor(event); DMDLTextEditor editor = (DMDLTextEditor) multiEditor.getActiveEditor(); DMDLDocument document = editor.getDocument(); ModelList models = document.getModelList(); ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection(); int offset = selection.getOffset(); DMDLToken token = models.getTokenByOffset(offset); if (token != null && token instanceof WordToken) { WordToken word = (WordToken) token; switch (word.getWordType()) { case REF_MODEL_NAME: case REF_PROPERTY_NAME: DMDLHyperlink link = new DMDLHyperlink(editor, token); link.open(); break; default: break; } } return null; }
private void replace(String value) { ModelToken model = page.getModel(); WordToken name = model.getModelNameToken(); if (name != null) { page.replaceDocument(name.getStart(), name.getLength(), value); return; } DescriptionToken desc = model.getDescriptionToken(); if (desc != null) { page.replaceDocument(desc.getEnd(), 0, "\n" + value + "\n"); return; } page.replaceDocument(model.getStart(), 0, value + "\n"); }