private void updateResiduesComputedMenu(String group3List, int[] group3Counts, boolean popup) {
		if (group3List == null || group3Counts == null)
			return;
		JMenu menu = popup ? residuesComputedMenu2 : residuesComputedMenu1;
		if (menu == null)
			return;
		for (int i = 0; i < menu.getItemCount(); i++) {
			proteinGroup.remove(menu.getItem(i));
		}
		menu.removeAll();
		for (int i = 1, n = JmolConstants.GROUPID_AMINO_MAX; i < n; ++i) {
			final String residueName = JmolConstants.predefinedGroup3Names[i];
			if (group3List.indexOf("p>" + residueName) != -1) {
				int m = group3Counts[group3List.indexOf(residueName) / 6];
				JMenuItem mi = new JRadioButtonMenuItem(residueName + " (" + m + ")");
				mi.addItemListener(new ItemListener() {
					public void itemStateChanged(ItemEvent e) {
						if (e.getStateChange() == ItemEvent.SELECTED) {
							jmolContainer.jmol.viewer.runScriptImmediatelyWithoutThread("select " + residueName);
						}
					}
				});
				menu.add(mi);
				proteinGroup.add(mi);
			}
		}
	}