// --------------------------------------------------- // University of California Santa Barbara // Media Arts and Technology // MAT 259 | Visualizing Information | Winter 2011 // // Patrick Rudolph // Project 1 | Frequency Mapping // // Topic Data Structure // --------------------------------------------------- public class Topic { // Variables private String name; private String url; private PImage img; private int[] data; private int dataMin = 0; private int dataMax = 0; // Constructors public Topic() { } public Topic(String name, String url, PImage img, int wkMax, int wkInterval) { this.name = name; this.url = url; this.img = img; this.data = new int[wkMax+5]; // add 5 as a buffer to prevent array out of boundary loadData(wkInterval); } // Functionality private void loadData(int wkInterval) { // load txt file with number of checkouts per day String[] temp = loadStrings(url); // convert to checkouts per week and save to data[] // also determine dataMax during the convertion process int w = 0; int tempMax = 0; for(int d = 0; d < temp.length; d++) { data[w] += Integer.parseInt(temp[d]); // fetch data if( data[w] > tempMax) tempMax = data[w]; // determine data maximum if( (d+1) % (7*wkInterval) == 0 ) w++; // convert from days to weeks } dataMax = tempMax; } // Get and Set public String getName() { return name; } public String getUrl() { return url; } public PImage getImg() { return img; } public int getDataMin() { return dataMin; } public int getDataMax() { return dataMax; } public int getData(int wk) { return data[wk]; } }