Fixes updating status message menu instances.

cusax-fix
Damian Minkov 12 years ago
parent fcae9527e6
commit 393aca093f

@ -295,7 +295,10 @@ public void dispose()
titleArea = null;
if(statusMessageMenu != null)
{
statusMessageMenu.removePropertyChangeListener(this);
statusMessageMenu.dispose();
}
statusMessageMenu = null;
}
}

@ -45,9 +45,9 @@ public class NewStatusMessageDialog
DesktopUtilActivator.getResources().getI18NString("service.gui.CANCEL"));
/**
* The presence operation set through which we change the status message.
* The current status message.
*/
private final OperationSetPresence presenceOpSet;
private final String currentStatusMessage;
/**
* Message panel.
@ -67,15 +67,14 @@ public class NewStatusMessageDialog
/**
* Creates an instance of <tt>NewStatusMessageDialog</tt>.
*
* @param protocolProvider the <tt>ProtocolProviderService</tt>.
* @param currentStatusMessage the current status message.
*/
public NewStatusMessageDialog (ProtocolProviderService protocolProvider,
public NewStatusMessageDialog (String currentStatusMessage,
StatusMessageMenu parentMenu)
{
super(false);
presenceOpSet
= protocolProvider.getOperationSet(OperationSetPresence.class);
this.currentStatusMessage = currentStatusMessage;
this.parentMenu = parentMenu;
this.init();
@ -130,7 +129,7 @@ private void init()
dataPanel.add(messageLabel, BorderLayout.WEST);
messageTextField.setText(presenceOpSet.getCurrentStatusMessage());
messageTextField.setText(currentStatusMessage);
dataPanel.add(messageTextField, BorderLayout.CENTER);
infoTitleLabel.setHorizontalAlignment(JLabel.CENTER);

@ -99,8 +99,9 @@ public class StatusMessageMenu
/**
* All property change listeners registered so far.
* Static so we can communicate between status message menus.
*/
private java.util.List<PropertyChangeListener>
private static java.util.List<PropertyChangeListener>
propertyChangeListeners = new ArrayList<PropertyChangeListener>();
/**
@ -326,8 +327,12 @@ public void actionPerformed(Object menuItem)
if (menuItem.equals(newMessageItem))
{
NewStatusMessageDialog dialog
= new NewStatusMessageDialog(protocolProvider, this);
OperationSetPresence presenceOpSet
= protocolProvider.getOperationSet(OperationSetPresence.class);
NewStatusMessageDialog dialog = new NewStatusMessageDialog(
presenceOpSet == null ?
"" : presenceOpSet.getCurrentStatusMessage(), this);
dialog.setLocation(
Toolkit.getDefaultToolkit().getScreenSize().width/2
@ -931,9 +936,9 @@ else if(o instanceof CheckboxMenuItem)
*/
public void dispose()
{
removePropertyChangeListener(this);
protocolProvider = null;
propertyChangeListeners.clear();
propertyChangeListeners = null;
noMessageItem = null;
newMessageItem = null;

Loading…
Cancel
Save