From 9bcc599fba7204b53fc24f2ce7357fe0a85f0dc4 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Mon, 24 Jul 2006 23:56:06 +0000 Subject: [PATCH] support only one upstream element (source) --- lib/python/Components/Element.py | 14 +++++++------- lib/python/Components/Renderer/Listbox.py | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/python/Components/Element.py b/lib/python/Components/Element.py index 5b8bed86..884c87d3 100644 --- a/lib/python/Components/Element.py +++ b/lib/python/Components/Element.py @@ -7,7 +7,6 @@ from Tools.CList import CList class Element: def __init__(self): self.downstream_elements = CList() - self.upstream_elements = CList() self.master = None self.source = None @@ -17,8 +16,8 @@ class Element: self.master = downstream def connectUpstream(self, upstream): - self.upstream_elements.append(upstream) - self.source = upstream # for single-source elements (i.e., most of them.) + assert self.source is None + self.source = upstream self.changed() def connect(self, upstream): @@ -30,10 +29,7 @@ class Element: # we should not disconnect from upstream if # there are still elements depending on us. assert len(self.downstream_elements) == 0, "there are still downstream elements left" - - # disconnect all upstream elements from us - for upstream in self.upstream_elements: - upstream.disconnectDownstream(self) + self.source.disconnectDownstream(self) def disconnectDownstream(self, downstream): self.downstream_elements.remove(downstream) @@ -46,3 +42,7 @@ class Element: # default action: push downstream def changed(self, *args, **kwargs): self.downstream_elements.changed(*args, **kwargs) + + def reconnectUpstream(self, new_upstream): + assert self.source is not None + self.source = new_upstream diff --git a/lib/python/Components/Renderer/Listbox.py b/lib/python/Components/Renderer/Listbox.py index fb787bfa..ab696c23 100644 --- a/lib/python/Components/Renderer/Listbox.py +++ b/lib/python/Components/Renderer/Listbox.py @@ -50,7 +50,7 @@ class Listbox(Renderer, object): wrap_around = property(lambda self: self.__wrap_around, setWrapAround) def selectionChanged(self): - self.upstream_elements.selectionChanged(self.index) + self.source.selectionChanged(self.index) def getIndex(self): if self.instance is None: -- 2.30.2