From 641c5ffd0a5d655f1570aa76157e184e09ca5802 Mon Sep 17 00:00:00 2001 From: nelsonnew Date: Mon, 7 Nov 2022 15:56:29 +0100 Subject: [PATCH] #1454 Possible to open GUI through Eclipse Plugin; Window Title & Icon added --- .../cobigen-eclipse-feature/pom.xml | 1 - cobigen-eclipse/cobigen-eclipse-test/pom.xml | 1 - .../cobigen/eclipse/test/OpenGUITest.java | 59 ++++++++++++++++++ .../common/utils/EclipseCobiGenUtils.java | 22 +++++++ .../cobigen-eclipse/META-INF/MANIFEST.MF | 11 +++- .../cobigen-eclipse/build.properties | 11 +++- cobigen-eclipse/cobigen-eclipse/plugin.xml | 2 +- cobigen-eclipse/cobigen-eclipse/pom.xml | 2 - .../handler/ManageTemplateSetsHandler.java | 17 +++-- cobigen-eclipse/pom.xml | 1 + cobigen-gui/gui/.classpath | 5 ++ .../java/com/devonfw/cobigen/gui/App.java | 11 ++-- .../com/devonfw/cobigen/gui/AppLauncher.java | 24 +++---- .../devonfw/cobigen/gui/icons/devon-icon.jpg | Bin 0 -> 12644 bytes .../com/devonfw/cobigen/gui/primary.fxml | 2 +- .../com/devonfw/cobigen/gui/styles.css | 0 16 files changed, 135 insertions(+), 34 deletions(-) create mode 100644 cobigen-eclipse/cobigen-eclipse-test/src/main/java/com/devonfw/cobigen/eclipse/test/OpenGUITest.java create mode 100644 cobigen-gui/gui/src/main/resources/com/devonfw/cobigen/gui/icons/devon-icon.jpg rename cobigen-gui/gui/src/main/{java => resources}/com/devonfw/cobigen/gui/styles.css (100%) diff --git a/cobigen-eclipse/cobigen-eclipse-feature/pom.xml b/cobigen-eclipse/cobigen-eclipse-feature/pom.xml index 8e02f39315..706e825c4a 100644 --- a/cobigen-eclipse/cobigen-eclipse-feature/pom.xml +++ b/cobigen-eclipse/cobigen-eclipse-feature/pom.xml @@ -14,7 +14,6 @@ false - true diff --git a/cobigen-eclipse/cobigen-eclipse-test/pom.xml b/cobigen-eclipse/cobigen-eclipse-test/pom.xml index 2f18ede16e..9d7d23bbd7 100644 --- a/cobigen-eclipse/cobigen-eclipse-test/pom.xml +++ b/cobigen-eclipse/cobigen-eclipse-test/pom.xml @@ -12,7 +12,6 @@ ${surefireArgLineIntegration} -Xms512m -Xmx2048m -XX:+DisableExplicitGC - true diff --git a/cobigen-eclipse/cobigen-eclipse-test/src/main/java/com/devonfw/cobigen/eclipse/test/OpenGUITest.java b/cobigen-eclipse/cobigen-eclipse-test/src/main/java/com/devonfw/cobigen/eclipse/test/OpenGUITest.java new file mode 100644 index 0000000000..bea75c98c4 --- /dev/null +++ b/cobigen-eclipse/cobigen-eclipse-test/src/main/java/com/devonfw/cobigen/eclipse/test/OpenGUITest.java @@ -0,0 +1,59 @@ +package com.devonfw.cobigen.eclipse.test; + +import java.io.File; + +import org.apache.commons.io.FileUtils; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; + +import com.devonfw.cobigen.eclipse.test.common.SystemTest; +import com.devonfw.cobigen.eclipse.test.common.utils.EclipseCobiGenUtils; +import com.devonfw.cobigen.eclipse.test.common.utils.EclipseUtils; + +/** + * Class for testing Manage Template Sets with a click on the Home Button + * + */ +@RunWith(SWTBotJunit4ClassRunner.class) +public class OpenGUITest extends SystemTest { + + /** Root path of the Test Resources */ + private static final String resourcesRootPath = "src/main/resources/OpenAPITest/"; + + /** + * Setup workbench appropriately for tests + * + * @throws Exception test fails + */ + @BeforeClass + public static void setupClass() throws Exception { + + EclipseUtils.cleanWorkspace(bot, true); + } + + /** + * Testing to open the Template Set Management GUI and clicking Home Button + * + * @throws Exception test fails + */ + @Test + public void testOpenTemplateSetManagementGUI() throws Exception { + + // copy sample project to external location and import it into the workspace + String testProjName = "ExtTestProj"; + IJavaProject project = this.tmpMavenProjectRule.createProject(testProjName); + FileUtils.copyFile(new File(resourcesRootPath + "input/adapt-templates.yml"), + project.getUnderlyingResource().getLocation().append("adapt-templates.yml").toFile()); + project.getProject().refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); + this.tmpMavenProjectRule.updateProject(); + + // open GUI + EclipseCobiGenUtils.runAndCaptureManageTemplateSets(bot); + } + +} diff --git a/cobigen-eclipse/cobigen-eclipse-test/src/main/java/com/devonfw/cobigen/eclipse/test/common/utils/EclipseCobiGenUtils.java b/cobigen-eclipse/cobigen-eclipse-test/src/main/java/com/devonfw/cobigen/eclipse/test/common/utils/EclipseCobiGenUtils.java index 0bd01c5ee6..d9a44afa69 100644 --- a/cobigen-eclipse/cobigen-eclipse-test/src/main/java/com/devonfw/cobigen/eclipse/test/common/utils/EclipseCobiGenUtils.java +++ b/cobigen-eclipse/cobigen-eclipse-test/src/main/java/com/devonfw/cobigen/eclipse/test/common/utils/EclipseCobiGenUtils.java @@ -404,6 +404,28 @@ public static void runAndCaptureAdaptTemplates(SWTWorkbenchBot bot) throws Excep informationDialog.bot().button("Ok").click(); } + /** + * Checks the CobiGen Manage Template Sets and takes screenshots of it. + * + * @param bot to process the Manage Template Sets command + * @throws Exception test fails + */ + public static void runAndCaptureManageTemplateSets(SWTWorkbenchBot bot) throws Exception { + + ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor()); + bot.waitUntil(new AllJobsAreFinished(), DEFAULT_TIMEOUT); // build might take some time + + SWTBotView view = bot.viewById(JavaUI.ID_PACKAGES); + view.bot().tree().contextMenu("CobiGen").menu("Manage Template Sets...").click(); + bot.waitUntil(new AnyShellIsActive("Template Set Manager"), DEFAULT_TIMEOUT); + + takeScreenshot(bot, "Template Set Manager"); + SWTBotShell gui = bot.shell("Template Set Manager"); + // TODO + gui.bot().button("#").click(); + + } + /** * Takes a screenshot (*.jpeg) of the current screen encoding test method and class and appends the given identifier * to the file name diff --git a/cobigen-eclipse/cobigen-eclipse/META-INF/MANIFEST.MF b/cobigen-eclipse/cobigen-eclipse/META-INF/MANIFEST.MF index 15712fc71c..34835a1d87 100644 --- a/cobigen-eclipse/cobigen-eclipse/META-INF/MANIFEST.MF +++ b/cobigen-eclipse/cobigen-eclipse/META-INF/MANIFEST.MF @@ -66,6 +66,15 @@ Bundle-ClassPath: ., lib/paranamer.jar, lib/slf4j-api.jar, lib/txw2.jar, - lib/zt-exec.jar + lib/zt-exec.jar, + lib/gui.jar, + lib/javafx-base.jar, + lib/javafx-base-win.jar, + lib/javafx-controls.jar, + lib/javafx-controls-win.jar, + lib/javafx-fxml.jar, + lib/javafx-fxml-win.jar, + lib/javafx-graphics.jar, + lib/javafx-graphics-win.jar Export-Package: com.devonfw.cobigen.eclipse.common.constants.external, com.devonfw.cobigen.eclipse.common.tools diff --git a/cobigen-eclipse/cobigen-eclipse/build.properties b/cobigen-eclipse/cobigen-eclipse/build.properties index 64d6a6e2a5..3637ba0744 100644 --- a/cobigen-eclipse/cobigen-eclipse/build.properties +++ b/cobigen-eclipse/cobigen-eclipse/build.properties @@ -49,4 +49,13 @@ bin.includes = .,\ lib/paranamer.jar,\ lib/slf4j-api.jar,\ lib/txw2.jar,\ - lib/zt-exec.jar + lib/zt-exec.jar,\ + lib/gui.jar,\ + lib/javafx-base.jar,\ + lib/javafx-base-win.jar,\ + lib/javafx-controls.jar,\ + lib/javafx-controls-win.jar,\ + lib/javafx-fxml.jar,\ + lib/javafx-fxml-win.jar,\ + lib/javafx-graphics.jar,\ + lib/javafx-graphics-win.jar diff --git a/cobigen-eclipse/cobigen-eclipse/plugin.xml b/cobigen-eclipse/cobigen-eclipse/plugin.xml index c5deb9d123..d8d6e14612 100644 --- a/cobigen-eclipse/cobigen-eclipse/plugin.xml +++ b/cobigen-eclipse/cobigen-eclipse/plugin.xml @@ -20,7 +20,7 @@ name="Adapt Template"> diff --git a/cobigen-eclipse/cobigen-eclipse/pom.xml b/cobigen-eclipse/cobigen-eclipse/pom.xml index 732aa69a4d..eff89f5c1a 100644 --- a/cobigen-eclipse/cobigen-eclipse/pom.xml +++ b/cobigen-eclipse/cobigen-eclipse/pom.xml @@ -13,8 +13,6 @@ false - false - true diff --git a/cobigen-eclipse/cobigen-eclipse/src/com/devonfw/cobigen/eclipse/workbenchcontrol/handler/ManageTemplateSetsHandler.java b/cobigen-eclipse/cobigen-eclipse/src/com/devonfw/cobigen/eclipse/workbenchcontrol/handler/ManageTemplateSetsHandler.java index 2abc107d65..aa88164524 100644 --- a/cobigen-eclipse/cobigen-eclipse/src/com/devonfw/cobigen/eclipse/workbenchcontrol/handler/ManageTemplateSetsHandler.java +++ b/cobigen-eclipse/cobigen-eclipse/src/com/devonfw/cobigen/eclipse/workbenchcontrol/handler/ManageTemplateSetsHandler.java @@ -5,15 +5,13 @@ import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; -import org.eclipse.core.runtime.IPath; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.devonfw.cobigen.eclipse.common.tools.ResourcesPluginUtil; import com.devonfw.cobigen.gui.AppLauncher; /** - * TODO nneuhaus This type ... + * Handler for the Package-Explorer Event * */ public class ManageTemplateSetsHandler extends AbstractHandler { @@ -23,12 +21,10 @@ public class ManageTemplateSetsHandler extends AbstractHandler { */ private static final Logger LOG = LoggerFactory.getLogger(ManageTemplateSetsHandler.class); - public AppLauncher launcher; - /** - * Location of workspace root + * Launcher for GUI */ - IPath ws = ResourcesPluginUtil.getWorkspaceLocation(); + public AppLauncher launcher; @Override public Object execute(ExecutionEvent event) throws ExecutionException { @@ -38,12 +34,15 @@ public Object execute(ExecutionEvent event) throws ExecutionException { try { wait(1337); } catch (InterruptedException e) { - // TODO Auto-generated catch block e.printStackTrace(); } while (this.launcher.app.window.isShowing()) { - TimeUnit.SECONDS.sleep(1); + try { + TimeUnit.SECONDS.sleep(1); + } catch (InterruptedException e) { + e.printStackTrace(); + } } return null; diff --git a/cobigen-eclipse/pom.xml b/cobigen-eclipse/pom.xml index 2ec7ef8031..638c25a381 100644 --- a/cobigen-eclipse/pom.xml +++ b/cobigen-eclipse/pom.xml @@ -15,6 +15,7 @@ https://oss.sonatype.org/content/groups/public/ https://download.eclipse.org/releases/photon + 11 diff --git a/cobigen-gui/gui/.classpath b/cobigen-gui/gui/.classpath index 32ea7d01ae..7bc6c5ddac 100644 --- a/cobigen-gui/gui/.classpath +++ b/cobigen-gui/gui/.classpath @@ -23,5 +23,10 @@ + + + + + diff --git a/cobigen-gui/gui/src/main/java/com/devonfw/cobigen/gui/App.java b/cobigen-gui/gui/src/main/java/com/devonfw/cobigen/gui/App.java index e521693463..304871c0c1 100644 --- a/cobigen-gui/gui/src/main/java/com/devonfw/cobigen/gui/App.java +++ b/cobigen-gui/gui/src/main/java/com/devonfw/cobigen/gui/App.java @@ -7,6 +7,7 @@ import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; +import javafx.scene.image.Image; import javafx.stage.Stage; public class App extends Application { @@ -53,10 +54,15 @@ public void start(Stage stage) throws IOException { scene = new Scene(loadFXML("primary")); scene.getStylesheets().add(getClass().getResource("styles.css").toExternalForm()); + Image image = new Image(App.class.getResource("icons/devon-icon.jpg").toExternalForm()); + this.window.getIcons().add(image); + this.window.setTitle("Template Set Manager"); + this.window.setScene(scene); this.window.showAndWait(); // stage.setScene(scene); // stage.show(); + } static void setRoot(String fxml) throws IOException { @@ -70,9 +76,4 @@ private static Parent loadFXML(String fxml) throws IOException { return fxmlLoader.load(); } - public static void main(String[] args) { - - launch(); - } - } diff --git a/cobigen-gui/gui/src/main/java/com/devonfw/cobigen/gui/AppLauncher.java b/cobigen-gui/gui/src/main/java/com/devonfw/cobigen/gui/AppLauncher.java index 9d13004e7a..fc1d6fe284 100644 --- a/cobigen-gui/gui/src/main/java/com/devonfw/cobigen/gui/AppLauncher.java +++ b/cobigen-gui/gui/src/main/java/com/devonfw/cobigen/gui/AppLauncher.java @@ -21,17 +21,17 @@ public void run() { this.app.printSomething(); } - // public static void main(String[] args) { - // - // new Thread() { - // @Override - // public void run() { - // - // javafx.application.Application.launch(App.class); - // } - // }.start(); - // App app = App.waitForApp(); - // app.printSomething(); - // } + public static void main(String[] args) { + + new Thread() { + @Override + public void run() { + + javafx.application.Application.launch(App.class); + } + }.start(); + App app = App.waitForApp(); + app.printSomething(); + } } diff --git a/cobigen-gui/gui/src/main/resources/com/devonfw/cobigen/gui/icons/devon-icon.jpg b/cobigen-gui/gui/src/main/resources/com/devonfw/cobigen/gui/icons/devon-icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b6867b41e6f69d023c55c4c336eb69308caa7526 GIT binary patch literal 12644 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 literal 0 HcmV?d00001 diff --git a/cobigen-gui/gui/src/main/resources/com/devonfw/cobigen/gui/primary.fxml b/cobigen-gui/gui/src/main/resources/com/devonfw/cobigen/gui/primary.fxml index 4b7aff6f89..66e547b63d 100644 --- a/cobigen-gui/gui/src/main/resources/com/devonfw/cobigen/gui/primary.fxml +++ b/cobigen-gui/gui/src/main/resources/com/devonfw/cobigen/gui/primary.fxml @@ -18,7 +18,7 @@ - + diff --git a/cobigen-gui/gui/src/main/java/com/devonfw/cobigen/gui/styles.css b/cobigen-gui/gui/src/main/resources/com/devonfw/cobigen/gui/styles.css similarity index 100% rename from cobigen-gui/gui/src/main/java/com/devonfw/cobigen/gui/styles.css rename to cobigen-gui/gui/src/main/resources/com/devonfw/cobigen/gui/styles.css