From 84f4d7167d6f6f9061755887fa36cc1639b8b188 Mon Sep 17 00:00:00 2001 From: Joachim Klein Date: Sun, 28 Apr 2019 10:56:10 +0200 Subject: [PATCH] GUIMultiModelHandler: Refactor restarts of the WaitParseThread Provide restartWaitParseThread helper. --- .../model/GUIMultiModelHandler.java | 42 +++++++------------ 1 file changed, 15 insertions(+), 27 deletions(-) diff --git a/prism/src/userinterface/model/GUIMultiModelHandler.java b/prism/src/userinterface/model/GUIMultiModelHandler.java index 3cc90440..68b218b7 100644 --- a/prism/src/userinterface/model/GUIMultiModelHandler.java +++ b/prism/src/userinterface/model/GUIMultiModelHandler.java @@ -225,6 +225,17 @@ public class GUIMultiModelHandler extends JPanel implements PrismModelListener add(splitter, BorderLayout.CENTER); } + private synchronized void restartWaitParseThread() + { + if (waiter != null) { + waiter.interrupt(); + } + int parseDelay = theModel.getPrism().getSettings().getInteger(PrismSettings.MODEL_PARSE_DELAY); + waiter = new WaitParseThread(parseDelay, this); + waiter.start(); + //Funky thread waiting stuff + } + // New model... public void newPRISMModel() @@ -544,13 +555,7 @@ public class GUIMultiModelHandler extends JPanel implements PrismModelListener tree.makeNotUpToDate(); //start a new parse thread if (isAutoParse()) { - if (waiter != null) { - waiter.interrupt(); - } - int parseDelay = theModel.getPrism().getSettings().getInteger(PrismSettings.MODEL_PARSE_DELAY); - waiter = new WaitParseThread(parseDelay, this); - waiter.start(); - //Funky thread waiting stuff + restartWaitParseThread(); } } else if (buildAfterReceiveParseNotification) { buildAfterParse(); @@ -583,13 +588,7 @@ public class GUIMultiModelHandler extends JPanel implements PrismModelListener tree.makeNotUpToDate(); //start a new parse thread if (isAutoParse()) { - if (waiter != null) { - waiter.interrupt(); - } - int parseDelay = theModel.getPrism().getSettings().getInteger(PrismSettings.MODEL_PARSE_DELAY); - waiter = new WaitParseThread(parseDelay, this); - waiter.start(); - //Funky thread waiting stuff + restartWaitParseThread(); } } else { buildAfterReceiveParseNotification = false; @@ -837,13 +836,7 @@ public class GUIMultiModelHandler extends JPanel implements PrismModelListener if (!parsing) { if (isAutoParse() && attemptReparse) { - if (waiter != null) { - waiter.interrupt(); - } - int parseDelay = theModel.getPrism().getSettings().getInteger(PrismSettings.MODEL_PARSE_DELAY); - waiter = new WaitParseThread(parseDelay, this); - waiter.start(); - //Funky thread waiting stuff + restartWaitParseThread(); } } else { parseAfterParse = true; @@ -955,12 +948,7 @@ public class GUIMultiModelHandler extends JPanel implements PrismModelListener theModel.notifyEventListeners(new GUIModelEvent(GUIModelEvent.MODIFIED_SINCE_SAVE)); if (!parsing) { if (isAutoParse()) { - if (waiter != null) { - waiter.interrupt(); - } - int parseDelay = theModel.getPrism().getSettings().getInteger(PrismSettings.MODEL_PARSE_DELAY); - waiter = new WaitParseThread(parseDelay, this); - waiter.start(); + restartWaitParseThread(); } } else { parseAfterParse = true;