Code cleanup of external tools.

This commit is contained in:
Riley McArdle
2013-11-17 21:23:00 -06:00
parent 7e94c6f1c9
commit 9c089bed37
17 changed files with 635 additions and 545 deletions

View File

@@ -234,7 +234,7 @@ Namespace App
Public Shared adimportPanel As New DockContent
Public Shared helpForm As UI.Window.Help
Public Shared helpPanel As New DockContent
Public Shared externalappsForm As UI.Window.ExternalApps
Public Shared externalappsForm As UI.Window.ExternalTools
Public Shared externalappsPanel As New DockContent
Public Shared portscanForm As UI.Window.PortScan
Public Shared portscanPanel As New DockContent
@@ -294,7 +294,7 @@ Namespace App
helpForm.Show(frmMain.pnlDock)
Case UI.Window.Type.ExternalApps
If externalappsForm Is Nothing OrElse externalappsForm.IsDisposed Then
externalappsForm = New UI.Window.ExternalApps(externalappsPanel)
externalappsForm = New UI.Window.ExternalTools(externalappsPanel)
externalappsPanel = externalappsForm
End If
@@ -1904,21 +1904,6 @@ Namespace App
#End Region
#Region "External Apps"
Public Shared Sub GetExtApps()
Array.Clear(Tools.ExternalToolsTypeConverter.ExternalTools, 0, Tools.ExternalToolsTypeConverter.ExternalTools.Length)
Array.Resize(Tools.ExternalToolsTypeConverter.ExternalTools, ExternalTools.Count + 1)
Dim i As Integer = 0
For Each extA As Tools.ExternalTool In ExternalTools
Tools.ExternalToolsTypeConverter.ExternalTools(i) = extA.DisplayName
i += 1
Next
Tools.ExternalToolsTypeConverter.ExternalTools(i) = ""
End Sub
Public Shared Function GetExtAppByName(ByVal Name As String) As Tools.ExternalTool
For Each extA As Tools.ExternalTool In ExternalTools
If extA.DisplayName = Name Then

View File

@@ -484,7 +484,7 @@ Partial Class frmMain
'
'mMenViewExtAppsToolbar
'
Me.mMenViewExtAppsToolbar.Image = Global.mRemoteNG.My.Resources.Resources.application_link
Me.mMenViewExtAppsToolbar.Image = Global.mRemoteNG.My.Resources.Resources.ExtApp
Me.mMenViewExtAppsToolbar.Name = "mMenViewExtAppsToolbar"
Me.mMenViewExtAppsToolbar.Size = New System.Drawing.Size(228, 22)
Me.mMenViewExtAppsToolbar.Text = "External Applications Toolbar"
@@ -526,7 +526,7 @@ Partial Class frmMain
'
'mMenToolsExternalApps
'
Me.mMenToolsExternalApps.Image = Global.mRemoteNG.My.Resources.Resources.application_link
Me.mMenToolsExternalApps.Image = Global.mRemoteNG.My.Resources.Resources.ExtApp
Me.mMenToolsExternalApps.Name = "mMenToolsExternalApps"
Me.mMenToolsExternalApps.Size = New System.Drawing.Size(184, 22)
Me.mMenToolsExternalApps.Text = "External Applications"

View File

@@ -64,7 +64,6 @@ Public Class frmMain
Tools.IeBrowserEmulation.Register()
Startup.GetConnectionIcons()
GetExtApps()
Windows.treePanel.Focus()
Tree.Node.TreeView = Windows.treeForm.tvConnections

View File

@@ -361,6 +361,15 @@ Namespace My
End Get
End Property
'''<summary>
''' Looks up a localized string similar to &amp;Launch.
'''</summary>
Friend Shared ReadOnly Property strButtonLaunch() As String
Get
Return ResourceManager.GetString("strButtonLaunch", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Launch PuTTY.
'''</summary>
@@ -1689,6 +1698,15 @@ Namespace My
End Get
End Property
'''<summary>
''' Looks up a localized string similar to New External Tool.
'''</summary>
Friend Shared ReadOnly Property strExternalToolDefaultName() As String
Get
Return ResourceManager.GetString("strExternalToolDefaultName", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Includes icons by [FAMFAMFAM].
'''</summary>

View File

@@ -216,6 +216,9 @@
<data name="strButtonInheritance" xml:space="preserve">
<value>Inheritance</value>
</data>
<data name="strButtonLaunch" xml:space="preserve">
<value>&amp;Launch</value>
</data>
<data name="strButtonLaunchPutty" xml:space="preserve">
<value>Launch PuTTY</value>
</data>
@@ -675,6 +678,9 @@ See the Microsoft Support article at http://support.microsoft.com/kb/811833 for
<data name="strExtApp" xml:space="preserve">
<value>Ext. App</value>
</data>
<data name="strExternalToolDefaultName" xml:space="preserve">
<value>New External Tool</value>
</data>
<data name="strFAMFAMFAMAttribution" xml:space="preserve">
<value>Includes icons by [FAMFAMFAM]</value>
</data>

View File

@@ -88,13 +88,6 @@ Namespace My.Resources
End Get
End Property
Friend ReadOnly Property application_link() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("application_link", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
Friend ReadOnly Property application_side_tree() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("application_side_tree", resourceCulture)

View File

@@ -451,9 +451,6 @@
<data name="key_delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Images_FamFamFam\key_delete.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="application_link" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Images_FamFamFam\application_link.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="application_side_tree" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Images_FamFamFam\application_side_tree.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -478,7 +475,6 @@
<data name="page_copy" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\images_famfamfam\page_copy.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="RDCMan_Icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\icons\rdcman_icon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 701 B

View File

@@ -280,7 +280,20 @@ Namespace Tools
Public Class ExternalToolsTypeConverter
Inherits StringConverter
Public Shared ExternalTools As String() = New String() {}
Public Shared ReadOnly Property ExternalTools As String()
Get
Dim externalToolList As New List(Of String)
' Add a blank entry to signify that no external tool is selected
externalToolList.Add(String.Empty)
For Each externalTool As ExternalTool In App.Runtime.ExternalTools
externalToolList.Add(externalTool.DisplayName)
Next
Return externalToolList.ToArray()
End Get
End Property
Public Overloads Overrides Function GetStandardValues(ByVal context As System.ComponentModel.ITypeDescriptorContext) As System.ComponentModel.TypeConverter.StandardValuesCollection
Return New StandardValuesCollection(ExternalTools)

View File

@@ -735,7 +735,7 @@ Namespace UI
cmenTabExternalApps.DropDownItems.Clear()
'add ext apps
For Each extA As Tools.ExternalTool In ExternalTools
For Each extA As Tools.ExternalTool In Runtime.ExternalTools
Dim nItem As New ToolStripMenuItem
nItem.Text = extA.DisplayName
nItem.Tag = extA

View File

@@ -1,503 +0,0 @@
Imports WeifenLuo.WinFormsUI.Docking
Imports mRemoteNG.App.Runtime
Namespace UI
Namespace Window
Public Class ExternalApps
Inherits UI.Window.Base
#Region "Form Init"
Friend WithEvents clmFilename As System.Windows.Forms.ColumnHeader
Friend WithEvents clmArguments As System.Windows.Forms.ColumnHeader
Friend WithEvents grpEditor As System.Windows.Forms.GroupBox
Friend WithEvents txtDisplayName As System.Windows.Forms.TextBox
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents txtArguments As System.Windows.Forms.TextBox
Friend WithEvents txtFilename As System.Windows.Forms.TextBox
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents btnBrowse As System.Windows.Forms.Button
Friend WithEvents clmDisplayName As System.Windows.Forms.ColumnHeader
Friend WithEvents cMenApps As System.Windows.Forms.ContextMenuStrip
Private components As System.ComponentModel.IContainer
Friend WithEvents cMenAppsAdd As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents dlgOpenFile As System.Windows.Forms.OpenFileDialog
Friend WithEvents cMenAppsRemove As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents cMenAppsSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents cMenAppsStart As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents clmWaitForExit As System.Windows.Forms.ColumnHeader
Friend WithEvents chkWaitForExit As System.Windows.Forms.CheckBox
Friend WithEvents Label4 As System.Windows.Forms.Label
Friend WithEvents chkTryIntegrate As System.Windows.Forms.CheckBox
Friend WithEvents clmTryIntegrate As System.Windows.Forms.ColumnHeader
Friend WithEvents lvApps As System.Windows.Forms.ListView
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ExternalApps))
Me.lvApps = New System.Windows.Forms.ListView
Me.clmDisplayName = New System.Windows.Forms.ColumnHeader
Me.clmFilename = New System.Windows.Forms.ColumnHeader
Me.clmArguments = New System.Windows.Forms.ColumnHeader
Me.clmWaitForExit = New System.Windows.Forms.ColumnHeader
Me.clmTryIntegrate = New System.Windows.Forms.ColumnHeader
Me.cMenApps = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.cMenAppsAdd = New System.Windows.Forms.ToolStripMenuItem
Me.cMenAppsRemove = New System.Windows.Forms.ToolStripMenuItem
Me.cMenAppsSep1 = New System.Windows.Forms.ToolStripSeparator
Me.cMenAppsStart = New System.Windows.Forms.ToolStripMenuItem
Me.grpEditor = New System.Windows.Forms.GroupBox
Me.chkTryIntegrate = New System.Windows.Forms.CheckBox
Me.Label4 = New System.Windows.Forms.Label
Me.chkWaitForExit = New System.Windows.Forms.CheckBox
Me.btnBrowse = New System.Windows.Forms.Button
Me.txtArguments = New System.Windows.Forms.TextBox
Me.txtFilename = New System.Windows.Forms.TextBox
Me.txtDisplayName = New System.Windows.Forms.TextBox
Me.Label3 = New System.Windows.Forms.Label
Me.Label2 = New System.Windows.Forms.Label
Me.Label1 = New System.Windows.Forms.Label
Me.dlgOpenFile = New System.Windows.Forms.OpenFileDialog
Me.cMenApps.SuspendLayout()
Me.grpEditor.SuspendLayout()
Me.SuspendLayout()
'
'lvApps
'
Me.lvApps.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.lvApps.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.lvApps.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.clmDisplayName, Me.clmFilename, Me.clmArguments, Me.clmWaitForExit, Me.clmTryIntegrate})
Me.lvApps.ContextMenuStrip = Me.cMenApps
Me.lvApps.FullRowSelect = True
Me.lvApps.GridLines = True
Me.lvApps.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable
Me.lvApps.HideSelection = False
Me.lvApps.Location = New System.Drawing.Point(0, 1)
Me.lvApps.Name = "lvApps"
Me.lvApps.Size = New System.Drawing.Size(684, 193)
Me.lvApps.Sorting = System.Windows.Forms.SortOrder.Ascending
Me.lvApps.TabIndex = 0
Me.lvApps.UseCompatibleStateImageBehavior = False
Me.lvApps.View = System.Windows.Forms.View.Details
'
'clmDisplayName
'
Me.clmDisplayName.Text = "Display Name"
Me.clmDisplayName.Width = 130
'
'clmFilename
'
Me.clmFilename.Text = "Filename"
Me.clmFilename.Width = 200
'
'clmArguments
'
Me.clmArguments.Text = "Arguments"
Me.clmArguments.Width = 160
'
'clmWaitForExit
'
Me.clmWaitForExit.Text = "Wait for exit"
Me.clmWaitForExit.Width = 75
'
'clmTryIntegrate
'
Me.clmTryIntegrate.Text = "Try To Integrate"
Me.clmTryIntegrate.Width = 95
'
'cMenApps
'
Me.cMenApps.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cMenAppsAdd, Me.cMenAppsRemove, Me.cMenAppsSep1, Me.cMenAppsStart})
Me.cMenApps.Name = "cMenApps"
Me.cMenApps.Size = New System.Drawing.Size(148, 76)
'
'cMenAppsAdd
'
Me.cMenAppsAdd.Image = Global.mRemoteNG.My.Resources.Resources.ExtApp_Add
Me.cMenAppsAdd.Name = "cMenAppsAdd"
Me.cMenAppsAdd.ShortcutKeys = CType((System.Windows.Forms.Keys.Shift Or System.Windows.Forms.Keys.F4), System.Windows.Forms.Keys)
Me.cMenAppsAdd.Size = New System.Drawing.Size(147, 22)
Me.cMenAppsAdd.Text = "Add"
'
'cMenAppsRemove
'
Me.cMenAppsRemove.Image = Global.mRemoteNG.My.Resources.Resources.ExtApp_Delete
Me.cMenAppsRemove.Name = "cMenAppsRemove"
Me.cMenAppsRemove.ShortcutKeys = System.Windows.Forms.Keys.Delete
Me.cMenAppsRemove.Size = New System.Drawing.Size(147, 22)
Me.cMenAppsRemove.Text = "Remove"
'
'cMenAppsSep1
'
Me.cMenAppsSep1.Name = "cMenAppsSep1"
Me.cMenAppsSep1.Size = New System.Drawing.Size(144, 6)
'
'cMenAppsStart
'
Me.cMenAppsStart.Image = Global.mRemoteNG.My.Resources.Resources.ExtApp_Start
Me.cMenAppsStart.Name = "cMenAppsStart"
Me.cMenAppsStart.Size = New System.Drawing.Size(147, 22)
Me.cMenAppsStart.Text = "Start"
'
'grpEditor
'
Me.grpEditor.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.grpEditor.Controls.Add(Me.chkTryIntegrate)
Me.grpEditor.Controls.Add(Me.Label4)
Me.grpEditor.Controls.Add(Me.chkWaitForExit)
Me.grpEditor.Controls.Add(Me.btnBrowse)
Me.grpEditor.Controls.Add(Me.txtArguments)
Me.grpEditor.Controls.Add(Me.txtFilename)
Me.grpEditor.Controls.Add(Me.txtDisplayName)
Me.grpEditor.Controls.Add(Me.Label3)
Me.grpEditor.Controls.Add(Me.Label2)
Me.grpEditor.Controls.Add(Me.Label1)
Me.grpEditor.Enabled = False
Me.grpEditor.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.grpEditor.Location = New System.Drawing.Point(1, 200)
Me.grpEditor.Name = "grpEditor"
Me.grpEditor.Size = New System.Drawing.Size(683, 123)
Me.grpEditor.TabIndex = 10
Me.grpEditor.TabStop = False
Me.grpEditor.Text = "Application Editor"
'
'chkTryIntegrate
'
Me.chkTryIntegrate.AutoSize = True
Me.chkTryIntegrate.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.chkTryIntegrate.Location = New System.Drawing.Point(243, 97)
Me.chkTryIntegrate.Name = "chkTryIntegrate"
Me.chkTryIntegrate.Size = New System.Drawing.Size(94, 17)
Me.chkTryIntegrate.TabIndex = 71
Me.chkTryIntegrate.Text = "Try to integrate"
Me.chkTryIntegrate.UseVisualStyleBackColor = True
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Location = New System.Drawing.Point(15, 98)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(46, 13)
Me.Label4.TabIndex = 62
Me.Label4.Text = "Options:"
'
'chkWaitForExit
'
Me.chkWaitForExit.AutoSize = True
Me.chkWaitForExit.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.chkWaitForExit.Location = New System.Drawing.Point(104, 96)
Me.chkWaitForExit.Name = "chkWaitForExit"
Me.chkWaitForExit.Size = New System.Drawing.Size(79, 17)
Me.chkWaitForExit.TabIndex = 70
Me.chkWaitForExit.Text = "Wait for exit"
Me.chkWaitForExit.UseVisualStyleBackColor = True
'
'btnBrowse
'
Me.btnBrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btnBrowse.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnBrowse.Location = New System.Drawing.Point(576, 40)
Me.btnBrowse.Name = "btnBrowse"
Me.btnBrowse.Size = New System.Drawing.Size(95, 23)
Me.btnBrowse.TabIndex = 40
Me.btnBrowse.Text = "Browse..."
Me.btnBrowse.UseVisualStyleBackColor = True
'
'txtArguments
'
Me.txtArguments.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.txtArguments.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txtArguments.Location = New System.Drawing.Point(104, 68)
Me.txtArguments.Name = "txtArguments"
Me.txtArguments.Size = New System.Drawing.Size(567, 20)
Me.txtArguments.TabIndex = 60
'
'txtFilename
'
Me.txtFilename.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.txtFilename.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txtFilename.Location = New System.Drawing.Point(104, 42)
Me.txtFilename.Name = "txtFilename"
Me.txtFilename.Size = New System.Drawing.Size(464, 20)
Me.txtFilename.TabIndex = 30
'
'txtDisplayName
'
Me.txtDisplayName.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.txtDisplayName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txtDisplayName.Location = New System.Drawing.Point(104, 16)
Me.txtDisplayName.Name = "txtDisplayName"
Me.txtDisplayName.Size = New System.Drawing.Size(567, 20)
Me.txtDisplayName.TabIndex = 10
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Location = New System.Drawing.Point(15, 70)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(60, 13)
Me.Label3.TabIndex = 50
Me.Label3.Text = "Arguments:"
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Location = New System.Drawing.Point(15, 44)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(52, 13)
Me.Label2.TabIndex = 20
Me.Label2.Text = "Filename:"
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(15, 19)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(75, 13)
Me.Label1.TabIndex = 0
Me.Label1.Text = "Display Name:"
'
'dlgOpenFile
'
Me.dlgOpenFile.Filter = "All Files (*.*)|*.*"
'
'ExternalApps
'
Me.ClientSize = New System.Drawing.Size(684, 323)
Me.Controls.Add(Me.grpEditor)
Me.Controls.Add(Me.lvApps)
Me.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "ExternalApps"
Me.TabText = "External Applications"
Me.Text = "External Applications"
Me.cMenApps.ResumeLayout(False)
Me.grpEditor.ResumeLayout(False)
Me.grpEditor.PerformLayout()
Me.ResumeLayout(False)
End Sub
#End Region
#Region "Public Methods"
Public Sub New(ByVal Panel As DockContent)
Me.WindowType = Type.ExternalApps
Me.DockPnl = Panel
Me.InitializeComponent()
End Sub
#End Region
#Region "Private Properties"
Private _SelApp As Tools.ExternalTool
#End Region
#Region "Private Methods"
Private Sub LoadApps()
Try
lvApps.Items.Clear()
For Each extA As Tools.ExternalTool In ExternalTools
Dim lvItem As New ListViewItem
lvItem.Text = extA.DisplayName
lvItem.SubItems.Add(extA.FileName)
lvItem.SubItems.Add(extA.Arguments)
lvItem.SubItems.Add(extA.WaitForExit)
lvItem.SubItems.Add(extA.TryIntegrate)
lvItem.Tag = extA
lvApps.Items.Add(lvItem)
If _SelApp IsNot Nothing Then
If extA Is _SelApp Then
lvItem.Selected = True
End If
End If
Next
RefreshToolbar()
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "LoadApps failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub GetAppProperties(ByVal SelApp As Tools.ExternalTool)
Try
If SelApp IsNot Nothing Then
txtDisplayName.Text = SelApp.DisplayName
txtFilename.Text = SelApp.FileName
txtArguments.Text = SelApp.Arguments
chkWaitForExit.Checked = SelApp.WaitForExit
chkTryIntegrate.Checked = SelApp.TryIntegrate
_SelApp = SelApp
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "GetAppProperties failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub SetAppProperties(ByVal SelApp As Tools.ExternalTool)
Try
If SelApp IsNot Nothing Then
SelApp.DisplayName = txtDisplayName.Text
SelApp.FileName = txtFilename.Text
SelApp.Arguments = txtArguments.Text
SelApp.WaitForExit = chkWaitForExit.Checked
SelApp.TryIntegrate = chkTryIntegrate.Checked
LoadApps()
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "SetAppProperties failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub AddNewApp()
Try
Dim nExtA As New Tools.ExternalTool("New Application")
ExternalTools.Add(nExtA)
LoadApps()
lvApps.SelectedItems.Clear()
For Each lvItem As ListViewItem In lvApps.Items
If lvItem.Tag Is nExtA Then
lvItem.Selected = True
txtDisplayName.Focus()
Exit For
End If
Next
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "AddNewApp failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub RemoveApps()
Try
Dim Prompt As String = ""
Select Case lvApps.SelectedItems.Count
Case Is < 1
Exit Sub
Case Is = 1
Prompt = String.Format(My.Language.strConfirmDeleteExternalTool, lvApps.SelectedItems(0).Text)
Case Is > 1
Prompt = String.Format(My.Language.strConfirmDeleteExternalToolMultiple, lvApps.SelectedItems.Count)
End Select
If MsgBox(Prompt, MsgBoxStyle.Question Or MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
For Each lvItem As ListViewItem In lvApps.SelectedItems
ExternalTools.Remove(lvItem.Tag)
lvItem.Tag = Nothing
lvItem.Remove()
Next
RefreshToolbar()
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "RemoveApps failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub StartApp()
Try
For Each lvItem As ListViewItem In lvApps.SelectedItems
TryCast(lvItem.Tag, mRemoteNG.Tools.ExternalTool).Start()
Next
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "StartApp failed (UI.Window.ExternalApps" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub RefreshToolbar()
frmMain.AddExternalToolsToToolBar()
App.Runtime.GetExtApps()
End Sub
#End Region
#Region "Form Stuff"
Private Sub ExternalApps_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ApplyLanguage()
LoadApps()
End Sub
Private Shared Sub ExternalApps_FormClosed(sender As System.Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
mRemoteNG.Config.Settings.Save.SaveExternalAppsToXML()
End Sub
Private Sub ApplyLanguage()
clmDisplayName.Text = My.Language.strColumnDisplayName
clmFilename.Text = My.Language.strColumnFilename
clmArguments.Text = My.Language.strColumnArguments
clmWaitForExit.Text = My.Language.strColumnWaitForExit
cMenAppsAdd.Text = My.Language.strMenuNewExternalTool
cMenAppsRemove.Text = My.Language.strMenuDeleteExternalTool
cMenAppsStart.Text = My.Language.strMenuLaunchExternalTool
grpEditor.Text = My.Language.strGroupboxExternalToolProperties
Label4.Text = My.Language.strLabelOptions
chkWaitForExit.Text = My.Language.strCheckboxWaitForExit
chkTryIntegrate.Text = My.Language.strTryIntegrate
btnBrowse.Text = My.Language.strButtonBrowse
Label3.Text = My.Language.strLabelArguments
Label2.Text = My.Language.strLabelFilename
Label1.Text = My.Language.strLabelDisplayName
dlgOpenFile.Filter = My.Language.strFilterApplication & "|*.exe|" & My.Language.strFilterAll & "|*.*"
TabText = My.Language.strMenuExternalTools
Text = My.Language.strMenuExternalTools
End Sub
Private Sub lvApps_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles lvApps.DoubleClick
If lvApps.SelectedItems.Count > 0 Then
StartApp()
End If
End Sub
Private Sub lvApps_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lvApps.SelectedIndexChanged
If lvApps.SelectedItems.Count = 1 Then
Me.grpEditor.Enabled = True
GetAppProperties(lvApps.SelectedItems(0).Tag)
Else
Me.grpEditor.Enabled = False
End If
End Sub
Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
If dlgOpenFile.ShowDialog = System.Windows.Forms.DialogResult.OK Then
txtFilename.Text = dlgOpenFile.FileName
End If
End Sub
Private Sub ApplicationEditorField_ChangedOrLostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDisplayName.LostFocus, txtArguments.LostFocus, txtFilename.LostFocus, btnBrowse.LostFocus, chkWaitForExit.LostFocus, chkWaitForExit.Click, chkTryIntegrate.Click
SetAppProperties(_SelApp)
End Sub
Private Sub chkTryIntegrate_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkTryIntegrate.CheckedChanged
If chkTryIntegrate.Checked Then
chkWaitForExit.Checked = False
chkWaitForExit.Enabled = False
Else
chkWaitForExit.Enabled = True
End If
End Sub
#End Region
#Region "Menu"
Private Sub cMenAppsAddApp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cMenAppsAdd.Click
AddNewApp()
End Sub
Private Sub cMenAppsRemove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cMenAppsRemove.Click
RemoveApps()
End Sub
Private Sub cMenAppsStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cMenAppsStart.Click
StartApp()
End Sub
#End Region
End Class
End Namespace
End Namespace

View File

@@ -0,0 +1,356 @@
Namespace UI
Namespace Window
Partial Public Class ExternalTools
Inherits Base
#Region " Windows Form Designer generated code "
Friend WithEvents FilenameColumnHeader As System.Windows.Forms.ColumnHeader
Friend WithEvents ArgumentsColumnHeader As System.Windows.Forms.ColumnHeader
Friend WithEvents PropertiesGroupBox As System.Windows.Forms.GroupBox
Friend WithEvents DisplayNameTextBox As System.Windows.Forms.TextBox
Friend WithEvents DisplayNameLabel As System.Windows.Forms.Label
Friend WithEvents ArgumentsCheckBox As System.Windows.Forms.TextBox
Friend WithEvents FilenameTextBox As System.Windows.Forms.TextBox
Friend WithEvents ArgumentsLabel As System.Windows.Forms.Label
Friend WithEvents FilenameLabel As System.Windows.Forms.Label
Friend WithEvents BrowseButton As System.Windows.Forms.Button
Friend WithEvents DisplayNameColumnHeader As System.Windows.Forms.ColumnHeader
Friend WithEvents ToolsContextMenuStrip As System.Windows.Forms.ContextMenuStrip
Private components As System.ComponentModel.IContainer
Friend WithEvents NewToolMenuItem As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents DeleteToolMenuItem As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents LaunchToolMenuItem As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents WaitForExitColumnHeader As System.Windows.Forms.ColumnHeader
Friend WithEvents WaitForExitCheckBox As System.Windows.Forms.CheckBox
Friend WithEvents OptionsLabel As System.Windows.Forms.Label
Friend WithEvents TryToIntegrateCheckBox As System.Windows.Forms.CheckBox
Friend WithEvents TryToIntegrateColumnHeader As System.Windows.Forms.ColumnHeader
Friend WithEvents ToolsListView As System.Windows.Forms.ListView
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ExternalTools))
Me.ToolsListView = New System.Windows.Forms.ListView()
Me.DisplayNameColumnHeader = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.FilenameColumnHeader = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.ArgumentsColumnHeader = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.WaitForExitColumnHeader = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.TryToIntegrateColumnHeader = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.ToolsContextMenuStrip = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.NewToolMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.DeleteToolMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator()
Me.LaunchToolMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.PropertiesGroupBox = New System.Windows.Forms.GroupBox()
Me.TryToIntegrateCheckBox = New System.Windows.Forms.CheckBox()
Me.OptionsLabel = New System.Windows.Forms.Label()
Me.WaitForExitCheckBox = New System.Windows.Forms.CheckBox()
Me.BrowseButton = New System.Windows.Forms.Button()
Me.ArgumentsCheckBox = New System.Windows.Forms.TextBox()
Me.FilenameTextBox = New System.Windows.Forms.TextBox()
Me.DisplayNameTextBox = New System.Windows.Forms.TextBox()
Me.ArgumentsLabel = New System.Windows.Forms.Label()
Me.FilenameLabel = New System.Windows.Forms.Label()
Me.DisplayNameLabel = New System.Windows.Forms.Label()
Me.ToolStripContainer = New System.Windows.Forms.ToolStripContainer()
Me.ToolStrip = New System.Windows.Forms.ToolStrip()
Me.NewToolToolstripButton = New System.Windows.Forms.ToolStripButton()
Me.DeleteToolToolstripButton = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator()
Me.LaunchToolToolstripButton = New System.Windows.Forms.ToolStripButton()
Me.ToolsContextMenuStrip.SuspendLayout()
Me.PropertiesGroupBox.SuspendLayout()
Me.ToolStripContainer.ContentPanel.SuspendLayout()
Me.ToolStripContainer.TopToolStripPanel.SuspendLayout()
Me.ToolStripContainer.SuspendLayout()
Me.ToolStrip.SuspendLayout()
Me.SuspendLayout()
'
'ToolsListView
'
Me.ToolsListView.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.ToolsListView.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.ToolsListView.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.DisplayNameColumnHeader, Me.FilenameColumnHeader, Me.ArgumentsColumnHeader, Me.WaitForExitColumnHeader, Me.TryToIntegrateColumnHeader})
Me.ToolsListView.ContextMenuStrip = Me.ToolsContextMenuStrip
Me.ToolsListView.FullRowSelect = True
Me.ToolsListView.GridLines = True
Me.ToolsListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable
Me.ToolsListView.HideSelection = False
Me.ToolsListView.Location = New System.Drawing.Point(0, 0)
Me.ToolsListView.Name = "ToolsListView"
Me.ToolsListView.Size = New System.Drawing.Size(684, 157)
Me.ToolsListView.Sorting = System.Windows.Forms.SortOrder.Ascending
Me.ToolsListView.TabIndex = 0
Me.ToolsListView.UseCompatibleStateImageBehavior = False
Me.ToolsListView.View = System.Windows.Forms.View.Details
'
'DisplayNameColumnHeader
'
Me.DisplayNameColumnHeader.Text = "Display Name"
Me.DisplayNameColumnHeader.Width = 130
'
'FilenameColumnHeader
'
Me.FilenameColumnHeader.Text = "Filename"
Me.FilenameColumnHeader.Width = 200
'
'ArgumentsColumnHeader
'
Me.ArgumentsColumnHeader.Text = "Arguments"
Me.ArgumentsColumnHeader.Width = 160
'
'WaitForExitColumnHeader
'
Me.WaitForExitColumnHeader.Text = "Wait for exit"
Me.WaitForExitColumnHeader.Width = 75
'
'TryToIntegrateColumnHeader
'
Me.TryToIntegrateColumnHeader.Text = "Try To Integrate"
Me.TryToIntegrateColumnHeader.Width = 95
'
'ToolsContextMenuStrip
'
Me.ToolsContextMenuStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NewToolMenuItem, Me.DeleteToolMenuItem, Me.ToolStripSeparator1, Me.LaunchToolMenuItem})
Me.ToolsContextMenuStrip.Name = "cMenApps"
Me.ToolsContextMenuStrip.Size = New System.Drawing.Size(221, 76)
'
'NewToolMenuItem
'
Me.NewToolMenuItem.Image = Global.mRemoteNG.My.Resources.Resources.ExtApp_Add
Me.NewToolMenuItem.Name = "NewToolMenuItem"
Me.NewToolMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Shift Or System.Windows.Forms.Keys.F4), System.Windows.Forms.Keys)
Me.NewToolMenuItem.Size = New System.Drawing.Size(220, 22)
Me.NewToolMenuItem.Text = "New External Tool"
'
'DeleteToolMenuItem
'
Me.DeleteToolMenuItem.Image = Global.mRemoteNG.My.Resources.Resources.ExtApp_Delete
Me.DeleteToolMenuItem.Name = "DeleteToolMenuItem"
Me.DeleteToolMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Delete
Me.DeleteToolMenuItem.Size = New System.Drawing.Size(220, 22)
Me.DeleteToolMenuItem.Text = "Delete External Tool..."
'
'ToolStripSeparator1
'
Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
Me.ToolStripSeparator1.Size = New System.Drawing.Size(217, 6)
'
'LaunchToolMenuItem
'
Me.LaunchToolMenuItem.Image = Global.mRemoteNG.My.Resources.Resources.ExtApp_Start
Me.LaunchToolMenuItem.Name = "LaunchToolMenuItem"
Me.LaunchToolMenuItem.Size = New System.Drawing.Size(220, 22)
Me.LaunchToolMenuItem.Text = "Launch External Tool"
'
'PropertiesGroupBox
'
Me.PropertiesGroupBox.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.PropertiesGroupBox.Controls.Add(Me.TryToIntegrateCheckBox)
Me.PropertiesGroupBox.Controls.Add(Me.OptionsLabel)
Me.PropertiesGroupBox.Controls.Add(Me.WaitForExitCheckBox)
Me.PropertiesGroupBox.Controls.Add(Me.BrowseButton)
Me.PropertiesGroupBox.Controls.Add(Me.ArgumentsCheckBox)
Me.PropertiesGroupBox.Controls.Add(Me.FilenameTextBox)
Me.PropertiesGroupBox.Controls.Add(Me.DisplayNameTextBox)
Me.PropertiesGroupBox.Controls.Add(Me.ArgumentsLabel)
Me.PropertiesGroupBox.Controls.Add(Me.FilenameLabel)
Me.PropertiesGroupBox.Controls.Add(Me.DisplayNameLabel)
Me.PropertiesGroupBox.Enabled = False
Me.PropertiesGroupBox.Location = New System.Drawing.Point(3, 163)
Me.PropertiesGroupBox.Name = "PropertiesGroupBox"
Me.PropertiesGroupBox.Size = New System.Drawing.Size(678, 132)
Me.PropertiesGroupBox.TabIndex = 1
Me.PropertiesGroupBox.TabStop = False
Me.PropertiesGroupBox.Text = "External Tool Properties"
'
'TryToIntegrateCheckBox
'
Me.TryToIntegrateCheckBox.AutoSize = True
Me.TryToIntegrateCheckBox.Location = New System.Drawing.Point(280, 106)
Me.TryToIntegrateCheckBox.Name = "TryToIntegrateCheckBox"
Me.TryToIntegrateCheckBox.Size = New System.Drawing.Size(97, 17)
Me.TryToIntegrateCheckBox.TabIndex = 9
Me.TryToIntegrateCheckBox.Text = "Try to integrate"
Me.TryToIntegrateCheckBox.UseVisualStyleBackColor = True
'
'OptionsLabel
'
Me.OptionsLabel.AutoSize = True
Me.OptionsLabel.Location = New System.Drawing.Point(58, 107)
Me.OptionsLabel.Name = "OptionsLabel"
Me.OptionsLabel.Size = New System.Drawing.Size(46, 13)
Me.OptionsLabel.TabIndex = 7
Me.OptionsLabel.Text = "Options:"
Me.OptionsLabel.TextAlign = System.Drawing.ContentAlignment.TopRight
'
'WaitForExitCheckBox
'
Me.WaitForExitCheckBox.AutoSize = True
Me.WaitForExitCheckBox.Location = New System.Drawing.Point(110, 106)
Me.WaitForExitCheckBox.Name = "WaitForExitCheckBox"
Me.WaitForExitCheckBox.Size = New System.Drawing.Size(82, 17)
Me.WaitForExitCheckBox.TabIndex = 8
Me.WaitForExitCheckBox.Text = "Wait for exit"
Me.WaitForExitCheckBox.UseVisualStyleBackColor = True
'
'BrowseButton
'
Me.BrowseButton.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.BrowseButton.Location = New System.Drawing.Point(574, 45)
Me.BrowseButton.Name = "BrowseButton"
Me.BrowseButton.Size = New System.Drawing.Size(95, 23)
Me.BrowseButton.TabIndex = 4
Me.BrowseButton.Text = "Browse..."
Me.BrowseButton.UseVisualStyleBackColor = True
'
'ArgumentsCheckBox
'
Me.ArgumentsCheckBox.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.ArgumentsCheckBox.Location = New System.Drawing.Point(110, 76)
Me.ArgumentsCheckBox.Name = "ArgumentsCheckBox"
Me.ArgumentsCheckBox.Size = New System.Drawing.Size(559, 20)
Me.ArgumentsCheckBox.TabIndex = 6
'
'FilenameTextBox
'
Me.FilenameTextBox.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.FilenameTextBox.Location = New System.Drawing.Point(110, 47)
Me.FilenameTextBox.Name = "FilenameTextBox"
Me.FilenameTextBox.Size = New System.Drawing.Size(458, 20)
Me.FilenameTextBox.TabIndex = 3
'
'DisplayNameTextBox
'
Me.DisplayNameTextBox.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.DisplayNameTextBox.Location = New System.Drawing.Point(110, 19)
Me.DisplayNameTextBox.Name = "DisplayNameTextBox"
Me.DisplayNameTextBox.Size = New System.Drawing.Size(559, 20)
Me.DisplayNameTextBox.TabIndex = 1
'
'ArgumentsLabel
'
Me.ArgumentsLabel.AutoSize = True
Me.ArgumentsLabel.Location = New System.Drawing.Point(44, 79)
Me.ArgumentsLabel.Name = "ArgumentsLabel"
Me.ArgumentsLabel.Size = New System.Drawing.Size(60, 13)
Me.ArgumentsLabel.TabIndex = 5
Me.ArgumentsLabel.Text = "Arguments:"
Me.ArgumentsLabel.TextAlign = System.Drawing.ContentAlignment.TopRight
'
'FilenameLabel
'
Me.FilenameLabel.AutoSize = True
Me.FilenameLabel.Location = New System.Drawing.Point(52, 50)
Me.FilenameLabel.Name = "FilenameLabel"
Me.FilenameLabel.Size = New System.Drawing.Size(52, 13)
Me.FilenameLabel.TabIndex = 2
Me.FilenameLabel.Text = "Filename:"
Me.FilenameLabel.TextAlign = System.Drawing.ContentAlignment.TopRight
'
'DisplayNameLabel
'
Me.DisplayNameLabel.AutoSize = True
Me.DisplayNameLabel.Location = New System.Drawing.Point(29, 22)
Me.DisplayNameLabel.Name = "DisplayNameLabel"
Me.DisplayNameLabel.Size = New System.Drawing.Size(75, 13)
Me.DisplayNameLabel.TabIndex = 0
Me.DisplayNameLabel.Text = "Display Name:"
Me.DisplayNameLabel.TextAlign = System.Drawing.ContentAlignment.TopRight
'
'ToolStripContainer
'
'
'ToolStripContainer.ContentPanel
'
Me.ToolStripContainer.ContentPanel.Controls.Add(Me.PropertiesGroupBox)
Me.ToolStripContainer.ContentPanel.Controls.Add(Me.ToolsListView)
Me.ToolStripContainer.ContentPanel.Size = New System.Drawing.Size(684, 298)
Me.ToolStripContainer.Dock = System.Windows.Forms.DockStyle.Fill
Me.ToolStripContainer.Location = New System.Drawing.Point(0, 0)
Me.ToolStripContainer.Name = "ToolStripContainer"
Me.ToolStripContainer.Size = New System.Drawing.Size(684, 323)
Me.ToolStripContainer.TabIndex = 0
Me.ToolStripContainer.Text = "ToolStripContainer"
'
'ToolStripContainer.TopToolStripPanel
'
Me.ToolStripContainer.TopToolStripPanel.Controls.Add(Me.ToolStrip)
'
'ToolStrip
'
Me.ToolStrip.Dock = System.Windows.Forms.DockStyle.None
Me.ToolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
Me.ToolStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NewToolToolstripButton, Me.DeleteToolToolstripButton, Me.ToolStripSeparator2, Me.LaunchToolToolstripButton})
Me.ToolStrip.Location = New System.Drawing.Point(3, 0)
Me.ToolStrip.Name = "ToolStrip"
Me.ToolStrip.Size = New System.Drawing.Size(186, 25)
Me.ToolStrip.TabIndex = 0
'
'NewToolToolstripButton
'
Me.NewToolToolstripButton.Image = Global.mRemoteNG.My.Resources.Resources.ExtApp_Add
Me.NewToolToolstripButton.ImageTransparentColor = System.Drawing.Color.Magenta
Me.NewToolToolstripButton.Name = "NewToolToolstripButton"
Me.NewToolToolstripButton.Size = New System.Drawing.Size(51, 22)
Me.NewToolToolstripButton.Text = "New"
'
'DeleteToolToolstripButton
'
Me.DeleteToolToolstripButton.Image = Global.mRemoteNG.My.Resources.Resources.ExtApp_Delete
Me.DeleteToolToolstripButton.ImageTransparentColor = System.Drawing.Color.Magenta
Me.DeleteToolToolstripButton.Name = "DeleteToolToolstripButton"
Me.DeleteToolToolstripButton.Size = New System.Drawing.Size(60, 22)
Me.DeleteToolToolstripButton.Text = "Delete"
'
'ToolStripSeparator2
'
Me.ToolStripSeparator2.Name = "ToolStripSeparator2"
Me.ToolStripSeparator2.Size = New System.Drawing.Size(6, 25)
'
'LaunchToolToolstripButton
'
Me.LaunchToolToolstripButton.Image = Global.mRemoteNG.My.Resources.Resources.ExtApp_Start
Me.LaunchToolToolstripButton.ImageTransparentColor = System.Drawing.Color.Magenta
Me.LaunchToolToolstripButton.Name = "LaunchToolToolstripButton"
Me.LaunchToolToolstripButton.Size = New System.Drawing.Size(66, 22)
Me.LaunchToolToolstripButton.Text = "Launch"
'
'ExternalTools
'
Me.ClientSize = New System.Drawing.Size(684, 323)
Me.Controls.Add(Me.ToolStripContainer)
Me.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "ExternalTools"
Me.TabText = "External Applications"
Me.Text = "External Tools"
Me.ToolsContextMenuStrip.ResumeLayout(False)
Me.PropertiesGroupBox.ResumeLayout(False)
Me.PropertiesGroupBox.PerformLayout()
Me.ToolStripContainer.ContentPanel.ResumeLayout(False)
Me.ToolStripContainer.TopToolStripPanel.ResumeLayout(False)
Me.ToolStripContainer.TopToolStripPanel.PerformLayout()
Me.ToolStripContainer.ResumeLayout(False)
Me.ToolStripContainer.PerformLayout()
Me.ToolStrip.ResumeLayout(False)
Me.ToolStrip.PerformLayout()
Me.ResumeLayout(False)
End Sub
Friend WithEvents ToolStripContainer As System.Windows.Forms.ToolStripContainer
Friend WithEvents ToolStrip As System.Windows.Forms.ToolStrip
Friend WithEvents NewToolToolstripButton As System.Windows.Forms.ToolStripButton
Friend WithEvents DeleteToolToolstripButton As System.Windows.Forms.ToolStripButton
Friend WithEvents ToolStripSeparator2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents LaunchToolToolstripButton As System.Windows.Forms.ToolStripButton
#End Region
End Class
End Namespace
End Namespace

View File

@@ -117,11 +117,11 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="cMenApps.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<metadata name="ToolsContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="dlgOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>119, 17</value>
<metadata name="ToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>197, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>54</value>

View File

@@ -0,0 +1,224 @@
Imports mRemoteNG.App
Imports WeifenLuo.WinFormsUI.Docking
Imports mRemoteNG.App.Runtime
Imports mRemoteNG.My
Namespace UI
Namespace Window
Public Class ExternalTools
Inherits Base
#Region "Constructors"
Public Sub New(ByVal panel As DockContent)
InitializeComponent()
WindowType = Type.ExternalApps
DockPnl = panel
End Sub
#End Region
#Region "Private Fields"
Private _selectedTool As Tools.ExternalTool = Nothing
#End Region
#Region "Private Methods"
#Region "Event Handlers"
Private Sub ExternalTools_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
ApplyLanguage()
UpdateToolsListView()
End Sub
Private Shared Sub ExternalTools_FormClosed(sender As System.Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
mRemoteNG.Config.Settings.Save.SaveExternalAppsToXML()
End Sub
Private Sub NewTool_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles NewToolMenuItem.Click, NewToolToolstripButton.Click
Try
Dim externalTool As New Tools.ExternalTool(Language.strExternalToolDefaultName)
Runtime.ExternalTools.Add(externalTool)
UpdateToolsListView(externalTool)
DisplayNameTextBox.Focus()
Catch ex As Exception
MessageCollector.AddExceptionMessage("UI.Window.ExternalTools.NewTool_Click() failed.", ex, , True)
End Try
End Sub
Private Sub DeleteTool_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles DeleteToolMenuItem.Click, DeleteToolToolstripButton.Click
Try
Dim message As String
Select Case ToolsListView.SelectedItems.Count
Case Is = 1
message = String.Format(Language.strConfirmDeleteExternalTool, ToolsListView.SelectedItems(0).Text)
Case Is > 1
message = String.Format(Language.strConfirmDeleteExternalToolMultiple, ToolsListView.SelectedItems.Count)
Case Else
Return
End Select
If Not MsgBox(message, MsgBoxStyle.Question Or MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then Return
For Each listViewItem As ListViewItem In ToolsListView.SelectedItems
Dim externalTool As Tools.ExternalTool = TryCast(listViewItem.Tag, Tools.ExternalTool)
If externalTool Is Nothing Then Continue For
Runtime.ExternalTools.Remove(listViewItem.Tag)
listViewItem.Remove()
Next
Catch ex As Exception
MessageCollector.AddExceptionMessage("UI.Window.ExternalTools.DeleteTool_Click() failed.", ex, , True)
End Try
End Sub
Private Sub LaunchTool_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles LaunchToolMenuItem.Click, LaunchToolToolstripButton.Click
LaunchTool()
End Sub
Private Sub ToolsListView_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles ToolsListView.SelectedIndexChanged
Try
If ToolsListView.SelectedItems.Count = 1 Then
PropertiesGroupBox.Enabled = True
_selectedTool = TryCast(ToolsListView.SelectedItems(0).Tag, Tools.ExternalTool)
If _selectedTool Is Nothing Then Return
With _selectedTool
DisplayNameTextBox.Text = .DisplayName
FilenameTextBox.Text = .FileName
ArgumentsCheckBox.Text = .Arguments
WaitForExitCheckBox.Checked = .WaitForExit
TryToIntegrateCheckBox.Checked = .TryIntegrate
End With
Else
PropertiesGroupBox.Enabled = False
End If
Catch ex As Exception
MessageCollector.AddExceptionMessage("UI.Window.ExternalTools.ToolsListView_SelectedIndexChanged() failed.", ex, , True)
End Try
End Sub
Private Sub ToolsListView_DoubleClick(ByVal sender As Object, ByVal e As EventArgs) Handles ToolsListView.DoubleClick
If ToolsListView.SelectedItems.Count > 0 Then LaunchTool()
End Sub
Private Sub PropertyControl_ChangedOrLostFocus(ByVal sender As Object, ByVal e As EventArgs) Handles DisplayNameTextBox.LostFocus, ArgumentsCheckBox.LostFocus, FilenameTextBox.LostFocus, BrowseButton.LostFocus, WaitForExitCheckBox.LostFocus, WaitForExitCheckBox.Click, TryToIntegrateCheckBox.Click
If _selectedTool Is Nothing Then Return
Try
With _selectedTool
.DisplayName = DisplayNameTextBox.Text
.FileName = FilenameTextBox.Text
.Arguments = ArgumentsCheckBox.Text
.WaitForExit = WaitForExitCheckBox.Checked
.TryIntegrate = TryToIntegrateCheckBox.Checked
End With
UpdateToolsListView()
Catch ex As Exception
MessageCollector.AddExceptionMessage("UI.Window.ExternalTools.PropertyControl_ChangedOrLostFocus() failed.", ex, , True)
End Try
End Sub
Private Sub BrowseButton_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles BrowseButton.Click
Try
Using browseDialog As New OpenFileDialog()
With browseDialog
.Filter = String.Join("|", New String() {Language.strFilterApplication, "*.exe", Language.strFilterAll, "*.*"})
If .ShowDialog = DialogResult.OK Then FilenameTextBox.Text = .FileName
End With
End Using
Catch ex As Exception
MessageCollector.AddExceptionMessage("UI.Window.ExternalTools.BrowseButton_Click() failed.", ex, , True)
End Try
End Sub
Private Sub TryToIntegrateCheckBox_CheckedChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles TryToIntegrateCheckBox.CheckedChanged
If TryToIntegrateCheckBox.Checked Then
WaitForExitCheckBox.Enabled = False
WaitForExitCheckBox.Checked = False
Else
WaitForExitCheckBox.Enabled = True
End If
End Sub
#End Region
Private Sub ApplyLanguage()
Text = Language.strMenuExternalTools
TabText = Language.strMenuExternalTools
NewToolToolstripButton.Text = Language.strButtonNew
DeleteToolToolstripButton.Text = Language.strOptionsKeyboardButtonDelete
LaunchToolToolstripButton.Text = Language.strButtonLaunch
DisplayNameColumnHeader.Text = Language.strColumnDisplayName
FilenameColumnHeader.Text = Language.strColumnFilename
ArgumentsColumnHeader.Text = Language.strColumnArguments
WaitForExitColumnHeader.Text = Language.strColumnWaitForExit
TryToIntegrateCheckBox.Text = Language.strTryIntegrate
PropertiesGroupBox.Text = Language.strGroupboxExternalToolProperties
DisplayNameLabel.Text = Language.strLabelDisplayName
FilenameLabel.Text = Language.strLabelFilename
ArgumentsLabel.Text = Language.strLabelArguments
OptionsLabel.Text = Language.strLabelOptions
WaitForExitCheckBox.Text = Language.strCheckboxWaitForExit
BrowseButton.Text = Language.strButtonBrowse
NewToolMenuItem.Text = Language.strMenuNewExternalTool
DeleteToolMenuItem.Text = Language.strMenuDeleteExternalTool
LaunchToolMenuItem.Text = Language.strMenuLaunchExternalTool
End Sub
Private Sub UpdateToolsListView(Optional ByVal selectTool As Tools.ExternalTool = Nothing)
Try
Dim selectedTools As New List(Of Tools.ExternalTool)
If selectTool Is Nothing Then
For Each listViewItem As ListViewItem In ToolsListView.SelectedItems
Dim externalTool As Tools.ExternalTool = TryCast(listViewItem.Tag, Tools.ExternalTool)
If externalTool IsNot Nothing Then selectedTools.Add(externalTool)
Next
Else
selectedTools.Add(selectTool)
End If
ToolsListView.BeginUpdate()
ToolsListView.Items.Clear()
For Each externalTool As Tools.ExternalTool In Runtime.ExternalTools
Dim listViewItem As New ListViewItem
With listViewItem
.Text = externalTool.DisplayName
.SubItems.Add(externalTool.FileName)
.SubItems.Add(externalTool.Arguments)
.SubItems.Add(externalTool.WaitForExit)
.SubItems.Add(externalTool.TryIntegrate)
.Tag = externalTool
End With
ToolsListView.Items.Add(listViewItem)
If selectedTools.Contains(externalTool) Then listViewItem.Selected = True
Next
ToolsListView.EndUpdate()
frmMain.AddExternalToolsToToolBar()
Catch ex As Exception
MessageCollector.AddExceptionMessage("UI.Window.ExternalTools.PopulateToolsListView()", ex, , True)
End Try
End Sub
Private Sub LaunchTool()
Try
For Each listViewItem As ListViewItem In ToolsListView.SelectedItems
Dim externalTool As Tools.ExternalTool = TryCast(listViewItem.Tag, Tools.ExternalTool)
If externalTool Is Nothing Then Continue For
externalTool.Start()
Next
Catch ex As Exception
MessageCollector.AddExceptionMessage("UI.Window.ExternalTools.LaunchTool() failed.", ex, , True)
End Try
End Sub
#End Region
End Class
End Namespace
End Namespace

View File

@@ -300,7 +300,7 @@
'
'cMenTreeToolsExternalApps
'
Me.cMenTreeToolsExternalApps.Image = Global.mRemoteNG.My.Resources.Resources.application_link
Me.cMenTreeToolsExternalApps.Image = Global.mRemoteNG.My.Resources.Resources.ExtApp
Me.cMenTreeToolsExternalApps.Name = "cMenTreeToolsExternalApps"
Me.cMenTreeToolsExternalApps.Size = New System.Drawing.Size(186, 22)
Me.cMenTreeToolsExternalApps.Text = "External Applications"

View File

@@ -1,3 +1,4 @@
Imports mRemoteNG.App
Imports mRemoteNG.My
Imports WeifenLuo.WinFormsUI.Docking
Imports mRemoteNG.App.Runtime
@@ -758,7 +759,7 @@ Namespace UI
cMenTreeToolsExternalApps.DropDownItems.Clear()
'add ext apps
For Each extA As Tools.ExternalTool In ExternalTools
For Each extA As Tools.ExternalTool In Runtime.ExternalTools
Dim nItem As New ToolStripMenuItem
nItem.Text = extA.DisplayName
nItem.Tag = extA

View File

@@ -403,7 +403,10 @@
<Compile Include="UI\UI.Window.Export.Designer.vb">
<DependentUpon>UI.Window.Export.vb</DependentUpon>
</Compile>
<Compile Include="UI\UI.Window.ExternalApps.vb">
<Compile Include="UI\UI.Window.ExternalTools.Designer.vb">
<DependentUpon>UI.Window.ExternalTools.vb</DependentUpon>
</Compile>
<Compile Include="UI\UI.Window.ExternalTools.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="UI\UI.Window.Help.vb">
@@ -575,8 +578,8 @@
<DependentUpon>UI.Window.ErrorsAndInfos.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="UI\UI.Window.ExternalApps.resx">
<DependentUpon>UI.Window.ExternalApps.vb</DependentUpon>
<EmbeddedResource Include="UI\UI.Window.ExternalTools.resx">
<DependentUpon>UI.Window.ExternalTools.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="UI\UI.Window.Help.resx">
@@ -1001,7 +1004,6 @@
<Content Include="Icons\Workstation.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<None Include="Resources\Images_FamFamFam\application_link.png" />
<None Include="Resources\Images_FamFamFam\application_side_tree.png" />
<None Include="Resources\Images_FamFamFam\arrow_out.png" />
<None Include="Resources\Images_FamFamFam\cog_error.png" />