X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJalviewFileChooser.java;h=556bb7254940ef0db86bd4477cb4b2bb15fcfcdc;hb=8b873826900aa9a453515b6055ff1976a33c1aa5;hp=b04a7051cffd33867202b7f264245b861a8c4143;hpb=5874ca652d08909c74d422552eb03a996112316d;p=jalview.git diff --git a/src/jalview/io/JalviewFileChooser.java b/src/jalview/io/JalviewFileChooser.java index b04a705..556bb72 100755 --- a/src/jalview/io/JalviewFileChooser.java +++ b/src/jalview/io/JalviewFileChooser.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -21,10 +21,11 @@ package jalview.io; import java.io.*; +import java.util.*; + import java.awt.*; -import javax.swing.*; import java.awt.event.*; -import java.util.*; +import javax.swing.*; public class JalviewFileChooser extends JFileChooser @@ -36,13 +37,37 @@ public class JalviewFileChooser setAccessory(new RecentlyOpened()); } - public JalviewFileChooser(String dir, String[] suffix, String[] desc, + public JalviewFileChooser(String dir, + String[] suffix, + String[] desc, + String selected, + boolean selectAll) + { + super(dir); + init(suffix, desc, selected, selectAll); + } + + public JalviewFileChooser(String dir, + String[] suffix, + String[] desc, String selected) { super(dir); + init(suffix, desc, selected, true); + } + + void init(String[] suffix, + String[] desc, + String selected, + boolean selectAll) + { JalviewFileFilter chosen = null; + //SelectAllFilter needs to be set first before adding further + //file filters to fix bug on Mac OSX + setAcceptAllFileFilterUsed(selectAll); + for (int i = 0; i < suffix.length; i++) { JalviewFileFilter jvf = new JalviewFileFilter(suffix[i], desc[i]); @@ -58,16 +83,17 @@ public class JalviewFileChooser { setFileFilter(chosen); } + setAccessory(new RecentlyOpened()); } - public void setFileFilter(javax.swing.filechooser.FileFilter filter) { super.setFileFilter(filter); - try{ - if(getUI() instanceof javax.swing.plaf.basic.BasicFileChooserUI) + try + { + if (getUI() instanceof javax.swing.plaf.basic.BasicFileChooserUI) { final javax.swing.plaf.basic.BasicFileChooserUI ui = (javax.swing.plaf. basic.BasicFileChooserUI) getUI(); @@ -90,15 +116,17 @@ public class JalviewFileChooser } }); } - }catch(Exception ex) + } + catch (Exception ex) { + ex.printStackTrace(); // Some platforms do not have BasicFileChooserUI } } public String getSelectedFormat() { - if(getFileFilter()==null) + if (getFileFilter() == null) { return null; } @@ -144,7 +172,7 @@ public class JalviewFileChooser setDialogType(SAVE_DIALOG); - int ret = showDialog(parent, null); + int ret = showDialog(parent, "Save"); if (getFileFilter() instanceof JalviewFileFilter) { @@ -190,10 +218,11 @@ public class JalviewFileChooser } } - setSelectedFile( file ); + setSelectedFile(file); } - class RecentlyOpened extends JPanel + class RecentlyOpened + extends JPanel { JList list; public RecentlyOpened() @@ -213,29 +242,35 @@ public class JalviewFileChooser } list = new JList(recent); + + DefaultListCellRenderer dlcr = new DefaultListCellRenderer(); + dlcr.setHorizontalAlignment(DefaultListCellRenderer.RIGHT); + list.setCellRenderer(dlcr); + list.addMouseListener(new MouseAdapter() - { - public void mousePressed(MouseEvent evt) - { - recentListSelectionChanged(list.getSelectedValue().toString()); - } - }); + { + public void mousePressed(MouseEvent evt) + { + recentListSelectionChanged(list.getSelectedValue().toString()); + } + }); this.setBorder(new javax.swing.border.TitledBorder("Recently Opened")); - JScrollPane scroller = new JScrollPane(list); - scroller.setPreferredSize(new Dimension(250, 200)); + final JScrollPane scroller = new JScrollPane(list); + scroller.setPreferredSize(new Dimension(130, 200)); this.add(scroller); - scroller.getHorizontalScrollBar() - .setValue(scroller.getHorizontalScrollBar().getMaximum() - ); + + javax.swing.SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + scroller.getHorizontalScrollBar().setValue( + scroller.getHorizontalScrollBar().getMaximum()); + } + }); } } } - - - - -