2017-07-19 45 views
1

我想在Eclipse插件中關閉視圖之前顯示消息。 如何捕捉關閉事件? 它是通過使用addListenerObject(Object listener)方法嗎?Catch ViewPart關閉事件?

@Override 
    public void createPartControl(Composite parent) { 

    //Catch view closing event 
    this.addListenerObject(new //??? 

    }); 

    } 
+0

可能重複(https://stackoverflow.com/questions/3777146/how-can-a-swing-windowlistener-veto-jframe-closing) –

+0

@RanadipDutta該鏈接是Swing,這是Eclipse插件/ SWT,它是完全不同的。 –

+0

它只是一條您想要顯示的消息,還是您試圖停止視圖關閉? –

回答

2

addListenerObject是不是與此有關。

您可以覆蓋視圖的dispose方法:

@Override 
public void dispose() 
{ 
    // TODO your code 
    super.dispose(); 
} 

你也可以使用一個IPartListener被告知所有部件的狀態變化:的[這]

getSite().getPage().addPartListener(new IPartListener() 
    { 
    @Override 
    public void partOpened(final IWorkbenchPart part) 
    { 
    } 


    @Override 
    public void partDeactivated(final IWorkbenchPart part) 
    { 
    } 


    @Override 
    public void partClosed(final IWorkbenchPart part) 
    { 
     if (part == MyView.this) { 
     // TODO Your code 
     } 
    } 


    @Override 
    public void partBroughtToTop(final IWorkbenchPart part) 
    { 
    } 


    @Override 
    public void partActivated(final IWorkbenchPart part) 
    { 
    } 
    });