bjgf issueshttps://gitlab.bluej.org/bluej/bjgf/-/issues2015-11-21T16:40:48Zhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1499[GREENFOOT-155] add functionality to stop a sound2015-11-21T16:40:48ZNeil Brown[GREENFOOT-155] add functionality to stop a soundFor long songs, it might useful to be able to stop a sound. Or maybe stop all sounds?
We might need a GreenfootSound class like we have a GreenfootImage.
---
**Issue metadata**
- Issue type: Task
- Priority: Medium
- Fix versions: 2.0For long songs, it might useful to be able to stop a sound. Or maybe stop all sounds?
We might need a GreenfootSound class like we have a GreenfootImage.
---
**Issue metadata**
- Issue type: Task
- Priority: Medium
- Fix versions: 2.0https://gitlab.bluej.org/bluej/bjgf/-/issues/1500[GREENFOOT-156] Internationalise skeleton project2015-11-21T16:40:48ZMichael Kölling[GREENFOOT-156] Internationalise skeleton projectThe files for new projects (<GREENFOOT_HOME>/lib/greenfoot/skeletonProject/greenfoot/... ) should be moved into the language subdirectories, so that the API comments can be localised (really only relevant for Actor.java and World.java).
...The files for new projects (<GREENFOOT_HOME>/lib/greenfoot/skeletonProject/greenfoot/... ) should be moved into the language subdirectories, so that the API comments can be localised (really only relevant for Actor.java and World.java).
---
**Issue metadata**
- Issue type: Task
- Priority: Low
- Fix versions: 1.5.0https://gitlab.bluej.org/bluej/bjgf/-/issues/1501[GREENFOOT-157] Collision box bug2015-11-21T16:40:48ZNeil Brown[GREENFOOT-157] Collision box bugWhen you setRotation for an Actor, the bounding box is not rotated. This bug is not fixed yet as of Greenfoot 1.45.
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium
- Fix versions: 1.5.0When you setRotation for an Actor, the bounding box is not rotated. This bug is not fixed yet as of Greenfoot 1.45.
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium
- Fix versions: 1.5.0https://gitlab.bluej.org/bluej/bjgf/-/issues/1502[GREENFOOT-158] Infinite loop in World crashed greenfoot2015-11-21T16:40:48ZNeil Brown[GREENFOOT-158] Infinite loop in World crashed greenfootIf you put an infinite loop in the World constructor and compile it will crash and next time you open greenfoot, it compiles right away so you won't be able to use it. The only fix right now is to open the file in an editor and fixing i...If you put an infinite loop in the World constructor and compile it will crash and next time you open greenfoot, it compiles right away so you won't be able to use it. The only fix right now is to open the file in an editor and fixing it. Since most our students are programming novices and "mistakes" do happen, this might appear as a "failure" in the greenfoot part.
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium
- Fix versions: 2.0Davin McCallDavin McCallhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1503[GREENFOOT-159] Find in documentation view is broken2015-11-21T16:40:48ZNeil Brown[GREENFOOT-159] Find in documentation view is brokenConfirmed problem reported by Dick Baldwin on greenfoot-discuss:
{noformat}
I may be the only one who was unaware of this, and it may have been
intended this way, but just in case, I will mention it.
The Find option on the Tools menu o...Confirmed problem reported by Dick Baldwin on greenfoot-discuss:
{noformat}
I may be the only one who was unaware of this, and it may have been
intended this way, but just in case, I will mention it.
The Find option on the Tools menu of the editor doesn't seem to work
properly for searching documentation.
Example, if I
Open the documentation for the Actor class in the editor
Highlight greenfoot at the top to establish the cursor position
Select Tools/Find
Enter the keyword "location"
Check Ignore case and select Search down
Click Find Next
The editor will find the word "location" in the second sentence of the
description.
If I click Find Next again, nothing happens.
If I scroll down and highlight the word "in" immediately following the
word "location" in the description and perform the same search again,
the same word is found as before and clicking the Find Next button
will do nothing.
However, if I
Scroll down and highlight the word void in the first column on the
method named setLocation to establish the cursor position and search
for the word "location", the word is found in the name of the
setLocation method.
Clicking the Find Next button finds another instance of the word in
the description of the method and clicking Find Next again finds
another instance in the long description of the getNeighbors method.
However, after that, selecting "Search up" and clicking Find Now won't
search back up the page.
Dick Baldwin
{noformat}
---
**Issue metadata**
- Issue type: Bug
- Priority: Low
- Fix versions: 2.0Michael KöllingMichael Köllinghttps://gitlab.bluej.org/bluej/bjgf/-/issues/1359[GREENFOOT-15] Add mouse support in the API2015-11-21T16:40:46ZMichael Kölling[GREENFOOT-15] Add mouse support in the APIDavid Barnes also pointed out that it is necessary to have more control over
the mouse to create a chess\-
game where you are only allow to drop the figures at the allowed positions, but
you should be allowed to
drag them everywhere.
-...David Barnes also pointed out that it is necessary to have more control over
the mouse to create a chess\-
game where you are only allow to drop the figures at the allowed positions, but
you should be allowed to
drag them everywhere.
---
**Issue metadata**
- Issue type: Task
- Priority: Medium
- Fix versions: 1.4.0https://gitlab.bluej.org/bluej/bjgf/-/issues/1504[GREENFOOT-160] Add a Greenfoot extensions mechanism2015-11-21T16:40:48ZNeil Brown[GREENFOOT-160] Add a Greenfoot extensions mechanismAdd some kind of extensions functionality similar to the one found in BlueJ.
---
**Issue metadata**
- Issue type: Task
- Priority: Low
- Fix versions: 3.0.0Add some kind of extensions functionality similar to the one found in BlueJ.
---
**Issue metadata**
- Issue type: Task
- Priority: Low
- Fix versions: 3.0.0https://gitlab.bluej.org/bluej/bjgf/-/issues/1505[GREENFOOT-161] Export, then "Compile all" throws exception2015-11-21T16:40:48ZNeil Brown[GREENFOOT-161] Export, then "Compile all" throws exceptionWhen attempting to export when some of the classes are not compiled a dialog will be shown. If you clikc Compile All in this dialog, an exception will be thrown:
{noformat}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerExc...When attempting to export when some of the classes are not compiled a dialog will be shown. If you clikc Compile All in this dialog, an exception will be thrown:
{noformat}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at greenfoot.WorldVisitor.getObjectsListInPaintOrder(WorldVisitor.java:77)
at greenfoot.gui.WorldCanvas.paintObjects(WorldCanvas.java:77)
at greenfoot.core.WorldHandler.getSnapShot(WorldHandler.java:684)
at greenfoot.gui.export.ExportDialog.display(ExportDialog.java:86)
at greenfoot.actions.ExportProjectAction.actionPerformed(ExportProjectAction.java:34)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:389)
at javax.swing.AbstractButton.doClick(AbstractButton.java:337)
at javax.swing.plaf.basic.BasicMenuItemUI$Actions.actionPerformed(BasicMenuItemUI.java:1189)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1641)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2849)
at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:670)
at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:678)
at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:678)
at javax.swing.JMenuBar.processKeyBinding(JMenuBar.java:649)
at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:267)
at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:254)
at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2926)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2918)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2812)
at java.awt.Component.processEvent(Component.java:5903)
at java.awt.Container.processEvent(Container.java:2102)
at java.awt.Component.dispatchEventImpl(Component.java:4497)
at java.awt.Container.dispatchEventImpl(Container.java:2160)
at java.awt.Component.dispatchEvent(Component.java:4327)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:697)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:962)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:834)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:661)
at java.awt.Component.dispatchEventImpl(Component.java:4369)
at java.awt.Container.dispatchEventImpl(Container.java:2160)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4327)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:300)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:210)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:195)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:187)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
{noformat}
---
**Issue metadata**
- Issue type: Bug
- Priority: Low
- Fix versions: 1.4.6https://gitlab.bluej.org/bluej/bjgf/-/issues/1506[GREENFOOT-162] Windows frame update problem2015-11-21T16:40:48ZNeil Brown[GREENFOOT-162] Windows frame update problemOn some windows computers, when a scenario is initially opened, the contents of the frame is not laid out to fill the entire frame \\- there is a big grey border at the right and bottom of the frame. Probably some repainting that is not ...On some windows computers, when a scenario is initially opened, the contents of the frame is not laid out to fill the entire frame \\- there is a big grey border at the right and bottom of the frame. Probably some repainting that is not done correctly (from the right thread).
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium
- Fix versions: 1.5.0https://gitlab.bluej.org/bluej/bjgf/-/issues/1507[GREENFOOT-163] Speed setting is wrong in export2015-11-21T16:40:48ZMichael Kölling[GREENFOOT-163] Speed setting is wrong in exportThe speed slider setting used in 'Export' is wrong.
Use case: open a scenario, change the speed slider, then export. It seems that the speed setting that was set at opening time (before the change) gets used for the export.
---
**Issu...The speed slider setting used in 'Export' is wrong.
Use case: open a scenario, change the speed slider, then export. It seems that the speed setting that was set at opening time (before the change) gets used for the export.
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium
- Fix versions: 1.4.6https://gitlab.bluej.org/bluej/bjgf/-/issues/1508[GREENFOOT-164] IllegalMonitorStateException when moving speedslider2015-11-21T16:40:48ZNeil Brown[GREENFOOT-164] IllegalMonitorStateException when moving speedsliderException in thread "SimulationThread" java.lang.IllegalMonitorStateException
at java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryRelease(ReentrantReadWriteLock.java:317)
at java.util.concurrent.locks.AbstractQueuedSynchronize...Exception in thread "SimulationThread" java.lang.IllegalMonitorStateException
at java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryRelease(ReentrantReadWriteLock.java:317)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1175)
at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock(ReentrantReadWriteLock.java:992)
at greenfoot.core.Simulation.runOneLoop(Simulation.java:212)
at greenfoot.core.Simulation.run(Simulation.java:128)
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium
- Fix versions: 1.4.6https://gitlab.bluej.org/bluej/bjgf/-/issues/1509[GREENFOOT-165] Should not show "open editor" in menu for classes with no source2015-11-21T16:40:48ZDavin McCall[GREENFOOT-165] Should not show "open editor" in menu for classes with no sourceShould not show "open editor" in menu for classes with no source (although it would be nice if any documentation for the class could still be viewed).
---
**Issue metadata**
- Issue type: Bug
- Priority: Low
- Fix versions: 2.0Should not show "open editor" in menu for classes with no source (although it would be nice if any documentation for the class could still be viewed).
---
**Issue metadata**
- Issue type: Bug
- Priority: Low
- Fix versions: 2.0Neil BrownNeil Brownhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1510[GREENFOOT-166] rename World.startSimulation() and World.stopSimulation()2015-11-21T16:40:48ZNeil Brown[GREENFOOT-166] rename World.startSimulation() and World.stopSimulation()The two methods Greenfoot.startSimulation and Greenfoot.stopSimulation are stupid.
They should be renamed to Greenfoot.run() and Greenfoot.pause() so they have similar naming as the buttons in the Greenfoot UI.
\---\-
We also though...The two methods Greenfoot.startSimulation and Greenfoot.stopSimulation are stupid.
They should be renamed to Greenfoot.run() and Greenfoot.pause() so they have similar naming as the buttons in the Greenfoot UI.
\---\-
We also thought about renaming them to stop() and start() since that is more in line with the actual behaviour. Using "pause" indicates that it can be resumed from the place where it was paused, which is not the case. Code after the invocation of pause() will not be executed \\- nor will any actors that haven't acted yet <\- CHECK IF THIS IS ACTUALLY TRUE...
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium
- Fix versions: 1.5.0https://gitlab.bluej.org/bluej/bjgf/-/issues/1511[GREENFOOT-167] Greenfoot.delay() causes an IllegalMonitorStateException2015-11-21T16:40:48ZNeil Brown[GREENFOOT-167] Greenfoot.delay() causes an IllegalMonitorStateExceptionThis seems to happen every once in a while with scenarios that use delay() when the scenario is paused or reset \\- might be because it doesn't want to do this when the scenario is pausing? It can cause Greenfoot to lock up once in a whi...This seems to happen every once in a while with scenarios that use delay() when the scenario is paused or reset \\- might be because it doesn't want to do this when the scenario is pausing? It can cause Greenfoot to lock up once in a while as well.
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium
- Fix versions: 1.4.6https://gitlab.bluej.org/bluej/bjgf/-/issues/1512[GREENFOOT-168] ~ operator not handled properly2015-11-21T16:40:48ZNeil Brown[GREENFOOT-168] ~ operator not handled properlyIf you try to apply ~ to a data type that cannot be not-ed so to speak (i.e. boolean b = ~false) the following message appears in the terminal:
ClassParser: Unhandled node type (expression) : 153
---
**Issue metadata**
- Issue type: ...If you try to apply ~ to a data type that cannot be not-ed so to speak (i.e. boolean b = ~false) the following message appears in the terminal:
ClassParser: Unhandled node type (expression) : 153
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium
- Fix versions: 1.5.2Davin McCallDavin McCallhttps://gitlab.bluej.org/bluej/bjgf/-/issues/1513[GREENFOOT-169] change directory name whilst Greenfoot is running throws an e...2015-11-21T16:40:48ZNeil Brown[GREENFOOT-169] change directory name whilst Greenfoot is running throws an exceptionIf you change the name of the directory Greenfoot has been looking in, whilst it's running, then the following stack trace is produced in the Greenfoot terminal. It still also shows that same folder that it tried to find and does not exi...If you change the name of the directory Greenfoot has been looking in, whilst it's running, then the following stack trace is produced in the Greenfoot terminal. It still also shows that same folder that it tried to find and does not exist in the Open Scenario dialog.
{noformat}
FileSystemView.getShellFolder: f=/home/user/greenfoot
java.io.FileNotFoundException
at sun.awt.shell.ShellFolder.getShellFolder(ShellFolder.java:208)
at javax.swing.filechooser.FileSystemView.getShellFolder(FileSystemView.java:507)
at javax.swing.filechooser.FileSystemView.getFiles(FileSystemView.java:431)
at javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread$1.call(BasicDirectoryModel.java:225)
at javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread$1.call(BasicDirectoryModel.java:221)
at sun.awt.shell.ShellFolderManager$DirectInvoker.invoke(ShellFolderManager.java:207)
at javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread.run0(BasicDirectoryModel.java:221)
at javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread.run(BasicDirectoryModel.java:216)
Exception in thread "Basic L&F File Loading Thread" java.lang.RuntimeException: java.lang.NullPointerException
at sun.awt.shell.ShellFolderManager$DirectInvoker.invoke(ShellFolderManager.java:209)
at javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread.run0(BasicDirectoryModel.java:221)
at javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread.run(BasicDirectoryModel.java:216)
Caused by: java.lang.NullPointerException
at javax.swing.filechooser.FileSystemView.getFiles(FileSystemView.java:434)
at javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread$1.call(BasicDirectoryModel.java:225)
at javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread$1.call(BasicDirectoryModel.java:221)
at sun.awt.shell.ShellFolderManager$DirectInvoker.invoke(ShellFolderManager.java:207)
... 2 more
{noformat}
---
**Issue metadata**
- Issue type: Bug
- Priority: Low
- Fix versions: 2.0https://gitlab.bluej.org/bluej/bjgf/-/issues/1360[GREENFOOT-16] addedToWorld can get called several times when dragging obejct...2015-11-21T16:40:46ZMichael Kölling[GREENFOOT-16] addedToWorld can get called several times when dragging obejct outside the world.If an object is in the world already and you drag outside the world, when you
drag it back in again addedToWorld will be called again.
---
**Issue metadata**
- Issue type: Bug
- Priority: Low
- Fix versions: 1.4.0If an object is in the world already and you drag outside the world, when you
drag it back in again addedToWorld will be called again.
---
**Issue metadata**
- Issue type: Bug
- Priority: Low
- Fix versions: 1.4.0https://gitlab.bluej.org/bluej/bjgf/-/issues/1514[GREENFOOT-170] If you make a World class that takes parameters, undescriptiv...2015-11-21T16:40:48ZNeil Brown[GREENFOOT-170] If you make a World class that takes parameters, undescriptive exception is thrownIf you make a new World class which takes parameters then if Greenfoot tries to make an instance of that world the following exception is thrown:
{noformat}
java.lang.InstantiationException: Test
at java.lang.Class.newInstance0(Class.j...If you make a new World class which takes parameters then if Greenfoot tries to make an instance of that world the following exception is thrown:
{noformat}
java.lang.InstantiationException: Test
at java.lang.Class.newInstance0(Class.java:340)
at java.lang.Class.newInstance(Class.java:308)
at greenfoot.platforms.ide.WorldHandlerDelegateIDE.instantiateNewWorld(WorldHandlerDelegateIDE.java:400)
at greenfoot.core.WorldHandler.instantiateNewWorld(WorldHandler.java:320)
at greenfoot.gui.GreenfootFrame$3.run(GreenfootFrame.java:809)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
{noformat}
I can understand why this is thrown, however perhaps it should be more descriptive. Most people would not realize that it is because of their parameters on their World class.
---
**Issue metadata**
- Issue type: Bug
- Priority: Low
- Fix versions: 1.5.2https://gitlab.bluej.org/bluej/bjgf/-/issues/1515[GREENFOOT-171] Set a scenarios maximum speed2015-11-21T16:40:48ZNeil Brown[GREENFOOT-171] Set a scenarios maximum speedOften I need to set the speedometer to maximum in case someone is using a low end PC, however if they use a high end PC then the game is way too fast. So if you could set a maximum frame rate which the speedometer will not go over, say f...Often I need to set the speedometer to maximum in case someone is using a low end PC, however if they use a high end PC then the game is way too fast. So if you could set a maximum frame rate which the speedometer will not go over, say for example you set it to 60fps, then even when the speed is set to maximum it won't run faster then that.
---
**Issue metadata**
- Issue type: Task
- Priority: Medium
- Fix versions: 1.4.6https://gitlab.bluej.org/bluej/bjgf/-/issues/1516[GREENFOOT-172] Possible to create a class with a blank name2015-11-21T16:40:48ZNeil Brown[GREENFOOT-172] Possible to create a class with a blank nameIf you hit edit, then new class, then enter very quickly, a new class is created with a blank name. I believe this is because it's before the frame has fully initialised. Would it be better to set the OK button as inactive by default unt...If you hit edit, then new class, then enter very quickly, a new class is created with a blank name. I believe this is because it's before the frame has fully initialised. Would it be better to set the OK button as inactive by default until something has been typed in? This should solve the problem and also seems nicer than being able to press the button when nothing has been typed in the first place.
---
**Issue metadata**
- Issue type: Bug
- Priority: Medium
- Fix versions: 1.4.6