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 XmlEditorKit extends StyledEditorKit {
private static final long serialVersionUID = 1L;
final ViewFactory xmlViewFactory;
public XmlEditorKit() {
xmlViewFactory = new ViewFactory() {
@Override
public View create(Element element) {
HashMap<Pattern, Color> patternToColor = new HashMap<Pattern, Color>();
String TAG_PATTERN = "(</?[\\w:]*\\s?>?)";
String TAG_END_PATTERN = "(/>)";
String ATTR_KEY_PATTERN = "\\s([\\w:]*)\\=";
String ATTR_VALUE_PATTERN = "[a-z-]*\\=(\"[^\"]*\")";
patternToColor.put(Pattern.compile(TAG_PATTERN), new Color(63, 127, 127));
patternToColor.put(Pattern.compile(TAG_END_PATTERN), new Color(63, 127, 127));
patternToColor.put(Pattern.compile(ATTR_KEY_PATTERN), new Color(127, 0, 127));
patternToColor.put(Pattern.compile(ATTR_VALUE_PATTERN), new Color(42, 0, 255));
return new HighlightView(element, patternToColor);
}
};
}
@Override
public ViewFactory getViewFactory() {
return xmlViewFactory;
}
@Override
public String getContentType() {
return "application/xml";
}
}