package org.wikiwebserver.distribute.se.gui;

import java.net.MalformedURLException;
import java.net.URL;

public class JAdvancedConfigPanel extends JConfigPanel {

    private static final long serialVersionUID = 1L;

    public void updateConfigDisplay() {	
		addConfigOption("nodePassword", true, true, generalValidator);
        // addConfigOption("nodeId", false, generalValidator); 	
		addConfigOption("taskAssignmentUrl", true, false, urlValidator);   
		addConfigOption("taskCommunicationUrl", true, false, urlValidator);		
		addConfigOption("taskClassServerUrl", true, false, urlValidator);	
	}	
    
    private final static SimpleValidator generalValidator = new SimpleValidator() {
        public String validate(String s) {
            if (s.length() == 0) {
                return "Please supply a value for this field.";
            }
            if (s.length() > 256) {
                return "Too many characters.";  
            }            
            if (s.contains("<") || s.contains(">")) {
                return "The characters < and > are not permitted.";                
            }
            
            return null;
        }
    };   
    
    private final static SimpleValidator urlValidator = new SimpleValidator() {
        public String validate(String s) {
            try {
                new URL(s);
                return null;             
            } catch (MalformedURLException ex) {
                return "Invalid URL";                   
            }
        }
    };    
}

