public Dictionary <IVisio.Shape, IList <UserDefinedCellCells> > Get(TargetShapes targets) { this._client.Application.AssertApplicationAvailable(); this._client.Document.AssertDocumentAvailable(); var prop_dic = new Dictionary <IVisio.Shape, IList <UserDefinedCellCells> >(); targets = targets.ResolveShapes(this._client); if (targets.Shapes.Count < 1) { return(prop_dic); } var application = this._client.Application.Get(); var page = application.ActivePage; var list_user_props = UserDefinedCellHelper.Get(page, targets.Shapes); for (int i = 0; i < targets.Shapes.Count; i++) { var shape = targets.Shapes[i]; var props = list_user_props[i]; prop_dic[shape] = props; } return(prop_dic); }
public void UserDefinedCells_SetForMultipleShapes() { var page1 = this.GetNewPage(); var s1 = page1.DrawRectangle(0, 0, 2, 2); var s2 = page1.DrawRectangle(0, 0, 2, 2); var s3 = page1.DrawRectangle(0, 0, 2, 2); var s4 = page1.DrawRectangle(0, 0, 2, 2); UserDefinedCellHelper.Set(s1, "FOO1", "1", "p1"); UserDefinedCellHelper.Set(s2, "FOO2", "2", "p2"); UserDefinedCellHelper.Set(s2, "FOO3", "3", "p3"); UserDefinedCellHelper.Set(s4, "FOO4", "4", "p4"); UserDefinedCellHelper.Set(s4, "FOO5", "5", "p4"); UserDefinedCellHelper.Set(s4, "FOO6", "6", "p6"); var shapeids = new[] { s1, s2, s3, s4 }; var allprops = UserDefinedCellHelper.Get(page1, shapeids); Assert.AreEqual(4, allprops.Count); Assert.AreEqual(1, allprops[0].Count); Assert.AreEqual(2, allprops[1].Count); Assert.AreEqual(0, allprops[2].Count); Assert.AreEqual(3, allprops[3].Count); Assert.AreEqual("\"1\"", allprops[0][0].Value.Formula.Value); Assert.AreEqual("\"2\"", allprops[1][0].Value.Formula.Value); Assert.AreEqual("\"3\"", allprops[1][1].Value.Formula.Value); Assert.AreEqual("\"4\"", allprops[3][0].Value.Formula.Value); Assert.AreEqual("\"5\"", allprops[3][1].Value.Formula.Value); Assert.AreEqual("\"6\"", allprops[3][2].Value.Formula.Value); page1.Delete(0); }
public Dictionary <IVisio.Shape, Dictionary <string, UserDefinedCellCells> > Get(VisioScripting.Models.TargetShapes targets) { this._client.Application.AssertApplicationAvailable(); this._client.Document.AssertDocumentAvailable(); var prop_dic = new Dictionary <IVisio.Shape, Dictionary <string, UserDefinedCellCells> >(); targets = targets.ResolveShapes(this._client); if (targets.Shapes.Count < 1) { return(prop_dic); } var application = this._client.Application.Get(); var page = application.ActivePage; var list_user_props = UserDefinedCellHelper.GetDictionary((IVisio.Page)page, targets.Shapes, CellValueType.Formula); for (int i = 0; i < targets.Shapes.Count; i++) { var shape = targets.Shapes[i]; var props = list_user_props[i]; prop_dic[shape] = props; } return(prop_dic); }
public void Delete(VisioScripting.Models.TargetShapes targets, string name) { this._client.Application.AssertApplicationAvailable(); this._client.Document.AssertDocumentAvailable(); targets = targets.ResolveShapes(this._client); if (targets.Shapes.Count < 1) { return; } if (name == null) { throw new System.ArgumentNullException("name cannot be null", "name"); } if (name.Length < 1) { throw new System.ArgumentException("name cannot be empty", nameof(name)); } using (var undoscope = this._client.Application.NewUndoScope("Delete User-Defined Cell")) { foreach (var shape in targets.Shapes) { UserDefinedCellHelper.Delete(shape, name); } } }
public void UserDefinedCells_ValueQuoting() { var page1 = this.GetNewPage(); var s1 = page1.DrawRectangle(0, 0, 2, 2); var p1 = UserDefinedCellHelper.Get(s1); Assert.AreEqual(0, p1.Count); UserDefinedCellHelper.Set(s1, "FOO1", "1", null); UserDefinedCellHelper.Set(s1, "FOO2", "2", null); UserDefinedCellHelper.Set(s1, "FOO3", "3\"4", null); var p2 = UserDefinedCellHelper.Get(s1); Assert.AreEqual(3, p2.Count); Assert.AreEqual("FOO1", p2[0].Name); Assert.AreEqual("\"1\"", p2[0].Value.Formula.Value); Assert.AreEqual("FOO2", p2[1].Name); Assert.AreEqual("\"2\"", p2[1].Value.Formula.Value); Assert.AreEqual("FOO3", p2[2].Name); Assert.AreEqual("\"3\"\"4\"", p2[2].Value.Formula.Value); page1.Delete(0); }
public void UserDefinedCells_SetMultipleTimes() { var page1 = this.GetNewPage(); var s1 = page1.DrawRectangle(0, 0, 2, 2); // By default a shape has ZERO custom Properties Assert.AreEqual(0, CustomPropertyHelper.Get(s1).Count); // Add the same one multiple times Custom Property UserDefinedCellHelper.Set(s1, "FOO1", "BAR1", null); // Asset that now we have ONE CustomProperty Assert.AreEqual(1, UserDefinedCellHelper.GetCount(s1)); // Check that it is called FOO1 Assert.AreEqual(true, UserDefinedCellHelper.Contains(s1, "FOO1")); // Try to SET the same property again many times UserDefinedCellHelper.Set(s1, "FOO1", "BAR2", null); UserDefinedCellHelper.Set(s1, "FOO1", "BAR3", null); UserDefinedCellHelper.Set(s1, "FOO1", "BAR4", null); // Asset that now we have ONE CustomProperty Assert.AreEqual(1, UserDefinedCellHelper.GetCount(s1)); // Check that it is called FOO1 Assert.AreEqual(true, UserDefinedCellHelper.Contains(s1, "FOO1")); page1.Delete(0); }
public void UserDefinedCells_GetSet() { var page1 = this.GetNewPage(); var s1 = page1.DrawRectangle(0, 0, 2, 2); // By default a shape has ZERO custom Properties Assert.AreEqual(0, UserDefinedCellHelper.GetCount(s1)); // Add a Custom Property UserDefinedCellHelper.Set(s1, "FOO1", "BAR", null); Assert.AreEqual(1, UserDefinedCellHelper.GetCount(s1)); // Check that it is called FOO1 Assert.AreEqual(true, UserDefinedCellHelper.Contains(s1, "FOO1")); // Check that non-existent properties can't be found Assert.AreEqual(false, CustomPropertyHelper.Contains(s1, "FOOX")); var udcs = UserDefinedCellHelper.Get(s1); Assert.AreEqual(1, udcs.Count); Assert.AreEqual("FOO1", udcs[0].Name); Assert.AreEqual("\"BAR\"", udcs[0].Value.Formula); Assert.AreEqual("\"\"", udcs[0].Prompt.Formula); // Verify that we can set the value without affecting the prompt UserDefinedCellHelper.Set(s1, "FOO1", "BEER", null); udcs = UserDefinedCellHelper.Get(s1); Assert.AreEqual(1, udcs.Count); Assert.AreEqual("FOO1", udcs[0].Name); Assert.AreEqual("\"BEER\"", udcs[0].Value.Formula); Assert.AreEqual("\"\"", udcs[0].Prompt.Formula); // Verify that we can set passing in nulls changes nothing UserDefinedCellHelper.Set(s1, "FOO1", null, null); udcs = UserDefinedCellHelper.Get(s1); Assert.AreEqual(1, udcs.Count); Assert.AreEqual("FOO1", udcs[0].Name); Assert.AreEqual("\"BEER\"", udcs[0].Value.Formula); Assert.AreEqual("\"\"", udcs[0].Prompt.Formula); // Verify that we can set the prompt without affecting the value UserDefinedCellHelper.Set(s1, "FOO1", null, "Prompt1"); udcs = UserDefinedCellHelper.Get(s1); Assert.AreEqual(1, udcs.Count); Assert.AreEqual("FOO1", udcs[0].Name); Assert.AreEqual("\"BEER\"", udcs[0].Value.Formula); Assert.AreEqual("\"Prompt1\"", udcs[0].Prompt.Formula); // Delete that custom property UserDefinedCellHelper.Delete(s1, "FOO1"); // Verify that we have zero Custom Properties Assert.AreEqual(0, UserDefinedCellHelper.GetCount(s1)); page1.Delete(0); }
public void Scripting_Drop_Container_Master_Object() { var pagesize = new VA.Drawing.Size(4, 4); var client = this.GetScriptingClient(); // Create the page client.Document.New(); client.Page.New(pagesize, false); var application = client.Application.Get(); var active_page = application.ActivePage; // Load the stencils and find the masters var basic_stencil = client.Document.OpenStencil("Basic_U.VSS"); var master = client.Master.Get("Rectangle", basic_stencil); // Drop the rectangle client.Master.Drop(master, new VA.Drawing.Point(2, 2)); // Select the rectangle... it should already be selected, but just make sure client.Selection.SelectAll(); // Drop the container... since the rectangle is selected... it will automatically make it a member of the container var app = active_page.Application; var ver = client.Application.Version; var cont_master_name = ver.Major >= 15 ? "Plain" : "Container 1"; var stencil_type = IVisio.VisBuiltInStencilTypes.visBuiltInStencilContainers; var measurement_system = IVisio.VisMeasurementSystem.visMSUS; var containers_file = app.GetBuiltInStencilFile(stencil_type, measurement_system); var containers_doc = app.Documents.OpenStencil(containers_file); var masters = containers_doc.Masters; var container_master = masters.ItemU[cont_master_name]; var dropped_container = client.Master.DropContainer(container_master); // Verify var shapes = active_page.Shapes; // There should be two shapes... the rectangle and the container Assert.AreEqual(2, shapes.Count); // Verify that we did indeed drop a container Assert.AreEqual("Container", UserDefinedCellHelper .Get(dropped_container) .First(s => s.Name == "msvStructureType") .Value.Result); // cleanup client.Document.Close(true); }
public void UserDefinedCells_SetAdditionalProperties() { var page1 = this.GetNewPage(); var s1 = page1.DrawRectangle(0, 0, 2, 2); Assert.AreEqual(0, UserDefinedCellHelper.GetCount(s1)); var prop = new UserDefinedCellCells("foo"); prop.Prompt = "Some Prompt"; UserDefinedCellHelper.Set(s1, "foo", null, "Some prompt"); Assert.AreEqual(1, UserDefinedCellHelper.GetCount(s1)); page1.Delete(0); }
public void UserDefinedCells_GetFromMultipleShapes() { var page1 = this.GetNewPage(); var s1 = page1.DrawRectangle(0, 0, 1, 1); var s2 = page1.DrawRectangle(1, 1, 2, 2); var shapes = new[] { s1, s2 }; UserDefinedCellHelper.Set(s1, "foo", "bar", null); var props1 = UserDefinedCellHelper.Get(page1, shapes); Assert.AreEqual(2, props1.Count); Assert.AreEqual(1, props1[0].Count); Assert.AreEqual(0, props1[1].Count); page1.Delete(0); }
public void UserDefinedCells_GetNames() { var page1 = this.GetNewPage(); var s1 = page1.DrawRectangle(0, 0, 2, 2); Assert.AreEqual(0, UserDefinedCellHelper.GetCount(s1)); UserDefinedCellHelper.Set(s1, "FOO1", "BAR1", null); Assert.AreEqual(1, UserDefinedCellHelper.GetCount(s1)); UserDefinedCellHelper.Set(s1, "FOO1", "BAR2", null); Assert.AreEqual(1, UserDefinedCellHelper.GetCount(s1)); UserDefinedCellHelper.Set(s1, "FOO2", "BAR3", null); var names1 = UserDefinedCellHelper.GetNames(s1); Assert.AreEqual(2, names1.Count); Assert.IsTrue(names1.Contains("FOO1")); Assert.IsTrue(names1.Contains("FOO2")); Assert.AreEqual(2, UserDefinedCellHelper.GetCount(s1)); UserDefinedCellHelper.Delete(s1, "FOO1"); var names2 = UserDefinedCellHelper.GetNames(s1); Assert.AreEqual(1, names2.Count); Assert.IsTrue(names2.Contains("FOO2")); UserDefinedCellHelper.Set(s1, "FOO3", "BAR1", null); var names3 = UserDefinedCellHelper.GetNames(s1); Assert.AreEqual(2, names3.Count); Assert.IsTrue(names3.Contains("FOO2")); Assert.IsTrue(names3.Contains("FOO3")); UserDefinedCellHelper.Delete(s1, "FOO3"); Assert.AreEqual(1, UserDefinedCellHelper.GetCount(s1)); UserDefinedCellHelper.Delete(s1, "FOO2"); Assert.AreEqual(0, UserDefinedCellHelper.GetCount(s1)); page1.Delete(0); }
public void Set(VisioScripting.Models.TargetShapes targets, VisioScripting.Models.UserDefinedCell cell) { this._client.Application.AssertApplicationAvailable(); this._client.Document.AssertDocumentAvailable(); targets = targets.ResolveShapes(this._client); if (targets.Shapes.Count < 1) { return; } using (var undoscope = this._client.Application.NewUndoScope("Set User-Defined Cell")) { foreach (var shape in targets.Shapes) { UserDefinedCellHelper.Set(shape, cell.Name, cell.Cells); } } }
public void Set(TargetShapes targets, UserDefinedCellCells userdefinedcell) { this._client.Application.AssertApplicationAvailable(); this._client.Document.AssertDocumentAvailable(); targets = targets.ResolveShapes(this._client); if (targets.Shapes.Count < 1) { return; } using (var undoscope = this._client.Application.NewUndoScope("Set User-Defined Cell")) { foreach (var shape in targets.Shapes) { UserDefinedCellHelper.Set(shape, userdefinedcell.Name, userdefinedcell.Value.Formula.Value, userdefinedcell.Prompt.Formula.Value); } } }
public void UserDefinedCells_GetFromMultipleShapes_WithAdditionalProps() { var page1 = this.GetNewPage(); var s1 = page1.DrawRectangle(0, 0, 1, 1); var s2 = page1.DrawRectangle(1, 1, 2, 2); var shapes = new[] { s1, s2 }; UserDefinedCellHelper.Set(s1, "foo", "bar", null); var query = new ShapeSheetQuery(); var sec = query.AddSubQuery(IVisio.VisSectionIndices.visSectionUser); var Value = sec.AddCell(VisioAutomation.ShapeSheet.SrcConstants.UserDefCellValue, "Value"); var Prompt = sec.AddCell(VisioAutomation.ShapeSheet.SrcConstants.UserDefCellPrompt, "Prompt"); var formulas = query.GetFormulas(page1, shapes.Select(s => s.ID).ToList()); page1.Delete(0); }
public void UserDefinedCells_InvalidNames() { if (!UserDefinedCellHelper.IsValidName("A")) { Assert.Fail(); } if (!UserDefinedCellHelper.IsValidName("A.B")) { Assert.Fail(); } if (UserDefinedCellHelper.IsValidName("A B")) { Assert.Fail(); } if (UserDefinedCellHelper.IsValidName(" ")) { Assert.Fail(); } }
public List <bool> Contains(VisioScripting.Models.TargetShapes targets, string name) { this._client.Application.AssertApplicationAvailable(); this._client.Document.AssertDocumentAvailable(); if (name == null) { throw new System.ArgumentNullException(nameof(name)); } targets = targets.ResolveShapes(this._client); if (targets.Shapes.Count < 1) { return(new List <bool>()); } var all_shapes = this._client.Selection.GetShapes(); var results = all_shapes.Select(s => UserDefinedCellHelper.Contains(s, name)).ToList(); return(results); }
public void UserDefinedCells_CheckInvalidNamesNotAllowed() { bool caught = false; var page1 = this.GetNewPage(); var s1 = page1.DrawRectangle(0, 0, 2, 2); Assert.AreEqual(0, UserDefinedCellHelper.GetCount(s1)); try { UserDefinedCellHelper.Set(s1, "FOO 1", "BAR1", null); } catch (System.ArgumentException) { // this was expected page1.Delete(0); caught = true; } if (caught == false) { Assert.Fail("Did not catch expected exception"); } }