def newCB(self, button): debug.mainthreadTest() fileparam = filenameparam.WriteFileNameParameter("filename", tip="Data file name") if parameterwidgets.getParameters(fileparam, title="Add a data destination"): newname = fileparam.value if newname not in DestinationParamWidget.namelist: DestinationParamWidget.namelist.append(newname) self.rebuild() self.just_set_value(newname) self.updateOtherWidgets() self.widgetChanged(True, interactive=True)
def __init__(self, tutor): debug.mainthreadTest() for menuitem in mainmenu.OOF.Help.Tutorials.items: menuitem.disable() subWindow.SubWindow.__init__(self, title=tutor.subject, menu="") self.subwindow_menu.File.addItem( oofmenu.OOFMenuItem( 'Save_Text', callback=self.savePrintable, params=[ filenameparam.WriteFileNameParameter('filename', ident="FileMenu"), filenameparam.WriteModeParameter('mode') ], help="Save the text of this tutorial in a file.", no_log=1, ordering=-1)) labelhbox = gtk.HBox() self.subject = gtk.Label() self.slideIndex = gtk.Label() labelhbox.pack_start(self.subject, expand=1, fill=1, padding=2) labelhbox.pack_end(self.slideIndex, expand=0, fill=0, padding=2) self.mainbox.pack_start(labelhbox, expand=0, fill=0, padding=2) self.msgscroll = gtk.ScrolledWindow() self.scrollsignals = gtklogger.logScrollBars(self.msgscroll, "TutorialScroll") self.msgscroll.set_shadow_type(gtk.SHADOW_IN) self.msgscroll.set_border_width(2) self.msgscroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.mainbox.pack_start(self.msgscroll, expand=1, fill=1) self.textview = gtk.TextView() self.textview.set_cursor_visible(False) self.textview.set_editable(False) textattrs = self.textview.get_default_attributes() self.centerImageTag = self.textview.get_buffer().create_tag( 'center-image', justification=gtk.JUSTIFY_CENTER) self.boldTag = self.textview.get_buffer().create_tag( "bold", weight=pango.WEIGHT_BOLD, # why doesn't this work? foreground="blue") ## self.boldTag = self.textview.get_buffer().create_tag( ## "bold", ## weight=pango.WEIGHT_HEAVY, # why doesn't this work? ## underline=pango.UNDERLINE_SINGLE) self.textview.set_wrap_mode(gtk.WRAP_WORD_CHAR) self.msgscroll.add(self.textview) buttonbox = gtk.HBox(homogeneous=1, spacing=2) self.mainbox.pack_end(buttonbox, expand=0, fill=0, padding=2) self.backbutton = gtkutils.StockButton(gtk.STOCK_GO_BACK, "Back") gtklogger.setWidgetName(self.backbutton, "Back") gtklogger.connect(self.backbutton, "clicked", self.backCB) tooltips.set_tooltip_text(self.backbutton, "Move to the previous slide.") self.nextbutton = gtkutils.StockButton(gtk.STOCK_GO_FORWARD, "Next") gtklogger.setWidgetName(self.nextbutton, "Next") gtklogger.connect(self.nextbutton, "clicked", self.nextCB) tooltips.set_tooltip_text(self.nextbutton, "Move to the next slide.") self.jumpbutton = gtkutils.StockButton(gtk.STOCK_GOTO_LAST, "Jump") gtklogger.setWidgetName(self.jumpbutton, "Jump") gtklogger.connect(self.jumpbutton, "clicked", self.jumpCB) tooltips.set_tooltip_text(self.jumpbutton, "Jump to the leading slide.") self.savebutton = gtkutils.StockButton(gtk.STOCK_SAVE, "Save...") gtklogger.setWidgetName(self.savebutton, "Save") gtklogger.connect(self.savebutton, "clicked", self.saveCB) tooltips.set_tooltip_text(self.savebutton, "Save your tutorial session.") self.closebutton = gtkutils.StockButton(gtk.STOCK_CLOSE, "Close") gtklogger.setWidgetName(self.closebutton, "Close") gtklogger.connect(self.closebutton, "clicked", self.closeCB) tooltips.set_tooltip_text(self.closebutton, "Quit the tutorial.") buttonbox.pack_start(self.backbutton, expand=1, fill=1, padding=2) buttonbox.pack_start(self.nextbutton, expand=1, fill=1, padding=2) buttonbox.pack_start(self.jumpbutton, expand=1, fill=1, padding=2) buttonbox.pack_start(self.savebutton, expand=1, fill=1, padding=2) buttonbox.pack_end(self.closebutton, expand=1, fill=1, padding=2) self.gtk.connect('destroy', self.closeCB) self.gtk.set_default_size(500, 300) self.progress = 0 # How far has the tutorial gone? # It's not affected by "Back" command. self.index = 0 # which slide? self.signalReceived = 0 # Received a signal, if any. self.tutor = tutor self.newLesson() self.tutor.lessons[0].activate() self.saved = None # if saved or not switchboard.requestCallbackMain("task finished", self.signalCB)
report_tar.add(report_directory,os.path.basename(report_directory)) report_tar.close() shutil.rmtree(temp_directory) #removes the temporary directory reporterGUI.window.destroy() # end openReportError def newReportError(): return ReportError errorreportermenu = mainmenu.OOF.Help.addItem(oofmenu.OOFMenuItem( 'Report_Error', callback= openReportError, params=[ filenameparam.WriteFileNameParameter( 'filename',tip="Name of the report file."), parameter.BooleanParameter( 'pythonlog', True), parameter.BooleanParameter( 'pythonlogandoutputs', True), parameter.BooleanParameter( 'installationlog', True), parameter.ListOfStringsParameter( 'inputfiles', tip="Names of input files"), parameter.ListOfStringsParameter( 'outputfiles', tip="Names of output files"), parameter.ListOfStringsParameter( 'deletedfiles', tip="Names of input/output files no longer on the system"), parameter.StringParameter('comments')], no_log=1,
dfile = datafile.writeDataFile(filename, mode.string(), format) for analysisname in names: analysis = namedanalysis.getNamedBdyAnalysis(analysisname) dfile.startCmd(mainmenu.OOF.LoadData.NamedBdyAnalysis) dfile.argument('name', analysisname) dfile.argument('boundary', analysis.boundary) dfile.argument('analyzer', analysis.analyzer) dfile.endCmd() bdyanalysismenu.addItem( oofmenu.OOFMenuItem( "SaveAnalysisDefs", callback=_saveAnalysis, params=[ filenameparam.WriteFileNameParameter('filename', tip='Name of the file.'), filenameparam.WriteModeParameter( 'mode', tip="'w' to (over)write, 'a' to append."), enum.EnumParameter('format', datafile.DataFileFormat, datafile.ASCII, tip="Format of the file."), namedanalysis.BdyAnalysisNamesParameter( 'names', tip="Names of the analyses to be saved.") ], help= "Save the definitions of named boundary analysis operations in a file.", discussion=xmlmenudump.loadFile( 'DISCUSSIONS/engine/menu/savebdyanal.xml')))
def saveProperty(menuitem, filename, mode, format, property): dfile = datafile.writeDataFile(filename, mode.string(), format) propertyreg = AllProperties[property] propertyreg.writeData(dfile) dfile.close() OOF.File.Save.addItem( oofmenu.OOFMenuItem( 'Property', callback=saveProperty, ordering=50, gui_only=1, params=[ filenameparam.WriteFileNameParameter('filename', tip="File name."), filenameparam.WriteModeParameter( 'mode', tip="'w' to (over)write and 'a' to append."), enum.EnumParameter('format', datafile.DataFileFormat, datafile.ASCII, tip="File format."), parameter.StringParameter('property', tip="Name of the property to be saved.") ], help="Save the indicated Property to a file.", discussion="""<para> Save the given &property; to a data file. The file can be read either by <xref linkend='MenuItem-OOF.File.Load.Script'/> or <xref linkend='MenuItem-OOF.File.Load.Data'/>, depending on the
)) def saveLog(menuitem, filename, mode): file = open(filename, mode.string()) menuitem.root().saveLog(file) file.close() _savemenu = _filemenu.addItem( OOFMenuItem('Save', help='Create data files and scripts.')) _savemenu.addItem(OOFMenuItem( 'Python_Log', callback=saveLog, ordering=10, params=[filenameparam.WriteFileNameParameter('filename', ident="load", tip="Name of the file."), filenameparam.WriteModeParameter( 'mode', tip="Whether to overwrite or append to an existing file.")], accel='s', ellipsis=1, no_log=1, help="Save the current session as a Python script.", discussion=xmlmenudump.loadFile('DISCUSSIONS/common/menu/savelog.xml') )) ################################# def quitCmd(menuitem): from ooflib.common import quit quit.quit()
def getFile(ident=None, title=""): fileparam = filenameparam.WriteFileNameParameter('filename', ident=ident) if parameterwidgets.getParameters(fileparam, title=title): return fileparam.value
def getFileAndMode(ident=None, title=""): fileparam = filenameparam.WriteFileNameParameter('filename', ident=ident) modeparam = filenameparam.WriteModeParameter('mode') if parameterwidgets.getParameters(fileparam, modeparam, title=title): return fileparam.value, modeparam.value.string()
else: filename = path + "/" + filename + "_%i" immidge.save(filename, format.string()) else: reporter.warn("Image was not saved!") mainmenu.OOF.File.Save.addItem( oofmenu.OOFMenuItem( 'Image', callback=saveImage, ordering=40, params=[ filenameparam.WriteFileNameParameter( 'filename', 'filename', tip="Name of the file. In 3D, include '%i' for a file number." ), enum.EnumParameter('format', ImageFormatE, value="png", tip="Image file format."), ## TODO 3.1: Does it make sense to have an OverwriteParameter ## here? Images should never be appended to existing ## files. filenameparam.WriteModeParameter('mode'), whoville.WhoParameter('image', whoville.getClass('Image'), tip=parameter.emptyTipString) ], help="Save an Image in a file.",
TextOutputDestination.__init__(self, basestream) switchboard.notify("output destinations changed") def shortrepr(self): return self.filename # newreg is referred to in outputdestinationwidget.py. newreg = registeredclass.Registration( 'Output Stream', OutputDestination, OutputStream, ordering=1, rewindable=True, params=[ filenameparam.WriteFileNameParameter('filename', tip=parameter.emptyTipString), filenameparam.WriteModeParameter( 'mode', tip="Whether to write or append to the file.") ], tip="Send output to a file.", discussion=xmlmenudump.loadFile('DISCUSSIONS/engine/reg/outputstream.xml')) #=--=##=--=##=--=##=--=##=--=##=--=##=--=##=--=##=--=##=--=##=--=# msgWindowName = "<Message Window>" class MessageWindowStream(TextOutputDestination): def __init__(self): TextOutputDestination.__init__( self,
# own file to avoid import loops. from ooflib.common import debug from ooflib.common.IO import mainmenu from ooflib.common.IO import oofmenu from ooflib.common.IO import parameter from ooflib.common.IO import filenameparam from ooflib.common.IO import reporter def saveMessages(menuitem, filename, mode, **messagetypes): file = open(filename, mode.string()) for message in reporter.messagemanager.all_messages(): if messagetypes[message[1]]: print >> file, message[0] file.close() mainmenu.OOF.File.Save.addItem(oofmenu.OOFMenuItem( "Messages", help="Save the message logs from the message windows to a file.", callback=saveMessages, ordering=20, params=[filenameparam.WriteFileNameParameter('filename', tip="Name of the file."), filenameparam.WriteModeParameter('mode', tip="'w' to (over)write and 'a' to append")] + [parameter.BooleanParameter(name, True, tip="True to include and False to not.") for name in reporter.messageclasses], discussion="Unlike other <link linkend='MenuItem:OOF.File.Save'>OOF.File.Save</link> menu varieties, messages are saved only in an <emphasis>ascii</emphasis> format for an obvious reason."))
if debug.debug(): dblevel = 3 else: dblevel = 0 global _recording _recording = True gtklogger.start(filename, debugLevel=dblevel, logger_comments=use_gui) guidebugmenu.addItem( oofmenu.OOFMenuItem( 'Record', callback=startLog, params=[ filenameparam.WriteFileNameParameter('filename', ident='guilog', tip="Name of the file."), parameter.BooleanParameter( 'use_gui', True, tip="Use the logger gui to insert comments?") ], ellipsis=1, help="Save GUI events in a Python script", )) ############################ def stopLog(menuitem): debug.mainthreadTest() global _recording _recording = False