C2016008: Create an enhanced step if it is missing from source (menuing) & Enable delete of unlinked enhanced step

This commit is contained in:
Kathy Ruffing 2016-04-14 12:45:33 +00:00
parent 3bcd01ce8d
commit e6ad27120c

View File

@ -129,59 +129,86 @@ namespace Volian.Controls.Library
private void AddEnhancedDocumentMenu(DevComponents.DotNetBar.ButtonItem myButtonItem, object sender) private void AddEnhancedDocumentMenu(DevComponents.DotNetBar.ButtonItem myButtonItem, object sender)
{ {
// get a list of all of the current enhanced buttons that been defined for context menu DVEnhancedDocuments dveds = MyItemInfo.MyDocVersion.DocVersionConfig.MyEnhancedDocuments;
List<string> unusedEnhancedButtons = new List<string>(); if (dveds.Count == 0) return; // No enhanced!
// for all enhanced documents, create the list of buttons as they should be for items in the docversion
// using the list of enhanced documents that are on the docversion. Note that later, some may be
// made invisible or menu text changed.
// first, get correct number of enhanced buttons. This is needed in case the selected item doesn't
// have links to enhanced, but should.
List<string> existingEnhancedButtons = new List<string>();
foreach (DevComponents.DotNetBar.ButtonItem bi in myButtonItem.SubItems) foreach (DevComponents.DotNetBar.ButtonItem bi in myButtonItem.SubItems)
if (bi.Name.StartsWith("btnEnhancedTo")) if (bi.Name.StartsWith("btnEnhancedTo"))
unusedEnhancedButtons.Add(bi.Name); existingEnhancedButtons.Add(bi.Name);
bool inSource = dveds[0].Type != 0; // for later, only 'create missing' enhanced if in Source document
if (dveds.Count > existingEnhancedButtons.Count) // add buttons
{
foreach (DVEnhancedDocument dved in dveds)
{
string buttonName = string.Format("btnEnhancedTo{0}", dved.Type);
DevComponents.DotNetBar.ButtonItem biEnhanced = new DevComponents.DotNetBar.ButtonItem(buttonName, "Go To " + dved.Name + " Document");
biEnhanced.Click += btnEnhancedGoTo_Click;
myButtonItem.SubItems.Add(biEnhanced);
existingEnhancedButtons.Add(biEnhanced.Name);
}
}
// for all enhanced documents, get the list of buttons as they should be for the // Now handle specific cases for the Item that user is positioned on.
// selected step // If a link exists, the menu item should be 'go to'.
// If link doesn't exist
// if in source & on high, note or caution, the menu item should be 'create missing'
// else the menu item should be made invisible.
StepRTB myStepRTB = sender as StepRTB ?? _MyStepRTB; StepRTB myStepRTB = sender as StepRTB ?? _MyStepRTB;
StepConfig sc = new StepConfig(myStepRTB.MyItemInfo.MyContent.Config); StepConfig sc = new StepConfig(myStepRTB.MyItemInfo.MyContent.Config);
DVEnhancedDocuments dveds = MyItemInfo.MyDocVersion.DocVersionConfig.MyEnhancedDocuments; foreach (string btnenh in existingEnhancedButtons)
foreach(EnhancedDocument ed in sc.MyEnhancedDocuments)
{ {
string buttonName = string.Format("btnEnhancedTo{0}", dveds.GetByType(ed.Type)); DevComponents.DotNetBar.ButtonItem biEnhanced = myButtonItem.SubItems[btnenh] as DevComponents.DotNetBar.ButtonItem;
//string buttonName = string.Format("btnEnhancedTo{0}", dveds[ed.Type]); int edtypebtn = System.Convert.ToInt32(biEnhanced.Name.Substring(biEnhanced.Name.Length - 1));
if (unusedEnhancedButtons.Contains(buttonName)) unusedEnhancedButtons.Remove(buttonName); bool itemHasLink = false;
DevComponents.DotNetBar.ButtonItem biEnhanced; foreach (EnhancedDocument ed in sc.MyEnhancedDocuments)
if (!myButtonItem.SubItems.Contains(buttonName))
{ {
//biEnhanced = new DevComponents.DotNetBar.ButtonItem(buttonName, "Go To " + dveds[ed.Type].Name + " Document"); if (edtypebtn == ed.Type) // this button is for this document:
biEnhanced = new DevComponents.DotNetBar.ButtonItem(buttonName, "Go To " + dveds.GetByType(ed.Type).Name + " Document"); {
biEnhanced.Click += btnSourceToBackground_Click; biEnhanced.Visible = true;
myButtonItem.SubItems.Add(biEnhanced); biEnhanced.Text = "Go To " + dveds.GetByType(ed.Type).Name + " Document";
biEnhanced.Tag = ed.ItemID;
itemHasLink = true;
break;
}
}
if (!itemHasLink)
{
if (inSource && (MyItemInfo.IsHigh || ((MyItemInfo.IsCaution || MyItemInfo.IsNote) && MyItemInfo.MyHLS.GetMyEnhancedDocuments().Count > 0)))
{
biEnhanced.Visible = true;
biEnhanced.Text = string.Format("Create Missing Enhanced {0} Document Step", dveds.GetByType(edtypebtn).Name);
biEnhanced.Tag = MyItemInfo.ItemID;
}
else
biEnhanced.Visible = false;
} }
else
biEnhanced = myButtonItem.SubItems[buttonName] as DevComponents.DotNetBar.ButtonItem;
biEnhanced.Tag = ed.ItemID;
biEnhanced.Visible = true;
}
foreach(string btnNotInUse in unusedEnhancedButtons)
{
DevComponents.DotNetBar.ButtonItem biUnused = myButtonItem.SubItems[btnNotInUse] as DevComponents.DotNetBar.ButtonItem;
biUnused.Visible = false;
} }
#endregion #endregion
} }
void btnBackgroundToSource_Click(object sender, EventArgs e) void btnEnhancedGoTo_Click(object sender, EventArgs e)
{ {
DevComponents.DotNetBar.BaseItem btn = sender as DevComponents.DotNetBar.BaseItem; DevComponents.DotNetBar.BaseItem btn = sender as DevComponents.DotNetBar.BaseItem;
ItemInfo ii = ItemInfo.Get(int.Parse(btn.Tag.ToString())); ItemInfo ii = ItemInfo.Get(int.Parse(btn.Tag.ToString()));
StepTabPanel tmp = Parent as StepTabPanel; if (ii.ItemID != MyItemInfo.ItemID)
tmp.MyDisplayTabControl.OpenItem(ii); {
} //StepTabPanel tmp = Parent as StepTabPanel;
//tmp.MyDisplayTabControl.OpenItem(ii);
void btnSourceToBackground_Click(object sender, EventArgs e) // OpenEnhancedDocument(this, new StepTabRibbonEventArgs(ii));
{ MyEditItem.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnOpenEnhancedDocument(new ItemSelectedChangedEventArgs(ii));
DevComponents.DotNetBar.BaseItem btn = sender as DevComponents.DotNetBar.BaseItem; }
ItemInfo ii = ItemInfo.Get(int.Parse(btn.Tag.ToString())); else
//StepTabPanel tmp = Parent as StepTabPanel; {
//tmp.MyDisplayTabControl.OpenItem(ii); // have to create it.
// OpenEnhancedDocument(this, new StepTabRibbonEventArgs(ii)); int edtype = System.Convert.ToInt32(btn.Name.Replace("btnEnhancedTo", ""));
MyEditItem.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnOpenEnhancedDocument(new ItemSelectedChangedEventArgs(ii)); MyEditItem.AddMissingEnhancedStep(ii, edtype);
}
} }
#region set up save ro menu jcb 20121221 #region set up save ro menu jcb 20121221
@ -1085,10 +1112,28 @@ namespace Volian.Controls.Library
btnPaste.Enabled = btnCut.Enabled = setting; btnPaste.Enabled = btnCut.Enabled = setting;
btnUndo.Enabled = btnRedo.Enabled = setting; btnUndo.Enabled = btnRedo.Enabled = setting;
rbFont.Enabled = rbStepType.Enabled = setting; rbFont.Enabled = rbStepType.Enabled = setting;
rbSteps.Enabled = setting; // if disabling the step buttons, first check if the step has 'linked' config data. If it does not,
// it can be deleted:
bool allowDel = false;
EnhancedDocuments eds = MyItemInfo.GetMyEnhancedDocuments();
if (!setting && MyItemInfo.IsStep && (eds == null || eds.Count == 0))
{
allowDel = true;
rbSteps.Enabled = true; //just in case it was disabled, enable it so specific buttons can be turned off/on
btnDelelete.Enabled = true;
itemContainer1.Enabled = false;
btnCpyStp.Enabled = false;
btnStepPaste.Enabled = false;
}
else
{
itemContainer1.Enabled = true; // enable this back on, in case it was turned off above. Other buttons are specifically set for step that is selected.
rbSteps.Enabled = setting;
}
rbnCharacters.Enabled = rbnParagraph.Enabled = rbnSiblings.Enabled = rbnLinks.Enabled = setting; rbnCharacters.Enabled = rbnParagraph.Enabled = rbnSiblings.Enabled = rbnLinks.Enabled = setting;
btnCMEdit.Enabled = setting; btnCMEdit.Enabled = setting;
btnDelStep.Enabled = setting; // context menu item btnDelStep.Enabled = setting; // context menu item
if (allowDel) btnDelStep.Enabled = true; // enhanced step with no links can be deleted (see above)
btnPageBreak.Enabled = setting; // context menu item btnPageBreak.Enabled = setting; // context menu item
btnCMHardSpace.Enabled = btnCMTransition.Enabled = btnCMRO.Enabled = btnCMSymbol.Enabled = setting; btnCMHardSpace.Enabled = btnCMTransition.Enabled = btnCMRO.Enabled = btnCMSymbol.Enabled = setting;
btnFindRplDlg.Enabled = setting; // no find replace button is available when in an enhanced document btnFindRplDlg.Enabled = setting; // no find replace button is available when in an enhanced document