package net.certware.core.ui.dialog;
import org.eclipse.core.resources.IMarker;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
/**
* Generic utilities for producing marker detail dialog form sections.
* @author mrb
* @since 1.0
*/
public abstract class MarkerDetailsSection implements IMarkerDetailsSection
{
abstract public void build(ScrolledForm form, FormToolkit formToolkit, IMarker marker);
protected String replaceHtmlEntities(String s) {
s = s.replaceAll("&", "&");
s = s.replaceAll("<", "<");
s = s.replaceAll(">", ">");
return s;
}
private String createItem(String s, String prefix, String imageKey) {
StringBuffer buffer = new StringBuffer();
String[] strings = s.split("\n");
for ( int i = 0; i < strings.length; i++ ) {
buffer.append("<li bindent=\"20\" style=\"image\"").append(' ');
buffer.append("value=").append('"').append(imageKey).append('"').append('>');
buffer.append(prefix).append(replaceHtmlEntities(strings[i]));
buffer.append("</li>");
}
return buffer.toString();
}
protected String listItem(IMarker marker, String prefix, String key, String imageKey) {
String s = marker.getAttribute(key,ATTRIBUTE_DEFAULT);
return createItem(s,prefix,imageKey);
}
protected String listItem(String s, String prefix, String key, String imageKey) {
return createItem(s,prefix,imageKey);
}
protected String listItemInt(IMarker marker, String prefix, String key, String imageKey) {
int i = marker.getAttribute(key,0);
return createItem(Integer.toString(i),prefix,imageKey);
}
}