src/Tools/jEdit/src/jedit/protocol_dockable.scala
author wenzelm
Thu, 10 Dec 2009 22:15:19 +0100
changeset 34777 91d6089cef88
parent 34773 bb5d68f7fd5e
child 34791 b97d5b38dea4
permissions -rw-r--r--
class Session models full session, with or without prover process (cf. heaps, browser_info); replaced Prover by Session, with a singleton instance in Isabelle plugin (shared by all active buffers); misc cleanup of Session vs. Plugin instance; eliminated Prover_Setup -- maintain mapping of JEditBuffer <-> Theory_View directly; misc tuning and simplification;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34408
ad7b6c4813c8 added some headers and comments;
wenzelm
parents: 34406
diff changeset
     1
/*
ad7b6c4813c8 added some headers and comments;
wenzelm
parents: 34406
diff changeset
     2
 * Dockable window for raw process output
ad7b6c4813c8 added some headers and comments;
wenzelm
parents: 34406
diff changeset
     3
 *
34772
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
     4
 * @author Makarius
34408
ad7b6c4813c8 added some headers and comments;
wenzelm
parents: 34406
diff changeset
     5
 */
ad7b6c4813c8 added some headers and comments;
wenzelm
parents: 34406
diff changeset
     6
34318
c13e168a8ae6 original sources from Johannes Hölzl a48e0c6ab1aea77c52d596f7efc007a543d3d10c with minor modifications of directory layout;
wenzelm
parents:
diff changeset
     7
package isabelle.jedit
c13e168a8ae6 original sources from Johannes Hölzl a48e0c6ab1aea77c52d596f7efc007a543d3d10c with minor modifications of directory layout;
wenzelm
parents:
diff changeset
     8
c13e168a8ae6 original sources from Johannes Hölzl a48e0c6ab1aea77c52d596f7efc007a543d3d10c with minor modifications of directory layout;
wenzelm
parents:
diff changeset
     9
34772
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    10
import scala.actors.Actor._
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    11
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    12
import java.awt.{Dimension, Graphics, BorderLayout}
34424
c880492754d0 setPreferredSize for floating dockables;
wenzelm
parents: 34408
diff changeset
    13
import javax.swing.{JPanel, JTextArea, JScrollPane}
34318
c13e168a8ae6 original sources from Johannes Hölzl a48e0c6ab1aea77c52d596f7efc007a543d3d10c with minor modifications of directory layout;
wenzelm
parents:
diff changeset
    14
c13e168a8ae6 original sources from Johannes Hölzl a48e0c6ab1aea77c52d596f7efc007a543d3d10c with minor modifications of directory layout;
wenzelm
parents:
diff changeset
    15
import org.gjt.sp.jedit.View
34424
c880492754d0 setPreferredSize for floating dockables;
wenzelm
parents: 34408
diff changeset
    16
import org.gjt.sp.jedit.gui.DockableWindowManager
c880492754d0 setPreferredSize for floating dockables;
wenzelm
parents: 34408
diff changeset
    17
34318
c13e168a8ae6 original sources from Johannes Hölzl a48e0c6ab1aea77c52d596f7efc007a543d3d10c with minor modifications of directory layout;
wenzelm
parents:
diff changeset
    18
34773
bb5d68f7fd5e renamed "raw output" to "protocol";
wenzelm
parents: 34772
diff changeset
    19
class Protocol_Dockable(view: View, position: String) extends JPanel
34760
dc7f5e0d9d27 misc modernization of names;
wenzelm
parents: 34759
diff changeset
    20
{
34772
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    21
  // outer panel
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    22
34424
c880492754d0 setPreferredSize for floating dockables;
wenzelm
parents: 34408
diff changeset
    23
  if (position == DockableWindowManager.FLOATING)
c880492754d0 setPreferredSize for floating dockables;
wenzelm
parents: 34408
diff changeset
    24
    setPreferredSize(new Dimension(500, 250))
c880492754d0 setPreferredSize for floating dockables;
wenzelm
parents: 34408
diff changeset
    25
34772
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    26
  setLayout(new BorderLayout)
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    27
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    28
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    29
  // text area
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    30
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    31
  private val text_area = new JTextArea
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    32
  add(new JScrollPane(text_area), BorderLayout.CENTER)
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    33
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    34
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    35
  /* actor wiring */
34671
d179fcb04cbc output_info specific to prover
immler@in.tum.de
parents: 34424
diff changeset
    36
34772
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    37
  private val raw_actor = actor {
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    38
    loop {
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    39
      react {
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    40
        case result: Isabelle_Process.Result =>
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    41
          Swing_Thread.now { text_area.append(result.toString + "\n") }
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    42
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    43
        case bad => System.err.println("raw_actor: ignoring bad message " + bad)
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    44
      }
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    45
    }
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    46
  }
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    47
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    48
  override def addNotify()
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    49
  {
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    50
    super.addNotify()
34777
91d6089cef88 class Session models full session, with or without prover process (cf. heaps, browser_info);
wenzelm
parents: 34773
diff changeset
    51
    Isabelle.session.raw_results += raw_actor
34772
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    52
  }
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    53
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    54
  override def removeNotify()
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    55
  {
34777
91d6089cef88 class Session models full session, with or without prover process (cf. heaps, browser_info);
wenzelm
parents: 34773
diff changeset
    56
    Isabelle.session.raw_results -= raw_actor
34772
1a79c9b9af82 proper actor wiring for raw process output;
wenzelm
parents: 34760
diff changeset
    57
    super.removeNotify()
34671
d179fcb04cbc output_info specific to prover
immler@in.tum.de
parents: 34424
diff changeset
    58
  }
34318
c13e168a8ae6 original sources from Johannes Hölzl a48e0c6ab1aea77c52d596f7efc007a543d3d10c with minor modifications of directory layout;
wenzelm
parents:
diff changeset
    59
}