-// public static class TypeProxyElement extends ProxyElement {
-// IHintContext instanceHints;
-// public TypeProxyElement(IElement orig, IHintContext instanceHints) {
-// super(orig);
-// this.instanceHints = instanceHints;
-// }
-// @Override
-// public <E> E getHint(Key key) {
-// // TODO: need some mechanism to tell whether it is allowed to look for this key in the instance hints or not
-// // This version is broken because some hints MUST come from the original element.
-// E e = null;
-// if (instanceHints != null)
-// e = instanceHints.getHint(key);
-// if (e == null)
-// e = orig.getHint(key);
-// return e;
-// }
-// @Override
-// public Map<Key, Object> getHints() {
-// throw new UnsupportedOperationException();
-// }
-// @Override
-// public <E extends Key> Map<E, Object> getHintsOfClass(Class<E> clazz) {
-// throw new UnsupportedOperationException();
-// }
-// @Override
-// public void setHint(Key key, Object value) {
-// if (instanceHints != null)
-// instanceHints.setHint(key, value);
-// else
-// orig.setHint(key, value);
-// }
-// }
+ private G2DParentNode getOrCreateParentNode(G2DParentNode parent) {
+ G2DParentNode node = (G2DParentNode)parent.getNode("composite_image_"+this.hashCode());
+ if (node == null) {
+ for (INode n : parent.getNodes()) {
+ // #7663: prevent the code from removing other element graphics from directly under another element
+ if (!(n instanceof SingleElementNode))
+ n.remove();
+ }
+ // Removed this grouping node as unnecessary, just use the given parent node
+ node = parent.getOrCreateNode("composite_image_"+this.hashCode(), G2DParentNode.class);
+ }
+ return node;
+ }