This repository has been archived by the owner on Oct 16, 2023. It is now read-only.
/
WriteMailController.vb
53 lines (51 loc) · 2.57 KB
/
WriteMailController.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Imports System
Imports System.Diagnostics
Imports DevExpress.ExpressApp
Imports DevExpress.ExpressApp.Actions
Imports DevExpress.Persistent.Base
Imports DevExpress.ExpressApp.SystemModule
Namespace ReplaceDefaultActionInListView.Module
Public Class WriteMailController
Inherits ViewController
Private writeMailAction As SimpleAction
Public Sub New()
TargetObjectType = GetType(AddressBookRecord)
writeMailAction = New SimpleAction(Me, "WriteMail", PredefinedCategory.Edit)
writeMailAction.ToolTip = "Write e-mail to the selected address book record"
writeMailAction.SelectionDependencyType = SelectionDependencyType.RequireSingleObject
writeMailAction.ImageName = "BO_Contact"
AddHandler writeMailAction.Execute, AddressOf writeMailAction_Execute
End Sub
Private Sub writeMailAction_Execute(ByVal sender As Object, ByVal e As SimpleActionExecuteEventArgs)
Dim record As AddressBookRecord = CType(e.CurrentObject, AddressBookRecord)
Dim startInfo As String = String.Format("mailto:{0}?body=Hello, {1}!%0A%0A", record.Email, record.Name)
Process.Start(startInfo)
End Sub
Private processCurrentObjectController As ListViewProcessCurrentObjectController
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
processCurrentObjectController = Frame.GetController(Of ListViewProcessCurrentObjectController)()
If processCurrentObjectController IsNot Nothing Then
AddHandler processCurrentObjectController.CustomProcessSelectedItem, AddressOf processCurrentObjectController_CustomProcessSelectedItem
End If
End Sub
Private Sub processCurrentObjectController_CustomProcessSelectedItem(ByVal sender As Object, ByVal e As CustomProcessListViewSelectedItemEventArgs)
e.Handled = True
writeMailAction.DoExecute()
End Sub
Public Property DefaultListViewAction() As SimpleAction
Get
Return writeMailAction
End Get
Set(ByVal value As SimpleAction)
writeMailAction = value
End Set
End Property
Protected Overrides Sub OnDeactivated()
If processCurrentObjectController IsNot Nothing Then
RemoveHandler processCurrentObjectController.CustomProcessSelectedItem, AddressOf processCurrentObjectController_CustomProcessSelectedItem
End If
MyBase.OnDeactivated()
End Sub
End Class
End Namespace