src/Tools/jEdit/src/bibtex_jedit.scala
changeset 58548 d0ee64efd624
parent 58547 6080615b8b96
child 58589 d9350ec0937e
--- a/src/Tools/jEdit/src/bibtex_jedit.scala	Sun Oct 05 18:21:39 2014 +0200
+++ b/src/Tools/jEdit/src/bibtex_jedit.scala	Sun Oct 05 18:30:43 2014 +0200
@@ -12,10 +12,14 @@
 
 import scala.collection.mutable
 
+import java.awt.event.{ActionListener, ActionEvent}
+
 import javax.swing.text.Segment
 import javax.swing.tree.DefaultMutableTreeNode
+import javax.swing.{JMenu, JMenuItem}
 
 import org.gjt.sp.jedit.Buffer
+import org.gjt.sp.jedit.textarea.{JEditTextArea, TextArea}
 import org.gjt.sp.jedit.syntax.{Token => JEditToken, TokenMarker, TokenHandler, ParserRuleSet}
 
 import sidekick.{SideKickParser, SideKickParsedData}
@@ -52,6 +56,33 @@
 
 
 
+  /** context menu **/
+
+  def context_menu(text_area0: JEditTextArea): List[JMenuItem] =
+  {
+    text_area0 match {
+      case text_area: TextArea =>
+        text_area.getBuffer match {
+          case buffer: Buffer
+          if (check(buffer) && buffer.isEditable) =>
+            val menu = new JMenu("BibTeX entries")
+            for (entry <- Bibtex.entries) {
+              val item = new JMenuItem(entry.kind)
+              item.addActionListener(new ActionListener {
+                def actionPerformed(evt: ActionEvent): Unit =
+                  Isabelle.insert_line_padding(text_area, entry.template)
+              })
+              menu.add(item)
+            }
+            List(menu)
+          case _ => Nil
+        }
+      case _ => Nil
+    }
+  }
+
+
+
   /** token markup **/
 
   /* token style */