source: osm/applications/editors/josm/plugins/rgisopen/src/rgisopen/RGISLayerFromFileAction.java@ 23351

Last change on this file since 23351 was 23351, checked in by zverik, 15 years ago

add plugin RGISOpenPlugin

File size: 1.9 KB
Line 
1package rgisopen;
2
3import static org.openstreetmap.josm.tools.I18n.tr;
4import java.awt.event.ActionEvent;
5import java.io.File;
6import java.io.IOException;
7import javax.swing.JFileChooser;
8import javax.swing.JOptionPane;
9import javax.swing.filechooser.FileFilter;
10import org.openstreetmap.josm.Main;
11import org.openstreetmap.josm.actions.JosmAction;
12
13/**
14 * Action responsible for creation of a new layer based on
15 * an image file. Based on PicLayer's NewLayerFromFileAction.
16 */
17public class RGISLayerFromFileAction extends JosmAction {
18 /**
19 * Provides filtering of only image files.
20 */
21 private class ImageFileFilter extends FileFilter {
22 @Override
23 public boolean accept( File f ) {
24 return f.isDirectory() || f.getName().endsWith(".png");
25 }
26
27 @Override
28 public String getDescription() {
29 return tr("Image files");
30 }
31 }
32
33 public RGISLayerFromFileAction() {
34 super(tr("New picture layer from RGIS..."), null, null, null, false);
35 }
36
37 public void actionPerformed( ActionEvent arg0 ) {
38 // Choose a file
39 JFileChooser fc = new JFileChooser();
40 fc.setAcceptAllFileFilterUsed(false);
41 fc.setFileFilter(new ImageFileFilter());
42 int result = fc.showOpenDialog(Main.parent);
43
44 // Create a layer?
45 if( result == JFileChooser.APPROVE_OPTION ) {
46 // Create layer from file
47 RGISPicLayer layer = new RGISPicLayer(fc.getSelectedFile());
48 // Add layer only if successfully initialized
49 try {
50 layer.initialize();
51 Main.main.addLayer(layer);
52 } catch( IOException e ) {
53 // Failed
54 System.out.println("RGISLayerFromFileAction::actionPerformed - " + e.getMessage());
55 JOptionPane.showMessageDialog(null, e.getMessage());
56 return;
57 }
58 }
59 }
60}
Note: See TracBrowser for help on using the repository browser.