author | wenzelm |
Sat, 17 Apr 2010 20:42:26 +0200 | |
changeset 36193 | 067a01827fca |
parent 34050 | bc71778a327d |
child 36195 | 9c098598db2a |
permissions | -rw-r--r-- |
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@31843 | 46 |
Platform.defaults match { |
wenzelm@31843 | 47 |
case None => |
wenzelm@31844 | 48 |
case Some((name, None)) => text.append("Platform: " + name + "\n") |
wenzelm@31843 | 49 |
case Some((name1, Some(name2))) => |
wenzelm@31844 | 50 |
text.append("Main platform: " + name1 + "\n") |
wenzelm@31844 | 51 |
text.append("Alternative platform: " + name2 + "\n") |
wenzelm@31843 | 52 |
} |
wenzelm@31928 | 53 |
if (Platform.is_windows) { |
wenzelm@34050 | 54 |
text.append("Cygwin root: " + Cygwin.check_root() + "\n") |
wenzelm@31928 | 55 |
} |
wenzelm@31928 | 56 |
try { |
wenzelm@31928 | 57 |
val isabelle_system = new Isabelle_System |
wenzelm@31928 | 58 |
text.append("Isabelle home: " + isabelle_system.getenv("ISABELLE_HOME") + "\n") |
wenzelm@36193 | 59 |
text.append("Isabelle java: " + isabelle_system.this_java()) |
wenzelm@31928 | 60 |
} catch { |
wenzelm@31928 | 61 |
case e: RuntimeException => text.append(e.getMessage + "\n") |
wenzelm@31928 | 62 |
} |
wenzelm@31843 | 63 |
|
wenzelm@31843 | 64 |
// reactions |
wenzelm@31836 | 65 |
listenTo(ok) |
wenzelm@31836 | 66 |
reactions += { |
wenzelm@31836 | 67 |
case ButtonClicked(`ok`) => System.exit(0) |
wenzelm@31836 | 68 |
} |
wenzelm@31836 | 69 |
} |
wenzelm@31836 | 70 |
} |
wenzelm@31836 | 71 |