def create(self): """ Функция создания ресурса. """ tree_prj = self.getRoot().getParent() res_editor = tree_prj.res_editor if res_editor: res_name = self.getResName() res_path = self.getResPath() ic_file.MakeDirs(res_path) res_file = self.getResFileName() res_ext = self.getResFileExt() # Если ресурс/папка с таким именем уже есть в проекте, то # не создавать ресурс, а вывести сообщение. if self.getRoot().prj_res_manager.isResByNameANDType( res_name, res_ext): ic_dlg.icMsgBox( u'ВНИМАНИЕ!', u'Ресурс/папка <%s> существует в проекте!' % res_name) return None # Добавить ресурс в ресурс проекта self.getRoot().prj_res_manager.addRes(res_name, res_ext, self._Parent.name) self.getRoot().save() return res_editor.CreateResource(res_name, res_path, res_file, res_ext, copy.deepcopy(self.template), bRecreate=True) return False
def makeNodeDir(self, NodeDir_=None): """ Создать папку-узел. """ if NodeDir_: self._NodeDir = NodeDir_ if not ic_file.Exists(self._NodeDir): ic_file.MakeDirs(self._NodeDir)
def clearStorageDir(self, StorageDir_=None): """ Полное очищение главной папки. """ if StorageDir_ is None: StorageDir_ = self._NodeDir if ic_file.Exists(StorageDir_): try: ic_file.RemoveTreeDir(StorageDir_, True) ic_file.MakeDirs(StorageDir_) except: io_prnt.outErr( u'Ошибка очистки папки объектного хранилища <%s>' % StorageDir_)
def edit(self): """ Запуск ресурса на редактирование. """ tree_prj = self.getRoot().getParent() res_editor = tree_prj.res_editor if res_editor: res_name = self.getResName() res_path = self.getResPath() ic_file.MakeDirs(res_path) res_file = self.getResFileName() res_ext = self.getResFileExt() self.getRoot().unlockResInResEditor(res_editor) if not self.readonly: is_lock = ic_res.isLockRes(res_name, res_file, res_ext, self.getRoot().lock_dir) if not is_lock: # Если ресурс не заблокирован, то заблокировать его # и отдать на редактирование ic_res.lockRes(res_name, res_file, res_ext, self.getRoot().lock_dir) return res_editor.SetResource(res_name, res_path, res_file, res_ext, bEnable=True) else: lock_rec = ic_res.getLockResRecord(res_name, res_file, res_ext, self.getRoot().lock_dir) ic_dlg.icMsgBox( u'ВНИМАНИЕ!', u'Resource <%s> is locked by user <%s>. Computer: <%s>.' % (res_name, lock_rec['user'], lock_rec['computer'])) # Открыть только для чтения self.readonly = True return res_editor.SetResource(res_name, res_path, res_file, res_ext, bEnable=False) else: return res_editor.SetResource(res_name, res_path, res_file, res_ext, bEnable=False) return None
def saveAs(self, ResFileName_=None): """ Сохранить как... @param ResFileName_: Имя ресурсного файла, если None, то сделать его запрос. @return: Функция возвращает результат выполнения операции сохранения True/False. """ self._user_res_file_name = ResFileName_ if self._user_res_file_name is None: self._user_res_file_name = ic_dlg.icFileDlg( None, u'Create user access file', u'User access file (*.acc)|*.acc') if self._user_res_file_name: # Создать путь к файлу ic_file.MakeDirs(ic_file.Split(self._user_res_file_name)[0]) # Сохранить сам файл return ic_res.SaveResourceText(self._user_res_file_name, self._user_res) return False