Esempio n. 1
0
    def __init__(self, parent=None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        super(EditRelDlg, self).__init__(parent)
        self.setupUi(self)
        self.parent = parent
        self.designModel = self.parent.designModel
        self.templateDict = self.parent.templateDict
        self.neoCon = self.parent.neoCon
        self.helper = Helper()
        self.rel = None
        self.neoID = None
        # add edit relationship widet
        self.editRel = EditRelWidget(self, templateDict=self.templateDict)
        self.editRelLayout = QVBoxLayout(self.frameBody)
        self.editRelLayout.setObjectName("editRelLayout")
        self.editRelLayout.addWidget(self.editRel)
        # finish UI setup
        self.txtTitle.setText("Add New Relationship")

        self.lastAddNeoID = None
Esempio n. 2
0
    def __init__(self, parent=None, diagramInstance=None, model=None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        super(IRPropertyBox, self).__init__(parent)
        self.appStartup = True
        self.mergeTemplate = False
        self.parent = parent
        self.schemaModel = self.parent.schemaObject
        self.helper = Helper()
        # this is the RelationInstance object - called generically diagramInstance.
        self.diagramInstance = diagramInstance
        self.diagramInstance.reloadDictValues()
        self.model = model
        self.modelData = self.model.modelData
        self.rel = None
        self.setupUi(self)
        #        self.appSetToTemplate = False
        #        self.appSetFromTemplate = False

        self.initUI()

        self.populateUIfromObject()

        self.appStartup = False
        self.msg = ""
Esempio n. 3
0
    def __init__(self, parent=None, diagramInstance=None, model=None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        super(INPropertyBox, self).__init__(parent)
        self.startUp = True
        self.parent = parent
        self.schemaModel = self.parent.schemaObject
        self.helper = Helper()
        self.diagramInstance = diagramInstance
        # reload the NodeInstance dictionary values in case they've been changed on another diagram
        self.diagramInstance.reloadDictValues()

        self.model = model
        self.modelData = self.model.modelData
        self.node = None
        #        self.rc = None
        self.msg = None
        self.formatChanged = False
        self.setupUi(self)
        self.initUI()

        self.populateUIfromObject()
        self.loadTemplateDropdown()

        self.startUp = False
Esempio n. 4
0
    def __init__(self,
                 parent=None,
                 mode=None,
                 objectDict=None,
                 designModel=None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        super(LabelPropertyBox, self).__init__(parent)
        self.helper = Helper()
        self.setupUi(self)
        self.designModel = designModel
        self.modelData = self.designModel.modelData
        self.objectDict = objectDict
        self.mode = mode
        #populate ui data from object
        self.populateUIfromObject()

        if self.mode == "NEW":
            # set focus to name
            pass
        else:
            # disable name entry and set focus to description
            self.editName.setEnabled(False)
            self.editDescription.setFocus()
Esempio n. 5
0
    def __init__(self, parent=None, schemaModel = None, model = None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        super(ProjectHTMLDlg, self).__init__(parent)
        self.setupUi(self)
        self.settings = QSettings()
        self.schemaModel = schemaModel
        self.model = model
        self.projectData = model.modelData
        self.helper = Helper()
        

        
        # initialize the header area
        dir = self.projectData["GenToDir"]
        self.lblOutputDir.setText(dir)
        self.lblOutputDir.setToolTip(dir)    
        
        # initialize the report generation fields
        self.txtTitle.setText(self.projectData["HeaderTitle"])  
        self.txtHomeTitle.setText(self.projectData["HomePageTitle"])  
        self.txtAuthor.setText(self.projectData["Author"])  
        self.txtFooter.setText(self.projectData["FooterTitle"])  
        self.txtImageFile.setText(self.projectData["IconFile"])  
        if len(self.projectData.get("IconFile", "")) > 0:
            self.loadImage()    
Esempio n. 6
0
 def __init__(self, parent=None, neoDriver=None):
     super(SchemaModel, self).__init__()
     self.settings = QSettings()
     self.modelNeoDriver = neoDriver
     self.parent = parent
     self.helper = Helper()
     # model defaults
     self.updateTreeView = None
Esempio n. 7
0
    def __init__(self,
                 parent=None,
                 mode=None,
                 objectDict=None,
                 designModel=None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        super(TPPropertyBox, self).__init__(parent)
        self.setupUi(self)
        self.parent = parent
        self.schemaModel = self.parent.schemaObject
        self.settings = QSettings()
        self.helper = Helper()
        self.designModel = designModel
        self.modelData = self.designModel.modelData
        if objectDict is None:
            self.objectDict = self.designModel.newPathTemplateDict()
        else:
            self.objectDict = objectDict
        self.mode = mode

        # get the class that controls the data grid for relationship templates
        self.CypherGenPath = CypherGenPath(parent=self,
                                           templateDict=self.objectDict)

        # get neocon object for this project page
        self.neoCon = NeoDriver(name=self.parent.pageItem.neoConName,
                                promptPW=self.parent.pageItem.promptPW)

        # path treeview setup
        self.tvPath.setContextMenuPolicy(Qt.CustomContextMenu)
        self.tvPath.customContextMenuRequested.connect(self.openMenu)
        self.tvPath.setDragDropMode(QAbstractItemView.DragOnly)

        # add the data grid widget.
        self.nodeGrid = DataGridWidget(self,
                                       neoCon=self.neoCon,
                                       genCypher=self.CypherGenPath)
        self.nodeGridLayout = QVBoxLayout(self.dataTabFrame)
        self.nodeGridLayout.setObjectName("nodeGridLayout")
        self.nodeGridLayout.addWidget(self.nodeGrid)

        self.populatingMetaBox = False

        #populate ui data from object
        self.populateUIfromObject()

        if self.mode == "NEW":
            self.txtPathTemplateName.setFocus()
        else:
            # disable definition fields
            self.txtPathTemplateName.setEnabled(False)
Esempio n. 8
0
 def __init__(self, parent=None, curVal=None):
     """
     Constructor
     
     @param parent reference to the parent widget
     @type QWidget
     """
     super(FrmPropList, self).__init__(parent)
     self.setupUi(self)
     self.helper = Helper()
     self.curVal = curVal
Esempio n. 9
0
    def __init__(self, parent, relationInstanceDict=None, startNode=None, endNode=None, model=None):
        self.helper = Helper()
        self.neoTypeFunc = NeoTypeFunc()
        self.diagramType = "Instance Relationship"
        self.logMsg = None
        self.relationInstanceDict = relationInstanceDict
        
        self.parent = parent
        self.model = model
        self.neoCon = self.model.modelNeoCon
        
        self.relationship = None 

        # set local variables to what is in the dictionary
        if self.relationInstanceDict:
            self.relTemplate = self.relationInstanceDict.get("relTemplate", None)
            self.relName = self.relationInstanceDict.get("relName", "NoRelationshipName")
            self.propList = self.relationInstanceDict.get("properties", [])
            self.startNZID = self.relationInstanceDict.get("startNZID", None)
            self.endNZID = self.relationInstanceDict.get("endNZID", None)
            
            self.startNode = None
            self.endNode = None

            if self.relationInstanceDict.get("NZID", None) == None:
                self.NZID = str(uuid.uuid4())
            else:
                self.NZID = self.relationInstanceDict["NZID"]        
            self.neoID=self.relationInstanceDict.get("neoID", None)
        # if  no dictionary passed then set defaults
        else:
            self.relName = "NoRelationshipName"
            self.relTemplate = None
            self.propList = []
            self.NZID = str(uuid.uuid4())
            self.neoID=None
            self.startNZID = None
            self.endNZID = None
            self.startNode = None
            self.endNode = None
        
        # get start and end node item objects
        if not startNode is None:
            self.startNode = startNode
            self.startNZID = self.startNode.NZID
        if not endNode is None:
            self.endNode = endNode
            self.endNZID = self.endNode.NZID
       
        self.getFormat()

        if not self.relationInstanceDict:
            self.relationInstanceDict = self.getObjectDict()
Esempio n. 10
0
 def __init__(self, parent=None):
     """
     Constructor        
     @param parent reference to the parent widget
     @type QWidget
     """
     super(ConstraintNodePropUniqueDlg, self).__init__(parent)
     self.setupUi(self)
     self.parent = parent
     self.schemaModel = self.parent.schemaModel
     self.helper = Helper()
     self.initUi()
Esempio n. 11
0
    def __init__(self, parent=None, parms=None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        super(CypherParmEntryDlg, self).__init__(parent)
        self.parent = parent
        self.parms = parms
        self.helper = Helper()
        self.neoTypeFunc = NeoTypeFunc()
        self.parmDict = None
        self.setupUi(self)
        self.initUI()

        #load Property grid
        for parm in self.parms:
            # generate datatype from parm name if possible
            try:
                if 'pointc' in parm.lower():
                    dataType = DataType.POINTCARTESIAN.value
                elif 'pointg' in parm.lower():
                    dataType = DataType.POINTWGS84.value
                elif 'int' in parm.lower():
                    dataType = DataType.INT.value
                elif 'float' in parm.lower():
                    dataType = DataType.FLOAT.value
                elif 'bool' in parm.lower():
                    dataType = DataType.BOOLEAN.value
                elif 'localdatetime' in parm.lower():
                    dataType = DataType.LOCALDATETIME.value
                elif 'datetime' in parm.lower():
                    dataType = DataType.DATETIME.value
                elif 'date' in parm.lower():
                    dataType = DataType.DATE.value
                elif 'localtime' in parm.lower():
                    dataType = DataType.LOCALTIME.value
                elif 'time' in parm.lower():
                    dataType = DataType.TIME.value
                elif 'pointc' in parm.lower():
                    dataType = DataType.POINTCARTESIAN.value
                elif 'pointg' in parm.lower():
                    dataType = DataType.POINTWGS84.value
                else:
                    dataType = 'String'
            except BaseException as e:
                dataType = 'String'
            finally:
                self.addParm(self.gridParms.model(), parm, dataType, "")
Esempio n. 12
0
 def __init__(self, parent=None, mode=None, roleName=None):
     """
     Constructor
     
     @param parent reference to the parent widget
     @type QWidget
     """
     super(EditRoleDlg, self).__init__(parent)
     self.setupUi(self)
     self.parent = parent
     self.roleName = roleName
     self.mode = mode
     self.helper = Helper()
     self.initUI()
Esempio n. 13
0
    def __init__(self, parent=None, fileName=None, fileText=None, mode=None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        super(CypherEditGridWidget, self).__init__(parent)
        self.setupUi(self)
        self.parent = parent
        self.settings = QSettings()
        self.initUI()
        self.initScintilla()
        self.helper = Helper()
        self.mode = mode
        self.tabType = "CYPHER"
        self.tabName = fileName
        self.tabIndex = None  # this is the index into the tabWidget of the tab this widget is on
        self.fileName = fileName
        self.fileText = fileText
        self.resultSet = None

        # create a neocon object for this file tab
        self.neoDriver = NeoDriver(name=self.parent.pageItem.neoConName,
                                   promptPW=self.parent.pageItem.promptPW)

        # add the data grid widget.
        self.dataGridGeneric = DataGridGeneric()
        self.dataGrid = DataGridWidget(self,
                                       neoCon=self.neoDriver,
                                       genCypher=self.dataGridGeneric)
        self.nodeGridLayout = QVBoxLayout(self.frmDataGrid)
        self.nodeGridLayout.setObjectName("nodeGridLayout")
        self.nodeGridLayout.setContentsMargins(1, 1, 1, 1)
        self.nodeGridLayout.setSpacing(1)
        self.nodeGridLayout.addWidget(self.dataGrid)

        if self.mode == MODENEW:
            if not self.fileText is None:
                self.loadText()

        if self.mode == MODEEDIT:
            self.loadFile()

        # position the splitter
        self.show(
        )  # you have to do this to force all the widgets sizes to update
        half = int((self.frmEditnGrid.height() / 2))
        self.splitter.setSizes([half, half])
Esempio n. 14
0
 def __init__(self, parent=None, mode=None, objectDict=None):
     """
     Constructor
     
     @param parent reference to the parent widget
     @type QWidget
     """
     super(NeoConPropertyBox, self).__init__(parent)
     self.parent = parent
     self.mode = mode
     self.objectDict = objectDict
     self.helper = Helper()
     self.setupUi(self)
     self.chkSecureCon.setTristate(False)
     self.populateUIfromObject()
Esempio n. 15
0
 def __init__(self, parent=None):
     """
     Constructor
     
     @param parent reference to the parent widget
     @type QWidget
     """
     super(ChangeUserPW, self).__init__(parent)
     self.setupUi(self)
     self.helper = Helper()
     self.settings = QSettings()
     self.parent = parent
     self.editPW.setEchoMode(QLineEdit.Password)
     self.editNewPW.setEchoMode(QLineEdit.Password)
     self.editRepeatPW.setEchoMode(QLineEdit.Password)
Esempio n. 16
0
 def __init__(self, parent=None, objectType=None, objectName=None):
     """
     Constructor
     
     @param parent reference to the parent widget
     @type QWidget
     """
     super(DropObjectDlg, self).__init__(parent)
     self.setupUi(self)
     self.parent = parent
     self.objectType = objectType
     self.objectName = objectName
     self.schemaModel = self.parent.schemaModel
     self.helper = Helper()
     self.initUi()
Esempio n. 17
0
 def __init__(self,
              neoConName=None,
              actionButton=None,
              pageWidget=None,
              pageWidgetIndex=None):
     self.settings = QSettings()
     self.helper = Helper()
     # the name of the neocon for this page
     self.neoConName = neoConName
     # see if we need to prompt for the password
     self.promptPW = None
     self.checkPW()
     # the qaction on the menubar
     self.actionButton = actionButton
     self.pageWidget = pageWidget
     self.pageWidgetIndex = pageWidgetIndex
     return
Esempio n. 18
0
    def __init__(self, parent=None, mode=None, objectDict = None, designModel = None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        super(FormPropertyBox, self).__init__(parent)
        self.setupUi(self)
        self.parent = parent
        self.schemaModel = self.parent.schemaObject 
        self.settings = QSettings()
        self.helper = Helper()
        self.designModel = designModel
        self.modelData = self.designModel.modelData
        if objectDict is None:
            self.objectDict = self.designModel.newFormDict()
        else:
            self.objectDict = objectDict
        self.mode = mode

        # path treeview setup
        self.tvOutline.setContextMenuPolicy(Qt.CustomContextMenu)
        self.tvOutline.customContextMenuRequested.connect(self.openMenu)
        self.tvOutline.setDragDropMode(QAbstractItemView.DragOnly)

        # add preview widget
        self.formPreview = FormMain(self.frmPreview )
        self.formPreviewLayout = QVBoxLayout(self.frmPreview)
        self.formPreviewLayout.setObjectName("MainFormLayout")
        self.formPreviewLayout.addWidget(self.formPreview)    


        self.populatingMetaBox = False
                       

        
        # position the splitter
        self.show()  # you have to do this to force all the widgets sizes to update 
        third = int((self.width()  / 3)) 
        self.vSplitter.setSizes([third*2, third])   
        half = int((self.height()  / 2)) 
        self.hSplitter.setSizes([half, half])   
        
        #populate ui data from object
        self.populateUIfromObject()
Esempio n. 19
0
    def __init__(self, parent=None, rightClickPos=None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        super(CopyNodeToDiagramDlg, self).__init__(parent)
        self.setupUi(self)
        self.parent = parent
        self.settings = QSettings()
        self.rightClickPos = rightClickPos
        self.designModel = self.parent.model
        self.syncNeoCon = self.designModel.modelNeoCon
        self.itemDict = self.parent.itemDict
        self.helper = Helper()
        self.neoTypeFunc = NeoTypeFunc()
        self.nodeGrid = None

        # header area
        self.txtDiagramName.setText(self.parent.diagramName)
        self.txtNeoCon.setText("{} - {}".format(
            self.syncNeoCon.name, self.syncNeoCon.neoDict["URL"]))

        # load  node template dropdown and disable it
        dropdownList = []
        dropdownList.append("No Template Selected")
        dropdownList.extend(
            sorted(self.designModel.instanceList("Node Template")))
        self.cboNodeTemplates.addItems(dropdownList)
        self.rbFilterTemplate.setChecked(True)

        # get neocon object for this project page
        self.neoCon = NeoDriver(name=self.parent.parent.pageItem.neoConName,
                                promptPW=self.parent.parent.pageItem.promptPW)

        # add the data grid widget.
        self.addNodeCypher = AddNodeCypher()

        self.nodeGrid = DataGridWidget(self,
                                       neoCon=self.neoCon,
                                       genCypher=self.addNodeCypher)
        self.nodeGridLayout = QVBoxLayout(self.frmDataGrid)
        self.nodeGridLayout.setObjectName("nodeGridLayout")
        self.nodeGridLayout.addWidget(self.nodeGrid)
Esempio n. 20
0
 def __init__(self, parent=None):
     """
     Constructor
     
     @param parent reference to the parent widget
     @type QWidget
     """
     super(SyncToDBDlg, self).__init__(parent)
     self.setupUi(self)
     self.parent = parent
     self.objectName = self.parent.diagramName
     self.designModel = self.parent.model
     self.syncNeoCon = self.designModel.modelNeoCon
     self.itemDict = self.parent.itemDict
     self.helper = Helper()
     self.initPage()
     #populate ui data from object
     self.populateUIfromObject()           
Esempio n. 21
0
    def __init__(self, parent=None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        super(DlgExportCSV, self).__init__(parent)
        self.setupUi(self)
        self.parent = parent
        self.settings = parent.parent.settings
        self.helper = Helper()

        # add the CSV File widget.
        self.CSVWriterWidget = CSVWriterWidget(parent=self)

        self.CSVLayout = QVBoxLayout(self.frmCSVWidget)
        self.CSVLayout.setObjectName("CSVLayout")
        self.CSVLayout.addWidget(self.CSVWriterWidget)
Esempio n. 22
0
def my_excepthook(type, value, tback):
    '''
    catch any exception not otherwise handled by the application and show it to the user without crashing the program.
    '''
    msg = "### {}--{}--{} ###".format(type, value, tback.tb_frame)
    clipboard = QApplication.clipboard()
    clipboard.setText(msg)
    # display error message to the user
    helper = Helper()
    helper.displayErrMsg(
        "Unexpected Error", """
An unexpected error has occured.

Please paste this error message into an email to [email protected] (it's already in the clipboard)

{}
    """.format(msg))
    # log the error
    if logging:
        logging.info("An unexpected error has occured. \n {}".format(msg))
Esempio n. 23
0
    def __init__(self, parent=None, pageItem=None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        super(CypherPageWidget, self).__init__(parent)
        self.pageType = "CYPHER"
        self.settings = QSettings()
        self.parent = parent
        self.pageItem = pageItem

        self.setupUi(self)
        self.initUI()
        self.helper = Helper()
        self.treeViewUpdate.connect(self.populateTree)

        ########################################################################
        # Schema editor setup
        ########################################################################
        self.schemaNeoDriver = NeoDriver(name=self.pageItem.neoConName,
                                         promptPW=self.pageItem.promptPW)

        self.schemaModel = SchemaModel(self, neoDriver=self.schemaNeoDriver)
        self.refreshSchemaModel()
        self.schemaModel.setUpdateTreeViewMethod(
            method=self.on_btnRefresh_clicked)
        self.tvSchema.setContextMenuPolicy(Qt.CustomContextMenu)
        self.tvSchema.customContextMenuRequested.connect(self.openMenu)
        self.clearTree()
        self.populateTree()

        # display a default cypher tab
        self.on_btnNew_clicked()

        # display an error message if the schema connection doesn't work
        rc, msg = self.schemaModel.testSchemaConnection()
        if rc == False:
            self.helper.displayErrMsg("Connect Schema",
                                      "The Connection Failed: {}".format(msg))
Esempio n. 24
0
 def __init__(self,
              parent=None,
              schemaModel=None,
              model=None,
              settings=None):
     """
     Constructor
     
     @param parent reference to the parent widget
     @type QWidget
     """
     super(dlgReverseEngineer, self).__init__(parent)
     self.parent = parent
     self.schemaModel = schemaModel
     self.echo = True
     self.settings = settings
     self.model = model
     self.helper = Helper()
     self.neoTypeFunc = NeoTypeFunc()
     self.myNeoCon = self.model.modelNeoCon
     self.setupUi(self)
     self.initPage()
Esempio n. 25
0
    def __init__(self, name=None,  promptPW=None):
        self.name = name
        self.settings = QSettings()     
        self.neoDict = None
        self.helper = Helper()
        
        # setup the dictionary that defines this neo4j connection
        self.getSavedConnection()

        # if we prompted the user for a password, save it in the neocon dictionary
        if not promptPW is None:
            self.neoDict["password"] = promptPW
        
        # driver used by this NeoDriver object
        self.myDriver = None
        # session used for unmanaged transaction
        self.session = None
        # transaction used for unmanaged transaction
        self.tx = None
        # result object used while consuming query results and saving them to self.resultSet
        self.result = None
        # persistent result set and summary
        self.resultSet = None
        self.resultSummary = None
        
        # manage chunking your way thru a result set
        self.cursorChunk = None
        self.chunkStart = 0         # this is the record number of the first record in the chunk
        self.chunkEnd = 0           # this is the record number of the last record in the chunk
        self.chunkSize = 10     # some day we'll make this a parameter setting
        self.curRecord = 0          # this is the last record retrieved
        self.endReached = False
        
        # track query statistics
        self.stats = None 
        # default to true
        self.autoCommit = True
        # dictionary that gathers up facts about an individual cypher execution.
        self.cypherLogDict = {} 
Esempio n. 26
0
    def __init__(self, parent=None, neoCon=None, genCypher=None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        super(DataGridWidget, self).__init__(parent)
        self.setupUi(self)
        self.helper = Helper()
        self.neoTypeFunc = NeoTypeFunc()
        self.resultSet = None
        self.cypher = None
        self.parmData = None
        self.editParmDict = None
        self.genCypher = genCypher
        self.templateDict = self.genCypher.templateDict
        # the parent widget must supply a neoCon
        # this is the NeoDriver instance, but we still use the older neocon variable at this level in the code
        self.neoCon = neoCon
        self.parent = parent
        try:
            self.designModel = parent.designModel
        except:
            self.designModel = None

        self.neoCon.setAutoCommit(True)

        self.initUI()

        # data grid scrolling
        self.topRow = 1

        # data grid cell selection variables
        self.saveIndex = None
        self.prevIndex = None
        self.saveData = None
Esempio n. 27
0
 def __init__(self, parent=None, templateDict=None):
     self.parent = parent
     self.templateDict = templateDict
     self.type = "Path"
     self.helper = Helper()
     self.designModel= self.parent.designModel
Esempio n. 28
0
 def __init__(self, parent=None, templateDict=None):
     self.parent = parent
     self.templateDict = templateDict
     self.type = "Relationship"
     self.helper = Helper()
Esempio n. 29
0
 def __init__(self, parent=None):
     super(DiagramScene, self).__init__(parent)
     self.parent = parent
     self.model = self.parent.model
     self.helper = Helper()
Esempio n. 30
0
 def __init__(self, owner):
     super(NeoEditDelegate, self).__init__(owner)
     self.booleanItems = ["True", "False"]
     self.hintSize = None
     self.helper = Helper()