package hextstar; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; /** * Created by Bart on 9/26/2015. * Originally from https://github.com/Velocity-/Hexstar */ public class DataRow { private StringProperty address, text; private StringProperty[] data = new StringProperty[16]; public DataRow(int addr, byte[] b, int bytesRead) { address = new SimpleStringProperty(String.format("%08X", addr)); text = new SimpleStringProperty(); StringBuilder sb = new StringBuilder(bytesRead); for (int i = 0; i < b.length; i++) { String stringByteValue = ""; // display the byte as an unsigned number, like erlang binaries if(i < bytesRead) stringByteValue = Integer.toString((b[i]& 0xFF)); data[i] = new SimpleStringProperty(stringByteValue); if(b[i] == 10) sb.append("\\n"); else if(b[i] >= 32 && b[i] < 127) sb.append((char)b[i]); else sb.append("."); } text.set(sb.toString()); } public StringProperty addressProperty() { return address; } public StringProperty textProperty() { return text; } public StringProperty b0Property() { return data[0]; } public StringProperty b1Property() { return data[1]; } public StringProperty b2Property() { return data[2]; } public StringProperty b3Property() { return data[3]; } public StringProperty b4Property() { return data[4]; } public StringProperty b5Property() { return data[5]; } public StringProperty b6Property() { return data[6]; } public StringProperty b7Property() { return data[7]; } public StringProperty b8Property() { return data[8]; } public StringProperty b9Property() { return data[9]; } public StringProperty bAProperty() { return data[0xA]; } public StringProperty bBProperty() { return data[0xB]; } public StringProperty bCProperty() { return data[0xC]; } public StringProperty bDProperty() { return data[0xD]; } public StringProperty bEProperty() { return data[0xE]; } public StringProperty bFProperty() { return data[0xF]; } }