@@ -10,18 +10,16 @@ import { ContainsDfdLabels } from "../../labels/feature";
1010import { RemoveLabelAssignmentAction } from "../../labels/assignmentCommand" ;
1111
1212@injectable ( )
13- export class DfdNodeLabelRenderer {
13+ export class DfdNodeLabelSizeCalculator {
1414 static readonly LABEL_HEIGHT = 10 ;
1515 static readonly LABEL_SPACE_BETWEEN = 2 ;
16- static readonly LABEL_SPACING_HEIGHT = DfdNodeLabelRenderer . LABEL_HEIGHT + DfdNodeLabelRenderer . LABEL_SPACE_BETWEEN ;
16+ static readonly LABEL_SPACING_HEIGHT =
17+ DfdNodeLabelSizeCalculator . LABEL_HEIGHT + DfdNodeLabelSizeCalculator . LABEL_SPACE_BETWEEN ;
1718 static readonly LABEL_TEXT_PADDING = 8 ;
1819
19- constructor (
20- @inject ( TYPES . IActionDispatcher ) private readonly actionDispatcher : IActionDispatcher ,
21- @inject ( LabelTypeRegistry ) private readonly labelTypeRegistry : LabelTypeRegistry ,
22- ) { }
20+ constructor ( @inject ( LabelTypeRegistry ) private readonly labelTypeRegistry : LabelTypeRegistry ) { }
2321
24- private getLabel ( label : LabelAssignment ) : { type : LabelType ; value : LabelTypeValue } | undefined {
22+ protected getLabel ( label : LabelAssignment ) : { type : LabelType ; value : LabelTypeValue } | undefined {
2523 const labelType = this . labelTypeRegistry . getLabelType ( label . labelTypeId ) ;
2624 const labelTypeValue = labelType ?. values . find ( ( value ) => value . id === label . labelTypeValueId ) ;
2725 if ( ! labelType || ! labelTypeValue ) {
@@ -45,10 +43,20 @@ export class DfdNodeLabelRenderer {
4543 }
4644
4745 const text = `${ label . type . name } : ${ label . value . text } ` ;
48- const width = calculateTextSize ( text , "5pt sans-serif" ) . width + DfdNodeLabelRenderer . LABEL_TEXT_PADDING ;
46+ const width = calculateTextSize ( text , "5pt sans-serif" ) . width + DfdNodeLabelSizeCalculator . LABEL_TEXT_PADDING ;
4947
5048 return [ text , width ] ;
5149 }
50+ }
51+
52+ @injectable ( )
53+ export class DfdNodeLabelRenderer extends DfdNodeLabelSizeCalculator {
54+ constructor (
55+ @inject ( TYPES . IActionDispatcher ) private readonly actionDispatcher : IActionDispatcher ,
56+ @inject ( LabelTypeRegistry ) labelTypeRegistry : LabelTypeRegistry ,
57+ ) {
58+ super ( labelTypeRegistry ) ;
59+ }
5260
5361 renderSingleNodeLabel ( node : ContainsDfdLabels & SNodeImpl , label : LabelAssignment , x : number , y : number ) : VNode {
5462 const [ text , width ] = this . computeLabelContent ( label ) ;
0 commit comments