Update Transition Text

This commit is contained in:
Rich 2009-07-30 19:03:38 +00:00
parent bb9a9c1d09
commit df1defc709
2 changed files with 75 additions and 25 deletions

View File

@ -191,6 +191,7 @@ namespace Volian.Controls.Library
{ {
try try
{ {
FormatInfo formatInfo = _MyItemInfo.ActiveFormat;
_MyItem = _MyItemInfo.Get(); _MyItem = _MyItemInfo.Get();
// check for different text, i.e. text from this itm doesn't match // check for different text, i.e. text from this itm doesn't match
// original text, a change occurred in database, but not from this user. // original text, a change occurred in database, but not from this user.
@ -225,6 +226,10 @@ namespace Volian.Controls.Library
if (ctReplacements.Count > 0) if (ctReplacements.Count > 0)
{ {
EditText = FixCtReplacements(EditText, ctReplacements); EditText = FixCtReplacements(EditText, ctReplacements);
// Replace Transition Text
foreach (ContentTransition ct in ctReplacements.Values)
using (TransitionInfo tran = TransitionInfo.Get(ct.TransitionID))
_MyItem.MyContent.FixTransitionText(tran);
_MyItem.Save(); _MyItem.Save();
} }
if (roUsgReplacements.Count > 0) if (roUsgReplacements.Count > 0)
@ -695,7 +700,7 @@ namespace Volian.Controls.Library
{ {
if (ti.TransitionID == transitionID) if (ti.TransitionID == transitionID)
{ {
string path = ti.ResolvePathTo(_MyFormat, _MyItemInfo, ItemInfo.Get(ti.ToID), ti.RangeID==0?null:ItemInfo.Get(ti.RangeID)); string path = ti.ResolvePathTo(_MyFormat, _MyItemInfo, ti.TranType, ti.MyItemToID, ti.MyItemRangeID);
return path; return path;
} }
} }
@ -746,7 +751,14 @@ namespace Volian.Controls.Library
else if (text[endComment + 3] == '\\') retlen = 3; else if (text[endComment + 3] == '\\') retlen = 3;
vte.TextAndLink = text.Substring(index, endComment - index + retlen); vte.TextAndLink = text.Substring(index, endComment - index + retlen);
rettoken = endComment + retlen; rettoken = endComment + retlen;
if (vte.Type != E_TextElementType.ReferencedObject) vte.TextAndLink = vte.TextAndLink = vte.TextAndLink.Replace("(Resolved Transition Text)", tmptxt); if (vte.Type != E_TextElementType.ReferencedObject)
{
if (vte.TextAndLink.Contains("(Resolved Transition Text)"))
vte.TextAndLink = vte.TextAndLink.Replace("(Resolved Transition Text)", tmptxt);
else
if (vte.Text != tmptxt)
vte.Text = tmptxt;
}
DisplayTextElementList.Add(vte); DisplayTextElementList.Add(vte);
return rettoken; return rettoken;
} }
@ -825,8 +837,17 @@ namespace Volian.Controls.Library
} }
else else
{ {
string pat = @"(?<=\W|^)" + rs.ReplaceWord + @"(?=\W|$)"; // If there are Regex Control Characters '\[]()' prefix them with backslash
Text = Regex.Replace(Text, pat, rs.ReplaceWith); string replaceWord = Regex.Replace(rs.ReplaceWord, @"\\[[\]()]", @"\$0");
string pat = @"(?<=\W|^)" + replaceWord + @"(?=\W|$)";
try
{
Text = Regex.Replace(Text, pat, rs.ReplaceWith);
}
catch (Exception ex)
{
Console.WriteLine("{0},'{1}',{2},'{3}'", _MyItemInfo.ActiveFormat.Name, replaceWord, ex.GetType().Name, ex.Message);
}
} }
} }
@ -852,8 +873,8 @@ namespace Volian.Controls.Library
get { return _Type; } get { return _Type; }
set { _Type = value; } set { _Type = value; }
} }
private string _Text; protected string _Text;
public string Text virtual public string Text
{ {
get { return _Text; } get { return _Text; }
set { _Text = value; } set { _Text = value; }
@ -873,6 +894,31 @@ namespace Volian.Controls.Library
get { return _TextAndLink; } get { return _TextAndLink; }
set { _TextAndLink = value; } set { _TextAndLink = value; }
} }
/// <summary>
/// Text - this should parse the text and return the results
/// </summary>
override public string Text
{
get
{
if (_TextAndLink != null)
{
Match m = Regex.Match(_TextAndLink, @"<START\]\\v0 (.*?)\\v #Link:(.*?)\[END>");
return m.Groups[1].ToString();
}
return _Text;
}
set
{
if (_TextAndLink != null)
{
Match m = Regex.Match(_TextAndLink, @"<START\]\\v0 (.*?)\\v #Link:(.*?)\[END>");
System.Text.RegularExpressions.Group g = m.Groups[1];
_TextAndLink = _TextAndLink.Substring(0, g.Index) + value + _TextAndLink.Substring(g.Index + g.Length);
}
_Text = value;
}
}
} }
#endregion #endregion

View File

@ -707,7 +707,7 @@ namespace Volian.Controls.Library
} }
private void btnTranSave_Click(object sender, EventArgs e) private void btnTranSave_Click(object sender, EventArgs e)
{ {
string trantxt = "*Resolved Transition Text*"; string trantxt = "(Resolved Transition Text)";
string linktxt = null; string linktxt = null;
E_TransUI etm = (E_TransUI)_CurItemFrom.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[listBoxTranFmt.SelectedIndex].TransUI; E_TransUI etm = (E_TransUI)_CurItemFrom.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[listBoxTranFmt.SelectedIndex].TransUI;
// if must have a step, test for this first. // if must have a step, test for this first.
@ -719,8 +719,8 @@ namespace Volian.Controls.Library
return; return;
} }
} }
ItemInfo _tranitem1 = null; ItemInfo toItem = null;
ItemInfo _tranitem2 = null; ItemInfo rangeItem = null;
if ((etm & E_TransUI.StepLast) == E_TransUI.StepLast) //range if ((etm & E_TransUI.StepLast) == E_TransUI.StepLast) //range
{ {
if (_RangeNode1==null) if (_RangeNode1==null)
@ -728,7 +728,7 @@ namespace Volian.Controls.Library
MessageBox.Show("Must 'Select Step' for transition 'to'"); MessageBox.Show("Must 'Select Step' for transition 'to'");
return; return;
} }
_tranitem1 = (ItemInfo)_RangeNode1.VEObject; toItem = (ItemInfo)_RangeNode1.VEObject;
// Get the second item in the range, based on current tree view selection. // Get the second item in the range, based on current tree view selection.
if (_RangeNode2 == null && tvTran.SelectedNode == null) if (_RangeNode2 == null && tvTran.SelectedNode == null)
{ {
@ -736,52 +736,56 @@ namespace Volian.Controls.Library
return; return;
} }
if (_RangeNode2 == null) _RangeNode2 = (VETreeNode)tvTran.SelectedNode; if (_RangeNode2 == null) _RangeNode2 = (VETreeNode)tvTran.SelectedNode;
_tranitem2 = (ItemInfo)_RangeNode2.VEObject; rangeItem = (ItemInfo)_RangeNode2.VEObject;
// Check that the two items are of the below the section type. // Check that the two items are of the below the section type.
if (_tranitem1.MyContent.Type < 20000 || _tranitem2.MyContent.Type < 20000) if (toItem.MyContent.Type < 20000 || rangeItem.MyContent.Type < 20000)
{ {
MessageBox.Show("Must select two items at the step level or below, i.e. no sections, procedures, etc."); MessageBox.Show("Must select two items at the step level or below, i.e. no sections, procedures, etc.");
return; return;
} }
linktxt = string.Format("#Link:Transition:{0} <NewID> {1} {2}", listBoxTranFmt.SelectedIndex, _tranitem1.ItemID, _tranitem2.ItemID); linktxt = string.Format("#Link:Transition:{0} <NewID> {1} {2}", listBoxTranFmt.SelectedIndex, toItem.ItemID, rangeItem.ItemID);
} }
else if ((etm & E_TransUI.StepFirst) == E_TransUI.StepFirst) else if ((etm & E_TransUI.StepFirst) == E_TransUI.StepFirst)
{ {
VETreeNode vtn = (VETreeNode)tvTran.SelectedNode; VETreeNode vtn = (VETreeNode)tvTran.SelectedNode;
if (vtn != null) if (vtn != null)
{ {
_tranitem1 = (ItemInfo)vtn.VEObject; // is this cast valid? toItem = (ItemInfo)vtn.VEObject; // is this cast valid?
linktxt = string.Format("#Link:Transition:{0} <NewID> {1}", listBoxTranFmt.SelectedIndex, _tranitem1.ItemID); linktxt = string.Format("#Link:Transition:{0} <NewID> {1}", listBoxTranFmt.SelectedIndex, toItem.ItemID);
} }
} }
if (_tranitem1 == null && (etm & E_TransUI.SectMenuAny) == E_TransUI.SectMenuAny) if (toItem == null && (etm & E_TransUI.SectMenuAny) == E_TransUI.SectMenuAny)
{ {
if (tvTran.Enabled == false || _tranitem1.IsAccPages) if (tvTran.Enabled == false || toItem.IsAccPages)
_tranitem1 = (ItemInfo)cbTranSects.SelectedItem; toItem = (ItemInfo)cbTranSects.SelectedItem;
else else
{ {
VETreeNode vtn = (VETreeNode)tvTran.SelectedNode; VETreeNode vtn = (VETreeNode)tvTran.SelectedNode;
_tranitem1 = (ItemInfo)vtn.VEObject; toItem = (ItemInfo)vtn.VEObject;
} }
if (_tranitem1==null) if (toItem==null)
{ {
MessageBox.Show("Must 'Select Section' or 'Select Step' for transition 'to'"); MessageBox.Show("Must 'Select Section' or 'Select Step' for transition 'to'");
return; return;
} }
linktxt = string.Format("#Link:Transition:{0} <NewID> {1}", listBoxTranFmt.SelectedIndex, _tranitem1.ItemID); linktxt = string.Format("#Link:Transition:{0} <NewID> {1}", listBoxTranFmt.SelectedIndex, toItem.ItemID);
} }
if (_tranitem1 == null && (((etm & E_TransUI.ProcCur) == E_TransUI.ProcCur) || ((etm & E_TransUI.ProcMenu) == E_TransUI.ProcMenu))) if (toItem == null && (((etm & E_TransUI.ProcCur) == E_TransUI.ProcCur) || ((etm & E_TransUI.ProcMenu) == E_TransUI.ProcMenu)))
{ {
_tranitem1 = (ItemInfo)cbTranProcs.SelectedItem; toItem = (ItemInfo)cbTranProcs.SelectedItem;
if (_tranitem1 == null) if (toItem == null)
{ {
MessageBox.Show("Must select an item for transition 'to'"); MessageBox.Show("Must select an item for transition 'to'");
return; return;
} }
linktxt = string.Format("#Link:Transition:{0} <NewID> {1}", listBoxTranFmt.SelectedIndex, _tranitem1.ItemID); linktxt = string.Format("#Link:Transition:{0} <NewID> {1}", listBoxTranFmt.SelectedIndex, toItem.ItemID);
} }
// Can I build the text right now?
trantxt = TransitionText.GetResolvedText(_MyRTB.MyItemInfo, listBoxTranFmt.SelectedIndex,toItem,rangeItem ?? toItem);
_MyRTB.InsertTran(trantxt, linktxt); _MyRTB.InsertTran(trantxt, linktxt);
_MyRTB.Select(_MyRTB.SelectionStart + trantxt.Length + linktxt.Length,0);
_MyRTB.Focus();
} }
#endregion #endregion
#region VariousSupportMethods #region VariousSupportMethods