John 1cc722cb67 Fixed logic to handle a user (sub) format as the procedure set default format
added more robust logic to handle outside transitions
supporting logic to add an additional annotation when multiple possibilities for an outside transition is possible
2013-06-12 19:00:37 +00:00

128 lines
4.5 KiB
C#

// ========================================================================
// Copyright 2006 - Volian Enterprises, Inc. All rights reserved.
// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
// ------------------------------------------------------------------------
// $Workfile: $ $Revision: $
// $Author: $ $Date: $
//
// $History: $
// ========================================================================
using System;
using System.IO;
using System.Collections;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Serialization;
using VEPROMS.CSLA.Library;
namespace Utils
{
/// <summary>
/// Summary description for CurSet.
/// </summary>
public class CurSet
{
private int NUMCBTEXTYPE = 5; // number of changebar text types.
public string PathName;
private string DefaultPlantFmt;
public CurSet(string pname)
{
PathName = pname;
DefaultPlantFmt = null;
}
private string ReadTheString(BinaryReader bw, int maxlen)
{
StringBuilder retStr = new StringBuilder(maxlen+1);
// read a series of characters until a null is found.
char ac;
bool done = false;
while(done==false)
{
ac = bw.ReadChar();
if (ac=='\0')
done=true;
else
retStr.Append(ac);
}
return retStr.ToString();
}
public FolderConfig Convert(FolderConfig cfg)
{
BinaryReader br;
ArrayList DefaultUserCBMsg = new ArrayList(2);
FileStream fs;
FileInfo fi = new FileInfo(PathName);
try
{
fs = fi.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite );
br = new BinaryReader(fs,System.Text.ASCIIEncoding.ASCII);
}
catch (Exception e)
{
DataLoader.frmLoader._MyLog.ErrorFormat("Error migrating {0} Curset.dat, error = {1}", PathName, e.Message);
return cfg;
}
try
{
sbyte tmpsbyte;
string tmpstring;
tmpsbyte=br.ReadSByte(); // DefaultDestination not used
// the next byte has three settings embedded in it, the type of change
// bar (Print_ChangeBar), the change bar location and its text.
tmpsbyte= br.ReadSByte();
cfg.Print_ChangeBar = (PrintChangeBar)((int)tmpsbyte > 2 ? 3 : (int)tmpsbyte);
if (tmpsbyte > 2)
{
cfg.Print_ChangeBarLoc = (PrintChangeBarLoc)((tmpsbyte - 3) / NUMCBTEXTYPE);
int ts = (tmpsbyte - 3) % NUMCBTEXTYPE;
cfg.Print_ChangeBarText = (PrintChangeBarText)((tmpsbyte - 3) % NUMCBTEXTYPE);
}
else
{
cfg.Print_ChangeBarLoc = PrintChangeBarLoc.WithText;
cfg.Print_ChangeBarText = PrintChangeBarText.DateChgID;
}
cfg.Print_NumCopies=br.ReadSByte();
cfg.Print_Pagination=(PrintPagination) br.ReadSByte();
tmpstring = ReadTheString(br,4); // DefaultPrinter not used
cfg.Format_Plant = ReadTheString(br,10);
DefaultPlantFmt = cfg.Format_Plant;
tmpstring = ReadTheString(br, 128); // DefaultDestFName not used
tmpsbyte = br.ReadSByte(); // DefaultPlotterType not used
tmpsbyte = br.ReadSByte(); // DefaultPlotterPort not used
tmpsbyte = br.ReadSByte(); // DefaultCIEType not used.
for (int i=0;i<8;i++) // DefPenColors[8] not used
tmpsbyte = br.ReadSByte();
cfg.Print_Watermark = (PrintWatermark)br.ReadSByte();
cfg.Print_UserCBMess1 = ReadTheString(br, 10);
cfg.Print_UserCBMess2 = ReadTheString(br, 10);
tmpsbyte = br.ReadSByte(); // DontPrintStatusTree not used
cfg.Print_UserFormat = ReadTheString(br, 10);
//tmpsbyte = br.ReadSByte();
//cfg.Print_Duplex = tmpsbyte == 0 ? true : false;
if (cfg.Print_UserFormat.Trim() != string.Empty)
DefaultPlantFmt += " " + cfg.Print_UserFormat;
br.Close();
}
catch(Exception e)
{
if(br!=null) br.Close();
DataLoader.frmLoader._MyLog.ErrorFormat("Error migrating {0} Curset.dat, error = {1}", PathName, e.Message);
}
fs.Close();
return cfg;
}
public string GetDefFmt()
{
return DefaultPlantFmt;
}
}
}