package com.baselet.gwt.client.element; import com.baselet.control.basics.geom.Rectangle; import com.baselet.control.constants.SharedConstants; import com.baselet.control.enums.ElementId; import com.baselet.element.NewGridElement; import com.baselet.element.elementnew.ElementFactory; import com.baselet.element.interfaces.Diagram; import com.baselet.element.interfaces.DrawHandlerInterface; import com.baselet.element.interfaces.GridElement; import com.baselet.element.sticking.StickableMap; public class ElementFactoryGwt extends ElementFactory { public static GridElement create(ElementId id, Rectangle rect, String panelAttributes, String additionalPanelAttributes, final Diagram diagram) { final NewGridElement element = createAssociatedGridElement(id); DrawHandlerInterface handler = new DrawHandlerInterface() { @Override public void updatePropertyPanel() {} @Override public int getGridSize() { return SharedConstants.DEFAULT_GRID_SIZE; // GWT doesnt use own zoom implementation but relies on browser zoom } @Override public boolean isInitialized() { return true; // GWT initializes elements at once, therefore it's always initialized } @Override public StickableMap getStickableMap() { return diagram.getStickables(element); } }; element.init(rect, panelAttributes, additionalPanelAttributes, new ComponentGwt(element), handler); element.setPanelAttributes(panelAttributes); return element; } public static GridElement create(GridElement src, final Diagram targetDiagram) { return create(src.getId(), src.getRectangle().copy(), src.getPanelAttributes(), src.getAdditionalAttributes(), targetDiagram); } }