Fix Overrided Label editing provider bug

This commit is contained in:
theaubmov 2023-12-05 18:51:02 +01:00
parent ec81cfa0bf
commit ae4bd81548
2 changed files with 26 additions and 32 deletions

View File

@ -1,11 +1,8 @@
import { is } from 'bpmn-js/lib/util/ModelUtil';
import { findDataObject, updateDataObjectReferencesName } from './DataObjectHelpers';
const LOW_PRIORITY = 500;
export default function DataObjectLabelEditingProvider(eventBus, directEditing, commandStack, modeling) {
export default function DataObjectLabelEditingProvider(eventBus, canvas, directEditing, commandStack, modeling) {
// directEditing.registerProvider(LOW_PRIORITY, this);
let el;
// listen to dblclick on non-root elements
@ -20,47 +17,45 @@ export default function DataObjectLabelEditingProvider(eventBus, canvas, directE
}
});
// eventBus.on('directEditing.activate', async function (event) {
// const { element } = event.active;
// if (is(element.businessObject, 'bpmn:DataObjectReference')) { }
// });
eventBus.on('directEditing.complete', function (event) {
const element = el;
if (element && is(element.businessObject, 'bpmn:DataObjectReference')) {
const process = element.parent.businessObject;
const dataObject = findDataObject(process, element.businessObject.dataObjectRef.id);
const dataState = element.businessObject.dataState && element.businessObject.dataState.name;
let newLabel = element.businessObject.name;
setTimeout(() => {
const process = element.parent.businessObject;
const dataObject = findDataObject(process, element.businessObject.dataObjectRef.id);
const dataState = element.businessObject.dataState && element.businessObject.dataState.name;
commandStack.execute('element.updateModdleProperties', {
element,
moddleElement: dataObject,
properties: {
name: newLabel,
},
});
let newLabel = element.businessObject.name;
// Update references name
updateDataObjectReferencesName(element.parent, newLabel, dataObject.id, commandStack);
commandStack.execute('element.updateModdleProperties', {
element,
moddleElement: dataObject,
properties: {
name: newLabel,
},
});
// Append the data state if it exists
if (dataState) {
newLabel += ` [${dataState}]`;
}
// Update references name
updateDataObjectReferencesName(element.parent, newLabel, dataObject.id, commandStack);
// Update the label with the data state
modeling.updateLabel(element, newLabel);
el = undefined;
// Append the data state if it exists
if (dataState) {
newLabel += ` [${dataState}]`;
}
// Update the label with the data state
modeling.updateLabel(element, newLabel);
el = undefined;
}, 100);
}
});
}
DataObjectLabelEditingProvider.$inject = [
'eventBus',
'canvas',
'directEditing',
'commandStack',
'modeling'

View File

@ -5,12 +5,11 @@ import DataObjectRenderer from './DataObjectRenderer';
import DataObjectPropertiesProvider from './propertiesPanel/DataObjectPropertiesProvider';
import DataObjectLabelEditingProvider from './DataObjectLabelEditingProvider';
export default {
__depends__: [
RulesModule
],
__init__: [ 'dataInterceptor', 'dataObjectRules', 'dataObjectRenderer', 'dataObjectPropertiesProvider' ],
__init__: [ 'dataInterceptor', 'dataObjectRules', 'dataObjectRenderer', 'dataObjectPropertiesProvider', 'dataObjectLabelEditingProvider' ],
dataInterceptor: [ 'type', DataObjectInterceptor ],
dataObjectRules: [ 'type', DataObjectRules ],
dataObjectRenderer: [ 'type', DataObjectRenderer ],