protected NodeModel[] getNodesForSelection() { if (getHookAnnotation().onceForMap()) { return getRootNodeForSelection(); } return getSelectedNodes(); }
public void endElement(final Object parent, final String tag, final Object userObject, final XMLElement lastBuiltElement) { if (getHookAnnotation().onceForMap()) { final XMLElement parentNodeElement = lastBuiltElement.getParent().getParent(); if (parentNodeElement == null || !parentNodeElement.getName().equals("map")) { return; } } final NodeModel node = (NodeModel) userObject; if (node.getExtension(getExtensionClass()) != null) { return; } final IExtension extension = createExtension(node, lastBuiltElement); if (extension == null) { return; } add(node, extension); } }
public IExtension getExtension(final NodeModel nodeModel) { if (!nodeModel.isRoot() && getHookAnnotation().onceForMap()) { return getExtension(nodeModel.getMap().getRootNode()); } return nodeModel.getExtension(getExtensionClass()); }
public boolean isActive(final NodeModel nodeModel) { if (!nodeModel.isRoot() && getHookAnnotation().onceForMap()) { return isActive(nodeModel.getMap().getRootNode()); } return nodeModel.containsExtension(getExtensionClass()); }
@SuppressWarnings({ "unchecked", "rawtypes" }) public PersistentNodeHook() { super(); final Class<? extends IExtension> extensionClass = getExtensionClass(); if (getHookAnnotation().onceForMap()) { MapExtensions.registerMapExtension(extensionClass); } // this.modeController = modeController; // controller = modeController.getController(); final ModeController modeController = Controller.getCurrentModeController(); if (modeController.supportsHookActions()) registerActions(); final MapController mapController = modeController.getMapController(); mapController.getReadManager().addElementHandler("hook", createXmlReader()); final IExtensionElementWriter xmlWriter = createXmlWriter(); if (xmlWriter != null) { mapController.getWriteManager().addExtensionElementWriter(extensionClass, xmlWriter); } if (this instanceof IExtension) { // do not use getExtensionClass() here since in several subclasses getExtensionClass() returns a // different class than getClass() modeController.addExtension((Class<? extends IExtension>) getClass(), (IExtension) this); } }