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