OSDN Git Service

[自動予約一覧]検索条件、録画設定の取得とファイルへの保存まで
[tainavi/TinyBannavi.git] / TinyBannavi / src / tainavi / SwingLocker.java
1 package tainavi;\r
2 \r
3 import java.awt.Dialog.ModalityType;\r
4 import java.awt.Frame;\r
5 \r
6 import javax.swing.JDialog;\r
7 import javax.swing.SwingWorker;\r
8 \r
9 /**\r
10  * {@link Locker}を{@link SwingWorker}をつかって実装\r
11  * @since 3.15.4β\r
12  */\r
13 public class SwingLocker extends Locker {\r
14 \r
15         // クラス共有設定\r
16         private static Frame ownerframe = null;\r
17         public static void setOwner(Frame owner) { ownerframe = owner; }\r
18 \r
19         private JDialog dialog;\r
20         \r
21         @Override\r
22         public void unlock() {\r
23                 dialog.setVisible(false);\r
24         }\r
25         \r
26         @Override\r
27         public boolean waitfor() {\r
28                 dialog.setVisible(true);\r
29                 return true;\r
30         }\r
31 \r
32         public SwingLocker() {\r
33                 \r
34                 super();\r
35                 \r
36                 if ( ownerframe != null ) {\r
37                         dialog = new JDialog(ownerframe);       // フォーカスが移動してしまうのが難\r
38                 }\r
39                 else {\r
40                         dialog = new JDialog();\r
41                 }\r
42                 //dialog.setModal(true);                        // モーダル\r
43                 dialog.setModalityType(ModalityType.DOCUMENT_MODAL);    // 親しかブロックしないモーダル\r
44                 dialog.setUndecorated(true);            // 見えないダイアログ\r
45                 dialog.setBounds(0,0,0,0);\r
46                 dialog.setEnabled(false);\r
47         }\r
48 }\r