diff --git a/src/main/java/org/nwapw/abacus/fx/AbacusController.java b/src/main/java/org/nwapw/abacus/fx/AbacusController.java index 5597784..2a0ebd5 100644 --- a/src/main/java/org/nwapw/abacus/fx/AbacusController.java +++ b/src/main/java/org/nwapw/abacus/fx/AbacusController.java @@ -255,13 +255,7 @@ public class AbacusController implements PluginListener { abacus = new Abacus(new Configuration(CONFIG_FILE)); PluginManager abacusPluginManager = abacus.getPluginManager(); abacusPluginManager.addListener(this); - abacusPluginManager.addInstantiated(new StandardPlugin(abacus.getPluginManager())); - try { - ClassFinder.loadJars("plugins").forEach(abacusPluginManager::addClass); - } catch (IOException | ClassNotFoundException e) { - e.printStackTrace(); - } - abacusPluginManager.reload(); + performScan(); computationLimitField.setText(Double.toString(abacus.getConfiguration().getComputationDelay())); computationLimitField.textProperty().addListener((observable, oldValue, newValue) -> { @@ -311,6 +305,19 @@ public class AbacusController implements PluginListener { reloadAlertShown = false; } + @FXML + public void performScan(){ + PluginManager abacusPluginManager = abacus.getPluginManager(); + abacusPluginManager.removeAll(); + abacusPluginManager.addInstantiated(new StandardPlugin(abacus.getPluginManager())); + try { + ClassFinder.loadJars("plugins").forEach(abacusPluginManager::addClass); + } catch (IOException | ClassNotFoundException e) { + e.printStackTrace(); + } + abacusPluginManager.reload(); + } + @FXML public void performReload() { alertIfApplyNeeded(true); diff --git a/src/main/resources/abacus.fxml b/src/main/resources/abacus.fxml index 63b144a..99f6022 100644 --- a/src/main/resources/abacus.fxml +++ b/src/main/resources/abacus.fxml @@ -57,6 +57,7 @@