/** * */ package org.korsakow.ide.ui.controller.dnd; import java.util.List; import org.dsrg.soenea.domain.command.CommandException; import org.korsakow.domain.interf.IMedia; import org.korsakow.ide.Application; import org.korsakow.ide.ui.components.tree.KNode; import org.korsakow.ide.ui.components.tree.ResourceNode; import org.korsakow.ide.ui.dnd.InternalMediaTransferHandler; import org.korsakow.ide.util.UIUtil; public class ResourceTreeMediaTransferHandler extends InternalMediaTransferHandler { private final ResourceTreeTransferHandler resourceTreeTransferHandler; public ResourceTreeMediaTransferHandler(ResourceTreeTransferHandler resourceTreeTransferHandler) { this.resourceTreeTransferHandler = resourceTreeTransferHandler; } @Override protected boolean importMedia(TransferSupport support, List<? extends IMedia> media) { int[] dropPointIndexRef = new int[1]; KNode dropPointNode = resourceTreeTransferHandler.getDropPointNode(dropPointIndexRef); if (dropPointNode == null) { dropPointNode = resourceTreeTransferHandler.resourceTreeTable.getRootNode(); } int dropPointIndex = dropPointIndexRef[0]; if (dropPointIndex < 0) dropPointIndex = dropPointNode.getChildCount(); try { for (IMedia medium : media) { String name = UIUtil.createUniqueName(dropPointNode, medium.getName()); if (!name.equals(medium.getName())) { ResourceTreeTransferHandler.renameMedia(medium, name); } } } catch (CommandException e) { Application.getInstance().showUnhandledErrorDialog(null, e); return false; } boolean addedsome = false; for (IMedia medium : media) { KNode node = ResourceNode.create(medium); resourceTreeTransferHandler.resourceTreeTable.getTreeTableModel().insertNodeInto(node, dropPointNode, dropPointIndex); Application.getInstance().notifyResourceAdded( medium ); addedsome = true; } return addedsome; } }