Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: myComponents/myFileChooser.java


1   /* Evolvo - Image Generator
2    * Copyright (C) 2000 Andrew Molloy
3    *
4    * This program is free software; you can redistribute it and/or
5    * modify it under the terms of the GNU General Public License
6    * as published by the Free Software Foundation; either version 2
7    * of the License, or (at your option) any later version.
8   
9    * This program is distributed in the hope that it will be useful,
10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12   * GNU General Public License for more details.
13  
14   * You should have received a copy of the GNU General Public License
15   * along with this program; if not, write to the Free Software
16   * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
17   */
18  
19  package myComponents;
20  
21  import java.awt.*;
22  import javax.swing.*;
23  import settings.*;
24  import java.io.File;
25  import javax.swing.border.*;
26  import java.util.Hashtable;
27  import java.beans.*;
28  import exptree.utilities.*;
29  import utilities.*;
30  
31  public class myFileChooser extends JFileChooser
32  {
33     globalSettings settings;
34  
35     final ButtonGroup previewButtonGroup = new ButtonGroup();
36  
37     final openChooserPreviewListener openChangeListener = new openChooserPreviewListener();
38  
39     ImagePanel imgPanel;
40     imageGenerator imgG;
41  
42     Dimension maxDimensions;
43  
44     final JPanel previewPane = new JPanel();
45     final JPanel preview     = new JPanel();
46  
47     public myFileChooser()
48     {
49        super();
50        settings = new globalSettings();
51        doInit();
52     }
53  
54     public myFileChooser(File directory)
55     {
56        super(directory);
57        settings = new globalSettings();
58        doInit();
59     }
60  
61     public myFileChooser(String path)
62     {
63        super(path);
64        settings = new globalSettings();
65        doInit();
66     }
67  
68     public myFileChooser(globalSettings s)
69     {
70        super();
71        settings = s;
72        doInit();
73     }
74  
75     protected void doInit()
76     {
77         JRadioButton cmRadioButton = new JRadioButton();
78  
79         JCheckBox cmCheckBox = new JCheckBox("Show Preview");
80         cmRadioButton.setActionCommand("true");
81         cmRadioButton.setEnabled(false);
82         previewButtonGroup.add(cmCheckBox);
83         if (settings.getStringProperty("loadgenotype.preview").equals("true"))
84       {
85           previewButtonGroup.setSelected(cmCheckBox.getModel(), true);
86       }
87         previewPane.add(cmCheckBox);
88         
89         Border previewBorder = BorderFactory.createEtchedBorder();
90         preview.setBorder(BorderFactory.createTitledBorder(previewBorder, "Preview"));
91         preview.setPreferredSize(new Dimension(100,85));
92         previewPane.add(preview);
93     }
94  
95     public int showExportDialog(Component f, globalSettings settings)
96     {
97        resetChoosableFileFilters();
98        setAcceptAllFileFilterUsed(false);
99        setAccessory(null);
100 
101       String[] formats = exporter.getWriterFormatNames();
102       String[] filtered= new String[formats.length];
103       int i;
104       int j = 0;
105       int k;
106       boolean flag;
107       
108       for (i = 0; i < formats.length; i++)
109       {
110    flag = false; // No match
111    for (k = 0; k < j; k++)
112    {
113       if (formats[i].compareToIgnoreCase(filtered[k]) == 0)
114       {
115          flag = true;
116       }
117    }
118    if (!flag && (formats[i].length() == 3)) // If there is no match
119    {
120       filtered[j++] = formats[i].toLowerCase(); // add the format
121    }
122       }
123 
124       for (i = 0; i < j; i++)
125       {
126    addChoosableFileFilter(new genericFileFilter(new String[] {filtered[i]}, filtered[i]));
127       }
128 
129       return showSaveDialog(f);
130    }
131 
132    public int showSaveGeneratorDialog(Component f)
133    {
134       resetChoosableFileFilters();
135 
136       setAcceptAllFileFilterUsed(false);
137       
138       addChoosableFileFilter(new genericFileFilter(new String[] {"evo"}, "*.evo"));
139       
140       setAccessory(null);
141 
142       return showSaveDialog(f);
143    }
144 
145    public int showOpenGeneratorDialog(Component f)
146    {
147       resetChoosableFileFilters();
148 
149       setAcceptAllFileFilterUsed(false);
150       
151       addChoosableFileFilter(new genericFileFilter(new String[] {"evo"}, "*.evo"));
152       
153       setAccessory(previewPane);
154 
155       addPropertyChangeListener(openChangeListener);
156 
157       int result = showOpenDialog(f);
158 
159       removePropertyChangeListener(openChangeListener);
160 
161       if (previewButtonGroup.getSelection() != null)
162       {
163          settings.setProperty("loadgenotype.preview", "true");
164       }
165       else
166       {
167          settings.setProperty("loadgenotype.preview", "false");
168       }
169 
170       try
171       {
172          settings.storeProperties();
173       }
174       catch (Exception e)
175       {
176       }
177 
178       return result;
179    }
180 
181    public globalSettings getSettings()
182    {
183       return settings;
184    }
185 
186    class openChooserPreviewListener implements PropertyChangeListener
187    {
188       public void propertyChange(PropertyChangeEvent ce)
189       {
190          if ( ce == null )
191          {
192             return;
193          }
194          if ( ce.getPropertyName().equals("SelectedFileChangedProperty") )
195          {
196             File theFile = ((myFileChooser)(ce.getSource())).getSelectedFile();
197 
198             if (previewButtonGroup.getSelection() != null)
199             {
200                try
201                {
202                   if (imgG != null)
203                   {
204                      imgG.stop();
205                      imgG.setVisible(false);
206                      preview.remove(imgPanel);
207                   }
208                   imgG = genotypeFileIO.loadFile(((myFileChooser)(ce.getSource())).getSettings(), theFile);
209                   imgG.setImageSize(80,50);
210                   imgG.setVisible(true);
211                   imgG.startIt();
212                   imgPanel = new ImagePanel(imgG);
213                   preview.add(imgPanel);
214                   preview.validate();
215                   preview.repaint();
216                }
217                catch (Exception e)
218                {
219                }
220             }
221          }
222        }
223    }
224 }
225 
226 
227 
228