/**
* This file is licensed under the University of Illinois/NCSA Open Source License. See LICENSE.TXT for details.
*/
package edu.illinois.codingspectator.branding;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.widgets.Display;
/**
* @author Mohsen Vakilian
*
*/
public class BundleStatusLineUpdater {
private final BundleStatusLineManager bundleStatusLineManager= new BundleStatusLineManager();
private final IPropertyChangeListener propertyChangeListener= new IPropertyChangeListener() {
public void propertyChange(final PropertyChangeEvent event) {
if (PreferenceKeys.SHOW_IN_STATUS_LINE_KEY.equals(event.getProperty())) {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
updateStatusLine((Boolean)event.getNewValue());
};
});
}
}
};
public void start() {
Activator.getDefault().getPreferenceStore().addPropertyChangeListener(propertyChangeListener);
}
public void stop() {
Activator.getDefault().getPreferenceStore().removePropertyChangeListener(propertyChangeListener);
}
private void updateStatusLine(boolean showInStatusLine) {
if (showInStatusLine) {
bundleStatusLineManager.addLogoToStatusLineIfNecessary();
} else {
bundleStatusLineManager.removeLogoFromStatusLine();
}
}
public void updateStatusLine() {
boolean showInStatusLine= Activator.getDefault().getPreferenceStore().getBoolean(PreferenceKeys.SHOW_IN_STATUS_LINE_KEY);
updateStatusLine(showInStatusLine);
}
}