private void updateDimension() {
		Rectangle2D newSize = getBounds();
		if(totalSize == null
			|| newSize.getWidth() != totalSize.getWidth()
			|| newSize.getHeight() != totalSize.getHeight()
		) {
			totalSize = newSize;
			Insets insets = getInsets();
			interiorSize = new Dimension(
				(int)totalSize.getWidth() - insets.left - insets.right
				,(int)totalSize.getHeight() - insets.top - insets.bottom
			);
			Dimension barSize = new Dimension(interiorSize.width, (int)((float)interiorSize.height * BAR_RATIO));
			colorBar.setSize(barSize);
			colorBar.setLocation(insets.left, insets.top);
			Dimension contentSize = new Dimension(interiorSize.width, interiorSize.height - barSize.height);
			contentLabel.setSize(contentSize);
			contentLabel.setLocation(insets.left, insets.top + barSize.height);
			contentLabel.setFont(findBestFontSize(FONT, contentLabel.getText()));
		}
	}