class RobotControllerRecordingDelegate(Delegate):
    
    def __init__(self):
        Delegate.__init__(self)
        self.allowedEventTypes = ["NewPosition", "EndRecordSession", "NewRecordSession", "StartRecord", "StopRecord"]
        self.sequence = PositionSequence()
        self.manager = SequenceFileManager()
        self.recording = False
        
    def notify(self, event):
        if not self.doesHandleEvent(event):
            return
        
        if( event.type == "NewRecordSession" ):
            print "RobotControllerRecordingDelegate: new session named: " + event.data
            self.sessionName = event.data
        elif( event.type == "EndRecordSession" ):
            #saving data
            print "RobotControllerRecordingDelegate: saving file" + self.sessionName
            self.manager.save( self.sequence, self.sessionName )
            self.sessionName = 0 
        elif( event.type == "StartRecord"):
            print "RobotControllerRecordingDelegate: start recording"
            self.recording = True
        elif( event.type == "StopRecord" ):
            self.recording = False
        elif( event.type == "NewPosition" and self.recording ):
            print "RobotControllerRecordingDelegate: add position"
            self.sequence.appendPosition(event.data)
 def preparePositionSequence(self):
     sequence = PositionSequence([])
     for i in range(0,100):
         sequence.appendPosition(JointPosition([0*i,1*i,2*i,3*i,4*i,5*i]))
     
     return sequence