diff --git a/G-Earth/src/main/java/gearth/extensions/InternalExtensionFormBuilder.java b/G-Earth/src/main/java/gearth/extensions/InternalExtensionFormBuilder.java deleted file mode 100644 index e7b65be..0000000 --- a/G-Earth/src/main/java/gearth/extensions/InternalExtensionFormBuilder.java +++ /dev/null @@ -1,80 +0,0 @@ -package gearth.extensions; - -import gearth.GEarth; -import gearth.services.extension_handler.extensions.GEarthExtension; -import gearth.services.extension_handler.extensions.extensionproducers.ExtensionProducerObserver; -import javafx.application.Platform; -import javafx.stage.Stage; - -public class InternalExtensionFormBuilder, T extends ExtensionForm> { - - public T launch(L launcher, ExtensionProducerObserver observer) { - try { - Stage stage = new Stage(); - T extensionForm = launcher.createForm(stage); - - ExtensionInfo extInfo = extensionForm.getClass().getAnnotation(ExtensionInfo.class); - - InternalExtension internalExtension = new InternalExtension() { - @Override - protected void initExtension() { - extensionForm.initExtension(); - } - - @Override - protected void onClick() { - extensionForm.onClick(); - } - - @Override - protected void onStartConnection() { - extensionForm.onStartConnection(); - } - - @Override - protected void onEndConnection() { - extensionForm.onEndConnection(); - } - - @Override - protected ExtensionInfo getInfoAnnotations() { - return extInfo; - } - - @Override - protected boolean canLeave() { - return extensionForm.canLeave(); - } - - @Override - protected boolean canDelete() { - return extensionForm.canDelete(); - } - }; - extensionForm.hostServices = GEarth.main.getHostServices(); - extensionForm.extension = internalExtension; - extensionForm.primaryStage = stage; - - extensionForm.fieldsInitialized.fireEvent(); - GEarthExtension gEarthExtension = new InternalExtensionBuilder(internalExtension); - observer.onExtensionProduced(gEarthExtension); - - - Platform.setImplicitExit(false); - - stage.setOnCloseRequest(event -> { - event.consume(); - Platform.runLater(() -> { - stage.hide(); - extensionForm.onHide(); - }); - }); - - return extensionForm; - } catch (Exception e) { - e.printStackTrace(); - } - - return null; - } -} diff --git a/G-Earth/src/main/java/gearth/extensions/InternalExtensionFormCreator.java b/G-Earth/src/main/java/gearth/extensions/InternalExtensionFormCreator.java new file mode 100644 index 0000000..8637227 --- /dev/null +++ b/G-Earth/src/main/java/gearth/extensions/InternalExtensionFormCreator.java @@ -0,0 +1,10 @@ +package gearth.extensions; + +import javafx.stage.Stage; + +public abstract class InternalExtensionFormCreator { + + // creates an ExtensionForm object and initializes the JavaFX application + public abstract T createForm(Stage primaryStage) throws Exception; + +} diff --git a/G-Earth/src/main/java/gearth/extensions/InternalExtensionFormLauncher.java b/G-Earth/src/main/java/gearth/extensions/InternalExtensionFormLauncher.java index a6a2d74..ecb8ff2 100644 --- a/G-Earth/src/main/java/gearth/extensions/InternalExtensionFormLauncher.java +++ b/G-Earth/src/main/java/gearth/extensions/InternalExtensionFormLauncher.java @@ -1,10 +1,80 @@ package gearth.extensions; +import gearth.GEarth; +import gearth.services.extension_handler.extensions.GEarthExtension; +import gearth.services.extension_handler.extensions.extensionproducers.ExtensionProducerObserver; +import javafx.application.Platform; import javafx.stage.Stage; -public abstract class InternalExtensionFormLauncher { +public class InternalExtensionFormLauncher, T extends ExtensionForm> { - // creates an ExtensionForm object and initializes the JavaFX application - public abstract T createForm(Stage primaryStage) throws Exception; + public T launch(L launcher, ExtensionProducerObserver observer) { + try { + Stage stage = new Stage(); + T extensionForm = launcher.createForm(stage); + ExtensionInfo extInfo = extensionForm.getClass().getAnnotation(ExtensionInfo.class); + + InternalExtension internalExtension = new InternalExtension() { + @Override + protected void initExtension() { + extensionForm.initExtension(); + } + + @Override + protected void onClick() { + extensionForm.onClick(); + } + + @Override + protected void onStartConnection() { + extensionForm.onStartConnection(); + } + + @Override + protected void onEndConnection() { + extensionForm.onEndConnection(); + } + + @Override + protected ExtensionInfo getInfoAnnotations() { + return extInfo; + } + + @Override + protected boolean canLeave() { + return extensionForm.canLeave(); + } + + @Override + protected boolean canDelete() { + return extensionForm.canDelete(); + } + }; + extensionForm.hostServices = GEarth.main.getHostServices(); + extensionForm.extension = internalExtension; + extensionForm.primaryStage = stage; + + extensionForm.fieldsInitialized.fireEvent(); + GEarthExtension gEarthExtension = new InternalExtensionBuilder(internalExtension); + observer.onExtensionProduced(gEarthExtension); + + + Platform.setImplicitExit(false); + + stage.setOnCloseRequest(event -> { + event.consume(); + Platform.runLater(() -> { + stage.hide(); + extensionForm.onHide(); + }); + }); + + return extensionForm; + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } } diff --git a/G-Earth/src/main/java/gearth/services/extension_handler/extensions/implementations/simple/SimpleExtensionProducer.java b/G-Earth/src/main/java/gearth/services/extension_handler/extensions/implementations/simple/SimpleExtensionProducer.java index 07219a5..c9b3cf0 100644 --- a/G-Earth/src/main/java/gearth/services/extension_handler/extensions/implementations/simple/SimpleExtensionProducer.java +++ b/G-Earth/src/main/java/gearth/services/extension_handler/extensions/implementations/simple/SimpleExtensionProducer.java @@ -1,10 +1,10 @@ package gearth.services.extension_handler.extensions.implementations.simple; -import gearth.extensions.InternalExtensionFormBuilder; +import gearth.extensions.InternalExtensionFormLauncher; import gearth.services.extension_handler.extensions.extensionproducers.ExtensionProducer; import gearth.services.extension_handler.extensions.extensionproducers.ExtensionProducerObserver; import gearth.services.internal_extensions.extensionstore.GExtensionStore; -import gearth.services.internal_extensions.extensionstore.GExtensionStoreLauncher; +import gearth.services.internal_extensions.extensionstore.GExtensionStoreCreator; public class SimpleExtensionProducer implements ExtensionProducer { @@ -14,8 +14,8 @@ public class SimpleExtensionProducer implements ExtensionProducer { // uncomment the next line if you want to see an embedded example extension in G-Earth // observer.onExtensionProduced(new ExampleExtension()); - new InternalExtensionFormBuilder() - .launch(new GExtensionStoreLauncher(), observer); + new InternalExtensionFormLauncher() + .launch(new GExtensionStoreCreator(), observer); } } diff --git a/G-Earth/src/main/java/gearth/services/internal_extensions/extensionstore/GExtensionStoreLauncher.java b/G-Earth/src/main/java/gearth/services/internal_extensions/extensionstore/GExtensionStoreCreator.java similarity index 91% rename from G-Earth/src/main/java/gearth/services/internal_extensions/extensionstore/GExtensionStoreLauncher.java rename to G-Earth/src/main/java/gearth/services/internal_extensions/extensionstore/GExtensionStoreCreator.java index ed136f8..c5df82e 100644 --- a/G-Earth/src/main/java/gearth/services/internal_extensions/extensionstore/GExtensionStoreLauncher.java +++ b/G-Earth/src/main/java/gearth/services/internal_extensions/extensionstore/GExtensionStoreCreator.java @@ -1,7 +1,7 @@ package gearth.services.internal_extensions.extensionstore; import gearth.GEarth; -import gearth.extensions.InternalExtensionFormLauncher; +import gearth.extensions.InternalExtensionFormCreator; import gearth.services.internal_extensions.extensionstore.application.GExtensionStoreController; import gearth.ui.GEarthController; import javafx.fxml.FXMLLoader; @@ -10,7 +10,7 @@ import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.stage.Stage; -public class GExtensionStoreLauncher extends InternalExtensionFormLauncher { +public class GExtensionStoreCreator extends InternalExtensionFormCreator { @Override public GExtensionStore createForm(Stage stage) throws Exception { diff --git a/G-Earth/src/main/java/gearth/services/internal_extensions/uilogger/UiLoggerLauncher.java b/G-Earth/src/main/java/gearth/services/internal_extensions/uilogger/UiLoggerCreator.java similarity index 84% rename from G-Earth/src/main/java/gearth/services/internal_extensions/uilogger/UiLoggerLauncher.java rename to G-Earth/src/main/java/gearth/services/internal_extensions/uilogger/UiLoggerCreator.java index 0048ce2..43f43ce 100644 --- a/G-Earth/src/main/java/gearth/services/internal_extensions/uilogger/UiLoggerLauncher.java +++ b/G-Earth/src/main/java/gearth/services/internal_extensions/uilogger/UiLoggerCreator.java @@ -1,9 +1,6 @@ package gearth.services.internal_extensions.uilogger; -import gearth.GEarth; -import gearth.extensions.InternalExtensionFormLauncher; -import gearth.ui.titlebar.DefaultTitleBarConfig; -import gearth.ui.titlebar.TitleBarController; +import gearth.extensions.InternalExtensionFormCreator; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; @@ -11,7 +8,7 @@ import javafx.scene.image.Image; import javafx.stage.Modality; import javafx.stage.Stage; -public class UiLoggerLauncher extends InternalExtensionFormLauncher { +public class UiLoggerCreator extends InternalExtensionFormCreator { @Override public UiLogger createForm(Stage stage) throws Exception { UiLogger uiLogger = new UiLogger(); diff --git a/G-Earth/src/main/java/gearth/ui/subforms/logger/loggerdisplays/PacketLoggerFactory.java b/G-Earth/src/main/java/gearth/ui/subforms/logger/loggerdisplays/PacketLoggerFactory.java index b4c93a9..1a190b8 100644 --- a/G-Earth/src/main/java/gearth/ui/subforms/logger/loggerdisplays/PacketLoggerFactory.java +++ b/G-Earth/src/main/java/gearth/ui/subforms/logger/loggerdisplays/PacketLoggerFactory.java @@ -1,13 +1,13 @@ package gearth.ui.subforms.logger.loggerdisplays; import gearth.GEarth; -import gearth.extensions.InternalExtensionFormBuilder; +import gearth.extensions.InternalExtensionFormLauncher; import gearth.misc.OSValidator; import gearth.services.extension_handler.ExtensionHandler; import gearth.services.extension_handler.extensions.extensionproducers.ExtensionProducer; import gearth.services.extension_handler.extensions.extensionproducers.ExtensionProducerObserver; import gearth.services.internal_extensions.uilogger.UiLogger; -import gearth.services.internal_extensions.uilogger.UiLoggerLauncher; +import gearth.services.internal_extensions.uilogger.UiLoggerCreator; /** * Created by Jonas on 04/04/18. @@ -40,8 +40,8 @@ public class PacketLoggerFactory implements ExtensionProducer { @Override public void startProducing(ExtensionProducerObserver observer) { if (usesUIlogger()) { - uiLogger = new InternalExtensionFormBuilder() - .launch(new UiLoggerLauncher(), observer); + uiLogger = new InternalExtensionFormLauncher() + .launch(new UiLoggerCreator(), observer); } } }