Как добавить кнопку закрытия с SWT.TabItem?

TabFolder tabFolder = new TabFolder(composite, SWT.CLOSE);      

TabItem tab1 = new TabItem(tabFolder, SWT.CLOSE);
tab1.setText("Tab 1");

TabItem tab2 = new TabItem(tabFolder, SWT.CLOSE);
tab2.setText("Tab 2");

У меня есть SWT.TabFolder и есть некоторые SWT.TabItems на нем. я хочу иметь кнопку закрытия с этими TabItems, чтобы я мог закрыть вкладки, которые я хочу во время выполнения. и я не хочу использовать CTabFolder или CTabItem

может кто-нибудь сказать мне, что я могу сделать для этой цели?

public DomainUI(Composite composite, TabFolder newTabFolder, boolean comingFromSelf)
    {       
        boolean itemsDisposed = false;
        TabItem[] itemsOnTabFolder = newTabFolder.getItems();
        String[] namesOfItemsOnTabFolder = new String[itemsOnTabFolder.length];
        if(comingFromSelf) // checking when to dispose other tabs
        {
            if(itemsOnTabFolder.length != 0)
            {
                for(int i=0; i<itemsOnTabFolder.length; i++)
                {
                    namesOfItemsOnTabFolder[i] = itemsOnTabFolder[i].getText();
                    itemsOnTabFolder[i].dispose();
                }
                itemsDisposed = true;
            }
        }
        final Composite compositeInTab = new Composite(newTabFolder, SWT.NONE);
        compositeInTab.setLayout(null);

        // CREATIION OF LABELS AND TEXTFIELDS
        systemCodeLabel = new Label(compositeInTab, 0);
        systemCodeText = new Text(compositeInTab, SWT.BORDER);

        domainNameLabel = new Label(compositeInTab, 0);
        domainNameText = new Text(compositeInTab, SWT.BORDER);

        organizationalUnitLabel = new Label(compositeInTab, 0);
        organizationalUnitText = new Text(compositeInTab, SWT.BORDER);

        organizationNameLabel = new Label(compositeInTab, 0);
        organizationNameText = new Text(compositeInTab, SWT.BORDER);

        systemCodeLabel.setText("System Code");
        domainNameLabel.setText("Domain Name");
        organizationalUnitLabel.setText("Organizational Unit");
        organizationNameLabel.setText("Organization Name");
newTabFolder.addMouseListener(new MouseAdapter() 
        {
            public void mouseUp(MouseEvent arg0)
            {
                TabFolder curFolder = (TabFolder)arg0.widget;
                Point eventLocation = new Point(arg0.x, arg0.y);
                TabItem item = curFolder.getItem(eventLocation);
                if(item == null)
                    return;

                Image image = item.getImage();

                // check if click is on image
                if(        eventLocation.x >= item.getBounds().x + image.getBounds().x && eventLocation.x <= item.getBounds().x + image.getBounds().x + image.getBounds().width
                        && eventLocation.y >= item.getBounds().y + image.getBounds().y && eventLocation.y <= item.getBounds().y + image.getBounds().y + image.getBounds().height)
                {
                    System.out.println("Close tab");
                    item.dispose();
                }
                else
                {
                    System.out.println("Don't close tab");
                }
            }

        });
}

Ответы на вопрос(1)

Ваш ответ на вопрос