OSDN Git Service

過去ログの時刻入力欄のenable/disable判定を正しくする
authoryukihane <yukihane.feather@gmail.com>
Tue, 30 Aug 2011 07:50:09 +0000 (16:50 +0900)
committeryukihane <yukihane.feather@gmail.com>
Tue, 30 Aug 2011 07:50:09 +0000 (16:50 +0900)
frontend/src/yukihane/inqubus/gui/MainFrame.java

index ea88a85..56e6fc5 100644 (file)
@@ -15,6 +15,8 @@ import java.awt.event.ActionListener;
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
 import java.awt.event.KeyEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
 import java.io.File;
 import java.io.FilenameFilter;
 import java.io.IOException;
@@ -119,6 +121,27 @@ public class MainFrame extends JFrame {
         fldVideo.setToolTipText(FILE_INPUTFIELD_TOOLTIP);
         btnVideo = new JButton();
         final JLabel lblComment = new JLabel();
+
+        fldBackLog.setToolTipText("YYYY/MM/DD hh:mm:ss形式、あるいは1970/01/01からの経過秒を入力します。");
+        cbBackLog.addItemListener(new ItemListener() {
+
+            @Override
+            public void itemStateChanged(ItemEvent e) {
+                final boolean selected = (e.getStateChange() == ItemEvent.SELECTED);
+                fldBackLog.setEnabled(selected);
+            }
+        });
+        cbBackLog.addPropertyChangeListener("enabled", new PropertyChangeListener() {
+
+            @Override
+            public void propertyChange(PropertyChangeEvent evt) {
+                final boolean enabled = ((Boolean) evt.getNewValue()).booleanValue();
+                final boolean fldEnabled = enabled ? cbBackLog.isSelected() : false;
+                fldBackLog.setEnabled(fldEnabled);
+            }
+        });
+        cbBackLogReduce.setToolTipText("「コメントの量を減らす」場合はチェックを付けます。");
+
         cbCommentLocal = new JCheckBox();
         cbCommentLocal.setToolTipText(FILE_LOCALBUTTON_TOOLTIP);
         cbCommentLocal.addItemListener(new ItemListener() {
@@ -128,9 +151,6 @@ public class MainFrame extends JFrame {
                 final boolean selected = (e.getStateChange() == ItemEvent.SELECTED);
                 cbBackLogReduce.setEnabled(!selected);
                 cbBackLog.setEnabled(!selected);
-                if(selected) {
-                    cbBackLog.setSelected(false);
-                }
             }
         });
         fldComment = new JTextField();
@@ -524,17 +544,7 @@ public class MainFrame extends JFrame {
 
         fldId.setText("");
         fldBackLog.setEnabled(false);
-        fldBackLog.setToolTipText("YYYY/MM/DD hh:mm:ss形式、あるいは1970/01/01からの経過秒を入力します。");
         cbBackLog.setEnabled(true);
-        cbBackLog.addItemListener(new ItemListener() {
-
-            @Override
-            public void itemStateChanged(ItemEvent e) {
-                final boolean selected = (e.getStateChange() == ItemEvent.SELECTED);
-                fldBackLog.setEnabled(selected);
-            }
-        });
-        cbBackLogReduce.setToolTipText("「コメントの量を減らす」場合はチェックを付けます。");
 
         final boolean movieLocal = p.getVideoUseLocal();
         cbVideoLocal.setSelected(movieLocal);