Revision 2592

tmp/org.txm.rcp/src/main/java/org/txm/rcp/notifications/Notifications.java (revision 2592)
1
package org.txm.rcp.notifications;
2

  
3
import java.io.File;
4
import java.io.IOException;
5

  
6
import org.eclipse.swt.widgets.Display;
7
import org.txm.utils.logger.Log;
8

  
9
public class Notifications {
10

  
11
	final static protected File notifySendFile = new File("/usr/bin/notify-send");
12
	/**
13
	 * Display a notification, must be called within the UI thread
14
	 * @param title
15
	 * @param message
16
	 */
17
	public static void simple(String title, String message) {
18
		simple(Display.getCurrent(), title, message);
19
	}
20

  
21
	/**
22
	 * Display a simple notification title+message using the given Display
23
	 * 
24
	 * If /usr/bin/notify-send exists (linux & gtk), it is used instead of the SimpleNotification class
25
	 * @param display
26
	 * @param title
27
	 * @param message
28
	 */
29
	public static void simple(Display display, String title, String message) {
30
		if (notifySendFile.exists() && notifySendFile.canExecute()) {
31
				String[] cmds = {"/usr/bin/notify-send", title, message, "--icon=dialog-information"};
32
				try {
33
					Runtime.getRuntime().exec(cmds);
34
				} catch (IOException e) {
35
					// TODO Auto-generated catch block
36
					e.printStackTrace();
37
				}
38
		} else {
39
			if (display == null) {
40
				Log.info(title+": "+message);
41
			} else {
42
				new SimpleNotification(display, title, message).open();
43
			}
44
		}
45
		
46
		// MAC :
47
		// osascript -e 'tell app "Finder" to display dialog "Hello World"' 
48
		// foreground : “System Events”
49
		// osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'
50

  
51
		// WIN
52
		// errr...
53
	}
54
}
0 55

  
tmp/org.txm.rcp/src/main/java/org/txm/rcp/notifications/AbstractNotificationPopup.java (revision 2592)
44 44

  
45 45
	private static final int MIN_HEIGHT = 100;
46 46

  
47
	private static final long DEFAULT_DELAY_CLOSE = 8 * 1000;
47
	private static final long DEFAULT_DELAY_CLOSE = 10 * 1000;
48 48

  
49 49
	private static final int PADDING_EDGE = 5;
50 50

  
......
77 77
							return;
78 78
						}
79 79

  
80
						AbstractNotificationPopup.this.closeFade();
80
						AbstractNotificationPopup.this.close();
81 81
					}
82 82

  
83 83
				});
......
159 159
		titleTextLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
160 160
		titleTextLabel.setCursor(parent.getDisplay().getSystemCursor(SWT.CURSOR_HAND));
161 161

  
162
		final Label button = new Label(parent, SWT.NONE);
163
		button.setText("close");
162
		final Label button = new Label(parent, SWT.NONE|SWT.BORDER);
163
		button.setText("x");
164
		button.setCursor(parent.getDisplay().getSystemCursor(SWT.CURSOR_HAND));
164 165
		
165 166
		MouseAdapter closeAdapter = new MouseAdapter() {
166 167

  
......
258 259
			shell.setAlpha(0);
259 260
		}
260 261
		shell.setVisible(true);
262
		
263
		scheduleAutoClose();
261 264
//		fadeJob = AnimationUtil.fadeIn(shell, new IFadeListener() {
262 265
//			public void faded(Shell shell, int alpha) {
263 266
//				if (shell.isDisposed()) {
......
265 268
//				}
266 269
//
267 270
//				if (alpha == 255) {
268
//					scheduleAutoClose();
271
//					
269 272
//				}
270 273
//			}
271 274
//		});

Also available in: Unified diff