Extract event

This commit is contained in:
igoroctaviano 2021-07-29 09:18:31 -03:00
parent 3f40cdced7
commit 8518e179ee
3 changed files with 42 additions and 18 deletions

View File

@ -43,6 +43,23 @@ export default {
); );
}; };
const RTPanelTabChangedEvent = 'rt-panel-tab-updated';
/**
* Trigger's an event to update the state of the panel's RoundedButtonGroup.
*
* This is required to avoid extension state
* coupling with the viewer's ToolbarRow component.
*
* @param {object} data
*/
const triggerRTPanelUpdatedEvent = data => {
const event = new CustomEvent(RTPanelTabChangedEvent, {
detail: data,
});
document.dispatchEvent(event);
};
const onRTStructsLoaded = ({ detail }) => { const onRTStructsLoaded = ({ detail }) => {
const { rtStructDisplaySet, referencedDisplaySet } = detail; const { rtStructDisplaySet, referencedDisplaySet } = detail;
@ -53,13 +70,10 @@ export default {
referencedSeriesInstanceUID: referencedDisplaySet.SeriesInstanceUID, referencedSeriesInstanceUID: referencedDisplaySet.SeriesInstanceUID,
Modality: 'RTSTRUCT', Modality: 'RTSTRUCT',
}); });
const event = new CustomEvent('rt-panel-updated', { triggerRTPanelUpdatedEvent({
detail: {
badgeNumber: referencedDisplaysets.length, badgeNumber: referencedDisplaysets.length,
target: 'rt-panel', target: 'rt-panel',
},
}); });
document.dispatchEvent(event);
}; };
document.addEventListener('extensiondicomrtrtloaded', onRTStructsLoaded); document.addEventListener('extensiondicomrtrtloaded', onRTStructsLoaded);
@ -70,7 +84,7 @@ export default {
icon: 'list', icon: 'list',
label: 'RTSTRUCT', label: 'RTSTRUCT',
target: 'rt-panel', target: 'rt-panel',
stateEvent: 'rt-panel-updated', stateEvent: RTPanelTabChangedEvent,
isDisabled: (studies, activeViewport) => { isDisabled: (studies, activeViewport) => {
if (!studies) { if (!studies) {
return true; return true;

View File

@ -82,6 +82,23 @@ export default {
); );
}; };
const SegmentationPanelTabUpdatedEvent = 'segmentation-panel-tab-updated';
/**
* Trigger's an event to update the state of the panel's RoundedButtonGroup.
*
* This is required to avoid extension state
* coupling with the viewer's ToolbarRow component.
*
* @param {object} data
*/
const triggerSegmentationPanelTabUpdatedEvent = data => {
const event = new CustomEvent(SegmentationPanelTabUpdatedEvent, {
detail: data,
});
document.dispatchEvent(event);
};
const onSegmentationsLoaded = ({ detail }) => { const onSegmentationsLoaded = ({ detail }) => {
const { segDisplaySet, segMetadata } = detail; const { segDisplaySet, segMetadata } = detail;
const studyMetadata = studyMetadataManager.get( const studyMetadata = studyMetadataManager.get(
@ -91,13 +108,10 @@ export default {
referencedSeriesInstanceUID: segMetadata.seriesInstanceUid, referencedSeriesInstanceUID: segMetadata.seriesInstanceUid,
Modality: 'SEG', Modality: 'SEG',
}); });
const event = new CustomEvent('segmentation-panel-updated', { triggerSegmentationPanelTabUpdatedEvent({
detail: {
badgeNumber: referencedDisplaysets.length, badgeNumber: referencedDisplaysets.length,
target: 'segmentation-panel', target: 'segmentation-panel',
},
}); });
document.dispatchEvent(event);
}; };
document.addEventListener( document.addEventListener(
@ -111,7 +125,7 @@ export default {
icon: 'list', icon: 'list',
label: 'Segmentations', label: 'Segmentations',
target: 'segmentation-panel', target: 'segmentation-panel',
stateEvent: 'segmentation-panel-updated', stateEvent: SegmentationPanelTabUpdatedEvent,
isDisabled: studies => { isDisabled: studies => {
if (!studies) { if (!studies) {
return true; return true;

View File

@ -112,10 +112,6 @@ class ToolbarRow extends Component {
icon: 'th-large', icon: 'th-large',
bottomLabel: this.props.t('Series'), bottomLabel: this.props.t('Series'),
}); });
// this.setState({
// toolbarButtons: _getVisibleToolbarButtons.call(this),
// });
} }
componentDidMount() { componentDidMount() {