Skip to content
Open
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
Empty file modified Compile.ps1
100644 → 100755
Empty file.
1 change: 1 addition & 0 deletions Dev/Dev2.Studio.Interfaces/IShellViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -177,5 +177,6 @@ public interface IShellViewModel : IShellViewModelEdit, IShellViewModelNew, IShe

ISubscriptionData SubscriptionData { get; }
void UpdateStudioLicense(bool isLicensed);
void ShowAIChat();
}
}
10 changes: 10 additions & 0 deletions Dev/Dev2.Studio/Services/AIService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace Dev2.Studio.Services
{
public class AIService
{
public string GetResponse(string prompt)
{
return "This is a response from the AI service.";
}
}
}
54 changes: 54 additions & 0 deletions Dev/Dev2.Studio/ViewModels/AIChatViewModel.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
using System.Collections.ObjectModel;
using System.Windows.Input;
using Dev2.Studio.Core.ViewModels.Base;

namespace Dev2.Studio.ViewModels
{
public class AIChatViewModel : Screen
{
private string _message;
private ObservableCollection<string> _messages;
private ICommand _sendCommand;

public AIChatViewModel()
{
DisplayName = "AI Chat";
Messages = new ObservableCollection<string>();
}

public string Message
{
get => _message;
set
{
_message = value;
NotifyOfPropertyChange(() => Message);
}
}

public ObservableCollection<string> Messages
{
get => _messages;
set
{
_messages = value;
NotifyOfPropertyChange(() => Messages);
}
}

public ICommand SendCommand
{
get
{
return _sendCommand ?? (_sendCommand = new RelayCommand(param =>
{
Messages.Add("You: " + Message);
var aiService = new Services.AIService();
var response = aiService.GetResponse(Message);
Messages.Add("AI: " + response);
Message = string.Empty;
}));
}
}
}
}
5 changes: 5 additions & 0 deletions Dev/Dev2.Studio/ViewModels/ShellViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -563,6 +563,11 @@ public ICommand MergeCommand
}));
}

public void ShowAIChat()
{
_worksurfaceContextManager.AddWorkSurface(new AIChatViewModel());
}

public IVersionChecker Version { get; }

public ShellViewModel()
Expand Down
24 changes: 24 additions & 0 deletions Dev/Dev2.Studio/Views/AIChatView.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<UserControl x:Class="Dev2.Studio.Views.AIChatView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Dev2.Studio.Views"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ListBox Grid.Row="0" ItemsSource="{Binding Messages}" />
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0" Text="{Binding Message, UpdateSourceTrigger=PropertyChanged}" />
<Button Grid.Column="1" Content="Send" Command="{Binding SendCommand}" />
</Grid>
</Grid>
</UserControl>
8 changes: 7 additions & 1 deletion Dev/Dev2.Studio/Views/ShellView.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,13 @@
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<ContentControl Width="60" SizeChanged="SlidingMenuPane_OnSizeChanged">
<views1:MenuView DataContext="{Binding MenuViewModel}"/>
<views1:MenuView DataContext="{Binding MenuViewModel}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="AIChatButtonClick">
<cal:ActionMessage MethodName="ShowAIChat" />
</i:EventTrigger>
</i:Interaction.Triggers>
</views1:MenuView>
<ContentControl.Style>
<Style>
<Style.Triggers>
Expand Down
3 changes: 3 additions & 0 deletions Dev/Warewolf.Studio.ViewModels/MenuViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ public MenuViewModel(IShellViewModel mainViewModel)
});
IsOverLockCommand = new DelegateCommand(() => _isOverLock = true);
IsNotOverLockCommand = new DelegateCommand(() => _isOverLock = false);
AIChatCommand = new DelegateCommand(() => _viewModel.ShowAIChat());
ButtonWidth = ButtonWidthLarge;
IsPanelLockedOpen = true;
IsPanelOpen = true;
Expand Down Expand Up @@ -153,6 +154,8 @@ void UpdateProperties()

public ICommand StartPageCommand { get; private set; }

public ICommand AIChatCommand { get; set; }

public void UpdateHelpDescriptor(string helpText)
{
_viewModel?.HelpViewModel?.UpdateHelpText(helpText);
Expand Down
33 changes: 32 additions & 1 deletion Dev/Warewolf.Studio.Views/MenuView.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -402,8 +402,39 @@
Margin="0,5,0,5"
Style="{StaticResource MenuSeparator}" />

<!-- HELP -->
<!-- AI CHAT -->
<Button Grid.Row="14"
Grid.Column="1"
Width="{Binding ButtonWidth}"
HorizontalAlignment="Left"
Command="{Binding AIChatCommand}"
Style="{StaticResource SideMenuButtonStyle}"
ToolTip="{x:Static languages:Tooltips.MenuHelpToolTip}">
<DockPanel Width="{Binding ButtonWidth}"
Height="35"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="Transparent">
<TextBlock Width="35"
MaxWidth="35"
MaxHeight="35"
Padding="8.5,6.5,.5,6.5"
Style="{StaticResource MenuTextBlockStyle}">
<fa:FontAwesome FontSize="22"
FontWeight="Light"
Icon="Magic" />
</TextBlock>
<TextBlock Padding="15,8,0,5"
Style="{StaticResource MenuTextBlockStyle}"
Text="AI Chat" />
</DockPanel>
<i:Interaction.Behaviors>
<core:HelpSetter DataContext="{Binding .}" Text="{x:Static languages:HelpText.MenuHelp}" />
</i:Interaction.Behaviors>
</Button>

<!-- HELP -->
<Button Grid.Row="15"
Grid.Column="1"
Width="{Binding ButtonWidth}"
HorizontalAlignment="Left"
Expand Down