def addProject_(self, sender):
     projectName = self.edtAddProject.stringValue()
     if projectName not in Projects.get() and not re.match("^\s*$", projectName):
             Projects.add(self.edtAddProject.stringValue())
     else:
         """Show alert with reason for failure"""
         alert = NSAlert.alloc().init()
         alert.addButtonWithTitle_('OK')
         alert.setMessageText_("Failed to add new project")
         alert.setInformativeText_("Please ensure the project does not already exist and that it contains characters.")
         alert.runModal()
         
     self.loadProjectsLists()
     self.edtAddProject.setStringValue_("")
 def addProject_(self, sender):
     if self.edtAddProject.stringValue() not in Projects.get():
         Projects.add(self.edtAddProject.stringValue())
         
         self.loadProjectsLists()
         self.edtAddProject.setStringValue_("")