DocumentViewer: Support most toolbar actions for word-like documents #CW-1
This commit is contained in:
parent
71e3769cdd
commit
1283cfae61
14
Controls.DocumentViewer/DocumentViewer.Designer.vb
generated
14
Controls.DocumentViewer/DocumentViewer.Designer.vb
generated
@ -42,6 +42,7 @@ Partial Class DocumentViewer
|
||||
Me.buttonPrevPage = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.txtCurrentPage = New DevExpress.XtraBars.BarEditItem()
|
||||
Me.RepositoryItemTextEdit2 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit()
|
||||
Me.labelPageCount = New DevExpress.XtraBars.BarStaticItem()
|
||||
Me.buttonNextPage = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.buttonLastPage = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.buttonSettings = New DevExpress.XtraBars.BarButtonItem()
|
||||
@ -55,7 +56,6 @@ Partial Class DocumentViewer
|
||||
Me.RepositoryItemComboBox1 = New DevExpress.XtraEditors.Repository.RepositoryItemComboBox()
|
||||
Me.SpreadsheetControl1 = New DevExpress.XtraSpreadsheet.SpreadsheetControl()
|
||||
Me.PrintDocument1 = New System.Drawing.Printing.PrintDocument()
|
||||
Me.labelPageCount = New DevExpress.XtraBars.BarStaticItem()
|
||||
CType(Me.BarManager1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RepositoryItemTextEdit2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
@ -282,6 +282,12 @@ Partial Class DocumentViewer
|
||||
Me.RepositoryItemTextEdit2.EditFormat.FormatType = DevExpress.Utils.FormatType.Numeric
|
||||
Me.RepositoryItemTextEdit2.Name = "RepositoryItemTextEdit2"
|
||||
'
|
||||
'labelPageCount
|
||||
'
|
||||
Me.labelPageCount.Caption = "/ 0"
|
||||
Me.labelPageCount.Id = 24
|
||||
Me.labelPageCount.Name = "labelPageCount"
|
||||
'
|
||||
'buttonNextPage
|
||||
'
|
||||
Me.buttonNextPage.Caption = "Vor"
|
||||
@ -376,12 +382,6 @@ Partial Class DocumentViewer
|
||||
Me.SpreadsheetControl1.Text = "SpreadsheetControl1"
|
||||
Me.SpreadsheetControl1.Visible = False
|
||||
'
|
||||
'labelPageCount
|
||||
'
|
||||
Me.labelPageCount.Caption = "BarStaticItem2"
|
||||
Me.labelPageCount.Id = 24
|
||||
Me.labelPageCount.Name = "labelPageCount"
|
||||
'
|
||||
'DocumentViewer
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
|
||||
@ -8,6 +8,7 @@ Imports GdPicture14
|
||||
Imports DevExpress
|
||||
Imports DevExpress.Office.Utils
|
||||
Imports System.IO
|
||||
Imports DevExpress.XtraRichEdit.Commands
|
||||
|
||||
Public Class DocumentViewer
|
||||
Private Enum ZoomMode
|
||||
@ -21,6 +22,13 @@ Public Class DocumentViewer
|
||||
ZoomFitHeight
|
||||
End Enum
|
||||
|
||||
Private Enum ViewerMode
|
||||
GDPicture
|
||||
RichText
|
||||
Excel
|
||||
End Enum
|
||||
|
||||
Private _ViewerMode As ViewerMode
|
||||
Private _currentSearchOccurence As Integer = 0
|
||||
Private _toggleGamma As Boolean = True
|
||||
Private _licenseKey As String = String.Empty
|
||||
@ -41,6 +49,7 @@ Public Class DocumentViewer
|
||||
UpdateMainUi()
|
||||
End Sub
|
||||
|
||||
|
||||
Public Property FileLoaded As Boolean = False
|
||||
|
||||
''' <summary>
|
||||
@ -76,16 +85,18 @@ Public Class DocumentViewer
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If FilePath Is Nothing OrElse FilePath.Trim().Length = 0 Then
|
||||
_logger.Warn("FilePath was not provided. File not loaded.")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
_logger.Info("Loading File {0}", FilePath)
|
||||
|
||||
Dim oFileLoaded = DoLoadFile(FilePath)
|
||||
FileLoaded = DoLoadFile(FilePath)
|
||||
_FilePath = FilePath
|
||||
_Fileinfo = New FileInfo(FilePath)
|
||||
|
||||
If oFileLoaded = True Then
|
||||
FileLoaded = True
|
||||
End If
|
||||
|
||||
SetViewerMode(_Fileinfo.Extension)
|
||||
UpdateMainUi()
|
||||
End Sub
|
||||
|
||||
@ -101,12 +112,9 @@ Public Class DocumentViewer
|
||||
|
||||
_logger.Info("Loading File [{0}]", FileName)
|
||||
|
||||
Dim ofileloaded = DoLoadFile(Stream, oExtension)
|
||||
|
||||
If oFileLoaded = True Then
|
||||
FileLoaded = True
|
||||
End If
|
||||
FileLoaded = DoLoadFile(Stream, oExtension)
|
||||
|
||||
SetViewerMode(oExtension)
|
||||
UpdateMainUi()
|
||||
End Sub
|
||||
|
||||
@ -125,20 +133,32 @@ Public Class DocumentViewer
|
||||
Next
|
||||
_TempFiles.Clear()
|
||||
End Sub
|
||||
|
||||
Private Sub SetViewerMode(Extension As String)
|
||||
Select Case Extension.ToUpper
|
||||
Case ".MSG"
|
||||
_ViewerMode = ViewerMode.RichText
|
||||
Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT"
|
||||
_ViewerMode = ViewerMode.RichText
|
||||
Case ".XLSX", ".XLS", "CSV"
|
||||
_ViewerMode = ViewerMode.Excel
|
||||
Case Else
|
||||
_ViewerMode = ViewerMode.GDPicture
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub FreeFile()
|
||||
Try
|
||||
If Len(_FilePath) OrElse _Fileinfo Is Nothing Then
|
||||
Exit Sub
|
||||
End If
|
||||
Dim oExtension As String = _Fileinfo.Extension.ToUpper
|
||||
Select Case oExtension.ToUpper
|
||||
Case ".MSG"
|
||||
Select Case _ViewerMode
|
||||
Case ViewerMode.RichText
|
||||
RichEditControl1.CreateNewDocument()
|
||||
|
||||
Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT"
|
||||
RichEditControl1.CreateNewDocument()
|
||||
|
||||
Case ".XLSX", ".XLS", "CSV"
|
||||
Case ViewerMode.Excel
|
||||
SpreadsheetControl1.CreateNewDocument()
|
||||
|
||||
Case Else
|
||||
@ -151,7 +171,7 @@ Public Class DocumentViewer
|
||||
End Sub
|
||||
Private Function DoLoadFile(FilePath As String) As Boolean
|
||||
Try
|
||||
Dim oFileInfo = New IO.FileInfo(FilePath)
|
||||
Dim oFileInfo = New FileInfo(FilePath)
|
||||
Dim oExtension As String = oFileInfo.Extension.ToUpper
|
||||
|
||||
RichEditControl1.Visible = False
|
||||
@ -160,7 +180,7 @@ Public Class DocumentViewer
|
||||
SpreadsheetControl1.Visible = False
|
||||
SpreadsheetControl1.Dock = DockStyle.None
|
||||
|
||||
ToolbarDocumentViewer.Visible = False
|
||||
'ToolbarDocumentViewer.Visible = False
|
||||
|
||||
Select Case oExtension.ToUpper
|
||||
Case ".MSG"
|
||||
@ -194,7 +214,7 @@ Public Class DocumentViewer
|
||||
SpreadsheetControl1.Dock = DockStyle.Fill
|
||||
|
||||
Case Else
|
||||
ToolbarDocumentViewer.Visible = True
|
||||
'ToolbarDocumentViewer.Visible = True
|
||||
|
||||
GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer
|
||||
GdViewer.DocumentAlignment = ViewerDocumentAlignment.DocumentAlignmentTopCenter
|
||||
@ -219,7 +239,7 @@ Public Class DocumentViewer
|
||||
SpreadsheetControl1.Visible = False
|
||||
SpreadsheetControl1.Dock = DockStyle.None
|
||||
|
||||
ToolbarDocumentViewer.Visible = False
|
||||
' ToolbarDocumentViewer.Visible = False
|
||||
|
||||
Select Case Extension.ToUpper
|
||||
Case ".MSG"
|
||||
@ -241,6 +261,7 @@ Public Class DocumentViewer
|
||||
Case ".EML", ".DOC", ".DOCX", ".ODT", ".RTF", ".TXT"
|
||||
RichEditControl1.LoadDocument(Stream, GetDocumentFormat(Extension))
|
||||
|
||||
RichEditControl1.ActiveViewType = XtraRichEdit.RichEditViewType.PrintLayout
|
||||
RichEditControl1.Visible = True
|
||||
RichEditControl1.Dock = DockStyle.Fill
|
||||
|
||||
@ -254,7 +275,7 @@ Public Class DocumentViewer
|
||||
SpreadsheetControl1.Dock = DockStyle.Fill
|
||||
|
||||
Case Else
|
||||
ToolbarDocumentViewer.Visible = True
|
||||
'ToolbarDocumentViewer.Visible = True
|
||||
|
||||
GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer
|
||||
GdViewer.DocumentAlignment = ViewerDocumentAlignment.DocumentAlignmentTopCenter
|
||||
@ -348,6 +369,61 @@ Public Class DocumentViewer
|
||||
|
||||
Private Sub UpdateMainUi()
|
||||
|
||||
Select Case _ViewerMode
|
||||
Case ViewerMode.GDPicture
|
||||
buttonPrint.Enabled = True
|
||||
buttonFitWidth.Enabled = True
|
||||
buttonFitPage.Enabled = True
|
||||
buttonZoomIn.Enabled = True
|
||||
buttonZoomOut.Enabled = True
|
||||
buttonRotateLeft.Enabled = True
|
||||
buttonRotateRight.Enabled = True
|
||||
buttonFlipX.Enabled = True
|
||||
buttonFlipY.Enabled = True
|
||||
buttonFirstPage.Enabled = True
|
||||
buttonPrevPage.Enabled = True
|
||||
buttonNextPage.Enabled = True
|
||||
buttonLastPage.Enabled = True
|
||||
buttonSettings.Enabled = True
|
||||
txtCurrentPage.Enabled = True
|
||||
|
||||
Case ViewerMode.RichText
|
||||
buttonFitPage.Enabled = True
|
||||
buttonZoomIn.Enabled = True
|
||||
buttonZoomOut.Enabled = True
|
||||
buttonFitWidth.Enabled = True
|
||||
buttonNextPage.Enabled = True
|
||||
buttonPrevPage.Enabled = True
|
||||
|
||||
buttonPrint.Enabled = False
|
||||
buttonRotateLeft.Enabled = False
|
||||
buttonRotateRight.Enabled = False
|
||||
buttonFlipX.Enabled = False
|
||||
buttonFlipY.Enabled = False
|
||||
buttonFirstPage.Enabled = False
|
||||
buttonLastPage.Enabled = False
|
||||
buttonSettings.Enabled = False
|
||||
txtCurrentPage.Enabled = False
|
||||
|
||||
Case ViewerMode.Excel
|
||||
buttonPrint.Enabled = False
|
||||
buttonFitWidth.Enabled = False
|
||||
buttonFitPage.Enabled = False
|
||||
buttonZoomIn.Enabled = False
|
||||
buttonZoomOut.Enabled = False
|
||||
buttonRotateLeft.Enabled = False
|
||||
buttonRotateRight.Enabled = False
|
||||
buttonFlipX.Enabled = False
|
||||
buttonFlipY.Enabled = False
|
||||
buttonFirstPage.Enabled = False
|
||||
buttonPrevPage.Enabled = False
|
||||
buttonNextPage.Enabled = False
|
||||
buttonLastPage.Enabled = False
|
||||
buttonSettings.Enabled = False
|
||||
txtCurrentPage.Enabled = False
|
||||
|
||||
End Select
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub btnFirstPage_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles buttonFirstPage.ItemClick
|
||||
@ -355,11 +431,21 @@ Public Class DocumentViewer
|
||||
End Sub
|
||||
|
||||
Private Sub btnPreviousPage_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles buttonPrevPage.ItemClick
|
||||
GdViewer.DisplayPreviousPage()
|
||||
If _ViewerMode = ViewerMode.GDPicture Then
|
||||
GdViewer.DisplayPreviousPage()
|
||||
ElseIf _ViewerMode = ViewerMode.RichText Then
|
||||
Dim oCmd As New PreviousPageCommand(RichEditControl1)
|
||||
oCmd.Execute()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btnNextPage_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles buttonNextPage.ItemClick
|
||||
GdViewer.DisplayNextPage()
|
||||
If _ViewerMode = ViewerMode.GDPicture Then
|
||||
GdViewer.DisplayNextPage()
|
||||
ElseIf _ViewerMode = ViewerMode.RichText Then
|
||||
Dim oCmd As New NextPageCommand(RichEditControl1)
|
||||
oCmd.Execute()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btnLastPage_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles buttonLastPage.ItemClick
|
||||
@ -387,15 +473,25 @@ Public Class DocumentViewer
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btnZoomOut_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles buttonZoomOut.ItemClick
|
||||
GdViewer.ZoomOUT()
|
||||
Private Sub btnZoomOut_Click(sender As Object, e As EventArgs) Handles buttonZoomOut.ItemClick
|
||||
If _ViewerMode = ViewerMode.GDPicture Then
|
||||
GdViewer.ZoomOUT()
|
||||
ElseIf _ViewerMode = ViewerMode.RichText Then
|
||||
Dim oCmd As New ZoomOutCommand(RichEditControl1)
|
||||
oCmd.Execute()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btnZoomIn_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles buttonZoomIn.ItemClick
|
||||
GdViewer.ZoomIN()
|
||||
Private Sub btnZoomIn_Click(sender As Object, e As EventArgs) Handles buttonZoomIn.ItemClick
|
||||
If _ViewerMode = ViewerMode.GDPicture Then
|
||||
GdViewer.ZoomIN()
|
||||
ElseIf _ViewerMode = ViewerMode.RichText Then
|
||||
Dim oCmd As New ZoomInCommand(RichEditControl1)
|
||||
oCmd.Execute()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles buttonPrint.ItemClick
|
||||
Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles buttonPrint.ItemClick
|
||||
If GdViewer.PageCount = 0 Then
|
||||
Return
|
||||
End If
|
||||
@ -403,19 +499,19 @@ Public Class DocumentViewer
|
||||
GdViewer.PrintDialog()
|
||||
End Sub
|
||||
|
||||
Private Sub btnRotateLeft_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles buttonRotateLeft.ItemClick
|
||||
Private Sub btnRotateLeft_Click(sender As Object, e As EventArgs) Handles buttonRotateLeft.ItemClick
|
||||
GdViewer.Rotate(RotateFlipType.Rotate270FlipNone)
|
||||
End Sub
|
||||
|
||||
Private Sub btnRotateRight_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles buttonRotateRight.ItemClick
|
||||
Private Sub btnRotateRight_Click(sender As Object, e As EventArgs) Handles buttonRotateRight.ItemClick
|
||||
GdViewer.Rotate(RotateFlipType.Rotate90FlipNone)
|
||||
End Sub
|
||||
|
||||
Private Sub btnFlipX_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles buttonFlipX.ItemClick
|
||||
Private Sub btnFlipX_Click(sender As Object, e As EventArgs) Handles buttonFlipX.ItemClick
|
||||
GdViewer.Rotate(RotateFlipType.RotateNoneFlipX)
|
||||
End Sub
|
||||
|
||||
Private Sub btnFlipY_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles buttonFlipY.ItemClick
|
||||
Private Sub btnFlipY_Click(sender As Object, e As EventArgs) Handles buttonFlipY.ItemClick
|
||||
GdViewer.Rotate(RotateFlipType.RotateNoneFlipY)
|
||||
End Sub
|
||||
|
||||
@ -469,11 +565,21 @@ Public Class DocumentViewer
|
||||
End Sub
|
||||
|
||||
Private Sub btnFitWidth_Click(ByVal sender As Object, ByVal e As EventArgs) Handles buttonFitWidth.ItemClick
|
||||
GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer
|
||||
If _ViewerMode = ViewerMode.GDPicture Then
|
||||
GdViewer.ZoomMode = ViewerZoomMode.ZoomModeWidthViewer
|
||||
ElseIf _ViewerMode = ViewerMode.RichText Then
|
||||
Dim oCmd As New FitWidthCommand(RichEditControl1)
|
||||
oCmd.Execute()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btnFitPage_Click(ByVal sender As Object, ByVal e As EventArgs) Handles buttonFitPage.ItemClick
|
||||
GdViewer.ZoomMode = ViewerZoomMode.ZoomModeFitToViewer
|
||||
If _ViewerMode = ViewerMode.GDPicture Then
|
||||
GdViewer.ZoomMode = ViewerZoomMode.ZoomModeFitToViewer
|
||||
ElseIf _ViewerMode = ViewerMode.RichText Then
|
||||
Dim oCmd As New FitToPageCommand(RichEditControl1)
|
||||
oCmd.Execute()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub RichEditControl1_SizeChanged(sender As Object, e As EventArgs) Handles RichEditControl1.SizeChanged
|
||||
|
||||
6
GUIs.Test.DocumentViewerTest/Form1.Designer.vb
generated
6
GUIs.Test.DocumentViewerTest/Form1.Designer.vb
generated
@ -52,7 +52,7 @@ Partial Class Form1
|
||||
'
|
||||
'Button2
|
||||
'
|
||||
Me.Button2.Location = New System.Drawing.Point(12, 38)
|
||||
Me.Button2.Location = New System.Drawing.Point(12, 67)
|
||||
Me.Button2.Name = "Button2"
|
||||
Me.Button2.Size = New System.Drawing.Size(637, 23)
|
||||
Me.Button2.TabIndex = 2
|
||||
@ -61,7 +61,7 @@ Partial Class Form1
|
||||
'
|
||||
'Button3
|
||||
'
|
||||
Me.Button3.Location = New System.Drawing.Point(12, 67)
|
||||
Me.Button3.Location = New System.Drawing.Point(12, 96)
|
||||
Me.Button3.Name = "Button3"
|
||||
Me.Button3.Size = New System.Drawing.Size(637, 23)
|
||||
Me.Button3.TabIndex = 2
|
||||
@ -70,7 +70,7 @@ Partial Class Form1
|
||||
'
|
||||
'Button4
|
||||
'
|
||||
Me.Button4.Location = New System.Drawing.Point(12, 96)
|
||||
Me.Button4.Location = New System.Drawing.Point(12, 125)
|
||||
Me.Button4.Name = "Button4"
|
||||
Me.Button4.Size = New System.Drawing.Size(637, 23)
|
||||
Me.Button4.TabIndex = 3
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user