Skip to content

Commit 1af4ecf

Browse files
authored
Merge pull request #113 from Kitware/hide-actor-when-no-data
fix: removing datasets doesn't inform the representation
2 parents f877b65 + 98c1c27 commit 1af4ecf

File tree

11 files changed

+74
-8
lines changed

11 files changed

+74
-8
lines changed

src/core/Algorithm.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ export default function Algorithm(props: AlgorithmProps) {
100100

101101
useUnmount(() => {
102102
if (algoRef.current) {
103+
representation.dataAvailable(false);
103104
deletionRegistry.markForDeletion(algoRef.current);
104105
algoRef.current = null;
105106
}

src/core/Dataset.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ export default function Dataset(props: DatasetProps) {
1414

1515
useEffect(() => {
1616
if (!dataset) {
17+
representation.dataAvailable(false);
1718
return;
1819
}
1920

2021
downstream.setInputData(dataset);
21-
representation.dataAvailable();
22+
representation.dataAvailable(true);
2223
representation.dataChanged();
2324
}, [dataset, downstream, representation]);
2425

src/core/Geometry2DRepresentation.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,8 @@ export default forwardRef(function Geometry2DRepresentation(
177177
dataChanged: () => {
178178
renderer.requestRender();
179179
},
180-
dataAvailable: () => {
181-
setDataAvailable(true);
180+
dataAvailable: (available = true) => {
181+
setDataAvailable(available);
182182
representation.dataChanged();
183183
},
184184
getActor,

src/core/ImageData.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ export default forwardRef(function PolyData(props: ImageDataProps, fwdRef) {
9898

9999
useUnmount(() => {
100100
if (imRef.current) {
101+
representation.dataAvailable(false);
101102
deletionRegistry.markForDeletion(imRef.current);
102103
imRef.current = null;
103104
}

src/core/PolyData.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ export default forwardRef(function PolyData(props: PolyDataProps, fwdRef) {
220220

221221
useUnmount(() => {
222222
if (pdRef.current) {
223+
representation.dataAvailable(false);
223224
deletionRegistry.markForDeletion(pdRef.current);
224225
pdRef.current = null;
225226
}

src/core/Reader.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,10 @@ export default function Reader(props: ReaderProps) {
8989
deletionRegistry.register(reader, () => reader.delete());
9090
readerRef.current = reader;
9191
return () => {
92+
representation.dataAvailable(false);
9293
deletionRegistry.markForDeletion(reader);
9394
};
94-
}, [createReader]);
95+
}, [createReader, representation]);
9596

9697
// --- url handling --- //
9798

src/core/ShareDataSet.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ export function UseDataSet(props: UseDataSetProps) {
205205
useEffect(() => {
206206
return share.onDataAvailable(id, (ds) => {
207207
downstream.setInputData(ds as vtkObject, port);
208-
representation.dataAvailable();
208+
representation.dataAvailable(!!ds);
209209
});
210210
}, [id, port, representation, downstream, share]);
211211

src/core/SliceRepresentation.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,8 +277,8 @@ export default forwardRef(function SliceRepresentation(
277277
dataChanged: () => {
278278
renderer.requestRender();
279279
},
280-
dataAvailable: () => {
281-
setDataAvailable(true);
280+
dataAvailable: (available = true) => {
281+
setDataAvailable(available);
282282
representation.dataChanged();
283283
},
284284
getActor,

src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export interface IView {
7070
}
7171

7272
export interface IRepresentation {
73-
dataAvailable(): void;
73+
dataAvailable(available?: boolean): void;
7474
dataChanged(): void;
7575
getActor(): vtkProp | null;
7676
getMapper(): vtkAbstractMapper | null;

usage/src/App.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ const demos = new Map([
4040
'Tests/SimpleSliceRendering',
4141
lazy(() => import('./Tests/SimpleSliceRendering')),
4242
],
43+
['Tests/RemoveImageData', lazy(() => import('./Tests/RemoveImageData'))],
4344
[
4445
'Tests/ChangeInteractorStyle',
4546
lazy(() => import('./Tests/ChangeInteractorStyle')),

0 commit comments

Comments
 (0)