/**
* Logback-beagle: The logback Console Plugin for Eclipse
* Copyright (C) 2006-2012, QOS.ch. All rights reserved.
*
* This program and the accompanying materials are licensed under
* either the terms of the Eclipse Public License v1.0 as published by
* the Eclipse Foundation.
*/
package ch.qos.logback.beagle.menu;
import static ch.qos.logback.beagle.util.ResourceUtil.COPY_CLIPBAORD_IMG_KEY;
import static ch.qos.logback.beagle.util.ResourceUtil.EXPAND_CALLERS_IMG_KEY;
import static ch.qos.logback.beagle.util.ResourceUtil.JUMP_IMG_KEY;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import ch.qos.logback.beagle.util.ResourceUtil;
import ch.qos.logback.beagle.visual.ClassicTISBuffer;
public class GridMenuBuilder {
final public static String JUMP_TO_CALLER_MENU_TEXT = "Jump to caller";
final public static String EXPLAND_CALLERS_MENU_TEXT = "Expand caller data";
final public static String COLLAPSE_CALLERS_MENU_TEXT = "Collapse caller data";
final public static String COPY_TO_CLIPBOARD_MENU_TEXT = "Copy to clipboard";
final public static int JUMP_TO_CALLER_MENU_INDEX = 0;
final public static int SHOW_CALLERS_MENU_INDEX = 1;
final public static int COPY_TO_CLIPBOARD_MENU_INDEX = 2;
static public Menu buildMenu(ClassicTISBuffer classicTISBuffer) {
Menu menu = new Menu(classicTISBuffer.getGrid());
MenuItem jumpToCaller = new MenuItem(menu, SWT.PUSH);
jumpToCaller.setText(GridMenuBuilder.JUMP_TO_CALLER_MENU_TEXT);
jumpToCaller.setImage(ResourceUtil.getImage(JUMP_IMG_KEY));
MenuItem expandCallersMenuItem = new MenuItem(menu, SWT.PUSH);
expandCallersMenuItem.setText(GridMenuBuilder.EXPLAND_CALLERS_MENU_TEXT);
expandCallersMenuItem.setImage(ResourceUtil
.getImage(EXPAND_CALLERS_IMG_KEY));
MenuItem copyToClipboardMenuItem = new MenuItem(menu, SWT.PUSH);
copyToClipboardMenuItem.setText(GridMenuBuilder.COPY_TO_CLIPBOARD_MENU_TEXT);
copyToClipboardMenuItem.setImage(ResourceUtil.getImage(COPY_CLIPBAORD_IMG_KEY));
if (menu != null) {
menu.addMenuListener(new DynamicMenuEnabler(classicTISBuffer));
}
return menu;
}
static public void addOnMenuSelectionAction(Menu menu,
ClassicTISBuffer classicTISBuffer) {
OnMenuSelectionAction onMenuSelectionAction = new OnMenuSelectionAction(
classicTISBuffer);
for (MenuItem menuItem : menu.getItems()) {
menuItem.addSelectionListener(onMenuSelectionAction);
}
}
}