package org.geogebra.web.web.gui.view.algebra; import org.geogebra.common.kernel.geos.GeoBoolean; import org.geogebra.web.html5.event.PointerEvent; import org.geogebra.web.html5.event.ZeroOffset; import org.geogebra.web.html5.gui.util.CancelEventTimer; import com.google.gwt.core.client.Scheduler; import com.google.gwt.dom.client.NativeEvent; import com.google.gwt.event.dom.client.MouseDownEvent; import com.google.gwt.event.dom.client.MouseEvent; import com.google.gwt.event.dom.client.TouchStartEvent; /** * @author Laszlo * */ public class CheckBoxTreeItemController extends LatexTreeItemController { /** * @param item * AV item */ public CheckBoxTreeItemController(LatexTreeItem item) { super(item); } @Override public void onMouseDown(MouseDownEvent event) { event.stopPropagation(); if (CancelEventTimer.cancelMouseEvent() || isMarbleHit(event)) { return; } app.closePopups(); PointerEvent wrappedEvent = PointerEvent.wrapEventAbsolute(event, ZeroOffset.instance); onPointerDown(wrappedEvent); handleAVItem(event); if (event.getNativeButton() != NativeEvent.BUTTON_RIGHT) { toggleCheckbox(); } Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() { @Override public void execute() { item.adjustStyleBar(); } }); } @Override public void onTouchStart(TouchStartEvent event) { event.stopPropagation(); app.closePopups(); PointerEvent wrappedEvent = PointerEvent.wrapEvent(event, ZeroOffset.instance); onPointerDown(wrappedEvent); handleAVItem(event); toggleCheckbox(); Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() { @Override public void execute() { item.adjustStyleBar(); } }); } private void toggleCheckbox() { GeoBoolean bool = (GeoBoolean) item.geo; bool.setValue(!bool.getBoolean()); item.geo.updateCascade(); item.kernel.notifyRepaint(); } @Override protected boolean canEditStart(MouseEvent<?> event) { return false; } }