Example usage for org.eclipse.jface.action Action setText

List of usage examples for org.eclipse.jface.action Action setText

Introduction

In this page you can find the example usage for org.eclipse.jface.action Action setText.

Prototype

@Override
    public void setText(String text) 

Source Link

Usage

From source file:org.dawnsci.webintro.views.WelcomePart.java

License:Open Source License

/**
 * Adds a home button to the toolbar/*from ww  w .j  ava2s.co m*/
 * @param toolBar
 */
private void setupToolbarButtons(IToolBarManager toolBar) {
    Action homeButton = new Action() {
        @Override
        public void run() {
            webEngine.load(homeLocation);
        }
    };
    homeButton.setText("Home");
    homeButton.setImageDescriptor(Activator.getImageDescriptor("icons/home.png"));
    toolBar.add(homeButton);
}

From source file:org.deved.antlride.internal.ui.editor.AntlrEditor.java

License:Open Source License

@Override
public void createActions() {
    super.createActions();
    Action action = new PropertyDialogAction(getEditorSite(), new AntlrStructuredSelectionProvider());// new
    // AddBreakpointsActionDelegate(this);
    action.setText("ANTLR Breakpoints");//$NON-NLS-1$
    setAction("AddBreakpointsAction", action); //$NON-NLS-1$
    markAsStateDependentAction("AddBreakpointsAction", true); //$NON-NLS-1$

    // action = new ToggleCommentAction(DLTKEditorMessages
    //            .getBundleForConstructedKeys(), "ToggleComment.", this); //$NON-NLS-1$
    // action/*  w w w . ja v a  2s.  c  o  m*/
    // .setActionDefinitionId(IScriptEditorActionDefinitionIds.TOGGLE_COMMENT);
    //      setAction("ToggleComment", action); //$NON-NLS-1$
    // ((ToggleCommentAction) action).configure(getSourceViewer(),
    // getSourceViewerConfiguration());
    //      markAsStateDependentAction("ToggleComment", true); //$NON-NLS-1$
}

From source file:org.eclipse.babel.tapiji.tools.core.ui.views.messagesview.MessagesView.java

License:Open Source License

/*** ACTIONS ***/
private void makeVisibleLocalesActions() {
    if (viewState.getSelectedProjectName() == null) {
        return;//from   w  w  w  .  ja  v a2  s . c  om
    }

    visibleLocaleActions = new ArrayList<Action>();
    Set<Locale> locales = ResourceBundleManager.getManager(viewState.getSelectedProjectName())
            .getProvidedLocales(viewState.getSelectedBundleId());
    List<Locale> visibleLocales = treeViewer.getVisibleLocales();
    for (final Locale locale : locales) {
        Action langAction = new Action() {

            @Override
            public void run() {
                super.run();
                List<Locale> visibleL = treeViewer.getVisibleLocales();
                if (this.isChecked()) {
                    if (!visibleL.contains(locale)) {
                        visibleL.add(locale);
                    }
                } else {
                    visibleL.remove(locale);
                }
                viewState.setVisibleLocales(visibleL);
                redrawTreeViewer();
            }

        };
        if (locale != null && locale.getDisplayName().trim().length() > 0) {
            langAction.setText(locale.getDisplayName(Locale.US));
        } else {
            langAction.setText("Default");
        }
        langAction.setChecked(visibleLocales.contains(locale));
        visibleLocaleActions.add(langAction);
    }
}

From source file:org.eclipse.birt.report.designer.internal.ui.editors.schematic.providers.SchematicContextMenuProvider.java

License:Open Source License

public void buildContextMenu(IMenuManager menuManager) {
    if (proxy != null) {
        proxy.menuAboutToShow(menuManager);
        proxy = null;/*from   w w w  .ja  v a 2s.c om*/
        return;
    }
    GEFActionConstants.addStandardActionGroups(menuManager);

    Object firstSelectedElement = getFirstElement();
    Object selectedElements = getSelectedElement();
    Object multiSelection = getMultiSelectedElement();

    boolean isExtended = false;
    if (firstSelectedElement instanceof IAdaptable) {
        if (((IAdaptable) firstSelectedElement)
                .getAdapter(DesignElementHandle.class) instanceof ExtendedItemHandle)
            isExtended = true;
    }

    if (selectedElements instanceof ReportDesignHandle) {
        createLayoutPrefMenu((ReportDesignHandle) selectedElements, menuManager, GEFActionConstants.GROUP_VIEW,
                ((ReportDesignHandle) selectedElements).getLayoutPreference());
    }

    // special for dealing with multi selected elements (items).
    if (isMutilSelection(multiSelection)) {
        menuManager.appendToGroup(GEFActionConstants.GROUP_UNDO, getAction(ActionFactory.UNDO.getId()));
        menuManager.appendToGroup(GEFActionConstants.GROUP_UNDO, getAction(ActionFactory.REDO.getId()));
        menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, new CutAction(selectedElements));
        menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, new CopyAction(selectedElements));
        menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, new PasteAction(selectedElements));
        menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, getAction(ActionFactory.DELETE.getId()));

        if (isRootElementHandleClass(multiSelection)) {
            Action action = new RefreshModuleHandleAction(selectedElements);
            menuManager.add(action);
            createInsertElementMenu(menuManager, GEFActionConstants.GROUP_EDIT);
            createThemeMenu(selectedElements, menuManager, GEFActionConstants.GROUP_REST);
            action = new ExportToLibraryAction(selectedElements);
            menuManager.add(action);
        }
        if (isListHandleCalss(multiSelection)) {
            IAction action = getAction(CreatePlaceHolderPartAction.ID);
            menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT, action);

        }
        createStyleMenu(menuManager, GEFActionConstants.GROUP_REST);
        if (Policy.TRACING_MENU_SHOW) {
            System.out.println("Menu(for Editor) >> Shows for multi-selcetion."); //$NON-NLS-1$
        }
    }

    // -----------------------------------------------------------------
    else if (firstSelectedElement instanceof DesignElementHandle || isExtended) {

        menuManager.appendToGroup(GEFActionConstants.GROUP_UNDO, getAction(ActionFactory.UNDO.getId()));
        menuManager.appendToGroup(GEFActionConstants.GROUP_UNDO, getAction(ActionFactory.REDO.getId()));
        menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, new CutAction(selectedElements));
        menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, new CopyAction(selectedElements));
        menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, new PasteAction(selectedElements));

        createStyleMenu(menuManager, GEFActionConstants.GROUP_REST);

        if (((IStructuredSelection) getSelection()).size() == 1) {
            Object element = ((IStructuredSelection) getSelection()).getFirstElement();

            if (element instanceof LabelEditPart || element instanceof ImageEditPart) {
                if (element instanceof DataEditPart) {
                    IAction action = getAction(ChangeDataColumnPartAction.ID);
                    menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT, action);
                }
                IAction action = getAction(GEFActionConstants.DIRECT_EDIT);
                action.setAccelerator(SWT.F2);
                if (element instanceof DataEditPart) {
                    action.setText(Messages.getString("SchematicContextMenuProvider.ActionText.editData")); //$NON-NLS-1$
                } else {
                    action.setText(Messages.getString("SchematicContextMenuProvider.ActionText.editLabel")); //$NON-NLS-1$
                }
                menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT, action);
                if (element instanceof ImageEditPart) {
                    // action = getAction( ResetImageSizeAction.ID );
                    // menuManager.appendToGroup(
                    // GEFActionConstants.GROUP_EDIT,
                    // action );

                    createImageMenu((ImageHandle) ((ImageEditPart) element).getModel(), menuManager,
                            GEFActionConstants.GROUP_EDIT);
                }

            }

            if (firstSelectedElement instanceof ReportItemHandle) {
                IAction action = getAction(CreatePlaceHolderPartAction.ID);
                menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT, action);

                // action = getAction( RevertToReportItemPartAction.ID );
                // menuManager.appendToGroup( GEFActionConstants.GROUP_EDIT,
                // action );

                // action = getAction( RevertToTemplatePartAction.ID );
                // menuManager.appendToGroup( GEFActionConstants.GROUP_EDIT,
                // action );
            }

            if (firstSelectedElement instanceof TemplateReportItemHandle) {
                IAction action = getAction(RevertToReportItemPartAction.ID);
                menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT, action);
            }
            // add for support multiple view
            Object[] objs = ElementAdapterManager.getAdapters(firstSelectedElement,
                    IReportItemViewProvider.class);
            if (objs != null && objs.length == 1) {
                IAction action = getAction(CreateChartAction.ID);
                menuManager.appendToGroup(GEFActionConstants.GROUP_VIEW, action);
            }
        }

        if (firstSelectedElement instanceof RowHandle) {
            if (getRowHandles().size() != 0) {
                MenuManager insertMenu = new MenuManager(INSERT_MENU_ITEM_TEXT);
                MenuManager rowMenu = new MenuManager(INSERT_ROW_MENU_ITEM_TEXT);
                rowMenu.add(getAction(InsertRowAboveAction.ID));
                rowMenu.add(getAction(InsertRowBelowAction.ID));

                RowHandle row = (RowHandle) getRowHandles().get(0);
                if (!(row.getContainer() instanceof GridHandle)) {
                    insertMenu.add(getAction(IncludeHeaderAction.ID));
                    insertMenu.add(getAction(IncludeDetailAction.ID));
                    insertMenu.add(getAction(IncludeFooterAction.ID));
                }
                insertMenu.add(rowMenu);
                menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT, insertMenu);
            }
            // delete row action.
            menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, getAction(DeleteRowAction.ID));
            menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT, getAction(MergeAction.ID));
            menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT, getAction(SplitAction.ID));
        } else if (firstSelectedElement instanceof ColumnHandle) {
            menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT,
                    new InsertPasteColumnAction(selectedElements));
            if (getColumnHandles().size() != 0) {
                MenuManager subMenu = new MenuManager(INSERT_MENU_ITEM_TEXT);
                subMenu.add(getAction(InsertColumnRightAction.ID));
                subMenu.add(getAction(InsertColumnLeftAction.ID));
                menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT, subMenu);
            }
            // delete column action.
            menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, getAction(DeleteColumnAction.ID));
            menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT, getAction(MergeAction.ID));
            menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT, getAction(SplitAction.ID));
        } else if (firstSelectedElement instanceof CellHandle) {
            createInsertElementMenu(menuManager, GEFActionConstants.GROUP_EDIT);
            menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT,
                    getAction(CopyCellContentsContextAction.ID));
            menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT, getAction(MergeAction.ID));
            menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT, getAction(SplitAction.ID));
            // delete action in cell
            menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, new DeleteAction(selectedElements));
        } else {
            // common delete action
            menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, getAction(ActionFactory.DELETE.getId()));
        }

        // add export action
        menuManager.appendToGroup(GEFActionConstants.GROUP_EDIT,
                getAction(ExportElementToLibraryPartAction.ID));

        if (Policy.TRACING_MENU_SHOW) {
            System.out.println("Menu(for Editor) >> Shows for " //$NON-NLS-1$
                    + ((DesignElementHandle) firstSelectedElement).getDefn().getDisplayName());
        }
    } else if (firstSelectedElement instanceof SlotHandle) {
        menuManager.appendToGroup(GEFActionConstants.GROUP_UNDO, getAction(ActionFactory.UNDO.getId()));
        menuManager.appendToGroup(GEFActionConstants.GROUP_UNDO, getAction(ActionFactory.REDO.getId()));
        menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, new CutAction(selectedElements));
        menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, new CopyAction(selectedElements));
        menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, new PasteAction(selectedElements));
        menuManager.appendToGroup(GEFActionConstants.GROUP_COPY, new DeleteAction(selectedElements));

        createInsertElementMenu(menuManager, GEFActionConstants.GROUP_EDIT);
        if (Policy.TRACING_MENU_SHOW) {
            System.out.println("Menu(for Editor) >> Shows for the slot " //$NON-NLS-1$
                    + ((SlotHandle) firstSelectedElement).getSlotID() + " of " //$NON-NLS-1$
                    + ((SlotHandle) firstSelectedElement).getElementHandle().getDefn().getDisplayName());
        }
    } else {
    }

    if (!getTableEditParts().isEmpty() || !getTableMultipleEditParts().isEmpty()) {
        if (firstSelectedElement instanceof TableHandle) {
            MenuManager insertMenu = new MenuManager(Messages.getString("TableBandProvider.action.text.row")); //$NON-NLS-1$
            insertMenu.add(getAction(IncludeHeaderAction.ID));
            insertMenu.add(getAction(IncludeDetailAction.ID));
            insertMenu.add(getAction(IncludeFooterAction.ID));
            menuManager.appendToGroup(GEFActionConstants.GROUP_ADD, insertMenu);
        }
        createInsertGroupMenu(menuManager, GEFActionConstants.GROUP_ADD);
        if (getTableEditParts().size() == 1 || getTableMultipleEditParts().size() == 1) {
            createDeleteGroupMenus(menuManager, GEFActionConstants.GROUP_ADD);
            createEditGroupMenu(menuManager, GEFActionConstants.GROUP_ADD);
            createInsertGroupHeaderFooter(menuManager, GEFActionConstants.GROUP_ADD);
            Separator separator = new Separator(EditBindingAction.ID);
            menuManager.add(separator);
            menuManager.appendToGroup(EditBindingAction.ID, getAction(EditBindingAction.ID));
        }
    }

    if (!getListEditParts().isEmpty()) {
        createInsertGroupMenu(menuManager, GEFActionConstants.GROUP_ADD);
        if (getListEditParts().size() == 1) {
            createDeleteGroupMenus(menuManager, GEFActionConstants.GROUP_ADD);
            createEditGroupMenu(menuManager, GEFActionConstants.GROUP_ADD);
            Separator separator = new Separator(EditBindingAction.ID);
            menuManager.add(separator);
            menuManager.appendToGroup(EditBindingAction.ID, getAction(EditBindingAction.ID));
        }
    }

    if (getElements().size() == 1 || isMutilSelection(multiSelection)) {
        if (firstSelectedElement instanceof DesignElementHandle) {
            String elementName = ((DesignElementHandle) firstSelectedElement).getDefn().getName();
            IMenuBuilder menuBuilder = ExtensionPointManager.getInstance().getMenuBuilder(elementName);
            if (menuBuilder != null) {
                menuBuilder.buildMenu(menuManager, getElements());
            }
        }

        Object[] menuAdapters = ElementAdapterManager.getAdapters(firstSelectedElement, IMenuListener.class);

        if (menuAdapters != null && menuAdapters.length > 0) {
            for (int i = 0; i < menuAdapters.length; i++) {
                if (menuAdapters[i] instanceof ISchematicMenuListener) {
                    ((ISchematicMenuListener) menuAdapters[i]).setActionRegistry(getActionRegistry());
                }
                ((IMenuListener) menuAdapters[i]).menuAboutToShow(menuManager);
            }
        }
    }
}

From source file:org.eclipse.birt.report.designer.internal.ui.editors.schematic.providers.SchematicContextMenuProvider.java

License:Open Source License

/**
 * Creats sub menu in the specified action group of the specified menu
 * manager./* w  ww .  ja v  a2s .c o  m*/
 * 
 * @param menuManager
 *            The menu manager contains the action group.
 * @param group_name
 *            The action group contains the sub menu.
 */
private void createEditGroupMenu(IMenuManager menuManager, String group_name) {
    // If select on Group, no need to provide cascade menu
    if (getFirstElement() instanceof RowHandle) {
        DesignElementHandle container = ((RowHandle) getFirstElement()).getContainer();
        if (container instanceof TableGroupHandle) {
            Action action = new EditGroupAction(null, (TableGroupHandle) container);
            action.setText(EDIT_GROUP_MENU_ITEM_TEXT);
            menuManager.appendToGroup(group_name, action);
            return;
        }
    }

    if (getFirstElement() instanceof SlotHandle) {
        DesignElementHandle container = ((SlotHandle) getFirstElement()).getElementHandle();
        if (container instanceof ListGroupHandle) {
            Action action = new EditGroupAction(null, (ListGroupHandle) container);
            action.setText(EDIT_GROUP_MENU_ITEM_TEXT);
            menuManager.appendToGroup(group_name, action);
            return;
        }
    }

    MenuManager subMenu = new MenuManager(EDIT_GROUP_MENU_ITEM_TEXT);
    ListingHandle parentHandle = null;

    if (!getTableEditParts().isEmpty())

    {
        parentHandle = (ListingHandle) ((TableEditPart) getTableEditParts().get(0)).getModel();
    } else if (!getTableMultipleEditParts().isEmpty()) {
        parentHandle = (ListingHandle) ((ReportElementEditPart) getTableMultipleEditParts().get(0)).getModel();

    } else if (!getListEditParts().isEmpty()) {
        parentHandle = (ListingHandle) ((ListEditPart) getListEditParts().get(0)).getModel();
    } else {
        return;
    }
    SlotHandle handle = parentHandle.getGroups();
    Iterator iter = handle.iterator();
    while (iter.hasNext()) {
        GroupHandle groupHandle = (GroupHandle) iter.next();
        subMenu.add(new EditGroupAction(null, groupHandle));
    }
    menuManager.appendToGroup(group_name, subMenu);
}

From source file:org.eclipse.birt.report.designer.internal.ui.editors.schematic.providers.SchematicContextMenuProvider.java

License:Open Source License

/**
 * Creats sub menu in the specified action group of the specified menu
 * manager./*from  ww w  .  j  a v  a 2  s.c om*/
 * 
 * @param menuManager
 *            The menu manager contains the action group.
 * @param group_name
 *            The action group contains the sub menu.
 */
private void createDeleteGroupMenus(IMenuManager menuManager, String group_name) {
    ReportElementEditPart editPart = null;
    // If select on Group, no need to provide cascade menu
    if (getFirstElement() instanceof RowHandle) {
        DesignElementHandle container = ((RowHandle) getFirstElement()).getContainer();
        if (container instanceof TableGroupHandle) {
            editPart = getTableEditPart();
            Action action = new DeleteGroupAction(editPart, (TableGroupHandle) container);
            action.setText(DELETE_GROUP_MENU_ITEM_TEXT);
            menuManager.appendToGroup(group_name, action);
            return;
        }
    }

    if (getFirstElement() instanceof SlotHandle) {
        DesignElementHandle container = ((SlotHandle) getFirstElement()).getElementHandle();
        if (container instanceof ListGroupHandle) {
            editPart = getListEditPart();
            Action action = new DeleteGroupAction(editPart, (ListGroupHandle) container);
            action.setText(DELETE_GROUP_MENU_ITEM_TEXT);
            menuManager.appendToGroup(group_name, action);
            return;
        }
    }

    MenuManager subMenu = new MenuManager(DELETE_GROUP_MENU_ITEM_TEXT);
    ListingHandle parentHandle = null;

    if (!getTableEditParts().isEmpty())

    {
        parentHandle = (ListingHandle) ((TableEditPart) getTableEditParts().get(0)).getModel();
        editPart = (TableEditPart) getTableEditParts().get(0);
    } else if (!getTableMultipleEditParts().isEmpty()) {
        parentHandle = (ListingHandle) ((ReportElementEditPart) getTableMultipleEditParts().get(0)).getModel();
        editPart = (ReportElementEditPart) getTableMultipleEditParts().get(0);
    } else if (!getListEditParts().isEmpty()) {
        parentHandle = (ListingHandle) ((ListEditPart) getListEditParts().get(0)).getModel();
        editPart = (ListEditPart) getListEditParts().get(0);
    } else {
        return;
    }

    SlotHandle handle = parentHandle.getGroups();
    Iterator iter = handle.iterator();
    while (iter.hasNext()) {
        GroupHandle groupHandle = (GroupHandle) iter.next();
        subMenu.add(new DeleteGroupAction(editPart, groupHandle));
    }

    menuManager.appendToGroup(group_name, subMenu);
}

From source file:org.eclipse.cdt.debug.ui.memory.floatingpoint.FPRendering.java

License:Open Source License

public void createMenus() {
    // Add the menu to each of the rendering panes

    Control[] renderingControls = this.fRendering.getRenderingPanes();

    for (int index = 0; index < renderingControls.length; index++)
        super.createPopupMenu(renderingControls[index]);

    super.createPopupMenu(this.fRendering);

    // Copy//w w  w .j ava 2 s  .  co m

    final Action copyAction = new CopyAction(this.fRendering);

    // Copy address

    final Action copyAddressAction = new Action(FPRenderingMessages.getString("FPRendering.COPY_ADDRESS")) //$NON-NLS-1$
    {
        @Override
        public void run() {
            Display.getDefault().asyncExec(new Runnable() {
                @Override
                public void run() {
                    FPRendering.this.fRendering.copyAddressToClipboard();
                }
            });
        }
    };

    // Reset to base address

    final Action gotoBaseAddressAction = new Action(
            FPRenderingMessages.getString("FPRendering.RESET_TO_BASE_ADDRESS")) //$NON-NLS-1$
    {
        @Override
        public void run() {
            Display.getDefault().asyncExec(new Runnable() {
                @Override
                public void run() {
                    FPRendering.this.fRendering.gotoAddress(FPRendering.this.fRendering.fBaseAddress);
                }
            });
        }
    };

    // Refresh

    final Action refreshAction = new Action(FPRenderingMessages.getString("FPRendering.REFRESH")) //$NON-NLS-1$
    {
        @Override
        public void run() {
            Display.getDefault().asyncExec(new Runnable() {
                @Override
                public void run() {
                    // For compatibility with DSF update modes (hopefully this will either be replaced
                    // by an enhanced platform interface or the caching will move out of the data layer)

                    try {
                        Method m = fRendering.getMemoryBlock().getClass().getMethod("clearCache", new Class[0]); //$NON-NLS-1$
                        if (m != null)
                            m.invoke(fRendering.getMemoryBlock(), new Object[0]);
                    } catch (Exception e) {
                    }

                    FPRendering.this.fRendering.refresh();
                }
            });
        }
    };

    // Little Endian

    actionDisplayLittleEndian = new Action(FPRenderingMessages.getString("FPRendering.ENDIAN_LITTLE"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            fRendering.setDisplayLittleEndian(true);
            setRMCvalue(IFPRConstants.ENDIAN_KEY, Endian.LITTLE.getValue());
        }
    };

    // Big Endian

    actionDisplayBigEndian = new Action(FPRenderingMessages.getString("FPRendering.ENDIAN_BIG"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            fRendering.setDisplayLittleEndian(false);
            setRMCvalue(IFPRConstants.ENDIAN_KEY, Endian.BIG.getValue());
        }
    };

    // Endian settings

    int endian = getRMCvalue(IFPRConstants.ENDIAN_KEY);

    endian = endian != -1 ? endian
            : (fRendering.isDisplayLittleEndian() ? Endian.LITTLE.getValue() : Endian.BIG.getValue());
    boolean le = (endian == Endian.LITTLE.getValue());

    fRendering.setDisplayLittleEndian(le);
    actionDisplayLittleEndian.setChecked(le);
    actionDisplayBigEndian.setChecked(!le);

    // Float

    boolean dtFloat = getRMCvalue(IFPRConstants.DATATYPE_KEY) == FPDataType.FLOAT.getValue();
    this.fRendering.setFPDataType(dtFloat ? FPDataType.FLOAT : FPDataType.DOUBLE);

    actionFloatingPoint32 = new Action(FPRenderingMessages.getString("FPRendering.FLOATING_POINT_32"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            fRendering.setDisplayedPrecision(getRMCvalue(IFPRConstants.FLOAT_DISP_KEY));
            fRendering.setFPDataType(FPDataType.FLOAT);
            setRMCvalue(IFPRConstants.DATATYPE_KEY, FPDataType.FLOAT.getValue());
            setSelections();
        }
    };

    // Double

    actionFloatingPoint64 = new Action(FPRenderingMessages.getString("FPRendering.FLOATING_POINT_64"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            fRendering.setDisplayedPrecision(getRMCvalue(IFPRConstants.DOUBLE_DISP_KEY));
            fRendering.setFPDataType(FPDataType.DOUBLE);
            setRMCvalue(IFPRConstants.DATATYPE_KEY, FPDataType.DOUBLE.getValue());
            setSelections();
        }
    };

    // Displayed precision: 4 digits

    int savedPrecision = getDisplayedPrecision();

    actionDisplay4Digits = new Action(FPRenderingMessages.getString("FPRendering.DISPLAYED_PRECISION_4"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            FPRendering.this.fRendering.setDisplayedPrecision(4);
            setDisplayedPrecision(4);
        }
    };

    if (savedPrecision == 4) {
        FPRendering.this.fRendering.setDisplayedPrecision(4);
        actionDisplay4Digits.setChecked(savedPrecision == 4);
    }

    // Displayed precision: 8 digits

    actionDisplay8Digits = new Action(FPRenderingMessages.getString("FPRendering.DISPLAYED_PRECISION_8"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            FPRendering.this.fRendering.setDisplayedPrecision(8);
            setDisplayedPrecision(8);
        }
    };

    if (savedPrecision == 8) {
        FPRendering.this.fRendering.setDisplayedPrecision(8);
        actionDisplay8Digits.setChecked(savedPrecision == 8);
    }

    // Displayed precision: 16 digits (doubles only)

    actionDisplay16Digits = new Action(FPRenderingMessages.getString("FPRendering.DISPLAYED_PRECISION_16"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            FPRendering.this.fRendering.setDisplayedPrecision(16);
            setDisplayedPrecision(16);
        }
    };

    if (savedPrecision == 16) {
        FPRendering.this.fRendering.setDisplayedPrecision(16);
        actionDisplay16Digits.setChecked(savedPrecision == 16);
    }

    // Set RMC selections based on datatype and displayed precision settings in effect

    setSelections();

    // Columns

    int savedColumnCount = getRMCvalue(IFPRConstants.COLUMN_COUNT_KEY);

    final Action displayColumnCountAuto = new Action(
            FPRenderingMessages.getString("FPRendering.COLUMN_COUNT_AUTO"), IAction.AS_RADIO_BUTTON) //$NON-NLS-1$
    {
        @Override
        public void run() {
            FPRendering.this.fRendering.setColumnsSetting(Rendering.COLUMNS_AUTO_SIZE_TO_FIT);
            setRMCvalue(IFPRConstants.COLUMN_COUNT_KEY, Rendering.COLUMNS_AUTO_SIZE_TO_FIT);
        }
    };

    boolean autoMode = savedColumnCount == Rendering.COLUMNS_AUTO_SIZE_TO_FIT;
    displayColumnCountAuto.setChecked(autoMode);

    final Action[] displayColumnCounts = new Action[MAX_MENU_COLUMN_COUNT];

    for (int index = 0, j = 1; index < MAX_MENU_COLUMN_COUNT; index++, j *= 2) {
        final int finali = j;
        displayColumnCounts[index] = new Action(
                FPRenderingMessages.getString("FPRendering.COLUMN_COUNT_" + finali), IAction.AS_RADIO_BUTTON) //$NON-NLS-1$
        {
            @Override
            public void run() {
                FPRendering.this.fRendering.setColumnsSetting(finali);
                setRMCvalue(IFPRConstants.COLUMN_COUNT_KEY, finali);
            }
        };
        displayColumnCounts[index].setChecked(fRendering.getColumnsSetting() == finali);
    }

    // Set/clear column count selections as appropriate

    int countValue = getRMCvalue(IFPRConstants.COLUMN_COUNT_KEY);

    for (int index = 0; index < MAX_MENU_COLUMN_COUNT; index++)
        displayColumnCounts[index]
                .setChecked(countValue != Rendering.COLUMNS_AUTO_SIZE_TO_FIT && (countValue == (1 << index)));

    fRendering.setColumnsSetting(getRMCvalue(IFPRConstants.COLUMN_COUNT_KEY));

    final Action displayColumnCountCustomValue = new Action("", IAction.AS_RADIO_BUTTON) //$NON-NLS-1$
    {
        @Override
        public void run() {
        }
    };

    final Action displayColumnCountCustom = new Action(
            FPRenderingMessages.getString("FPRendering.COLUMN_COUNT_CUSTOM"), IAction.AS_RADIO_BUTTON) //$NON-NLS-1$
    {
        @Override
        public void run() {
            InputDialog inputDialog = new InputDialog(fRendering.getShell(), "Set Column Count", //$NON-NLS-1$
                    "Please enter column count", "", new IInputValidator() //$NON-NLS-1$ //$NON-NLS-2$
            {
                        @Override
                        public String isValid(String input) {
                            try {
                                int index = Integer.parseInt(input);

                                if (index <= 0)
                                    return "Please enter a positive integer"; //$NON-NLS-1$

                                if (index > 200)
                                    return "Please enter a positive integer not greater than 200"; //$NON-NLS-1$
                            } catch (NumberFormatException x) {
                                return "Please enter a positive integer"; //$NON-NLS-1$
                            }

                            return null;
                        }
                    });

            if (inputDialog.open() != Window.OK) {
                this.setChecked(false);
                int currentColumnSetting = FPRendering.this.fRendering.getColumnsSetting();

                if (currentColumnSetting == Rendering.COLUMNS_AUTO_SIZE_TO_FIT)
                    displayColumnCountAuto.setChecked(true);
                else {
                    boolean currentCountIsCustom = true;

                    for (int index = 0, j = 1; index < MAX_MENU_COLUMN_COUNT
                            && currentCountIsCustom; index++, j *= 2) {
                        currentCountIsCustom = (j != fRendering.getColumnsSetting());
                        if (j == fRendering.getColumnsSetting())
                            displayColumnCounts[index].setChecked(true);
                    }

                    if (currentCountIsCustom)
                        displayColumnCountCustomValue.setChecked(true);
                }

                return;
            }

            int newColumnCount = -1;

            try {
                newColumnCount = Integer.parseInt(inputDialog.getValue());
            } catch (NumberFormatException x) {
                assert false;
            }

            boolean customIsOneOfStandardListChoices = false;

            for (int index = 0, j = 1; index < MAX_MENU_COLUMN_COUNT; index++, j *= 2) {
                if (newColumnCount == j) {
                    customIsOneOfStandardListChoices = true;
                    FPRendering.this.fRendering.setColumnsSetting(newColumnCount);
                    setRMCvalue(IFPRConstants.COLUMN_COUNT_KEY, newColumnCount);
                    this.setChecked(false);
                    displayColumnCountCustomValue.setChecked(false);
                    displayColumnCounts[index].setChecked(true);
                    break;
                }
            }

            if (!customIsOneOfStandardListChoices) {
                FPRendering.this.fRendering.setColumnsSetting(newColumnCount);
                setRMCvalue(IFPRConstants.COLUMN_COUNT_KEY, newColumnCount);
                this.setChecked(false);

                displayColumnCountCustomValue.setChecked(true);
                displayColumnCountCustomValue
                        .setText(Integer.valueOf(fRendering.getColumnsSetting()).toString());
            }
        }
    };

    // Check for a custom value:  If we're not in "Auto Fill" mode, check for standard column sizes.
    // If none of the standard sizes were entered, then it's a custom value; set it and display it.

    boolean customColumnCountSet = true;
    countValue = getRMCvalue(IFPRConstants.COLUMN_COUNT_KEY);

    if (countValue != Rendering.COLUMNS_AUTO_SIZE_TO_FIT) {
        for (int index = 0; index < MAX_MENU_COLUMN_COUNT; index++) {
            // If the column count is one of the standard values, set flag to false and exit the loop

            if (countValue == (1 << index)) {
                customColumnCountSet = false;
                break;
            }
        }

        if (customColumnCountSet) {
            FPRendering.this.fRendering.setColumnsSetting(countValue);
            displayColumnCountCustomValue.setChecked(true);
            displayColumnCountCustomValue.setText(Integer.valueOf(fRendering.getColumnsSetting()).toString());
        }
    }

    // Add the right-mouse-click (RMC) context menu items

    getPopupMenuManager().addMenuListener(new IMenuListener() {
        @Override
        public void menuAboutToShow(IMenuManager manager) {
            manager.add(new Separator());

            MenuManager sub = new MenuManager(FPRenderingMessages.getString("FPRendering.PANES")); //$NON-NLS-1$

            sub = new MenuManager(FPRenderingMessages.getString("FPRendering.ENDIAN")); //$NON-NLS-1$
            sub.add(actionDisplayBigEndian);
            sub.add(actionDisplayLittleEndian);
            manager.add(sub);

            sub = new MenuManager(FPRenderingMessages.getString("FPRendering.NUMBER_TYPE")); //$NON-NLS-1$
            sub.add(actionFloatingPoint32);
            sub.add(actionFloatingPoint64);
            manager.add(sub);

            sub = new MenuManager(FPRenderingMessages.getString("FPRendering.PRECISION")); //$NON-NLS-1$
            sub.add(actionDisplay4Digits);
            sub.add(actionDisplay8Digits);
            sub.add(actionDisplay16Digits);
            manager.add(sub);

            //              TODO: Add separator for FP group here: manager.add(new Separator());

            sub = new MenuManager(FPRenderingMessages.getString("FPRendering.COLUMN_COUNT")); //$NON-NLS-1$
            sub.add(displayColumnCountAuto);

            for (int index = 0; index < displayColumnCounts.length; index++)
                sub.add(displayColumnCounts[index]);

            boolean currentCountIsCustom = fRendering.getColumnsSetting() != 0;

            for (int index = 0, j = 1; index < MAX_MENU_COLUMN_COUNT && currentCountIsCustom; index++, j *= 2)
                currentCountIsCustom = (j != fRendering.getColumnsSetting());

            if (currentCountIsCustom)
                sub.add(displayColumnCountCustomValue);

            sub.add(displayColumnCountCustom);
            manager.add(sub);

            // Update modes

            int updateMode = getRMCvalue(IFPRConstants.UPDATEMODE_KEY);

            final Action updateAlwaysAction = new Action(
                    FPRenderingMessages.getString("FPRendering.UPDATE_ALWAYS"), IAction.AS_RADIO_BUTTON) //$NON-NLS-1$
            {
                @Override
                public void run() {
                    fRendering.setUpdateMode(Rendering.UPDATE_ALWAYS);
                    setRMCvalue(IFPRConstants.UPDATEMODE_KEY, Rendering.UPDATE_ALWAYS);
                }
            };
            updateAlwaysAction.setChecked(updateMode == Rendering.UPDATE_ALWAYS);

            final Action updateOnBreakpointAction = new Action(
                    FPRenderingMessages.getString("FPRendering.UPDATE_ON_BREAKPOINT"), IAction.AS_RADIO_BUTTON) //$NON-NLS-1$
            {
                @Override
                public void run() {
                    fRendering.setUpdateMode(Rendering.UPDATE_ON_BREAKPOINT);
                    setRMCvalue(IFPRConstants.UPDATEMODE_KEY, Rendering.UPDATE_ON_BREAKPOINT);
                }
            };
            updateOnBreakpointAction.setChecked(updateMode == Rendering.UPDATE_ON_BREAKPOINT);

            final Action updateManualAction = new Action(
                    FPRenderingMessages.getString("FPRendering.UPDATE_MANUAL"), IAction.AS_RADIO_BUTTON) //$NON-NLS-1$
            {
                @Override
                public void run() {
                    fRendering.setUpdateMode(Rendering.UPDATE_MANUAL);
                    setRMCvalue(IFPRConstants.UPDATEMODE_KEY, Rendering.UPDATE_MANUAL);
                }
            };
            updateManualAction.setChecked(updateMode == Rendering.UPDATE_MANUAL);

            // Add menu

            sub = new MenuManager(FPRenderingMessages.getString("FPRendering.UPDATEMODE")); //$NON-NLS-1$
            sub.add(updateAlwaysAction);
            sub.add(updateOnBreakpointAction);
            sub.add(updateManualAction);
            manager.add(sub);
            manager.add(new Separator());

            BigInteger start = fRendering.getSelection().getStart();
            BigInteger end = fRendering.getSelection().getEnd();
            copyAction.setEnabled(start != null && end != null);

            manager.add(copyAction);
            manager.add(copyAddressAction);

            manager.add(gotoBaseAddressAction);
            manager.add(refreshAction);
            manager.add(new Separator());
            manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
        }
    });
}

From source file:org.eclipse.cdt.debug.ui.memory.traditional.TraditionalRendering.java

License:Open Source License

public void createMenus() {
    // add the menu to each of the rendering panes
    Control[] renderingControls = this.fRendering.getRenderingPanes();
    for (int i = 0; i < renderingControls.length; i++)
        super.createPopupMenu(renderingControls[i]);
    super.createPopupMenu(this.fRendering);

    // Create the copy actions

    final CopyAction copyBinaryAction = new CopyBinaryAction(this.fRendering);
    final CopyAction copyTextAction = new CopyTextAction(this.fRendering);
    final CopyAction copyAddressAction = new CopyAddressAction(this.fRendering);
    final CopyAction copyAllAction = new CopyAllAction(this.fRendering);

    // reset to base address

    final Action gotoBaseAddressAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.RESET_TO_BASE_ADDRESS")) //$NON-NLS-1$
    {/* w w w.  j a  v  a  2 s  .c  o m*/
        @Override
        public void run() {
            Display.getDefault().asyncExec(new Runnable() {
                public void run() {
                    TraditionalRendering.this.fRendering
                            .gotoAddress(TraditionalRendering.this.fRendering.fBaseAddress);
                }
            });
        }
    };

    // refresh

    final Action refreshAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.REFRESH")) //$NON-NLS-1$
    {
        @Override
        public void run() {
            Display.getDefault().asyncExec(new Runnable() {
                public void run() {
                    // For compatibility with DSF update modes (hopefully this will either be replaced by an enhanced
                    // platform interface or the caching will move out of the data layer
                    try {
                        Method m = fRendering.getMemoryBlock().getClass().getMethod("clearCache", new Class[0]); //$NON-NLS-1$
                        if (m != null)
                            m.invoke(fRendering.getMemoryBlock(), new Object[0]);
                    } catch (Exception e) {
                    }

                    TraditionalRendering.this.fRendering.refresh();
                }
            });
        }
    };

    // display address

    final Action displayAddressPaneAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.ADDRESS"), //$NON-NLS-1$
            IAction.AS_CHECK_BOX) {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setPaneVisible(Rendering.PANE_ADDRESS, isChecked());
        }
    };
    displayAddressPaneAction.setChecked(this.fRendering.getPaneVisible(Rendering.PANE_ADDRESS));

    // display hex

    final Action displayBinaryPaneAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.BINARY"), //$NON-NLS-1$
            IAction.AS_CHECK_BOX) {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setPaneVisible(Rendering.PANE_BINARY, isChecked());
        }
    };
    displayBinaryPaneAction.setChecked(this.fRendering.getPaneVisible(Rendering.PANE_BINARY));

    // display text

    final Action displayTextPaneAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.TEXT"), //$NON-NLS-1$
            IAction.AS_CHECK_BOX) {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setPaneVisible(Rendering.PANE_TEXT, isChecked());
        }
    };
    displayTextPaneAction.setChecked(this.fRendering.getPaneVisible(Rendering.PANE_TEXT));

    // display size

    final Action displaySize1BytesAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.1_BYTE"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setBytesPerColumn(1);
        }
    };
    displaySize1BytesAction.setChecked(this.fRendering.getBytesPerColumn() == 1);

    final Action displaySize2BytesAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.2_BYTES"), IAction.AS_RADIO_BUTTON) //$NON-NLS-1$
    {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setBytesPerColumn(2);
        }
    };
    displaySize2BytesAction.setChecked(this.fRendering.getBytesPerColumn() == 2);

    final Action displaySize4BytesAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.4_BYTES"), IAction.AS_RADIO_BUTTON) //$NON-NLS-1$
    {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setBytesPerColumn(4);
        }
    };
    displaySize4BytesAction.setChecked(this.fRendering.getBytesPerColumn() == 4);

    final Action displaySize8BytesAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.8_BYTES"), IAction.AS_RADIO_BUTTON) //$NON-NLS-1$
    {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setBytesPerColumn(8);
        }
    };
    displaySize8BytesAction.setChecked(this.fRendering.getBytesPerColumn() == 8);

    // text / unicode ?

    final Action displayCharactersISO8859Action = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.ISO-8859-1"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setTextMode(Rendering.TEXT_ISO_8859_1);
        }
    };
    displayCharactersISO8859Action.setChecked(this.fRendering.getTextMode() == Rendering.TEXT_ISO_8859_1);

    final Action displayCharactersUSASCIIAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.USASCII"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setTextMode(Rendering.TEXT_USASCII);
        }
    };
    displayCharactersUSASCIIAction.setChecked(this.fRendering.getTextMode() == Rendering.TEXT_USASCII);

    final Action displayCharactersUTF8Action = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.UTF8"), IAction.AS_RADIO_BUTTON) //$NON-NLS-1$
    {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setTextMode(Rendering.TEXT_UTF8);
        }
    };
    displayCharactersUTF8Action.setChecked(this.fRendering.getTextMode() == Rendering.TEXT_UTF8);

    //        final Action displayCharactersUTF16Action = new Action(
    //                TraditionalRenderingMessages
    //                    .getString("TraditionalRendering.UTF16"), IAction.AS_RADIO_BUTTON) //$NON-NLS-1$
    //        {
    //            @Override
    //            public void run()
    //            {
    //                TraditionalRendering.this.fRendering
    //                .setTextMode(Rendering.TEXT_UTF16);
    //            }
    //        };
    //        displayCharactersUTF16Action.setChecked(this.fRendering
    //            .getTextMode() == Rendering.TEXT_UTF16);

    // endian

    displayEndianBigAction = new Action(TraditionalRenderingMessages.getString("TraditionalRendering.BIG"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setDisplayLittleEndian(false);
        }
    };
    displayEndianBigAction.setChecked(!this.fRendering.isTargetLittleEndian());

    displayEndianLittleAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.LITTLE"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setDisplayLittleEndian(true);
        }
    };
    displayEndianLittleAction.setChecked(this.fRendering.isTargetLittleEndian());

    // radix

    final Action displayRadixHexAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.HEX"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setRadix(Rendering.RADIX_HEX);
        }
    };
    displayRadixHexAction.setChecked(this.fRendering.getRadix() == Rendering.RADIX_HEX);

    final Action displayRadixDecSignedAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.DECIMAL_SIGNED"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setRadix(Rendering.RADIX_DECIMAL_SIGNED);
        }
    };
    displayRadixDecSignedAction.setChecked(this.fRendering.getRadix() == Rendering.RADIX_DECIMAL_SIGNED);

    final Action displayRadixDecUnsignedAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.DECIMAL_UNSIGNED"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setRadix(Rendering.RADIX_DECIMAL_UNSIGNED);
        }
    };
    displayRadixDecUnsignedAction.setChecked(this.fRendering.getRadix() == Rendering.RADIX_DECIMAL_UNSIGNED);

    final Action displayRadixOctAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.OCTAL"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setRadix(Rendering.RADIX_OCTAL);
        }
    };
    displayRadixOctAction.setChecked(this.fRendering.getRadix() == Rendering.RADIX_OCTAL);

    final Action displayRadixBinAction = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.BINARY"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setRadix(Rendering.RADIX_BINARY);
        }
    };
    displayRadixBinAction.setChecked(this.fRendering.getRadix() == Rendering.RADIX_BINARY);

    final Action displayColumnCountAuto = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.COLUMN_COUNT_AUTO"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            TraditionalRendering.this.fRendering.setColumnsSetting(Rendering.COLUMNS_AUTO_SIZE_TO_FIT);
        }
    };
    displayColumnCountAuto.setChecked(fRendering.getColumnsSetting() == Rendering.COLUMNS_AUTO_SIZE_TO_FIT);

    final Action[] displayColumnCounts = new Action[MAX_MENU_COLUMN_COUNT];
    for (int i = 0, j = 1; i < MAX_MENU_COLUMN_COUNT; i++, j *= 2) {
        final int finali = j;
        displayColumnCounts[i] = new Action(
                TraditionalRenderingMessages.getString("TraditionalRendering.COLUMN_COUNT_" + finali), //$NON-NLS-1$
                IAction.AS_RADIO_BUTTON) {
            @Override
            public void run() {
                TraditionalRendering.this.fRendering.setColumnsSetting(finali);
            }
        };
        displayColumnCounts[i].setChecked(fRendering.getColumnsSetting() == finali);
    }

    final Action displayColumnCountCustomValue = new Action("", IAction.AS_RADIO_BUTTON) //$NON-NLS-1$
    {
        @Override
        public void run() {
        }
    };

    final Action displayColumnCountCustom = new Action(
            TraditionalRenderingMessages.getString("TraditionalRendering.COLUMN_COUNT_CUSTOM"), //$NON-NLS-1$
            IAction.AS_RADIO_BUTTON) {
        @Override
        public void run() {
            InputDialog inputDialog = new InputDialog(fRendering.getShell(), "Set Column Count", //$NON-NLS-1$
                    "Please enter column count", //$NON-NLS-1$
                    "", //$NON-NLS-1$
                    new IInputValidator() {
                        public String isValid(String input) {
                            try {
                                int i = Integer.parseInt(input);
                                if (i <= 0)
                                    return "Please enter a positive integer"; //$NON-NLS-1$
                                if (i > 200)
                                    return "Please enter a positive integer not greater than 200"; //$NON-NLS-1$

                            } catch (NumberFormatException x) {
                                return "Please enter a positive integer"; //$NON-NLS-1$
                            }
                            return null;
                        }
                    });

            if (inputDialog.open() != Window.OK) {
                this.setChecked(false);
                int currentColumnSetting = TraditionalRendering.this.fRendering.getColumnsSetting();
                if (currentColumnSetting == Rendering.COLUMNS_AUTO_SIZE_TO_FIT)
                    displayColumnCountAuto.setChecked(true);
                else {
                    boolean currentCountIsCustom = true;
                    for (int i = 0, j = 1; i < MAX_MENU_COLUMN_COUNT && currentCountIsCustom; i++, j *= 2) {
                        currentCountIsCustom = (j != fRendering.getColumnsSetting());
                        if (j == fRendering.getColumnsSetting())
                            displayColumnCounts[i].setChecked(true);
                    }
                    if (currentCountIsCustom)
                        displayColumnCountCustomValue.setChecked(true);
                }

                return;
            }

            int newColumnCount = -1;
            try {
                newColumnCount = Integer.parseInt(inputDialog.getValue());
            } catch (NumberFormatException x) {
                assert false;
            }

            boolean customIsOneOfStandardListChoices = false;

            for (int i = 0, j = 1; i < MAX_MENU_COLUMN_COUNT; i++, j *= 2) {
                if (newColumnCount == j) {
                    customIsOneOfStandardListChoices = true;
                    TraditionalRendering.this.fRendering.setColumnsSetting(newColumnCount);
                    this.setChecked(false);
                    displayColumnCountCustomValue.setChecked(false);
                    displayColumnCounts[i].setChecked(true);
                    break;
                }
            }

            if (!customIsOneOfStandardListChoices) {
                TraditionalRendering.this.fRendering.setColumnsSetting(newColumnCount);
                this.setChecked(false);

                displayColumnCountCustomValue.setChecked(true);
                displayColumnCountCustomValue
                        .setText(Integer.valueOf(fRendering.getColumnsSetting()).toString());
            }
        }
    };

    getPopupMenuManager().addMenuListener(new IMenuListener() {
        public void menuAboutToShow(IMenuManager manager) {
            manager.add(new Separator());

            MenuManager sub = new MenuManager(
                    TraditionalRenderingMessages.getString("TraditionalRendering.PANES")); //$NON-NLS-1$
            sub.add(displayAddressPaneAction);
            sub.add(displayBinaryPaneAction);
            sub.add(displayTextPaneAction);
            manager.add(sub);

            sub = new MenuManager(TraditionalRenderingMessages.getString("TraditionalRendering.ENDIAN")); //$NON-NLS-1$
            sub.add(displayEndianBigAction);
            sub.add(displayEndianLittleAction);
            manager.add(sub);

            sub = new MenuManager(TraditionalRenderingMessages.getString("TraditionalRendering.TEXT")); //$NON-NLS-1$
            sub.add(displayCharactersISO8859Action);
            sub.add(displayCharactersUSASCIIAction);
            sub.add(displayCharactersUTF8Action);
            //sub.add(displayCharactersUTF16Action);
            manager.add(sub);

            sub = new MenuManager(TraditionalRenderingMessages.getString("TraditionalRendering.CELL_SIZE")); //$NON-NLS-1$
            sub.add(displaySize1BytesAction);
            sub.add(displaySize2BytesAction);
            sub.add(displaySize4BytesAction);
            sub.add(displaySize8BytesAction);
            manager.add(sub);

            sub = new MenuManager(TraditionalRenderingMessages.getString("TraditionalRendering.RADIX")); //$NON-NLS-1$
            sub.add(displayRadixHexAction);
            sub.add(displayRadixDecSignedAction);
            sub.add(displayRadixDecUnsignedAction);
            sub.add(displayRadixOctAction);
            sub.add(displayRadixBinAction);
            manager.add(sub);

            sub = new MenuManager(TraditionalRenderingMessages.getString("TraditionalRendering.COLUMN_COUNT")); //$NON-NLS-1$
            sub.add(displayColumnCountAuto);
            for (int i = 0; i < displayColumnCounts.length; i++)
                sub.add(displayColumnCounts[i]);

            boolean currentCountIsCustom = fRendering.getColumnsSetting() != 0;
            for (int i = 0, j = 1; i < MAX_MENU_COLUMN_COUNT && currentCountIsCustom; i++, j *= 2)
                currentCountIsCustom = (j != fRendering.getColumnsSetting());
            if (currentCountIsCustom)
                sub.add(displayColumnCountCustomValue);

            sub.add(displayColumnCountCustom);
            manager.add(sub);

            final Action updateAlwaysAction = new Action(
                    TraditionalRenderingMessages.getString("TraditionalRendering.UPDATE_ALWAYS"), //$NON-NLS-1$
                    IAction.AS_RADIO_BUTTON) {
                @Override
                public void run() {
                    fRendering.setUpdateMode(Rendering.UPDATE_ALWAYS);
                }
            };
            updateAlwaysAction.setChecked(fRendering.getUpdateMode() == Rendering.UPDATE_ALWAYS);

            final Action updateOnBreakpointAction = new Action(
                    TraditionalRenderingMessages.getString("TraditionalRendering.UPDATE_ON_BREAKPOINT"), //$NON-NLS-1$
                    IAction.AS_RADIO_BUTTON) {
                @Override
                public void run() {
                    fRendering.setUpdateMode(Rendering.UPDATE_ON_BREAKPOINT);
                }
            };
            updateOnBreakpointAction.setChecked(fRendering.getUpdateMode() == Rendering.UPDATE_ON_BREAKPOINT);

            final Action updateManualAction = new Action(
                    TraditionalRenderingMessages.getString("TraditionalRendering.UPDATE_MANUAL"), //$NON-NLS-1$
                    IAction.AS_RADIO_BUTTON) {
                @Override
                public void run() {
                    fRendering.setUpdateMode(Rendering.UPDATE_MANUAL);
                }
            };
            updateManualAction.setChecked(fRendering.getUpdateMode() == Rendering.UPDATE_MANUAL);

            sub = new MenuManager(TraditionalRenderingMessages.getString("TraditionalRendering.UPDATEMODE")); //$NON-NLS-1$
            sub.add(updateAlwaysAction);
            sub.add(updateOnBreakpointAction);
            sub.add(updateManualAction);
            manager.add(sub);
            manager.add(new Separator());

            BigInteger start = fRendering.getSelection().getStart();
            BigInteger end = fRendering.getSelection().getEnd();
            copyBinaryAction.setEnabled(start != null && end != null);
            copyTextAction.setEnabled(start != null && end != null);

            sub = new MenuManager(TraditionalRenderingMessages.getString("TraditionalRendering.COPY")); //$NON-NLS-1$
            sub.add(copyBinaryAction);
            sub.add(copyTextAction);
            sub.add(copyAddressAction);
            sub.add(copyAllAction);
            manager.add(sub);

            copyBinaryAction.checkStatus();
            copyTextAction.checkStatus();
            copyAddressAction.checkStatus();
            copyAllAction.checkStatus();

            manager.add(gotoBaseAddressAction);
            manager.add(refreshAction);
            manager.add(new Separator());
            manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
        }
    });

}

From source file:org.eclipse.cdt.dsf.debug.internal.ui.disassembly.DisassemblyPart.java

License:Open Source License

protected void createActions() {
    Action action;
    action = new TextOperationAction(fViewer, ITextOperationTarget.COPY);
    action.setText(DisassemblyMessages.Disassembly_action_Copy_label);
    action.setImageDescriptor(/*from  w w w  .ja  va  2s  .c o m*/
            DisassemblyImageRegistry.getImageDescriptor(DisassemblyImageRegistry.ICON_Copy_enabled));
    action.setDisabledImageDescriptor(
            DisassemblyImageRegistry.getImageDescriptor(DisassemblyImageRegistry.ICON_Copy_disabled));
    action.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_COPY);
    fGlobalActions.put(ITextEditorActionConstants.COPY, action);
    fSelectionActions.add(action);

    action = new TextOperationAction(fViewer, ITextOperationTarget.SELECT_ALL);
    action.setText(DisassemblyMessages.Disassembly_action_SelectAll_label);
    action.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_SELECT_ALL);
    fGlobalActions.put(ITextEditorActionConstants.SELECT_ALL, action);

    action = new TextOperationAction(fViewer, ITextOperationTarget.PRINT);
    action.setActionDefinitionId(IWorkbenchCommandConstants.FILE_PRINT);
    fGlobalActions.put(ITextEditorActionConstants.PRINT, action);

    action = new FindReplaceAction(DisassemblyMessages.getBundleForConstructedKeys(), "FindReplaceAction.", //$NON-NLS-1$
            this);
    action.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_FIND_AND_REPLACE);
    fGlobalActions.put(ActionFactory.FIND.getId(), action);
    fSelectionActions.add(action);

    fActionGotoPC = new ActionGotoProgramCounter(this);
    fActionGotoPC.setActionDefinitionId(COMMAND_ID_GOTO_PC);
    fActionGotoPC.setImageDescriptor(
            DisassemblyImageRegistry.getImageDescriptor(DisassemblyImageRegistry.ICON_Home_enabled));
    fActionGotoPC.setDisabledImageDescriptor(
            DisassemblyImageRegistry.getImageDescriptor(DisassemblyImageRegistry.ICON_Home_disabled));
    fStateDependentActions.add(fActionGotoPC);
    registerWithHandlerService(fActionGotoPC);

    fActionGotoAddress = new ActionGotoAddress(this);
    fActionGotoAddress.setActionDefinitionId(COMMAND_ID_GOTO_ADDRESS);
    fStateDependentActions.add(fActionGotoAddress);
    registerWithHandlerService(fActionGotoAddress);

    fActionToggleSource = new ActionToggleSource();
    fStateDependentActions.add(fActionToggleSource);
    fActionToggleSource.setImageDescriptor(
            AbstractUIPlugin.imageDescriptorFromPlugin(DsfUIPlugin.PLUGIN_ID, "icons/source.gif")); //$NON-NLS-1$
    fVerticalRuler.getControl().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseDoubleClick(final MouseEvent e) {
            // invoke toggle breakpoint
            IHandlerService handlerService = (IHandlerService) getSite().getService(IHandlerService.class);
            if (handlerService != null) {
                try {
                    Event event = new Event();
                    event.display = e.display;
                    event.widget = e.widget;
                    event.time = e.time;
                    event.data = e.data;
                    event.x = e.x;
                    event.y = e.y;
                    event.button = e.button;
                    event.stateMask = e.stateMask;
                    event.count = e.count;

                    handlerService.executeCommand(COMMAND_ID_TOGGLE_BREAKPOINT, event);
                } catch (org.eclipse.core.commands.ExecutionException exc) {
                    DsfUIPlugin.log(exc);
                } catch (NotDefinedException exc) {
                } catch (NotEnabledException exc) {
                } catch (NotHandledException exc) {
                }
            }
        }
    });
    fActionToggleBreakpointEnablement = new ActionToggleBreakpointEnablement();
    fActionToggleSymbols = new ActionToggleSymbols();
    fActionRefreshView = new ActionRefreshView();
    fSyncAction = new SyncActiveDebugContextAction();
    fTrackExpressionAction = new TrackExpressionAction();
    fStateDependentActions.add(fActionRefreshView);
    fGlobalActions.put(ActionFactory.REFRESH.getId(), fActionRefreshView);
    fActionOpenPreferences = new ActionOpenPreferences(getSite().getShell());
}

From source file:org.eclipse.cdt.dsf.gdb.internal.ui.osview.OSResourcesView.java

License:Open Source License

private void populateViewMenu(final OSData data) {

    assert data.getColumnCount() == fViewer.getTable().getColumnCount();

    if (data == fMenuShownData)
        return;//from w w  w.  j ava 2 s.co  m

    IActionBars bars = getViewSite().getActionBars();
    bars.getMenuManager().setVisible(true);
    bars.getMenuManager().removeAll();

    for (int i = 0; i < data.getColumnCount(); ++i) {
        final String cn = data.getColumnName(i);
        final TableColumn c = fViewer.getTable().getColumns()[i];

        Action a = new Action(cn, IAction.AS_CHECK_BOX) {
            @Override
            public void run() {
                if (isChecked()) {
                    int w = fColumnLayout.getWidth(cn);
                    if (w > 0)
                        c.setWidth(w);
                    else
                        c.pack();
                    c.setResizable(true);
                } else {
                    int w = c.getWidth();
                    c.setWidth(0);
                    // Make sure we remember the width the column
                    // had before hiding.
                    fColumnLayout.setWidth(cn, w);
                    c.setResizable(false);
                }
                fColumnLayout.setVisible(cn, isChecked());
            }
        };
        a.setChecked(fColumnLayout.getVisible(cn));
        a.setText(cn);
        bars.getMenuManager().add(a);
    }
    bars.updateActionBars();

    fMenuShownData = data;
}