Пример #1
0
    def openPDF(self, message=None, paths=None, openedDocument=None):
        path = None
        if self.xml:
            if openedDocument:
                self.pdf = openedDocument
                self.frame.enableMenuItems(closePDF=True)
                self.preparePageBitmap()
            else:
                if paths:
                    for p in paths:
                        if os.path.exists(p):
                            path = p
                            break
                if not path:
                    prof = profile.current()

                    retvalue = self.frame.selectFile(message='Select a PDF file',
                        wildcard='PDF files (*.pdf)|*.pdf;*.PDF|All files (*)|*',
                        directory=prof.get("lastPdfDirectory", ""))
                    if retvalue:
                        prof["lastPdfDirectory"] = retvalue[0]
                        prof.save()
                        path = os.path.sep.join(retvalue)

                if path:
                    try:
                        self.pdf = self.runTask('Opening PDF document...', readpdf.Pdf, (path,))
                    except Exception as e:
                        self.frame.errorDialog("Error while reading file %s:\n%s" \
                            % (path, e))
                    else:
                        self.frame.enableMenuItems(closePDF=True)
                        self.preparePageBitmap()
        else:
            self.frame.errorDialog("Open first an XML file")
Пример #2
0
    def openPDF(self, message=None, paths=None, openedDocument=None):
        path = None
        if self.xml:
            if openedDocument:
                self.pdf = openedDocument
                self.frame.enableMenuItems(closePDF=True)
                self.preparePageBitmap()
            else:
                if paths:
                    for p in paths:
                        if os.path.exists(p):
                            path = p
                            break
                if not path:
                    prof = profile.current()

                    retvalue = self.frame.selectFile(message='Select a PDF file',
                        wildcard='PDF files (*.pdf)|*.pdf;*.PDF|All files (*)|*',
                        directory=prof.get("lastPdfDirectory", ""))
                    if retvalue:
                        prof["lastPdfDirectory"] = retvalue[0]
                        prof.save()
                        path = os.path.sep.join(retvalue)

                if path:
                    try:
                        self.pdf = self.runTask('Opening PDF document...', readpdf.Pdf, (path,))
                    except Exception as e:
                        self.frame.errorDialog("Error while reading file %s:\n%s" \
                            % (path, e))
                    else:
                        self.frame.enableMenuItems(closePDF=True)
                        self.preparePageBitmap()
        else:
            self.frame.errorDialog("Open first an XML file")
Пример #3
0
def _downloadFile(url, filename):
    path = profile.current().directory + os.path.sep + 'netfiles'
    if not os.path.isdir(path):
        os.mkdir(path)
    path += os.path.sep + filename
    if os.path.exists(path):
        handler = IfModifiedSinceHandler(os.path.getmtime(path))
        netfile = urllib2.build_opener(handler).open(url)
    else:
        netfile = urllib2.urlopen(url)
    if netfile.code != 304:
        with open(path, 'wb') as locfile:
            locfile.write(netfile.read())
    return path
Пример #4
0
def _downloadFile(url, filename):
    path = profile.current().directory + os.path.sep + 'netfiles'
    if not os.path.isdir(path):
            os.mkdir(path)
    path += os.path.sep + filename
    if os.path.exists(path):
        handler = IfModifiedSinceHandler(os.path.getmtime(path))
        netfile = urllib2.build_opener(handler).open(url)
    else:
        netfile = urllib2.urlopen(url)
    if netfile.code != 304:
        with open(path, 'wb') as locfile:
            locfile.write(netfile.read())
    return path
Пример #5
0
    def openNet(self, message):
        prof = profile.current()
        if "username" not in prof:
            if username is None:
                return
            if not re.match(r"[a-zA-Z0-9_]+", username):
                self.frame.errorDialog("Invalid username")
                return
            prof["username"] = username
            prof.save()
        try:
            currentDocuments = network.getCurrentDocuments()
            availableDocuments = network.getAvailableDocuments()
        except Exception as e:
            self.frame.errorDialog("Cannot get list of network documents: %s" % (e,))
            return

        choosenDocument = self.frame.selectNetworkDocument(currentDocuments, availableDocuments)

        if choosenDocument:
            if self.xml:
                if not self.closeXML():
                    return
            try:
                setStatusResult = network.setDocumentStatus(choosenDocument, "locked")
            except Exception as e:
                self.frame.errorDialog("Cannot set document status: %s" % (e,))
                return

            if setStatusResult:
                try:
                    self.openXML(
                        openedDocument=self.runTask("Opening XML document...", network.getXML, (choosenDocument,))
                    )
                except Exception as e:
                    self.frame.errorDialog("Cannot get network document: %s" % (e,))
                    return
                try:
                    self.openPDF(
                        openedDocument=self.runTask("Opening PDF document...", network.getPDF, (choosenDocument,))
                    )
                except Exception as e:
                    self.frame.errorDialog("Cannot get a PDF file from the server: %s" % (e,))
                self.networkDocumentId = choosenDocument
                self.frame.SetTitle(config.WINDOW_TITLE + " - network document: " + choosenDocument)
            else:
                self.frame.errorDialog("File is locked by other user")
Пример #6
0
    def openNet(self, message):
        prof = profile.current()
        if 'username' not in prof:
            if username is None:
                return
            if not re.match(r'[a-zA-Z0-9_]+', username):
                self.frame.errorDialog('Invalid username')
                return
            prof['username'] = username
            prof.save()
        try:
            currentDocuments = network.getCurrentDocuments()
            availableDocuments = network.getAvailableDocuments()
        except Exception as e:
            self.frame.errorDialog("Cannot get list of network documents: %s" % (e,))
            return

        choosenDocument = self.frame.selectNetworkDocument(currentDocuments, availableDocuments)

        if choosenDocument:
            if self.xml:
                if not self.closeXML():
                    return
            try:
                setStatusResult = network.setDocumentStatus(choosenDocument, 'locked')
            except Exception as e:
                self.frame.errorDialog("Cannot set document status: %s" % (e,))
                return

            if setStatusResult:
                try:
                    self.openXML(openedDocument=self.runTask('Opening XML document...', network.getXML, (choosenDocument,)))
                except Exception as e:
                    self.frame.errorDialog("Cannot get network document: %s" % (e,))
                    return
                try:
                    self.openPDF(openedDocument=self.runTask('Opening PDF document...', network.getPDF, (choosenDocument,)))
                except Exception as e:
                    self.frame.errorDialog("Cannot get a PDF file from the server: %s" \
                        % (e,))
                self.networkDocumentId = choosenDocument
                self.frame.SetTitle(config.WINDOW_TITLE + " - network document: " + choosenDocument)
            else:
                self.frame.errorDialog("File is locked by other user")
Пример #7
0
    def openXML(self, message=None, openedDocument=None):
        # TODO: trochę tu posprzątać. Osobno wczytywanie pliku z dysku, osobno inicjowanie 
        # już wczytanego dokumentu.
        if openedDocument: # network document
            if self.xml:
                if not self.closeXML():
                    return
            self.xml = openedDocument
            self.frame.enableMenuItems(sendNet=True)
            self.pdf = None
            path = None

        else:
            prof = profile.current()
            retvalue = self.frame.selectFile(message='Select an XML (Trueviz) file',
                wildcard='XML files (*.cermstr)|*.cermstr;*.CXML|XML files (*.xml)|*.xml;*.XML|All files (*)|*',
                directory=prof.get("lastXmlDirectory", ""))

            if retvalue:
                if self.xml:
                    if not self.closeXML():
                        return

                prof["lastXmlDirectory"] = retvalue[0]
                prof.save()
                path = os.path.sep.join(retvalue)

                self.frame.SetTitle(config.WINDOW_TITLE + " - " + retvalue[1])

                self.pdf = None

                try:
                    self.xml = self.runTask('Opening XML document...', trueviz.load, (path,))
                    if not self.xml:
                        self.xml = None
                        raise Exception('Document is empty')
                        return
                except Exception as e:
                    sys.excepthook(*sys.exc_info())
                    self.frame.errorDialog("Error while reading file %s:\n%s" % \
                        (path, e))
                    return
                self.frame.enableMenuItems(saveAs=True)
            else:
                return

        if self.xml:
            self.pageCount = len(self.xml)
            self.setPage(0)

            self.frame.enableMenuItems(openPDF=True, closeXML=True)

            if  path:
                # and open the PDF file
                filebasere = re.match(r'(.*\.)(cermstr|xml)', retvalue[1], re.IGNORECASE)
                if filebasere:
                    filebase = filebasere.groups()[0]
                    pathbase1 = os.path.sep.join((retvalue[0], filebase))
                    pathbase2 = os.path.sep.join((prof.get("lastPdfDirectory", ""), filebase))
                    paths = (pathbase1 + 'pdf', pathbase1 + 'PDF',
                        pathbase2 + 'pdf', pathbase2 + 'PDF')
                    self.openPDF(paths=paths)
                else:
                    self.openPDF()
Пример #8
0
    def openXML(self, message=None, openedDocument=None):
        # TODO: trochę tu posprzątać. Osobno wczytywanie pliku z dysku, osobno inicjowanie 
        # już wczytanego dokumentu.
        if openedDocument: # network document
            if self.xml:
                if not self.closeXML():
                    return
            self.xml = openedDocument
            self.frame.enableMenuItems(sendNet=True)
            self.pdf = None
            path = None

        else:
            prof = profile.current()
            retvalue = self.frame.selectFile(message='Select an XML (Trueviz) file',
                wildcard='XML files (*.xml)|*.xml;*.XML|All files (*)|*',
                directory=prof.get("lastXmlDirectory", ""))

            if retvalue:
                if self.xml:
                    if not self.closeXML():
                        return

                prof["lastXmlDirectory"] = retvalue[0]
                prof.save()
                path = os.path.sep.join(retvalue)

                self.frame.SetTitle(config.WINDOW_TITLE + " - " + retvalue[1])

                self.pdf = None

                try:
                    self.xml = self.runTask('Opening XML document...', trueviz.load, (path,))
                    if not self.xml:
                        self.xml = None
                        raise Exception('Document is empty')
                        return
                except Exception as e:
                    sys.excepthook(*sys.exc_info())
                    self.frame.errorDialog("Error while reading file %s:\n%s" % \
                        (path, e))
                    return
                self.frame.enableMenuItems(saveAs=True)
            else:
                return

        if self.xml:
            self.pageCount = len(self.xml)
            self.setPage(0)

            self.frame.enableMenuItems(openPDF=True, closeXML=True)

            if  path:
                # and open the PDF file
                filebasere = re.match(r'(.*\.)[xX][mM][lL]', retvalue[1])
                if filebasere:
                    filebase = filebasere.groups()[0]
                    pathbase1 = os.path.sep.join((retvalue[0], filebase))
                    pathbase2 = os.path.sep.join((prof.get("lastPdfDirectory", ""), filebase))
                    paths = (pathbase1 + 'pdf', pathbase1 + 'PDF',
                        pathbase2 + 'pdf', pathbase2 + 'PDF')
                    self.openPDF(paths=paths)
                else:
                    self.openPDF()
Пример #9
0
def url(suffix, *args):
    return str(
        'http://%s/%s/%s' %
        (config.NETWORK_ADDRESS, profile.current()['username'], suffix % args))
Пример #10
0
def url(suffix, *args):
    return str('http://%s/%s/%s' % (config.NETWORK_ADDRESS, profile.current()['username'], suffix % args))