1/*  Title:      Pure/GUI/popup.scala
2    Author:     Makarius
3
4Popup within layered pane.
5*/
6
7package isabelle
8
9
10import java.awt.{Point, Dimension}
11import javax.swing.{JLayeredPane, JComponent}
12
13
14class Popup(
15  layered: JLayeredPane,
16  component: JComponent,
17  location: Point,
18  size: Dimension)
19{
20  def show
21  {
22    component.setLocation(location)
23    component.setSize(size)
24    component.setPreferredSize(size)
25    component.setOpaque(true)
26    layered.add(component, JLayeredPane.DEFAULT_LAYER)
27    layered.moveToFront(component)
28    layered.repaint(component.getBounds())
29  }
30
31  def hide
32  {
33    val bounds = component.getBounds()
34    layered.remove(component)
35    layered.repaint(bounds)
36  }
37}
38
39