package com.vmware.vcloud.nclient.ui;
import java.awt.Color;
import java.util.HashMap;
import java.util.regex.Pattern;
import javax.swing.text.Element;
import javax.swing.text.StyledEditorKit;
import javax.swing.text.View;
import javax.swing.text.ViewFactory;
public class JsonEditorKit extends StyledEditorKit {
private static final long serialVersionUID = 1L;
final ViewFactory jsonViewFactory;
public JsonEditorKit() {
jsonViewFactory = new ViewFactory() {
@Override
public View create(Element element) {
HashMap<Pattern, Color> patternToColor = new HashMap<Pattern, Color>();
String KEY_PATTERN = "\\s+(\"[^\"]*\") : ";
String VALUE_PATTERN = " : (\"[^\"]*\")";
String TRUE_PATTERN = " : (true)";
String FALSE_PATTERN = " : (false)";
patternToColor.put(Pattern.compile(KEY_PATTERN), new Color(127, 0, 127));
patternToColor.put(Pattern.compile(VALUE_PATTERN), new Color(42, 0, 255));
patternToColor.put(Pattern.compile(TRUE_PATTERN), new Color(42, 0, 255));
patternToColor.put(Pattern.compile(FALSE_PATTERN), new Color(42, 0, 255));
return new HighlightView(element, patternToColor);
}
};
}
@Override
public ViewFactory getViewFactory() {
return jsonViewFactory;
}
@Override
public String getContentType() {
return "application/json";
}
}