Example #1
0
    def get(self, parent=None, *arg, **kwarg):
        """
        Получить объект. Если не зарегистрирован в ядре, то создать его.
        """
        if ic_mode.isDebugMode():
            log.debug('GET Object <%s>' % self.passport())
        kernel = ic_user.getKernel()
        if kernel:
            # Проверить зарегистрирован ли уже объект в ядре
            name = self.passport()[0][1]
            obj = kernel.getObject(name)
            if obj:
                # Если уже зарегистрирован, то просто вернуть его
                return obj

            if 'context' in kwarg:
                if isinstance(kwarg['context'], dict):
                    # В случае если передается контекст в виде словаря
                    # необходимо создать объект контекста
                    context = icwidget.icResObjContext(kernel)
                    context.update(kwarg['context'])
                else:
                    # Контекст создаваемому объекту передается явно
                    context = kwarg['context']
                del kwarg['context']
            else:
                # Надо определить контекст
                context = icwidget.icResObjContext(kernel)
            return kernel.Create(self.passport(),
                                 parent,
                                 context=context,
                                 *arg,
                                 **kwarg)
Example #2
0
 def create(self, parent=None, *arg, **kwarg):
     """
     Создание выбранного объекта.
     """
     if ic_mode.isDebugMode():
         log.debug('CREATE Object <%s>' % self.passport())
     kernel = ic_user.getKernel()
     if kernel:
         if 'context' in kwarg:
             if isinstance(kwarg['context'], dict):
                 # В случае если передается контекст в виде словаря
                 # необходимо создать объект контекста
                 context = icwidget.icResObjContext(kernel)
                 context.update(kwarg['context'])
             else:
                 # Контекст создаваемому объекту передается явно
                 context = kwarg['context']
             del kwarg['context']
         else:
             # Надо определить контекст
             context = icwidget.icResObjContext(kernel)
         return kernel.Create(self.passport(),
                              parent,
                              context=context,
                              *arg,
                              **kwarg)
Example #3
0
    def loadImgLib(self, sImgLibFileName=None):
        """
        Загрузить текст библиотеки образов.
        @param sImgLibFileName: Файл библиотеки образов *.py.
        """
        if not sImgLibFileName:
            sImgLibFileName = self._img_lib_file_name

        if sImgLibFileName and sImgLibFileName != self._img_lib_file_name:
            self._img_lib_file_name = sImgLibFileName

        self._img_lib_file = None
        try:
            self._img_lib_file = open(sImgLibFileName, 'r')
            self._img_lib_text = self._img_lib_file.read()
            self._img_lib_file.close()
            self._img_lib_file = None

            if ic_mode.isDebugMode():
                io_prnt.outLog(u'Загрузка библиотеки образов <%s>' %
                               sImgLibFileName)
            return self._img_lib_text
        except:
            io_prnt.outErr(u'Ошибка загрузки файла библиотеки образов <%s>' %
                           sImgLibFileName)
            if self._img_lib_file:
                self._img_lib_file.close()
                self._img_lib_file = None
            return None
Example #4
0
def setProjectSettingsToEnvironment(ProjectName_=None, ReDefine_=False):
    """
    Добавить все переменные из *.ini файла в окружение системы.
    @param ProjectName_: Имя проекта. Если None, то берется
    текущий проект.
    @param ReDefine_: Переопределять переменные в окружении?
    @return: True/False.
    """
    prj_settings = None
    if ic_user.getSettings() is None:
        if ic_mode.isDebugMode():
            io_prnt.outLog(u'Не определена переменная настроек проекта.')
        prj_dir = ic_user.icGet('PRJ_DIR')
        prj_name = ic_user.icGet('PrjName')
        if prj_dir and prj_name:
            prj_ini_file_name = prj_dir + '/' + prj_name + '.ini'
            prj_settings = ini.INI2Dict(prj_ini_file_name)
    else:
        if ProjectName_ is None:
            prj_settings = ic_user.getSettings().THIS.get()
        else:
            prj_settings = getattr(ic_user.getSettings(), ProjectName_).get()

    if prj_settings:
        for section_name, section in prj_settings.items():
            for param, value in section.items():
                if ic_user.icIs(param):
                    io_prnt.outLog(
                        u'Переменная %s уже определена в окружении' % param)
                    if ReDefine_:
                        ic_user.icLet(param, value)
                        io_prnt.outLog(
                            u'Переменная %s переопределена в окружении' %
                            param)
                else:
                    ic_user.icLet(param, value)
        if ic_mode.isDebugMode():
            ic_user.icPrintStore()
        return True
    return False
Example #5
0
    def __init__(self, Parent_=None):
        """
        Конструктор.
        """
        ImpNode.PrjImportSys.__init__(self, Parent_)
        self.img = imglib.imgEdtPrj
        self.description = u'Проект'
        self.name = 'new_prj'
        # Проект и является корнем
        self._root = self
        # Проект открыт?
        self._is_opened_prj = False

        # Ресурс проекта
        self.prj_res_manager = PrjRes.icPrjRes()
        # Папка блокировок
        self.lock_dir = None
        # Текущее время создания файла ресурса проекта (для синхронизации проектов)
        self.prj_res_time = 0
        # Текущий размер файла ресурса проекта (для синхронизации проектов)
        self.prj_res_size = 0

        # Признак того что надо отображать всплывающие подсказки о ресурсах, модулях
        # и компонентах
        self.show_popup_help = False

        # Сразу зарегестрировать этот объект в хранилище переменных
        if not ic_user.icIs('PRJ_ROOT') or ic_user.icGet('PRJ_ROOT') is None:
            ic_user.icLet('PRJ_ROOT', self)

        # Режим отладки
        self.debug_mode = ic_mode.isDebugMode()

        # Система разграничения прав доступа
        self._prj_user = None
        self.prj_security = None
# Author:      <...>
#
# Created:
# RCS-ID:      $Id: $
# Copyright:   (c)
# Licence:     <your licence>
# -----------------------------------------------------------------------------
### ---- Import external modules -----
### RESOURCE_MODULE_IMPORTS

#   Version
__version__ = (0, 0, 0, 1)

#--- Imports ---
from ic.utils import ic_mode
if ic_mode.isDebugMode():
    print('import', __file__)

import wx
import ic


#--- Functions ---
def onDialogTitle(Context_):
    """
    Генерация заголовка диалогового окна.
    """
    title = u'Справочник: '
    try:
        if 'OBJ' in Context_:
            description = Context_['OBJ'].description