rowstate 핸들러가 마우스를 올렸을 때나 선택 이벤트가 완료된 후에만 실행되도록 할 수 있습니까?
실시간 이벤트는 내 그래프에서 드래그 선택을 지연시키고 사용자 경험을 불쾌하게 만듭니다.
쥐덫에서 선택 이벤트를 완전히 다시 작성하기까지 했지만 히스토그램에 적용하는 데 문제가 있고 성능도 마음에 들지 않습니다.
//MOUSE STUFF
get_box_dims = Function({firstX,lastX,firstY,lastY},
show("get_box_dims");
//show(firstX,lastX,firstY,lastY,modifier_key);
If (lastX>firstX,
max_x = lastX; min_x =firstX,
max_x = firstX;min_x =lastX,
);
If (lastY>firstY,
max_y = lastY; min_y =firstY,
max_y = firstY;min_y =lastY,
);
show(min_x,min_y,max_x,max_y);
evallist({min_x,max_x,min_y,max_y});
);
do_normal_select = Function({select_range},
show("normal_select");
summary_jmp_table << Select Where(
AsColumn(:SOME_X_COORD) >= select_range[1]
& AsColumn(:SOME_X_COORD) <= select_range[2]
& AsColumn(:SOME_Y_COORD) >= select_range[3]
& AsColumn(:SOME_Y_COORD) <= select_range[4]
);
);
do_shift_select = Function({select_range},
show("shift_select");
new_rows_to_add = as list(summary_jmp_table << Get Rows Where(
AsColumn(:SOME_X_COORD) >= select_range[1]
& AsColumn(:SOME_X_COORD) <= select_range[2]
& AsColumn(:SOME_Y_COORD) >= select_range[3]
& AsColumn(:SOME_Y_COORD) <= select_range[4]
)
);
if (length(new_rows_to_add) > 0,
curr_rows = as list(summary_jmp_table << Get Selected Rows);
rows_to_select = curr_rows || new_rows_to_add;
summary_jmp_table << Select Rows( rows_to_select);
);
show(new_rows_to_add,length(new_rows_to_add));
);
do_ctrl_select = Function({select_range},
show("ctrl_select");
new_rows_to_subtract = associativearray(as list(summary_jmp_table << Get Rows Where(
AsColumn(:SOME_X_COORD) >= select_range[1]
& AsColumn(:SOME_X_COORD) <= select_range[2]
& AsColumn(:SOME_Y_COORD) >= select_range[3]
& AsColumn(:SOME_Y_COORD) <= select_range[4]
)
));
if (length(new_rows_to_subtract) > 0,
curr_rows = associativearray(as list(summary_jmp_table << Get Selected Rows));
show("current_rows_selected",length(curr_rows));
show("number_rows_to_subtract",length(new_rows_to_subtract));
intersection=curr_rows;intersection<<INTERSECT></INTERSECT>