// Zinc > Based on the Panther_005 project. package us.deans.zinc; import org.apache.log4j.*; import java.io.FileNotFoundException; import java.io.IOException; import java.io.FileOutputStream; import java.io.FileInputStream; import java.util.Properties; public class ZnMVC { // initialize static final objects. static final Properties props = new Properties(); static final Logger logger = Logger.getLogger("ZincLoader"); static final String userDir = System.getProperty("user.dir"); static final String log4jConfigFile = userDir + "\\config\\log4j_panther.properties"; static final String zincConfigFile = userDir + "\\config\\zinc.properties"; public static void main(String[] args) { //BasicConfigurator.configure(); PropertyConfigurator.configure(userDir + "\\config\\log4j_panther.properties"); logger.info("Initializing Program (User Directory='" + userDir + ")"); // initialize application properties initProperties(); // initialize MVC pattern ZnModel model = new ZnModel(props); ZnSwingView view = new ZnSwingView(model); new ZnController(model, view, props); // terminate logger.info("Program Complete...\n\n"); } private static void initProperties(){ try { logger.info("Reading properties file: " + zincConfigFile); FileInputStream reader = new FileInputStream(zincConfigFile); props.load(reader); reader.close(); } catch (FileNotFoundException e) { installProperties(); } catch (IOException e) { e.printStackTrace(); } } private static void installProperties(){ //This code for initializing the properties file... for simplicity sake, once this is done, the program will read-only. logger.debug("building new properties file: " + zincConfigFile); props.setProperty("uri01", "http://seeker.dice.com/jobsearch/servlet/JobSearch?op=301&N=0&Ntk=JobSearchRanking&Ntt=Java&Ntx=mode+matchall&Nty=1&Nf=p_Geocode|GCLT%2035.21271862,-80.83673404%2048.28032|p_PostedAge|LTEQ%201"); props.setProperty("uri02", "http://seeker.dice.com/jobsearch/servlet/JobSearch?op=301&N=0&Ntk=JobSearchRanking&Ntt=Java&Ntx=mode+matchall&Nty=1&Nf=p_Geocode|GCLT%2034.04280427,-118.2965074%2048.28032|p_PostedAge|LTEQ%201"); props.setProperty("met01", "Charlotte Metro"); props.setProperty("met02", "Los Angeles Metro"); props.setProperty("termFile", "termFile.xml"); try { props.store(System.out, "Application Parameters"); FileOutputStream writer = new FileOutputStream(zincConfigFile); props.store(writer, "Application Parameters"); writer.close(); } catch (IOException e) { e.printStackTrace(); } } }