OSDN Git Service

キーワード検索ダイアログ等にESCキーでのキャンセル動作を追加
[tainavi/TinyBannavi.git] / TinyBannavi / src / tainavi / JListSortDialog.java
index 78114d2..4997f87 100644 (file)
@@ -15,7 +15,7 @@ import javax.swing.SpringLayout;
 import javax.swing.table.DefaultTableModel;\r
 \r
 \r
-public class JListSortDialog extends JDialog {\r
+public class JListSortDialog extends JEscCancelDialog {\r
 \r
        private static final long serialVersionUID = 1L;\r
 \r
@@ -26,6 +26,7 @@ public class JListSortDialog extends JDialog {
        private JPanel jpan = null;\r
        private JButton jbtn_update = null;\r
        private JButton jbtn_cancel = null;\r
+       private JButton jbtn_sort = null;\r
        private JButton jbtn_remove = null;\r
        private JButton jbtn_up = null;\r
        private JButton jbtn_down = null;\r
@@ -50,7 +51,9 @@ public class JListSortDialog extends JDialog {
                // タイトルバーの高さも考慮する必要がある\r
                Dimension d = jpan.getPreferredSize();\r
                this.pack();\r
-               this.setPreferredSize(new Dimension(d.width, d.height+this.getInsets().top));\r
+               this.setPreferredSize(new Dimension(\r
+                               d.width+(this.getInsets().left+this.getInsets().right),\r
+                               d.height+(this.getInsets().top+this.getInsets().bottom)));\r
                this.setResizable(false);\r
        }\r
        \r
@@ -74,6 +77,8 @@ public class JListSortDialog extends JDialog {
                        int y = 10;\r
                        CommonSwingUtils.putComponentOn(jpan, getJScr_entries(), 400, 500, 10, y);\r
                        \r
+                       CommonSwingUtils.putComponentOn(jpan, getJBtn_sort("ソート"), 100, 25, 10+400+10, y+500-(10+25)*8);\r
+                       \r
                        CommonSwingUtils.putComponentOn(jpan, getJBtn_remove("削除"), 100, 25, 10+400+10, y+500-(10+25)*4);\r
                        \r
                        CommonSwingUtils.putComponentOn(jpan, getJBtn_up("上へ"), 100, 25, 10+400+10, y+500-(10+25)*2);\r
@@ -127,6 +132,37 @@ public class JListSortDialog extends JDialog {
                return jtbl_entries;\r
        }\r
        \r
+       // ソート\r
+       private JButton getJBtn_sort(String s) {\r
+               if (jbtn_sort == null) {\r
+                       jbtn_sort = new JButton(s);\r
+                       jbtn_sort.addActionListener(new ActionListener() {\r
+                               @Override\r
+                               public void actionPerformed(ActionEvent e) {\r
+                                       ArrayList<String> tmpData = new ArrayList<String>();\r
+                                       for ( String data : rowData ) {\r
+                                               int index = 0;\r
+                                               for ( ; index<tmpData.size(); index++ ) {\r
+                                                       String tmp = tmpData.get(index);\r
+                                                       if ( tmp.compareTo(data) > 0 ) {\r
+                                                               break;\r
+                                                       }\r
+                                               }\r
+                                               tmpData.add(index,data);\r
+                                       }\r
+                                       \r
+                                       rowData.clear();\r
+                                       for ( String tmp : tmpData ) {\r
+                                               rowData.add(tmp);\r
+                                       }\r
+                                       \r
+                                       ((DefaultTableModel) jtbl_entries.getModel()).fireTableDataChanged();\r
+                               }\r
+                       });\r
+               }\r
+               return jbtn_sort;\r
+       }\r
+       \r
        // 削除\r
        private JButton getJBtn_remove(String s) {\r
                if (jbtn_remove == null) {\r
@@ -211,11 +247,17 @@ public class JListSortDialog extends JDialog {
                        jbtn_cancel.addActionListener(new ActionListener() {\r
                                @Override\r
                                public void actionPerformed(ActionEvent e) {\r
-                                       reg = false;\r
-                                       dispose();\r
+                                       doCancel();\r
                                }\r
                        });\r
                }\r
                return jbtn_cancel;\r
        }\r
+       \r
+       @Override\r
+       protected void doCancel() {\r
+               reg = false;\r
+               dispose();\r
+       }\r
+       \r
 }\r