package page.example;

import java.io.File;
import java.util.Map;
import java.util.Properties;

import org.wikiwebserver.handler.http.interfaces.*;
import page.config.SiteTemplatedPage;


public class ViewProperties extends SiteTemplatedPage implements HTTPResponder {
    
    private String resourcePath = "/templates/default/props/";
	
    public void generate() {
        
        setTitle("System Properties - WikiWebServer.org");
        addResourceRoot(resourcePath);
        addCSSLink("props.css");

        append("<h1>System Properties</h1><br/>" +
               prettyMap(System.getProperties()));
        
    }
    
    private String prettyMap(Properties map) {
        StringBuilder p = new StringBuilder();
        for (Map.Entry<Object, Object> entry : map.entrySet()) {
            p.append("<div class='info'>" +
                     "<div class='key'>" + entry.getKey() + "</div><pre class='value'>");
            String value = (String) entry.getValue();
            String[] items = value.split(File.pathSeparator);
            // Quick fix for wrong separation of http:// on linux
            if (value.contains("http://") && "http://".contains(File.pathSeparator)) {
                p.append(value);
            }
            else {
                for (int i=0; i<items.length; i++) {
                    p.append(items[i]);
                    if (items.length > 1 && i < items.length-1) {
                        p.append(File.pathSeparator);
                    }
                    p.append("\r\n");
                }
            }
            p.append("</pre></div>");
        }
        return p.toString();
    }    
}
