package scrum.client.workspace;
import java.util.HashMap;
import java.util.Map;
import scrum.client.common.ABlockWidget;
import scrum.client.common.BlockListWidget;
import scrum.client.dnd.BlockDropController;
import scrum.client.dnd.BlockListDropController;
import scrum.client.dnd.ScrumDragController;
import com.google.gwt.user.client.ui.Widget;
public class DndManager extends GDndManager {
private ScrumDragController dragController;
private Map<ABlockWidget, BlockDropController> blockDropControllers;
private Map<BlockListWidget, BlockListDropController> blockListDropControllers;
public DndManager() {
dragController = new ScrumDragController();
blockDropControllers = new HashMap<ABlockWidget, BlockDropController>();
blockListDropControllers = new HashMap<BlockListWidget, BlockListDropController>();
}
public void registerDropTarget(BlockListWidget list) {
BlockListDropController dropController = new BlockListDropController(list);
dragController.registerDropController(dropController);
blockListDropControllers.put(list, dropController);
}
public void unregisterDropTarget(BlockListWidget list) {
BlockListDropController dropController = blockListDropControllers.get(list);
if (dropController != null) {
dragController.unregisterDropController(dropController);
blockListDropControllers.remove(list);
}
}
public void registerDropTarget(ABlockWidget block) {
BlockDropController dropController = new BlockDropController(block);
dragController.registerDropController(dropController);
blockDropControllers.put(block, dropController);
}
public void unregisterDropTarget(ABlockWidget block) {
BlockDropController dropController = blockDropControllers.get(block);
if (dropController != null) {
dragController.unregisterDropController(dropController);
blockDropControllers.remove(block);
}
}
public void makeDraggable(Widget widget, Widget dragHandle) {
dragController.makeDraggable(widget, dragHandle);
}
public ScrumDragController getDragController() {
return dragController;
}
}