Search in sources :

Example 1 with Node

use of name.graf.emanuel.testfileeditor.model.node.Node in project ch.hsr.ifs.cdttesting by IFS-HSR.

the class OutlinePage method selectionChanged.

@Override
public void selectionChanged(final SelectionChangedEvent event) {
    super.selectionChanged(event);
    final ISelection selection = event.getSelection();
    if (selection.isEmpty()) {
        this.editor.resetHighlightRange();
    } else if (((IStructuredSelection) selection).getFirstElement() instanceof Node) {
        final Node segment = (Node) ((IStructuredSelection) selection).getFirstElement();
        final int start = segment.getPosition().getOffset();
        final int length = segment.getPosition().getLength();
        try {
            this.editor.setHighlightRange(start, length, true);
        } catch (IllegalArgumentException ex) {
            this.editor.resetHighlightRange();
        }
    } else {
        this.editor.resetHighlightRange();
    }
}
Also used : Node(name.graf.emanuel.testfileeditor.model.node.Node) ISelection(org.eclipse.jface.viewers.ISelection) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection)

Example 2 with Node

use of name.graf.emanuel.testfileeditor.model.node.Node in project ch.hsr.ifs.cdttesting by IFS-HSR.

the class VirtualLineNumberRuler method update.

@Override
public void update(final Observable o, final Object arg) {
    if (o instanceof TestFile) {
        final List<Integer> startLineNumbers = new ArrayList<>();
        final List<Integer> endLineNumbers = new ArrayList<>();
        final TestFile file = (TestFile) o;
        final IDocument document = getEditor().getDocumentProvider().getDocument(getEditor().getEditorInput());
        final Test[] tests = file.getTests();
        try {
            for (final Test test : tests) {
                final Node[] files = test.getChildren();
                Position nodePosition = test.getPosition();
                int realLine = document.getLineOfOffset(nodePosition.offset);
                endLineNumbers.add(realLine + 1);
                for (final Node testNode : files) {
                    nodePosition = testNode.getPosition();
                    realLine = document.getLineOfOffset(nodePosition.offset) + 1;
                    if (testNode instanceof File) {
                        final String name = testNode.toString();
                        if (name.endsWith(".cpp") || name.endsWith(".h") || name.endsWith(".hpp")) {
                            startLineNumbers.add(realLine);
                        } else {
                            endLineNumbers.add(realLine);
                        }
                    } else if (testNode instanceof Expected) {
                        startLineNumbers.add(realLine);
                    } else {
                        endLineNumbers.add(realLine);
                    }
                }
            }
        } catch (final BadLocationException e) {
            e.printStackTrace();
        }
        modelLineToRulerLineMap.clear();
        int largestNumber = 0;
        final int lines = document.getNumberOfLines() + 1;
        boolean inFile = false;
        int rulerLine = 1;
        for (int line = 1; line < lines; ++line) {
            if (startLineNumbers.contains(line)) {
                inFile = true;
                rulerLine = 1;
                continue;
            } else if (endLineNumbers.contains(line)) {
                inFile = false;
            } else if (inFile) {
                if (rulerLine > largestNumber) {
                    largestNumber = rulerLine;
                }
                modelLineToRulerLineMap.put(line - 1, rulerLine++);
            }
        }
        maxDigits = Integer.toString(largestNumber).length();
        redraw();
    }
}
Also used : Expected(name.graf.emanuel.testfileeditor.model.node.Expected) Position(org.eclipse.jface.text.Position) Node(name.graf.emanuel.testfileeditor.model.node.Node) ArrayList(java.util.ArrayList) Test(name.graf.emanuel.testfileeditor.model.node.Test) TestFile(name.graf.emanuel.testfileeditor.model.TestFile) TestFile(name.graf.emanuel.testfileeditor.model.TestFile) File(name.graf.emanuel.testfileeditor.model.node.File) IDocument(org.eclipse.jface.text.IDocument) BadLocationException(org.eclipse.jface.text.BadLocationException)

Aggregations

Node (name.graf.emanuel.testfileeditor.model.node.Node)2 ArrayList (java.util.ArrayList)1 TestFile (name.graf.emanuel.testfileeditor.model.TestFile)1 Expected (name.graf.emanuel.testfileeditor.model.node.Expected)1 File (name.graf.emanuel.testfileeditor.model.node.File)1 Test (name.graf.emanuel.testfileeditor.model.node.Test)1 BadLocationException (org.eclipse.jface.text.BadLocationException)1 IDocument (org.eclipse.jface.text.IDocument)1 Position (org.eclipse.jface.text.Position)1 ISelection (org.eclipse.jface.viewers.ISelection)1 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)1