@@ -17,9 +17,11 @@ let menu_v = null;
17
17
let attraction = false ;
18
18
let f_hover = { main :null , pointLight :null , dropShadow :null }
19
19
20
- const select_color = "hsl(140, 80%, 50%)"
21
- const default_color = "hsl(140, 80%, 90%)"
22
- const darken_color = "hsl(140, 80%, 33%)"
20
+ const select_color = "hsl(140, 80%, 50%)"
21
+ const default_color = "hsl(140, 80%, 90%)"
22
+ const edge_color = "hsl(130, 30%, 60%)"
23
+ const edge_select_color = "hsl(100, 80%, 60%)"
24
+ const darken_color = "hsl(140, 80%, 33%)"
23
25
24
26
25
27
@@ -33,12 +35,8 @@ function onVertexMenuAction(e){
33
35
e . detail . v . svg . shape . classList . remove ( "pinned" )
34
36
menu . update_action ( "unpin" , "pin" )
35
37
} else if ( e . detail . action == "group" ) {
36
- e . detail . v . grouped = true
37
- e . detail . v . svg . shape . classList . add ( "grouped" )
38
38
menu . update_action ( "group" , "ungroup" )
39
39
} else if ( e . detail . action == "ungroup" ) {
40
- e . detail . v . grouped = false
41
- e . detail . v . svg . shape . classList . remove ( "grouped" )
42
40
menu . update_action ( "ungroup" , "group" )
43
41
}
44
42
}
@@ -56,7 +54,7 @@ function onVertexContextMenu(e){
56
54
menu_v = g . vertices [ e . detail . id ]
57
55
let vb = menu_v . viewBox
58
56
let pin_name = menu_v . pinned ?"unpin" :"pin"
59
- let group_name = menu_v . grouped ?"ungroup" :"group"
57
+ let group_name = menu_v . group . used ?"ungroup" :"group"
60
58
let buttons = menu . call ( { svg :svg , menu :"Vertex" , x :vb . x , y :vb . y , actions :[ "attract" , "layout" , pin_name , group_name ] } )
61
59
let buttonMenuclick = ( e ) => { send ( "menu_action" , { menu :"Vertex" , type :"click" , action :e . target . getAttribute ( "data-name" ) , v :menu_v } ) }
62
60
buttons [ pin_name ] . addEventListener ( 'click' , buttonMenuclick , false ) ;
@@ -129,6 +127,12 @@ function onVertexHover(e){
129
127
f_hover . dropShadow . setAttribute ( "dy" , ly / 5 )
130
128
}
131
129
}
130
+ function onEdgeHover ( e ) {
131
+ const edge = g . edges [ e . detail . id ]
132
+ if ( e . detail . type != "move" ) {
133
+ console . log ( `hover over edge (${ edge . outV . label } ,${ edge . inV . label } ) => ${ e . detail . type } ` )
134
+ }
135
+ }
132
136
133
137
function onVertexDrag ( e ) {
134
138
if ( e . detail . type == "start" ) {
@@ -144,6 +148,7 @@ class Render{
144
148
init ( graph_data ) {
145
149
g = graph_data
146
150
window . addEventListener ( 'vertex_hover' , onVertexHover , false ) ;
151
+ window . addEventListener ( 'edge_hover' , onEdgeHover , false ) ;
147
152
window . addEventListener ( 'vertex_drag' , onVertexDrag , false ) ;
148
153
window . addEventListener ( 'context_menu' , onContextMenu , false ) ;
149
154
window . addEventListener ( 'menu_action' , onMenuAction , false ) ;
@@ -195,12 +200,25 @@ class Render{
195
200
}` ) ;
196
201
this . sheet . insertRule ( /*css*/ `
197
202
.edge.hover {
198
- stroke: ${ select_color }
203
+ stroke: ${ edge_select_color } ;
204
+ fill: ${ edge_select_color } ;
205
+ }` ) ;
206
+ this . sheet . insertRule ( /*css*/ `
207
+ .edge.dot {
208
+ stroke-width:2;
209
+ stroke: ${ edge_color } ;
210
+ fill:rgba(0,0,0,0)
211
+ }` ) ;
212
+ this . sheet . insertRule ( /*css*/ `
213
+ .edge.dot.hover {
214
+ stroke: ${ edge_select_color } ;
215
+ fill:rgba(0,0,0,0)
199
216
}` ) ;
200
217
this . sheet . insertRule ( /*css*/ `
201
218
.edge.default {
202
- stroke: ${ default_color } ;
203
- fill: ${ darken_color }
219
+ stroke-width:2;
220
+ stroke: ${ edge_color } ;
221
+ fill: ${ edge_color }
204
222
}` ) ;
205
223
document . adoptedStyleSheets = [ ...document . adoptedStyleSheets , this . sheet ] ;
206
224
}
0 commit comments