AccordionDisabledExample.java
package com.itmill.toolkit.demo.sampler.features.accordions;

import com.itmill.toolkit.terminal.ThemeResource;
import com.itmill.toolkit.ui.Accordion;
import com.itmill.toolkit.ui.Button;
import com.itmill.toolkit.ui.HorizontalLayout;
import com.itmill.toolkit.ui.Label;
import com.itmill.toolkit.ui.VerticalLayout;
import com.itmill.toolkit.ui.Button.ClickEvent;
import com.itmill.toolkit.ui.TabSheet.SelectedTabChangeEvent;

public class AccordionDisabledExample extends VerticalLayout implements
        Accordion.SelectedTabChangeListener, Button.ClickListener {

    private Accordion a;
    private Button b1;
    private Button b2;
    private Label l1;
    private Label l2;
    private Label l3;

    private static final ThemeResource icon1 = new ThemeResource(
            "icons/action_save.gif");
    private static final ThemeResource icon2 = new ThemeResource(
            "icons/comment_yellow.gif");
    private static final ThemeResource icon3 = new ThemeResource(
            "icons/icon_info.gif");

    public AccordionDisabledExample() {
        setSpacing(true);

        l1 = new Label("There are no previously saved actions.");
        l2 = new Label("There are no saved notes.");
        l3 = new Label("There are currently no issues.");

        a = new Accordion();
        a.setHeight("300px");
        a.setWidth("400px");
        a.addTab(l1, "Saved actions", icon1);
        a.addTab(l2, "Notes", icon2);
        a.addTab(l3, "Issues", icon3);
        a.addListener(this);

        b1 = new Button("Disable 'Notes' tab");
        b2 = new Button("Hide 'Issues' tab");
        b1.addListener(this);
        b2.addListener(this);

        HorizontalLayout hl = new HorizontalLayout();
        hl.setSpacing(true);
        hl.addComponent(b1);
        hl.addComponent(b2);

        addComponent(a);
        addComponent(hl);
    }

    public void selectedTabChange(SelectedTabChangeEvent event) {
        String c = a.getTabCaption(event.getTabSheet().getSelectedTab());
        getWindow().showNotification("Selected tab: " + c);
    }

    public void buttonClick(ClickEvent event) {
        if (b1.equals(event.getButton())) { // b1 clicked
            if (l2.isEnabled()) {
                l2.setEnabled(false);
                b1.setCaption("Enable 'Notes' tab");
            else {
                l2.setEnabled(true);
                b1.setCaption("Disable 'Notes' tab");
            }
        else // b2 clicked
            if (l3.isVisible()) {
                l3.setVisible(false);
                b2.setCaption("Show 'Issues' tab");
            else {
                l3.setVisible(true);
                b2.setCaption("Hide 'Issues' tab");
            }
        }
        a.requestRepaint();
    }
}