public void autoResizeComponents() {
		if (getDocument().getLength() <= 0)
			return;
		boolean changed = saveReminder == null ? false : saveReminder.isChanged();
		boolean b = false;
		List<Embeddable> list = getEmbeddedComponents();
		if (list != null && !list.isEmpty()) {
			AutoResizable t;
			int w, h;
			boolean b2;
			synchronized (list) {
				for (Embeddable e : list) {
					if (e instanceof IconWrapper) {
						IconWrapper wrapper = (IconWrapper) e;
						Icon icon = wrapper.getIcon();
						if (icon instanceof LineIcon) {
							LineIcon li = (LineIcon) icon;
							float width = li.getWidth();
							if (width <= 1.05f) {
								Dimension dim = new Dimension(icon.getIconWidth(), icon.getIconHeight());
								wrapper.setPreferredSize(dim);
								wrapper.validate();
								b = true;
							}
						}
					} else if (e instanceof AutoResizable) {
						t = (AutoResizable) e;
						if (!(t instanceof JComponent))
							continue;
						JComponent c = (JComponent) t;
						b2 = false;
						if (t.isWidthRelative()) {
							w = (int) (t.getWidthRatio() * getWidth());
							b = true;
							b2 = true;
						} else {
							w = c.getWidth() == 0 ? c.getPreferredSize().width : c.getWidth();
						}
						if (t.isHeightRelative()) {
							h = (int) (t.getHeightRatio() * getHeight());
							b = true;
							b2 = true;
						} else {
							h = c.getHeight() == 0 ? c.getPreferredSize().height : c.getHeight();
						}
						if (b2) {
							Dimension d = new Dimension(w, h);
							c.setMaximumSize(d);
							c.setPreferredSize(d);
							c.validate();
						}
					}
				}
			}
		}
		if (b)
			settleComponentSize();
		if (saveReminder != null)
			saveReminder.setChanged(changed);
	}