package com.project.website.canvas.client.canvastools.base; import com.google.gwt.user.client.ui.Widget; import com.project.shared.data.Point2D; import com.project.website.canvas.client.canvastools.base.interfaces.CanvasTool; import com.project.website.canvas.client.canvastools.base.interfaces.CanvasToolFactory; public abstract class CanvasToolFactoryBase<T extends CanvasTool<?>> implements CanvasToolFactory<T> { @Override public boolean isOneShot() { return true; } private Widget _floatingWidget = null; @Override public Widget getFloatingWidget() { // default implementation is to create a static instance for all // floating widget usage if (null == _floatingWidget) { _floatingWidget = this.create().asWidget(); } return _floatingWidget; } @Override public Point2D getCreationOffset() { return Point2D.zero; } @Override public Point2D getFloatingWidgetCreationOffset() { return this.getCreationOffset(); } }