示例#1
0
 public static String distribute(Collection<TabStopString> units) {
   TreeSet<TabStopString> sortedUnits = new TreeSet<>();
   sortedUnits.addAll(units);
   StringBuffer sb = new StringBuffer();
   int used = 0;
   for (TabStopString t : sortedUnits) {
     used = sb.codePointCount(0, sb.length());
     if (used > t.getPosition()) {
       throw new RuntimeException("Cannot layout cell.");
     }
     int amount = t.getPosition() - used;
     switch (t.getAlignment()) {
       case LEFT:
         // ok
         break;
       case CENTER:
         amount -= t.length() / 2;
         break;
       case RIGHT:
         amount -= t.length();
         break;
     }
     sb.append(StringTools.fill(t.getPattern(), amount));
     sb.append(t.getText());
   }
   return sb.toString();
 }