def __init__(self, parent, project, autoAssignProjectFile):

        self.project = project
        self.guiParent = parent
        self.autoAssignProjectFile = autoAssignProjectFile

        self.validSelection = False

        self.peakLists = []

        for nmrExp in self.project.currentNmrProject.sortedExperiments():
            for ds in nmrExp.sortedDataSources():
                for pl in ds.sortedPeakLists():
                    self.peakLists.append(pl)

        if not self.peakLists:
            raise ('No peak lists available!')

        (self.peakNameList,
         self.peakNameDict) = createSelection(self.peakLists)
        self.peakNameList.insert(0, 'None')
        self.peakNameDict['None'] = None

        BasePopup.__init__(self,
                           parent=parent,
                           title="Project '%s': " % project.name +
                           'Write AutoAssign project file',
                           modal=True,
                           transient=True)
Example #2
0
 def getChainsAndChainStamps(self):
   
   self.chains = []  
   self.chainDateTimeStamps = []
   self.chainDateTimeStampDict = {}
   
   for molSys in self.project.sortedMolSystems():
     for chain in molSys.sortedChains():
       self.chains.append(chain)
       
       appData = chain.findFirstApplicationData(application = self.format, keyword = dateTimeStamp_kw)
       if appData and appData.value in self.dateTimeStamps:
         (tlist,tdict) = createSelection([chain])
         cdtsTag = "%s%s%s" % (tlist[0],self.chainStampSep,appData.value)
         self.chainDateTimeStamps.append(cdtsTag)
         self.chainDateTimeStampDict[cdtsTag] = chain
Example #3
0
    def body(self, master):

        self.geometry('600x400')

        #
        # Quick check
        #

        if not self.chains:
            showError("No chains",
                      "No chains available - cannot use export/import cycle.")
            self.destroy()

        #
        # Set it all up
        #

        columnspan = 2

        row = 0

        label = Label(master, text="AutoAssign export/import cycle.")
        label.grid(row=row, column=0, columnspan=columnspan, sticky=Tkinter.EW)

        row += 1

        separator = Separator(master, height=3)
        separator.setColor('black', bgColor='black')
        separator.grid(row=row,
                       column=0,
                       columnspan=columnspan,
                       sticky=Tkinter.EW)

        row += 1

        label = Label(
            master,
            fg='red',
            text=
            "Popup to export %s data from the CCPN data model,\nrun %s, then re-import the output."
            % (self.format, self.format))
        label.grid(row=row, column=0, columnspan=columnspan, sticky=Tkinter.EW)

        #
        # Make a break...
        #

        row += 1

        separator = Separator(master, height=3)
        separator.setColor('black', bgColor='black')
        separator.grid(row=row,
                       column=0,
                       columnspan=columnspan,
                       sticky=Tkinter.EW)

        #
        # Set up export file info
        #

        row += 1

        label = Label(master,
                      text="Export menu (using date/time label '%s')" %
                      self.dateTimeFlag)
        label.grid(row=row, column=0, columnspan=columnspan, sticky=Tkinter.EW)

        row += 1

        (chainList, self.chainDict) = createSelection(self.chains)

        label = Label(master, text="Select chain to export:")
        label.grid(row=row, column=0, sticky=Tkinter.W)

        self.chainSelect = PulldownMenu(master, entries=chainList)
        self.chainSelect.grid(row=row, column=1, sticky=Tkinter.W)

        row += 1

        label = Label(master, text="Export %s project file:" % self.format)
        label.grid(row=row, column=0, sticky=Tkinter.W)

        self.selectExportFileButton = Tkinter.Button(
            master,
            text='Select export file',
            command=(lambda: self.selectExportProjectFile()))
        self.selectExportFileButton.grid(row=row, column=1, sticky=Tkinter.W)

        row += 1

        self.exportButton = Tkinter.Button(master,
                                           text='Export',
                                           command=(lambda: self.doExport()))
        self.exportButton.grid(row=row,
                               column=0,
                               columnspan=columnspan,
                               sticky=Tkinter.EW)

        #
        # Make a break...
        #

        row += 1

        separator = Separator(master, height=3)
        separator.setColor('black', bgColor='black')
        separator.grid(row=row,
                       column=0,
                       columnspan=columnspan,
                       sticky=Tkinter.EW)

        #
        # Set up import file info
        #

        row += 1

        label = Label(master, text="Re-import menu")
        label.grid(row=row, column=0, columnspan=columnspan, sticky=Tkinter.EW)

        row += 1

        #
        # Select the right chain with the right date/time flag...
        #

        label = Label(master, text="Select chain with correct date/time flag:")
        label.grid(row=row, column=0, sticky=Tkinter.W)

        self.chainDateTimeSelect = PulldownMenu(
            master, entries=self.chainDateTimeStamps)
        self.chainDateTimeSelect.grid(row=row, column=1, sticky=Tkinter.W)
        # TODO UPDATE THIS WHEN EXPORT BUTTON PRESSED AND GETTING OK FROM EXPORT ITSELF!
        # Probably also need just a message if no importDateTimeStamp available...

        row += 1

        label = Label(master, text="Import %s output file:" % self.format)
        label.grid(row=row, column=0, sticky=Tkinter.W)

        self.selectImportFileButton = Tkinter.Button(
            master,
            text='Select import file',
            command=(lambda: self.selectImportShiftFile()))
        self.selectImportFileButton.grid(row=row, column=1, sticky=Tkinter.W)

        row += 1

        self.importButton = Tkinter.Button(master,
                                           text='Import',
                                           command=(lambda: self.doImport()))
        self.importButton.grid(row=row,
                               column=0,
                               columnspan=columnspan,
                               sticky=Tkinter.EW)

        #
        # Make a break...
        #

        row += 1

        separator = Separator(master, height=3)
        separator.setColor('black', bgColor='black')
        separator.grid(row=row,
                       column=0,
                       columnspan=columnspan,
                       sticky=Tkinter.EW)

        row += 1

        buttons = createDismissHelpButtonList(master,
                                              texts=[],
                                              commands=[],
                                              help_url=self.help_url)
        buttons.grid(row=row, columnspan=columnspan, column=0)