class Order(object): interface.implements(IOrder) def __init__(self, context): self.context = context self.sorting = ISorting(context) self.results = self.sorting.getItems() def addItem(self, name): self.sorting.addItem(name) def removeItem(self, name): self.sorting.removeItem(name) def keys(self): return range(len(self.results)) def __len__(self): return len(self.results) def __iter__(self): return iter(range(len(self.results))) def __getitem__(self, key): return self.results[key] def get(self, key, default=None): return self.results.get(key, default) def values(self): return list(self.results) def items(self): results = self.results return [(idx, results[idx]) for idx in range(len(self.results))] def __contains__(self, key): return (key >=0) and (key < len(self.results)) has_key = __contains__
def __init__(self, context): self.context = context self.sorting = ISorting(context) self.results = self.sorting.getItems()