+ boolean firstField = true;
+ // Write header row if required
+ if (_headerRowCheckbox.isSelected())
+ {
+ buffer = new StringBuffer();
+ for (int f=0; f<numFields; f++)
+ {
+ info = _model.getFieldInfo(f);
+ if (info.isSelected())
+ {
+ if (!firstField)
+ {
+ // output field separator
+ buffer.append(delimiter);
+ }
+ field = info.getField();
+ buffer.append(field.getName());
+ firstField = false;
+ }
+ }
+ writer.write(buffer.toString());
+ writer.write(lineSeparator);
+ }
+
+ // Loop over points outputting each in turn to buffer
+ int numPoints = _track.getNumPoints();