Giter Site home page Giter Site logo

h-uppaal's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

h-uppaal's Issues

Export XML version

Create an "Export as XML" version in the File menu.
This should create an XML version of the project and bring up a file chooser where the file name can be selected.

Note: The functionality to create the actual XML version should already exist as it was created by the students originally working on the project.

Exception while adding location

/usr/lib/jvm/zulu11.39.15-ca-fx-jdk11.0.7-linux_x64/bin/java -javaagent:/snap/intellij-idea-community/226/lib/idea_rt.jar=34895:/snap/intellij-idea-community/226/bin -Dfile.encoding=UTF-8 -classpath /home/ulrik/Code/H-Uppaal/build/classes/java/main:/home/ulrik/Code/H-Uppaal/build/classes/kotlin/main:/home/ulrik/Code/H-Uppaal/build/resources/main:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-pdf.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-svg.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-pdf-javadoc.jar:/home/ulrik/Code/H-Uppaal/libs/slf4j-nop.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-swf.jar:/home/ulrik/Code/H-Uppaal/libs/oslc4j-jena-provider.jar:/home/ulrik/Code/H-Uppaal/libs/jh.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsbase-javadoc.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-emf-sources.jar:/home/ulrik/Code/H-Uppaal/libs/model.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsbase.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-emf.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-svg-javadoc.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-svg-sources.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-io.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-swf-javadoc.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-javadoc.jar:/home/ulrik/Code/H-Uppaal/libs/jena-core.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-java-javadoc.jar:/home/ulrik/Code/H-Uppaal/libs/servlet-api-3.0.jar:/home/ulrik/Code/H-Uppaal/libs/oslc4j-core-sources.jar:/home/ulrik/Code/H-Uppaal/libs/xerces.jar:/home/ulrik/Code/H-Uppaal/libs/jsr311-api-1.1.1.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphics2d.jar:/home/ulrik/Code/H-Uppaal/libs/oslc4j-wink-javadoc.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphics2d-javadoc.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-pdf-sources.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsbase-sources.jar:/home/ulrik/Code/H-Uppaal/libs/xml-apis.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-java-sources.jar:/home/ulrik/Code/H-Uppaal/libs/jdom.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-ps.jar:/home/ulrik/Code/H-Uppaal/libs/wink-common.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-ps-sources.jar:/home/ulrik/Code/H-Uppaal/libs/model-javadoc.jar:/home/ulrik/Code/H-Uppaal/libs/jlfgr-1_0.jar:/home/ulrik/Code/H-Uppaal/libs/wink-client.jar:/home/ulrik/Code/H-Uppaal/libs/slf4j-api.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-ps-javadoc.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-swf-sources.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-emf-javadoc.jar:/home/ulrik/Code/H-Uppaal/libs/oslc4j-json4j-provider.jar:/home/ulrik/Code/H-Uppaal/libs/oslc4j-wink.jar:/home/ulrik/Code/H-Uppaal/libs/jena-iri.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-sources.jar:/home/ulrik/Code/H-Uppaal/libs/swixml.jar:/home/ulrik/Code/H-Uppaal/libs/oslc4j-core.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphicsio-java.jar:/home/ulrik/Code/H-Uppaal/libs/editor.jar:/home/ulrik/Code/H-Uppaal/libs/oslc4j-wink-sources.jar:/home/ulrik/Code/H-Uppaal/libs/freehep-graphics2d-sources.jar:/home/ulrik/Code/H-Uppaal/libs/oslc4j-core-javadoc.jar:/home/ulrik/Code/H-Uppaal/libs/uppaal-oslc4j-common.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-fxml/11/e7a757b580fc3e2e1a121768606c7836eef418c/javafx-fxml-11-linux.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-controls/11/58d961774262ec972bf304e16c154a8e18c2050b/javafx-controls-11.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-controls/11/794488e3b1f4635d9a1b842bdc872a5eb8fd54ca/javafx-controls-11-linux.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-graphics/11/a736dd079047ec0b72b8c4970842a5c5e0c19f2f/javafx-graphics-11.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-graphics/11/4ab9edd8d481a420044c473fdb5718ccdd35c836/javafx-graphics-11-linux.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-base/11/9fcd3e8e3227ec97bf503f7991fad1f3b14d005/javafx-base-11.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-base/11/f8d1ced6047b010f1e3bb92dc060862179ce5897/javafx-base-11-linux.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/com.jfoenix/jfoenix/9.0.9/df1b688e1dc42a59e560c29f231278e20cfcd52/jfoenix-9.0.9.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/de.codecentric.centerdevice/javafxsvg/1.0.0/5caacc6870f31fd83fccba7784e48a34e527c4d8/javafxsvg-1.0.0.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/com.github.jiconfont/jiconfont-javafx/1.0.0/233530f110ab0c3ff845aa52799c43645a11f1c8/jiconfont-javafx-1.0.0.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/com.github.jiconfont/jiconfont-google_material_design_icons/2.2.0.1/fc7b40105e13ce81c249d4d440deb1939e687aaa/jiconfont-google_material_design_icons-2.2.0.1.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.kordamp.ikonli/ikonli-material-pack/2.3.0/2be81d3585ac7cbba0be56d2f4510298cc1f27a8/ikonli-material-pack-2.3.0.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.kordamp.ikonli/ikonli-javafx/2.3.0/a2d46c55cb9d68523f5dfaf3fef881ef4a989fb0/ikonli-javafx-2.3.0.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.kordamp.ikonli/ikonli-core/2.3.0/e0840f570d30f9ca74b2ef2b855c9b56ec5302a6/ikonli-core-2.3.0.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/r05/97fd3078118f05895ba5c3a95f3c335e2a2f34d/guava-r05.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.hildan.fxgson/fx-gson/2.0.0/3237843558b455775afac6fdb310958e79f64e6/fx-gson-2.0.0.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.fxmisc.richtext/richtextfx/0.10.5/df9f31a099aa066c63b231f4bbb3826cd892b35c/richtextfx-0.10.5.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.3.71/4defc79915cf4f78b49bbc4a8f1e80e87767a5b/kotlin-stdlib-jdk8-1.3.71.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-transcoder/1.7/aa2eb6300cb50bbb9dbf52daf7d625aa0df1d930/batik-transcoder-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/com.github.jiconfont/jiconfont/1.0.0/e17d93321975b6735ebc283f6832fa0350614d3a/jiconfont-1.0.0.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.fxmisc.undo/undofx/2.1.0/e50ee1e30ce5ac1817d35f56c79099201211c76c/undofx-2.1.0.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.fxmisc.flowless/flowless/0.6.1/d0794811efbc07d247de681ee0ee427cdb685d58/flowless-0.6.1.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.reactfx/reactfx/2.0-M5/aa02bc40ebbb87a76d4b188516294612c8972b80/reactfx-2.0-M5.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.fxmisc.wellbehaved/wellbehavedfx/0.3.3/c69c986469f23feee75f09812357e6b6a0657d57/wellbehavedfx-0.3.3.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.71/9180d3aec3f0b2ea6ef0dcf01b464a6e2219e381/kotlin-stdlib-jdk7-1.3.71.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.71/898273189ad22779da6bed88ded39b14cb5fd432/kotlin-stdlib-1.3.71.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/fop/0.94/d37ddd876ae66910f73235c71d3ab3f0c85a2b87/fop-0.94.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-gvt/1.7/3d315e60d72c761c52946b4acaa4b86239ef938/batik-gvt-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-bridge/1.7/8e0cde3830e0f17704cd392b0a09b13944987a51/batik-bridge-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-svg-dom/1.7/5b3b1fea480fabbd3e0c44540af25b9fda0587ae/batik-svg-dom-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-svggen/1.7/baa58d0f5bfd2a28142e222cee126eb71bd0a938/batik-svggen-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-awt-util/1.7/67605a29d49bf33f3c1d7832f490b0a007e7a6e2/batik-awt-util-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-dom/1.7/710d559bd1df52581b57b75a99ed5fd2e2918bb7/batik-dom-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-xml/1.7/17e3da8bd9d4a131350a7835f5cc0d93ba199c89/batik-xml-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-util/1.7/5c4dd0dd9a86a2fba2c6ea26fb62b32b21b2a61e/batik-util-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/xml-apis/xml-apis-ext/1.3.04/41a8b86b358e87f3f13cf46069721719105aff66/xml-apis-ext-1.3.04.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.71/e71c3fef58e26affeb03d675e91fd8abdd44aa7b/kotlin-stdlib-common-1.3.71.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/xmlgraphics-commons/1.2/95b325b99d52725661da9db187e6e9a2b0764a27/xmlgraphics-commons-1.2.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.0.4/f029a2aefe2b3e1517573c580f948caac31b1056/commons-logging-1.0.4.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/1.1/5e986a7e4b0472aebe121154178dab2da26a8bf5/commons-io-1.1.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.avalon.framework/avalon-framework-impl/4.3.1/2d5f5a07fd14513ce6d7a7bfaff69419c26dbd0b/avalon-framework-impl-4.3.1.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.avalon.framework/avalon-framework-api/4.3.1/2dacadeb49bc14420990b1f28897d46f96e2181d/avalon-framework-api-4.3.1.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-script/1.7/4ea7906724bfefc1fca3e5b28229a458523e1fbf/batik-script-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-anim/1.7/a45dd2ff8e4ecd56a4fc64dc668b53bee90bf601/batik-anim-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-parser/1.7/5d756cc4f6bf891793e6c7590773859c33a8609f/batik-parser-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-css/1.7/e6bb5c85753331534593f33fb9236acb41a0ab79/batik-css-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-ext/1.7/4784302b44a0336166fef6153a5e3d73e861aecc/batik-ext-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/xalan/xalan/2.6.0/5b010b70e16d540dcb737caa09da1034ea721704/xalan-2.6.0.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-js/1.7/688eb1bf13b7a54491fcb3405068fc5092589884/batik-js-1.7.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.6/9180733b7df8542621dc12e21e87557e8c99b8cb/gson-2.8.6.jar:/home/ulrik/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/15.0/d40ab99147584cf6cfb5245be67b3fee2c7220f9/annotations-15.0.jar HUPPAAL
Could not find backend-file: /home/ulrik/Code/H-Uppaal/build/classes/java/servers/bin-Linux/server. Please make sure to copy UPPAAL binaries to this location.
Could not find backend-file: /home/ulrik/Code/H-Uppaal/build/classes/java/servers/bin-Linux/server. Please make sure to copy UPPAAL binaries to this location.
Could not find backend-file: /home/ulrik/Code/H-Uppaal/build/classes/java/servers/bin-Linux/server. Please make sure to copy UPPAAL binaries to this location.
Could not find backend-file: /home/ulrik/Code/H-Uppaal/build/classes/java/servers/bin-Linux/server. Please make sure to copy UPPAAL binaries to this location.

(java:603): Gdk-WARNING **: 11:05:45.485: XSetErrorHandler() called with a GDK error trap pushed. Don't do that.
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Not on FX application thread; currentThread = AWT-EventQueue-0
at javafx.graphics/com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:291)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:424)
at javafx.graphics/javafx.stage.Window.setShowing(Window.java:1173)
at javafx.graphics/javafx.stage.Window.hide(Window.java:1199)
at javafx.graphics/javafx.stage.PopupWindow.hide(PopupWindow.java:486)
at com.jfoenix.controls.JFXPopup.hide(JFXPopup.java:169)
at dk.cs.aau.huppaal.presentations.DropDownMenu.close(DropDownMenu.java:87)
at dk.cs.aau.huppaal.presentations.DropDownMenu.lambda$new$0(DropDownMenu.java:68)
at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:317)
at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:249)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Save as option

Create a "Save Project as ..." menu option in the File menu.
This should open a file selector in which in which it should be possible to create a new folder and select this new folder.
The project should then be saved in this new folder.

Scrolling sideways doesn't work scrollwheels

v1.4.0-rc1 feedback

Apparently the extra shift-check in the onScroll event handler is not required.

Suggested Fix

Simply remove the if-statement

setOnScroll(e -> {
    var dx = getTranslateX() + e.getDeltaX();
    var dy = getTranslateY() + e.getDeltaY();
    setTranslateX(dx);
    setTranslateY(dy);
});

Editor cannot load invalid subcomponents

Summary:
Deleting components that are referenced as subcomponents invalidates the model and results in bad loads.

Steps to Reproduce:

  • Create a new project (File->New Project)
  • Add two components (component1 and component2)
  • Save the project
  • Add component 2 as a subcomponent in component1
  • Delete component2, but don't delete the subcomponent
  • Save the project
  • Close the editor
  • Open the editor again

Expected results:
The editor loads the project, with an invalid subcomponent (preferably highlighted)

Actual results:
The editor does not load the project at all and logs the following error:

java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because the return value of "java.util.Map.get(Object)" is null
	at dk.cs.aau.huppaal.HUPPAAL.updateDepthMap(HUPPAAL.java:394)
	at dk.cs.aau.huppaal.HUPPAAL.updateDepthMap(HUPPAAL.java:403)
	at dk.cs.aau.huppaal.HUPPAAL.deserializeProject(HUPPAAL.java:366)
	at dk.cs.aau.huppaal.HUPPAAL.initializeProjectFolder(HUPPAAL.java:282)
	at dk.cs.aau.huppaal.HUPPAAL.start(HUPPAAL.java:207)
	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
	at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:474)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:447)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:446)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at java.base/java.lang.Thread.run(Thread.java:831)

Links in logs does not handle embedded parentheses

v1.4.0-rc1 feedback

Given for example the markdown-style link: [someText](component:myComponent(foo, bar)) does not work.

Suggested Fix

  • Either modify the current regex to handle this special case, or
  • Use a real proper markdown parser package (might be a bit overkill)

Loading big projects is quite slow

v1.4.0-rc1 feedback

When loading large projects, the editor freezes and seems to not respond.

Suggested solution

  • Loading the project multi-threaded might speed up the loading.
  • A "loading" splashscreen/preloader with a loading bar or simply a logo with a spinner gif might be a good band-aid solution.

"Integer expected" error

The error is displayed whenever trying to run queries.

I have been looking into the exception generating the message, and it seems to originate from the parseInteger method within the Parser class (line 58). The method calls the nextToken method, which returns 2, causing the parseInteger method to throw the exception.

The exception is caught on line 155 in the Engine class and thrown as an EngineException.

All the classes mentioned above are part of the model.jar file located within the libs folder and originate from UPPAAL. The method called from H-UPPAAL causing the exception is located on line 150 in the UPPAALDriver class. The input is a UppaalSystem object, which is generated based on the HUPPAALDocument generated for the project. This also happens within the Engine class inside the model.jar and is assumed be handled correctly, hence the element closest to the exception handled by H-UPPAAL is the UPPAALDocument generated inside the HUPPAALDocument class.

I have also discovered that the 10. Semester project mentioned that H-UPPAAL was compiled using UPPAAL version 4.1.19 (from 2014). Using this version, a “Syntax error” is shown instead of the “Bug: Integer expected” error. This error is given within the parseProlog method inside the Parser class.

Adding zoom to the editing canvas

It should be possible to zoom in, zoom out and pan up/down and left/right in the editing canvas. This will include adding scroll bars to the right and bottom of the canvas.

Specification:
Four buttons should be added to the bar above the canvas.
Zoom-in: https://material.io/resources/icons/?icon=zoom_in&style=outline
Zoom-to-fit: https://material.io/resources/icons/?icon=zoom_out_map&style=outline
Zoom-to-standard: https://material.io/resources/icons/?icon=crop_original&style=outline
Zoom-out: https://material.io/resources/icons/?icon=zoom_out&style=outline

Keyboard shortcuts
Ctrl++ Zoom-in
Ctrl+- Zoom-out
Ctrl+= Zoom-to-fit
Ctrl+1 Zoom-to-standard

Exception on right click

To reproduce:

  • open a new net
  • right click to open context menu

In console:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Not on FX application thread; currentThread = AWT-EventQueue-0
at javafx.graphics/com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:291)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:424)
at javafx.graphics/javafx.stage.Window.setShowing(Window.java:1173)
at javafx.graphics/javafx.stage.Window.hide(Window.java:1199)
at javafx.graphics/javafx.stage.PopupWindow.hide(PopupWindow.java:486)
at com.jfoenix.controls.JFXPopup.hide(JFXPopup.java:169)
at dk.cs.aau.huppaal.presentations.DropDownMenu.close(DropDownMenu.java:90)
at dk.cs.aau.huppaal.presentations.DropDownMenu.lambda$new$0(DropDownMenu.java:71)
at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:317)
at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:249)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

BUILD SUCCESSFUL in 28s
5 actionable tasks: 5 executed
08:59:40: Task execution finished 'run'.

Do not auto-expand Warnings view

The Errors/Warnings view at the bottom of the screen auto-expands on new errors or warnings.
This is not ideal on particular smaller displays.
Change the behavior such that the tab just updates the number of errors/warnings and does not auto-expand.

Create release 1.0.6

The last release of H-UPPAAL was made in 2017, and there's been made quite a few changes since then. 226 commits to be exact.
I suggest creating a new release, such that users won't be downloading a zip archive with a three year old version of the program.

I think it would be best to create the release after you've had a look at #40, #41, #42 and #43, in case you'd like to bring in those changes.

Delay before running background queries

The queries that are executed in the background to check the reachability to locations should have a wait time added.

When creating a new location this location will have no edges leading to it, thus it will be clear that it will generate a warning when there is no path to the location. We should have a wait period X such that the check will only happen after this amount of time has passed after a location has been created.

We can later tweak how long this wait time should be.

Save and Save As does not work for new projects

Summary:
Save and SaveAs returns "no such file" when saving a new project.

Steps to Reproduce:

  • Create a new project (File->New Project)
  • Add a component
  • Save the project (File -> Save or Save As)
  • Prick a random location, say a new folder in downloads.
  • Press save

Expected results:
The project is saved.

Actual results:
No such file or directory exception is thrown. Unable to save project error is displayed in GUI.

Queries using wrong UPPAALDriver

When the queries are added, their UPPAALDriver is set and never updated. As a consequence, updating the UPPAAL server file location and thus changing the UPPAALDriver will not affect the driver used for the quries before the application is restarted

Make it impossible to move text labels outside the frame of a component

This is an example of 3 text labels that have been moved outside the frame of the component.

image

Locations cannot be moved outside the frame and thus must contain code that detects when the frame edge is reached. Maybe this code can be refactored and moved to a super class of these two object.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.