Beispiel #1
0
        private void OnJobItemsChanged(object sender, EventArgs e)
        {
            RefiningVM dc = (RefiningVM)DataContext;

            RefinaryJobs.SuspendLayout();
            RefinaryJobs.Items.Clear();
            foreach (var item in dc.CurrentJobs)
            {
                var newJobUC = new JobUC();
                newJobUC.DataContext = item;
                RefinaryJobs.Items.Add(newJobUC);
            }
            RefinaryJobs.ResumeLayout();
        }
Beispiel #2
0
        void Init()
        {
            Padding = new Padding(10);

            var dir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

            var calculatorassembly = System.Reflection.Assembly.LoadFile(Path.Combine(dir, "DWSIM.Thermodynamics.dll"));
            var unitopassembly     = System.Reflection.Assembly.LoadFile(Path.Combine(dir, "DWSIM.UnitOperations.dll"));

            aTypeList.Clear();
            aTypeList.AddRange(calculatorassembly.GetTypes().Where(x =>
            {
                if (x.GetInterface("DWSIM.Interfaces.ISimulationObject") != null)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }));
            aTypeList.AddRange(unitopassembly.GetTypes().Where(x =>
            {
                if (x.GetInterface("DWSIM.Interfaces.ISimulationObject") != null)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }));

            bool add = false;

            if (flowsheet.FlowsheetOptions.VisibleProperties.Count == 0)
            {
                add = true;
            }

            this.CreateAndAddDescriptionRow("Select the properties to show on Floating Property Tables and/or Anchored Property Lists according to object type.");

            var cbObjectType = this.CreateAndAddDropDownRow("Object Type", new List <string>(), 0, null);

            cbObjectType.Items.Clear();
            availableproperties.Clear();

            foreach (var item in aTypeList.OrderBy(x => x.Name))
            {
                if (!item.IsAbstract)
                {
                    var obj = (Interfaces.ISimulationObject)Activator.CreateInstance(item);
                    obj.SetFlowsheet(flowsheet);
                    cbObjectType.Items.Add(new ListItem {
                        Key = item.Name, Text = obj.GetDisplayName()
                    });
                    availableproperties.Add(item.Name, obj.GetProperties(DWSIM.Interfaces.Enums.PropertyType.ALL));
                    if (add)
                    {
                        flowsheet.FlowsheetOptions.VisibleProperties.Add(item.Name, obj.GetDefaultProperties().ToList());
                    }
                    obj = null;
                }
            }

            cbObjectType.SelectedIndex = 0;

            var PropertyListView = new StackLayout();

            cbObjectType.SelectedIndexChanged += (sender, e) =>
            {
                if (cbObjectType.SelectedIndex < 0)
                {
                    return;
                }
                var selvalue = cbObjectType.SelectedValue.ToString();
                var selkey   = cbObjectType.SelectedKey;
                PropertyListView.SuspendLayout();
                PropertyListView.Items.Clear();
                foreach (var item in availableproperties[selkey])
                {
                    var check = new CheckBox {
                        Text = flowsheet.GetTranslatedString(item), Tag = item, Checked = flowsheet.FlowsheetOptions.VisibleProperties[selkey].Contains(item)
                    };
                    check.CheckedChanged += (sender2, e2) => {
                        if (check.Checked.GetValueOrDefault())
                        {
                            if (!flowsheet.FlowsheetOptions.VisibleProperties[selkey].Contains(check.Tag.ToString()))
                            {
                                flowsheet.FlowsheetOptions.VisibleProperties[selkey].Add(check.Tag.ToString());
                            }
                        }
                        else
                        {
                            if (flowsheet.FlowsheetOptions.VisibleProperties[selkey].Contains(check.Tag.ToString()))
                            {
                                flowsheet.FlowsheetOptions.VisibleProperties[selkey].Remove(check.Tag.ToString());
                            }
                        }
                    };
                    var newitem = new StackLayoutItem(check);
                    PropertyListView.Items.Add(newitem);
                }
                PropertyListView.ResumeLayout();
            };

            this.CreateAndAddControlRow(new Scrollable {
                Content = PropertyListView
            });
        }