Search in sources :

Example 1 with IContext2D

use of org.uberfire.ext.editor.commons.client.file.exports.svg.IContext2D in project kie-wb-common by kiegroup.

the class LienzoCanvasExportTest method testToContext2D.

@Test
public void testToContext2D() {
    Transform transform = new Transform().translate(11, 33).scale(0.1, 0.3);
    when(viewport.getTransform()).thenReturn(transform);
    IContext2D iContext2D = tested.toContext2D(canvasHandler, CanvasExportSettings.build());
    assertNotNull(iContext2D);
    verify(layer, times(1)).draw(any(Context2D.class));
    ArgumentCaptor<Transform> transformArgumentCaptor = ArgumentCaptor.forClass(Transform.class);
    verify(viewport, times(2)).setTransform(transformArgumentCaptor.capture());
    verify(layer).draw();
    List<Transform> transforms = transformArgumentCaptor.getAllValues();
    Transform t0 = transforms.get(0);
    Transform t1 = transforms.get(1);
    assertEquals(0d, t0.getTranslateX(), 0d);
    assertEquals(0d, t0.getTranslateY(), 0d);
    assertEquals(1d, t0.getScaleX(), 0d);
    assertEquals(1d, t0.getScaleY(), 0d);
    assertEquals(11d, t1.getTranslateX(), 0d);
    assertEquals(33d, t1.getTranslateY(), 0d);
    assertEquals(0.1d, t1.getScaleX(), 0d);
    assertEquals(0.3d, t1.getScaleY(), 0d);
}
Also used : Context2D(com.ait.lienzo.client.core.Context2D) IContext2D(org.uberfire.ext.editor.commons.client.file.exports.svg.IContext2D) IContext2D(org.uberfire.ext.editor.commons.client.file.exports.svg.IContext2D) Transform(com.ait.lienzo.client.core.types.Transform) Test(org.junit.Test)

Example 2 with IContext2D

use of org.uberfire.ext.editor.commons.client.file.exports.svg.IContext2D in project kie-wb-common by kiegroup.

the class LienzoCanvasExport method toContext2D.

@Override
public IContext2D toContext2D(final AbstractCanvasHandler canvasHandler, final CanvasExportSettings settings) {
    final LienzoLayer layer = getLayer(canvasHandler);
    final com.ait.lienzo.client.core.shape.Layer lienzoLayer = layer.getLienzoLayer();
    final Viewport viewport = lienzoLayer.getViewport();
    final int[] bounds = boundsProvider.compute(layer, settings);
    final IContext2D svgContext2D = Context2DFactory.create(new SvgExportSettings(bounds[2], bounds[3], lienzoLayer.getContext()));
    // Reset the transform before drawing to the target context.
    final Transform transform = viewport.getTransform();
    viewport.setTransform(new Transform());
    // Draw into the target context.
    lienzoLayer.draw(new Context2D(new DelegateNativeContext2D(svgContext2D, canvasHandler)));
    // Set again the previous transform.
    viewport.setTransform(transform);
    // Draw again the native canvas context2d (this is necessary otherwise the canvas becomes empty)
    lienzoLayer.draw();
    return svgContext2D;
}
Also used : LienzoLayer(org.kie.workbench.common.stunner.client.lienzo.canvas.LienzoLayer) Context2D(com.ait.lienzo.client.core.Context2D) IContext2D(org.uberfire.ext.editor.commons.client.file.exports.svg.IContext2D) SvgExportSettings(org.uberfire.ext.editor.commons.client.file.exports.svg.SvgExportSettings) Viewport(com.ait.lienzo.client.core.shape.Viewport) IContext2D(org.uberfire.ext.editor.commons.client.file.exports.svg.IContext2D) Transform(com.ait.lienzo.client.core.types.Transform)

Aggregations

Context2D (com.ait.lienzo.client.core.Context2D)2 Transform (com.ait.lienzo.client.core.types.Transform)2 IContext2D (org.uberfire.ext.editor.commons.client.file.exports.svg.IContext2D)2 Viewport (com.ait.lienzo.client.core.shape.Viewport)1 Test (org.junit.Test)1 LienzoLayer (org.kie.workbench.common.stunner.client.lienzo.canvas.LienzoLayer)1 SvgExportSettings (org.uberfire.ext.editor.commons.client.file.exports.svg.SvgExportSettings)1