import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
+import static org.testng.AssertJUnit.assertTrue;
+
+import java.awt.Color;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.BitSet;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
import jalview.api.AlignmentViewPanel;
import jalview.api.SequenceRenderer;
import jalview.gui.StructureViewer.ViewerType;
import jalview.io.DataSourceType;
import jalview.io.FileFormats;
+import jalview.io.FileLoader;
import jalview.schemes.JalviewColourScheme;
import jalview.structure.AtomSpec;
import jalview.structure.AtomSpecModel;
import jalview.structure.StructureCommandI;
import jalview.structure.StructureMapping;
import jalview.structure.StructureSelectionManager;
-
-import java.awt.Color;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.BitSet;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
import junit.extensions.PA;
/**
// ideally, we would match on the actual data for the 'File' handle for
// pasted files,
// see JAL-623 - pasting is still not correctly handled...
- PDBEntry importedPDB = new PDBEntry("3A6S", "", Type.PDB,
- "Paste");
- AAStructureBindingModel binder = new AAStructureBindingModel(
- new StructureSelectionManager(), new PDBEntry[]
+ PDBEntry importedPDB = new PDBEntry("3A6S", "", Type.PDB, "Paste");
+ AAStructureBindingModel binder = newBindingModel(new PDBEntry[]
{ importedPDB },
new SequenceI[][]
- { importedAl.getSequencesArray() }, null)
- {
-
- @Override
- public void updateColours(Object source)
- {
- }
-
- @Override
- public void releaseReferences(Object svl)
- {
- }
-
- @Override
- public String[] getStructureFiles()
- {
- return null;
- }
-
- @Override
- public void highlightAtoms(List<AtomSpec> atoms)
- {
- }
-
- @Override
- public SequenceRenderer getSequenceRenderer(AlignmentViewPanel alignment)
- {
- return null;
- }
+ { importedAl.getSequencesArray() },
+ new StructureSelectionManager(), null);
- @Override
- protected List<String> executeCommand(StructureCommandI command,
- boolean getReply)
- {
- return null;
- }
-
- @Override
- protected String getModelIdForFile(String chainId)
- {
- return "";
- }
-
- @Override
- protected ViewerType getViewerType()
- {
- return null;
- }
- };
String[][] chains = binder.getChains();
assertFalse(chains == null || chains[0] == null,
"No chains discovered by binding");
ssm.setMapping(new SequenceI[] { seq3 }, null, PDB_3,
DataSourceType.PASTE, null);
- testee = newBindingModel(pdbFiles, seqs, ssm);
+ testee = newBindingModel(pdbFiles, seqs, ssm, null);
}
/**
* @param pdbFiles
* @param seqs
* @param ssm
+ * @param alignPanel
*/
protected AAStructureBindingModel newBindingModel(PDBEntry[] pdbFiles,
SequenceI[][] seqs,
- StructureSelectionManager ssm)
+ StructureSelectionManager ssm, AlignmentViewPanel avp)
{
AAStructureBindingModel model = new AAStructureBindingModel(ssm,
pdbFiles, seqs, null)
@Override
public String[] getStructureFiles()
{
- return new String[] { "INLINE1YCS", "INLINE3A6S", "INLINE1OOT" };
+ String[] files = new String[getPdbCount()];
+ for (int i = 0; i < this.getPdbCount(); i++)
+ {
+ files[i] = getPdbEntry(i).getFile();
+ }
+ return files;
}
@Override
}
@Override
+ public void setBackgroundColour(Color col)
+ {
+ }
+
+ @Override
public SequenceRenderer getSequenceRenderer(
- AlignmentViewPanel alignment)
+ AlignmentViewPanel avp)
{
- return null;
+ return avp == null ? null
+ : new jalview.gui.SequenceRenderer(
+ avp.getAlignViewport());
}
@Override
return null;
}
+ /*
+ * for this test, let structure model ids be 0, 1, ...
+ * corresponding to first, second etc pdbfile
+ */
@Override
- protected String getModelIdForFile(String chainId)
+ protected String getModelIdForFile(String pdbfile)
{
+ for (int i = 0; i < this.getPdbCount(); i++)
+ {
+ if (pdbfile.equals(this.getPdbEntry(i).getFile()))
+ {
+ return String.valueOf(i);
+ }
+ }
return "";
}
* load these sequences, coloured by Strand propensity,
* with columns 2-4 hidden
*/
- SequenceI seq1 = new Sequence("seq1", "MHRSQSSSGG");
- SequenceI seq2 = new Sequence("seq2", "MVRSNGGSSS");
- AlignmentI al = new Alignment(new SequenceI[] { seq1, seq2 });
- AlignFrame af = new AlignFrame(al, 800, 500);
+ String fasta = ">seq1\nMHRSQSSSGG\n>seq2\nMVRSNGGSSS";
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(fasta,
+ DataSourceType.PASTE);
+ AlignmentI al = af.getViewport().getAlignment();
af.changeColour_actionPerformed(JalviewColourScheme.Strand.toString());
ColumnSelection cs = new ColumnSelection();
cs.addElement(2);
cs.addElement(4);
af.getViewport().setColumnSelection(cs);
af.hideSelColumns_actionPerformed(null);
- SequenceRenderer sr = new jalview.gui.SequenceRenderer(
- af.getViewport());
+ SequenceI seq1 = al.getSequenceAt(0);
+ SequenceI seq2 = al.getSequenceAt(1);
SequenceI[][] seqs = new SequenceI[][] { { seq1 }, { seq2 } };
- String[] files = new String[] { "seq1.pdb", "seq2.pdb" };
PDBEntry[] pdbFiles = new PDBEntry[2];
- pdbFiles[0] = new PDBEntry("PDB1", "A", Type.PDB, "INLINEPDB1");
- pdbFiles[1] = new PDBEntry("PDB2", "B", Type.PDB, "INLINEPDB2");
+ pdbFiles[0] = new PDBEntry("PDB1", "A", Type.PDB, "seq1.pdb");
+ pdbFiles[1] = new PDBEntry("PDB2", "B", Type.PDB, "seq2.pdb");
StructureSelectionManager ssm = new StructureSelectionManager();
/*
"B", map, null);
ssm.addStructureMapping(sm2);
- AAStructureBindingModel binding = newBindingModel(pdbFiles, seqs, ssm);
+ AAStructureBindingModel binding = newBindingModel(pdbFiles, seqs, ssm,
+ af.alignPanel);
/*
* method under test builds a map of structures residues by colour
* verify the map holds what it should
*/
- Map<Object, AtomSpecModel> colours = binding.buildColoursMap(ssm, files,
- seqs, sr, af.alignPanel);
+ Map<Object, AtomSpecModel> colours = binding.buildColoursMap(ssm, seqs,
+ af.alignPanel);
ChimeraCommands helper = new ChimeraCommands();
/*