aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/net/java/sip/communicator/impl/gui/UIServiceImpl.java2
-rwxr-xr-xsrc/net/java/sip/communicator/impl/gui/main/MainFrame.java61
-rwxr-xr-xsrc/net/java/sip/communicator/impl/gui/main/chat/ChatWindow.java9
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/chat/menus/MessageWindowMenuBar.java24
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/chat/toolBars/MainToolBar.java7
-rwxr-xr-xsrc/net/java/sip/communicator/impl/gui/main/contactlist/ContactListPane.java8
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/menus/ExtendedQuickMenu.java6
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/menus/MoreButton.java114
-rw-r--r--src/net/java/sip/communicator/plugin/branding/AboutWindowPluginComponent.java77
-rw-r--r--src/net/java/sip/communicator/plugin/callhistoryform/ExtendedCallHistorySearchItem.java56
-rw-r--r--src/net/java/sip/communicator/plugin/contactinfo/ContactInfoMenuItem.java46
-rw-r--r--src/net/java/sip/communicator/plugin/exampleplugin/ExamplePluginMenuItem.java104
-rw-r--r--src/net/java/sip/communicator/plugin/otr/OtrMetaContactButton.java168
-rw-r--r--src/net/java/sip/communicator/plugin/otr/OtrMetaContactMenu.java100
-rw-r--r--src/net/java/sip/communicator/plugin/profiler4j/SettingsWindowMenuEntry.java52
-rw-r--r--src/net/java/sip/communicator/plugin/updatechecker/UpdateCheckActivator.java41
-rw-r--r--src/net/java/sip/communicator/plugin/whiteboard/WhiteboardMenuItem.java42
-rw-r--r--src/net/java/sip/communicator/service/gui/AbstractPluginComponent.java93
18 files changed, 443 insertions, 567 deletions
diff --git a/src/net/java/sip/communicator/impl/gui/UIServiceImpl.java b/src/net/java/sip/communicator/impl/gui/UIServiceImpl.java
index a16f189..3079904 100644
--- a/src/net/java/sip/communicator/impl/gui/UIServiceImpl.java
+++ b/src/net/java/sip/communicator/impl/gui/UIServiceImpl.java
@@ -921,7 +921,7 @@ public class UIServiceImpl
logger.info("Handling registration of a new Plugin Component.");
Object component = pluginComponent.getComponent();
- if (component == null || !(component instanceof Component))
+ if (!(component instanceof Component))
{
logger.error("Plugin Component type is not supported."
+ "Should provide a plugin in AWT, SWT or Swing.");
diff --git a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java
index 03a2e3c..f214313 100755
--- a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java
+++ b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java
@@ -1020,17 +1020,22 @@ public class MainFrame
// context.
ServiceReference[] serRefs = null;
- String osgiFilter = "(|("
- + Container.CONTAINER_ID
- + "="+Container.CONTAINER_MAIN_WINDOW.getID()+")"
- + "(" + Container.CONTAINER_ID
- + "="+Container.CONTAINER_STATUS_BAR.getID()+"))";
-
try
{
- serRefs = GuiActivator.bundleContext.getServiceReferences(
- PluginComponent.class.getName(),
- osgiFilter);
+ serRefs
+ = GuiActivator
+ .bundleContext
+ .getServiceReferences(
+ PluginComponent.class.getName(),
+ "(|("
+ + Container.CONTAINER_ID
+ + "="
+ + Container.CONTAINER_MAIN_WINDOW.getID()
+ + ")("
+ + Container.CONTAINER_ID
+ + "="
+ + Container.CONTAINER_STATUS_BAR.getID()
+ + "))");
}
catch (InvalidSyntaxException exc)
{
@@ -1039,11 +1044,11 @@ public class MainFrame
if (serRefs != null)
{
- for (int i = 0; i < serRefs.length; i++)
+ for (ServiceReference serRef : serRefs)
{
- PluginComponent c =
- (PluginComponent) GuiActivator.bundleContext
- .getService(serRefs[i]);
+ PluginComponent c
+ = (PluginComponent)
+ GuiActivator.bundleContext.getService(serRef);
if (c.isNativeComponent())
nativePluginsTable.put(c, new JPanel());
@@ -1053,9 +1058,10 @@ public class MainFrame
Object constraints;
if (pluginConstraints != null)
- constraints =
- UIServiceImpl
- .getBorderLayoutConstraintsFromContainer(pluginConstraints);
+ constraints
+ = UIServiceImpl
+ .getBorderLayoutConstraintsFromContainer(
+ pluginConstraints);
else
constraints = BorderLayout.SOUTH;
@@ -1120,7 +1126,6 @@ public class MainFrame
public void pluginComponentRemoved(PluginComponentEvent event)
{
final PluginComponent pluginComponent = event.getPluginComponent();
-
final Container containerID = pluginComponent.getContainer();
if (containerID.equals(Container.CONTAINER_MAIN_WINDOW))
@@ -1137,7 +1142,6 @@ public class MainFrame
if (nativePluginsTable.containsKey(pluginComponent))
{
final Component c = nativePluginsTable.get(pluginComponent);
-
final Object finalConstraints = constraints;
SwingUtilities.invokeLater(new Runnable()
@@ -1167,15 +1171,14 @@ public class MainFrame
*/
private void removeNativePlugins()
{
- Object constraints;
- for (Map.Entry<PluginComponent, Component> entry : nativePluginsTable
- .entrySet())
+ for (Map.Entry<PluginComponent, Component> entry
+ : nativePluginsTable.entrySet())
{
PluginComponent pluginComponent = entry.getKey();
Component c = entry.getValue();
- constraints =
- UIServiceImpl
+ Object constraints
+ = UIServiceImpl
.getBorderLayoutConstraintsFromContainer(pluginComponent
.getConstraints());
@@ -1196,14 +1199,14 @@ public class MainFrame
{
this.removeNativePlugins();
- for (Map.Entry<PluginComponent, Component> pluginEntry : nativePluginsTable
- .entrySet())
+ for (Map.Entry<PluginComponent, Component> pluginEntry
+ : nativePluginsTable.entrySet())
{
PluginComponent plugin = pluginEntry.getKey();
-
- Object constraints =
- UIServiceImpl.getBorderLayoutConstraintsFromContainer(plugin
- .getConstraints());
+ Object constraints
+ = UIServiceImpl
+ .getBorderLayoutConstraintsFromContainer(
+ plugin.getConstraints());
Component c = (Component) plugin.getComponent();
diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindow.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindow.java
index 10a4f06..4bcba5c 100755
--- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindow.java
+++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindow.java
@@ -76,9 +76,9 @@ public class ChatWindow
private final ContactPhotoPanel contactPhotoPanel = new ContactPhotoPanel();
- private MessageWindowMenuBar menuBar;
+ private final MessageWindowMenuBar menuBar;
- private MainToolBar mainToolBar;
+ private final MainToolBar mainToolBar;
/**
* Creates an instance of <tt>ChatWindow</tt> by passing to it an instance
@@ -830,8 +830,9 @@ public class ChatWindow
{
for (ServiceReference serRef : serRefs)
{
- PluginComponent c = (PluginComponent) GuiActivator
- .bundleContext.getService(serRef);
+ PluginComponent c
+ = (PluginComponent)
+ GuiActivator .bundleContext.getService(serRef);
Object borderLayoutConstraint = UIServiceImpl
.getBorderLayoutConstraintsFromContainer(c.getConstraints());
diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/menus/MessageWindowMenuBar.java b/src/net/java/sip/communicator/impl/gui/main/chat/menus/MessageWindowMenuBar.java
index 888eea7..de11c13 100644
--- a/src/net/java/sip/communicator/impl/gui/main/chat/menus/MessageWindowMenuBar.java
+++ b/src/net/java/sip/communicator/impl/gui/main/chat/menus/MessageWindowMenuBar.java
@@ -177,25 +177,39 @@ public class MessageWindowMenuBar
if (serRefs != null)
{
- for (int i = 0; i < serRefs.length; i ++)
+ for (ServiceReference serRef : serRefs)
{
- PluginComponent component = (PluginComponent) GuiActivator
- .bundleContext.getService(serRefs[i]);;
+ PluginComponent component
+ = (PluginComponent)
+ GuiActivator.bundleContext.getService(serRef);
- this.add((Component)component.getComponent());
+ addPluginComponent(component);
}
}
GuiActivator.getUIService().addPluginComponentListener(this);
}
+ /**
+ * Adds the component of a specific <code>PluginComponent</code> to this
+ * <code>JMenuBar</code>.
+ *
+ * @param component
+ * the <code>PluginComponent</code> which is to have its
+ * component added to this <code>JMenuBar</code>
+ */
+ private void addPluginComponent(PluginComponent component)
+ {
+ add((Component) component.getComponent(), getComponentIndex(helpMenu));
+ }
+
public void pluginComponentAdded(PluginComponentEvent event)
{
PluginComponent c = event.getPluginComponent();
if (c.getContainer().equals(Container.CONTAINER_CHAT_MENU_BAR))
{
- this.add((Component) c.getComponent());
+ addPluginComponent(c);
this.revalidate();
this.repaint();
diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/toolBars/MainToolBar.java b/src/net/java/sip/communicator/impl/gui/main/chat/toolBars/MainToolBar.java
index 7d25ec1..87d2447 100644
--- a/src/net/java/sip/communicator/impl/gui/main/chat/toolBars/MainToolBar.java
+++ b/src/net/java/sip/communicator/impl/gui/main/chat/toolBars/MainToolBar.java
@@ -340,10 +340,11 @@ public class MainToolBar
if (serRefs != null)
{
- for (int i = 0; i < serRefs.length; i ++)
+ for (ServiceReference serRef : serRefs)
{
- PluginComponent component = (PluginComponent) GuiActivator
- .bundleContext.getService(serRefs[i]);
+ PluginComponent component
+ = (PluginComponent)
+ GuiActivator.bundleContext.getService(serRef);
this.add((Component)component.getComponent());
diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListPane.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListPane.java
index 323eeba..c5d242f 100755
--- a/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListPane.java
+++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListPane.java
@@ -787,11 +787,11 @@ public class ContactListPane
if (serRefs != null)
{
- for (int i = 0; i < serRefs.length; i ++)
+ for (ServiceReference serRef : serRefs)
{
- PluginComponent component = (PluginComponent) GuiActivator
- .bundleContext
- .getService(serRefs[i]);
+ PluginComponent component
+ = (PluginComponent)
+ GuiActivator.bundleContext.getService(serRef);
Object selectedValue =
mainFrame.getContactListPanel().getContactList()
diff --git a/src/net/java/sip/communicator/impl/gui/main/menus/ExtendedQuickMenu.java b/src/net/java/sip/communicator/impl/gui/main/menus/ExtendedQuickMenu.java
index 453d9df..da40396 100644
--- a/src/net/java/sip/communicator/impl/gui/main/menus/ExtendedQuickMenu.java
+++ b/src/net/java/sip/communicator/impl/gui/main/menus/ExtendedQuickMenu.java
@@ -338,10 +338,12 @@ public class ExtendedQuickMenu
}
}
+ Component moreButtonComponent = (Component) moreButton.getComponent();
+
if (moreButton.getItemsCount() > 0)
- this.add(moreButton, BorderLayout.EAST);
+ this.add(moreButtonComponent, BorderLayout.EAST);
else
- this.remove(moreButton);
+ this.remove(moreButtonComponent);
this.revalidate();
this.repaint();
diff --git a/src/net/java/sip/communicator/impl/gui/main/menus/MoreButton.java b/src/net/java/sip/communicator/impl/gui/main/menus/MoreButton.java
index bad9432..ae53c96 100644
--- a/src/net/java/sip/communicator/impl/gui/main/menus/MoreButton.java
+++ b/src/net/java/sip/communicator/impl/gui/main/menus/MoreButton.java
@@ -14,79 +14,60 @@ import javax.swing.*;
import net.java.sip.communicator.impl.gui.*;
import net.java.sip.communicator.impl.gui.utils.*;
-import net.java.sip.communicator.service.contactlist.*;
import net.java.sip.communicator.service.gui.*;
import net.java.sip.communicator.service.gui.Container;
-import net.java.sip.communicator.service.protocol.*;
/**
* @author Yana Stamcheva
*/
public class MoreButton
- extends JLabel
- implements PluginComponent,
- MouseListener,
- FocusListener
+ extends AbstractPluginComponent
+ implements FocusListener,
+ MouseListener
{
- private boolean isMouseOver = false;
+ private JLabel label;
- private final JPopupMenu menu = new JPopupMenu();
+ private JPopupMenu menu;
private final Map<String, Component> menuItemsTable =
new Hashtable<String, Component>();
public MoreButton()
{
- super(new ImageIcon(ImageLoader.getImage(ImageLoader.MORE_BUTTON)),
- JLabel.CENTER);
-
- this.setVerticalTextPosition(SwingConstants.BOTTOM);
- this.setHorizontalTextPosition(SwingConstants.CENTER);
-
- this.setToolTipText(
- GuiActivator.getResources().getI18NString("service.gui.MORE"));
-
- this.addMouseListener(this);
-
- this.addFocusListener(this);
+ super(Container.CONTAINER_MAIN_TOOL_BAR);
}
public Object getComponent()
{
- return this;
- }
+ if (label == null)
+ {
+ label
+ = new JLabel(
+ new ImageIcon(
+ ImageLoader.getImage(ImageLoader.MORE_BUTTON)),
+ JLabel.CENTER);
- public String getConstraints()
- {
- return null;
- }
+ label.setVerticalTextPosition(SwingConstants.BOTTOM);
+ label.setHorizontalTextPosition(SwingConstants.CENTER);
- public Container getContainer()
- {
- return Container.CONTAINER_MAIN_TOOL_BAR;
+ label.setToolTipText(
+ GuiActivator.getResources().getI18NString("service.gui.MORE"));
+
+ label.addFocusListener(this);
+ label.addMouseListener(this);
+ }
+ return label;
}
public String getName()
{
- return this.getText();
+ return "";
}
public void setMouseOver(boolean isMouseOver)
{
- this.isMouseOver = isMouseOver;
- this.repaint();
- }
-
- public void setCurrentContact(Contact contact)
- {
- }
-
- public void setCurrentContact(MetaContact metaContact)
- {
- }
-
- public void setCurrentContactGroup(MetaContactGroup metaGroup)
- {
+ if (label != null)
+ label.repaint();
}
public void mouseClicked(MouseEvent e)
@@ -105,15 +86,20 @@ public class MoreButton
public void mousePressed(MouseEvent e)
{
- requestFocus();
+ if (label != null)
+ return;
+
+ label.requestFocus();
+ if (menu == null)
+ menu = createMenu();
if (!menu.isVisible())
{
- Point locationOnScreen = getLocationOnScreen();
+ Point locationOnScreen = label.getLocationOnScreen();
menu.setLocation(
locationOnScreen.x,
- locationOnScreen.y + getHeight());
+ locationOnScreen.y + label.getHeight());
menu.setVisible(true);
}
@@ -125,23 +111,14 @@ public class MoreButton
{
}
- /**
- * Specifies the position of this component in the container, where it
- * will be added.
- * @return 0 to indicate the first position in the container.
- */
- public int getPositionIndex()
- {
- return -1;
- }
-
public void focusGained(FocusEvent arg0)
{
}
public void focusLost(FocusEvent arg0)
{
- menu.setVisible(false);
+ if (menu != null)
+ menu.setVisible(false);
}
public void addMenuItem(final JComponent c)
@@ -171,13 +148,17 @@ public class MoreButton
l.mouseReleased(mouseEvent);
l.mouseClicked(mouseEvent);
}
-
- menu.setVisible(false);
+
+ if (menu != null)
+ menu.setVisible(false);
}
});
- this.menu.add(item);
- this.menuItemsTable.put(name, item);
+ if (menu == null)
+ menu = createMenu();
+ menu.add(item);
+
+ menuItemsTable.put(name, item);
}
}
@@ -188,7 +169,8 @@ public class MoreButton
if (item != null)
{
- this.menu.remove(item);
+ if (menu != null)
+ menu.remove(item);
menuItemsTable.remove(name);
}
}
@@ -203,8 +185,8 @@ public class MoreButton
return menuItemsTable.containsKey(name);
}
- public boolean isNativeComponent()
+ private JPopupMenu createMenu()
{
- return false;
+ return new JPopupMenu();
}
-} \ No newline at end of file
+}
diff --git a/src/net/java/sip/communicator/plugin/branding/AboutWindowPluginComponent.java b/src/net/java/sip/communicator/plugin/branding/AboutWindowPluginComponent.java
index e9be610..0825402 100644
--- a/src/net/java/sip/communicator/plugin/branding/AboutWindowPluginComponent.java
+++ b/src/net/java/sip/communicator/plugin/branding/AboutWindowPluginComponent.java
@@ -10,12 +10,10 @@ import java.awt.event.*;
import javax.swing.*;
-import net.java.sip.communicator.service.contactlist.*;
import net.java.sip.communicator.service.gui.*;
-import net.java.sip.communicator.service.protocol.*;
public class AboutWindowPluginComponent
- implements PluginComponent
+ extends AbstractPluginComponent
{
/**
@@ -27,45 +25,36 @@ public class AboutWindowPluginComponent
AboutWindow.showAboutWindow();
}
- private final JMenuItem aboutMenuItem;
+ private JMenuItem aboutMenuItem;
- private final Container container;
-
- public AboutWindowPluginComponent(Container c)
+ public AboutWindowPluginComponent(Container container)
{
- this.container = c;
-
- aboutMenuItem = new JMenuItem(getName());
- aboutMenuItem
- .setMnemonic(
- BrandingActivator
- .getResources()
- .getI18nMnemonic("plugin.branding.ABOUT_MENU_ENTRY"));
-
- aboutMenuItem.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- AboutWindowPluginComponent.actionPerformed();
- }
- });
+ super(container);
}
public Object getComponent()
{
+ if (aboutMenuItem == null)
+ {
+ aboutMenuItem = new JMenuItem(getName());
+ aboutMenuItem
+ .setMnemonic(
+ BrandingActivator
+ .getResources()
+ .getI18nMnemonic(
+ "plugin.branding.ABOUT_MENU_ENTRY"));
+
+ aboutMenuItem.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ AboutWindowPluginComponent.actionPerformed();
+ }
+ });
+ }
return aboutMenuItem;
}
- public String getConstraints()
- {
- return null;
- }
-
- public Container getContainer()
- {
- return this.container;
- }
-
public String getName()
{
return
@@ -73,26 +62,4 @@ public class AboutWindowPluginComponent
.getResources()
.getI18NString("plugin.branding.ABOUT_MENU_ENTRY");
}
-
- public void setCurrentContact(Contact contact)
- {
- }
-
- public void setCurrentContact(MetaContact metaContact)
- {
- }
-
- public void setCurrentContactGroup(MetaContactGroup metaGroup)
- {
- }
-
- public int getPositionIndex()
- {
- return -1;
- }
-
- public boolean isNativeComponent()
- {
- return false;
- }
}
diff --git a/src/net/java/sip/communicator/plugin/callhistoryform/ExtendedCallHistorySearchItem.java b/src/net/java/sip/communicator/plugin/callhistoryform/ExtendedCallHistorySearchItem.java
index 0d3e28a..a708a5f 100644
--- a/src/net/java/sip/communicator/plugin/callhistoryform/ExtendedCallHistorySearchItem.java
+++ b/src/net/java/sip/communicator/plugin/callhistoryform/ExtendedCallHistorySearchItem.java
@@ -4,7 +4,6 @@
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
-
package net.java.sip.communicator.plugin.callhistoryform;
import java.awt.*;
@@ -12,10 +11,8 @@ import java.awt.event.*;
import javax.swing.*;
-import net.java.sip.communicator.service.contactlist.*;
import net.java.sip.communicator.service.gui.*;
import net.java.sip.communicator.service.gui.Container;
-import net.java.sip.communicator.service.protocol.*;
/**
* The <tt>ExtendedCallHistorySearchButton</tt> is the button that will be
@@ -25,10 +22,10 @@ import net.java.sip.communicator.service.protocol.*;
* @author Bourdon Maxime & Meyer Thomas
*/
public class ExtendedCallHistorySearchItem
- implements ActionListener,
- PluginComponent
+ extends AbstractPluginComponent
+ implements ActionListener
{
- private JMenuItem historyMenuItem
+ private final JMenuItem historyMenuItem
= new JMenuItem(ExtendedCallHistorySearchActivator.getResources()
.getI18NString("plugin.callhistoryform.TITLE"),
ExtendedCallHistorySearchActivator.getResources()
@@ -41,6 +38,8 @@ public class ExtendedCallHistorySearchItem
*/
public ExtendedCallHistorySearchItem()
{
+ super(Container.CONTAINER_TOOLS_MENU);
+
this.historyMenuItem.setMnemonic(
ExtendedCallHistorySearchActivator.getResources()
.getI18nMnemonic("plugin.callhistoryform.TITLE"));
@@ -55,11 +54,14 @@ public class ExtendedCallHistorySearchItem
if (callHistorySearchDialog == null)
{
callHistorySearchDialog = new ExtendedCallHistorySearchDialog();
- callHistorySearchDialog.setLocation(Toolkit.getDefaultToolkit()
- .getScreenSize().width
- / 2 - callHistorySearchDialog.getWidth() / 2, Toolkit
- .getDefaultToolkit().getScreenSize().height
- / 2 - callHistorySearchDialog.getHeight() / 2);
+
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ callHistorySearchDialog
+ .setLocation(
+ screenSize.width / 2
+ - callHistorySearchDialog.getWidth() / 2,
+ screenSize.height / 2
+ - callHistorySearchDialog.getHeight() / 2);
}
callHistorySearchDialog.loadHistoryCalls();
@@ -72,40 +74,8 @@ public class ExtendedCallHistorySearchItem
return historyMenuItem;
}
- public String getConstraints()
- {
- return null;
- }
-
- public Container getContainer()
- {
- return Container.CONTAINER_TOOLS_MENU;
- }
-
public String getName()
{
return historyMenuItem.getText();
}
-
- public void setCurrentContact(Contact contact)
- {
- }
-
- public void setCurrentContact(MetaContact metaContact)
- {
- }
-
- public void setCurrentContactGroup(MetaContactGroup metaGroup)
- {
- }
-
- public int getPositionIndex()
- {
- return -1;
- }
-
- public boolean isNativeComponent()
- {
- return false;
- }
}
diff --git a/src/net/java/sip/communicator/plugin/contactinfo/ContactInfoMenuItem.java b/src/net/java/sip/communicator/plugin/contactinfo/ContactInfoMenuItem.java
index 1b9ee22..6e0e4aa 100644
--- a/src/net/java/sip/communicator/plugin/contactinfo/ContactInfoMenuItem.java
+++ b/src/net/java/sip/communicator/plugin/contactinfo/ContactInfoMenuItem.java
@@ -1,10 +1,10 @@
-package net.java.sip.communicator.plugin.contactinfo;
/*
* 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.contactinfo;
import java.awt.*;
import java.awt.event.*;
@@ -14,15 +14,14 @@ import javax.swing.*;
import net.java.sip.communicator.service.contactlist.*;
import net.java.sip.communicator.service.gui.*;
import net.java.sip.communicator.service.gui.Container;
-import net.java.sip.communicator.service.protocol.*;
/**
*
* @author Adam Goldstein
*/
public class ContactInfoMenuItem
- implements PluginComponent,
- ActionListener
+ extends AbstractPluginComponent
+ implements ActionListener
{
private JMenuItem menuItem
= new JMenuItem(Resources.getString("service.gui.CONTACT_INFO"),
@@ -36,12 +35,11 @@ public class ContactInfoMenuItem
*/
public ContactInfoMenuItem()
{
+ super(Container.CONTAINER_CONTACT_RIGHT_BUTTON_MENU);
+
menuItem.addActionListener(this);
}
- public void setCurrentContact(Contact contact)
- {}
-
/**
* Sets the currently selected <tt>MetaContact</tt>.
* @param metaContact the currently selected meta contact
@@ -51,23 +49,17 @@ public class ContactInfoMenuItem
this.metaContact = metaContact;
}
- public void setCurrentContactGroup(MetaContactGroup metaGroup)
- {}
-
/**
* Initializes and shows the contact details dialog.
*/
public void actionPerformed(ActionEvent e)
{
ContactInfoDialog cinfoDialog = new ContactInfoDialog(metaContact);
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
cinfoDialog.setLocation(
- Toolkit.getDefaultToolkit().getScreenSize().width/2
- - cinfoDialog.getWidth()/2,
- Toolkit.getDefaultToolkit().getScreenSize().height/2
- - cinfoDialog.getHeight()/2
- );
-
+ screenSize.width/2 - cinfoDialog.getWidth()/2,
+ screenSize.height/2 - cinfoDialog.getHeight()/2);
cinfoDialog.setVisible(true);
}
@@ -76,28 +68,8 @@ public class ContactInfoMenuItem
return menuItem;
}
- public String getConstraints()
- {
- return null;
- }
-
- public Container getContainer()
- {
- return Container.CONTAINER_CONTACT_RIGHT_BUTTON_MENU;
- }
-
public String getName()
{
return menuItem.getText();
}
-
- public int getPositionIndex()
- {
- return -1;
- }
-
- public boolean isNativeComponent()
- {
- return false;
- }
-} \ No newline at end of file
+}
diff --git a/src/net/java/sip/communicator/plugin/exampleplugin/ExamplePluginMenuItem.java b/src/net/java/sip/communicator/plugin/exampleplugin/ExamplePluginMenuItem.java
index 3346226..85d105e 100644
--- a/src/net/java/sip/communicator/plugin/exampleplugin/ExamplePluginMenuItem.java
+++ b/src/net/java/sip/communicator/plugin/exampleplugin/ExamplePluginMenuItem.java
@@ -6,15 +6,14 @@
*/
package net.java.sip.communicator.plugin.exampleplugin;
-import java.awt.Toolkit;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
+import java.awt.*;
+import java.awt.event.*;
-import javax.swing.JMenuItem;
+import javax.swing.*;
import net.java.sip.communicator.service.contactlist.*;
import net.java.sip.communicator.service.gui.*;
-import net.java.sip.communicator.service.protocol.*;
+import net.java.sip.communicator.service.gui.Container;
/**
* The <tt>ExamplePluginMenuItem</tt> is a <tt>JMenuItem</tt> that implements
@@ -26,10 +25,11 @@ import net.java.sip.communicator.service.protocol.*;
* @author Yana Stamcheva
*/
public class ExamplePluginMenuItem
- extends JMenuItem
- implements PluginComponent,
- ActionListener
+ extends AbstractPluginComponent
+ implements ActionListener
{
+ private JMenuItem menuItem;
+
private MetaContact metaContact;
/**
@@ -37,94 +37,58 @@ public class ExamplePluginMenuItem
*/
public ExamplePluginMenuItem()
{
- super("Example plugin");
-
- this.addActionListener(this);
- }
-
- public void setCurrentContact(Contact contact)
- {}
-
- /**
- * Sets the current <tt>MetaContact</tt>. This in the case of the contact
- * right button menu container would be the underlying contact in the
- * contact list.
- *
- * @param metaContact the <tt>MetaContact</tt> to set.
- *
- * @see PluginComponent#setCurrentContact(MetaContact)
- */
- public void setCurrentContact(MetaContact metaContact)
- {
- this.metaContact = metaContact;
+ super(Container.CONTAINER_CONTACT_RIGHT_BUTTON_MENU);
}
/**
- * Sets the current <tt>MetaContactGroup</tt>.
- *
- * @see PluginComponent#setCurrentContactGroup(MetaContactGroup)
- */
- public void setCurrentContactGroup(MetaContactGroup metaGroup)
- {}
-
- /**
* Listens for events triggered by user clicks on this menu item. Opens
* the <tt>PluginDialog</tt>.
*/
public void actionPerformed(ActionEvent e)
{
PluginDialog pluginDialog = new PluginDialog(metaContact);
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
- pluginDialog.setLocation(
- Toolkit.getDefaultToolkit().getScreenSize().width/2
- - pluginDialog.getWidth()/2,
- Toolkit.getDefaultToolkit().getScreenSize().height/2
- - pluginDialog.getHeight()/2
- );
+ pluginDialog
+ .setLocation(
+ screenSize.width/2 - pluginDialog.getWidth()/2,
+ screenSize.height/2 - pluginDialog.getHeight()/2);
pluginDialog.setVisible(true);
}
- /**
- * No constraints to return.
- *
- * @see PluginComponent#getConstraints()
+ /*
+ * Implements PluginComponent#getComponent().
*/
- public String getConstraints()
+ public Object getComponent()
{
- return null;
+ if (menuItem == null)
+ {
+ menuItem = new JMenuItem(getName());
+ menuItem.addActionListener(this);
+ }
+ return menuItem;
}
- /**
- * Returns the container where we would like to add this menu item. In our
- * case this is the contact right button menu.
- *
- * @see PluginComponent#getContainer()
+ /*
+ * Implements PluginComponent#getName().
*/
- public Container getContainer()
+ public String getName()
{
- return Container.CONTAINER_CONTACT_RIGHT_BUTTON_MENU;
+ return "Example plugin";
}
/**
- * Returns -1 as a position index, to indicate that the order in which this
- * menu item will be added in the parent container is not important.
+ * Sets the current <tt>MetaContact</tt>. This in the case of the contact
+ * right button menu container would be the underlying contact in the
+ * contact list.
*
- * @see PluginComponent#getPositionIndex()
- */
- public int getPositionIndex()
- {
- return -1;
- }
-
- /**
- * Returns <code>false</code> to indicate that this is not a native
- * component.
+ * @param metaContact the <tt>MetaContact</tt> to set.
*
- * @see PluginComponent#isNativeComponent()
+ * @see PluginComponent#setCurrentContact(MetaContact)
*/
- public boolean isNativeComponent()
+ public void setCurrentContact(MetaContact metaContact)
{
- return false;
+ this.metaContact = metaContact;
}
}
diff --git a/src/net/java/sip/communicator/plugin/otr/OtrMetaContactButton.java b/src/net/java/sip/communicator/plugin/otr/OtrMetaContactButton.java
index 4ba5fff..17cdf79 100644
--- a/src/net/java/sip/communicator/plugin/otr/OtrMetaContactButton.java
+++ b/src/net/java/sip/communicator/plugin/otr/OtrMetaContactButton.java
@@ -14,30 +14,24 @@ import javax.imageio.*;
import net.java.otr4j.*;
import net.java.otr4j.session.*;
import net.java.sip.communicator.service.contactlist.*;
-import net.java.sip.communicator.service.gui.Container;
import net.java.sip.communicator.service.gui.*;
+import net.java.sip.communicator.service.gui.Container;
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.util.swing.*;
/**
- *
* @author George Politis
- *
*/
-@SuppressWarnings("serial")
public class OtrMetaContactButton
- extends SIPCommButton
- implements PluginComponent
+ extends AbstractPluginComponent
{
+ private SIPCommButton button;
- private Container container;
+ private Contact contact;
public OtrMetaContactButton(Container container)
{
- super(null, null);
- this.setEnabled(false);
- this.setPreferredSize(new Dimension(25, 25));
- this.container = container;
+ super(container);
OtrActivator.scOtrEngine.addListener(new ScOtrEngineListener()
{
@@ -79,58 +73,68 @@ public class OtrMetaContactButton
setStatus(OtrActivator.scOtrEngine
.getSessionStatus(contact));
}
-
}
});
+ }
- this.addActionListener(new ActionListener()
+ /**
+ * Gets the <code>SIPCommButton</code> which is the component of this
+ * plugin. If the button doesn't exist, it's created.
+ *
+ * @return the <code>SIPCommButton</code> which is the component of this
+ * plugin
+ */
+ private SIPCommButton getButton()
+ {
+ if (button == null)
{
- public void actionPerformed(ActionEvent e)
- {
- if (contact == null)
- return;
+ button = new SIPCommButton(null, null);
+ button.setEnabled(false);
+ button.setPreferredSize(new Dimension(25, 25));
- switch (OtrActivator.scOtrEngine.getSessionStatus(contact))
+ button.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent e)
{
- case ENCRYPTED:
- case FINISHED:
- // Default action for finished and encrypted sessions is end
- // session.
- OtrActivator.scOtrEngine.endSession(contact);
- break;
- case PLAINTEXT:
- // Default action for finished and plaintext sessions is
- // start session.
- OtrActivator.scOtrEngine.startSession(contact);
- break;
+ if (contact == null)
+ return;
+
+ switch (OtrActivator.scOtrEngine.getSessionStatus(contact))
+ {
+ case ENCRYPTED:
+ case FINISHED:
+ // Default action for finished and encrypted sessions is
+ // end session.
+ OtrActivator.scOtrEngine.endSession(contact);
+ break;
+ case PLAINTEXT:
+ // Default action for finished and plaintext sessions is
+ // start session.
+ OtrActivator.scOtrEngine.startSession(contact);
+ break;
+ }
}
- }
- });
+ });
+ }
+ return button;
}
+ /*
+ * Implements PluginComponent#getComponent(). Returns the SIPCommButton
+ * which is the component of this plugin creating it first if it doesn't
+ * exist.
+ */
public Object getComponent()
{
- return this;
+ return getButton();
}
- public String getConstraints()
+ /*
+ * Implements PluginComponent#getName().
+ */
+ public String getName()
{
- return null;
- }
-
- public Container getContainer()
- {
- return this.container;
- }
-
- public int getPositionIndex()
- {
- return -1;
- }
-
- public boolean isNativeComponent()
- {
- return false;
+ return "";
}
public void setCurrentContact(Contact contact)
@@ -142,21 +146,12 @@ public class OtrMetaContactButton
public void setCurrentContact(MetaContact metaContact)
{
- contact = metaContact.getDefaultContact();
- this.setStatus(OtrActivator.scOtrEngine.getSessionStatus(contact));
- this.setPolicy(OtrActivator.scOtrEngine.getContactPolicy(contact));
+ setCurrentContact(metaContact.getDefaultContact());
}
private void setPolicy(OtrPolicy contactPolicy)
{
- this.setEnabled(contactPolicy.getEnableManual());
- }
-
- private Contact contact;
-
- public void setCurrentContactGroup(MetaContactGroup metaGroup)
- {
-
+ getButton().setEnabled(contactPolicy.getEnableManual());
}
private void setStatus(SessionStatus status)
@@ -164,46 +159,35 @@ public class OtrMetaContactButton
if (contact == null)
return;
+ String urlKey;
switch (status)
{
case ENCRYPTED:
- try
- {
- this
- .setImage(ImageIO
- .read(OtrActivator.resourceService
- .getImageURL((OtrActivator.scOtrKeyManager
- .isVerified(contact)) ? "plugin.otr.ENCRYPTED_ICON_22x22"
- : "plugin.otr.ENCRYPTED_UNVERIFIED_ICON_22x22")));
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
+ urlKey
+ = OtrActivator.scOtrKeyManager.isVerified(contact)
+ ? "plugin.otr.ENCRYPTED_ICON_22x22"
+ : "plugin.otr.ENCRYPTED_UNVERIFIED_ICON_22x22";
break;
case FINISHED:
- try
- {
- this.setImage(ImageIO.read(OtrActivator.resourceService
- .getImageURL("plugin.otr.FINISHED_ICON_22x22")));
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
+ urlKey = "plugin.otr.FINISHED_ICON_22x22";
break;
case PLAINTEXT:
- try
- {
- this.setImage(ImageIO.read(OtrActivator.resourceService
- .getImageURL("plugin.otr.PLAINTEXT_ICON_22x22")));
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
+ urlKey = "plugin.otr.PLAINTEXT_ICON_22x22";
break;
+ default:
+ return;
}
- }
+ try
+ {
+ getButton()
+ .setImage(
+ ImageIO.read(
+ OtrActivator.resourceService.getImageURL(urlKey)));
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
}
diff --git a/src/net/java/sip/communicator/plugin/otr/OtrMetaContactMenu.java b/src/net/java/sip/communicator/plugin/otr/OtrMetaContactMenu.java
index ad5ed9f..7c4b87a 100644
--- a/src/net/java/sip/communicator/plugin/otr/OtrMetaContactMenu.java
+++ b/src/net/java/sip/communicator/plugin/otr/OtrMetaContactMenu.java
@@ -5,7 +5,7 @@
*/
package net.java.sip.communicator.plugin.otr;
-import java.awt.Component; /* Explicit import required */
+import java.awt.*;
import java.awt.event.*;
import java.util.*;
@@ -13,83 +13,93 @@ import javax.swing.*;
import net.java.sip.communicator.service.contactlist.*;
import net.java.sip.communicator.service.gui.*;
+import net.java.sip.communicator.service.gui.Container;
import net.java.sip.communicator.service.protocol.*;
/**
- *
* @author George Politis
- *
*/
-@SuppressWarnings("serial")
public class OtrMetaContactMenu
- extends JMenu
- implements PluginComponent
+ extends AbstractPluginComponent
{
- private final Container container;
+ /**
+ * The <code>JMenu</code> which is the component of this plugin.
+ */
+ private JMenu menu;
public OtrMetaContactMenu(Container container)
{
-
- this.container = container;
- if (Container.CONTAINER_CONTACT_RIGHT_BUTTON_MENU.equals(container))
- {
- Icon icon =
- OtrActivator.resourceService
- .getImage("plugin.otr.MENU_ITEM_ICON_16x16");
-
- if (icon != null)
- this.setIcon(icon);
- }
-
- this.setText(OtrActivator.resourceService
- .getI18NString("plugin.otr.menu.TITLE"));
- }
-
- public String getConstraints()
- {
- return null;
+ super(container);
}
+ /*
+ * Implements PluginComponent#getComponent(). Returns the JMenu which is
+ * the component of this plugin creating it first if it doesn't exist.
+ */
public Component getComponent()
{
- return this;
+ return getMenu();
}
- public Container getContainer()
+ /**
+ * Gets the <code>JMenu</code> which is the component of this plugin. If it
+ * still doesn't exist, it's created.
+ *
+ * @return the <code>JMenu</code> which is the component of this plugin
+ */
+ private JMenu getMenu()
{
- return this.container;
- }
+ if (menu == null)
+ {
+ menu = new JMenu();
- public int getPositionIndex()
- {
- return -1;
- }
+ if (Container.CONTAINER_CONTACT_RIGHT_BUTTON_MENU
+ .equals(getContainer()))
+ {
+ Icon icon
+ = OtrActivator
+ .resourceService
+ .getImage("plugin.otr.MENU_ITEM_ICON_16x16");
- public boolean isNativeComponent()
- {
- return false;
+ if (icon != null)
+ menu.setIcon(icon);
+ }
+
+ menu.setText(getName());
+ }
+ return menu;
}
- public void setCurrentContact(Contact contact)
+ /*
+ * Implements PluginComponent#getName().
+ */
+ public String getName()
{
+ return
+ OtrActivator
+ .resourceService
+ .getI18NString("plugin.otr.menu.TITLE");
}
-
+
public void setCurrentContact(MetaContact metaContact)
{
// Rebuild menu.
- this.removeAll();
+ if (menu != null)
+ menu.removeAll();
if (metaContact == null)
return;
+ JMenu menu = getMenu();
+
Iterator<Contact> contacts = metaContact.getContacts();
while (contacts.hasNext())
{
- this.add(new OtrContactMenu(contacts.next()));
+ menu.add(new OtrContactMenu(contacts.next()));
}
- this.addSeparator();
+ menu.addSeparator();
JMenuItem whatsThis = new JMenuItem();
whatsThis.setIcon(OtrActivator.resourceService
@@ -103,10 +113,6 @@ public class OtrMetaContactMenu
OtrActivator.scOtrEngine.launchHelp();
}
});
- this.add(whatsThis);
- }
-
- public void setCurrentContactGroup(MetaContactGroup metaGroup)
- {
+ menu.add(whatsThis);
}
}
diff --git a/src/net/java/sip/communicator/plugin/profiler4j/SettingsWindowMenuEntry.java b/src/net/java/sip/communicator/plugin/profiler4j/SettingsWindowMenuEntry.java
index 083c936..9813138 100644
--- a/src/net/java/sip/communicator/plugin/profiler4j/SettingsWindowMenuEntry.java
+++ b/src/net/java/sip/communicator/plugin/profiler4j/SettingsWindowMenuEntry.java
@@ -6,26 +6,28 @@
*/
package net.java.sip.communicator.plugin.profiler4j;
-/**
- * Menu entry for the profiler plug-in
- *
- * @author Vladimir Skarupelov
- */
import java.awt.event.*;
+
import javax.swing.*;
-import net.java.sip.communicator.service.contactlist.*;
+
import net.java.sip.communicator.service.gui.*;
-import net.java.sip.communicator.service.protocol.*;
import net.sf.profiler4j.console.*;
-public class SettingsWindowMenuEntry implements PluginComponent
+/**
+ * Menu entry for the profiler plug-in
+ *
+ * @author Vladimir Skarupelov
+ */
+public class SettingsWindowMenuEntry
+ extends AbstractPluginComponent
{
private static final String PROFILER_NAME = "plugin.profiler.PLUGIN_NAME";
private JMenuItem settingsMenuEntry;
- private Container container;
public SettingsWindowMenuEntry(Container container)
{
+ super(container);
+
settingsMenuEntry = new JMenuItem(Resources.getString( PROFILER_NAME ));
settingsMenuEntry.addActionListener(new ActionListener()
{
@@ -44,7 +46,6 @@ public class SettingsWindowMenuEntry implements PluginComponent
f.setVisible(true);
}
});
- this.container = container;
}
public Object getComponent()
@@ -52,39 +53,8 @@ public class SettingsWindowMenuEntry implements PluginComponent
return settingsMenuEntry;
}
- public String getConstraints()
- {
- return null;
- }
-
- public Container getContainer()
- {
- return container;
- }
-
public String getName()
{
return Resources.getString( PROFILER_NAME );
}
-
- public void setCurrentContact(Contact contact)
- {
- }
-
- public void setCurrentContact(MetaContact metaContact)
- {
- }
-
- public void setCurrentContactGroup(MetaContactGroup metaGroup)
- {
- }
-
- public int getPositionIndex()
- {
- return -1;
- }
-
- public boolean isNativeComponent() {
- return false;
- }
}
diff --git a/src/net/java/sip/communicator/plugin/updatechecker/UpdateCheckActivator.java b/src/net/java/sip/communicator/plugin/updatechecker/UpdateCheckActivator.java
index 32d66ca..b329fc5 100644
--- a/src/net/java/sip/communicator/plugin/updatechecker/UpdateCheckActivator.java
+++ b/src/net/java/sip/communicator/plugin/updatechecker/UpdateCheckActivator.java
@@ -18,7 +18,6 @@ import javax.swing.*;
import net.java.sip.communicator.service.browserlauncher.*;
import net.java.sip.communicator.service.configuration.*;
-import net.java.sip.communicator.service.contactlist.*;
import net.java.sip.communicator.service.gui.*;
import net.java.sip.communicator.service.gui.Container;
import net.java.sip.communicator.service.protocol.*;
@@ -603,17 +602,15 @@ public class UpdateCheckActivator
* The menu entry under tools menu.
*/
private class UpdateMenuButtonComponent
- implements PluginComponent
+ extends AbstractPluginComponent
{
- private final Container container;
-
private final JMenuItem updateMenuItem
= new JMenuItem(getResources().
getI18NString("plugin.updatechecker.UPDATE_MENU_ENTRY"));
- UpdateMenuButtonComponent(Container c)
+ UpdateMenuButtonComponent(Container container)
{
- this.container = c;
+ super(container);
updateMenuItem.addActionListener(new ActionListener()
{
@@ -630,42 +627,10 @@ public class UpdateCheckActivator
"plugin.updatechecker.UPDATE_MENU_ENTRY");
}
- public Container getContainer()
- {
- return this.container;
- }
-
- public String getConstraints()
- {
- return null;
- }
-
- public int getPositionIndex()
- {
- return -1;
- }
-
public Object getComponent()
{
return updateMenuItem;
}
-
- public void setCurrentContact(Contact contact)
- {
- }
-
- public void setCurrentContact(MetaContact metaContact)
- {
- }
-
- public void setCurrentContactGroup(MetaContactGroup metaGroup)
- {
- }
-
- public boolean isNativeComponent()
- {
- return false;
- }
}
/**
diff --git a/src/net/java/sip/communicator/plugin/whiteboard/WhiteboardMenuItem.java b/src/net/java/sip/communicator/plugin/whiteboard/WhiteboardMenuItem.java
index 5a7b7cc..b45678b 100644
--- a/src/net/java/sip/communicator/plugin/whiteboard/WhiteboardMenuItem.java
+++ b/src/net/java/sip/communicator/plugin/whiteboard/WhiteboardMenuItem.java
@@ -21,10 +21,10 @@ import net.java.sip.communicator.service.protocol.*;
* @author Julien Waechter
*/
public class WhiteboardMenuItem
- implements PluginComponent,
- ActionListener
+ extends AbstractPluginComponent
+ implements ActionListener
{
- private JMenu whiteboardMenu
+ private final JMenu whiteboardMenu
= new JMenu(Resources.getString("plugin.whiteboard.MENU_ITEM"));
/**
@@ -35,7 +35,7 @@ public class WhiteboardMenuItem
/**
* The Whiteboard session manager
*/
- private WhiteboardSessionManager session;
+ private final WhiteboardSessionManager session;
/**
* WhiteboardMenuItem constructor.
@@ -44,6 +44,8 @@ public class WhiteboardMenuItem
*/
public WhiteboardMenuItem (WhiteboardSessionManager session)
{
+ super(Container.CONTAINER_CONTACT_RIGHT_BUTTON_MENU);
+
this.session = session;
this.whiteboardMenu.setIcon (
Resources.getImage ("plugin.whiteboard.MPEN_ICON"));
@@ -64,10 +66,10 @@ public class WhiteboardMenuItem
this.whiteboardMenu.removeAll();
- Iterator iter = metaContact.getContacts();
+ Iterator<Contact> iter = metaContact.getContacts();
while (iter.hasNext())
{
- Contact contact = (Contact)iter.next();
+ Contact contact = iter.next();
ProtocolProviderService pps = contact.getProtocolProvider();
OperationSetWhiteboarding opSetWb = (OperationSetWhiteboarding)
@@ -110,11 +112,11 @@ public class WhiteboardMenuItem
public void actionPerformed (ActionEvent e)
{
String itemID = ((JMenuItem)e.getSource()).getName();
- Iterator i = this.metaContact.getContacts();
+ Iterator<Contact> i = this.metaContact.getContacts();
while(i.hasNext())
{
- Contact contact = (Contact)i.next();
+ Contact contact = i.next();
String id = contact.getAddress()
+ contact.getProtocolProvider().getProtocolName();
@@ -124,16 +126,6 @@ public class WhiteboardMenuItem
}
}
- public String getConstraints()
- {
- return null;
- }
-
- public Container getContainer()
- {
- return Container.CONTAINER_CONTACT_RIGHT_BUTTON_MENU;
- }
-
public Object getComponent()
{
if(metaContact == null)
@@ -142,10 +134,10 @@ public class WhiteboardMenuItem
return whiteboardMenu;
}
- Iterator iter = metaContact.getContacts();
+ Iterator<Contact> iter = metaContact.getContacts();
while (iter.hasNext())
{
- Contact contact = (Contact)iter.next();
+ Contact contact = iter.next();
ProtocolProviderService pps = contact.getProtocolProvider();
OperationSetWhiteboarding opSetWb = (OperationSetWhiteboarding)
@@ -166,14 +158,4 @@ public class WhiteboardMenuItem
{
return whiteboardMenu.getText();
}
-
- public int getPositionIndex()
- {
- return -1;
- }
-
- public boolean isNativeComponent()
- {
- return false;
- }
} \ No newline at end of file
diff --git a/src/net/java/sip/communicator/service/gui/AbstractPluginComponent.java b/src/net/java/sip/communicator/service/gui/AbstractPluginComponent.java
new file mode 100644
index 0000000..ee9d65c
--- /dev/null
+++ b/src/net/java/sip/communicator/service/gui/AbstractPluginComponent.java
@@ -0,0 +1,93 @@
+/*
+ * 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.service.gui;
+
+import net.java.sip.communicator.service.contactlist.*;
+import net.java.sip.communicator.service.protocol.*;
+
+/**
+ * Provides an abstract base implementation of <code>PluginComponent</code> in
+ * order to take case of the implementation boilerplate and let implementers
+ * focus on the specifics of their plugin.
+ *
+ * @author Lubomir Marinov
+ */
+public abstract class AbstractPluginComponent
+ implements PluginComponent
+{
+
+ /**
+ * The container in which the component of this plugin is to be added.
+ */
+ private final Container container;
+
+ /**
+ * Initializes a new <code>AbstractPluginComponent</code> which is to be
+ * added to a specific <code>Container</code>.
+ *
+ * @param container
+ * the container in which the component of the new plugin is to
+ * be added
+ */
+ protected AbstractPluginComponent(Container container)
+ {
+ this.container = container;
+ }
+
+ /*
+ * Implements PluginComponent#getConstraints().
+ */
+ public String getConstraints()
+ {
+ return null;
+ }
+
+ /*
+ * Implements PluginComponent#getContainer().
+ */
+ public Container getContainer()
+ {
+ return container;
+ }
+
+ /*
+ * Implements PluginComponent#getPositionIndex().
+ */
+ public int getPositionIndex()
+ {
+ return -1;
+ }
+
+ /*
+ * Implements PluginComponent#isNativeComponent().
+ */
+ public boolean isNativeComponent()
+ {
+ return false;
+ }
+
+ /*
+ * Implements PluginComponent#setCurrentContact(Contact).
+ */
+ public void setCurrentContact(Contact contact)
+ {
+ }
+
+ /*
+ * Implements PluginComponent#setCurrentContact(MetaContact).
+ */
+ public void setCurrentContact(MetaContact metaContact)
+ {
+ }
+
+ /*
+ * Implements PluginComponent#setCurrentContactGroup(MetaContactGroup).
+ */
+ public void setCurrentContactGroup(MetaContactGroup metaGroup)
+ {
+ }
+}