runtime/NevowServer.py
changeset 2654 7575050a80c5
parent 2649 db68cb0e6bdc
child 2670 fd348d79a1f3
equal deleted inserted replaced
2649:db68cb0e6bdc 2654:7575050a80c5
   163                     default=default,
   163                     default=default,
   164                     immutable=True))
   164                     immutable=True))
   165         setattr(self, 'bind_' + name, _bind)
   165         setattr(self, 'bind_' + name, _bind)
   166         self.bindingsNames.append(name)
   166         self.bindingsNames.append(name)
   167 
   167 
   168     def addSettings(self, name, desc, fields, btnlabel, callback):
   168     def addSettings(self, name, desc, fields, btnlabel, callback, 
       
   169                     addAfterName = None):
   169         def _bind(ctx):
   170         def _bind(ctx):
   170             return annotate.MethodBinding(
   171             return annotate.MethodBinding(
   171                 'action_' + name,
   172                 'action_' + name,
   172                 annotate.Method(
   173                 annotate.Method(
   173                     arguments=[
   174                     arguments=[
   177                 action=btnlabel)
   178                 action=btnlabel)
   178         setattr(self, 'bind_' + name, _bind)
   179         setattr(self, 'bind_' + name, _bind)
   179 
   180 
   180         setattr(self, 'action_' + name, callback)
   181         setattr(self, 'action_' + name, callback)
   181 
   182 
   182         if name not in self.bindingsNames:
   183         if addAfterName not in self.bindingsNames:
   183             self.bindingsNames.append(name)
   184             # Just append new setting if not yet present
       
   185             if name not in self.bindingsNames:
       
   186                 self.bindingsNames.append(name)
       
   187         else:
       
   188             # We need to insert new setting 
       
   189             # imediately _after_ addAfterName
       
   190             
       
   191             # First remove new setting if already present
       
   192             # to make sure it goes into correct place
       
   193             if name in self.bindingsNames:
       
   194                 self.bindingsNames.remove(name)
       
   195             # Now add new setting in correct place
       
   196             self.bindingsNames.insert(
       
   197                 self.bindingsNames.index(addAfterName)+1,
       
   198                 name)
       
   199             
   184 
   200 
   185 
   201 
   186     def delSettings(self, name):
   202     def delSettings(self, name):
   187         if name in self.bindingsNames:
   203         if name in self.bindingsNames:
   188             self.bindingsNames.remove(name)
   204             self.bindingsNames.remove(name)