privateval window_focus_listener = new WindowFocusListener { def windowGainedFocus(e: WindowEvent): Unit =
Graphview_Dockable.set_implicit(snapshot, graph_result) def windowLostFocus(e: WindowEvent): Unit =
Graphview_Dockable.reset_implicit()
}
val graphview =
graph_result match { case Exn.Res(graph) => val graphview = new isabelle.graphview.Graphview(graph) { def options: Options = PIDE.options.value
overridedef make_tooltip(parent: JComponent, x: Int, y: Int, tip: XML.Elem): String = {
Pretty_Tooltip.invoke(() =>
{ val model = File_Model.init(PIDE.session) val rendering = new JEdit_Rendering(snapshot, model, options) val loc = new Point(x, y)
Pretty_Tooltip(view, parent, loc, rendering, Command.Results.empty, List(tip))
}) null
}
overridedef make_font(): Font = if (editor_style) GUI.imitate_font(Font_Info.main().font) else
GUI.imitate_font(Font_Info.main().font,
family = options.string("graphview_font_family"),
scale = options.real("graphview_font_scale"))
overridedef foreground_color = if (editor_style) view.getTextArea.getPainter.getForeground elsesuper.foreground_color
overridedef background_color = if (editor_style) view.getTextArea.getPainter.getBackground elsesuper.background_color
overridedef selection_color = if (editor_style) view.getTextArea.getPainter.getSelectionColor elsesuper.selection_color
overridedef highlight_color = if (editor_style) view.getTextArea.getPainter.getLineHighlightColor elsesuper.highlight_color
editor_style = true
} new isabelle.graphview.Main_Panel(graphview) case Exn.Exn(exn) => new TextArea(Exn.message(exn))
}
set_content(graphview)
overridedef focusOnDefaultComponent(): Unit = {
graphview match { case main_panel: isabelle.graphview.Main_Panel =>
main_panel.tree_panel.tree.requestFocusInWindow case _ =>
}
}
/* main */
privateval main =
Session.Consumer[Session.Global_Options](getClass.getName) { case _: Session.Global_Options =>
GUI_Thread.later {
graphview match { case main_panel: isabelle.graphview.Main_Panel =>
main_panel.update_layout() case _ =>
}
}
}
overridedef init(): Unit = {
GUI.parent_window(this).foreach(_.addWindowFocusListener(window_focus_listener))
PIDE.session.global_options += main
}
overridedef exit(): Unit = {
GUI.parent_window(this).foreach(_.removeWindowFocusListener(window_focus_listener))
PIDE.session.global_options -= main
}
}
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.