protected String getHookName() { return getHookAnnotation().hookName(); }
protected NodeModel[] getNodesForSelection() { if (getHookAnnotation().onceForMap()) { return getRootNodeForSelection(); } return getSelectedNodes(); }
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); } }