简体   繁体   中英

How to get warning message when closing CTabItem in SWT?

How to add a listener in CTabItem for the SWT.CLOSE event?

I have tried tab.addListener but it does not work.

As @avojak mentioned, you can add a DisposeListener to each tab item to get notified when it was closed.

However, the CTabFolder also provides a CTabFolder2Listener . Its close() method is called before a tab item is closed. It even allows preventing closing the tab by setting the events doit flag to false.

For example:

tabFolder.addCTabFolder2Listener(new CTabFolder2Adapter() {
  @Override
  public void close(CTabFolderEvent event) {
    event.doit = false; // disallow close
  }
}

I believe that what you're looking for is CTabItem.addDisposeListener(DisposeListener) - inherited from Widget .

For example:

final CTabFolder folder = new CTabFolder(parent, SWT.NONE);
// ...
final CTabItem item = new CTabItem(folder, SWT.NONE);
item.setText("Item 1");
item.setShowClose(true);
item.addDisposeListener(new DisposeListener() {
    @Override
    public void widgetDisposed(final DisposeEvent e) {
        System.out.println("Closed");
    }
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM