public void destroy() {
		if (homeAction == null)
			return; // already destroyed
		if (Modeler.isMac()) {
			enabledComponentsWhenRemote.clear();
			enabledComponentsWhenLocal.clear();
		}
		actionMap.clear();
		deadLinks.clear();
		popupMenu.destroy();
		PopupMenuListener[] pml = comboBox.getPopupMenuListeners();
		if (pml != null) {
			for (PopupMenuListener l : pml)
				comboBox.removePopupMenuListener(l);
		}
		MouseListener[] ml = getTextField().getMouseListeners();
		if (ml != null) {
			for (MouseListener l : ml)
				getTextField().removeMouseListener(l);
		}
		ActionListener[] al = getTextField().getActionListeners();
		if (al != null) {
			for (ActionListener l : al)
				getTextField().removeActionListener(l);
		}
		comboBox.setBorder(null);
		actionListener = null;
		itemListener = null;
		backAction = null;
		forwardAction = null;
		homeAction = null;
		navigable = null;
		popupMenu = null;
	}