public FrameworkElement GetControl(WorkFlowViewElement viewElement, Context context)
        {
            var checkbox = new System.Windows.Controls.CheckBox()
            {
                Content  = viewElement.Properties["Caption"].ToString(context),
                FontSize = viewElement.Properties["FontSize"].ToInt(context),
            };

            viewElement.SetSize(checkbox, context);

            checkbox.DataContext = viewElement.Parent.Parent.Variables[viewElement.Properties["Variable"].ToString(context)];
            checkbox.SetBinding(ToggleButton.IsCheckedProperty, "Value");

            //if (viewElement.Properties["Style"].Value == "Rounded")
            //{
            //    checkbox.Style = Application.Current.Resources["MaterialDesignFloatingActionButton"] as Style;
            //}


            if (viewElement.Properties["BackgroundColor"].ToString(context) != "Transparent" && viewElement.Properties["BackgroundColor"].ToString(context) != "#00FFFFFF")
            {
                checkbox.Background =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["BackgroundColor"].ToString(context)));
            }
            if (viewElement.Properties["ForegroundColor"].ToString(context) != "Transparent" && viewElement.Properties["ForegroundColor"].ToString(context) != "#00FFFFFF")
            {
                checkbox.Foreground =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["ForegroundColor"].ToString(context)));
            }

            return(checkbox);
        }
Esempio n. 2
0
        public FrameworkElement GetControl(WorkFlowViewElement viewElement)
        {
            var label = new System.Windows.Controls.Label()
            {
                Width    = viewElement.Properties["Width"].ToInt(),
                Height   = viewElement.Properties["Height"].ToInt(),
                Content  = viewElement.Properties["Text"].Value,
                Margin   = new Thickness(viewElement.Properties["Margins"].ToInt()),
                FontSize = viewElement.Properties["FontSize"].ToInt(),
            };

            if (viewElement.Properties["BackgroundColor"].Value != "Transparent" && viewElement.Properties["BackgroundColor"].Value != "#00FFFFFF")
            {
                label.Background =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["BackgroundColor"].Value));
            }
            if (viewElement.Properties["ForegroundColor"].Value != "Transparent" && viewElement.Properties["ForegroundColor"].Value != "#00FFFFFF")
            {
                label.Foreground =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["ForegroundColor"].Value));
            }
            return(label);
        }
        public FrameworkElement GetControl(WorkFlowViewElement viewElement, Context context)
        {
            var separator = new System.Windows.Controls.Separator();

            {
            };
            viewElement.SetSize(separator, context);
            //separator. = viewElement.Properties["Orientation"].ToString(context) == "Horizontal" ? Orientation.Horizontal : Orientation.Vertical;
            return(separator);
        }
 private void DeleteViewElement(WorkFlowViewElement element)
 {
     if (element != null && SelectedView != null)
     {
         SelectedView.Elements.Remove(element);
         if (SelectedView.Elements.Count > 0)
         {
             SelectedElement = SelectedView.Elements[SelectedView.Elements.Count - 1];
         }
     }
 }
Esempio n. 5
0
        public FrameworkElement GetControl(WorkFlowViewElement viewElement, Context context)
        {
            var button = new System.Windows.Controls.Button()
            {
                Content  = viewElement.Properties["Caption"].ToString(context),
                FontSize = viewElement.Properties["FontSize"].ToInt(context),
            };

            viewElement.SetSize(button, context);

            button.Click += (sender, args) =>
            {
                WorkflowManager.ExecuteAsync(viewElement.GetEventCommands("Click"), WorkflowManager.Instance.Context);
            };
            if (viewElement.Properties["Style"].Value == "Rounded")
            {
                button.Style = Application.Current.Resources["MaterialDesignFloatingActionButton"] as Style;
            }

            if (!string.IsNullOrWhiteSpace(viewElement.Properties["Enabled"].Value))
            {
                button.DataContext = viewElement.Parent.Parent.Variables[viewElement.Properties["Enabled"].Value];
                button.SetBinding(UIElement.IsEnabledProperty, "Value");
            }

            PackIconKind kind;

            if (Enum.TryParse(viewElement.Properties["Icon"].Value, out kind))
            {
                button.Content = new PackIcon()
                {
                    Kind = kind, Width = button.Width / 2, Height = button.Height / 2
                }
            }
            ;

            if (viewElement.Properties["BackgroundColor"].ToString(context) != "Transparent" && viewElement.Properties["BackgroundColor"].ToString(context) != "#00FFFFFF")
            {
                button.Background =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["BackgroundColor"].ToString(context)));
            }
            if (viewElement.Properties["ForegroundColor"].ToString(context) != "Transparent" && viewElement.Properties["ForegroundColor"].ToString(context) != "#00FFFFFF")
            {
                button.Foreground =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["ForegroundColor"].ToString(context)));
            }

            return(button);
        }
    }
        public WorkFlowViewElement CreateElement(WorkFlowView view)
        {
            WorkFlowViewElement element = new WorkFlowViewElement();

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "(Name)",
                PropertyType = CustomPropertyType.String
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Position",
                PropertyType = CustomPropertyType.ValueList,
                ValueList    = view.Instance.GetPositions(),
                Value        = view.Instance.GetPositions()[0]
            });

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Width",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "150"
            });

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Height",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "5"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Margins",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "5"
            });
            //element.Properties.Items.Add(new CustomProperty()
            //{
            //    Name = "Orientation",
            //    PropertyType = CustomPropertyType.ValueList,
            //    ValueList = new List<string>() { "Horizontal", "Vertical" },
            //    Value = "Horizontal"
            //});
            return(element);
        }
Esempio n. 7
0
        public FrameworkElement GetControl(WorkFlowViewElement viewElement)
        {
            var textBox = new TextBox()
            {
                Width = viewElement.Properties["Width"].ToInt(),
                Height = viewElement.Properties["Height"].ToInt(),
                Margin = new Thickness(viewElement.Properties["Margins"].ToInt()),
                FontSize = viewElement.Properties["FontSize"].ToInt(),
                VerticalContentAlignment = VerticalAlignment.Center,
                HorizontalContentAlignment = HorizontalAlignment.Center
            };

            textBox.DataContext = viewElement.Parent.Parent.Variables[viewElement.Properties["Variable"].Value];
            textBox.SetBinding(TextBox.TextProperty, "Value");

            if (viewElement.Properties["BackgroundColor"].Value != "Transparent" && viewElement.Properties["BackgroundColor"].Value != "#00FFFFFF")
                textBox.Background =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["BackgroundColor"].Value));

            if (viewElement.Properties["ForegroundColor"].Value != "Transparent" && viewElement.Properties["ForegroundColor"].Value != "#00FFFFFF")
                textBox.Foreground =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["ForegroundColor"].Value));

            var label = new System.Windows.Controls.Label()
            {
                Width = viewElement.Properties["LabelWidth"].ToInt(),
                Height = viewElement.Properties["Height"].ToInt(),
                Content = viewElement.Properties["Caption"].Value,
                Margin = new Thickness(viewElement.Properties["Margins"].ToInt()),
                FontSize = viewElement.Properties["FontSize"].ToInt(),
                VerticalContentAlignment = VerticalAlignment.Center,
            };
            //if (viewElement.Properties["BackgroundColor"].Value != "Transparent" && viewElement.Properties["BackgroundColor"].Value != "#00FFFFFF")
            //    label.Background =
            //        new SolidColorBrush(
            //            (Color)ColorConverter.ConvertFromString(viewElement.Properties["BackgroundColor"].Value));
            if (viewElement.Properties["ForegroundColor"].Value != "Transparent" && viewElement.Properties["ForegroundColor"].Value != "#00FFFFFF")
                label.Foreground =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["ForegroundColor"].Value));

            var stackpanel = new StackPanel();
            stackpanel.Children.Add(label);
            stackpanel.Children.Add(textBox);
            stackpanel.Orientation = viewElement.Properties["Orientation"].Value == "Horizontal" ? Orientation.Horizontal : Orientation.Vertical;
            return stackpanel;
        }
Esempio n. 8
0
        public WorkFlowViewElement CreateElement(WorkFlowView view)
        {
            WorkFlowViewElement element = new WorkFlowViewElement();

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "(Name)",
                PropertyType = CustomPropertyType.String
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Position",
                PropertyType = CustomPropertyType.ValueList,
                ValueList    = view.Instance.GetPositions(),
                Value        = view.Instance.GetPositions()[0]
            });

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Width",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "0"
            });

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Height",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "0"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Margins",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "0"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "ImageFile",
                PropertyType = CustomPropertyType.File,
            });
            return(element);
        }
Esempio n. 9
0
        public FrameworkElement GetControl(WorkFlowViewElement viewElement)
        {
            var button = new System.Windows.Controls.Button()
            {
                Width    = viewElement.Properties["Width"].ToInt(),
                Height   = viewElement.Properties["Height"].ToInt(),
                Content  = viewElement.Properties["Caption"].Value,
                Margin   = new Thickness(viewElement.Properties["Margins"].ToInt()),
                FontSize = viewElement.Properties["FontSize"].ToInt(),
            };

            button.Click += (sender, args) =>
            {
                WorkflowManager.Execute(viewElement.GetEventCommands("Click"));
            };
            if (viewElement.Properties["Style"].Value == "Rounded")
            {
                button.Style = Application.Current.Resources["MaterialDesignFloatingActionButton"] as Style;
            }

            PackIconKind kind;

            if (Enum.TryParse(viewElement.Properties["Icon"].Value, out kind))
            {
                button.Content = new PackIcon()
                {
                    Kind = kind, Width = button.Width / 2, Height = button.Height / 2
                }
            }
            ;

            if (viewElement.Properties["BackgroundColor"].Value != "Transparent" && viewElement.Properties["BackgroundColor"].Value != "#00FFFFFF")
            {
                button.Background =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["BackgroundColor"].Value));
            }
            if (viewElement.Properties["ForegroundColor"].Value != "Transparent" && viewElement.Properties["ForegroundColor"].Value != "#00FFFFFF")
            {
                button.Foreground =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["ForegroundColor"].Value));
            }

            return(button);
        }
    }
Esempio n. 10
0
        public FrameworkElement GetControl(WorkFlowViewElement viewElement, Context context)
        {
            var image = new System.Windows.Controls.Image();

            viewElement.SetSize(image, context);

            try
            {
                image.Source = Utils.LoadImage(
                    viewElement.Parent.Parent.GetFileStream(viewElement.Properties["ImageFile"].ToString(context)), 0, 0);
                image.Stretch = Stretch.Fill;
            }
            catch (Exception e)
            {
                Log.Debug("Unable to load image ", e);
            }
            return(image);
        }
Esempio n. 11
0
 private void NewViewElement(PluginInfo pluginInfo)
 {
     try
     {
         IViewElementPlugin  plugin  = WorkflowManager.Instance.GetElementPlugin(pluginInfo.Class);
         WorkFlowViewElement element = plugin.CreateElement(SelectedView);
         element.Instance   = plugin;
         element.PluginInfo = pluginInfo;
         element.Name       = pluginInfo.Name;
         element.Parent     = SelectedView;
         SelectedView.Elements.Add(element);
         SelectedElement = element;
     }
     catch (Exception ex)
     {
         Log.Error("Error create element", ex);
     }
 }
Esempio n. 12
0
        public FrameworkElement GetControl(WorkFlowViewElement viewElement, Context context)
        {
            var slider = new Slider()
            {
                Orientation = Orientation.Horizontal,
                VerticalContentAlignment   = VerticalAlignment.Center,
                HorizontalContentAlignment = HorizontalAlignment.Center,
                VerticalAlignment          = VerticalAlignment.Center,
                HorizontalAlignment        = HorizontalAlignment.Center
            };

            viewElement.SetSize(slider, context);

            slider.DataContext = viewElement.Parent.Parent.Variables[viewElement.Properties["Variable"].ToString(context)];
            slider.SetBinding(RangeBase.ValueProperty, "Value");

            slider.Minimum = viewElement.Properties["Minimum"].ToInt(context);
            slider.Maximum = viewElement.Properties["Maximum"].ToInt(context);

            var label = new System.Windows.Controls.Label()
            {
                Height   = viewElement.Properties["Height"].ToInt(context),
                Content  = viewElement.Properties["Caption"].ToString(context),
                Margin   = new Thickness(viewElement.Properties["Margins"].ToInt(context)),
                FontSize = viewElement.Properties["FontSize"].ToInt(context),
                VerticalContentAlignment = VerticalAlignment.Center,
                VerticalAlignment        = VerticalAlignment.Center
            };

            if (viewElement.Properties["LabelWidth"].ToInt(context) > 0)
            {
                label.Width = viewElement.Properties["LabelWidth"].ToInt(context);
            }


            var stackpanel = new StackPanel();

            stackpanel.Children.Add(label);
            stackpanel.Children.Add(slider);
            stackpanel.Orientation = viewElement.Properties["Orientation"].ToString(context) == "Horizontal" ? Orientation.Horizontal : Orientation.Vertical;
            return(stackpanel);
        }
Esempio n. 13
0
        public FrameworkElement GetControl(WorkFlowViewElement viewElement, Context context)
        {
            var label = new System.Windows.Controls.Label()
            {
                Content  = viewElement.Properties["Text"].ToString(context),
                FontSize = viewElement.Properties["FontSize"].ToInt(context),
            };

            viewElement.SetSize(label, context);

            if (viewElement.Properties["BackgroundColor"].ToString(context) != "Transparent" && viewElement.Properties["BackgroundColor"].ToString(context) != "#00FFFFFF")
            {
                label.Background =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["BackgroundColor"].ToString(context)));
            }
            if (viewElement.Properties["ForegroundColor"].ToString(context) != "Transparent" && viewElement.Properties["ForegroundColor"].ToString(context) != "#00FFFFFF")
            {
                label.Foreground =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["ForegroundColor"].ToString(context)));
            }
            return(label);
        }
Esempio n. 14
0
        public WorkFlowViewElement CreateElement(WorkFlowView view)
        {
            WorkFlowViewElement element = new WorkFlowViewElement();

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "(Name)",
                PropertyType = CustomPropertyType.String
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Caption",
                PropertyType = CustomPropertyType.String
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Position",
                PropertyType = CustomPropertyType.ValueList,
                ValueList    = view.Instance.GetPositions(),
                Value        = view.Instance.GetPositions()[0]
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Width",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "150"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "LabelWidth",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "0"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "FontSize",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 6,
                RangeMax     = 400,
                Value        = "15"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Height",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "35"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Orientation",
                PropertyType = CustomPropertyType.ValueList,
                ValueList    = new List <string>()
                {
                    "Horizontal", "Vertical"
                },
                Value = "Horizontal"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Margins",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "5"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Variable",
                PropertyType = CustomPropertyType.Variable,
                Value        = ""
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Minimum",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = int.MinValue,
                RangeMax     = int.MaxValue,
                Value        = "-100"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Maximum",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = int.MinValue,
                RangeMax     = int.MaxValue,
                Value        = "100"
            });

            return(element);
        }
        public WorkFlow Load(Stream myFileStream)
        {
            XmlSerializer mySerializer =
                new XmlSerializer(typeof(WorkFlow));
            WorkFlow flow = (WorkFlow)mySerializer.Deserialize(myFileStream);

            WorkFlow resflow = Instance.CreateWorkFlow();

            resflow.Id          = flow.Id;
            resflow.Name        = flow.Name;
            resflow.Description = flow.Description;
            resflow.Version     = flow.Version;
            resflow.Properties.CopyValuesFrom(flow.Properties);

            foreach (Variable variable in flow.Variables.Items)
            {
                if (resflow.Variables[variable.Name] != null)
                {
                    resflow.Variables[variable.Name].Value = variable.Value;
                }
                else
                {
                    resflow.Variables.Items.Add(variable);
                }
            }

            foreach (var flowEvent in flow.Events)
            {
                IEventPlugin plugin = Instance.GetEventPlugin(flowEvent.PluginInfo.Class);

                WorkFlowEvent event_ = plugin.CreateEvent();
                event_.Parent     = resflow;
                event_.Instance   = plugin;
                event_.PluginInfo = flowEvent.PluginInfo;
                event_.Name       = flowEvent.Name;
                event_.Properties.CopyValuesFrom(flowEvent.Properties);
                LoadPluginInfo(event_.PluginInfo);

                foreach (var flowCommand in flowEvent.CommandCollection.Items)
                {
                    IWorkflowCommand commandPlugin = Instance.GetCommandPlugin(flowCommand.PluginInfo.Class);
                    var wCommand = commandPlugin.CreateCommand();
                    wCommand.Instance   = commandPlugin;
                    wCommand.PluginInfo = flowCommand.PluginInfo;
                    wCommand.Name       = flowCommand.Name;
                    wCommand.Properties.CopyValuesFrom(flowCommand.Properties);
                    event_.CommandCollection.Items.Add(wCommand);
                    LoadPluginInfo(flowCommand.PluginInfo);
                }
                resflow.Events.Add(event_);
            }

            foreach (var _view in flow.Views)
            {
                IViewPlugin  plugin = Instance.GetViewPlugin(_view.PluginInfo.Class);
                WorkFlowView view   = plugin.CreateView();
                view.Parent     = resflow;
                view.Instance   = plugin;
                view.PluginInfo = _view.PluginInfo;
                view.Name       = _view.Name;
                view.Properties.CopyValuesFrom(_view.Properties);
                LoadPluginInfo(view.PluginInfo);
                foreach (var viewElement in _view.Elements)
                {
                    IViewElementPlugin  elementplugin = Instance.GetElementPlugin(viewElement.PluginInfo.Class);
                    WorkFlowViewElement element       = elementplugin.CreateElement(view);
                    element.Parent     = view;
                    element.Instance   = elementplugin;
                    element.PluginInfo = viewElement.PluginInfo;
                    element.Name       = viewElement.Name;
                    element.Properties.CopyValuesFrom(viewElement.Properties);
                    view.Elements.Add(element);
                    LoadPluginInfo(element.PluginInfo);
                    foreach (var commandCollection in element.Events)
                    {
                        CommandCollection loadedcommand = null;
                        foreach (var collection in viewElement.Events)
                        {
                            if (collection.Name == commandCollection.Name)
                            {
                                loadedcommand = collection;
                            }
                        }
                        if (loadedcommand != null)
                        {
                            foreach (var flowCommand in loadedcommand.Items)
                            {
                                IWorkflowCommand commandPlugin =
                                    Instance.GetCommandPlugin(flowCommand.PluginInfo.Class);
                                var wCommand = commandPlugin.CreateCommand();
                                wCommand.Instance   = commandPlugin;
                                wCommand.PluginInfo = flowCommand.PluginInfo;
                                wCommand.Name       = flowCommand.Name;
                                wCommand.Properties.CopyValuesFrom(flowCommand.Properties);
                                commandCollection.Items.Add(wCommand);
                                LoadPluginInfo(wCommand.PluginInfo);
                            }
                        }
                    }
                }
                foreach (var commandCollection in view.Events)
                {
                    CommandCollection loadedcommand = null;
                    foreach (var collection in _view.Events)
                    {
                        if (collection.Name == commandCollection.Name)
                        {
                            loadedcommand = collection;
                        }
                    }
                    if (loadedcommand != null)
                    {
                        foreach (var flowCommand in loadedcommand.Items)
                        {
                            IWorkflowCommand commandPlugin = Instance.GetCommandPlugin(flowCommand.PluginInfo.Class);
                            var wCommand = commandPlugin.CreateCommand();
                            wCommand.Instance   = commandPlugin;
                            wCommand.PluginInfo = flowCommand.PluginInfo;
                            wCommand.Name       = flowCommand.Name;
                            wCommand.Properties.CopyValuesFrom(flowCommand.Properties);
                            commandCollection.Items.Add(wCommand);
                            LoadPluginInfo(wCommand.PluginInfo);
                        }
                    }
                }
                resflow.Views.Add(view);
            }
            LoadVariables(resflow);
            return(resflow);
        }
Esempio n. 16
0
        public FrameworkElement GetControl(WorkFlowViewElement viewElement, Context context)
        {
            //< StackPanel Margin = "2,0" >

            //    < Label Content = "{T:TranslateExtension Iso}" Target = "{Binding ElementName=cmb_iso}" Padding = "0" />

            //    < Border BorderThickness = "1" BorderBrush = "{Binding Path=IsoNumber.ErrorColor}" >

            //    < ComboBox Name = "cmb_iso" IsEnabled = "{Binding Path=IsoNumber.IsEnabled}" ItemsSource = "{Binding Path=IsoNumber.Values}" SelectedValue = "{Binding Path=IsoNumber.Value}" />

            //    </ Border >

            //    </ StackPanel >

            var property = GetProperty(viewElement.Properties["Property"].Value,
                                       ServiceProvider.Instance.DeviceManager.SelectedCameraDevice);
            ComboBox comboBox = new ComboBox()
            {
                FontSize = viewElement.Properties["FontSize"].ToInt(context),
                VerticalContentAlignment   = VerticalAlignment.Center,
                HorizontalContentAlignment = HorizontalAlignment.Center
            };

            viewElement.SetSize(comboBox, context);

            comboBox.DataContext = property;
            comboBox.SetBinding(ComboBox.IsEnabledProperty, "IsEnabled");
            comboBox.SetBinding(ComboBox.ItemsSourceProperty, "Values");
            comboBox.SetBinding(ComboBox.SelectedValueProperty, "Value");

            if (viewElement.Properties["BackgroundColor"].ToString(context) != "Transparent" &&
                viewElement.Properties["BackgroundColor"].ToString(context) != "#00FFFFFF")
            {
                comboBox.Background =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["BackgroundColor"].ToString(context)));
            }

            if (viewElement.Properties["ForegroundColor"].ToString(context) != "Transparent" &&
                viewElement.Properties["ForegroundColor"].ToString(context) != "#00FFFFFF")
            {
                comboBox.Foreground =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["ForegroundColor"].ToString(context)));
            }

            var label = new TextBlock()
            {
                Text              = viewElement.Properties["Caption"].ToString(context),
                FontSize          = viewElement.Properties["FontSize"].ToInt(context),
                VerticalAlignment = VerticalAlignment.Center,
            };

            if (viewElement.Properties["LabelWidth"].ToInt(context) > 0)
            {
                label.Width = viewElement.Properties["LabelWidth"].ToInt(context);
            }

            if (viewElement.Properties["Height"].ToInt(context) > 0)
            {
                label.Height = viewElement.Properties["Height"].ToInt(context);
            }

            if (viewElement.Properties["ForegroundColor"].ToString(context) != "Transparent" &&
                viewElement.Properties["ForegroundColor"].ToString(context) != "#00FFFFFF")
            {
                label.Foreground =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["ForegroundColor"].ToString(context)));
            }

            var stackpanel = new StackPanel()
            {
                Margin      = new Thickness(viewElement.Properties["Margins"].ToInt(context)),
                Orientation = viewElement.Properties["Orientation"].ToString(context) == "Horizontal"
                    ? Orientation.Horizontal
                    : Orientation.Vertical
            };

            stackpanel.Children.Add(label);
            stackpanel.Children.Add(comboBox);

            return(stackpanel);
        }
Esempio n. 17
0
        public WorkFlowViewElement CreateElement(WorkFlowView view)
        {
            WorkFlowViewElement element = new WorkFlowViewElement();

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "(Name)",
                PropertyType = CustomPropertyType.String
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Caption",
                PropertyType = CustomPropertyType.String
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Enabled",
                PropertyType = CustomPropertyType.Variable
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Position",
                PropertyType = CustomPropertyType.ValueList,
                ValueList    = view.Instance.GetPositions(),
                Value        = view.Instance.GetPositions()[0]
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Style",
                PropertyType = CustomPropertyType.ValueList,
                ValueList    = { "Default", "Rounded" },
                Value        = "Default"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Icon",
                PropertyType = CustomPropertyType.Icon,
                Value        = "(None)"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Width",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "150"
            });

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Height",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "50"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Margins",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "5"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "FontSize",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 6,
                RangeMax     = 400,
                Value        = "15"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "BackgroundColor",
                PropertyType = CustomPropertyType.Color,
                Value        = "Transparent"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "ForegroundColor",
                PropertyType = CustomPropertyType.Color,
                Value        = "Transparent"
            });
            element.Events.Add(new CommandCollection("Click"));
            return(element);
        }
        public WorkFlowViewElement CreateElement(WorkFlowView view)
        {
            WorkFlowViewElement element = new WorkFlowViewElement();

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "(Name)",
                PropertyType = CustomPropertyType.String
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Caption",
                PropertyType = CustomPropertyType.String
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Variable",
                PropertyType = CustomPropertyType.Variable,
                Value        = ""
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "ValueList",
                PropertyType = CustomPropertyType.String,
                Value        = ""
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "ValueListVariable",
                PropertyType = CustomPropertyType.Variable,
                Value        = ""
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Orientation",
                PropertyType = CustomPropertyType.ValueList,
                ValueList    = { "Horizontal", "Vertical" },
                Value        = "Vertical"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Position",
                PropertyType = CustomPropertyType.ValueList,
                ValueList    = view.Instance.GetPositions(),
                Value        = view.Instance.GetPositions()[0]
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Width",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "150"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "LabelWidth",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "150"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Height",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "0"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Margins",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "2"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "FontSize",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 6,
                RangeMax     = 400,
                Value        = "15"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "BackgroundColor",
                PropertyType = CustomPropertyType.Color,
                Value        = "Transparent"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "ForegroundColor",
                PropertyType = CustomPropertyType.Color,
                Value        = "Transparent"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Editable",
                PropertyType = CustomPropertyType.Bool,
                Value        = "True"
            });
            return(element);
        }
        public FrameworkElement GetControl(WorkFlowViewElement viewElement, Context context)
        {
            ComboBox comboBox = new ComboBox()
            {
                FontSize = viewElement.Properties["FontSize"].ToInt(context),
                VerticalContentAlignment   = VerticalAlignment.Center,
                HorizontalContentAlignment = HorizontalAlignment.Center
            };

            viewElement.SetSize(comboBox, context);
            var variable = viewElement.Properties["Variable"].ToString(context);

            comboBox.DataContext = viewElement.Parent.Parent;
            if (string.IsNullOrEmpty(viewElement.Properties["ValueListVariable"].ToString(context)))
            {
                comboBox.ItemsSource = viewElement.Properties["ValueList"].ToString(context).Split('|');
            }
            else
            {
                comboBox.SetBinding(ComboBox.ItemsSourceProperty, "Variables[" + viewElement.Properties["ValueListVariable"].ToString(context) + "].ValueList");
            }

            comboBox.SetBinding(ComboBox.TextProperty, "Variables[" + variable + "].Value");
            comboBox.IsEditable = viewElement.Properties["Editable"].ToBool(context);


            if (viewElement.Properties["BackgroundColor"].ToString(context) != "Transparent" &&
                viewElement.Properties["BackgroundColor"].ToString(context) != "#00FFFFFF")
            {
                comboBox.Background =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["BackgroundColor"].ToString(context)));
            }

            if (viewElement.Properties["ForegroundColor"].ToString(context) != "Transparent" &&
                viewElement.Properties["ForegroundColor"].ToString(context) != "#00FFFFFF")
            {
                comboBox.Foreground =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["ForegroundColor"].ToString(context)));
            }

            var label = new TextBlock()
            {
                Text              = viewElement.Properties["Caption"].ToString(context),
                FontSize          = viewElement.Properties["FontSize"].ToInt(context),
                VerticalAlignment = VerticalAlignment.Center,
            };

            if (viewElement.Properties["Orientation"].ToString(context) == "Vertical")
            {
                label.TextAlignment = TextAlignment.Center;
            }


            if (viewElement.Properties["LabelWidth"].ToInt(context) > 0)
            {
                label.Width = viewElement.Properties["LabelWidth"].ToInt(context);
            }

            if (viewElement.Properties["Height"].ToInt(context) > 0)
            {
                label.Height = viewElement.Properties["Height"].ToInt(context);
            }

            if (viewElement.Properties["ForegroundColor"].ToString(context) != "Transparent" &&
                viewElement.Properties["ForegroundColor"].ToString(context) != "#00FFFFFF")
            {
                label.Foreground =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["ForegroundColor"].ToString(context)));
            }

            var stackpanel = new StackPanel()
            {
                Margin      = new Thickness(viewElement.Properties["Margins"].ToInt(context)),
                Orientation = viewElement.Properties["Orientation"].ToString(context) == "Horizontal"
                    ? Orientation.Horizontal
                    : Orientation.Vertical
            };

            stackpanel.Children.Add(label);
            stackpanel.Children.Add(comboBox);

            return(stackpanel);
        }
Esempio n. 20
0
        public WorkFlowViewElement CreateElement(WorkFlowView view)
        {
            WorkFlowViewElement element = new WorkFlowViewElement();

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "(Name)",
                PropertyType = CustomPropertyType.String
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Caption",
                PropertyType = CustomPropertyType.String
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Property",
                PropertyType = CustomPropertyType.ValueList,
                ValueList    =
                {
                    "Mode",
                    "CompressionSetting",
                    "ExposureCompensation",
                    "ExposureMeteringMode",
                    "FNumber",
                    "IsoNumber",
                    "ShutterSpeed",
                    "WhiteBalance",
                    "FocusMode"
                },
                Value = "Mode"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Orientation",
                PropertyType = CustomPropertyType.ValueList,
                ValueList    = { "Horizontal", "Vertical" },
                Value        = "Vertical"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Position",
                PropertyType = CustomPropertyType.ValueList,
                ValueList    = view.Instance.GetPositions(),
                Value        = view.Instance.GetPositions()[0]
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Width",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "150"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "LabelWidth",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "150"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Height",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "0"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Margins",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "2"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "FontSize",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 6,
                RangeMax     = 400,
                Value        = "15"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "BackgroundColor",
                PropertyType = CustomPropertyType.Color,
                Value        = "Transparent"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "ForegroundColor",
                PropertyType = CustomPropertyType.Color,
                Value        = "Transparent"
            });
            return(element);
        }
Esempio n. 21
0
        public WorkFlowViewElement CreateElement(WorkFlowView view)
        {
            WorkFlowViewElement element = new WorkFlowViewElement();

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Text",
                PropertyType = CustomPropertyType.String
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Position",
                PropertyType = CustomPropertyType.ValueList,
                ValueList    = view.Instance.GetPositions(),
                Value        = view.Instance.GetPositions()[0]
            });

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Width",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "150"
            });

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Height",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "50"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "Margins",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 0,
                RangeMax     = 9999,
                Value        = "5"
            });

            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "FontSize",
                PropertyType = CustomPropertyType.Number,
                RangeMin     = 6,
                RangeMax     = 400,
                Value        = "15"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "BackgroundColor",
                PropertyType = CustomPropertyType.Color,
                Value        = "Transparent"
            });
            element.Properties.Items.Add(new CustomProperty()
            {
                Name         = "ForegroundColor",
                PropertyType = CustomPropertyType.Color,
                Value        = "Transparent"
            });
            return(element);
        }
        public FrameworkElement GetControl(WorkFlowViewElement viewElement, Context context)
        {
            var textBox = new TextBox()
            {
                FontSize = viewElement.Properties["FontSize"].ToInt(context),
                VerticalContentAlignment   = VerticalAlignment.Center,
                HorizontalContentAlignment = HorizontalAlignment.Center
            };

            viewElement.SetSize(textBox, context);

            textBox.DataContext = viewElement.Parent.Parent.Variables[viewElement.Properties["Variable"].Value];
            textBox.SetBinding(TextBox.TextProperty, "Value");

            if (viewElement.Properties["BackgroundColor"].Value != "Transparent" && viewElement.Properties["BackgroundColor"].Value != "#00FFFFFF")
            {
                textBox.Background =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["BackgroundColor"].Value));
            }

            if (viewElement.Properties["ForegroundColor"].Value != "Transparent" && viewElement.Properties["ForegroundColor"].Value != "#00FFFFFF")
            {
                textBox.Foreground =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["ForegroundColor"].Value));
            }

            var label = new System.Windows.Controls.Label()
            {
                Height   = viewElement.Properties["Height"].ToInt(context),
                Content  = viewElement.Properties["Caption"].Value,
                Margin   = new Thickness(viewElement.Properties["Margins"].ToInt(context)),
                FontSize = viewElement.Properties["FontSize"].ToInt(context),
                VerticalContentAlignment = VerticalAlignment.Center,
            };

            if (viewElement.Properties["Orientation"].ToString(context) == "Vertical")
            {
                label.HorizontalContentAlignment = HorizontalAlignment.Center;
            }

            if (viewElement.Properties["LabelWidth"].ToInt(context) > 0)
            {
                label.Width = viewElement.Properties["LabelWidth"].ToInt(context);
            }


            if (viewElement.Properties["ForegroundColor"].Value != "Transparent" && viewElement.Properties["ForegroundColor"].Value != "#00FFFFFF")
            {
                label.Foreground =
                    new SolidColorBrush(
                        (Color)ColorConverter.ConvertFromString(viewElement.Properties["ForegroundColor"].Value));
            }

            var button = new System.Windows.Controls.Button()
            {
                Height   = viewElement.Properties["Height"].ToInt(context),
                Content  = viewElement.Properties["ButtonText"].Value,
                Margin   = new Thickness(viewElement.Properties["Margins"].ToInt(context)),
                FontSize = viewElement.Properties["FontSize"].ToInt(context),
                VerticalContentAlignment = VerticalAlignment.Center,
                HorizontalAlignment      = HorizontalAlignment.Right
            };

            if (viewElement.Properties["Orientation"].Value == "Vertical")
            {
                button.HorizontalAlignment = HorizontalAlignment.Stretch;
            }

            button.Click += (sender, e) =>
            {
                try
                {
                    FolderBrowserDialog browserDialog = new FolderBrowserDialog();
                    if (viewElement.Parent.Parent.Variables[viewElement.Properties["Variable"].Value].Value != null)
                    {
                        browserDialog.SelectedPath =
                            viewElement.Parent.Parent.Variables[viewElement.Properties["Variable"].Value].Value;
                    }
                    if (browserDialog.ShowDialog() == DialogResult.OK)
                    {
                        viewElement.Parent.Parent.Variables[viewElement.Properties["Variable"].Value].Value =
                            browserDialog.SelectedPath;
                    }
                }
                catch (Exception ex)
                {
                    Log.Error("Unable to browse folder", ex);
                }
            };
            var stackpanel = new StackPanel();

            stackpanel.Children.Add(label);
            stackpanel.Children.Add(textBox);
            stackpanel.Children.Add(button);
            stackpanel.Orientation = viewElement.Properties["Orientation"].Value == "Horizontal" ? Orientation.Horizontal : Orientation.Vertical;
            return(stackpanel);
        }