/*
* Copyright 2009 Fred Sauer
*
* 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 edu.purdue.pivot.skwiki.client.dnd;
import com.google.gwt.user.client.ui.HTML;
import com.allen_sauer.gwt.dnd.client.DragEndEvent;
import com.allen_sauer.gwt.dnd.client.DragHandler;
import com.allen_sauer.gwt.dnd.client.DragStartEvent;
import com.allen_sauer.gwt.dnd.client.VetoDragException;
/**
* Shared drag handler which display events as they are received by the various drag controllers.
*/
public final class DemoDragHandler implements DragHandler {
/**
* CSS blue.
*/
private static final String BLUE = "#4444BB";
/**
* CSS green.
*/
private static final String GREEN = "#44BB44";
/**
* CSS red.
*/
private static final String RED = "#BB4444";
/**
* Text area where event messages are shown.
*/
private final HTML eventTextArea;
DemoDragHandler(HTML dragHandlerHTML) {
eventTextArea = dragHandlerHTML;
}
private void clear() {
eventTextArea.setHTML("");
}
private void log(String text, String color) {
eventTextArea.setHTML(eventTextArea.getHTML()
+ (eventTextArea.getHTML().length() == 0 ? "" : "<br>") + "<span style='color: " + color
+ "'>" + text + "</span>");
}
/**
* Log the drag end event.
*
* @param event the event to log
*/
@Override
public void onDragEnd(DragEndEvent event) {
log("onDragEnd: " + event, RED);
}
/**
* Log the drag start event.
*
* @param event the event to log
*/
@Override
public void onDragStart(DragStartEvent event) {
log("onDragStart: " + event, GREEN);
}
/**
* Log the preview drag end event.
*
* @param event the event to log
* @throws VetoDragException exception which may be thrown by any drag handler
*/
@Override
public void onPreviewDragEnd(DragEndEvent event) throws VetoDragException {
log("<br>onPreviewDragEnd: " + event, BLUE);
}
/**
* Log the preview drag start event.
*
* @param event the event to log
* @throws VetoDragException exception which may be thrown by any drag handler
*/
@Override
public void onPreviewDragStart(DragStartEvent event) throws VetoDragException {
clear();
log("onPreviewDragStart: " + event, BLUE);
}
}