# HG changeset patch # User wenzelm # Date 1348514193 -7200 # Node ID af7b652180d50aa4bd5e27c085f360f9a65a288c # Parent 61988f9df94dc068ff4cd4f45fb79ca8f15a0230 minimal component and build setup for graphview; diff -r 61988f9df94d -r af7b652180d5 etc/components --- a/etc/components Mon Sep 24 20:22:58 2012 +0200 +++ b/etc/components Mon Sep 24 21:16:33 2012 +0200 @@ -1,5 +1,6 @@ src/Tools/Code src/Tools/jEdit +src/Tools/Graphview src/Tools/WWW_Find src/HOL/Mirabelle src/HOL/Mutabelle diff -r 61988f9df94d -r af7b652180d5 src/Pure/build-jars --- a/src/Pure/build-jars Mon Sep 24 20:22:58 2012 +0200 +++ b/src/Pure/build-jars Mon Sep 24 21:16:33 2012 +0200 @@ -126,8 +126,7 @@ [ "$#" -ne 0 ] && usage - -# build +## build TARGET_DIR="$ISABELLE_HOME/lib/classes" TARGET="$TARGET_DIR/ext/Pure.jar" diff -r 61988f9df94d -r af7b652180d5 src/Tools/Graphview/etc/settings --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Tools/Graphview/etc/settings Mon Sep 24 21:16:33 2012 +0200 @@ -0,0 +1,6 @@ +# -*- shell-script -*- :mode=shellscript: + +GRAPHVIEW_HOME="$COMPONENT" + +ISABELLE_TOOLS="$ISABELLE_TOOLS:$GRAPHVIEW_HOME/lib/Tools" + diff -r 61988f9df94d -r af7b652180d5 src/Tools/Graphview/lib/Tools/graphview --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Tools/Graphview/lib/Tools/graphview Mon Sep 24 21:16:33 2012 +0200 @@ -0,0 +1,177 @@ +#!/usr/bin/env bash +# +# Author: Markus Kaiser, TU Muenchen +# Author: Makarius +# +# DESCRIPTION: graphview command-line tool wrapper + +## sources + +declare -a SOURCES=( +# "src/dockable.scala" + "src/floating_dialog.scala" + "src/frame.scala" + "src/graph_panel.scala" + "src/graph_xml.scala" + "src/layout_pendulum.scala" + "src/main_panel.scala" + "src/model.scala" + "src/mutator_dialog.scala" + "src/mutator_event.scala" + "src/mutator.scala" + "src/parameters.scala" + "src/popups.scala" + "src/shapes.scala" + "src/tooltips.scala" + "src/visualizer.scala" + "../jEdit/src/html_panel.scala" +) + + +## diagnostics + +PRG="$(basename "$0")" + +function usage() +{ + echo + echo "Usage: isabelle $PRG [OPTIONS] GRAPH_FILE" + echo + echo " Options are:" + echo " -b build only" + echo " -f fresh build" + echo + exit 1 +} + +function fail() +{ + echo "$1" >&2 + exit 2 +} + +function failed() +{ + fail "Failed!" +} + + +## process command line + +# options + +BUILD_ONLY=false +BUILD_JARS="jars" + +while getopts "bf" OPT +do + case "$OPT" in + b) + BUILD_ONLY=true + ;; + f) + BUILD_JARS="jars_fresh" + ;; + \?) + usage + ;; + esac +done + + +# args + +GRAPH_FILE="" + +if [ "$#" -eq 0 -a "$BUILD_ONLY" = false ]; then + usage +elif [ "$#" -eq 1 ]; then + GRAPH_FILE="$1" + shift +else + usage +fi + + +## build + +[ -e "$ISABELLE_HOME/Admin/build" ] && \ + { "$ISABELLE_HOME/Admin/build" "$BUILD_JARS" || exit $?; } + +pushd "$GRAPHVIEW_HOME" >/dev/null || failed + +PURE_JAR="$ISABELLE_HOME/lib/classes/ext/Pure.jar" +COBRA_JAR="$ISABELLE_JEDIT_BUILD_HOME/contrib/cobra.jar" + +TARGET_DIR="$ISABELLE_HOME/lib/classes" +TARGET="$TARGET_DIR/ext/Graphview.jar" + +declare -a UPDATED=() + +if [ "$BUILD_JARS" = jars_fresh ]; then + OUTDATED=true +else + OUTDATED=false + if [ ! -e "$TARGET" ]; then + OUTDATED=true + else + if [ -n "$ISABELLE_JEDIT_BUILD_HOME" ]; then + declare -a DEPS=("$COBRA_JAR" "$PURE_JAR" "${SOURCES[@]}") + elif [ -e "$ISABELLE_HOME/Admin/build" ]; then + declare -a DEPS=("$PURE_JAR" "${SOURCES[@]}") + else + declare -a DEPS=() + fi + for DEP in "${DEPS[@]}" + do + [ ! -e "$DEP" ] && fail "Missing file: $DEP" + [ "$DEP" -nt "$TARGET" ] && { + OUTDATED=true + UPDATED["${#UPDATED[@]}"]="$DEP" + } + done + fi +fi + +if [ "$OUTDATED" = true ] +then + echo "### Building Isabelle/Graphview ..." + + [ "${#UPDATED[@]}" -gt 0 ] && { + echo "Changed files:" + for FILE in "${UPDATED[@]}" + do + echo " $FILE" + done + } + + [ -z "$ISABELLE_JEDIT_BUILD_HOME" ] && \ + fail "Unknown ISABELLE_JEDIT_BUILD_HOME -- missing auxiliary component" + + rm -rf classes && mkdir classes + + cp -p -R -f "$COBRA_JAR" "$TARGET_DIR/ext" || failed + + ( + for JAR in "$COBRA_JAR" "$PURE_JAR" + do + CLASSPATH="$CLASSPATH:$JAR" + done + CLASSPATH="$(jvmpath "$CLASSPATH")" + exec "$SCALA_HOME/bin/scalac" $ISABELLE_SCALA_BUILD_OPTIONS -d classes "${SOURCES[@]}" + ) || fail "Failed to compile sources" + + cd classes + isabelle_jdk jar cf "$TARGET" * || failed + cd .. + rm -rf classes +fi + +popd >/dev/null + + +## run + +[ "$BUILD_ONLY" = true ] || { + exec "$ISABELLE_TOOL" java isabelle.graphview.Graphview_Frame "$(jvmpath "$GRAPH_FILE")" +} diff -r 61988f9df94d -r af7b652180d5 src/Tools/Graphview/src/floating_dialog.scala --- a/src/Tools/Graphview/src/floating_dialog.scala Mon Sep 24 20:22:58 2012 +0200 +++ b/src/Tools/Graphview/src/floating_dialog.scala Mon Sep 24 21:16:33 2012 +0200 @@ -8,7 +8,7 @@ import isabelle._ -import isabelle.jedit._ +import isabelle.jedit.HTML_Panel import scala.swing.{Dialog, BorderPanel, Component} import java.awt.{Point, Dimension} diff -r 61988f9df94d -r af7b652180d5 src/Tools/Graphview/src/graph_panel.scala --- a/src/Tools/Graphview/src/graph_panel.scala Mon Sep 24 20:22:58 2012 +0200 +++ b/src/Tools/Graphview/src/graph_panel.scala Mon Sep 24 21:16:33 2012 +0200 @@ -6,6 +6,7 @@ package isabelle.graphview +import isabelle._ import java.awt.{Dimension, Graphics2D, Point, Rectangle} import java.awt.geom.{AffineTransform, Point2D} diff -r 61988f9df94d -r af7b652180d5 src/Tools/Graphview/src/mutator.scala --- a/src/Tools/Graphview/src/mutator.scala Mon Sep 24 20:22:58 2012 +0200 +++ b/src/Tools/Graphview/src/mutator.scala Mon Sep 24 21:16:33 2012 +0200 @@ -7,7 +7,8 @@ package isabelle.graphview -import isabelle.Graph +import isabelle._ + import java.awt.Color import scala.collection.immutable.SortedSet diff -r 61988f9df94d -r af7b652180d5 src/Tools/Graphview/src/mutator_dialog.scala --- a/src/Tools/Graphview/src/mutator_dialog.scala Mon Sep 24 20:22:58 2012 +0200 +++ b/src/Tools/Graphview/src/mutator_dialog.scala Mon Sep 24 21:16:33 2012 +0200 @@ -6,6 +6,7 @@ package isabelle.graphview +import isabelle._ import java.awt.Color import java.awt.FocusTraversalPolicy diff -r 61988f9df94d -r af7b652180d5 src/Tools/Graphview/src/parameters.scala --- a/src/Tools/Graphview/src/parameters.scala Mon Sep 24 20:22:58 2012 +0200 +++ b/src/Tools/Graphview/src/parameters.scala Mon Sep 24 21:16:33 2012 +0200 @@ -6,27 +6,15 @@ package isabelle.graphview +import isabelle._ -import isabelle._ -import isabelle.jedit._ import java.awt.Color -//LocaleBrowser may or may not run within jEdit, so all jEdit specific options -//have to have fallbacks. object Parameters { - def font_family(): String = - try { - Isabelle.font_family() - } - catch { case _ => "IsabelleText" } - - def font_size(): Int = - try { - scala.math.round(Isabelle.font_size()) - } - catch { case _ => 16 } + val font_family: String = "IsabelleText" + val font_size: Int = 16 //Should not fail since this is in the isabelle environment. def tooltip_css(): String = diff -r 61988f9df94d -r af7b652180d5 src/Tools/Graphview/src/popups.scala --- a/src/Tools/Graphview/src/popups.scala Mon Sep 24 20:22:58 2012 +0200 +++ b/src/Tools/Graphview/src/popups.scala Mon Sep 24 21:16:33 2012 +0200 @@ -10,7 +10,7 @@ import isabelle._ import isabelle.graphview.Mutators._ import javax.swing.JPopupMenu -import scala.swing.{Action, Menu, MenuItem, Seperator} +import scala.swing.{Action, Menu, MenuItem, Separator} object Popups {