package org.xmind.ui.internal.svgsupport;
import org.eclipse.jface.resource.DeviceResourceDescriptor;
import org.eclipse.swt.graphics.Device;
import org.eclipse.swt.graphics.Font;
/**
*
* @author Enki Xiong
*
*/
public class FontResourceDescriptor extends DeviceResourceDescriptor {
private String fontFamily;
private int fontSize = 0;
private int style = 0;
public FontResourceDescriptor(String fontFamily, int fontSize, int style) {
this.fontFamily = fontFamily;
this.fontSize = fontSize;
this.style = style;
}
@Override
public Font createResource(Device device) {
return new Font(device, fontFamily, fontSize, style);
}
@Override
public void destroyResource(Object obj) {
if (obj instanceof Font) {
Font font = (Font) obj;
if (!font.isDisposed())
font.dispose();
}
}
@Override
public boolean equals(Object obj) {
if (obj instanceof FontResourceDescriptor) {
FontResourceDescriptor desc = (FontResourceDescriptor) obj;
if (this == desc)
return true;
if ((fontFamily == desc.fontFamily
|| fontFamily.equals(desc.fontFamily))
&& fontSize == desc.fontSize && style == desc.style)
return true;
}
return false;
}
@Override
public int hashCode() {
int result = 17;
result = 31 * result + fontSize;
result = 31 * result + style;
result = 31 * result + fontFamily.hashCode();
return result;
}
@Override
public String toString() {
String str = "Font( "; //$NON-NLS-1$
str += "font family:" + fontFamily; //$NON-NLS-1$
str += ", font size:" + fontSize + ")"; //$NON-NLS-1$ //$NON-NLS-2$
return str;
}
public String getFontFamily() {
return fontFamily;
}
public int getFontSize() {
return fontSize;
}
public int getStyle() {
return style;
}
}