Компонент Vaadin MultiFileUpload - жестко запрограммированы единицы измерения размера файла? - PullRequest
0 голосов
/ 12 ноября 2018

Я хотел бы изменить стандартные компоненты Vaadin 7 MultiFileUpload с MiB на MB и т. Д. При отображении хода загрузки файла.

Я обнаружил, что есть булева переменная ' si ', относящаяся к формату единиц размера файла - в методе, показывающем ход загрузки - который можно использовать, чтобы решить, какой формат меня интересует .

Существует метод ' getHumanReadableByteCount (long bytes, boolean si) ', устанавливающий единицы в соответствии со значением ' si ' .: UploadUtil.java github

 int exp = (int) (Math.log(bytes) / Math.log(unit));
    String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp - 1) + (si ? "" : "i");

    return String.format("%.1f %sB", bytes / Math.pow(unit, exp), pre);

Но в компоненте, который я использую, int ' setProgess ' метод - ' getHumanReadableByteCount (...) ' запускается с ' false ' как ' si ', и, в результате, в формате единиц МБ. Чтобы избавиться от 'i' в единицах, я должен вызвать метод с помощью ' true '. UploadStateLayout.java github

textualProgress.setValue(UploadUtil.getHumanReadableByteCount(bytesReceived, false) + " / "
+ UploadUtil.getHumanReadableByteCount(contentLength, false));

Можно ли использовать другой компонент или использовать true для формата единиц измерения si , который я не могу найти? Я что-то упустил?

Заранее спасибо!

...