Search in sources :

Example 1 with TabPane

use of org.apache.pivot.wtk.TabPane in project pivot by apache.

the class BuilderExample method buildWindow.

private static MyWindow buildWindow() {
    final HashMap<String, Object> namespace = new HashMap<>();
    return new MyWindow() {

        {
            setContent(new TabPane() {

                {
                    namespace.put("tabPane", this);
                    getTabs().add(new Label() {

                        {
                            setText("Label 1");
                            TabPane.setTabData(this, "Label 1");
                        }
                    });
                    getTabs().add(new Label() {

                        {
                            setText("Label 2");
                            TabPane.setTabData(this, "Label 2");
                        }
                    });
                    getTabs().add(new Label() {

                        {
                            setText("Label 3");
                            TabPane.setTabData(this, "Label 3");
                        }
                    });
                    setSelectedIndex(2);
                }
            });
            setTitle("Builder Example");
            setMaximized(true);
            initialize(namespace, null, null);
        }
    };
}
Also used : TabPane(org.apache.pivot.wtk.TabPane) HashMap(org.apache.pivot.collections.HashMap) Label(org.apache.pivot.wtk.Label)

Example 2 with TabPane

use of org.apache.pivot.wtk.TabPane in project pivot by apache.

the class TerraTabPaneSkin method getPreferredTabSize.

private Dimensions getPreferredTabSize() {
    int preferredTabWidth = 0;
    int preferredTabHeight = 0;
    TabPane tabPane = (TabPane) getComponent();
    for (Component tab : tabPane.getTabs()) {
        Dimensions preferredSize = tab.getPreferredSize();
        preferredTabWidth = Math.max(preferredTabWidth, preferredSize.width);
        preferredTabHeight = Math.max(preferredTabHeight, preferredSize.height);
    }
    return new Dimensions(preferredTabWidth, preferredTabHeight);
}
Also used : TabPane(org.apache.pivot.wtk.TabPane) Dimensions(org.apache.pivot.wtk.Dimensions) Component(org.apache.pivot.wtk.Component) Point(org.apache.pivot.wtk.Point) GradientPaint(java.awt.GradientPaint)

Example 3 with TabPane

use of org.apache.pivot.wtk.TabPane in project pivot by apache.

the class TerraTabPaneSkin method layout.

@Override
public void layout() {
    TabPane tabPane = (TabPane) getComponent();
    int width = getWidth();
    int height = getHeight();
    int tabX = 0;
    int tabY = 0;
    int tabWidth = 0;
    int tabHeight = 0;
    Component corner = tabPane.getCorner();
    Dimensions buttonPanoramaSize = tabButtonPanorama.getPreferredSize();
    switch(tabOrientation) {
        case HORIZONTAL:
            {
                int buttonPanoramaWidth = Math.min(width, buttonPanoramaSize.width);
                int buttonPanoramaHeight = buttonPanoramaSize.height;
                int buttonPanoramaY = 0;
                if (corner != null) {
                    int cornerWidth = Math.max(width - buttonPanoramaWidth - 2, corner.getPreferredWidth());
                    if (cornerWidth > width - 2) {
                        cornerWidth = Math.max(width - 2, 0);
                    }
                    if (buttonPanoramaWidth + 2 + cornerWidth > width) {
                        buttonPanoramaWidth = Math.max(width - 2 - cornerWidth, 0);
                    }
                    int cornerHeight = Math.max(corner.getPreferredHeight(-1), buttonPanoramaSize.height - 1);
                    int cornerX = width - cornerWidth;
                    int cornerY = Math.max(buttonPanoramaHeight - cornerHeight - 1, 0);
                    buttonPanoramaY = Math.max(cornerHeight - buttonPanoramaHeight + 1, 0);
                    corner.setLocation(cornerX, cornerY);
                    corner.setSize(cornerWidth, cornerHeight);
                }
                tabButtonPanorama.setLocation(0, buttonPanoramaY);
                tabButtonPanorama.setSize(buttonPanoramaWidth, buttonPanoramaHeight);
                tabX = padding.left + 1;
                tabY = padding.top + buttonPanoramaY + buttonPanoramaHeight;
                tabWidth = Math.max(width - (padding.left + padding.right + 2), 0);
                tabHeight = Math.max(height - (padding.top + padding.bottom + buttonPanoramaY + buttonPanoramaHeight + 1), 0);
                break;
            }
        case VERTICAL:
            {
                int buttonPanoramaWidth = buttonPanoramaSize.width;
                int buttonPanoramaHeight = Math.min(height, buttonPanoramaSize.height);
                int buttonPanoramaX = 0;
                if (corner != null) {
                    int cornerHeight = Math.max(height - buttonPanoramaHeight - 2, corner.getPreferredHeight());
                    if (cornerHeight > height - 2) {
                        cornerHeight = Math.max(height - 2, 0);
                    }
                    if (buttonPanoramaHeight + 2 + cornerHeight > height) {
                        buttonPanoramaHeight = Math.max(height - 2 - cornerHeight, 0);
                    }
                    int cornerWidth = Math.max(corner.getPreferredWidth(-1), buttonPanoramaSize.width - 1);
                    int cornerX = Math.max(buttonPanoramaWidth - cornerWidth - 1, 0);
                    int cornerY = height - cornerHeight;
                    buttonPanoramaX = Math.max(cornerWidth - buttonPanoramaWidth + 1, 0);
                    corner.setLocation(cornerX, cornerY);
                    corner.setSize(cornerWidth, cornerHeight);
                }
                tabButtonPanorama.setLocation(buttonPanoramaX, 0);
                tabButtonPanorama.setSize(buttonPanoramaWidth, buttonPanoramaHeight);
                tabX = padding.left + buttonPanoramaX + buttonPanoramaWidth;
                tabY = padding.top + 1;
                tabWidth = Math.max(width - (padding.left + padding.right + buttonPanoramaX + buttonPanoramaWidth + 1), 0);
                tabHeight = Math.max(height - (padding.top + padding.bottom + 2), 0);
                break;
            }
        default:
            {
                break;
            }
    }
    // Lay out the tabs
    for (Component tab : tabPane.getTabs()) {
        tab.setLocation(tabX, tabY);
        if (selectionChangeTransition != null && selectionChangeTransition.isRunning()) {
            clipDecorator.setSize(tabWidth, tabHeight);
            switch(tabOrientation) {
                case HORIZONTAL:
                    {
                        tab.setSize(tabWidth, getPreferredTabHeight(tabWidth));
                        break;
                    }
                case VERTICAL:
                    {
                        tab.setSize(getPreferredTabWidth(tabHeight), tabHeight);
                        break;
                    }
                default:
                    {
                        break;
                    }
            }
        } else {
            tab.setSize(tabWidth, tabHeight);
        }
    }
}
Also used : TabPane(org.apache.pivot.wtk.TabPane) Dimensions(org.apache.pivot.wtk.Dimensions) Component(org.apache.pivot.wtk.Component) Point(org.apache.pivot.wtk.Point) GradientPaint(java.awt.GradientPaint)

Example 4 with TabPane

use of org.apache.pivot.wtk.TabPane in project pivot by apache.

the class TerraTabPaneSkin method getPreferredTabHeight.

private int getPreferredTabHeight(int width) {
    int preferredTabHeight = 0;
    TabPane tabPane = (TabPane) getComponent();
    for (Component tab : tabPane.getTabs()) {
        preferredTabHeight = Math.max(preferredTabHeight, tab.getPreferredHeight(width));
    }
    return preferredTabHeight;
}
Also used : TabPane(org.apache.pivot.wtk.TabPane) Component(org.apache.pivot.wtk.Component) Point(org.apache.pivot.wtk.Point) GradientPaint(java.awt.GradientPaint)

Example 5 with TabPane

use of org.apache.pivot.wtk.TabPane in project pivot by apache.

the class TerraTabPaneSkin method keyPressed.

/**
 * Key presses have no effect if the event has already been consumed.<p>
 * CommandModifier + {@link KeyCode#KEYPAD_1 KEYPAD_1} to
 * {@link KeyCode#KEYPAD_9 KEYPAD_9}<br>or CommandModifier +
 * {@link KeyCode#N1 1} to {@link KeyCode#N9 9} Select the (enabled) tab at
 * index 0 to 8 respectively.
 * <p> CommandModifier + Tab to cycle forward through the tabs,
 * CommandModifier + Shift + Tab to cycle backward.
 *
 * @see Platform#getCommandModifier()
 */
@Override
public boolean keyPressed(Component component, int keyCode, Keyboard.KeyLocation keyLocation) {
    boolean consumed = super.keyPressed(component, keyCode, keyLocation);
    Keyboard.Modifier commandModifier = Platform.getCommandModifier();
    if (!consumed && Keyboard.isPressed(commandModifier)) {
        TabPane tabPane = (TabPane) getComponent();
        TabPane.TabSequence tabs = tabPane.getTabs();
        int selectedIndex = -1;
        switch(keyCode) {
            case Keyboard.KeyCode.KEYPAD_1:
            case Keyboard.KeyCode.N1:
                {
                    selectedIndex = 0;
                    break;
                }
            case Keyboard.KeyCode.KEYPAD_2:
            case Keyboard.KeyCode.N2:
                {
                    selectedIndex = 1;
                    break;
                }
            case Keyboard.KeyCode.KEYPAD_3:
            case Keyboard.KeyCode.N3:
                {
                    selectedIndex = 2;
                    break;
                }
            case Keyboard.KeyCode.KEYPAD_4:
            case Keyboard.KeyCode.N4:
                {
                    selectedIndex = 3;
                    break;
                }
            case Keyboard.KeyCode.KEYPAD_5:
            case Keyboard.KeyCode.N5:
                {
                    selectedIndex = 4;
                    break;
                }
            case Keyboard.KeyCode.KEYPAD_6:
            case Keyboard.KeyCode.N6:
                {
                    selectedIndex = 5;
                    break;
                }
            case Keyboard.KeyCode.KEYPAD_7:
            case Keyboard.KeyCode.N7:
                {
                    selectedIndex = 6;
                    break;
                }
            case Keyboard.KeyCode.KEYPAD_8:
            case Keyboard.KeyCode.N8:
                {
                    selectedIndex = 7;
                    break;
                }
            case Keyboard.KeyCode.KEYPAD_9:
            case Keyboard.KeyCode.N9:
                {
                    selectedIndex = 8;
                    break;
                }
            case Keyboard.KeyCode.TAB:
                selectedIndex = tabPane.getSelectedIndex();
                if (Keyboard.isPressed(Keyboard.Modifier.SHIFT)) {
                    if (selectedIndex <= 0) {
                        selectedIndex = tabs.getLength() - 1;
                    } else {
                        selectedIndex--;
                    }
                } else {
                    if (selectedIndex >= tabs.getLength() - 1) {
                        selectedIndex = 0;
                    } else {
                        selectedIndex++;
                    }
                }
                break;
            default:
                {
                    break;
                }
        }
        if (selectedIndex >= 0 && selectedIndex < tabs.getLength() && tabs.get(selectedIndex).isEnabled()) {
            tabPane.setSelectedIndex(selectedIndex);
            consumed = true;
        }
    }
    return consumed;
}
Also used : TabPane(org.apache.pivot.wtk.TabPane) Keyboard(org.apache.pivot.wtk.Keyboard) Point(org.apache.pivot.wtk.Point) GradientPaint(java.awt.GradientPaint)

Aggregations

TabPane (org.apache.pivot.wtk.TabPane)13 GradientPaint (java.awt.GradientPaint)9 Point (org.apache.pivot.wtk.Point)9 Component (org.apache.pivot.wtk.Component)7 Dimensions (org.apache.pivot.wtk.Dimensions)3 Label (org.apache.pivot.wtk.Label)2 Line2D (java.awt.geom.Line2D)1 HashMap (org.apache.pivot.collections.HashMap)1 Vote (org.apache.pivot.util.Vote)1 Bounds (org.apache.pivot.wtk.Bounds)1 Button (org.apache.pivot.wtk.Button)1 ButtonStateListener (org.apache.pivot.wtk.ButtonStateListener)1 Keyboard (org.apache.pivot.wtk.Keyboard)1 RadioButton (org.apache.pivot.wtk.RadioButton)1 Sheet (org.apache.pivot.wtk.Sheet)1 SheetCloseListener (org.apache.pivot.wtk.SheetCloseListener)1 TabPaneListener (org.apache.pivot.wtk.TabPaneListener)1 TabPaneSelectionListener (org.apache.pivot.wtk.TabPaneSelectionListener)1