protected virtual void RaiseLoadCompleted(XslFOViewerEventArgs eventArgs)
        {
            eventArgs.ErrorEvents = new List <XslFOViewerEventArgs>();
            eventArgs.ErrorEvents.AddRange(_errorEventList);

            LoadCompleted.Raise(this, eventArgs);
        }
        protected virtual void RaiseViewerError(XslFOViewerEventArgs eventArgs)
        {
            _loadTimer.Stop();
            LogItem("Load Stopped due to Error [{0}s].", _loadTimer.Elapsed.TotalSeconds);
            LogItem("Error: {0}", eventArgs.Message);

            //Track the Error Events so we can also pass them along at LoadCompleted
            //for consumers that don't want to trap every event thrown!
            _errorEventList.Add(eventArgs);

            //Finally update the Tracking Flag
            _loadingInProgress = false;

            //Now raise the Error for all listeners
            ViewerError.Raise(this, eventArgs);
        }
コード例 #3
0
 private void AbstractControl_LoadError(object sender, XslFOViewerEventArgs e)
 {
     //Force UI update of the current LoadStatus
     SetLoadingState(this.LoadStatus);
 }
        //Private helper mehod to manage events for Loading
        private void TriggerLoadFile(XslFORenderFileOutput renderedOutput)
        {
            try
            {
                if (this.LoadStatus == XslFOViewerControlState.Unavailable)
                {
                    //Process ERROR / UNAVAILABLE State

                    //Raise Error because the Viewer Control is not fully initialized.
                    var eventArg = new XslFOViewerEventArgs("Viewer Error [{0}s]: Pdf Viewer Control not initialized [Status={1}].".FormatArgs(_loadTimer.Elapsed.TotalSeconds, this.LoadStatus.ToString()));
                    LogItem(eventArg.Message);
                    RaiseViewerError(eventArg);
                    //RaiseLoadCompleted(eventArg);

                    //Short Circuit if our current Load Status is UNAVAILALBE because we cannot be initialized,
                    //  and therefore should not run anything.
                    return;
                }
                else
                {
                    //Process NORMALLY

                    //Update our reference to the rendered output
                    this.RenderedOutput = renderedOutput;

                    //Process the new rendered output
                    if (renderedOutput != null)
                    {
                        FileInfo pdfBinaryFileInfo = renderedOutput.PdfFileInfo;
                        pdfBinaryFileInfo.Refresh();
                        if (pdfBinaryFileInfo != null && pdfBinaryFileInfo.Exists)
                        {
                            //Call the Abstract Method (implemented by Inheritec Controls) to load the File!
                            LoadFile(pdfBinaryFileInfo);
                            //ONLY update to Load Completed if the LoadFile abstract method executed successfully!
                            this.LoadStatus = XslFOViewerControlState.LoadCompleted;
                        }
                        else
                        {
                            throw new ArgumentNullException("Pdf Binary file is null or does not exist; a valid file must be specified [{0}].".FormatArgs(pdfBinaryFileInfo.FullName));
                        }

                        var eventArg = new XslFOViewerEventArgs("Load Completed [{0}s].\nPdf File Loaded: [{1}]".FormatArgs(_loadTimer.Elapsed.TotalSeconds, pdfBinaryFileInfo.FullName), renderedOutput);
                        LogItem(eventArg.Message);
                        RaiseLoadCompleted(eventArg);
                    }
                    else
                    {
                        this.LoadStatus = XslFOViewerControlState.Unloaded;
                        MessageBox.Show(this.ParentForm, "Rendered Output is null or empty!");
                    }
                }
            }
            catch (Exception exc)
            {
                this.LoadStatus = XslFOViewerControlState.Unloaded;
                RaiseViewerError(new XslFOViewerEventArgs("Error occurred Loading the Rendered Output Pdf File; {0}; Pdf Output File Path [{1}]".FormatArgs(exc.GetMessages(), renderedOutput.PdfFileInfo.FullName), renderedOutput.XslFODocument.ToString()));
            }
            finally
            {
                _loadTimer.Stop();

                //Finally update the Tracking Flag
                _loadingInProgress = false;
            }
        }
 protected virtual void RaiseLoadStarting(XslFOViewerEventArgs eventArgs)
 {
     LoadStarting.Raise(this, eventArgs);
 }