*/
package jalview.appletgui;
-import java.awt.Container;
-import java.util.BitSet;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.jmol.api.JmolAppConsoleInterface;
-import org.jmol.api.JmolViewer;
-
import jalview.api.AlignmentViewPanel;
import jalview.api.FeatureRenderer;
import jalview.api.SequenceRenderer;
import jalview.datamodel.SequenceI;
import jalview.ext.jmol.JalviewJmolBinding;
+import java.awt.Container;
+import java.util.ArrayList;
+import java.util.BitSet;
+import java.util.List;
+import java.util.Vector;
+
+import org.jmol.api.JmolAppConsoleInterface;
+import org.jmol.api.JmolViewer;
+
/**
* bind an alignment view to an external Jmol instance.
*
public ExtJmol(JmolViewer viewer, AlignmentPanel alignPanel,
SequenceI[][] seqs)
{
- super(alignPanel.getStructureSelectionManager(), viewer);
+ super(alignPanel.getStructureSelectionManager(), seqs, viewer);
ap = alignPanel;
- this.sequence = seqs;
notifyFileLoaded(null, null, null, null, 0);
}
public void refreshPdbEntries()
{
- Vector pdbe = new Vector();
- Hashtable fileids = new Hashtable();
+ List<PDBEntry> pdbe = new ArrayList<PDBEntry>();
+ List<String> fileids = new ArrayList<String>();
SequenceI[] sq = ap.av.getAlignment().getSequencesArray();
for (int s = 0; s < sq.length; s++)
{
for (int pe = 0, peSize = pdbids.size(); pe < peSize; pe++)
{
PDBEntry pentry = (PDBEntry) pdbids.elementAt(pe);
- if (!fileids.containsKey(pentry.getId()))
+ if (!fileids.contains(pentry.getId()))
{
- pdbe.addElement(pentry);
+ pdbe.add(pentry);
+ }
+ else
+ {
+ fileids.add(pentry.getId());
}
}
}
}
- pdbentry = new PDBEntry[pdbe.size()];
+ PDBEntry[] newEntries = new PDBEntry[pdbe.size()];
for (int pe = 0; pe < pdbe.size(); pe++)
{
- pdbentry[pe] = (PDBEntry) pdbe.elementAt(pe);
+ newEntries[pe] = pdbe.get(pe);
}
+ setPdbentry(newEntries);
}
@Override
protected void releaseUIResources()
{
ap = null;
- if (console != null)
- {
- try
- {
- console.setVisible(false);
- } catch (Error e)
- {
- } catch (Exception x)
- {
- }
- ;
- console = null;
- }
+ closeConsole();
}