int y = 0; Parent parent = child.getParent(); while(parent != null) { y += 10; // spacing y += parent.getHeight(); parent = parent.getParent(); // next iteration }
/** * Determines if this element is the ancestor of another element. * * @param element <code>Element</code> to check against * @return <code>true</code> if this element is the ancestor of the * supplied element */ public boolean isAncestor(final Element element) { Parent p = element.getParent(); while (p instanceof Element) { if (p == this) { return true; } p = p.getParent(); } return false; }
Map<String, JsonElement> parentMap = p.getParent(); Set<String> keyMap = parentMap.keySet();
/** Use xml:base attributes at feed and entry level to resolve relative links */ private static String resolveURI(URL baseURI, Parent parent, String url) { url = (url.equals(".") || url.equals("./")) ? "" : url; if (isRelativeURI(url) && parent != null && parent instanceof Element) { Attribute baseAtt = ((Element)parent).getAttribute("base", Namespace.XML_NAMESPACE); String xmlBase = (baseAtt == null) ? "" : baseAtt.getValue(); if (!isRelativeURI(xmlBase) && !xmlBase.endsWith("/")) { xmlBase = xmlBase.substring(0, xmlBase.lastIndexOf("/")+1); } return resolveURI(baseURI, parent.getParent(), xmlBase + url); } else if (isRelativeURI(url) && parent == null) { return baseURI + url; } else if (baseURI != null && url.startsWith("/")) { String hostURI = baseURI.getProtocol() + "://" + baseURI.getHost(); if (baseURI.getPort() != baseURI.getDefaultPort()) { hostURI = hostURI + ":" + baseURI.getPort(); } return hostURI + url; } return url; }
/** Use xml:base attributes at feed and entry level to resolve relative links */ private static String resolveURI(URL baseURI, Parent parent, String url) { url = (url.equals(".") || url.equals("./")) ? "" : url; if (isRelativeURI(url) && parent != null && parent instanceof Element) { Attribute baseAtt = ((Element)parent).getAttribute("base", Namespace.XML_NAMESPACE); String xmlBase = (baseAtt == null) ? "" : baseAtt.getValue(); if (!isRelativeURI(xmlBase) && !xmlBase.endsWith("/")) { xmlBase = xmlBase.substring(0, xmlBase.lastIndexOf("/")+1); } return resolveURI(baseURI, parent.getParent(), xmlBase + url); } else if (isRelativeURI(url) && parent == null) { return baseURI + url; } else if (baseURI != null && url.startsWith("/")) { String hostURI = baseURI.getProtocol() + "://" + baseURI.getHost(); if (baseURI.getPort() != baseURI.getDefaultPort()) { hostURI = hostURI + ":" + baseURI.getPort(); } return hostURI + url; } return url; }
public void createTable() { TableView tableView = new TableView(); tableView.focusedProperty().addListener((ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) -> { if (oldValue && !newValue) { if (!isParent(tableView, tableView.getScene().getFocusOwner())) { System.out.println("Saving changes."); } } }); } public boolean isParent(Parent parent, Node child) { if (child == null) { return false; } Parent curr = child.getParent(); while (curr != null) { if (curr == parent) { return true; } curr = curr.getParent(); } return false; }