bjgf issueshttps://gitlab.bluej.org/bluej/bjgf/-/issues2018-05-21T15:32:18Zhttps://gitlab.bluej.org/bluej/bjgf/-/issues/2015[GREENFOOT-680] Convert the Greenfoot standalone viewer to JavaFX2018-05-21T15:32:18ZNeil Brown[GREENFOOT-680] Convert the Greenfoot standalone viewer to JavaFXWe decided to drop the old Swing aspects and convert the standalone viewer to JavaFX and thus share components and code with the JavaFX version.
---
**Issue metadata**
- Issue type: Bug
- Priority: MediumWe decided to drop the old Swing aspects and convert the standalone viewer to JavaFX and thus share components and code with the JavaFX version.
---
**Issue metadata**
- Issue type: Bug
- Priority: MediumNeil BrownNeil Brownhttps://gitlab.bluej.org/bluej/bjgf/-/issues/2014[GREENFOOT-679] SoundExceptionHandler.handleLineUnavailableException needs to...2018-04-13T16:56:37ZNeil Brown[GREENFOOT-679] SoundExceptionHandler.handleLineUnavailableException needs to work differentlyThe method SoundExceptionHandler.handleLineUnavailableException runs on the debug VM, and currently it shows a Swing dialog. This is not a good idea any more as that process doesn't run any GUI. We could get the delegate it calls to se...The method SoundExceptionHandler.handleLineUnavailableException runs on the debug VM, and currently it shows a Swing dialog. This is not a good idea any more as that process doesn't run any GUI. We could get the delegate it calls to send a message to the server VM (or use a special breakpoint). However, I remember that when this used to crop up regularly on Linux, the dialog was pretty annoying anyway. I propose we instead switch it to print out to the System.err console like the neighbouring handleBlahException methods.
After this is done, GreenfootUtil.displayMessage can be removed, as can GreenfootUtilDelegate.displayMessage.
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium
- Fix versions: 3.5.0Hamza HamzaHamza Hamzahttps://gitlab.bluej.org/bluej/bjgf/-/issues/2013[GREENFOOT-678] Execution twirler appears when simulation speed is set very low2018-07-27T11:52:08ZDavin McCall[GREENFOOT-678] Execution twirler appears when simulation speed is set very lowWhen the simulation speed is very low, the execution twirler appears briefly every act cycle.
Also: option in the twirler drop-drown is to "Restart Greenfoot" - it no longer does this; should say "Reset scenario" or similar instead.
...When the simulation speed is very low, the execution twirler appears briefly every act cycle.
Also: option in the twirler drop-drown is to "Restart Greenfoot" - it no longer does this; should say "Reset scenario" or similar instead.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumHamza HamzaHamza Hamzahttps://gitlab.bluej.org/bluej/bjgf/-/issues/2012[GREENFOOT-677] About dialog, translators slide down - dialog size is fixed2018-05-17T13:13:53ZDavin McCall[GREENFOOT-677] About dialog, translators slide down - dialog size is fixedIf the "translators" slide-down in the About dialog is opened, it increases the content size of the dialog, causing a vertical scrollbar to appear. Instead the dialog should grow.
Tested on Linux; if it grows on Mac and Windows then w...If the "translators" slide-down in the About dialog is opened, it increases the content size of the dialog, causing a vertical scrollbar to appear. Instead the dialog should grow.
Tested on Linux; if it grows on Mac and Windows then we can probably not worry about this.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumAmjad AltadmriAmjad Altadmrihttps://gitlab.bluej.org/bluej/bjgf/-/issues/2010[GREENFOOT-675] Greenfoot.ask prompt is dispalyed in wrong location2018-07-27T11:52:31ZDavin McCall[GREENFOOT-675] Greenfoot.ask prompt is dispalyed in wrong locationThe prompt from a Greenfoot.ask() question is currently being displayed above the world; the text entry box is below the world. They should both be below the world. The prompt should probably be styled a bit better also - different backg...The prompt from a Greenfoot.ask() question is currently being displayed above the world; the text entry box is below the world. They should both be below the world. The prompt should probably be styled a bit better also - different background colour etc so that it is more prominent.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumHamza HamzaHamza Hamzahttps://gitlab.bluej.org/bluej/bjgf/-/issues/2009[GREENFOOT-674] Act, Run, Reset buttons should be disabled during reset2018-07-27T11:54:22ZDavin McCall[GREENFOOT-674] Act, Run, Reset buttons should be disabled during resetThe control panel buttons currently remain enabled during reset (world instantiation). They should be disabled.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumThe control panel buttons currently remain enabled during reset (world instantiation). They should be disabled.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumHamza HamzaHamza Hamzahttps://gitlab.bluej.org/bluej/bjgf/-/issues/2008[GREENFOOT-673] Exception during editing / Scope highlighting fails2018-06-07T13:10:04ZDavin McCall[GREENFOOT-673] Exception during editing / Scope highlighting failsThis is a mirror of the BlueJ bug. See: http://bugs.bluej.org/browse/BLUEJ-1176
It does not affect Greenfoot 3.1.0, but may affect 3.1.1 if it is not fixed before release. We should consider investigating before release.
---
**Issue...This is a mirror of the BlueJ bug. See: http://bugs.bluej.org/browse/BLUEJ-1176
It does not affect Greenfoot 3.1.0, but may affect 3.1.1 if it is not fixed before release. We should consider investigating before release.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumDavin McCallDavin McCallhttps://gitlab.bluej.org/bluej/bjgf/-/issues/2007[GREENFOOT-672] New subclass action available on final classes2018-05-08T10:56:21ZNeil Brown[GREENFOOT-672] New subclass action available on final classesIn Greenfoot, we offer to create a new subclass of a class in the diagram. This is currently shown even for classes which are final (and thus cannot be subclassed). We should detect that the class is final, and not offer this option in...In Greenfoot, we offer to create a new subclass of a class in the diagram. This is currently shown even for classes which are final (and thus cannot be subclassed). We should detect that the class is final, and not offer this option in the context menu.
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium
- Fix versions: 3.5.0Amjad AltadmriAmjad Altadmrihttps://gitlab.bluej.org/bluej/bjgf/-/issues/2006[GREENFOOT-671] Pressing shift prints message about unknown key2018-05-21T17:00:15ZDavin McCall[GREENFOOT-671] Pressing shift prints message about unknown keyPressing shift while running a scenario prints this in the terminal (tested on Linux):
{quote}Unknown key code: SHIFT
{quote}
---
**Issue metadata**
- Issue type: Task
- Priority: LowPressing shift while running a scenario prints this in the terminal (tested on Linux):
{quote}Unknown key code: SHIFT
{quote}
---
**Issue metadata**
- Issue type: Task
- Priority: LowHamza HamzaHamza Hamzahttps://gitlab.bluej.org/bluej/bjgf/-/issues/2005[GREENFOOT-670] Deleting the current world class causes exceptions2018-07-27T11:44:13ZNeil Brown[GREENFOOT-670] Deleting the current world class causes exceptionsIf you delete the current world class (i.e. the one that instantiates by default), you will get exceptions when Greenfoot later tries to use the currentWorld field in GreenfootStage. The way to solve this might be to listen for class de...If you delete the current world class (i.e. the one that instantiates by default), you will get exceptions when Greenfoot later tries to use the currentWorld field in GreenfootStage. The way to solve this might be to listen for class deletions in GreenfootStage, and null out currentWorld if we see that it is the class that is being deleted.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumHamza HamzaHamza Hamzahttps://gitlab.bluej.org/bluej/bjgf/-/issues/2004[GREENFOOT-669] Editor "undo" not working properly2018-07-27T11:45:08ZDavin McCall[GREENFOOT-669] Editor "undo" not working properlyCreate a new class, highlight some lines of text, press "delete". Then, press ctrl+z (or "Undo" on toolbar). The deleted text is not restored.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumCreate a new class, highlight some lines of text, press "delete". Then, press ctrl+z (or "Undo" on toolbar). The deleted text is not restored.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumAmjad AltadmriAmjad Altadmrihttps://gitlab.bluej.org/bluej/bjgf/-/issues/2003[GREENFOOT-668] Speed slider is jittery2018-07-27T11:46:23ZDavin McCall[GREENFOOT-668] Speed slider is jitteryThe speed slider movement is jittery when it is dragged with the mouse. I suspect that moving it transmits speed to the other VM, which then also causes the same speed to be transmitted back to the server VM after a round-trip delay, by ...The speed slider movement is jittery when it is dragged with the mouse. I suspect that moving it transmits speed to the other VM, which then also causes the same speed to be transmitted back to the server VM after a round-trip delay, by which time the slider has been moved.
To solve this, I think the debug VM side should only send the speed when it is changed locally (i.e. not when it is changed due to a command from the server VM) in which case it should continue to transmit the updated speed until it receives an acknowledgement from the server VM (in the form of a frame with sequence number >= the sequence number at which the speed change was first sent).
---
**Issue metadata**
- Issue type: Task
- Priority: MediumHamza HamzaHamza Hamzahttps://gitlab.bluej.org/bluej/bjgf/-/issues/2002[GREENFOOT-667] Make debug VM poll shared memory during post-act pause2018-04-06T16:41:40ZNeil Brown[GREENFOOT-667] Make debug VM poll shared memory during post-act pauseIn the old debug VM, when the user moved the speed slider, we interrupted the current pause of the simulation thread, so that it could proceed if the speed had now gone up.
With the current changes (as of 12/3/2018) in the rewrite, th...In the old debug VM, when the user moved the speed slider, we interrupted the current pause of the simulation thread, so that it could proceed if the speed had now gone up.
With the current changes (as of 12/3/2018) in the rewrite, this no longer occurs, so putting the slider down to minimum then back up while running encounters a long simulation delay. Davin also points out that issuing a reset during a long frame pause will encounter the same issue. The suggested fix is to poll the shared memory for speed changes, reset commands and so on during the simulation pause (splitting it up into several smaller pauses, with a max wait of say 250ms between each poll). After this, we can probably simplify Simulation.setSpeed, which currently can be called from an arbitrary thread and has locking, but I think afterwards will only be called from the simulation thread.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumDavin McCallDavin McCallhttps://gitlab.bluej.org/bluej/bjgf/-/issues/2001[GREENFOOT-666] Add the show-readme action to the new FX window2018-07-27T11:47:01ZNeil Brown[GREENFOOT-666] Add the show-readme action to the new FX windowGreenfoot has a "Scenario Information" menu item which shows the README file for the scenario (like double-clicking the readme icon in BlueJ). We should add this action to the menu in the new FX GreenfootStage.
---
**Issue metadata**
...Greenfoot has a "Scenario Information" menu item which shows the README file for the scenario (like double-clicking the readme icon in BlueJ). We should add this action to the menu in the new FX GreenfootStage.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumHamza HamzaHamza Hamzahttps://gitlab.bluej.org/bluej/bjgf/-/issues/2000[GREENFOOT-665] Check the debugger reset handling2018-07-27T11:47:46ZNeil Brown[GREENFOOT-665] Check the debugger reset handlingIn GreenfootDebugHandler, currently line 305, there is a block that begins:
```
else if (atBreakpoint && e.getBreakpointProperties().get(RESET_KEY) != null)
```
This code makes sure that the simulation thread is resumed when rese...In GreenfootDebugHandler, currently line 305, there is a block that begins:
```
else if (atBreakpoint && e.getBreakpointProperties().get(RESET_KEY) != null)
```
This code makes sure that the simulation thread is resumed when reset is clicked, and the object bench is cleared. This code won't work as it stands because it is setting a breakpoint in the debug VM ResetWorldAction, which we no longer use. We need to either put the code in a method and call it directly when the reset button is clicked on the server VM, or listen to a different breakpoint. I think the former is the right thing to do.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumHamza HamzaHamza Hamzahttps://gitlab.bluej.org/bluej/bjgf/-/issues/1999[GREENFOOT-664] Make Greenfoot.setSpeed update the FX speed slider value2018-07-27T11:48:22ZNeil Brown[GREENFOOT-664] Make Greenfoot.setSpeed update the FX speed slider valueThe new FX speed slider sends its new value through to the simulation thread to call Greenfoot.setSpeed(), which is good. It's also possible for user code to call Greenfoot.setSpeed, in which case the FX speed slider should be updated t...The new FX speed slider sends its new value through to the simulation thread to call Greenfoot.setSpeed(), which is good. It's also possible for user code to call Greenfoot.setSpeed, in which case the FX speed slider should be updated to reflect this. I think the easiest way to do this may be for the debug VM to put the current speed into the shared memory each frame, and we watch for this on the server VM and update the GUI slider if necessary.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumNeil BrownNeil Brownhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1998[GREENFOOT-663] Switch MessageDialog to JavaFX2018-07-27T11:48:56ZNeil Brown[GREENFOOT-663] Switch MessageDialog to JavaFXThe Greenfoot API version check now takes place on the server VM, which is correct. However, it calls through to GreenfootMain.updateApi (which itself we may want to move, as that is usually for debug VM code, not server VM), which crea...The Greenfoot API version check now takes place on the server VM, which is correct. However, it calls through to GreenfootMain.updateApi (which itself we may want to move, as that is usually for debug VM code, not server VM), which creates MessageDialog, which is Swing-based. We should either port MessageDialog to JavaFX, or find another existing JavaFX class to use instead for showing this dialog.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumHamza HamzaHamza Hamzahttps://gitlab.bluej.org/bluej/bjgf/-/issues/1997[GREENFOOT-662] Move the background message functionality to GreenfootStage2018-07-27T11:49:23ZNeil Brown[GREENFOOT-662] Move the background message functionality to GreenfootStageGreenfootFrame has some functionality to show a background message hint in various circumstances, such as when there is no world, or it is taking too long to initialise. You can look at the call hierarchy of GreenfootFrame.updateBackgro...GreenfootFrame has some functionality to show a background message hint in various circumstances, such as when there is no world, or it is taking too long to initialise. You can look at the call hierarchy of GreenfootFrame.updateBackgroundMessage() to see all the cases. This should be ported to GreenfootStage, which will involve two parts. One is simply adding the GUI components necessary to have a background message in GreenfootStage. The other is finding all the Debug VM callers of the original method, and translating that into calls on the server VM. In many cases this may make things more straightforward, but it will involve a bit of work.
---
**Issue metadata**
- Issue type: Task
- Priority: MediumNeil BrownNeil Brownhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1996[GREENFOOT-661] Showing instance-variables and method call dialog on high res...2018-05-03T14:39:52ZHamza Hamza[GREENFOOT-661] Showing instance-variables and method call dialog on high resolution screen does not work properly This issue has been reported by a user, when showing instance-variables and when calling a method on high resolution screen do not work properly like in the pictures attached here.
{color:#000000} {color}
---
**Issue metadata*...This issue has been reported by a user, when showing instance-variables and when calling a method on high resolution screen do not work properly like in the pictures attached here.
{color:#000000} {color}
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium
- Fix versions: 3.5.0Amjad AltadmriAmjad Altadmrihttps://gitlab.bluej.org/bluej/bjgf/-/issues/1995[GREENFOOT-660] Support double-byte characters in usernames in Export dialog2018-05-09T14:42:39ZAmjad Altadmri[GREENFOOT-660] Support double-byte characters in usernames in Export dialogWe allow double-byte characters in the gallery, but when trying to export from Greenfoot, it will not work. This is because these characters are not escaped in the constructed link.
Steps to reproduce:
- Go to the Export dialog.
...We allow double-byte characters in the gallery, but when trying to export from Greenfoot, it will not work. This is because these characters are not escaped in the constructed link.
Steps to reproduce:
- Go to the Export dialog.
- Try to insert a username with such characters, for example, 일리아스
it will fire the next Exception:
Exception in thread "Thread-10" java.lang.IllegalArgumentException: Invalid uri '[http://localhost:3000/user/일리아스/check_scenario/ants-3':|http://localhost:3000/user/%EC%9D%BC%EB%A6%AC%EC%95%84%EC%8A%A4/check_scenario/ants-3':] escaped absolute path not valid
at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:222)
at org.apache.commons.httpclient.methods.GetMethod.<init>(GetMethod.java:89)
at greenfoot.export.mygame.MyGameClient.checkExistingScenario(MyGameClient.java:302)
at greenfoot.export.mygame.ExistingScenarioChecker.checkExistence(ExistingScenarioChecker.java:152)
at greenfoot.export.mygame.ExistingScenarioChecker.access$300(ExistingScenarioChecker.java:35)
at greenfoot.export.mygame.ExistingScenarioChecker$ScenarioWorker.construct(ExistingScenarioChecker.java:58)
at bluej.utility.SwingWorker$1.run(SwingWorker.java:137)
at java.lang.Thread.run(Thread.java:745)
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium
- Fix versions: 3.5.0Amjad AltadmriAmjad Altadmri