aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java/sip/communicator/plugin/chatconfig/ChatConfigActivator.java
blob: d3108cf7d7c228423c812ecff7c3cd53e097b82f (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
/*
 * SIP Communicator, 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.chatconfig;

import java.awt.*;
import java.util.*;

import javax.swing.*;

import net.java.sip.communicator.service.configuration.*;
import net.java.sip.communicator.service.gui.*;
import net.java.sip.communicator.service.resources.*;
import net.java.sip.communicator.util.*;
import net.java.sip.communicator.util.swing.*;

import org.osgi.framework.*;

/**
 * The chat configuration form activator.
 * 
 * @author Purvesh Sahoo
 */
public class ChatConfigActivator
    implements BundleActivator
{
    /**
     * The <tt>Logger</tt> used by the <tt>ChatConfigActivator</tt> class.
     */
    private final static Logger logger =
        Logger.getLogger(ChatConfigActivator.class);

    /**
     * The currently valid bundle context.
     */
    public static BundleContext bundleContext;

    /**
     * The configuration service.
     */
    private static ConfigurationService configService;

    /**
     * The resource management service.
     */
    private static ResourceManagementService resourceService;

    /**
     * Starts this bundle.
     * 
     * @param bc the BundleContext
     * @throws Exception if some of the operations executed in the start method
     *             fails
     */
    public void start(BundleContext bc) throws Exception
    {
        bundleContext = bc;

        Dictionary<String, String> properties = new Hashtable<String, String>();
        properties.put(ConfigurationForm.FORM_TYPE,
            ConfigurationForm.GENERAL_TYPE);
        bundleContext.registerService(ConfigurationForm.class.getName(),
            new LazyConfigurationForm(
                "net.java.sip.communicator.plugin.chatconfig.ChatConfigPanel",
                getClass().getClassLoader(), "plugin.chatconfig.PLUGIN_ICON",
                "plugin.chatconfig.TITLE", 40), properties);

        if (logger.isTraceEnabled())
            logger.trace("Chat Configuration: [ STARTED ]");
    }

    /**
     * Stops this bundle.
     * 
     * @param bc the bundle context
     * @throws Exception if something goes wrong
     */
    public void stop(BundleContext bc) throws Exception {}

    /**
     * Gets the service giving access to all application resources.
     * 
     * @return the service giving access to all application resources.
     */
    public static ResourceManagementService getResources()
    {
        if (resourceService == null)
            resourceService =
                ResourceManagementServiceUtils.getService(bundleContext);
        return resourceService;
    }

    /**
     * Creates a config section label from the given text.
     * 
     * @param labelText the text of the label.
     * @return the created label
     */

    public static Component createConfigSectionComponent(String labelText)
    {
        JLabel label = new JLabel(labelText);
        label.setFont(label.getFont().deriveFont(Font.BOLD));
        label.setAlignmentX(Component.RIGHT_ALIGNMENT);

        JPanel parentPanel = new TransparentPanel(new BorderLayout());
        parentPanel.add(label, BorderLayout.NORTH);
        parentPanel.setPreferredSize(new Dimension(180, 25));

        return parentPanel;
    }

    /**
     * Returns the <tt>ConfigurationService</tt> obtained from the bundle
     * context.
     * 
     * @return the <tt>ConfigurationService</tt> obtained from the bundle
     *         context
     */
    public static ConfigurationService getConfigurationService()
    {
        if (configService == null)
        {
            ServiceReference configReference =
                bundleContext.getServiceReference(ConfigurationService.class
                    .getName());

            configService =
                (ConfigurationService) bundleContext
                    .getService(configReference);
        }

        return configService;
    }
}