arcadia 0.1.2.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,219 @@
1
+ #the caller must call the action then the contract must exec
2
+ #the time sequence before, do, after
3
+ #
4
+ #es.
5
+ #
6
+ #def event(_event)
7
+ # do_before_event(_event)
8
+ # do_event(_event)
9
+ # do_after_event(_event)
10
+ #end
11
+
12
+ # event composition
13
+ #
14
+ # [_<TIME>]_<VERBO>_<TARGET>_
15
+ #
16
+ # es. _BEFORE_OPEN_FILE_
17
+ # _OPEN_FILE_
18
+ # _AFTER_OPEN_FILE_
19
+ #
20
+ #
21
+ #
22
+ # class Contract
23
+ # def raise_event(_event_signature, _tobj, *args)
24
+ # _event = _raise_event(_event_forge(_BEFORE+_event_signature, _tobj),*args)
25
+ # if _event.continue_query
26
+ # _event = _raise_event(_event_forge(_event_signature, _tobj),*args)
27
+ # if _event...
28
+ # _raise_event(_event_forge(_AFTER+_event_signature, _tobj),*args)
29
+ # end
30
+ #
31
+ # end
32
+ #
33
+ # sequence
34
+ # _BEFORE='BEFORE'
35
+ # _AFTER='AFTER'
36
+ #
37
+ # verbos
38
+ # _OPEN='OPEN'
39
+ # _CLOSE='CLOSE'
40
+ # _SAVE='SAVE'
41
+ # _SAVEAS='SAVEAS'
42
+ # _SHOW='SHOW'
43
+ # _BUILD='BUILD'
44
+ # _SET='SET'
45
+ # _UNSET='UNSET'
46
+ # _GET='GET'
47
+ # _COMPLETE='COMPLETE'
48
+ # _DOCUMENT='DOCUMENT'
49
+ # _START='START'
50
+ # _STOP='STOP'
51
+ # _CREATE='CREATE'
52
+ # _DESTROY='DESTROY'
53
+ #
54
+ # target
55
+ # _FILE_='FILE'
56
+ # verbos=[OPEN,CLOSE,SAVE,SAVEAS]
57
+ # detail=[filename,line]
58
+ # _EXTENSION_='EXTENSION'
59
+ # _BREAKPOINT_='BREAKPOINT'
60
+ # _DIALOG_='DIALOG'
61
+ # _BUFFER_='BUFFER'
62
+ # _CODE_='CODE'
63
+ # _DEBUGGER_='DEBUGGER'
64
+ #
65
+ #
66
+ # event
67
+ # _OPEN_FILE_ = _OPEN<<_FILE_
68
+ # CLOSE+FILE
69
+ #
70
+ # transfert_detail
71
+ # _FILE_
72
+ # filename
73
+ # line
74
+ # _EXTENSION_
75
+ # name
76
+ # _BREAKPOINT_
77
+ # filename
78
+ # line
79
+ # _DIALOG_
80
+ # type=[search,generic]
81
+ # _BUFFER_
82
+ # title
83
+ # _CODE_
84
+ # filename
85
+ # row
86
+ # column
87
+ #
88
+ #
89
+ # EXTENSION
90
+ # name
91
+ #
92
+ # FileContract
93
+ #
94
+ # ExtensionContract
95
+ #
96
+ #
97
+ # ##### raise_event(_OPEN_FILE_, file=>_file)
98
+ # ##### or raise_event(_OPEN, _FILE_, file=>_file)
99
+ # ##### or open_file(file=>_file)
100
+
101
+ module Sequence
102
+ BEFORE='BEFORE'
103
+ AFTER='AFTER'
104
+ end
105
+
106
+ module Action
107
+ OPEN='OPEN'
108
+ CLOSE='CLOSE'
109
+ SAVE='SAVE'
110
+ SAVEAS='SAVEAS'
111
+ SHOW='SHOW'
112
+ BUILD='BUILD'
113
+ SET='SET'
114
+ UNSET='UNSET'
115
+ GET='GET'
116
+ COMPLETE='COMPLETE'
117
+ DOCUMENT='DOCUMENT'
118
+ START='START'
119
+ STOP='STOP'
120
+ CREATE='CREATE'
121
+ DESTROY='DESTROY'
122
+ end
123
+
124
+ module Target
125
+ FILE='FILE'
126
+ EXTENSION='EXTENSION'
127
+ BREAKPOINT='BREAKPOINT'
128
+ DIALOG='DIALOG'
129
+ BUFFER='BUFFER'
130
+ CODE='CODE'
131
+ DEBUGGER='DEBUGGER'
132
+ end
133
+
134
+
135
+ # module Event
136
+ # include Verbos
137
+ # include Target
138
+ # _OPEN_FILE_ = _OPEN<<_FILE
139
+ # end
140
+
141
+ class ArcadiaContract
142
+ include Sequence
143
+ include Action
144
+ include Target
145
+
146
+ class TObj
147
+ attr_reader :sender
148
+ attr_accessor :caused_by
149
+ attr_accessor :channel
150
+ DEFAULT_CHANNEL='0'
151
+ def initialize(_sender, _args=nil)
152
+ @sender=_sender
153
+ @channel = DEFAULT_CHANNEL
154
+ if _args
155
+ _args.each do |key, value|
156
+ self.send(key+'=', value)
157
+ end
158
+ end
159
+ end
160
+ end
161
+
162
+
163
+ def ArcadiaContract::signature(_verbos,_target)
164
+ _verbos<<'_'<<_target
165
+ end
166
+ def ArcadiaContract::after_signature(_sig)
167
+ signature(AFTER,_sig)
168
+ end
169
+ def ArcadiaContract::before_signature(_sig)
170
+ signature(BEFORE,_sig)
171
+ end
172
+ def ArcadiaContract::add_action(_action, _target)
173
+ _s = signature(_action,_target)
174
+ _bs = before_signature(_s)
175
+ _as = after_signature(_s)
176
+ class_eval(%Q[
177
+ #{_s}='#{_s}'
178
+ #{_bs}='#{_bs}'
179
+ #{_as}='#{_as}'
180
+ ])
181
+ end
182
+ end
183
+
184
+ class << ArcadiaContract
185
+ include Sequence
186
+ include Action
187
+ include Target
188
+ end
189
+
190
+ class FileContract < ArcadiaContract
191
+ add_action OPEN,FILE
192
+ add_action CLOSE,FILE
193
+ add_action SAVE,FILE
194
+ class TFileObj < TObj
195
+ attr_accessor :file, :line, :col, :title, :text, :candidates, :xdoc, :ydoc, :doc_entry,:doc
196
+ end
197
+ end
198
+
199
+ class CodeContract < ArcadiaContract
200
+ add_action COMPLETE,CODE
201
+ add_action DOCUMENT,CODE
202
+ class TCodeObj < TObj
203
+ # attr_accessor_output :file, :line, :col, , :xdoc, :ydoc, :doc_entry
204
+ # attr_accessor_input :candidates,:doc
205
+ end
206
+ end
207
+
208
+ # def do_file_event(_event)
209
+ # case _event.signature
210
+ ## when FileContract::BEFORE_OPEN_FILE
211
+ # when ArcadiaContract::before_signature(FileContract::OPEN_FILE)
212
+ # when FileContract::OPEN
213
+ # when
214
+ # end
215
+ # end
216
+
217
+ p FileContract::AFTER_OPEN_FILE
218
+ p FileContract::BEFORE_OPEN_FILE
219
+ #p CodeContract::OPEN_FILE
@@ -1,307 +1,322 @@
1
- #
2
- # a-contracts.rb - Arcadia Ruby ide
3
- # by Antonio Galeone <antonio-galeone@rubyforge.org>
4
- #
5
-
6
- # Catalog of all contracts used by extensions. This astraction guarantees
7
- # the separation of ext
8
- # contract must extend AeContract
9
-
10
- require "base/a-ext"
11
-
12
- #---------------- contracts ----------------------
13
- class MainContract < ArcadiaContract
14
- class TMainObj < TObj
15
- attr_accessor :obj, :domain, :extension
16
- end
17
-
18
- EXTENSION_BEFORE_BUILD = "EXTENSION_BEFORE_BUILD"
19
- EXTENSION_BUILD = "EXTENSION_BUILD"
20
- EXTENSION_AFTER_BUILD = "EXTENSION_AFTER_BUILD"
21
- EXTENSION_FINALIZE = "EXTENSION_FINALIZE"
22
- CONTRACT_RETRIVE = "CONTRACT_RETRIVE"
23
- RAISE_EXTENSION = "RAISE_EXTENSION"
24
- EVENT_HANDLED = "EVENT_HANDLED"
25
-
26
-
27
- def event_handled(_sender, *args)
28
- raise_event(EVENT_HANDLED, TMainObj.new(_sender, *args))
29
- end
30
-
31
- def extension_before_build(_sender, *args)
32
- raise_event(EXTENSION_BEFORE_BUILD, TMainObj.new(_sender, *args))
33
- end
34
-
35
- def extension_build(_sender, *args)
36
- raise_event(EXTENSION_BUILD, TMainObj.new(_sender, *args))
37
- end
38
-
39
- def extension_after_build(_sender, *args)
40
- raise_event(EXTENSION_AFTER_BUILD, TMainObj.new(_sender, *args))
41
- end
42
-
43
- def raise_extension(_sender, *args)
44
- raise_event(RAISE_EXTENSION, TMainObj.new(_sender, *args))
45
- end
46
-
47
- end
48
-
49
-
50
- class EditorContract < ArcadiaContract
51
- class TEditorObj < TObj
52
- attr_accessor :file, :line, :col, :title, :text, :candidates, :xdoc, :ydoc, :doc_entry,:doc
53
- end
54
- OPEN_FILE = "OPEN_FILE"
55
- CLOSE_FILE = "CLOSE_FILE"
56
- SHOW_SEARCH_DIALOG = "SHOW_SEARCH_DIALOG"
57
- SHOW_GOTO_LINE_DIALOG = "SHOW_GOTO_LINE_DIALOG"
58
- SAVE_FILE = "SAVE_FILE"
59
- SAVE_AS_FILE = "SAVE_AS_FILE"
60
- SAVE_FILE_RAISED = "SAVE_FILE_RAISED"
61
- SAVE_AS_FILE_RAISED = "SAVE_AS_FILE_RAISED"
62
- OPEN_TEXT = "OPEN_TEXT"
63
- COMPLETE_CODE = "COMPLETE_CODE"
64
- DOC_CODE = "DOC_CODE"
65
-
66
- #AFTER_CREATE = "AFTER_CREATE"
67
- BREAKPOINT_AFTER_CREATE = "BREAKPOINT_AFTER_CREATE"
68
- BREAKPOINT_AFTER_DELETE = "BREAKPOINT_AFTER_DELETE"
69
- BREAKPOINTS_AFTER_CREATE = "BREAKPOINTS_AFTER_CREATE"
70
- BREAKPOINTS_AFTER_DELETE = "BREAKPOINTS_AFTER_DELETE"
71
- FILE_AFTER_OPEN = "FILE_AFTER_OPEN"
72
- FILE_AFTER_CLOSE = "FILE_AFTER_CLOSE"
73
- FILE_AFTER_SAVE = "FILE_AFTER_SAVE"
74
- FILE_AFTER_CREATE = "FILE_AFTER_CREATE"
75
- BUFFER_AFTER_RAISE = "BUFFER_AFTER_RAISE"
76
-
77
- def open_file(_sender, *args)
78
- raise_action(OPEN_FILE, TEditorObj.new(_sender, *args))
79
- end
80
-
81
- def close_file(_sender, *args)
82
- raise_action(CLOSE_FILE, TEditorObj.new(_sender, *args))
83
- end
84
-
85
- def save_file(_sender, *args)
86
- raise_action(SAVE_FILE, TEditorObj.new(_sender, *args))
87
- end
88
-
89
- def save_file_raised(_sender, *args)
90
- raise_action(SAVE_FILE_RAISED, TEditorObj.new(_sender, *args))
91
- end
92
-
93
- def save_as_file(_sender, *args)
94
- raise_action(SAVE_AS_FILE, TEditorObj.new(_sender, *args))
95
- end
96
-
97
- def save_as_file_raised(_sender, *args)
98
- raise_action(SAVE_AS_FILE_RAISED, TEditorObj.new(_sender, *args))
99
- end
100
-
101
- def show_search_dialog(_sender, *args)
102
- raise_action(SHOW_SEARCH_DIALOG, TEditorObj.new(_sender, *args))
103
- end
104
-
105
-
106
- def show_goto_line_dialog(_sender, *args)
107
- raise_action(SHOW_GOTO_LINE_DIALOG, TEditorObj.new(_sender, *args))
108
- end
109
-
110
- def open_text(_sender, *args)
111
- raise_action(OPEN_TEXT, TEditorObj.new(_sender, *args))
112
- end
113
-
114
- def complete_code(_sender, *args)
115
- raise_action(COMPLETE_CODE, TEditorObj.new(_sender, *args))
116
- end
117
-
118
- def doc_code(_sender, *args)
119
- raise_action(DOC_CODE, TEditorObj.new(_sender, *args))
120
- end
121
-
122
- def file_opened(_sender, *args)
123
- raise_event(FILE_AFTER_OPEN, TEditorObj.new(_sender, *args))
124
- end
125
-
126
- def file_saved(_sender, *args)
127
- raise_event(FILE_AFTER_SAVE, TEditorObj.new(_sender, *args))
128
- end
129
-
130
- def file_created(_sender, *args)
131
- raise_event(FILE_AFTER_CREATE, TEditorObj.new(_sender, *args))
132
- end
133
-
134
- def buffer_raised(_sender, *args)
135
- raise_event(BUFFER_AFTER_RAISE, TEditorObj.new(_sender, *args))
136
- end
137
-
138
- def file_closed(_sender, *args)
139
- raise_event(FILE_AFTER_CLOSE, TEditorObj.new(_sender, *args))
140
- end
141
-
142
- def breakpoint_created(_sender, *args)
143
- raise_event(BREAKPOINT_AFTER_CREATE, TEditorObj.new(_sender, *args))
144
- end
145
-
146
- def breakpoint_deleted(_sender, *args)
147
- raise_event(BREAKPOINT_AFTER_DELETE, TEditorObj.new(_sender, *args))
148
- end
149
-
150
- # def breakpoints_created(_array_of_tobj=nil)
151
- # raise_event(BREAKPOINTS_AFTER_CREATE, _array_of_tobj)
152
- # end
153
- # def breakpoints_deleted(_array_of_tobj=nil)
154
- # raise_event(BREAKPOINTS_AFTER_DELETE, _array_of_tobj)
155
- # end
156
-
157
- end
158
-
159
- class MsgContract < ArcadiaContract
160
- TYPE_SIMPLE = "TYPE_SIMPLE"
161
- TYPE_DEBUG = "TYPE_DEBUG"
162
- TYPE_ERROR = "TYPE_ERROR"
163
- SObj = Struct.new("MsgState"
164
- )
165
- class TMsgObj < TObj
166
- attr_accessor :type, :text
167
- end
168
-
169
- EVENT_EXT_MSG_OUT = "EVENT_EXT_MSG_OUT"
170
- def out(_sender, *args)
171
- raise_event(EVENT_EXT_MSG_OUT, TMsgObj.new(_sender, *args))
172
- end
173
-
174
- def out_simple(_sender, _msg, _channel=nil)
175
- self.out(_sender, 'type'=>TYPE_SIMPLE, 'text'=>_msg, 'channel'=>_channel)
176
- end
177
-
178
- def out_debug(_sender, _msg, _channel=nil)
179
- self.out(_sender, 'type'=>TYPE_DEBUG, 'text'=>_msg, 'channel'=>_channel)
180
- end
181
-
182
- def out_error(_sender, _msg, _channel=nil)
183
- self.out(_sender, 'type'=>TYPE_ERROR, 'text'=>_msg, 'channel'=>_channel)
184
- end
185
- end
186
-
187
- class ShellContract < ArcadiaContract
188
- SObj = Struct.new("ShellState"
189
- )
190
- class TShellObj < TObj
191
- attr_accessor :file
192
- end
193
-
194
- def run(_sender, *args)
195
- end
196
-
197
- def debug(_sender, *args)
198
- end
199
- end
200
-
201
-
202
- class DebugContract < ArcadiaContract
203
- SObj = Struct.new("DebugState"
204
- )
205
- class TDebugObj < TObj
206
- attr_accessor :file, :line, :error_text, :error_class,:callers, :variables
207
- end
208
-
209
- DEBUG_BEGIN="DEBUG_BEGIN"
210
- DEBUG_END="DEBUG_END"
211
- DEBUG_STEP="DEBUG_STEP"
212
-
213
- def debug_begin(_sender, *args)
214
- raise_event(DEBUG_BEGIN, TDebugObj.new(_sender, *args))
215
- end
216
- def debug_end(_sender, *args)
217
- raise_event(DEBUG_END, TDebugObj.new(_sender, *args))
218
- end
219
- def debug_step(_sender, *args)
220
- raise_event(DEBUG_STEP, TDebugObj.new(_sender, *args))
221
- end
222
- end
223
-
224
- class InspectorContract < ArcadiaContract
225
- SObj = Struct.new("InspectorActionState"
226
- )
227
- class TInspectorObj < TObj
228
- attr_accessor :wrapper, :requires, :property_family,:property_name,:property_value
229
- end
230
-
231
- SELECT_WRAPPER = "SELECT_WRAPPER"
232
- #ACTIVATE_WRAPPER = "ACTIVATE_WRAPPER"
233
- DELETE_WRAPPER = "DELETE_WRAPPER"
234
- ADD_REQUIRE = "ADD_REQUIRE"
235
- REGISTER_WRAPPER = "REGISTER_WRAPPER"
236
- # UPDATE_PROPERTY = "UPDATE_PROPERTY"
237
- DELETE_INSPECTOR = "DELETE_INSPECTOR"
238
- RAISE_LAST_WIDGET = "RAISE_LAST_WIDGET"
239
- RAISE_ACTIVE_TOPLEVEL = "RAISE_ACTIVE_TOPLEVEL"
240
-
241
- def delete_wrapper(_sender, *args)
242
- raise_action(DELETE_WRAPPER, TInspectorObj.new(_sender, *args))
243
- end
244
-
245
- def raise_last_widget(_sender, *args)
246
- raise_action(RAISE_LAST_WIDGET, TInspectorObj.new(_sender, *args))
247
- end
248
-
249
- def raise_active_toplevel(_sender, *args)
250
- raise_action(RAISE_ACTIVE_TOPLEVEL, TInspectorObj.new(_sender, *args))
251
- end
252
-
253
- def select(_sender, *args)
254
- raise_action(SELECT_WRAPPER, TInspectorObj.new(_sender, *args))
255
- end
256
-
257
- def add_require(_sender, *args)
258
- raise_action(ADD_REQUIRE, TInspectorObj.new(_sender, *args))
259
- end
260
-
261
- def register(_sender, *args)
262
- raise_action(REGISTER_WRAPPER, TInspectorObj.new(_sender, *args))
263
- end
264
-
265
- def delete_inspector(_sender, *args)
266
- raise_action(DELETE_INSPECTOR, TInspectorObj.new(_sender, *args))
267
- end
268
-
269
- publish_action :raise_active_object
270
- end
271
-
272
- class PublishContract < ArcadiaContract
273
- ADD_COMAND_ACTOR = "ADD_COMAND_ACTOR"
274
- def add_command_actor(_sender, *args)
275
- raise_action(ADD_COMAND_ACTOR, TObj.new(_sender, *args))
276
- end
277
- end
278
-
279
-
280
-
281
- class WrapperContract < ArcadiaContract
282
- class TWrapperObj < TObj
283
- attr_accessor :wrapper, :property_name, :property_family, :property_old_value, :property_new_value
284
- end
285
- WRAPPER_AFTER_CREATE="WRAPPER_AFTER_CREATE"
286
- PROPERTY_AFTER_UPDATE="PROPERTY_AFTER_UPDATE"
287
- UPDATE_PROPERTY="UPDATE_PROPERTY"
288
- def update_property(_sender, *args)
289
- raise_action(UPDATE_PROPERTY, TWrapperObj.new(_sender, *args))
290
- end
291
- def property_updated(_sender, *args)
292
- raise_event(PROPERTY_AFTER_UPDATE, TWrapperObj.new(_sender, *args))
293
- end
294
- def wrapper_created(_sender, *args)
295
- raise_event(WRAPPER_AFTER_CREATE, TWrapperObj.new(_sender, *args))
296
- end
297
- end
298
-
299
- class PaletteContract < ArcadiaContract
300
- class TPaletteObj < TObj
301
- attr_accessor :parent, :x, :y
302
- end
303
- MAKE_SELECTED_WRAPPER = "MAKE_SELECTED_WRAPPER"
304
- def make_selected(_sender, *args)
305
- raise_action(MAKE_SELECTED_WRAPPER, TPaletteObj.new(_sender, *args))
306
- end
307
- end
1
+ #
2
+ # a-contracts.rb - Arcadia Ruby ide
3
+ # by Antonio Galeone <antonio-galeone@rubyforge.org>
4
+ #
5
+
6
+ # Catalog of all contracts used by extensions. This astraction guarantees
7
+ # the separation of ext
8
+ # contract must extend AeContract
9
+
10
+ require "base/a-ext"
11
+
12
+
13
+
14
+
15
+ #---------------- contracts ----------------------
16
+ class MainContract < ArcadiaContract
17
+ class TMainObj < TObj
18
+ attr_accessor :obj, :domain, :extension
19
+ end
20
+
21
+ EXTENSION_BEFORE_BUILD = "EXTENSION_BEFORE_BUILD"
22
+ EXTENSION_BUILD = "EXTENSION_BUILD"
23
+ EXTENSION_AFTER_BUILD = "EXTENSION_AFTER_BUILD"
24
+ EXTENSION_FINALIZE = "EXTENSION_FINALIZE"
25
+ CONTRACT_RETRIVE = "CONTRACT_RETRIVE"
26
+ RAISE_EXTENSION = "RAISE_EXTENSION"
27
+ EVENT_HANDLED = "EVENT_HANDLED"
28
+
29
+
30
+ def event_handled(_sender, *args)
31
+ raise_event(EVENT_HANDLED, TMainObj.new(_sender, *args))
32
+ end
33
+
34
+ def extension_before_build(_sender, *args)
35
+ raise_event(EXTENSION_BEFORE_BUILD, TMainObj.new(_sender, *args))
36
+ end
37
+
38
+ def extension_build(_sender, *args)
39
+ raise_event(EXTENSION_BUILD, TMainObj.new(_sender, *args))
40
+ end
41
+
42
+ def extension_after_build(_sender, *args)
43
+ raise_event(EXTENSION_AFTER_BUILD, TMainObj.new(_sender, *args))
44
+ end
45
+
46
+ def raise_extension(_sender, *args)
47
+ raise_event(RAISE_EXTENSION, TMainObj.new(_sender, *args))
48
+ end
49
+
50
+ end
51
+
52
+
53
+ class EditorContract < ArcadiaContract
54
+ class TEditorObj < TObj
55
+ attr_accessor :file, :line, :col, :title, :text, :candidates, :xdoc, :ydoc, :doc_entry,:doc
56
+ end
57
+ OPEN_FILE = "OPEN_FILE"
58
+ CLOSE_FILE = "CLOSE_FILE"
59
+ SHOW_SEARCH_DIALOG = "SHOW_SEARCH_DIALOG"
60
+ SHOW_GOTO_LINE_DIALOG = "SHOW_GOTO_LINE_DIALOG"
61
+ SAVE_FILE = "SAVE_FILE"
62
+ SAVE_AS_FILE = "SAVE_AS_FILE"
63
+ SAVE_FILE_RAISED = "SAVE_FILE_RAISED"
64
+ SAVE_AS_FILE_RAISED = "SAVE_AS_FILE_RAISED"
65
+ OPEN_TEXT = "OPEN_TEXT"
66
+ COMPLETE_CODE = "COMPLETE_CODE"
67
+ DOC_CODE = "DOC_CODE"
68
+ BUILD_DOC_TREE = "BUILD_DOC_TREE"
69
+
70
+ #AFTER_CREATE = "AFTER_CREATE"
71
+ BREAKPOINT_AFTER_CREATE = "BREAKPOINT_AFTER_CREATE"
72
+ BREAKPOINT_AFTER_DELETE = "BREAKPOINT_AFTER_DELETE"
73
+ BREAKPOINTS_AFTER_CREATE = "BREAKPOINTS_AFTER_CREATE"
74
+ BREAKPOINTS_AFTER_DELETE = "BREAKPOINTS_AFTER_DELETE"
75
+ FILE_AFTER_OPEN = "FILE_AFTER_OPEN"
76
+ FILE_AFTER_CLOSE = "FILE_AFTER_CLOSE"
77
+ FILE_AFTER_SAVE = "FILE_AFTER_SAVE"
78
+ FILE_AFTER_CREATE = "FILE_AFTER_CREATE"
79
+ BUFFER_AFTER_RAISE = "BUFFER_AFTER_RAISE"
80
+ EVAL_EXPRESSION = "EVAL_EXPRESSION"
81
+ def open_file(_sender, *args)
82
+ raise_action(OPEN_FILE, TEditorObj.new(_sender, *args))
83
+ end
84
+
85
+ def close_file(_sender, *args)
86
+ raise_action(CLOSE_FILE, TEditorObj.new(_sender, *args))
87
+ end
88
+
89
+ def save_file(_sender, *args)
90
+ raise_action(SAVE_FILE, TEditorObj.new(_sender, *args))
91
+ end
92
+
93
+ def save_file_raised(_sender, *args)
94
+ raise_action(SAVE_FILE_RAISED, TEditorObj.new(_sender, *args))
95
+ end
96
+
97
+ def save_as_file(_sender, *args)
98
+ raise_action(SAVE_AS_FILE, TEditorObj.new(_sender, *args))
99
+ end
100
+
101
+ def save_as_file_raised(_sender, *args)
102
+ raise_action(SAVE_AS_FILE_RAISED, TEditorObj.new(_sender, *args))
103
+ end
104
+
105
+ def show_search_dialog(_sender, *args)
106
+ raise_action(SHOW_SEARCH_DIALOG, TEditorObj.new(_sender, *args))
107
+ end
108
+
109
+
110
+ def show_goto_line_dialog(_sender, *args)
111
+ raise_action(SHOW_GOTO_LINE_DIALOG, TEditorObj.new(_sender, *args))
112
+ end
113
+
114
+ def open_text(_sender, *args)
115
+ raise_action(OPEN_TEXT, TEditorObj.new(_sender, *args))
116
+ end
117
+
118
+ def complete_code(_sender, *args)
119
+ raise_action(COMPLETE_CODE, TEditorObj.new(_sender, *args))
120
+ end
121
+
122
+ def doc_code(_sender, *args)
123
+ raise_action(DOC_CODE, TEditorObj.new(_sender, *args))
124
+ end
125
+
126
+ def build_doc_tree(_sender, *args)
127
+ raise_action(BUILD_DOC_TREE, TEditorObj.new(_sender, *args))
128
+ end
129
+
130
+ def file_opened(_sender, *args)
131
+ raise_event(FILE_AFTER_OPEN, TEditorObj.new(_sender, *args))
132
+ end
133
+
134
+ def file_saved(_sender, *args)
135
+ raise_event(FILE_AFTER_SAVE, TEditorObj.new(_sender, *args))
136
+ end
137
+
138
+ def file_created(_sender, *args)
139
+ raise_event(FILE_AFTER_CREATE, TEditorObj.new(_sender, *args))
140
+ end
141
+
142
+ def buffer_raised(_sender, *args)
143
+ raise_event(BUFFER_AFTER_RAISE, TEditorObj.new(_sender, *args))
144
+ end
145
+
146
+ def file_closed(_sender, *args)
147
+ raise_event(FILE_AFTER_CLOSE, TEditorObj.new(_sender, *args))
148
+ end
149
+
150
+ def breakpoint_created(_sender, *args)
151
+ raise_event(BREAKPOINT_AFTER_CREATE, TEditorObj.new(_sender, *args))
152
+ end
153
+
154
+ def breakpoint_deleted(_sender, *args)
155
+ raise_event(BREAKPOINT_AFTER_DELETE, TEditorObj.new(_sender, *args))
156
+ end
157
+
158
+ def eval_expression(_sender, *args)
159
+ raise_action(EVAL_EXPRESSION, TEditorObj.new(_sender, *args))
160
+ end
161
+
162
+
163
+
164
+ # def breakpoints_created(_array_of_tobj=nil)
165
+ # raise_event(BREAKPOINTS_AFTER_CREATE, _array_of_tobj)
166
+ # end
167
+ # def breakpoints_deleted(_array_of_tobj=nil)
168
+ # raise_event(BREAKPOINTS_AFTER_DELETE, _array_of_tobj)
169
+ # end
170
+
171
+ end
172
+
173
+ class MsgContract < ArcadiaContract
174
+ TYPE_SIMPLE = "TYPE_SIMPLE"
175
+ TYPE_DEBUG = "TYPE_DEBUG"
176
+ TYPE_ERROR = "TYPE_ERROR"
177
+ SObj = Struct.new("MsgState"
178
+ )
179
+ class TMsgObj < TObj
180
+ attr_accessor :type, :text
181
+ end
182
+
183
+ EVENT_EXT_MSG_OUT = "EVENT_EXT_MSG_OUT"
184
+ def out(_sender, *args)
185
+ raise_event(EVENT_EXT_MSG_OUT, TMsgObj.new(_sender, *args))
186
+ end
187
+
188
+ def out_simple(_sender, _msg, _channel=nil)
189
+ self.out(_sender, 'type'=>TYPE_SIMPLE, 'text'=>_msg, 'channel'=>_channel)
190
+ end
191
+
192
+ def out_debug(_sender, _msg, _channel=nil)
193
+ self.out(_sender, 'type'=>TYPE_DEBUG, 'text'=>_msg, 'channel'=>_channel)
194
+ end
195
+
196
+ def out_error(_sender, _msg, _channel=nil)
197
+ self.out(_sender, 'type'=>TYPE_ERROR, 'text'=>_msg, 'channel'=>_channel)
198
+ end
199
+ end
200
+
201
+ class ShellContract < ArcadiaContract
202
+ SObj = Struct.new("ShellState"
203
+ )
204
+ class TShellObj < TObj
205
+ attr_accessor :file
206
+ end
207
+
208
+ def run(_sender, *args)
209
+ end
210
+
211
+ def debug(_sender, *args)
212
+ end
213
+ end
214
+
215
+
216
+ class DebugContract < ArcadiaContract
217
+ SObj = Struct.new("DebugState"
218
+ )
219
+ class TDebugObj < TObj
220
+ attr_accessor :file, :line, :error_text, :error_class,:callers, :variables
221
+ end
222
+
223
+ DEBUG_BEGIN="DEBUG_BEGIN"
224
+ DEBUG_END="DEBUG_END"
225
+ DEBUG_STEP="DEBUG_STEP"
226
+
227
+ def debug_begin(_sender, *args)
228
+ raise_event(DEBUG_BEGIN, TDebugObj.new(_sender, *args))
229
+ end
230
+ def debug_end(_sender, *args)
231
+ raise_event(DEBUG_END, TDebugObj.new(_sender, *args))
232
+ end
233
+ def debug_step(_sender, *args)
234
+ raise_event(DEBUG_STEP, TDebugObj.new(_sender, *args))
235
+ end
236
+ end
237
+
238
+ class InspectorContract < ArcadiaContract
239
+ SObj = Struct.new("InspectorActionState"
240
+ )
241
+ class TInspectorObj < TObj
242
+ attr_accessor :wrapper, :requires, :property_family,:property_name,:property_value
243
+ end
244
+
245
+ SELECT_WRAPPER = "SELECT_WRAPPER"
246
+ #ACTIVATE_WRAPPER = "ACTIVATE_WRAPPER"
247
+ DELETE_WRAPPER = "DELETE_WRAPPER"
248
+ ADD_REQUIRE = "ADD_REQUIRE"
249
+ REGISTER_WRAPPER = "REGISTER_WRAPPER"
250
+ # UPDATE_PROPERTY = "UPDATE_PROPERTY"
251
+ DELETE_INSPECTOR = "DELETE_INSPECTOR"
252
+ RAISE_LAST_WIDGET = "RAISE_LAST_WIDGET"
253
+ RAISE_ACTIVE_TOPLEVEL = "RAISE_ACTIVE_TOPLEVEL"
254
+
255
+ def delete_wrapper(_sender, *args)
256
+ raise_action(DELETE_WRAPPER, TInspectorObj.new(_sender, *args))
257
+ end
258
+
259
+ def raise_last_widget(_sender, *args)
260
+ raise_action(RAISE_LAST_WIDGET, TInspectorObj.new(_sender, *args))
261
+ end
262
+
263
+ def raise_active_toplevel(_sender, *args)
264
+ raise_action(RAISE_ACTIVE_TOPLEVEL, TInspectorObj.new(_sender, *args))
265
+ end
266
+
267
+ def select(_sender, *args)
268
+ raise_action(SELECT_WRAPPER, TInspectorObj.new(_sender, *args))
269
+ end
270
+
271
+ def add_require(_sender, *args)
272
+ raise_action(ADD_REQUIRE, TInspectorObj.new(_sender, *args))
273
+ end
274
+
275
+ def register(_sender, *args)
276
+ raise_action(REGISTER_WRAPPER, TInspectorObj.new(_sender, *args))
277
+ end
278
+
279
+ def delete_inspector(_sender, *args)
280
+ raise_action(DELETE_INSPECTOR, TInspectorObj.new(_sender, *args))
281
+ end
282
+
283
+ publish_action :raise_active_object
284
+ end
285
+
286
+ class PublishContract < ArcadiaContract
287
+ ADD_COMAND_ACTOR = "ADD_COMAND_ACTOR"
288
+ def add_command_actor(_sender, *args)
289
+ raise_action(ADD_COMAND_ACTOR, TObj.new(_sender, *args))
290
+ end
291
+ end
292
+
293
+
294
+
295
+ class WrapperContract < ArcadiaContract
296
+ class TWrapperObj < TObj
297
+ attr_accessor :wrapper, :property_name, :property_family, :property_old_value, :property_new_value
298
+ end
299
+ WRAPPER_AFTER_CREATE="WRAPPER_AFTER_CREATE"
300
+ PROPERTY_AFTER_UPDATE="PROPERTY_AFTER_UPDATE"
301
+ UPDATE_PROPERTY="UPDATE_PROPERTY"
302
+ def update_property(_sender, *args)
303
+ raise_action(UPDATE_PROPERTY, TWrapperObj.new(_sender, *args))
304
+ end
305
+ def property_updated(_sender, *args)
306
+ raise_event(PROPERTY_AFTER_UPDATE, TWrapperObj.new(_sender, *args))
307
+ end
308
+ def wrapper_created(_sender, *args)
309
+ raise_event(WRAPPER_AFTER_CREATE, TWrapperObj.new(_sender, *args))
310
+ end
311
+ end
312
+
313
+ class PaletteContract < ArcadiaContract
314
+ class TPaletteObj < TObj
315
+ attr_accessor :parent, :x, :y
316
+ end
317
+ MAKE_SELECTED_WRAPPER = "MAKE_SELECTED_WRAPPER"
318
+ def make_selected(_sender, *args)
319
+ raise_action(MAKE_SELECTED_WRAPPER, TPaletteObj.new(_sender, *args))
320
+ end
321
+ end
322
+