Skip to main content



      Home
Home » Eclipse Projects » Standard Widget Toolkit (SWT) » JFace App - how to handle close event?
JFace App - how to handle close event? [message #449464] Mon, 24 January 2005 19:43 Go to next message
Eclipse UserFriend
The following snippet shows how to have a message box query the user
before exiting an SWT app. It allows the user to decide whether to exit
or not. It is quite straightforward.

http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.sni ppets/src/org/eclipse/swt/snippets/Snippet99.java?rev=HEAD&a mp;content-type=text/vnd.viewcvs-markup

But, has anyone ever done this in a JFace app?

We have tried many ways and failed. It seems like JFace was so intent on
hiding details in the name of abstraction and elegance that we now cannot
access those details.

Our next step would be to download the source and seriously hack
ApplicationWindow to get this to work.

All comments and suggestions appreciated!
Re: JFace App - how to handle close event? [message #449469 is a reply to message #449464] Tue, 25 January 2005 01:00 Go to previous message
Eclipse UserFriend
Bill Ewing:

In short: Window.canHandleShellCloseEvent()
See full example below.
Do you still want to handle shell events in Designer? ;-)


import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.StatusLineManager;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
/**
* @author scheglov_ke
*/
public class ConfirmCloseTest extends ApplicationWindow {
public ConfirmCloseTest() {
super(null);
createActions();
addToolBar(SWT.FLAT | SWT.WRAP);
addMenuBar();
addStatusLine();
}
protected Control createContents(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
container.setLayout(new GridLayout());
return container;
}
private void createActions() {
}
protected MenuManager createMenuManager() {
MenuManager result = new MenuManager("menu");
return result;
}
protected ToolBarManager createToolBarManager(int style) {
ToolBarManager toolBarManager = new ToolBarManager(style);
return toolBarManager;
}
protected StatusLineManager createStatusLineManager() {
StatusLineManager statusLineManager = new StatusLineManager();
statusLineManager.setMessage(null, "");
return statusLineManager;
}
public static void main(String args[]) {
try {
ConfirmCloseTest window = new ConfirmCloseTest();
window.setBlockOnOpen(true);
window.open();
} catch (Exception e) {
e.printStackTrace();
}
}
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.setText("New Application");
}
protected Point getInitialSize() {
return new Point(425, 350);
}
protected boolean canHandleShellCloseEvent() {
if (!MessageDialog.openQuestion(getShell(), "Confirm", "Do you really
want close window?")) {
return false;
}
return super.canHandleShellCloseEvent();
}
}



> The following snippet shows how to have a message box query the user
> before exiting an SWT app. It allows the user to decide whether to exit
> or not. It is quite straightforward.
>
> http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.sni ppets/src/org/eclipse/swt/snippets/Snippet99.java?rev=HEAD&a mp;content-type=text/vnd.viewcvs-markup
>
>
> But, has anyone ever done this in a JFace app?
>
> We have tried many ways and failed. It seems like JFace was so intent
> on hiding details in the name of abstraction and elegance that we now
> cannot access those details.
> Our next step would be to download the source and seriously hack
> ApplicationWindow to get this to work.
> All comments and suggestions appreciated!
>
>


--
SY, Konstantin.
Advanced Eclipse SWT Designer (http://www.swt-designer.com)
Previous Topic:CoolItem Unable to take entire space horizontally
Next Topic:Table Columns with mutiple lines of data
Goto Forum:
  


Current Time: Sun Jul 06 23:18:32 EDT 2025

Powered by FUDForum. Page generated in 0.03333 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top