/** * Creates the control ie. creates all the stuff that matters and is visible in the outline. * * <p>Actions must be created before menus and toolbars. * * @param parent */ @Override public void createControl(Composite parent) { super.createControl(parent); NddlContentProvider provider = editor.getNddlContentProvider(); // initialize the tree viewers TreeViewer viewer = getTreeViewer(); viewer.setContentProvider(provider); viewer.addFilter(new FileViewerFilter()); viewer.setLabelProvider(new NddlLabelProvider()); // set the selection listener viewer.addSelectionChangedListener(this); // finally set the input if (this.input != null) viewer.setInput(this.input); else provider.reload(editor.getFile()); }
/** * Focuses the editor to the text of the selected item. * * @param event the selection event */ @Override public void selectionChanged(SelectionChangedEvent event) { super.selectionChanged(event); ISelection selection = event.getSelection(); if (selection.isEmpty()) { editor.resetHighlightRange(); } else { OutlineNode node = (OutlineNode) ((IStructuredSelection) selection).getFirstElement(); IDocument doc = editor.getDocumentProvider().getDocument(editor.getEditorInput()); Position position = computePosition(node.getAst(), doc); if (position != null) { try { editor.setHighlightRange(position.getOffset(), position.getLength(), true); editor.getViewer().revealRange(position.getOffset(), position.getLength()); } catch (IllegalArgumentException x) { editor.resetHighlightRange(); } } else { editor.resetHighlightRange(); } } }
private String getFileName() { return editor.getFile().getLocation().toString(); }