src/Tools/jEdit/src/html_panel.scala
author wenzelm
Fri, 09 Aug 2013 11:18:36 +0200
changeset 52931 ac6648c0c0fb
parent 49612 e6a53d203362
permissions -rw-r--r--
cancel_query via direct access to the exec_id of the running query process;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
43282
5d294220ca43 moved sources -- eliminated Netbeans artifact of jedit package directory;
wenzelm
parents: 42976
diff changeset
     1
/*  Title:      Tools/jEdit/src/html_panel.scala
36760
b82a698ef6c9 tuned headers;
wenzelm
parents: 36735
diff changeset
     2
    Author:     Makarius
b82a698ef6c9 tuned headers;
wenzelm
parents: 36735
diff changeset
     3
b82a698ef6c9 tuned headers;
wenzelm
parents: 36735
diff changeset
     4
HTML panel based on Lobo/Cobra.
b82a698ef6c9 tuned headers;
wenzelm
parents: 36735
diff changeset
     5
*/
34765
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
     6
34871
e596a0b71f3c incorporate "proofdocument" part into main Isabelle/Pure.jar -- except for html_panel.scala, which depends on external library (Lobo/Cobra browser);
wenzelm
parents: 34823
diff changeset
     7
package isabelle.jedit
34765
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
     8
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
     9
36015
6111de7c916a adapted to Scala 2.8.0 Beta 1;
wenzelm
parents: 34871
diff changeset
    10
import isabelle._
6111de7c916a adapted to Scala 2.8.0 Beta 1;
wenzelm
parents: 34871
diff changeset
    11
34765
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
    12
import java.io.StringReader
34775
49245d68f7e4 basic setup for HTML_Panel event handling;
wenzelm
parents: 34770
diff changeset
    13
34765
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
    14
import java.util.logging.{Logger, Level}
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
    15
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
    16
import org.lobobrowser.html.parser.{DocumentBuilderImpl, InputSourceImpl}
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
    17
import org.lobobrowser.html.gui.HtmlPanel
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
    18
import org.lobobrowser.html.test.{SimpleHtmlRendererContext, SimpleUserAgentContext}
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
    19
34775
49245d68f7e4 basic setup for HTML_Panel event handling;
wenzelm
parents: 34770
diff changeset
    20
49612
e6a53d203362 eliminated obsolete HTML/CSS functionality;
wenzelm
parents: 48704
diff changeset
    21
class HTML_Panel extends HtmlPanel
34765
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
    22
{
49612
e6a53d203362 eliminated obsolete HTML/CSS functionality;
wenzelm
parents: 48704
diff changeset
    23
  Swing_Thread.require()
37034
9640f6546179 more systematic treatment of internal state, which belongs strictly to the main actor, not the Swing thread;
wenzelm
parents: 37016
diff changeset
    24
34765
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
    25
  Logger.getLogger("org.lobobrowser").setLevel(Level.WARNING)
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
    26
36993
b7cce32953f0 more systematic treatment of physical document wrt. font size etc.;
wenzelm
parents: 36992
diff changeset
    27
  private val ucontext = new SimpleUserAgentContext
b7cce32953f0 more systematic treatment of physical document wrt. font size etc.;
wenzelm
parents: 36992
diff changeset
    28
  private val rcontext = new SimpleHtmlRendererContext(this, ucontext)
b7cce32953f0 more systematic treatment of physical document wrt. font size etc.;
wenzelm
parents: 36992
diff changeset
    29
  private val builder = new DocumentBuilderImpl(ucontext, rcontext)
b7cce32953f0 more systematic treatment of physical document wrt. font size etc.;
wenzelm
parents: 36992
diff changeset
    30
49612
e6a53d203362 eliminated obsolete HTML/CSS functionality;
wenzelm
parents: 48704
diff changeset
    31
  def render_document(url: String, html_text: String)
e6a53d203362 eliminated obsolete HTML/CSS functionality;
wenzelm
parents: 48704
diff changeset
    32
  {
e6a53d203362 eliminated obsolete HTML/CSS functionality;
wenzelm
parents: 48704
diff changeset
    33
    val doc = builder.parse(new InputSourceImpl(new StringReader(html_text), url))
e6a53d203362 eliminated obsolete HTML/CSS functionality;
wenzelm
parents: 48704
diff changeset
    34
    Swing_Thread.later { setDocument(doc, rcontext) }
34765
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
    35
  }
63ba7f0931e2 generic HTML_Panel -- specific Results_Dockable;
wenzelm
parents:
diff changeset
    36
}