Robot Framework Integrated Development Environment (RIDE)
editorprovider.py
Go to the documentation of this file.
1 # Copyright 2008-2015 Nokia Networks
2 # Copyright 2016- Robot Framework Foundation
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 
17 
18  def __init__(self):
19  self._editors_editors = {}
20 
21  def register_editor(self, key, editor, default=True):
22  if key not in self._editors_editors:
23  self._editors_editors[key] = _EditorList()
24  self._editors_editors[key].add(editor, default)
25 
26  def unregister_editor(self, key, editor):
27  self._editors_editors[key].remove(editor)
28 
29  def set_active_editor(self, key, editor):
30  self._editors_editors[key].set_default(editor)
31 
32  def get_editor(self, key):
33  return self._editors_editors[key].get()
34 
35  def get_editors(self, key):
36  return self._editors_editors[key].get_all()
37 
38 
39 class _EditorList():
40 
41  def __init__(self):
42  self._editors_editors = []
43 
44  def add(self, editor, default=True):
45  if editor in self._editors_editors:
46  return
47  if default:
48  self._editors_editors.append(editor)
49  else:
50  self._editors_editors.insert(0, editor)
51 
52  def set_default(self, editor):
53  if not self._editors_editors.index(editor) == -1:
54  self._editors_editors.remove(editor)
55  self._editors_editors.append(editor)
56 
57  def remove(self, editor):
58  self._editors_editors.remove(editor)
59 
60  def get(self):
61  return self._editors_editors[-1]
62 
63  def get_all(self):
64  return self._editors_editors
def register_editor(self, key, editor, default=True)