private void addToGroup(String groupName, IContributionItem item,
			boolean append) {
		int i;
		Iterator items = contributions.iterator();
		for (i = 0; items.hasNext(); i++) {
			IContributionItem o = (IContributionItem) items.next();
			if (o.isGroupMarker()) {
				String id = o.getId();
				if (id != null && id.equalsIgnoreCase(groupName)) {
					i++;
					if (append) {
						for (; items.hasNext(); i++) {
							IContributionItem ci = (IContributionItem) items
									.next();
							if (ci.isGroupMarker()) {
								break;
							}
						}
					}
					if (allowItem(item)) {
						contributions.add(i, item);
						itemAdded(item);
					}
					return;
				}
			}
		}
		throw new IllegalArgumentException("Group not found: " + groupName);//$NON-NLS-1$
	}