src/Pure/System/gui_setup.scala
author wenzelm
Mon, 19 Apr 2010 17:57:07 +0200
changeset 36207 a94bbede91c7
parent 36206 a7d7f928d8b8
child 36716 49918c180e8c
permissions -rw-r--r--
tuned;
wenzelm@31836
     1
/*  Title:      Pure/System/gui_setup.scala
wenzelm@31836
     2
    Author:     Makarius
wenzelm@31836
     3
wenzelm@31836
     4
GUI for basic system setup.
wenzelm@31836
     5
*/
wenzelm@31836
     6
wenzelm@31836
     7
package isabelle
wenzelm@31836
     8
wenzelm@31837
     9
import javax.swing.UIManager
wenzelm@31837
    10
wenzelm@31836
    11
import scala.swing._
wenzelm@31836
    12
import scala.swing.event._
wenzelm@31836
    13
wenzelm@31836
    14
wenzelm@31837
    15
object GUI_Setup extends GUIApplication
wenzelm@31836
    16
{
wenzelm@31837
    17
  def main(args: Array[String]) =
wenzelm@31837
    18
  {
wenzelm@31884
    19
    Swing_Thread.later {
wenzelm@31837
    20
      UIManager.setLookAndFeel(Platform.look_and_feel)
wenzelm@31837
    21
      top.pack()
wenzelm@31837
    22
      top.visible = true
wenzelm@31837
    23
    }
wenzelm@31837
    24
  }
wenzelm@31837
    25
wenzelm@31836
    26
  def top = new MainFrame {
wenzelm@31836
    27
    title = "Isabelle setup"
wenzelm@31836
    28
wenzelm@31843
    29
    // components
wenzelm@31843
    30
    val text = new TextArea {
wenzelm@31843
    31
      editable = false
wenzelm@31859
    32
      columns = 80
wenzelm@31859
    33
      rows = 20
wenzelm@31843
    34
      xLayoutAlignment = 0.5
wenzelm@31843
    35
    }
wenzelm@31843
    36
    val ok = new Button {
wenzelm@31843
    37
      text = "OK"
wenzelm@31843
    38
      xLayoutAlignment = 0.5
wenzelm@31843
    39
    }
wenzelm@31836
    40
    contents = new BoxPanel(Orientation.Vertical) {
wenzelm@31843
    41
      contents += text
wenzelm@31836
    42
      contents += ok
wenzelm@31836
    43
    }
wenzelm@31836
    44
wenzelm@31843
    45
    // values
wenzelm@36195
    46
    if (Platform.is_windows)
wenzelm@34050
    47
      text.append("Cygwin root: " + Cygwin.check_root() + "\n")
wenzelm@36207
    48
    text.append("JVM platform: " + Platform.jvm_platform + "\n")
wenzelm@31928
    49
    try {
wenzelm@31928
    50
      val isabelle_system = new Isabelle_System
wenzelm@36206
    51
      text.append("ML platform: " + isabelle_system.getenv("ML_PLATFORM") + "\n")
wenzelm@36197
    52
      text.append("Isabelle platform: " + isabelle_system.getenv("ISABELLE_PLATFORM") + "\n")
wenzelm@36197
    53
      val platform64 = isabelle_system.getenv("ISABELLE_PLATFORM64")
wenzelm@36197
    54
      if (platform64 != "") text.append("Isabelle platform (64 bit): " + platform64 + "\n")
wenzelm@36206
    55
      text.append("Isabelle home: " + isabelle_system.getenv("ISABELLE_HOME") + "\n")
wenzelm@36197
    56
      text.append("Isabelle java: " + isabelle_system.this_java() + "\n")
wenzelm@31928
    57
    } catch {
wenzelm@31928
    58
      case e: RuntimeException => text.append(e.getMessage + "\n")
wenzelm@31928
    59
    }
wenzelm@31843
    60
wenzelm@31843
    61
    // reactions
wenzelm@31836
    62
    listenTo(ok)
wenzelm@31836
    63
    reactions += {
wenzelm@31836
    64
      case ButtonClicked(`ok`) => System.exit(0)
wenzelm@31836
    65
    }
wenzelm@31836
    66
  }
wenzelm@31836
    67
}
wenzelm@31836
    68