TextField inputLine;
TextArea history;
SequenceI[] sequence;
+ String [] chains;
StructureSelectionManager ssm;
RenderPanel renderPanel;
AlignmentPanel ap;
public AppletJmol(PDBEntry pdbentry,
SequenceI[] seq,
+ String[] chains,
AlignmentPanel ap,
String protocol)
{
this.ap = ap;
this.sequence = seq;
+ this.chains = chains;
this.pdbentry = pdbentry;
String alreadyMapped = StructureSelectionManager
if (alreadyMapped != null)
{
StructureSelectionManager.getStructureSelectionManager()
- .setMapping(seq, pdbentry.getFile(), protocol);
+ .setMapping(seq, chains, pdbentry.getFile(), protocol);
//PROMPT USER HERE TO ADD TO NEW OR EXISTING VIEW?
//FOR NOW, LETS JUST OPEN A NEW WINDOW
}
MCview.PDBfile pdb;
if (loadedInline)
{
- pdb = ssm.setMapping(sequence,
+ pdb = ssm.setMapping(sequence,chains,
pdbentry.getFile(),
AppletFormatAdapter.PASTE);
pdbentry.setFile("INLINE"+pdb.id);
}
else
{
- pdb = ssm.setMapping(sequence,
+ pdb = ssm.setMapping(sequence,chains,
pdbentry.getFile(),
AppletFormatAdapter.URL);
}
*/
public void init()
{
- try
- {
- if (!System.getProperty("java.version").startsWith("1.1"))
- {
- Class.forName("org.jmol.adapter.smarter.SmarterJmolAdapter");
- jmolAvailable = true;
- }
- }
- catch (java.lang.ClassNotFoundException ex)
- {
- System.out.println("Jmol not available - Using MCview for structures");
- }
-
int r = 255;
int g = 255;
int b = 255;
}
}
+ LoadJmolThread jmolAvailable = new LoadJmolThread();
+ jmolAvailable.start();
+
final JalviewLite applet = this;
if (getParameter("embedded") != null
&& getParameter("embedded").equalsIgnoreCase("true"))
}
}
- public static void main(String[] args)
- {
- if (args.length != 1)
- {
- System.out.println("\nUsage: java -jar jalviewApplet.jar fileName\n");
- System.exit(1);
- }
-
- String format = new jalview.io.IdentifyFile().Identify(args[0],
- AppletFormatAdapter.FILE);
-
- Alignment al = null;
- try
- {
- al = new AppletFormatAdapter().readFile(args[0], AppletFormatAdapter.FILE,
- format);
- }
- catch (java.io.IOException ex)
- {
- ex.printStackTrace();
- }
- if ( (al != null) && (al.getHeight() > 0))
- {
- AlignFrame af = new AlignFrame(al, null, args[0], false);
- af.statusBar.setText("Successfully loaded file " + args[0]);
- }
- }
/**
* Initialises and displays a new java.awt.Frame
g.drawString("Jalview Applet", 50, this.getSize().height / 2 - 30);
g.drawString("Loading Data...", 50, this.getSize().height / 2);
}
+ }
+
+ class LoadJmolThread extends Thread
+ {
+ public void run()
+ {
+ try
+ {
+ if (!System.getProperty("java.version").startsWith("1.1"))
+ {
+ Class.forName("org.jmol.adapter.smarter.SmarterJmolAdapter");
+ jmolAvailable = true;
+ System.out.println("JMOL FOUND");
+ }
+ }
+ catch (java.lang.ClassNotFoundException ex)
+ {
+ System.out.println("Jmol not available - Using MCview for structures");
+ }
+ }
}
+
class LoadingThread
extends Thread
{
public void run()
{
+ startLoading();
+ }
+
+ private void startLoading()
+ {
Alignment al = null;
try
{
}
}
+ /*
+ <param name="PDBfile" value="1gaq.txt PDB|1GAQ|1GAQ|A PDB|1GAQ|1GAQ|B PDB|1GAQ|1GAQ|C">
- param = getParameter("PDBFILE");
- if (param != null)
- {
+ <param name="PDBfile2" value="1gaq.txt A=SEQA B=SEQB C=SEQB">
- PDBEntry pdb = new PDBEntry();
+ <param name="PDBfile3" value="1q0o Q45135_9MICO">
+ */
- String seqstring;
- SequenceI [] seqs = null;
- if(param.indexOf(" ")>-1)
+ int pdbFileCount = 0;
+ do{
+ if (pdbFileCount > 0)
+ param = getParameter("PDBFILE" + pdbFileCount);
+ else
+ param = getParameter("PDBFILE");
+
+ if (param != null)
{
- seqstring = param.substring(param.indexOf(" ")+1);
- param = param.substring(0, param.indexOf(" "));
- StringTokenizer st = new StringTokenizer(seqstring);
- Vector tmp = new Vector();
- while(st.hasMoreTokens())
+ PDBEntry pdb = new PDBEntry();
+
+ String seqstring;
+ SequenceI[] seqs = null;
+ String [] chains = null;
+
+ StringTokenizer st = new StringTokenizer(param, " ");
+
+ if (st.countTokens() < 2)
{
- tmp.addElement((Sequence) currentAlignFrame.
- getAlignViewport().getAlignment().
- findName(st.nextToken()));
- }
+ String sequence = applet.getParameter("PDBSEQ");
+ if (sequence != null)
+ seqs = new SequenceI[]
+ {
+ (Sequence) currentAlignFrame.
+ getAlignViewport().getAlignment().
+ findName(sequence)};
- seqs = new SequenceI[tmp.size()];
- tmp.copyInto(seqs);
- }
- else
- {
- String sequence = applet.getParameter("PDBSEQ");
- if (sequence != null)
- seqs = new SequenceI[]
- {
- (Sequence) currentAlignFrame.
- getAlignViewport().getAlignment().
- findName(sequence)};
- }
+ }
+ else
+ {
+ param = st.nextToken();
+ Vector tmp = new Vector();
+ Vector tmp2 = new Vector();
+
+ while (st.hasMoreTokens())
+ {
+ seqstring = st.nextToken();
+ StringTokenizer st2 = new StringTokenizer(seqstring,"=");
+ if(st2.countTokens()>1)
+ {
+ //This is the chain
+ tmp2.addElement(st2.nextToken());
+ seqstring = st2.nextToken();
+ }
+ tmp.addElement( (Sequence) currentAlignFrame.
+ getAlignViewport().getAlignment().
+ findName(seqstring));
+ }
+
+ seqs = new SequenceI[tmp.size()];
+ tmp.copyInto(seqs);
+ if(tmp2.size()==tmp.size())
+ {
+ chains = new String[tmp2.size()];
+ tmp2.copyInto(chains);
+ }
+ }
- // if (!inArchive(param) || jmolAvailable)
- {
param = addProtocol(param);
- }
-
- pdb.setFile(param);
+ pdb.setFile(param);
- for(int i=0; i<seqs.length; i++)
- {
- ((Sequence)seqs[i]).addPDBId(pdb);
+ if(seqs!=null)
+ {
+ for (int i = 0; i < seqs.length; i++)
+ {
+ ( (Sequence) seqs[i]).addPDBId(pdb);
+ }
+
+ if (jmolAvailable)
+ {
+ new jalview.appletgui.AppletJmol(pdb,
+ seqs,
+ chains,
+ currentAlignFrame.alignPanel,
+ protocol);
+ lastFrameX += 40;
+ lastFrameY+=40;
+ }
+ else
+ new MCview.AppletPDBViewer(pdb,
+ seqs,
+ chains,
+ currentAlignFrame.alignPanel,
+ protocol);
+ }
}
- if (jmolAvailable)
- new jalview.appletgui.AppletJmol(pdb,
- seqs,
- currentAlignFrame.alignPanel,
- protocol);
- else
-
- new MCview.AppletPDBViewer(pdb,
- seqs,
- currentAlignFrame.alignPanel,
- protocol);
+ pdbFileCount++;
}
+ while(pdbFileCount < 10);
+
}
else
{
ScriptWindow scriptWindow;
PDBEntry pdbentry;
SequenceI[] sequence;
+ String [] chains;
StructureSelectionManager ssm;
JSplitPane splitPane;
RenderPanel renderPanel;
pdbentry = new PDBEntry();
pdbentry.setFile(file);
pdbentry.setId(id);
+ this.chains = chains;
this.sequence = seq;
this.ap = ap;
this.setBounds(bounds);
sequence = tmp;
}
- public AppJMol(PDBEntry pdbentry, SequenceI[] seq, AlignmentPanel ap)
+ public AppJMol(PDBEntry pdbentry, SequenceI[] seq, String [] chains, AlignmentPanel ap)
{
//////////////////////////////////
//Is the pdb file already loaded?
if (option == JOptionPane.YES_OPTION)
{
StructureSelectionManager.getStructureSelectionManager()
- .setMapping(seq, alreadyMapped, AppletFormatAdapter.FILE);
+ .setMapping(seq, chains, alreadyMapped, AppletFormatAdapter.FILE);
if (ap.seqPanel.seqCanvas.fr!=null) {
ap.seqPanel.seqCanvas.fr.featuresAdded();
ap.paintAlignment(true);
//FILE LOADED OK
ssm = StructureSelectionManager.getStructureSelectionManager();
- MCview.PDBfile pdbFile = ssm.setMapping(sequence, pdbentry.getFile(), AppletFormatAdapter.FILE);
+ MCview.PDBfile pdbFile = ssm.setMapping(sequence,chains,pdbentry.getFile(), AppletFormatAdapter.FILE);
ssm.addStructureViewerListener(this);
Vector chains = new Vector();
for(int i=0; i<pdbFile.chains.size(); i++)