@@ -23,7 +23,7 @@ import { Point, toDegrees } from "sprotty-protocol";
23
23
import { DISymbol } from '../di.symbols' ;
24
24
import { ColorStyleOption , DifferentFormsOption , FeedbackStyleOption , RenderOptionsRegistry , dottedFeedback , lightGreyFeedback } from '../options/render-options-registry' ;
25
25
import { SendModelRendererAction } from '../snippets/actions' ;
26
- import { renderCollapseIcon , renderDiamond , renderEllipse , renderExpandIcon , renderHexagon , renderMirroredTriangle , renderOval , renderPentagon , renderRectangle , renderRoundedRectangle , renderTrapez , renderTriangle } from '../views-rendering' ;
26
+ import { renderCollapseIcon , renderDiamond , renderEllipse , renderExpandIcon , renderHexagon , renderMirroredTriangle , renderOval , renderPentagon , renderRectangle , renderRectangleForNode , renderRoundedRectangle , renderTrapez , renderTriangle } from '../views-rendering' ;
27
27
import { collectAllChildren } from './helper-methods' ;
28
28
import { CSEdge , CSNode , CS_EDGE_TYPE , CS_INTERMEDIATE_EDGE_TYPE , CS_NODE_TYPE , EdgeType , STPAAspect , STPAEdge , STPANode , STPA_EDGE_TYPE , STPA_INTERMEDIATE_EDGE_TYPE } from './stpa-model' ;
29
29
@@ -179,7 +179,7 @@ export class STPANodeView extends RectangularNodeView {
179
179
element = renderTrapez ( node ) ;
180
180
break ;
181
181
case STPAAspect . HAZARD :
182
- element = renderRectangle ( node ) ;
182
+ element = renderRectangleForNode ( node ) ;
183
183
break ;
184
184
case STPAAspect . SYSTEMCONSTRAINT :
185
185
element = renderHexagon ( node ) ;
@@ -200,7 +200,7 @@ export class STPANodeView extends RectangularNodeView {
200
200
element = renderDiamond ( node ) ;
201
201
break ;
202
202
default :
203
- element = renderRectangle ( node ) ;
203
+ element = renderRectangleForNode ( node ) ;
204
204
break ;
205
205
}
206
206
} else if ( lessColoredNode ) {
@@ -210,7 +210,7 @@ export class STPANodeView extends RectangularNodeView {
210
210
case STPAAspect . SYSTEMCONSTRAINT :
211
211
case STPAAspect . UCA :
212
212
case STPAAspect . SCENARIO :
213
- element = renderRectangle ( node ) ;
213
+ element = renderRectangleForNode ( node ) ;
214
214
break ;
215
215
case STPAAspect . HAZARD :
216
216
case STPAAspect . RESPONSIBILITY :
@@ -219,11 +219,11 @@ export class STPANodeView extends RectangularNodeView {
219
219
element = renderRoundedRectangle ( node ) ;
220
220
break ;
221
221
default :
222
- element = renderRectangle ( node ) ;
222
+ element = renderRectangleForNode ( node ) ;
223
223
break ;
224
224
}
225
225
} else {
226
- element = renderRectangle ( node ) ;
226
+ element = renderRectangleForNode ( node ) ;
227
227
}
228
228
229
229
// if an STPANode is selected, the components not connected to it should fade out
@@ -344,8 +344,12 @@ export class EdgeLabelView extends SLabelView {
344
344
if ( vnode ?. data ?. class ) {
345
345
vnode . data . class [ 'missing-feedback-label' ] = missingFeedbackLabel ?? false ;
346
346
}
347
-
348
- return vnode ;
347
+ // add a background to the label to make it better readable
348
+ const background = renderRectangle ( 0 , 2 - label . bounds . height , label . bounds . width , label . bounds . height ) ;
349
+ return < g >
350
+ < g class-label-background = { true } > { background } </ g >
351
+ { vnode }
352
+ </ g > ;
349
353
}
350
354
}
351
355
0 commit comments