def reDo(self): """ perform a redo operation """ self.__logger.debug('reDo') try: _activeRedo = self.__UndoDb.dbRedo() self.__EntityDb.markUndoVisibility(_activeRedo, 1) self.__EntityDb.performCommit() self.undoRedoEvent(self, None) except UndoDb: raise UndoDb("Generical problem to perform reDo")
def unDo(self): """ perform an undo operation """ self.__logger.debug('unDo') try: self.__EntityDb.markUndoVisibility(self.__UndoDb.getActiveUndoId(), 0) _newUndo = self.__UndoDb.dbUndo() self.__EntityDb.performCommit() self.undoRedoEvent(self, None) except UndoDb: raise UndoDb("Generical problem to perform undo")
def __init__(self, dbPath=None): """ init of the kernel """ self.__logger = logging.getLogger('DbKernel') self.__logger.debug('__init__') BaseDb.__init__(self) # set the events self.__logger.debug('set events') self.saveEntityEvent = PyCadEvent() self.deleteEntityEvent = PyCadEvent() self.massiveDeleteEvent = PyCadEvent() self.showEntEvent = PyCadEvent() self.hideEntEvent = PyCadEvent() self.updateShowEntEvent = PyCadEvent() self.undoRedoEvent = PyCadEvent() self.handledErrorEvent = PyCadEvent() #create Connection self.createConnection(dbPath) # inizialize extentionObject self.__UndoDb = UndoDb(self.getConnection()) self.__EntityDb = EntityDb(self.getConnection()) self.__RelationDb = RelationDb(self.getConnection()) # Some inizialization parameter self.__bulkCommit = False self.__bulkUndoIndex = -1 # undo index are always positive so we do not brake in case missing entity id self.__entId = self.__EntityDb.getNewEntId() # set the default style self.__logger.debug('Set Style') self.__activeStyleObj = None self.__activeStyleObj = self.getMainStyle() self.__settings = self.getDbSettingsObject() self.__property = {} #************************ #Inizialize Layer structure #************************ self.__logger.debug('Inizialize layer structure') try: self.__LayerTree = LayerTree(self) except StructuralError: raise StructuralError('Unable to create LayerTree structure') self.__logger.debug('Done inizialization')