OSDN Git Service

transfer init log in EDT.
authorOlyutorskii <olyutorskii@users.osdn.me>
Tue, 21 Apr 2020 12:59:48 +0000 (21:59 +0900)
committerOlyutorskii <olyutorskii@users.osdn.me>
Tue, 21 Apr 2020 12:59:48 +0000 (21:59 +0900)
src/main/java/jp/sfjp/jindolf/Controller.java
src/main/java/jp/sfjp/jindolf/log/LogFrame.java
src/main/java/jp/sfjp/jindolf/log/LogPanel.java

index e41dcb8..7b874a1 100644 (file)
@@ -188,7 +188,9 @@ public class Controller
         filterPanel.addChangeListener(this.filterWatcher);
 
         Handler newHandler = logFrame.getHandler();
-        LogUtils.switchHandler(newHandler);
+        EventQueue.invokeLater(() -> {
+            LogUtils.switchHandler(newHandler);
+        });
 
         ConfigStore config = this.appSetting.getConfigStore();
 
index 74f0adf..33de96f 100644 (file)
@@ -7,6 +7,7 @@
 
 package jp.sfjp.jindolf.log;
 
+import io.github.olyutorskii.quetexj.HeightKeeper;
 import io.github.olyutorskii.quetexj.MaxTracker;
 import io.github.olyutorskii.quetexj.MvcFacade;
 import java.awt.Container;
@@ -68,6 +69,9 @@ public final class LogFrame extends JDialog {
         MaxTracker tracker = this.facade.getMaxTracker();
         tracker.setTrackingMode(true);
 
+        HeightKeeper keeper = this.facade.getHeightKeeper();
+        keeper.setConditions(5000, 4000);
+
         setResizable(true);
         setLocationByPlatform(true);
         setModal(false);
index f891039..71f638a 100644 (file)
@@ -17,10 +17,7 @@ import javax.swing.JScrollBar;
 import javax.swing.JScrollPane;
 import javax.swing.JTextArea;
 import javax.swing.border.Border;
-import javax.swing.event.AncestorEvent;
-import javax.swing.event.AncestorListener;
 import javax.swing.text.Document;
-import javax.swing.text.PlainDocument;
 import jp.sfjp.jindolf.dxchg.TextPopup;
 import jp.sfjp.jindolf.util.Monodizer;
 
@@ -32,9 +29,6 @@ import jp.sfjp.jindolf.util.Monodizer;
 @SuppressWarnings("serial")
 public final class LogPanel extends JScrollPane {
 
-    private static final Document DOC_EMPTY = new PlainDocument();
-
-
     private final JTextArea textarea;
     private final Document document;
     private final Handler handler;
@@ -57,7 +51,6 @@ public final class LogPanel extends JScrollPane {
             this.handler = null;
         }
 
-        this.textarea.setDocument(DOC_EMPTY);
         this.textarea.setEditable(false);
         this.textarea.setLineWrap(true);
         Monodizer.monodize(this.textarea);
@@ -74,9 +67,6 @@ public final class LogPanel extends JScrollPane {
         BoundedRangeModel rangeModel = facade.getVerticalBoundedRangeModel();
         vbar.setModel(rangeModel);
 
-        AncestorListener ancestorListener = new AncestorWatcher();
-        addAncestorListener(ancestorListener);
-
         return;
     }
 
@@ -88,68 +78,4 @@ public final class LogPanel extends JScrollPane {
         return this.handler;
     }
 
-    /**
-     * モデルとビューを連携させる。
-     */
-    private void attachModel(){
-        if(this.textarea.getDocument() != this.document){
-            this.textarea.setDocument(this.document);
-        }
-        return;
-    }
-
-    /**
-     * モデルとビューを切り離す。
-     */
-    private void detachModel(){
-        if(this.textarea.getDocument() == DOC_EMPTY) return;
-        this.textarea.setDocument(DOC_EMPTY);
-        return;
-    }
-
-
-    /**
-     * 画面更新が必要な状態か監視し、必要に応じてモデルとビューを切り離す。
-     */
-    private final class AncestorWatcher implements AncestorListener{
-
-        /**
-         * コンストラクタ。
-         */
-        AncestorWatcher(){
-            super();
-            return;
-        }
-
-        /**
-         * {@inheritDoc}
-         * @param event {@inheritDoc}
-         */
-        @Override
-        public void ancestorAdded(AncestorEvent event){
-            attachModel();
-            return;
-        }
-
-        /**
-         * {@inheritDoc}
-         * @param event {@inheritDoc}
-         */
-        @Override
-        public void ancestorRemoved(AncestorEvent event){
-            detachModel();
-            return;
-        }
-
-        /**
-         * {@inheritDoc}
-         * @param event {@inheritDoc}
-         */
-        @Override
-        public void ancestorMoved(AncestorEvent event){
-            return;
-        }
-
-    }
-
 }