equal
deleted
inserted
replaced
8 |
8 |
9 |
9 |
10 import isabelle._ |
10 import isabelle._ |
11 |
11 |
12 |
12 |
13 import java.awt.event.{ActionListener, ActionEvent, MouseEvent} |
13 import java.awt.event.MouseEvent |
14 import javax.swing.{JMenu, JMenuItem} |
14 |
|
15 import javax.swing.JMenuItem |
15 |
16 |
16 import org.gjt.sp.jedit.menu.EnhancedMenuItem |
17 import org.gjt.sp.jedit.menu.EnhancedMenuItem |
17 import org.gjt.sp.jedit.gui.DynamicContextMenuService |
18 import org.gjt.sp.jedit.gui.DynamicContextMenuService |
18 import org.gjt.sp.jedit.{jEdit, Buffer} |
19 import org.gjt.sp.jedit.{jEdit, Buffer} |
19 import org.gjt.sp.jedit.textarea.{JEditTextArea, TextArea} |
20 import org.gjt.sp.jedit.textarea.JEditTextArea |
20 |
21 |
21 |
22 |
22 class Context_Menu extends DynamicContextMenuService |
23 class Context_Menu extends DynamicContextMenuService |
23 { |
24 { |
24 /* spell checker menu */ |
25 /* spell checker menu */ |
65 case None => Nil |
66 case None => Nil |
66 } |
67 } |
67 } |
68 } |
68 |
69 |
69 |
70 |
70 /* bibtex menu */ |
|
71 |
|
72 def bibtex_menu(text_area0: JEditTextArea): List[JMenuItem] = |
|
73 { |
|
74 text_area0 match { |
|
75 case text_area: TextArea => |
|
76 text_area.getBuffer match { |
|
77 case buffer: Buffer |
|
78 if (Bibtex_JEdit.check(buffer) && buffer.isEditable) => |
|
79 val menu = new JMenu("BibTeX entries") |
|
80 for (entry <- Bibtex.entries) { |
|
81 val item = new JMenuItem(entry.kind) |
|
82 item.addActionListener(new ActionListener { |
|
83 def actionPerformed(evt: ActionEvent): Unit = |
|
84 Isabelle.insert_line_padding(text_area, entry.template) |
|
85 }) |
|
86 menu.add(item) |
|
87 } |
|
88 List(menu) |
|
89 case _ => Nil |
|
90 } |
|
91 case _ => Nil |
|
92 } |
|
93 } |
|
94 |
|
95 |
|
96 /* menu service */ |
71 /* menu service */ |
97 |
72 |
98 def createMenu(text_area: JEditTextArea, evt: MouseEvent): Array[JMenuItem] = |
73 def createMenu(text_area: JEditTextArea, evt: MouseEvent): Array[JMenuItem] = |
99 { |
74 { |
100 PIDE.dismissed_popups(text_area.getView) |
75 PIDE.dismissed_popups(text_area.getView) |
105 if (offset >= 0) spell_checker_menu(text_area, offset) |
80 if (offset >= 0) spell_checker_menu(text_area, offset) |
106 else Nil |
81 else Nil |
107 } |
82 } |
108 else Nil |
83 else Nil |
109 |
84 |
110 val items2 = bibtex_menu(text_area) |
85 val items2 = Bibtex_JEdit.context_menu(text_area) |
111 |
86 |
112 val items = items1 ::: items2 |
87 val items = items1 ::: items2 |
113 if (items.isEmpty) null else items.toArray |
88 if (items.isEmpty) null else items.toArray |
114 } |
89 } |
115 } |
90 } |