Exemple #1
0
        /// <summary>
        /// Initializes the editor.
        /// </summary>
        /// <param name="nodeDefinitions">Node definitions</param>
        /// <param name="flowConfiguration">Flow configuration</param>
        public void Initialize(IList <Definition.NodeDefinition> nodeDefinitions, Configuration.FlowConfiguration flowConfiguration)
        {
            isInitialized = true;

            toolbox.DataContext = new ToolboxViewModel(nodeDefinitions);

            diagramViewModel = new WorkflowEditorViewModel(nodeDefinitions, flowConfiguration);
            this.DataContext = diagramViewModel;

            this.MyDiagram.ConnectionManipulationStarted   += MyDiagram_ConnectionManipulationStarted;
            this.MyDiagram.ConnectionManipulationCompleted += MyDiagram_ConnectionManipulationCompleted;
        }
Exemple #2
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="nodeDefinitions">NodeDefinition</param>
        /// <param name="flowConfiguration">FlowConfiguration</param>
        public WorkflowEditorViewModel(IList <NodeDefinition> nodeDefinitions,
                                       Configuration.FlowConfiguration flowConfiguration)
        {
            connections          = new ObservableCollection <NodeConnectionViewModel>();
            variables            = new ObservableCollection <FlowVariable>();
            Nodes                = new ObservableCollection <NodeViewModel>();
            this.nodeDefinitions = nodeDefinitions;

            Nodes.CollectionChanged += (s, e) =>
            {
                IsDirty = true;
                if (e.NewItems != null)
                {
                    foreach (var item in e.NewItems.OfType <Simplic.UI.MVC.ViewModelBase>())
                    {
                        item.Parent = this;
                    }
                }
            };

            if (flowConfiguration == null)
            {
                this.flowConfiguration = new Configuration.FlowConfiguration()
                {
                    Id   = Guid.NewGuid(),
                    Name = "New Workflow"
                }
            }
            ;
            else
            {
                this.flowConfiguration = flowConfiguration;
            }

            FillConfiguration();

            addVariableCommand = new Simplic.UI.MVC.RelayCommand(NewVariableRelayCommand);

            AvailableVariableTypes = new List <Type>()
            {
                { typeof(string) },
                { typeof(int) },
                { typeof(uint) },
                { typeof(short) },
                { typeof(ushort) },
                { typeof(long) },
                { typeof(ulong) },
                { typeof(float) },
                { typeof(double) },
                { typeof(decimal) }
            };
        }