Update the Progress Bar as the RO values are refreshed in Word

This commit is contained in:
Rich 2013-02-28 23:36:45 +00:00
parent 4abaceac23
commit f2c8ac8740
4 changed files with 88 additions and 8 deletions

View File

@ -572,6 +572,7 @@ namespace VEPROMS
//displayRO.EnabledChanged += new EventHandler(displayRO_EnabledChanged);
tc.Enter += new EventHandler(tc_Enter);
tc.Leave += new EventHandler(tc_Leave);
tc.StatusChanged += new DisplayTabControlStatusEvent(tc_StatusChanged);
tc.ToggleRibbonExpanded += new DisplayTabControlEvent(tc_ToggleRibbonExpanded);
this.Deactivate += new EventHandler(frmVEPROMS_Deactivate);
if (VlnSettings.DemoMode) StepRTB.MyFontFamily = GetFamily("Bookman Old Style");
@ -594,6 +595,27 @@ namespace VEPROMS
StepTabRibbon.PasteNoReturnsSetting = Properties.Settings.Default.PasteNoReturns;
StepTabRibbon.PastePlainTextSetting = Properties.Settings.Default.PastePlainText;
}
void tc_StatusChanged(object sender, DisplayTabControlStatusEventArgs args)
{
switch (args.Type)
{
case VolianStatusType.Initialize:
ProgBarMax = args.Count;
ProgBarText = args.Text;
ProgBarValue = 0;
break;
case VolianStatusType.Update:
ProgBarText = args.Text;
ProgBarValue = args.Count;
break;
case VolianStatusType.Complete:
ProgBarText = args.Text;
ProgBarValue = 0;
break;
default:
break;
}
}
void tmrShutDown_Tick(object sender, EventArgs e)
{
(sender as Timer).Enabled = false;

View File

@ -17,6 +17,13 @@ using System.Diagnostics;
namespace VEPROMS.CSLA.Library
{
public enum VolianStatusType
{
Initialize,
Update,
Complete
}
public delegate void VolianStatusChange(VolianStatusType type, int count, string text);
public partial class Document
{
public string DocumentTitle
@ -363,7 +370,7 @@ namespace VEPROMS.CSLA.Library
_MyFile = new FileInfo(value);
}
}
public void SaveFile(float length, string ascii, ItemInfo myItemInfo, bool cvtLibDoc)
public void SaveFile(float length, string ascii, ItemInfo myItemInfo, bool cvtLibDoc, VolianStatusChange statusChange)
{
// TODO: Add Try & Catch logic
if (_MyDocument == null) return;
@ -405,7 +412,7 @@ namespace VEPROMS.CSLA.Library
doc.DTS = _MyFile.LastWriteTimeUtc;
doc = doc.Save();
List<string> roids = new List<string>();
string pdfTmp = MSWordToPDF.ToPDFReplaceROs(_MyDocument, roids, myItemInfo);
string pdfTmp = MSWordToPDF.ToPDFReplaceROs(_MyDocument, roids, myItemInfo,statusChange);
FileInfo pdfFile = new FileInfo(pdfTmp);
fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
buf = new byte[pdfFile.Length];
@ -516,7 +523,7 @@ namespace VEPROMS.CSLA.Library
List<string> roids = new List<string>();
try
{
pdfTmp = MSWordToPDF.ToPDFReplaceROs(docInfo,roids,sect);
pdfTmp = MSWordToPDF.ToPDFReplaceROs(docInfo,roids,sect,null);
}
catch (Exception ex)
{
@ -548,13 +555,13 @@ namespace VEPROMS.CSLA.Library
docInfo.RefreshConfig();
return true;
}
public static string ToPDFReplaceROs(DocumentInfo doc,List<string> roids, ItemInfo sect)
public static string ToPDFReplaceROs(DocumentInfo doc, List<string> roids, ItemInfo sect, VolianStatusChange statusChange)
{
//ItemInfo sect = doc.DocumentEntries[0].MyContent.ContentItems[0];
return ToPDFReplaceROs(sect, false, roids);
return ToPDFReplaceROs(sect, false, roids, statusChange);
}
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public static string ToPDFReplaceROs(ItemInfo sect, bool openPdf, List<string> roids) //, System.Drawing.Color overrideColor, System.Windows.Forms.Form myForm)
public static string ToPDFReplaceROs(ItemInfo sect, bool openPdf, List<string> roids, VolianStatusChange statusChange) //, System.Drawing.Color overrideColor, System.Windows.Forms.Form myForm)
{
string fileName = GetFileName(sect);
// TODO: do we want to cache the word pdfs
@ -653,9 +660,14 @@ namespace VEPROMS.CSLA.Library
selxy.WholeStory();
selxy = FindXyPlot();
}
LBSelection sel = hasRos ? FindRO() : null;
LBSelection sel = MyApp.Selection;
sel.WholeStory();
if(statusChange != null) statusChange(VolianStatusType.Initialize, sel.End, "Refreshing ROs");
sel = hasRos ? FindRO() : null;
int roCount = 0;
while (sel != null)
{
if (statusChange != null) statusChange(VolianStatusType.Update, sel.Start, string.Format("{0} ROs Refreshed", ++roCount));
string val = lookup.GetROValueByAccPagID(sel.Text, spPrefix, igPrefix);
int? type = lookup.GetROTypeByAccPagID(sel.Text, spPrefix, igPrefix);
// if type is null, then set type to zero so that InsertROValue will put in "RO Not Found" for the value
@ -753,6 +765,7 @@ namespace VEPROMS.CSLA.Library
}
sel = FindRO();
}
if (statusChange != null) statusChange(VolianStatusType.Update, 0, "Creating PDF");
sel = MyApp.Selection;
sel.WholeStory();
//sel.Range.Font.Color = (LBWdColor)WordColor(PrintOverride.OverrideTextColor(System.Drawing.Color.Black));
@ -764,6 +777,7 @@ namespace VEPROMS.CSLA.Library
{
CloseAppAfterWait();
}
if (statusChange != null) statusChange(VolianStatusType.Complete, 0, "");
return fileName;
}
}

View File

@ -347,7 +347,7 @@ namespace Volian.Controls.Library
DialogResult ans = MessageBox.Show("Save as Library Document for all usages?", "Document Save", MessageBoxButtons.YesNo);
if (ans == DialogResult.No) cvtLibDoc = true;
}
MyDSOFile.SaveFile(doc.Length,doc.Ascii,MyDisplayTabItem.MyItemInfo, cvtLibDoc);
MyDSOFile.SaveFile(doc.Length, doc.Ascii, MyDisplayTabItem.MyItemInfo, cvtLibDoc, StatusChanged);
if (cvtLibDoc)
{
MyDisplayTabItem.Text = MyDisplayTabItem.MyItemInfo.TabTitle;
@ -355,6 +355,11 @@ namespace Volian.Controls.Library
MyDisplayTabItem.SetPrivateTooltip(MyDisplayTabItem.MyItemInfo.TabToolTip);
}
}
public void StatusChanged(VolianStatusType type, int count, string text)
{
DisplayTabControl tc = Parent.Parent.Parent as DisplayTabControl;
tc.ONStatusChanged(this, new DisplayTabControlStatusEventArgs(type, count, text));
}
/// <summary>
/// Before a document closes check to see if it's contents should be saved.
/// </summary>

View File

@ -12,8 +12,47 @@ using DevComponents.DotNetBar;
namespace Volian.Controls.Library
{
public delegate void DisplayTabControlEvent(object sender,EventArgs args);
public delegate void DisplayTabControlStatusEvent(object sender, DisplayTabControlStatusEventArgs args);
public partial class DisplayTabControlStatusEventArgs : EventArgs
{
private VolianStatusType _Type;
public VolianStatusType Type
{
get { return _Type; }
set { _Type = value; }
}
private int _Count;
public int Count
{
get { return _Count; }
set { _Count = value; }
}
private string _Text;
public string Text
{
get { return _Text; }
set { _Text = value; }
}
public DisplayTabControlStatusEventArgs()
{
_Type = VolianStatusType.Initialize;
_Count = 0;
_Text = "Default";
}
public DisplayTabControlStatusEventArgs(VolianStatusType type, int count, string text)
{
_Type = type;
_Count = count;
_Text = text;
}
}
public partial class DisplayTabControl : UserControl
{
public event DisplayTabControlStatusEvent StatusChanged;
public void ONStatusChanged(object Sender, DisplayTabControlStatusEventArgs args)
{
if (StatusChanged != null) StatusChanged(Sender, args);
}
public event DisplayTabControlEvent ToggleRibbonExpanded;
public void OnToggleRibbonExpanded(object sender, EventArgs args)
{