public void loadImage() {
		if (path == null)
			return;
		if (getWidth() <= 0 || getHeight() <= 0)
			return; // not ready yet
		ImageIcon tmpIcon = new ImageIcon(path);
		if (getLockRatio()) {
			float rx = (float) tmpIcon.getIconWidth() / (float) (getWidth() - 10);
			float ry = (float) tmpIcon.getIconHeight() / (float) (getHeight() - 10);
			if (rx > 1.f || ry > 1.f) {
				if (rx > ry) {
					thumbnail = new ImageIcon(tmpIcon.getImage().getScaledInstance(getWidth() - 10, -1, Image.SCALE_DEFAULT));
				} else {
					thumbnail = new ImageIcon(tmpIcon.getImage().getScaledInstance(-1, getHeight() - 10, Image.SCALE_DEFAULT));
				}
			} else {
				thumbnail = tmpIcon;
			}
		} else {
			thumbnail = new ImageIcon(tmpIcon.getImage().getScaledInstance(getWidth(), getHeight(), Image.SCALE_DEFAULT));
		}
	}