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); }
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]; } } }
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); }
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; }
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); }
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); } }
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); }
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); } }
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); }
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); }
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); }
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); }
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); }
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); }
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); }