コード例 #1
0
        public void InitializeVariable(INumericFormat iNumericFormat, ProcessVar var)
        {
            if (var.Enabled)
            {
                this.iNumericFormat = iNumericFormat;
                this.var            = var;
                this.UpdateVariableValue(UnitSystemService.GetInstance().CurrentUnitSystem);
                if (this.var.Owner is Solvable)
                {
                    Solvable solvable = this.var.Owner as Solvable;
                    solvable.SolveComplete += new SolveCompleteEventHandler(solvable_SolveComplete);
                }
                else
                {
                    this.var.Owner.ProcessVarValueCommitted += new ProcessVarValueCommittedEventHandler(Owner_ProcessVarValueCommitted);
                }

                UnitSystemService.GetInstance().CurrentUnitSystemChanged += new CurrentUnitSystemChangedEventHandler(ProcessVarNonEditableTextBox_CurrentUnitSystemChanged);
                this.iNumericFormat.NumericFormatStringChanged += new NumericFormatStringChangedEventHandler(iNumericFormat_NumericFormatStringChanged);
            }
            else
            {
                this.Enabled = false;
            }
        }
コード例 #2
0
        public static string GetVariableValue(ProcessVar var, UnitSystem unitSystem, string numericFormatStr)
        {
            string valStr = null;

            if (var is ProcessVarDouble)
            {
                ProcessVarDouble varDouble = (ProcessVarDouble)var;
                double           val       = UnitSystemService.GetInstance().ConvertFromSIValue(var.Type, varDouble.Value);
                if (varDouble.Value == Constants.NO_VALUE)
                {
                    valStr = "";
                }
                else
                {
                    valStr = val.ToString(numericFormatStr);
                }
            }
            else if (var is ProcessVarInt)
            {
                ProcessVarInt varInt = (ProcessVarInt)var;
                if (varInt.Value == Constants.NO_VALUE_INT)
                {
                    valStr = "";
                }
                else
                {
                    valStr = varInt.Value.ToString(UI.DECIMAL);
                }
            }
            return(valStr);
        }
コード例 #3
0
        public ProcVarsMoreThenOneOutOfRangeForm(INumericFormat iNumericFormat, IProcessVarOwner solvable, ErrorMessage error)
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            this.solvable = solvable;
            this.Text     = error.Title;

            // display the message
            this.labelMessage.Text = error.Message;

            IEnumerator en = error.ProcessVarsAndValues.ProcessVarList.GetEnumerator();

            while (en.MoveNext())
            {
                ProcessVar pv                    = (ProcessVar)en.Current;
                object     minMaxVals            = error.ProcessVarsAndValues.GetVarRange(pv);
                MinMaxProcVarElementControl ctrl = new MinMaxProcVarElementControl(iNumericFormat, pv, minMaxVals);
                ctrl.Dock = DockStyle.Top;
                this.panelCenter.Controls.Add(ctrl);
                ctrl.BringToFront();
            }
        }
コード例 #4
0
        public CustomEditorForm(Flowsheet flowsheet, CustomEditor editor)
        {
            InitializeComponent();

            this.flowsheet = flowsheet;
            this.editor    = editor;
            this.elements  = new ArrayList();
            this.baseIndex = 0;

            // compose the header, assuming max 10 columns
            for (int column = 0; column < 10; column++)
            {
                CustomEditorHeaderControl header = new CustomEditorHeaderControl();
                header.Location = new System.Drawing.Point(ELEMENT_WIDTH * column, 0);
                this.panelHeader.Controls.Add(header);
            }

            IEnumerator en = this.editor.Variables.GetEnumerator();

            while (en.MoveNext())
            {
                ProcessVar var = (ProcessVar)en.Current;
                this.AddUIElement(var);
            }
            this.DisplayElements();

            this.editor.ProcessVarAdded   += new ProcessVarAddedEventHandler(editor_ProcessVarAdded);
            this.editor.ProcessVarDeleted += new ProcessVarDeletedEventHandler(editor_ProcessVarDeleted);
            this.ResizeEnd += new EventHandler(CustomEditorForm_ResizeEnd);
        }
コード例 #5
0
        //public virtual void SetObjectData(SerializationInfo info, StreamingContext context) {
        public override void SetObjectData()
        {
            //public override void SetObjectData()
            int persistedClassVersion = info.GetInt32("ClassPersistenceVersionCustomEditor");

            if (persistedClassVersion == 1)
            {
                ArrayList varIds = (ArrayList)info.GetValue("VariableIds", typeof(ArrayList));
                //IEnumerator e = varIds.GetEnumerator();
                //while (e.MoveNext()) {
                //   int id = (int)e.Current;
                foreach (int id in varIds)
                {
                    ProcessVar var = this.flowsheet.EvaporationAndDryingSystem.GetProcessVar(id);
                    this.variables.Add(var);
                }
            }
            else if (persistedClassVersion >= 2)
            {
                this.flowsheet = (Flowsheet)info.GetValue("Flowsheet", typeof(Flowsheet));
                this.variables = (ArrayList)info.GetValue("Variables", typeof(ArrayList));
            }

            Init();
        }
コード例 #6
0
 private void OnProcessVarValueCommitted(ProcessVar var)
 {
     if (ProcessVarValueCommitted != null)
     {
         ProcessVarValueCommitted(var);
     }
 }
コード例 #7
0
        public void InitializeVariable(INumericFormat iNumericFormat, ProcessVar var)
        {
            if (var.Enabled)
            {
                this.iNumericFormat = iNumericFormat;
                this.var            = var;
                this.UpdateVariableValue(UnitSystemService.GetInstance().CurrentUnitSystem);
                if (this.var.Owner is Solvable)
                {
                    Solvable solvable = this.var.Owner as Solvable;
                    solvable.SolveComplete += new SolveCompleteEventHandler(solvable_SolveComplete);
                }
                else
                {
                    this.var.Owner.ProcessVarValueCommitted += new ProcessVarValueCommittedEventHandler(Owner_ProcessVarValueCommitted);
                }

                UnitSystemService.GetInstance().CurrentUnitSystemChanged += new CurrentUnitSystemChangedEventHandler(ProcessVarTextBox_CurrentUnitSystemChanged);
                this.iNumericFormat.NumericFormatStringChanged += new NumericFormatStringChangedEventHandler(iNumericFormat_NumericFormatStringChanged);
                this.Validating += new System.ComponentModel.CancelEventHandler(ProcessVarTextBox_Validating);
                // NOTE: the subscription to the KeyUp event is done in the context where this textBox is used
            }
            else
            {
                this.Enabled = false;
            }
        }
コード例 #8
0
        /// <summary>
        /// initialize the process variable object
        /// </summary>
        /// <param name="iNumericFormat"></param>
        /// <param name="var"></param>
        public ProcessVarObj(INumericFormat iNumericFormat, ProcessVar var)
        {
            if (var.Enabled)
            {
                this.iNumericFormat = iNumericFormat;
                this.var            = var;
                this.UpdateVariableValue(UnitSystemService.GetInstance().CurrentUnitSystem);
                if (this.var.Owner is Solvable)
                {
                    Solvable solvable = this.var.Owner as Solvable;
                    solvable.SolveComplete += new SolveCompleteEventHandler(solvable_SolveComplete);
                }
                else
                {
                    this.var.Owner.ProcessVarValueCommitted += new ProcessVarValueCommittedEventHandler(Owner_ProcessVarValueCommitted);
                }

                UnitSystemService.GetInstance().CurrentUnitSystemChanged += new CurrentUnitSystemChangedEventHandler(ProcessVarTextBox_CurrentUnitSystemChanged);
                this.iNumericFormat.NumericFormatStringChanged += new NumericFormatStringChangedEventHandler(iNumericFormat_NumericFormatStringChanged);
                //     this.Validating += new System.ComponentModel.CancelEventHandler(ProcessVarTextBox_Validating);
            }
            else
            {
                //  this.Enabled = false;
            }
        }
コード例 #9
0
 public void InitializeVariable(ProcessVar var)
 {
     this.var              = var;
     this.Text             = SolvableControl.GetVariableName(this.var, UnitSystemService.GetInstance().CurrentUnitSystem);
     this.var.NameChanged += new NameChangedEventHandler(var_NameChanged);
     UnitSystemService.GetInstance().CurrentUnitSystemChanged += new CurrentUnitSystemChangedEventHandler(ProcessVarLabel_CurrentUnitSystemChanged);
 }
コード例 #10
0
        private void listBoxSolvable_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            this.listViewVariable.Items.Clear();
            Solvable s = (Solvable)this.listBoxSolvable.SelectedItem;

            IList list = null;

            if (this.variableListType == ProcessVariableListType.All)
            {
                list = s.VarList;
            }
            else if (this.variableListType == ProcessVariableListType.Calculated)
            {
                list = s.CalculatedVarList;
            }
            else if (this.variableListType == ProcessVariableListType.Specified)
            {
                list = s.SpecifiedVarList;
            }

            IEnumerator en = list.GetEnumerator();

            while (en.MoveNext())
            {
                ProcessVar pv = (ProcessVar)en.Current;
                this.listViewVariable.Items.Add(new ListViewVariableItem(pv));
            }
        }
コード例 #11
0
//      public void DeleteProcessVar(ProcessVar var)
//      {
//         int idx = this.variables.IndexOf(var);
//         this.variables.RemoveAt(idx);
//      }

        private void OnProcessVarAdded(ProcessVar var)
        {
            if (ProcessVarAdded != null)
            {
                ProcessVarAdded(var);
            }
        }
コード例 #12
0
 private void listViewUnitOps_SelectedIndexChanged(object sender, System.EventArgs e)
 {
     if (this.listViewUnitOps.SelectedItems.Count > 0)
     {
         this.Cursor  = Cursors.WaitCursor;
         this.Enabled = false;
         this.panelVariables.Visible = false;
         this.panelVariables.Controls.Clear();
         this.panelVariables.Controls.Add(this.formulaEditorHeaderControl);
         ListViewSolvableItem item = (ListViewSolvableItem)this.listViewUnitOps.SelectedItems[0];
         UnitOperation        uo   = item.Solvable as UnitOperation;
         IEnumerator          en   = uo.GetAllVariables().GetEnumerator();
         while (en.MoveNext())
         {
             ProcessVar pv = (ProcessVar)en.Current;
             FormulaEditorElementControl ctrl = new FormulaEditorElementControl(pv, this.evapAndDryingSystem.FormulaTable);
             ctrl.Dock = DockStyle.Top;
             this.panelVariables.Controls.Add(ctrl);
             ctrl.BringToFront();
         }
         this.panelVariables.Visible = true;
         this.Enabled = true;
         this.Cursor  = Cursors.Default;
     }
 }
コード例 #13
0
        private void AddUIElement(ProcessVar var)
        {
            CustomEditorElementControl element = new CustomEditorElementControl(this, this.editor.flowsheet, var);

            this.panel.Controls.Add(element);
            elements.Add(element);
        }
コード例 #14
0
        internal void RegisterProcessVar(ProcessVar var)
        {
            int id = procVarCounter;

            var.ID = id;
            procVarTable.Add(id, var);
            procVarCounter++;
        }
コード例 #15
0
 public void AddProcessVar(ProcessVar var)
 {
     if (!this.IsOnTheList(var))
     {
         this.variables.Add(var);
         this.OnProcessVarAdded(var);
     }
 }
コード例 #16
0
 public static string GetVariableName(ProcessVar var, UnitSystem unitSystem)
 {
     string name = null;
      string unit = UnitSystemService.GetInstance().GetUnitAsString(var.Type);
      if (unit != null && !unit.Trim().Equals(""))
     name = var.VarTypeName + " (" + unit + ")";
      else
     name = var.VarTypeName;
      return name;
 }
コード例 #17
0
        private void listViewStreamVariables_DoubleClick(object sender, EventArgs e)
        {
            ListViewVariableItem item = (ListViewVariableItem)this.solvableVariablesControlStream.ListViewVariable.SelectedItems[0];
            ProcessVar           var  = item.Variable;

            if (var != null)
            {
                this.editor.AddProcessVar(var);
            }
        }
コード例 #18
0
        public ProcessVar GetSelectedProcessVar()
        {
            ProcessVar pVar = null;

            if (this.listViewVariable.SelectedItems.Count == 1)
            {
                ListViewVariableItem lvvi = this.listViewVariable.SelectedItems[0] as ListViewVariableItem;
                pVar = lvvi.Variable;
            }
            return(pVar);
        }
コード例 #19
0
        public CustomEditorElementControl(CustomEditorForm editorForm, Flowsheet flowsheet, ProcessVar var)
        {
            InitializeComponent();

            this.editorForm = editorForm;
            this.var        = var;
            this.labelSolvable.InitializeSolvable(var.Owner as Solvable);
            this.labelVariable.InitializeVariable(var);
            this.textBoxValue.InitializeVariable(flowsheet.ApplicationPrefs, var);
            this.IsSelected = false;
        }
コード例 #20
0
        public void AddProcessVars(ArrayList vars)
        {
            IEnumerator e = vars.GetEnumerator();

            while (e.MoveNext())
            {
                ProcessVar var = (ProcessVar)e.Current;
                if (var != null)
                {
                    this.AddProcessVar(var);
                }
            }
        }
コード例 #21
0
 private void EraseOldValue(ProcessVar var)
 {
     if (var is ProcessVarDouble)
     {
         ProcessVarDouble pvd = var as ProcessVarDouble;
         pvd.Value = Constants.NO_VALUE;
     }
     else if (var is ProcessVarInt)
     {
         ProcessVarInt pvi = var as ProcessVarInt;
         pvi.Value = Constants.NO_VALUE_INT;
     }
 }
コード例 #22
0
        public static string GetUnitName(ProcessVar var, UnitSystem unitSystem)
        {
            string unit = UnitSystemService.GetInstance().GetUnitAsString(var.Type);

            if (unit != null && !unit.Trim().Equals(""))
            {
                return(unit);
            }
            else
            {
                return(null);
            }
            //return unit;
        }
コード例 #23
0
        public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            info.AddValue("ClassPersistenceVersionCustomEditor", CustomEditor.CLASS_PERSISTENCE_VERSION, typeof(int));
            ArrayList   varIds = new ArrayList();
            IEnumerator e      = this.Variables.GetEnumerator();

            while (e.MoveNext())
            {
                ProcessVar var = (ProcessVar)e.Current;
                int        id  = var.ID;
                varIds.Add(id);
            }
            info.AddValue("VariableIds", varIds, typeof(ArrayList));
        }
コード例 #24
0
 public void SelectProcessVariable(ProcessVar procVar)
 {
     for (int i = 0; i < this.listViewVariable.Items.Count; i++)
     {
         ListViewVariableItem lvvi = this.listViewVariable.Items[i] as ListViewVariableItem;
         if (lvvi.Variable.Equals(procVar))
         {
             IProcessVarOwner iProcVarOwner = procVar.Owner;
             this.SelectProcessVarOwner(iProcVarOwner);
             lvvi.Selected = true;
             break;
         }
     }
 }
コード例 #25
0
        public void DeleteProcessVars(ArrayList idxs)
        {
            // the list of indexes is sorted in descending order
            ArrayList   vars = new ArrayList();
            IEnumerator e    = idxs.GetEnumerator();

            while (e.MoveNext())
            {
                int        idx = (int)e.Current;
                ProcessVar var = (ProcessVar)this.variables[idx];
                vars.Add(var);
                this.variables.RemoveAt(idx);
            }
            this.OnProcessVarDeleted(vars, idxs);
        }
コード例 #26
0
        private bool IsOnTheList(ProcessVar var)
        {
            bool        isOnTheList = false;
            IEnumerator e           = this.variables.GetEnumerator();

            while (e.MoveNext())
            {
                ProcessVar v = (ProcessVar)e.Current;
                if (var.Equals(v))
                {
                    isOnTheList = true;
                    break;
                }
            }
            return(isOnTheList);
        }
コード例 #27
0
        public RecommProcVarElementControl(INumericFormat iNumericFormat, ProcessVar var, object recommValue)
        {
            // This call is required by the Windows.Forms Form Designer.
            InitializeComponent();

            this.var = var;

            this.labelName.InitializeVariable(var);
            this.textBoxExistingValue.InitializeVariable(iNumericFormat, var);

            // note: the recommended value is not converted to the current unit system,
            //       and it also needs formating
            if (var is ProcessVarDouble)
            {
                double val  = (double)recommValue;
                double val2 = 0.0;
                val2 = UnitSystemService.GetInstance().ConvertFromSIValue(var.Type, val);
                if (val2 == Constants.NO_VALUE)
                {
                    this.textBoxRecommendedValue.Text = "";
                }
                else
                {
                    this.textBoxRecommendedValue.Text = val2.ToString(iNumericFormat.NumericFormatString);
                }
            }
            else if (var is ProcessVarInt)
            {
                int val = (int)recommValue;
                if (val == Constants.NO_VALUE_INT)
                {
                    this.textBoxRecommendedValue.Text = "";
                }
                else
                {
                    this.textBoxRecommendedValue.Text = val.ToString(UI.DECIMAL);
                }
            }

            this.textBoxExistingValue.BackColor    = Color.Gainsboro;
            this.textBoxRecommendedValue.BackColor = Color.Gainsboro;

            // as convenience, initialize the new value with the recommended value
            this.textBoxNewValue.Text = this.textBoxRecommendedValue.Text;
        }
コード例 #28
0
        public virtual void SetObjectData(SerializationInfo info, StreamingContext context)
        {
            int persistedClassVersion = (int)info.GetValue("ClassPersistenceVersionCustomEditor", typeof(int));

            switch (persistedClassVersion)
            {
            case 1:
                ArrayList   varIds = (ArrayList)info.GetValue("VariableIds", typeof(ArrayList));
                IEnumerator e      = varIds.GetEnumerator();
                while (e.MoveNext())
                {
                    int        id  = (int)e.Current;
                    ProcessVar var = this.flowsheet.EvaporationAndDryingSystem.GetProcessVar(id);
                    this.Variables.Add(var);
                }
                break;
            }
        }
コード例 #29
0
        public FormulaEditorElementControl(ProcessVar var, Hashtable formulae)
        {
            InitializeComponent();

            this.var                 = var;
            this.formulae            = formulae;
            this.labelId.Text        = "v" + var.ID.ToString();
            this.labelName.Text      = var.Name;
            this.textBoxFormula.Text = this.formulae[var.ID] as string;
            if (var.IsSpecified)
            {
                this.textBoxFormula.Enabled = true;
            }
            else
            {
                this.textBoxFormula.Enabled = false;
            }
        }
コード例 #30
0
        public void InitializeVariable(ProcessVar var)
        {
            string unitName;

            this.var = var;

            this.Clear();
            this.SelectedText = var.VarTypeName;
            unitName          = UI.GetUnitName(this.var, UnitSystemService.GetInstance().CurrentUnitSystem);
            if (unitName != null)
            {
                this.SelectionCharOffset = UI.SUB_CHAR_OFFSET; //superscript
                this.SelectedText        = (" (" + unitName + ")");
                //this.AppendText(" (" + unitName + ")");
            }
//         this.Text = UI.GetVariableName(this.var, UnitSystemService.GetInstance().CurrentUnitSystem);
            this.var.NameChanged += new NameChangedEventHandler(var_NameChanged);
            UnitSystemService.GetInstance().CurrentUnitSystemChanged += new CurrentUnitSystemChangedEventHandler(ProcessVarLabel_CurrentUnitSystemChanged);
        }