src/Tools/jEdit/src/dockable.scala
author wenzelm
Tue, 18 Feb 2014 20:20:42 +0100
changeset 55558 298274c970b6
parent 53787 e64389fe2d2c
child 56906 408b526911f7
permissions -rw-r--r--
more uniform treatment of dockables and their standard actions;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
43282
5d294220ca43 moved sources -- eliminated Netbeans artifact of jedit package directory;
wenzelm
parents: 37067
diff changeset
     1
/*  Title:      Tools/jEdit/src/dockable.scala
37066
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
     2
    Author:     Makarius
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
     3
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
     4
Generic dockable window.
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
     5
*/
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
     6
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
     7
package isabelle.jedit
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
     8
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
     9
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    10
import isabelle._
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    11
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    12
import java.awt.{Dimension, Component, BorderLayout}
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    13
import javax.swing.JPanel
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    14
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    15
import org.gjt.sp.jedit.View
53787
e64389fe2d2c focus on default component according to jEdit window management;
wenzelm
parents: 43282
diff changeset
    16
import org.gjt.sp.jedit.gui.{DefaultFocusComponent, DockableWindowManager}
37066
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    17
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    18
53787
e64389fe2d2c focus on default component according to jEdit window management;
wenzelm
parents: 43282
diff changeset
    19
class Dockable(view: View, position: String)
e64389fe2d2c focus on default component according to jEdit window management;
wenzelm
parents: 43282
diff changeset
    20
  extends JPanel(new BorderLayout) with DefaultFocusComponent
37066
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    21
{
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    22
  if (position == DockableWindowManager.FLOATING)
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    23
    setPreferredSize(new Dimension(500, 250))
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    24
53787
e64389fe2d2c focus on default component according to jEdit window management;
wenzelm
parents: 43282
diff changeset
    25
  def focusOnDefaultComponent { requestFocus }
e64389fe2d2c focus on default component according to jEdit window management;
wenzelm
parents: 43282
diff changeset
    26
37067
31093f3687b5 simplified dockables using class Dockable;
wenzelm
parents: 37066
diff changeset
    27
  def set_content(c: Component) { add(c, BorderLayout.CENTER) }
31093f3687b5 simplified dockables using class Dockable;
wenzelm
parents: 37066
diff changeset
    28
  def set_content(c: scala.swing.Component) { add(c.peer, BorderLayout.CENTER) }
37066
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    29
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    30
  protected def init() { }
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    31
  protected def exit() { }
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    32
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    33
  override def addNotify()
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    34
  {
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    35
    super.addNotify()
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    36
    init()
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    37
  }
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    38
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    39
  override def removeNotify()
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    40
  {
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    41
    exit()
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    42
    super.removeNotify()
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    43
  }
28e6cd90c1ea generic dockable window;
wenzelm
parents:
diff changeset
    44
}