select tab on project run
This commit is contained in:
@@ -10,6 +10,9 @@
|
||||
[Parameter, EditorRequired]
|
||||
public SharpIdeProjectModel Project { get; set; } = null!;
|
||||
|
||||
[Parameter]
|
||||
public EventCallback<SharpIdeProjectModel> OnProjectStarted { get; set; }
|
||||
|
||||
private TerminalDisplay _terminalDisplayRef = null!;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
@@ -24,6 +27,7 @@
|
||||
Guard.Against.Null(Project);
|
||||
Guard.Against.Null(Project.RunningOutputChannel, nameof(Project.RunningOutputChannel));
|
||||
if (_terminalDisplayRef is not null) await _terminalDisplayRef.Clear();
|
||||
await InvokeAsync(async () => await OnProjectStarted.InvokeAsync(Project));
|
||||
_ = Task.Run(async () =>
|
||||
{
|
||||
try
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
}
|
||||
</style>
|
||||
@* <MudText>Run</MudText> *@
|
||||
<MudTabs Style="height: 100%" KeepPanelsAlive="true" PanelClass="panels-full-height" TabPanelClass="lowercase-tab-header">
|
||||
<MudTabs @ref="_mudTabsRef" Style="height: 100%" KeepPanelsAlive="true" PanelClass="panels-full-height" TabPanelClass="lowercase-tab-header">
|
||||
<ChildContent>
|
||||
@foreach (var tab in OpenTabs)
|
||||
{
|
||||
<MudTabPanel Style="height: 100%" ID="@tab" Text="@tab.Name">
|
||||
<RunOutputDisplay Project="@tab"/>
|
||||
<RunOutputDisplay Project="@tab" OnProjectStarted="@SetActiveTab"/>
|
||||
</MudTabPanel>
|
||||
}
|
||||
</ChildContent>
|
||||
@@ -46,6 +46,8 @@
|
||||
[Parameter, EditorRequired]
|
||||
public SharpIdeSolutionModel SolutionModel { get; set; } = null!;
|
||||
|
||||
private MudTabs _mudTabsRef;
|
||||
|
||||
private IEnumerable<SharpIdeProjectModel> OpenTabs => SolutionModel.AllProjects.Where(s => s.OpenInRunPanel);
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
@@ -66,4 +68,9 @@
|
||||
}
|
||||
|
||||
public void Dispose() => GlobalEvents.ProjectsRunningChanged -= OnProjectsRunningChanged;
|
||||
|
||||
private void SetActiveTab(SharpIdeProjectModel project)
|
||||
{
|
||||
_mudTabsRef.ActivatePanel(project);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user