Skip to content

Commit f5b7150

Browse files
committed
Add Execute functionality to File Context Menu
Save temporary opened SQL Script
1 parent fde9bea commit f5b7150

File tree

5 files changed

+51
-2
lines changed

5 files changed

+51
-2
lines changed

src/SQLScriptsExplorer.Addin/Controls/FileExplorerTreeView.xaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,12 @@
4646
<Image Source="../Resources/Images/OpenFile.png"/>
4747
</MenuItem.Icon>
4848
</MenuItem>
49-
<MenuItem Header="Edit" Click="mnuEditFile_Click"/>
49+
<MenuItem Header="Edit" Click="mnuEditFile_Click" />
50+
<MenuItem Header="Execute" Click="mnuExecuteFile_Click">
51+
<MenuItem.Icon>
52+
<Image Source="../Resources/Images/Run.png"/>
53+
</MenuItem.Icon>
54+
</MenuItem>
5055
<Separator/>
5156
<MenuItem Header="Open Containing Folder" Click="mnuOpenFolder_Click">
5257
<MenuItem.Icon>

src/SQLScriptsExplorer.Addin/Controls/FileExplorerTreeView.xaml.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,23 @@ private void mnuEditFile_Click(object sender, RoutedEventArgs e)
169169
}
170170
}
171171

172+
private void mnuExecuteFile_Click(object sender, RoutedEventArgs e)
173+
{
174+
var treeNode = TreeViewMain.SelectedItem as TreeNode;
175+
176+
if (treeNode != null && treeNode.Type == TreeNodeType.File && !isEditMode)
177+
{
178+
try
179+
{
180+
DocumentManager.ExecuteTemplate(treeNode.FileName, treeNode.FileFullPath);
181+
}
182+
catch (Exception ex)
183+
{
184+
MessageBox.Show(ex.Message);
185+
}
186+
}
187+
}
188+
172189
private void mnuRename_Click(object sender, RoutedEventArgs e)
173190
{
174191
// Get the TextBox control as defined in TreeView.ItemTemplate

src/SQLScriptsExplorer.Addin/Infrastructure/DocumentManager.cs

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@ public static void OpenTemplate(string fileName, string fileFullPath)
2424

2525
DTE dte = Package.GetGlobalService(typeof(DTE)) as DTE;
2626
var fileDocument = dte.ItemOperations.NewFile(@"General\Text File", fileName).Document;
27-
27+
2828
TextSelection textSelection = fileDocument.Selection as TextSelection;
2929
textSelection.SelectAll();
3030
textSelection.Text = string.Empty;
3131
textSelection.Insert(fileContent);
3232
textSelection.StartOfDocument();
33+
34+
fileDocument.Save();
3335
}
3436
else
3537
{
@@ -64,6 +66,30 @@ public static void EditTemplate(string fileName, string fileFullPath)
6466
}
6567
}
6668

69+
public static void ExecuteTemplate(string fileName, string fileFullPath)
70+
{
71+
string CMD_QUERY_EXECUTE = "Query.Execute";
72+
73+
try
74+
{
75+
ThreadHelper.ThrowIfNotOnUIThread();
76+
77+
OpenTemplate(fileName, fileFullPath);
78+
79+
DTE dte = Package.GetGlobalService(typeof(DTE)) as DTE;
80+
81+
// Ensure the document we are executing is the document we have opened by checking its name
82+
if (dte.ActiveDocument != null && dte.ActiveDocument.ProjectItem.Name.Equals(fileName))
83+
{
84+
dte.ExecuteCommand(CMD_QUERY_EXECUTE);
85+
}
86+
}
87+
catch (Exception ex)
88+
{
89+
throw ex;
90+
}
91+
}
92+
6793
public static void FormatSelection()
6894
{
6995
try
233 Bytes
Loading

src/SQLScriptsExplorer.Addin/SQLScriptsExplorer.Addin.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@
241241
<Resource Include="Resources\Images\Settings.png" />
242242
<Resource Include="Resources\Images\Success.png" />
243243
<Resource Include="Resources\Images\SQLScriptsManager.png" />
244+
<Resource Include="Resources\Images\Run.png" />
244245
<Content Include="Resources\Images\ToolbarCommand.png" />
245246
<Content Include="Resources\Images\ToolbarCommandPackage.ico" />
246247
<Content Include="Resources\Images\ToolWindow1Package.ico" />

0 commit comments

Comments
 (0)