Skip to content

Commit b8f3928

Browse files
committed
Graphs are listening to selection and display settings changes.
Live update on the graphs! Useful to inspect the data in regard to numerical features.
1 parent a83d64b commit b8f3928

4 files changed

Lines changed: 14 additions & 9 deletions

File tree

src/main/java/fiji/plugin/trackmate/features/EdgeCollectionDataset.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,6 @@ public class EdgeCollectionDataset extends ModelDataset
6060

6161
private final List< DefaultWeightedEdge > edges;
6262

63-
private final FeatureColorGenerator< DefaultWeightedEdge > edgeColorGenerator;
64-
6563
private final Map< Integer, Set< DefaultWeightedEdge > > edgeMap;
6664

6765
private final Function< DefaultWeightedEdge, String > labelGenerator;
@@ -76,7 +74,6 @@ public EdgeCollectionDataset(
7674
{
7775
super( model, selectionModel, ds, xFeature, yFeatures );
7876
this.edges = edges;
79-
this.edgeColorGenerator = FeatureUtils.createTrackColorGenerator( model, ds );
8077
this.edgeMap = createEdgeMap( edges, model.getTrackModel() );
8178
this.labelGenerator = edge -> String.format( "%s → %s",
8279
model.getTrackModel().getEdgeSource( edge ).getName(), model.getTrackModel().getEdgeTarget( edge ).getName() );
@@ -220,6 +217,8 @@ public Paint getItemPaint( final int series, final int item )
220217
final DefaultWeightedEdge edge = edges.get( item );
221218
if ( selectionModel != null && selectionModel.getEdgeSelection().contains( edge ) )
222219
return ds.getHighlightColor();
220+
221+
final FeatureColorGenerator< DefaultWeightedEdge > edgeColorGenerator = FeatureUtils.createTrackColorGenerator( model, ds );
223222
return edgeColorGenerator.color( edges.get( item ) );
224223
}
225224

src/main/java/fiji/plugin/trackmate/features/ModelDataset.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,14 @@ public ModelDataset(
7575
this.featureNameMap = new HashMap<>();
7676
for ( int i = 0; i < yFeatures.size(); i++ )
7777
featureNameMap.put( getSeriesKey( i ).toString(), Integer.valueOf( i ) );
78+
79+
// Listen to selection changes.
80+
if ( selectionModel != null )
81+
selectionModel.addSelectionChangeListener( l -> fireDatasetChanged() );
82+
83+
// Listen to changes in display settings.
84+
if ( ds != null )
85+
ds.listeners().add( () -> fireDatasetChanged() );
7886
}
7987

8088
public String getXFeature()

src/main/java/fiji/plugin/trackmate/features/SpotCollectionDataset.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,6 @@ public class SpotCollectionDataset extends ModelDataset implements XYDataset
5858

5959
private final List< Spot > spots;
6060

61-
private final FeatureColorGenerator< Spot > spotColorGenerator;
62-
6361
private final Map< Integer, Set< DefaultWeightedEdge > > edgeMap;
6462

6563
public SpotCollectionDataset(
@@ -72,7 +70,6 @@ public SpotCollectionDataset(
7270
{
7371
super( model, selectionModel, ds, xFeature, yFeatures );
7472
this.spots = spots;
75-
this.spotColorGenerator = FeatureUtils.createSpotColorGenerator( model, ds );
7673
this.edgeMap = createEdgeMap( spots, model.getTrackModel() );
7774
}
7875

@@ -218,6 +215,8 @@ public Paint getItemPaint( final int series, final int item )
218215
final Spot spot = spots.get( item );
219216
if ( selectionModel != null && selectionModel.getSpotSelection().contains( spot ) )
220217
return ds.getHighlightColor();
218+
219+
final FeatureColorGenerator< Spot > spotColorGenerator = FeatureUtils.createSpotColorGenerator( model, ds );
221220
return spotColorGenerator.color( spots.get( item ) );
222221
}
223222

src/main/java/fiji/plugin/trackmate/features/TrackCollectionDataset.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ public class TrackCollectionDataset extends ModelDataset
4242

4343
private final List< Integer > trackIDs;
4444

45-
private final FeatureColorGenerator< Integer > trackColorGenerator;
46-
4745
public TrackCollectionDataset(
4846
final Model model,
4947
final SelectionModel selectionModel,
@@ -54,7 +52,6 @@ public TrackCollectionDataset(
5452
{
5553
super( model, selectionModel, ds, xFeature, yFeatures );
5654
this.trackIDs = trackIDs;
57-
this.trackColorGenerator = FeatureUtils.createWholeTrackColorGenerator( model, ds );
5855
}
5956

6057
@Override
@@ -117,6 +114,8 @@ public Paint getItemPaint( final int series, final int item )
117114
final Integer trackID = trackIDs.get( item );
118115
if ( selectionModel != null && selectionModel.getSpotSelection().containsAll( model.getTrackModel().trackSpots( trackID ) ) )
119116
return ds.getHighlightColor();
117+
118+
final FeatureColorGenerator< Integer > trackColorGenerator = FeatureUtils.createWholeTrackColorGenerator( model, ds );
120119
return trackColorGenerator.color( trackIDs.get( item ) );
121120
}
122121

0 commit comments

Comments
 (0)