/*********************************************************************************************
* Copyright 2002 - Volian Enterprises, Inc. All rights reserved.
* Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
* ------------------------------------------------------------------------------
* $Workfile: RODefFrm.cs $ $Revision: 18 $
* $Author: Kathy $ $Date: 9/06/05 11:26a $
*
* $History: RODefFrm.cs $
*
* ***************** Version 18 *****************
* User: Kathy Date: 9/06/05 Time: 11:26a
* Updated in $/EXE/RefObj/ROEditor
* B2005-035
*
* ***************** Version 17 *****************
* User: Jsj Date: 7/02/03 Time: 9:25a
* Updated in $/EXE/RefObj/ROEditor
* made messagebox calls modal by removing the parent window reference
*
* ***************** Version 16 *****************
* User: Kathy Date: 5/21/03 Time: 12:52p
* Updated in $/EXE/RefObj/ROEditor
* B2003-041: process if only one field for RO & not always saving ro
* field name edit
*
* ***************** Version 15 *****************
* User: Kathy Date: 5/07/03 Time: 1:58p
* Updated in $/EXE/RefObj/ROEditor
* B2003-033 fixed
*
* ***************** Version 14 *****************
* User: Jsj Date: 4/14/03 Time: 3:03p
* Updated in $/EXE/RefObj/ROEditor
* changes due to RO FST file creation speed up
*
* ***************** Version 13 *****************
* User: Kathy Date: 12/10/02 Time: 2:26p
* Updated in $/EXE/RefObj/ROEditor
* fieldname special chars & bug fixes
*
* ***************** Version 12 *****************
* User: Kathy Date: 12/02/02 Time: 9:25a
* Updated in $/EXE/RefObj/ROEditor
* after edit fieldname, update menu & retval correctly
*
* ***************** Version 11 *****************
* User: Kathy Date: 12/02/02 Time: 8:30a
* Updated in $/EXE/RefObj/ROEditor
* fieldname replace chars
*
* ***************** Version 10 *****************
* User: Kathy Date: 12/02/02 Time: 6:19a
* Updated in $/EXE/RefObj/ROEditor
* status on long ops & update text box for fieldname change
*
* ***************** Version 9 *****************
* User: Kathy Date: 11/19/02 Time: 11:30a
* Updated in $/EXE/RefObj/ROEditor
* validate retval (handle {})
*
* ***************** Version 8 *****************
* User: Kathy Date: 10/15/02 Time: 2:18p
* Updated in $/EXE/RefObj/ROEditor
* new group (table)
*
* ***************** Version 7 *****************
* User: Kathy Date: 10/10/02 Time: 10:02a
* Updated in $/EXE/RefObj/ROEditor
* try to m ake xml tree & tree control in sync
*
* ***************** Version 6 *****************
* User: Kathy Date: 9/25/02 Time: 2:31p
* Updated in $/EXE/RefObj/ROEditor
* multitxt->variable
*
* ***************** Version 5 *****************
* User: Kathy Date: 9/25/02 Time: 9:57a
* Updated in $/EXE/RefObj/ROEditor
* dev
*
* ***************** Version 4 *****************
* User: Kathy Date: 9/19/02 Time: 10:04a
* Updated in $/EXE/RefObj/ROEditor
* mods for subgroup apply below node. if mod menutitle template, update
* menu titles from node down.
*
* ***************** Version 3 *****************
* User: Kathy Date: 9/11/02 Time: 1:15p
* Updated in $/EXE/RefObj/ROEditor
* vlnxml
*
* ***************** Version 2 *****************
* User: Kathy Date: 8/28/02 Time: 10:57a
* Updated in $/EXE/RefObj/ROEditor
*********************************************************************************************/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Schema;
using System.Text;
using ROFields;
using RODBInterface;
using VlnStatus;
namespace ROEditor
{
///
/// Summary description for RODefinition.
///
public class RODefFrm : System.Windows.Forms.Form
{
private System.Windows.Forms.Label lblGroup;
private System.Windows.Forms.Label lblRetVal;
private System.Windows.Forms.Label lblMenuVal;
private System.Windows.Forms.TextBox tbRetVal;
private System.Windows.Forms.TextBox tbMenuVal;
private System.Windows.Forms.Label lblGroupText;
private System.Windows.Forms.GroupBox gbFields;
private System.Windows.Forms.Label lblInUse;
private System.Windows.Forms.Label lblAvail;
private System.Windows.Forms.ListBox lboxInUse;
private System.Windows.Forms.ListBox lboxAvail;
private System.Windows.Forms.Button btnAdd;
private System.Windows.Forms.Button btnEdit;
private System.Windows.Forms.Button btnRemove;
private System.Windows.Forms.Button btnNew;
///
/// Required designer variable.
///
private System.ComponentModel.Container components = null;
private RODB myrodb;
ArrayList AvailList;
private System.Windows.Forms.Button btnOK;
private System.Windows.Forms.Button btnCancel;
ArrayList InUseList;
private VlnXmlElement elem;
private uint editlevel; // flag for group definition or ro definition
private string strFieldsInUse;
private string origFieldsInUse;
private string origRetVal;
private string origMenuItem;
StringBuilder parseerror;
private int hi, lo;
private int dbtype;
// pass in Group Element
public RODefFrm(VlnXmlElement pelem, RODB rodb, string fields, string grptxt, int idbtype)
{
myrodb = rodb;
strFieldsInUse = fields;
dbtype = idbtype;
if (fields == "FieldsInUse") // not a group level edit.
editlevel = (uint) RecordType.Schema;
else
editlevel = (uint) RecordType.GroupSchema;
elem = pelem;
//
// Required for Windows Form Designer support
//
InitializeComponent();
if(editlevel==(uint)RecordType.GroupSchema)this.Text = "Subgroup Definition";
FillInData(grptxt);
}
///
/// Clean up any resources being used.
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
private void FillInAvailable()
{
ROField rof;
// put the items in the AvailList box.
for (int i=0; i< AvailList.Count; i++)
{
rof = (ROField) AvailList[i];
if (rof.GetFieldname != null) // DO YET: Why null?
this.lboxAvail.Items.Add(rof.GetFieldname);
}
}
private void SetUpListBoxes()
{
ROField rof;
// Get list of available fields (all fields in this type, i.e. rectype = 'Schema'
// or 'GroupSchema') and get list of inuse from the schema definition.
AvailList = myrodb.RODB_GetFields(elem, editlevel);
InUseList = myrodb.RODB_GetFieldsInUse(elem, AvailList, strFieldsInUse, ref origFieldsInUse, true);
FillInAvailable();
// set up the listbox for inuse items.
if (InUseList != null)
{
// add items to the InUseList box.
for (int i=0; i< InUseList.Count; i++)
{
rof = (ROField) InUseList[i];
if (rof.GetFieldname != null) //DO YET: why null?
this.lboxInUse.Items.Add(rof.GetFieldname);
}
}
}
private void DoValueTextBoxes()
{
string menuitm, retval;
if (editlevel == (uint) RecordType.GroupSchema)
{
menuitm = elem.GetAttribute("GroupMenuItem");
this.tbRetVal.Visible = false;
this.lblRetVal.Visible = false;
VlnXmlElement parent;
parent = (VlnXmlElement) elem.ParentNode;
while (parent != null && (menuitm == ""))
{
// walk up tree to get parent and check for data there
if (menuitm == "") menuitm = parent.GetAttribute("GroupMenuItem");
if (parent.Name != "RO_Root")
parent = (VlnXmlElement) parent.ParentNode;
else
parent = null;
}
if (menuitm !="")
this.tbMenuVal.Text = CvtFldToUserFld(menuitm);
else
this.tbMenuVal.Text = "";
}
else
{
menuitm = elem.GetAttribute("MenuItem");
retval = elem.GetAttribute("RetVal");
this.tbRetVal.Visible = true;
this.lblRetVal.Visible = true;
VlnXmlElement parent;
parent = (VlnXmlElement) elem.ParentNode;
while (parent != null && (menuitm == "" || retval==""))
{
// walk up tree to get parent and check for data there
if (menuitm == "") menuitm = parent.GetAttribute("MenuItem");
if (retval == "") retval = parent.GetAttribute("RetVal");
if (parent.Name != "RO_Root")
parent = (VlnXmlElement) parent.ParentNode;
else
parent = null;
}
if (menuitm!="")
this.tbMenuVal.Text = CvtFldToUserFld(menuitm);
else
this.tbMenuVal.Text = "";
if (retval!="")
this.tbRetVal.Text = CvtFldToUserFld(retval);
else
this.tbRetVal.Text = "";
}
}
private void FillInData(string grptxt)
{
this.lblGroupText.Text = grptxt;
DoValueTextBoxes();
SetUpListBoxes();
lboxInUse.GotFocus += new EventHandler(this.lboxInUse_GotFocus);
lboxAvail.GotFocus += new EventHandler(this.lboxAvail_GotFocus);
// save copies of local data, so if there is a change, we know we must save them.
origRetVal=this.tbRetVal.Text;
origMenuItem=this.tbMenuVal.Text;
// if this is a database level definition & it's a user defined database,
// the okay button is disabled until a field is used.
if (elem.ParentNode.Name == "RO_Root" && dbtype==3)
{
string attr;
if (editlevel==(uint)RecordType.Schema)
attr = elem.GetAttribute("FieldsInUse");
else
attr = elem.GetAttribute("GroupFieldsInUse");
if (attr==null || attr=="") btnOK.Enabled=false;
}
}
protected void lboxInUse_GotFocus (object sender, EventArgs e)
{
lboxAvail.ClearSelected();
this.btnRemove.Enabled = true;
this.btnAdd.Enabled = false;
this.btnEdit.Enabled = true;
}
protected void lboxAvail_GotFocus (object sender, EventArgs e)
{
lboxInUse.ClearSelected();
this.btnAdd.Enabled = true;
this.btnRemove.Enabled = false;
this.btnEdit.Enabled = true;
}
private void btnRemove_Click(object sender, System.EventArgs e)
{
//get item in lboxInUse (in use list) and remove it from there
// and add it to the lboxAvail list.
if (lboxInUse.SelectedIndex >=0 )
{
// get the selected item and its string. Remove it from the listbox,
// add it to the available array list & listbox & then remove it from
// the inuse array list.
int indx = lboxInUse.SelectedIndex;
lboxInUse.Items.RemoveAt(indx);
// copy if over to availlist
ROField rof = (ROField) InUseList[indx];
ROField copyrof = new ROField(rof.GetFieldname,rof.GetRecID,rof.GetMasterRecID, rof.GetFieldType);
AvailList.Add(copyrof);
lboxAvail.Items.Add(copyrof.GetFieldname);
InUseList.RemoveAt(indx);
lboxAvail.Refresh();
lboxInUse.Refresh();
}
}
private void btnAdd_Click(object sender, System.EventArgs e)
{
//get item in lboxInUse (in use list) and remove it from there
// and add it to the lboxAvail list.
if (lboxAvail.SelectedIndex >=0 )
{
// get the selected item and its string. Remove it from the listbox,
// add it to the inuse array list & listbox & then remove it from
// the avail(able) array list.
int indx = lboxAvail.SelectedIndex;
lboxAvail.Items.RemoveAt(indx);
// copy if over to availlist
ROField rof = (ROField) AvailList[indx];
ROField copyrof = new ROField(rof.GetFieldname,rof.GetRecID,rof.GetMasterRecID,rof.GetFieldType);
InUseList.Add(copyrof);
lboxInUse.Items.Add(copyrof.GetFieldname);
AvailList.RemoveAt(indx);
lboxAvail.Refresh();
lboxInUse.Refresh();
btnOK.Enabled=true;
}
}
private void syntax(string prob,int start, int end)
{
lo=start;
hi=end;
parseerror.Append("Invalid Syntax - ");
parseerror.Append(prob);
}
private void missingDelimiter(char chr,int start,int end)
{
lo=start;
hi=end;
string delim = "{}{<><";
int delindx;
delindx = delim.IndexOf(chr,0);
parseerror.Append("Couldn't find matching ");
if (delindx >-1)
parseerror.Append(delim.Substring(delindx,1));
else
parseerror.Append("?");
}
private bool isWhiteSpace(char chr)
{
return(chr!=0 && " \t\n\r".IndexOf(chr)!=-1);
}
private int endsIn(char chr, string str, int start, int end)
{
while(start <= end && isWhiteSpace(str[end]))end--;
if(start <= end && str[end]==chr)return 1;
return 0;
}
private void processBrace(string str, int start, int end)
{
int where=str.IndexOfAny("<>{}=".ToCharArray(),start,end-start);
if(where!=0)
{
char chr=str[where];
switch(chr)
{
case '{':
// verify that this ends in a }
if(endsIn('}',str,where,end)==0)
{
syntax("should end with }",where,end);
}
break;
case '<':
syntax("< not permitted here",where,where);
break;
case '}':
syntax("} not permitted here",start,where);
break;
case '>':
syntax("> not permitted here",start,where);
break;
}
}
}
private int findMatchingBrace(string str, int start, int end)
{
int where=start+1;
int last=where;
int termlevel=1;
while(hi==0 && where <= end && termlevel!=0)
{
char chr=str[where];
switch (chr)
{
case '{':
where=findMatchingBrace(str,where,end);
where++;
break;
case '}':
termlevel=0;
break;
case '>':
missingDelimiter(chr,last,where);
break;
case '<':
int next;
next=str.IndexOfAny("{}<>".ToCharArray(),where+1,end-where);
if(next==0)
{
missingDelimiter(chr,last,end);
}
else if(str[next]!='>')
{
missingDelimiter(chr,last,next);
}
else
{
last=where=next+1;
}
break;
default:
where++;
break;
}
}
if(hi==0 && termlevel!=0)
{
missingDelimiter('{',start,end);
}
return where;
}
private bool ValidReturnFieldSpec(string str, int start, int end)
{
if (parseerror != null)
parseerror.Remove(0,parseerror.Length);
else
parseerror = new StringBuilder();
int where=start;
int last=start;
hi=lo=0;
while(hi==0 && where <= end)
{
char chr=str[where];
switch (chr)
{
case '{':
int next;
next=findMatchingBrace(str,where,end);
if(hi==0)
{
processBrace(str,where+1,next-1);
where=next+1;
last=where;
}
break;
case '}':
missingDelimiter(chr,last,where);
break;
case '>':
missingDelimiter(chr,last,where);
break;
case '<':
int strt=where+1;
where = str.IndexOfAny("<>{}".ToCharArray(),where+1,end-where);
if (where==0)
missingDelimiter('<',start,end);
else if (str[where]=='>')
{
string inusename = str.Substring(strt,where-strt);
// now check field name.
bool found = false;
string rofname;
for (int i=0; i0)
{
MessageBox.Show(parseerror.ToString(),"Error in validating return value");
return false;
}
else
return true;
}
private bool ValidFieldSpec(string field)
{
int left = field.IndexOf("<");
int right;
int stindx = 0;
while (left != -1)
{
// get right bracket and then check for valid field & if commas with
// this, check for integer values.
right = field.IndexOf(">",stindx);
if (right == -1)
{
MessageBox.Show("Missing > in Menu value.");
return false;
}
string substring = field.Substring(left+1,right-left-1);
// do comma parts now.
string inusename;
int comma1 = substring.IndexOf(",");
if (comma1 != -1)
{
// get any numbers for formatting & check for ints.
int comma2 = substring.IndexOf(",",comma1+1);
if (comma2 != -1) // two ints.
{
if (comma2-comma1 > 1) // first format field - not empty
{
string int1 = substring.Substring(comma1+1,comma2-comma1-1);
try
{
int l = System.Convert.ToInt32(int1);
}
catch (Exception e)
{
MessageBox.Show(e.Message,"invalid format number");
return false;
}
}
if (comma2field.Length)
left = -1;
else
{
stindx=right+1;
left = field.IndexOf("<",left+1);
}
}
return true;
}
private bool ProcessRROMenuChange(VlnXmlElement mnuele, string newtmpl)
{
bool success;
XmlNode chldnode = (XmlNode) mnuele.FirstChild;
VlnXmlElement echild;
while (chldnode != null)
{
if (chldnode is VlnXmlElement)
{
echild = (VlnXmlElement) chldnode;
if (echild.Name != "vlnGroup")
{
// If this is a group defintion subtree it will only have one
// child, which is the text definition for the subgroup. Don't
// include these in the tree.
int levelCnt = chldnode.ChildNodes.Count;
string TheMenuTitle = echild.GetAttribute("MenuTitle");
if ((levelCnt >= 1) && !TheMenuTitle.Equals(""))
{
string mnustring = echild.GetMenuString(newtmpl,false);
echild.SetAttribute("MenuTitle",mnustring);
success = myrodb.RODB_WriteRO(echild);
if (success==false) return false;
}
}
}
chldnode = chldnode.NextSibling;
}
return true;
}
private bool UpdateMenuTitles(VlnXmlElement mnuele, string newtmpl, string stredittype, VlnStatusMessage StatMsgWindow)
{
// For this group and below in the xml tree, update menu titles using the new
// template.
bool success;
string haskids;
string kidsloaded;
XmlNode node = (XmlNode) mnuele.FirstChild;
VlnXmlElement child;
while (node != null)
{
if (node is VlnXmlElement)
{
child = (VlnXmlElement) node;
// If this is a group menu edit, process group nodes, otherwise
// process rros. For both, when hitting a group node, check that
// it doesn't have a menu item string redefining the menu template.
if (child.Name == "vlnGroup" && child.HasAttribute(stredittype) == false)
{
haskids = child.GetAttribute("HasChild");
kidsloaded = child.GetAttribute("ChildLoaded");
if (haskids == "True" && kidsloaded == "False" )
{
myrodb.RODB_GetChildData(child,true);
child.SetAttribute("ChildLoaded","True");
}
StatMsgWindow.StatusMessage = child.GetAttribute("MenuTitle");
success = UpdateMenuTitles(child,newtmpl, stredittype, StatMsgWindow);
if (success == false) return false;
if (editlevel == (uint) RecordType.Schema)
{
success = ProcessRROMenuChange(mnuele, newtmpl);
if (success==false)return false;
}
else if (editlevel == (uint) RecordType.GroupSchema)
{
string mnustring = child.GetMenuString(newtmpl,true);
child.SetAttribute("MenuTitle",mnustring);
success = myrodb.RODB_WriteGroup(child,child);
if (success==false) return false;
}
}
}
node = node.NextSibling;
}
// if doing RO menu updates, do all at the current level, otherwise, skip it
// because it is a group menu item.
if (stredittype == "MenuItem")
{
success = ProcessRROMenuChange(mnuele, newtmpl);
if (success==false) return false;
}
return true;
}
private string CvtUserFldToFld(string fldname)
{
if (fldname.Length < 2)
return fldname;
// a digit cannot start an xml fieldname, prepend a "__" to it.
string tmp0;
if (char.IsDigit(fldname,0))
tmp0 = "__" + fldname;
else
tmp0 = fldname;
// an xml fieldname cannot have a space, change it to a "__"
string tmpstr = tmp0.Replace(" ","__");
int len = tmpstr.Length;
int cnt = 0;
// this is also our sequence that tells us the follow 3 digits is the ascii number (base 10)
// of the character we replaced.
string OKpunch = "-._";
string outstr = "";
int decval;
while (cnt < len)
{
char tmpchr = tmpstr[cnt];
if(!char.IsLetterOrDigit(tmpchr)&& (OKpunch.IndexOf(tmpchr) == -1) )
{
decval = tmpchr;
outstr += OKpunch + decval.ToString("D3");
}
else
{
outstr += tmpchr.ToString();
}
cnt++;
}
return outstr;
}
private string CvtFldToUserFld(string fldname)
{
string tmpstr0;
if (fldname.Length < 2) return fldname;
// an xml element name cannot begin with a digit. we had prepended a "__"
if (fldname.Substring(0,2) == "__" && char.IsDigit(fldname,2))
tmpstr0 = fldname.Substring(2,fldname.Length-2);
else
tmpstr0 = fldname;
// an xml element name cannot have a space, we converted to a "__"
string tmpstr = tmpstr0.Replace("__"," ");
int len = tmpstr.Length;
int cur = 0;
// this is also our sequence that tells us the follow 3 digits is the ascii number (base 10)
// of the character we replaced.
string OKpunch = "-._";
string outstr = "";
int decval, indx;
if (tmpstr.Length <6)
indx = -1;
else
indx=tmpstr.IndexOf(OKpunch,cur);
string asc_spchar;
while (indx>=0)
{
outstr += tmpstr.Substring(cur,indx-cur);
asc_spchar = tmpstr.Substring(indx+3,3);
decval = System.Convert.ToInt16(asc_spchar,10);
outstr += System.Convert.ToChar(decval).ToString();
cur = indx+6;
if (cur+6 > len)
indx = -1;
else
indx = tmpstr.IndexOf(OKpunch,cur);
}
if (cur= 0)
rof = (ROField) InUseList[indx];
else
{
isInSelList = false;
indx = lboxAvail.SelectedIndex;
if (indx >= 0)
rof = (ROField) AvailList[indx];
else
{
// message - bad one.
return;
}
}
uint ftype = rof.GetFieldType;
if (ftype == (uint)FieldTypes.FrmtSingleTxt || ftype == (uint)FieldTypes.VariableTxt ||
ftype == (uint)FieldTypes.SingleTxt || ftype == (uint)FieldTypes.Table ||
ftype == (uint)FieldTypes.XYPlot || ftype == (uint)FieldTypes.Image)
{
FieldTypeDefFrm nwtyp = new FieldTypeDefFrm(rof, myrodb, elem, editlevel, AvailList, InUseList);
nwtyp.ShowDialog();
}
else
{
FieldCombFrm nwcomb = new FieldCombFrm(rof, myrodb, elem, editlevel, rof.GetFieldname, AvailList, InUseList);
nwcomb.ShowDialog();
}
// Update Lists & Text boxes to represent any modified text.
if (isInSelList)
{
lboxInUse.Items.Clear();
// add items to the InUseList box.
for (int i=0; i< InUseList.Count; i++)
{
rof = (ROField) InUseList[i];
if (rof.GetFieldname != null)
this.lboxInUse.Items.Add(rof.GetFieldname);
}
}
else
{
lboxAvail.Items.Clear();
// add items to the AvailList box.
for (int i=0; i< AvailList.Count; i++)
{
rof = (ROField) AvailList[i];
if (rof.GetFieldname != null)
this.lboxAvail.Items.Add(rof.GetFieldname);
}
}
}
private void btnNew_Click(object sender, System.EventArgs e)
{
ROField rof = new ROField(null,null,null,0);
FieldTypeDefFrm nwtyp = new FieldTypeDefFrm(rof, myrodb, elem, editlevel, AvailList, InUseList);
nwtyp.ShowDialog();
if (rof.GetFieldname != null)
{
AvailList.Add(rof);
lboxAvail.Items.Add(rof.GetFieldname);
}
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.lblGroup = new System.Windows.Forms.Label();
this.lblRetVal = new System.Windows.Forms.Label();
this.lblMenuVal = new System.Windows.Forms.Label();
this.tbRetVal = new System.Windows.Forms.TextBox();
this.tbMenuVal = new System.Windows.Forms.TextBox();
this.lblGroupText = new System.Windows.Forms.Label();
this.gbFields = new System.Windows.Forms.GroupBox();
this.btnNew = new System.Windows.Forms.Button();
this.btnRemove = new System.Windows.Forms.Button();
this.btnEdit = new System.Windows.Forms.Button();
this.btnAdd = new System.Windows.Forms.Button();
this.lboxAvail = new System.Windows.Forms.ListBox();
this.lboxInUse = new System.Windows.Forms.ListBox();
this.lblAvail = new System.Windows.Forms.Label();
this.lblInUse = new System.Windows.Forms.Label();
this.btnOK = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button();
this.gbFields.SuspendLayout();
this.SuspendLayout();
//
// lblGroup
//
this.lblGroup.Location = new System.Drawing.Point(24, 0);
this.lblGroup.Name = "lblGroup";
this.lblGroup.Size = new System.Drawing.Size(88, 16);
this.lblGroup.TabIndex = 0;
this.lblGroup.Text = "Group:";
this.lblGroup.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// lblRetVal
//
this.lblRetVal.Location = new System.Drawing.Point(16, 32);
this.lblRetVal.Name = "lblRetVal";
this.lblRetVal.Size = new System.Drawing.Size(96, 16);
this.lblRetVal.TabIndex = 1;
this.lblRetVal.Text = "Return Value:";
this.lblRetVal.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// lblMenuVal
//
this.lblMenuVal.Location = new System.Drawing.Point(16, 64);
this.lblMenuVal.Name = "lblMenuVal";
this.lblMenuVal.Size = new System.Drawing.Size(96, 16);
this.lblMenuVal.TabIndex = 2;
this.lblMenuVal.Text = "Menu Value:";
this.lblMenuVal.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// tbRetVal
//
this.tbRetVal.Location = new System.Drawing.Point(120, 32);
this.tbRetVal.Name = "tbRetVal";
this.tbRetVal.Size = new System.Drawing.Size(464, 22);
this.tbRetVal.TabIndex = 4;
this.tbRetVal.Text = "textBox1";
//
// tbMenuVal
//
this.tbMenuVal.Location = new System.Drawing.Point(120, 64);
this.tbMenuVal.Name = "tbMenuVal";
this.tbMenuVal.Size = new System.Drawing.Size(464, 22);
this.tbMenuVal.TabIndex = 5;
this.tbMenuVal.Text = "textBox1";
//
// lblGroupText
//
this.lblGroupText.Location = new System.Drawing.Point(120, 0);
this.lblGroupText.Name = "lblGroupText";
this.lblGroupText.Size = new System.Drawing.Size(464, 16);
this.lblGroupText.TabIndex = 7;
this.lblGroupText.Text = "label1";
//
// gbFields
//
this.gbFields.Controls.AddRange(new System.Windows.Forms.Control[] {
this.btnNew,
this.btnRemove,
this.btnEdit,
this.btnAdd,
this.lboxAvail,
this.lboxInUse,
this.lblAvail,
this.lblInUse});
this.gbFields.Location = new System.Drawing.Point(8, 112);
this.gbFields.Name = "gbFields";
this.gbFields.Size = new System.Drawing.Size(704, 224);
this.gbFields.TabIndex = 8;
this.gbFields.TabStop = false;
this.gbFields.Text = "Fields";
//
// btnNew
//
this.btnNew.Location = new System.Drawing.Point(608, 48);
this.btnNew.Name = "btnNew";
this.btnNew.Size = new System.Drawing.Size(80, 24);
this.btnNew.TabIndex = 7;
this.btnNew.Text = "New...";
this.btnNew.Click += new System.EventHandler(this.btnNew_Click);
//
// btnRemove
//
this.btnRemove.Enabled = false;
this.btnRemove.Location = new System.Drawing.Point(272, 144);
this.btnRemove.Name = "btnRemove";
this.btnRemove.Size = new System.Drawing.Size(80, 24);
this.btnRemove.TabIndex = 6;
this.btnRemove.Text = "Remove>>";
this.btnRemove.Click += new System.EventHandler(this.btnRemove_Click);
//
// btnEdit
//
this.btnEdit.Enabled = false;
this.btnEdit.Location = new System.Drawing.Point(272, 96);
this.btnEdit.Name = "btnEdit";
this.btnEdit.Size = new System.Drawing.Size(80, 24);
this.btnEdit.TabIndex = 5;
this.btnEdit.Text = "Edit...";
this.btnEdit.Click += new System.EventHandler(this.btnEdit_Click);
//
// btnAdd
//
this.btnAdd.Enabled = false;
this.btnAdd.Location = new System.Drawing.Point(272, 48);
this.btnAdd.Name = "btnAdd";
this.btnAdd.Size = new System.Drawing.Size(80, 24);
this.btnAdd.TabIndex = 4;
this.btnAdd.Text = "<< Add";
this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
//
// lboxAvail
//
this.lboxAvail.ItemHeight = 14;
this.lboxAvail.Location = new System.Drawing.Point(376, 48);
this.lboxAvail.Name = "lboxAvail";
this.lboxAvail.Size = new System.Drawing.Size(216, 144);
this.lboxAvail.TabIndex = 3;
//
// lboxInUse
//
this.lboxInUse.ItemHeight = 14;
this.lboxInUse.Location = new System.Drawing.Point(24, 48);
this.lboxInUse.Name = "lboxInUse";
this.lboxInUse.Size = new System.Drawing.Size(216, 144);
this.lboxInUse.TabIndex = 2;
//
// lblAvail
//
this.lblAvail.Location = new System.Drawing.Point(384, 24);
this.lblAvail.Name = "lblAvail";
this.lblAvail.Size = new System.Drawing.Size(80, 16);
this.lblAvail.TabIndex = 1;
this.lblAvail.Text = "Available:";
//
// lblInUse
//
this.lblInUse.Location = new System.Drawing.Point(24, 24);
this.lblInUse.Name = "lblInUse";
this.lblInUse.Size = new System.Drawing.Size(64, 16);
this.lblInUse.TabIndex = 0;
this.lblInUse.Text = "In Use:";
//
// btnOK
//
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btnOK.Location = new System.Drawing.Point(512, 376);
this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(88, 24);
this.btnOK.TabIndex = 9;
this.btnOK.Text = "OK";
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
//
// btnCancel
//
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Location = new System.Drawing.Point(616, 376);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(80, 24);
this.btnCancel.TabIndex = 10;
this.btnCancel.Text = "Cancel";
//
// RODefFrm
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
this.ClientSize = new System.Drawing.Size(792, 437);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.btnCancel,
this.btnOK,
this.gbFields,
this.lblGroupText,
this.tbMenuVal,
this.tbRetVal,
this.lblMenuVal,
this.lblRetVal,
this.lblGroup});
this.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.Name = "RODefFrm";
this.Text = "Referenced Object Definition";
this.gbFields.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
}
}