From 0637a08e83e89165d046e82837f14b0346acb110 Mon Sep 17 00:00:00 2001 From: Kathy Date: Wed, 6 Apr 2011 14:23:40 +0000 Subject: [PATCH] --- .../VEPROMS User Interface/frmPSI.Designer.cs | 75 +++++++++ PROMS/VEPROMS User Interface/frmPSI.cs | 149 ++++++++++++++++++ PROMS/VEPROMS User Interface/frmPSI.resx | 120 ++++++++++++++ PROMS/VEPROMS User Interface/frmVEPROMS.cs | 10 ++ 4 files changed, 354 insertions(+) create mode 100644 PROMS/VEPROMS User Interface/frmPSI.Designer.cs create mode 100644 PROMS/VEPROMS User Interface/frmPSI.cs create mode 100644 PROMS/VEPROMS User Interface/frmPSI.resx diff --git a/PROMS/VEPROMS User Interface/frmPSI.Designer.cs b/PROMS/VEPROMS User Interface/frmPSI.Designer.cs new file mode 100644 index 00000000..62b5b1f5 --- /dev/null +++ b/PROMS/VEPROMS User Interface/frmPSI.Designer.cs @@ -0,0 +1,75 @@ +namespace VEPROMS +{ + partial class frmPSI + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #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.btnOk = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // btnOk + // + this.btnOk.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOk.Location = new System.Drawing.Point(12, 222); + this.btnOk.Name = "btnOk"; + this.btnOk.Size = new System.Drawing.Size(75, 23); + this.btnOk.TabIndex = 0; + this.btnOk.Text = "Ok"; + this.btnOk.UseVisualStyleBackColor = true; + this.btnOk.Click += new System.EventHandler(this.btnOk_Click); + // + // btnCancel + // + this.btnCancel.Location = new System.Drawing.Point(109, 222); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 1; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // frmPSI + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoSize = true; + this.ClientSize = new System.Drawing.Size(374, 257); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOk); + this.Name = "frmPSI"; + this.Text = "frmPSI"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button btnOk; + private System.Windows.Forms.Button btnCancel; + } +} \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/frmPSI.cs b/PROMS/VEPROMS User Interface/frmPSI.cs new file mode 100644 index 00000000..544a142a --- /dev/null +++ b/PROMS/VEPROMS User Interface/frmPSI.cs @@ -0,0 +1,149 @@ +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 Volian.Controls.Library; + +namespace VEPROMS +{ + public partial class frmPSI : Form + { + private ProcedureInfo _MyProcedureInfo; + private StepTabRibbon _MyStepTabRibbon; + private Dictionary _DicStepRtb; + private Dictionary _DicCheckBox; + public frmPSI(ProcedureInfo pi) + { + InitializeComponent(); + _DicStepRtb = new Dictionary(); + _DicCheckBox = new Dictionary(); + InitializeSpecificControls(pi); + _MyStepTabRibbon = new StepTabRibbon(); + } + + private void InitializeSpecificControls(ProcedureInfo pi) + { + _MyProcedureInfo = pi; + PSI psiDialogDef = pi.ActiveFormat.PlantFormat.FormatData.ProcData.PSI; + this.Text = psiDialogDef.Caption; + this.Location = new Point((int)psiDialogDef.x * 2, (int)psiDialogDef.y * 2); + int maxx = 0; + int maxy = 0; + foreach (PsiLabel lbl in psiDialogDef.LabelList) + { + Label wlbl = new Label(); + wlbl.Text = lbl.text; + wlbl.Location = new Point((int)lbl.x * 2, (int)lbl.y * 2); + wlbl.AutoSize = true; + //wlbl.Size = new Size((int)lbl.width * 2, (int)lbl.height * 2); + wlbl.Visible = true; + this.Controls.Add(wlbl); + maxx = ((int)lbl.x * 2 + (int)lbl.width * 2) > maxx ? ((int)lbl.x * 2 + (int)lbl.width * 2) : maxx; + maxy = ((int)lbl.y * 2 + (int)lbl.height * 2) > maxy ? ((int)lbl.y * 2 + (int)lbl.height * 2) : maxy; + } + ProcedureConfig procConfig = pi.MyConfig as ProcedureConfig; + foreach (PsiField fld in psiDialogDef.FieldList) + { + if (fld.type.ToLower() == "text") + { + StepRTB tb = new StepRTB(); + tb.Font = new Font("Arial", tb.Font.Size); + string mystr = tb.FontTable; + _DicStepRtb.Add(fld.name, tb); + tb.MyItemInfo = pi as ItemInfo; + tb.FieldToEdit = E_FieldToEdit.PSI; + tb.Enter += new System.EventHandler(this.FieldStepRTB_Enter); + // see if config has data for this field, i.e. search for the 'name' + string val = procConfig.GetValue("PSI", fld.name); + DisplayText dt = new DisplayText(val, new VE_Font("Arial", 10, E_Style.None), false); + StringBuilder sb = new StringBuilder(); + sb.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Arial;}"); + sb.Append(@"{\f1\fnil\fcharset0 Arial Unicode MS;}}{\colortbl ;\red255\green0\blue0;}"); + sb.Append(@"\viewkind4\uc1\pard\sl-240\slmult0\fs" + (int)(this.Font.SizeInPoints*2) + " " + dt.StartText + @"}"); + tb.Rtf = sb.ToString(); + tb.Location = new Point((int)fld.x * 2, (int)fld.y * 2); + tb.Size = new Size((int)fld.width * 2, (int)fld.height * 2); + tb.Visible = true; + this.Controls.Add(tb); + maxx = ((int)fld.x * 2 + (int)fld.width * 2) > maxx ? ((int)fld.x * 2 + (int)fld.width * 2) : maxx; + maxy = ((int)fld.y * 2 + (int)fld.height * 2) > maxy ? ((int)fld.y * 2 + (int)fld.height * 2) : maxy; + } + if (fld.type.ToLower()== "logical") + { + CheckBox cb = new CheckBox(); + _DicCheckBox.Add(fld.name, cb); + cb.Text = fld.text; + cb.Location = new Point((int)fld.x * 2, (int)fld.y * 2); + cb.Visible = true; + string val = procConfig.GetValue("PSI", fld.name); + cb.Checked = val.ToUpper()[0] == 'Y' ? true : false; + this.Controls.Add(cb); + } + } + if (psiDialogDef.ButtonsOnBottom.ToUpper() == "NO") + { + btnOk.Location = new Point(maxx+20, 30); + btnCancel.Location = new Point(maxx + 20, 60); + } + } + private void FieldStepRTB_Enter(object sender, EventArgs e) + { + _MyStepTabRibbon.MyStepRTB = (StepRTB)sender; + } + private void btnOk_Click(object sender, EventArgs e) + { + ProcedureConfig procConfig = _MyProcedureInfo.MyConfig as ProcedureConfig; + PSI psiDialogDef = _MyProcedureInfo.ActiveFormat.PlantFormat.FormatData.ProcData.PSI; + + // loop through all of the fields (Text & logical) + bool isDirty = false; + foreach (PsiField fld in psiDialogDef.FieldList) + { + if (fld.type.ToLower() == "text") + { + StepRTB cur = _DicStepRtb[fld.name]; + string rtf = cur.Rtf; + string newval = DisplayText.StaticStripRtfCommands(rtf); + // compare to original and if different, save in proc config. + string oldval = procConfig.GetValue("PSI", fld.name); + if (oldval != newval) + { + isDirty = true; + procConfig.SetValue("PSI", fld.name, newval); + } + } + else if (fld.type.ToLower() == "logical") + { + CheckBox cur = _DicCheckBox[fld.name]; + string newval = cur.Checked ? "Y" : "N"; + string oldval = procConfig.GetValue("PSI", fld.name); + if (newval != oldval) + { + isDirty = true; + procConfig.SetValue("PSI", fld.name, newval); + } + } + } + if (isDirty) + { + using (Procedure proc = _MyProcedureInfo.Get()) + { + proc.MyContent.Config = procConfig.ToString(); + proc.Save(); + } + } + DialogResult = DialogResult.OK; + this.Close(); + } + + private void btnCancel_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Cancel; + this.Close(); + } + } +} \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/frmPSI.resx b/PROMS/VEPROMS User Interface/frmPSI.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/PROMS/VEPROMS User Interface/frmPSI.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs index 448dbfcb..2a278063 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs @@ -154,6 +154,7 @@ namespace VEPROMS cmbFont.SelectedIndex = -1; VETreeNode tn = VETreeNode.GetFolder(1); tv.Nodes.Add(tn); + tv.NodePSI += new vlnTreeViewPSIEvent(tv_NodePSI); tv.NodeOpenProperty += new vlnTreeViewPropertyEvent(tv_NodeOpenProperty); tv.NodeSelect += new Volian.Controls.Library.vlnTreeViewEvent(tv_NodeSelect); tv.NodeNew += new vlnTreeViewEvent(tv_NodeNew); @@ -176,6 +177,15 @@ namespace VEPROMS this.Activated += new EventHandler(frmVEPROMS_Activated); VlnSettings.StepTypeToolType = Settings.Default.StepTypeToolTip; } + + DialogResult tv_NodePSI(object sender, vlnTreeEventArgs args) + { + VETreeNode vNode = (VETreeNode)args.Node; + IVEDrillDownReadOnly veObj = vNode.VEObject; + ProcedureInfo myProc = veObj as ProcedureInfo; + frmPSI fpsi = new frmPSI(myProc); + return fpsi.ShowDialog(); + } /// /// Activate tmrTreeView so that the newly created Step recieves focus ///