add/remove action rows

This commit is contained in:
2024-09-09 09:20:24 +02:00
parent 333f5011de
commit 7e5acd413e
6 changed files with 54 additions and 11 deletions

View File

@@ -161,9 +161,8 @@ partial class MainForm
//
//
//
radGridView_Actions.MasterTemplate.AllowAddNewRow = false;
radGridView_Actions.MasterTemplate.AddNewRowPosition = Telerik.WinControls.UI.SystemRowPosition.Bottom;
radGridView_Actions.MasterTemplate.AllowColumnChooser = false;
radGridView_Actions.MasterTemplate.AllowDeleteRow = false;
radGridView_Actions.MasterTemplate.AllowDragToGroup = false;
radGridView_Actions.MasterTemplate.AllowRowResize = false;
radGridView_Actions.MasterTemplate.AllowSearchRow = true;
@@ -173,6 +172,9 @@ partial class MainForm
radGridView_Actions.Size = new Size(590, 416);
radGridView_Actions.TabIndex = 0;
radGridView_Actions.CellFormatting += RadGridView_Actions_CellFormatting;
radGridView_Actions.UserAddingRow += RadGridView_Actions_UserAddingRow;
radGridView_Actions.UserAddedRow += RadGridView_Actions_UserAddedRow;
radGridView_Actions.UserDeletedRow += RadGridView_Actions_UserDeletedRow;
radGridView_Actions.CellValueChanged += RadGridView_Actions_CellValueChanged;
//
// radMenuItem_Workspace
@@ -185,7 +187,7 @@ partial class MainForm
//
radMenuItem_WorkspacePreferences.Name = "radMenuItem_WorkspacePreferences";
radMenuItem_WorkspacePreferences.Text = "Preferences";
radMenuItem_WorkspacePreferences.Click += this.RadMenuItem_WorkspacePreferences_Click;
radMenuItem_WorkspacePreferences.Click += RadMenuItem_WorkspacePreferences_Click;
//
// radMenuItem_SaveWorkspace
//

View File

@@ -18,7 +18,9 @@ public partial class MainForm : RadForm, IMainApi
{
private WorkspaceTag? wsInfo;
IWorkspace? IMainApi.Workspace => wsInfo?.Workspace;
IWorkspace? IMainApi.CurWorkspace => wsInfo?.Workspace;
public IActionSetInfos? CurActionSet => CurActionSet as IActionSetInfos;
private record RecentFilesItemTag(WorkspaceConfig Config, WorkspaceFeature Feature);
@@ -510,4 +512,32 @@ public partial class MainForm : RadForm, IMainApi
radListControl_Updates.Items.Remove(radListControl_Updates.SelectedItem);
}
}
private void RadGridView_Actions_UserAddingRow(object sender, GridViewRowCancelEventArgs e)
{
foreach (var row in e.Rows)
row.Tag = CurActionSet is UpdateInfo ? new UpdateAction() : new InstallAction();
}
private void RadGridView_Actions_UserAddedRow(object sender, GridViewRowEventArgs e)
{
foreach (var row in e.Rows)
{
if (row.Tag is UpdateAction uaction && CurActionSet is UpdateInfo uinfo && !uinfo.Actions.Contains(uaction))
uinfo.Actions.Add(uaction);
else if (row.Tag is InstallAction iaction && CurActionSet is InstallInfos iinfo && !iinfo.Actions.Contains(iaction))
iinfo.Actions.Add(iaction);
}
}
private void RadGridView_Actions_UserDeletedRow(object sender, GridViewRowEventArgs e)
{
foreach (var row in e.Rows)
{
if (row.Tag is UpdateAction uaction && CurActionSet is UpdateInfo uinfo)
uinfo.Actions.Remove(uaction);
else if (row.Tag is InstallAction iaction && CurActionSet is InstallInfos iinfo)
iinfo.Actions.Remove(iaction);
}
}
}