@Override protected void handleControlPropertyChanged(String property) { super.handleControlPropertyChanged(property); if ("SELECTED_TAB".equals(property)) { isSelectingTab = true; selectedTab = getSkinnable().getSelectionModel().getSelectedItem(); getSkinnable().requestLayout(); } else if ("WIDTH".equals(property)) { clip.setWidth(getSkinnable().getWidth()); } else if ("HEIGHT".equals(property)) { clip.setHeight(getSkinnable().getHeight()); } }
private void updateScrollOffset(double newOffset) { double tabPaneWidth = snapSize(isHorizontal() ? getSkinnable().getWidth() : getSkinnable().getHeight()); double controlTabWidth = 2 * snapSize(rightControlButton.getWidth()); double visibleWidth = tabPaneWidth - controlTabWidth - snappedLeftInset() - SPACER; // compute all tabs headers width double offset = 0.0; for (Node node : headersRegion.getChildren()) { if (node instanceof TabHeaderContainer) { double tabHeaderPrefWidth = snapSize(node.prefWidth(-1)); offset += tabHeaderPrefWidth; } } double actualOffset = newOffset; if ((visibleWidth - newOffset) > offset && newOffset < 0) { actualOffset = visibleWidth - offset; } else if (newOffset > 0) { actualOffset = 0; } if (actualOffset != scrollOffset) { scrollOffset = actualOffset; headersRegion.requestLayout(); if (!isAnimating()) { selectedTabLine.setTranslateX(selectedTabLineOffset + scrollOffset * direction); } } }
clip = new Rectangle(tabPane.getWidth(), tabPane.getHeight()); getSkinnable().setClip(clip); if (getSkinnable().getTabs().size() == 0) {