All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.dominokit.domino.ui.dnd.DragSource Maven / Gradle / Ivy

/*
 * Copyright © 2019 Dominokit
 *
 * 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.dominokit.domino.ui.dnd;

import java.util.HashMap;
import java.util.Map;

/**
 * Manages a collection of draggable elements providing functionality to add and remove them.
 *
 * 

This class maintains a map of draggable elements and offers methods to dynamically manage * which elements are draggable at a given time. Example usage: * *

 * DragSource source = new DragSource();
 * Draggable<MyElement> draggable = Draggable.of(myElementInstance);
 * source.addDraggable(draggable);
 * source.removeDraggable(draggable.getId());
 * 
*/ public class DragSource { /** Constant representing a CSS class used to denote an element is currently being dragged. */ static final String DRAGGING = "dragging"; /** Map of draggable elements indexed by their ID. */ private final Map draggables = new HashMap<>(); /** * Adds a new {@link Draggable} element to the manager. * * @param draggable the draggable element to be added */ public void addDraggable(Draggable draggable) { draggables.put(draggable.getId(), draggable); } /** * Removes a {@link Draggable} element from the manager using its ID. * *

If an element with the provided ID is found, it is first detached (made non-draggable) and * then removed from the manager. * * @param id the unique identifier of the draggable element to be removed */ public void removeDraggable(String id) { if (draggables.containsKey(id)) { Draggable draggable = draggables.get(id); draggable.detach(); draggables.remove(id); } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy