private void refresh(boolean force) {
			Rectangle visibleRect = getVisibleRect();
			if (!force && (editUseEnabled || visibleRect.equals(visibleArea))) {
				return; // no change to bitAttributes required
			}
			visibleArea = visibleRect;

			int leftChop = getLeftByteChop();
			int rightChop = getRightByteChop();

			if (!force && (leftChop == leftChopBytes && rightChop == rightChopBytes)) {
				return; // no change to bitAttributes required
			}

			leftChopBytes = leftChop;
			rightChopBytes = rightChop;
			allocationBytes = allocationByteSize - leftChopBytes - rightChopBytes;

			allocateBits();
			layoutBits();
		}
Refresh the computed bitAttributes.  When editUseEnabled is false
the computed bitAttributes will correspond to the visible portion
of the component.  This method does not handle changes to
{@link #allocationByteSize} which require a new {@link BitFieldAllocation}
instance.
@param force if true a refresh will be forced, otherwise a refresh
will only occur for non-edit use when the visible portion of the component
has changed (e.g., scrolled).
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/BitFieldPlacementComponent.java