Files
@ 49f72f9d4cc9
Branch filter:
Location: volker/graph_components/src/graph/components.py - annotation
49f72f9d4cc9
2.4 KiB
text/x-python
Initial version
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 49f72f9d4cc9 |
from zope.interface import implements, implementsOnly, Interface
from zope.component import adapts, getGlobalSiteManager
from graph.interfaces import ITickLabelAdapter
from graph.interfaces import IAxis
from graph.interfaces import IViewBox
from graph.interfaces import IImage
from graph.interfaces import IBaseAdapter
gsm = getGlobalSiteManager()
class BaseAdapter(object):
"""
Base for all Adapters
"""
implements(IBaseAdapter)
def __init__(self, obj):
"""
Gets an Object to be adapted
"""
self.obj = obj
class BaseComponent(object):
"""
"""
def __init__(self, parent):
self.parent = parent
class TickLabelAdapter(BaseAdapter):
"""
Generates Ticklabels for an axis
"""
implementsOnly(ITickLabelAdapter)
adapts(IAxis)
def __init__(self, axis):
"""
Gets an Object to be adapted
"""
self.axis = axis
def render(self):
return map(str, range(self.axis.start, self.axis.end))
gsm.registerAdapter(TickLabelAdapter)
class Axis(BaseComponent):
"""
Represents an axis
"""
implements(IAxis)
adapts(Interface)
def __init__(self, parent, orientation=None, start=None, end=None):
super(Axis, self).__init__(parent)
self.orientation = orientation
self.start = start
self.end = end
def get_tick_labels(self):
return ITickLabelAdapter(self).render()
def render(self):
return 'axis: ' + self.orientation + ':' + ' '.join(self.get_tick_labels())
gsm.registerAdapter(Axis)
class ViewBox(BaseComponent):
"""
Drawing area of a plot. THe drawing ares may have an unlimited number of axis
"""
implements(IViewBox)
adapts(Interface)
def __init__(self, parent):
super(ViewBox, self).__init__(parent)
self.items = []
def addItem(self, item):
self.items.append(item)
def render(self):
result = []
for item in self.items:
result.append(item.render())
return '\n'.join(result)
gsm.registerAdapter(ViewBox)
class Image(BaseComponent):
"""
A image representing f(x,y) values
"""
implements(IImage)
adapts(Interface)
def __init__(self, parent, data):
super(Image, self).__init__(parent)
self.data = data
def render(self):
return 'Image: Rendered image'
gsm.registerAdapter(Image)
|