All files / views/trees/definition-tree/nodes/concepts concept-class-node.ts

100% Statements 7/7
100% Branches 0/0
100% Functions 5/5
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34                12x       13x       74x       74x   74x       84x       1x      
import * as vscode from "vscode";
import { ClassNodeBase } from "../classes/class-node-base";
 
/**
 * Node of a SKOS concept in the definition tree.
 */
export class ConceptClassNode extends ClassNodeBase {
	override getIcon(): vscode.ThemeIcon | undefined {
		return new vscode.ThemeIcon('rdf-concept', this.getIconColor());
	}
 
	override getIconColor() {
		return new vscode.ThemeColor("mentor.color.concept");
	}
 
	override *getSubClassIris(): IterableIterator<string> {
		const graphs = this.getDocumentGraphs();
 
		// Note: The query options carry the `inScheme` option of the concept scheme this node belongs
		// to, so that narrower concepts of *other* schemes are not displayed below this one.
		const options = this.getQueryOptions();
 
		yield* this.vocabulary.getNarrowerConcepts(graphs, this.uri, options);
	}
 
	override getClassNode(iri: string) {
		return this.createChildNode(ConceptClassNode, iri);
	}
 
	override getIndividualNode(iri: string) {
		return this.createChildNode(ConceptClassNode, iri);
	}
}