34 |
33 |
35 /* query operation */ |
34 /* query operation */ |
36 |
35 |
37 private val process_indicator = new Process_Indicator |
36 private val process_indicator = new Process_Indicator |
38 |
37 |
39 private def consume_status(status: Query_Operation.Status.Value): Unit = |
38 private def consume_status(status: Query_Operation.Status.Value): Unit = { |
40 { |
|
41 status match { |
39 status match { |
42 case Query_Operation.Status.WAITING => |
40 case Query_Operation.Status.WAITING => |
43 process_indicator.update("Waiting for evaluation of context ...", 5) |
41 process_indicator.update("Waiting for evaluation of context ...", 5) |
44 case Query_Operation.Status.RUNNING => |
42 case Query_Operation.Status.RUNNING => |
45 process_indicator.update("Sledgehammering ...", 15) |
43 process_indicator.update("Sledgehammering ...", 15) |
62 addComponentListener(new ComponentAdapter { |
60 addComponentListener(new ComponentAdapter { |
63 override def componentResized(e: ComponentEvent): Unit = delay_resize.invoke() |
61 override def componentResized(e: ComponentEvent): Unit = delay_resize.invoke() |
64 override def componentShown(e: ComponentEvent): Unit = delay_resize.invoke() |
62 override def componentShown(e: ComponentEvent): Unit = delay_resize.invoke() |
65 }) |
63 }) |
66 |
64 |
67 private def handle_resize(): Unit = |
65 private def handle_resize(): Unit = { |
68 { |
|
69 GUI_Thread.require {} |
66 GUI_Thread.require {} |
70 |
67 |
71 pretty_text_area.resize( |
68 pretty_text_area.resize( |
72 Font_Info.main(PIDE.options.real("jedit_font_scale") * zoom.factor / 100)) |
69 Font_Info.main(PIDE.options.real("jedit_font_scale") * zoom.factor / 100)) |
73 } |
70 } |
74 |
71 |
75 |
72 |
76 /* controls */ |
73 /* controls */ |
77 |
74 |
78 private def clicked: Unit = |
75 private def clicked: Unit = { |
79 { |
|
80 provers.addCurrentToHistory() |
76 provers.addCurrentToHistory() |
81 PIDE.options.string("sledgehammer_provers") = provers.getText |
77 PIDE.options.string("sledgehammer_provers") = provers.getText |
82 sledgehammer.apply_query( |
78 sledgehammer.apply_query( |
83 List(provers.getText, isar_proofs.selected.toString, try0.selected.toString)) |
79 List(provers.getText, isar_proofs.selected.toString, try0.selected.toString)) |
84 } |
80 } |
89 "Automatic provers as space-separated list, e.g.\n" + |
85 "Automatic provers as space-separated list, e.g.\n" + |
90 PIDE.options.value.check_name("sledgehammer_provers").default_value) |
86 PIDE.options.value.check_name("sledgehammer_provers").default_value) |
91 } |
87 } |
92 |
88 |
93 private val provers = new HistoryTextField("isabelle-sledgehammer-provers") { |
89 private val provers = new HistoryTextField("isabelle-sledgehammer-provers") { |
94 override def processKeyEvent(evt: KeyEvent): Unit = |
90 override def processKeyEvent(evt: KeyEvent): Unit = { |
95 { |
|
96 if (evt.getID == KeyEvent.KEY_PRESSED && evt.getKeyCode == KeyEvent.VK_ENTER) clicked |
91 if (evt.getID == KeyEvent.KEY_PRESSED && evt.getKeyCode == KeyEvent.VK_ENTER) clicked |
97 super.processKeyEvent(evt) |
92 super.processKeyEvent(evt) |
98 } |
93 } |
99 setToolTipText(provers_label.tooltip) |
94 setToolTipText(provers_label.tooltip) |
100 setColumns(30) |
95 setColumns(30) |
101 } |
96 } |
102 |
97 |
103 private def update_provers(): Unit = |
98 private def update_provers(): Unit = { |
104 { |
|
105 val new_provers = PIDE.options.string("sledgehammer_provers") |
99 val new_provers = PIDE.options.string("sledgehammer_provers") |
106 if (new_provers != provers.getText) { |
100 if (new_provers != provers.getText) { |
107 provers.setText(new_provers) |
101 provers.setText(new_provers) |
108 if (provers.getCaret != null) |
102 if (provers.getCaret != null) |
109 provers.getCaret.setDot(0) |
103 provers.getCaret.setDot(0) |
152 private val main = |
146 private val main = |
153 Session.Consumer[Session.Global_Options](getClass.getName) { |
147 Session.Consumer[Session.Global_Options](getClass.getName) { |
154 case _: Session.Global_Options => GUI_Thread.later { update_provers(); handle_resize() } |
148 case _: Session.Global_Options => GUI_Thread.later { update_provers(); handle_resize() } |
155 } |
149 } |
156 |
150 |
157 override def init(): Unit = |
151 override def init(): Unit = { |
158 { |
|
159 PIDE.session.global_options += main |
152 PIDE.session.global_options += main |
160 update_provers() |
153 update_provers() |
161 handle_resize() |
154 handle_resize() |
162 sledgehammer.activate() |
155 sledgehammer.activate() |
163 } |
156 } |
164 |
157 |
165 override def exit(): Unit = |
158 override def exit(): Unit = { |
166 { |
|
167 sledgehammer.deactivate() |
159 sledgehammer.deactivate() |
168 PIDE.session.global_options -= main |
160 PIDE.session.global_options -= main |
169 delay_resize.revoke() |
161 delay_resize.revoke() |
170 } |
162 } |
171 } |
163 } |