package org.eclipse.swt.widgets; import java.util.ArrayList; import java.util.List; import javafx.scene.Parent; import javafx.scene.control.TabPane; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.internal.TypedListener; public class TabFolder extends Composite { private List<TabItem> items = new ArrayList<TabItem>(); private TabPane tabPane; public TabFolder(Composite parent, int style) { super(parent, style); } @Override protected void createWidget() { tabPane = new TabPane(); } @Override public Parent internal_getNativeObject() { return tabPane; } void internal_addTabItem(TabItem item) { this.items.add(item); tabPane.getTabs().add(item.internal_getNativeObject()); } @Override protected double internal_getHeight() { return tabPane.getHeight(); } @Override protected double internal_getWidth() { return tabPane.getWidth(); } @Override protected void internal_attachControl(Control c) { // Not needed } @Override protected void internal_setLayout(Layout layout) { // Not needed } @Override protected double internal_getPrefHeight() { return tabPane.prefHeight(javafx.scene.control.Control.USE_COMPUTED_SIZE); } @Override protected double internal_getPrefWidth() { return tabPane.prefWidth(javafx.scene.control.Control.USE_COMPUTED_SIZE); } public void addSelectionListener(SelectionListener listener) { checkWidget (); if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); TypedListener typedListener = new TypedListener(listener); registerListener(SWT.Selection,typedListener); registerListener(SWT.DefaultSelection,typedListener); } public TabItem getItem (int index) { checkWidget (); if (!(0 <= index && index < items.size())) error (SWT.ERROR_INVALID_RANGE); return items.get(index); } // public TabItem getItem (Point point) { // checkWidget (); // if (point == null) error (SWT.ERROR_NULL_ARGUMENT); // } public int getItemCount () { checkWidget (); return items.size(); } public TabItem [] getItems () { checkWidget (); return items.toArray(new TabItem[0]); } public TabItem [] getSelection () { checkWidget (); return new TabItem[]{items.get(getSelectionIndex())}; } public int getSelectionIndex () { checkWidget (); return tabPane.getSelectionModel().getSelectedIndex(); } public int indexOf (TabItem item) { checkWidget (); if (item == null) error (SWT.ERROR_NULL_ARGUMENT); return items.indexOf(item); } public void removeSelectionListener (SelectionListener listener) { checkWidget (); if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); unregisterListener(SWT.Selection,listener); unregisterListener(SWT.DefaultSelection,listener); } public void setSelection (int index) { checkWidget (); } public void setSelection (TabItem item) { checkWidget (); if (item == null) error (SWT.ERROR_NULL_ARGUMENT); } public void setSelection (TabItem [] items) { checkWidget (); if (items == null) error (SWT.ERROR_NULL_ARGUMENT); } }