Layer Handling

From Apache OpenOffice Wiki
Jump to: navigation, search

In Draw and Impress, each shape is associated to exactly one layer. The layer has properties that specify if connected shapes are visible, printable or editable.

The service implements the interface that gives access to the interface. The interface is used to create and edit a layer, and is used to attach a layer to a shape.

  XShapes xShapes = (XShapes)UnoRuntime.queryInterface(XShapes.class, xPage);
  XShape xRect1 = ShapeHelper.createShape(xComponent, new Point(1000, 1000), new Size(5000, 5000),
  XShape xRect2 = ShapeHelper.createShape(xComponent, new Point(1000, 7000), new Size(5000, 5000),
      "" );
  XPropertySet xTextProp = ShapeHelper.addPortion(xRect2, "this shape is locked", false);
  xTextProp.setPropertyValue("ParaAdjust", ParagraphAdjust.CENTER);
  ShapeHelper.addPortion(xRect2, "and the shape above is not visible", true);
  ShapeHelper.addPortion(xRect2, "(switch to the layer view to gain access)", true);
  // query for the XLayerManager
  XLayerSupplier xLayerSupplier = (XLayerSupplier)UnoRuntime.queryInterface(
      XLayerSupplier.class, xComponent);
  XNameAccess xNameAccess = xLayerSupplier.getLayerManager();
  XLayerManager xLayerManager = (XLayerManager)UnoRuntime.queryInterface(
      XLayerManager.class, xNameAccess);
  // create a layer and set its properties
  XPropertySet xLayerPropSet;
  XLayer xNotVisibleAndEditable = xLayerManager.insertNewByIndex(xLayerManager.getCount());
  xLayerPropSet = (XPropertySet)UnoRuntime.queryInterface(
      XPropertySet.class, xNotVisibleAndEditable);
  xLayerPropSet.setPropertyValue("Name", "NotVisibleAndEditable");
  xLayerPropSet.setPropertyValue("IsVisible", new Boolean(false));
  xLayerPropSet.setPropertyValue("IsLocked", new Boolean(true));
  // create a second layer
  XLayer xNotEditable = xLayerManager.insertNewByIndex(xLayerManager.getCount());
  xLayerPropSet = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xNotEditable);
  xLayerPropSet.setPropertyValue("Name", "NotEditable" );
  xLayerPropSet.setPropertyValue("IsVisible", new Boolean(true));
  xLayerPropSet.setPropertyValue("IsLocked", new Boolean(true));
  // attach the layer to the rectangles
  xLayerManager.attachShapeToLayer(xRect1, xNotVisibleAndEditable);
  xLayerManager.attachShapeToLayer(xRect2, xNotEditable);
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages