package jalview.gui;
+import jalview.bin.Cache;
import jalview.ws.seqfetcher.DbSourceProxy;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
+import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
return viewdbs;
}
- JScrollPane svp = new JScrollPane();
+ JScrollPane svp;
JTree dbviews;
DefaultMutableTreeNode tn = null, root = new DefaultMutableTreeNode();
Hashtable<DbSourceProxy, DefaultMutableTreeNode> tns = new Hashtable<DbSourceProxy, DefaultMutableTreeNode>();
Hashtable<String, DefaultMutableTreeNode> source = new Hashtable<String, DefaultMutableTreeNode>();
- sfetcher=sfetch;
- String dbs[] = sfetch.getOrderedSupportedSources();
+ sfetcher = sfetch;
+ String dbs[] = sfetch.getSupportedDb();
+ Hashtable ht = new Hashtable();
for (int i = 0; i < dbs.length; i++)
{
tn = source.get(dbs[i]);
if (tn == null)
{
source.put(dbs[i], tn = new DefaultMutableTreeNode(dbs[i], true));
-
}
for (DbSourceProxy dbp : srcs)
{
- tn.add(new DefaultMutableTreeNode(dbp, false));
+ if (ht.get(dbp.getDbName()) == null)
+ {
+ tn.add(new DefaultMutableTreeNode(dbp, false));
+ ht.put(dbp.getDbName(), dbp.getDbName());
+ } else {
+ System.err.println("dupe ig for : "+dbs[i]+" \t"+dbp.getDbName());
+ }
}
-
}
for (int i = 0; i < dbs.length; i++)
{
tn = source.get(dbs[i]);
+ if (tn == null)
+ {
+ continue;
+ }
if (tn.getChildCount() == 1)
{
// remove nodes with only one child
}
initDialogFrame(this, true, false, "Select Database Retrieval Source",
400, 300);
-
+ svp = new JScrollPane();
+ //svp.setAutoscrolls(true);
dbviews = new JTree(new DefaultTreeModel(root, false));
dbviews.setCellRenderer(new DbTreeRenderer(this));
+
+ dbviews.getSelectionModel().setSelectionMode(
+ TreeSelectionModel.SINGLE_TREE_SELECTION);
+ svp.getViewport().setView(dbviews);
+ svp.getViewport().setMinimumSize(new Dimension(300,250));
+ //svp.setSize(300,250);
+// JPanel panel=new JPanel();
+// panel.setSize(new Dimension(350,220));
+// panel.add(svp);
- dbviews.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
- add(svp, BorderLayout.CENTER);
- JPanel j=new JPanel(new FlowLayout());
+ add(svp, BorderLayout.NORTH);
+ JPanel j = new JPanel(new FlowLayout());
+ j.setPreferredSize(new Dimension(300,50));
j.add(ok);
j.add(cancel);
- add(j,BorderLayout.SOUTH);
- svp.getViewport().setView(dbviews);
+ add(j, BorderLayout.CENTER);
+ validate();
}
- private class DbTreeRenderer extends DefaultTreeCellRenderer implements TreeCellRenderer
+ private class DbTreeRenderer extends DefaultTreeCellRenderer implements
+ TreeCellRenderer
{
JDatabaseTree us;
boolean selected, boolean expanded, boolean leaf, int row,
boolean hasFocus)
{
- String val="";
+ String val = "";
if (value != null && value instanceof DefaultMutableTreeNode)
{
DefaultMutableTreeNode vl = (DefaultMutableTreeNode) value;
value = vl.getUserObject();
if (value instanceof DbSourceProxy)
{
- val=(((DbSourceProxy) value).getDbName());
+ val = (((DbSourceProxy) value).getDbName());
}
else
{
if (value instanceof String)
{
- val=((String) value);
+ val = ((String) value);
}
}
}
{
val = ("");
}
- return super.getTreeCellRendererComponent(tree, val, selected, expanded, leaf, row, hasFocus);
-
+ return super.getTreeCellRendererComponent(tree, val, selected,
+ expanded, leaf, row, hasFocus);
+
}
}
private void showDialog(Container parent)
{
+ validate();
waitForInput();
}
{
DefaultMutableTreeNode dmt = (DefaultMutableTreeNode) tp
.getLastPathComponent();
- if (dmt.getUserObject()!=null) {
- if (dmt.getUserObject() instanceof DbSourceProxy) {
- srcs.add((DbSourceProxy) dmt.getUserObject());
- }
- else
+ if (dmt.getUserObject() != null)
{
- srcs.addAll(sfetcher.getSourceProxy((String) dmt.getUserObject()));
- }
+ if (dmt.getUserObject() instanceof DbSourceProxy)
+ {
+ srcs.add((DbSourceProxy) dmt.getUserObject());
+ }
+ else
+ {
+ srcs.addAll(sfetcher.getSourceProxy((String) dmt.getUserObject()));
+ }
}
}
selection = srcs;
public static void main(String args[])
{
+ Cache.getDasSourceRegistry();
JDatabaseTree jdt = new JDatabaseTree(new jalview.ws.SequenceFetcher());
JFrame foo = new JFrame();
foo.setLayout(new BorderLayout());