src/Tools/jEdit/src/theories_dockable.scala
changeset 56389 e49561ae3b65
parent 56372 fadb0fef09d7
child 56407 8e7ebc4b30f1
equal deleted inserted replaced
56388:c771f0fe28d1 56389:e49561ae3b65
    13 import scala.swing.{Button, TextArea, Label, ListView, Alignment,
    13 import scala.swing.{Button, TextArea, Label, ListView, Alignment,
    14   ScrollPane, Component, CheckBox, BorderPanel}
    14   ScrollPane, Component, CheckBox, BorderPanel}
    15 import scala.swing.event.{MouseClicked, MouseMoved}
    15 import scala.swing.event.{MouseClicked, MouseMoved}
    16 
    16 
    17 import java.awt.{BorderLayout, Graphics2D, Color, Point, Dimension}
    17 import java.awt.{BorderLayout, Graphics2D, Color, Point, Dimension}
    18 import javax.swing.{JList, BorderFactory}
    18 import javax.swing.{JList, BorderFactory, UIManager}
    19 import javax.swing.border.{BevelBorder, SoftBevelBorder, EtchedBorder}
    19 import javax.swing.border.{BevelBorder, SoftBevelBorder}
    20 
    20 
    21 import org.gjt.sp.jedit.{View, jEdit}
    21 import org.gjt.sp.jedit.{View, jEdit}
    22 
    22 
    23 
    23 
    24 class Theories_Dockable(view: View, position: String) extends Dockable(view, position)
    24 class Theories_Dockable(view: View, position: String) extends Dockable(view, position)
    25 {
    25 {
    26   /* status */
    26   /* status */
    27 
    27 
    28   private val status = new ListView(Nil: List[Document.Node.Name]) {
    28   private val status = new ListView(Nil: List[Document.Node.Name]) {
       
    29     background =
       
    30     {
       
    31       // enforce default value
       
    32       val c = UIManager.getDefaults.getColor("Panel.background")
       
    33       new Color(c.getRed, c.getGreen, c.getBlue, c.getAlpha)
       
    34     }
    29     listenTo(mouse.clicks)
    35     listenTo(mouse.clicks)
    30     listenTo(mouse.moves)
    36     listenTo(mouse.moves)
    31     reactions += {
    37     reactions += {
    32       case MouseClicked(_, point, _, clicks, _) =>
    38       case MouseClicked(_, point, _, clicks, _) =>
    33         val index = peer.locationToIndex(point)
    39         val index = peer.locationToIndex(point)
   107         case None => false
   113         case None => false
   108       })
   114       })
   109 
   115 
   110   private object Node_Renderer_Component extends BorderPanel
   116   private object Node_Renderer_Component extends BorderPanel
   111   {
   117   {
   112     opaque = false
   118     opaque = true
   113     border = BorderFactory.createEmptyBorder(2, 2, 2, 2)
   119     border = BorderFactory.createEmptyBorder(2, 2, 2, 2)
   114 
   120 
   115     var node_name = Document.Node.Name.empty
   121     var node_name = Document.Node.Name.empty
   116 
   122 
   117     var checkbox_geometry: Option[(Point, Dimension)] = None
   123     var checkbox_geometry: Option[(Point, Dimension)] = None
   124           checkbox_geometry = Some((location, size))
   130           checkbox_geometry = Some((location, size))
   125       }
   131       }
   126     }
   132     }
   127 
   133 
   128     val label = new Label {
   134     val label = new Label {
       
   135       background = view.getTextArea.getPainter.getBackground
       
   136       foreground = view.getTextArea.getPainter.getForeground
       
   137       border =
       
   138         BorderFactory.createCompoundBorder(
       
   139           BorderFactory.createLineBorder(foreground, 1),
       
   140           BorderFactory.createEmptyBorder(1, 1, 1, 1))
   129       opaque = false
   141       opaque = false
   130       border = new EtchedBorder(EtchedBorder.RAISED)
       
   131       xAlignment = Alignment.Leading
   142       xAlignment = Alignment.Leading
   132 
   143 
   133       override def paintComponent(gfx: Graphics2D)
   144       override def paintComponent(gfx: Graphics2D)
   134       {
   145       {
   135         def paint_segment(x: Int, w: Int, color: Color)
   146         def paint_segment(x: Int, w: Int, color: Color)
   136         {
   147         {
   137           gfx.setColor(color)
   148           gfx.setColor(color)
   138           gfx.fillRect(x, 0, w, size.height)
   149           gfx.fillRect(x, 0, w, size.height)
   139         }
   150         }
   140 
   151 
       
   152         paint_segment(0, size.width, background)
   141         nodes_status.get(node_name) match {
   153         nodes_status.get(node_name) match {
   142           case Some(st) if st.total > 0 =>
   154           case Some(st) if st.total > 0 =>
   143             val segments =
   155             val segments =
   144               List(
   156               List(
   145                 (st.unprocessed, PIDE.options.color_value("unprocessed1_color")),
   157                 (st.unprocessed, PIDE.options.color_value("unprocessed1_color")),