B2026-043-Fix-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-when-clicked-executes-function #765

2 changed files with 40 additions and 40 deletions
Showing only changes of commit 7bbf62d735 - Show all commits
@@ -1,4 +1,4 @@
//using System.Drawing;
using System.Drawing;
Review

Is this using necessary to be added?

Is this using necessary to be added?
Review

if commenting out , should remove

if commenting out , should remove
using System.Security.Cryptography;
using VEPROMS.CSLA.Library;
@@ -24,7 +24,6 @@ namespace Volian.Controls.Library
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
@@ -49,7 +48,7 @@ namespace Volian.Controls.Library
this.btnApplicabilitychg.Size = new System.Drawing.Size(87, 22);
this.btnApplicabilitychg.Margin = new System.Windows.Forms.Padding(2);
this.btnApplicabilitychg.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.superTooltip1.SetSuperTooltip(this.btnApplicabilitychg, new DevComponents.DotNetBar.SuperTooltipInfo("Set All at Level", "", "When clicked, all steps at that level of the current step will be set to the selected applicability. Note that the Set All at Level button is disabled for RNO step types unless they are substeps off of a RNO step.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.superTooltip1.SetSuperTooltip(this.btnApplicabilitychg, new DevComponents.DotNetBar.SuperTooltipInfo("Set All at Level", "", "When clicked, all steps at that level of the current step will be set to the selected applicability. Note that the Set All at Level button is disabled for RNO step types unless they are substeps off of a RNO step.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); // C2026-034 fix tool tip text.
this.btnApplicabilitychg.TabIndex = 0;
this.btnApplicabilitychg.Text = "Set All at Level";
this.btnApplicabilitychg.ColorTable = DevComponents.DotNetBar.eButtonColor.BlueOrb;
@@ -86,13 +85,7 @@ namespace Volian.Controls.Library
this.gpMode.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
this.gpMode.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.gpMode.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
//
//
//
this.gpMode.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
//
//
//
this.gpMode.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.gpMode.TabIndex = 0;
this.gpMode.Text = "Viewing Mode";
@@ -103,7 +96,6 @@ namespace Volian.Controls.Library
this.gpItem.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.gpItem.CanvasColor = System.Drawing.SystemColors.Control;
this.gpItem.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
//this.gpItem.Controls.Add(this.btnApplicabilitychg);
this.gpItem.DisabledBackColor = System.Drawing.Color.Empty;
this.gpItem.Dock = System.Windows.Forms.DockStyle.Top;
this.gpItem.Location = new System.Drawing.Point(0, 49);
2
@@ -28,15 +28,18 @@ namespace Volian.Controls.Library
get { return _MyDisplayTabItem; }
set
{
if (DesignMode) return; // B2019-043 need to check if we are just saving changes to the user interface
if (DesignMode) return; // B2019-043 need to check if we are just saving changes to the user interface
_MyDisplayTabItem = value;
gpMode.Controls.Clear();
gpItem.Controls.Clear();
gpSubItem.Controls.Clear();
MyCheckBoxes.Clear();
if (_MyDisplayTabItem != null)
{
DocVersionConfig dcfg = _MyDisplayTabItem.MyItemInfo.MyDocVersion.MyConfig as DocVersionConfig;
//B2026-043 Fix "Set All At Level" button.
DevComponents.DotNetBar.Controls.GroupPanel gpSubItem = InitializegpSubItem();
gpSubItem.Controls.Clear();
mschill marked this conversation as resolved
Review

just a minor thing - but shouldn't need to clear it since it was just created.

just a minor thing - but shouldn't need to clear it since it was just created.
DocVersionConfig dcfg = _MyDisplayTabItem.MyItemInfo.MyDocVersion.MyConfig as DocVersionConfig;
List<string> names = new List<string>();
for (int n = 1; n <= dcfg.Unit_Count; n++)
{
@@ -56,11 +59,11 @@ namespace Volian.Controls.Library
AddViewMode(name.Trim(), i.ToString(), apple == i);
}
AddItemMode("All", "-1");
AddItemMode("All", "-1", ref gpSubItem);
i = 0;
mschill marked this conversation as resolved
Review

gpSubItem is a pre-existing control - i.e. it is created in the Designer.
gpItem is also a pre-existing control.

Not sure that these should Adding one to another one like this (like it was a dynamic / built on the fly control) here.

Would be difficult to test for --- but
What happens if gpSubItem gets destroyed / garbage collected and you try to add it to gpItem
unlike dynamic controls (like the checkboxes / buttons created here in the code behind, this is not being dynamically created each time the code behind executes.)?

Thinking it (gpSubItem) should either entirely be created dynamically in the code behind or never removed/re-added from the parent control (gpItem) to avoid any issues with garbage collection....

Also, another possibility ---- instead of adding / removing, is it possible to use properties on gpSubItem like Visible and Enabled?

gpSubItem is a pre-existing control - i.e. it is created in the Designer. gpItem is also a pre-existing control. Not sure that these should Adding one to another one like this (like it was a dynamic / built on the fly control) here. Would be difficult to test for --- but What happens if gpSubItem gets destroyed / garbage collected and you try to add it to gpItem unlike dynamic controls (like the checkboxes / buttons created here in the code behind, this is not being dynamically created each time the code behind executes.)? Thinking it (gpSubItem) should either entirely be created dynamically in the code behind or never removed/re-added from the parent control (gpItem) to avoid any issues with garbage collection.... Also, another possibility ---- instead of adding / removing, is it possible to use properties on gpSubItem like Visible and Enabled?
foreach (string name in names)
AddItemMode(name.Trim(), (++i).ToString());
AddItemMode("None", "0");
AddItemMode(name.Trim(), (++i).ToString(), ref gpSubItem);
AddItemMode("None", "0", ref gpSubItem);
gpItem.Controls.Add(gpSubItem);
gpSubItem.BringToFront();
gpItem.Controls.Add(btnApplicabilitychg);
@@ -89,25 +92,26 @@ namespace Volian.Controls.Library
return 0;
}
}
private void InitializegpSubItem() //B2026-043 Fix "Set All At Level" button.
private DevComponents.DotNetBar.Controls.GroupPanel InitializegpSubItem() //B2026-043 Fix "Set All At Level" button.
{
this.gpSubItem = new DevComponents.DotNetBar.Controls.GroupPanel();
//
// gpSubItem
//
gpSubItem.AutoSize = true;
gpSubItem.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
gpSubItem.CanvasColor = System.Drawing.SystemColors.Control;
gpSubItem.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
gpSubItem.DisabledBackColor = System.Drawing.Color.Empty;
gpSubItem.Dock = System.Windows.Forms.DockStyle.Top;
gpSubItem.Location = new System.Drawing.Point(0, 49);
gpSubItem.Margin = new System.Windows.Forms.Padding(4);
gpSubItem.Name = "gpSubItem";
gpSubItem.Padding = new System.Windows.Forms.Padding(13, 12, 13, 37);
gpSubItem.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
gpSubItem.Style.BackColorGradientAngle = 90;
gpSubItem.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
DevComponents.DotNetBar.Controls.GroupPanel gpSubItem;
gpSubItem = new DevComponents.DotNetBar.Controls.GroupPanel
{
//
// gpSubItem
//
AutoSize = true,
AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink,
CanvasColor = System.Drawing.SystemColors.Control,
ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007,
DisabledBackColor = System.Drawing.Color.Empty,
Dock = System.Windows.Forms.DockStyle.Top,
Location = new System.Drawing.Point(0, 49),
Margin = new System.Windows.Forms.Padding(4),
Name = "gpSubItem",
Padding = new System.Windows.Forms.Padding(13, 12, 13, 37)
};
gpSubItem.BackColor = Color.Transparent;
gpSubItem.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
gpSubItem.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
gpSubItem.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
@@ -117,10 +121,8 @@ namespace Volian.Controls.Library
gpSubItem.Text = "";
gpSubItem.Location = new System.Drawing.Point(0, 49);
gpSubItem.Size = new System.Drawing.Size(400, 250);
//
return gpSubItem;
}
private DevComponents.DotNetBar.Controls.GroupPanel gpSubItem;
private Dictionary<int, CheckBox> MyCheckBoxes = new Dictionary<int, CheckBox>();
private string _MyApplicability = string.Empty;
public string MyApplicability
3
@@ -164,7 +166,7 @@ namespace Volian.Controls.Library
// }
//}
//}
private void AddItemMode(string name, string value)
private void AddItemMode(string name, string value, ref DevComponents.DotNetBar.Controls.GroupPanel gpSubItem)
{
CheckBox cb = new CheckBox();
cb.BackColor = Color.Transparent;
@@ -181,6 +183,8 @@ namespace Volian.Controls.Library
}
private void cb_CheckedChanged(object sender, EventArgs e)
{
EditItem ei = MyDisplayTabItem.MyStepTabPanel.SelectedEditItem;
ei.SaveCurrentAndContents(); // C2026-035 save unsaved step text.
UnwireCheckboxes(false);
CheckBox cb = sender as CheckBox;
CheckState cs = cb.CheckState;
@@ -326,8 +330,12 @@ namespace Volian.Controls.Library
MasterSlave_ApplicabilityTmp = sc.MasterSlave_Applicability;
StringBuilder sb = new StringBuilder();
EditItem ei = MyDisplayTabItem.MyStepTabPanel.SelectedEditItem;
ei.SaveCurrentAndContents(); // C2026-035 save unsaved step text.
ItemInfo startitm = MyItemInfo.FirstSibling;
ItemInfo startitm = MyItemInfo.FirstSibling;
while (startitm != null)
{
@@ -537,7 +545,7 @@ namespace Volian.Controls.Library
public DisplayApplicability()
{
InitializeComponent();
InitializegpSubItem(); //B2026-043 Fix "Set All At Level" button.
//InitializegpSubItem(); //B2026-043 Fix "Set All At Level" button.
mschill marked this conversation as resolved
Review

should remove commented out code

should remove commented out code
this.VisibleChanged += new EventHandler(DisplayApplicability_VisibleChanged);
}