From 88e0fd6d2cb3ba39289a5ca9f0d7c0787e2347e4 Mon Sep 17 00:00:00 2001 From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04> Date: Wed, 1 Jun 2005 15:07:31 +0000 Subject: [PATCH] status bar git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@2732 ee4ac58c-ac51-4696-9907-e4b3aa274f04 --- .../artemis/components/DatabaseJFrame.java | 46 ++++++++++++++++--- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/uk/ac/sanger/artemis/components/DatabaseJFrame.java b/uk/ac/sanger/artemis/components/DatabaseJFrame.java index c8bb840a3..81d6236b9 100644 --- a/uk/ac/sanger/artemis/components/DatabaseJFrame.java +++ b/uk/ac/sanger/artemis/components/DatabaseJFrame.java @@ -20,7 +20,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/DatabaseJFrame.java,v 1.2 2005-06-01 11:37:04 tjc Exp $ + * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/DatabaseJFrame.java,v 1.3 2005-06-01 15:07:31 tjc Exp $ */ package uk.ac.sanger.artemis.components; @@ -37,6 +37,11 @@ import javax.swing.JSeparator; import javax.swing.JMenuBar; import javax.swing.JMenu; import javax.swing.JMenuItem; +import javax.swing.JPanel; +import javax.swing.JLabel; +import javax.swing.BorderFactory; +import javax.swing.border.Border; +import java.awt.BorderLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.MouseListener; @@ -45,11 +50,13 @@ import java.awt.event.MouseEvent; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.Cursor; +import java.awt.FontMetrics; import java.io.*; import javax.swing.tree.DefaultMutableTreeNode; public class DatabaseJFrame extends JFrame { + private JLabel status_line = new JLabel(""); public DatabaseJFrame(final DatabaseEntrySource entry_source, final ArtemisMain art_main) @@ -76,7 +83,22 @@ public class DatabaseJFrame extends JFrame setJMenuBar(makeMenuBar(entry_source,tree,art_main)); - getContentPane().add(scroll); + JPanel pane = (JPanel)getContentPane(); + pane.add(scroll, BorderLayout.CENTER); + + final FontMetrics fm = + this.getFontMetrics(status_line.getFont()); + + final int font_height = fm.getHeight()+10; + status_line.setMinimumSize(new Dimension(100, font_height)); + status_line.setPreferredSize(new Dimension(100, font_height)); + + Border loweredbevel = BorderFactory.createLoweredBevelBorder(); + Border raisedbevel = BorderFactory.createRaisedBevelBorder(); + Border compound = BorderFactory.createCompoundBorder(raisedbevel,loweredbevel); + status_line.setBorder(compound); + pane.add(status_line, BorderLayout.SOUTH); + pack(); Utilities.rightJustifyFrame(this); } @@ -93,15 +115,13 @@ public class DatabaseJFrame extends JFrame Cursor cbusy = new Cursor(Cursor.WAIT_CURSOR); Cursor cdone = new Cursor(Cursor.DEFAULT_CURSOR); - tree.setCursor(cbusy); DefaultMutableTreeNode node = entry_source.getSelectedNode(tree); - if(!node.isLeaf()) + if(node == null || !node.isLeaf()) return; + String id = entry_source.getEntryID((String)node.getUserObject()); if(id != null) - getEntryEditFromDatabase(id, entry_source, art_main); - - tree.setCursor(cdone); + getEntryEditFromDatabase(id, entry_source, tree, art_main); } @@ -112,12 +132,18 @@ public class DatabaseJFrame extends JFrame */ private void getEntryEditFromDatabase(final String id, final DatabaseEntrySource entry_source, + final JTree tree, final ArtemisMain art_main) { SwingWorker entryWorker = new SwingWorker() { public Object construct() { + Cursor cbusy = new Cursor(Cursor.WAIT_CURSOR); + Cursor cdone = new Cursor(Cursor.DEFAULT_CURSOR); + + status_line.setText("Retrieving sequence...."); + tree.setCursor(cbusy); try { final InputStreamProgressListener progress_listener = @@ -125,10 +151,15 @@ public class DatabaseJFrame extends JFrame final Entry entry = entry_source.getEntry(id, progress_listener); if(entry == null) + { + tree.setCursor(cdone); + status_line.setText("No entry."); return null; + } final EntryEdit new_entry_edit = art_main.makeEntryEdit(entry); new_entry_edit.setVisible(true); + status_line.setText("Sequence loaded."); } catch(OutOfRangeException e) { @@ -144,6 +175,7 @@ public class DatabaseJFrame extends JFrame { new MessageDialog(art_main, "read failed due to IO error: " + e); } + tree.setCursor(cdone); return null; } -- GitLab