package context.core.entity; import context.core.util.JavaIO; import java.io.File; import java.io.IOException; import java.util.List; import javafx.beans.property.StringProperty; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import org.openide.util.Exceptions; /** * * @author Kiumars Soltani * */ public class TabularData extends CorpusData { private ObservableList<String> headers; private ObservableList<List<String>> rows; /** * * @param name * @param path */ public TabularData(StringProperty name, StringProperty path) { super(name, path); headers = FXCollections.observableArrayList(); rows = FXCollections.observableArrayList(); } /** * * @return */ public ObservableList<String> getHeaders() { return headers; } /** * * @param headers */ public void setHeaders(ObservableList<String> headers) { this.headers = headers; } /** * * @return */ public ObservableList<List<String>> getRows() { return rows; } /** * * @return */ public String loadTableData() { try { headers = FXCollections.observableArrayList(); rows = FXCollections.observableArrayList(); System.out.println("path in laodTableData=" + this.getPath().get()); String result = JavaIO.readFile(new File(this.getPath().get())); System.out.println("lenght of results:" + result.length()); String[] lines = result.split("\\r?\\n"); System.out.println("lines#:" + lines.length); for (int i = 0; i < lines.length; i++) { if (i == 0) { headers = parseLine(lines[i]); } else { rows.add(parseLine(lines[i])); } } return result; } catch (IOException ex) { Exceptions.printStackTrace(ex); } return null; } private ObservableList<String> parseLine(String line) { String[] split = line.split(","); ObservableList<String> list = FXCollections.observableArrayList(); for (int i = 0; i < split.length; i++) { list.add(split[i]); } return list; } @Override public boolean equals(Object obj) { return super.equals(obj); } }