package com.project.website.canvas.client; import com.google.gwt.core.client.GWT; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Widget; import com.project.shared.client.events.SimpleEvent; import com.project.website.canvas.client.canvastools.base.BuiltinTools; import com.project.website.canvas.client.canvastools.base.interfaces.ToolboxItem; import com.project.website.canvas.client.resources.CanvasResources; import com.project.website.canvas.client.worksheet.WorksheetImpl; import com.project.website.canvas.client.worksheet.WorksheetViewImpl; import com.project.website.canvas.client.worksheet.interfaces.Worksheet; public class CanvasContainer extends Composite { private static CanvasContainerUiBinder uiBinder = GWT.create(CanvasContainerUiBinder.class); interface CanvasContainerUiBinder extends UiBinder<Widget, CanvasContainer> { } @UiField Toolbox toolbox; @UiField WorksheetViewImpl worksheetWidget; private Worksheet worksheet; private final ToolboxItem defaultTool = BuiltinTools.cursorTool; public Worksheet getWorksheet() { return worksheet; } public CanvasContainer() { initWidget(uiBinder.createAndBindUi(this)); this.worksheet = new WorksheetImpl(worksheetWidget); this.toolbox.getToolChosenEvent().addHandler(new SimpleEvent.Handler<ToolboxItem>() { public void onFire(ToolboxItem arg) { worksheet.setActiveToolboxItem(arg); } }); this.worksheet.addDefaultToolboxItemRequestHandler(new SimpleEvent.Handler<Void>() { @Override public void onFire(Void arg) { toolbox.setActiveTool(defaultTool); } }); this.worksheet.addViewModeChangedHandler(new SimpleEvent.Handler<Boolean>() { @Override public void onFire(Boolean fullScreen) { if (fullScreen) { toolbox.addStyleName(CanvasResources.INSTANCE.main().displayNone()); } else { toolbox.removeStyleName(CanvasResources.INSTANCE.main().displayNone()); } } }); toolbox.setActiveTool(defaultTool); } }