Skip to content

Commit aaa9c2b

Browse files
committed
Use more robust method of checking for headless
1 parent 58da4df commit aaa9c2b

File tree

4 files changed

+9
-20
lines changed

4 files changed

+9
-20
lines changed

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ isSnapshot := true
1010

1111
netLogoExtName := "ls"
1212
netLogoClassManager := "org.nlogo.ls.LevelSpace"
13-
netLogoVersion := "7.0.0-RC1-e8801f2"
13+
netLogoVersion := "7.0.0-424b50b"
1414
netLogoTestExtras += (baseDirectory.value / "test")
1515

1616
Compile / scalaSource := baseDirectory.value / "src" / "main"

src/main/LevelSpace.scala

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
package org.nlogo.ls
22

3-
import java.awt.GraphicsEnvironment
43
import java.awt.event.{ ActionEvent, ActionListener }
54
import java.lang.{ Double => JDouble }
65
import java.util
7-
import java.util.Objects
86
import java.util.concurrent.ConcurrentHashMap
97
import javax.swing.JMenuItem
108

@@ -14,15 +12,13 @@ import org.nlogo.app.{ App, ToolsMenu }
1412
import org.nlogo.awt.EventQueue
1513
import org.nlogo.core.LogoList
1614
import org.nlogo.nvm.HaltException
17-
import org.nlogo.workspace.{ AbstractWorkspace, ExtensionManager => WorkspaceExtensionManager }
15+
import org.nlogo.workspace.AbstractWorkspace
1816

1917
import scala.collection.immutable.ArraySeq
2018
import scala.jdk.CollectionConverters.ConcurrentMapHasAsScala
2119

2220
object LevelSpace {
23-
private var isHeadlessWorkspace = false
24-
def isHeadless: Boolean =
25-
isHeadlessWorkspace || GraphicsEnvironment.isHeadless || Objects.equals(System.getProperty("org.nlogo.preferHeadless"), "true")
21+
var isHeadless = true
2622

2723
@throws[ExtensionException]
2824
def castToId(id: Any): Int = id match {
@@ -207,14 +203,7 @@ class LevelSpace extends DefaultClassManager { // This can be accessed by both t
207203

208204
@throws[ExtensionException]
209205
override def runOnce(em: ExtensionManager): Unit = {
210-
// "Can't we just check the `org.nlogo.preferHeadless` property?" Well, kind-of, but
211-
// it turns out that doesn't get set automatically and there are a lot of ways to run
212-
// NetLogo models headlessly that "forget" to do it. It's safer to check if the
213-
// workspace we're using is headless in addition to checking the property. -Jeremy B
214-
// July 2022
215-
LevelSpace.isHeadlessWorkspace = em.isInstanceOf[WorkspaceExtensionManager] &&
216-
em.asInstanceOf[WorkspaceExtensionManager].workspace.isInstanceOf[AbstractWorkspace] &&
217-
em.asInstanceOf[WorkspaceExtensionManager].workspace.asInstanceOf[AbstractWorkspace].isHeadless
206+
LevelSpace.isHeadless = !em.workspaceContext.workspaceGUI
218207

219208
if (!LevelSpace.isHeadless) {
220209
modelManager = new BackingModelManager

src/test/Test.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.nlogo.ls
22

3+
import java.io.File
4+
35
import org.nlogo.headless.TestLanguage
46

5-
class Tests extends TestLanguage(Seq(new java.io.File("tests.txt").getCanonicalFile)) {
6-
System.setProperty("org.nlogo.preferHeadless", "true")
7-
}
7+
class Tests extends TestLanguage(Seq(new File("tests.txt").getCanonicalFile))

tests.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ ls-set-name
9898
ls-path-of
9999
extensions [ ls ]
100100
O> ls:create-models 1 "extensions/ls/test/Blank.nlogox"
101-
member? "extensions/ls/test/Blank.nlogox" ls:path-of 0 => true
102-
member? "extensions/ls/test/Blank.nlogox" first ls:path-of [0] => true
101+
member? "extensions/ls/test/Blank.nlogox" ls:path-of 0 or member? "extensions\\ls\\test\\Blank.nlogox" ls:path-of 0 => true
102+
member? "extensions/ls/test/Blank.nlogox" first ls:path-of [0] or member? "extensions\\ls\\test\\Blank.nlogox" first ls:path-of [0] => true
103103

104104
*ls-errors-propagate
105105
extensions [ ls ]

0 commit comments

Comments
 (0)