From 9064fd03d72e2aa2f283cd6eab7566a5970c036b Mon Sep 17 00:00:00 2001 From: Kai Brassel <mail@khbrassel.de> Date: Thu, 12 Nov 2020 18:42:54 +0100 Subject: [PATCH 1/4] Added missing view model. --- .../plugin.xml | 16 ++++------------ .../viewmodels/MaterialCategory.view | 12 ++++++++++++ 2 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 de.hftstuttgart.buildingphysics.viewmodel/viewmodels/MaterialCategory.view diff --git a/de.hftstuttgart.buildingphysics.viewmodel/plugin.xml b/de.hftstuttgart.buildingphysics.viewmodel/plugin.xml index 24c828d..ba7c692 100644 --- a/de.hftstuttgart.buildingphysics.viewmodel/plugin.xml +++ b/de.hftstuttgart.buildingphysics.viewmodel/plugin.xml @@ -1,16 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.4"?> <plugin> - <extension - point="org.eclipse.emf.ecp.view.model.provider.xmi.file"> - - - - - - -<file filePath="viewmodels/BuildingPhysicsCatalog.view"/> - + <extension point="org.eclipse.emf.ecp.view.model.provider.xmi.file"> + <file filePath="viewmodels/MaterialCategory.view"/> + <file filePath="viewmodels/BuildingPhysicsCatalog.view"/> </extension> - -</plugin> \ No newline at end of file +</plugin> diff --git a/de.hftstuttgart.buildingphysics.viewmodel/viewmodels/MaterialCategory.view b/de.hftstuttgart.buildingphysics.viewmodel/viewmodels/MaterialCategory.view new file mode 100644 index 0000000..a973780 --- /dev/null +++ b/de.hftstuttgart.buildingphysics.viewmodel/viewmodels/MaterialCategory.view @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<org.eclipse.emf.ecp.view.model:View xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmlns:org.eclipse.emf.ecp.view.table.model="http://org/eclipse/emf/ecp/view/table/model/150" xmi:id="_ZY8TECUNEeux0PTSTJn6xg" name="MaterialCategory"> + <rootEClass href="http://www.hftstuttgart.de/buildingphysics#//MaterialCategory"/> + <children xsi:type="org.eclipse.emf.ecp.view.table.model:TableControl" xmi:id="_cQS6sCUNEeux0PTSTJn6xg" detailEditing="WithPanel"> + <domainModelReference xsi:type="org.eclipse.emf.ecp.view.table.model:TableDomainModelReference" xmi:id="_gQbIQCUNEeux0PTSTJn6xg"> + <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_gQbIQSUNEeux0PTSTJn6xg"> + <domainModelEFeature xsi:type="ecore:EReference" href="http://www.hftstuttgart.de/buildingphysics#//MaterialCategory/material"/> + </domainModelReference> + </domainModelReference> + </children> + <ecorePaths>/de.hftstuttgart.buildingphysics/model/buildingphysics.ecore</ecorePaths> +</org.eclipse.emf.ecp.view.model:View> -- GitLab From 3ad3ff6c6dc2ef052d39769879a7c9b180286a98 Mon Sep 17 00:00:00 2001 From: Kai Brassel <mail@khbrassel.de> Date: Fri, 13 Nov 2020 10:47:33 +0100 Subject: [PATCH 2/4] Tweak UI --- .../viewmodels/BuildingPhysicsCatalog.view | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/de.hftstuttgart.buildingphysics.viewmodel/viewmodels/BuildingPhysicsCatalog.view b/de.hftstuttgart.buildingphysics.viewmodel/viewmodels/BuildingPhysicsCatalog.view index 0efb392..2ced4be 100644 --- a/de.hftstuttgart.buildingphysics.viewmodel/viewmodels/BuildingPhysicsCatalog.view +++ b/de.hftstuttgart.buildingphysics.viewmodel/viewmodels/BuildingPhysicsCatalog.view @@ -41,7 +41,7 @@ </categorizations> <categorizations xsi:type="org.eclipse.emf.ecp.view.categorization.model:Category" xmi:id="_jpOWECTLEeuaK-RhvCx2-Q" name="WindowTypes"> <composite xsi:type="org.eclipse.emf.ecp.view.group.model:Group" xmi:id="_zXAdkCTLEeuaK-RhvCx2-Q"> - <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" xmi:id="_cAtaoCTNEeuaK-RhvCx2-Q" name="Catalog Info"> + <children xsi:type="org.eclipse.emf.ecp.view.group.model:Group" xmi:id="_cAtaoCTNEeuaK-RhvCx2-Q" name="Catalog Info" groupType="Embedded"> <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_fSCBcCTNEeuaK-RhvCx2-Q" name="Name"> <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_g8RbHCTNEeuaK-RhvCx2-Q"> <domainModelEFeature xsi:type="ecore:EAttribute" href="http://www.hftstuttgart.de/buildingphysics#//Catalog/name"/> -- GitLab From f4ef52eb013b674af13f11eb3ecf5a0acbf0ccf6 Mon Sep 17 00:00:00 2001 From: Kai Brassel <mail@khbrassel.de> Date: Fri, 13 Nov 2020 10:48:12 +0100 Subject: [PATCH 3/4] Added two projects to get an Eclipse application --- .../.classpath | 7 ++ .../.project | 28 +++++ .../Application.e4xmi | 51 +++++++++ .../META-INF/MANIFEST.MF | 21 ++++ .../build.properties | 8 ++ .../css/default.css | 0 ...ttgart.buildingphysics.application.product | 50 +++++++++ .../icons/home.png | Bin 0 -> 287 bytes .../icons/open_in_app.png | Bin 0 -> 315 bytes .../icons/save_edit.png | Bin 0 -> 367 bytes .../plugin.xml | 18 +++ .../application/handlers/AboutHandler.java | 12 ++ .../application/handlers/HandlerUtils.java | 50 +++++++++ .../application/handlers/NewHandler.java | 45 ++++++++ .../application/handlers/OpenHandler.java | 28 +++++ .../application/handlers/QuitHandler.java | 17 +++ .../application/handlers/SaveHandler.java | 21 ++++ .../application/parts/CatalogPart.java | 50 +++++++++ .../.project | 17 +++ .../build.properties | 1 + .../feature.xml | 103 ++++++++++++++++++ 21 files changed, 527 insertions(+) create mode 100644 de.hftstuttgart.buildingphysics.application/.classpath create mode 100644 de.hftstuttgart.buildingphysics.application/.project create mode 100644 de.hftstuttgart.buildingphysics.application/Application.e4xmi create mode 100644 de.hftstuttgart.buildingphysics.application/META-INF/MANIFEST.MF create mode 100644 de.hftstuttgart.buildingphysics.application/build.properties create mode 100644 de.hftstuttgart.buildingphysics.application/css/default.css create mode 100644 de.hftstuttgart.buildingphysics.application/de.hftstuttgart.buildingphysics.application.product create mode 100644 de.hftstuttgart.buildingphysics.application/icons/home.png create mode 100644 de.hftstuttgart.buildingphysics.application/icons/open_in_app.png create mode 100644 de.hftstuttgart.buildingphysics.application/icons/save_edit.png create mode 100644 de.hftstuttgart.buildingphysics.application/plugin.xml create mode 100644 de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/AboutHandler.java create mode 100644 de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/HandlerUtils.java create mode 100644 de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/NewHandler.java create mode 100644 de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/OpenHandler.java create mode 100644 de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/QuitHandler.java create mode 100644 de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/SaveHandler.java create mode 100644 de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/parts/CatalogPart.java create mode 100644 de.hftstuttgart.buildingphysics.feature/.project create mode 100644 de.hftstuttgart.buildingphysics.feature/build.properties create mode 100644 de.hftstuttgart.buildingphysics.feature/feature.xml diff --git a/de.hftstuttgart.buildingphysics.application/.classpath b/de.hftstuttgart.buildingphysics.application/.classpath new file mode 100644 index 0000000..1fa3e68 --- /dev/null +++ b/de.hftstuttgart.buildingphysics.application/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/de.hftstuttgart.buildingphysics.application/.project b/de.hftstuttgart.buildingphysics.application/.project new file mode 100644 index 0000000..b37826e --- /dev/null +++ b/de.hftstuttgart.buildingphysics.application/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>de.hftstuttgart.buildingphysics.application</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/de.hftstuttgart.buildingphysics.application/Application.e4xmi b/de.hftstuttgart.buildingphysics.application/Application.e4xmi new file mode 100644 index 0000000..c902850 --- /dev/null +++ b/de.hftstuttgart.buildingphysics.application/Application.e4xmi @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_6wlLcMgZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.application" bindingContexts="_6wlLecgZEeSyMNYR5xypkQ"> + <children xsi:type="basic:TrimmedWindow" xmi:id="_6wlLccgZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.window.main" label="HfT Stuttgart - Building Physics Catalog" width="800" height="600"> + <mainMenu xmi:id="_6wlLicgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.main.menu"> + <children xsi:type="menu:Menu" xmi:id="_6wlLisgZEeSyMNYR5xypkQ" elementId="file" label="File"> + <children xsi:type="menu:HandledMenuItem" xmi:id="_y6FesCWUEeux0PTSTJn6xg" elementId="de.hftstuttgart.buildingphysics.application.handleditem.file.new" label="New..." command="_PnX_ACWUEeux0PTSTJn6xg"/> + <children xsi:type="menu:HandledMenuItem" xmi:id="_6wlLi8gZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.handleditem.file.open" label="Open" iconURI="platform:/plugin/de.hftstuttgart.buildingphysics.application/icons/open_in_app.png" command="_6wlLgMgZEeSyMNYR5xypkQ"/> + <children xsi:type="menu:HandledMenuItem" xmi:id="_6wlLjMgZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.handleditem.save" label="Save" iconURI="platform:/plugin/de.hftstuttgart.buildingphysics.application/icons/save_edit.png" command="_6wlLg8gZEeSyMNYR5xypkQ"/> + <children xsi:type="menu:HandledMenuItem" xmi:id="_6wlLjcgZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.handleditem.quit" label="Quit" command="_6wlLfMgZEeSyMNYR5xypkQ"/> + </children> + <children xsi:type="menu:Menu" xmi:id="_6wlLjsgZEeSyMNYR5xypkQ" elementId="help" label="Help"> + <children xsi:type="menu:HandledMenuItem" xmi:id="_6wlLj8gZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.handleditem.about" label="About" command="_6wlLhsgZEeSyMNYR5xypkQ"/> + </children> + </mainMenu> + <trimBars xmi:id="_6wlLlcgZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.trimbar.top"> + <children xsi:type="menu:ToolBar" xmi:id="_6wlLlsgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.main.toolbar"> + <children xsi:type="menu:HandledToolItem" xmi:id="_rXiTQCWUEeux0PTSTJn6xg" elementId="de.hftstuttgart.buildingphysics.application.handleditem.trimbar.top.new" label="New..." command="_PnX_ACWUEeux0PTSTJn6xg"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_6wlLl8gZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.handleditem.trimbar.top.open" iconURI="platform:/plugin/de.hftstuttgart.buildingphysics.application/icons/open_in_app.png" command="_6wlLgMgZEeSyMNYR5xypkQ"/> + <children xsi:type="menu:HandledToolItem" xmi:id="_6wlLmMgZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.handleditem.trimbar.top.save" iconURI="platform:/plugin/de.hftstuttgart.buildingphysics.application/icons/save_edit.png" command="_6wlLg8gZEeSyMNYR5xypkQ"/> + </children> + </trimBars> + </children> + <handlers xmi:id="_LmGh8CWUEeux0PTSTJn6xg" elementId="de.hftstuttgart.buildingphysics.application.handler.newCommand" contributionURI="bundleclass://de.hftstuttgart.buildingphysics.application/de.hftstuttgart.buildingphysics.application.handlers.NewHandler" command="_PnX_ACWUEeux0PTSTJn6xg"/> + <handlers xmi:id="_6wlLgcgZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.handler.openCommand" contributionURI="bundleclass://de.hftstuttgart.buildingphysics.application/de.hftstuttgart.buildingphysics.application.handlers.OpenHandler" command="_6wlLgMgZEeSyMNYR5xypkQ"/> + <handlers xmi:id="_6wlLhMgZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.handler.saveCommand" contributionURI="bundleclass://de.hftstuttgart.buildingphysics.application/de.hftstuttgart.buildingphysics.application.handlers.SaveHandler" command="_6wlLg8gZEeSyMNYR5xypkQ"/> + <handlers xmi:id="_6wlLfcgZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.handler.quitCommand" contributionURI="bundleclass://de.hftstuttgart.buildingphysics.application/de.hftstuttgart.buildingphysics.application.handlers.QuitHandler" command="_6wlLfMgZEeSyMNYR5xypkQ"/> + <handlers xmi:id="_6wlLh8gZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.handler.aboutCommand" contributionURI="bundleclass://de.hftstuttgart.buildingphysics.application/de.hftstuttgart.buildingphysics.application.handlers.AboutHandler" command="_6wlLhsgZEeSyMNYR5xypkQ"/> + <bindingTables xmi:id="_6wlLfsgZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.bindingtable" bindingContext="_6wlLecgZEeSyMNYR5xypkQ"> + <bindings xmi:id="_6wlLf8gZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.keybinding.m1q" keySequence="M1+Q" command="_6wlLfMgZEeSyMNYR5xypkQ"/> + <bindings xmi:id="_6wlLgsgZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.keybinding.m1o" keySequence="M1+O" command="_6wlLgMgZEeSyMNYR5xypkQ"/> + <bindings xmi:id="_6wlLhcgZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.keybinding.m1s" keySequence="M1+S" command="_6wlLg8gZEeSyMNYR5xypkQ"/> + <bindings xmi:id="_6wlLiMgZEeSyMNYR5xypkQ" elementId="de.hftstuttgart.buildingphysics.application.keybinding.m1a" keySequence="M1+A" command="_6wlLhsgZEeSyMNYR5xypkQ"/> + </bindingTables> + <rootContext xmi:id="_6wlLecgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.dialogAndWindow" name="In Dialog and Windows"> + <children xmi:id="_6wlLesgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.window" name="In Windows"/> + <children xmi:id="_6wlLe8gZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.dialog" name="In Dialogs"/> + </rootContext> + <descriptors xmi:id="_d_8I0CUMEeux0PTSTJn6xg" elementId="de.hftstuttgart.buildingphysics.application.partdescriptor.catalog" allowMultiple="true" closeable="true" contributionURI="bundleclass://de.hftstuttgart.buildingphysics.application/de.hftstuttgart.buildingphysics.application.parts.CatalogPart"/> + <commands xmi:id="_PnX_ACWUEeux0PTSTJn6xg" elementId="org.eclipse.ui.file.new" commandName="newCommand"/> + <commands xmi:id="_6wlLgMgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.file.open" commandName="openCommand"/> + <commands xmi:id="_6wlLg8gZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.file.save" commandName="saveCommand"/> + <commands xmi:id="_6wlLhsgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.help.aboutAction" commandName="aboutCommand"/> + <commands xmi:id="_6wlLfMgZEeSyMNYR5xypkQ" elementId="org.eclipse.ui.file.exit" commandName="quitCommand"/> + <addons xmi:id="_6wlLcsgZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/> + <addons xmi:id="_6wlLc8gZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/> + <addons xmi:id="_6wlLdMgZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.bindings.service" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/> + <addons xmi:id="_6wlLdcgZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.commands.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon"/> + <addons xmi:id="_6wlLdsgZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.handler.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon"/> + <addons xmi:id="_6wlLd8gZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.contexts.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon"/> + <addons xmi:id="_6wlLeMgZEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.bindings.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.swt/org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon"/> +</application:Application> diff --git a/de.hftstuttgart.buildingphysics.application/META-INF/MANIFEST.MF b/de.hftstuttgart.buildingphysics.application/META-INF/MANIFEST.MF new file mode 100644 index 0000000..91061fe --- /dev/null +++ b/de.hftstuttgart.buildingphysics.application/META-INF/MANIFEST.MF @@ -0,0 +1,21 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Application +Bundle-SymbolicName: de.hftstuttgart.buildingphysics.application;singleton:=true +Bundle-Version: 1.0.0.qualifier +Require-Bundle: javax.inject;bundle-version="0.0.0", + org.eclipse.core.runtime;bundle-version="0.0.0", + org.eclipse.swt;bundle-version="0.0.0", + org.eclipse.e4.ui.model.workbench;bundle-version="0.0.0", + org.eclipse.jface;bundle-version="0.0.0", + org.eclipse.e4.ui.services;bundle-version="0.0.0", + org.eclipse.e4.ui.workbench;bundle-version="0.0.0", + org.eclipse.e4.core.di;bundle-version="0.0.0", + org.eclipse.e4.ui.di;bundle-version="0.0.0", + org.eclipse.e4.core.contexts;bundle-version="0.0.0", + org.eclipse.emf.ecore, + org.eclipse.emf.edit, + org.eclipse.emf.ecp.ui.view.swt +Import-Package: de.hftstuttgart.buildingphysics, + javax.annotation;version="0.0.0" +Automatic-Module-Name: de.hftstuttgart.buildingphysics.application diff --git a/de.hftstuttgart.buildingphysics.application/build.properties b/de.hftstuttgart.buildingphysics.application/build.properties new file mode 100644 index 0000000..04ab1e9 --- /dev/null +++ b/de.hftstuttgart.buildingphysics.application/build.properties @@ -0,0 +1,8 @@ +source.. = src/ +output.. = bin/ +bin.includes = plugin.xml,\ + META-INF/,\ + .,\ + icons/,\ + css/default.css,\ + Application.e4xmi diff --git a/de.hftstuttgart.buildingphysics.application/css/default.css b/de.hftstuttgart.buildingphysics.application/css/default.css new file mode 100644 index 0000000..e69de29 diff --git a/de.hftstuttgart.buildingphysics.application/de.hftstuttgart.buildingphysics.application.product b/de.hftstuttgart.buildingphysics.application/de.hftstuttgart.buildingphysics.application.product new file mode 100644 index 0000000..bf6b6aa --- /dev/null +++ b/de.hftstuttgart.buildingphysics.application/de.hftstuttgart.buildingphysics.application.product @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?pde version="3.5"?> + +<product name="de.hftstuttgart.buildingphysics.application" uid="de.hftstuttgart.buildingphysics.application.product" id="de.hftstuttgart.buildingphysics.application.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="true"> + + <configIni use="default"> + </configIni> + + <launcherArgs> + <programArgs>-clearPersistedState + </programArgs> + <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts + </vmArgsMac> + </launcherArgs> + + <windowImages/> + + <launcher> + <win useIco="false"> + <bmp/> + </win> + </launcher> + + <vm> + <macos include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-14</macos> + </vm> + + <plugins> + </plugins> + + <features> + <feature id="de.hftstuttgart.buildingphysics.feature"/> + <feature id="org.eclipse.e4.rcp"/> + <feature id="org.eclipse.emf.ecp.emfforms.runtime.feature"/> + <feature id="org.eclipse.emf.common"/> + <feature id="org.eclipse.emf.common.ui"/> + <feature id="org.eclipse.emf.databinding"/> + <feature id="org.eclipse.emf.databinding.edit"/> + <feature id="org.eclipse.emf.ecore"/> + <feature id="org.eclipse.emf.ecore.edit"/> + <feature id="org.eclipse.emf.edit"/> + <feature id="org.eclipse.emf.edit.ui"/> + </features> + + + <preferencesInfo> + <targetfile overwrite="false"/> + </preferencesInfo> + +</product> diff --git a/de.hftstuttgart.buildingphysics.application/icons/home.png b/de.hftstuttgart.buildingphysics.application/icons/home.png new file mode 100644 index 0000000000000000000000000000000000000000..e9ace41c655fcbe6450482aa21e4de88f6905b04 GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?7 z8z9Vhe8JAOKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQsgLx;Tbd z^d7xr%XP>>pzYytd7IX2W@6jE#VLk=@Y^=+HRl(Wk4)d1)IGEpo%M1OdgR8m&)^N; z8}rYG)+L*dy*WKQER3V#VVkU)<{?$S3b#Vjbteq6gwJg}zSuRQpL^R^CPl{xeyuXI zi>~s0Q<`@!KA?2ZpR=-ACyKk%QsVoTyAS@euDTtna6HoT$~qb5n#b+)#WSVO?@9mu bu!4Eh6VIQP`W^v5cQSao`njxgN@xNA+l6XM literal 0 HcmV?d00001 diff --git a/de.hftstuttgart.buildingphysics.application/icons/open_in_app.png b/de.hftstuttgart.buildingphysics.application/icons/open_in_app.png new file mode 100644 index 0000000000000000000000000000000000000000..9df4eeb7c3b8e6d1ff41f77b6032062a0edb4695 GIT binary patch literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^!ayv*!3HG19C1kkQY^(zo*^7SP{WbZ0pxQQctjQh z)vX6%#^h&xhk=5UC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NC6e?@N{tu zvFLq!c_Zf`2a#hR|94N4j5!#h_dtj-IC6$*&L^$u0lP(-9tcGq(CS-Y%+i-WQA1Ox zPvYRQ^?&>B?`^JLw5nQxRjow5e^JI{mCn~M?{nG+9N49EIwo|volnTsn)X>SE>Et6 z&X~!4c*BQ#*SvDl3gaU~uj)!P{4~n<FB6@3H{jrzZ3mbZ^xoa9W6ggw#I!c?e$6xa z-=^2%ma_-cB<M6sUip6}Q2!TCM6bjd)&m<Ej~`)dSMO;yV2V__vIXb|22WQ%mvv4F FO#o*oc`^V1 literal 0 HcmV?d00001 diff --git a/de.hftstuttgart.buildingphysics.application/icons/save_edit.png b/de.hftstuttgart.buildingphysics.application/icons/save_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..b17caf5a984540e8b1448057feeecc5183c58eaa GIT binary patch literal 367 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p zD}XSgpwrRCKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQsIDx;Tbd z^e&ye){i+*pml%du1%avUa2i%V&oG_iH&CnnZKY-K62-?9(QxoJr43rp7D$mBvLj? zux*}gQc%A8f@fadvpdE6&WI+zv+M4te$bHjHAv*>5}niK43oDoay_VY{~%!TkJHeT zagA#4?Mv_MdONO8`@-c@C42nbRn8AP_!%B-iNCC}_SPK1!YP-t4+zZom)=sle}nLc z$hr2+`x<6XxumevgyEgm+wiZ&N*@$5cV5+3iDlUACp_b(m9qWQJ&_JBb5fstKF9DN z>{9C89lu2j<{Do+ePv5${#Dzoiu+$0EI(XKkl5OKHs>F&{AoMO<{t+vf&OOjboFyt I=akR{0M|T{IRF3v literal 0 HcmV?d00001 diff --git a/de.hftstuttgart.buildingphysics.application/plugin.xml b/de.hftstuttgart.buildingphysics.application/plugin.xml new file mode 100644 index 0000000..4c0f3c1 --- /dev/null +++ b/de.hftstuttgart.buildingphysics.application/plugin.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<plugin> + + <extension + id="product" + point="org.eclipse.core.runtime.products"> + <product + application="org.eclipse.e4.ui.workbench.swt.E4Application" + name="de.hftstuttgart.buildingphysics.application"> + <property + name="appName" + value="de.hftstuttgart.buildingphysics.application"> + </property> + </product> + </extension> + +</plugin> diff --git a/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/AboutHandler.java b/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/AboutHandler.java new file mode 100644 index 0000000..e848482 --- /dev/null +++ b/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/AboutHandler.java @@ -0,0 +1,12 @@ +package de.hftstuttgart.buildingphysics.application.handlers; + +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Shell; + +public class AboutHandler { + @Execute + public void execute(Shell shell) { + MessageDialog.openInformation(shell, "About", "HfT Stuttgart - Building Physics Catalog"); + } +} diff --git a/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/HandlerUtils.java b/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/HandlerUtils.java new file mode 100644 index 0000000..b302a2e --- /dev/null +++ b/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/HandlerUtils.java @@ -0,0 +1,50 @@ +package de.hftstuttgart.buildingphysics.application.handlers; + +import org.eclipse.e4.core.contexts.IEclipseContext; +import org.eclipse.e4.ui.model.application.ui.basic.MPart; +import org.eclipse.e4.ui.workbench.modeling.EPartService; +import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState; +import org.eclipse.emf.common.command.BasicCommandStack; +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.swt.widgets.Shell; + +class HandlerUtils { + static final String CATALOG_PARTDESCRIPTOR_ID = "de.hftstuttgart.buildingphysics.application.partdescriptor.catalog"; + + public static String openFileDialog(Shell shell) { + return invokeFileDialog(new FileDialog(shell, SWT.OPEN)); + } + + public static String newFileDialog(Shell shell) { + return invokeFileDialog(new FileDialog(shell, SWT.SAVE)); + } + + private static String invokeFileDialog(FileDialog dialog) { + dialog.setFilterPath(System.getProperty("user.home")); + dialog.setFilterNames(new String [] {"Building Physics Catalog", "All Files (*)"}); + dialog.setFilterExtensions(new String [] {"*.buildphys", "*"}); + return dialog.open(); + } + + static void createNewPartWithCatalog(IEclipseContext context, EPartService partService, Resource resource) { + context.set(Resource.class, resource); + MPart catalogPart = partService.createPart(CATALOG_PARTDESCRIPTOR_ID); + catalogPart.setDirty(true); // must listen to adapter! + catalogPart.setLabel(resource.getURI().lastSegment()); + partService.showPart(catalogPart, PartState.ACTIVATE); + } + + static AdapterFactoryEditingDomain createEditingDomain() { + final AdapterFactory composedAdapterFactory = new ComposedAdapterFactory( + ComposedAdapterFactory.Descriptor.Registry.INSTANCE); // no dispose required? + final AdapterFactoryEditingDomain domain = new AdapterFactoryEditingDomain(composedAdapterFactory, + new BasicCommandStack()); + return domain; + } + +} diff --git a/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/NewHandler.java b/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/NewHandler.java new file mode 100644 index 0000000..30ccd9c --- /dev/null +++ b/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/NewHandler.java @@ -0,0 +1,45 @@ +package de.hftstuttgart.buildingphysics.application.handlers; + +import de.hftstuttgart.buildingphysics.BuildingPhysicsPackage; +import java.io.IOException; + +import javax.inject.Named; + +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.ui.model.application.MApplication; +import org.eclipse.e4.ui.services.IServiceConstants; +import org.eclipse.e4.ui.workbench.modeling.EPartService; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; +import org.eclipse.swt.widgets.Shell; + + +public class NewHandler { + + @Execute + public void execute(MApplication application, @Named(IServiceConstants.ACTIVE_SHELL) Shell shell, + EPartService partService) { + + final String pathToNewCatalog = HandlerUtils.newFileDialog(shell); + + if (pathToNewCatalog != null) { + // create new catalog with resource at above path + final AdapterFactoryEditingDomain domain = HandlerUtils.createEditingDomain(); + final Resource energyCatalogResource = domain.createResource("file://" + pathToNewCatalog); + final EObject energyCatalog = EcoreUtil.create(BuildingPhysicsPackage.eINSTANCE.getBuildingPhysicsCatalog()); + energyCatalogResource.getContents().add(energyCatalog); + + // store new (empty) resource at selected path + try { + energyCatalogResource.save(null); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + HandlerUtils.createNewPartWithCatalog(application.getContext(), partService, energyCatalogResource); + } + } +} \ No newline at end of file diff --git a/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/OpenHandler.java b/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/OpenHandler.java new file mode 100644 index 0000000..7639f79 --- /dev/null +++ b/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/OpenHandler.java @@ -0,0 +1,28 @@ +package de.hftstuttgart.buildingphysics.application.handlers; + +import javax.inject.Named; + +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.ui.model.application.MApplication; +import org.eclipse.e4.ui.services.IServiceConstants; +import org.eclipse.e4.ui.workbench.modeling.EPartService; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; +import org.eclipse.swt.widgets.Shell; + + +public class OpenHandler { + @Execute + public void execute(MApplication application, @Named(IServiceConstants.ACTIVE_SHELL) Shell shell, + EPartService partService) { + + final String pathToCatalog = HandlerUtils.openFileDialog(shell); + + if (pathToCatalog != null) { + final AdapterFactoryEditingDomain domain = HandlerUtils.createEditingDomain(); + System.out.println("Open catalog: " + pathToCatalog); + final Resource catalogResource = domain.loadResource("file://" + pathToCatalog); + HandlerUtils.createNewPartWithCatalog(application.getContext(), partService, catalogResource); + } + } +} \ No newline at end of file diff --git a/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/QuitHandler.java b/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/QuitHandler.java new file mode 100644 index 0000000..a241914 --- /dev/null +++ b/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/QuitHandler.java @@ -0,0 +1,17 @@ +package de.hftstuttgart.buildingphysics.application.handlers; + +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.ui.workbench.IWorkbench; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Shell; + + +public class QuitHandler { + @Execute + public void execute(IWorkbench workbench, Shell shell){ + if (MessageDialog.openConfirm(shell, "Confirmation", + "Do you want to exit?")) { + workbench.close(); + } + } +} diff --git a/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/SaveHandler.java b/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/SaveHandler.java new file mode 100644 index 0000000..6d1aba5 --- /dev/null +++ b/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/handlers/SaveHandler.java @@ -0,0 +1,21 @@ +package de.hftstuttgart.buildingphysics.application.handlers; + +import org.eclipse.e4.core.di.annotations.CanExecute; +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.ui.workbench.modeling.EPartService; + +public class SaveHandler { + + @CanExecute + public boolean canExecute(EPartService partService) { + if (partService != null) { + return !partService.getDirtyParts().isEmpty(); + } + return false; + } + + @Execute + public void execute(EPartService partService) { + partService.saveAll(false); + } +} \ No newline at end of file diff --git a/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/parts/CatalogPart.java b/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/parts/CatalogPart.java new file mode 100644 index 0000000..6dbd106 --- /dev/null +++ b/de.hftstuttgart.buildingphysics.application/src/de/hftstuttgart/buildingphysics/application/parts/CatalogPart.java @@ -0,0 +1,50 @@ +package de.hftstuttgart.buildingphysics.application.parts; + +import java.io.IOException; + +import javax.annotation.PostConstruct; + +import org.eclipse.e4.ui.di.Persist; +import org.eclipse.e4.ui.model.application.MApplication; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecp.ui.view.ECPRendererException; +import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer; +import org.eclipse.jface.layout.GridLayoutFactory; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; + +/** + * Part for displaying a Forms Editor for a Building Physics Catalog. + */ +public class CatalogPart { + private Resource catalogResource; + + @PostConstruct + public void createComposite(MApplication application, Composite parent) { + catalogResource = application.getContext().get(Resource.class); + EObject energyCatalog = catalogResource.getContents().get(0); + try { + final Composite content = new Composite(parent, SWT.NONE); + content.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE)); + content.setLayout(GridLayoutFactory.fillDefaults().margins(10, 10).create()); + ECPSWTViewRenderer.INSTANCE.render(content, energyCatalog); + content.layout(); + } catch (final ECPRendererException e) { + e.printStackTrace(); + } + parent.layout(); + } + + @Persist + public void save() { + System.out.println("Saved " + catalogResource); + try { + catalogResource.save(null); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + +} \ No newline at end of file diff --git a/de.hftstuttgart.buildingphysics.feature/.project b/de.hftstuttgart.buildingphysics.feature/.project new file mode 100644 index 0000000..1daa037 --- /dev/null +++ b/de.hftstuttgart.buildingphysics.feature/.project @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>de.hftstuttgart.buildingphysics.feature</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.pde.FeatureBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.FeatureNature</nature> + </natures> +</projectDescription> diff --git a/de.hftstuttgart.buildingphysics.feature/build.properties b/de.hftstuttgart.buildingphysics.feature/build.properties new file mode 100644 index 0000000..64f93a9 --- /dev/null +++ b/de.hftstuttgart.buildingphysics.feature/build.properties @@ -0,0 +1 @@ +bin.includes = feature.xml diff --git a/de.hftstuttgart.buildingphysics.feature/feature.xml b/de.hftstuttgart.buildingphysics.feature/feature.xml new file mode 100644 index 0000000..251cd37 --- /dev/null +++ b/de.hftstuttgart.buildingphysics.feature/feature.xml @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="UTF-8"?> +<feature + id="de.hftstuttgart.buildingphysics.feature" + label="Feature" + version="1.0.0.qualifier" + provider-name="HfT Stuttgart"> + + <description url="http://www.example.com/description"> + [Enter Feature Description here.] + </description> + + <copyright url="http://www.example.com/copyright"> + [Enter Copyright Description here.] + </copyright> + + <license url="http://www.example.com/license"> + [Enter License Description here.] + </license> + + <plugin + id="de.hftstuttgart.buildingphysics.application" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.eclipse.ui" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.eclipse.ui.views" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.eclipse.ui.workbench" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.eclipse.help" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.eclipse.core.resources" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.eclipse.core.filesystem" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.eclipse.jface.text" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.eclipse.text" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="de.hftstuttgart.buildingphysics" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="de.hftstuttgart.buildingphysics.edit" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="de.hftstuttgart.buildingphysics.viewmodel" + download-size="0" + install-size="0" + version="0.0.0"/> + +</feature> -- GitLab From a00f97a21f2381806e0bf6e291e6bdea3001f878 Mon Sep 17 00:00:00 2001 From: Kai Brassel <mail@khbrassel.de> Date: Fri, 13 Nov 2020 12:05:23 +0100 Subject: [PATCH 4/4] Explanation of usage and reference to tutorial --- README.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1ede228..6d3e13c 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,16 @@ -# Building Physics Catalog Editor +# Building Physics Catalog Data Model and Editor +**Important: This is a prototype and work in progress!!** + +## How to Use + +1. Ensure Java 11 or higher is available (if not, install AdoptOpenJDK 15) +2. Install Eclipse Modeling Tools, version 2020-09 or higher +3. Import all Eclipse projects in this GIT repository via `File -> Import... -> Projects from GIT -> Clone URI` +4. Refresh and clean/build projects +5. Open `de.hftstuttgart.buildingphysics.application.product` and in `Overview`, section `Testing` press `Synchronize` first and `Launch an Eclipse Application` second +6. Press `New...` to ceate a new empty Building Physics Catalog; Save and Load buttons are also available. + +## How to Create + +Find background information about parameter catalogs for simulation and a tutorial on how to create them at [https://transfer.hft-stuttgart.de/gitlab/neqmodplus/parameter-catalogs-for-simulation](https://transfer.hft-stuttgart.de/gitlab/neqmodplus/parameter-catalogs-for-simulation). -- GitLab