srecord noeq G22SystemInfoPanel(G22Utils g22utils) is Swingable { cachedVisualize { var gazelleJar = g22utils.gazelleJar(); File conceptsFile = g22utils.concepts().conceptsFile(); var projectLibs = g22utils.projectActions().projectLibs(); var selfTests = g22utils.projectActions().selfTests(); // Sadly, even jScrollVertical causes a bug in formLayouter1 that // makes the form grow horizontally without bounds, // so no scrolling for now ret jscrollVertical(makeForm3( "Java Version", jlabel(javaVersion()), "Gazelle Jar", JFilePathLabel(gazelleJar).visualize(), "Gazelle Jar Size", str_toMB_oneDigit(fileSize(gazelleJar)), "Memory use (objects)", jline( jLabelShortCalcedEvery(1.0, -> str_toMB(usedMemory())), jThreadedButton("Collect garbage", l0 gc), ), "Max heap", jLabelShortCalcedEvery(1.0, -> str_toMB(maxMemory())), "Threads", jReloadEvery(1.0, -> jLabel(n2(threadCount()))), "Java VM arguments", joinWithSpace(vmArguments()), "Using Custom Classloader", yesNoShort(usingStarter(mc())), "Compilation Date", jlabel(g22utils.compilationDate()), "Project Libraries", joinWithCommaOr(projectLibs, "-"), "Project Database" := JFilePathLabel(conceptsFile).visualize(), "Project Database Size" := str_toKB(fileSize(conceptsFile)), "Self-Tests" := jlabel(selfTests == null ? "Not run" : selfTests.status()), "Gazelle Count" := toolTip("How many Gazelles are running in the world", jLiveValueLabel((LiveValue) dm_callOSOpt lvComputerCount())), )); } }