Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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,
Exemplo n.º 4
0
    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')))

Exemplo n.º 5
0
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
Exemplo n.º 6
0
    ))


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()
Exemplo n.º 7
0
def getFile(ident=None, title=""):
    fileparam = filenameparam.WriteFileNameParameter('filename', ident=ident)
    if parameterwidgets.getParameters(fileparam, title=title):
        return fileparam.value
Exemplo n.º 8
0
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()
Exemplo n.º 9
0
                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.",
Exemplo n.º 10
0
        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,
Exemplo n.º 11
0
# 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."))
Exemplo n.º 12
0
    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