public void ColorPalette_CreatesCorrectUndoStackForComplexState()
        {
            var homespace = Model.CurrentWorkspace as HomeWorkspaceModel;

            Assert.NotNull(homespace, "The current workspace is not a HomeWorkspaceModel");
            var colorPalette = new ColorPalette();

            Model.AddNodeToCurrentWorkspace(colorPalette, true);
            homespace.Run();
            Assert.DoesNotThrow(DispatcherUtil.DoEvents);
            Assert.AreEqual(DSColor.ByARGB(255, 0, 0, 0), colorPalette.DsColor);
            homespace.UpdateModelValue(new List <System.Guid>()
            {
                colorPalette.GUID
            }, "DsColor", DSColor.ByARGB(255, 255, 0, 0).ToString());
            homespace.UpdateModelValue(new List <System.Guid>()
            {
                colorPalette.GUID
            }, "DsColor", DSColor.ByARGB(255, 0, 0, 255).ToString());
            homespace.UpdateModelValue(new List <System.Guid>()
            {
                colorPalette.GUID
            }, "DsColor", DSColor.ByARGB(255, 255, 0, 0).ToString());

            //now undo a few times and assert the color is red.
            homespace.Undo();
            Assert.AreEqual(DSColor.ByARGB(255, 0, 0, 255), colorPalette.DsColor);
            homespace.Undo();
            Assert.AreEqual(DSColor.ByARGB(255, 255, 0, 0), colorPalette.DsColor);
            Assert.IsTrue(homespace.UndoRecorder.CanUndo);
            homespace.Undo();
            Assert.AreEqual(DSColor.ByARGB(255, 0, 0, 0), colorPalette.DsColor);
        }
Esempio n. 2
0
 private DSColor DeserializeValue(string val)
 {
     try
     {
         //Splits the xml string and returns each of the ARGB values as a string array.
         string[] argb = Regex.Split(val, @"\D+").Where(s => !string.IsNullOrWhiteSpace(s)).ToArray();
         return(DSColor.ByARGB(int.Parse(argb[3]), int.Parse(argb[0]), int.Parse(argb[1]), int.Parse(argb[2])));
     }
     catch
     {
         return(DSColor.ByARGB(255, 0, 0, 0));
     }
 }
Esempio n. 3
0
        public ColorPalette(JObject DsColor, IEnumerable <PortModel> inPorts, IEnumerable <PortModel> outPorts) : base(inPorts, outPorts)
        {
            // RGBA to ARGB
            try
            {
                this.DsColor = DSColor.ByARGB((int)DsColor["Alpha"], (int)DsColor["Red"], (int)DsColor["Green"], (int)DsColor["Blue"]);
            }

            catch
            {
                this.DsColor = DSColor.ByARGB(255, 0, 0, 0);
            }
        }
Esempio n. 4
0
        public ColorPalette(JObject InputValue, IEnumerable <PortModel> inPorts, IEnumerable <PortModel> outPorts) : base(inPorts, outPorts)
        {
            // RGBA to ARGB
            try
            {
                this.DsColor = DSColor.ByARGB((int)InputValue["A"], (int)InputValue["R"], (int)InputValue["G"], (int)InputValue["B"]);
            }

            catch
            {
                this.DsColor = DSColor.ByARGB(255, 0, 0, 0);
            }
        }
Esempio n. 5
0
        public void ColorPalette_AddToHomespaceAndRun_NoException()
        {
            var homespace = Model.CurrentWorkspace as HomeWorkspaceModel;

            Assert.NotNull(homespace, "The current workspace is not a HomeWorkspaceModel");
            var colorPalette = new ColorPalette();

            Model.AddNodeToCurrentWorkspace(colorPalette, true);
            homespace.Run();
            Assert.DoesNotThrow(DispatcherUtil.DoEvents);
            Assert.AreEqual(colorPalette.DsColor, DSColor.ByARGB(255, 0, 0, 0));
            Assert.Pass();
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            color = (Color)value;
            if (!color.Equals(null))
            {
                dscolor = DSColor.ByARGB(color.A, color.R, color.G, color.B);
            }
            else
            {
                dscolor = DSColor.ByARGB(0, 0, 0, 0);
            }

            return(dscolor);
        }
Esempio n. 7
0
        public void ColorPalette_Undo()
        {
            var homespace = Model.CurrentWorkspace as HomeWorkspaceModel;

            Assert.NotNull(homespace, "The current workspace is not a HomeWorkspaceModel");
            var colorPalette = new ColorPalette();

            Model.AddNodeToCurrentWorkspace(colorPalette, true);
            homespace.Run();
            Assert.DoesNotThrow(DispatcherUtil.DoEvents);
            Assert.AreEqual(DSColor.ByARGB(255, 0, 0, 0), colorPalette.DsColor);
            homespace.UpdateModelValue(new List <System.Guid>()
            {
                colorPalette.GUID
            }, "DsColor", DSColor.ByARGB(255, 255, 255, 255).ToString());
            Assert.AreEqual(DSColor.ByARGB(255, 255, 255, 255), colorPalette.DsColor);
            homespace.Undo();
            Assert.AreEqual(DSColor.ByARGB(255, 0, 0, 0), colorPalette.DsColor);
            homespace.Redo();
            Assert.AreEqual(DSColor.ByARGB(255, 255, 255, 255), colorPalette.DsColor);
        }
Esempio n. 8
0
        public void ColorPalette_AddToHomespaceAndRun_NoException()
        {
            var homespace = Model.CurrentWorkspace as HomeWorkspaceModel;

            Assert.NotNull(homespace, "The current workspace is not a HomeWorkspaceModel");
            var colorPalette = new ColorPalette();

            Model.AddNodeToCurrentWorkspace(colorPalette, true);
            homespace.Run();
            Assert.DoesNotThrow(DispatcherUtil.DoEvents);
            Assert.AreEqual(colorPalette.DsColor, DSColor.ByARGB(255, 0, 0, 0));
            Assert.Pass();

            // Verify same results in JSON

            // Change from default color to red
            homespace.UpdateModelValue(new List <System.Guid>()
            {
                colorPalette.GUID
            }, "DsColor", DSColor.ByARGB(255, 255, 0, 0).ToString());
            homespace.Run();
            Assert.AreEqual(DSColor.ByARGB(255, 255, 0, 0), colorPalette.DsColor);
            // Save in temp location
            var tempPath = Path.GetTempPath() + "ColorPaletteTest_temp.dyn";

            ViewModel.SaveAs(tempPath);
            // Close workspace
            Assert.IsTrue(ViewModel.CloseHomeWorkspaceCommand.CanExecute(null));
            ViewModel.CloseHomeWorkspaceCommand.Execute(null);
            // Open JSON temp file
            OpenDynamoDefinition(tempPath);
            // Run
            RunCurrentModel();
            // Verify xml results against json
            Assert.DoesNotThrow(DispatcherUtil.DoEvents);
            Assert.AreEqual(colorPalette.DsColor, DSColor.ByARGB(255, 255, 0, 0));
            // Delete temp file
            File.Delete(tempPath);
        }
        public void MediatoDSColorConverterConvertConvertBackTest()
        {
            //Red DSColor
            var redDSColor = DSColor.ByARGB(255, 255, 0, 0);

            var dsColorConverter = new MediatoDSColorConverter();

            //Convert from DSColor to Color
            var colorConverted = (Color)dsColorConverter.Convert(redDSColor, null, null, null);

            //Validates that the convertion to Color was successful
            Assert.IsNotNull(colorConverted);
            Assert.AreEqual(colorConverted.GetType(), typeof(Color));
            Assert.AreEqual(colorConverted.ToString(), "#FFFF0000");

            //Convert back from Color to DSColor
            var dsColorBack = (DSColor)dsColorConverter.ConvertBack(colorConverted, null, null, null);

            //Validates that the convertion to DSColor was successful
            Assert.IsNotNull(dsColorBack);
            Assert.AreEqual(dsColorBack.GetType(), typeof(DSColor));
            Assert.AreEqual(dsColorBack.ToString(), "Color(Red = 255, Green = 0, Blue = 0, Alpha = 255)");
        }
Esempio n. 10
0
        public void SetupCustomUIElements(dynNodeView view)
        {
            var drawPlane = new Image
            {
                Stretch             = Stretch.Fill,
                HorizontalAlignment = HorizontalAlignment.Stretch,
                Width  = 100,
                Height = 200
            };

            var dm = this.Workspace.DynamoModel;

            view.inputGrid.Children.Add(drawPlane);

            RequestChangeColorRange += delegate
            {
                DispatchOnUIThread(delegate
                {
                    var colorStartNode = InPorts[0].Connectors[0].Start.Owner;
                    var startIndex     = InPorts[0].Connectors[0].Start.Index;
                    var colorEndNode   = InPorts[1].Connectors[0].Start.Owner;
                    var endIndex       = InPorts[1].Connectors[0].Start.Index;

                    var startId = colorStartNode.GetAstIdentifierForOutputIndex(startIndex).Name;
                    var endId   = colorEndNode.GetAstIdentifierForOutputIndex(endIndex).Name;

                    var startMirror = dm.EngineController.GetMirror(startId);
                    var endMirror   = dm.EngineController.GetMirror(endId);

                    object start = null;
                    object end   = null;

                    if (startMirror == null)
                    {
                        start = Color.ByARGB(255, 192, 192, 192);
                    }
                    else
                    {
                        if (startMirror.GetData().IsCollection)
                        {
                            start = startMirror.GetData().GetElements().
                                    Select(x => x.Data).FirstOrDefault();
                        }
                        else
                        {
                            start = startMirror.GetData().Data;
                        }
                    }

                    if (endMirror == null)
                    {
                        end = Color.ByARGB(255, 64, 64, 64);
                    }
                    else
                    {
                        if (endMirror.GetData().IsCollection)
                        {
                            end = endMirror.GetData().GetElements().
                                  Select(x => x.Data).FirstOrDefault();
                        }
                        else
                        {
                            end = endMirror.GetData().Data;
                        }
                    }

                    Color startColor = start as Color;
                    Color endColor   = end as Color;
                    if (null != startColor && null != endColor)
                    {
                        WriteableBitmap bmp = CompleteColorScale(startColor, endColor);
                        drawPlane.Source    = bmp;
                    }
                });
            };
        }
Esempio n. 11
0
 /// <summary>
 /// Converts the Revit color into a Dynamo Core Color.
 /// </summary>
 /// <param name="color">A wrapped Revit color</param>
 /// <returns name="dynamoColor">A Dynamo Core Color.</returns>
 public static DynColor ToDynamoColor(ColorWrapper color)
 {
     return(DynColor.ByARGB(255, color._red, color._green, color._blue));
 }