/*
* Copyright 2014 cruxframework.org.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package org.cruxframework.crux.core.client.select;
import org.cruxframework.crux.core.client.event.SelectEndEvent;
import org.cruxframework.crux.core.client.event.SelectEvent;
import org.cruxframework.crux.core.client.event.SelectStartEvent;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.MouseDownEvent;
import com.google.gwt.event.dom.client.MouseDownHandler;
import com.google.gwt.event.dom.client.MouseUpEvent;
import com.google.gwt.event.dom.client.MouseUpHandler;
/**
* SelectEventsHanler Implementation for non touch devices
* @author Thiago da Rosa de Bustamante
*
*/
public class SelectEventsHandlerNoTouchImpl extends SelectEventsHandler
{
@Override
public void handleWidget()
{
selectableWidget.addClickHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent event)
{
if (isEnabled())
{
SelectEvent selectEvent = SelectEvent.fire(selectableWidget);
if (selectEvent.isCanceled())
{
event.preventDefault();
}
if (selectEvent.isStopped())
{
event.stopPropagation();
}
}
}
});
selectableWidget.addMouseDownHandler(new MouseDownHandler()
{
@Override
public void onMouseDown(MouseDownEvent event)
{
SelectStartEvent.fire(selectableWidget);
}
});
selectableWidget.addMouseUpHandler(new MouseUpHandler()
{
@Override
public void onMouseUp(MouseUpEvent event)
{
SelectEndEvent.fire(selectableWidget);
}
});
}
@Override
public void setTapEventThreshold(int tapEventThreshold)
{
//Do nothing.
}
}