private void updateDirection() { final Side side = getSkinnable().getSide(); direction = (side == Side.BOTTOM || side == Side.LEFT) ? -1 : 1; }
@Override public double getBaselineOffset() { return getSkinnable().getSide() == Side.TOP ? headersRegion.getBaselineOffset() + snappedTopInset() : 0; }
private boolean isHorizontal() { final Side tabPosition = getSkinnable().getSide(); return Side.TOP.equals(tabPosition) || Side.BOTTOM.equals(tabPosition); }
private void updateSelectionLine(boolean animate) { double offset = 0.0; double selectedTabOffset = 0.0; double selectedTabWidth = 0.0; final Side side = getSkinnable().getSide(); for (Node node : headersRegion.getChildren()) { if (node instanceof TabHeaderContainer) { TabHeaderContainer tabHeader = (TabHeaderContainer) node; double tabHeaderPrefWidth = snapSize(tabHeader.prefWidth(-1)); if (selectedTab != null && selectedTab.equals(tabHeader.tab)) { selectedTabOffset = (side == Side.LEFT || side == Side.BOTTOM) ? -offset - tabHeaderPrefWidth : offset; selectedTabWidth = tabHeaderPrefWidth; break; } offset += tabHeaderPrefWidth; } } // animate the tab selection if(selectedTabWidth > 0){ if (animate) { runTimeline(selectedTabOffset, selectedTabWidth); }else{ selectedTabLine.setTranslateX(selectedTabOffset + scrollOffset * direction); scale.setX(selectedTabWidth); selectedTabLineOffset = selectedTabOffset; } } } }
updateSkinnableUI(); } else if ("SIDE".equals(p)) { final Side side = getSkinnable().getSide(); pseudoClassStateChanged(TOP_PSEUDOCLASS_STATE, (side == Side.TOP)); pseudoClassStateChanged(RIGHT_PSEUDOCLASS_STATE, (side == Side.RIGHT));
final Side side = getSkinnable().getSide(); double tabStartX = (side == Side.LEFT || side == Side.BOTTOM) ? snapSize(getWidth()) - scrollOffset : scrollOffset;
private void updateHeaderContainerClip() { final double clipOffset = getClipOffset(); final Side side = getSkinnable().getSide(); double controlPrefWidth = 2 * snapSize(rightControlButton.prefWidth(-1)); // Add the spacer if the control buttons are shown // controlPrefWidth = controlPrefWidth > 0 ? controlPrefWidth + SPACER : controlPrefWidth; measureClosingTabs = true; final double headersPrefWidth = snapSize(headersRegion.prefWidth(-1)); final double headersPrefHeight = snapSize(headersRegion.prefHeight(-1)); measureClosingTabs = false; final double maxWidth = snapSize(getWidth()) - controlPrefWidth - clipOffset; final double clipWidth = headersPrefWidth < maxWidth ? headersPrefWidth : maxWidth; final double clipHeight = headersPrefHeight; clip.setX((side == Side.LEFT || side == Side.BOTTOM) && headersPrefWidth >= maxWidth ? headersPrefWidth - maxWidth : 0); clip.setY(0); clip.setWidth(clipWidth); clip.setHeight(clipHeight); }
inner.setAlignment(Pos.CENTER); inner.getStyleClass().add("tab-container"); inner.setRotate(getSkinnable().getSide().equals(Side.BOTTOM) ? 180.0F : 0.0F); final Side side = getSkinnable().getSide(); pseudoClassStateChanged(TOP_PSEUDOCLASS_STATE, (side == Side.TOP)); pseudoClassStateChanged(RIGHT_PSEUDOCLASS_STATE, (side == Side.RIGHT));
headerBackground.resize(snapSize(getWidth()), snapSize(getHeight())); final Side side = getSkinnable().getSide(); double startX = 0; double startY = 0;
@Override protected void layoutChildren(final double x, final double y, final double w, final double h) { final double headerHeight = snapSize(header.prefHeight(-1)); final Side side = getSkinnable().getSide(); double tabsX = side == Side.RIGHT ? x + w - headerHeight : x; double tabsY = side == Side.BOTTOM ? y + h - headerHeight : y;
private void definePillPosition() { ObservableList<Tab> list = getSkinnable().getTabs(); for (Tab tab : list) { tab.getStyleClass().removeAll("first-tab", "last-tab", "single-tab"); } if (list.size() > 1) { if (getSkinnable().getSide() == Side.TOP || getSkinnable().getSide() == Side.RIGHT) { list.get(0).getStyleClass().add("first-tab"); list.get(list.size() - 1).getStyleClass().add("last-tab"); } else if (getSkinnable().getSide() == Side.BOTTOM || getSkinnable().getSide() == Side.LEFT) { list.get(0).getStyleClass().add("last-tab"); list.get(list.size() - 1).getStyleClass().add("first-tab"); } } else if(list.size() == 1){ list.get(0).getStyleClass().add("single-tab"); } }