void (boolean preserveSelection, int hideOffset, boolean refreshUi) { if (!myOffsets.truncatePrefix()) { myArranger.prefixTruncated(this, hideOffset); return; } myPrefixChangeListeners.forEach((listener -> listener.beforeTruncate())); if (preserveSelection) { markSelectionTouched(); } myPresentableArranger.prefixChanged(this); requestResize(); if (refreshUi && myPresentableArranger == myArranger) { refreshUi(false, true); ensureSelectionVisible(true); } myPrefixChangeListeners.forEach((listener -> listener.afterTruncate())); }