package org.openlca.app.cloud.ui.compare.json.viewer.label;
import org.eclipse.jface.resource.FontDescriptor;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.jface.viewers.StyledString.Styler;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.TextStyle;
import org.eclipse.swt.widgets.Display;
import org.openlca.app.util.Colors;
class ReadOnlyStyle {
private Font font;
private Styler styler = new Styler() {
@Override
public void applyStyles(TextStyle textStyle) {
textStyle.foreground = Colors.gray();
textStyle.font = getFont();
}
};
private Font getFont() {
if (font != null)
return font;
FontDescriptor desc = FontDescriptor.createFrom(
Display.getCurrent().getSystemFont()).setStyle(SWT.ITALIC);
font = desc.createFont(Display.getCurrent());
return font;
}
void applyTo(StyledString styled) {
String text = styled.getString();
styled.setStyle(0, text.length(), styler);
}
void dispose() {
if (font != null)
font.dispose();
}
}