package org.projectusus.core.statistics; import java.text.MessageFormat; public class CockpitExtensionPref { public static final boolean ON_BY_DEFAULT = true; private final String className; private final String label; private boolean on; public CockpitExtensionPref( String className, String label ) { this( className, label, ON_BY_DEFAULT ); } public CockpitExtensionPref( String className, boolean on ) { this( className, null, on ); } protected CockpitExtensionPref( String className, String label, boolean on ) { super(); this.className = className; this.label = label; this.on = on; } public String getLabel() { return label; } public String getClassName() { return className; } public boolean isOn() { return on; } @Override public String toString() { return MessageFormat.format( "{0} ({1}) [{2}]", label, className, onOrOff() ); //$NON-NLS-1$ } private String onOrOff() { return on ? "on" : "off"; //$NON-NLS-1$ //$NON-NLS-2$ } public void setOn( boolean checked ) { on = checked; } public void resetOnToDefault() { setOn( ON_BY_DEFAULT ); } public static void restoreDefaults( Iterable<CockpitExtensionPref> extensions ) { for( CockpitExtensionPref pref : extensions ) { pref.resetOnToDefault(); } } @Override public boolean equals( Object obj ) { if( obj instanceof CockpitExtensionPref ) { CockpitExtensionPref other = (CockpitExtensionPref)obj; return this.className.equals( other.className ); } return false; } @Override public int hashCode() { return className.hashCode(); } }