]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/function/distance/DistanceFunction.java
Version 14, October 2012
[GpsPrune.git] / tim / prune / function / distance / DistanceFunction.java
index b41ab8bc5d012469607ff552b864443707b38dfd..5fe6e7e7d9e307d901ad25c23b2a4ea021acc3d3 100644 (file)
@@ -7,6 +7,8 @@ import java.awt.FlowLayout;
 import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
 import java.util.ArrayList;
 
 import javax.swing.BorderFactory;
@@ -112,12 +114,28 @@ public class DistanceFunction extends GenericFunction
                // second table for distances
                _distModel = new DistanceTableModel();
                JTable distTable = new JTable(_distModel);
-               distTable.setAutoCreateRowSorter(true);
+               // Use reflection to call distTable.setAutoCreateRowSorter(true) which is new with Java 1.6
+               try {
+                       Class<?> d = Class.forName("javax.swing.JTable");
+                       d.getDeclaredMethod("setAutoCreateRowSorter", new Class[]{Boolean.TYPE}).invoke(distTable, Boolean.TRUE);
+               }
+               catch (Exception e) {}
                scrollPane = new JScrollPane(distTable);
                scrollPane.setPreferredSize(new Dimension(200, 250));
                mainPanel.add(scrollPane);
                dialogPanel.add(mainPanel, BorderLayout.CENTER);
 
+               // close window if escape pressed
+               KeyAdapter escListener = new KeyAdapter() {
+                       public void keyReleased(KeyEvent inE) {
+                               if (inE.getKeyCode() == KeyEvent.VK_ESCAPE) {
+                                       _dialog.dispose();
+                               }
+                       }
+               };
+               _pointTable.addKeyListener(escListener);
+               distTable.addKeyListener(escListener);
+
                // button panel at bottom
                JPanel buttonPanel = new JPanel();
                buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));