Skip to content

Add button icons and no-parameters message #14

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 51 additions & 18 deletions SqlcmdGuiApp/MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,12 @@
</Grid.ColumnDefinitions>

<TextBox x:Name="FilePathTextBox" Grid.Column="0" Grid.Row="0" Margin="0 0 5 5"/>
<Button Content="Browse" Grid.Column="1" Grid.Row="0" Click="BrowseButton_Click"/>
<Button Grid.Column="1" Grid.Row="0" Click="BrowseButton_Click">
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe MDL2 Assets" Text="&#xE8B7;" Margin="0 0 5 0"/>
<TextBlock Text="Browse"/>
</StackPanel>
</Button>

<StackPanel Grid.Row="1" Grid.ColumnSpan="2" Orientation="Vertical" Margin="0 5">
<TextBlock Text="Connection Details" FontWeight="Bold"/>
Expand Down Expand Up @@ -50,26 +55,54 @@
</StackPanel>

<GroupBox Header="Parameters" Grid.Row="2" Grid.ColumnSpan="2" Margin="0 5">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ItemsControl x:Name="ParametersPanel">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="5">
<TextBlock Text="{Binding Name}" Width="150"/>
<TextBox Text="{Binding Value}" Width="200"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
<Grid>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ItemsControl x:Name="ParametersPanel">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="5">
<TextBlock Text="{Binding Name}" Width="150"/>
<TextBox Text="{Binding Value}" Width="200"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
<TextBlock x:Name="NoParametersTextBlock" Text="No parameters were detected for the selected file" Visibility="Collapsed" HorizontalAlignment="Center" VerticalAlignment="Center" FontStyle="Italic"/>
</Grid>
</GroupBox>

<StackPanel Grid.Row="3" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Center" Margin="0 5 0 0">
<Button Content="Load Config" Margin="5" Width="100" Click="LoadConfigButton_Click"/>
<Button Content="Save Config" Margin="5" Width="100" Click="SaveConfigButton_Click"/>
<Button Content="Test Connection" Margin="5" Width="120" Click="TestConnectionButton_Click"/>
<Button Content="View Command-Line" Margin="5" Width="120" Click="ViewCommandLineButton_Click"/>
<Button Content="Execute" Margin="5" Width="80" Click="ExecuteButton_Click"/>
<Button Margin="5" Width="100" Click="LoadConfigButton_Click">
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe MDL2 Assets" Text="&#xE8B7;" Margin="0 0 5 0"/>
<TextBlock Text="Load Config"/>
</StackPanel>
</Button>
<Button Margin="5" Width="100" Click="SaveConfigButton_Click">
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe MDL2 Assets" Text="&#xE74E;" Margin="0 0 5 0"/>
<TextBlock Text="Save Config"/>
</StackPanel>
</Button>
<Button Margin="5" Width="120" Click="TestConnectionButton_Click">
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe MDL2 Assets" Text="&#xE9D9;" Margin="0 0 5 0"/>
<TextBlock Text="Test Connection"/>
</StackPanel>
</Button>
<Button Margin="5" Width="120" Click="ViewCommandLineButton_Click">
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe MDL2 Assets" Text="&#xE756;" Margin="0 0 5 0"/>
<TextBlock Text="View Command-Line"/>
</StackPanel>
</Button>
<Button Margin="5" Width="80" Click="ExecuteButton_Click">
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe MDL2 Assets" Text="&#xE768;" Margin="0 0 5 0"/>
<TextBlock Text="Execute"/>
</StackPanel>
</Button>
</StackPanel>
</Grid>
</Window>
6 changes: 6 additions & 0 deletions SqlcmdGuiApp/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ private void BrowseButton_Click(object sender, RoutedEventArgs e)
private void LoadParameters(string path)
{
Parameters.Clear();
NoParametersTextBlock.Visibility = Visibility.Collapsed;
if (!File.Exists(path)) return;
var text = File.ReadAllText(path);
var variableRegex = new Regex(@"\$\(([^)]+)\)");
Expand All @@ -65,6 +66,10 @@ private void LoadParameters(string path)
{
Parameters.Add(new SqlParameter { Name = v, Value = string.Empty });
}
if (Parameters.Count == 0)
{
NoParametersTextBlock.Visibility = Visibility.Visible;
}
}

private List<string> BuildSqlcmdArguments(bool includeInputFile)
Expand Down Expand Up @@ -202,6 +207,7 @@ private void LoadConfigButton_Click(object sender, RoutedEventArgs e)
{
Parameters.Add(new SqlParameter { Name = p.Name, Value = p.Value });
}
NoParametersTextBlock.Visibility = Parameters.Count == 0 ? Visibility.Visible : Visibility.Collapsed;
}
catch (Exception ex)
{
Expand Down
7 changes: 6 additions & 1 deletion SqlcmdGuiApp/OutputWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@
<TextBlock x:Name="DurationTextBlock" Text="Duration: 00:00:00" />
</StatusBarItem>
<StatusBarItem HorizontalAlignment="Right">
<Button x:Name="StopButton" Content="Stop" Width="60" Click="StopButton_Click"/>
<Button x:Name="StopButton" Width="60" Click="StopButton_Click">
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe MDL2 Assets" Text="&#xE71A;" Margin="0 0 5 0"/>
<TextBlock Text="Stop"/>
</StackPanel>
</Button>
</StatusBarItem>
</StatusBar>
<TextBox x:Name="OutputTextBox" IsReadOnly="True" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto"/>
Expand Down