private void addRowToTable( Vector<String> vec ) {
		int size = this.getRowCount();
		
		if (size == 0) {
			( (DefaultTableModel) this.getModel() ).addRow( vec );
			return;
		}
		
		int start = 0;
		int mid = size/2;
		
		// Mini binary search to determine start position.
		// Just splits table into quarters for now, will implement something better later.
		if ( compareTableRows( vec, mid ) > 0 ) {
			if ( compareTableRows( vec, ( size - mid )/2 ) > 0 ) {
				start = ( size - mid )/2;
			} else {
				start = mid;
			}
		} else {
			if ( compareTableRows( vec, mid/2 ) > 0 ) {
				start = mid/2;
			}
		}
		
		boolean inserted = false;
		for (int i = start; i < size; ++i) {
			if ( compareTableRows( vec, i ) < 0) {
				( (DefaultTableModel) this.getModel() ).insertRow( i, vec );
				inserted = true;
				break;
			}
		}
		
		if (!inserted) {
			( (DefaultTableModel) this.getModel() ).addRow( vec );
		}
	}