diff --git a/src/main/java/bdv/viewer/state/SourceGroup.java b/src/main/java/bdv/viewer/state/SourceGroup.java
index b5d219deadda917b2364bbaa470aae0ab620222b..5925b4efba4c03f6755eb7a2424d90b6f770209f 100644
--- a/src/main/java/bdv/viewer/state/SourceGroup.java
+++ b/src/main/java/bdv/viewer/state/SourceGroup.java
@@ -137,4 +137,33 @@ public class SourceGroup
{
this.isCurrent = isCurrent;
}
+
+ @Override
+ public boolean equals( final Object o )
+ {
+ if ( this == o )
+ return true;
+ if ( !( o instanceof SourceGroup ) )
+ return false;
+
+ final SourceGroup that = ( SourceGroup ) o;
+
+ if ( !name.equals( that.name ) )
+ return false;
+ if ( isActive != that.isActive )
+ return false;
+ if ( isCurrent != that.isCurrent )
+ return false;
+ return sourceIds.equals( that.sourceIds );
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int result = sourceIds.hashCode();
+ result = 31 * result + name.hashCode();
+ result = 31 * result + ( isActive ? 1 : 0 );
+ result = 31 * result + ( isCurrent ? 1 : 0 );
+ return result;
+ }
}