/* * Copyright 2015 JBoss, by Red Hat, Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.uberfire.ext.wires.core.client.actions; import com.ait.lienzo.client.core.event.NodeMouseClickHandler; import com.ait.lienzo.client.core.shape.Picture; import com.ait.lienzo.client.core.shape.Rectangle; import com.ait.lienzo.shared.core.types.ColorName; import com.google.gwt.resources.client.ImageResource; public class StencilActionBuilder { private static final int HEIGHT_BOUNDING = 20; private static final int WIDTH_BOUNDING = 20; private static final int HEIGHT_PICTURE = 16; private static final int WIDTH_PICTURE = 16; public ActionShape build(final NodeMouseClickHandler clickHandler, final ImageResource img) { final Rectangle bounding = getBoundingImage(clickHandler); final ActionShape shape = new ActionShape(); shape.setBounding(bounding); new Picture(img, shape::setPicture, WIDTH_PICTURE, HEIGHT_PICTURE, false); return shape; } private Rectangle getBoundingImage(final NodeMouseClickHandler clickHandler) { final Rectangle bounding = new Rectangle(WIDTH_BOUNDING, HEIGHT_BOUNDING).setX(0).setY(0).setStrokeColor(ColorName.WHITE.getValue()); bounding.addNodeMouseClickHandler(clickHandler); return bounding; } }