+ Assert.assertEquals(restoredMat.hasGroups(), dummyMat.hasGroups());
+ Assert.assertEquals(restoredMat.getGroups(), dummyMat.getGroups());
+ Assert.assertEquals(restoredMat.hasTree(), dummyMat.hasTree());
+ Assert.assertEquals(restoredMat.getNewick(), dummyMat.getNewick());
+
+ // verify no duplicate PAE matrix data when new view created and saved
+
+ // add reference annotations to view first, then copy
+ AlignmentUtils.addReferenceAnnotationTo(newAl, newAl.getSequenceAt(0), newSeq.getAnnotation()[0],null);
+
+ AlignmentViewPanel newview = af.newView("copy of PAE", true);
+
+ // redundant asserts here check all is good with the new view firest...
+ AlignmentI newviewAl = newview.getAlignment();
+ SequenceI newviewSeq = newviewAl.getSequenceAt(0);
+ // check annotation of the expected type exists
+ Assert.assertEquals(newviewSeq.getAnnotation().length, 1);
+ Assert.assertEquals(newviewSeq.getAnnotation()[0].graph, paeCm.graph);
+ // check we have just one contact matrix mapping
+ Assert.assertEquals(newviewSeq.getContactMaps().size(), 1);
+
+ // and can be found for the annotation on the sequence
+ ContactMatrixI newviewMat = newviewSeq
+ .getContactMatrixFor(newviewSeq.getAnnotation()[0]);
+ Assert.assertNotNull(newviewMat);
+
+ Assert.assertTrue(newviewMat == restoredMat);
+
+ // save the two views and restore. Now look at visible annotation to check all views have shared refs.
+
+ tfile = File.createTempFile("testStoreAndRecoverPAEmatrixTwoViews",
+ ".jvp");
+ new Jalview2XML(false).saveState(tfile);
+ Desktop.instance.closeAll_actionPerformed(null);