In the examples, a new shape is added to a diagram using the following code:
long shapeId = page.addShape(x, y, width, height, masterName);
Shape shape = page.getShapes().getShape(shapeId);
// Set the new shape’s properties
Due to the organization of my code, I need to create a new shape object first then add it to the diagram second. For example:
Shape shape = new Shape();
// Set the new shape’s properties
page.addShape(shape);
Is is possible to do it this way? If so, can you provide an example?
Hi Chris,
Thank you for contacting support. Yes, you can add a new shape by initializing an object of Shape class, but you also need to pass master name. Please have a look on this sample code:
[Java]
// load visio stencil
Diagram diagram = **new** Diagram("C:\\Basic Shapes.vss");
String masterName = "Circle";
// get page object
Page page = diagram.getPages().getPage(0);
// initialilze shape object
Shape shape = **new** Shape();
// set shape name
shape.setName("ShapeName");
// add shape
page.addShape(shape, masterName);
// save diagram
diagram.save(“C:\Output.vdx”, SaveFileFormat.*VDX* );
Please feel free to reply us in case of any confusion or questions.