Files
Nuvolar/Nuvolar.Module.Win/Editor/SpreadEditor/SpreadFactoryService.vb
T
2017-03-08 11:21:27 +01:00

85 lines
3.2 KiB
VB.net

Imports DevExpress.XtraSpreadsheet.Services
Imports DevExpress.XtraSpreadsheet
Imports DevExpress.XtraSpreadsheet.Commands
Imports DevExpress.ExpressApp
Public Class CustomCommandFactoryServise
Inherits SpreadsheetCommandFactoryServiceWrapper
Private Property Control() As SpreadsheetControl
Get
Return m_Control
End Get
Set(value As SpreadsheetControl)
m_Control = value
End Set
End Property
Private Property View As DevExpress.ExpressApp.View
Get
Return m_View
End Get
Set(value As DevExpress.ExpressApp.View)
m_View = value
End Set
End Property
Private m_Control As SpreadsheetControl
Private m_View As DevExpress.ExpressApp.View
Public Sub New(service As ISpreadsheetCommandFactoryService, _control As SpreadsheetControl, _view As DevExpress.ExpressApp.View)
MyBase.New(service)
Control = _control
View = _view
End Sub
Public Overrides Function CreateCommand(id As SpreadsheetCommandId) As SpreadsheetCommand
Dim command As SpreadsheetCommand = MyBase.CreateCommand(id)
If id = SpreadsheetCommandId.FileSave Then
Return New SaveCommand(Control, View)
End If
Return command
End Function
End Class
Public Class SaveCommand
Inherits SaveDocumentCommand
Private m_View As DevExpress.ExpressApp.View
Private m_Control As SpreadsheetControl
Private Property SpreadControl() As SpreadsheetControl
Get
Return m_Control
End Get
Set(value As SpreadsheetControl)
m_Control = value
End Set
End Property
Private Property View As DevExpress.ExpressApp.View
Get
Return m_View
End Get
Set(value As DevExpress.ExpressApp.View)
m_View = value
End Set
End Property
Public Sub New(control As ISpreadsheetControl, _view As DevExpress.ExpressApp.View)
MyBase.New(control)
SpreadControl = control
View = _view
End Sub
Public Overrides Sub Execute()
Dim _OpenSpreadDocument_Popup = TryCast(View.SelectedObjects(0), OpenSpreadDocument_Popup)
Dim _BusinessDirectory As BusinessDirectory = _OpenSpreadDocument_Popup.BusinessDirectory
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _FilePath As String = System.IO.Path.Combine(System.IO.Path.GetTempPath(), _OpenSpreadDocument_Popup.BusinessDirectory.FileData.FileName)
Dim _Stream As System.IO.Stream = New System.IO.FileStream(_FilePath, System.IO.FileMode.Create)
SpreadControl.Document.SaveDocument(_Stream, DevExpress.Spreadsheet.DocumentFormat.OpenXml)
_Stream.Close()
Dim _StreamFile = New System.IO.FileStream(_FilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read)
Dim _StreamReader As New System.IO.StreamReader(_StreamFile)
_StreamFile.Seek(0, System.IO.SeekOrigin.Begin)
_OpenSpreadDocument_Popup.BusinessDirectory.FileData.LoadFromStream(_OpenSpreadDocument_Popup.BusinessDirectory.FileData.FileName, _StreamFile)
_ocur.CommitChanges()
End Sub
End Class