@@ -74,36 +74,66 @@ def bind_callbacks():
7474 # Global filter callbacks for overview charts
7575 for i , chart_key in enumerate (['ov1' , 'ov2' , 'ov3' , 'ov4' ]):
7676 widgets ["global_filters" ]["research_area" ].param .watch (
77- callbacks ["overview" ][i ], "value"
77+ lambda event , target = overview_charts [chart_key ], callback = callbacks ["overview" ][i ]: callback (target , event ),
78+ "value"
7879 )
7980 widgets ["global_filters" ]["method" ].param .watch (
80- callbacks ["overview" ][i ], "value"
81+ lambda event , target = overview_charts [chart_key ], callback = callbacks ["overview" ][i ]: callback (target , event ),
82+ "value"
8183 )
82- overview_charts [chart_key ].param .watch (callbacks ["overview" ][i ], "object" )
8384
8485 # Exploration chart callbacks
8586 for widget_key in ["question1" , "question2" , "chart_type1" , "chart_type2" ]:
8687 if "question" in widget_key :
8788 callback_idx = 0 if "1" in widget_key else 1
89+ target_chart = exploration_charts [callback_idx ]
8890 widgets ["exploration" ][widget_key ].param .watch (
89- callbacks ["exploration" ][callback_idx ], "value"
91+ lambda event , target = target_chart , callback = callbacks ["exploration" ][callback_idx ]: callback (target , event ),
92+ "value"
9093 )
9194
9295 # Global filter callbacks for exploration charts
93- for callback in callbacks ["exploration" ]:
94- widgets ["global_filters" ]["research_area" ].param .watch (callback , "value" )
95- widgets ["global_filters" ]["method" ].param .watch (callback , "value" )
96+ for i , callback in enumerate (callbacks ["exploration" ]):
97+ target_chart = exploration_charts [i ]
98+ widgets ["global_filters" ]["research_area" ].param .watch (
99+ lambda event , target = target_chart , callback = callback : callback (target , event ),
100+ "value"
101+ )
102+ widgets ["global_filters" ]["method" ].param .watch (
103+ lambda event , target = target_chart , callback = callback : callback (target , event ),
104+ "value"
105+ )
96106
97107 # Correlation chart callbacks
98- widgets ["exploration" ]["question1" ].param .watch (callbacks ["correlation" ], "value" )
99- widgets ["exploration" ]["question2" ].param .watch (callbacks ["correlation" ], "value" )
100- widgets ["global_filters" ]["research_area" ].param .watch (callbacks ["correlation" ], "value" )
101- widgets ["global_filters" ]["method" ].param .watch (callbacks ["correlation" ], "value" )
108+ widgets ["exploration" ]["question1" ].param .watch (
109+ lambda event , target = correlation_chart [0 ], callback = callbacks ["correlation" ]: callback (target , event ),
110+ "value"
111+ )
112+ widgets ["exploration" ]["question2" ].param .watch (
113+ lambda event , target = correlation_chart [0 ], callback = callbacks ["correlation" ]: callback (target , event ),
114+ "value"
115+ )
116+ widgets ["global_filters" ]["research_area" ].param .watch (
117+ lambda event , target = correlation_chart [0 ], callback = callbacks ["correlation" ]: callback (target , event ),
118+ "value"
119+ )
120+ widgets ["global_filters" ]["method" ].param .watch (
121+ lambda event , target = correlation_chart [0 ], callback = callbacks ["correlation" ]: callback (target , event ),
122+ "value"
123+ )
102124
103125 # Word cloud callbacks
104- for callback in callbacks ["wordclouds" ]:
105- widgets ["global_filters" ]["research_area" ].param .watch (callback , "value" )
106- widgets ["global_filters" ]["method" ].param .watch (callback , "value" )
126+ wordcloud_targets = [wordcloud_panes ["methods" ], wordcloud_panes ["software" ], wordcloud_panes ["repositories" ]]
127+ for i , callback in enumerate (callbacks ["wordclouds" ]):
128+ target = wordcloud_targets [i ]
129+ widgets ["global_filters" ]["research_area" ].param .watch (
130+ lambda event , target = target , callback = callback : callback (target , event ),
131+ "value"
132+ )
133+ widgets ["global_filters" ]["method" ].param .watch (
134+ lambda event , target = target , callback = callback : callback (target , event ),
135+ "value"
136+ )
107137
108138print ("Creating layout..." )
109139
0 commit comments