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")), |