blob: cb68963672b989fda2f3075a8dc4c9fd37c0564d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
/*
* Jitsi, the OpenSource Java VoIP and Instant Messaging client.
*
* Distributable under LGPL license. See terms of license at gnu.org.
*/
package net.java.sip.communicator.plugin.spellcheck;
import java.util.*;
import net.java.sip.communicator.service.gui.*;
import org.jitsi.service.configuration.*;
import org.jitsi.service.fileaccess.*;
import org.osgi.framework.*;
import javax.swing.*;
/**
* Enabling and disabling osgi functionality for the spell checker.
*
* @author Damian Johnson
*/
public class SpellCheckActivator
implements BundleActivator
{
static BundleContext bundleContext;
private SpellChecker checker = new SpellChecker();
private static UIService uiService;
private static FileAccessService faService;
private static ConfigurationService configService;
/**
* Called when this bundle is started.
*
* @param context The execution context of the bundle being started.
*/
public void start(BundleContext context) throws Exception
{
bundleContext = context;
this.checker.start(context);
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
final LanguageMenuBar menuBar =
LanguageMenuBar.makeSelectionField(checker);
new Thread(new Runnable()
{
public void run()
{
// adds button to toggle spell checker
Hashtable<String, String> containerFilter =
new Hashtable<String, String>();
containerFilter.put(Container.CONTAINER_ID,
Container.CONTAINER_CHAT_TOOL_BAR.getID());
// adds field to change language
bundleContext.registerService(
PluginComponent.class.getName(),
menuBar,
containerFilter);
}
}).start();
}
});
}
/**
* Returns the <tt>UIService</tt>.
*
* @return the <tt>UIService</tt>
*/
public static UIService getUIService()
{
if (uiService != null)
return uiService;
// retrieves needed services
ServiceReference uiServiceRef =
bundleContext.getServiceReference(UIService.class.getName());
uiService = (UIService) bundleContext.getService(uiServiceRef);
return uiService;
}
/**
* Returns the <tt>FileAccessService</tt>.
*
* @return the <tt>FileAccessService</tt>
*/
public static FileAccessService getFileAccessService()
{
if (faService != null)
return faService;
ServiceReference faServiceReference =
bundleContext
.getServiceReference(FileAccessService.class.getName());
faService =
(FileAccessService) bundleContext.getService(faServiceReference);
return faService;
}
/**
* Returns the <tt>ConfigurationService</tt>.
*
* @return the <tt>ConfigurationService</tt>
*/
public static ConfigurationService getConfigService()
{
if (configService != null)
return configService;
ServiceReference configServiceRef =
bundleContext.getServiceReference(ConfigurationService.class
.getName());
configService =
(ConfigurationService) bundleContext.getService(configServiceRef);
return configService;
}
/**
* Stops this bundles.
*/
public void stop(BundleContext arg0) throws Exception
{
this.checker.stop();
}
}
|