145 lines
3.7 KiB
JavaScript
145 lines
3.7 KiB
JavaScript
import {
|
|
resetLabellingAndContextMenuAction,
|
|
setToolContextMenuDataAction,
|
|
setLabellingFlowDataAction,
|
|
} from './actions.js';
|
|
import updateTableWithNewMeasurementData from './updateTableWithNewMeasurementData.js';
|
|
|
|
const VIEWPORT_INDEX = 0;
|
|
|
|
function getOnRightClickCallback(store) {
|
|
const setToolContextMenuData = (viewportIndex, toolContextMenuData) => {
|
|
store.dispatch(resetLabellingAndContextMenuAction());
|
|
store.dispatch(
|
|
setToolContextMenuDataAction(viewportIndex, toolContextMenuData)
|
|
);
|
|
};
|
|
|
|
const getOnCloseCallback = viewportIndex => {
|
|
return function onClose() {
|
|
const toolContextMenuData = {
|
|
visible: false,
|
|
};
|
|
|
|
store.dispatch(
|
|
setToolContextMenuDataAction(viewportIndex, toolContextMenuData)
|
|
);
|
|
};
|
|
};
|
|
|
|
return function onRightClick(event) {
|
|
const eventData = event.detail;
|
|
const viewportIndex = VIEWPORT_INDEX; // parseInt(eventData.element.dataset.viewportIndex, 10);
|
|
|
|
const toolContextMenuData = {
|
|
eventData,
|
|
isTouchEvent: false,
|
|
onClose: getOnCloseCallback(viewportIndex),
|
|
};
|
|
|
|
// setToolContextMenuData(viewportIndex, toolContextMenuData);
|
|
setToolContextMenuData(0, toolContextMenuData);
|
|
};
|
|
}
|
|
|
|
function getOnTouchPressCallback(store) {
|
|
const setToolContextMenuData = (viewportIndex, toolContextMenuData) => {
|
|
store.dispatch(resetLabellingAndContextMenuAction());
|
|
store.dispatch(
|
|
setToolContextMenuDataAction(viewportIndex, toolContextMenuData)
|
|
);
|
|
};
|
|
|
|
const getOnCloseCallback = viewportIndex => {
|
|
return function onClose() {
|
|
const toolContextMenuData = {
|
|
visible: false,
|
|
};
|
|
|
|
store.dispatch(
|
|
setToolContextMenuDataAction(viewportIndex, toolContextMenuData)
|
|
);
|
|
};
|
|
};
|
|
|
|
return function onTouchPress(event) {
|
|
const eventData = event.detail;
|
|
const viewportIndex = parseInt(eventData.element.dataset.viewportIndex, 10);
|
|
|
|
const toolContextMenuData = {
|
|
eventData,
|
|
isTouchEvent: true,
|
|
onClose: getOnCloseCallback(viewportIndex),
|
|
};
|
|
|
|
setToolContextMenuData(viewportIndex, toolContextMenuData);
|
|
};
|
|
}
|
|
|
|
function getResetLabellingAndContextMenu(store) {
|
|
return function resetLabellingAndContextMenu() {
|
|
store.dispatch(resetLabellingAndContextMenuAction());
|
|
};
|
|
}
|
|
|
|
/**
|
|
*
|
|
*
|
|
* @param {*} store
|
|
* @returns
|
|
*/
|
|
function getToolLabellingFlowCallback(store) {
|
|
const setLabellingFlowData = labellingFlowData => {
|
|
store.dispatch(setLabellingFlowDataAction(labellingFlowData));
|
|
};
|
|
|
|
return function toolLabellingFlowCallback(
|
|
measurementData,
|
|
eventData,
|
|
doneCallback,
|
|
options = {}
|
|
) {
|
|
const updateLabelling = ({ location, response, description }) => {
|
|
// Update the measurement data with the labelling parameters
|
|
|
|
if (location) {
|
|
measurementData.location = location;
|
|
}
|
|
|
|
measurementData.description = description || '';
|
|
|
|
if (response) {
|
|
measurementData.response = response;
|
|
}
|
|
|
|
updateTableWithNewMeasurementData(measurementData);
|
|
};
|
|
|
|
const labellingDoneCallback = () => {
|
|
setLabellingFlowData({ visible: false });
|
|
};
|
|
|
|
const labellingFlowData = {
|
|
visible: true,
|
|
eventData,
|
|
measurementData,
|
|
skipAddLabelButton: options.skipAddLabelButton,
|
|
editLocation: options.editLocation,
|
|
editDescription: options.editDescription,
|
|
editResponse: options.editResponse,
|
|
editDescriptionOnDialog: options.editDescriptionOnDialog,
|
|
labellingDoneCallback,
|
|
updateLabelling,
|
|
};
|
|
|
|
setLabellingFlowData(labellingFlowData);
|
|
};
|
|
}
|
|
|
|
export {
|
|
getToolLabellingFlowCallback,
|
|
getOnRightClickCallback,
|
|
getOnTouchPressCallback,
|
|
getResetLabellingAndContextMenu,
|
|
};
|