/** * Removes a specific component from the register; effectively turning it off. * * <p>It's quite tricky to go through a cleanly rebind events and remove events, worry about * components that depend on this one, etc., so none of that happens here; handle it manually in * the component's shutdown() call. */ public void removeComponent(Component c) throws Exception { c.shutdown(); try { elementCache.remove(c.getContainer().getRootElement()); idCache.remove(c.getContainer().getRootElement().getId()); } catch (Exception e) { } }
/** Invoked async when a componet has been created. */ public void componentCreated(Component c, String requestId) { Element root = c.getContainer().getRootElement(); elementCache.put(root, c); if ((root.getId() != null) && (!root.getId().equals(""))) idCache.put(root.getId(), c); if (componentRequests.contains(requestId)) componentRequests.remove(requestId); if (componentRequests.size() == 0) componentCreationComplete(); }
/** Returns a the first component of the given type. */ public Component getComponentByType(String type) { Component rtn = null; for (Element root : elementCache.keySet()) { Component c = getComponent(root); if (c.getContainer().getType().equals(type)) { rtn = c; break; } } return (rtn); }