1 package org.eparapher.rcp.statusline;
2
3 import java.util.Timer;
4 import java.util.TimerTask;
5
6 import org.eclipse.jface.action.IStatusLineManager;
7 import org.eclipse.jface.action.StatusLineManager;
8 import org.eclipse.swt.widgets.Display;
9 import org.eparapher.core.tools.OODaemonManager;
10 import org.eparapher.rcp.tools.GUIIcons;
11 import org.eparapher.rcp.tools.StatusLineContributionItem;
12
13
14 public class OpenOfficeStatus {
15
16
17 private final static String ITEM_ID = "OpenOfficeStatus";
18
19 final StatusLineContributionItem oofficeStatus;
20
21 boolean oostatus;
22
23 long delay = 3;
24 long period = 1;
25
26 public OpenOfficeStatus(IStatusLineManager statusLine) {
27
28 super();
29
30 oofficeStatus = new StatusLineContributionItem( ITEM_ID, true, 16);
31 displayOOfficeStatus(oofficeStatus);
32 oofficeStatus.setText("OpenOffice");
33 oofficeStatus.setVisible(true);
34 statusLine.appendToGroup(StatusLineManager.MIDDLE_GROUP, oofficeStatus);
35 oofficeStatus.setImage(GUIIcons.KO_ICON_IMAGE);
36
37 oostatus = false;
38
39
40 OpenOfficeTimerTask oostatustimer= new OpenOfficeTimerTask();
41 Timer timer = new Timer(true);
42 timer.scheduleAtFixedRate(oostatustimer, delay * 1000, period * 10000);
43 }
44
45 private void displayOOfficeStatus(StatusLineContributionItem timeStatus) {
46 boolean isrunning = OODaemonManager.getInstance().isOpenOfficeRunning();
47 if ( isrunning && !oostatus) {
48 timeStatus.setToolTipText("OpenOffice started");
49 timeStatus.setImage(GUIIcons.OK_ICON_IMAGE);
50 oostatus = true;
51 }
52 if (!isrunning && oostatus) {
53 timeStatus.setToolTipText("OpenOffice not started");
54 timeStatus.setImage(GUIIcons.KO_ICON_IMAGE);
55 oostatus = false;
56 }
57 }
58
59 class OpenOfficeTimerTask extends TimerTask {
60
61 public void run() {
62 Display.getDefault().asyncExec(
63 new Runnable() {
64 public void run() {
65 displayOOfficeStatus(oofficeStatus);
66 }
67 }
68 );
69 }
70
71 }
72
73
74 }