in modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/PasteAction.java [496:542]
private boolean getState() {
try {
Object content = Toolkit.getDefaultToolkit().getSystemClipboard().getData(
CayenneTransferable.CAYENNE_FLAVOR);
if (content instanceof List) {
content = ((List) content).get(0);
}
Object currentObject = getProjectController().getCurrentObject();
if (currentObject == null) {
return false;
}
/**
* Checking all available pairs source-pasting object
*/
return ((currentObject instanceof DataChannelDescriptor || currentObject instanceof DataNodeDescriptor) && content instanceof DataMap)
||
(currentObject instanceof DataMap && isTreeLeaf(content))
||
(currentObject instanceof DataMap && content instanceof DataMap)
||
(currentObject instanceof DbEntity && (content instanceof DbAttribute
|| content instanceof DbRelationship || isTreeLeaf(content)))
||
(currentObject instanceof ObjEntity && (content instanceof ObjAttribute
|| content instanceof ObjRelationship || content instanceof ObjCallbackMethod || isTreeLeaf(content)))
||
(currentObject instanceof Embeddable && (content instanceof EmbeddableAttribute || isTreeLeaf(content)))
||
(currentObject instanceof Procedure
&& (content instanceof ProcedureParameter || isTreeLeaf(content)) ||
(currentObject instanceof Query && isTreeLeaf(content)));
} catch (Exception ex) {
return false;
}
}