package au.gov.ga.earthsci.notification.ui.handlers; import java.util.HashMap; import java.util.Map; import org.eclipse.e4.core.di.annotations.Execute; import org.eclipse.e4.ui.model.application.ui.menu.MMenuItem; import au.gov.ga.earthsci.notification.ui.NotificationPart; import au.gov.ga.earthsci.notification.ui.NotificationPart.Grouping; /** * A handler that receives group-by events from the {@link NotificationPart} * menu * * @author James Navin (james.navin@ga.gov.au) */ public class GroupByHandler { public static final String ID = "au.gov.ga.earthsci.notification.part.groupby"; //$NON-NLS-1$ public static final String GROUP_BY_NONE_MENU_ID = "au.gov.ga.earthsci.notification.notifications.viewmenu.group.none"; //$NON-NLS-1$ public static final String GROUP_BY_LEVEL_MENU_ID = "au.gov.ga.earthsci.notification.notifications.viewmenu.group.level"; //$NON-NLS-1$ public static final String GROUP_BY_CATEGORY_MENU_ID = "au.gov.ga.earthsci.notification.notifications.viewmenu.group.category"; //$NON-NLS-1$ private static final Map<String, Grouping> idToGrouping = new HashMap<String, Grouping>(); static { idToGrouping.put(GROUP_BY_NONE_MENU_ID, Grouping.NONE); idToGrouping.put(GROUP_BY_LEVEL_MENU_ID, Grouping.LEVEL); idToGrouping.put(GROUP_BY_CATEGORY_MENU_ID, Grouping.CATEGORY); } public static Grouping getGroupingForMenuItemId(String id) { if (!idToGrouping.containsKey(id)) { return Grouping.NONE; } return idToGrouping.get(id); } @Execute public void execute(MMenuItem item, NotificationPart part) { if (!item.isSelected()) { return; } part.setGrouping(getGroupingForMenuItemId(item.getElementId())); } }