import org.simantics.scl.runtime.function.FunctionImpl1;
import org.simantics.utils.datastructures.Pair;
import org.simantics.utils.threads.IThreadWorkQueue;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Utilities for debugging/printing the contents of a scenegraph.
*/
public final class NodeUtil {
+ private static final Logger LOGGER = LoggerFactory.getLogger(NodeUtil.class);
/**
* @param <T>
*/
}
}
+ public static INode getPossibleNearestParentOfType(INode node, Class<?> clazz) {
+ ParentNode<?> parent = null;
+ while (true) {
+ parent = node.getParent();
+ if (parent == null)
+ return null;
+ node = parent;
+ if (clazz.isInstance(node))
+ return node;
+ }
+ }
+
public static INode getRootNode(INode node) {
ParentNode<?> parent = null;
while (true) {
} else {
if(pc.length > 0) {
- System.err.println("Method " + setter.getName() + " expects " + pc[0].getCanonicalName() + " (got " + value.getClass().getCanonicalName() + ").");
+ LOGGER.warn("Method " + setter.getName() + " expects " + pc[0].getCanonicalName() + " (got " + value.getClass().getCanonicalName() + ").");
}
}
// Find node transform..
AffineTransform transform = getGlobalToLocalTransform(node, null);
if (transform == null) {
- System.err.println("WARNING: Non-invertible transform for node: " + node);
+ LOGGER.warn("WARNING: Non-invertible transform for node: " + node);
return event;
}
MouseEvent me = (MouseEvent)event;
if(DEBUG_BOUNDS) {
for(int i=0;i<indent;i++) System.err.print(" ");
- System.err.println("+getLocalBoundsImpl " + next + " => " + bl);
+ LOGGER.warn("+getLocalBoundsImpl " + next + " => " + bl);
}
if(bl != null) {
if(DEBUG_BOUNDS) {
for(int i=0;i<indent;i++) System.err.print(" ");
- System.err.println("=getLocalBoundsImpl " + node + " => " + bounds);
+ LOGGER.warn("=getLocalBoundsImpl " + node + " => " + bounds);
}
return bounds;
if(result != null) {
if(DEBUG_BOUNDS) {
for(int i=0;i<indent;i++) System.err.print(" ");
- System.err.println("=getLocalBoundsImpl " + node + " => " + result);
+ LOGGER.warn("=getLocalBoundsImpl " + node + " => " + result);
}
return result;
}