diff --git a/src/graph/interfaces.py b/src/graph/interfaces.py --- a/src/graph/interfaces.py +++ b/src/graph/interfaces.py @@ -25,7 +25,7 @@ class IAxis(IBaseComponent): createed with knowledge of its parent component """ -class ITickLabelAdapter(IBaseComponent): +class ITickLabel(IBaseComponent): """ An adapter that produces tick labels for an axis """ diff --git a/src/graph_ZCA/app.py b/src/graph_ZCA/app.py --- a/src/graph_ZCA/app.py +++ b/src/graph_ZCA/app.py @@ -1,7 +1,7 @@ from zope.interface import implements -from graph_ZCA.components import BaseComponent, Image, Axis, AxisComponent, ViewBox +from graph_ZCA.components import BaseComponent, Image, Axis, AxisComponent, ViewBox, TickLabelComponent from graph_ZCA.interfaces import IAxis, IViewBox, IBaseComponent from zope.component import getGlobalSiteManager, adapts @@ -49,6 +49,17 @@ class NewAxisComponent(AxisComponent): gsm.registerAdapter(NewAxisComponent) + +class NewTickLabelComponent(TickLabelComponent): + adapts(IAxis) + + def render(self): + return " ".join([ "q%i" % i for i in range(self.axis.start, self.axis.end)]) + +gsm.registerAdapter(NewTickLabelComponent) + + + image_data = [1,2,3,4] plot = PlotImage( None) diff --git a/src/graph_ZCA/components.py b/src/graph_ZCA/components.py --- a/src/graph_ZCA/components.py +++ b/src/graph_ZCA/components.py @@ -4,14 +4,14 @@ from zope.component import adapts, getGl gsm = getGlobalSiteManager() from graph_ZCA.base import BaseAdapter, BaseComponent, BaseFactory -from graph_ZCA.interfaces import ITickLabelAdapter, IAxis, IViewBox, IImage +from graph_ZCA.interfaces import ITickLabel, IAxis, IViewBox, IImage -class TickLabelAdapter(BaseAdapter): +class TickLabelComponent(BaseComponent): """ Generates Ticklabels for an axis """ - implementsOnly(ITickLabelAdapter) + implementsOnly(ITickLabel) adapts(IAxis) def __init__(self, axis): @@ -23,7 +23,12 @@ class TickLabelAdapter(BaseAdapter): def render(self): return map(str, range(self.axis.start, self.axis.end)) -gsm.registerAdapter(TickLabelAdapter) +gsm.registerAdapter(TickLabelComponent) + + +class TickLabel(BaseFactory): + + target_interface = ITickLabel class AxisComponent(BaseComponent): @@ -41,7 +46,7 @@ class AxisComponent(BaseComponent): self.end = end def get_tick_labels(self): - return ITickLabelAdapter(self).render() + return TickLabel(self)().render() def render(self): return '%s: ' % self.__class__.__name__ + self.orientation + ':' + ' '.join(self.get_tick_labels()) diff --git a/src/graph_ZCA/interfaces.py b/src/graph_ZCA/interfaces.py --- a/src/graph_ZCA/interfaces.py +++ b/src/graph_ZCA/interfaces.py @@ -25,7 +25,7 @@ class IAxis(IBaseComponent): createed with knowledge of its parent component """ -class ITickLabelAdapter(IBaseComponent): +class ITickLabel(IBaseComponent): """ An adapter that produces tick labels for an axis """