package NET.worlds.scape; import NET.worlds.console.PolledDialog; public class PropAdder implements LibraryDrop { protected VectorProperty property; protected PropAdder(VectorProperty property) { this.property = property; } public static VectorProperty make(VectorProperty property) { return property.setAdder(new PropAdder(property)); } public PolledDialog add(EditTile parent, String title) { assert false; return null; } public boolean hasAddDialog() { return false; } protected boolean checkObject(Object obj) { return this.property.addTest(obj); } @Override public boolean libraryDrop(EditTile target, Object obj, boolean isPaste, boolean doDrop) { if (this.checkObject(obj)) { if (doDrop) { if (isPaste) { target.addUndoablePaste(this.property, obj); } else { target.addUndoableAdd(this.property, obj, true); } return !(obj instanceof SuperRoot) || ((SuperRoot)obj).getOwner() != null; } else { return true; } } else { return false; } } }