From 080dd87e67e470834a0d889c39081558f21c48b4 Mon Sep 17 00:00:00 2001 From: jprocter Date: Tue, 1 May 2012 17:09:06 +0100 Subject: [PATCH] JAL-1075 tweak layout and test display for tree based sequence source browser --- src/jalview/gui/JDatabaseTree.java | 77 ++++++++++++++++++++++++------------ 1 file changed, 52 insertions(+), 25 deletions(-) diff --git a/src/jalview/gui/JDatabaseTree.java b/src/jalview/gui/JDatabaseTree.java index 6b18e84..385d1bd 100644 --- a/src/jalview/gui/JDatabaseTree.java +++ b/src/jalview/gui/JDatabaseTree.java @@ -1,10 +1,12 @@ 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; @@ -48,7 +50,7 @@ public class JDatabaseTree extends JalviewDialog return viewdbs; } - JScrollPane svp = new JScrollPane(); + JScrollPane svp; JTree dbviews; @@ -65,8 +67,9 @@ public class JDatabaseTree extends JalviewDialog DefaultMutableTreeNode tn = null, root = new DefaultMutableTreeNode(); Hashtable tns = new Hashtable(); Hashtable source = new Hashtable(); - 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]); @@ -74,17 +77,25 @@ public class JDatabaseTree extends JalviewDialog 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 @@ -94,20 +105,31 @@ public class JDatabaseTree extends JalviewDialog } 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; @@ -128,20 +150,20 @@ public class JDatabaseTree extends JalviewDialog 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); } } } @@ -149,8 +171,9 @@ public class JDatabaseTree extends JalviewDialog { val = (""); } - return super.getTreeCellRendererComponent(tree, val, selected, expanded, leaf, row, hasFocus); - + return super.getTreeCellRendererComponent(tree, val, selected, + expanded, leaf, row, hasFocus); + } } @@ -180,6 +203,7 @@ public class JDatabaseTree extends JalviewDialog private void showDialog(Container parent) { + validate(); waitForInput(); } @@ -204,14 +228,16 @@ public class JDatabaseTree extends JalviewDialog { 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; @@ -258,6 +284,7 @@ public class JDatabaseTree extends JalviewDialog public static void main(String args[]) { + Cache.getDasSourceRegistry(); JDatabaseTree jdt = new JDatabaseTree(new jalview.ws.SequenceFetcher()); JFrame foo = new JFrame(); foo.setLayout(new BorderLayout()); -- 1.7.10.2