final GroupDataEntry[] entries = EditGroupsUndoEntry.buildGroupData(reportDefinition);
final ArrayList<GroupDataEntry> list = new ArrayList<GroupDataEntry>(entries.length);
int index = -1;
for (int i = 0; i < entries.length; i++)
{
final GroupDataEntry entry = entries[i];
list.add(entry);
if (designerGroupElement.getObjectID() == entry.getInstanceID())
{
index = i;
}
}
if (index == -1 || index == (list.size() - 1))
{
return null;
}
final GroupDataEntry o = list.get(index);
list.remove(index);
list.add(0, o);
final GroupDataEntry[] changedEntries = list.toArray(new GroupDataEntry[list.size()]);
EditGroupsUndoEntry.applyGroupData(reportDefinition, changedEntries);