def browse(self, wait=True, tempname="/tmp/seltable"):
        import os
        if os.system('test `which casabrowser`x != x') == 0:
            waitstr1 = ""
            waitstr2 = "foreground ..."
            if not wait:
                waitstr1 = " &"
                waitstr2 = "background ..."
            if self.iswritable():
                six.print_("Flushing data and starting casabrowser in the " +
                           waitstr2)
            else:
                six.print_("Starting casabrowser in the " + waitstr2)
            self.flush()
            self.unlock()
            if os.system('test -e ' + self.name() + '/table.dat') == 0:
                os.system('casabrowser ' + self.name() + waitstr1)
            elif len(tempname) > 0:
                six.print_("  making a persistent copy in table " + tempname)
                self.copy(tempname)
                os.system('casabrowser ' + tempname + waitstr1)
                if wait:
                    from casacore.tables import tabledelete
                    six.print_("  finished browsing")
                    tabledelete(tempname)
                else:
                    six.print_(" after browsing use tabledelete('" + tempname +
                               "') to delete the copy")
            else:
                six.print_("Cannot browse because the table is in memory only")
                six.print_("You can browse a (shallow) persistent copy " +
                           "of the table like: ")
                six.print_("   t.browse(True, '/tmp/tab1')")
        else:
            try:
                import wxPython
            except ImportError:
                six.print_('casabrowser nor wxPython can be found')
                return
            from wxPython.wx import wxPySimpleApp
            import sys
            app = wxPySimpleApp()
            from wxtablebrowser import CasaTestFrame
            frame = CasaTestFrame(None, sys.stdout, self)
            frame.Show(True)
            app.MainLoop()