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
@@ -23,7 +23,6 @@ namespace Volian.Controls.Library
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
@@ -34,7 +33,6 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
this.gpMode = new DevComponents.DotNetBar.Controls.GroupPanel();
|
||||
this.gpItem = new DevComponents.DotNetBar.Controls.GroupPanel();
|
||||
this.btnApplicabilitychg2 = new DevComponents.DotNetBar.ButtonItem();
|
||||
this.btnApplicabilitychg = new DevComponents.DotNetBar.ButtonX();
|
||||
this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip();
|
||||
this.gpItem.SuspendLayout();
|
||||
@@ -42,14 +40,14 @@ namespace Volian.Controls.Library
|
||||
//
|
||||
// btnApplicabilitychg
|
||||
//
|
||||
this.btnApplicabilitychg.Location = new System.Drawing.Point(60, 8);
|
||||
this.btnApplicabilitychg.Location = new System.Drawing.Point(90, 8);
|
||||
this.btnApplicabilitychg.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnApplicabilitychg.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.btnApplicabilitychg.Name = "btnApplicabilitychg";
|
||||
this.btnApplicabilitychg.Size = new System.Drawing.Size(80, 22);
|
||||
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("Change applicability settings - All At Level", "", "When clicked, all steps at that level of the current step will be set to the selected applicability. Note that this button is disabled when on a RNO step type but enabled for sub-step under it.", 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;
|
||||
@@ -106,13 +104,12 @@ 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);
|
||||
this.gpItem.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.gpItem.Name = "gpItem";
|
||||
this.gpItem.Padding = new System.Windows.Forms.Padding(13, 12, 13, 37);
|
||||
this.gpItem.Padding = new System.Windows.Forms.Padding(0, 20, 0, 0);
|
||||
|
mschill marked this conversation as resolved
|
||||
this.gpItem.Size = new System.Drawing.Size(432, 85);
|
||||
//
|
||||
//
|
||||
@@ -169,7 +166,6 @@ namespace Volian.Controls.Library
|
||||
|
||||
private DevComponents.DotNetBar.Controls.GroupPanel gpMode;
|
||||
private DevComponents.DotNetBar.Controls.GroupPanel gpItem;
|
||||
private DevComponents.DotNetBar.ButtonItem btnApplicabilitychg2;
|
||||
private DevComponents.DotNetBar.ButtonX btnApplicabilitychg;
|
||||
private DevComponents.DotNetBar.SuperTooltip superTooltip1;
|
||||
|
mschill marked this conversation as resolved
mschill
commented
should not keep commented out code should not keep commented out code
plarsen
commented
Removed Removed
|
||||
|
||||
|
||||
@@ -21,20 +21,24 @@ namespace Volian.Controls.Library
|
||||
if (ApplicabilityViewModeChanged != null)
|
||||
ApplicabilityViewModeChanged(this, new EventArgs());
|
||||
}
|
||||
|
||||
private DisplayTabItem _MyDisplayTabItem = null;
|
||||
public DisplayTabItem MyDisplayTabItem
|
||||
{
|
||||
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();
|
||||
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();
|
||||
|
||||
|
mschill marked this conversation as resolved
mschill
commented
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++)
|
||||
{
|
||||
@@ -54,11 +58,13 @@ namespace Volian.Controls.Library
|
||||
AddViewMode(name.Trim(), i.ToString(), apple == i);
|
||||
}
|
||||
|
||||
AddItemMode("All", "-1");
|
||||
AddItemMode("All", "-1", ref gpSubItem);
|
||||
i = 0;
|
||||
foreach (string name in names)
|
||||
|
mschill marked this conversation as resolved
mschill
commented
gpSubItem is a pre-existing control - i.e. it is created in the Designer. 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 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?
|
||||
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);
|
||||
btnApplicabilitychg.BringToFront();
|
||||
if (_MyDisplayTabItem.MyStepTabPanel != null)
|
||||
@@ -85,6 +91,37 @@ namespace Volian.Controls.Library
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
private DevComponents.DotNetBar.Controls.GroupPanel InitializegpSubItem() //B2026-043 Fix "Set All At Level" button.
|
||||
{
|
||||
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;
|
||||
gpSubItem.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
||||
gpSubItem.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
||||
gpSubItem.TabIndex = 1;
|
||||
gpSubItem.Text = "";
|
||||
gpSubItem.Location = new System.Drawing.Point(0, 49);
|
||||
gpSubItem.Size = new System.Drawing.Size(400, 250);
|
||||
return gpSubItem;
|
||||
}
|
||||
private Dictionary<int, CheckBox> MyCheckBoxes = new Dictionary<int, CheckBox>();
|
||||
private string _MyApplicability = string.Empty;
|
||||
public string MyApplicability
|
||||
@@ -128,20 +165,25 @@ 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;
|
||||
cb.Height = 24;
|
||||
cb.Width = 75;
|
||||
cb.AutoSize = true;
|
||||
cb.Text = name;
|
||||
cb.Tag = value;
|
||||
cb.Dock = DockStyle.Top;
|
||||
gpItem.Controls.Add(cb);
|
||||
gpSubItem.Controls.Add(cb);
|
||||
cb.BringToFront();
|
||||
cb.CheckedChanged += new EventHandler(cb_CheckedChanged);
|
||||
MyCheckBoxes.Add(value == null ? -1 : int.Parse(value), cb);
|
||||
}
|
||||
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;
|
||||
@@ -287,8 +329,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)
|
||||
{
|
||||
|
||||
@@ -497,7 +543,7 @@ namespace Volian.Controls.Library
|
||||
|
||||
public DisplayApplicability()
|
||||
{
|
||||
InitializeComponent();
|
||||
InitializeComponent(); //B2026-043 Fix "Set All At Level" button.
|
||||
this.VisibleChanged += new EventHandler(DisplayApplicability_VisibleChanged);
|
||||
}
|
||||
|
mschill marked this conversation as resolved
mschill
commented
should remove commented out code should remove commented out code
|
||||
|
||||
|
||||
Should not keep commented out code
removed