connectors_dialog/__init__.py
author dporopat <denis.poropat@smarteh.si>
Wed, 09 May 2018 15:09:54 +0200
branch#2476
changeset 2006 c4ba142bf3fb
permissions -rw-r--r--
#2476 Separate connectors dialogs from connectors module.
2006
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
     1
from __future__ import absolute_import
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
     2
from os import listdir, path
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
     3
import util.paths as paths
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
     4
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
     5
_base_path = paths.AbsDir(__file__)
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
     6
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
     7
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
     8
def _GetLocalConnectorClassDialog(name):
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
     9
    return lambda: getattr(__import__(name, globals(), locals()), name + "_connector_dialog")
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    10
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    11
def _GetLocalConnectorURITypes(name):
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    12
    return lambda: getattr(__import__(name, globals(), locals()), "URITypes", None)
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    13
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    14
connectors_dialog = {name:
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    15
                     {"function":_GetLocalConnectorClassDialog(name), "URITypes": _GetLocalConnectorURITypes(name)}
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    16
                     for name in listdir(_base_path)
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    17
                     if (path.isdir(path.join(_base_path, name)) and
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    18
                         not name.startswith("__"))}
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    19
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    20
def ConnectorDialog(type, confnodesroot):
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    21
    if type not in connectors_dialog:
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    22
        return None
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    23
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    24
    connectorclass = connectors_dialog[type]["function"]()
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    25
    return connectorclass(confnodesroot)
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    26
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    27
def GetConnectorFromURI(uri):
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    28
    typeOfConnector = None
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    29
    for t in connectors_dialog:
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    30
        connectorTypes = connectors_dialog[t]["URITypes"]()
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    31
        if connectorTypes and uri in connectorTypes:
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    32
            typeOfConnector = t
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    33
            break
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    34
c4ba142bf3fb #2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si>
parents:
diff changeset
    35
    return typeOfConnector