238 Rectangle visibleAreaBounds = rowWrap.getScreenBounds(); 239 return getClickPointCommon(controlWrap, visibleAreaBounds); 240 } 241 242 /** 243 * Method, specific for TableView and TreeTableView, which counts only 244 * actual cells width, without space of the last empty column. 245 */ 246 public static Point getTableRowClickPoint(Wrap controlWrap, Wrap rowWrap) { 247 Rectangle clickableArea = TableUtils.constructClickableArea(rowWrap); 248 return getClickPointCommon(controlWrap, clickableArea); 249 } 250 251 /** 252 * Used for ListView, TreeView, TableView, TreeTableView. 253 * 254 * @param wrap of control. 255 * @return 256 */ 257 static Rectangle getActuallyVisibleArea(final Wrap<? extends Control> wrap) { 258 final Rectangle viewArea = getContainerWrap(wrap.as(Parent.class, Node.class)).getScreenBounds(); 259 final Rectangle clippedContainerArea = getClippedContainerWrap(wrap.as(Parent.class, Node.class)).getScreenBounds(); 260 return new Rectangle(viewArea.x, viewArea.y, clippedContainerArea.width, clippedContainerArea.height); 261 } 262 263 /** 264 * @return wrap of parent container that contains Cells 265 */ 266 static Wrap<? extends javafx.scene.Parent> getContainerWrap(Parent<Node> parent) { 267 return getParentWrap(parent, VIRTIAL_FLOW_CLASS_NAME); 268 } 269 270 static Wrap<? extends javafx.scene.Parent> getClippedContainerWrap(Parent<Node> parent) { 271 return getParentWrap(parent, CLIPPED_CONTAINER_CLASS_NAME); 272 } 273 274 static private Wrap<? extends javafx.scene.Parent> getParentWrap(Parent<Node> parent, final String className) { 275 return parent.lookup(javafx.scene.Parent.class, control -> control.getClass().getName().endsWith(className)).wrap(); 276 } 277 278 static private javafx.scene.Parent getClippedContainerControl(Wrap<? extends Control> controlWrap) { 279 final Parent<Node> parent = controlWrap.as(Parent.class, Node.class); | 238 Rectangle visibleAreaBounds = rowWrap.getScreenBounds(); 239 return getClickPointCommon(controlWrap, visibleAreaBounds); 240 } 241 242 /** 243 * Method, specific for TableView and TreeTableView, which counts only 244 * actual cells width, without space of the last empty column. 245 */ 246 public static Point getTableRowClickPoint(Wrap controlWrap, Wrap rowWrap) { 247 Rectangle clickableArea = TableUtils.constructClickableArea(rowWrap); 248 return getClickPointCommon(controlWrap, clickableArea); 249 } 250 251 /** 252 * Used for ListView, TreeView, TableView, TreeTableView. 253 * 254 * @param wrap of control. 255 * @return 256 */ 257 static Rectangle getActuallyVisibleArea(final Wrap<? extends Control> wrap) { 258 final Rectangle viewArea = getContainerWrap((Parent <Node>)wrap.as(Parent.class, Node.class)).getScreenBounds(); 259 final Rectangle clippedContainerArea = getClippedContainerWrap((Parent <Node>)wrap.as(Parent.class, Node.class)).getScreenBounds(); 260 return new Rectangle(viewArea.x, viewArea.y, clippedContainerArea.width, clippedContainerArea.height); 261 } 262 263 /** 264 * @return wrap of parent container that contains Cells 265 */ 266 static Wrap<? extends javafx.scene.Parent> getContainerWrap(Parent<Node> parent) { 267 return getParentWrap(parent, VIRTIAL_FLOW_CLASS_NAME); 268 } 269 270 static Wrap<? extends javafx.scene.Parent> getClippedContainerWrap(Parent<Node> parent) { 271 return getParentWrap(parent, CLIPPED_CONTAINER_CLASS_NAME); 272 } 273 274 static private Wrap<? extends javafx.scene.Parent> getParentWrap(Parent<Node> parent, final String className) { 275 return parent.lookup(javafx.scene.Parent.class, control -> control.getClass().getName().endsWith(className)).wrap(); 276 } 277 278 static private javafx.scene.Parent getClippedContainerControl(Wrap<? extends Control> controlWrap) { 279 final Parent<Node> parent = controlWrap.as(Parent.class, Node.class); |