summaryrefslogtreecommitdiff
path: root/grc/base/Element.py
diff options
context:
space:
mode:
authorjblum <jblum@221aa14e-8319-0410-a670-987f0aec2ac5>2009-06-23 20:38:18 +0000
committerjblum <jblum@221aa14e-8319-0410-a670-987f0aec2ac5>2009-06-23 20:38:18 +0000
commit9988664127b367fa8fee4409f8460673d6f265e1 (patch)
tree96752c15b7f1447e5e78a7282d1de141f9e0000b /grc/base/Element.py
parent885e6fe1fd0e06476511c79515f34ffcef50287d (diff)
Merging r11186:11273 from grc branch.
Fixes, features, and reorganization for grc. Minor fixes and features for wxgui forms. git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11274 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'grc/base/Element.py')
-rw-r--r--grc/base/Element.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/grc/base/Element.py b/grc/base/Element.py
new file mode 100644
index 0000000000..16000c46c0
--- /dev/null
+++ b/grc/base/Element.py
@@ -0,0 +1,67 @@
+"""
+Copyright 2008 Free Software Foundation, Inc.
+This file is part of GNU Radio
+
+GNU Radio Companion is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+GNU Radio Companion is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+"""
+
+class Element(object):
+
+ def __init__(self, parent=None):
+ self._parent = parent
+ self.flag()
+
+ def test(self):
+ """
+ Test the element against failures.
+ Overload this method in sub-classes.
+ """
+ pass
+
+ ##################################################
+ # Element Validation API
+ ##################################################
+ def validate(self): self._error_messages = list()
+ def is_valid(self): return not self.get_error_messages() or not self.get_enabled()
+ def add_error_message(self, msg): self._error_messages.append(msg)
+ def get_error_messages(self): return self._error_messages
+
+ def get_enabled(self): return True
+
+ def get_parent(self): return self._parent
+
+ ##############################################
+ ## Update flagging
+ ##############################################
+ def is_flagged(self): return self._flag
+ def flag(self):
+ self._flag = True
+ if self.get_parent(): self.get_parent().flag()
+ def deflag(self):
+ self._flag = False
+ if self.get_parent(): self.get_parent().deflag()
+
+ ##############################################
+ ## Type testing methods
+ ##############################################
+ def is_element(self): return True
+ def is_platform(self): return False
+ def is_flow_graph(self): return False
+ def is_connection(self): return False
+ def is_block(self): return False
+ def is_source(self): return False
+ def is_sink(self): return False
+ def is_port(self): return False
+ def is_param(self): return False