1/* Title: Tools/jEdit/src/context_menu.scala 2 Author: Makarius 3 4Common context menu for Isabelle/jEdit. 5*/ 6 7package isabelle.jedit 8 9 10import isabelle._ 11 12 13import java.awt.event.MouseEvent 14 15import javax.swing.JMenuItem 16 17import org.gjt.sp.jedit.gui.DynamicContextMenuService 18import org.gjt.sp.jedit.textarea.JEditTextArea 19 20 21class Context_Menu extends DynamicContextMenuService 22{ 23 def createMenu(text_area: JEditTextArea, evt: MouseEvent): Array[JMenuItem] = 24 if (evt == null) null 25 else { 26 Isabelle.dismissed_popups(text_area.getView) 27 28 val items1 = 29 if (evt != null && evt.getSource == text_area.getPainter) { 30 val offset = text_area.xyToOffset(evt.getX, evt.getY) 31 if (offset >= 0) 32 JEdit_Spell_Checker.context_menu(text_area, offset) ::: 33 Debugger_Dockable.context_menu(text_area, offset) 34 else Nil 35 } 36 else Nil 37 38 val items2 = JEdit_Bibtex.context_menu(text_area) 39 40 val items = items1 ::: items2 41 if (items.isEmpty) null else items.toArray 42 } 43} 44