src/Pure/System/gui_setup.scala
author wenzelm
Wed, 22 Jun 2011 21:35:48 +0200
changeset 43514 45cf8d5e109a
parent 41381 77990a6cd558
child 43520 cec9b95fa35d
permissions -rw-r--r--
lazy Isabelle_System.default supports implicit boot;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31827
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
     1
/*  Title:      Pure/System/gui_setup.scala
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
     2
    Author:     Makarius
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
     3
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
     4
GUI for basic system setup.
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
     5
*/
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
     6
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
     7
package isabelle
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
     8
36994
797af3ebd5f1 simplified alignment via FlowPanel;
wenzelm
parents: 36786
diff changeset
     9
import scala.swing.{Button, FlowPanel, BorderPanel, MainFrame, TextArea, SwingApplication}
797af3ebd5f1 simplified alignment via FlowPanel;
wenzelm
parents: 36786
diff changeset
    10
import scala.swing.event.ButtonClicked
31827
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
    11
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
    12
36678
49918c180e8c use SwingApplication instead of deprecated GUIApplication;
wenzelm
parents: 36207
diff changeset
    13
object GUI_Setup extends SwingApplication
31827
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
    14
{
36678
49918c180e8c use SwingApplication instead of deprecated GUIApplication;
wenzelm
parents: 36207
diff changeset
    15
  def startup(args: Array[String]) =
31828
31584cf201cc sane platform look-and-feel;
wenzelm
parents: 31827
diff changeset
    16
  {
36786
b7a62e7dec00 more convenient look-and-feel setup;
wenzelm
parents: 36678
diff changeset
    17
    Platform.init_laf()
36678
49918c180e8c use SwingApplication instead of deprecated GUIApplication;
wenzelm
parents: 36207
diff changeset
    18
    top.pack()
49918c180e8c use SwingApplication instead of deprecated GUIApplication;
wenzelm
parents: 36207
diff changeset
    19
    top.visible = true
31828
31584cf201cc sane platform look-and-feel;
wenzelm
parents: 31827
diff changeset
    20
  }
31584cf201cc sane platform look-and-feel;
wenzelm
parents: 31827
diff changeset
    21
31827
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
    22
  def top = new MainFrame {
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
    23
    title = "Isabelle setup"
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
    24
31843
f02c6a43f1b3 display some platform information;
wenzelm
parents: 31828
diff changeset
    25
    // components
f02c6a43f1b3 display some platform information;
wenzelm
parents: 31828
diff changeset
    26
    val text = new TextArea {
f02c6a43f1b3 display some platform information;
wenzelm
parents: 31828
diff changeset
    27
      editable = false
31860
e49011bb85da more display;
wenzelm
parents: 31844
diff changeset
    28
      columns = 80
e49011bb85da more display;
wenzelm
parents: 31844
diff changeset
    29
      rows = 20
31843
f02c6a43f1b3 display some platform information;
wenzelm
parents: 31828
diff changeset
    30
    }
36994
797af3ebd5f1 simplified alignment via FlowPanel;
wenzelm
parents: 36786
diff changeset
    31
    val ok = new Button { text = "OK" }
797af3ebd5f1 simplified alignment via FlowPanel;
wenzelm
parents: 36786
diff changeset
    32
    val ok_panel = new FlowPanel(FlowPanel.Alignment.Center)(ok)
797af3ebd5f1 simplified alignment via FlowPanel;
wenzelm
parents: 36786
diff changeset
    33
797af3ebd5f1 simplified alignment via FlowPanel;
wenzelm
parents: 36786
diff changeset
    34
    val panel = new BorderPanel
797af3ebd5f1 simplified alignment via FlowPanel;
wenzelm
parents: 36786
diff changeset
    35
    panel.layout(text) = BorderPanel.Position.Center
797af3ebd5f1 simplified alignment via FlowPanel;
wenzelm
parents: 36786
diff changeset
    36
    panel.layout(ok_panel) = BorderPanel.Position.South
797af3ebd5f1 simplified alignment via FlowPanel;
wenzelm
parents: 36786
diff changeset
    37
    contents = panel
31827
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
    38
31843
f02c6a43f1b3 display some platform information;
wenzelm
parents: 31828
diff changeset
    39
    // values
36195
9c098598db2a system properties determine the JVM platform, not the Isabelle one;
wenzelm
parents: 36193
diff changeset
    40
    if (Platform.is_windows)
34045
bc71778a327d simplified Cygwin setup, assuming 1.7 registry layout (version 1.5 suffers from upcaseenv problem anyway);
wenzelm
parents: 31928
diff changeset
    41
      text.append("Cygwin root: " + Cygwin.check_root() + "\n")
41381
77990a6cd558 more explicit jvm_name;
wenzelm
parents: 40567
diff changeset
    42
    text.append("JVM name: " + Platform.jvm_name + "\n")
36207
wenzelm
parents: 36206
diff changeset
    43
    text.append("JVM platform: " + Platform.jvm_platform + "\n")
31928
2d8e50886558 init/check Isabelle_System;
wenzelm
parents: 31862
diff changeset
    44
    try {
43514
45cf8d5e109a lazy Isabelle_System.default supports implicit boot;
wenzelm
parents: 41381
diff changeset
    45
      val isabelle_system = Isabelle_System.default
36206
a7d7f928d8b8 more platform information;
wenzelm
parents: 36205
diff changeset
    46
      text.append("ML platform: " + isabelle_system.getenv("ML_PLATFORM") + "\n")
36197
2e92aca73cab more platform info;
wenzelm
parents: 36195
diff changeset
    47
      text.append("Isabelle platform: " + isabelle_system.getenv("ISABELLE_PLATFORM") + "\n")
2e92aca73cab more platform info;
wenzelm
parents: 36195
diff changeset
    48
      val platform64 = isabelle_system.getenv("ISABELLE_PLATFORM64")
2e92aca73cab more platform info;
wenzelm
parents: 36195
diff changeset
    49
      if (platform64 != "") text.append("Isabelle platform (64 bit): " + platform64 + "\n")
36206
a7d7f928d8b8 more platform information;
wenzelm
parents: 36205
diff changeset
    50
      text.append("Isabelle home: " + isabelle_system.getenv("ISABELLE_HOME") + "\n")
36197
2e92aca73cab more platform info;
wenzelm
parents: 36195
diff changeset
    51
      text.append("Isabelle java: " + isabelle_system.this_java() + "\n")
31928
2d8e50886558 init/check Isabelle_System;
wenzelm
parents: 31862
diff changeset
    52
    } catch {
2d8e50886558 init/check Isabelle_System;
wenzelm
parents: 31862
diff changeset
    53
      case e: RuntimeException => text.append(e.getMessage + "\n")
2d8e50886558 init/check Isabelle_System;
wenzelm
parents: 31862
diff changeset
    54
    }
31843
f02c6a43f1b3 display some platform information;
wenzelm
parents: 31828
diff changeset
    55
f02c6a43f1b3 display some platform information;
wenzelm
parents: 31828
diff changeset
    56
    // reactions
31827
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
    57
    listenTo(ok)
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
    58
    reactions += {
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
    59
      case ButtonClicked(`ok`) => System.exit(0)
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
    60
    }
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
    61
  }
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
    62
}
b54362b9fbef minimal GUI_Setup, which is the main class of Pure.jar;
wenzelm
parents:
diff changeset
    63