/* * This is part of Geomajas, a GIS framework, http://www.geomajas.org/. * * Copyright 2008-2015 Geosparc nv, http://www.geosparc.com/, Belgium. * * The program is available in open source according to the GNU Affero * General Public License. All contributions in this program are covered * by the Geomajas Contributors License Agreement. For full licensing * details, see LICENSE.txt in the project root. */ package org.geomajas.plugin.editing.jsapi.gwt.client.gfx; import org.geomajas.annotation.Api; import org.geomajas.plugin.editing.client.gfx.GeometryRenderer; import org.geomajas.plugin.editing.gwt.client.gfx.GeometryRendererImpl; import org.geomajas.plugin.editing.jsapi.client.handler.JsEdgeMapHandlerFactory; import org.geomajas.plugin.editing.jsapi.client.handler.JsGeometryIndexMapHandlerFactory; import org.geomajas.plugin.editing.jsapi.client.handler.JsVertexMapHandlerFactory; import org.timepedia.exporter.client.Export; import org.timepedia.exporter.client.ExportPackage; import org.timepedia.exporter.client.Exportable; /** * JavaScript wrapper of {@link GeometryRenderer}. * * @author Jan De Moerloose * @since 1.0.0 * */ @Export("GeometryRenderer") @ExportPackage("org.geomajas.plugin.editing.gfx") @Api(allMethods = true) public class JsGeometryRenderer implements Exportable { private final GeometryRendererImpl delegate; /** * Constructor with a {@link GeometryRenderer} delegate. * * @param delegate delegate */ public JsGeometryRenderer(GeometryRenderer delegate) { this.delegate = (GeometryRendererImpl) delegate; } /** * Redraw the geometry to apply changes in the editor internal state. */ public void redraw() { delegate.redraw(); } /** * Make the edited geometry.visible/invisible. * * @param visible true to make the geometry visible, false to make the geometry invisible */ public void setVisible(boolean visible) { delegate.setVisible(visible); } /** * Add a custom factory that will create handler for every vertex. This factory will be added on top of the existing * default factories. * * @param factory the factory to be added to every vertex */ public void addVertexHandlerFactory(JsVertexMapHandlerFactory factory) { delegate.addVertexHandlerFactory(factory); } /** * Add a custom factory that will create handler for every edge. This factory will be added on top of the existing * default factories. * * @param factory the factory to be added to every edge */ public void addEdgeHandlerFactory(JsEdgeMapHandlerFactory factory) { delegate.addEdgeHandlerFactory(factory); } /** * Add a custom factory that will create handler for every geometry. * * @param factory the factory to be added to every geometry */ public void addGeometryHandlerFactory(JsGeometryIndexMapHandlerFactory factory) { delegate.addGeometryHandlerFactory(factory); } /** * Remove a custom factory that will create handler for every geometry. * * @param factory the factory to be removed to every geometry */ public void removeGeometryHandlerFactory(JsGeometryIndexMapHandlerFactory factory) { delegate.removeGeometryHandlerFactory(factory); } }