This commit is contained in:
447
PROMS/VEPROMS User Interface/frmProcedureProperties.cs
Normal file
447
PROMS/VEPROMS User Interface/frmProcedureProperties.cs
Normal file
@@ -0,0 +1,447 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using VEPROMS.Properties;
|
||||
using DescriptiveEnum;
|
||||
using DevComponents.DotNetBar;
|
||||
using DevComponents.DotNetBar.Controls;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
public partial class frmProcedureProperties : DevComponents.DotNetBar.Office2007Form
|
||||
{
|
||||
private string _DefaultFormatName = null;
|
||||
private string _DefaultPagination = null;
|
||||
private string _DefaultWatermark = null;
|
||||
private string _DefaultChgBarType = null;
|
||||
private string _DefaultChgBarLoc = null;
|
||||
private string _DefaultChgBarText = null;
|
||||
private string _DefaultChgBarUsrMsg1 = null;
|
||||
private string _DefaultChgBarUsrMsg2 = null;
|
||||
private string _DefaultFormatColumns = null;
|
||||
private bool _Initializing;
|
||||
private ProcedureConfig _ProcedureConfig;
|
||||
|
||||
public frmProcedureProperties(ProcedureConfig procedureConfig)
|
||||
{
|
||||
_ProcedureConfig = procedureConfig;
|
||||
_Initializing = true;
|
||||
InitializeComponent();
|
||||
btnGeneral.PerformClick(); // always start with General tab or button
|
||||
_Initializing = false;
|
||||
// build the title bar caption
|
||||
this.Text = string.Format("{0} {1} Properties", procedureConfig.Number, procedureConfig.Title);
|
||||
}
|
||||
|
||||
private void ppBtnOK_Click(object sender, EventArgs e)
|
||||
{
|
||||
DialogResult = DialogResult.OK;
|
||||
procedureConfigBindingSource.EndEdit();
|
||||
// Save Default settings for User
|
||||
//
|
||||
// Save whether we should display the default values on this property page
|
||||
Settings.Default.ShowDefaultProcedureProp = ppCbShwDefSettings.Checked;
|
||||
Settings.Default.Save();
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void ppBtnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
procedureConfigBindingSource.CancelEdit();
|
||||
this.Close();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Use the ParentLookup to grab the default values
|
||||
/// - set the watermark property (where applicable) of the control with that value
|
||||
/// - set the default setting labels with that value
|
||||
/// ** the default setting labels appear when the Show Default Values checkbox is checked by the user.
|
||||
/// </summary>
|
||||
private void FindDefaultValues()
|
||||
{
|
||||
_ProcedureConfig.ParentLookup = true;
|
||||
// Get the default format name
|
||||
_DefaultFormatName = _ProcedureConfig.DefaultFormatSelection;
|
||||
SetupDefault(_DefaultFormatName, ppLblFormatDefault, ppCmbxFormat);
|
||||
|
||||
// Get the default Change Bar Type
|
||||
_DefaultChgBarType = _ProcedureConfig.Print_ChangeBar.ToString();
|
||||
SetupDefault(EnumDescConverter.GetEnumDescription(_ProcedureConfig.Print_ChangeBar), ppLblChangeBarTypeDefault, ppCmbxChangeBarType);
|
||||
|
||||
// Get the default Change Bar Location
|
||||
_DefaultChgBarLoc = _ProcedureConfig.Print_ChangeBarLoc.ToString();
|
||||
SetupDefault(EnumDescConverter.GetEnumDescription(_ProcedureConfig.Print_ChangeBarLoc), ppLblChgBarPosDefault, ppCmbxChgBarPos);
|
||||
|
||||
// Get the default Change Bar text
|
||||
_DefaultChgBarText = _ProcedureConfig.Print_ChangeBarText.ToString();
|
||||
SetupDefault(EnumDescConverter.GetEnumDescription(_ProcedureConfig.Print_ChangeBarText), ppLblChgBarTxtTypeDefault, ppCmbxChgBarTxtType);
|
||||
|
||||
// Get the default User Change Bar Message 1
|
||||
_DefaultChgBarUsrMsg1 = _ProcedureConfig.Print_UserCBMess1;
|
||||
if (!(_DefaultChgBarUsrMsg1.Equals("")))
|
||||
ppLblChgBarUserMsgOneDefault.Text = string.Format("({0})", _DefaultChgBarUsrMsg1);
|
||||
|
||||
// Get the default User Change Bar Message 2
|
||||
_DefaultChgBarUsrMsg2 = _ProcedureConfig.Print_UserCBMess2;
|
||||
if (!(_DefaultChgBarUsrMsg2.Equals("")))
|
||||
ppLblChgBarUserMsgTwoDefault.Text = string.Format("({0})", _DefaultChgBarUsrMsg2);
|
||||
|
||||
// Get the default Print Pagination
|
||||
_DefaultPagination = _ProcedureConfig.Print_Pagination.ToString();
|
||||
SetupDefault(EnumDescConverter.GetEnumDescription(_ProcedureConfig.Print_Pagination), ppLblPaginationDefault, ppCmbxPagination);
|
||||
|
||||
// Get the default Watermark
|
||||
_DefaultWatermark = _ProcedureConfig.Print_Watermark.ToString();
|
||||
SetupDefault(EnumDescConverter.GetEnumDescription(_ProcedureConfig.Print_Watermark), ppLblWatermarkDefault, ppCmbxWatermark);
|
||||
|
||||
// Get the default Format Columns
|
||||
_DefaultFormatColumns = _ProcedureConfig.Format_Columns.ToString();
|
||||
SetupDefault(EnumDescConverter.GetEnumDescription(_ProcedureConfig.Format_Columns), ppLblStpEditorColsDefault, ppCmbxStpEditorCols);
|
||||
|
||||
_ProcedureConfig.ParentLookup = false;
|
||||
}
|
||||
|
||||
private void frmProcedureProperties_Load(object sender, EventArgs e)
|
||||
{
|
||||
_Initializing = true;
|
||||
procedureConfigBindingSource.DataSource = _ProcedureConfig;
|
||||
|
||||
formatInfoListBindingSource.DataSource = FormatInfoList.Get();
|
||||
|
||||
// Get the saved settings for this user
|
||||
//
|
||||
// This setting tells us if we should display the default values on this property page
|
||||
ppCbShwDefSettings.Checked = (Settings.Default["ShowDefaultProcedureProp"] != null) ? Settings.Default.ShowDefaultProcedureProp : false;
|
||||
|
||||
// Get the User's property page style "PropPageStyle" (this is a system wide user setting)
|
||||
// 1 - Button Dialog (default)
|
||||
// 2 - Tab Dialog
|
||||
if ((int)Settings.Default["PropPageStyle"] == (int)PropPgStyle.Tab)
|
||||
{
|
||||
tcProcProp.TabsVisible = true;
|
||||
panProcBtns.Visible = false;
|
||||
this.Width -= panProcBtns.Width;
|
||||
}
|
||||
|
||||
// Get the default values for the property page information
|
||||
FindDefaultValues();
|
||||
|
||||
// Assign the data sources to the combo boxes
|
||||
ppCmbxChgBarPos.DataSource = EnumDetail<ProcedureConfig.PrintChangeBarLoc>.Details();
|
||||
ppCmbxChgBarPos.DisplayMember = "Description";
|
||||
ppCmbxChgBarPos.ValueMember = "EValue";
|
||||
|
||||
ppCmbxChgBarTxtType.DataSource = EnumDetail<ProcedureConfig.PrintChangeBarText>.Details();
|
||||
ppCmbxChgBarTxtType.DisplayMember = "Description";
|
||||
ppCmbxChgBarTxtType.ValueMember = "EValue";
|
||||
|
||||
ppCmbxChangeBarType.DataSource = EnumDetail<ProcedureConfig.PrintChangeBar>.Details();
|
||||
ppCmbxChangeBarType.DisplayMember = "Description";
|
||||
ppCmbxChangeBarType.ValueMember = "EValue";
|
||||
|
||||
ppCmbxPagination.DataSource = EnumDetail<ProcedureConfig.PrintPagination>.Details();
|
||||
ppCmbxPagination.DisplayMember = "Description";
|
||||
ppCmbxPagination.ValueMember = "EValue";
|
||||
|
||||
ppCmbxWatermark.DataSource = EnumDetail<ProcedureConfig.PrintWatermark>.Details();
|
||||
ppCmbxWatermark.DisplayMember = "Description";
|
||||
ppCmbxWatermark.ValueMember = "EValue";
|
||||
|
||||
ppCmbxStpEditorCols.DataSource = EnumDetail<ProcedureConfig.FormatColumns>.Details();
|
||||
ppCmbxStpEditorCols.DisplayMember = "Description";
|
||||
ppCmbxStpEditorCols.ValueMember = "EValue";
|
||||
|
||||
_Initializing = false;
|
||||
}
|
||||
|
||||
#region General tab
|
||||
|
||||
/// <summary>
|
||||
/// This is the General button used on the button interface design
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void btnGeneral_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiGeneral, btnGeneral);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Selection in Default Column Mode combo box changed.
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void ppCmbxStpEditorCols_SelectedValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
ProcedureConfig.FormatColumns fc = (ProcedureConfig.FormatColumns)Enum.Parse(typeof(ProcedureConfig.FormatColumns), _DefaultFormatColumns);
|
||||
if ((ppCmbxStpEditorCols.SelectedIndex != -1) && ppCmbxStpEditorCols.SelectedValue.Equals(fc))
|
||||
{
|
||||
ppBtnDefEdCols.Focus();
|
||||
ppBtnDefEdCols.PerformClick();
|
||||
}
|
||||
ppBtnDefEdCols.Visible = ppCmbxStpEditorCols.SelectedValue != null;
|
||||
ppLblStpEditorColsDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefEdCols.Visible;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Format Settings tab
|
||||
|
||||
/// <summary>
|
||||
/// This is the Format Settings button used on the button interface design
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void btnFmtStngs_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiFmtStngs, btnFmtStngs);
|
||||
}
|
||||
|
||||
private void ppBtnDefaultFmt_Click(object sender, EventArgs e)
|
||||
{
|
||||
ppCmbxFormat.SelectedIndex = -1; //reset to the default Format setting
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Selection in Format combo box changed.
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void ppCmbxFormat_SelectedValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
ProcessCmbxSelectedValueChange(ppCmbxFormat, _DefaultFormatName, ppBtnDefaultFmt, ppLblFormatDefault);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Enable or disable the user specified change bar options base on the type
|
||||
/// of change bar selected.
|
||||
/// </summary>
|
||||
private void setEnabledUserSpecifiedChgBarCombos()
|
||||
{
|
||||
ppGpbxUserSpecCB.Enabled =
|
||||
ppCmbxChgBarPos.Enabled =
|
||||
ppCmbxChgBarTxtType.Enabled =
|
||||
ppBtnDefaultCbPos.Enabled =
|
||||
ppBtnDefCbTxtTyp.Enabled = (ppCmbxChangeBarType.SelectedValue != null &&
|
||||
ppCmbxChangeBarType.SelectedValue.Equals(ProcedureConfig.PrintChangeBar.WithUserSpecified));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Selection in Change Bar combo box changed.
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void ppCmbxChangeBarType_SelectedValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
ProcessCmbxSelectedValueChange(ppCmbxChangeBarType, _DefaultChgBarType, ppBtnDefaultChgBar, ppLblChangeBarTypeDefault);
|
||||
setEnabledUserSpecifiedChgBarCombos();
|
||||
}
|
||||
|
||||
private void ppBtnDefaultChgBar_Click(object sender, EventArgs e)
|
||||
{
|
||||
ppCmbxChangeBarType.SelectedIndex = -1; //reset to the default Change Bar setting
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Selection in Change Bar Position combo box changed.
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void ppCmbxChgBarPos_SelectedValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
ProcessCmbxSelectedValueChange(ppCmbxChgBarPos, _DefaultChgBarLoc, ppBtnDefaultCbPos, ppLblChgBarPosDefault);
|
||||
}
|
||||
|
||||
private void ppBtnDefaultCbPos_Click(object sender, EventArgs e)
|
||||
{
|
||||
ppCmbxChgBarPos.SelectedIndex = -1; //reset to the default Change Bar Position setting
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Selection in Change Bar Text Type combo box changed.
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void ppCmbxChgBarTxtType_SelectedValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
ProcessCmbxSelectedValueChange(ppCmbxChgBarTxtType, _DefaultChgBarText, ppBtnDefCbTxtTyp, ppLblChgBarTxtTypeDefault);
|
||||
setEnabledUserSpecifiedChgBarText();
|
||||
}
|
||||
|
||||
private void ppBtnDefCbTxtTyp_Click(object sender, EventArgs e)
|
||||
{
|
||||
ppCmbxChgBarTxtType.SelectedIndex = -1; //reset to the default Change Bar Text Type setting
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Enable or disable the user specified change bar text based on the selected
|
||||
/// change bar text type (selected in the user specific change bar grouping)
|
||||
/// </summary>
|
||||
private void setEnabledUserSpecifiedChgBarText()
|
||||
{
|
||||
ppGpbxUserSpecTxt.Enabled =
|
||||
ppTxbxChangeBarUserMsgOne.Enabled =
|
||||
ppTxbxChgBarUserMsgTwo.Enabled =
|
||||
ppBtnDefCbTxt1.Enabled =
|
||||
ppBtnDefCbTxt2.Enabled = (ppCmbxChgBarTxtType.SelectedValue != null &&
|
||||
ppCmbxChgBarTxtType.SelectedValue.Equals(ProcedureConfig.PrintChangeBarText.UserDef));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Output Settings tab
|
||||
|
||||
/// <summary>
|
||||
/// This is the Output Settings button used on the button interface design
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void btnOutputStngs_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiOutputStngs, btnOutputStngs);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Selection in Pagination combo box changed.
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void ppCmbxPagination_SelectedValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
ProcessCmbxSelectedValueChange(ppCmbxPagination, _DefaultPagination, ppBtnDefPagination, ppLblPaginationDefault);
|
||||
}
|
||||
|
||||
private void ppBtnDefPagination_Click(object sender, EventArgs e)
|
||||
{
|
||||
ppCmbxPagination.SelectedIndex = -1; //reset to the default Pagination setting
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Selection in Watermark combo box changed.
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void ppCmbxWatermark_SelectedValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
ProcessCmbxSelectedValueChange(ppCmbxWatermark, _DefaultWatermark, ppBtnDefWatermark, ppLblWatermarkDefault);
|
||||
}
|
||||
|
||||
private void ppBtnDefWatermark_Click(object sender, EventArgs e)
|
||||
{
|
||||
ppCmbxWatermark.SelectedIndex = -1; //reset to the default Watermark setting
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region View Settings tab
|
||||
|
||||
/// <summary>
|
||||
/// This is the View Settings button used on the button interface design
|
||||
/// </summary>
|
||||
/// <param name="sender">object</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void btnVwStngs_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessButtonClick(tiViewStngs, btnVwStngs);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Generic functions used on this property page
|
||||
|
||||
/// <summary>
|
||||
/// Determines what labels (showing default values) are visable on the property pages
|
||||
/// </summary>
|
||||
private void defaultSettingsVisiblity()
|
||||
{
|
||||
ppLblDefSettingsInfo.Visible = ppCbShwDefSettings.Checked;
|
||||
|
||||
ppLblWatermarkDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefWatermark.Visible;
|
||||
ppLblPaginationDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefPagination.Visible;
|
||||
ppLblStpEditorColsDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefEdCols.Visible;
|
||||
ppLblFormatDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultFmt.Visible;
|
||||
ppLblChangeBarTypeDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultChgBar.Visible;
|
||||
ppLblChgBarPosDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultCbPos.Visible;
|
||||
ppLblChgBarTxtTypeDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefCbTxtTyp.Visible;
|
||||
ppLblChgBarUserMsgOneDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefCbTxt1.Visible;
|
||||
ppLblChgBarUserMsgTwoDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefCbTxt2.Visible;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Select the corresponding tab and set the button's state to checked
|
||||
/// </summary>
|
||||
/// <param name="tab">Property Page Tab</param>
|
||||
/// <param name="button">Corresponding Property Page Button</param>
|
||||
private void ProcessButtonClick(TabItem tab, ButtonX button)
|
||||
{
|
||||
ClearAllCheckedButtons();
|
||||
tcProcProp.SelectedTab = tab;
|
||||
button.Checked = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// For the Button Interface property page style, when a button is selected (pressed),
|
||||
/// it will remain in the checked state even when a different button is selected. Thus
|
||||
/// we must clear the checked state of the buttons when a button is selected, then set
|
||||
/// the newly selected button's state to checked.
|
||||
/// </summary>
|
||||
private void ClearAllCheckedButtons()
|
||||
{
|
||||
btnGeneral.Checked = false;
|
||||
btnFmtStngs.Checked = false;
|
||||
btnOutputStngs.Checked = false;
|
||||
btnVwStngs.Checked = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This is a generic Enter Event function for use with all of the property page tabs.
|
||||
/// Found that the visiblity value of buttons is not recorded until the property page in which it resides is diplayed.
|
||||
/// Thus we need to call defaultSettingVisiblity() to check and set visiblity states.
|
||||
/// </summary>
|
||||
/// <param name="sender"> type object</param>
|
||||
/// <param name="e">type EventArgs</param>
|
||||
private void tabpage_Enter(object sender, EventArgs e)
|
||||
{
|
||||
// Show or hide the labels containing the default values
|
||||
if (!_Initializing)
|
||||
defaultSettingsVisiblity();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the watermark and default label
|
||||
/// </summary>
|
||||
/// <param name="defaultText">The default text</param>
|
||||
/// <param name="lbl">Label that displays the current default when view defaults is set</param>
|
||||
/// <param name="cmboEx">Combo box with a watermark property</param>
|
||||
private static void SetupDefault(string defaultText, Label lbl, ComboBoxEx cmbo)
|
||||
{
|
||||
if (defaultText != null && !(defaultText.Equals("")))
|
||||
{
|
||||
lbl.Text = string.Format("({0})", defaultText);
|
||||
cmbo.WatermarkText = string.Format("{0}", defaultText);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Process a change in the combo box selection
|
||||
/// </summary>
|
||||
/// <param name="cmbx">Combo Box Name</param>
|
||||
/// <param name="defstr">string containing default text</param>
|
||||
/// <param name="button">button to reset to default value</param>
|
||||
/// <param name="deflabel">label containing the default</param>
|
||||
private void ProcessCmbxSelectedValueChange(ComboBoxEx cmbx, string defstr, ButtonX button, Label deflabel)
|
||||
{
|
||||
if ((cmbx.SelectedIndex != -1) && defstr.Equals(cmbx.SelectedValue))
|
||||
{
|
||||
button.Focus();
|
||||
button.PerformClick();
|
||||
}
|
||||
button.Visible = cmbx.SelectedValue != null;
|
||||
deflabel.Visible = ppCbShwDefSettings.Checked && button.Visible;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user