public int getMaximumStringLength()
  {
    int maxLength = 1;

    // Check values
    for (int y = 0; y < dataSource.getMaxStartNode(); y++)
    {
      for (int x = 0; x < dataSource.getMaxTargetNode(); x++)
      {
        String displayValue = getStringValue(x, y);
        if(displayValue.length() > maxLength)
          maxLength = displayValue.length();
      }
    }

    // Check positions
    if(dataSource.getMaxStartNode().toString().length() > maxLength)
      maxLength = dataSource.getMaxStartNode().toString().length();
    if(dataSource.getMaxTargetNode().toString().length() > maxLength)
      maxLength = dataSource.getMaxTargetNode().toString().length();

    // Add one to ensure there is at least one space between entries
    maxLength++;

    return maxLength;
  }